highcharts 8.1.0 → 8.2.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 (854) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +12 -0
  3. package/css/highcharts.scss +12 -0
  4. package/css/themes/dark-unica.css +12 -0
  5. package/css/themes/grid-light.css +12 -0
  6. package/css/themes/sand-signika.css +12 -0
  7. package/es-modules/{modules/accessibility/a11y-i18n.js → Accessibility/A11yI18n.js} +2 -2
  8. package/es-modules/{modules/accessibility/accessibility.js → Accessibility/Accessibility.js} +24 -21
  9. package/es-modules/{modules/accessibility → Accessibility}/AccessibilityComponent.js +73 -17
  10. package/es-modules/{modules/accessibility/components → Accessibility/Components}/AnnotationsA11y.js +2 -4
  11. package/es-modules/{modules/accessibility/components → Accessibility/Components}/ContainerComponent.js +8 -9
  12. package/es-modules/{modules/accessibility/components → Accessibility/Components}/InfoRegionsComponent.js +9 -12
  13. package/es-modules/{modules/accessibility/components → Accessibility/Components}/LegendComponent.js +60 -22
  14. package/es-modules/{modules/accessibility/components → Accessibility/Components}/MenuComponent.js +4 -11
  15. package/es-modules/{modules/accessibility/components → Accessibility/Components}/RangeSelectorComponent.js +8 -7
  16. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +171 -0
  17. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/NewDataAnnouncer.js +8 -7
  18. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/SeriesComponent.js +5 -5
  19. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/SeriesDescriber.js +6 -6
  20. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/SeriesKeyboardNavigation.js +22 -20
  21. package/es-modules/{modules/accessibility/components → Accessibility/Components}/ZoomComponent.js +9 -8
  22. package/es-modules/{modules/accessibility/focusBorder.js → Accessibility/FocusBorder.js} +13 -10
  23. package/es-modules/{modules/accessibility/high-contrast-mode.js → Accessibility/HighContrastMode.js} +3 -2
  24. package/es-modules/{modules/accessibility/high-contrast-theme.js → Accessibility/HighContrastTheme.js} +0 -0
  25. package/es-modules/{modules/accessibility → Accessibility}/KeyboardNavigation.js +35 -22
  26. package/es-modules/{modules/accessibility → Accessibility}/KeyboardNavigationHandler.js +1 -1
  27. package/es-modules/{modules/accessibility/options/deprecatedOptions.js → Accessibility/Options/DeprecatedOptions.js} +10 -20
  28. package/es-modules/{modules/accessibility/options/langOptions.js → Accessibility/Options/LangOptions.js} +1 -1
  29. package/es-modules/{modules/accessibility/options/options.js → Accessibility/Options/Options.js} +1 -2
  30. package/es-modules/{modules/accessibility/utils → Accessibility/Utils}/Announcer.js +2 -2
  31. package/es-modules/{modules/accessibility/utils/chartUtilities.js → Accessibility/Utils/ChartUtilities.js} +8 -9
  32. package/es-modules/{modules/accessibility/utils → Accessibility/Utils}/DOMElementProvider.js +5 -5
  33. package/es-modules/{modules/accessibility/utils → Accessibility/Utils}/EventProvider.js +2 -2
  34. package/es-modules/{modules/accessibility/utils/htmlUtilities.js → Accessibility/Utils/HTMLUtilities.js} +3 -4
  35. package/es-modules/Core/Animation/AnimationUtilities.js +193 -0
  36. package/es-modules/Core/Animation/Fx.js +378 -0
  37. package/es-modules/{parts → Core/Axis}/Axis.js +153 -89
  38. package/es-modules/{parts-3d → Core/Axis}/Axis3D.js +12 -7
  39. package/es-modules/{modules/broken-axis.src.js → Core/Axis/BrokenAxis.js} +6 -8
  40. package/es-modules/{parts-map → Core/Axis}/ColorAxis.js +28 -31
  41. package/es-modules/{parts → Core/Axis}/DateTimeAxis.js +1 -1
  42. package/es-modules/{parts-gantt → Core/Axis}/GridAxis.js +136 -39
  43. package/es-modules/{parts-more → Core/Axis}/HiddenAxis.js +0 -0
  44. package/es-modules/{parts → Core/Axis}/LogarithmicAxis.js +1 -1
  45. package/es-modules/{parts-map → Core/Axis}/MapAxis.js +2 -2
  46. package/es-modules/{parts → Core/Axis}/NavigatorAxis.js +2 -2
  47. package/es-modules/{parts → Core/Axis}/OrdinalAxis.js +241 -224
  48. package/es-modules/{parts → Core/Axis}/PlotLineOrBand.js +24 -15
  49. package/es-modules/{parts-more → Core/Axis}/RadialAxis.js +34 -27
  50. package/es-modules/{parts → Core/Axis}/ScrollbarAxis.js +2 -2
  51. package/es-modules/{parts → Core/Axis}/StackingAxis.js +11 -2
  52. package/es-modules/{parts → Core/Axis}/Tick.js +14 -14
  53. package/es-modules/{parts-3d → Core/Axis}/Tick3D.js +1 -1
  54. package/es-modules/{parts-gantt → Core/Axis}/TreeGridAxis.js +81 -15
  55. package/es-modules/{parts-gantt → Core/Axis}/TreeGridTick.js +1 -1
  56. package/es-modules/{parts-3d → Core/Axis}/ZAxis.js +2 -2
  57. package/es-modules/{parts → Core/Chart}/Chart.js +225 -227
  58. package/es-modules/Core/Chart/Chart3D.js +1674 -0
  59. package/es-modules/{parts-gantt → Core/Chart}/GanttChart.js +13 -12
  60. package/es-modules/{parts → Core/Chart}/StockChart.js +26 -25
  61. package/es-modules/Core/Color/Color.js +419 -0
  62. package/es-modules/Core/Color/ColorType.js +9 -0
  63. package/es-modules/{parts → Core}/Color.js +1 -1
  64. package/es-modules/{parts → Core}/Dynamics.js +91 -61
  65. package/es-modules/{parts → Core}/Globals.js +9 -1
  66. package/es-modules/{parts → Core}/Interaction.js +27 -20
  67. package/es-modules/{parts → Core}/Legend.js +26 -11
  68. package/es-modules/{parts → Core}/MSPointer.js +2 -2
  69. package/es-modules/{parts → Core}/Navigator.js +24 -14
  70. package/es-modules/{parts → Core}/Options.js +157 -69
  71. package/es-modules/{parts → Core}/Pointer.js +50 -27
  72. package/es-modules/Core/Renderer/DOMElementType.js +9 -0
  73. package/es-modules/Core/Renderer/HTML/HTMLElement.js +220 -0
  74. package/es-modules/{parts/Html.js → Core/Renderer/HTML/HTMLRenderer.js} +16 -207
  75. package/es-modules/{parts → Core/Renderer/SVG}/SVGElement.js +186 -32
  76. package/es-modules/Core/Renderer/SVG/SVGLabel.js +410 -0
  77. package/es-modules/{parts/SvgRenderer.js → Core/Renderer/SVG/SVGRenderer.js} +426 -886
  78. package/es-modules/{parts-3d/SVGRenderer.js → Core/Renderer/SVG/SVGRenderer3D.js} +31 -23
  79. package/es-modules/{parts → Core}/Responsive.js +24 -14
  80. package/es-modules/{parts → Core}/Scrollbar.js +5 -4
  81. package/es-modules/Core/Series/BaseSeries.js +157 -0
  82. package/es-modules/{parts/Series.js → Core/Series/CartesianSeries.js} +119 -55
  83. package/es-modules/{parts → Core/Series}/DataLabels.js +40 -36
  84. package/es-modules/{parts → Core/Series}/Point.js +8 -10
  85. package/es-modules/Core/Series/Series.js +158 -0
  86. package/es-modules/{parts-3d/Series.js → Core/Series/Series3D.js} +5 -3
  87. package/es-modules/{parts → Core}/Time.js +11 -133
  88. package/es-modules/{parts → Core}/Tooltip.js +30 -27
  89. package/es-modules/{parts → Core}/Utilities.js +103 -562
  90. package/es-modules/{mixins/ajax.js → Extensions/Ajax.js} +9 -4
  91. package/es-modules/{annotations/annotations.src.js → Extensions/Annotations/Annotations.js} +901 -709
  92. package/es-modules/{annotations → Extensions/Annotations}/ControlPoint.js +2 -2
  93. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +117 -0
  94. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +111 -0
  95. package/es-modules/{annotations/controllable → Extensions/Annotations/Controllables}/ControllableLabel.js +186 -146
  96. package/es-modules/{annotations/controllable → Extensions/Annotations/Controllables}/ControllablePath.js +81 -42
  97. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +121 -0
  98. package/es-modules/{annotations/controllable/controllableMixin.js → Extensions/Annotations/Mixins/ControllableMixin.js} +8 -9
  99. package/es-modules/{annotations/eventEmitterMixin.js → Extensions/Annotations/Mixins/EventEmitterMixin.js} +7 -7
  100. package/es-modules/{annotations/controllable/markerMixin.js → Extensions/Annotations/Mixins/MarkerMixin.js} +10 -8
  101. package/es-modules/{annotations → Extensions/Annotations}/MockPoint.js +6 -6
  102. package/es-modules/{annotations/navigationBindings.js → Extensions/Annotations/NavigationBindings.js} +27 -16
  103. package/es-modules/{annotations/popup.js → Extensions/Annotations/Popup.js} +9 -9
  104. package/es-modules/{annotations/types → Extensions/Annotations/Types}/BasicAnnotation.js +68 -20
  105. package/es-modules/{annotations/types → Extensions/Annotations/Types}/CrookedLine.js +46 -19
  106. package/es-modules/{annotations/types → Extensions/Annotations/Types}/ElliottWave.js +33 -12
  107. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Fibonacci.js +54 -22
  108. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +147 -0
  109. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Measure.js +82 -52
  110. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Pitchfork.js +69 -32
  111. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Tunnel.js +58 -30
  112. package/es-modules/{annotations/types → Extensions/Annotations/Types}/VerticalLine.js +64 -33
  113. package/es-modules/{parts-gantt → Extensions}/ArrowSymbols.js +9 -11
  114. package/es-modules/{modules/boost/boost.js → Extensions/Boost/Boost.js} +8 -8
  115. package/es-modules/{modules/boost/boost-attach.js → Extensions/Boost/BoostAttach.js} +10 -8
  116. package/es-modules/{modules/boost/boost-init.js → Extensions/Boost/BoostInit.js} +7 -6
  117. package/es-modules/{modules/boost/boost-options.js → Extensions/Boost/BoostOptions.js} +1 -1
  118. package/es-modules/{modules/boost/boost-overrides.js → Extensions/Boost/BoostOverrides.js} +14 -11
  119. package/es-modules/{modules/boost/boost-utils.js → Extensions/Boost/BoostUtils.js} +6 -6
  120. package/es-modules/{modules/boost/boostable-map.js → Extensions/Boost/BoostableMap.js} +1 -1
  121. package/es-modules/{modules/boost/boostables.js → Extensions/Boost/Boostables.js} +0 -0
  122. package/es-modules/{modules/boost/named-colors.js → Extensions/Boost/NamedColors.js} +1 -1
  123. package/es-modules/{modules/boost/wgl-renderer.js → Extensions/Boost/WGLRenderer.js} +9 -9
  124. package/es-modules/{modules/boost/wgl-shader.js → Extensions/Boost/WGLShader.js} +3 -4
  125. package/es-modules/{modules/boost/wgl-vbuffer.js → Extensions/Boost/WGLVBuffer.js} +0 -0
  126. package/es-modules/{modules/boost-canvas.src.js → Extensions/BoostCanvas.js} +13 -9
  127. package/es-modules/{parts-gantt/CurrentDateIndicator.js → Extensions/CurrentDateIndication.js} +5 -7
  128. package/es-modules/{modules/data.src.js → Extensions/Data.js} +14 -16
  129. package/es-modules/{parts → Extensions}/DataGrouping.js +12 -9
  130. package/es-modules/{modules/debugger.src.js → Extensions/Debugger.js} +6 -6
  131. package/es-modules/{mixins/download-url.js → Extensions/DownloadURL.js} +15 -7
  132. package/es-modules/{modules/drag-panes.src.js → Extensions/DragPanes.js} +6 -6
  133. package/es-modules/{modules/draggable-points.src.js → Extensions/DraggablePoints.js} +21 -32
  134. package/es-modules/{modules/drilldown.src.js → Extensions/Drilldown.js} +64 -43
  135. package/es-modules/{modules/export-data.src.js → Extensions/ExportData.js} +126 -26
  136. package/es-modules/{modules/exporting.src.js → Extensions/Exporting.js} +26 -12
  137. package/es-modules/{modules/full-screen.src.js → Extensions/FullScreen.js} +5 -3
  138. package/es-modules/{parts-map → Extensions}/GeoJSON.js +112 -7
  139. package/es-modules/{modules/marker-clusters.src.js → Extensions/MarkerClusters.js} +29 -39
  140. package/es-modules/{parts-3d/Math.js → Extensions/Math3D.js} +17 -9
  141. package/es-modules/{modules/no-data-to-display.src.js → Extensions/NoDataToDisplay.js} +14 -15
  142. package/es-modules/{modules/offline-exporting.src.js → Extensions/OfflineExporting.js} +39 -35
  143. package/es-modules/{modules/oldie.src.js → Extensions/Oldie/Oldie.js} +19 -12
  144. package/es-modules/{parts-3d → Extensions/Oldie}/VMLAxis3D.js +1 -1
  145. package/es-modules/Extensions/Oldie/VMLRenderer3D.js +46 -0
  146. package/es-modules/{modules/oldie-polyfills.src.js → Extensions/OldiePolyfills.js} +5 -0
  147. package/es-modules/{modules/overlapping-datalabels.src.js → Extensions/OverlappingDataLabels.js} +14 -13
  148. package/es-modules/{parts-more → Extensions}/Pane.js +13 -12
  149. package/es-modules/{modules/parallel-coordinates.src.js → Extensions/ParallelCoordinates.js} +140 -138
  150. package/es-modules/{modules/pattern-fill.src.js → Extensions/PatternFill.js} +23 -15
  151. package/es-modules/{parts-more → Extensions}/Polar.js +15 -12
  152. package/es-modules/{modules/price-indicator.src.js → Extensions/PriceIndication.js} +5 -3
  153. package/es-modules/{parts → Extensions}/RangeSelector.js +112 -79
  154. package/es-modules/{parts → Extensions}/ScrollablePlotArea.js +19 -9
  155. package/es-modules/{modules/series-label.src.js → Extensions/SeriesLabel.js} +14 -10
  156. package/es-modules/{modules/sonification/chartSonify.js → Extensions/Sonification/ChartSonify.js} +212 -41
  157. package/es-modules/{modules/sonification → Extensions/Sonification}/Earcon.js +3 -7
  158. package/es-modules/{modules/sonification → Extensions/Sonification}/Instrument.js +35 -11
  159. package/es-modules/{modules/sonification/instrumentDefinitions.js → Extensions/Sonification/InstrumentDefinitions.js} +1 -1
  160. package/es-modules/{modules/sonification/musicalFrequencies.js → Extensions/Sonification/MusicalFrequencies.js} +0 -0
  161. package/es-modules/Extensions/Sonification/Options.js +34 -0
  162. package/es-modules/{modules/sonification/pointSonify.js → Extensions/Sonification/PointSonify.js} +43 -28
  163. package/es-modules/{modules/sonification/sonification.js → Extensions/Sonification/Sonification.js} +16 -12
  164. package/es-modules/{modules/sonification → Extensions/Sonification}/Timeline.js +25 -6
  165. package/es-modules/{modules/sonification/utilities.js → Extensions/Sonification/Utilities.js} +8 -5
  166. package/es-modules/{parts → Extensions}/Stacking.js +57 -18
  167. package/es-modules/{modules/static-scale.src.js → Extensions/StaticScale.js} +4 -4
  168. package/es-modules/{themes/avocado.js → Extensions/Themes/Avocado.js} +5 -4
  169. package/es-modules/{themes/dark-blue.js → Extensions/Themes/DarkBlue.js} +4 -2
  170. package/es-modules/{themes/dark-green.js → Extensions/Themes/DarkGreen.js} +4 -2
  171. package/es-modules/{themes/dark-unica.js → Extensions/Themes/DarkUnica.js} +6 -6
  172. package/es-modules/{themes/gray.js → Extensions/Themes/Gray.js} +5 -4
  173. package/es-modules/{themes/grid.js → Extensions/Themes/Grid.js} +4 -2
  174. package/es-modules/{themes/grid-light.js → Extensions/Themes/GridLight.js} +4 -2
  175. package/es-modules/{themes/high-contrast-dark.js → Extensions/Themes/HighContrastDark.js} +5 -4
  176. package/es-modules/{themes/high-contrast-light.js → Extensions/Themes/HighContrastLight.js} +4 -2
  177. package/es-modules/{themes/sand-signika.js → Extensions/Themes/SandSignika.js} +4 -2
  178. package/es-modules/{themes/skies.js → Extensions/Themes/Skies.js} +5 -3
  179. package/es-modules/{themes/sunset.js → Extensions/Themes/Sunset.js} +5 -4
  180. package/es-modules/{parts-gantt/Pathfinder.js → Gantt/Connection.js} +41 -284
  181. package/es-modules/Gantt/Pathfinder.js +816 -0
  182. package/es-modules/Gantt/PathfinderAlgorithms.js +659 -0
  183. package/es-modules/{parts-gantt → Gantt}/Tree.js +1 -1
  184. package/es-modules/{parts-map → Maps}/Map.js +24 -15
  185. package/es-modules/{parts-map → Maps}/MapNavigation.js +4 -5
  186. package/es-modules/{parts-map → Maps}/MapPointer.js +2 -4
  187. package/es-modules/{mixins/centered-series.js → Mixins/CenteredSeries.js} +7 -5
  188. package/es-modules/{parts-map/ColorMapSeriesMixin.js → Mixins/ColorMapSeries.js} +10 -6
  189. package/es-modules/{parts-map/ColorSeriesMixin.js → Mixins/ColorSeries.js} +12 -4
  190. package/es-modules/{mixins/derived-series.js → Mixins/DerivedSeries.js} +3 -3
  191. package/es-modules/{mixins/draw-point.js → Mixins/DrawPoint.js} +6 -1
  192. package/es-modules/{mixins/geometry.js → Mixins/Geometry.js} +0 -0
  193. package/es-modules/{mixins/geometry-circles.js → Mixins/GeometryCircles.js} +2 -2
  194. package/es-modules/{mixins/indicator-required.js → Mixins/IndicatorRequired.js} +1 -1
  195. package/es-modules/{mixins/legend-symbol.js → Mixins/LegendSymbol.js} +6 -10
  196. package/es-modules/{mixins/multipe-lines.js → Mixins/MultipleLines.js} +2 -2
  197. package/es-modules/{mixins/navigation.js → Mixins/Navigation.js} +0 -0
  198. package/es-modules/{mixins/nelder-mead.js → Mixins/NelderMead.js} +2 -2
  199. package/es-modules/{mixins/nodes.js → Mixins/Nodes.js} +7 -5
  200. package/es-modules/{mixins/on-series.js → Mixins/OnSeries.js} +3 -2
  201. package/es-modules/{mixins/polygon.js → Mixins/Polygon.js} +2 -2
  202. package/es-modules/{mixins/reduce-array.js → Mixins/ReduceArray.js} +1 -1
  203. package/es-modules/{mixins/tree-series.js → Mixins/TreeSeries.js} +2 -2
  204. package/es-modules/{parts-more → Series}/AreaRangeSeries.js +75 -38
  205. package/es-modules/{parts → Series}/AreaSeries.js +43 -25
  206. package/es-modules/{parts-more → Series}/AreaSplineRangeSeries.js +47 -10
  207. package/es-modules/{parts → Series}/AreaSplineSeries.js +49 -10
  208. package/es-modules/{parts → Series}/BarSeries.js +2 -5
  209. package/es-modules/{modules/bellcurve.src.js → Series/BellcurveSeries.js} +47 -7
  210. package/es-modules/{parts-more → Series}/BoxPlotSeries.js +18 -13
  211. package/es-modules/{parts-more → Series/Bubble}/BubbleLegend.js +11 -9
  212. package/es-modules/{parts-more → Series/Bubble}/BubbleSeries.js +25 -27
  213. package/es-modules/{modules/bullet.src.js → Series/BulletSeries.js} +9 -8
  214. package/es-modules/{parts → Series}/CandlestickSeries.js +11 -8
  215. package/es-modules/{parts-3d/Column.js → Series/Column3DSeries.js} +108 -28
  216. package/es-modules/{parts-more → Series}/ColumnPyramidSeries.js +9 -9
  217. package/es-modules/{parts-more → Series}/ColumnRangeSeries.js +21 -18
  218. package/es-modules/{parts → Series}/ColumnSeries.js +119 -41
  219. package/es-modules/{modules/cylinder.src.js → Series/CylinderSeries.js} +14 -14
  220. package/es-modules/{modules/dependency-wheel.src.js → Series/DependencyWheelSeries.js} +14 -12
  221. package/es-modules/{modules/dotplot.src.js → Series/DotplotSeries.js} +7 -15
  222. package/es-modules/{modules/dumbbell.src.js → Series/DumbbellSeries.js} +16 -10
  223. package/es-modules/{parts-more → Series}/ErrorBarSeries.js +8 -8
  224. package/es-modules/{parts → Series}/FlagsSeries.js +18 -12
  225. package/es-modules/{modules/funnel3d.src.js → Series/Funnel3DSeries.js} +14 -16
  226. package/es-modules/{modules/funnel.src.js → Series/FunnelSeries.js} +16 -14
  227. package/es-modules/{parts-gantt → Series}/GanttSeries.js +21 -20
  228. package/es-modules/{parts-more → Series}/GaugeSeries.js +14 -12
  229. package/es-modules/{parts-map → Series}/HeatmapSeries.js +23 -16
  230. package/es-modules/{modules/histogram.src.js → Series/HistogramSeries.js} +13 -9
  231. package/es-modules/{modules/item-series.src.js → Series/ItemSeries.js} +22 -14
  232. package/es-modules/Series/LineSeries.js +13 -0
  233. package/es-modules/{modules/lollipop.src.js → Series/LollipopSeries.js} +34 -10
  234. package/es-modules/{parts-map → Series}/MapBubbleSeries.js +8 -9
  235. package/es-modules/{parts-map → Series}/MapLineSeries.js +5 -7
  236. package/es-modules/{parts-map → Series}/MapPointSeries.js +9 -8
  237. package/es-modules/{parts-map → Series}/MapSeries.js +22 -18
  238. package/es-modules/{modules/networkgraph/draggable-nodes.js → Series/Networkgraph/DraggableNodes.js} +15 -30
  239. package/es-modules/{modules/networkgraph/integrations.js → Series/Networkgraph/Integrations.js} +1 -1
  240. package/es-modules/{modules/networkgraph/layouts.js → Series/Networkgraph/Layouts.js} +43 -13
  241. package/es-modules/{modules/networkgraph/networkgraph.src.js → Series/Networkgraph/Networkgraph.js} +29 -23
  242. package/es-modules/{modules/networkgraph → Series/Networkgraph}/QuadTree.js +2 -2
  243. package/es-modules/{parts → Series}/OHLCSeries.js +5 -7
  244. package/es-modules/{modules/organization.src.js → Series/OrganizationSeries.js} +10 -7
  245. package/es-modules/{parts-more → Series}/PackedBubbleSeries.js +104 -28
  246. package/es-modules/{modules/pareto.src.js → Series/ParetoSeries.js} +10 -9
  247. package/es-modules/{parts-3d/Pie.js → Series/Pie3DSeries.js} +5 -4
  248. package/es-modules/{parts → Series}/PieSeries.js +66 -31
  249. package/es-modules/{parts-more → Series}/PolygonSeries.js +13 -13
  250. package/es-modules/{modules/pyramid3d.src.js → Series/Pyramid3DSeries.js} +5 -7
  251. package/es-modules/{modules/sankey.src.js → Series/SankeySeries.js} +23 -21
  252. package/es-modules/{parts-3d/Scatter.js → Series/Scatter3DSeries.js} +10 -9
  253. package/es-modules/{parts → Series}/ScatterSeries.js +15 -10
  254. package/es-modules/{modules/solid-gauge.src.js → Series/SolidGaugeSeries.js} +112 -78
  255. package/es-modules/{parts → Series}/SplineSeries.js +9 -7
  256. package/es-modules/{modules/streamgraph.src.js → Series/StreamgraphSeries.js} +42 -6
  257. package/es-modules/{modules/sunburst.src.js → Series/SunburstSeries.js} +20 -13
  258. package/es-modules/{modules/tilemap.src.js → Series/TilemapSeries.js} +12 -9
  259. package/es-modules/{modules/timeline.src.js → Series/TimelineSeries.js} +16 -11
  260. package/es-modules/{modules/treemap.src.js → Series/TreemapSeries.js} +47 -40
  261. package/es-modules/{modules/variable-pie.src.js → Series/VariablePieSeries.js} +11 -8
  262. package/es-modules/{modules/variwide.src.js → Series/VariwideSeries.js} +12 -10
  263. package/es-modules/{modules/vector.src.js → Series/VectorSeries.js} +11 -7
  264. package/es-modules/{modules/venn.src.js → Series/VennSeries.js} +29 -20
  265. package/es-modules/{parts-more → Series}/WaterfallSeries.js +145 -66
  266. package/es-modules/{modules/windbarb.src.js → Series/WindbarbSeries.js} +13 -9
  267. package/es-modules/{modules/wordcloud.src.js → Series/WordcloudSeries.js} +17 -13
  268. package/es-modules/{modules/xrange.src.js → Series/XRangeSeries.js} +16 -12
  269. package/es-modules/{indicators/acceleration-bands.src.js → Stock/Indicators/ABIndicator.js} +8 -8
  270. package/es-modules/{indicators/accumulation-distribution.src.js → Stock/Indicators/ADIndicator.js} +5 -4
  271. package/es-modules/{indicators/ao.src.js → Stock/Indicators/AOIndicator.js} +6 -5
  272. package/es-modules/{indicators/apo.src.js → Stock/Indicators/APOIndicator.js} +8 -8
  273. package/es-modules/{indicators/atr.src.js → Stock/Indicators/ATRIndicator.js} +6 -6
  274. package/es-modules/{indicators/aroon.src.js → Stock/Indicators/AroonIndicator.js} +7 -6
  275. package/es-modules/{indicators/aroon-oscillator.src.js → Stock/Indicators/AroonOscillatorIndicator.js} +8 -8
  276. package/es-modules/{indicators/bollinger-bands.src.js → Stock/Indicators/BBIndicator.js} +8 -8
  277. package/es-modules/{indicators/cci.src.js → Stock/Indicators/CCIIndicator.js} +5 -4
  278. package/es-modules/{indicators/cmf.src.js → Stock/Indicators/CMFIndicator.js} +3 -4
  279. package/es-modules/{indicators/chaikin.src.js → Stock/Indicators/ChaikinIndicator.js} +10 -9
  280. package/es-modules/{indicators/dema.src.js → Stock/Indicators/DEMAIndicator.js} +8 -8
  281. package/es-modules/{indicators/dpo.src.js → Stock/Indicators/DPOIndicator.js} +5 -4
  282. package/es-modules/{indicators/ema.src.js → Stock/Indicators/EMAIndicator.js} +4 -4
  283. package/es-modules/{indicators/ichimoku-kinko-hyo.src.js → Stock/Indicators/IKHIndicator.js} +23 -20
  284. package/es-modules/{indicators/keltner-channels.src.js → Stock/Indicators/KeltnerChannelsIndicator.js} +11 -8
  285. package/es-modules/{indicators/macd.src.js → Stock/Indicators/MACDIndicator.js} +9 -6
  286. package/es-modules/{indicators/mfi.src.js → Stock/Indicators/MFIIndicator.js} +5 -4
  287. package/es-modules/{indicators/momentum.src.js → Stock/Indicators/MomentumIndicator.js} +5 -4
  288. package/es-modules/{indicators/natr.src.js → Stock/Indicators/NATRIndicator.js} +4 -6
  289. package/es-modules/{indicators/price-channel.src.js → Stock/Indicators/PCIndicator.js} +9 -8
  290. package/es-modules/{indicators/ppo.src.js → Stock/Indicators/PPOIndicator.js} +8 -8
  291. package/es-modules/{indicators/psar.src.js → Stock/Indicators/PSARIndicator.js} +3 -4
  292. package/es-modules/{indicators/pivot-points.src.js → Stock/Indicators/PivotPointsIndicator.js} +6 -6
  293. package/es-modules/{indicators/price-envelopes.src.js → Stock/Indicators/PriceEnvelopesIndicator.js} +6 -6
  294. package/es-modules/{indicators/roc.src.js → Stock/Indicators/ROCIndicator.js} +5 -4
  295. package/es-modules/{indicators/rsi.src.js → Stock/Indicators/RSIIndicator.js} +5 -4
  296. package/es-modules/{indicators/regressions.src.js → Stock/Indicators/RegressionIndicators.js} +8 -7
  297. package/es-modules/{indicators/indicators.src.js → Stock/Indicators/SMAIndicator.js} +12 -8
  298. package/es-modules/{indicators/slow-stochastic.src.js → Stock/Indicators/SlowStochasticIndicator.js} +6 -8
  299. package/es-modules/{indicators/stochastic.src.js → Stock/Indicators/StochasticIndicator.js} +9 -9
  300. package/es-modules/{indicators/supertrend.src.js → Stock/Indicators/SupertrendIndicator.js} +8 -7
  301. package/es-modules/{indicators/tema.src.js → Stock/Indicators/TEMAIndicator.js} +8 -8
  302. package/es-modules/{indicators/trix.src.js → Stock/Indicators/TRIXIndicator.js} +8 -8
  303. package/es-modules/{indicators/trendline.src.js → Stock/Indicators/TrendLineIndicator.js} +5 -4
  304. package/es-modules/{indicators/volume-by-price.src.js → Stock/Indicators/VBPIndicator.js} +10 -7
  305. package/es-modules/{indicators/vwap.src.js → Stock/Indicators/VWAPIndicator.js} +5 -4
  306. package/es-modules/{indicators/wma.src.js → Stock/Indicators/WMAIndicator.js} +5 -4
  307. package/es-modules/{indicators/williams-r.src.js → Stock/Indicators/WilliamsRIndicator.js} +7 -6
  308. package/es-modules/{indicators/zigzag.src.js → Stock/Indicators/ZigzagIndicator.js} +5 -7
  309. package/es-modules/{modules/stock-tools-bindings.js → Stock/StockToolsBindings.js} +22 -7
  310. package/es-modules/{modules/stock-tools-gui.js → Stock/StockToolsGui.js} +17 -17
  311. package/es-modules/error-messages.js +7 -2
  312. package/es-modules/highcharts.src.js +19853 -0
  313. package/es-modules/masters/highcharts-3d.src.js +11 -12
  314. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  315. package/es-modules/masters/highcharts-more.src.js +15 -15
  316. package/es-modules/masters/highcharts.src.js +28 -27
  317. package/es-modules/masters/highmaps.src.js +1 -1
  318. package/es-modules/masters/highstock.src.js +1 -1
  319. package/es-modules/masters/indicators/acceleration-bands.src.js +2 -2
  320. package/es-modules/masters/indicators/accumulation-distribution.src.js +2 -2
  321. package/es-modules/masters/indicators/ao.src.js +2 -2
  322. package/es-modules/masters/indicators/apo.src.js +2 -2
  323. package/es-modules/masters/indicators/aroon-oscillator.src.js +2 -2
  324. package/es-modules/masters/indicators/aroon.src.js +2 -2
  325. package/es-modules/masters/indicators/atr.src.js +2 -2
  326. package/es-modules/masters/indicators/bollinger-bands.src.js +2 -2
  327. package/es-modules/masters/indicators/cci.src.js +2 -2
  328. package/es-modules/masters/indicators/chaikin.src.js +2 -2
  329. package/es-modules/masters/indicators/cmf.src.js +2 -2
  330. package/es-modules/masters/indicators/dema.src.js +2 -2
  331. package/es-modules/masters/indicators/dpo.src.js +2 -2
  332. package/es-modules/masters/indicators/ema.src.js +2 -2
  333. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +2 -2
  334. package/es-modules/masters/indicators/indicators-all.src.js +41 -41
  335. package/es-modules/masters/indicators/indicators.src.js +2 -2
  336. package/es-modules/masters/indicators/keltner-channels.src.js +2 -2
  337. package/es-modules/masters/indicators/macd.src.js +2 -2
  338. package/es-modules/masters/indicators/mfi.src.js +2 -2
  339. package/es-modules/masters/indicators/momentum.src.js +2 -2
  340. package/es-modules/masters/indicators/natr.src.js +2 -2
  341. package/es-modules/masters/indicators/pivot-points.src.js +2 -2
  342. package/es-modules/masters/indicators/ppo.src.js +2 -2
  343. package/es-modules/masters/indicators/price-channel.src.js +2 -2
  344. package/es-modules/masters/indicators/price-envelopes.src.js +2 -2
  345. package/es-modules/masters/indicators/psar.src.js +2 -2
  346. package/es-modules/masters/indicators/regressions.src.js +2 -2
  347. package/es-modules/masters/indicators/roc.src.js +2 -2
  348. package/es-modules/masters/indicators/rsi.src.js +2 -2
  349. package/es-modules/masters/indicators/slow-stochastic.src.js +2 -2
  350. package/es-modules/masters/indicators/stochastic.src.js +2 -2
  351. package/es-modules/masters/indicators/supertrend.src.js +2 -2
  352. package/es-modules/masters/indicators/tema.src.js +2 -2
  353. package/es-modules/masters/indicators/trendline.src.js +2 -2
  354. package/es-modules/masters/indicators/trix.src.js +2 -2
  355. package/es-modules/masters/indicators/volume-by-price.src.js +2 -2
  356. package/es-modules/masters/indicators/vwap.src.js +2 -2
  357. package/es-modules/masters/indicators/williams-r.src.js +2 -2
  358. package/es-modules/masters/indicators/wma.src.js +2 -2
  359. package/es-modules/masters/indicators/zigzag.src.js +2 -2
  360. package/es-modules/masters/modules/accessibility.src.js +2 -2
  361. package/es-modules/masters/modules/annotations-advanced.src.js +13 -13
  362. package/es-modules/masters/modules/annotations.src.js +4 -4
  363. package/es-modules/masters/modules/arrow-symbols.src.js +2 -2
  364. package/es-modules/masters/modules/boost-canvas.src.js +2 -2
  365. package/es-modules/masters/modules/boost.src.js +2 -2
  366. package/es-modules/masters/modules/broken-axis.src.js +2 -2
  367. package/es-modules/masters/modules/bullet.src.js +2 -2
  368. package/es-modules/masters/modules/coloraxis.src.js +2 -2
  369. package/es-modules/masters/modules/current-date-indicator.src.js +2 -2
  370. package/es-modules/masters/modules/cylinder.src.js +2 -2
  371. package/es-modules/masters/modules/data.src.js +2 -2
  372. package/es-modules/masters/modules/datagrouping.src.js +2 -2
  373. package/es-modules/masters/modules/debugger.src.js +2 -2
  374. package/es-modules/masters/modules/dependency-wheel.src.js +2 -2
  375. package/es-modules/masters/modules/dotplot.src.js +2 -2
  376. package/es-modules/masters/modules/drag-panes.src.js +2 -2
  377. package/es-modules/masters/modules/draggable-points.src.js +2 -2
  378. package/es-modules/masters/modules/drilldown.src.js +2 -2
  379. package/es-modules/masters/modules/dumbbell.src.js +2 -2
  380. package/es-modules/masters/modules/export-data.src.js +2 -2
  381. package/es-modules/masters/modules/exporting.src.js +3 -3
  382. package/es-modules/masters/modules/full-screen.src.js +2 -2
  383. package/es-modules/masters/modules/funnel.src.js +2 -2
  384. package/es-modules/masters/modules/funnel3d.src.js +2 -2
  385. package/es-modules/masters/modules/gantt.src.js +6 -6
  386. package/es-modules/masters/modules/grid-axis.src.js +2 -2
  387. package/es-modules/masters/modules/heatmap.src.js +4 -4
  388. package/es-modules/masters/modules/histogram-bellcurve.src.js +3 -3
  389. package/es-modules/masters/modules/item-series.src.js +2 -2
  390. package/es-modules/masters/modules/lollipop.src.js +2 -2
  391. package/es-modules/masters/modules/map.src.js +13 -13
  392. package/es-modules/masters/modules/marker-clusters.src.js +2 -2
  393. package/es-modules/masters/modules/networkgraph.src.js +2 -2
  394. package/es-modules/masters/modules/no-data-to-display.src.js +2 -2
  395. package/es-modules/masters/modules/offline-exporting.src.js +2 -2
  396. package/es-modules/masters/modules/oldie-polyfills.src.js +2 -2
  397. package/es-modules/masters/modules/oldie.src.js +2 -2
  398. package/es-modules/masters/modules/organization.src.js +2 -2
  399. package/es-modules/masters/modules/overlapping-datalabels.src.js +2 -2
  400. package/es-modules/masters/modules/parallel-coordinates.src.js +2 -2
  401. package/es-modules/masters/modules/pareto.src.js +2 -2
  402. package/es-modules/masters/modules/pathfinder.src.js +2 -2
  403. package/es-modules/masters/modules/pattern-fill.src.js +2 -2
  404. package/es-modules/masters/modules/price-indicator.src.js +2 -2
  405. package/es-modules/masters/modules/pyramid3d.src.js +2 -2
  406. package/es-modules/masters/modules/sankey.src.js +2 -2
  407. package/es-modules/masters/modules/series-label.src.js +2 -2
  408. package/es-modules/masters/modules/solid-gauge.src.js +2 -2
  409. package/es-modules/masters/modules/sonification.src.js +2 -2
  410. package/es-modules/masters/modules/static-scale.src.js +2 -2
  411. package/es-modules/masters/modules/stock-tools.src.js +3 -3
  412. package/es-modules/masters/modules/stock.src.js +10 -10
  413. package/es-modules/masters/modules/streamgraph.src.js +2 -2
  414. package/es-modules/masters/modules/sunburst.src.js +2 -2
  415. package/es-modules/masters/modules/tilemap.src.js +2 -2
  416. package/es-modules/masters/modules/timeline.src.js +2 -2
  417. package/es-modules/masters/modules/treegrid.src.js +2 -2
  418. package/es-modules/masters/modules/treemap.src.js +2 -2
  419. package/es-modules/masters/modules/variable-pie.src.js +2 -2
  420. package/es-modules/masters/modules/variwide.src.js +2 -2
  421. package/es-modules/masters/modules/vector.src.js +2 -2
  422. package/es-modules/masters/modules/venn.src.js +2 -2
  423. package/es-modules/masters/modules/windbarb.src.js +2 -2
  424. package/es-modules/masters/modules/wordcloud.src.js +2 -2
  425. package/es-modules/masters/modules/xrange.src.js +2 -2
  426. package/es-modules/masters/themes/avocado.src.js +2 -2
  427. package/es-modules/masters/themes/dark-blue.src.js +2 -2
  428. package/es-modules/masters/themes/dark-green.src.js +2 -2
  429. package/es-modules/masters/themes/dark-unica.src.js +2 -2
  430. package/es-modules/masters/themes/gray.src.js +2 -2
  431. package/es-modules/masters/themes/grid-light.src.js +2 -2
  432. package/es-modules/masters/themes/grid.src.js +2 -2
  433. package/es-modules/masters/themes/high-contrast-dark.src.js +2 -2
  434. package/es-modules/masters/themes/high-contrast-light.src.js +2 -2
  435. package/es-modules/masters/themes/sand-signika.src.js +2 -2
  436. package/es-modules/masters/themes/skies.src.js +2 -2
  437. package/es-modules/masters/themes/sunset.src.js +2 -2
  438. package/highcharts-3d.js +86 -88
  439. package/highcharts-3d.js.map +1 -1
  440. package/highcharts-3d.src.js +1713 -1615
  441. package/highcharts-gantt.js +730 -697
  442. package/highcharts-gantt.js.map +1 -1
  443. package/highcharts-gantt.src.js +11747 -10110
  444. package/highcharts-more.js +164 -161
  445. package/highcharts-more.js.map +1 -1
  446. package/highcharts-more.src.js +766 -523
  447. package/highcharts.d.ts +7728 -1337
  448. package/highcharts.js +538 -515
  449. package/highcharts.js.map +1 -1
  450. package/highcharts.src.d.ts +7728 -1337
  451. package/highcharts.src.js +8517 -7691
  452. package/highmaps.js +636 -612
  453. package/highmaps.js.map +1 -1
  454. package/highmaps.src.js +9151 -8209
  455. package/highstock.js +697 -671
  456. package/highstock.js.map +1 -1
  457. package/highstock.src.js +8919 -8049
  458. package/indicators/acceleration-bands.js +8 -8
  459. package/indicators/acceleration-bands.js.map +1 -1
  460. package/indicators/acceleration-bands.src.js +8 -8
  461. package/indicators/accumulation-distribution.js +4 -4
  462. package/indicators/accumulation-distribution.js.map +1 -1
  463. package/indicators/accumulation-distribution.src.js +5 -5
  464. package/indicators/ao.js +5 -5
  465. package/indicators/ao.js.map +1 -1
  466. package/indicators/ao.src.js +6 -6
  467. package/indicators/apo.js +5 -5
  468. package/indicators/apo.js.map +1 -1
  469. package/indicators/apo.src.js +8 -9
  470. package/indicators/aroon-oscillator.js +8 -8
  471. package/indicators/aroon-oscillator.js.map +1 -1
  472. package/indicators/aroon-oscillator.src.js +8 -9
  473. package/indicators/aroon.js +7 -7
  474. package/indicators/aroon.js.map +1 -1
  475. package/indicators/aroon.src.js +7 -7
  476. package/indicators/atr.js +4 -4
  477. package/indicators/atr.js.map +1 -1
  478. package/indicators/atr.src.js +6 -14
  479. package/indicators/bollinger-bands.js +8 -8
  480. package/indicators/bollinger-bands.js.map +1 -1
  481. package/indicators/bollinger-bands.src.js +8 -8
  482. package/indicators/cci.js +4 -4
  483. package/indicators/cci.js.map +1 -1
  484. package/indicators/cci.src.js +5 -5
  485. package/indicators/chaikin.js +6 -6
  486. package/indicators/chaikin.js.map +1 -1
  487. package/indicators/chaikin.src.js +75 -75
  488. package/indicators/cmf.js +4 -4
  489. package/indicators/cmf.js.map +1 -1
  490. package/indicators/cmf.src.js +4 -4
  491. package/indicators/dema.js +5 -5
  492. package/indicators/dema.js.map +1 -1
  493. package/indicators/dema.src.js +8 -9
  494. package/indicators/dpo.js +4 -4
  495. package/indicators/dpo.js.map +1 -1
  496. package/indicators/dpo.src.js +5 -5
  497. package/indicators/ema.js +4 -4
  498. package/indicators/ema.js.map +1 -1
  499. package/indicators/ema.src.js +4 -5
  500. package/indicators/ichimoku-kinko-hyo.js +13 -13
  501. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  502. package/indicators/ichimoku-kinko-hyo.src.js +21 -20
  503. package/indicators/indicators-all.js +119 -118
  504. package/indicators/indicators-all.js.map +1 -1
  505. package/indicators/indicators-all.src.js +231 -240
  506. package/indicators/indicators.js +9 -9
  507. package/indicators/indicators.js.map +1 -1
  508. package/indicators/indicators.src.js +9 -9
  509. package/indicators/keltner-channels.js +8 -8
  510. package/indicators/keltner-channels.js.map +1 -1
  511. package/indicators/keltner-channels.src.js +13 -10
  512. package/indicators/macd.js +10 -10
  513. package/indicators/macd.js.map +1 -1
  514. package/indicators/macd.src.js +8 -7
  515. package/indicators/mfi.js +4 -4
  516. package/indicators/mfi.js.map +1 -1
  517. package/indicators/mfi.src.js +5 -5
  518. package/indicators/momentum.js +4 -4
  519. package/indicators/momentum.js.map +1 -1
  520. package/indicators/momentum.src.js +5 -5
  521. package/indicators/natr.js +3 -3
  522. package/indicators/natr.js.map +1 -1
  523. package/indicators/natr.src.js +5 -5
  524. package/indicators/pivot-points.js +8 -8
  525. package/indicators/pivot-points.js.map +1 -1
  526. package/indicators/pivot-points.src.js +6 -6
  527. package/indicators/ppo.js +5 -5
  528. package/indicators/ppo.js.map +1 -1
  529. package/indicators/ppo.src.js +8 -9
  530. package/indicators/price-channel.js +8 -8
  531. package/indicators/price-channel.js.map +1 -1
  532. package/indicators/price-channel.src.js +66 -66
  533. package/indicators/price-envelopes.js +6 -6
  534. package/indicators/price-envelopes.js.map +1 -1
  535. package/indicators/price-envelopes.src.js +6 -6
  536. package/indicators/psar.js +3 -3
  537. package/indicators/psar.js.map +1 -1
  538. package/indicators/psar.src.js +4 -4
  539. package/indicators/regressions.js +6 -6
  540. package/indicators/regressions.js.map +1 -1
  541. package/indicators/regressions.src.js +8 -8
  542. package/indicators/roc.js +3 -3
  543. package/indicators/roc.js.map +1 -1
  544. package/indicators/roc.src.js +5 -5
  545. package/indicators/rsi.js +4 -4
  546. package/indicators/rsi.js.map +1 -1
  547. package/indicators/rsi.src.js +5 -5
  548. package/indicators/slow-stochastic.js +5 -5
  549. package/indicators/slow-stochastic.js.map +1 -1
  550. package/indicators/slow-stochastic.src.js +7 -7
  551. package/indicators/stochastic.js +9 -9
  552. package/indicators/stochastic.js.map +1 -1
  553. package/indicators/stochastic.src.js +67 -67
  554. package/indicators/supertrend.js +9 -9
  555. package/indicators/supertrend.js.map +1 -1
  556. package/indicators/supertrend.src.js +9 -7
  557. package/indicators/tema.js +6 -6
  558. package/indicators/tema.js.map +1 -1
  559. package/indicators/tema.src.js +8 -9
  560. package/indicators/trendline.js +3 -3
  561. package/indicators/trendline.js.map +1 -1
  562. package/indicators/trendline.src.js +5 -5
  563. package/indicators/trix.js +4 -4
  564. package/indicators/trix.js.map +1 -1
  565. package/indicators/trix.src.js +8 -8
  566. package/indicators/volume-by-price.js +13 -13
  567. package/indicators/volume-by-price.js.map +1 -1
  568. package/indicators/volume-by-price.src.js +7 -8
  569. package/indicators/vwap.js +4 -4
  570. package/indicators/vwap.js.map +1 -1
  571. package/indicators/vwap.src.js +5 -5
  572. package/indicators/williams-r.js +4 -4
  573. package/indicators/williams-r.js.map +1 -1
  574. package/indicators/williams-r.src.js +7 -7
  575. package/indicators/wma.js +4 -4
  576. package/indicators/wma.js.map +1 -1
  577. package/indicators/wma.src.js +5 -5
  578. package/indicators/zigzag.js +4 -4
  579. package/indicators/zigzag.js.map +1 -1
  580. package/indicators/zigzag.src.js +6 -7
  581. package/modules/accessibility.d.ts +0 -35
  582. package/modules/accessibility.js +171 -168
  583. package/modules/accessibility.js.map +1 -1
  584. package/modules/accessibility.src.d.ts +0 -35
  585. package/modules/accessibility.src.js +369 -252
  586. package/modules/annotations-advanced.js +158 -136
  587. package/modules/annotations-advanced.js.map +1 -1
  588. package/modules/annotations-advanced.src.js +1929 -1263
  589. package/modules/annotations.js +105 -94
  590. package/modules/annotations.js.map +1 -1
  591. package/modules/annotations.src.js +1485 -1101
  592. package/modules/arrow-symbols.js +4 -4
  593. package/modules/arrow-symbols.js.map +1 -1
  594. package/modules/arrow-symbols.src.js +10 -12
  595. package/modules/boost-canvas.js +15 -15
  596. package/modules/boost-canvas.js.map +1 -1
  597. package/modules/boost-canvas.src.js +17 -17
  598. package/modules/boost.d.ts +4 -0
  599. package/modules/boost.js +77 -64
  600. package/modules/boost.js.map +1 -1
  601. package/modules/boost.src.d.ts +4 -0
  602. package/modules/boost.src.js +581 -33
  603. package/modules/broken-axis.js +10 -10
  604. package/modules/broken-axis.js.map +1 -1
  605. package/modules/broken-axis.src.js +4 -5
  606. package/modules/bullet.js +6 -6
  607. package/modules/bullet.js.map +1 -1
  608. package/modules/bullet.src.js +8 -8
  609. package/modules/coloraxis.js +22 -21
  610. package/modules/coloraxis.js.map +1 -1
  611. package/modules/coloraxis.src.js +67 -59
  612. package/modules/current-date-indicator.js +3 -3
  613. package/modules/current-date-indicator.js.map +1 -1
  614. package/modules/current-date-indicator.src.js +4 -5
  615. package/modules/cylinder.js +8 -8
  616. package/modules/cylinder.js.map +1 -1
  617. package/modules/cylinder.src.js +21 -23
  618. package/modules/data.d.ts +2 -2
  619. package/modules/data.js +32 -32
  620. package/modules/data.js.map +1 -1
  621. package/modules/data.src.d.ts +2 -2
  622. package/modules/data.src.js +26 -25
  623. package/modules/datagrouping.js +17 -17
  624. package/modules/datagrouping.js.map +1 -1
  625. package/modules/datagrouping.src.js +6 -7
  626. package/modules/debugger.js +5 -5
  627. package/modules/debugger.js.map +1 -1
  628. package/modules/debugger.src.js +13 -8
  629. package/modules/dependency-wheel.js +8 -8
  630. package/modules/dependency-wheel.js.map +1 -1
  631. package/modules/dependency-wheel.src.js +10 -10
  632. package/modules/dotplot.js +5 -5
  633. package/modules/dotplot.js.map +1 -1
  634. package/modules/dotplot.src.js +6 -14
  635. package/modules/drag-panes.js +10 -10
  636. package/modules/drag-panes.js.map +1 -1
  637. package/modules/drag-panes.src.js +4 -6
  638. package/modules/draggable-points.js +33 -33
  639. package/modules/draggable-points.js.map +1 -1
  640. package/modules/draggable-points.src.js +22 -35
  641. package/modules/drilldown.d.ts +1 -1
  642. package/modules/drilldown.js +23 -22
  643. package/modules/drilldown.js.map +1 -1
  644. package/modules/drilldown.src.d.ts +1 -1
  645. package/modules/drilldown.src.js +66 -53
  646. package/modules/dumbbell.d.ts +4 -0
  647. package/modules/dumbbell.js +24 -9
  648. package/modules/dumbbell.js.map +1 -1
  649. package/modules/dumbbell.src.d.ts +4 -0
  650. package/modules/dumbbell.src.js +1029 -104
  651. package/modules/export-data.d.ts +4 -29
  652. package/modules/export-data.js +21 -21
  653. package/modules/export-data.js.map +1 -1
  654. package/modules/export-data.src.d.ts +4 -29
  655. package/modules/export-data.src.js +155 -189
  656. package/modules/exporting.d.ts +2 -0
  657. package/modules/exporting.js +33 -33
  658. package/modules/exporting.js.map +1 -1
  659. package/modules/exporting.src.d.ts +2 -0
  660. package/modules/exporting.src.js +40 -30
  661. package/modules/full-screen.js +7 -7
  662. package/modules/full-screen.js.map +1 -1
  663. package/modules/full-screen.src.js +4 -3
  664. package/modules/funnel.js +9 -9
  665. package/modules/funnel.js.map +1 -1
  666. package/modules/funnel.src.js +14 -15
  667. package/modules/funnel3d.js +17 -17
  668. package/modules/funnel3d.js.map +1 -1
  669. package/modules/funnel3d.src.js +12 -14
  670. package/modules/gantt.js +194 -183
  671. package/modules/gantt.js.map +1 -1
  672. package/modules/gantt.src.js +2071 -1260
  673. package/modules/grid-axis.js +22 -19
  674. package/modules/grid-axis.js.map +1 -1
  675. package/modules/grid-axis.src.js +149 -43
  676. package/modules/heatmap.js +33 -32
  677. package/modules/heatmap.js.map +1 -1
  678. package/modules/heatmap.src.js +130 -114
  679. package/modules/histogram-bellcurve.js +10 -10
  680. package/modules/histogram-bellcurve.js.map +1 -1
  681. package/modules/histogram-bellcurve.src.js +57 -16
  682. package/modules/item-series.js +9 -9
  683. package/modules/item-series.js.map +1 -1
  684. package/modules/item-series.src.js +20 -13
  685. package/modules/lollipop.d.ts +20 -1
  686. package/modules/lollipop.js +26 -4
  687. package/modules/lollipop.js.map +1 -1
  688. package/modules/lollipop.src.d.ts +20 -1
  689. package/modules/lollipop.src.js +1452 -10
  690. package/modules/map.d.ts +2 -2
  691. package/modules/map.js +99 -98
  692. package/modules/map.js.map +1 -1
  693. package/modules/map.src.d.ts +2 -2
  694. package/modules/map.src.js +1442 -1326
  695. package/modules/marker-clusters.js +35 -36
  696. package/modules/marker-clusters.js.map +1 -1
  697. package/modules/marker-clusters.src.js +31 -51
  698. package/modules/networkgraph.js +47 -46
  699. package/modules/networkgraph.js.map +1 -1
  700. package/modules/networkgraph.src.js +98 -81
  701. package/modules/no-data-to-display.js +4 -4
  702. package/modules/no-data-to-display.js.map +1 -1
  703. package/modules/no-data-to-display.src.js +17 -13
  704. package/modules/offline-exporting.js +15 -15
  705. package/modules/offline-exporting.js.map +1 -1
  706. package/modules/offline-exporting.src.js +63 -46
  707. package/modules/oldie-polyfills.js +6 -6
  708. package/modules/oldie-polyfills.js.map +1 -1
  709. package/modules/oldie-polyfills.src.js +7 -2
  710. package/modules/oldie.js +52 -26
  711. package/modules/oldie.js.map +1 -1
  712. package/modules/oldie.src.js +1411 -34
  713. package/modules/organization.js +11 -11
  714. package/modules/organization.js.map +1 -1
  715. package/modules/organization.src.js +7 -6
  716. package/modules/overlapping-datalabels.js +1 -1
  717. package/modules/overlapping-datalabels.src.js +1 -1
  718. package/modules/parallel-coordinates.js +11 -11
  719. package/modules/parallel-coordinates.js.map +1 -1
  720. package/modules/parallel-coordinates.src.js +144 -136
  721. package/modules/pareto.js +5 -5
  722. package/modules/pareto.js.map +1 -1
  723. package/modules/pareto.src.js +8 -9
  724. package/modules/pathfinder.js +31 -27
  725. package/modules/pathfinder.js.map +1 -1
  726. package/modules/pathfinder.src.js +1589 -985
  727. package/modules/pattern-fill.js +13 -13
  728. package/modules/pattern-fill.js.map +1 -1
  729. package/modules/pattern-fill.src.js +25 -21
  730. package/modules/price-indicator.js +4 -4
  731. package/modules/price-indicator.js.map +1 -1
  732. package/modules/price-indicator.src.js +5 -3
  733. package/modules/pyramid3d.js +3 -3
  734. package/modules/pyramid3d.js.map +1 -1
  735. package/modules/pyramid3d.src.js +4 -5
  736. package/modules/sankey.js +25 -26
  737. package/modules/sankey.js.map +1 -1
  738. package/modules/sankey.src.js +39 -36
  739. package/modules/series-label.js +17 -17
  740. package/modules/series-label.js.map +1 -1
  741. package/modules/series-label.src.js +17 -17
  742. package/modules/solid-gauge.js +8 -8
  743. package/modules/solid-gauge.js.map +1 -1
  744. package/modules/solid-gauge.src.js +123 -91
  745. package/modules/sonification.d.ts +33 -16
  746. package/modules/sonification.js +55 -49
  747. package/modules/sonification.js.map +1 -1
  748. package/modules/sonification.src.d.ts +33 -16
  749. package/modules/sonification.src.js +361 -115
  750. package/modules/static-scale.js +4 -4
  751. package/modules/static-scale.js.map +1 -1
  752. package/modules/static-scale.src.js +3 -4
  753. package/modules/stock-tools.d.ts +23 -1
  754. package/modules/stock-tools.js +150 -84
  755. package/modules/stock-tools.js.map +1 -1
  756. package/modules/stock-tools.src.d.ts +23 -1
  757. package/modules/stock-tools.src.js +3792 -44
  758. package/modules/stock.js +161 -158
  759. package/modules/stock.js.map +1 -1
  760. package/modules/stock.src.js +456 -412
  761. package/modules/streamgraph.js +2 -2
  762. package/modules/streamgraph.js.map +1 -1
  763. package/modules/streamgraph.src.js +42 -5
  764. package/modules/sunburst.js +51 -49
  765. package/modules/sunburst.js.map +1 -1
  766. package/modules/sunburst.src.js +152 -52
  767. package/modules/tilemap.js +14 -14
  768. package/modules/tilemap.js.map +1 -1
  769. package/modules/tilemap.src.js +12 -11
  770. package/modules/timeline.js +14 -14
  771. package/modules/timeline.js.map +1 -1
  772. package/modules/timeline.src.js +19 -18
  773. package/modules/treegrid.js +57 -52
  774. package/modules/treegrid.js.map +1 -1
  775. package/modules/treegrid.src.js +236 -60
  776. package/modules/treemap.js +35 -34
  777. package/modules/treemap.js.map +1 -1
  778. package/modules/treemap.src.js +213 -118
  779. package/modules/variable-pie.js +8 -8
  780. package/modules/variable-pie.js.map +1 -1
  781. package/modules/variable-pie.src.js +12 -10
  782. package/modules/variwide.js +8 -8
  783. package/modules/variwide.js.map +1 -1
  784. package/modules/variwide.src.js +8 -8
  785. package/modules/vector.js +6 -6
  786. package/modules/vector.js.map +1 -1
  787. package/modules/vector.src.js +9 -9
  788. package/modules/venn.js +26 -26
  789. package/modules/venn.js.map +1 -1
  790. package/modules/venn.src.js +49 -37
  791. package/modules/windbarb.js +11 -11
  792. package/modules/windbarb.js.map +1 -1
  793. package/modules/windbarb.src.js +11 -12
  794. package/modules/wordcloud.js +19 -19
  795. package/modules/wordcloud.js.map +1 -1
  796. package/modules/wordcloud.src.js +26 -18
  797. package/modules/xrange.js +12 -12
  798. package/modules/xrange.js.map +1 -1
  799. package/modules/xrange.src.js +19 -20
  800. package/package.json +1 -1
  801. package/themes/avocado.js +3 -3
  802. package/themes/avocado.js.map +1 -1
  803. package/themes/avocado.src.js +5 -4
  804. package/themes/dark-blue.js +3 -3
  805. package/themes/dark-blue.js.map +1 -1
  806. package/themes/dark-blue.src.js +4 -3
  807. package/themes/dark-green.js +3 -3
  808. package/themes/dark-green.js.map +1 -1
  809. package/themes/dark-green.src.js +4 -3
  810. package/themes/dark-unica.js +7 -7
  811. package/themes/dark-unica.js.map +1 -1
  812. package/themes/dark-unica.src.js +6 -6
  813. package/themes/gray.js +3 -3
  814. package/themes/gray.js.map +1 -1
  815. package/themes/gray.src.js +5 -4
  816. package/themes/grid-light.js +4 -4
  817. package/themes/grid-light.js.map +1 -1
  818. package/themes/grid-light.src.js +4 -3
  819. package/themes/grid.js +3 -3
  820. package/themes/grid.js.map +1 -1
  821. package/themes/grid.src.js +4 -3
  822. package/themes/high-contrast-dark.js +6 -6
  823. package/themes/high-contrast-dark.js.map +1 -1
  824. package/themes/high-contrast-dark.src.js +5 -4
  825. package/themes/high-contrast-light.js +3 -3
  826. package/themes/high-contrast-light.js.map +1 -1
  827. package/themes/high-contrast-light.src.js +4 -3
  828. package/themes/sand-signika.js +5 -5
  829. package/themes/sand-signika.js.map +1 -1
  830. package/themes/sand-signika.src.js +4 -3
  831. package/themes/skies.js +4 -4
  832. package/themes/skies.js.map +1 -1
  833. package/themes/skies.src.js +5 -4
  834. package/themes/sunset.js +3 -3
  835. package/themes/sunset.js.map +1 -1
  836. package/themes/sunset.src.js +5 -4
  837. package/es-modules/annotations/controllable/ControllableCircle.js +0 -79
  838. package/es-modules/annotations/controllable/ControllableImage.js +0 -79
  839. package/es-modules/annotations/controllable/ControllableRect.js +0 -82
  840. package/es-modules/annotations/types/InfinityLine.js +0 -110
  841. package/es-modules/masters/modules/map-parser.src.js +0 -12
  842. package/es-modules/modules/accessibility/components/InfoRegionsComponent/AnnotationsA11y.js +0 -80
  843. package/es-modules/modules/accessibility/components/InfoRegionsComponent/InfoRegionsComponent.js +0 -499
  844. package/es-modules/modules/accessibility/components/SeriesComponent/forcedMarkers.js +0 -147
  845. package/es-modules/modules/map-parser.src.js +0 -365
  846. package/es-modules/modules/sonification/options.js +0 -36
  847. package/es-modules/parts-3d/Chart.js +0 -1577
  848. package/es-modules/parts-3d/VMLRenderer.js +0 -35
  849. package/es-modules/parts-gantt/PathfinderAlgorithms.js +0 -656
  850. package/modules/map-parser.d.ts +0 -17
  851. package/modules/map-parser.js +0 -17
  852. package/modules/map-parser.js.map +0 -1
  853. package/modules/map-parser.src.d.ts +0 -17
  854. package/modules/map-parser.src.js +0 -421
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v8.1.0 (2020-05-05)
2
+ * @license Highcharts JS v8.2.2 (2020-10-22)
3
3
  *
