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
@@ -0,0 +1,474 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2021 Øystein Moseng
4
+ *
5
+ * Sonification functions for chart/series.
6
+ *
7
+ * License: www.highcharts.com/license
8
+ *
9
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
+ *
11
+ * */
12
+ 'use strict';
13
+ import Earcon from './Earcon.js';
14
+ import Instrument from './Instrument.js';
15
+ import Point from '../../Core/Series/Point.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';
21
+ import U from '../../Core/Utilities.js';
22
+ var extend = U.extend, find = U.find, isArray = U.isArray, merge = U.merge, objectEach = U.objectEach, pick = U.pick;
23
+ /* *
24
+ *
25
+ * Compositions
26
+ *
27
+ * */
28
+ var SeriesSonify;
29
+ (function (SeriesSonify) {
30
+ /* *
31
+ *
32
+ * Declarations
33
+ *
34
+ * */
35
+ /* *
36
+ *
37
+ * Constants
38
+ *
39
+ * */
40
+ var composedClasses = [];
41
+ /* *
42
+ *
43
+ * Functions
44
+ *
45
+ * */
46
+ /* eslint-disable valid-jsdoc */
47
+ /**
48
+ * @private
49
+ */
50
+ function compose(SeriesClass) {
51
+ if (composedClasses.indexOf(SeriesClass) === -1) {
52
+ composedClasses.push(SeriesClass);
53
+ var seriesProto = SeriesClass.prototype;
54
+ extend(seriesProto, {
55
+ sonify: sonify
56
+ });
57
+ }
58
+ return SeriesClass;
59
+ }
60
+ SeriesSonify.compose = compose;
61
+ /**
62
+ * Utility function to apply a master volume to a list of instrument
63
+ * options.
64
+ * @private
65
+ * @param {Array<Highcharts.PointInstrumentObject>} instruments
66
+ * The instrument options. Only options with Instrument object instances
67
+ * will be affected.
68
+ * @param {number} masterVolume
69
+ * The master volume multiplier to apply to the instruments.
70
+ * @return {Array<Highcharts.PointInstrumentObject>}
71
+ * Array of instrument options.
72
+ */
73
+ function applyMasterVolumeToInstruments(instruments, masterVolume) {
74
+ instruments.forEach(function (instrOpts) {
75
+ var instr = instrOpts.instrument;
76
+ if (typeof instr !== 'string') {
77
+ instr.setMasterVolume(masterVolume);
78
+ }
79
+ });
80
+ return instruments;
81
+ }
82
+ /**
83
+ * Utility function to assemble options for creating a TimelinePath from a
84
+ * series when sonifying an entire chart.
85
+ * @private
86
+ * @param {Highcharts.Series} series
87
+ * The series to return options for.
88
+ * @param {Highcharts.RangeObject} dataExtremes
89
+ * Pre-calculated data extremes for the chart.
90
+ * @param {Highcharts.SonificationOptions} chartSonifyOptions
91
+ * Options passed in to chart.sonify.
92
+ * @return {Partial<Highcharts.SonifySeriesOptionsObject>}
93
+ * Options for buildTimelinePathFromSeries.
94
+ */
95
+ function buildChartSonifySeriesOptions(series, dataExtremes, chartSonifyOptions) {
96
+ var additionalSeriesOptions = chartSonifyOptions.seriesOptions || {}, sonification = series.chart.options.sonification, pointPlayTime = (sonification &&
97
+ sonification.defaultInstrumentOptions &&
98
+ sonification.defaultInstrumentOptions.mapping &&
99
+ sonification.defaultInstrumentOptions.mapping.pointPlayTime ||
100
+ 'x'), configOptions = chartOptionsToSonifySeriesOptions(series);
101
+ return merge(
102
+ // Options from chart configuration
103
+ configOptions,
104
+ // Options passed in
105
+ {
106
+ // Calculated dataExtremes for chart
107
+ dataExtremes: dataExtremes,
108
+ // We need to get timeExtremes for each series. We pass this
109
+ // in when building the TimelinePath objects to avoid
110
+ // calculating twice.
111
+ timeExtremes: getTimeExtremes(series, pointPlayTime),
112
+ // Some options we just pass on
113
+ instruments: (chartSonifyOptions.instruments || configOptions.instruments),
114
+ onStart: (chartSonifyOptions.onSeriesStart || configOptions.onStart),
115
+ onEnd: chartSonifyOptions.onSeriesEnd || configOptions.onEnd,
116
+ earcons: chartSonifyOptions.earcons || configOptions.earcons,
117
+ masterVolume: pick(chartSonifyOptions.masterVolume, configOptions.masterVolume)
118
+ },
119
+ // Merge in the specific series options by ID if any are passed in
120
+ isArray(additionalSeriesOptions) ? (find(additionalSeriesOptions, function (optEntry) {
121
+ return optEntry.id === pick(series.id, series.options.id);
122
+ }) || {}) : additionalSeriesOptions, {
123
+ // Forced options
124
+ pointPlayTime: pointPlayTime
125
+ });
126
+ }
127
+ SeriesSonify.buildChartSonifySeriesOptions = buildChartSonifySeriesOptions;
128
+ /**
129
+ * Create a TimelinePath from a series. Takes the same options as
130
+ * seriesSonify. To intuitively allow multiple series to play simultaneously
131
+ * we make copies of the instruments for each series.
132
+ * @private
133
+ * @param {Highcharts.Series} series
134
+ * The series to build from.
135
+ * @param {Highcharts.SonifySeriesOptionsObject} options
136
+ * The options for building the TimelinePath.
137
+ * @return {Highcharts.TimelinePath}
138
+ * A timeline path with events.
139
+ */
140
+ function buildTimelinePathFromSeries(series, options) {
141
+ // options.timeExtremes is internal and used so that the calculations
142
+ // from chart.sonify can be reused.
143
+ var timeExtremes = options.timeExtremes || getTimeExtremes(series, options.pointPlayTime),
144
+ // Compute any data extremes that aren't defined yet
145
+ dataExtremes = getExtremesForInstrumentProps(series.chart, options.instruments, options.dataExtremes), minimumSeriesDurationMs = 10,
146
+ // Get the duration of the final note
147
+ finalNoteDuration = getFinalNoteDuration(series, options.instruments, dataExtremes),
148
+ // Get time offset for a point, relative to duration
149
+ pointToTime = function (point) {
150
+ return virtualAxisTranslate(getPointTimeValue(point, options.pointPlayTime), timeExtremes, {
151
+ min: 0,
152
+ max: Math.max(options.duration - finalNoteDuration, minimumSeriesDurationMs)
153
+ });
154
+ }, masterVolume = pick(options.masterVolume, 1),
155
+ // Make copies of the instruments used for this series, to allow
156
+ // multiple series with the same instrument to play together
157
+ instrumentCopies = makeInstrumentCopies(options.instruments), instruments = applyMasterVolumeToInstruments(instrumentCopies, masterVolume),
158
+ // Go through the points, convert to events, optionally add Earcons
159
+ timelineEvents = series.points.reduce(function (events, point) {
160
+ var earcons = getPointEarcons(point, options.earcons || []), time = pointToTime(point);
161
+ return events.concat(
162
+ // Event object for point
163
+ new TimelineEvent({
164
+ eventObject: point,
165
+ time: time,
166
+ id: point.id,
167
+ playOptions: {
168
+ instruments: instruments,
169
+ dataExtremes: dataExtremes,
170
+ masterVolume: masterVolume
171
+ }
172
+ }),
173
+ // Earcons
174
+ earcons.map(function (earcon) {
175
+ return new TimelineEvent({
176
+ eventObject: earcon,
177
+ time: time,
178
+ playOptions: {
179
+ volume: masterVolume
180
+ }
181
+ });
182
+ }));
183
+ }, []);
184
+ // Build the timeline path
185
+ return new TimelinePath({
186
+ events: timelineEvents,
187
+ onStart: function () {
188
+ if (options.onStart) {
189
+ options.onStart(series);
190
+ }
191
+ },
192
+ onEventStart: function (event) {
193
+ var eventObject = event.options && event.options.eventObject;
194
+ if (eventObject instanceof Point) {
195
+ // Check for hidden series
196
+ if (!eventObject.series.visible &&
197
+ !eventObject.series.chart.series.some(function (series) {
198
+ return series.visible;
199
+ })) {
200
+ // We have no visible series, stop the path.
201
+ event.timelinePath.timeline.pause();
202
+ event.timelinePath.timeline.resetCursor();
203
+ return false;
204
+ }
205
+ // Emit onPointStart
206
+ if (options.onPointStart) {
207
+ options.onPointStart(event, eventObject);
208
+ }
209
+ }
210
+ },
211
+ onEventEnd: function (eventData) {
212
+ var eventObject = (eventData.event &&
213
+ eventData.event.options &&
214
+ eventData.event.options.eventObject);
215
+ if (eventObject instanceof Point && options.onPointEnd) {
216
+ options.onPointEnd(eventData.event, eventObject);
217
+ }
218
+ },
219
+ onEnd: function () {
220
+ if (options.onEnd) {
221
+ options.onEnd(series);
222
+ }
223
+ },
224
+ targetDuration: options.duration
225
+ });
226
+ }
227
+ SeriesSonify.buildTimelinePathFromSeries = buildTimelinePathFromSeries;
228
+ /**
229
+ * Utility function to translate between options set in chart configuration
230
+ * and a SonifySeriesOptionsObject.
231
+ * @private
232
+ * @param {Highcharts.Series} series
233
+ * The series to get options for.
234
+ * @return {Highcharts.SonifySeriesOptionsObject}
235
+ * Options for chart/series.sonify()
236
+ */
237
+ function chartOptionsToSonifySeriesOptions(series) {
238
+ var seriesOpts = series.options.sonification ||
239
+ {}, chartOpts = series.chart.options.sonification ||
240
+ {}, chartEvents = chartOpts.events ||
241
+ {}, seriesEvents = seriesOpts.events ||
242
+ {};
243
+ return {
244
+ onEnd: seriesEvents.onSeriesEnd || chartEvents.onSeriesEnd,
245
+ onStart: seriesEvents.onSeriesStart || chartEvents.onSeriesStart,
246
+ onPointEnd: seriesEvents.onPointEnd || chartEvents.onPointEnd,
247
+ onPointStart: seriesEvents.onPointStart || chartEvents.onPointStart,
248
+ pointPlayTime: (chartOpts.defaultInstrumentOptions &&
249
+ chartOpts.defaultInstrumentOptions.mapping &&
250
+ chartOpts.defaultInstrumentOptions.mapping.pointPlayTime),
251
+ masterVolume: chartOpts.masterVolume,
252
+ // Deals with chart-level defaults
253
+ instruments: getSeriesInstrumentOptions(series),
254
+ earcons: seriesOpts.earcons || chartOpts.earcons
255
+ };
256
+ }
257
+ /**
258
+ * Utility function to find the duration of the final note in a series.
259
+ * @private
260
+ * @param {Highcharts.Series} series The data series to calculate on.
261
+ * @param {Array<Highcharts.PointInstrumentObject>} instruments The instrument options for this series.
262
+ * @param {Highcharts.Dictionary<Highcharts.RangeObject>} dataExtremes Value extremes for the data series props.
263
+ * @return {number} The duration of the final note in milliseconds.
264
+ */
265
+ function getFinalNoteDuration(series, instruments, dataExtremes) {
266
+ var finalPoint = series.points[series.points.length - 1];
267
+ return instruments.reduce(function (duration, instrument) {
268
+ var mapping = instrument.instrumentMapping.duration;
269
+ var instrumentDuration;
270
+ if (typeof mapping === 'string') {
271
+ instrumentDuration = 0; // Ignore, no easy way to map this
272
+ }
273
+ else if (typeof mapping === 'function') {
274
+ instrumentDuration = mapping(finalPoint, dataExtremes);
275
+ }
276
+ else {
277
+ instrumentDuration = mapping;
278
+ }
279
+ return Math.max(duration, instrumentDuration);
280
+ }, 0);
281
+ }
282
+ /**
283
+ * Get earcons for the point if there are any.
284
+ * @private
285
+ * @param {Highcharts.Point} point
286
+ * The point to find earcons for.
287
+ * @param {Array<Highcharts.EarconConfiguration>} earconDefinitions
288
+ * Earcons to check.
289
+ * @return {Array<Highcharts.Earcon>}
290
+ * Array of earcons to be played with this point.
291
+ */
292
+ function getPointEarcons(point, earconDefinitions) {
293
+ return earconDefinitions.reduce(function (earcons, earconDefinition) {
294
+ var earcon = earconDefinition.earcon;
295
+ var cond;
296
+ if (earconDefinition.condition) {
297
+ // We have a condition. This overrides onPoint
298
+ cond = earconDefinition.condition(point);
299
+ if (cond instanceof Earcon) {
300
+ // Condition returned an earcon
301
+ earcons.push(cond);
302
+ }
303
+ else if (cond) {
304
+ // Condition returned true
305
+ earcons.push(earcon);
306
+ }
307
+ }
308
+ else if (earconDefinition.onPoint &&
309
+ point.id === earconDefinition.onPoint) {
310
+ // We have earcon onPoint
311
+ earcons.push(earcon);
312
+ }
313
+ return earcons;
314
+ }, []);
315
+ }
316
+ /**
317
+ * Get the relative time value of a point.
318
+ * @private
319
+ * @param {Highcharts.Point} point
320
+ * The point.
321
+ * @param {Function|string} timeProp
322
+ * The time axis data prop or the time function.
323
+ * @return {number}
324
+ * The time value.
325
+ */
326
+ function getPointTimeValue(point, timeProp) {
327
+ return typeof timeProp === 'function' ?
328
+ timeProp(point) :
329
+ pick(point[timeProp], point.options[timeProp]);
330
+ }
331
+ /**
332
+ * @private
333
+ * @param {Highcharts.Series} series
334
+ * The series to get options for.
335
+ * @param {Highcharts.SonifySeriesOptionsObject} options
336
+ * Options to merge with user options on series/chart and default options.
337
+ * @return {Array<Highcharts.PointInstrumentObject>}
338
+ * The merged options.
339
+ */
340
+ function getSeriesInstrumentOptions(series, options) {
341
+ if (options && options.instruments) {
342
+ return options.instruments;
343
+ }
344
+ var defaultInstrOpts = (series.chart.options.sonification &&
345
+ series.chart.options.sonification.defaultInstrumentOptions ||
346
+ {}), seriesInstrOpts = (series.options.sonification &&
347
+ series.options.sonification.instruments ||
348
+ [{}]), removeNullsFromObject = function (obj) {
349
+ objectEach(obj, function (val, key) {
350
+ if (val === null) {
351
+ delete obj[key];
352
+ }
353
+ });
354
+ };
355
+ // Convert series options to PointInstrumentObjects and merge with
356
+ // default options
357
+ return (seriesInstrOpts).map(function (optionSet) {
358
+ // Allow setting option to null to use default
359
+ removeNullsFromObject(optionSet.mapping || {});
360
+ removeNullsFromObject(optionSet);
361
+ return {
362
+ instrument: optionSet.instrument || defaultInstrOpts.instrument,
363
+ instrumentOptions: merge(defaultInstrOpts, optionSet, {
364
+ // Instrument options are lifted to root in the API options
365
+ // object, so merge all in order to avoid missing any. But
366
+ // remove the following which are not instrumentOptions:
367
+ mapping: void 0,
368
+ instrument: void 0
369
+ }),
370
+ instrumentMapping: merge(defaultInstrOpts.mapping, optionSet.mapping)
371
+ };
372
+ });
373
+ }
374
+ /**
375
+ * @private
376
+ * @param {Highcharts.Series} series
377
+ * The series to get options for.
378
+ * @param {Highcharts.SonifySeriesOptionsObject} options
379
+ * Options to merge with user options on series/chart and default options.
380
+ * @return {Highcharts.SonifySeriesOptionsObject}
381
+ * The merged options.
382
+ */
383
+ function getSeriesSonifyOptions(series, options) {
384
+ var chartOpts = series.chart.options.sonification, seriesOpts = series.options.sonification;
385
+ return merge({
386
+ duration: ((seriesOpts && seriesOpts.duration) ||
387
+ (chartOpts && chartOpts.duration))
388
+ }, chartOptionsToSonifySeriesOptions(series), options);
389
+ }
390
+ /**
391
+ * Get the time extremes of this series. This is handled outside of the
392
+ * dataExtremes, as we always want to just sonify the visible points, and we
393
+ * always want the extremes to be the extremes of the visible points.
394
+ * @private
395
+ * @param {Highcharts.Series} series
396
+ * The series to compute on.
397
+ * @param {Function|string} timeProp
398
+ * The time axis data prop or the time function.
399
+ * @return {Highcharts.RangeObject}
400
+ * Object with min/max extremes for the time values.
401
+ */
402
+ function getTimeExtremes(series, timeProp) {
403
+ // Compute the extremes from the visible points.
404
+ return series.points.reduce(function (acc, point) {
405
+ var value = getPointTimeValue(point, timeProp);
406
+ acc.min = Math.min(acc.min, value);
407
+ acc.max = Math.max(acc.max, value);
408
+ return acc;
409
+ }, {
410
+ min: Infinity,
411
+ max: -Infinity
412
+ });
413
+ }
414
+ /**
415
+ * Utility function to get a new list of instrument options where all the
416
+ * instrument references are copies.
417
+ * @private
418
+ * @param {Array<Highcharts.PointInstrumentObject>} instruments
419
+ * The instrument options.
420
+ * @return {Array<Highcharts.PointInstrumentObject>}
421
+ * Array of copied instrument options.
422
+ */
423
+ function makeInstrumentCopies(instruments) {
424
+ return instruments.map(function (instrumentDef) {
425
+ var instrument = instrumentDef.instrument, copy = (typeof instrument === 'string' ?
426
+ Instrument.definitions[instrument] :
427
+ instrument).copy();
428
+ return merge(instrumentDef, { instrument: copy });
429
+ });
430
+ }
431
+ /**
432
+ * Sonify a series.
433
+ *
434
+ * @sample highcharts/sonification/series-basic/
435
+ * Click on series to sonify
436
+ * @sample highcharts/sonification/series-earcon/
437
+ * Series with earcon
438
+ * @sample highcharts/sonification/point-play-time/
439
+ * Play y-axis by time
440
+ * @sample highcharts/sonification/earcon-on-point/
441
+ * Earcon set on point
442
+ *
443
+ * @requires module:modules/sonification
444
+ *
445
+ * @function Highcharts.Series#sonify
446
+ *
447
+ * @param {Highcharts.SonifySeriesOptionsObject} [options]
448
+ * The options for sonifying this series. If not provided, uses options set
449
+ * on chart and series.
450
+ */
451
+ function sonify(options) {
452
+ var mergedOptions = getSeriesSonifyOptions(this, options), timelinePath = buildTimelinePathFromSeries(this, mergedOptions), chartSonification = this.chart.sonification;
453
+ if (chartSonification) {
454
+ // Only one timeline can play at a time. If we want multiple series
455
+ // playing at the same time, use chart.sonify.
456
+ if (chartSonification.timeline) {
457
+ chartSonification.timeline.pause();
458
+ }
459
+ // Store reference to duration
460
+ chartSonification.duration = mergedOptions.duration;
461
+ // Create new timeline for this series, and play it.
462
+ chartSonification.timeline = new Timeline({
463
+ paths: [timelinePath]
464
+ });
465
+ chartSonification.timeline.play();
466
+ }
467
+ }
468
+ })(SeriesSonify || (SeriesSonify = {}));
469
+ /* *
470
+ *
471
+ * Default Export
472
+ *
473
+ * */
474
+ export default SeriesSonify;
@@ -0,0 +1,122 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2021 Øystein Moseng
4
+ *
5
+ * Utility functions for sonification.
6
+ *
7
+ * License: www.highcharts.com/license
8
+ *
9
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
+ *
11
+ * */
12
+ 'use strict';
13
+ /* eslint-disable no-invalid-this, valid-jsdoc */
14
+ /* *
15
+ *
16
+ * Class
17
+ *
18
+ * */
19
+ /**
20
+ * The SignalHandler class. Stores signal callbacks (event handlers), and
21
+ * provides an interface to register them, and emit signals. The word "event" is
22
+ * not used to avoid confusion with TimelineEvents.
23
+ *
24
+ * @requires module:modules/sonification
25
+ *
26
+ * @private
27
+ * @class
28
+ * @name Highcharts.SignalHandler
29
+ *
30
+ * @param {Array<string>} supportedSignals
31
+ * List of supported signal names.
32
+ */
33
+ var SignalHandler = /** @class */ (function () {
34
+ /* *
35
+ *
36
+ * Constructors
37
+ *
38
+ * */
39
+ function SignalHandler(supportedSignals) {
40
+ /* *
41
+ *
42
+ * Properties
43
+ *
44
+ * */
45
+ this.signals = void 0;
46
+ this.supportedSignals = void 0;
47
+ this.init(supportedSignals || []);
48
+ }
49
+ /* *
50
+ *
51
+ * Functions
52
+ *
53
+ * */
54
+ SignalHandler.prototype.init = function (supportedSignals) {
55
+ this.supportedSignals = supportedSignals;
56
+ this.signals = {};
57
+ };
58
+ /**
59
+ * Register a set of signal callbacks with this SignalHandler.
60
+ * Multiple signal callbacks can be registered for the same signal.
61
+ * @private
62
+ * @param {Highcharts.Dictionary<(Function|undefined)>} signals
63
+ * An object that contains a mapping from the signal name to the callbacks.
64
+ * Only supported events are considered.
65
+ */
66
+ SignalHandler.prototype.registerSignalCallbacks = function (signals) {
67
+ var signalHandler = this;
68
+ signalHandler.supportedSignals.forEach(function (supportedSignal) {
69
+ var signal = signals[supportedSignal];
70
+ if (signal) {
71
+ (signalHandler.signals[supportedSignal] =
72
+ signalHandler.signals[supportedSignal] || []).push(signal);
73
+ }
74
+ });
75
+ };
76
+ /**
77
+ * Clear signal callbacks, optionally by name.
78
+ * @private
79
+ * @param {Array<string>} [signalNames]
80
+ * A list of signal names to clear. If not supplied, all signal callbacks
81
+ * are removed.
82
+ */
83
+ SignalHandler.prototype.clearSignalCallbacks = function (signalNames) {
84
+ var signalHandler = this;
85
+ if (signalNames) {
86
+ signalNames.forEach(function (signalName) {
87
+ if (signalHandler.signals[signalName]) {
88
+ delete signalHandler.signals[signalName];
89
+ }
90
+ });
91
+ }
92
+ else {
93
+ signalHandler.signals = {};
94
+ }
95
+ };
96
+ /**
97
+ * Emit a signal. Does nothing if the signal does not exist, or has no
98
+ * registered callbacks.
99
+ * @private
100
+ * @param {string} signalName
101
+ * Name of signal to emit.
102
+ * @param {*} [data]
103
+ * Data to pass to the callback.
104
+ */
105
+ SignalHandler.prototype.emitSignal = function (signalName, data) {
106
+ var retval;
107
+ if (this.signals[signalName]) {
108
+ this.signals[signalName].forEach(function (handler) {
109
+ var result = handler(data);
110
+ retval = typeof result !== 'undefined' ? result : retval;
111
+ });
112
+ }
113
+ return retval;
114
+ };
115
+ return SignalHandler;
116
+ }());
117
+ /* *
118
+ *
119
+ * Default Export
120
+ *
121
+ * */
122
+ export default SignalHandler;
@@ -10,23 +10,36 @@
10
10
  *
