highcharts 10.0.0 → 10.2.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 (942) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +10 -20
  3. package/css/themes/dark-unica.css +10 -20
  4. package/css/themes/grid-light.css +10 -20
  5. package/css/themes/sand-signika.css +10 -20
  6. package/es-modules/Accessibility/A11yI18n.js +4 -4
  7. package/es-modules/Accessibility/Accessibility.js +8 -3
  8. package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
  11. package/es-modules/Accessibility/Components/LegendComponent.js +11 -11
  12. package/es-modules/Accessibility/Components/MenuComponent.js +3 -1
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +3 -1
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -17
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +35 -10
  17. package/es-modules/Accessibility/Components/ZoomComponent.js +30 -70
  18. package/es-modules/Accessibility/FocusBorder.js +6 -5
  19. package/es-modules/Accessibility/HighContrastMode.js +1 -1
  20. package/es-modules/Accessibility/KeyboardNavigation.js +2 -2
  21. package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +73 -5
  22. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
  23. package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
  24. package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
  25. package/es-modules/Core/Animation/Fx.js +1 -1
  26. package/es-modules/Core/Axis/Axis.js +51 -46
  27. package/es-modules/Core/Axis/Axis3D.js +1 -1
  28. package/es-modules/Core/Axis/AxisDefaults.js +9 -9
  29. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  30. package/es-modules/Core/Axis/Color/ColorAxis.js +4 -2
  31. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
  32. package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
  33. package/es-modules/Core/Axis/GridAxis.js +821 -822
  34. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  35. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  36. package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
  37. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  38. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  39. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  40. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  41. package/es-modules/Core/Axis/Tick.js +22 -18
  42. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  43. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  44. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  45. package/es-modules/Core/Axis/ZAxis.js +76 -71
  46. package/es-modules/Core/Chart/Chart.js +42 -9
  47. package/es-modules/Core/Chart/Chart3D.js +2 -2
  48. package/es-modules/Core/Chart/ChartDefaults.js +165 -5
  49. package/es-modules/Core/Chart/GanttChart.js +3 -1
  50. package/es-modules/Core/Chart/MapChart.js +3 -1
  51. package/es-modules/Core/Chart/StockChart.js +12 -8
  52. package/es-modules/Core/Color/Color.js +1 -1
  53. package/es-modules/Core/DefaultOptions.js +19 -16
  54. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  55. package/es-modules/Core/Globals.js +2 -1
  56. package/es-modules/Core/HttpUtilities.js +39 -37
  57. package/es-modules/Core/Legend/Legend.js +4 -4
  58. package/es-modules/Core/MSPointer.js +3 -1
  59. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  60. package/es-modules/Core/Navigator.js +31 -14
  61. package/es-modules/Core/Pointer.js +8 -10
  62. package/es-modules/Core/Renderer/HTML/AST.js +13 -7
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
  64. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
  65. package/es-modules/Core/Renderer/SVG/SVGElement.js +132 -192
  66. package/es-modules/Core/Renderer/SVG/SVGLabel.js +32 -28
  67. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +50 -45
  68. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +5 -3
  69. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  70. package/es-modules/Core/Scrollbar.js +12 -6
  71. package/es-modules/Core/ScrollbarDefaults.js +8 -8
  72. package/es-modules/Core/Series/DataLabel.js +63 -40
  73. package/es-modules/Core/Series/Point.js +11 -2
  74. package/es-modules/Core/Series/Series.js +60 -43
  75. package/es-modules/Core/Series/Series3D.js +4 -2
  76. package/es-modules/Core/Series/SeriesDefaults.js +11 -6
  77. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  78. package/es-modules/Core/Time.js +6 -7
  79. package/es-modules/Core/Tooltip.js +17 -6
  80. package/es-modules/Core/Utilities.js +7 -9
  81. package/es-modules/Data/DataConverter.js +6 -1
  82. package/es-modules/Data/DataPromise.js +1 -1
  83. package/es-modules/Data/DataSeriesComposition.js +288 -0
  84. package/es-modules/Data/DataSeriesConverter.js +1 -1
  85. package/es-modules/Data/DataTable.js +14 -12
  86. package/es-modules/Data/Modifiers/ChainModifier.js +4 -2
  87. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  88. package/es-modules/Data/Modifiers/GroupModifier.js +4 -2
  89. package/es-modules/Data/Modifiers/InvertModifier.js +10 -8
  90. package/es-modules/Data/Modifiers/RangeModifier.js +4 -2
  91. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +4 -2
  92. package/es-modules/Data/Modifiers/SortModifier.js +4 -2
  93. package/es-modules/Data/Parsers/CSVParser.js +3 -1
  94. package/es-modules/Data/Parsers/DataParser.js +2 -2
  95. package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
  96. package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
  97. package/es-modules/Data/Stores/CSVStore.js +8 -5
  98. package/es-modules/Data/Stores/DataStore.js +1 -1
  99. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  100. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  101. package/es-modules/Extensions/Annotations/Annotation.js +652 -0
  102. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  103. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  104. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  105. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  106. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  107. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  108. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +95 -63
  109. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  110. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  111. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  112. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  113. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  114. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  115. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -663
  116. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  117. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  118. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  119. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  120. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  121. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  122. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  123. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +23 -23
  124. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +15 -21
  125. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +14 -12
  126. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +33 -23
  127. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +67 -65
  128. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +14 -21
  129. package/es-modules/Extensions/Annotations/Types/Measure.js +259 -251
  130. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +15 -19
  131. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +24 -19
  132. package/es-modules/Extensions/Annotations/Types/Tunnel.js +17 -15
  133. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +15 -17
  134. package/es-modules/Extensions/Boost/Boost.js +320 -15
  135. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  136. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  137. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  138. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  139. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  140. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  141. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  142. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  143. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  144. package/es-modules/Extensions/BoostCanvas.js +70 -48
  145. package/es-modules/Extensions/Breadcrumbs.js +37 -9
  146. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  147. package/es-modules/Extensions/Data.js +638 -602
  148. package/es-modules/Extensions/DataGrouping.js +68 -28
  149. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  150. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  151. package/es-modules/Extensions/DownloadURL.js +3 -3
  152. package/es-modules/Extensions/DragPanes.js +1 -1
  153. package/es-modules/Extensions/DraggablePoints.js +4 -3
  154. package/es-modules/Extensions/Drilldown.js +15 -14
  155. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +358 -498
  156. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  157. package/es-modules/Extensions/Exporting/Exporting.js +30 -17
  158. package/es-modules/Extensions/Exporting/ExportingDefaults.js +10 -8
  159. package/es-modules/Extensions/Exporting/Fullscreen.js +352 -0
  160. package/es-modules/Extensions/GeoJSON.js +3 -4
  161. package/es-modules/Extensions/MarkerClusters.js +5 -3
  162. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  163. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  164. package/es-modules/Extensions/Oldie/Oldie.js +2 -2
  165. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  166. package/es-modules/Extensions/Pane.js +3 -3
  167. package/es-modules/Extensions/ParallelCoordinates.js +12 -8
  168. package/es-modules/Extensions/PatternFill.js +14 -2
  169. package/es-modules/Extensions/RangeSelector.js +29 -18
  170. package/es-modules/Extensions/ScrollablePlotArea.js +4 -4
  171. package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +264 -386
  172. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
  173. package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
  174. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  175. package/es-modules/Extensions/Sonification/Earcon.js +1 -1
  176. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  177. package/es-modules/Extensions/Themes/HighContrastLight.js +9 -9
  178. package/es-modules/Maps/MapNavigation.js +3 -7
  179. package/es-modules/Maps/MapPointer.js +1 -1
  180. package/es-modules/Maps/MapView.js +31 -19
  181. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +1 -1
  182. package/es-modules/Maps/MapViewOptionsDefault.js +3 -1
  183. package/es-modules/Maps/Projection.js +13 -11
  184. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +3 -1
  185. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +12 -2
  186. package/es-modules/Series/Area/AreaSeries.js +21 -14
  187. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  188. package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
  189. package/es-modules/Series/AreaRange/AreaRangeSeries.js +162 -149
  190. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
  191. package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
  192. package/es-modules/Series/Bar/BarSeries.js +3 -1
  193. package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
  194. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
  195. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  196. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
  197. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  198. package/es-modules/Series/Bubble/BubblePoint.js +3 -1
  199. package/es-modules/Series/Bubble/BubbleSeries.js +96 -68
  200. package/es-modules/Series/Bullet/BulletPoint.js +3 -1
  201. package/es-modules/Series/Bullet/BulletSeries.js +4 -3
  202. package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
  203. package/es-modules/Series/CenteredUtilities.js +8 -2
  204. package/es-modules/Series/ColorMapComposition.js +111 -0
  205. package/es-modules/Series/Column/ColumnSeries.js +8 -4
  206. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  207. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -2
  208. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
  209. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
  210. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  211. package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
  212. package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
  213. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +27 -12
  214. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +19 -3
  215. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
  216. package/es-modules/Series/DragNodesComposition.js +166 -0
  217. package/es-modules/Series/DrawPointUtilities.js +87 -0
  218. package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
  219. package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
  220. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
  221. package/es-modules/Series/Flags/FlagsPoint.js +4 -1
  222. package/es-modules/Series/Flags/FlagsSeries.js +13 -16
  223. package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
  224. package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
  225. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +4 -2
  226. package/es-modules/Series/Gantt/GanttPoint.js +3 -1
  227. package/es-modules/Series/Gantt/GanttSeries.js +4 -2
  228. package/es-modules/Series/Gauge/GaugePoint.js +3 -1
  229. package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
  230. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  231. package/es-modules/Series/HLC/HLCPoint.js +3 -1
  232. package/es-modules/Series/HLC/HLCSeries.js +4 -2
  233. package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
  234. package/es-modules/Series/Heatmap/HeatmapSeries.js +34 -34
  235. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  236. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
  237. package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
  238. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
  239. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
  240. package/es-modules/Series/Item/ItemPoint.js +3 -1
  241. package/es-modules/Series/Item/ItemSeries.js +3 -1
  242. package/es-modules/Series/Line/LineSeries.js +4 -2
  243. package/es-modules/Series/Lollipop/LollipopPoint.js +24 -12
  244. package/es-modules/Series/Lollipop/LollipopSeries.js +18 -11
  245. package/es-modules/Series/Map/MapPoint.js +8 -6
  246. package/es-modules/Series/Map/MapSeries.js +115 -28
  247. package/es-modules/Series/MapBubble/MapBubblePoint.js +18 -18
  248. package/es-modules/Series/MapBubble/MapBubbleSeries.js +69 -21
  249. package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
  250. package/es-modules/Series/MapPoint/MapPointPoint.js +4 -2
  251. package/es-modules/Series/MapPoint/MapPointSeries.js +14 -2
  252. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  253. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  254. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  255. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  256. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  257. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  258. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  259. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  260. package/es-modules/Series/NodesComposition.js +45 -40
  261. package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
  262. package/es-modules/Series/OHLC/OHLCSeries.js +3 -1
  263. package/es-modules/Series/Organization/OrganizationPoint.js +3 -1
  264. package/es-modules/Series/Organization/OrganizationSeries.js +14 -4
  265. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  266. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -79
  267. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -3
  268. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +200 -571
  269. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  270. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
  271. package/es-modules/Series/Pie/PieDataLabel.js +4 -2
  272. package/es-modules/Series/Pie/PiePoint.js +3 -1
  273. package/es-modules/Series/Pie/PieSeries.js +54 -38
  274. package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
  275. package/es-modules/Series/Pie3D/Pie3DSeries.js +3 -1
  276. package/es-modules/Series/PolarComposition.js +819 -0
  277. package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
  278. package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
  279. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
  280. package/es-modules/Series/Sankey/SankeyPoint.js +3 -1
  281. package/es-modules/Series/Sankey/SankeySeries.js +38 -10
  282. package/es-modules/Series/Scatter/ScatterSeries.js +14 -6
  283. package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
  284. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +4 -2
  285. package/es-modules/Series/SeriesOnPointComposition.js +395 -0
  286. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +6 -4
  287. package/es-modules/Series/Spline/SplineSeries.js +13 -4
  288. package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
  289. package/es-modules/Series/Sunburst/SunburstPoint.js +8 -9
  290. package/es-modules/Series/Sunburst/SunburstSeries.js +32 -5
  291. package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
  292. package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
  293. package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
  294. package/es-modules/Series/Timeline/TimelineSeries.js +8 -4
  295. package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
  296. package/es-modules/Series/Treemap/TreemapSeries.js +12 -10
  297. package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
  298. package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
  299. package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
  300. package/es-modules/Series/Vector/VectorSeries.js +5 -5
  301. package/es-modules/Series/Venn/VennPoint.js +5 -5
  302. package/es-modules/Series/Venn/VennSeries.js +9 -6
  303. package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
  304. package/es-modules/Series/Waterfall/WaterfallSeries.js +14 -12
  305. package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
  306. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
  307. package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
  308. package/es-modules/Series/Wordcloud/WordcloudSeries.js +12 -9
  309. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  310. package/es-modules/Series/XRange/XRangePoint.js +57 -46
  311. package/es-modules/Series/XRange/XRangeSeries.js +124 -274
  312. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  313. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +13 -3
  314. package/es-modules/Stock/Indicators/AD/ADIndicator.js +8 -1
  315. package/es-modules/Stock/Indicators/AO/AOIndicator.js +27 -14
  316. package/es-modules/Stock/Indicators/APO/APOIndicator.js +9 -2
  317. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +19 -4
  318. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +18 -3
  319. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +9 -3
  320. package/es-modules/Stock/Indicators/BB/BBIndicator.js +11 -5
  321. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +19 -4
  322. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +23 -1
  323. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +18 -2
  324. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +10 -3
  325. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +28 -1
  326. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +18 -7
  327. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +22 -9
  328. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
  329. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +13 -1
  330. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +37 -16
  331. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +28 -1
  332. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +15 -2
  333. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +14 -2
  334. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +15 -8
  335. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +14 -2
  336. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +14 -2
  337. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +47 -23
  338. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +26 -11
  339. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +33 -3
  340. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
  341. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +19 -2
  342. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +13 -1
  343. package/es-modules/Stock/Indicators/PC/PCIndicator.js +16 -9
  344. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +17 -5
  345. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +19 -4
  346. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +19 -7
  347. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +19 -13
  348. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +28 -1
  349. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +18 -3
  350. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +23 -3
  351. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +4 -2
  352. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +28 -1
  353. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -1
  354. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +23 -7
  355. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
  356. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +28 -1
  357. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +17 -5
  358. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +35 -4
  359. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +9 -7
  360. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +14 -2
  361. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +33 -3
  362. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +13 -1
  363. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +14 -2
  364. package/es-modules/Stock/StockToolbar.js +568 -0
  365. package/es-modules/Stock/StockTools.js +256 -0
  366. package/es-modules/Stock/StockToolsBindings.js +140 -647
  367. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  368. package/es-modules/Stock/StockToolsGui.js +150 -1771
  369. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  370. package/es-modules/masters/highcharts-3d.src.js +5 -4
  371. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  372. package/es-modules/masters/highcharts-more.src.js +7 -6
  373. package/es-modules/masters/highcharts.src.js +5 -2
  374. package/es-modules/masters/highmaps.src.js +1 -1
  375. package/es-modules/masters/highstock.src.js +1 -1
  376. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  377. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  378. package/es-modules/masters/indicators/ao.src.js +1 -1
  379. package/es-modules/masters/indicators/apo.src.js +1 -1
  380. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  381. package/es-modules/masters/indicators/aroon.src.js +1 -1
  382. package/es-modules/masters/indicators/atr.src.js +1 -1
  383. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  384. package/es-modules/masters/indicators/cci.src.js +1 -1
  385. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  386. package/es-modules/masters/indicators/cmf.src.js +1 -1
  387. package/es-modules/masters/indicators/cmo.src.js +1 -1
  388. package/es-modules/masters/indicators/dema.src.js +1 -1
  389. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  390. package/es-modules/masters/indicators/dmi.src.js +1 -1
  391. package/es-modules/masters/indicators/dpo.src.js +1 -1
  392. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  393. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  394. package/es-modules/masters/indicators/indicators.src.js +1 -1
  395. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  396. package/es-modules/masters/indicators/klinger.src.js +1 -1
  397. package/es-modules/masters/indicators/macd.src.js +1 -1
  398. package/es-modules/masters/indicators/mfi.src.js +1 -1
  399. package/es-modules/masters/indicators/momentum.src.js +1 -1
  400. package/es-modules/masters/indicators/natr.src.js +1 -1
  401. package/es-modules/masters/indicators/obv.src.js +1 -1
  402. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  403. package/es-modules/masters/indicators/ppo.src.js +1 -1
  404. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  405. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  406. package/es-modules/masters/indicators/psar.src.js +1 -1
  407. package/es-modules/masters/indicators/regressions.src.js +5 -5
  408. package/es-modules/masters/indicators/roc.src.js +1 -1
  409. package/es-modules/masters/indicators/rsi.src.js +1 -1
  410. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  411. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  412. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  413. package/es-modules/masters/indicators/tema.src.js +1 -1
  414. package/es-modules/masters/indicators/trendline.src.js +1 -1
  415. package/es-modules/masters/indicators/trix.src.js +1 -1
  416. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  417. package/es-modules/masters/indicators/vwap.src.js +1 -1
  418. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  419. package/es-modules/masters/indicators/wma.src.js +1 -1
  420. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  421. package/es-modules/masters/modules/accessibility.src.js +1 -1
  422. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  423. package/es-modules/masters/modules/annotations.src.js +6 -4
  424. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  425. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  426. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  427. package/es-modules/masters/modules/boost.src.js +6 -2
  428. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  429. package/es-modules/masters/modules/bullet.src.js +1 -1
  430. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  431. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  432. package/es-modules/masters/modules/cylinder.src.js +1 -1
  433. package/es-modules/masters/modules/data.src.js +2 -1
  434. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  435. package/es-modules/masters/modules/debugger.src.js +5 -3
  436. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  437. package/es-modules/masters/modules/dotplot.src.js +1 -1
  438. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  439. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  440. package/es-modules/masters/modules/drilldown.src.js +1 -1
  441. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  442. package/es-modules/masters/modules/export-data.src.js +5 -2
  443. package/es-modules/masters/modules/exporting.src.js +1 -2
  444. package/es-modules/masters/modules/full-screen.src.js +6 -2
  445. package/es-modules/masters/modules/funnel.src.js +1 -1
  446. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  447. package/es-modules/masters/modules/gantt.src.js +3 -2
  448. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  449. package/es-modules/masters/modules/heatmap.src.js +1 -1
  450. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  451. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  452. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  453. package/es-modules/masters/modules/item-series.src.js +1 -1
  454. package/es-modules/masters/modules/lollipop.src.js +1 -1
  455. package/es-modules/masters/modules/map.src.js +2 -2
  456. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  457. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  458. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  459. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  460. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  461. package/es-modules/masters/modules/oldie.src.js +1 -1
  462. package/es-modules/masters/modules/organization.src.js +1 -1
  463. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  464. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  465. package/es-modules/masters/modules/pareto.src.js +1 -1
  466. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  467. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  468. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  469. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  470. package/es-modules/masters/modules/sankey.src.js +1 -1
  471. package/es-modules/masters/modules/series-label.src.js +5 -2
  472. package/es-modules/masters/modules/series-on-point.src.js +16 -0
  473. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  474. package/es-modules/masters/modules/sonification.src.js +2 -6
  475. package/es-modules/masters/modules/static-scale.src.js +1 -1
  476. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  477. package/es-modules/masters/modules/stock.src.js +1 -1
  478. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  479. package/es-modules/masters/modules/sunburst.src.js +1 -1
  480. package/es-modules/masters/modules/tilemap.src.js +1 -1
  481. package/es-modules/masters/modules/timeline.src.js +1 -1
  482. package/es-modules/masters/modules/treegrid.src.js +2 -2
  483. package/es-modules/masters/modules/treemap.src.js +1 -1
  484. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  485. package/es-modules/masters/modules/variwide.src.js +1 -1
  486. package/es-modules/masters/modules/vector.src.js +1 -1
  487. package/es-modules/masters/modules/venn.src.js +1 -1
  488. package/es-modules/masters/modules/windbarb.src.js +1 -1
  489. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  490. package/es-modules/masters/modules/xrange.src.js +5 -2
  491. package/es-modules/masters/themes/avocado.src.js +1 -1
  492. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  493. package/es-modules/masters/themes/brand-light.src.js +1 -1
  494. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  495. package/es-modules/masters/themes/dark-green.src.js +1 -1
  496. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  497. package/es-modules/masters/themes/gray.src.js +1 -1
  498. package/es-modules/masters/themes/grid-light.src.js +1 -1
  499. package/es-modules/masters/themes/grid.src.js +1 -1
  500. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  501. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  502. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  503. package/es-modules/masters/themes/skies.src.js +1 -1
  504. package/es-modules/masters/themes/sunset.src.js +1 -1
  505. package/highcharts-3d.js +98 -99
  506. package/highcharts-3d.js.map +1 -1
  507. package/highcharts-3d.src.js +233 -212
  508. package/highcharts-gantt.js +809 -805
  509. package/highcharts-gantt.js.map +1 -1
  510. package/highcharts-gantt.src.js +3817 -3470
  511. package/highcharts-more.d.ts +15 -8
  512. package/highcharts-more.js +201 -195
  513. package/highcharts-more.js.map +1 -1
  514. package/highcharts-more.src.d.ts +15 -8
  515. package/highcharts-more.src.js +7994 -7461
  516. package/highcharts.d.ts +11364 -1136
  517. package/highcharts.js +593 -591
  518. package/highcharts.js.map +1 -1
  519. package/highcharts.src.d.ts +11364 -1136
  520. package/highcharts.src.js +1408 -1117
  521. package/highmaps.js +762 -758
  522. package/highmaps.js.map +1 -1
  523. package/highmaps.src.js +2237 -1721
  524. package/highstock.js +796 -792
  525. package/highstock.js.map +1 -1
  526. package/highstock.src.js +1617 -1224
  527. package/indicators/acceleration-bands.d.ts +1 -17
  528. package/indicators/acceleration-bands.js +11 -12
  529. package/indicators/acceleration-bands.js.map +1 -1
  530. package/indicators/acceleration-bands.src.d.ts +1 -17
  531. package/indicators/acceleration-bands.src.js +99 -101
  532. package/indicators/accumulation-distribution.js +1 -1
  533. package/indicators/accumulation-distribution.js.map +1 -1
  534. package/indicators/accumulation-distribution.src.js +6 -1
  535. package/indicators/ao.js +6 -6
  536. package/indicators/ao.js.map +1 -1
  537. package/indicators/ao.src.js +25 -16
  538. package/indicators/apo.js +1 -1
  539. package/indicators/apo.js.map +1 -1
  540. package/indicators/apo.src.js +6 -1
  541. package/indicators/aroon-oscillator.d.ts +1 -17
  542. package/indicators/aroon-oscillator.js +10 -10
  543. package/indicators/aroon-oscillator.js.map +1 -1
  544. package/indicators/aroon-oscillator.src.d.ts +1 -17
  545. package/indicators/aroon-oscillator.src.js +95 -101
  546. package/indicators/aroon.d.ts +1 -17
  547. package/indicators/aroon.js +11 -11
  548. package/indicators/aroon.js.map +1 -1
  549. package/indicators/aroon.src.d.ts +1 -17
  550. package/indicators/aroon.src.js +104 -101
  551. package/indicators/atr.js +1 -1
  552. package/indicators/atr.js.map +1 -1
  553. package/indicators/atr.src.js +17 -4
  554. package/indicators/bollinger-bands.d.ts +1 -17
  555. package/indicators/bollinger-bands.js +11 -12
  556. package/indicators/bollinger-bands.js.map +1 -1
  557. package/indicators/bollinger-bands.src.d.ts +1 -17
  558. package/indicators/bollinger-bands.src.js +97 -103
  559. package/indicators/cci.js +1 -1
  560. package/indicators/cci.js.map +1 -1
  561. package/indicators/cci.src.js +17 -4
  562. package/indicators/chaikin.js +8 -8
  563. package/indicators/chaikin.js.map +1 -1
  564. package/indicators/chaikin.src.js +13 -5
  565. package/indicators/cmf.js +1 -1
  566. package/indicators/cmf.js.map +1 -1
  567. package/indicators/cmf.src.js +21 -1
  568. package/indicators/cmo.js +1 -1
  569. package/indicators/cmo.js.map +1 -1
  570. package/indicators/cmo.src.js +16 -2
  571. package/indicators/dema.js +1 -1
  572. package/indicators/dema.js.map +1 -1
  573. package/indicators/dema.src.js +26 -1
  574. package/indicators/disparity-index.js +1 -1
  575. package/indicators/disparity-index.src.js +1 -1
  576. package/indicators/dmi.js +12 -12
  577. package/indicators/dmi.js.map +1 -1
  578. package/indicators/dmi.src.js +104 -105
  579. package/indicators/dpo.js +1 -1
  580. package/indicators/dpo.js.map +1 -1
  581. package/indicators/dpo.src.js +20 -9
  582. package/indicators/ichimoku-kinko-hyo.js +1 -1
  583. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  584. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  585. package/indicators/indicators-all.d.ts +1 -17
  586. package/indicators/indicators-all.js +200 -199
  587. package/indicators/indicators-all.js.map +1 -1
  588. package/indicators/indicators-all.src.d.ts +1 -17
  589. package/indicators/indicators-all.src.js +882 -284
  590. package/indicators/indicators.js +1 -1
  591. package/indicators/indicators.js.map +1 -1
  592. package/indicators/indicators.src.js +12 -2
  593. package/indicators/keltner-channels.d.ts +1 -17
  594. package/indicators/keltner-channels.js +11 -12
  595. package/indicators/keltner-channels.js.map +1 -1
  596. package/indicators/keltner-channels.src.d.ts +1 -17
  597. package/indicators/keltner-channels.src.js +114 -99
  598. package/indicators/klinger.js +14 -14
  599. package/indicators/klinger.js.map +1 -1
  600. package/indicators/klinger.src.js +101 -102
  601. package/indicators/macd.js +10 -9
  602. package/indicators/macd.js.map +1 -1
  603. package/indicators/macd.src.js +46 -25
  604. package/indicators/mfi.js +1 -1
  605. package/indicators/mfi.js.map +1 -1
  606. package/indicators/mfi.src.js +24 -11
  607. package/indicators/momentum.js +1 -1
  608. package/indicators/momentum.js.map +1 -1
  609. package/indicators/momentum.src.js +31 -3
  610. package/indicators/natr.js +1 -1
  611. package/indicators/natr.js.map +1 -1
  612. package/indicators/natr.src.js +17 -3
  613. package/indicators/obv.js +1 -1
  614. package/indicators/obv.js.map +1 -1
  615. package/indicators/obv.src.js +11 -1
  616. package/indicators/pivot-points.js +1 -1
  617. package/indicators/pivot-points.js.map +1 -1
  618. package/indicators/pivot-points.src.js +32 -19
  619. package/indicators/ppo.js +1 -1
  620. package/indicators/ppo.js.map +1 -1
  621. package/indicators/ppo.src.js +15 -5
  622. package/indicators/price-channel.d.ts +1 -17
  623. package/indicators/price-channel.js +11 -11
  624. package/indicators/price-channel.js.map +1 -1
  625. package/indicators/price-channel.src.d.ts +1 -17
  626. package/indicators/price-channel.src.js +102 -107
  627. package/indicators/price-envelopes.js +1 -1
  628. package/indicators/price-envelopes.js.map +1 -1
  629. package/indicators/price-envelopes.src.js +26 -1
  630. package/indicators/psar.js +1 -1
  631. package/indicators/psar.js.map +1 -1
  632. package/indicators/psar.src.js +17 -4
  633. package/indicators/regressions.js +12 -11
  634. package/indicators/regressions.js.map +1 -1
  635. package/indicators/regressions.src.js +50 -15
  636. package/indicators/roc.js +1 -1
  637. package/indicators/roc.js.map +1 -1
  638. package/indicators/roc.src.js +16 -3
  639. package/indicators/rsi.js +1 -1
  640. package/indicators/rsi.js.map +1 -1
  641. package/indicators/rsi.src.js +21 -3
  642. package/indicators/slow-stochastic.js +1 -1
  643. package/indicators/slow-stochastic.js.map +1 -1
  644. package/indicators/slow-stochastic.src.js +26 -1
  645. package/indicators/stochastic.d.ts +1 -17
  646. package/indicators/stochastic.js +12 -12
  647. package/indicators/stochastic.js.map +1 -1
  648. package/indicators/stochastic.src.d.ts +1 -17
  649. package/indicators/stochastic.src.js +104 -99
  650. package/indicators/supertrend.js +7 -7
  651. package/indicators/supertrend.js.map +1 -1
  652. package/indicators/supertrend.src.js +21 -9
  653. package/indicators/tema.js +1 -1
  654. package/indicators/tema.src.js +1 -1
  655. package/indicators/trendline.js +1 -1
  656. package/indicators/trendline.js.map +1 -1
  657. package/indicators/trendline.src.js +15 -5
  658. package/indicators/trix.js +1 -1
  659. package/indicators/trix.js.map +1 -1
  660. package/indicators/trix.src.js +26 -1
  661. package/indicators/volume-by-price.js +17 -17
  662. package/indicators/volume-by-price.js.map +1 -1
  663. package/indicators/volume-by-price.src.js +38 -10
  664. package/indicators/vwap.js +1 -1
  665. package/indicators/vwap.js.map +1 -1
  666. package/indicators/vwap.src.js +12 -2
  667. package/indicators/williams-r.js +1 -1
  668. package/indicators/williams-r.js.map +1 -1
  669. package/indicators/williams-r.src.js +11 -1
  670. package/indicators/wma.js +1 -1
  671. package/indicators/wma.js.map +1 -1
  672. package/indicators/wma.src.js +31 -3
  673. package/indicators/zigzag.js +1 -1
  674. package/indicators/zigzag.js.map +1 -1
  675. package/indicators/zigzag.src.js +12 -2
  676. package/modules/accessibility.js +246 -242
  677. package/modules/accessibility.js.map +1 -1
  678. package/modules/accessibility.src.js +797 -664
  679. package/modules/annotations-advanced.d.ts +1 -1
  680. package/modules/annotations-advanced.js +193 -192
  681. package/modules/annotations-advanced.js.map +1 -1
  682. package/modules/annotations-advanced.src.d.ts +1 -1
  683. package/modules/annotations-advanced.src.js +9229 -8589
  684. package/modules/annotations.d.ts +1 -1
  685. package/modules/annotations.js +128 -126
  686. package/modules/annotations.js.map +1 -1
  687. package/modules/annotations.src.d.ts +1 -1
  688. package/modules/annotations.src.js +6190 -5528
  689. package/modules/arc-diagram.js +7 -7
  690. package/modules/arc-diagram.js.map +1 -1
  691. package/modules/arc-diagram.src.js +10 -2
  692. package/modules/arrow-symbols.js +1 -1
  693. package/modules/arrow-symbols.src.js +1 -1
  694. package/modules/boost-canvas.d.ts +19 -0
  695. package/modules/boost-canvas.js +81 -15
  696. package/modules/boost-canvas.js.map +1 -1
  697. package/modules/boost-canvas.src.d.ts +19 -0
  698. package/modules/boost-canvas.src.js +3342 -52
  699. package/modules/boost.d.ts +8 -26
  700. package/modules/boost.js +88 -80
  701. package/modules/boost.js.map +1 -1
  702. package/modules/boost.src.d.ts +8 -26
  703. package/modules/boost.src.js +2435 -1889
  704. package/modules/broken-axis.js +2 -2
  705. package/modules/broken-axis.js.map +1 -1
  706. package/modules/broken-axis.src.js +2 -2
  707. package/modules/bullet.js +1 -1
  708. package/modules/bullet.js.map +1 -1
  709. package/modules/bullet.src.js +2 -5
  710. package/modules/coloraxis.js +2 -2
  711. package/modules/coloraxis.js.map +1 -1
  712. package/modules/coloraxis.src.js +9 -5
  713. package/modules/current-date-indicator.js +1 -1
  714. package/modules/current-date-indicator.src.js +2 -2
  715. package/modules/cylinder.js +9 -9
  716. package/modules/cylinder.js.map +1 -1
  717. package/modules/cylinder.src.js +2 -2
  718. package/modules/data.d.ts +12 -12
  719. package/modules/data.js +33 -34
  720. package/modules/data.js.map +1 -1
  721. package/modules/data.src.d.ts +12 -12
  722. package/modules/data.src.js +862 -829
  723. package/modules/datagrouping.d.ts +22 -0
  724. package/modules/datagrouping.js +9 -9
  725. package/modules/datagrouping.js.map +1 -1
  726. package/modules/datagrouping.src.d.ts +22 -0
  727. package/modules/datagrouping.src.js +69 -29
  728. package/modules/debugger.js +8 -6
  729. package/modules/debugger.js.map +1 -1
  730. package/modules/debugger.src.js +85 -40
  731. package/modules/dependency-wheel.js +12 -12
  732. package/modules/dependency-wheel.js.map +1 -1
  733. package/modules/dependency-wheel.src.js +41 -14
  734. package/modules/dotplot.js +1 -1
  735. package/modules/dotplot.src.js +1 -1
  736. package/modules/drag-panes.js +1 -1
  737. package/modules/drag-panes.src.js +2 -2
  738. package/modules/draggable-points.js +5 -5
  739. package/modules/draggable-points.js.map +1 -1
  740. package/modules/draggable-points.src.js +5 -4
  741. package/modules/drilldown.d.ts +0 -10
  742. package/modules/drilldown.js +37 -37
  743. package/modules/drilldown.js.map +1 -1
  744. package/modules/drilldown.src.d.ts +0 -10
  745. package/modules/drilldown.src.js +59 -25
  746. package/modules/dumbbell.d.ts +4 -0
  747. package/modules/dumbbell.js +17 -17
  748. package/modules/dumbbell.js.map +1 -1
  749. package/modules/dumbbell.src.d.ts +4 -0
  750. package/modules/dumbbell.src.js +24 -12
  751. package/modules/export-data.js +25 -22
  752. package/modules/export-data.js.map +1 -1
  753. package/modules/export-data.src.js +641 -469
  754. package/modules/exporting.d.ts +8 -8
  755. package/modules/exporting.js +39 -39
  756. package/modules/exporting.js.map +1 -1
  757. package/modules/exporting.src.d.ts +8 -8
  758. package/modules/exporting.src.js +442 -319
  759. package/modules/full-screen.js +8 -8
  760. package/modules/full-screen.js.map +1 -1
  761. package/modules/full-screen.src.js +196 -78
  762. package/modules/funnel.js +1 -1
  763. package/modules/funnel.src.js +3 -3
  764. package/modules/funnel3d.js +2 -2
  765. package/modules/funnel3d.js.map +1 -1
  766. package/modules/funnel3d.src.js +2 -2
  767. package/modules/gantt.js +219 -217
  768. package/modules/gantt.js.map +1 -1
  769. package/modules/gantt.src.js +2420 -2364
  770. package/modules/grid-axis.js +23 -23
  771. package/modules/grid-axis.js.map +1 -1
  772. package/modules/grid-axis.src.js +890 -891
  773. package/modules/heatmap.js +40 -40
  774. package/modules/heatmap.js.map +1 -1
  775. package/modules/heatmap.src.js +137 -108
  776. package/modules/heikinashi.js +1 -1
  777. package/modules/heikinashi.src.js +1 -1
  778. package/modules/histogram-bellcurve.js +1 -1
  779. package/modules/histogram-bellcurve.src.js +1 -1
  780. package/modules/hollowcandlestick.js +1 -1
  781. package/modules/hollowcandlestick.src.js +9 -9
  782. package/modules/item-series.js +1 -1
  783. package/modules/item-series.src.js +1 -1
  784. package/modules/lollipop.js +6 -6
  785. package/modules/lollipop.js.map +1 -1
  786. package/modules/lollipop.src.js +37 -22
  787. package/modules/map.d.ts +3 -3
  788. package/modules/map.js +171 -169
  789. package/modules/map.js.map +1 -1
  790. package/modules/map.src.d.ts +3 -3
  791. package/modules/map.src.js +830 -605
  792. package/modules/marker-clusters.js +1 -1
  793. package/modules/marker-clusters.js.map +1 -1
  794. package/modules/marker-clusters.src.js +4 -6
  795. package/modules/networkgraph.d.ts +1 -17
  796. package/modules/networkgraph.js +55 -50
  797. package/modules/networkgraph.js.map +1 -1
  798. package/modules/networkgraph.src.d.ts +1 -17
  799. package/modules/networkgraph.src.js +2339 -2008
  800. package/modules/no-data-to-display.js +1 -1
  801. package/modules/no-data-to-display.src.js +2 -2
  802. package/modules/offline-exporting.js +3 -3
  803. package/modules/offline-exporting.js.map +1 -1
  804. package/modules/offline-exporting.src.js +5 -5
  805. package/modules/oldie-polyfills.js +1 -1
  806. package/modules/oldie-polyfills.src.js +1 -1
  807. package/modules/oldie.js +2 -2
  808. package/modules/oldie.src.js +3 -3
  809. package/modules/organization.js +15 -15
  810. package/modules/organization.js.map +1 -1
  811. package/modules/organization.src.js +12 -4
  812. package/modules/overlapping-datalabels.js +1 -1
  813. package/modules/overlapping-datalabels.src.js +1 -1
  814. package/modules/parallel-coordinates.js +11 -11
  815. package/modules/parallel-coordinates.js.map +1 -1
  816. package/modules/parallel-coordinates.src.js +14 -9
  817. package/modules/pareto.js +1 -1
  818. package/modules/pareto.src.js +1 -1
  819. package/modules/pathfinder.js +1 -1
  820. package/modules/pathfinder.src.js +1 -1
  821. package/modules/pattern-fill.js +15 -14
  822. package/modules/pattern-fill.js.map +1 -1
  823. package/modules/pattern-fill.src.js +15 -2
  824. package/modules/price-indicator.js +1 -1
  825. package/modules/price-indicator.src.js +1 -1
  826. package/modules/pyramid3d.js +1 -1
  827. package/modules/pyramid3d.src.js +1 -1
  828. package/modules/sankey.d.ts +1 -17
  829. package/modules/sankey.js +32 -32
  830. package/modules/sankey.js.map +1 -1
  831. package/modules/sankey.src.d.ts +1 -17
  832. package/modules/sankey.src.js +102 -57
  833. package/modules/series-label.js +18 -18
  834. package/modules/series-label.js.map +1 -1
  835. package/modules/series-label.src.js +474 -387
  836. package/modules/series-on-point.js +18 -0
  837. package/modules/series-on-point.js.map +1 -0
  838. package/modules/series-on-point.src.js +468 -0
  839. package/modules/solid-gauge.js +4 -4
  840. package/modules/solid-gauge.js.map +1 -1
  841. package/modules/solid-gauge.src.js +6 -6
  842. package/modules/sonification.d.ts +2 -2
  843. package/modules/sonification.js +1 -1
  844. package/modules/sonification.js.map +1 -1
  845. package/modules/sonification.src.d.ts +2 -2
  846. package/modules/sonification.src.js +4 -8
  847. package/modules/static-scale.js +1 -1
  848. package/modules/static-scale.src.js +1 -1
  849. package/modules/stock-tools.d.ts +1 -23
  850. package/modules/stock-tools.js +109 -179
  851. package/modules/stock-tools.js.map +1 -1
  852. package/modules/stock-tools.src.d.ts +1 -23
  853. package/modules/stock-tools.src.js +2652 -6347
  854. package/modules/stock.d.ts +8 -0
  855. package/modules/stock.js +205 -204
  856. package/modules/stock.js.map +1 -1
  857. package/modules/stock.src.d.ts +8 -0
  858. package/modules/stock.src.js +208 -106
  859. package/modules/streamgraph.js +1 -1
  860. package/modules/streamgraph.src.js +1 -1
  861. package/modules/sunburst.js +73 -73
  862. package/modules/sunburst.js.map +1 -1
  863. package/modules/sunburst.src.js +251 -193
  864. package/modules/tilemap.js +1 -1
  865. package/modules/tilemap.src.js +1 -1
  866. package/modules/timeline.js +1 -1
  867. package/modules/timeline.js.map +1 -1
  868. package/modules/timeline.src.js +6 -4
  869. package/modules/treegrid.js +57 -57
  870. package/modules/treegrid.js.map +1 -1
  871. package/modules/treegrid.src.js +1908 -1901
  872. package/modules/treemap.js +54 -53
  873. package/modules/treemap.js.map +1 -1
  874. package/modules/treemap.src.js +217 -183
  875. package/modules/variable-pie.js +1 -1
  876. package/modules/variable-pie.src.js +1 -1
  877. package/modules/variwide.js +1 -1
  878. package/modules/variwide.src.js +1 -1
  879. package/modules/vector.js +2 -2
  880. package/modules/vector.js.map +1 -1
  881. package/modules/vector.src.js +3 -5
  882. package/modules/venn.js +31 -31
  883. package/modules/venn.js.map +1 -1
  884. package/modules/venn.src.js +82 -111
  885. package/modules/windbarb.js +1 -1
  886. package/modules/windbarb.src.js +1 -1
  887. package/modules/wordcloud.js +23 -23
  888. package/modules/wordcloud.js.map +1 -1
  889. package/modules/wordcloud.src.js +84 -113
  890. package/modules/xrange.js +17 -17
  891. package/modules/xrange.js.map +1 -1
  892. package/modules/xrange.src.js +411 -397
  893. package/package.json +1 -1
  894. package/themes/avocado.js +1 -1
  895. package/themes/avocado.src.js +1 -1
  896. package/themes/brand-dark.js +1 -1
  897. package/themes/brand-dark.src.js +1 -1
  898. package/themes/brand-light.js +1 -1
  899. package/themes/brand-light.src.js +1 -1
  900. package/themes/dark-blue.js +1 -1
  901. package/themes/dark-blue.src.js +1 -1
  902. package/themes/dark-green.js +1 -1
  903. package/themes/dark-green.src.js +1 -1
  904. package/themes/dark-unica.js +1 -1
  905. package/themes/dark-unica.src.js +1 -1
  906. package/themes/gray.js +1 -1
  907. package/themes/gray.src.js +1 -1
  908. package/themes/grid-light.js +1 -1
  909. package/themes/grid-light.src.js +1 -1
  910. package/themes/grid.js +1 -1
  911. package/themes/grid.src.js +1 -1
  912. package/themes/high-contrast-dark.js +2 -2
  913. package/themes/high-contrast-dark.src.js +11 -11
  914. package/themes/high-contrast-light.js +2 -2
  915. package/themes/high-contrast-light.src.js +10 -10
  916. package/themes/sand-signika.js +1 -1
  917. package/themes/sand-signika.src.js +1 -1
  918. package/themes/skies.js +1 -1
  919. package/themes/skies.src.js +1 -1
  920. package/themes/sunset.js +1 -1
  921. package/themes/sunset.src.js +1 -1
  922. package/es-modules/Core/Axis/StackingAxis.js +0 -216
  923. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  924. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  925. package/es-modules/Extensions/Annotations/Annotations.js +0 -1449
  926. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  927. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  928. package/es-modules/Extensions/Boost/BoostAttach.js +0 -150
  929. package/es-modules/Extensions/Boost/BoostInit.js +0 -323
  930. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  931. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  932. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  933. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  934. package/es-modules/Extensions/FullScreen.js +0 -240
  935. package/es-modules/Extensions/Polar.js +0 -740
  936. package/es-modules/Extensions/Stacking.js +0 -517
  937. package/es-modules/Series/ColorMapMixin.js +0 -84
  938. package/es-modules/Series/DrawPointComposition.js +0 -114
  939. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  940. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  941. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1178
  942. package/es-modules/Series/XRange/XRangeComposition.js +0 -49
