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,453 +10,22 @@
10
10
  *
11
11
  * */
12
12
  'use strict';
13
- import H from '../../Core/Globals.js';
14
- /**
15
- * An Earcon configuration, specifying an Earcon and when to play it.
16
- *
17
- * @requires module:modules/sonification
18
- *
19
- * @interface Highcharts.EarconConfiguration
20
- */ /**
21
- * An Earcon instance.
22
- * @name Highcharts.EarconConfiguration#earcon
23
- * @type {Highcharts.Earcon}
24
- */ /**
25
- * The ID of the point to play the Earcon on.
26
- * @name Highcharts.EarconConfiguration#onPoint
27
- * @type {string|undefined}
28
- */ /**
29
- * A function to determine whether or not to play this earcon on a point. The
30
- * function is called for every point, receiving that point as parameter. It
31
- * should return either a boolean indicating whether or not to play the earcon,
32
- * or a new Earcon instance - in which case the new Earcon will be played.
33
- * @name Highcharts.EarconConfiguration#condition
34
- * @type {Function|undefined}
35
- */
36
- /**
37
- * Options for sonifying a series.
38
- *
39
- * @requires module:modules/sonification
40
- *
41
- * @interface Highcharts.SonifySeriesOptionsObject
42
- */ /**
43
- * The duration for playing the points. Note that points might continue to play
44
- * after the duration has passed, but no new points will start playing.
45
- * @name Highcharts.SonifySeriesOptionsObject#duration
46
- * @type {number}
47
- */ /**
48
- * The axis to use for when to play the points. Can be a string with a data
49
- * property (e.g. `x`), or a function. If it is a function, this function
50
- * receives the point as argument, and should return a numeric value. The points
51
- * with the lowest numeric values are then played first, and the time between
52
- * points will be proportional to the distance between the numeric values.
53
- * @name Highcharts.SonifySeriesOptionsObject#pointPlayTime
54
- * @type {string|Function}
55
- */ /**
56
- * The instrument definitions for the points in this series.
57
- * @name Highcharts.SonifySeriesOptionsObject#instruments
58
- * @type {Array<Highcharts.PointInstrumentObject>}
59
- */ /**
60
- * Earcons to add to the series.
61
- * @name Highcharts.SonifySeriesOptionsObject#earcons
62
- * @type {Array<Highcharts.EarconConfiguration>|undefined}
63
- */ /**
64
- * Optionally provide the minimum/maximum data values for the points. If this is
65
- * not supplied, it is calculated from all points in the chart on demand. This
66
- * option is supplied in the following format, as a map of point data properties
67
- * to objects with min/max values:
68
- * ```js
69
- * dataExtremes: {
70
- * y: {
71
- * min: 0,
72
- * max: 100
73
- * },
74
- * z: {
75
- * min: -10,
76
- * max: 10
77
- * }
78
- * // Properties used and not provided are calculated on demand
79
- * }
80
- * ```
81
- * @name Highcharts.SonifySeriesOptionsObject#dataExtremes
82
- * @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
83
- */ /**
84
- * Callback before a point is played.
85
- * @name Highcharts.SonifySeriesOptionsObject#onPointStart
86
- * @type {Function|undefined}
87
- */ /**
88
- * Callback after a point has finished playing.
89
- * @name Highcharts.SonifySeriesOptionsObject#onPointEnd
90
- * @type {Function|undefined}
91
- */ /**
92
- * Callback after the series has played.
93
- * @name Highcharts.SonifySeriesOptionsObject#onEnd
94
- * @type {Function|undefined}
95
- */
96
- ''; // detach doclets above
13
+ import Earcon from './Earcon.js';
97
14
  import Point from '../../Core/Series/Point.js';
15
+ import SeriesSonify from './SeriesSonify.js';
16
+ import SU from './SonificationUtilities.js';
17
+ var getExtremesForInstrumentProps = SU.getExtremesForInstrumentProps, virtualAxisTranslate = SU.virtualAxisTranslate;
18
+ import Timeline from './Timeline.js';
19
+ import TimelineEvent from './TimelineEvent.js';
20
+ import TimelinePath from './TimelinePath.js';
98
21
  import U from '../../Core/Utilities.js';
