highcharts 9.2.0 → 9.3.1

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 (755) hide show
  1. package/README.md +13 -6
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +48 -8
  4. package/css/annotations/popup.scss +70 -22
  5. package/css/highcharts.css +45 -0
  6. package/css/highcharts.scss +40 -0
  7. package/css/themes/dark-unica.css +45 -0
  8. package/css/themes/grid-light.css +45 -0
  9. package/css/themes/sand-signika.css +45 -0
  10. package/es-modules/Accessibility/A11yI18n.js +273 -224
  11. package/es-modules/Accessibility/Accessibility.js +237 -128
  12. package/es-modules/Accessibility/AccessibilityComponent.js +79 -314
  13. package/es-modules/Accessibility/Components/AnnotationsA11y.js +10 -0
  14. package/es-modules/Accessibility/Components/ContainerComponent.js +52 -27
  15. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +173 -104
  16. package/es-modules/Accessibility/Components/LegendComponent.js +97 -65
  17. package/es-modules/Accessibility/Components/MenuComponent.js +243 -149
  18. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +170 -88
  19. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +152 -115
  20. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +133 -68
  21. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +64 -27
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +38 -21
  23. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +380 -325
  24. package/es-modules/Accessibility/Components/ZoomComponent.js +28 -20
  25. package/es-modules/Accessibility/FocusBorder.js +192 -147
  26. package/es-modules/Accessibility/HighContrastMode.js +78 -66
  27. package/es-modules/Accessibility/HighContrastTheme.js +10 -0
  28. package/es-modules/Accessibility/KeyboardNavigation.js +146 -71
  29. package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
  30. package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -1
  31. package/es-modules/Accessibility/Options/LangOptions.js +1 -2
  32. package/es-modules/Accessibility/Options/Options.js +32 -17
  33. package/es-modules/Accessibility/ProxyElement.js +212 -0
  34. package/es-modules/Accessibility/ProxyProvider.js +305 -0
  35. package/es-modules/Accessibility/Utils/Announcer.js +15 -8
  36. package/es-modules/Accessibility/Utils/ChartUtilities.js +41 -16
  37. package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
  38. package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
  39. package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -30
  40. package/es-modules/Core/Axis/Axis.js +37 -30
  41. package/es-modules/Core/Axis/AxisDefaults.js +35 -24
  42. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +54 -4
  43. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
  44. package/es-modules/Core/Axis/OrdinalAxis.js +5 -13
  45. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
  46. package/es-modules/Core/Axis/ScrollbarAxis.js +10 -3
  47. package/es-modules/Core/Axis/TreeGridAxis.js +2 -2
  48. package/es-modules/Core/Axis/TreeGridTick.js +1 -2
  49. package/es-modules/Core/Chart/Chart.js +2 -3
  50. package/es-modules/Core/Chart/ChartDefaults.js +3 -4
  51. package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  52. package/es-modules/Core/Chart/MapChart.js +10 -22
  53. package/es-modules/Core/Chart/StockChart.js +3 -293
  54. package/es-modules/Core/Color/Palettes.js +22 -0
  55. package/es-modules/Core/DefaultOptions.js +19 -17
  56. package/es-modules/Core/Foundation.js +39 -31
  57. package/es-modules/Core/Globals.js +1 -1
  58. package/es-modules/Core/HttpUtilities.js +3 -3
  59. package/es-modules/Core/Legend/Legend.js +7 -3
  60. package/es-modules/Core/Navigator.js +7 -8
  61. package/es-modules/Core/Pointer.js +39 -36
  62. package/es-modules/Core/Renderer/HTML/AST.js +3 -6
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -18
  64. package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -4
  65. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -18
  66. package/es-modules/Core/Renderer/SVG/TextBuilder.js +17 -13
  67. package/es-modules/Core/ScrollbarDefaults.js +10 -9
  68. package/es-modules/Core/Series/DataLabel.js +2 -3
  69. package/es-modules/Core/Series/Point.js +5 -3
  70. package/es-modules/Core/Series/Series.js +156 -162
  71. package/es-modules/Core/Series/SeriesDefaults.js +3 -4
  72. package/es-modules/Core/Series/SeriesRegistry.js +1 -2
  73. package/es-modules/Core/Tooltip.js +44 -17
  74. package/es-modules/Core/Utilities.js +15 -7
  75. package/es-modules/Data/DataConverter.js +489 -0
  76. package/es-modules/Data/DataPromise.js +252 -0
  77. package/es-modules/Data/DataSeriesConverter.js +203 -0
  78. package/es-modules/Data/DataTable.js +1204 -0
  79. package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  80. package/es-modules/Data/Modifiers/DataModifier.js +303 -0
  81. package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  82. package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  83. package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  84. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  85. package/es-modules/Data/Modifiers/SortModifier.js +249 -0
  86. package/es-modules/Data/Parsers/CSVParser.js +399 -0
  87. package/es-modules/Data/Parsers/DataParser.js +101 -0
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +220 -0
  89. package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  90. package/es-modules/Data/Stores/CSVStore.js +317 -0
  91. package/es-modules/Data/Stores/DataStore.js +276 -0
  92. package/es-modules/Data/Stores/GoogleSheetsStore.js +167 -0
  93. package/es-modules/Data/Stores/HTMLTableStore.js +351 -0
  94. package/es-modules/Extensions/Annotations/Annotations.js +61 -11
  95. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  97. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +7 -1
  98. package/es-modules/Extensions/Annotations/NavigationBindings.js +90 -28
  99. package/es-modules/Extensions/Annotations/Popup.js +479 -141
  100. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
  101. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -1
  102. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
  103. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  104. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
  105. package/es-modules/Extensions/Annotations/Types/Measure.js +14 -8
  106. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +5 -5
  107. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +207 -0
  108. package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -5
  109. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
  110. package/es-modules/Extensions/Boost/BoostOptions.js +2 -2
  111. package/es-modules/Extensions/Boost/BoostOverrides.js +3 -1
  112. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  113. package/es-modules/Extensions/BoostCanvas.js +1 -2
  114. package/es-modules/Extensions/CurrentDateIndication.js +2 -3
  115. package/es-modules/Extensions/Data.js +73 -67
  116. package/es-modules/Extensions/DataGrouping.js +33 -18
  117. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  118. package/es-modules/Extensions/DownloadURL.js +2 -2
  119. package/es-modules/Extensions/DragPanes.js +1 -2
  120. package/es-modules/Extensions/Drilldown.js +2 -3
  121. package/es-modules/Extensions/Exporting/Exporting.js +12 -11
  122. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  123. package/es-modules/Extensions/GeoJSON.js +39 -63
  124. package/es-modules/Extensions/MarkerClusters.js +115 -97
  125. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  126. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +10 -9
  127. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  128. package/es-modules/Extensions/Oldie/Oldie.js +2 -3
  129. package/es-modules/Extensions/Pane.js +5 -6
  130. package/es-modules/Extensions/Polar.js +1 -1
  131. package/es-modules/Extensions/RangeSelector.js +3 -4
  132. package/es-modules/Extensions/Sonification/ChartSonify.js +247 -637
  133. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  134. package/es-modules/Extensions/Sonification/Instrument.js +496 -426
  135. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  136. package/es-modules/Extensions/Sonification/Options.js +10 -0
  137. package/es-modules/Extensions/Sonification/PointSonify.js +203 -152
  138. package/es-modules/Extensions/Sonification/SeriesSonify.js +459 -0
  139. package/es-modules/Extensions/Sonification/SignalHandler.js +124 -0
  140. package/es-modules/Extensions/Sonification/Sonification.js +26 -52
  141. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +62 -84
  142. package/es-modules/Extensions/Sonification/Timeline.js +255 -567
  143. package/es-modules/Extensions/Sonification/TimelineEvent.js +158 -0
  144. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  145. package/es-modules/Maps/MapNavigation.js +27 -64
  146. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  147. package/es-modules/Maps/MapPointer.js +7 -5
  148. package/es-modules/Maps/MapView.js +450 -0
  149. package/es-modules/Maps/MapViewOptionsDefault.js +97 -0
  150. package/es-modules/Maps/Projection.js +436 -0
  151. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  152. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  153. package/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
  154. package/es-modules/Maps/Projections/Miller.js +16 -0
  155. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  156. package/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
  157. package/es-modules/Maps/Projections/WebMercator.js +24 -0
  158. package/es-modules/Series/AreaRange/AreaRangeSeries.js +4 -5
  159. package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -8
  160. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  161. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  162. package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
  163. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  164. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  165. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -18
  166. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  167. package/es-modules/Series/ColorMapComposition.js +109 -0
  168. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  169. package/es-modules/Series/Column/ColumnSeries.js +3 -4
  170. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +6 -6
  171. package/es-modules/Series/DataModifyComposition.js +539 -0
  172. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  173. package/es-modules/Series/DerivedComposition.js +137 -0
  174. package/es-modules/Series/DrawPointComposition.js +111 -0
  175. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -3
  176. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  177. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  178. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  179. package/es-modules/Series/Gantt/GanttSeries.js +0 -2
  180. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  181. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  182. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  183. package/es-modules/Series/HLC/HLCSeries.js +383 -0
  184. package/es-modules/Series/Heatmap/HeatmapPoint.js +3 -4
  185. package/es-modules/Series/Heatmap/HeatmapSeries.js +19 -6
  186. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +2 -3
  187. package/es-modules/Series/Histogram/HistogramSeries.js +3 -7
  188. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +2 -2
  189. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +33 -34
  190. package/es-modules/Series/Line/LineSeries.js +1 -2
  191. package/es-modules/Series/Map/MapPoint.js +23 -16
  192. package/es-modules/Series/Map/MapSeries.js +271 -309
  193. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  194. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  195. package/es-modules/Series/MapLine/MapLineSeries.js +2 -0
  196. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  197. package/es-modules/Series/MapPoint/MapPointSeries.js +99 -14
  198. package/es-modules/Series/Networkgraph/Networkgraph.js +5 -5
  199. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +76 -29
  200. package/es-modules/Series/OHLC/OHLCPoint.js +2 -6
  201. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  202. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  203. package/es-modules/Series/Organization/OrganizationSeries.js +2 -3
  204. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +46 -6
  205. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  206. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  207. package/es-modules/Series/Pie/PieSeries.js +6 -7
  208. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  209. package/es-modules/Series/Sankey/SankeySeries.js +89 -20
  210. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  211. package/es-modules/Series/Sunburst/SunburstSeries.js +4 -4
  212. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -3
  213. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  214. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +86 -76
  215. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  216. package/es-modules/Series/Treemap/TreemapSeries.js +8 -8
  217. package/es-modules/Series/Venn/VennPoint.js +16 -7
  218. package/es-modules/Series/Venn/VennSeries.js +5 -8
  219. package/es-modules/Series/Venn/VennUtils.js +550 -439
  220. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -3
  221. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  222. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  223. package/es-modules/Series/Wordcloud/WordcloudSeries.js +24 -20
  224. package/es-modules/Series/Wordcloud/WordcloudUtils.js +673 -484
  225. package/es-modules/Series/XRange/XRangePoint.js +1 -0
  226. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -6
  227. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  228. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  229. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -6
  230. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  231. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  232. package/es-modules/Stock/Indicators/BB/BBIndicator.js +27 -11
  233. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  234. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  235. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +19 -11
  236. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +17 -11
  237. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  238. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +11 -9
  239. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -16
  240. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +2 -2
  241. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  242. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  243. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  244. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
  245. package/es-modules/{Mixins/MultipleLines.js → Stock/Indicators/MultipleLinesComposition.js} +136 -87
  246. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  247. package/es-modules/Stock/Indicators/PC/PCIndicator.js +14 -13
  248. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  249. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  250. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +32 -49
  251. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  252. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -8
  253. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  254. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  255. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  256. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +23 -7
  257. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  258. package/es-modules/Stock/StockToolsBindings.js +144 -42
  259. package/es-modules/Stock/StockToolsGui.js +409 -15
  260. package/es-modules/masters/highcharts-3d.src.js +1 -1
  261. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  262. package/es-modules/masters/highcharts-more.src.js +1 -1
  263. package/es-modules/masters/highcharts.src.js +1 -1
  264. package/es-modules/masters/highmaps.src.js +1 -1
  265. package/es-modules/masters/highstock.src.js +1 -1
  266. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  267. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  268. package/es-modules/masters/indicators/ao.src.js +1 -1
  269. package/es-modules/masters/indicators/apo.src.js +1 -1
  270. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  271. package/es-modules/masters/indicators/aroon.src.js +1 -1
  272. package/es-modules/masters/indicators/atr.src.js +1 -1
  273. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  274. package/es-modules/masters/indicators/cci.src.js +1 -1
  275. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  276. package/es-modules/masters/indicators/cmf.src.js +1 -1
  277. package/es-modules/masters/indicators/cmo.src.js +1 -1
  278. package/es-modules/masters/indicators/dema.src.js +1 -1
  279. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  280. package/es-modules/masters/indicators/dmi.src.js +1 -1
  281. package/es-modules/masters/indicators/dpo.src.js +1 -1
  282. package/es-modules/masters/indicators/ema.src.js +4 -10
  283. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  284. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  285. package/es-modules/masters/indicators/indicators.src.js +2 -1
  286. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  287. package/es-modules/masters/indicators/klinger.src.js +1 -1
  288. package/es-modules/masters/indicators/macd.src.js +1 -1
  289. package/es-modules/masters/indicators/mfi.src.js +1 -1
  290. package/es-modules/masters/indicators/momentum.src.js +1 -1
  291. package/es-modules/masters/indicators/natr.src.js +1 -1
  292. package/es-modules/masters/indicators/obv.src.js +1 -1
  293. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  294. package/es-modules/masters/indicators/ppo.src.js +1 -1
  295. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  296. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  297. package/es-modules/masters/indicators/psar.src.js +1 -1
  298. package/es-modules/masters/indicators/regressions.src.js +1 -1
  299. package/es-modules/masters/indicators/roc.src.js +1 -1
  300. package/es-modules/masters/indicators/rsi.src.js +1 -1
  301. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  302. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  303. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  304. package/es-modules/masters/indicators/tema.src.js +1 -1
  305. package/es-modules/masters/indicators/trendline.src.js +1 -1
  306. package/es-modules/masters/indicators/trix.src.js +1 -1
  307. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  308. package/es-modules/masters/indicators/vwap.src.js +1 -1
  309. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  310. package/es-modules/masters/indicators/wma.src.js +1 -1
  311. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  312. package/es-modules/masters/modules/accessibility.src.js +16 -2
  313. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  314. package/es-modules/masters/modules/annotations.src.js +1 -1
  315. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  316. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  317. package/es-modules/masters/modules/boost.src.js +1 -1
  318. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  319. package/es-modules/masters/modules/bullet.src.js +1 -1
  320. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  321. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  322. package/es-modules/masters/modules/cylinder.src.js +1 -1
  323. package/es-modules/masters/modules/data.src.js +6 -3
  324. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  325. package/es-modules/masters/modules/debugger.src.js +1 -1
  326. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  327. package/es-modules/masters/modules/dotplot.src.js +1 -1
  328. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  329. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  330. package/es-modules/masters/modules/drilldown.src.js +1 -1
  331. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  332. package/es-modules/masters/modules/export-data.src.js +1 -1
  333. package/es-modules/masters/modules/exporting.src.js +1 -1
  334. package/es-modules/masters/modules/full-screen.src.js +1 -1
  335. package/es-modules/masters/modules/funnel.src.js +1 -1
  336. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  337. package/es-modules/masters/modules/gantt.src.js +1 -1
  338. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  339. package/es-modules/masters/modules/heatmap.src.js +1 -2
  340. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  341. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  342. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  343. package/es-modules/masters/modules/item-series.src.js +1 -1
  344. package/es-modules/masters/modules/lollipop.src.js +1 -1
  345. package/es-modules/masters/modules/map.src.js +1 -3
  346. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  347. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  348. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  349. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  350. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  351. package/es-modules/masters/modules/oldie.src.js +1 -1
  352. package/es-modules/masters/modules/organization.src.js +1 -1
  353. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  354. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  355. package/es-modules/masters/modules/pareto.src.js +1 -1
  356. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  357. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  358. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  359. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  360. package/es-modules/masters/modules/sankey.src.js +1 -1
  361. package/es-modules/masters/modules/series-label.src.js +1 -1
  362. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  363. package/es-modules/masters/modules/sonification.src.js +33 -2
  364. package/es-modules/masters/modules/static-scale.src.js +1 -1
  365. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  366. package/es-modules/masters/modules/stock.src.js +4 -1
  367. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  368. package/es-modules/masters/modules/sunburst.src.js +1 -1
  369. package/es-modules/masters/modules/tilemap.src.js +1 -1
  370. package/es-modules/masters/modules/timeline.src.js +1 -1
  371. package/es-modules/masters/modules/treegrid.src.js +1 -1
  372. package/es-modules/masters/modules/treemap.src.js +1 -1
  373. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  374. package/es-modules/masters/modules/variwide.src.js +1 -1
  375. package/es-modules/masters/modules/vector.src.js +1 -1
  376. package/es-modules/masters/modules/venn.src.js +1 -1
  377. package/es-modules/masters/modules/windbarb.src.js +1 -1
  378. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  379. package/es-modules/masters/modules/xrange.src.js +1 -1
  380. package/es-modules/masters/themes/avocado.src.js +1 -1
  381. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  382. package/es-modules/masters/themes/dark-green.src.js +1 -1
  383. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  384. package/es-modules/masters/themes/gray.src.js +1 -1
  385. package/es-modules/masters/themes/grid-light.src.js +1 -1
  386. package/es-modules/masters/themes/grid.src.js +1 -1
  387. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  388. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  389. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  390. package/es-modules/masters/themes/skies.src.js +1 -1
  391. package/es-modules/masters/themes/sunset.src.js +1 -1
  392. package/highcharts-3d.js +1 -1
  393. package/highcharts-3d.src.js +1 -1
  394. package/highcharts-gantt.js +799 -801
  395. package/highcharts-gantt.js.map +1 -1
  396. package/highcharts-gantt.src.js +793 -755
  397. package/highcharts-more.js +194 -193
  398. package/highcharts-more.js.map +1 -1
  399. package/highcharts-more.src.js +208 -120
  400. package/highcharts.d.ts +9814 -4231
  401. package/highcharts.js +585 -587
  402. package/highcharts.js.map +1 -1
  403. package/highcharts.src.d.ts +9814 -4231
  404. package/highcharts.src.js +626 -603
  405. package/highmaps.js +728 -707
  406. package/highmaps.js.map +1 -1
  407. package/highmaps.src.js +2824 -1613
  408. package/highstock.js +788 -782
  409. package/highstock.js.map +1 -1
  410. package/highstock.src.js +1913 -1284
  411. package/indicators/acceleration-bands.js +10 -9
  412. package/indicators/acceleration-bands.js.map +1 -1
  413. package/indicators/acceleration-bands.src.js +156 -112
  414. package/indicators/accumulation-distribution.js +1 -1
  415. package/indicators/accumulation-distribution.src.js +1 -1
  416. package/indicators/ao.js +6 -6
  417. package/indicators/ao.js.map +1 -1
  418. package/indicators/ao.src.js +4 -4
  419. package/indicators/apo.js +5 -6
  420. package/indicators/apo.js.map +1 -1
  421. package/indicators/apo.src.js +16 -84
  422. package/indicators/aroon-oscillator.js +9 -9
  423. package/indicators/aroon-oscillator.js.map +1 -1
  424. package/indicators/aroon-oscillator.src.js +160 -177
  425. package/indicators/aroon.js +9 -9
  426. package/indicators/aroon.js.map +1 -1
  427. package/indicators/aroon.src.js +156 -112
  428. package/indicators/atr.js +1 -1
  429. package/indicators/atr.src.js +1 -1
  430. package/indicators/bollinger-bands.js +10 -9
  431. package/indicators/bollinger-bands.js.map +1 -1
  432. package/indicators/bollinger-bands.src.js +180 -117
  433. package/indicators/cci.js +1 -1
  434. package/indicators/cci.src.js +1 -1
  435. package/indicators/chaikin.js +8 -9
  436. package/indicators/chaikin.js.map +1 -1
  437. package/indicators/chaikin.src.js +8 -76
  438. package/indicators/cmf.js +1 -1
  439. package/indicators/cmf.src.js +1 -1
  440. package/indicators/cmo.js +1 -1
  441. package/indicators/cmo.src.js +1 -1
  442. package/indicators/dema.js +5 -6
  443. package/indicators/dema.js.map +1 -1
  444. package/indicators/dema.src.js +3 -75
  445. package/indicators/disparity-index.js +6 -7
  446. package/indicators/disparity-index.js.map +1 -1
  447. package/indicators/disparity-index.src.js +19 -74
  448. package/indicators/dmi.js +11 -11
  449. package/indicators/dmi.js.map +1 -1
  450. package/indicators/dmi.src.js +173 -116
  451. package/indicators/dpo.js +1 -1
  452. package/indicators/dpo.src.js +1 -1
  453. package/indicators/ema.js +1 -13
  454. package/indicators/ema.js.map +1 -1
  455. package/indicators/ema.src.js +7 -188
  456. package/indicators/ichimoku-kinko-hyo.js +1 -1
  457. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  458. package/indicators/indicators-all.js +197 -203
  459. package/indicators/indicators-all.js.map +1 -1
  460. package/indicators/indicators-all.src.js +677 -743
  461. package/indicators/indicators.js +12 -12
  462. package/indicators/indicators.js.map +1 -1
  463. package/indicators/indicators.src.js +213 -143
  464. package/indicators/keltner-channels.js +10 -10
  465. package/indicators/keltner-channels.js.map +1 -1
  466. package/indicators/keltner-channels.src.js +164 -118
  467. package/indicators/klinger.js +12 -13
  468. package/indicators/klinger.js.map +1 -1
  469. package/indicators/klinger.src.js +161 -184
  470. package/indicators/macd.js +2 -2
  471. package/indicators/macd.js.map +1 -1
  472. package/indicators/macd.src.js +2 -3
  473. package/indicators/mfi.js +1 -1
  474. package/indicators/mfi.src.js +1 -1
  475. package/indicators/momentum.js +1 -1
  476. package/indicators/momentum.src.js +1 -1
  477. package/indicators/natr.js +3 -3
  478. package/indicators/natr.js.map +1 -1
  479. package/indicators/natr.src.js +2 -4
  480. package/indicators/obv.js +1 -1
  481. package/indicators/obv.src.js +1 -1
  482. package/indicators/pivot-points.js +1 -1
  483. package/indicators/pivot-points.src.js +1 -1
  484. package/indicators/ppo.js +5 -6
  485. package/indicators/ppo.js.map +1 -1
  486. package/indicators/ppo.src.js +3 -75
  487. package/indicators/price-channel.js +9 -9
  488. package/indicators/price-channel.js.map +1 -1
  489. package/indicators/price-channel.src.js +207 -168
  490. package/indicators/price-envelopes.js +1 -1
  491. package/indicators/price-envelopes.src.js +1 -1
  492. package/indicators/psar.js +1 -1
  493. package/indicators/psar.src.js +1 -1
  494. package/indicators/regressions.js +1 -1
  495. package/indicators/regressions.src.js +9 -9
  496. package/indicators/roc.js +1 -1
  497. package/indicators/roc.src.js +1 -1
  498. package/indicators/rsi.js +1 -1
  499. package/indicators/rsi.src.js +1 -1
  500. package/indicators/slow-stochastic.js +5 -6
  501. package/indicators/slow-stochastic.js.map +1 -1
  502. package/indicators/slow-stochastic.src.js +2 -72
  503. package/indicators/stochastic.js +10 -10
  504. package/indicators/stochastic.js.map +1 -1
  505. package/indicators/stochastic.src.js +209 -164
  506. package/indicators/supertrend.js +10 -10
  507. package/indicators/supertrend.js.map +1 -1
  508. package/indicators/supertrend.src.js +6 -7
  509. package/indicators/tema.js +6 -7
  510. package/indicators/tema.js.map +1 -1
  511. package/indicators/tema.src.js +28 -75
  512. package/indicators/trendline.js +1 -1
  513. package/indicators/trendline.src.js +1 -1
  514. package/indicators/trix.js +4 -5
  515. package/indicators/trix.js.map +1 -1
  516. package/indicators/trix.src.js +8 -76
  517. package/indicators/volume-by-price.js +16 -16
  518. package/indicators/volume-by-price.js.map +1 -1
  519. package/indicators/volume-by-price.src.js +24 -7
  520. package/indicators/vwap.js +1 -1
  521. package/indicators/vwap.src.js +1 -1
  522. package/indicators/williams-r.js +5 -6
  523. package/indicators/williams-r.js.map +1 -1
  524. package/indicators/williams-r.src.js +41 -51
  525. package/indicators/wma.js +1 -1
  526. package/indicators/wma.src.js +1 -1
  527. package/indicators/zigzag.js +1 -1
  528. package/indicators/zigzag.src.js +1 -1
  529. package/modules/accessibility.d.ts +5 -0
  530. package/modules/accessibility.js +237 -216
  531. package/modules/accessibility.js.map +1 -1
  532. package/modules/accessibility.src.d.ts +5 -0
  533. package/modules/accessibility.src.js +7400 -6078
  534. package/modules/annotations-advanced.d.ts +30 -0
  535. package/modules/annotations-advanced.js +192 -165
  536. package/modules/annotations-advanced.js.map +1 -1
  537. package/modules/annotations-advanced.src.d.ts +30 -0
  538. package/modules/annotations-advanced.src.js +1604 -332
  539. package/modules/annotations.js +121 -106
  540. package/modules/annotations.js.map +1 -1
  541. package/modules/annotations.src.js +981 -238
  542. package/modules/arrow-symbols.js +1 -1
  543. package/modules/arrow-symbols.src.js +1 -1
  544. package/modules/boost-canvas.js +15 -15
  545. package/modules/boost-canvas.js.map +1 -1
  546. package/modules/boost-canvas.src.js +3 -3
  547. package/modules/boost.js +79 -79
  548. package/modules/boost.js.map +1 -1
  549. package/modules/boost.src.js +10 -9
  550. package/modules/broken-axis.js +1 -1
  551. package/modules/broken-axis.src.js +1 -1
  552. package/modules/bullet.js +1 -1
  553. package/modules/bullet.src.js +1 -1
  554. package/modules/coloraxis.js +24 -24
  555. package/modules/coloraxis.js.map +1 -1
  556. package/modules/coloraxis.src.js +69 -98
  557. package/modules/current-date-indicator.js +4 -4
  558. package/modules/current-date-indicator.js.map +1 -1
  559. package/modules/current-date-indicator.src.js +4 -4
  560. package/modules/cylinder.js +1 -1
  561. package/modules/cylinder.src.js +1 -1
  562. package/modules/data.js +32 -32
  563. package/modules/data.js.map +1 -1
  564. package/modules/data.src.js +85 -88
  565. package/modules/datagrouping.js +20 -20
  566. package/modules/datagrouping.js.map +1 -1
  567. package/modules/datagrouping.src.js +35 -19
  568. package/modules/debugger.js +3 -3
  569. package/modules/debugger.js.map +1 -1
  570. package/modules/debugger.src.js +3 -3
  571. package/modules/dependency-wheel.js +11 -11
  572. package/modules/dependency-wheel.js.map +1 -1
  573. package/modules/dependency-wheel.src.js +4 -7
  574. package/modules/dotplot.js +1 -1
  575. package/modules/dotplot.src.js +1 -1
  576. package/modules/drag-panes.js +8 -8
  577. package/modules/drag-panes.js.map +1 -1
  578. package/modules/drag-panes.src.js +3 -3
  579. package/modules/draggable-points.js +1 -1
  580. package/modules/draggable-points.src.js +1 -1
  581. package/modules/drilldown.js +24 -24
  582. package/modules/drilldown.js.map +1 -1
  583. package/modules/drilldown.src.js +4 -4
  584. package/modules/dumbbell.js +17 -17
  585. package/modules/dumbbell.js.map +1 -1
  586. package/modules/dumbbell.src.js +4 -4
  587. package/modules/export-data.js +1 -1
  588. package/modules/export-data.js.map +1 -1
  589. package/modules/export-data.src.js +3 -3
  590. package/modules/exporting.js +39 -38
  591. package/modules/exporting.js.map +1 -1
  592. package/modules/exporting.src.js +102 -72
  593. package/modules/full-screen.js +1 -1
  594. package/modules/full-screen.src.js +1 -1
  595. package/modules/funnel.js +12 -12
  596. package/modules/funnel.js.map +1 -1
  597. package/modules/funnel.src.js +9 -6
  598. package/modules/funnel3d.js +1 -1
  599. package/modules/funnel3d.src.js +1 -1
  600. package/modules/gantt.js +217 -218
  601. package/modules/gantt.js.map +1 -1
  602. package/modules/gantt.src.js +167 -152
  603. package/modules/grid-axis.js +1 -1
  604. package/modules/grid-axis.src.js +1 -1
  605. package/modules/heatmap.js +39 -39
  606. package/modules/heatmap.js.map +1 -1
  607. package/modules/heatmap.src.js +177 -162
  608. package/modules/heikinashi.js +1 -1
  609. package/modules/heikinashi.src.js +4 -4
  610. package/modules/histogram-bellcurve.js +13 -13
  611. package/modules/histogram-bellcurve.js.map +1 -1
  612. package/modules/histogram-bellcurve.src.js +91 -86
  613. package/modules/hollowcandlestick.js +9 -9
  614. package/modules/hollowcandlestick.js.map +1 -1
  615. package/modules/hollowcandlestick.src.js +37 -37
  616. package/modules/item-series.js +1 -1
  617. package/modules/item-series.src.js +1 -1
  618. package/modules/lollipop.js +1 -1
  619. package/modules/lollipop.src.js +1 -1
  620. package/modules/map.d.ts +136 -14
  621. package/modules/map.js +144 -122
  622. package/modules/map.js.map +1 -1
  623. package/modules/map.src.d.ts +136 -14
  624. package/modules/map.src.js +2227 -1039
  625. package/modules/marker-clusters.js +36 -36
  626. package/modules/marker-clusters.js.map +1 -1
  627. package/modules/marker-clusters.src.js +173 -142
  628. package/modules/networkgraph.d.ts +12 -1
  629. package/modules/networkgraph.js +49 -49
  630. package/modules/networkgraph.js.map +1 -1
  631. package/modules/networkgraph.src.d.ts +12 -1
  632. package/modules/networkgraph.src.js +91 -43
  633. package/modules/no-data-to-display.js +5 -5
  634. package/modules/no-data-to-display.js.map +1 -1
  635. package/modules/no-data-to-display.src.js +3 -3
  636. package/modules/offline-exporting.js +18 -17
  637. package/modules/offline-exporting.js.map +1 -1
  638. package/modules/offline-exporting.src.js +14 -14
  639. package/modules/oldie-polyfills.js +1 -1
  640. package/modules/oldie-polyfills.src.js +1 -1
  641. package/modules/oldie.js +26 -26
  642. package/modules/oldie.js.map +1 -1
  643. package/modules/oldie.src.js +4 -4
  644. package/modules/organization.js +13 -13
  645. package/modules/organization.js.map +1 -1
  646. package/modules/organization.src.js +4 -4
  647. package/modules/overlapping-datalabels.js +1 -1
  648. package/modules/overlapping-datalabels.src.js +1 -1
  649. package/modules/parallel-coordinates.js +1 -1
  650. package/modules/parallel-coordinates.src.js +1 -1
  651. package/modules/pareto.js +7 -7
  652. package/modules/pareto.js.map +1 -1
  653. package/modules/pareto.src.js +89 -78
  654. package/modules/pathfinder.js +1 -1
  655. package/modules/pathfinder.src.js +1 -1
  656. package/modules/pattern-fill.js +1 -1
  657. package/modules/pattern-fill.src.js +1 -1
  658. package/modules/price-indicator.js +1 -1
  659. package/modules/price-indicator.src.js +1 -1
  660. package/modules/pyramid3d.js +1 -1
  661. package/modules/pyramid3d.src.js +1 -1
  662. package/modules/sankey.d.ts +12 -1
  663. package/modules/sankey.js +29 -29
  664. package/modules/sankey.js.map +1 -1
  665. package/modules/sankey.src.d.ts +12 -1
  666. package/modules/sankey.src.js +300 -176
  667. package/modules/series-label.js +1 -1
  668. package/modules/series-label.src.js +1 -1
  669. package/modules/solid-gauge.js +1 -1
  670. package/modules/solid-gauge.src.js +1 -1
  671. package/modules/sonification.js +59 -55
  672. package/modules/sonification.js.map +1 -1
  673. package/modules/sonification.src.js +3034 -2553
  674. package/modules/static-scale.js +1 -1
  675. package/modules/static-scale.src.js +1 -1
  676. package/modules/stock-tools.js +178 -163
  677. package/modules/stock-tools.js.map +1 -1
  678. package/modules/stock-tools.src.js +1028 -144
  679. package/modules/stock.d.ts +39 -6
  680. package/modules/stock.js +204 -196
  681. package/modules/stock.js.map +1 -1
  682. package/modules/stock.src.d.ts +39 -6
  683. package/modules/stock.src.js +1667 -1061
  684. package/modules/streamgraph.js +1 -1
  685. package/modules/streamgraph.src.js +1 -1
  686. package/modules/sunburst.js +61 -60
  687. package/modules/sunburst.js.map +1 -1
  688. package/modules/sunburst.src.js +329 -266
  689. package/modules/tilemap.js +17 -17
  690. package/modules/tilemap.js.map +1 -1
  691. package/modules/tilemap.src.js +3 -4
  692. package/modules/timeline.js +18 -18
  693. package/modules/timeline.js.map +1 -1
  694. package/modules/timeline.src.js +5 -5
  695. package/modules/treegrid.js +56 -57
  696. package/modules/treegrid.js.map +1 -1
  697. package/modules/treegrid.src.js +126 -120
  698. package/modules/treemap.js +41 -41
  699. package/modules/treemap.js.map +1 -1
  700. package/modules/treemap.src.js +319 -254
  701. package/modules/variable-pie.js +1 -1
  702. package/modules/variable-pie.src.js +1 -1
  703. package/modules/variwide.js +1 -1
  704. package/modules/variwide.src.js +1 -1
  705. package/modules/vector.js +1 -1
  706. package/modules/vector.src.js +1 -1
  707. package/modules/venn.js +31 -31
  708. package/modules/venn.js.map +1 -1
  709. package/modules/venn.src.js +731 -721
  710. package/modules/windbarb.js +15 -15
  711. package/modules/windbarb.js.map +1 -1
  712. package/modules/windbarb.src.js +90 -62
  713. package/modules/wordcloud.js +23 -24
  714. package/modules/wordcloud.js.map +1 -1
  715. package/modules/wordcloud.src.js +897 -949
  716. package/modules/xrange.js +2 -2
  717. package/modules/xrange.js.map +1 -1
  718. package/modules/xrange.src.js +2 -1
  719. package/package.json +1 -1
  720. package/themes/avocado.js +1 -1
  721. package/themes/avocado.src.js +1 -1
  722. package/themes/dark-blue.js +1 -1
  723. package/themes/dark-blue.src.js +1 -1
  724. package/themes/dark-green.js +1 -1
  725. package/themes/dark-green.src.js +1 -1
  726. package/themes/dark-unica.js +1 -1
  727. package/themes/dark-unica.src.js +1 -1
  728. package/themes/gray.js +1 -1
  729. package/themes/gray.src.js +1 -1
  730. package/themes/grid-light.js +1 -1
  731. package/themes/grid-light.src.js +1 -1
  732. package/themes/grid.js +1 -1
  733. package/themes/grid.src.js +1 -1
  734. package/themes/high-contrast-dark.js +1 -1
  735. package/themes/high-contrast-dark.src.js +1 -1
  736. package/themes/high-contrast-light.js +1 -1
  737. package/themes/high-contrast-light.src.js +1 -1
  738. package/themes/sand-signika.js +1 -1
  739. package/themes/sand-signika.src.js +1 -1
  740. package/themes/skies.js +1 -1
  741. package/themes/skies.src.js +1 -1
  742. package/themes/sunset.js +1 -1
  743. package/themes/sunset.src.js +1 -1
  744. package/es-modules/Core/Axis/MapAxis.js +0 -157
  745. package/es-modules/Core/Color/Palette.js +0 -82
  746. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  747. package/es-modules/Mixins/ColorMapSeries.js +0 -82
  748. package/es-modules/Mixins/ColorSeries.js +0 -77
  749. package/es-modules/Mixins/DerivedSeries.js +0 -118
  750. package/es-modules/Mixins/DrawPoint.js +0 -81
  751. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  752. package/es-modules/Mixins/Navigation.js +0 -54
  753. package/es-modules/Mixins/NelderMead.js +0 -132
  754. package/es-modules/Mixins/Polygon.js +0 -259
  755. package/es-modules/Mixins/ReduceArray.js +0 -54
