highcharts 9.2.1 → 9.3.2

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 (896) 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 +46 -1
  6. package/css/highcharts.scss +40 -0
  7. package/css/stocktools/gui.css +1 -1
  8. package/css/themes/dark-unica.css +46 -1
  9. package/css/themes/grid-light.css +46 -1
  10. package/css/themes/sand-signika.css +46 -1
  11. package/es-modules/Accessibility/A11yI18n.js +269 -224
  12. package/es-modules/Accessibility/Accessibility.js +244 -129
  13. package/es-modules/Accessibility/AccessibilityComponent.js +78 -313
  14. package/es-modules/Accessibility/Components/AnnotationsA11y.js +19 -5
  15. package/es-modules/Accessibility/Components/ContainerComponent.js +53 -28
  16. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +178 -120
  17. package/es-modules/Accessibility/Components/LegendComponent.js +251 -129
  18. package/es-modules/Accessibility/Components/MenuComponent.js +239 -154
  19. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +172 -93
  20. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +161 -115
  21. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +138 -69
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +67 -28
  23. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +48 -56
  24. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +387 -343
  25. package/es-modules/Accessibility/Components/ZoomComponent.js +156 -70
  26. package/es-modules/Accessibility/FocusBorder.js +192 -152
  27. package/es-modules/Accessibility/HighContrastMode.js +79 -66
  28. package/es-modules/Accessibility/HighContrastTheme.js +10 -0
  29. package/es-modules/Accessibility/KeyboardNavigation.js +151 -75
  30. package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
  31. package/es-modules/Accessibility/Options/DeprecatedOptions.js +21 -4
  32. package/es-modules/Accessibility/Options/LangOptions.js +4 -5
  33. package/es-modules/Accessibility/Options/Options.js +32 -17
  34. package/es-modules/Accessibility/ProxyElement.js +218 -0
  35. package/es-modules/Accessibility/ProxyProvider.js +302 -0
  36. package/es-modules/Accessibility/Utils/Announcer.js +17 -10
  37. package/es-modules/Accessibility/Utils/ChartUtilities.js +55 -45
  38. package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
  39. package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
  40. package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -42
  41. package/es-modules/Core/Animation/Fx.js +5 -14
  42. package/es-modules/Core/Axis/Axis.js +77 -96
  43. package/es-modules/Core/Axis/Axis3D.js +10 -4
  44. package/es-modules/Core/Axis/AxisDefaults.js +35 -24
  45. package/es-modules/Core/Axis/BrokenAxis.js +17 -11
  46. package/es-modules/Core/Axis/Color/ColorAxis.js +7 -4
  47. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +55 -5
  48. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
  49. package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
  50. package/es-modules/Core/Axis/GridAxis.js +26 -16
  51. package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
  52. package/es-modules/Core/Axis/OrdinalAxis.js +88 -92
  53. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
  54. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
  55. package/es-modules/Core/Axis/RadialAxis.js +7 -28
  56. package/es-modules/Core/Axis/ScrollbarAxis.js +27 -12
  57. package/es-modules/Core/Axis/StackingAxis.js +2 -1
  58. package/es-modules/Core/Axis/Tick.js +2 -4
  59. package/es-modules/Core/Axis/TreeGridAxis.js +28 -19
  60. package/es-modules/Core/Axis/TreeGridTick.js +5 -3
  61. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  62. package/es-modules/Core/Axis/ZAxis.js +1 -1
  63. package/es-modules/Core/Chart/Chart.js +44 -47
  64. package/es-modules/Core/Chart/Chart3D.js +23 -10
  65. package/es-modules/Core/Chart/ChartDefaults.js +3 -4
  66. package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  67. package/es-modules/Core/Chart/GanttChart.js +4 -4
  68. package/es-modules/Core/Chart/MapChart.js +13 -25
  69. package/es-modules/Core/Chart/StockChart.js +13 -316
  70. package/es-modules/Core/Color/Palettes.js +22 -0
  71. package/es-modules/Core/DefaultOptions.js +22 -19
  72. package/es-modules/Core/Foundation.js +39 -31
  73. package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
  74. package/es-modules/Core/Globals.js +1 -1
  75. package/es-modules/Core/HttpUtilities.js +8 -7
  76. package/es-modules/Core/Legend/Legend.js +19 -16
  77. package/es-modules/Core/Navigator.js +41 -30
  78. package/es-modules/Core/Pointer.js +52 -45
  79. package/es-modules/Core/Renderer/HTML/AST.js +29 -14
  80. package/es-modules/Core/Renderer/HTML/HTMLElement.js +27 -20
  81. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
  82. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  83. package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -20
  84. package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
  85. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +25 -29
  86. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
  87. package/es-modules/Core/Renderer/SVG/TextBuilder.js +18 -12
  88. package/es-modules/Core/Responsive.js +2 -3
  89. package/es-modules/Core/Scrollbar.js +14 -12
  90. package/es-modules/Core/ScrollbarDefaults.js +10 -9
  91. package/es-modules/Core/Series/DataLabel.js +19 -15
  92. package/es-modules/Core/Series/Point.js +22 -19
  93. package/es-modules/Core/Series/Series.js +200 -235
  94. package/es-modules/Core/Series/SeriesDefaults.js +8 -8
  95. package/es-modules/Core/Series/SeriesRegistry.js +1 -2
  96. package/es-modules/Core/Time.js +14 -11
  97. package/es-modules/Core/Tooltip.js +63 -53
  98. package/es-modules/Core/Utilities.js +20 -24
  99. package/es-modules/Data/DataConverter.js +483 -0
  100. package/es-modules/Data/DataPromise.js +252 -0
  101. package/es-modules/Data/DataSeriesConverter.js +207 -0
  102. package/es-modules/Data/DataTable.js +1205 -0
  103. package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  104. package/es-modules/Data/Modifiers/DataModifier.js +303 -0
  105. package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  106. package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  107. package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  108. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  109. package/es-modules/Data/Modifiers/SortModifier.js +249 -0
  110. package/es-modules/Data/Parsers/CSVParser.js +400 -0
  111. package/es-modules/Data/Parsers/DataParser.js +101 -0
  112. package/es-modules/Data/Parsers/GoogleSheetsParser.js +223 -0
  113. package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  114. package/es-modules/Data/Stores/CSVStore.js +317 -0
  115. package/es-modules/Data/Stores/DataStore.js +276 -0
  116. package/es-modules/Data/Stores/GoogleSheetsStore.js +169 -0
  117. package/es-modules/Data/Stores/HTMLTableStore.js +353 -0
  118. package/es-modules/Extensions/Annotations/Annotations.js +69 -18
  119. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -3
  120. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
  121. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  122. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
  123. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
  124. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
  125. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
  126. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +13 -4
  127. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
  128. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
  129. package/es-modules/Extensions/Annotations/NavigationBindings.js +120 -53
  130. package/es-modules/Extensions/Annotations/Popup.js +494 -148
  131. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
  132. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +5 -3
  133. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
  134. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
  135. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  136. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
  137. package/es-modules/Extensions/Annotations/Types/Measure.js +29 -19
  138. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +7 -6
  139. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +211 -0
  140. package/es-modules/Extensions/Annotations/Types/Tunnel.js +13 -10
  141. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
  142. package/es-modules/Extensions/Boost/BoostOptions.js +2 -2
  143. package/es-modules/Extensions/Boost/BoostOverrides.js +6 -10
  144. package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
  145. package/es-modules/Extensions/Boost/WGLRenderer.js +16 -12
  146. package/es-modules/Extensions/Boost/WGLShader.js +13 -11
  147. package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
  148. package/es-modules/Extensions/BoostCanvas.js +1 -2
  149. package/es-modules/Extensions/CurrentDateIndication.js +2 -3
  150. package/es-modules/Extensions/Data.js +77 -115
  151. package/es-modules/Extensions/DataGrouping.js +54 -32
  152. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  153. package/es-modules/Extensions/DownloadURL.js +2 -2
  154. package/es-modules/Extensions/DragPanes.js +1 -2
  155. package/es-modules/Extensions/DraggablePoints.js +7 -8
  156. package/es-modules/Extensions/Drilldown.js +11 -7
  157. package/es-modules/Extensions/ExportData.js +6 -5
  158. package/es-modules/Extensions/Exporting/Exporting.js +35 -48
  159. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  160. package/es-modules/Extensions/FullScreen.js +4 -3
  161. package/es-modules/Extensions/GeoJSON.js +42 -66
  162. package/es-modules/Extensions/MarkerClusters.js +118 -98
  163. package/es-modules/Extensions/Math3D.js +4 -4
  164. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  165. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +33 -33
  166. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  167. package/es-modules/Extensions/Oldie/Oldie.js +14 -79
  168. package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
  169. package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
  170. package/es-modules/Extensions/Pane.js +11 -12
  171. package/es-modules/Extensions/ParallelCoordinates.js +5 -3
  172. package/es-modules/Extensions/PatternFill.js +17 -11
  173. package/es-modules/Extensions/Polar.js +7 -4
  174. package/es-modules/Extensions/PriceIndication.js +2 -1
  175. package/es-modules/Extensions/RangeSelector.js +22 -59
  176. package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
  177. package/es-modules/Extensions/SeriesLabel.js +1 -1
  178. package/es-modules/Extensions/Sonification/ChartSonify.js +279 -663
  179. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  180. package/es-modules/Extensions/Sonification/Instrument.js +493 -426
  181. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  182. package/es-modules/Extensions/Sonification/Options.js +10 -0
  183. package/es-modules/Extensions/Sonification/PointSonify.js +207 -152
  184. package/es-modules/Extensions/Sonification/SeriesSonify.js +474 -0
  185. package/es-modules/Extensions/Sonification/SignalHandler.js +122 -0
  186. package/es-modules/Extensions/Sonification/Sonification.js +27 -53
  187. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +70 -88
  188. package/es-modules/Extensions/Sonification/Timeline.js +250 -567
  189. package/es-modules/Extensions/Sonification/TimelineEvent.js +157 -0
  190. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  191. package/es-modules/Extensions/Stacking.js +5 -23
  192. package/es-modules/Extensions/Themes/BrandDark.js +293 -0
  193. package/es-modules/Extensions/Themes/BrandLight.js +259 -0
  194. package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
  195. package/es-modules/Extensions/Themes/Grid.js +4 -2
  196. package/es-modules/Extensions/Themes/GridLight.js +4 -2
  197. package/es-modules/Gantt/Connection.js +2 -2
  198. package/es-modules/Gantt/Pathfinder.js +6 -5
  199. package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
  200. package/es-modules/Maps/MapNavigation.js +30 -68
  201. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  202. package/es-modules/Maps/MapPointer.js +8 -5
  203. package/es-modules/Maps/MapSymbols.js +23 -3
  204. package/es-modules/Maps/MapView.js +450 -0
  205. package/es-modules/Maps/MapViewOptionsDefault.js +97 -0
  206. package/es-modules/Maps/Projection.js +436 -0
  207. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  208. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  209. package/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
  210. package/es-modules/Maps/Projections/Miller.js +16 -0
  211. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  212. package/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
  213. package/es-modules/Maps/Projections/WebMercator.js +24 -0
  214. package/es-modules/Series/Area/AreaSeries.js +13 -13
  215. package/es-modules/Series/Area3DSeries.js +4 -2
  216. package/es-modules/Series/AreaRange/AreaRangeSeries.js +28 -17
  217. package/es-modules/Series/Bellcurve/BellcurveSeries.js +4 -9
  218. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  219. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  220. package/es-modules/Series/Bubble/BubbleLegendItem.js +5 -15
  221. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  222. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  223. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -19
  224. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  225. package/es-modules/{Mixins/ColorMapSeries.js → Series/ColorMapMixin.js} +10 -8
  226. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  227. package/es-modules/Series/Column/ColumnSeries.js +19 -18
  228. package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
  229. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +11 -8
  230. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  231. package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
  232. package/es-modules/Series/DataModifyComposition.js +539 -0
  233. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  234. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
  235. package/es-modules/Series/DerivedComposition.js +137 -0
  236. package/es-modules/Series/DrawPointComposition.js +111 -0
  237. package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
  238. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -6
  239. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  240. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  241. package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
  242. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  243. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
  244. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
  245. package/es-modules/Series/Gantt/GanttPoint.js +1 -1
  246. package/es-modules/Series/Gantt/GanttSeries.js +3 -3
  247. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  248. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  249. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  250. package/es-modules/Series/HLC/HLCSeries.js +378 -0
  251. package/es-modules/Series/Heatmap/HeatmapPoint.js +13 -14
  252. package/es-modules/Series/Heatmap/HeatmapSeries.js +24 -12
  253. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +10 -9
  254. package/es-modules/Series/Histogram/HistogramSeries.js +7 -11
  255. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
  256. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +28 -30
  257. package/es-modules/Series/Item/ItemSeries.js +4 -5
  258. package/es-modules/Series/Line/LineSeries.js +1 -2
  259. package/es-modules/Series/Map/MapPoint.js +27 -14
  260. package/es-modules/Series/Map/MapSeries.js +283 -322
  261. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  262. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  263. package/es-modules/Series/MapLine/MapLineSeries.js +2 -4
  264. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  265. package/es-modules/Series/MapPoint/MapPointSeries.js +99 -14
  266. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
  267. package/es-modules/Series/Networkgraph/Integrations.js +8 -22
  268. package/es-modules/Series/Networkgraph/Networkgraph.js +6 -10
  269. package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
  270. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +78 -30
  271. package/es-modules/Series/OHLC/OHLCPoint.js +2 -7
  272. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  273. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  274. package/es-modules/Series/Organization/OrganizationSeries.js +6 -5
  275. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
  276. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  277. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +48 -10
  278. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  279. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  280. package/es-modules/Series/Pie/PiePoint.js +2 -2
  281. package/es-modules/Series/Pie/PieSeries.js +7 -8
  282. package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
  283. package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
  284. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  285. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
  286. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  287. package/es-modules/Series/Sankey/SankeySeries.js +92 -22
  288. package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
  289. package/es-modules/Series/Spline/SplineSeries.js +0 -8
  290. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  291. package/es-modules/Series/Sunburst/SunburstSeries.js +6 -6
  292. package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
  293. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -5
  294. package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
  295. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  296. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +88 -78
  297. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  298. package/es-modules/Series/Treemap/TreemapSeries.js +22 -25
  299. package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
  300. package/es-modules/Series/Venn/VennPoint.js +16 -7
  301. package/es-modules/Series/Venn/VennSeries.js +11 -17
  302. package/es-modules/Series/Venn/VennUtils.js +551 -439
  303. package/es-modules/Series/Waterfall/WaterfallSeries.js +8 -6
  304. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  305. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  306. package/es-modules/Series/Wordcloud/WordcloudSeries.js +26 -22
  307. package/es-modules/Series/Wordcloud/WordcloudUtils.js +669 -484
  308. package/es-modules/Series/XRange/XRangePoint.js +7 -12
  309. package/es-modules/Series/XRange/XRangeSeries.js +4 -20
  310. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +15 -6
  311. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  312. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  313. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +4 -6
  314. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  315. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  316. package/es-modules/Stock/Indicators/BB/BBIndicator.js +39 -11
  317. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
  318. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  319. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  320. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +28 -16
  321. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +18 -11
  322. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  323. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
  324. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +23 -9
  325. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +16 -19
  326. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +32 -14
  327. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  328. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  329. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  330. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +2 -3
  331. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +294 -0
  332. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  333. package/es-modules/Stock/Indicators/PC/PCIndicator.js +25 -13
  334. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  335. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
  336. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
  337. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  338. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +32 -50
  339. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  340. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -9
  341. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  342. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  343. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  344. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +26 -10
  345. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
  346. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  347. package/es-modules/Stock/StockToolsBindings.js +156 -47
  348. package/es-modules/Stock/StockToolsGui.js +442 -37
  349. package/es-modules/masters/highcharts-3d.src.js +1 -1
  350. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  351. package/es-modules/masters/highcharts-more.src.js +1 -1
  352. package/es-modules/masters/highcharts.src.js +1 -1
  353. package/es-modules/masters/highmaps.src.js +1 -1
  354. package/es-modules/masters/highstock.src.js +1 -1
  355. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  356. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  357. package/es-modules/masters/indicators/ao.src.js +1 -1
  358. package/es-modules/masters/indicators/apo.src.js +1 -1
  359. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  360. package/es-modules/masters/indicators/aroon.src.js +1 -1
  361. package/es-modules/masters/indicators/atr.src.js +1 -1
  362. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  363. package/es-modules/masters/indicators/cci.src.js +1 -1
  364. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  365. package/es-modules/masters/indicators/cmf.src.js +1 -1
  366. package/es-modules/masters/indicators/cmo.src.js +1 -1
  367. package/es-modules/masters/indicators/dema.src.js +1 -1
  368. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  369. package/es-modules/masters/indicators/dmi.src.js +1 -1
  370. package/es-modules/masters/indicators/dpo.src.js +1 -1
  371. package/es-modules/masters/indicators/ema.src.js +4 -10
  372. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  373. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  374. package/es-modules/masters/indicators/indicators.src.js +2 -1
  375. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  376. package/es-modules/masters/indicators/klinger.src.js +1 -1
  377. package/es-modules/masters/indicators/macd.src.js +1 -1
  378. package/es-modules/masters/indicators/mfi.src.js +1 -1
  379. package/es-modules/masters/indicators/momentum.src.js +1 -1
  380. package/es-modules/masters/indicators/natr.src.js +1 -1
  381. package/es-modules/masters/indicators/obv.src.js +1 -1
  382. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  383. package/es-modules/masters/indicators/ppo.src.js +1 -1
  384. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  385. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  386. package/es-modules/masters/indicators/psar.src.js +1 -1
  387. package/es-modules/masters/indicators/regressions.src.js +1 -1
  388. package/es-modules/masters/indicators/roc.src.js +1 -1
  389. package/es-modules/masters/indicators/rsi.src.js +1 -1
  390. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  391. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  392. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  393. package/es-modules/masters/indicators/tema.src.js +1 -1
  394. package/es-modules/masters/indicators/trendline.src.js +1 -1
  395. package/es-modules/masters/indicators/trix.src.js +1 -1
  396. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  397. package/es-modules/masters/indicators/vwap.src.js +1 -1
  398. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  399. package/es-modules/masters/indicators/wma.src.js +1 -1
  400. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  401. package/es-modules/masters/modules/accessibility.src.js +16 -2
  402. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  403. package/es-modules/masters/modules/annotations.src.js +1 -1
  404. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  405. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  406. package/es-modules/masters/modules/boost.src.js +1 -1
  407. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  408. package/es-modules/masters/modules/bullet.src.js +1 -1
  409. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  410. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  411. package/es-modules/masters/modules/cylinder.src.js +1 -1
  412. package/es-modules/masters/modules/data.src.js +6 -3
  413. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  414. package/es-modules/masters/modules/debugger.src.js +1 -1
  415. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  416. package/es-modules/masters/modules/dotplot.src.js +1 -1
  417. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  418. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  419. package/es-modules/masters/modules/drilldown.src.js +1 -1
  420. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  421. package/es-modules/masters/modules/export-data.src.js +1 -1
  422. package/es-modules/masters/modules/exporting.src.js +1 -1
  423. package/es-modules/masters/modules/full-screen.src.js +1 -1
  424. package/es-modules/masters/modules/funnel.src.js +1 -1
  425. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  426. package/es-modules/masters/modules/gantt.src.js +1 -1
  427. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  428. package/es-modules/masters/modules/heatmap.src.js +1 -2
  429. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  430. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  431. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  432. package/es-modules/masters/modules/item-series.src.js +1 -1
  433. package/es-modules/masters/modules/lollipop.src.js +1 -1
  434. package/es-modules/masters/modules/map.src.js +1 -3
  435. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  436. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  437. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  438. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  439. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  440. package/es-modules/masters/modules/oldie.src.js +1 -1
  441. package/es-modules/masters/modules/organization.src.js +1 -1
  442. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  443. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  444. package/es-modules/masters/modules/pareto.src.js +1 -1
  445. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  446. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  447. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  448. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  449. package/es-modules/masters/modules/sankey.src.js +1 -1
  450. package/es-modules/masters/modules/series-label.src.js +1 -1
  451. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  452. package/es-modules/masters/modules/sonification.src.js +33 -2
  453. package/es-modules/masters/modules/static-scale.src.js +1 -1
  454. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  455. package/es-modules/masters/modules/stock.src.js +4 -1
  456. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  457. package/es-modules/masters/modules/sunburst.src.js +1 -1
  458. package/es-modules/masters/modules/tilemap.src.js +1 -1
  459. package/es-modules/masters/modules/timeline.src.js +1 -1
  460. package/es-modules/masters/modules/treegrid.src.js +1 -1
  461. package/es-modules/masters/modules/treemap.src.js +1 -1
  462. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  463. package/es-modules/masters/modules/variwide.src.js +1 -1
  464. package/es-modules/masters/modules/vector.src.js +1 -1
  465. package/es-modules/masters/modules/venn.src.js +1 -1
  466. package/es-modules/masters/modules/windbarb.src.js +1 -1
  467. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  468. package/es-modules/masters/modules/xrange.src.js +1 -1
  469. package/es-modules/masters/themes/avocado.src.js +1 -1
  470. package/es-modules/masters/themes/brand-dark.src.js +14 -0
  471. package/es-modules/masters/themes/brand-light.src.js +14 -0
  472. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  473. package/es-modules/masters/themes/dark-green.src.js +1 -1
  474. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  475. package/es-modules/masters/themes/gray.src.js +1 -1
  476. package/es-modules/masters/themes/grid-light.src.js +1 -1
  477. package/es-modules/masters/themes/grid.src.js +1 -1
  478. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  479. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  480. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  481. package/es-modules/masters/themes/skies.src.js +1 -1
  482. package/es-modules/masters/themes/sunset.src.js +1 -1
  483. package/highcharts-3d.js +1 -1
  484. package/highcharts-3d.js.map +1 -1
  485. package/highcharts-3d.src.js +65 -35
  486. package/highcharts-gantt.js +800 -803
  487. package/highcharts-gantt.js.map +1 -1
  488. package/highcharts-gantt.src.js +1359 -1429
  489. package/highcharts-more.js +194 -193
  490. package/highcharts-more.js.map +1 -1
  491. package/highcharts-more.src.js +280 -222
  492. package/highcharts.d.ts +10228 -768
  493. package/highcharts.js +585 -588
  494. package/highcharts.js.map +1 -1
  495. package/highcharts.src.d.ts +10228 -768
  496. package/highcharts.src.js +995 -1066
  497. package/highmaps.js +727 -707
  498. package/highmaps.js.map +1 -1
  499. package/highmaps.src.js +3243 -2135
  500. package/highstock.js +788 -783
  501. package/highstock.js.map +1 -1
  502. package/highstock.src.js +2492 -1981
  503. package/indicators/acceleration-bands.d.ts +17 -1
  504. package/indicators/acceleration-bands.js +11 -9
  505. package/indicators/acceleration-bands.js.map +1 -1
  506. package/indicators/acceleration-bands.src.d.ts +17 -1
  507. package/indicators/acceleration-bands.src.js +238 -112
  508. package/indicators/accumulation-distribution.js +1 -1
  509. package/indicators/accumulation-distribution.src.js +1 -1
  510. package/indicators/ao.js +6 -6
  511. package/indicators/ao.js.map +1 -1
  512. package/indicators/ao.src.js +4 -4
  513. package/indicators/apo.js +5 -6
  514. package/indicators/apo.js.map +1 -1
  515. package/indicators/apo.src.js +16 -84
  516. package/indicators/aroon-oscillator.d.ts +17 -1
  517. package/indicators/aroon-oscillator.js +10 -9
  518. package/indicators/aroon-oscillator.js.map +1 -1
  519. package/indicators/aroon-oscillator.src.d.ts +17 -1
  520. package/indicators/aroon-oscillator.src.js +230 -177
  521. package/indicators/aroon.d.ts +17 -1
  522. package/indicators/aroon.js +11 -9
  523. package/indicators/aroon.js.map +1 -1
  524. package/indicators/aroon.src.d.ts +17 -1
  525. package/indicators/aroon.src.js +227 -112
  526. package/indicators/atr.js +1 -1
  527. package/indicators/atr.src.js +1 -1
  528. package/indicators/bollinger-bands.d.ts +17 -1
  529. package/indicators/bollinger-bands.js +12 -9
  530. package/indicators/bollinger-bands.js.map +1 -1
  531. package/indicators/bollinger-bands.src.d.ts +17 -1
  532. package/indicators/bollinger-bands.src.js +262 -117
  533. package/indicators/cci.js +1 -1
  534. package/indicators/cci.src.js +1 -1
  535. package/indicators/chaikin.js +8 -9
  536. package/indicators/chaikin.js.map +1 -1
  537. package/indicators/chaikin.src.js +8 -76
  538. package/indicators/cmf.js +1 -1
  539. package/indicators/cmf.js.map +1 -1
  540. package/indicators/cmf.src.js +36 -16
  541. package/indicators/cmo.js +1 -1
  542. package/indicators/cmo.src.js +1 -1
  543. package/indicators/dema.js +5 -6
  544. package/indicators/dema.js.map +1 -1
  545. package/indicators/dema.src.js +3 -75
  546. package/indicators/disparity-index.js +6 -7
  547. package/indicators/disparity-index.js.map +1 -1
  548. package/indicators/disparity-index.src.js +20 -74
  549. package/indicators/dmi.js +12 -11
  550. package/indicators/dmi.js.map +1 -1
  551. package/indicators/dmi.src.js +252 -121
  552. package/indicators/dpo.js +1 -1
  553. package/indicators/dpo.src.js +1 -1
  554. package/indicators/ema.js +1 -13
  555. package/indicators/ema.js.map +1 -1
  556. package/indicators/ema.src.js +7 -188
  557. package/indicators/ichimoku-kinko-hyo.js +1 -1
  558. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  559. package/indicators/ichimoku-kinko-hyo.src.js +7 -7
  560. package/indicators/indicators-all.d.ts +17 -1
  561. package/indicators/indicators-all.js +198 -203
  562. package/indicators/indicators-all.js.map +1 -1
  563. package/indicators/indicators-all.src.d.ts +17 -1
  564. package/indicators/indicators-all.src.js +892 -777
  565. package/indicators/indicators.js +12 -12
  566. package/indicators/indicators.js.map +1 -1
  567. package/indicators/indicators.src.js +213 -144
  568. package/indicators/keltner-channels.d.ts +17 -1
  569. package/indicators/keltner-channels.js +11 -10
  570. package/indicators/keltner-channels.js.map +1 -1
  571. package/indicators/keltner-channels.src.d.ts +17 -1
  572. package/indicators/keltner-channels.src.js +246 -118
  573. package/indicators/klinger.js +14 -13
  574. package/indicators/klinger.js.map +1 -1
  575. package/indicators/klinger.src.js +239 -187
  576. package/indicators/macd.js +2 -2
  577. package/indicators/macd.js.map +1 -1
  578. package/indicators/macd.src.js +3 -4
  579. package/indicators/mfi.js +1 -1
  580. package/indicators/mfi.src.js +1 -1
  581. package/indicators/momentum.js +1 -1
  582. package/indicators/momentum.src.js +1 -1
  583. package/indicators/natr.js +3 -3
  584. package/indicators/natr.js.map +1 -1
  585. package/indicators/natr.src.js +2 -4
  586. package/indicators/obv.js +1 -1
  587. package/indicators/obv.src.js +1 -1
  588. package/indicators/pivot-points.js +1 -1
  589. package/indicators/pivot-points.js.map +1 -1
  590. package/indicators/pivot-points.src.js +3 -2
  591. package/indicators/ppo.js +5 -6
  592. package/indicators/ppo.js.map +1 -1
  593. package/indicators/ppo.src.js +3 -75
  594. package/indicators/price-channel.d.ts +17 -1
  595. package/indicators/price-channel.js +11 -9
  596. package/indicators/price-channel.js.map +1 -1
  597. package/indicators/price-channel.src.d.ts +17 -1
  598. package/indicators/price-channel.src.js +288 -168
  599. package/indicators/price-envelopes.js +1 -1
  600. package/indicators/price-envelopes.src.js +1 -1
  601. package/indicators/psar.js +1 -1
  602. package/indicators/psar.src.js +1 -1
  603. package/indicators/regressions.js +1 -1
  604. package/indicators/regressions.js.map +1 -1
  605. package/indicators/regressions.src.js +39 -21
  606. package/indicators/roc.js +1 -1
  607. package/indicators/roc.src.js +1 -1
  608. package/indicators/rsi.js +1 -1
  609. package/indicators/rsi.js.map +1 -1
  610. package/indicators/rsi.src.js +3 -2
  611. package/indicators/slow-stochastic.js +5 -6
  612. package/indicators/slow-stochastic.js.map +1 -1
  613. package/indicators/slow-stochastic.src.js +2 -72
  614. package/indicators/stochastic.d.ts +17 -1
  615. package/indicators/stochastic.js +12 -10
  616. package/indicators/stochastic.js.map +1 -1
  617. package/indicators/stochastic.src.d.ts +17 -1
  618. package/indicators/stochastic.src.js +282 -165
  619. package/indicators/supertrend.js +10 -10
  620. package/indicators/supertrend.js.map +1 -1
  621. package/indicators/supertrend.src.js +6 -7
  622. package/indicators/tema.js +6 -7
  623. package/indicators/tema.js.map +1 -1
  624. package/indicators/tema.src.js +28 -75
  625. package/indicators/trendline.js +1 -1
  626. package/indicators/trendline.src.js +1 -1
  627. package/indicators/trix.js +4 -5
  628. package/indicators/trix.js.map +1 -1
  629. package/indicators/trix.src.js +8 -76
  630. package/indicators/volume-by-price.js +16 -16
  631. package/indicators/volume-by-price.js.map +1 -1
  632. package/indicators/volume-by-price.src.js +27 -10
  633. package/indicators/vwap.js +1 -1
  634. package/indicators/vwap.js.map +1 -1
  635. package/indicators/vwap.src.js +20 -8
  636. package/indicators/williams-r.js +5 -6
  637. package/indicators/williams-r.js.map +1 -1
  638. package/indicators/williams-r.src.js +41 -51
  639. package/indicators/wma.js +1 -1
  640. package/indicators/wma.src.js +1 -1
  641. package/indicators/zigzag.js +1 -1
  642. package/indicators/zigzag.src.js +1 -1
  643. package/modules/accessibility.d.ts +0 -30
  644. package/modules/accessibility.js +240 -216
  645. package/modules/accessibility.js.map +1 -1
  646. package/modules/accessibility.src.d.ts +0 -30
  647. package/modules/accessibility.src.js +7807 -6400
  648. package/modules/annotations-advanced.d.ts +30 -0
  649. package/modules/annotations-advanced.js +192 -165
  650. package/modules/annotations-advanced.js.map +1 -1
  651. package/modules/annotations-advanced.src.d.ts +30 -0
  652. package/modules/annotations-advanced.src.js +1716 -416
  653. package/modules/annotations.js +125 -110
  654. package/modules/annotations.js.map +1 -1
  655. package/modules/annotations.src.js +1059 -304
  656. package/modules/arrow-symbols.js +1 -1
  657. package/modules/arrow-symbols.src.js +1 -1
  658. package/modules/boost-canvas.js +15 -15
  659. package/modules/boost-canvas.js.map +1 -1
  660. package/modules/boost-canvas.src.js +3 -3
  661. package/modules/boost.js +79 -79
  662. package/modules/boost.js.map +1 -1
  663. package/modules/boost.src.js +42 -51
  664. package/modules/broken-axis.js +1 -1
  665. package/modules/broken-axis.js.map +1 -1
  666. package/modules/broken-axis.src.js +18 -12
  667. package/modules/bullet.js +1 -1
  668. package/modules/bullet.src.js +1 -1
  669. package/modules/coloraxis.js +24 -24
  670. package/modules/coloraxis.js.map +1 -1
  671. package/modules/coloraxis.src.js +77 -103
  672. package/modules/current-date-indicator.js +4 -4
  673. package/modules/current-date-indicator.js.map +1 -1
  674. package/modules/current-date-indicator.src.js +4 -4
  675. package/modules/cylinder.js +1 -1
  676. package/modules/cylinder.js.map +1 -1
  677. package/modules/cylinder.src.js +37 -5
  678. package/modules/data.d.ts +6 -6
  679. package/modules/data.js +32 -32
  680. package/modules/data.js.map +1 -1
  681. package/modules/data.src.d.ts +6 -6
  682. package/modules/data.src.js +94 -140
  683. package/modules/datagrouping.js +20 -20
  684. package/modules/datagrouping.js.map +1 -1
  685. package/modules/datagrouping.src.js +56 -33
  686. package/modules/debugger.js +3 -3
  687. package/modules/debugger.js.map +1 -1
  688. package/modules/debugger.src.js +3 -3
  689. package/modules/dependency-wheel.js +11 -11
  690. package/modules/dependency-wheel.js.map +1 -1
  691. package/modules/dependency-wheel.src.js +5 -8
  692. package/modules/dotplot.js +1 -1
  693. package/modules/dotplot.src.js +1 -1
  694. package/modules/drag-panes.js +8 -8
  695. package/modules/drag-panes.js.map +1 -1
  696. package/modules/drag-panes.src.js +3 -3
  697. package/modules/draggable-points.js +1 -1
  698. package/modules/draggable-points.js.map +1 -1
  699. package/modules/draggable-points.src.js +8 -9
  700. package/modules/drilldown.js +24 -24
  701. package/modules/drilldown.js.map +1 -1
  702. package/modules/drilldown.src.js +13 -8
  703. package/modules/dumbbell.js +17 -17
  704. package/modules/dumbbell.js.map +1 -1
  705. package/modules/dumbbell.src.js +4 -8
  706. package/modules/export-data.js +19 -19
  707. package/modules/export-data.js.map +1 -1
  708. package/modules/export-data.src.js +9 -8
  709. package/modules/exporting.js +39 -38
  710. package/modules/exporting.js.map +1 -1
  711. package/modules/exporting.src.js +134 -116
  712. package/modules/full-screen.js +1 -1
  713. package/modules/full-screen.js.map +1 -1
  714. package/modules/full-screen.src.js +5 -4
  715. package/modules/funnel.js +12 -12
  716. package/modules/funnel.js.map +1 -1
  717. package/modules/funnel.src.js +9 -6
  718. package/modules/funnel3d.js +1 -1
  719. package/modules/funnel3d.js.map +1 -1
  720. package/modules/funnel3d.src.js +17 -10
  721. package/modules/gantt.js +217 -218
  722. package/modules/gantt.js.map +1 -1
  723. package/modules/gantt.src.js +364 -363
  724. package/modules/grid-axis.js +1 -1
  725. package/modules/grid-axis.js.map +1 -1
  726. package/modules/grid-axis.src.js +27 -19
  727. package/modules/heatmap.js +39 -39
  728. package/modules/heatmap.js.map +1 -1
  729. package/modules/heatmap.src.js +132 -141
  730. package/modules/heikinashi.js +1 -1
  731. package/modules/heikinashi.js.map +1 -1
  732. package/modules/heikinashi.src.js +12 -10
  733. package/modules/histogram-bellcurve.js +13 -13
  734. package/modules/histogram-bellcurve.js.map +1 -1
  735. package/modules/histogram-bellcurve.src.js +97 -91
  736. package/modules/hollowcandlestick.js +9 -9
  737. package/modules/hollowcandlestick.js.map +1 -1
  738. package/modules/hollowcandlestick.src.js +31 -35
  739. package/modules/item-series.js +6 -6
  740. package/modules/item-series.js.map +1 -1
  741. package/modules/item-series.src.js +6 -6
  742. package/modules/lollipop.js +1 -1
  743. package/modules/lollipop.src.js +1 -1
  744. package/modules/map.d.ts +138 -14
  745. package/modules/map.js +144 -122
  746. package/modules/map.js.map +1 -1
  747. package/modules/map.src.d.ts +138 -14
  748. package/modules/map.src.js +2253 -1074
  749. package/modules/marker-clusters.js +36 -36
  750. package/modules/marker-clusters.js.map +1 -1
  751. package/modules/marker-clusters.src.js +176 -143
  752. package/modules/networkgraph.d.ts +12 -1
  753. package/modules/networkgraph.js +49 -49
  754. package/modules/networkgraph.js.map +1 -1
  755. package/modules/networkgraph.src.d.ts +12 -1
  756. package/modules/networkgraph.src.js +103 -78
  757. package/modules/no-data-to-display.js +5 -5
  758. package/modules/no-data-to-display.js.map +1 -1
  759. package/modules/no-data-to-display.src.js +3 -3
  760. package/modules/offline-exporting.js +18 -17
  761. package/modules/offline-exporting.js.map +1 -1
  762. package/modules/offline-exporting.src.js +39 -44
  763. package/modules/oldie-polyfills.js +1 -1
  764. package/modules/oldie-polyfills.src.js +1 -1
  765. package/modules/oldie.js +26 -26
  766. package/modules/oldie.js.map +1 -1
  767. package/modules/oldie.src.js +21 -81
  768. package/modules/organization.js +13 -13
  769. package/modules/organization.js.map +1 -1
  770. package/modules/organization.src.js +8 -6
  771. package/modules/overlapping-datalabels.js +1 -1
  772. package/modules/overlapping-datalabels.src.js +1 -1
  773. package/modules/parallel-coordinates.js +1 -1
  774. package/modules/parallel-coordinates.js.map +1 -1
  775. package/modules/parallel-coordinates.src.js +6 -4
  776. package/modules/pareto.js +7 -7
  777. package/modules/pareto.js.map +1 -1
  778. package/modules/pareto.src.js +89 -78
  779. package/modules/pathfinder.js +1 -1
  780. package/modules/pathfinder.js.map +1 -1
  781. package/modules/pathfinder.src.js +21 -20
  782. package/modules/pattern-fill.js +1 -1
  783. package/modules/pattern-fill.js.map +1 -1
  784. package/modules/pattern-fill.src.js +18 -12
  785. package/modules/price-indicator.js +1 -1
  786. package/modules/price-indicator.js.map +1 -1
  787. package/modules/price-indicator.src.js +3 -2
  788. package/modules/pyramid3d.js +1 -1
  789. package/modules/pyramid3d.js.map +1 -1
  790. package/modules/pyramid3d.src.js +3 -2
  791. package/modules/sankey.d.ts +12 -1
  792. package/modules/sankey.js +29 -29
  793. package/modules/sankey.js.map +1 -1
  794. package/modules/sankey.src.d.ts +12 -1
  795. package/modules/sankey.src.js +307 -181
  796. package/modules/series-label.js +1 -1
  797. package/modules/series-label.js.map +1 -1
  798. package/modules/series-label.src.js +2 -2
  799. package/modules/solid-gauge.js +1 -1
  800. package/modules/solid-gauge.js.map +1 -1
  801. package/modules/solid-gauge.src.js +17 -2
  802. package/modules/sonification.js +59 -55
  803. package/modules/sonification.js.map +1 -1
  804. package/modules/sonification.src.js +3093 -2594
  805. package/modules/static-scale.js +1 -1
  806. package/modules/static-scale.src.js +1 -1
  807. package/modules/stock-tools.js +178 -163
  808. package/modules/stock-tools.js.map +1 -1
  809. package/modules/stock-tools.src.js +1136 -229
  810. package/modules/stock.d.ts +39 -6
  811. package/modules/stock.js +204 -196
  812. package/modules/stock.js.map +1 -1
  813. package/modules/stock.src.d.ts +39 -6
  814. package/modules/stock.src.js +1822 -1240
  815. package/modules/streamgraph.js +1 -1
  816. package/modules/streamgraph.src.js +1 -1
  817. package/modules/sunburst.js +60 -60
  818. package/modules/sunburst.js.map +1 -1
  819. package/modules/sunburst.src.js +281 -248
  820. package/modules/tilemap.js +17 -17
  821. package/modules/tilemap.js.map +1 -1
  822. package/modules/tilemap.src.js +3 -13
  823. package/modules/timeline.js +18 -18
  824. package/modules/timeline.js.map +1 -1
  825. package/modules/timeline.src.js +5 -5
  826. package/modules/treegrid.js +56 -57
  827. package/modules/treegrid.js.map +1 -1
  828. package/modules/treegrid.src.js +201 -169
  829. package/modules/treemap.js +41 -41
  830. package/modules/treemap.js.map +1 -1
  831. package/modules/treemap.src.js +266 -232
  832. package/modules/variable-pie.js +1 -1
  833. package/modules/variable-pie.src.js +1 -1
  834. package/modules/variwide.js +1 -1
  835. package/modules/variwide.js.map +1 -1
  836. package/modules/variwide.src.js +7 -3
  837. package/modules/vector.js +1 -1
  838. package/modules/vector.src.js +1 -1
  839. package/modules/venn.js +31 -31
  840. package/modules/venn.js.map +1 -1
  841. package/modules/venn.src.js +740 -731
  842. package/modules/windbarb.js +15 -15
  843. package/modules/windbarb.js.map +1 -1
  844. package/modules/windbarb.src.js +90 -62
  845. package/modules/wordcloud.js +23 -24
  846. package/modules/wordcloud.js.map +1 -1
  847. package/modules/wordcloud.src.js +898 -954
  848. package/modules/xrange.js +2 -2
  849. package/modules/xrange.js.map +1 -1
  850. package/modules/xrange.src.js +12 -33
  851. package/package.json +1 -1
  852. package/themes/avocado.js +1 -1
  853. package/themes/avocado.src.js +1 -1
  854. package/themes/brand-dark.js +15 -0
  855. package/themes/brand-dark.js.map +1 -0
  856. package/themes/brand-dark.src.js +328 -0
  857. package/themes/brand-light.js +15 -0
  858. package/themes/brand-light.js.map +1 -0
  859. package/themes/brand-light.src.js +294 -0
  860. package/themes/dark-blue.js +1 -1
  861. package/themes/dark-blue.src.js +1 -1
  862. package/themes/dark-green.js +1 -1
  863. package/themes/dark-green.src.js +1 -1
  864. package/themes/dark-unica.js +1 -1
  865. package/themes/dark-unica.js.map +1 -1
  866. package/themes/dark-unica.src.js +5 -3
  867. package/themes/gray.js +1 -1
  868. package/themes/gray.src.js +1 -1
  869. package/themes/grid-light.js +1 -1
  870. package/themes/grid-light.js.map +1 -1
  871. package/themes/grid-light.src.js +5 -3
  872. package/themes/grid.js +1 -1
  873. package/themes/grid.js.map +1 -1
  874. package/themes/grid.src.js +5 -3
  875. package/themes/high-contrast-dark.js +1 -1
  876. package/themes/high-contrast-dark.src.js +1 -1
  877. package/themes/high-contrast-light.js +1 -1
  878. package/themes/high-contrast-light.src.js +1 -1
  879. package/themes/sand-signika.js +1 -1
  880. package/themes/sand-signika.src.js +1 -1
  881. package/themes/skies.js +1 -1
  882. package/themes/skies.src.js +1 -1
  883. package/themes/sunset.js +1 -1
  884. package/themes/sunset.src.js +1 -1
  885. package/es-modules/Core/Axis/MapAxis.js +0 -157
  886. package/es-modules/Core/Color/Palette.js +0 -82
  887. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  888. package/es-modules/Mixins/ColorSeries.js +0 -77
  889. package/es-modules/Mixins/DerivedSeries.js +0 -118
  890. package/es-modules/Mixins/DrawPoint.js +0 -81
  891. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  892. package/es-modules/Mixins/MultipleLines.js +0 -181
  893. package/es-modules/Mixins/Navigation.js +0 -54
  894. package/es-modules/Mixins/NelderMead.js +0 -132
  895. package/es-modules/Mixins/Polygon.js +0 -259
  896. package/es-modules/Mixins/ReduceArray.js +0 -54