99
- var find = U.find, isArray = U.isArray, merge = U.merge, pick = U.pick, splat = U.splat, objectEach = U.objectEach;
100
- import utilities from './Utilities.js';
101
- /**
102
- * Get the relative time value of a point.
103
- * @private
104
- * @param {Highcharts.Point} point
105
- * The point.
106
- * @param {Function|string} timeProp
107
- * The time axis data prop or the time function.
108
- * @return {number}
109
- * The time value.
110
- */
111
- function getPointTimeValue(point, timeProp) {
112
- return typeof timeProp === 'function' ?
113
- timeProp(point) :
114
- pick(point[timeProp], point.options[timeProp]);
115
- }
116
- /**
117
- * Get the time extremes of this series. This is handled outside of the
118
- * dataExtremes, as we always want to just sonify the visible points, and we
119
- * always want the extremes to be the extremes of the visible points.
120
- * @private
121
- * @param {Highcharts.Series} series
122
- * The series to compute on.
123
- * @param {Function|string} timeProp
124
- * The time axis data prop or the time function.
125
- * @return {Highcharts.RangeObject}
126
- * Object with min/max extremes for the time values.
127
- */
128
- function getTimeExtremes(series, timeProp) {
129
- // Compute the extremes from the visible points.
130
- return series.points.reduce(function (acc, point) {
131
- var value = getPointTimeValue(point, timeProp);
132
- acc.min = Math.min(acc.min, value);
133
- acc.max = Math.max(acc.max, value);
134
- return acc;
135
- }, {
136
- min: Infinity,
137
- max: -Infinity
138
- });
139
- }
140
- /**
141
- * Calculate value extremes for used instrument data properties on a chart.
142
- * @private
143
- * @param {Highcharts.Chart} chart
144
- * The chart to calculate extremes from.
145
- * @param {Array<Highcharts.PointInstrumentObject>} [instruments]
146
- * Additional instrument definitions to inspect for data props used, in
147
- * addition to the instruments defined in the chart options.
148
- * @param {Highcharts.Dictionary<Highcharts.RangeObject>} [dataExtremes]
149
- * Predefined extremes for each data prop.
150
- * @return {Highcharts.Dictionary<Highcharts.RangeObject>}
151
- * New extremes with data properties mapped to min/max objects.
152
- */
153
- function getExtremesForInstrumentProps(chart, instruments, dataExtremes) {
154
- var allInstrumentDefinitions = (instruments || []).slice(0);
155
- var defaultInstrumentDef = (chart.options.sonification &&
156
- chart.options.sonification.defaultInstrumentOptions);
157
- var optionDefToInstrDef = function (optionDef) { return ({
158
- instrumentMapping: optionDef.mapping
159
- }); };
160
- if (defaultInstrumentDef) {
161
- allInstrumentDefinitions.push(optionDefToInstrDef(defaultInstrumentDef));
162
- }
163
- chart.series.forEach(function (series) {
164
- var instrOptions = (series.options.sonification &&
165
- series.options.sonification.instruments);
166
- if (instrOptions) {
167
- allInstrumentDefinitions = allInstrumentDefinitions.concat(instrOptions.map(optionDefToInstrDef));
168
- }
169
- });
170
- return (allInstrumentDefinitions).reduce(function (newExtremes, instrumentDefinition) {
171
- Object.keys(instrumentDefinition.instrumentMapping || {}).forEach(function (instrumentParameter) {
172
- var value = instrumentDefinition.instrumentMapping[instrumentParameter];
173
- if (typeof value === 'string' && !newExtremes[value]) {
174
- // This instrument parameter is mapped to a data prop.
175
- // If we don't have predefined data extremes, find them.
176
- newExtremes[value] = utilities.calculateDataExtremes(chart, value);
177
- }
178
- });
179
- return newExtremes;
180
- }, merge(dataExtremes));
181
- }
182
- /**
183
- * Get earcons for the point if there are any.
184
- * @private
185
- * @param {Highcharts.Point} point
186
- * The point to find earcons for.
187
- * @param {Array<Highcharts.EarconConfiguration>} earconDefinitions
188
- * Earcons to check.
189
- * @return {Array<Highcharts.Earcon>}
190
- * Array of earcons to be played with this point.
191
- */
192
- function getPointEarcons(point, earconDefinitions) {
193
- return earconDefinitions.reduce(function (earcons, earconDefinition) {
194
- var cond, earcon = earconDefinition.earcon;
195
- if (earconDefinition.condition) {
196
- // We have a condition. This overrides onPoint
197
- cond = earconDefinition.condition(point);
198
- if (cond instanceof H.sonification.Earcon) {
199
- // Condition returned an earcon
200
- earcons.push(cond);
201
- }
202
- else if (cond) {
203
- // Condition returned true
204
- earcons.push(earcon);
205
- }
206
- }
207
- else if (earconDefinition.onPoint &&
208
- point.id === earconDefinition.onPoint) {
209
- // We have earcon onPoint
210
- earcons.push(earcon);
211
- }
212
- return earcons;
213
- }, []);
214
- }
215
- /**
216
- * Utility function to get a new list of instrument options where all the
217
- * instrument references are copies.
218
- * @private
219
- * @param {Array<Highcharts.PointInstrumentObject>} instruments
220
- * The instrument options.
221
- * @return {Array<Highcharts.PointInstrumentObject>}
222
- * Array of copied instrument options.
223
- */
224
- function makeInstrumentCopies(instruments) {
225
- return instruments.map(function (instrumentDef) {
226
- var instrument = instrumentDef.instrument, copy = (typeof instrument === 'string' ?
227
- H.sonification.instruments[instrument] :
228
- instrument).copy();
229
- return merge(instrumentDef, { instrument: copy });
230
- });
231
- }
232
- /**
233
- * Utility function to apply a master volume to a list of instrument
234
- * options.
235
- * @private
236
- * @param {Array<Highcharts.PointInstrumentObject>} instruments
237
- * The instrument options. Only options with Instrument object instances
238
- * will be affected.
239
- * @param {number} masterVolume
240
- * The master volume multiplier to apply to the instruments.
241
- * @return {Array<Highcharts.PointInstrumentObject>}
242
- * Array of instrument options.
243
- */
244
- function applyMasterVolumeToInstruments(instruments, masterVolume) {
245
- instruments.forEach(function (instrOpts) {
246
- var instr = instrOpts.instrument;
247
- if (typeof instr !== 'string') {
248
- instr.setMasterVolume(masterVolume);
249
- }
250
- });
251
- return instruments;
252
- }
253
- /**
254
- * Utility function to find the duration of the final note in a series.
255
- * @private
256
- * @param {Highcharts.Series} series The data series to calculate on.
257
- * @param {Array<Highcharts.PointInstrumentObject>} instruments The instrument options for this series.
258
- * @param {Highcharts.Dictionary<Highcharts.RangeObject>} dataExtremes Value extremes for the data series props.
259
- * @return {number} The duration of the final note in milliseconds.
260
- */
261
- function getFinalNoteDuration(series, instruments, dataExtremes) {
262
- var finalPoint = series.points[series.points.length - 1];
263
- return instruments.reduce(function (duration, instrument) {
264
- var mapping = instrument.instrumentMapping.duration;
265
- var instrumentDuration;
266
- if (typeof mapping === 'string') {
267
- instrumentDuration = 0; // Ignore, no easy way to map this
268
- }
269
- else if (typeof mapping === 'function') {
270
- instrumentDuration = mapping(finalPoint, dataExtremes);
271
- }
272
- else {
273
- instrumentDuration = mapping;
274
- }
275
- return Math.max(duration, instrumentDuration);
276
- }, 0);
277
- }
278
- /**
279
- * Create a TimelinePath from a series. Takes the same options as seriesSonify.
280
- * To intuitively allow multiple series to play simultaneously we make copies of
281
- * the instruments for each series.
282
- * @private
283
- * @param {Highcharts.Series} series
284
- * The series to build from.
285
- * @param {Highcharts.SonifySeriesOptionsObject} options
286
- * The options for building the TimelinePath.
287
- * @return {Highcharts.TimelinePath}
288
- * A timeline path with events.
289
- */
290
- function buildTimelinePathFromSeries(series, options) {
291
- // options.timeExtremes is internal and used so that the calculations from
292
- // chart.sonify can be reused.
293
- var timeExtremes = options.timeExtremes || getTimeExtremes(series, options.pointPlayTime),
294
- // Compute any data extremes that aren't defined yet
295
- dataExtremes = getExtremesForInstrumentProps(series.chart, options.instruments, options.dataExtremes), minimumSeriesDurationMs = 10,
296
- // Get the duration of the final note
297
- finalNoteDuration = getFinalNoteDuration(series, options.instruments, dataExtremes),
298
- // Get time offset for a point, relative to duration
299
- pointToTime = function (point) {
300
- return utilities.virtualAxisTranslate(getPointTimeValue(point, options.pointPlayTime), timeExtremes, { min: 0, max: Math.max(options.duration - finalNoteDuration, minimumSeriesDurationMs) });
301
- }, masterVolume = pick(options.masterVolume, 1),
302
- // Make copies of the instruments used for this series, to allow
303
- // multiple series with the same instrument to play together
304
- instrumentCopies = makeInstrumentCopies(options.instruments), instruments = applyMasterVolumeToInstruments(instrumentCopies, masterVolume),
305
- // Go through the points, convert to events, optionally add Earcons
306
- timelineEvents = series.points.reduce(function (events, point) {
307
- var earcons = getPointEarcons(point, options.earcons || []), time = pointToTime(point);
308
- return events.concat(
309
- // Event object for point
310
- new H.sonification.TimelineEvent({
311
- eventObject: point,
312
- time: time,
313
- id: point.id,
314
- playOptions: {
315
- instruments: instruments,
316
- dataExtremes: dataExtremes,
317
- masterVolume: masterVolume
318
- }
319
- }),
320
- // Earcons
321
- earcons.map(function (earcon) {
322
- return new H.sonification.TimelineEvent({
323
- eventObject: earcon,
324
- time: time,
325
- playOptions: {
326
- volume: masterVolume
327
- }
328
- });
329
- }));
330
- }, []);
331
- // Build the timeline path
332
- return new H.sonification.TimelinePath({
333
- events: timelineEvents,
334
- onStart: function () {
335
- if (options.onStart) {
336
- options.onStart(series);
337
- }
338
- },
339
- onEventStart: function (event) {
340
- var eventObject = event.options && event.options.eventObject;
341
- if (eventObject instanceof Point) {
342
- // Check for hidden series
343
- if (!eventObject.series.visible &&
344
- !eventObject.series.chart.series.some(function (series) {
345
- return series.visible;
346
- })) {
347
- // We have no visible series, stop the path.
348
- event.timelinePath.timeline.pause();
349
- event.timelinePath.timeline.resetCursor();
350
- return false;
351
- }
352
- // Emit onPointStart
353
- if (options.onPointStart) {
354
- options.onPointStart(event, eventObject);
355
- }
356
- }
357
- },
358
- onEventEnd: function (eventData) {
359
- var eventObject = eventData.event && eventData.event.options &&
360
- eventData.event.options.eventObject;
361
- if (eventObject instanceof Point && options.onPointEnd) {
362
- options.onPointEnd(eventData.event, eventObject);
363
- }
364
- },
365
- onEnd: function () {
366
- if (options.onEnd) {
367
- options.onEnd(series);
368
- }
369
- },
370
- targetDuration: options.duration
371
- });
372
- }
373
- /* eslint-disable no-invalid-this, valid-jsdoc */
374
- /**
375
- * Sonify a series.
376
- *
377
- * @sample highcharts/sonification/series-basic/
378
- * Click on series to sonify
379
- * @sample highcharts/sonification/series-earcon/
380
- * Series with earcon
381
- * @sample highcharts/sonification/point-play-time/
382
- * Play y-axis by time
383
- * @sample highcharts/sonification/earcon-on-point/
384
- * Earcon set on point
385
- *
386
- * @requires module:modules/sonification
387
- *
388
- * @function Highcharts.Series#sonify
22
+ var addEvent = U.addEvent, extend = U.extend, merge = U.merge, pick = U.pick, splat = U.splat;
23
+ /* *
389
24
  *
390
- * @param {Highcharts.SonifySeriesOptionsObject} [options]
391
- * The options for sonifying this series. If not provided,
392
- * uses options set on chart and series.
25
+ * Functions
393
26
  *
394
- * @return {void}
395
- */
396
- function seriesSonify(options) {
397
- var mergedOptions = getSeriesSonifyOptions(this, options);
398
- var timelinePath = buildTimelinePathFromSeries(this, mergedOptions);
399
- var chartSonification = this.chart.sonification;
400
- // Only one timeline can play at a time. If we want multiple series playing
401
- // at the same time, use chart.sonify.
402
- if (chartSonification.timeline) {
403
- chartSonification.timeline.pause();
404
- }
405
- // Store reference to duration
406
- chartSonification.duration = mergedOptions.duration;
407
- // Create new timeline for this series, and play it.
408
- chartSonification.timeline = new H.sonification.Timeline({
409
- paths: [timelinePath]
410
- });
411
- chartSonification.timeline.play();
412
- }
413
- /**
414
- * Utility function to assemble options for creating a TimelinePath from a
415
- * series when sonifying an entire chart.
416
- * @private
417
- * @param {Highcharts.Series} series
418
- * The series to return options for.
419
- * @param {Highcharts.RangeObject} dataExtremes
420
- * Pre-calculated data extremes for the chart.
421
- * @param {Highcharts.SonificationOptions} chartSonifyOptions
422
- * Options passed in to chart.sonify.
423
- * @return {Partial<Highcharts.SonifySeriesOptionsObject>}
424
- * Options for buildTimelinePathFromSeries.
425
- */
426
- function buildChartSonifySeriesOptions(series, dataExtremes, chartSonifyOptions) {
427
- var additionalSeriesOptions = chartSonifyOptions.seriesOptions || {};
428
- var pointPlayTime = (series.chart.options.sonification &&
429
- series.chart.options.sonification.defaultInstrumentOptions &&
430
- series.chart.options.sonification.defaultInstrumentOptions.mapping &&
431
- series.chart.options.sonification.defaultInstrumentOptions.mapping.pointPlayTime ||
432
- 'x');
433
- var configOptions = chartOptionsToSonifySeriesOptions(series);
434
- return merge(
435
- // Options from chart configuration
436
- configOptions,
437
- // Options passed in
438
- {
439
- // Calculated dataExtremes for chart
440
- dataExtremes: dataExtremes,
441
- // We need to get timeExtremes for each series. We pass this
442
- // in when building the TimelinePath objects to avoid
443
- // calculating twice.
444
- timeExtremes: getTimeExtremes(series, pointPlayTime),
445
- // Some options we just pass on
446
- instruments: chartSonifyOptions.instruments || configOptions.instruments,
447
- onStart: chartSonifyOptions.onSeriesStart || configOptions.onStart,
448
- onEnd: chartSonifyOptions.onSeriesEnd || configOptions.onEnd,
449
- earcons: chartSonifyOptions.earcons || configOptions.earcons,
450
- masterVolume: pick(chartSonifyOptions.masterVolume, configOptions.masterVolume)
451
- },
452
- // Merge in the specific series options by ID if any are passed in
453
- isArray(additionalSeriesOptions) ? (find(additionalSeriesOptions, function (optEntry) {
454
- return optEntry.id === pick(series.id, series.options.id);
455
- }) || {}) : additionalSeriesOptions, {
456
- // Forced options
457
- pointPlayTime: pointPlayTime
458
- });
459
- }
27
+ * */
28
+ /* eslint-disable valid-jsdoc */
460
29
  /**
461
30
  * Utility function to normalize the ordering of timeline paths when sonifying
462
31
  * a chart.
@@ -511,17 +80,17 @@ function buildPathOrder(orderOptions, chart, seriesOptionsCallback) {
511
80
  }
512
81
  // Is it an earcon? If so, just create the path.
513
82
  }
514
- else if (item instanceof H.sonification.Earcon) {
83
+ else if (item instanceof Earcon) {
515
84
  // Path with a single event
516
- itemObject = new H.sonification.TimelinePath({
517
- events: [new H.sonification.TimelineEvent({
85
+ itemObject = new TimelinePath({
86
+ events: [new TimelineEvent({
518
87
  eventObject: item
519
88
  })]
520
89
  });
521
90
  }
522
91
  // Is this item a silent wait? If so, just create the path.
523
92
  if (item.silentWait) {
524
- itemObject = new H.sonification.TimelinePath({
93
+ itemObject = new TimelinePath({
525
94
  silentWait: item.silentWait
526
95
  });
527
96
  }
@@ -564,7 +133,7 @@ function addAfterSeriesWaits(order, wait) {
564
133
  })) {
565
134
  // We have a series, meaning we should add a wait after these
566
135
  // paths have finished.
567
- newOrder.push(new H.sonification.TimelinePath({
136
+ newOrder.push(new TimelinePath({
568
137
  silentWait: wait
569
138
  }));
570
139
  }
@@ -609,12 +178,12 @@ function syncSimultaneousPaths(paths) {
609
178
  paths.forEach(function (path) {
610
179
  var events = path.events, hasEvents = events && events.length, eventsToAdd = [];
611
180
  if (!(hasEvents && events[0].time <= extremes.min)) {
612
- eventsToAdd.push(new H.sonification.TimelineEvent({
181
+ eventsToAdd.push(new TimelineEvent({
613
182
  time: extremes.min
614
183
  }));
615
184
  }
616
185
  if (!(hasEvents && events[events.length - 1].time >= extremes.max)) {
617
- eventsToAdd.push(new H.sonification.TimelineEvent({
186
+ eventsToAdd.push(new TimelineEvent({
618
187
  time: extremes.max
619
188
  }));
620
189
  }
@@ -655,7 +224,7 @@ function getSimulPathDurationTotal(order) {
655
224
  */