@@ -1,1123 +0,0 @@
1
- /* *
2
- *
3
- * Popup generator for Stock tools
4
- *
5
- * (c) 2009-2021 Sebastian Bochan
6
- *
7
- * License: www.highcharts.com/license
8
- *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
- *
11
- * */
12
- import AST from '../../Core/Renderer/HTML/AST.js';
13
- import H from '../../Core/Globals.js';
14
- var doc = H.doc, isFirefox = H.isFirefox;
15
- import NavigationBindings from './NavigationBindings.js';
16
- import D from '../../Core/DefaultOptions.js';
17
- var getOptions = D.getOptions;
18
- import Pointer from '../../Core/Pointer.js';
19
- import U from '../../Core/Utilities.js';
20
- 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;
21
- 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';
22
- /**
23
- * Enum for properties which should have dropdown list.
24
- * @private
25
- */
26
- var DropdownProperties;
27
- (function (DropdownProperties) {
28
- DropdownProperties[DropdownProperties["params.algorithm"] = 0] = "params.algorithm";
29
- DropdownProperties[DropdownProperties["params.average"] = 1] = "params.average";
30
- })(DropdownProperties || (DropdownProperties = {}));
31
- /**
32
- * List of available algorithms for the specific indicator.
33
- * @private
34
- */
35
- var dropdownParameters = {
36
- 'algorithm-pivotpoints': ['standard', 'fibonacci', 'camarilla'],
37
- 'average-disparityindex': ['sma', 'ema', 'dema', 'tema', 'wma']
38
- };
39
- /* eslint-disable no-invalid-this, valid-jsdoc */
40
- // onContainerMouseDown blocks internal popup events, due to e.preventDefault.
41
- // Related issue #4606
42
- wrap(Pointer.prototype, 'onContainerMouseDown', function (proceed, e) {
43
- // elements is not in popup
44
- if (!this.inClass(e.target, PREFIX + 'popup')) {
45
- proceed.apply(this, Array.prototype.slice.call(arguments, 1));
46
- }
47
- });
48
- H.Popup = function (parentDiv, iconsURL, chart) {
49
- this.init(parentDiv, iconsURL, chart);
50
- };
51
- H.Popup.prototype = {
52
- /**
53
- * Initialize the popup. Create base div and add close button.
54
- * @private
55
- * @param {Highcharts.HTMLDOMElement} parentDiv
56
- * Container where popup should be placed
57
- * @param {string} iconsURL
58
- * Icon URL
59
- */
60
- init: function (parentDiv, iconsURL, chart) {
61
- this.chart = chart;
62
- // create popup div
63
- this.container = createElement(DIV, {
64
- className: PREFIX + 'popup highcharts-no-tooltip'
65
- }, void 0, parentDiv);
66
- addEvent(this.container, 'mousedown', function () {
67
- var activeAnnotation = chart &&
68
- chart.navigationBindings &&
69
- chart.navigationBindings.activeAnnotation;
70
- if (activeAnnotation) {
71
- activeAnnotation.cancelClick = true;
72
- var unbind_1 = addEvent(H.doc, 'click', function () {
73
- setTimeout(function () {
74
- activeAnnotation.cancelClick = false;
75
- }, 0);
76
- unbind_1();
77
- });
78
- }
79
- });
80
- this.lang = this.getLangpack();
81
- this.iconsURL = iconsURL;
82
- // add close button
83
- this.addCloseBtn();
84
- },
85
- /**
86
- * Create HTML element and attach click event (close popup).
87
- * @private
88
- */
89
- addCloseBtn: function () {
90
- var _self = this, closeBtn;
91
- var iconsURL = this.iconsURL;
92
- // create close popup btn
93
- closeBtn = createElement(DIV, {
94
- className: PREFIX + 'popup-close'
95
- }, void 0, this.container);
96
- closeBtn.style['background-image'] = 'url(' +
97
- (iconsURL.match(/png|svg|jpeg|jpg|gif/ig) ?
98
- iconsURL : iconsURL + 'close.svg') + ')';
99
- ['click', 'touchstart'].forEach(function (eventName) {
100
- addEvent(closeBtn, eventName, function () {
101
- if (_self.chart) {
102
- fireEvent(_self.chart.navigationBindings, 'closePopup');
103
- }
104
- else {
105
- _self.closePopup();
106
- }
107
- });
108
- });
109
- },
110
- /**
111
- * Create two columns (divs) in HTML.
112
- * @private
113
- * @param {Highcharts.HTMLDOMElement} container
114
- * Container of columns
115
- * @return {Highcharts.Dictionary<Highcharts.HTMLDOMElement>}
116
- * Reference to two HTML columns (lhsCol, rhsCol)
117
- */
118
- addColsContainer: function (container) {
119
- var rhsCol, lhsCol;
120
- // left column
121
- lhsCol = createElement(DIV, {
122
- className: PREFIX + 'popup-lhs-col'
123
- }, void 0, container);
124
- // right column
125
- rhsCol = createElement(DIV, {
126
- className: PREFIX + 'popup-rhs-col'
127
- }, void 0, container);
128
- // wrapper content
129
- createElement(DIV, {
130
- className: PREFIX + 'popup-rhs-col-wrapper'
131
- }, void 0, rhsCol);
132
- return {
133
- lhsCol: lhsCol,
134
- rhsCol: rhsCol
135
- };
136
- },
137
- /**
138
- * Create input with label.
139
- *
140
- * @private
141
- *
142
- * @param {string} option
143
- * Chain of fields i.e params.styles.fontSize separeted by the dot.
144
- *
145
- * @param {string} indicatorType
146
- * Type of the indicator i.e. sma, ema...
147
- *
148
- * @param {HTMLDOMElement} parentDiv
149
- * HTML parent element.
150
- *
151
- * @param {Highcharts.InputAttributes} inputAttributes
152
- * Attributes of the input.
153
- *
154
- * @return {HTMLInputElement}
155
- * Return created input element.
156
- */
157
- addInput: function (option, indicatorType, parentDiv, inputAttributes) {
158
- var optionParamList = option.split('.'), optionName = optionParamList[optionParamList.length - 1], lang = this.lang, inputName = PREFIX + indicatorType + '-' + pick(inputAttributes.htmlFor, optionName);
159
- var input;
160
- if (!inputName.match(indexFilter)) {
161
- // add label
162
- createElement(LABEL, {
163
- htmlFor: inputName,
164
- className: inputAttributes.labelClassName
165
- }, void 0, parentDiv).appendChild(doc.createTextNode(lang[optionName] || optionName));
166
- }
167
- // add input
168
- input = createElement(INPUT, {
169
- name: inputName,
170
- value: inputAttributes.value,
171
- type: inputAttributes.type,
172
- className: PREFIX + 'popup-field'
173
- }, void 0, parentDiv);
174
- input.setAttribute(PREFIX + 'data-name', option);
175
- return input;
176
- },
177
- /**
178
- * Create button.
179
- * @private
180
- * @param {Highcharts.HTMLDOMElement} parentDiv
181
- * Container where elements should be added
182
- * @param {string} label
183
- * Text placed as button label
184
- * @param {string} type
185
- * add | edit | remove
186
- * @param {Function} callback
187
- * On click callback
188
- * @param {Highcharts.HTMLDOMElement} fieldsDiv
189
- * Container where inputs are generated
190
- * @return {Highcharts.HTMLDOMElement}
191
- * HTML button
192
- */
193
- addButton: function (parentDiv, label, type, fieldsDiv, callback) {
194
- var _self = this, closePopup = this.closePopup, getFields = this.getFields, button;
195
- button = createElement(BUTTON, void 0, void 0, parentDiv);
196
- button.appendChild(doc.createTextNode(label));
197
- if (callback) {
198
- ['click', 'touchstart'].forEach(function (eventName) {
199
- addEvent(button, eventName, function () {
200
- closePopup.call(_self);
201
- return callback(getFields(fieldsDiv, type));
202
- });
203
- });
204
- }
205
- return button;
206
- },
207
- /**
208
- * Get values from all inputs and selections then create JSON.
209
- *
210
- * @private
211
- *
212
- * @param {Highcharts.HTMLDOMElement} parentDiv
213
- * The container where inputs and selections are created.
214
- *
215
- * @param {string} type
216
- * Type of the popup bookmark (add|edit|remove).
217
- */
218
- getFields: function (parentDiv, type) {
219
- 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];
220
- var fieldsOutput;
221
- fieldsOutput = {
222
- actionType: type,
223
- linkedTo: linkedTo && linkedTo.getAttribute('value') || '',
224
- fields: {}
225
- };
226
- inputList.forEach(function (input) {
227
- var param = input.getAttribute(PREFIX + 'data-name'), seriesId = input.getAttribute(PREFIX + 'data-series-id');
228
- // params
229
- if (seriesId) {
230
- fieldsOutput.seriesId = input.value;
231
- }
232
- else if (param) {
233
- fieldsOutput.fields[param] = input.value;
234
- }
235
- else {
236
- // type like sma / ema
237
- fieldsOutput.type = input.value;
238
- }
239
- });
240
- selectList.forEach(function (select) {
241
- var id = select.id;
242
- // Get inputs only for the parameters, not for series and volume.
243
- if (id !== PREFIX + 'select-series' &&
244
- id !== PREFIX + 'select-volume') {
245
- var parameter = id.split('highcharts-select-')[1];
246
- fieldsOutput.fields[parameter] = select.value;
247
- }
248
- });
249
- if (volumeTo) {
250
- fieldsOutput.fields['params.volumeSeriesID'] = volumeTo
251
- .getAttribute('value') || '';
252
- }
253
- return fieldsOutput;
254
- },
255
- /**
256
- * Reset content of the current popup and show.
257
- * @private
258
- */
259
- showPopup: function () {
260
- var popupDiv = this.container, toolbarClass = PREFIX + 'annotation-toolbar', popupCloseBtn = popupDiv
261
- .querySelectorAll('.' + PREFIX + 'popup-close')[0];
262
- this.formType = void 0;
263
- // reset content
264
- popupDiv.innerHTML = AST.emptyHTML;
265
- // reset toolbar styles if exists
266
- if (popupDiv.className.indexOf(toolbarClass) >= 0) {
267
- popupDiv.classList.remove(toolbarClass);
268
- // reset toolbar inline styles
269
- popupDiv.removeAttribute('style');
270
- }
271
- // add close button
272
- popupDiv.appendChild(popupCloseBtn);
273
- popupDiv.style.display = 'block';
274
- popupDiv.style.height = '';
275
- },
276
- /**
277
- * Hide popup.
278
- * @private
279
- */
280
- closePopup: function () {
281
- var container = pick(this.popup && this.popup.container, this.container);
282
- container.style.display = 'none';
283
- },
284
- /**
285
- * Create content and show popup.
286
- * @private
287
- * @param {string} - type of popup i.e indicators
288
- * @param {Highcharts.Chart} - chart
289
- * @param {Highcharts.AnnotationsOptions} - options
290
- * @param {Function} - on click callback
291
- */
292
- showForm: function (type, chart, options, callback) {
293
- if (!chart) {
294
- return;
295
- }
296
- this.popup = chart.navigationBindings.popup;
297
- // show blank popup
298
- this.showPopup();
299
- // indicator form
300
- if (type === 'indicators') {
301
- this.indicators.addForm.call(this, chart, options, callback);
302
- }
303
- // annotation small toolbar
304
- if (type === 'annotation-toolbar') {
305
- this.annotations.addToolbar.call(this, chart, options, callback);
306
- }
307
- // annotation edit form
308
- if (type === 'annotation-edit') {
309
- this.annotations.addForm.call(this, chart, options, callback);
310
- }
311
- // flags form - add / edit
312
- if (type === 'flag') {
313
- this.annotations.addForm.call(this, chart, options, callback, true);
314
- }
315
- this.formType = type;
316
- // Explicit height is needed to make inner elements scrollable
317
- this.container.style.height = this.container.offsetHeight + 'px';
318
- },
319
- /**
320
- * Return lang definitions for popup.
321
- * @private
322
- * @return {Highcharts.Dictionary<string>} - elements translations.
323
- */
324
- getLangpack: function () {
325
- return getOptions().lang.navigation.popup;
326
- },
327
- annotations: {
328
- /**
329
- * Create annotation simple form. It contains two buttons
330
- * (edit / remove) and text label.
331
- * @private
332
- * @param {Highcharts.Chart} - chart
333
- * @param {Highcharts.AnnotationsOptions} - options
334
- * @param {Function} - on click callback
335
- */
336
- addToolbar: function (chart, options, callback) {
337
- var _self = this, lang = this.lang, popupDiv = this.popup.container, showForm = this.showForm, toolbarClass = PREFIX + 'annotation-toolbar', button;
338
- // set small size
339
- if (popupDiv.className.indexOf(toolbarClass) === -1) {
340
- popupDiv.className += ' ' + toolbarClass;
341
- }
342
- // set position
343
- if (chart) {
344
- popupDiv.style.top = chart.plotTop + 10 + 'px';
345
- }
346
- // create label
347
- createElement(SPAN, void 0, void 0, popupDiv).appendChild(doc.createTextNode(pick(
348
- // Advanced annotations:
349
- lang[options.langKey] || options.langKey,
350
- // Basic shapes:
351
- options.shapes && options.shapes[0].type)));
352
- // add buttons
353
- button = this.addButton(popupDiv, lang.removeButton || 'remove', 'remove', popupDiv, callback);
354
- button.className += ' ' + PREFIX + 'annotation-remove-button';
355
- button.style['background-image'] = 'url(' +
356
- this.iconsURL + 'destroy.svg)';
357
- button = this.addButton(popupDiv, lang.editButton || 'edit', 'edit', popupDiv, function () {
358
- showForm.call(_self, 'annotation-edit', chart, options, callback);
359
- });
360
- button.className += ' ' + PREFIX + 'annotation-edit-button';
361
- button.style['background-image'] = 'url(' +
362
- this.iconsURL + 'edit.svg)';
363
- },
364
- /**
365
- * Create annotation simple form.
366
- * It contains fields with param names.
367
- * @private
368
- * @param {Highcharts.Chart} chart
369
- * Chart
370
- * @param {Object} options
371
- * Options
372
- * @param {Function} callback
373
- * On click callback
374
- * @param {boolean} [isInit]
375
- * If it is a form declared for init annotation
376
- */
377
- addForm: function (chart, options, callback, isInit) {
378
- var popupDiv = this.popup.container, lang = this.lang, bottomRow, lhsCol;
379
- if (!chart) {
380
- return;
381
- }
382
- // create title of annotations
383
- lhsCol = createElement('h2', {
384
- className: PREFIX + 'popup-main-title'
385
- }, void 0, popupDiv);
386
- lhsCol.appendChild(doc.createTextNode(lang[options.langKey] || options.langKey || ''));
387
- // left column
388
- lhsCol = createElement(DIV, {
389
- className: (PREFIX + 'popup-lhs-col ' + PREFIX + 'popup-lhs-full')
390
- }, void 0, popupDiv);
391
- bottomRow = createElement(DIV, {
392
- className: PREFIX + 'popup-bottom-row'
393
- }, void 0, popupDiv);
394
- this.annotations.addFormFields.call(this, lhsCol, chart, '', options, [], true);
395
- this.addButton(bottomRow, isInit ?
396
- (lang.addButton || 'add') :
397
- (lang.saveButton || 'save'), isInit ? 'add' : 'save', popupDiv, callback);
398
- },
399
- /**
400
- * Create annotation's form fields.
401
- * @private
402
- * @param {Highcharts.HTMLDOMElement} parentDiv
403
- * Div where inputs are placed
404
- * @param {Highcharts.Chart} chart
405
- * Chart
406
- * @param {string} parentNode
407
- * Name of parent to create chain of names
408
- * @param {Highcharts.AnnotationsOptions} options
409
- * Options
410
- * @param {Array<unknown>} storage
411
- * Array where all items are stored
412
- * @param {boolean} [isRoot]
413
- * Recursive flag for root
414
- */
415
- addFormFields: function (parentDiv, chart, parentNode, options, storage, isRoot) {
416
- var _self = this, addFormFields = this.annotations.addFormFields, addInput = this.addInput, lang = this.lang, parentFullName, titleName;
417
- if (!chart) {
418
- return;
419
- }
420
- objectEach(options, function (value, option) {
421
- // create name like params.styles.fontSize
422
- parentFullName = parentNode !== '' ?
423
- parentNode + '.' + option : option;
424
- if (isObject(value)) {
425
- if (
426
- // value is object of options
427
- !isArray(value) ||
428
- // array of objects with params. i.e labels in Fibonacci
429
- (isArray(value) && isObject(value[0]))) {
430
- titleName = lang[option] || option;
431
- if (!titleName.match(indexFilter)) {
432
- storage.push([
433
- true,
434
- titleName,
435
- parentDiv
436
- ]);
437
- }
438
- addFormFields.call(_self, parentDiv, chart, parentFullName, value, storage, false);
439
- }
440
- else {
441
- storage.push([
442
- _self,
443
- parentFullName,
444
- 'annotation',
445
- parentDiv,
446
- value
447
- ]);
448
- }
449
- }
450
- });
451
- if (isRoot) {
452
- stableSort(storage, function (a) {
453
- return a[1].match(/format/g) ? -1 : 1;
454
- });
455
- if (isFirefox) {
456
- storage.reverse(); // (#14691)
457
- }
458
- storage.forEach(function (genInput) {
459
- if (genInput[0] === true) {
460
- createElement(SPAN, {
461
- className: PREFIX + 'annotation-title'
462
- }, void 0, genInput[2]).appendChild(doc.createTextNode(genInput[1]));
463
- }
464
- else {
465
- genInput[4] = {
466
- value: genInput[4][0],
467
- type: genInput[4][1]
468
- };
469
- addInput.apply(genInput[0], genInput.splice(1));
470
- }
471
- });
472
- }
473
- }
474
- },
475
- indicators: {
476
- /**
477
- * Create indicator's form. It contains two tabs (ADD and EDIT) with
478
- * content.
479
- * @private
480
- */
481
- addForm: function (chart, _options, callback) {
482
- var tabsContainers, indicators = this.indicators, lang = this.lang, buttonParentDiv;
483
- if (!chart) {
484
- return;
485
- }
486
- // add tabs
487
- this.tabs.init.call(this, chart);
488
- // get all tabs content divs
489
- tabsContainers = this.popup.container
490
- .querySelectorAll('.' + PREFIX + 'tab-item-content');
491
- // ADD tab
492
- this.addColsContainer(tabsContainers[0]);
493
- indicators.addSearchBox.call(this, chart, tabsContainers[0]);
494
- indicators.addIndicatorList.call(this, chart, tabsContainers[0], 'add');
495
- buttonParentDiv = tabsContainers[0]
496
- .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
497
- this.addButton(buttonParentDiv, lang.addButton || 'add', 'add', buttonParentDiv, callback);
498
- // EDIT tab
499
- this.addColsContainer(tabsContainers[1]);
500
- indicators.addIndicatorList.call(this, chart, tabsContainers[1], 'edit');
501
- buttonParentDiv = tabsContainers[1]
502
- .querySelectorAll('.' + PREFIX + 'popup-rhs-col')[0];
503
- this.addButton(buttonParentDiv, lang.saveButton || 'save', 'edit', buttonParentDiv, callback);
504
- this.addButton(buttonParentDiv, lang.removeButton || 'remove', 'remove', buttonParentDiv, callback);
505
- },
506
- /**
507
- * Filter object of series which are not indicators.
508
- * If the filter string exists, check against it.
509
- *
510
- * @private
511
- *
512
- * @param {Highcharts.FilteredSeries} series
513
- * All series are available in the plotOptions.
514
- *
515
- * @param {string|undefined} filter
516
- * Applied filter string from the input.
517
- * For the first iteration, it's an empty string.
518
- *
519
- * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray
520
- * Returns array of filtered series based on filter string.
521
- */
522
- filterSeries: function (series, filter) {
523
- var popup = this, indicators = popup.indicators, lang = popup.chart && popup.chart.options.lang, indicatorAliases = lang &&
524
- lang.navigation &&
525
- lang.navigation.popup &&
526
- lang.navigation.popup.indicatorAliases;
527
- var filteredSeriesArray = [], filteredSeries;
528
- objectEach(series, function (series, value) {
529
- var seriesOptions = series.options;
530
- // Allow only indicators.
531
- if (series.params || seriesOptions &&
532
- seriesOptions.params) {
533
- var _a = indicators.getNameType(series, value), indicatorFullName = _a.indicatorFullName, indicatorType = _a.indicatorType;
534
- if (filter) {
535
- // Replace invalid characters.
536
- var validFilter = filter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
537
- var regex = new RegExp(validFilter, 'i'), alias = indicatorAliases &&
538
- indicatorAliases[indicatorType] &&
539
- indicatorAliases[indicatorType].join(' ') || '';
540
- if (indicatorFullName.match(regex) ||
541
- alias.match(regex)) {
542
- filteredSeries = {
543
- indicatorFullName: indicatorFullName,
544
- indicatorType: indicatorType,
545
- series: series
546
- };
547
- filteredSeriesArray.push(filteredSeries);
548
- }
549
- }
550
- else {
551
- filteredSeries = {
552
- indicatorFullName: indicatorFullName,
553
- indicatorType: indicatorType,
554
- series: series
555
- };
556
- filteredSeriesArray.push(filteredSeries);
557
- }
558
- }
559
- });
560
- return filteredSeriesArray;
561
- },
562
- /**
563
- * Filter an array of series and map its names and types.
564
- *
565
- * @private
566
- *
567
- * @param {Highcharts.FilteredSeries} series
568
- * All series that are available in the plotOptions.
569
- *
570
- * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray
571
- * Returns array of filtered series based on filter string.
572
- */
573
- filterSeriesArray: function (series) {
574
- var filteredSeriesArray = [], filteredSeries;
575
- // Allow only indicators.
576
- series.forEach(function (series) {
577
- var seriesOptions = series.options;
578
- if (series.is('sma')) {
579
- filteredSeries = {
580
- indicatorFullName: series.name,
581
- indicatorType: series.type,
582
- series: series
583
- };
584
- filteredSeriesArray.push(filteredSeries);
585
- }
586
- });
587
- return filteredSeriesArray;
588
- },
589
- /**
590
- * Create HTML list of all indicators (ADD mode) or added indicators
591
- * (EDIT mode).
592
- *
593
- * @private
594
- *
595
- * @param {Highcharts.AnnotationChart} chart
596
- * The chart object.
597
- *
598
- * @param {string} [optionName]
599
- * Name of the option into which selection is being added.
600
- *
601
- * @param {HTMLDOMElement} [parentDiv]
602
- * HTML parent element.
603
- *
604
- * @param {string} listType
605
- * Type of list depending on the selected bookmark.
606
- * Might be 'add' or 'edit'.
607
- *
608
- * @param {string|undefined} filter
609
- * Applied filter string from the input.
610
- * For the first iteration, it's an empty string.
611
- */
612
- addIndicatorList: function (chart, parentDiv, listType, filter) {
613
- 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 ?
614
- chart.series : // EDIT mode
615
- chart.options.plotOptions || {} // ADD mode
616
- );
617
- if (!chart && series) {
618
- return;
619
- }
620
- var rhsColWrapper, indicatorList, item, filteredSeriesArray = [];
621
- // Filter and sort the series.
622
- if (!isEdit && !isArray(series)) {
623
- // Apply filters only for the 'add' indicator list.
624
- filteredSeriesArray = indicators.filterSeries.call(this, series, filter);
625
- }
626
- else if (isArray(series)) {
627
- filteredSeriesArray = indicators.filterSeriesArray.call(this, series);
628
- }
629
- // Sort indicators alphabeticaly.
630
- stableSort(filteredSeriesArray, function (a, b) {
631
- var seriesAName = a.indicatorFullName.toLowerCase(), seriesBName = b.indicatorFullName.toLowerCase();
632
- return (seriesAName < seriesBName) ?
633
- -1 : (seriesAName > seriesBName) ? 1 : 0;
634
- });
635
- // If the list exists remove it from the DOM
636
- // in order to create a new one with different filters.
637
- if (lhsCol.children[1]) {
638
- lhsCol.children[1].remove();
639
- }
640
- // Create wrapper for list.
641
- indicatorList = createElement(UL, {
642
- className: PREFIX + 'indicator-list'
643
- }, void 0, lhsCol);
644
- rhsColWrapper = rhsCol.querySelectorAll('.' + PREFIX + 'popup-rhs-col-wrapper')[0];
645
- filteredSeriesArray.forEach(function (seriesSet) {
646
- var indicatorFullName = seriesSet.indicatorFullName, indicatorType = seriesSet.indicatorType, series = seriesSet.series;
647
- item = createElement(LI, {
648
- className: PREFIX + 'indicator-list'
649
- }, void 0, indicatorList);
650
- item.appendChild(doc.createTextNode(indicatorFullName));
651
- ['click', 'touchstart'].forEach(function (eventName) {
652
- addEvent(item, eventName, function () {
653
- var button = rhsColWrapper.parentNode
654
- .children[1];
655
- addFormFields.call(popup, chart, series, indicatorType, rhsColWrapper);
656
- if (button) {
657
- button.style.display = 'block';
658
- }
659
- // add hidden input with series.id
660
- if (isEdit && series.options) {
661
- createElement(INPUT, {
662
- type: 'hidden',
663
- name: PREFIX + 'id-' + indicatorType,
664
- value: series.options.id
665
- }, void 0, rhsColWrapper).setAttribute(PREFIX + 'data-series-id', series.options.id);
666
- }
667
- });
668
- });
669
- });
670
- // select first item from the list
671
- if (indicatorList.childNodes.length > 0) {
672
- indicatorList.childNodes[0].click();
673
- }
674
- else if (!isEdit) {
675
- AST.setElementHTML(rhsColWrapper.parentNode.children[0], lang.noFilterMatch || '');
676
- rhsColWrapper.parentNode.children[1]
677
- .style.display = 'none';
678
- }
679
- },
680
- /**
681
- * Add searchbox HTML element and its' label.
682
- *
683
- * @private
684
- *
685
- * @param {Highcharts.AnnotationChart} chart
686
- * The chart object.
687
- *
688
- * @param {HTMLDOMElement} parentDiv
689
- * HTML parent element.
690
- */
691
- addSearchBox: function (chart, parentDiv) {
692
- var popup = this, lhsCol = parentDiv.querySelectorAll('.' + PREFIX + 'popup-lhs-col')[0], options = 'searchIndicators', inputAttributes = {
693
- value: '',
694
- type: 'text',
695
- htmlFor: 'search-indicators',
696
- labelClassName: 'highcharts-input-search-indicators-label'
697
- }, clearFilterText = this.lang.clearFilter, inputWrapper = createElement(DIV, {
698
- className: 'highcharts-input-wrapper'
699
- }, void 0, lhsCol);
700
- var handleInputChange = function (inputText) {
701
- // Apply some filters.
702
- popup.indicators.addIndicatorList.call(popup, chart, popup.container, 'add', inputText);
703
- };
704
- // Add input field with the label and button.
705
- var input = this.addInput(options, INPUT, inputWrapper, inputAttributes), button = createElement(A, {
706
- textContent: clearFilterText
707
- }, void 0, inputWrapper);
708
- input.classList.add('highcharts-input-search-indicators');
709
- button.classList.add('clear-filter-button');
710
- // Add input change events.
711
- addEvent(input, 'input', function (e) {
712
- handleInputChange(this.value);
713
- // Show clear filter button.
714
- if (this.value.length) {
715
- button.style.display = 'inline-block';
716
- }
717
- else {
718
- button.style.display = 'none';
719
- }
720
- });
721
- // Add clear filter click event.
722
- ['click', 'touchstart'].forEach(function (eventName) {
723
- addEvent(button, eventName, function () {
724
- // Clear the input.
725
- input.value = '';
726
- handleInputChange('');
727
- // Hide clear filter button- no longer nececary.
728
- button.style.display = 'none';
729
- });
730
- });
731
- },
732
- /**
733
- * Add selection HTML element and its' label.
734
- *
735
- * @private
736
- *
737
- * @param {string} indicatorType
738
- * Type of the indicator i.e. sma, ema...
739
- *
740
- * @param {string} [optionName]
741
- * Name of the option into which selection is being added.
742
- *
743
- * @param {HTMLDOMElement} [parentDiv]
744
- * HTML parent element.
745
- */
746
- addSelection: function (indicatorType, optionName, parentDiv) {
747
- var optionParamList = optionName.split('.'), labelText = optionParamList[optionParamList.length - 1];
748
- var selectName = PREFIX + optionName + '-type-' + indicatorType, lang = this.lang, selectBox;
749
- // Add a label for the selection box.
750
- createElement(LABEL, {
751
- htmlFor: selectName
752
- }, null, parentDiv).appendChild(doc.createTextNode(lang[labelText] || optionName));
753
- // Create a selection box.
754
- selectBox = createElement(SELECT, {
755
- name: selectName,
756
- className: PREFIX + 'popup-field',
757
- id: PREFIX + 'select-' + optionName
758
- }, null, parentDiv);
759
- selectBox.setAttribute('id', PREFIX + 'select-' + optionName);
760
- return selectBox;
761
- },
762
- /**
763
- * Get and add selection options.
764
- *
765
- * @private
766
- *
767
- * @param {Highcharts.AnnotationChart} chart
768
- * The chart object.
769
- *
770
- * @param {string} [optionName]
771
- * Name of the option into which selection is being added.
772
- *
773
- * @param {HTMLSelectElement} [selectBox]
774
- * HTML select box element to which the options are being added.
775
- *
776
- * @param {string|undefined} indicatorType
777
- * Type of the indicator i.e. sma, ema...
778
- *
779
- * @param {string|undefined} parameterName
780
- * Name of the parameter which should be applied.
781
- *
782
- * @param {string|undefined} selectedOption
783
- * Default value in dropdown.
784
- */
785
- addSelectionOptions: function (chart, optionName, selectBox, indicatorType, parameterName, selectedOption, currentSeries) {
786
- var popup = this;
787
- // Get and apply selection options for the possible series.
788
- if (optionName === 'series' || optionName === 'volume') {
789
- // List all series which have id - mandatory for indicator.
790
- chart.series.forEach(function (series) {
791
- var seriesOptions = series.options, seriesName = seriesOptions.name ||
792
- seriesOptions.params ?
793
- series.name :
794
- seriesOptions.id || '';
795
- if (seriesOptions.id !== PREFIX + 'navigator-series' &&
796
- seriesOptions.id !== (currentSeries &&
797
- currentSeries.options &&
798
- currentSeries.options.id)) {
799
- if (!defined(selectedOption) &&
800
- optionName === 'volume' &&
801
- series.type === 'column') {
802
- selectedOption = seriesOptions.id;
803
- }
804
- createElement(OPTION, {
805
- value: seriesOptions.id
806
- }, void 0, selectBox).appendChild(doc.createTextNode(seriesName));
807
- }
808
- });
809
- }
810
- else if (indicatorType && parameterName) {
811
- // Get and apply options for the possible parameters.
812
- var dropdownKey = parameterName + '-' + indicatorType, parameterOption = dropdownParameters[dropdownKey];
813
- parameterOption.forEach(function (element) {
814
- createElement(OPTION, {
815
- value: element
816
- }, void 0, selectBox).appendChild(doc.createTextNode(element));
817
- });
818
- }
819
- // Add the default dropdown value if defined.
820
- if (defined(selectedOption)) {
821
- selectBox.value = selectedOption;
822
- }
823
- },
824
- /**
825
- * Extract full name and type of requested indicator.
826
- *
827
- * @private
828
- *
829
- * @param {Highcharts.Series} series
830
- * Series which name is needed(EDITmode - defaultOptions.series,
831
- * ADDmode - indicator series).
832
- *
833
- * @param {string} [indicatorType]
834
- * Type of the indicator i.e. sma, ema...
835
- *
836
- * @return {Highcharts.Dictionary<string>}
837
- * Full name and series type.
838
- */
839
- getNameType: function (series, indicatorType) {
840
- var options = series.options, seriesTypes = H.seriesTypes;
841
- // add mode
842
- var seriesName = (seriesTypes[indicatorType] &&
843
- seriesTypes[indicatorType].prototype.nameBase) ||
844
- indicatorType.toUpperCase(), seriesType = indicatorType;
845
- // edit
846
- if (options && options.type) {
847
- seriesType = series.options.type;
848
- seriesName = series.name;
849
- }
850
- return {
851
- indicatorFullName: seriesName,
852
- indicatorType: seriesType
853
- };
854
- },
855
- /**
856
- * Create the selection box for the series,
857
- * add options and apply the default one.
858
- *
859
- * @private
860
- *
861
- * @param {string} indicatorType
862
- * Type of the indicator i.e. sma, ema...
863
- *
864
- * @param {string} [optionName]
865
- * Name of the option into which selection is being added.
866
- *
867
- * @param {Highcharts.AnnotationChart} chart
868
- * The chart object.
869
- *
870
- * @param {HTMLDOMElement} [parentDiv]
871
- * HTML parent element.
872
- *
873
- * @param {string|undefined} selectedOption
874
- * Default value in dropdown.
875
- */
876
- listAllSeries: function (indicatorType, optionName, chart, parentDiv, currentSeries, selectedOption) {
877
- var popup = this, indicators = popup.indicators;
878
- // Won't work without the chart.
879
- if (!chart) {
880
- return;
881
- }
882
- // Add selection boxes.
883
- var selectBox = indicators.addSelection.call(popup, indicatorType, optionName, parentDiv);
884
- // Add possible dropdown options.
885
- indicators.addSelectionOptions.call(popup, chart, optionName, selectBox, void 0, void 0, void 0, currentSeries);
886
- // Add the default dropdown value if defined.
887
- if (defined(selectedOption)) {
888
- selectBox.value = selectedOption;
889
- }
890
- },
891
- /**
892
- * Create typical inputs for chosen indicator. Fields are extracted from
893
- * defaultOptions (ADD mode) or current indicator (ADD mode). Two extra
894
- * fields are added:
895
- * - hidden input - contains indicator type (required for callback)
896
- * - select - list of series which can be linked with indicator
897
- * @private
898
- * @param {Highcharts.Chart} chart
899
- * Chart
900
- * @param {Highcharts.Series} series
901
- * Indicator
902
- * @param {string} seriesType
903
- * Indicator type like: sma, ema, etc.
904
- * @param {Highcharts.HTMLDOMElement} rhsColWrapper
905
- * Element where created HTML list is added
906
- */
907
- addFormFields: function (chart, series, seriesType, rhsColWrapper) {
908
- var fields = series.params || series.options.params, getNameType = this.indicators.getNameType;
909
- // reset current content
910
- rhsColWrapper.innerHTML = AST.emptyHTML;
911
- // create title (indicator name in the right column)
912
- createElement(H3, {
913
- className: PREFIX + 'indicator-title'
914
- }, void 0, rhsColWrapper).appendChild(doc.createTextNode(getNameType(series, seriesType).indicatorFullName));
915
- // input type
916
- createElement(INPUT, {
917
- type: 'hidden',
918
- name: PREFIX + 'type-' + seriesType,
919
- value: seriesType
920
- }, void 0, rhsColWrapper);
921
- // list all series with id
922
- this.indicators.listAllSeries.call(this, seriesType, 'series', chart, rhsColWrapper, series, series.linkedParent && series.linkedParent.options.id);
923
- if (fields.volumeSeriesID) {
924
- this.indicators.listAllSeries.call(this, seriesType, 'volume', chart, rhsColWrapper, series, series.linkedParent && fields.volumeSeriesID);
925
- }
926
- // add param fields
927
- this.indicators.addParamInputs.call(this, chart, 'params', fields, seriesType, rhsColWrapper);
928
- },
929
- /**
930
- * Recurent function which lists all fields, from params object and
931
- * create them as inputs. Each input has unique `data-name` attribute,
932
- * which keeps chain of fields i.e params.styles.fontSize.
933
- * @private
934
- * @param {Highcharts.Chart} chart
935
- * Chart
936
- * @param {string} parentNode
937
- * Name of parent to create chain of names
938
- * @param {Highcharts.PopupFieldsDictionary<string>} fields
939
- * Params which are based for input create
940
- * @param {string} type
941
- * Indicator type like: sma, ema, etc.
942
- * @param {Highcharts.HTMLDOMElement} parentDiv
943
- * Element where created HTML list is added
944
- */
945
- addParamInputs: function (chart, parentNode, fields, type, parentDiv) {
946
- var popup = this, indicators = popup.indicators;
947
- var addParamInputs = this.indicators.addParamInputs, addInput = this.addInput, parentFullName;
948
- if (!chart) {
949
- return;
950
- }
951
- objectEach(fields, function (value, fieldName) {
952
- // create name like params.styles.fontSize
953
- parentFullName = parentNode + '.' + fieldName;
954
- if (defined(value) && // skip if field is unnecessary, #15362
955
- parentFullName) {
956
- if (isObject(value)) {
957
- // (15733) 'Periods' has an arrayed value. Label must be
958
- // created here.
959
- addInput.call(popup, parentFullName, type, parentDiv, {});
960
- addParamInputs.call(popup, chart, parentFullName, value, type, parentDiv);
961
- }
962
- // If the option is listed in dropdown enum,
963
- // add the selection box for it.
964
- if (parentFullName in DropdownProperties) {
965
- // Add selection boxes.
966
- var selectBox = indicators.addSelection.call(popup, type, parentFullName, parentDiv);
967
- // Add possible dropdown options.
968
- indicators.addSelectionOptions.call(popup, chart, parentNode, selectBox, type, fieldName, value);
969
- }
970
- else if (
971
- // Skip volume field which is created by addFormFields.
972
- parentFullName !== 'params.volumeSeriesID' &&
973
- !isArray(value) // Skip params declared in array.
974
- ) {
975
- addInput.call(popup, parentFullName, type, parentDiv, {
976
- value: value,
977
- type: 'text'
978
- } // all inputs are text type
979
- );
980
- }
981
- }
982
- });
983
- },
984
- /**
985
- * Get amount of indicators added to chart.
986
- * @private
987
- * @return {number} - Amount of indicators
988
- */
989
- getAmount: function () {
990
- var series = this.series, counter = 0;
991
- series.forEach(function (serie) {
992
- var seriesOptions = serie.options;
993
- if (serie.params ||
994
- seriesOptions && seriesOptions.params) {
995
- counter++;
996
- }
997
- });
998
- return counter;
999
- }
1000
- },
1001
- tabs: {
1002
- /**
1003
- * Init tabs. Create tab menu items, tabs containers
1004
- * @private
1005
- * @param {Highcharts.Chart} chart
1006
- * Reference to current chart
1007
- */
1008
- init: function (chart) {
1009
- var tabs = this.tabs, indicatorsCount = this.indicators.getAmount.call(chart), firstTab; // run by default
1010
- if (!chart) {
1011
- return;
1012
- }
1013
- // create menu items
1014
- firstTab = tabs.addMenuItem.call(this, 'add');
1015
- tabs.addMenuItem.call(this, 'edit', indicatorsCount);
1016
- // create tabs containers
1017
- tabs.addContentItem.call(this, 'add');
1018
- tabs.addContentItem.call(this, 'edit');
1019
- tabs.switchTabs.call(this, indicatorsCount);
1020
- // activate first tab
1021
- tabs.selectTab.call(this, firstTab, 0);
1022
- },
1023
- /**
1024
- * Create tab menu item
1025
- * @private
1026
- * @param {string} tabName
1027
- * `add` or `edit`
1028
- * @param {number} [disableTab]
1029
- * Disable tab when 0
1030
- * @return {Highcharts.HTMLDOMElement}
1031
- * Created HTML tab-menu element
1032
- */
1033
- addMenuItem: function (tabName, disableTab) {
1034
- var popupDiv = this.popup.container, className = PREFIX + 'tab-item', lang = this.lang, menuItem;
1035
- if (disableTab === 0) {
1036
- className += ' ' + PREFIX + 'tab-disabled';
1037
- }
1038
- // tab 1
1039
- menuItem = createElement(SPAN, {
1040
- className: className
1041
- }, void 0, popupDiv);
1042
- menuItem.appendChild(doc.createTextNode(lang[tabName + 'Button'] || tabName));
1043
- menuItem.setAttribute(PREFIX + 'data-tab-type', tabName);
1044
- return menuItem;
1045
- },
1046
- /**
1047
- * Create tab content
1048
- * @private
1049
- * @return {HTMLDOMElement} - created HTML tab-content element
1050
- */
1051
- addContentItem: function () {
1052
- var popupDiv = this.popup.container;
1053
- return createElement(DIV, {
1054
- // #12100
1055
- className: PREFIX + 'tab-item-content ' +
1056
- PREFIX + 'no-mousewheel'
1057
- }, void 0, popupDiv);
1058
- },
1059
- /**
1060
- * Add click event to each tab
1061
- * @private
1062
- * @param {number} disableTab
1063
- * Disable tab when 0
1064
- */
1065
- switchTabs: function (disableTab) {
1066
- var _self = this, popupDiv = this.popup.container, tabs = popupDiv.querySelectorAll('.' + PREFIX + 'tab-item'), dataParam;
1067
- tabs.forEach(function (tab, i) {
1068
- dataParam = tab.getAttribute(PREFIX + 'data-tab-type');
1069
- if (dataParam === 'edit' && disableTab === 0) {
1070
- return;
1071
- }
1072
- ['click', 'touchstart'].forEach(function (eventName) {
1073
- addEvent(tab, eventName, function () {
1074
- // reset class on other elements
1075
- _self.tabs.deselectAll.call(_self);
1076
- _self.tabs.selectTab.call(_self, this, i);
1077
- });
1078
- });
1079
- });
1080
- },
1081
- /**
1082
- * Set tab as visible
1083
- * @private
1084
- * @param {globals.Element} - current tab
1085
- * @param {number} - Index of tab in menu
1086
- */
1087
- selectTab: function (tab, index) {
1088
- var allTabs = this.popup.container
1089
- .querySelectorAll('.' + PREFIX + 'tab-item-content');
1090
- tab.className += ' ' + PREFIX + 'tab-item-active';
1091
- allTabs[index].className += ' ' + PREFIX + 'tab-item-show';
1092
- },
1093
- /**
1094
- * Set all tabs as invisible.
1095
- * @private
1096
- */
1097
- deselectAll: function () {
1098
- var popupDiv = this.popup.container, tabs = popupDiv
1099
- .querySelectorAll('.' + PREFIX + 'tab-item'), tabsContent = popupDiv
1100
- .querySelectorAll('.' + PREFIX + 'tab-item-content'), i;
1101
- for (i = 0; i < tabs.length; i++) {
1102
- tabs[i].classList.remove(PREFIX + 'tab-item-active');
1103
- tabsContent[i].classList.remove(PREFIX + 'tab-item-show');
1104
- }
1105
- }
1106
- }
1107
- };
1108
- addEvent(NavigationBindings, 'showPopup', function (config) {
1109
- if (!this.popup) {
1110
- // Add popup to main container
1111
- this.popup = new H.Popup(this.chart.container, (this.chart.options.navigation.iconsURL ||
1112
- (this.chart.options.stockTools &&
1113
- this.chart.options.stockTools.gui.iconsURL) ||
1114
- 'https://code.highcharts.com/10.0.0/gfx/stock-icons/'), this.chart);
1115
- }
1116
- this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit);
1117
- });
1118
- addEvent(NavigationBindings, 'closePopup', function () {
1119
- if (this.popup) {
1120
- this.popup.closePopup();
1121
- }
1122
- });
1123
- export default H.Popup;