11
11
  * */
12
12
  'use strict';
13
- import Chart from '../../Core/Chart/Chart.js';
14
- import H from '../../Core/Globals.js';
13
+ /* *
14
+ *
15
+ * Imports
16
+ *
17
+ * */
15
18
  import D from '../../Core/DefaultOptions.js';
16
19
  var defaultOptions = D.defaultOptions;
17
- import Point from '../../Core/Series/Point.js';
18
- import Series from '../../Core/Series/Series.js';
19
20
  import U from '../../Core/Utilities.js';
20
- var addEvent = U.addEvent, extend = U.extend, merge = U.merge;
21
- import Instrument from './Instrument.js';
22
- import instruments from './InstrumentDefinitions.js';
23
- import Earcon from './Earcon.js';
24
- import pointSonifyFunctions from './PointSonify.js';
25
- import chartSonifyFunctions from './ChartSonify.js';
26
- import utilities from './Utilities.js';
27
- import TimelineClasses from './Timeline.js';
21
+ var merge = U.merge;
22
+ import SU from './SonificationUtilities.js';
28
23
  import sonificationOptions from './Options.js';
24
+ /* *
25
+ *
26
+ * Functions
27
+ *
28
+ * */
29
29
  // Expose on the Highcharts object
30
+ // Add default options
31
+ merge(true, defaultOptions, sonificationOptions);
32
+ var Sonification = {
33
+ fadeOutDuration: 20,
34
+ // Classes and functions
35
+ utilities: SU
36
+ };
37
+ /* *
38
+ *
39
+ * Default Export
40
+ *
41
+ * */
42
+ export default Sonification;
30
43
  /**
31
44
  * Global classes and objects related to sonification.
32
45
  *
@@ -51,7 +64,7 @@ import sonificationOptions from './Options.js';
51
64
  * Utility functions.
52
65
  * @name Highcharts.SonificationObject#utilities
53
66
  * @private
54
- * @type {object}
67
+ * @type {Object}
55
68
  */ /**
56
69
  * The Instrument class.
57
70
  * @name Highcharts.SonificationObject#Instrument
@@ -81,43 +94,4 @@ import sonificationOptions from './Options.js';
81
94
  * @name Highcharts.SonificationObject#Timeline
82
95
  * @type {Function}
83
96
  */