656
225
  function getSeriesDurationMs(seriesValueDuration, totalValueDuration, totalDurationMs) {
657
226
  // A series spanning the whole chart would get the full duration.
658
- return utilities.virtualAxisTranslate(seriesValueDuration, { min: 0, max: totalValueDuration }, { min: 0, max: totalDurationMs });
227
+ return virtualAxisTranslate(seriesValueDuration, { min: 0, max: totalValueDuration }, { min: 0, max: totalDurationMs });
659
228
  }
660
229
  /**
661
230
  * Convert series building objects into paths and return a new list of
@@ -677,7 +246,7 @@ function buildPathsFromOrder(order, duration) {
677
246
  // Go through the order list and convert the items
678
247
  return order.reduce(function (allPaths, orderDef) {
679
248
  var simultaneousPaths = splat(orderDef).reduce(function (simulPaths, item) {
680
- if (item instanceof H.sonification.TimelinePath) {
249
+ if (item instanceof TimelinePath) {
681
250
  // This item is already a path object
682
251
  simulPaths.push(item);
683
252
  }
@@ -688,7 +257,7 @@ function buildPathsFromOrder(order, duration) {
688
257
  item.seriesOptions.duration || getSeriesDurationMs(item.seriesOptions.timeExtremes.max -
689
258
  item.seriesOptions.timeExtremes.min, totalUsedDuration, totalAvailableDurationMs);
690
259
  // Add the path
691
- simulPaths.push(buildTimelinePathFromSeries(item.series, item.seriesOptions));
260
+ simulPaths.push(SeriesSonify.buildTimelinePathFromSeries(item.series, item.seriesOptions));
692
261
  }
693
262
  return simulPaths;
694
263
  }, []);
@@ -697,95 +266,12 @@ function buildPathsFromOrder(order, duration) {
697
266
  return allPaths;
698
267
  }, []);
699
268
  }
700
- /**
701
- * @private
702
- * @param {Highcharts.Series} series The series to get options for.
703
- * @param {Highcharts.SonifySeriesOptionsObject} options
704
- * Options to merge with user options on series/chart and default options.
705
- * @returns {Array<Highcharts.PointInstrumentObject>} The merged options.
706
- */
707
- function getSeriesInstrumentOptions(series, options) {
708
- if (options && options.instruments) {
709
- return options.instruments;
710
- }
711
- var defaultInstrOpts = (series.chart.options.sonification &&
712
- series.chart.options.sonification.defaultInstrumentOptions ||
713
- {});
714
- var seriesInstrOpts = (series.options.sonification &&
715
- series.options.sonification.instruments ||
716
- [{}]);
717
- var removeNullsFromObject = function (obj) {
718
- objectEach(obj, function (val, key) {
719
- if (val === null) {
720
- delete obj[key];
721
- }
722
- });
723
- };
724
- // Convert series options to PointInstrumentObjects and merge with
725
- // default options
726
- return (seriesInstrOpts).map(function (optionSet) {
727
- // Allow setting option to null to use default
728
- removeNullsFromObject(optionSet.mapping || {});
729
- removeNullsFromObject(optionSet);
730
- return {
731
- instrument: optionSet.instrument || defaultInstrOpts.instrument,
732
- instrumentOptions: merge(defaultInstrOpts, optionSet, {
733
- // Instrument options are lifted to root in the API options
734
- // object, so merge all in order to avoid missing any. But
735
- // remove the following which are not instrumentOptions:
736
- mapping: void 0,
737
- instrument: void 0
738
- }),
739
- instrumentMapping: merge(defaultInstrOpts.mapping, optionSet.mapping)
740
- };
741
- });
742
- }
743
- /**
744
- * Utility function to translate between options set in chart configuration and
745
- * a SonifySeriesOptionsObject.
746
- * @private
747
- * @param {Highcharts.Series} series The series to get options for.
748
- * @returns {Highcharts.SonifySeriesOptionsObject} Options for chart/series.sonify()
749
- */
750
- function chartOptionsToSonifySeriesOptions(series) {
751
- var seriesOpts = series.options.sonification || {};
752
- var chartOpts = series.chart.options.sonification || {};
753
- var chartEvents = chartOpts.events || {};
754
- var seriesEvents = seriesOpts.events || {};
755
- return {
756
- onEnd: seriesEvents.onSeriesEnd || chartEvents.onSeriesEnd,
757
- onStart: seriesEvents.onSeriesStart || chartEvents.onSeriesStart,
758
- onPointEnd: seriesEvents.onPointEnd || chartEvents.onPointEnd,
759
- onPointStart: seriesEvents.onPointStart || chartEvents.onPointStart,
760
- pointPlayTime: (chartOpts.defaultInstrumentOptions &&
761
- chartOpts.defaultInstrumentOptions.mapping &&
762
- chartOpts.defaultInstrumentOptions.mapping.pointPlayTime),
763
- masterVolume: chartOpts.masterVolume,
764
- instruments: getSeriesInstrumentOptions(series),
765
- earcons: seriesOpts.earcons || chartOpts.earcons
766
- };
767
- }
768
- /**
769
- * @private
770
- * @param {Highcharts.Series} series The series to get options for.
771
- * @param {Highcharts.SonifySeriesOptionsObject} options
772
- * Options to merge with user options on series/chart and default options.
773
- * @returns {Highcharts.SonifySeriesOptionsObject} The merged options.
774
- */
775
- function getSeriesSonifyOptions(series, options) {
776
- var chartOpts = series.chart.options.sonification;
777
- var seriesOpts = series.options.sonification;
778
- return merge({
779
- duration: ((seriesOpts && seriesOpts.duration) ||
780
- (chartOpts && chartOpts.duration))
781
- }, chartOptionsToSonifySeriesOptions(series), options);
782
- }
783
269
  /**
784
270
  * @private
785
271
  * @param {Highcharts.Chart} chart The chart to get options for.
786
272
  * @param {Highcharts.SonificationOptions} options
787
273
  * Options to merge with user options on chart and default options.
788
- * @returns {Highcharts.SonificationOptions} The merged options.
274
+ * @return {Highcharts.SonificationOptions} The merged options.
789
275
  */