@@ -16,16 +16,31 @@ import D from '../../Core/DefaultOptions.js';
16
16
  var getOptions = D.getOptions;
17
17
  import Pointer from '../../Core/Pointer.js';
18
18
  import U from '../../Core/Utilities.js';
19
- var addEvent = U.addEvent, createElement = U.createElement, defined = U.defined, fireEvent = U.fireEvent, isArray = U.isArray, isObject = U.isObject, isString = U.isString, objectEach = U.objectEach, pick = U.pick, stableSort = U.stableSort, wrap = U.wrap;
20
- var indexFilter = /\d/g, PREFIX = 'highcharts-', DIV = 'div', INPUT = 'input', LABEL = 'label', BUTTON = 'button', SELECT = 'select', OPTION = 'option', SPAN = 'span', UL = 'ul', LI = 'li', H3 = 'h3';
19
+ var addEvent = U.addEvent, createElement = U.createElement, defined = U.defined, fireEvent = U.fireEvent, isArray = U.isArray, isObject = U.isObject, objectEach = U.objectEach, pick = U.pick, stableSort = U.stableSort, wrap = U.wrap;
20
+ var indexFilter = /\d/g, PREFIX = 'highcharts-', A = 'a', DIV = 'div', INPUT = 'input', LABEL = 'label', BUTTON = 'button', SELECT = 'select', OPTION = 'option', SPAN = 'span', UL = 'ul', LI = 'li', H3 = 'h3';
21
+ /**
22
+ * Enum for properties which should have dropdown list.
23
+ * @private
24
+ */
25
+ var DropdownProperties;
26
+ (function (DropdownProperties) {
27
+ DropdownProperties[DropdownProperties["params.algorithm"] = 0] = "params.algorithm";
28
+ DropdownProperties[DropdownProperties["params.average"] = 1] = "params.average";
29
+ })(DropdownProperties || (DropdownProperties = {}));
30
+ /**
31
+ * List of available algorithms for the specific indicator.
32
+ * @private
33
+ */
34
+ var dropdownParameters = {
35
+ 'algorithm-pivotpoints': ['standard', 'fibonacci', 'camarilla'],
36
+ 'average-disparityindex': ['sma', 'ema', 'dema', 'tema', 'wma']
37
+ };
21
38
  /* eslint-disable no-invalid-this, valid-jsdoc */