84
- H.sonification = {
85
- fadeOutDuration: 20,
86
- // Classes and functions
87
- utilities: utilities,
88
- Instrument: Instrument,
89
- instruments: instruments,
90
- Earcon: Earcon,
91
- TimelineEvent: TimelineClasses.TimelineEvent,
92
- TimelinePath: TimelineClasses.TimelinePath,
93
- Timeline: TimelineClasses.Timeline
94
- };
95
- // Add default options
96
- merge(true, defaultOptions, sonificationOptions);
97
- // Chart specific
98
- Point.prototype.sonify = pointSonifyFunctions.pointSonify;
99
- Point.prototype.cancelSonify = pointSonifyFunctions.pointCancelSonify;
100
- Series.prototype.sonify = chartSonifyFunctions.seriesSonify;
101
- extend(Chart.prototype, {
102
- sonify: chartSonifyFunctions.chartSonify,
103
- pauseSonify: chartSonifyFunctions.pause,
104
- resumeSonify: chartSonifyFunctions.resume,
105
- rewindSonify: chartSonifyFunctions.rewind,
106
- cancelSonify: chartSonifyFunctions.cancel,
107
- getCurrentSonifyPoints: chartSonifyFunctions.getCurrentPoints,
108
- setSonifyCursor: chartSonifyFunctions.setCursor,
109
- resetSonifyCursor: chartSonifyFunctions.resetCursor,
110
- resetSonifyCursorEnd: chartSonifyFunctions.resetCursorEnd
111
- });
112
- /* eslint-disable no-invalid-this */
113
- // Prepare charts for sonification on init
114
- addEvent(Chart, 'init', function () {
115
- this.sonification = {};
116
- });
117
- // Update with chart/series/point updates
118
- addEvent(Chart, 'update', function (e) {
119
- var newOptions = e.options.sonification;
120
- if (newOptions) {
121
- merge(true, this.options.sonification, newOptions);
122
- }
123
- });
97
+ (''); // detach doclets above