790
276
  function getChartSonifyOptions(chart, options) {
791
277
  var chartOpts = chart.options.sonification || {};
@@ -801,95 +287,6 @@ function getChartSonifyOptions(chart, options) {
801
287
  onEnd: (chartOpts.events && chartOpts.events.onEnd)
802
288
  }, options);
803
289
  }
804
- /**
805
- * Options for sonifying a chart.
806
- *
807
- * @requires module:modules/sonification
808
- *
809
- * @interface Highcharts.SonificationOptions
810
- */ /**
811
- * Duration for sonifying the entire chart. The duration is distributed across
812
- * the different series intelligently, but does not take earcons into account.
813
- * It is also possible to set the duration explicitly per series, using
814
- * `seriesOptions`. Note that points may continue to play after the duration has
815
- * passed, but no new points will start playing.
816
- * @name Highcharts.SonificationOptions#duration
817
- * @type {number}
818
- */ /**
819
- * Define the order to play the series in. This can be given as a string, or an
820
- * array specifying a custom ordering. If given as a string, valid values are
821
- * `sequential` - where each series is played in order - or `simultaneous`,
822
- * where all series are played at once. For custom ordering, supply an array as
823
- * the order. Each element in the array can be either a string with a series ID,
824
- * an Earcon object, or an object with a numeric `silentWait` property
825
- * designating a number of milliseconds to wait before continuing. Each element
826
- * of the array will be played in order. To play elements simultaneously, group
827
- * the elements in an array.
828
- * @name Highcharts.SonificationOptions#order
829
- * @type {string|Array<string|Highcharts.Earcon|Array<string|Highcharts.Earcon>>}
830
- */ /**
831
- * The axis to use for when to play the points. Can be a string with a data
832
- * property (e.g. `x`), or a function. If it is a function, this function
833
- * receives the point as argument, and should return a numeric value. The points
834
- * with the lowest numeric values are then played first, and the time between
835
- * points will be proportional to the distance between the numeric values. This
836
- * option can not be overridden per series.
837
- * @name Highcharts.SonificationOptions#pointPlayTime
838
- * @type {string|Function}
839
- */ /**
840
- * Milliseconds of silent waiting to add between series. Note that waiting time
841
- * is considered part of the sonify duration.
842
- * @name Highcharts.SonificationOptions#afterSeriesWait
843
- * @type {number|undefined}
844
- */ /**
845
- * Options as given to `series.sonify` to override options per series. If the
846
- * option is supplied as an array of options objects, the `id` property of the
847
- * object should correspond to the series' id. If the option is supplied as a
848
- * single object, the options apply to all series.
849
- * @name Highcharts.SonificationOptions#seriesOptions
850
- * @type {Object|Array<object>|undefined}
851
- */ /**
852
- * The instrument definitions for the points in this chart.
853
- * @name Highcharts.SonificationOptions#instruments
854
- * @type {Array<Highcharts.PointInstrumentObject>|undefined}
855
- */ /**
856
- * Earcons to add to the chart. Note that earcons can also be added per series
857
- * using `seriesOptions`.
858
- * @name Highcharts.SonificationOptions#earcons
859
- * @type {Array<Highcharts.EarconConfiguration>|undefined}
860
- */ /**
861
- * Optionally provide the minimum/maximum data values for the points. If this is
862
- * not supplied, it is calculated from all points in the chart on demand. This
863
- * option is supplied in the following format, as a map of point data properties
864
- * to objects with min/max values:
865
- * ```js
866
- * dataExtremes: {
867
- * y: {
868
- * min: 0,
869
- * max: 100
870
- * },
871
- * z: {
872
- * min: -10,
873
- * max: 10
874
- * }
875
- * // Properties used and not provided are calculated on demand
876
- * }
877
- * ```
878
- * @name Highcharts.SonificationOptions#dataExtremes
879
- * @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
880
- */ /**
881
- * Callback before a series is played.
882
- * @name Highcharts.SonificationOptions#onSeriesStart
883
- * @type {Function|undefined}
884
- */ /**
885
- * Callback after a series has finished playing.
886
- * @name Highcharts.SonificationOptions#onSeriesEnd
887
- * @type {Function|undefined}
888
- */ /**
889
- * Callback after the chart has played.
890
- * @name Highcharts.SonificationOptions#onEnd
891
- * @type {Function|undefined}
892
- */
893
290
  /**
894
291
  * Sonify a chart.
895
292
  *
@@ -909,10 +306,8 @@ function getChartSonifyOptions(chart, options) {
909
306
  * @function Highcharts.Chart#sonify
910
307
  *
911
308
  * @param {Highcharts.SonificationOptions} [options]
912
- * The options for sonifying this chart. If not provided,
913
- * uses options set on chart and series.
914
- *
915
- * @return {void}
309
+ * The options for sonifying this chart. If not provided,
310
+ * uses options set on chart and series.
916
311
  */