22
39
  // onContainerMouseDown blocks internal popup events, due to e.preventDefault.
23
40
  // Related issue #4606
24
41
  wrap(Pointer.prototype, 'onContainerMouseDown', function (proceed, e) {
25
- var popupClass = e.target && e.target.className;
26
42
  // elements is not in popup
27
- if (!(isString(popupClass) &&
28
- popupClass.indexOf(PREFIX + 'popup-field') >= 0)) {
43
+ if (!this.inClass(e.target, PREFIX + 'popup')) {
29
44
  proceed.apply(this, Array.prototype.slice.call(arguments, 1));
30
45
  }
31
46
  });
@@ -46,7 +61,21 @@ H.Popup.prototype = {
46
61
  // create popup div
47
62
  this.container = createElement(DIV, {
48
63
  className: PREFIX + 'popup highcharts-no-tooltip'
49
- }, null, parentDiv);
64
+ }, void 0, parentDiv);
65
+ addEvent(this.container, 'mousedown', function () {
66
+ var activeAnnotation = chart &&
67
+ chart.navigationBindings &&
68
+ chart.navigationBindings.activeAnnotation;
69
+ if (activeAnnotation) {
70
+ activeAnnotation.cancelClick = true;
71
+ var unbind_1 = addEvent(H.doc, 'click', function () {
72
+ setTimeout(function () {
73
+ activeAnnotation.cancelClick = false;
74
+ }, 0);
75
+ unbind_1();
76
+ });
77
+ }
78
+ });
50
79
  this.lang = this.getLangpack();