4
4
  * Sonification module
5
5
  *
@@ -28,7 +28,7 @@
28
28
  obj[path] = fn.apply(null, args);
29
29
  }
30
30
  }
31
- _registerModule(_modules, 'modules/sonification/Instrument.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js']], function (H, U) {
31
+ _registerModule(_modules, 'Extensions/Sonification/Instrument.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
32
32
  /* *
33
33
  *
34
34
  * (c) 2009-2020 Øystein Moseng
@@ -60,6 +60,11 @@
60
60
  * @name Highcharts.InstrumentOptionsObject#id
61
61
  * @type {string|undefined}
62
62
  */ /**
63
+ * The master volume multiplier to apply to the instrument, regardless of other
64
+ * volume changes. Defaults to 1.
65
+ * @name Highcharts.InstrumentPlayOptionsObject#masterVolume
66
+ * @type {number|undefined}
67
+ */ /**
63
68
  * When using functions to determine frequency or other parameters during
64
69
  * playback, this options specifies how often to call the callback functions.
65
70
  * Number given in milliseconds. Defaults to 20.
@@ -141,6 +146,7 @@
141
146
  var defaultOptions = {
142
147
  type: 'oscillator',
143
148
  playCallbackInterval: 20,
149
+ masterVolume: 1,
144
150
  oscillator: {
145
151
  waveformShape: 'sine'
146
152
  }
@@ -173,18 +179,24 @@
173
179
  }
174
180
  this.options = merge(defaultOptions, options);
175
181
  this.id = this.options.id = options && options.id || uniqueKey();
182
+ this.masterVolume = this.options.masterVolume || 0;
176
183
  // Init the audio nodes
177
184
  var ctx = H.audioContext;
185
+ // Note: Destination node can be overridden by setting
186
+ // Highcharts.sonification.Instrument.prototype.destinationNode.
187
+ // This allows for inserting an additional chain of nodes after
188
+ // the default processing.
189
+ var destination = this.destinationNode || ctx.destination;
178
190
  this.gainNode = ctx.createGain();
179
191
  this.setGain(0);
180
192
  this.panNode = ctx.createStereoPanner && ctx.createStereoPanner();
181
193
  if (this.panNode) {
182
194
  this.setPan(0);
183
195
  this.gainNode.connect(this.panNode);
184
- this.panNode.connect(ctx.destination);
196
+ this.panNode.connect(destination);
185
197
  }
186
198
  else {
187
- this.gainNode.connect(ctx.destination);
199
+ this.gainNode.connect(destination);
188
200
  }
189
201
  // Oscillator initialization
190
202
  if (this.options.type === 'oscillator') {
@@ -259,7 +271,8 @@
259
271
  };
260
272
  /**
261
273
  * Set gain level. A maximum of 1.2 is allowed before we emit a warning. The
262
- * actual volume is not set above this level regardless of input.
274
+ * actual volume is not set above this level regardless of input. This function
275
+ * also handles the Instrument's master volume.
263
276
  * @private
264
277
  * @param {number} gainValue
265
278
  * The gain level to set for the instrument.
@@ -268,19 +281,21 @@
268
281
  * @return {void}
269
282
  */
270
283
  Instrument.prototype.setGain = function (gainValue, rampTime) {
271
- if (this.gainNode) {
272
- if (gainValue > 1.2) {
284
+ var gainNode = this.gainNode;
285
+ var newVal = gainValue * this.masterVolume;
286
+ if (gainNode) {
287
+ if (newVal > 1.2) {
273
288
  console.warn(// eslint-disable-line
274
289
  'Highcharts sonification warning: ' +
275
290
  'Volume of instrument set too high.');
276
- gainValue = 1.2;
291
+ newVal = 1.2;
277
292
  }
278
293
  if (rampTime) {
279
- this.gainNode.gain.setValueAtTime(this.gainNode.gain.value, H.audioContext.currentTime);
280
- this.gainNode.gain.linearRampToValueAtTime(gainValue, H.audioContext.currentTime + rampTime / 1000);
294
+ gainNode.gain.setValueAtTime(gainNode.gain.value, H.audioContext.currentTime);
295
+ gainNode.gain.linearRampToValueAtTime(newVal, H.audioContext.currentTime + rampTime / 1000);
281
296
  }
282
297
  else {
283
- this.gainNode.gain.setValueAtTime(gainValue, H.audioContext.currentTime);
298
+ gainNode.gain.setValueAtTime(newVal, H.audioContext.currentTime);
284
299
  }
285
300
  }
286
301
  };
@@ -294,6 +309,15 @@
294
309
  this.gainNode.gain.cancelScheduledValues(0);
295
310
  }
296
311
  };
312
+ /**
313
+ * Set the master volume multiplier of the instrument after creation.
314
+ * @param {number} volumeMultiplier
315
+ * The gain level to set for the instrument.
316
+ * @return {void}
317
+ */
318
+ Instrument.prototype.setMasterVolume = function (volumeMultiplier) {
319
+ this.masterVolume = volumeMultiplier || 0;
320
+ };
297
321
  /**
298
322
  * Get the closest valid frequency for this instrument.
299
323
  * @private
@@ -559,7 +583,7 @@
559
583
 
560
584
  return Instrument;
561
585
  });
562
- _registerModule(_modules, 'modules/sonification/musicalFrequencies.js', [], function () {
586
+ _registerModule(_modules, 'Extensions/Sonification/MusicalFrequencies.js', [], function () {
563
587
  /* *
564
588
  *
565
589
  * (c) 2009-2020 Øystein Moseng
@@ -673,7 +697,7 @@
673
697
 
674
698
  return frequencies;
675
699
  });
676
- _registerModule(_modules, 'modules/sonification/utilities.js', [_modules['modules/sonification/musicalFrequencies.js'], _modules['parts/Utilities.js']], function (musicalFrequencies, U) {
700
+ _registerModule(_modules, 'Extensions/Sonification/Utilities.js', [_modules['Extensions/Sonification/MusicalFrequencies.js'], _modules['Core/Utilities.js']], function (musicalFrequencies, U) {
677
701
  /* *
678
702
  *
679
703
  * (c) 2009-2020 Øystein Moseng
@@ -825,14 +849,19 @@
825
849
  * The possible extremes for this value.
826
850
  * @param {object} limits
827
851
  * Limits for the virtual axis.
852
+ * @param {boolean} [invert]
853
+ * Invert the virtual axis.
828
854
  * @return {number}
829
855
  * The value mapped to the virtual axis.
830
856
  */
831
- virtualAxisTranslate: function (value, dataExtremes, limits) {
857
+ virtualAxisTranslate: function (value, dataExtremes, limits, invert) {
832
858
  var lenValueAxis = dataExtremes.max - dataExtremes.min,
833
- lenVirtualAxis = limits.max - limits.min,
834
- virtualAxisValue = limits.min +
835
- lenVirtualAxis * (value - dataExtremes.min) / lenValueAxis;
859
+ lenVirtualAxis = Math.abs(limits.max - limits.min),
860
+ valueDelta = invert ?
861
+ dataExtremes.max - value :
862
+ value - dataExtremes.min,
863
+ virtualValueDelta = lenVirtualAxis * valueDelta / lenValueAxis,
864
+ virtualAxisValue = limits.min + virtualValueDelta;
836
865
  return lenValueAxis > 0 ?
837
866
  clamp(virtualAxisValue, limits.min, limits.max) :
838
867
  limits.min;
@@ -841,7 +870,7 @@
841
870
 
842
871
  return utilities;
843
872
  });
844
- _registerModule(_modules, 'modules/sonification/instrumentDefinitions.js', [_modules['modules/sonification/Instrument.js'], _modules['modules/sonification/utilities.js']], function (Instrument, utilities) {
873
+ _registerModule(_modules, 'Extensions/Sonification/InstrumentDefinitions.js', [_modules['Extensions/Sonification/Instrument.js'], _modules['Extensions/Sonification/Utilities.js']], function (Instrument, utilities) {
845
874
  /* *
846
875
  *
847
876
  * (c) 2009-2020 Øystein Moseng
@@ -873,7 +902,7 @@
873
902
 
874
903
  return instruments;
875
904
  });
876
- _registerModule(_modules, 'modules/sonification/Earcon.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js']], function (H, U) {
905
+ _registerModule(_modules, 'Extensions/Sonification/Earcon.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
877
906
  /* *
878
907
  *
879
908
  * (c) 2009-2020 Øystein Moseng
@@ -994,11 +1023,6 @@
994
1023
  copyId = '';
995
1024
  if (instrument && instrument.play) {
996
1025
  if (opts.playOptions) {
997
- // Handle master pan/volume
998
- if (typeof opts.playOptions.volume !== 'function') {
999
- instrumentOpts.volume = pick(masterVolume, 1) *
1000
- pick(opts.playOptions.volume, 1);
1001
- }
1002
1026
  instrumentOpts.pan = pick(masterPan, instrumentOpts.pan);
1003
1027
  // Handle onEnd
1004
1028
  instrOnEnd = instrumentOpts.onEnd;
@@ -1019,6 +1043,7 @@
1019
1043
  // Play the instrument. Use a copy so we can play multiple at
1020
1044
  // the same time.
1021
1045
  instrumentCopy = instrument.copy();
1046
+ instrumentCopy.setMasterVolume(masterVolume);
1022
1047
  copyId = instrumentCopy.id;
1023
1048
  earcon.instrumentsPlaying[copyId] = instrumentCopy;
1024
1049
  instrumentCopy.play(instrumentOpts);
@@ -1053,7 +1078,7 @@
1053
1078
 
1054
1079
  return Earcon;
1055
1080
  });
1056
- _registerModule(_modules, 'modules/sonification/pointSonify.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js'], _modules['modules/sonification/utilities.js']], function (H, U, utilities) {
1081
+ _registerModule(_modules, 'Extensions/Sonification/PointSonify.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Extensions/Sonification/Utilities.js']], function (H, U, utilities) {
1057
1082
  /* *
1058
1083
  *
1059
1084
  * (c) 2009-2020 Øystein Moseng
@@ -1078,20 +1103,24 @@
1078
1103
  * Define the volume of the instrument. This can be a string with a data
1079
1104
  * property name, e.g. `'y'`, in which case this data property is used to define
1080
1105
  * the volume relative to the `y`-values of the other points. A higher `y` value
1081
- * would then result in a higher volume. This option can also be a fixed number
1082
- * or a function. If it is a function, this function is called in regular
1083
- * intervals while the note is playing. It receives three arguments: The point,
1084
- * the dataExtremes, and the current relative time - where 0 is the beginning of
1085
- * the note and 1 is the end. The function should return the volume of the note
1086
- * as a number between 0 and 1.
1106
+ * would then result in a higher volume. Alternatively, `'-y'` can be used,
1107
+ * which inverts the polarity, so that a higher `y` value results in a lower
1108
+ * volume. This option can also be a fixed number or a function. If it is a
1109
+ * function, this function is called in regular intervals while the note is
1110
+ * playing. It receives three arguments: The point, the dataExtremes, and the
1111
+ * current relative time - where 0 is the beginning of the note and 1 is the
1112
+ * end. The function should return the volume of the note as a number between
1113
+ * 0 and 1.
1087
1114
  * @name Highcharts.PointInstrumentMappingObject#volume
1088
1115
  * @type {string|number|Function}
1089
1116
  */ /**
1090
1117
  * Define the duration of the notes for this instrument. This can be a string
1091
1118
  * with a data property name, e.g. `'y'`, in which case this data property is
1092
1119
  * used to define the duration relative to the `y`-values of the other points. A
1093
- * higher `y` value would then result in a longer duration. This option can also
1094
- * be a fixed number or a function. If it is a function, this function is called
1120
+ * higher `y` value would then result in a longer duration. Alternatively,
1121
+ * `'-y'` can be used, in which case the polarity is inverted, and a higher
1122
+ * `y` value would result in a shorter duration. This option can also be a
1123
+ * fixed number or a function. If it is a function, this function is called
1095
1124
  * once before the note starts playing, and should return the duration in
1096
1125
  * milliseconds. It receives two arguments: The point, and the dataExtremes.
1097
1126
  * @name Highcharts.PointInstrumentMappingObject#duration
@@ -1101,24 +1130,28 @@
1101
1130
  * property name, e.g. `'x'`, in which case this data property is used to define
1102
1131
  * the panning relative to the `x`-values of the other points. A higher `x`
1103
1132
  * value would then result in a higher panning value (panned further to the
1104
- * right). This option can also be a fixed number or a function. If it is a
1105
- * function, this function is called in regular intervals while the note is
1106
- * playing. It receives three arguments: The point, the dataExtremes, and the
1107
- * current relative time - where 0 is the beginning of the note and 1 is the
1108
- * end. The function should return the panning of the note as a number between
1109
- * -1 and 1.
1133
+ * right). Alternatively, `'-x'` can be used, in which case the polarity is
1134
+ * inverted, and a higher `x` value would result in a lower panning value
1135
+ * (panned further to the left). This option can also be a fixed number or a
1136
+ * function. If it is a function, this function is called in regular intervals
1137
+ * while the note is playing. It receives three arguments: The point, the
1138
+ * dataExtremes, and the current relative time - where 0 is the beginning of
1139
+ * the note and 1 is the end. The function should return the panning of the
1140
+ * note as a number between -1 and 1.
1110
1141
  * @name Highcharts.PointInstrumentMappingObject#pan
1111
1142
  * @type {string|number|Function|undefined}
1112
1143
  */ /**
1113
1144
  * Define the frequency of the instrument. This can be a string with a data
1114
1145
  * property name, e.g. `'y'`, in which case this data property is used to define
1115
1146
  * the frequency relative to the `y`-values of the other points. A higher `y`
1116
- * value would then result in a higher frequency. This option can also be a
1117
- * fixed number or a function. If it is a function, this function is called in
1118
- * regular intervals while the note is playing. It receives three arguments:
1119
- * The point, the dataExtremes, and the current relative time - where 0 is the
1120
- * beginning of the note and 1 is the end. The function should return the
1121
- * frequency of the note as a number (in Hz).
1147
+ * value would then result in a higher frequency. Alternatively, `'-y'` can be
1148
+ * used, in which case the polarity is inverted, and a higher `y` value would
1149
+ * result in a lower frequency. This option can also be a fixed number or a
1150
+ * function. If it is a function, this function is called in regular intervals
1151
+ * while the note is playing. It receives three arguments: The point, the
1152
+ * dataExtremes, and the current relative time - where 0 is the beginning of
1153
+ * the note and 1 is the end. The function should return the frequency of the
1154
+ * note as a number (in Hz).
1122
1155
  * @name Highcharts.PointInstrumentMappingObject#frequency
1123
1156
  * @type {string|number|Function}
1124
1157
  */
@@ -1262,8 +1295,10 @@
1262
1295
  * @return {void}
1263
1296
  */
1264
1297
  function pointSonify(options) {
1298
+ var _a;
1265
1299
  var point = this,
1266
1300
  chart = point.series.chart,
1301
+ masterVolume = pick(options.masterVolume, (_a = chart.options.sonification) === null || _a === void 0 ? void 0 : _a.masterVolume),
1267
1302
  dataExtremes = options.dataExtremes || {},
1268
1303
  // Get the value to pass to instrument.play from the mapping value
1269
1304
  // passed in.
@@ -1281,13 +1316,17 @@
1281
1316
  } :
1282
1317
  value(point, dataExtremes);
1283
1318
  }
1284
- // String, this is a data prop.
1319
+ // String, this is a data prop. Potentially with negative polarity.
1285
1320
  if (typeof value === 'string') {
1321
+ var hasInvertedPolarity = value.charAt(0) === '-';
1322
+ var dataProp = hasInvertedPolarity ? value.slice(1) : value;
1323
+ var pointValue = pick(point[dataProp],
1324
+ point.options[dataProp]);
1286
1325
  // Find data extremes if we don't have them
1287
- dataExtremes[value] = dataExtremes[value] ||
1288
- utilities.calculateDataExtremes(point.series.chart, value);
1326
+ dataExtremes[dataProp] = dataExtremes[dataProp] ||
1327
+ utilities.calculateDataExtremes(point.series.chart, dataProp);
1289
1328
  // Find the value
1290
- return utilities.virtualAxisTranslate(pick(point[value], point.options[value]), dataExtremes[value], allowedExtremes);
1329
+ return utilities.virtualAxisTranslate(pointValue, dataExtremes[dataProp], allowedExtremes, hasInvertedPolarity);
1291
1330
  }
1292
1331
  // Fixed number or something else weird, just use that
1293
1332
  return value;
@@ -1340,6 +1379,9 @@
1340
1379
  };
1341
1380
  // Play the note on the instrument
1342
1381
  if (instrument && instrument.play) {
1382
+ if (typeof masterVolume !== 'undefined') {
1383
+ instrument.setMasterVolume(masterVolume);
1384
+ }
1343
1385
  point.sonification.instrumentsPlaying[instrument.id] =
1344
1386
  instrument;
1345
1387
  instrument.play({
@@ -1388,7 +1430,7 @@
1388
1430
 
1389
1431
  return pointSonifyFunctions;
1390
1432
  });
1391
- _registerModule(_modules, 'modules/sonification/chartSonify.js', [_modules['parts/Globals.js'], _modules['parts/Point.js'], _modules['parts/Utilities.js'], _modules['modules/sonification/utilities.js']], function (H, Point, U, utilities) {
1433
+ _registerModule(_modules, 'Extensions/Sonification/ChartSonify.js', [_modules['Core/Globals.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js'], _modules['Extensions/Sonification/Utilities.js']], function (H, Point, U, utilities) {
1392
1434
  /* *
1393
1435
  *
1394
1436
  * (c) 2009-2020 Øystein Moseng
@@ -1487,7 +1529,8 @@
1487
1529
  isArray = U.isArray,
1488
1530
  merge = U.merge,
1489
1531
  pick = U.pick,
1490
- splat = U.splat;
1532
+ splat = U.splat,
1533
+ objectEach = U.objectEach;
1491
1534
  /**
1492
1535
  * Get the relative time value of a point.
1493
1536
  * @private
@@ -1529,19 +1572,36 @@
1529
1572
  });
1530
1573
  }
1531
1574
  /**
1532
- * Calculate value extremes for used instrument data properties.
1575
+ * Calculate value extremes for used instrument data properties on a chart.
1533
1576
  * @private
1534
1577
  * @param {Highcharts.Chart} chart
1535
1578
  * The chart to calculate extremes from.
1536
- * @param {Array<Highcharts.PointInstrumentObject>} instruments
1537
- * The instrument definitions used.
1579
+ * @param {Array<Highcharts.PointInstrumentObject>} [instruments]
1580
+ * Additional instrument definitions to inspect for data props used, in
1581
+ * addition to the instruments defined in the chart options.
1538
1582
  * @param {Highcharts.Dictionary<Highcharts.RangeObject>} [dataExtremes]
1539
1583
  * Predefined extremes for each data prop.
1540
1584
  * @return {Highcharts.Dictionary<Highcharts.RangeObject>}
1541
1585
  * New extremes with data properties mapped to min/max objects.
1542
1586
  */
1543
1587
  function getExtremesForInstrumentProps(chart, instruments, dataExtremes) {
1544
- return (instruments || []).reduce(function (newExtremes, instrumentDefinition) {
1588
+ var _a;
1589
+ var allInstrumentDefinitions = (instruments || []).slice(0);
1590
+ var defaultInstrumentDef = (_a = chart.options.sonification) === null || _a === void 0 ? void 0 : _a.defaultInstrumentOptions;
1591
+ var optionDefToInstrDef = function (optionDef) { return ({
1592
+ instrumentMapping: optionDef.mapping
1593
+ }); };
1594
+ if (defaultInstrumentDef) {
1595
+ allInstrumentDefinitions.push(optionDefToInstrDef(defaultInstrumentDef));
1596
+ }
1597
+ chart.series.forEach(function (series) {
1598
+ var _a;
1599
+ var instrOptions = (_a = series.options.sonification) === null || _a === void 0 ? void 0 : _a.instruments;
1600
+ if (instrOptions) {
1601
+ allInstrumentDefinitions = allInstrumentDefinitions.concat(instrOptions.map(optionDefToInstrDef));
1602
+ }
1603
+ });
1604
+ return (allInstrumentDefinitions).reduce(function (newExtremes, instrumentDefinition) {
1545
1605
  Object.keys(instrumentDefinition.instrumentMapping || {}).forEach(function (instrumentParameter) {
1546
1606
  var value = instrumentDefinition.instrumentMapping[instrumentParameter];
1547
1607
  if (typeof value === 'string' && !newExtremes[value]) {
@@ -1605,6 +1665,52 @@
1605
1665
  return merge(instrumentDef, { instrument: copy });
1606
1666
  });
1607
1667
  }
1668
+ /**
1669
+ * Utility function to apply a master volume to a list of instrument
1670
+ * options.
1671
+ * @private
1672
+ * @param {Array<Highcharts.PointInstrumentObject>} instruments
1673
+ * The instrument options. Only options with Instrument object instances
1674
+ * will be affected.
1675
+ * @param {number} masterVolume
1676
+ * The master volume multiplier to apply to the instruments.
1677
+ * @return {Array<Highcharts.PointInstrumentObject>}
1678
+ * Array of instrument options.
1679
+ */
1680
+ function applyMasterVolumeToInstruments(instruments, masterVolume) {
1681
+ instruments.forEach(function (instrOpts) {
1682
+ var instr = instrOpts.instrument;
1683
+ if (typeof instr !== 'string') {
1684
+ instr.setMasterVolume(masterVolume);
1685
+ }
1686
+ });
1687
+ return instruments;
1688
+ }
1689
+ /**
1690
+ * Utility function to find the duration of the final note in a series.
1691
+ * @private
1692
+ * @param {Highcharts.Series} series The data series to calculate on.
1693
+ * @param {Array<Highcharts.PointInstrumentObject>} instruments The instrument options for this series.
1694
+ * @param {Highcharts.Dictionary<Highcharts.RangeObject>} dataExtremes Value extremes for the data series props.
1695
+ * @return {number} The duration of the final note in milliseconds.
1696
+ */
1697
+ function getFinalNoteDuration(series, instruments, dataExtremes) {
1698
+ var finalPoint = series.points[series.points.length - 1];
1699
+ return instruments.reduce(function (duration, instrument) {
1700
+ var mapping = instrument.instrumentMapping.duration;
1701
+ var instrumentDuration;
1702
+ if (typeof mapping === 'string') {
1703
+ instrumentDuration = 0; // Ignore, no easy way to map this
1704
+ }
1705
+ else if (typeof mapping === 'function') {
1706
+ instrumentDuration = mapping(finalPoint, dataExtremes);
1707
+ }
1708
+ else {
1709
+ instrumentDuration = mapping;
1710
+ }
1711
+ return Math.max(duration, instrumentDuration);
1712
+ }, 0);
1713
+ }
1608
1714
  /**
1609
1715
  * Create a TimelinePath from a series. Takes the same options as seriesSonify.
1610
1716
  * To intuitively allow multiple series to play simultaneously we make copies of
@@ -1622,18 +1728,26 @@
1622
1728
  // chart.sonify can be reused.
1623
1729
  var timeExtremes = options.timeExtremes || getTimeExtremes(series,
1624
1730
  options.pointPlayTime),
1731
+ // Compute any data extremes that aren't defined yet
1732
+ dataExtremes = getExtremesForInstrumentProps(series.chart,
1733
+ options.instruments,
1734
+ options.dataExtremes),
1735
+ minimumSeriesDurationMs = 10,
1736
+ // Get the duration of the final note
1737
+ finalNoteDuration = getFinalNoteDuration(series,
1738
+ options.instruments,
1739
+ dataExtremes),
1625
1740
  // Get time offset for a point, relative to duration
1626
1741
  pointToTime = function (point) {
1627
1742
  return utilities.virtualAxisTranslate(getPointTimeValue(point,
1628
1743
  options.pointPlayTime),
1629
1744
  timeExtremes, { min: 0,
1630
- max: options.duration });
1631
- },
1632
- // Compute any data extremes that aren't defined yet
1633
- dataExtremes = getExtremesForInstrumentProps(series.chart, options.instruments, options.dataExtremes),
1745
+ max: Math.max(options.duration - finalNoteDuration,
1746
+ minimumSeriesDurationMs) });
1747
+ }, masterVolume = pick(options.masterVolume, 1),
1634
1748
  // Make copies of the instruments used for this series, to allow
1635
1749
  // multiple series with the same instrument to play together
1636
- instruments = makeInstrumentCopies(options.instruments),
1750
+ instrumentCopies = makeInstrumentCopies(options.instruments), instruments = applyMasterVolumeToInstruments(instrumentCopies, masterVolume),
1637
1751
  // Go through the points, convert to events, optionally add Earcons
1638
1752
  timelineEvents = series.points.reduce(function (events, point) {
1639
1753
  var earcons = getPointEarcons(point,
@@ -1647,14 +1761,18 @@
1647
1761
  id: point.id,
1648
1762
  playOptions: {
1649
1763
  instruments: instruments,
1650
- dataExtremes: dataExtremes
1764
+ dataExtremes: dataExtremes,
1765
+ masterVolume: masterVolume
1651
1766
  }
1652
1767
  }),
1653
1768
  // Earcons
1654
1769
  earcons.map(function (earcon) {
1655
1770
  return new H.sonification.TimelineEvent({
1656
1771
  eventObject: earcon,
1657
- time: time
1772
+ time: time,
1773
+ playOptions: {
1774
+ volume: masterVolume
1775
+ }
1658
1776
  });
1659
1777
  }));
1660
1778
  }, []);
@@ -1696,7 +1814,8 @@
1696
1814
  if (options.onEnd) {
1697
1815
  options.onEnd(series);
1698
1816
  }
1699
- }
1817
+ },
1818
+ targetDuration: options.duration
1700
1819
  });
1701
1820
  }
1702
1821
  /* eslint-disable no-invalid-this, valid-jsdoc */
@@ -1716,22 +1835,25 @@
1716
1835
  *
1717
1836
  * @function Highcharts.Series#sonify
1718
1837
  *
1719
- * @param {Highcharts.SonifySeriesOptionsObject} options
1720
- * The options for sonifying this series.
1838
+ * @param {Highcharts.SonifySeriesOptionsObject} [options]
1839
+ * The options for sonifying this series. If not provided,
1840
+ * uses options set on chart and series.
1721
1841
  *
1722
1842
  * @return {void}
1723
1843
  */
1724
1844
  function seriesSonify(options) {
1845
+ var mergedOptions = getSeriesSonifyOptions(this,
1846
+ options);
1725
1847
  var timelinePath = buildTimelinePathFromSeries(this,
1726
- options),
1727
- chartSonification = this.chart.sonification;
1848
+ mergedOptions);
1849
+ var chartSonification = this.chart.sonification;
1728
1850
  // Only one timeline can play at a time. If we want multiple series playing
1729
1851
  // at the same time, use chart.sonify.
1730
1852
  if (chartSonification.timeline) {
1731
1853
  chartSonification.timeline.pause();
1732
1854
  }
1733
1855
  // Store reference to duration
1734
- chartSonification.duration = options.duration;
1856
+ chartSonification.duration = mergedOptions.duration;
1735
1857
  // Create new timeline for this series, and play it.
1736
1858
  chartSonification.timeline = new H.sonification.Timeline({
1737
1859
  paths: [timelinePath]
@@ -1751,27 +1873,37 @@
1751
1873
  * @return {Partial<Highcharts.SonifySeriesOptionsObject>}
1752
1874
  * Options for buildTimelinePathFromSeries.
1753
1875
  */
1754
- function buildSeriesOptions(series, dataExtremes, chartSonifyOptions) {
1755
- var seriesOptions = chartSonifyOptions.seriesOptions || {};
1756
- return merge({
1876
+ function buildChartSonifySeriesOptions(series, dataExtremes, chartSonifyOptions) {
1877
+ var _a,
1878
+ _b,
1879
+ _c;
1880
+ var additionalSeriesOptions = chartSonifyOptions.seriesOptions || {};
1881
+ var pointPlayTime = ((_c = (_b = (_a = series.chart.options.sonification) === null || _a === void 0 ? void 0 : _a.defaultInstrumentOptions) === null || _b === void 0 ? void 0 : _b.mapping) === null || _c === void 0 ? void 0 : _c.pointPlayTime) || 'x';
1882
+ var configOptions = chartOptionsToSonifySeriesOptions(series);
1883
+ return merge(
1884
+ // Options from chart configuration
1885
+ configOptions,
1886
+ // Options passed in
1887
+ {
1757
1888
  // Calculated dataExtremes for chart
1758
1889
  dataExtremes: dataExtremes,
1759
1890
  // We need to get timeExtremes for each series. We pass this
1760
1891
  // in when building the TimelinePath objects to avoid
1761
1892
  // calculating twice.
1762
- timeExtremes: getTimeExtremes(series, chartSonifyOptions.pointPlayTime),
1893
+ timeExtremes: getTimeExtremes(series, pointPlayTime),
1763
1894
  // Some options we just pass on
1764
- instruments: chartSonifyOptions.instruments,
1765
- onStart: chartSonifyOptions.onSeriesStart,
1766
- onEnd: chartSonifyOptions.onSeriesEnd,
1767
- earcons: chartSonifyOptions.earcons
1895
+ instruments: chartSonifyOptions.instruments || configOptions.instruments,
1896
+ onStart: chartSonifyOptions.onSeriesStart || configOptions.onStart,
1897
+ onEnd: chartSonifyOptions.onSeriesEnd || configOptions.onEnd,
1898
+ earcons: chartSonifyOptions.earcons || configOptions.earcons,
1899
+ masterVolume: pick(chartSonifyOptions.masterVolume, configOptions.masterVolume)
1768
1900
  },
1769
- // Merge in the specific series options by ID
1770
- isArray(seriesOptions) ? (find(seriesOptions, function (optEntry) {
1901
+ // Merge in the specific series options by ID if any are passed in
1902
+ isArray(additionalSeriesOptions) ? (find(additionalSeriesOptions, function (optEntry) {
1771
1903
  return optEntry.id === pick(series.id, series.options.id);
1772
- }) || {}) : seriesOptions, {
1904
+ }) || {}) : additionalSeriesOptions, {
1773
1905
  // Forced options
1774
- pointPlayTime: chartSonifyOptions.pointPlayTime
1906
+ pointPlayTime: pointPlayTime
1775
1907
  });
1776
1908
  }
1777
1909
  /**
@@ -1795,7 +1927,8 @@
1795
1927
  if (orderOptions === 'sequential' || orderOptions === 'simultaneous') {
1796
1928
  // Just add the series from the chart
1797
1929
  order = chart.series.reduce(function (seriesList, series) {
1798
- if (series.visible) {
1930
+ var _a;
1931
+ if (series.visible && ((_a = series.options.sonification) === null || _a === void 0 ? void 0 : _a.enabled) !== false) {
1799
1932
  seriesList.push({
1800
1933
  series: series,
1801
1934
  seriesOptions: seriesOptionsCallback(series)
@@ -2017,15 +2150,111 @@
2017
2150
  return allPaths;
2018
2151
  }, []);
2019
2152
  }
2153
+ /**
2154
+ * @private
2155
+ * @param {Highcharts.Series} series The series to get options for.
2156
+ * @param {Highcharts.SonifySeriesOptionsObject} options
2157
+ * Options to merge with user options on series/chart and default options.
2158
+ * @returns {Array<Highcharts.PointInstrumentObject>} The merged options.
2159
+ */
2160
+ function getSeriesInstrumentOptions(series, options) {
2161
+ var _a,
2162
+ _b;
2163
+ if (options === null || options === void 0 ? void 0 : options.instruments) {
2164
+ return options.instruments;
2165
+ }
2166
+ var defaultInstrOpts = ((_a = series.chart.options.sonification) === null || _a === void 0 ? void 0 : _a.defaultInstrumentOptions) || {};
2167
+ var seriesInstrOpts = ((_b = series.options.sonification) === null || _b === void 0 ? void 0 : _b.instruments) || [{}];
2168
+ var removeNullsFromObject = function (obj) {
2169
+ objectEach(obj,
2170
+ function (val,
2171
+ key) {
2172
+ if (val === null) {
2173
+ delete obj[key];
2174
+ }
2175
+ });
2176
+ };
2177
+ // Convert series options to PointInstrumentObjects and merge with
2178
+ // default options
2179
+ return (seriesInstrOpts).map(function (optionSet) {
2180
+ // Allow setting option to null to use default
2181
+ removeNullsFromObject(optionSet.mapping || {});
2182
+ removeNullsFromObject(optionSet);
2183
+ return {
2184
+ instrument: optionSet.instrument || defaultInstrOpts.instrument,
2185
+ instrumentOptions: merge(defaultInstrOpts, optionSet, {
2186
+ // Instrument options are lifted to root in the API options
2187
+ // object, so merge all in order to avoid missing any. But
2188
+ // remove the following which are not instrumentOptions:
2189
+ mapping: void 0,
2190
+ instrument: void 0
2191
+ }),
2192
+ instrumentMapping: merge(defaultInstrOpts.mapping, optionSet.mapping)
2193
+ };
2194
+ });
2195
+ }
2196
+ /**
2197
+ * Utility function to translate between options set in chart configuration and
2198
+ * a SonifySeriesOptionsObject.
2199
+ * @private
2200
+ * @param {Highcharts.Series} series The series to get options for.
2201
+ * @returns {Highcharts.SonifySeriesOptionsObject} Options for chart/series.sonify()
2202
+ */
2203
+ function chartOptionsToSonifySeriesOptions(series) {
2204
+ var _a,
2205
+ _b;
2206
+ var seriesOpts = series.options.sonification || {};
2207
+ var chartOpts = series.chart.options.sonification || {};
2208
+ var chartEvents = chartOpts.events || {};
2209
+ var seriesEvents = seriesOpts.events || {};
2210
+ return {
2211
+ onEnd: seriesEvents.onSeriesEnd || chartEvents.onSeriesEnd,
2212
+ onStart: seriesEvents.onSeriesStart || chartEvents.onSeriesStart,
2213
+ onPointEnd: seriesEvents.onPointEnd || chartEvents.onPointEnd,
2214
+ onPointStart: seriesEvents.onPointStart || chartEvents.onPointStart,
2215
+ pointPlayTime: (_b = (_a = chartOpts.defaultInstrumentOptions) === null || _a === void 0 ? void 0 : _a.mapping) === null || _b === void 0 ? void 0 : _b.pointPlayTime,
2216
+ masterVolume: chartOpts.masterVolume,
2217
+ instruments: getSeriesInstrumentOptions(series),
2218
+ earcons: seriesOpts.earcons || chartOpts.earcons
2219
+ };
2220
+ }
2221
+ /**
2222
+ * @private
2223
+ * @param {Highcharts.Series} series The series to get options for.
2224
+ * @param {Highcharts.SonifySeriesOptionsObject} options
2225
+ * Options to merge with user options on series/chart and default options.
2226
+ * @returns {Highcharts.SonifySeriesOptionsObject} The merged options.
2227
+ */
2228
+ function getSeriesSonifyOptions(series, options) {
2229
+ var chartOpts = series.chart.options.sonification;
2230
+ var seriesOpts = series.options.sonification;
2231
+ return merge({
2232
+ duration: (seriesOpts === null || seriesOpts === void 0 ? void 0 : seriesOpts.duration) || (chartOpts === null || chartOpts === void 0 ? void 0 : chartOpts.duration)
2233
+ }, chartOptionsToSonifySeriesOptions(series), options);
2234
+ }
2020
2235
  /**
2021
2236
  * @private
2022
2237
  * @param {Highcharts.Chart} chart The chart to get options for.
2023
- * @param {Highcharts.SonificationOptions} userOptions
2024
- * Options to merge with options on chart and default options.
2238
+ * @param {Highcharts.SonificationOptions} options
2239
+ * Options to merge with user options on chart and default options.
2025
2240
  * @returns {Highcharts.SonificationOptions} The merged options.
2026
2241
  */
2027
- function getChartSonifyOptions(chart, userOptions) {
2028
- return merge(chart.options.sonification, userOptions);
2242
+ function getChartSonifyOptions(chart, options) {
2243
+ var _a,
2244
+ _b,
2245
+ _c,
2246
+ _d,
2247
+ _e;
2248
+ var chartOpts = chart.options.sonification || {};
2249
+ return merge({
2250
+ duration: chartOpts.duration,
2251
+ afterSeriesWait: chartOpts.afterSeriesWait,
2252
+ pointPlayTime: (_b = (_a = chartOpts.defaultInstrumentOptions) === null || _a === void 0 ? void 0 : _a.mapping) === null || _b === void 0 ? void 0 : _b.pointPlayTime,
2253
+ order: chartOpts.order,
2254
+ onSeriesStart: (_c = chartOpts.events) === null || _c === void 0 ? void 0 : _c.onSeriesStart,
2255
+ onSeriesEnd: (_d = chartOpts.events) === null || _d === void 0 ? void 0 : _d.onSeriesEnd,
2256
+ onEnd: (_e = chartOpts.events) === null || _e === void 0 ? void 0 : _e.onEnd
2257
+ }, options);
2029
2258
  }
2030
2259
  /**
2031
2260
  * Options for sonifying a chart.
@@ -2134,8 +2363,9 @@
2134
2363
  *
2135
2364
  * @function Highcharts.Chart#sonify
2136
2365
  *
2137
- * @param {Highcharts.SonificationOptions} options
2138
- * The options for sonifying this chart.
2366
+ * @param {Highcharts.SonificationOptions} [options]
2367
+ * The options for sonifying this chart. If not provided,
2368
+ * uses options set on chart and series.
2139
2369
  *
2140
2370
  * @return {void}
2141
2371
  */
@@ -2156,7 +2386,7 @@
2156
2386
  var order = buildPathOrder(opts.order,
2157
2387
  this,
2158
2388
  function (series) {
2159
- return buildSeriesOptions(series,
2389
+ return buildChartSonifySeriesOptions(series,
2160
2390
  dataExtremes,
2161
2391
  opts);
2162
2392
  });
@@ -2341,7 +2571,7 @@
2341
2571
 
2342
2572
  return chartSonifyFunctions;
2343
2573
  });
2344
- _registerModule(_modules, 'modules/sonification/Timeline.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js'], _modules['modules/sonification/utilities.js']], function (H, U, utilities) {
2574
+ _registerModule(_modules, 'Extensions/Sonification/Timeline.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Extensions/Sonification/Utilities.js']], function (H, U, utilities) {
2345
2575
  /* *
2346
2576
  *
2347
2577
  * (c) 2009-2020 Øystein Moseng
@@ -2529,6 +2759,9 @@
2529
2759
  new TimelineEvent({ time: options.silentWait })
2530
2760
  ] :
2531
2761
  this.options.events;
2762
+ // Reference optionally provided by the user that indicates the intended
2763
+ // duration of the path. Unused by TimelinePath itself.
2764
+ this.targetDuration = options.targetDuration || options.silentWait;
2532
2765
  // We need to sort our events by time
2533
2766
  this.sortEvents();
2534
2767
  // Get map from event ID to index
@@ -2763,7 +2996,7 @@
2763
2996
  Timeline.prototype.init = function (options) {
2764
2997
  this.options = options;
2765
2998
  this.cursor = 0;
2766
- this.paths = options.paths;
2999
+ this.paths = options.paths || [];
2767
3000
  this.pathsPlaying = {};
2768
3001
  this.signalHandler = new utilities.SignalHandler(['playOnEnd', 'masterOnEnd', 'onPathStart', 'onPathEnd']);
2769
3002
  this.signalHandler.registerSignalCallbacks(merge(options, { masterOnEnd: options.onEnd }));
@@ -2802,10 +3035,18 @@
2802
3035
  * @return {void}
2803
3036
  */
2804
3037
  Timeline.prototype.playPaths = function (direction) {
3038
+ var timeline = this;
3039
+ var signalHandler = timeline.signalHandler;
3040
+ if (!timeline.paths.length) {
3041
+ var emptySignal = {
3042
+ cancelled: false
3043
+ };
3044
+ signalHandler.emitSignal('playOnEnd', emptySignal);
3045
+ signalHandler.emitSignal('masterOnEnd', emptySignal);
3046
+ return;
3047
+ }
2805
3048
  var curPaths = splat(this.paths[this.cursor]),
2806
3049
  nextPaths = this.paths[this.cursor + direction],
2807
- timeline = this,
2808
- signalHandler = this.signalHandler,
2809
3050
  pathsEnded = 0,
2810
3051
  // Play a path
2811
3052
  playPath = function (path) {
@@ -2942,7 +3183,10 @@
2942
3183
  * True if timeline is at the beginning.
2943
3184
  */
2944
3185
  Timeline.prototype.atStart = function () {
2945
- return !this.getCurrentPlayingPaths().some(function (path) {
3186
+ if (this.cursor) {
3187
+ return false;
3188
+ }
3189
+ return !splat(this.paths[0]).some(function (path) {
2946
3190
  return path.cursor;
2947
3191
  });
2948
3192
  };
@@ -2953,6 +3197,9 @@
2953
3197
  * The TimelinePaths currently being played.
2954
3198
  */
2955
3199
  Timeline.prototype.getCurrentPlayingPaths = function () {
3200
+ if (!this.paths.length) {
3201
+ return [];
3202
+ }
2956
3203
  return splat(this.paths[this.cursor]);
2957
3204
  };
2958
3205
  // Export the classes
@@ -2964,7 +3211,7 @@
2964
3211
 
2965
3212
  return timelineClasses;
2966
3213
  });
2967
- _registerModule(_modules, 'modules/sonification/options.js', [], function () {
3214
+ _registerModule(_modules, 'Extensions/Sonification/Options.js', [], function () {
2968
3215
  /* *
2969
3216
  *
2970
3217
  * (c) 2009-2020 Øystein Moseng
@@ -2980,29 +3227,27 @@
2980
3227
  var options = {
2981
3228
  sonification: {
2982
3229
  enabled: false,
2983
- duration: 2000,
2984
- afterSeriesWait: 1000,
3230
+ duration: 2500,
3231
+ afterSeriesWait: 700,
3232
+ masterVolume: 1,
2985
3233
  order: 'sequential',
2986
- pointPlayTime: 'x',
2987
- instruments: [{
2988
- instrument: 'sineMusical',
2989
- instrumentMapping: {
2990
- duration: 400,
2991
- frequency: 'y',
2992
- volume: 0.7
2993
- },
2994
- // Start at G4 note, end at C6
2995
- instrumentOptions: {
2996
- minFrequency: 392,
2997
- maxFrequency: 1046
2998
- }
2999
- }]
3234
+ defaultInstrumentOptions: {
3235
+ instrument: 'sineMusical',
3236
+ // Start at G4 note, end at C6
3237
+ minFrequency: 392,
3238
+ maxFrequency: 1046,
3239
+ mapping: {
3240
+ pointPlayTime: 'x',
3241
+ duration: 200,
3242
+ frequency: 'y'
3243
+ }
3244
+ }
3000
3245
  }
3001
3246
  };
3002
3247
 
3003
3248
  return options;
3004
3249
  });
3005
- _registerModule(_modules, 'modules/sonification/sonification.js', [_modules['parts/Globals.js'], _modules['parts/Point.js'], _modules['parts/Utilities.js'], _modules['modules/sonification/Instrument.js'], _modules['modules/sonification/instrumentDefinitions.js'], _modules['modules/sonification/Earcon.js'], _modules['modules/sonification/pointSonify.js'], _modules['modules/sonification/chartSonify.js'], _modules['modules/sonification/utilities.js'], _modules['modules/sonification/Timeline.js'], _modules['modules/sonification/options.js']], function (H, Point, U, Instrument, instruments, Earcon, pointSonifyFunctions, chartSonifyFunctions, utilities, TimelineClasses, sonificationOptions) {
3250
+ _registerModule(_modules, 'Extensions/Sonification/Sonification.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Globals.js'], _modules['Core/Options.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js'], _modules['Extensions/Sonification/Instrument.js'], _modules['Extensions/Sonification/InstrumentDefinitions.js'], _modules['Extensions/Sonification/Earcon.js'], _modules['Extensions/Sonification/PointSonify.js'], _modules['Extensions/Sonification/ChartSonify.js'], _modules['Extensions/Sonification/Utilities.js'], _modules['Extensions/Sonification/Timeline.js'], _modules['Extensions/Sonification/Options.js']], function (Chart, H, O, Point, U, Instrument, instruments, Earcon, pointSonifyFunctions, chartSonifyFunctions, utilities, TimelineClasses, sonificationOptions) {
3006
3251
  /* *
3007
3252
  *
3008
3253
  * (c) 2009-2020 Øystein Moseng
@@ -3014,6 +3259,7 @@
3014
3259
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3015
3260
  *
3016
3261
  * */
3262
+ var defaultOptions = O.defaultOptions;
3017
3263
  var addEvent = U.addEvent,
3018
3264
  extend = U.extend,
3019
3265
  merge = U.merge;
@@ -3084,12 +3330,12 @@
3084
3330
  Timeline: TimelineClasses.Timeline
3085
3331
  };
3086
3332
  // Add default options
3087
- merge(true, H.defaultOptions, sonificationOptions);
3333
+ merge(true, defaultOptions, sonificationOptions);
3088
3334
  // Chart specific
3089
3335
  Point.prototype.sonify = pointSonifyFunctions.pointSonify;
3090
3336
  Point.prototype.cancelSonify = pointSonifyFunctions.pointCancelSonify;
3091
3337
  H.Series.prototype.sonify = chartSonifyFunctions.seriesSonify;
3092
- extend(H.Chart.prototype, {
3338
+ extend(Chart.prototype, {
3093
3339
  sonify: chartSonifyFunctions.chartSonify,
3094
3340
  pauseSonify: chartSonifyFunctions.pause,
3095
3341
  resumeSonify: chartSonifyFunctions.resume,
@@ -3102,11 +3348,11 @@
3102
3348
  });
3103
3349
  /* eslint-disable no-invalid-this */
3104
3350
  // Prepare charts for sonification on init
3105
- addEvent(H.Chart, 'init', function () {
3351
+ addEvent(Chart, 'init', function () {
3106
3352
  this.sonification = {};
3107
3353
  });
3108
3354
  // Update with chart/series/point updates
3109
- addEvent(H.Chart, 'update', function (e) {
3355
+ addEvent(Chart, 'update', function (e) {
3110
3356
  var newOptions = e.options.sonification;
3111
3357
  if (newOptions) {
3112
3358
  merge(true, this.options.sonification, newOptions);