917
312
  function chartSonify(options) {
918
313
  var opts = getChartSonifyOptions(this, options);
@@ -926,7 +321,7 @@ function chartSonify(options) {
926
321
  var dataExtremes = getExtremesForInstrumentProps(this, opts.instruments, opts.dataExtremes);
927
322
  // Figure out ordering of series and custom paths
928
323
  var order = buildPathOrder(opts.order, this, function (series) {
929
- return buildChartSonifySeriesOptions(series, dataExtremes, opts);
324
+ return SeriesSonify.buildChartSonifySeriesOptions(series, dataExtremes, opts);
930
325
  });
931
326
  // Add waits after simultaneous paths with series in them.
932
327
  order = addAfterSeriesWaits(order, opts.afterSeriesWait || 0);
@@ -938,7 +333,7 @@ function chartSonify(options) {
938
333
  syncSimultaneousPaths(simultaneousPaths);
939
334
  });
940
335
  // We have a set of paths. Create the timeline, and play it.
941
- this.sonification.timeline = new H.sonification.Timeline({
336
+ this.sonification.timeline = new Timeline({
942
337
  paths: paths,
943
338
  onEnd: opts.onEnd
944
339
  });
@@ -960,7 +355,7 @@ function getCurrentPoints() {
960
355
  cursorObj = this.sonification.timeline.getCursor(); // Cursor per pathID
961
356
  return Object.keys(cursorObj).map(function (path) {
962
357
  // Get the event objects under cursor for each path
963
- return cursorObj[path].eventObject;
358
+ return cursorObj[path].options.eventObject;
964
359
  }).filter(function (eventObj) {
965
360
  // Return the events that are points
966
361
  return eventObj instanceof Point;
@@ -1092,10 +487,48 @@ function resetCursorEnd() {
1092
487
  this.sonification.timeline.resetCursorEnd();
1093
488
  }
1094
489
  }
1095
- // Export functions
1096
- var chartSonifyFunctions = {
490
+ var composedClasses = [];
491
+ /**
492
+ * @private
493
+ * @todo move to composition namespace with all functions
494
+ */
495
+ function compose(ChartClass) {
496
+ if (composedClasses.indexOf(ChartClass) === -1) {
497
+ composedClasses.push(ChartClass);
498
+ var chartProto = ChartClass.prototype;
499
+ extend(chartProto, {
500
+ sonify: chartSonify,
501
+ pauseSonify: pause,
502
+ resumeSonify: resume,
503
+ rewindSonify: rewind,
504
+ cancelSonify: cancel,
505
+ getCurrentSonifyPoints: getCurrentPoints,
506
+ setSonifyCursor: setCursor,
507
+ resetSonifyCursor: resetCursor,
508
+ resetSonifyCursorEnd: resetCursorEnd
509
+ });
510
+ // Prepare charts for sonification on init
511
+ addEvent(ChartClass, 'init', function () {
512
+ this.sonification = {};
513
+ });
514
+ // Update with chart/series/point updates
515
+ addEvent(ChartClass, 'update', function (e) {
516
+ var newOptions = e.options.sonification;
517
+ if (newOptions) {
518
+ merge(true, this.options.sonification, newOptions);
519
+ }
520
+ });
521
+ }
522
+ return ChartClass;
523
+ }
524
+ /* *
525
+ *
526
+ * Default Export
527
+ *
528
+ * */
529
+ var ChartSonify = {
1097
530
  chartSonify: chartSonify,
1098
- seriesSonify: seriesSonify,
531
+ compose: compose,
1099
532
  pause: pause,
1100
533
  resume: resume,
1101
534
  rewind: rewind,
@@ -1105,4 +538,181 @@ var chartSonifyFunctions = {
1105
538
  resetCursor: resetCursor,
1106
539
  resetCursorEnd: resetCursorEnd
1107
540
  };
1108
- export default chartSonifyFunctions;
541
+ export default ChartSonify;
542
+ /* *
543
+ *
544
+ * API Declarations
545
+ *
546
+ * */
547
+ /**
548
+ * An Earcon configuration, specifying an Earcon and when to play it.
549
+ *
550
+ * @requires module:modules/sonification
551
+ *
552
+ * @interface Highcharts.EarconConfiguration
553
+ */ /**
554
+ * An Earcon instance.
555
+ * @name Highcharts.EarconConfiguration#earcon
556
+ * @type {Highcharts.Earcon}
557
+ */ /**
558
+ * The ID of the point to play the Earcon on.
559
+ * @name Highcharts.EarconConfiguration#onPoint
560
+ * @type {string|undefined}
561
+ */ /**
562
+ * A function to determine whether or not to play this earcon on a point. The
563
+ * function is called for every point, receiving that point as parameter. It
564
+ * should return either a boolean indicating whether or not to play the earcon,
565
+ * or a new Earcon instance - in which case the new Earcon will be played.
566
+ * @name Highcharts.EarconConfiguration#condition
567
+ * @type {Function|undefined}
568
+ */
569
+ /**
570
+ * Options for sonifying a chart.
571
+ *
572
+ * @requires module:modules/sonification
573
+ *
574
+ * @interface Highcharts.SonificationOptions
575
+ */ /**
576
+ * Duration for sonifying the entire chart. The duration is distributed across
577
+ * the different series intelligently, but does not take earcons into account.
578
+ * It is also possible to set the duration explicitly per series, using
579
+ * `seriesOptions`. Note that points may continue to play after the duration has
580
+ * passed, but no new points will start playing.
581
+ * @name Highcharts.SonificationOptions#duration
582
+ * @type {number}
583
+ */ /**
584
+ * Define the order to play the series in. This can be given as a string, or an
585
+ * array specifying a custom ordering. If given as a string, valid values are
586
+ * `sequential` - where each series is played in order - or `simultaneous`,
587
+ * where all series are played at once. For custom ordering, supply an array as
588
+ * the order. Each element in the array can be either a string with a series ID,
589
+ * an Earcon object, or an object with a numeric `silentWait` property
590
+ * designating a number of milliseconds to wait before continuing. Each element
591
+ * of the array will be played in order. To play elements simultaneously, group
592
+ * the elements in an array.
593
+ * @name Highcharts.SonificationOptions#order
594
+ * @type {string|Array<string|Highcharts.Earcon|Array<string|Highcharts.Earcon>>}
595
+ */ /**
596
+ * The axis to use for when to play the points. Can be a string with a data
597
+ * property (e.g. `x`), or a function. If it is a function, this function
598
+ * receives the point as argument, and should return a numeric value. The points
599
+ * with the lowest numeric values are then played first, and the time between
600
+ * points will be proportional to the distance between the numeric values. This
601
+ * option can not be overridden per series.
602
+ * @name Highcharts.SonificationOptions#pointPlayTime
603
+ * @type {string|Function}
604
+ */ /**
605
+ * Milliseconds of silent waiting to add between series. Note that waiting time
606
+ * is considered part of the sonify duration.
607
+ * @name Highcharts.SonificationOptions#afterSeriesWait
608
+ * @type {number|undefined}
609
+ */ /**
610
+ * Options as given to `series.sonify` to override options per series. If the
611
+ * option is supplied as an array of options objects, the `id` property of the
612
+ * object should correspond to the series' id. If the option is supplied as a
613
+ * single object, the options apply to all series.
614
+ * @name Highcharts.SonificationOptions#seriesOptions
615
+ * @type {Object|Array<object>|undefined}
616
+ */ /**
617
+ * The instrument definitions for the points in this chart.
618
+ * @name Highcharts.SonificationOptions#instruments
619
+ * @type {Array<Highcharts.PointInstrumentObject>|undefined}
620
+ */ /**
621
+ * Earcons to add to the chart. Note that earcons can also be added per series
622
+ * using `seriesOptions`.
623
+ * @name Highcharts.SonificationOptions#earcons
624
+ * @type {Array<Highcharts.EarconConfiguration>|undefined}
625
+ */ /**
626
+ * Optionally provide the minimum/maximum data values for the points. If this is
627
+ * not supplied, it is calculated from all points in the chart on demand. This
628
+ * option is supplied in the following format, as a map of point data properties
629
+ * to objects with min/max values:
630
+ * ```js
631
+ * dataExtremes: {
632
+ * y: {
633
+ * min: 0,
634
+ * max: 100
635
+ * },
636
+ * z: {
637
+ * min: -10,
638
+ * max: 10
639
+ * }
640
+ * // Properties used and not provided are calculated on demand
641
+ * }
642
+ * ```
643
+ * @name Highcharts.SonificationOptions#dataExtremes
644
+ * @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
645
+ */ /**
646
+ * Callback before a series is played.
647
+ * @name Highcharts.SonificationOptions#onSeriesStart
648
+ * @type {Function|undefined}
649
+ */ /**
650
+ * Callback after a series has finished playing.
651
+ * @name Highcharts.SonificationOptions#onSeriesEnd
652
+ * @type {Function|undefined}
653
+ */ /**
654
+ * Callback after the chart has played.
655
+ * @name Highcharts.SonificationOptions#onEnd
656
+ * @type {Function|undefined}
657
+ */
658
+ /**
659
+ * Options for sonifying a series.
660
+ *
661
+ * @requires module:modules/sonification
662
+ *
663
+ * @interface Highcharts.SonifySeriesOptionsObject
664
+ */ /**
665
+ * The duration for playing the points. Note that points might continue to play
666
+ * after the duration has passed, but no new points will start playing.
667
+ * @name Highcharts.SonifySeriesOptionsObject#duration
668
+ * @type {number}
669
+ */ /**
670
+ * The axis to use for when to play the points. Can be a string with a data
671
+ * property (e.g. `x`), or a function. If it is a function, this function
672
+ * receives the point as argument, and should return a numeric value. The points
673
+ * with the lowest numeric values are then played first, and the time between
674
+ * points will be proportional to the distance between the numeric values.
675
+ * @name Highcharts.SonifySeriesOptionsObject#pointPlayTime
676
+ * @type {string|Function}
677
+ */ /**
678
+ * The instrument definitions for the points in this series.
679
+ * @name Highcharts.SonifySeriesOptionsObject#instruments
680
+ * @type {Array<Highcharts.PointInstrumentObject>}
681
+ */ /**
682
+ * Earcons to add to the series.
683
+ * @name Highcharts.SonifySeriesOptionsObject#earcons
684
+ * @type {Array<Highcharts.EarconConfiguration>|undefined}
685
+ */ /**
686
+ * Optionally provide the minimum/maximum data values for the points. If this is
687
+ * not supplied, it is calculated from all points in the chart on demand. This
688
+ * option is supplied in the following format, as a map of point data properties
689
+ * to objects with min/max values:
690
+ * ```js
691
+ * dataExtremes: {
692
+ * y: {
693
+ * min: 0,
694
+ * max: 100
695
+ * },
696
+ * z: {
697
+ * min: -10,
698
+ * max: 10
699
+ * }
700
+ * // Properties used and not provided are calculated on demand
701
+ * }
702
+ * ```
703
+ * @name Highcharts.SonifySeriesOptionsObject#dataExtremes
704
+ * @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
705
+ */ /**
706
+ * Callback before a point is played.
707
+ * @name Highcharts.SonifySeriesOptionsObject#onPointStart
708
+ * @type {Function|undefined}
709
+ */ /**
710
+ * Callback after a point has finished playing.
711
+ * @name Highcharts.SonifySeriesOptionsObject#onPointEnd
712
+ * @type {Function|undefined}
713
+ */ /**
714
+ * Callback after the series has played.
715
+ * @name Highcharts.SonifySeriesOptionsObject#onEnd
716
+ * @type {Function|undefined}
717
+ */
718
+ ''; // detach doclets above