51
80
  this.iconsURL = iconsURL;
52
81
  // add close button
@@ -62,7 +91,7 @@ H.Popup.prototype = {
62
91
  // create close popup btn
63
92
  closeBtn = createElement(DIV, {
64
93
  className: PREFIX + 'popup-close'
65
- }, null, this.container);
94
+ }, void 0, this.container);
66
95
  closeBtn.style['background-image'] = 'url(' +
67
96
  (iconsURL.match(/png|svg|jpeg|jpg|gif/ig) ?
68
97
  iconsURL : iconsURL + 'close.svg') + ')';
@@ -90,15 +119,15 @@ H.Popup.prototype = {
90
119
  // left column
91
120
  lhsCol = createElement(DIV, {
92
121
  className: PREFIX + 'popup-lhs-col'
93
- }, null, container);
122
+ }, void 0, container);
94
123
  // right column
95
124
  rhsCol = createElement(DIV, {
96
125
  className: PREFIX + 'popup-rhs-col'
97
- }, null, container);
126
+ }, void 0, container);
98
127
  // wrapper content
99
128
  createElement(DIV, {
100
129
  className: PREFIX + 'popup-rhs-col-wrapper'
101
- }, null, rhsCol);
130
+ }, void 0, rhsCol);
102
131
  return {
103
132
  lhsCol: lhsCol,
104
133
  rhsCol: rhsCol
@@ -106,34 +135,43 @@ H.Popup.prototype = {
106
135
  },
107
136
  /**
108
137
  * Create input with label.
138
+ *
109
139
  * @private
140
+ *
110
141
  * @param {string} option
111
- * Chain of fields i.e params.styles.fontSize
112
- * @param {string} type
113
- * Indicator type
114
- * @param {Highhcharts.HTMLDOMElement}
115
- * Container where elements should be added
116
- * @param {string} value
117
- * Default value of input i.e period value is 14, extracted from
118
- * defaultOptions (ADD mode) or series options (EDIT mode)
142
+ * Chain of fields i.e params.styles.fontSize separeted by the dot.
143
+ *
144
+ * @param {string} indicatorType
145
+ * Type of the indicator i.e. sma, ema...
146
+ *
147
+ * @param {HTMLDOMElement} parentDiv
148
+ * HTML parent element.
149
+ *
150
+ * @param {Highcharts.InputAttributes} inputAttributes
151
+ * Attributes of the input.
152
+ *
153
+ * @return {HTMLInputElement}
154
+ * Return created input element.
119
155
  */
120
- addInput: function (option, type, parentDiv, value) {
121
- var optionParamList = option.split('.'), optionName = optionParamList[optionParamList.length - 1], lang = this.lang, inputName = PREFIX + type + '-' + optionName;
156
+ addInput: function (option, indicatorType, parentDiv, inputAttributes) {
157
+ var optionParamList = option.split('.'), optionName = optionParamList[optionParamList.length - 1], lang = this.lang, inputName = PREFIX + indicatorType + '-' + pick(inputAttributes.htmlFor, optionName);
158
+ var input;
122
159
  if (!inputName.match(indexFilter)) {
123
160
  // add label
124
161
  createElement(LABEL, {
125
- htmlFor: inputName
162
+ htmlFor: inputName,
163
+ className: inputAttributes.labelClassName
126
164
  }, void 0, parentDiv).appendChild(doc.createTextNode(lang[optionName] || optionName));
127
165
  }
128
166
  // add input
129
- if (value !== '') {
130
- createElement(INPUT, {
131
- name: inputName,
132
- value: value[0],
133
- type: value[1],
134
- className: PREFIX + 'popup-field'
135
- }, void 0, parentDiv).setAttribute(PREFIX + 'data-name', option);
136
- }
167
+ input = createElement(INPUT, {
168
+ name: inputName,
169
+ value: inputAttributes.value,
170
+ type: inputAttributes.type,
171
+ className: PREFIX + 'popup-field'
172
+ }, void 0, parentDiv);
173
+ input.setAttribute(PREFIX + 'data-name', option);
174
+ return input;
137
175
  },
138
176
  /**
139
177
  * Create button.
@@ -151,35 +189,43 @@ H.Popup.prototype = {
151
189
  * @return {Highcharts.HTMLDOMElement}
152
190
  * HTML button
153
191
  */
154
- addButton: function (parentDiv, label, type, callback, fieldsDiv) {
192
+ addButton: function (parentDiv, label, type, fieldsDiv, callback) {
155
193
  var _self = this, closePopup = this.closePopup, getFields = this.getFields, button;
156
194
  button = createElement(BUTTON, void 0, void 0, parentDiv);
157
195
  button.appendChild(doc.createTextNode(label));
158
- ['click', 'touchstart'].forEach(function (eventName) {
159
- addEvent(button, eventName, function () {
160
- closePopup.call(_self);
161
- return callback(getFields(fieldsDiv, type));
196
+ if (callback) {
197
+ ['click', 'touchstart'].forEach(function (eventName) {
198
+ addEvent(button, eventName, function () {
199
+ closePopup.call(_self);
200
+ return callback(getFields(fieldsDiv, type));
201
+ });
162
202
  });
163
- });
203
+ }
164
204
  return button;
165
205
  },
166
206
  /**
167
- * Get values from all inputs and create JSON.
207
+ * Get values from all inputs and selections then create JSON.
208
+ *
168
209
  * @private
169
- * @param {Highcharts.HTMLDOMElement} - container where inputs are created
170
- * @param {string} - add | edit | remove
171
- * @return {Highcharts.PopupFieldsObject} - fields
210
+ *
211
+ * @param {Highcharts.HTMLDOMElement} parentDiv
212
+ * The container where inputs and selections are created.
213
+ *
214
+ * @param {string} type
215
+ * Type of the popup bookmark (add|edit|remove).
216
+ *
217
+ * @return {Highcharts.PopupFieldsObject}
172
218
  */
173
219
  getFields: function (parentDiv, type) {
174
- var inputList = parentDiv.querySelectorAll('input'), optionSeries = '#' + PREFIX + 'select-series > option:checked', optionVolume = '#' + PREFIX + 'select-volume > option:checked', linkedTo = parentDiv.querySelectorAll(optionSeries)[0], volumeTo = parentDiv.querySelectorAll(optionVolume)[0], seriesId, param, fieldsOutput;
220
+ var inputList = Array.prototype.slice.call(parentDiv.querySelectorAll(INPUT)), selectList = Array.prototype.slice.call(parentDiv.querySelectorAll(SELECT)), optionSeries = '#' + PREFIX + 'select-series > option:checked', optionVolume = '#' + PREFIX + 'select-volume > option:checked', linkedTo = parentDiv.querySelectorAll(optionSeries)[0], volumeTo = parentDiv.querySelectorAll(optionVolume)[0];
221
+ var fieldsOutput;
175
222
  fieldsOutput = {
176
223
  actionType: type,
177
- linkedTo: linkedTo && linkedTo.getAttribute('value'),
224
+ linkedTo: linkedTo && linkedTo.getAttribute('value') || '',
178
225
  fields: {}
179
226
  };
180
- [].forEach.call(inputList, function (input) {
181
- param = input.getAttribute(PREFIX + 'data-name');
182
- seriesId = input.getAttribute(PREFIX + 'data-series-id');
227
+ inputList.forEach(function (input) {
228
+ var param = input.getAttribute(PREFIX + 'data-name'), seriesId = input.getAttribute(PREFIX + 'data-series-id');
183
229
  // params
184
230
  if (seriesId) {
185
231
  fieldsOutput.seriesId = input.value;
@@ -192,8 +238,16 @@ H.Popup.prototype = {
192
238
  fieldsOutput.type = input.value;
193
239
  }
194
240
  });
241
+ selectList.forEach(function (select) {
242
+ var id = select.id;
243
+ // Get inputs only for the parameters, not for series and volume.
244
+ if (id !== PREFIX + 'select-series' && id !== PREFIX + 'select-volume') {
245
+ var parameter = id.split('highcharts-select-')[1];
246
+ fieldsOutput.fields[parameter] = select.value;
247
+ }
248
+ });
195
249
  if (volumeTo) {
196
- fieldsOutput.fields['params.volumeSeriesID'] = volumeTo.getAttribute('value');
250
+ fieldsOutput.fields['params.volumeSeriesID'] = volumeTo.getAttribute('value') || '';
197
251
  }
198
252
  return fieldsOutput;
199
253
  },
@@ -295,13 +349,13 @@ H.Popup.prototype = {
295
349
  // Basic shapes:
296
350
  options.shapes && options.shapes[0].type)));
297
351
  // add buttons
298
- button = this.addButton(popupDiv, lang.removeButton || 'remove', 'remove', callback, popupDiv);
352
+ button = this.addButton(popupDiv, lang.removeButton || 'remove', 'remove', popupDiv, callback);
299
353
  button.className += ' ' + PREFIX + 'annotation-remove-button';
300
354
  button.style['background-image'] = 'url(' +
301
355
  this.iconsURL + 'destroy.svg)';
302
- button = this.addButton(popupDiv, lang.editButton || 'edit', 'edit', function () {
356
+ button = this.addButton(popupDiv, lang.editButton || 'edit', 'edit', popupDiv, function () {
303
357
  showForm.call(_self, 'annotation-edit', chart, options, callback);
304
- }, popupDiv);
358
+ });
305
359
  button.className += ' ' + PREFIX + 'annotation-edit-button';
306
360
  button.style['background-image'] = 'url(' +
307
361
  this.iconsURL + 'edit.svg)';
@@ -332,14 +386,14 @@ H.Popup.prototype = {
332
386
  // left column
333
387
  lhsCol = createElement(DIV, {
334
388
  className: PREFIX + 'popup-lhs-col ' + PREFIX + 'popup-lhs-full'
335
- }, null, popupDiv);
389
+ }, void 0, popupDiv);
336
390
  bottomRow = createElement(DIV, {
337
391
  className: PREFIX + 'popup-bottom-row'
338
- }, null, popupDiv);
392
+ }, void 0, popupDiv);
339
393
  this.annotations.addFormFields.call(this, lhsCol, chart, '', options, [], true);
340
394
  this.addButton(bottomRow, isInit ?
341
395
  (lang.addButton || 'add') :
342
- (lang.saveButton || 'save'), isInit ? 'add' : 'save', callback, popupDiv);
396
+ (lang.saveButton || 'save'), isInit ? 'add' : 'save', popupDiv, callback);
343
397
  },
344
398
  /**
345
399
  * Create annotation's form fields.
@@ -407,6 +461,10 @@ H.Popup.prototype = {
407
461
  }, void 0, genInput[2]).appendChild(doc.createTextNode(genInput[1]));
408
462
  }
409
463
  else {
464
+ genInput[4] = {
465
+ value: genInput[4][0],
466
+ type: genInput[4][1]
467
+ };
410
468
  addInput.apply(genInput[0], genInput.splice(1));
411
469
  }
412
470
  });
@@ -431,131 +489,396 @@ H.Popup.prototype = {
431
489
  .querySelectorAll('.' + PREFIX + 'tab-item-content');
432
490
  // ADD tab
433
491
  this.addColsContainer(tabsContainers[0]);
492
+ indicators.addSearchBox.call(this, chart, tabsContainers[0]);
434
493
  indicators.addIndicatorList.call(this, chart, tabsContainers[0], 'add');
435
494
  buttonParentDiv = tabsContainers[0]
436
495
  .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
437
- this.addButton(buttonParentDiv, lang.addButton || 'add', 'add', callback, buttonParentDiv);
496
+ this.addButton(buttonParentDiv, lang.addButton || 'add', 'add', buttonParentDiv, callback);
438
497
  // EDIT tab
439
498
  this.addColsContainer(tabsContainers[1]);
440
499
  indicators.addIndicatorList.call(this, chart, tabsContainers[1], 'edit');
441
500
  buttonParentDiv = tabsContainers[1]
442
501
  .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
443
- this.addButton(buttonParentDiv, lang.saveButton || 'save', 'edit', callback, buttonParentDiv);
444
- this.addButton(buttonParentDiv, lang.removeButton || 'remove', 'remove', callback, buttonParentDiv);
502
+ this.addButton(buttonParentDiv, lang.saveButton || 'save', 'edit', buttonParentDiv, callback);
503
+ this.addButton(buttonParentDiv, lang.removeButton || 'remove', 'remove', buttonParentDiv, callback);
504
+ },
505
+ /**
506
+ * Filter object of series which are not indicators.
507
+ * If the filter string exists, check against it.
508
+ *
509
+ * @private
510
+ *
511
+ * @param {Highcharts.FilteredSeries} series
512
+ * All series are available in the plotOptions.
513
+ *
514
+ * @param {string|undefined} filter
515
+ * Applied filter string from the input.
516
+ * For the first iteration, it's an empty string.
517
+ *
518
+ * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray
519
+ * Returns array of filtered series based on filter string.
520
+ */
521
+ filterSeries: function (series, filter) {
522
+ var popup = this, indicators = popup.indicators, lang = popup.chart && popup.chart.options.lang, indicatorAliases = lang &&
523
+ lang.navigation &&
524
+ lang.navigation.popup &&
525
+ lang.navigation.popup.indicatorAliases;
526
+ var filteredSeriesArray = [], filteredSeries;
527
+ objectEach(series, function (series, value) {
528
+ var seriesOptions = series.options;
529
+ // Allow only indicators.
530
+ if (series.params || seriesOptions &&
531
+ seriesOptions.params) {
532
+ var _a = indicators.getNameType(series, value), indicatorFullName = _a.indicatorFullName, indicatorType = _a.indicatorType;
533
+ if (filter) {
534
+ // Replace invalid characters.
535
+ var validFilter = filter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
536
+ var regex = new RegExp(validFilter, 'i'), alias = indicatorAliases &&
537
+ indicatorAliases[indicatorType] &&
538
+ indicatorAliases[indicatorType].join(' ') || '';
539
+ if (indicatorFullName.match(regex) || alias.match(regex)) {
540
+ filteredSeries = {
541
+ indicatorFullName: indicatorFullName,
542
+ indicatorType: indicatorType,
543
+ series: series
544
+ };
545
+ filteredSeriesArray.push(filteredSeries);
546
+ }
547
+ }
548
+ else {
549
+ filteredSeries = {
550
+ indicatorFullName: indicatorFullName,
551
+ indicatorType: indicatorType,
552
+ series: series
553
+ };
554
+ filteredSeriesArray.push(filteredSeries);
555
+ }
556
+ }
557
+ });
558
+ return filteredSeriesArray;
559
+ },
560
+ /**
561
+ * Filter an array of series and map its names and types.
562
+ *
563
+ * @private
564
+ *
565
+ * @param {Highcharts.FilteredSeries} series
566
+ * All series that are available in the plotOptions.
567
+ *
568
+ * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray
569
+ * Returns array of filtered series based on filter string.
570
+ */
571
+ filterSeriesArray: function (series) {
572
+ var filteredSeriesArray = [], filteredSeries;
573
+ // Allow only indicators.
574
+ series.forEach(function (series) {
575
+ var seriesOptions = series.options;
576
+ if (series.is('sma')) {
577
+ filteredSeries = {
578
+ indicatorFullName: series.name,
579
+ indicatorType: series.type,
580
+ series: series
581
+ };
582
+ filteredSeriesArray.push(filteredSeries);
583
+ }
584
+ });
585
+ return filteredSeriesArray;
445
586
  },
446
587
  /**
447
588
  * Create HTML list of all indicators (ADD mode) or added indicators
448
589
  * (EDIT mode).
590
+ *
449
591
  * @private
592
+ *
593
+ * @param {Highcharts.AnnotationChart} chart
594
+ * The chart object.
595
+ *
596
+ * @param {string} [optionName]
597
+ * Name of the option into which selection is being added.
598
+ *
599
+ * @param {HTMLDOMElement} [parentDiv]
600
+ * HTML parent element.
601
+ *
602
+ * @param {string} listType
603
+ * Type of list depending on the selected bookmark.
604
+ * Might be 'add' or 'edit'.
605
+ *
606
+ * @param {string|undefined} filter
607
+ * Applied filter string from the input.
608
+ * For the first iteration, it's an empty string.
450
609
  */
451
- addIndicatorList: function (chart, parentDiv, listType) {
452
- var _self = this, lhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-lhs-col')[0], rhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0], isEdit = listType === 'edit', series = (isEdit ?
610
+ addIndicatorList: function (chart, parentDiv, listType, filter) {
611
+ var popup = this, indicators = popup.indicators, lang = popup.lang, lhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-lhs-col')[0], rhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0], isEdit = listType === 'edit', addFormFields = this.indicators.addFormFields, series = (isEdit ?
453
612
  chart.series : // EDIT mode
454
- chart.options.plotOptions // ADD mode
455
- ), addFormFields = this.indicators.addFormFields, rhsColWrapper, indicatorList, item;
456
- if (!chart) {
613
+ chart.options.plotOptions || {} // ADD mode
614
+ );
615
+ if (!chart && series) {
457
616
  return;
458
617
  }
459
- // create wrapper for list
618
+ var rhsColWrapper, indicatorList, item, filteredSeriesArray = [];
619
+ // Filter and sort the series.
620
+ if (!isEdit && !isArray(series)) {
621
+ // Apply filters only for the 'add' indicator list.
622
+ filteredSeriesArray = indicators.filterSeries.call(this, series, filter);
623
+ }
624
+ else if (isArray(series)) {
625
+ filteredSeriesArray = indicators.filterSeriesArray.call(this, series);
626
+ }
627
+ // Sort indicators alphabeticaly.
628
+ stableSort(filteredSeriesArray, function (a, b) {
629
+ var seriesAName = a.indicatorFullName.toLowerCase(), seriesBName = b.indicatorFullName.toLowerCase();
630
+ return (seriesAName < seriesBName) ?
631
+ -1 : (seriesAName > seriesBName) ? 1 : 0;
632
+ });
633
+ // If the list exists remove it from the DOM
634
+ // in order to create a new one with different filters.
635
+ if (lhsCol.children[1]) {
636
+ lhsCol.children[1].remove();
637
+ }
638
+ // Create wrapper for list.
460
639
  indicatorList = createElement(UL, {
461
640
  className: PREFIX + 'indicator-list'
462
- }, null, lhsCol);
641
+ }, void 0, lhsCol);
463
642
  rhsColWrapper = rhsCol