@@ -10,365 +10,275 @@
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
+ */
79
+ Timeline.prototype.play = function (onEnd) {
80
+ this.pause();
81
+ this.signalHandler.clearSignalCallbacks(['playOnEnd']);
82
+ this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
83
+ this.playPaths(1);
84
+ };
85
+ /**
86
+ * Play the timeline backwards from cursor.
87
+ * @private
88
+ * @param {Function} onEnd
89
+ * Callback to call when play finished. Does not override other onEnd
90
+ * callbacks.
91
+ */
92
+ Timeline.prototype.rewind = function (onEnd) {
93
+ this.pause();
94
+ this.signalHandler.clearSignalCallbacks(['playOnEnd']);
95
+ this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
96
+ this.playPaths(-1);
97
+ };
98
+ /**
99
+ * Play the timeline in the specified direction.
100
+ * @private
101
+ * @param {number} direction
102
+ * Direction to play in. 1 for forwards, -1 for backwards.
103
+ */
104
+ Timeline.prototype.playPaths = function (direction) {
105
+ var timeline = this, signalHandler = timeline.signalHandler;
106
+ if (!timeline.paths.length) {
107
+ var emptySignal = {
108
+ cancelled: false
341
109
  };
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
- }
110
+ signalHandler.emitSignal('playOnEnd', emptySignal);
111
+ signalHandler.emitSignal('masterOnEnd', emptySignal);
112
+ return;
350
113
  }
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);
114
+ var curPaths = splat(this.paths[this.cursor]), nextPaths = this.paths[this.cursor + direction],
115
+ // Play a path
116
+ playPath = function (path) {
117
+ // Emit signal and set playing state
118
+ signalHandler.emitSignal('onPathStart', path);
119
+ timeline.pathsPlaying[path.id] = path;
120
+ // Do the play
121
+ path[direction > 0 ? 'play' : 'rewind'](function (callbackData) {
122
+ // Play ended callback
123
+ // Data to pass to signal callbacks
124
+ var cancelled = callbackData && callbackData.cancelled, signalData = {
125
+ path: path,
126
+ cancelled: cancelled
127
+ };
128
+ // Clear state and send signal
129
+ delete timeline.pathsPlaying[path.id];
130
+ signalHandler.emitSignal('onPathEnd', signalData);
131
+ // Handle next paths
132
+ var pathsEnded = 0;
133
+ pathsEnded++;
134
+ if (pathsEnded >= curPaths.length) {
135
+ // We finished all of the current paths for cursor.
136
+ if (nextPaths && !cancelled) {
137
+ // We have more paths, move cursor along
138
+ timeline.cursor += direction;
139
+ // Reset upcoming path cursors before playing
140
+ splat(nextPaths).forEach(function (nextPath) {
141
+ nextPath[direction > 0 ?
142
+ 'resetCursor' : 'resetCursorEnd']();
143
+ });
144
+ // Play next
145
+ timeline.playPaths(direction);
146
+ }
147
+ else {
148
+ // If it is the last path in this direction,
149
+ // call onEnd
150
+ signalHandler.emitSignal('playOnEnd', signalData);
151
+ signalHandler.emitSignal('masterOnEnd', signalData);
152
+ }
153
+ }
154
+ });
155
+ };
156
+ // Go through the paths under cursor and play them
157
+ curPaths.forEach(function (path) {
158
+ if (path) {
159
+ // Store reference to timeline
160
+ path.timeline = timeline;
161
+ // Leave a timeout to let notes fade out before next play
162
+ setTimeout(function () {
163
+ playPath(path);
164
+ }, Sonification.fadeOutDuration);
165
+ }
166
+ });
167
+ };
168
+ /**
169
+ * Stop the playing of the timeline. Cancels all current sounds, but does
170
+ * not affect the cursor.
171
+ * @private
172
+ * @param {boolean} [fadeOut=false]
173
+ * Whether or not to fade out as we stop. If false, the timeline is
174
+ * cancelled synchronously.
175
+ */
176
+ Timeline.prototype.pause = function (fadeOut) {
177
+ var timeline = this;
178
+ // Cancel currently playing events
179
+ Object.keys(timeline.pathsPlaying).forEach(function (id) {
180
+ if (timeline.pathsPlaying[id]) {
181
+ timeline.pathsPlaying[id].pause(fadeOut);
182
+ }
183
+ });
184
+ timeline.pathsPlaying = {};
185
+ };
186
+ /**
187
+ * Reset the cursor to the beginning of the timeline.
188
+ * @private
189
+ */
190
+ Timeline.prototype.resetCursor = function () {
191
+ this.paths.forEach(function (paths) {
192
+ splat(paths).forEach(function (path) {
193
+ path.resetCursor();
194
+ });
195
+ });
196
+ this.cursor = 0;
197
+ };
198
+ /**
199
+ * Reset the cursor to the end of the timeline.
200
+ * @private
201
+ */
202
+ Timeline.prototype.resetCursorEnd = function () {
203
+ this.paths.forEach(function (paths) {
204
+ splat(paths).forEach(function (path) {
205
+ path.resetCursorEnd();
206
+ });
207
+ });
208
+ this.cursor = this.paths.length - 1;
209
+ };
210
+ /**
211
+ * Set the current TimelineEvent under the cursor. If multiple paths are
212
+ * being played at the same time, this function only affects a single path
213
+ * (the one that contains the eventId that is passed in).
214
+ * @private
215
+ * @param {string} eventId
216
+ * The ID of the timeline event to set as current.
217
+ * @return {boolean}
218
+ * True if the cursor was set, false if no TimelineEvent was found for
219
+ * this ID.
220
+ */
221
+ Timeline.prototype.setCursor = function (eventId) {
222
+ return this.paths.some(function (paths) {
223
+ return splat(paths).some(function (path) {
224
+ return path.setCursor(eventId);
225
+ });
226
+ });
227
+ };
228
+ /**
229
+ * Get the current TimelineEvents under the cursors. This function will
230
+ * return the event under the cursor for each currently playing path, as an
231
+ * object where the path ID is mapped to the TimelineEvent under that
232
+ * path's cursor.
233
+ * @private
234
+ * @return {Highcharts.Dictionary<Highcharts.TimelineEvent>}
235
+ * The TimelineEvents under each path's cursors.
236
+ */
237
+ Timeline.prototype.getCursor = function () {
238
+ return this.getCurrentPlayingPaths().reduce(function (acc, cur) {
239
+ acc[cur.id] = cur.getCursor();
240
+ return acc;
241
+ }, {});
242
+ };
243
+ /**
244
+ * Check if timeline is reset or at start.
245
+ * @private
246
+ * @return {boolean}
247
+ * True if timeline is at the beginning.
248
+ */
249
+ Timeline.prototype.atStart = function () {
250
+ if (this.cursor) {
251
+ return false;
359
252
  }
360
- else {
361
- // Schedule after the difference in ms
362
- this.nextScheduledPlay = setTimeout(function () {
363
- timelinePath.cursor += direction;
364
- timelinePath.playEvents(direction);
365
- }, timeDiff);
253
+ return !splat(this.paths[0]).some(function (path) {
254
+ return path.cursor;
255
+ });
256
+ };
257
+ /**
258
+ * Get the current TimelinePaths being played.
259
+ * @private
260
+ * @return {Array<Highcharts.TimelinePath>}
261
+ * The TimelinePaths currently being played.
262
+ */
263
+ Timeline.prototype.getCurrentPlayingPaths = function () {
264
+ if (!this.paths.length) {
265
+ return [];
366
266
  }
367
- }
368
- };
369
- /* ************************************************************************** *
370
- * TIMELINE *
371
- * ************************************************************************** */
267
+ return splat(this.paths[this.cursor]);
268
+ };
269
+ return Timeline;
270
+ }());
271
+ /* *
272
+ *
273
+ * Default Export
274
+ *
275
+ * */
276
+ export default Timeline;
277
+ /* *
278
+ *
279
+ * API Declarations
280
+ *
281
+ * */
372
282
  /**
373
283
  * A set of options for the Timeline class.
374
284
  *
@@ -395,231 +305,4 @@ TimelinePath.prototype.playEvents = function (direction) {
395
305
  * @name Highcharts.TimelineOptionsObject#onEnd
396
306
  * @type {Function|undefined}
397
307
  */
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;
308
+ (''); // detach doclets above