464
643
  .querySelectorAll('.' + PREFIX + 'popup-rhs-col-wrapper')[0];
465
- objectEach(series, function (serie, value) {
466
- var seriesOptions = serie.options;
467
- if (serie.params ||
468
- seriesOptions && seriesOptions.params) {
469
- var indicatorNameType_1 = _self.indicators.getNameType(serie, value), indicatorType_1 = indicatorNameType_1.type;
470
- item = createElement(LI, {
471
- className: PREFIX + 'indicator-list'
472
- }, void 0, indicatorList);
473
- item.appendChild(doc.createTextNode(indicatorNameType_1.name));
474
- ['click', 'touchstart'].forEach(function (eventName) {
475
- addEvent(item, eventName, function () {
476
- addFormFields.call(_self, chart, isEdit ? serie : series[indicatorType_1], indicatorNameType_1.type, rhsColWrapper);
477
- // add hidden input with series.id
478
- if (isEdit && serie.options) {
479
- createElement(INPUT, {
480
- type: 'hidden',
481
- name: PREFIX + 'id-' + indicatorType_1,
482
- value: serie.options.id
483
- }, null, rhsColWrapper)
484
- .setAttribute(PREFIX + 'data-series-id', serie.options.id);
485
- }
486
- });
644
+ filteredSeriesArray.forEach(function (seriesSet) {
645
+ var indicatorFullName = seriesSet.indicatorFullName, indicatorType = seriesSet.indicatorType, series = seriesSet.series;
646
+ item = createElement(LI, {
647
+ className: PREFIX + 'indicator-list'
648
+ }, void 0, indicatorList);
649
+ item.appendChild(doc.createTextNode(indicatorFullName));
650
+ ['click', 'touchstart'].forEach(function (eventName) {
651
+ addEvent(item, eventName, function () {
652
+ var button = rhsColWrapper.parentNode.children[1];
653
+ addFormFields.call(popup, chart, series, indicatorType, rhsColWrapper);
654
+ if (button) {
655
+ button.style.display = 'block';
656
+ }
657
+ // add hidden input with series.id
658
+ if (isEdit && series.options) {
659
+ createElement(INPUT, {
660
+ type: 'hidden',
661
+ name: PREFIX + 'id-' + indicatorType,
662
+ value: series.options.id
663
+ }, void 0, rhsColWrapper).setAttribute(PREFIX + 'data-series-id', series.options.id);
664
+ }
487
665
  });
488
- }
666
+ });
489
667
  });
490
668
  // select first item from the list
491
669
  if (indicatorList.childNodes.length > 0) {
492
670
  indicatorList.childNodes[0].click();
493
671
  }
672
+ else if (!isEdit) {
673
+ rhsColWrapper.parentNode.children[0].innerHTML = lang.noFilterMatch || '';
674
+ rhsColWrapper.parentNode.children[1].style.display = 'none';
675
+ }
676
+ },
677
+ /**
678
+ * Add searchbox HTML element and its' label.
679
+ *
680
+ * @private
681
+ *
682
+ * @param {Highcharts.AnnotationChart} chart
683
+ * The chart object.
684
+ *
685
+ * @param {HTMLDOMElement} parentDiv
686
+ * HTML parent element.
687
+ */
688
+ addSearchBox: function (chart, parentDiv) {
689
+ var popup = this, lhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-lhs-col')[0], options = 'searchIndicators', inputAttributes = {
690
+ value: '',
691
+ type: 'text',
692
+ htmlFor: 'search-indicators',
693
+ labelClassName: 'highcharts-input-search-indicators-label'
694
+ }, clearFilterText = this.lang.clearFilter, inputWrapper = createElement(DIV, {
695
+ className: 'highcharts-input-wrapper'
696
+ }, void 0, lhsCol);
697
+ var handleInputChange = function (inputText) {
698
+ // Apply some filters.
699
+ popup.indicators.addIndicatorList.call(popup, chart, popup.container, 'add', inputText);
700
+ };
701
+ // Add input field with the label and button.
702
+ var input = this.addInput(options, INPUT, inputWrapper, inputAttributes), button = createElement(A, {
703
+ textContent: clearFilterText
704
+ }, void 0, inputWrapper);
705
+ input.classList.add('highcharts-input-search-indicators');
706
+ button.classList.add('clear-filter-button');
707
+ // Add input change events.
708
+ addEvent(input, 'input', function (e) {
709
+ handleInputChange(this.value);
710
+ // Show clear filter button.
711
+ if (this.value.length) {
712
+ button.style.display = 'inline-block';
713
+ }
714
+ else {
715
+ button.style.display = 'none';
716
+ }
717
+ });
718
+ // Add clear filter click event.
719
+ ['click', 'touchstart'].forEach(function (eventName) {
720
+ addEvent(button, eventName, function () {
721
+ // Clear the input.
722
+ input.value = '';
723
+ handleInputChange('');
724
+ // Hide clear filter button- no longer nececary.
725
+ button.style.display = 'none';
726
+ });
727
+ });
728
+ },
729
+ /**
730
+ * Add selection HTML element and its' label.
731
+ *
732
+ * @private
733
+ *
734
+ * @param {string} indicatorType
735
+ * Type of the indicator i.e. sma, ema...
736
+ *
737
+ * @param {string} [optionName]
738
+ * Name of the option into which selection is being added.
739
+ *
740
+ * @param {HTMLDOMElement} [parentDiv]
741
+ * HTML parent element.
742
+ *
743
+ * @return {HTMLSelectElement}
744
+ */
745
+ addSelection: function (indicatorType, optionName, parentDiv) {
746
+ var optionParamList = optionName.split('.'), labelText = optionParamList[optionParamList.length - 1];
747
+ var selectName = PREFIX + optionName + '-type-' + indicatorType, lang = this.lang, selectBox;
748
+ // Add a label for the selection box.
749
+ createElement(LABEL, {
750
+ htmlFor: selectName
751
+ }, null, parentDiv).appendChild(doc.createTextNode(lang[labelText] || optionName));
752
+ // Create a selection box.
753
+ selectBox = createElement(SELECT, {
754
+ name: selectName,
755
+ className: PREFIX + 'popup-field',
756
+ id: PREFIX + 'select-' + optionName
757
+ }, null, parentDiv);
758
+ selectBox.setAttribute('id', PREFIX + 'select-' + optionName);
759
+ return selectBox;
760
+ },
761
+ /**
762
+ * Get and add selection options.
763
+ *
764
+ * @private
765
+ *
766
+ * @param {Highcharts.AnnotationChart} chart
767
+ * The chart object.
768
+ *
769
+ * @param {string} [optionName]
770
+ * Name of the option into which selection is being added.
771
+ *
772
+ * @param {HTMLSelectElement} [selectBox]
773
+ * HTML select box element to which the options are being added.
774
+ *
775
+ * @param {string|undefined} indicatorType
776
+ * Type of the indicator i.e. sma, ema...
777
+ *
778
+ * @param {string|undefined} parameterName
779
+ * Name of the parameter which should be applied.
780
+ *
781
+ * @param {string|undefined} selectedOption
782
+ * Default value in dropdown.
783
+ */
784
+ addSelectionOptions: function (chart, optionName, selectBox, indicatorType, parameterName, selectedOption, currentSeries) {
785
+ var popup = this;
786
+ // Get and apply selection options for the possible series.
787
+ if (optionName === 'series' || optionName === 'volume') {
788
+ // List all series which have id - mandatory for indicator.
789
+ chart.series.forEach(function (series) {
790
+ var seriesOptions = series.options, seriesName = seriesOptions.name ||
791
+ seriesOptions.params ? series.name : seriesOptions.id || '';
792
+ if (seriesOptions.id !== PREFIX + 'navigator-series' &&
793
+ seriesOptions.id !== (currentSeries && currentSeries.options && currentSeries.options.id)) {
794
+ if (!defined(selectedOption) &&
795
+ optionName === 'volume' &&
796
+ series.type === 'column') {
797
+ selectedOption = seriesOptions.id;
798
+ }
799
+ createElement(OPTION, {
800
+ value: seriesOptions.id
801
+ }, void 0, selectBox).appendChild(doc.createTextNode(seriesName));
802
+ }
803
+ });
804
+ }
805
+ else if (indicatorType && parameterName) {
806
+ // Get and apply options for the possible parameters.
807
+ var dropdownKey = parameterName + '-' + indicatorType, parameterOption = dropdownParameters[dropdownKey];
808
+ parameterOption.forEach(function (element) {
809
+ createElement(OPTION, {
810
+ value: element
811
+ }, void 0, selectBox).appendChild(doc.createTextNode(element));
812
+ });
813
+ }
814
+ // Add the default dropdown value if defined.
815
+ if (defined(selectedOption)) {
816
+ selectBox.value = selectedOption;
817
+ }
494
818
  },
495
819
  /**
496
820
  * Extract full name and type of requested indicator.
821
+ *
497
822
  * @private
823
+ *
498
824
  * @param {Highcharts.Series} series
499
- * Series which name is needed. (EDIT mode - defaultOptions.series, ADD
500
- * mode - indicator series).
501
- * @param {string} - indicator type like: sma, ema, etc.
502
- * @return {Object} - series name and type like: sma, ema, etc.
825
+ * Series which name is needed(EDITmode - defaultOptions.series,
826
+ * ADDmode - indicator series).
827
+ *
828
+ * @param {string} [IndicatorType]
829
+ * Type of the indicator i.e. sma, ema...
830
+ *
831
+ * @return Highcharts.Dictionary<string>
832
+ * Full name and series type.
503
833
  */
504
- getNameType: function (series, type) {
505
- var options = series.options, seriesTypes = H.seriesTypes,
834
+ getNameType: function (series, indicatorType) {
835
+ var options = series.options, seriesTypes = H.seriesTypes;
506
836
  // add mode
507
- seriesName = seriesTypes[type] &&
508
- seriesTypes[type].prototype.nameBase || type.toUpperCase(), seriesType = type;
837
+ var seriesName = (seriesTypes[indicatorType] &&
838
+ seriesTypes[indicatorType].prototype.nameBase) ||
839
+ indicatorType.toUpperCase(), seriesType = indicatorType;
509
840
  // edit
510
841
  if (options && options.type) {
511
842
  seriesType = series.options.type;
512
843
  seriesName = series.name;
513
844
  }
514
845
  return {
515
- name: seriesName,
516
- type: seriesType
846
+ indicatorFullName: seriesName,
847
+ indicatorType: seriesType
517
848
  };
518
849
  },
519
850
  /**
520
- * List all series with unique ID. Its mandatory for indicators to set
521
- * correct linking.
851
+ * Create the selection box for the series,
852
+ * add options and apply the default one.
853
+ *
522
854
  * @private
523
- * @param {string} type
524
- * Indicator type like: sma, ema, etc.
525
- * @param {string} optionName
526
- * Type of select i.e series or volume.
527
- * @param {Highcharts.Chart} chart
528
- * Chart
529
- * @param {Highcharts.HTMLDOMElement} parentDiv
530
- * Element where created HTML list is added
531
- * @param {string} selectedOption
532
- * optional param for default value in dropdown
855
+ *
856
+ * @param {string} indicatorType
857
+ * Type of the indicator i.e. sma, ema...
858
+ *
859
+ * @param {string} [optionName]
860
+ * Name of the option into which selection is being added.
861
+ *
862
+ * @param {Highcharts.AnnotationChart} chart
863
+ * The chart object.
864
+ *
865
+ * @param {HTMLDOMElement} [parentDiv]
866
+ * HTML parent element.
867
+ *
868
+ * @param {string|undefined} selectedOption
869
+ * Default value in dropdown.
533
870
  */
534
- listAllSeries: function (type, optionName, chart, parentDiv, selectedOption) {
535
- var selectName = PREFIX + optionName + '-type-' + type, lang = this.lang, selectBox, seriesOptions;
871
+ listAllSeries: function (indicatorType, optionName, chart, parentDiv, currentSeries, selectedOption) {
872
+ var popup = this, indicators = popup.indicators;
873
+ // Won't work without the chart.
536
874
  if (!chart) {
537
875
  return;
538
876
  }
539
- createElement(LABEL, {
540
- htmlFor: selectName
541
- }, null, parentDiv).appendChild(doc.createTextNode(lang[optionName] || optionName));
542
- // select type
543
- selectBox = createElement(SELECT, {
544
- name: selectName,
545
- className: PREFIX + 'popup-field'
546
- }, null, parentDiv);
547
- selectBox.setAttribute('id', PREFIX + 'select-' + optionName);
548
- // list all series which have id - mandatory for creating indicator
549
- chart.series.forEach(function (serie) {
550
- seriesOptions = serie.options;
551
- if (!seriesOptions.params &&
552
- seriesOptions.id &&
553
- seriesOptions.id !== PREFIX + 'navigator-series') {
554
- createElement(OPTION, {
555
- value: seriesOptions.id
556
- }, null, selectBox).appendChild(doc.createTextNode(seriesOptions.name || seriesOptions.id));
557
- }
558
- });
877
+ // Add selection boxes.
878
+ var selectBox = indicators.addSelection.call(popup, indicatorType, optionName, parentDiv);
879
+ // Add possible dropdown options.
880
+ indicators.addSelectionOptions.call(popup, chart, optionName, selectBox, void 0, void 0, void 0, currentSeries);
881
+ // Add the default dropdown value if defined.
559
882
  if (defined(selectedOption)) {
560
883
  selectBox.value = selectedOption;
561
884
  }
@@ -583,17 +906,17 @@ H.Popup.prototype = {
583
906
  // create title (indicator name in the right column)
584
907
  createElement(H3, {
585
908
  className: PREFIX + 'indicator-title'
586
- }, void 0, rhsColWrapper).appendChild(doc.createTextNode(getNameType(series, seriesType).name));
909
+ }, void 0, rhsColWrapper).appendChild(doc.createTextNode(getNameType(series, seriesType).indicatorFullName));
587
910
  // input type
588
911
  createElement(INPUT, {
589
912
  type: 'hidden',
590
913
  name: PREFIX + 'type-' + seriesType,
591
914
  value: seriesType
592
- }, null, rhsColWrapper);
915
+ }, void 0, rhsColWrapper);
593
916
  // list all series with id
594
- this.indicators.listAllSeries.call(this, seriesType, 'series', chart, rhsColWrapper, series.linkedParent && fields.volumeSeriesID);
917
+ this.indicators.listAllSeries.call(this, seriesType, 'series', chart, rhsColWrapper, series, series.linkedParent && series.linkedParent.options.id);
595
918
  if (fields.volumeSeriesID) {
596
- this.indicators.listAllSeries.call(this, seriesType, 'volume', chart, rhsColWrapper, series.linkedParent && series.linkedParent.options.id);
919
+ this.indicators.listAllSeries.call(this, seriesType, 'volume', chart, rhsColWrapper, series, series.linkedParent && fields.volumeSeriesID);
597
920
  }
598
921
  // add param fields
599
922
  this.indicators.addParamInputs.call(this, chart, 'params', fields, seriesType, rhsColWrapper);
@@ -615,23 +938,38 @@ H.Popup.prototype = {
615
938
  * Element where created HTML list is added
616
939
  */
617
940
  addParamInputs: function (chart, parentNode, fields, type, parentDiv) {
618
- var _self = this, addParamInputs = this.indicators.addParamInputs, addInput = this.addInput, parentFullName;
941
+ var popup = this, indicators = popup.indicators;
942
+ var addParamInputs = this.indicators.addParamInputs, addInput = this.addInput, parentFullName;
619
943
  if (!chart) {
620
944
  return;
621
945
  }
622
946
  objectEach(fields, function (value, fieldName) {
623
947
  // create name like params.styles.fontSize
624
948
  parentFullName = parentNode + '.' + fieldName;
625
- if (value !== void 0) { // skip if field is unnecessary, #15362
949
+ if (defined(value) && // skip if field is unnecessary, #15362
950
+ parentFullName) {
626
951
  if (isObject(value)) {
627
952
  addInput.call(// (15733) 'Periods' has an arrayed value. Label must be created here.
628
- _self, parentFullName, type, parentDiv, '');
629
- addParamInputs.call(_self, chart, parentFullName, value, type, parentDiv);
953
+ popup, parentFullName, type, parentDiv, {});
954
+ addParamInputs.call(popup, chart, parentFullName, value, type, parentDiv);
955
+ }
956
+ // If the option is listed in dropdown enum,
957
+ // add the selection box for it.
958
+ if (parentFullName in DropdownProperties) {
959
+ // Add selection boxes.
960
+ var selectBox = indicators.addSelection.call(popup, type, parentFullName, parentDiv);
961
+ // Add possible dropdown options.
962
+ indicators.addSelectionOptions.call(popup, chart, parentNode, selectBox, type, fieldName, value);
630
963
  }
631
964
  else if (
632
- // skip volume field which is created by addFormFields
633
- parentFullName !== 'params.volumeSeriesID') {
634
- addInput.call(_self, parentFullName, type, parentDiv, [value, 'text'] // all inputs are text type
965
+ // Skip volume field which is created by addFormFields.
966
+ parentFullName !== 'params.volumeSeriesID' &&
967
+ !isArray(value) // Skip params declared in array.
968
+ ) {
969
+ addInput.call(popup, parentFullName, type, parentDiv, {
970
+ value: value,
971
+ type: 'text'
972
+ } // all inputs are text type
635
973
  );
636
974
  }
637
975
  }
@@ -708,7 +1046,7 @@ H.Popup.prototype = {
708
1046
  var popupDiv = this.popup.container;
709
1047
  return createElement(DIV, {
710
1048
  className: PREFIX + 'tab-item-content ' + PREFIX + 'no-mousewheel' // #12100
711
- }, null, popupDiv);
1049
+ }, void 0, popupDiv);
712
1050
  },
713
1051
  /**
714
1052
  * Add click event to each tab
@@ -765,7 +1103,7 @@ addEvent(NavigationBindings, 'showPopup', function (config) {
765
1103
  this.popup = new H.Popup(this.chart.container, (this.chart.options.navigation.iconsURL ||
766
1104
  (this.chart.options.stockTools &&
767
1105
  this.chart.options.stockTools.gui.iconsURL) ||
768
- 'https://code.highcharts.com/9.2.0/gfx/stock-icons/'), this.chart);
1106
+ 'https://code.highcharts.com/9.3.1/gfx/stock-icons/'), this.chart);
769
1107
  }
770
1108
  this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit);
771
1109
  });