highcharts 13.0.0 → 13.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1264) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +2 -1
  3. package/es-modules/Accessibility/A11yI18n.js +4 -4
  4. package/es-modules/Accessibility/Accessibility.js +38 -1
  5. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
  6. package/es-modules/Accessibility/Components/LegendComponent.js +3 -4
  7. package/es-modules/Accessibility/Components/NavigatorComponent.js +3 -4
  8. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
  9. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +8 -4
  10. package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
  11. package/es-modules/Accessibility/FocusBorder.js +2 -2
  12. package/es-modules/Accessibility/Options/A11yDefaults.js +12 -3
  13. package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
  14. package/es-modules/Accessibility/ProxyElement.js +1 -0
  15. package/es-modules/Core/Animation/AnimationUtilities.js +34 -43
  16. package/es-modules/Core/Animation/Fx.js +16 -19
  17. package/es-modules/Core/Axis/Axis.js +49 -59
  18. package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
  19. package/es-modules/Core/Axis/AxisDefaults.js +12 -2
  20. package/es-modules/Core/Axis/BrokenAxis.js +6 -5
  21. package/es-modules/Core/Axis/Color/ColorAxis.js +24 -12
  22. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -3
  23. package/es-modules/Core/Axis/GridAxis.js +12 -5
  24. package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
  25. package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
  26. package/es-modules/Core/Axis/OrdinalAxis.js +21 -11
  27. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
  28. package/es-modules/Core/Axis/RadialAxis.js +23 -22
  29. package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
  30. package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
  31. package/es-modules/Core/Axis/Stacking/StackingAxis.js +5 -6
  32. package/es-modules/Core/Axis/Tick.js +10 -11
  33. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +1 -1
  34. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
  35. package/es-modules/Core/Chart/Chart.js +58 -53
  36. package/es-modules/Core/Chart/Chart3D.js +3 -3
  37. package/es-modules/Core/Chart/ChartDefaults.js +24 -1
  38. package/es-modules/Core/Chart/MapChart.js +7 -10
  39. package/es-modules/Core/Chart/StockChart.js +15 -11
  40. package/es-modules/Core/Color/Color.js +3 -1
  41. package/es-modules/Core/Defaults.js +44 -2
  42. package/es-modules/Core/Globals.js +1 -1
  43. package/es-modules/Core/Legend/Legend.js +20 -17
  44. package/es-modules/Core/Legend/LegendSymbol.js +2 -2
  45. package/es-modules/Core/MSPointer.js +2 -2
  46. package/es-modules/Core/Math3D.js +6 -7
  47. package/es-modules/Core/Pointer.js +20 -10
  48. package/es-modules/Core/Renderer/HTML/AST.js +5 -1
  49. package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -16
  50. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  51. package/es-modules/Core/Renderer/SVG/SVGElement.js +12 -11
  52. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
  53. package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
  54. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +6 -6
  55. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +13 -12
  56. package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
  57. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  58. package/es-modules/Core/Responsive.js +7 -5
  59. package/es-modules/Core/Series/DataLabel.js +9 -8
  60. package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
  61. package/es-modules/Core/Series/Point.js +31 -24
  62. package/es-modules/Core/Series/Series.js +125 -82
  63. package/es-modules/Core/Series/Series3D.js +2 -2
  64. package/es-modules/Core/Series/SeriesDefaults.js +33 -0
  65. package/es-modules/Core/Templating.js +18 -15
  66. package/es-modules/Core/Tooltip.js +12 -9
  67. package/es-modules/Core/Utilities.js +4 -3
  68. package/es-modules/Data/Connectors/DataConnector.js +2 -2
  69. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
  70. package/es-modules/Data/DataTable.js +17 -0
  71. package/es-modules/Data/DataTableCore.js +1 -1
  72. package/es-modules/Extensions/Annotations/Annotation.js +5 -6
  73. package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
  74. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +4 -4
  75. package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
  76. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
  77. package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
  78. package/es-modules/Extensions/Annotations/MockPoint.js +7 -9
  79. package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
  80. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +31 -4
  81. package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
  82. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +6 -8
  83. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -4
  84. package/es-modules/Extensions/Annotations/Types/Measure.js +28 -10
  85. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +4 -2
  86. package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -1
  87. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
  88. package/es-modules/Extensions/Boost/Boost.js +13 -0
  89. package/es-modules/Extensions/Boost/BoostChart.js +11 -4
  90. package/es-modules/Extensions/Boost/BoostSeries.js +17 -11
  91. package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
  92. package/es-modules/Extensions/Boost/WGLShader.js +3 -3
  93. package/es-modules/Extensions/BoostCanvas.js +2 -2
  94. package/es-modules/Extensions/BorderRadius.js +12 -10
  95. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +6 -5
  96. package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
  97. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
  98. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
  99. package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
  100. package/es-modules/Extensions/DraggablePoints/DraggableChart.js +1 -2
  101. package/es-modules/Extensions/Drilldown/Drilldown.js +1 -2
  102. package/es-modules/Extensions/Drilldown/DrilldownSeries.js +1 -2
  103. package/es-modules/Extensions/ExportData/ExportData.js +21 -16
  104. package/es-modules/Extensions/Exporting/Exporting.js +28 -28
  105. package/es-modules/Extensions/Exporting/ExportingDefaults.js +32 -0
  106. package/es-modules/Extensions/MarkerClusters/MarkerClusterScatter.js +1 -2
  107. package/es-modules/Extensions/MarkerClusters/MarkerClusters.js +1 -2
  108. package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
  109. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +31 -4
  110. package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
  111. package/es-modules/Extensions/Pane/PaneDefaults.js +1 -1
  112. package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
  113. package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +3 -0
  114. package/es-modules/Extensions/PatternFill.js +7 -5
  115. package/es-modules/Extensions/PriceIndication.js +5 -4
  116. package/es-modules/Extensions/ScrollablePlotArea.js +8 -2
  117. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +8 -9
  118. package/es-modules/Extensions/Sonification/MIDI.js +2 -3
  119. package/es-modules/Extensions/Sonification/Sonification.js +2 -2
  120. package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
  121. package/es-modules/Extensions/Sonification/SynthPatch.js +4 -4
  122. package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
  123. package/es-modules/Gantt/Legacy.js +2 -2
  124. package/es-modules/Gantt/Pathfinder.js +3 -3
  125. package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
  126. package/es-modules/Gantt/Tree.js +1 -1
  127. package/es-modules/Maps/GeoJSONComposition.js +14 -1
  128. package/es-modules/Maps/MapNavigation.js +4 -4
  129. package/es-modules/Maps/MapPointer.js +2 -2
  130. package/es-modules/Maps/MapView.js +3 -3
  131. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
  132. package/es-modules/Series/Area/AreaSeries.js +4 -5
  133. package/es-modules/Series/AreaRange/AreaRangeSeries.js +87 -147
  134. package/es-modules/Series/AreaRange/AreaRangeSeriesDefaults.js +42 -4
  135. package/es-modules/Series/Bellcurve/BellcurveSeries.js +10 -6
  136. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +40 -32
  137. package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +33 -1
  138. package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
  139. package/es-modules/Series/Bubble/BubbleSeries.js +25 -9
  140. package/es-modules/Series/Bullet/BulletSeries.js +17 -10
  141. package/es-modules/Series/Candlestick/CandlestickSeries.js +3 -3
  142. package/es-modules/Series/CenteredUtilities.js +12 -9
  143. package/es-modules/Series/ColorMapComposition.js +7 -4
  144. package/es-modules/Series/Column/ColumnPoint.js +2 -0
  145. package/es-modules/Series/Column/ColumnSeries.js +14 -14
  146. package/es-modules/Series/Column/ColumnSeriesDefaults.js +4 -2
  147. package/es-modules/Series/Column3D/Column3DComposition.js +22 -19
  148. package/es-modules/Series/ColumnPyramid/ColumnPyramidPoint.js +18 -0
  149. package/es-modules/Series/ColumnPyramid/ColumnPyramidPointOptions.js +12 -0
  150. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +7 -6
  151. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeriesOptions.js +12 -0
  152. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +2 -0
  153. package/es-modules/Series/ColumnRange/ColumnRangePointOptions.js +12 -0
  154. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +13 -144
  155. package/es-modules/Series/ColumnRange/ColumnRangeSeriesDefaults.js +148 -0
  156. package/es-modules/Series/ColumnRange/ColumnRangeSeriesOptions.js +12 -0
  157. package/es-modules/Series/Contour/ContourPoint.js +2 -0
  158. package/es-modules/Series/Contour/ContourSeries.js +1 -0
  159. package/es-modules/Series/Contour/ContourSeriesDefaults.js +7 -0
  160. package/es-modules/Series/Contour/ContourShader.js +9 -1
  161. package/es-modules/Series/CrossSymbol.js +3 -2
  162. package/es-modules/Series/Cylinder/CylinderComposition.js +12 -12
  163. package/es-modules/Series/Cylinder/CylinderPoint.js +2 -0
  164. package/es-modules/Series/Cylinder/CylinderPointOptions.js +15 -0
  165. package/es-modules/Series/Cylinder/CylinderSeries.js +2 -1
  166. package/es-modules/Series/Cylinder/CylinderSeriesOptions.js +15 -0
  167. package/es-modules/Series/Cylinder/SVGElement3DCylinder.js +2 -0
  168. package/es-modules/Series/DataModifyComposition.js +9 -7
  169. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
  170. package/es-modules/Series/DependencyWheel/DependencyWheelPointOptions.js +14 -0
  171. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +8 -8
  172. package/es-modules/Series/DependencyWheel/DependencyWheelSeriesOptions.js +14 -0
  173. package/es-modules/Series/DerivedComposition.js +9 -8
  174. package/es-modules/Series/DotPlot/DotPlotPoint.js +18 -0
  175. package/es-modules/Series/DotPlot/DotPlotPointOptions.js +12 -0
  176. package/es-modules/Series/DotPlot/DotPlotSeries.js +6 -4
  177. package/es-modules/Series/DotPlot/DotPlotSeriesOptions.js +12 -0
  178. package/es-modules/Series/DragNodesComposition.js +11 -8
  179. package/es-modules/Series/DrawPointUtilities.js +3 -1
  180. package/es-modules/Series/Dumbbell/DumbbellPoint.js +19 -6
  181. package/es-modules/Series/Dumbbell/DumbbellPointOptions.js +12 -0
  182. package/es-modules/Series/Dumbbell/DumbbellSeries.js +33 -15
  183. package/es-modules/Series/Dumbbell/DumbbellSeriesOptions.js +12 -0
  184. package/es-modules/Series/ErrorBar/ErrorBarPoint.js +18 -0
  185. package/es-modules/Series/ErrorBar/ErrorBarPointOptions.js +12 -0
  186. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +6 -9
  187. package/es-modules/Series/ErrorBar/ErrorBarSeriesDefaults.js +15 -1
  188. package/es-modules/Series/ErrorBar/ErrorBarSeriesOptions.js +12 -0
  189. package/es-modules/Series/Flags/FlagsSeries.js +5 -14
  190. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +2 -1
  191. package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
  192. package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
  193. package/es-modules/Series/Funnel/FunnelSeries.js +25 -26
  194. package/es-modules/Series/Funnel/FunnelSeriesDefaults.js +12 -0
  195. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
  196. package/es-modules/Series/Gantt/GanttSeries.js +2 -1
  197. package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
  198. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +9 -9
  199. package/es-modules/Series/GraphLayoutComposition.js +3 -3
  200. package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
  201. package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
  202. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
  203. package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
  204. package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
  205. package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
  206. package/es-modules/Series/Histogram/HistogramSeries.js +15 -3
  207. package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
  208. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +9 -9
  209. package/es-modules/Series/InterpolationUtilities.js +5 -5
  210. package/es-modules/Series/Item/ItemPointOptions.js +14 -0
  211. package/es-modules/Series/Item/ItemSeries.js +18 -6
  212. package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
  213. package/es-modules/Series/Map/MapPoint.js +5 -3
  214. package/es-modules/Series/Map/MapSeries.js +6 -10
  215. package/es-modules/Series/Map/MapSeriesDefaults.js +11 -1
  216. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
  217. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +14 -9
  218. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +12 -0
  219. package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
  220. package/es-modules/Series/NodesComposition.js +9 -10
  221. package/es-modules/Series/OHLC/OHLCPoint.js +2 -2
  222. package/es-modules/Series/OHLC/OHLCSeries.js +1 -0
  223. package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
  224. package/es-modules/Series/Organization/OrganizationSeries.js +29 -7
  225. package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +11 -4
  226. package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
  227. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
  228. package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
  229. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  230. package/es-modules/Series/Pie/PiePoint.js +3 -4
  231. package/es-modules/Series/Pie/PieSeries.js +3 -2
  232. package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
  233. package/es-modules/Series/PolarComposition.js +13 -14
  234. package/es-modules/Series/Polygon/PolygonSeries.js +2 -2
  235. package/es-modules/Series/Polygon/PolygonSeriesDefaults.js +20 -0
  236. package/es-modules/Series/RangeDataLabel.js +128 -0
  237. package/es-modules/Series/Sankey/SankeySeries.js +13 -7
  238. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +2 -2
  239. package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
  240. package/es-modules/Series/Scatter/ScatterSeriesDefaults.js +2 -0
  241. package/es-modules/Series/SimulationSeriesUtilities.js +1 -2
  242. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +4 -4
  243. package/es-modules/Series/Spline/SplineSeries.js +5 -5
  244. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +8 -0
  245. package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +20 -12
  246. package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -1
  247. package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
  248. package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
  249. package/es-modules/Series/Timeline/TimelineSeries.js +13 -6
  250. package/es-modules/Series/TreeUtilities.js +16 -7
  251. package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
  252. package/es-modules/Series/Treegraph/TreegraphSeries.js +22 -13
  253. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  254. package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
  255. package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +22 -1
  256. package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
  257. package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +3 -2
  258. package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
  259. package/es-modules/Series/Vector/VectorSeries.js +7 -9
  260. package/es-modules/Series/Venn/VennSeries.js +3 -4
  261. package/es-modules/Series/Waterfall/WaterfallSeries.js +3 -3
  262. package/es-modules/Series/Windbarb/WindbarbSeries.js +8 -10
  263. package/es-modules/Series/XRange/XRangeSeries.js +8 -8
  264. package/es-modules/Shared/TimeBase.js +13 -8
  265. package/es-modules/Shared/Utilities.js +9 -7
  266. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
  267. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
  268. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
  269. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
  270. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +1 -2
  271. package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
  272. package/es-modules/Stock/Navigator/Navigator.js +26 -26
  273. package/es-modules/Stock/Navigator/NavigatorDefaults.js +9 -2
  274. package/es-modules/Stock/Navigator/NavigatorSymbols.js +2 -1
  275. package/es-modules/Stock/Navigator/StandaloneNavigator.js +55 -14
  276. package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
  277. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
  278. package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
  279. package/es-modules/Stock/StockTools/StockToolbar.js +6 -6
  280. package/es-modules/Stock/StockTools/StockTools.js +2 -2
  281. package/es-modules/Stock/StockTools/StockToolsBindings.js +7 -7
  282. package/es-modules/Stock/StockTools/StockToolsGui.js +6 -4
  283. package/es-modules/masters/highcharts-3d.src.js +1 -1
  284. package/es-modules/masters/highcharts-autoload.src.js +1 -1
  285. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  286. package/es-modules/masters/highcharts-more.src.js +1 -1
  287. package/es-modules/masters/highcharts.src.js +13 -8
  288. package/es-modules/masters/highmaps.src.js +1 -1
  289. package/es-modules/masters/highstock.src.js +1 -1
  290. package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
  291. package/es-modules/masters/i18n/fr-FR.src.js +1 -1
  292. package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
  293. package/es-modules/masters/i18n/nb-NO.src.js +1 -1
  294. package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
  295. package/es-modules/masters/i18n/zh-CN.src.js +1 -1
  296. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  297. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  298. package/es-modules/masters/indicators/ao.src.js +1 -1
  299. package/es-modules/masters/indicators/apo.src.js +1 -1
  300. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  301. package/es-modules/masters/indicators/aroon.src.js +1 -1
  302. package/es-modules/masters/indicators/atr.src.js +1 -1
  303. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  304. package/es-modules/masters/indicators/cci.src.js +1 -1
  305. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  306. package/es-modules/masters/indicators/cmf.src.js +1 -1
  307. package/es-modules/masters/indicators/cmo.src.js +1 -1
  308. package/es-modules/masters/indicators/dema.src.js +1 -1
  309. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  310. package/es-modules/masters/indicators/dmi.src.js +1 -1
  311. package/es-modules/masters/indicators/dpo.src.js +1 -1
  312. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  313. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  314. package/es-modules/masters/indicators/indicators.src.js +1 -1
  315. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  316. package/es-modules/masters/indicators/klinger.src.js +1 -1
  317. package/es-modules/masters/indicators/macd.src.js +1 -1
  318. package/es-modules/masters/indicators/mfi.src.js +1 -1
  319. package/es-modules/masters/indicators/momentum.src.js +1 -1
  320. package/es-modules/masters/indicators/natr.src.js +1 -1
  321. package/es-modules/masters/indicators/obv.src.js +1 -1
  322. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  323. package/es-modules/masters/indicators/ppo.src.js +1 -1
  324. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  325. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  326. package/es-modules/masters/indicators/psar.src.js +1 -1
  327. package/es-modules/masters/indicators/regressions.src.js +1 -1
  328. package/es-modules/masters/indicators/roc.src.js +1 -1
  329. package/es-modules/masters/indicators/rsi.src.js +1 -1
  330. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  331. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  332. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  333. package/es-modules/masters/indicators/tema.src.js +1 -1
  334. package/es-modules/masters/indicators/trendline.src.js +1 -1
  335. package/es-modules/masters/indicators/trix.src.js +1 -1
  336. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  337. package/es-modules/masters/indicators/vwap.src.js +1 -1
  338. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  339. package/es-modules/masters/indicators/wma.src.js +1 -1
  340. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  341. package/es-modules/masters/modules/accessibility.src.js +1 -1
  342. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  343. package/es-modules/masters/modules/annotations.src.js +1 -1
  344. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  345. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  346. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  347. package/es-modules/masters/modules/boost.src.js +1 -1
  348. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  349. package/es-modules/masters/modules/bullet.src.js +1 -1
  350. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  351. package/es-modules/masters/modules/contour.src.js +1 -1
  352. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  353. package/es-modules/masters/modules/cylinder.src.js +1 -1
  354. package/es-modules/masters/modules/data-sorting.src.js +1 -1
  355. package/es-modules/masters/modules/data-tools.src.js +1 -1
  356. package/es-modules/masters/modules/data.src.js +1 -1
  357. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  358. package/es-modules/masters/modules/debugger.src.js +1 -1
  359. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  360. package/es-modules/masters/modules/dotplot.src.js +1 -1
  361. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  362. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  363. package/es-modules/masters/modules/drilldown.src.js +1 -1
  364. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  365. package/es-modules/masters/modules/export-data.src.js +1 -1
  366. package/es-modules/masters/modules/exporting.src.js +1 -1
  367. package/es-modules/masters/modules/flowmap.src.js +2 -1
  368. package/es-modules/masters/modules/full-screen.src.js +1 -1
  369. package/es-modules/masters/modules/funnel.src.js +1 -1
  370. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  371. package/es-modules/masters/modules/gantt.src.js +1 -1
  372. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  373. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  374. package/es-modules/masters/modules/heatmap.src.js +1 -1
  375. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  376. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  377. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  378. package/es-modules/masters/modules/item-series.src.js +1 -1
  379. package/es-modules/masters/modules/lollipop.src.js +1 -1
  380. package/es-modules/masters/modules/map.src.js +1 -1
  381. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  382. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  383. package/es-modules/masters/modules/navigator.src.js +1 -1
  384. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  385. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  386. package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
  387. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  388. package/es-modules/masters/modules/organization.src.js +1 -1
  389. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  390. package/es-modules/masters/modules/pareto.src.js +1 -1
  391. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  392. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  393. package/es-modules/masters/modules/pictorial.src.js +1 -1
  394. package/es-modules/masters/modules/pointandfigure.src.js +1 -1
  395. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  396. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  397. package/es-modules/masters/modules/renko.src.js +1 -1
  398. package/es-modules/masters/modules/sankey.src.js +1 -1
  399. package/es-modules/masters/modules/series-label.src.js +1 -1
  400. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  401. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  402. package/es-modules/masters/modules/sonification.src.js +1 -1
  403. package/es-modules/masters/modules/static-scale.src.js +1 -1
  404. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  405. package/es-modules/masters/modules/stock.src.js +1 -1
  406. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  407. package/es-modules/masters/modules/sunburst.src.js +3 -2
  408. package/es-modules/masters/modules/textpath.src.js +1 -1
  409. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  410. package/es-modules/masters/modules/tilemap.src.js +1 -1
  411. package/es-modules/masters/modules/timeline.src.js +1 -1
  412. package/es-modules/masters/modules/treegraph.src.js +1 -1
  413. package/es-modules/masters/modules/treegrid.src.js +1 -1
  414. package/es-modules/masters/modules/treemap.src.js +1 -1
  415. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  416. package/es-modules/masters/modules/variwide.src.js +1 -1
  417. package/es-modules/masters/modules/vector.src.js +1 -1
  418. package/es-modules/masters/modules/venn.src.js +1 -1
  419. package/es-modules/masters/modules/windbarb.src.js +1 -1
  420. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  421. package/es-modules/masters/modules/xrange.src.js +1 -1
  422. package/es-modules/masters/standalone-navigator.src.js +1 -1
  423. package/es-modules/masters/themes/adaptive.src.js +1 -1
  424. package/es-modules/masters/themes/avocado.src.js +1 -1
  425. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  426. package/es-modules/masters/themes/grid-light.src.js +1 -1
  427. package/es-modules/masters/themes/high-contrast.src.js +1 -1
  428. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  429. package/es-modules/masters/themes/sunset.src.js +1 -1
  430. package/es-modules/tsconfig.tsbuildinfo +1 -1
  431. package/esm/highcharts-3d.js +2 -2
  432. package/esm/highcharts-3d.src.js +78 -55
  433. package/esm/highcharts-autoload.js +2 -2
  434. package/esm/highcharts-autoload.src.js +22 -8
  435. package/esm/highcharts-gantt.js +2 -2
  436. package/esm/highcharts-gantt.src.js +1 -24
  437. package/esm/highcharts-more.js +2 -2
  438. package/esm/highcharts-more.src.js +1198 -981
  439. package/esm/highcharts.js +5 -5
  440. package/esm/highcharts.src.js +702 -515
  441. package/esm/highmaps.js +2 -2
  442. package/esm/highmaps.src.js +1 -24
  443. package/esm/highstock.js +2 -2
  444. package/esm/highstock.src.js +1 -24
  445. package/esm/i18n/fr-FR.js +2 -2
  446. package/esm/i18n/fr-FR.src.js +22 -8
  447. package/esm/i18n/nb-NO.js +2 -2
  448. package/esm/i18n/nb-NO.src.js +22 -8
  449. package/esm/i18n/zh-CN.js +2 -2
  450. package/esm/i18n/zh-CN.src.js +22 -8
  451. package/esm/indicators/acceleration-bands.js +2 -2
  452. package/esm/indicators/acceleration-bands.src.js +22 -8
  453. package/esm/indicators/accumulation-distribution.js +2 -2
  454. package/esm/indicators/accumulation-distribution.src.js +22 -8
  455. package/esm/indicators/ao.js +2 -2
  456. package/esm/indicators/ao.src.js +22 -8
  457. package/esm/indicators/apo.js +2 -2
  458. package/esm/indicators/apo.src.js +22 -8
  459. package/esm/indicators/aroon-oscillator.js +2 -2
  460. package/esm/indicators/aroon-oscillator.src.js +22 -8
  461. package/esm/indicators/aroon.js +2 -2
  462. package/esm/indicators/aroon.src.js +24 -10
  463. package/esm/indicators/atr.js +2 -2
  464. package/esm/indicators/atr.src.js +22 -8
  465. package/esm/indicators/bollinger-bands.js +2 -2
  466. package/esm/indicators/bollinger-bands.src.js +22 -8
  467. package/esm/indicators/cci.js +2 -2
  468. package/esm/indicators/cci.src.js +22 -8
  469. package/esm/indicators/chaikin.js +2 -2
  470. package/esm/indicators/chaikin.src.js +22 -8
  471. package/esm/indicators/cmf.js +2 -2
  472. package/esm/indicators/cmf.src.js +22 -8
  473. package/esm/indicators/cmo.js +2 -2
  474. package/esm/indicators/cmo.src.js +22 -8
  475. package/esm/indicators/dema.js +2 -2
  476. package/esm/indicators/dema.src.js +22 -8
  477. package/esm/indicators/disparity-index.js +2 -2
  478. package/esm/indicators/disparity-index.src.js +22 -8
  479. package/esm/indicators/dmi.js +2 -2
  480. package/esm/indicators/dmi.src.js +22 -8
  481. package/esm/indicators/dpo.js +2 -2
  482. package/esm/indicators/dpo.src.js +25 -10
  483. package/esm/indicators/ichimoku-kinko-hyo.js +2 -2
  484. package/esm/indicators/ichimoku-kinko-hyo.src.js +22 -8
  485. package/esm/indicators/indicators-all.js +2 -2
  486. package/esm/indicators/indicators-all.src.js +31 -17
  487. package/esm/indicators/indicators.js +2 -2
  488. package/esm/indicators/indicators.src.js +24 -10
  489. package/esm/indicators/keltner-channels.js +2 -2
  490. package/esm/indicators/keltner-channels.src.js +22 -8
  491. package/esm/indicators/klinger.js +2 -2
  492. package/esm/indicators/klinger.src.js +22 -8
  493. package/esm/indicators/macd.js +2 -2
  494. package/esm/indicators/macd.src.js +22 -8
  495. package/esm/indicators/mfi.js +2 -2
  496. package/esm/indicators/mfi.src.js +22 -8
  497. package/esm/indicators/momentum.js +2 -2
  498. package/esm/indicators/momentum.src.js +22 -8
  499. package/esm/indicators/natr.js +2 -2
  500. package/esm/indicators/natr.src.js +22 -8
  501. package/esm/indicators/obv.js +2 -2
  502. package/esm/indicators/obv.src.js +22 -8
  503. package/esm/indicators/pivot-points.js +2 -2
  504. package/esm/indicators/pivot-points.src.js +22 -8
  505. package/esm/indicators/ppo.js +2 -2
  506. package/esm/indicators/ppo.src.js +22 -8
  507. package/esm/indicators/price-channel.js +2 -2
  508. package/esm/indicators/price-channel.src.js +22 -8
  509. package/esm/indicators/price-envelopes.js +2 -2
  510. package/esm/indicators/price-envelopes.src.js +22 -8
  511. package/esm/indicators/psar.js +2 -2
  512. package/esm/indicators/psar.src.js +22 -8
  513. package/esm/indicators/regressions.js +2 -2
  514. package/esm/indicators/regressions.src.js +22 -8
  515. package/esm/indicators/roc.js +2 -2
  516. package/esm/indicators/roc.src.js +22 -8
  517. package/esm/indicators/rsi.js +2 -2
  518. package/esm/indicators/rsi.src.js +23 -9
  519. package/esm/indicators/slow-stochastic.js +2 -2
  520. package/esm/indicators/slow-stochastic.src.js +22 -8
  521. package/esm/indicators/stochastic.js +2 -2
  522. package/esm/indicators/stochastic.src.js +22 -8
  523. package/esm/indicators/supertrend.js +2 -2
  524. package/esm/indicators/supertrend.src.js +22 -8
  525. package/esm/indicators/tema.js +2 -2
  526. package/esm/indicators/tema.src.js +22 -8
  527. package/esm/indicators/trendline.js +2 -2
  528. package/esm/indicators/trendline.src.js +22 -8
  529. package/esm/indicators/trix.js +2 -2
  530. package/esm/indicators/trix.src.js +22 -8
  531. package/esm/indicators/volume-by-price.js +2 -2
  532. package/esm/indicators/volume-by-price.src.js +23 -10
  533. package/esm/indicators/vwap.js +2 -2
  534. package/esm/indicators/vwap.src.js +22 -8
  535. package/esm/indicators/williams-r.js +2 -2
  536. package/esm/indicators/williams-r.src.js +22 -8
  537. package/esm/indicators/wma.js +2 -2
  538. package/esm/indicators/wma.src.js +22 -8
  539. package/esm/indicators/zigzag.js +2 -2
  540. package/esm/indicators/zigzag.src.js +22 -8
  541. package/esm/modules/accessibility.js +2 -2
  542. package/esm/modules/accessibility.src.js +564 -92
  543. package/esm/modules/annotations-advanced.js +11 -11
  544. package/esm/modules/annotations-advanced.src.js +224 -162
  545. package/esm/modules/annotations.js +11 -11
  546. package/esm/modules/annotations.src.js +184 -144
  547. package/esm/modules/arc-diagram.js +2 -2
  548. package/esm/modules/arc-diagram.src.js +37 -22
  549. package/esm/modules/arrow-symbols.js +3 -3
  550. package/esm/modules/arrow-symbols.src.js +22 -8
  551. package/esm/modules/boost-canvas.js +2 -2
  552. package/esm/modules/boost-canvas.src.js +60 -30
  553. package/esm/modules/boost.js +2 -2
  554. package/esm/modules/boost.src.js +72 -29
  555. package/esm/modules/broken-axis.js +2 -2
  556. package/esm/modules/broken-axis.src.js +27 -12
  557. package/esm/modules/bullet.js +2 -2
  558. package/esm/modules/bullet.src.js +38 -17
  559. package/esm/modules/coloraxis.js +2 -2
  560. package/esm/modules/coloraxis.src.js +47 -21
  561. package/esm/modules/contour.js +3 -3
  562. package/esm/modules/contour.src.js +46 -13
  563. package/esm/modules/current-date-indicator.js +2 -2
  564. package/esm/modules/current-date-indicator.src.js +22 -8
  565. package/esm/modules/cylinder.js +2 -2
  566. package/esm/modules/cylinder.src.js +46 -28
  567. package/esm/modules/data-sorting.js +2 -2
  568. package/esm/modules/data-sorting.src.js +22 -8
  569. package/esm/modules/data-tools.js +2 -2
  570. package/esm/modules/data-tools.src.js +44 -13
  571. package/esm/modules/data.js +4 -4
  572. package/esm/modules/data.src.js +23 -9
  573. package/esm/modules/datagrouping.js +2 -2
  574. package/esm/modules/datagrouping.src.js +28 -13
  575. package/esm/modules/debugger.js +2 -2
  576. package/esm/modules/debugger.src.js +22 -8
  577. package/esm/modules/dependency-wheel.js +2 -2
  578. package/esm/modules/dependency-wheel.src.js +428 -17
  579. package/esm/modules/dotplot.js +2 -2
  580. package/esm/modules/dotplot.src.js +27 -11
  581. package/esm/modules/drag-panes.js +2 -2
  582. package/esm/modules/drag-panes.src.js +22 -8
  583. package/esm/modules/draggable-points.js +2 -2
  584. package/esm/modules/draggable-points.src.js +24 -12
  585. package/esm/modules/drilldown.js +2 -2
  586. package/esm/modules/drilldown.src.js +38 -25
  587. package/esm/modules/dumbbell.js +2 -2
  588. package/esm/modules/dumbbell.src.js +72 -27
  589. package/esm/modules/export-data.js +2 -2
  590. package/esm/modules/export-data.src.js +42 -23
  591. package/esm/modules/exporting.js +2 -2
  592. package/esm/modules/exporting.src.js +83 -37
  593. package/esm/modules/flowmap.js +3 -2
  594. package/esm/modules/flowmap.src.js +43 -18
  595. package/esm/modules/full-screen.js +2 -2
  596. package/esm/modules/full-screen.src.js +22 -8
  597. package/esm/modules/funnel.js +2 -2
  598. package/esm/modules/funnel.src.js +73 -42
  599. package/esm/modules/funnel3d.js +2 -2
  600. package/esm/modules/funnel3d.src.js +35 -20
  601. package/esm/modules/gantt.js +2 -2
  602. package/esm/modules/gantt.src.js +542 -100
  603. package/esm/modules/geoheatmap.js +2 -2
  604. package/esm/modules/geoheatmap.src.js +35 -21
  605. package/esm/modules/grid-axis.js +2 -2
  606. package/esm/modules/grid-axis.src.js +33 -12
  607. package/esm/modules/heatmap.js +2 -2
  608. package/esm/modules/heatmap.src.js +50 -33
  609. package/esm/modules/heikinashi.js +2 -2
  610. package/esm/modules/heikinashi.src.js +22 -8
  611. package/esm/modules/histogram-bellcurve.js +2 -2
  612. package/esm/modules/histogram-bellcurve.src.js +56 -25
  613. package/esm/modules/hollowcandlestick.js +2 -2
  614. package/esm/modules/hollowcandlestick.src.js +31 -17
  615. package/esm/modules/item-series.js +2 -2
  616. package/esm/modules/item-series.src.js +72 -13
  617. package/esm/modules/lollipop.js +2 -2
  618. package/esm/modules/lollipop.src.js +22 -8
  619. package/esm/modules/map.js +2 -2
  620. package/esm/modules/map.src.js +148 -91
  621. package/esm/modules/marker-clusters.js +2 -2
  622. package/esm/modules/marker-clusters.src.js +25 -13
  623. package/esm/modules/mouse-wheel-zoom.js +2 -2
  624. package/esm/modules/mouse-wheel-zoom.src.js +54 -13
  625. package/esm/modules/navigator.js +2 -2
  626. package/esm/modules/navigator.src.js +534 -74
  627. package/esm/modules/networkgraph.js +2 -2
  628. package/esm/modules/networkgraph.src.js +87 -46
  629. package/esm/modules/no-data-to-display.js +2 -2
  630. package/esm/modules/no-data-to-display.src.js +22 -8
  631. package/esm/modules/non-cartesian-zoom.js +2 -2
  632. package/esm/modules/non-cartesian-zoom.src.js +22 -8
  633. package/esm/modules/offline-exporting.js +2 -2
  634. package/esm/modules/offline-exporting.src.js +53 -12
  635. package/esm/modules/organization.js +4 -2
  636. package/esm/modules/organization.src.js +63 -19
  637. package/esm/modules/parallel-coordinates.js +2 -2
  638. package/esm/modules/parallel-coordinates.src.js +26 -9
  639. package/esm/modules/pareto.js +2 -2
  640. package/esm/modules/pareto.src.js +31 -16
  641. package/esm/modules/pathfinder.js +2 -2
  642. package/esm/modules/pathfinder.src.js +28 -13
  643. package/esm/modules/pattern-fill.js +2 -2
  644. package/esm/modules/pattern-fill.src.js +28 -12
  645. package/esm/modules/pictorial.js +2 -2
  646. package/esm/modules/pictorial.src.js +36 -19
  647. package/esm/modules/pointandfigure.js +2 -2
  648. package/esm/modules/pointandfigure.src.js +26 -11
  649. package/esm/modules/price-indicator.js +2 -2
  650. package/esm/modules/price-indicator.src.js +26 -11
  651. package/esm/modules/pyramid3d.js +2 -2
  652. package/esm/modules/pyramid3d.src.js +22 -8
  653. package/esm/modules/renko.js +2 -2
  654. package/esm/modules/renko.src.js +22 -8
  655. package/esm/modules/sankey.js +2 -2
  656. package/esm/modules/sankey.src.js +59 -31
  657. package/esm/modules/series-label.js +2 -2
  658. package/esm/modules/series-label.src.js +31 -18
  659. package/esm/modules/series-on-point.js +2 -2
  660. package/esm/modules/series-on-point.src.js +23 -9
  661. package/esm/modules/solid-gauge.js +2 -2
  662. package/esm/modules/solid-gauge.src.js +40 -20
  663. package/esm/modules/sonification.js +2 -2
  664. package/esm/modules/sonification.src.js +45 -30
  665. package/esm/modules/static-scale.js +2 -2
  666. package/esm/modules/static-scale.src.js +22 -8
  667. package/esm/modules/stock-tools.js +3 -3
  668. package/esm/modules/stock-tools.src.js +73 -27
  669. package/esm/modules/stock.js +2 -2
  670. package/esm/modules/stock.src.js +554 -122
  671. package/esm/modules/streamgraph.js +2 -2
  672. package/esm/modules/streamgraph.src.js +22 -8
  673. package/esm/modules/sunburst.js +2 -2
  674. package/esm/modules/sunburst.src.js +110 -45
  675. package/esm/modules/textpath.js +2 -2
  676. package/esm/modules/textpath.src.js +22 -8
  677. package/esm/modules/tiledwebmap.js +3 -3
  678. package/esm/modules/tiledwebmap.src.js +44 -19
  679. package/esm/modules/tilemap.js +2 -2
  680. package/esm/modules/tilemap.src.js +27 -12
  681. package/esm/modules/timeline.js +2 -2
  682. package/esm/modules/timeline.src.js +35 -14
  683. package/esm/modules/treegraph.js +2 -2
  684. package/esm/modules/treegraph.src.js +59 -27
  685. package/esm/modules/treegrid.js +2 -2
  686. package/esm/modules/treegrid.src.js +58 -27
  687. package/esm/modules/treemap.js +2 -2
  688. package/esm/modules/treemap.src.js +89 -36
  689. package/esm/modules/variable-pie.js +2 -2
  690. package/esm/modules/variable-pie.src.js +30 -13
  691. package/esm/modules/variwide.js +2 -2
  692. package/esm/modules/variwide.src.js +23 -9
  693. package/esm/modules/vector.js +2 -2
  694. package/esm/modules/vector.src.js +28 -16
  695. package/esm/modules/venn.js +2 -2
  696. package/esm/modules/venn.src.js +28 -13
  697. package/esm/modules/windbarb.js +2 -2
  698. package/esm/modules/windbarb.src.js +29 -17
  699. package/esm/modules/wordcloud.js +2 -2
  700. package/esm/modules/wordcloud.src.js +25 -9
  701. package/esm/modules/xrange.js +2 -2
  702. package/esm/modules/xrange.src.js +29 -15
  703. package/esm/standalone-navigator.js +5 -5
  704. package/esm/standalone-navigator.src.js +808 -570
  705. package/esm/themes/adaptive.js +3 -3
  706. package/esm/themes/adaptive.src.js +22 -8
  707. package/esm/themes/avocado.js +2 -2
  708. package/esm/themes/avocado.src.js +22 -8
  709. package/esm/themes/dark-unica.js +2 -2
  710. package/esm/themes/dark-unica.src.js +22 -8
  711. package/esm/themes/grid-light.js +2 -2
  712. package/esm/themes/grid-light.src.js +22 -8
  713. package/esm/themes/high-contrast.js +2 -2
  714. package/esm/themes/high-contrast.src.js +22 -8
  715. package/esm/themes/sand-signika.js +2 -2
  716. package/esm/themes/sand-signika.src.js +22 -8
  717. package/esm/themes/sunset.js +2 -2
  718. package/esm/themes/sunset.src.js +22 -8
  719. package/highcharts-3d.js +2 -2
  720. package/highcharts-3d.src.js +116 -92
  721. package/highcharts-autoload.d.ts +15 -5
  722. package/highcharts-autoload.js +4 -4
  723. package/highcharts-autoload.src.d.ts +15 -5
  724. package/highcharts-autoload.src.js +724 -499
  725. package/highcharts-gantt.js +4 -4
  726. package/highcharts-gantt.src.js +851 -590
  727. package/highcharts-more.d.ts +7 -3
  728. package/highcharts-more.js +2 -2
  729. package/highcharts-more.src.d.ts +7 -3
  730. package/highcharts-more.src.js +1313 -1095
  731. package/highcharts.d.ts +34795 -25647
  732. package/highcharts.js +4 -4
  733. package/highcharts.src.d.ts +34795 -25647
  734. package/highcharts.src.js +723 -498
  735. package/highmaps.js +4 -4
  736. package/highmaps.src.js +863 -583
  737. package/highstock.js +4 -4
  738. package/highstock.src.js +899 -619
  739. package/i18n/fr-FR.js +2 -2
  740. package/i18n/fr-FR.src.js +32 -16
  741. package/i18n/nb-NO.js +2 -2
  742. package/i18n/nb-NO.src.js +32 -16
  743. package/i18n/zh-CN.js +2 -2
  744. package/i18n/zh-CN.src.js +32 -16
  745. package/indicators/acceleration-bands.js +2 -2
  746. package/indicators/acceleration-bands.src.js +31 -16
  747. package/indicators/accumulation-distribution.js +2 -2
  748. package/indicators/accumulation-distribution.src.js +31 -16
  749. package/indicators/ao.js +2 -2
  750. package/indicators/ao.src.js +31 -16
  751. package/indicators/apo.js +2 -2
  752. package/indicators/apo.src.js +31 -16
  753. package/indicators/aroon-oscillator.js +2 -2
  754. package/indicators/aroon-oscillator.src.js +31 -16
  755. package/indicators/aroon.js +2 -2
  756. package/indicators/aroon.src.js +33 -18
  757. package/indicators/atr.js +2 -2
  758. package/indicators/atr.src.js +31 -16
  759. package/indicators/bollinger-bands.js +2 -2
  760. package/indicators/bollinger-bands.src.js +31 -16
  761. package/indicators/cci.js +2 -2
  762. package/indicators/cci.src.js +31 -16
  763. package/indicators/chaikin.js +2 -2
  764. package/indicators/chaikin.src.js +31 -16
  765. package/indicators/cmf.js +2 -2
  766. package/indicators/cmf.src.js +31 -16
  767. package/indicators/cmo.js +2 -2
  768. package/indicators/cmo.src.js +31 -16
  769. package/indicators/dema.js +2 -2
  770. package/indicators/dema.src.js +31 -16
  771. package/indicators/disparity-index.js +2 -2
  772. package/indicators/disparity-index.src.js +31 -16
  773. package/indicators/dmi.js +2 -2
  774. package/indicators/dmi.src.js +31 -16
  775. package/indicators/dpo.js +2 -2
  776. package/indicators/dpo.src.js +34 -18
  777. package/indicators/ichimoku-kinko-hyo.js +2 -2
  778. package/indicators/ichimoku-kinko-hyo.src.js +41 -26
  779. package/indicators/indicators-all.js +2 -2
  780. package/indicators/indicators-all.src.js +52 -37
  781. package/indicators/indicators.js +2 -2
  782. package/indicators/indicators.src.js +39 -24
  783. package/indicators/keltner-channels.js +2 -2
  784. package/indicators/keltner-channels.src.js +31 -16
  785. package/indicators/klinger.js +2 -2
  786. package/indicators/klinger.src.js +31 -16
  787. package/indicators/macd.js +2 -2
  788. package/indicators/macd.src.js +31 -16
  789. package/indicators/mfi.js +2 -2
  790. package/indicators/mfi.src.js +31 -16
  791. package/indicators/momentum.js +2 -2
  792. package/indicators/momentum.src.js +31 -16
  793. package/indicators/natr.js +2 -2
  794. package/indicators/natr.src.js +31 -16
  795. package/indicators/obv.js +2 -2
  796. package/indicators/obv.src.js +31 -16
  797. package/indicators/pivot-points.js +2 -2
  798. package/indicators/pivot-points.src.js +31 -16
  799. package/indicators/ppo.js +2 -2
  800. package/indicators/ppo.src.js +31 -16
  801. package/indicators/price-channel.js +2 -2
  802. package/indicators/price-channel.src.js +31 -16
  803. package/indicators/price-envelopes.js +2 -2
  804. package/indicators/price-envelopes.src.js +31 -16
  805. package/indicators/psar.js +2 -2
  806. package/indicators/psar.src.js +31 -16
  807. package/indicators/regressions.js +2 -2
  808. package/indicators/regressions.src.js +31 -16
  809. package/indicators/roc.js +2 -2
  810. package/indicators/roc.src.js +31 -16
  811. package/indicators/rsi.js +2 -2
  812. package/indicators/rsi.src.js +32 -17
  813. package/indicators/slow-stochastic.js +2 -2
  814. package/indicators/slow-stochastic.src.js +31 -16
  815. package/indicators/stochastic.js +2 -2
  816. package/indicators/stochastic.src.js +31 -16
  817. package/indicators/supertrend.js +2 -2
  818. package/indicators/supertrend.src.js +31 -16
  819. package/indicators/tema.js +2 -2
  820. package/indicators/tema.src.js +31 -16
  821. package/indicators/trendline.js +2 -2
  822. package/indicators/trendline.src.js +31 -16
  823. package/indicators/trix.js +2 -2
  824. package/indicators/trix.src.js +31 -16
  825. package/indicators/volume-by-price.js +2 -2
  826. package/indicators/volume-by-price.src.js +32 -18
  827. package/indicators/vwap.js +2 -2
  828. package/indicators/vwap.src.js +31 -16
  829. package/indicators/williams-r.js +2 -2
  830. package/indicators/williams-r.src.js +31 -16
  831. package/indicators/wma.js +2 -2
  832. package/indicators/wma.src.js +31 -16
  833. package/indicators/zigzag.js +2 -2
  834. package/indicators/zigzag.src.js +31 -16
  835. package/modules/accessibility.d.ts +47 -0
  836. package/modules/accessibility.js +2 -2
  837. package/modules/accessibility.src.d.ts +47 -0
  838. package/modules/accessibility.src.js +603 -130
  839. package/modules/annotations-advanced.js +11 -11
  840. package/modules/annotations-advanced.src.js +246 -183
  841. package/modules/annotations.js +11 -11
  842. package/modules/annotations.src.js +206 -165
  843. package/modules/arc-diagram.js +2 -2
  844. package/modules/arc-diagram.src.js +58 -42
  845. package/modules/arrow-symbols.js +2 -2
  846. package/modules/arrow-symbols.src.js +28 -13
  847. package/modules/boost-canvas.js +2 -2
  848. package/modules/boost-canvas.src.js +69 -38
  849. package/modules/boost.js +2 -2
  850. package/modules/boost.src.js +81 -37
  851. package/modules/broken-axis.js +2 -2
  852. package/modules/broken-axis.src.js +36 -20
  853. package/modules/bullet.js +2 -2
  854. package/modules/bullet.src.js +50 -28
  855. package/modules/coloraxis.js +2 -2
  856. package/modules/coloraxis.src.js +65 -38
  857. package/modules/contour.js +5 -5
  858. package/modules/contour.src.js +91 -44
  859. package/modules/current-date-indicator.js +2 -2
  860. package/modules/current-date-indicator.src.js +28 -13
  861. package/modules/cylinder.js +2 -2
  862. package/modules/cylinder.src.js +67 -48
  863. package/modules/data-sorting.js +2 -2
  864. package/modules/data-sorting.src.js +28 -13
  865. package/modules/data-tools.js +2 -2
  866. package/modules/data-tools.src.js +50 -18
  867. package/modules/data.js +2 -2
  868. package/modules/data.src.js +50 -35
  869. package/modules/datagrouping.js +2 -2
  870. package/modules/datagrouping.src.js +42 -26
  871. package/modules/debugger.js +2 -2
  872. package/modules/debugger.src.js +28 -13
  873. package/modules/dependency-wheel.d.ts +7 -1
  874. package/modules/dependency-wheel.js +2 -2
  875. package/modules/dependency-wheel.src.d.ts +7 -1
  876. package/modules/dependency-wheel.src.js +440 -28
  877. package/modules/dotplot.js +2 -2
  878. package/modules/dotplot.src.js +36 -19
  879. package/modules/drag-panes.js +2 -2
  880. package/modules/drag-panes.src.js +28 -13
  881. package/modules/draggable-points.js +2 -2
  882. package/modules/draggable-points.src.js +30 -17
  883. package/modules/drilldown.js +2 -2
  884. package/modules/drilldown.src.js +49 -35
  885. package/modules/dumbbell.js +2 -2
  886. package/modules/dumbbell.src.js +86 -40
  887. package/modules/export-data.d.ts +66 -1
  888. package/modules/export-data.js +2 -2
  889. package/modules/export-data.src.d.ts +66 -1
  890. package/modules/export-data.src.js +56 -36
  891. package/modules/exporting.d.ts +0 -103
  892. package/modules/exporting.js +2 -2
  893. package/modules/exporting.src.d.ts +0 -103
  894. package/modules/exporting.src.js +97 -50
  895. package/modules/flowmap.js +3 -2
  896. package/modules/flowmap.src.js +52 -26
  897. package/modules/full-screen.js +2 -2
  898. package/modules/full-screen.src.js +31 -16
  899. package/modules/funnel.d.ts +3 -3
  900. package/modules/funnel.js +2 -2
  901. package/modules/funnel.src.d.ts +3 -3
  902. package/modules/funnel.src.js +82 -50
  903. package/modules/funnel3d.js +2 -2
  904. package/modules/funnel3d.src.js +56 -40
  905. package/modules/gantt.d.ts +47 -0
  906. package/modules/gantt.js +8 -8
  907. package/modules/gantt.src.d.ts +47 -0
  908. package/modules/gantt.src.js +602 -156
  909. package/modules/geoheatmap.d.ts +13 -12
  910. package/modules/geoheatmap.js +2 -2
  911. package/modules/geoheatmap.src.d.ts +13 -12
  912. package/modules/geoheatmap.src.js +44 -29
  913. package/modules/grid-axis.js +2 -2
  914. package/modules/grid-axis.src.js +42 -20
  915. package/modules/heatmap.d.ts +0 -12
  916. package/modules/heatmap.js +4 -4
  917. package/modules/heatmap.src.d.ts +0 -12
  918. package/modules/heatmap.src.js +102 -71
  919. package/modules/heikinashi.js +2 -2
  920. package/modules/heikinashi.src.js +31 -16
  921. package/modules/histogram-bellcurve.js +2 -2
  922. package/modules/histogram-bellcurve.src.js +70 -38
  923. package/modules/hollowcandlestick.js +2 -2
  924. package/modules/hollowcandlestick.src.js +45 -30
  925. package/modules/item-series.js +2 -2
  926. package/modules/item-series.src.js +81 -21
  927. package/modules/lollipop.js +2 -2
  928. package/modules/lollipop.src.js +36 -21
  929. package/modules/map.d.ts +0 -20
  930. package/modules/map.js +4 -4
  931. package/modules/map.src.d.ts +0 -20
  932. package/modules/map.src.js +212 -140
  933. package/modules/marker-clusters.js +2 -2
  934. package/modules/marker-clusters.src.js +31 -18
  935. package/modules/mouse-wheel-zoom.js +2 -2
  936. package/modules/mouse-wheel-zoom.src.js +60 -18
  937. package/modules/navigator.d.ts +47 -0
  938. package/modules/navigator.js +2 -2
  939. package/modules/navigator.src.d.ts +47 -0
  940. package/modules/navigator.src.js +556 -95
  941. package/modules/networkgraph.js +2 -2
  942. package/modules/networkgraph.src.js +99 -57
  943. package/modules/no-data-to-display.js +2 -2
  944. package/modules/no-data-to-display.src.js +31 -16
  945. package/modules/non-cartesian-zoom.js +2 -2
  946. package/modules/non-cartesian-zoom.src.js +28 -13
  947. package/modules/offline-exporting.js +2 -2
  948. package/modules/offline-exporting.src.js +67 -25
  949. package/modules/organization.js +4 -2
  950. package/modules/organization.src.js +75 -30
  951. package/modules/parallel-coordinates.js +2 -2
  952. package/modules/parallel-coordinates.src.js +37 -19
  953. package/modules/pareto.js +2 -2
  954. package/modules/pareto.src.js +45 -29
  955. package/modules/pathfinder.js +2 -2
  956. package/modules/pathfinder.src.js +37 -21
  957. package/modules/pattern-fill.js +2 -2
  958. package/modules/pattern-fill.src.js +34 -17
  959. package/modules/pictorial.js +2 -2
  960. package/modules/pictorial.src.js +62 -43
  961. package/modules/pointandfigure.js +2 -2
  962. package/modules/pointandfigure.src.js +35 -19
  963. package/modules/price-indicator.js +2 -2
  964. package/modules/price-indicator.src.js +32 -16
  965. package/modules/pyramid3d.js +2 -2
  966. package/modules/pyramid3d.src.js +31 -16
  967. package/modules/renko.js +2 -2
  968. package/modules/renko.src.js +34 -19
  969. package/modules/sankey.js +2 -2
  970. package/modules/sankey.src.js +80 -51
  971. package/modules/series-label.js +2 -2
  972. package/modules/series-label.src.js +42 -28
  973. package/modules/series-on-point.js +2 -2
  974. package/modules/series-on-point.src.js +40 -25
  975. package/modules/solid-gauge.d.ts +3 -3
  976. package/modules/solid-gauge.js +2 -2
  977. package/modules/solid-gauge.src.d.ts +3 -3
  978. package/modules/solid-gauge.src.js +54 -33
  979. package/modules/sonification.js +2 -2
  980. package/modules/sonification.src.js +56 -40
  981. package/modules/static-scale.js +2 -2
  982. package/modules/static-scale.src.js +28 -13
  983. package/modules/stock-tools.js +3 -3
  984. package/modules/stock-tools.src.js +90 -43
  985. package/modules/stock.d.ts +47 -0
  986. package/modules/stock.js +6 -6
  987. package/modules/stock.src.d.ts +47 -0
  988. package/modules/stock.src.js +650 -185
  989. package/modules/streamgraph.js +2 -2
  990. package/modules/streamgraph.src.js +31 -16
  991. package/modules/sunburst.js +2 -2
  992. package/modules/sunburst.src.js +137 -71
  993. package/modules/textpath.js +2 -2
  994. package/modules/textpath.src.js +28 -13
  995. package/modules/tiledwebmap.js +3 -3
  996. package/modules/tiledwebmap.src.js +65 -32
  997. package/modules/tilemap.js +2 -2
  998. package/modules/tilemap.src.js +41 -25
  999. package/modules/timeline.js +2 -2
  1000. package/modules/timeline.src.js +47 -25
  1001. package/modules/treegraph.js +2 -2
  1002. package/modules/treegraph.src.js +83 -50
  1003. package/modules/treegrid.js +2 -2
  1004. package/modules/treegrid.src.js +76 -44
  1005. package/modules/treemap.js +2 -2
  1006. package/modules/treemap.src.js +116 -62
  1007. package/modules/variable-pie.js +2 -2
  1008. package/modules/variable-pie.src.js +39 -21
  1009. package/modules/variwide.js +2 -2
  1010. package/modules/variwide.src.js +32 -17
  1011. package/modules/vector.js +2 -2
  1012. package/modules/vector.src.js +37 -24
  1013. package/modules/venn.js +2 -2
  1014. package/modules/venn.src.js +42 -26
  1015. package/modules/windbarb.js +2 -2
  1016. package/modules/windbarb.src.js +51 -38
  1017. package/modules/wordcloud.js +2 -2
  1018. package/modules/wordcloud.src.js +34 -17
  1019. package/modules/xrange.js +2 -2
  1020. package/modules/xrange.src.js +43 -28
  1021. package/options/abands.d.ts +722 -83
  1022. package/options/abands.src.d.ts +722 -83
  1023. package/options/ad.d.ts +381 -26
  1024. package/options/ad.src.d.ts +381 -26
  1025. package/options/ao.d.ts +744 -70
  1026. package/options/ao.src.d.ts +744 -70
  1027. package/options/apo.d.ts +381 -26
  1028. package/options/apo.src.d.ts +381 -26
  1029. package/options/arcdiagram.d.ts +80 -534
  1030. package/options/arcdiagram.src.d.ts +80 -534
  1031. package/options/area.d.ts +432 -129
  1032. package/options/area.src.d.ts +432 -129
  1033. package/options/arearange.d.ts +46 -4
  1034. package/options/arearange.src.d.ts +46 -4
  1035. package/options/areaspline.d.ts +141 -866
  1036. package/options/areaspline.src.d.ts +141 -866
  1037. package/options/areasplinerange.d.ts +221 -871
  1038. package/options/areasplinerange.src.d.ts +221 -871
  1039. package/options/aroon.d.ts +432 -124
  1040. package/options/aroon.src.d.ts +432 -124
  1041. package/options/aroonoscillator.d.ts +127 -689
  1042. package/options/aroonoscillator.src.d.ts +127 -689
  1043. package/options/atr.d.ts +381 -71
  1044. package/options/atr.src.d.ts +381 -71
  1045. package/options/bar.d.ts +103 -12
  1046. package/options/bar.src.d.ts +103 -12
  1047. package/options/bb.d.ts +87 -762
  1048. package/options/bb.src.d.ts +87 -762
  1049. package/options/bellcurve.d.ts +87 -364
  1050. package/options/bellcurve.src.d.ts +87 -364
  1051. package/options/boxplot.d.ts +82 -13
  1052. package/options/boxplot.src.d.ts +82 -13
  1053. package/options/bubble.d.ts +83 -874
  1054. package/options/bubble.src.d.ts +83 -874
  1055. package/options/bullet.d.ts +354 -717
  1056. package/options/bullet.src.d.ts +354 -717
  1057. package/options/candlestick.d.ts +99 -1214
  1058. package/options/candlestick.src.d.ts +99 -1214
  1059. package/options/cci.d.ts +381 -26
  1060. package/options/cci.src.d.ts +381 -26
  1061. package/options/chaikin.d.ts +728 -83
  1062. package/options/chaikin.src.d.ts +728 -83
  1063. package/options/cmf.d.ts +381 -26
  1064. package/options/cmf.src.d.ts +381 -26
  1065. package/options/cmo.d.ts +730 -79
  1066. package/options/cmo.src.d.ts +730 -79
  1067. package/options/column.d.ts +1265 -99
  1068. package/options/column.src.d.ts +1265 -99
  1069. package/options/columnpyramid.d.ts +102 -1158
  1070. package/options/columnpyramid.src.d.ts +102 -1158
  1071. package/options/columnrange.d.ts +952 -95
  1072. package/options/columnrange.src.d.ts +952 -95
  1073. package/options/contour.d.ts +31 -443
  1074. package/options/contour.src.d.ts +31 -443
  1075. package/options/cylinder.d.ts +100 -12
  1076. package/options/cylinder.src.d.ts +100 -12
  1077. package/options/dema.d.ts +80 -736
  1078. package/options/dema.src.d.ts +80 -736
  1079. package/options/dependencywheel.d.ts +599 -218
  1080. package/options/dependencywheel.src.d.ts +599 -218
  1081. package/options/disparityindex.d.ts +84 -365
  1082. package/options/disparityindex.src.d.ts +84 -365
  1083. package/options/dmi.d.ts +86 -775
  1084. package/options/dmi.src.d.ts +86 -775
  1085. package/options/dpo.d.ts +83 -365
  1086. package/options/dpo.src.d.ts +83 -365
  1087. package/options/dumbbell.d.ts +27 -4
  1088. package/options/dumbbell.src.d.ts +27 -4
  1089. package/options/ema.d.ts +81 -703
  1090. package/options/ema.src.d.ts +81 -703
  1091. package/options/errorbar.d.ts +91 -1161
  1092. package/options/errorbar.src.d.ts +91 -1161
  1093. package/options/flags.d.ts +98 -1192
  1094. package/options/flags.src.d.ts +98 -1192
  1095. package/options/flowmap.d.ts +48 -373
  1096. package/options/flowmap.src.d.ts +48 -373
  1097. package/options/funnel.d.ts +40 -3
  1098. package/options/funnel.src.d.ts +40 -3
  1099. package/options/gantt.d.ts +37 -40
  1100. package/options/gantt.src.d.ts +37 -40
  1101. package/options/gauge.d.ts +398 -472
  1102. package/options/gauge.src.d.ts +398 -472
  1103. package/options/geoheatmap.d.ts +462 -63
  1104. package/options/geoheatmap.src.d.ts +462 -63
  1105. package/options/heatmap.d.ts +31 -380
  1106. package/options/heatmap.src.d.ts +31 -380
  1107. package/options/heikinashi.d.ts +20 -2
  1108. package/options/heikinashi.src.d.ts +20 -2
  1109. package/options/hlc.d.ts +20 -2
  1110. package/options/hlc.src.d.ts +20 -2
  1111. package/options/ikh.d.ts +750 -103
  1112. package/options/ikh.src.d.ts +750 -103
  1113. package/options/item.d.ts +34 -74
  1114. package/options/item.src.d.ts +34 -74
  1115. package/options/keltnerchannels.d.ts +87 -708
  1116. package/options/keltnerchannels.src.d.ts +87 -708
  1117. package/options/klinger.d.ts +34 -365
  1118. package/options/klinger.src.d.ts +34 -365
  1119. package/options/line.d.ts +151 -851
  1120. package/options/line.src.d.ts +151 -851
  1121. package/options/linearregression.d.ts +960 -85
  1122. package/options/linearregression.src.d.ts +960 -85
  1123. package/options/linearregressionangle.d.ts +96 -699
  1124. package/options/linearregressionangle.src.d.ts +96 -699
  1125. package/options/linearregressionintercept.d.ts +381 -26
  1126. package/options/linearregressionintercept.src.d.ts +381 -26
  1127. package/options/linearregressionslope.d.ts +381 -26
  1128. package/options/linearregressionslope.src.d.ts +381 -26
  1129. package/options/lollipop.d.ts +214 -851
  1130. package/options/lollipop.src.d.ts +214 -851
  1131. package/options/macd.d.ts +386 -83
  1132. package/options/macd.src.d.ts +386 -83
  1133. package/options/map.d.ts +470 -36
  1134. package/options/map.src.d.ts +470 -36
  1135. package/options/mapbubble.d.ts +43 -532
  1136. package/options/mapbubble.src.d.ts +43 -532
  1137. package/options/mapline.d.ts +135 -58
  1138. package/options/mapline.src.d.ts +135 -58
  1139. package/options/mappoint.d.ts +205 -283
  1140. package/options/mappoint.src.d.ts +205 -283
  1141. package/options/mfi.d.ts +772 -82
  1142. package/options/mfi.src.d.ts +772 -82
  1143. package/options/momentum.d.ts +381 -71
  1144. package/options/momentum.src.d.ts +381 -71
  1145. package/options/natr.d.ts +776 -75
  1146. package/options/natr.src.d.ts +776 -75
  1147. package/options/networkgraph.d.ts +184 -207
  1148. package/options/networkgraph.src.d.ts +184 -207
  1149. package/options/obv.d.ts +426 -26
  1150. package/options/obv.src.d.ts +426 -26
  1151. package/options/ohlc.d.ts +77 -14
  1152. package/options/ohlc.src.d.ts +77 -14
  1153. package/options/packedbubble.d.ts +76 -696
  1154. package/options/packedbubble.src.d.ts +76 -696
  1155. package/options/pareto.d.ts +28 -364
  1156. package/options/pareto.src.d.ts +28 -364
  1157. package/options/pc.d.ts +724 -85
  1158. package/options/pc.src.d.ts +724 -85
  1159. package/options/pictorial.d.ts +1093 -58
  1160. package/options/pictorial.src.d.ts +1093 -58
  1161. package/options/pie.d.ts +595 -129
  1162. package/options/pie.src.d.ts +595 -129
  1163. package/options/pivotpoints.d.ts +34 -365
  1164. package/options/pivotpoints.src.d.ts +34 -365
  1165. package/options/pointandfigure.d.ts +10 -50
  1166. package/options/pointandfigure.src.d.ts +10 -50
  1167. package/options/polygon.d.ts +803 -74
  1168. package/options/polygon.src.d.ts +803 -74
  1169. package/options/ppo.d.ts +34 -365
  1170. package/options/ppo.src.d.ts +34 -365
  1171. package/options/priceenvelopes.d.ts +93 -719
  1172. package/options/priceenvelopes.src.d.ts +93 -719
  1173. package/options/psar.d.ts +34 -365
  1174. package/options/psar.src.d.ts +34 -365
  1175. package/options/pyramid.d.ts +35 -3
  1176. package/options/pyramid.src.d.ts +35 -3
  1177. package/options/renko.d.ts +25 -2
  1178. package/options/renko.src.d.ts +25 -2
  1179. package/options/roc.d.ts +78 -712
  1180. package/options/roc.src.d.ts +78 -712
  1181. package/options/rsi.d.ts +34 -365
  1182. package/options/rsi.src.d.ts +34 -365
  1183. package/options/sankey.d.ts +27 -5
  1184. package/options/sankey.src.d.ts +27 -5
  1185. package/options/scatter.d.ts +896 -290
  1186. package/options/scatter.src.d.ts +896 -290
  1187. package/options/series.d.ts +938 -83
  1188. package/options/series.src.d.ts +938 -83
  1189. package/options/slowstochastic.d.ts +381 -26
  1190. package/options/slowstochastic.src.d.ts +381 -26
  1191. package/options/sma.d.ts +729 -79
  1192. package/options/sma.src.d.ts +729 -79
  1193. package/options/solidgauge.d.ts +882 -105
  1194. package/options/solidgauge.src.d.ts +882 -105
  1195. package/options/spline.d.ts +389 -90
  1196. package/options/spline.src.d.ts +389 -90
  1197. package/options/stochastic.d.ts +83 -716
  1198. package/options/stochastic.src.d.ts +83 -716
  1199. package/options/streamgraph.d.ts +97 -364
  1200. package/options/streamgraph.src.d.ts +97 -364
  1201. package/options/sunburst.d.ts +87 -19
  1202. package/options/sunburst.src.d.ts +87 -19
  1203. package/options/supertrend.d.ts +77 -749
  1204. package/options/supertrend.src.d.ts +77 -749
  1205. package/options/tema.d.ts +83 -365
  1206. package/options/tema.src.d.ts +83 -365
  1207. package/options/tiledwebmap.d.ts +13 -72
  1208. package/options/tiledwebmap.src.d.ts +13 -72
  1209. package/options/tilemap.d.ts +372 -533
  1210. package/options/tilemap.src.d.ts +372 -533
  1211. package/options/timeline.d.ts +49 -154
  1212. package/options/timeline.src.d.ts +49 -154
  1213. package/options/treegraph.d.ts +174 -696
  1214. package/options/treegraph.src.d.ts +174 -696
  1215. package/options/treemap.d.ts +468 -1079
  1216. package/options/treemap.src.d.ts +468 -1079
  1217. package/options/trendline.d.ts +381 -26
  1218. package/options/trendline.src.d.ts +381 -26
  1219. package/options/trix.d.ts +712 -82
  1220. package/options/trix.src.d.ts +712 -82
  1221. package/options/variablepie.d.ts +130 -587
  1222. package/options/variablepie.src.d.ts +130 -587
  1223. package/options/variwide.d.ts +1123 -94
  1224. package/options/variwide.src.d.ts +1123 -94
  1225. package/options/vbp.d.ts +57 -383
  1226. package/options/vbp.src.d.ts +57 -383
  1227. package/options/vector.d.ts +22 -58
  1228. package/options/vector.src.d.ts +22 -58
  1229. package/options/venn.d.ts +32 -78
  1230. package/options/venn.src.d.ts +32 -78
  1231. package/options/vwap.d.ts +122 -703
  1232. package/options/vwap.src.d.ts +122 -703
  1233. package/options/waterfall.d.ts +139 -1150
  1234. package/options/waterfall.src.d.ts +139 -1150
  1235. package/options/williamsr.d.ts +381 -76
  1236. package/options/williamsr.src.d.ts +381 -76
  1237. package/options/windbarb.d.ts +39 -2
  1238. package/options/windbarb.src.d.ts +39 -2
  1239. package/options/wma.d.ts +78 -704
  1240. package/options/wma.src.d.ts +78 -704
  1241. package/options/wordcloud.d.ts +98 -595
  1242. package/options/wordcloud.src.d.ts +98 -595
  1243. package/options/xrange.d.ts +166 -1056
  1244. package/options/xrange.src.d.ts +166 -1056
  1245. package/options/zigzag.d.ts +34 -410
  1246. package/options/zigzag.src.d.ts +34 -410
  1247. package/package.json +1 -1
  1248. package/standalone-navigator.js +4 -4
  1249. package/standalone-navigator.src.js +829 -553
  1250. package/themes/adaptive.js +2 -2
  1251. package/themes/adaptive.src.js +33 -18
  1252. package/themes/avocado.js +2 -2
  1253. package/themes/avocado.src.js +28 -13
  1254. package/themes/dark-unica.js +2 -2
  1255. package/themes/dark-unica.src.js +28 -13
  1256. package/themes/grid-light.js +2 -2
  1257. package/themes/grid-light.src.js +28 -13
  1258. package/themes/high-contrast.js +2 -2
  1259. package/themes/high-contrast.src.js +28 -13
  1260. package/themes/sand-signika.js +2 -2
  1261. package/themes/sand-signika.src.js +28 -13
  1262. package/themes/sunset.js +2 -2
  1263. package/themes/sunset.src.js +28 -13
  1264. package/css/.stylelintrc.json +0 -8
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highstock JS v13.0.0 (2026-06-11)
2
+ * Highstock JS v13.0.2 (2026-08-27)
3
3
  * @module highcharts/indicators/indicators-all
4
4
  * @requires highcharts
5
5
  * @requires highcharts/modules/stock
@@ -11,4 +11,4 @@
11
11
  *
12
12
  * A commercial license may be required depending on use,
13
13
  * see www.highcharts.com/license
14
- */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Chart,e._Highcharts.SeriesRegistry,e._Highcharts.dataGrouping.approximations,e._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/indicators/indicators-all",["highcharts/highcharts"],function(e){return t(e,e.Chart,e.SeriesRegistry,e.dataGrouping,["approximations"],e.Color)}):"object"==typeof exports?exports["highcharts/indicators/indicators-all"]=t(e._Highcharts,e._Highcharts.Chart,e._Highcharts.SeriesRegistry,e._Highcharts.dataGrouping.approximations,e._Highcharts.Color):e.Highcharts=t(e.Highcharts,e.Highcharts.Chart,e.Highcharts.SeriesRegistry,e.Highcharts.dataGrouping.approximations,e.Highcharts.Color)}("u"<typeof window?this:window,(e,t,s,a,o)=>(()=>{"use strict";var i,r={512:e=>{e.exports=s},620:e=>{e.exports=o},944:t=>{t.exports=e},956:e=>{e.exports=a},960:e=>{e.exports=t}},n={};function l(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return r[e](s,s.exports,l),s.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var s in t)l.o(t,s)&&!l.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var p={};l.d(p,{default:()=>tE});var u=l(944),h=l.n(u),d=l(960),c=l.n(d);let{setLength:g,splice:m}={convertToNumber:function(e,t){switch(typeof e){case"boolean":return+!!e;case"number":return isNaN(e)&&!t?null:e;default:return isNaN(e=parseFloat(`${e??""}`))&&!t?null:e}},setLength:function(e,t,s){return Array.isArray(e)?(e.length=t,e):e[s?"subarray":"slice"](0,t)},splice:function(e,t,s,a,o=[]){if(Array.isArray(e))return Array.isArray(o)||(o=Array.from(o)),{removed:e.splice(t,s,...o),array:e};let i=Object.getPrototypeOf(e).constructor,r=e[a?"subarray":"slice"](t,t+s),n=new i(e.length-s+o.length);return n.set(e.subarray(0,t),0),n.set(o,t),n.set(e.subarray(t+s),t+o.length),{removed:r,array:n}}},y=class{constructor(e={}){this.isDataTable=!0,this.autoId=!e.id,this.columns={},this.id=e.id||(0,u.uniqueKey)(),this.rowCount=0,this.versionTag=(0,u.uniqueKey)();let t=0;(0,u.objectEach)(e.columns||{},(e,s)=>{this.columns[s]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,(0,u.objectEach)(this.columns,(t,s)=>{t.length!==e&&(this.columns[s]=g(t,e))})}deleteRows(e,t=1){if(t>0&&e<this.rowCount){let s=0;(0,u.objectEach)(this.columns,(a,o)=>{this.columns[o]=m(a,e,t).array,s=a.length}),this.rowCount=s}(0,u.fireEvent)(this,"afterDeleteRows",{rowIndex:e,rowCount:t}),this.versionTag=(0,u.uniqueKey)()}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRowObject(e,t){let s={},a=this.columns;for(let o of(t??(t=Object.keys(this.columns)),t))s[o]=a[o]?.[e];return s}setColumn(e,t=[],s=0,a){this.setColumns({[e]:t},s,a)}setColumns(e,t,s){let a=this.rowCount;(0,u.objectEach)(e,(e,t)=>{this.columns[t]=e.slice(),a=e.length}),this.applyRowCount(a),s?.silent||((0,u.fireEvent)(this,"afterSetColumns"),this.versionTag=(0,u.uniqueKey)())}setRow(e,t=this.rowCount,s,a){var o;let{columns:i}=this,r=s?this.rowCount+1:t+1,n=Object.keys(e);if(a?.addColumns!==!1)for(let e=0,t=n.length;e<t;e++)i[o=n[e]]||(i[o]=Array(this.rowCount));(0,u.objectEach)(i,(a,o)=>{a&&(s?a=m(a,t,0,!0,[e[o]]).array:a[t]=o in e?e[o]:a[t],i[o]=a)}),this.applyRowCount(Math.max(r,this.rowCount)),a?.silent||((0,u.fireEvent)(this,"afterSetRows",{rowIndex:t}),this.versionTag=(0,u.uniqueKey)())}getModified(){return this.modified||this}};var f=l(512),x=l.n(f);let{line:v}=x().seriesTypes,D=(e,t)=>{let s=[],a=e.pointArrayMap,o=t&&e.dataTable.getModified()||e.dataTable;if(!a)return e.getColumn("y",t);let i=a.map(s=>e.getColumn(s,t));for(let e=0;e<o.rowCount;e++){let t=a.map((t,s)=>i[s]?.[e]||0);s.push(t)}return s};class A extends v{destroy(){this.dataEventsToUnbind.forEach(function(e){e()}),super.destroy.apply(this,arguments)}getName(){let e=[],t=this.name;return t||((this.nameComponents||[]).forEach(function(t,s){e.push(this.options.params[t]+(0,u.pick)(this.nameSuffixes[s],""))},this),t=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+e.join(", ")+")":"")),t}getValues(e,t){let s=t.period,a=e.xData||[],o=e.yData,i=o.length,r=[],n=[],l=[],p,h=-1,d=0,c,g=0;if(!(a.length<s)){for((0,u.isArray)(o[0])&&(h=t.index?t.index:0);d<s-1;)g+=h<0?o[d]:o[d][h],d++;for(p=d;p<i;p++)g+=h<0?o[p]:o[p][h],c=[a[p],g/s],r.push(c),n.push(c[0]),l.push(c[1]),g-=h<0?o[p-d]:o[p-d][h];return{values:r,xData:n,yData:l}}}init(e,t){let s=this;super.init.call(s,e,t);let a=(0,u.addEvent)(c(),"afterLinkSeries",function({isUpdating:t}){if(t)return;let a=!!s.dataEventsToUnbind.length;if(!s.linkedParent)return(0,u.error)("Series "+s.options.linkedTo+" not found! Check `linkedTo`.",!1,e);if(!a&&(s.dataEventsToUnbind.push((0,u.addEvent)(s.linkedParent,"updatedData",function(){s.recalculateValues()})),s.calculateOn.xAxis&&s.dataEventsToUnbind.push((0,u.addEvent)(s.linkedParent.xAxis,s.calculateOn.xAxis,function(){s.recalculateValues()}))),"init"===s.calculateOn.chart)s.closestPointRange||s.recalculateValues();else if(!a){let e=(0,u.addEvent)(s.chart,s.calculateOn.chart,function(){s.recalculateValues(),e()})}},{order:0});s.dataEventsToUnbind=[],s.eventsToUnbind.push(a)}recalculateValues(){let e=this.dataTable,t=this.dataTable.rowCount,s=!0,a,o,i=this.linkedParent.yData,r=this.linkedParent.processedYData;this.linkedParent.xData=this.linkedParent.getColumn("x"),this.linkedParent.yData=D(this.linkedParent),this.linkedParent.processedYData=D(this.linkedParent,!0);let n=this.linkedParent.options&&this.linkedParent.dataTable.rowCount&&this.getValues(this.linkedParent,this.options.params)||{values:[],xData:[],yData:[]};n.xData.length=n.values.length,delete this.linkedParent.xData,this.linkedParent.yData=i,this.linkedParent.processedYData=r;let l=this.pointArrayMap||["y"],p={};if(n.yData.forEach(e=>{l.forEach((t,s)=>{let a=p[t]||[];a.push((0,u.isArray)(e)?e[s]:e),p[t]||(p[t]=a)})}),t&&!this.hasGroupedData&&this.visible&&this.points)if(this.cropped){this.xAxis&&(a=this.xAxis.min,o=this.xAxis.max);let t=this.cropData(e,a,o);this.setData(t.modified,!1)}else(this.updateAllPoints||n.xData.length!==t-1&&n.xData.length!==t+1)&&(s=!1,this.setData(new y({columns:{x:n.xData,...p}}),!1));s&&(p.x=n.xData,n.values.reduce((e,t,s)=>(Object.keys(t).forEach(a=>{e[a]||(e[a]=[]),e[a][s]=t[a]}),e),p),e.setColumns(p),delete this.xColumn,delete this.xColumnIsNumbers),this.calculateOn.xAxis&&this.getColumn("x",!0).length&&(this.isDirty=!0,this.redraw()),this.isDirtyData=!!this.linkedSeries.length,(0,u.fireEvent)(this,"updatedData")}processData(){let e=this.options.compareToMain,t=this.linkedParent;super.processData.apply(this,arguments),this.dataModify&&t&&t.dataModify&&t.dataModify.compareValue&&e&&(this.dataModify.compareValue=t.dataModify.compareValue)}}A.defaultOptions=(0,u.merge)(v.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:3,period:14}}),(0,u.extend)(A.prototype,{calculateOn:{chart:"init"},hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],useCommonDataGrouping:!0}),x().registerSeriesType("sma",A);let{sma:S}=x().seriesTypes;class b extends S{accumulatePeriodPoints(e,t,s){let a=0,o=0;for(;o<e;)a+=t<0?s[o]:s[o][t],o++;return a}calculateEma(e,t,s,a,o,i,r){let n=e[s-1],l=i<0?t[s-1]:t[s-1][i];return[n,void 0===o?r:(0,u.correctFloat)(l*a+o*(1-a))]}getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=2/(s+1),n=[],l=[],p=[],h,d,c,g=-1,m=0;if(!(i<s)){for((0,u.isArray)(o[0])&&(g=t.index?t.index:0),m=this.accumulatePeriodPoints(s,g,o)/s,c=s;c<i+1;c++)d=this.calculateEma(a,o,c,r,h,g,m),n.push(d),l.push(d[0]),p.push(d[1]),h=d[1];return{values:n,xData:l,yData:p}}}}b.defaultOptions=(0,u.merge)(S.defaultOptions,{params:{index:3,period:9}}),x().registerSeriesType("ema",b);let{sma:C}=x().seriesTypes;class T extends C{static populateAverage(e,t,s,a,o){let i=t[a][1],r=t[a][2],n=t[a][3],l=s[a],p=n===i&&n===r||i===r?0:(2*n-r-i)/(i-r)*l;return[e[a],p]}getValues(e,t){let s,a,o,i=t.period,r=e.xData,n=e.yData,l=t.volumeSeriesID,p=e.chart.get(l),h=p?.getColumn("y"),d=n?n.length:0,c=[],g=[],m=[];if(!(r.length<=i)||!d||4===n[0].length){if(!p)return void(0,u.error)("Series "+l+" not found! Check `volumeSeriesID`.",!0,e.chart);for(a=i;a<d;a++)s=c.length,o=T.populateAverage(r,n,h,a,i),s>0&&(o[1]+=c[s-1][1]),c.push(o),g.push(o[0]),m.push(o[1]);return{values:c,xData:g,yData:m}}}}T.defaultOptions=(0,u.merge)(C.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),(0,u.extend)(T.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),x().registerSeriesType("ad",T);let{noop:P}=h(),{column:{prototype:M},sma:V}=x().seriesTypes;class k extends V{drawGraph(){let e,t=this.options,s=this.points,a=this.userOptions.color,o=t.greaterBarColor,i=t.lowerBarColor,r=s[0];if(!a&&r)for(e=1,r.color=o;e<s.length;e++)s[e].y>s[e-1].y?s[e].color=o:s[e].y<s[e-1].y?s[e].color=i:s[e].color=s[e-1].color}getValues(e){let t=e.xData||[],s=e.yData||[],a=s.length,o=[],i=[],r=[],n,l,p,h,d,c,g,m,y=0,f=0;if(!(t.length<=34)&&(0,u.isArray)(s[0])&&4===s[0].length){for(g=0;g<33;g++)c=(s[g][1]+s[g][2])/2,g>=29&&(f=(0,u.correctFloat)(f+c)),y=(0,u.correctFloat)(y+c);for(m=33;m<a;m++)c=(s[m][1]+s[m][2])/2,f=(0,u.correctFloat)(f+c),y=(0,u.correctFloat)(y+c),n=f/5,l=y/34,p=(0,u.correctFloat)(n-l),o.push([t[m],p]),i.push(t[m]),r.push(p),h=m+1-5,d=m+1-34,f=(0,u.correctFloat)(f-(s[h][1]+s[h][2])/2),y=(0,u.correctFloat)(y-(s[d][1]+s[d][2])/2);return{values:o,xData:i,yData:r}}}}k.defaultOptions=(0,u.merge)(V.defaultOptions,{params:{index:void 0,period:void 0},greaterBarColor:"var(--highcharts-positive-color)",lowerBarColor:"var(--highcharts-negative-color)",threshold:0,groupPadding:.2,pointPadding:.2,crisp:!1,states:{hover:{halo:{size:0}}}}),(0,u.extend)(k.prototype,{nameBase:"AO",nameComponents:void 0,markerAttribs:P,getColumnMetrics:M.getColumnMetrics,crispCol:M.crispCol,translate:M.translate,drawPoints:M.drawPoints}),x().registerSeriesType("ao",k);let{sma:{prototype:O}}=x().seriesTypes;!function(e){let t=["bottomLine"],s=["top","bottom"],a=["top"];function o(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function i(e,t){let s=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&s.push(o(e))}),s}function r(){let e=this,t=e.pointValKey,s=e.linesApiNames,a=e.areaLinesNames,r=e.points,n=e.options,l=e.graph,p={options:{gapSize:n.gapSize}},h=[],d=i(e,t),c=r.length,g;if(d.forEach((e,t)=>{for(h[t]=[];c--;)g=r[c],h[t].push({x:g.x,plotX:g.plotX,plotY:g[e],isNull:!(0,u.defined)(g[e])});c=r.length}),e.userOptions.fillColor&&a.length){let t=h[d.indexOf(o(a[0]))],s=1===a.length?r:h[d.indexOf(o(a[1]))],i=e.color;e.points=s,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=(0,u.merge)(r,p),e.graph=e.area,e.fillGraph=!0,O.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=i}s.forEach((t,s)=>{h[s]?(e.points=h[s],n[t]?e.options=(0,u.merge)(n[t].styles,p):(0,u.error)('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],O.drawGraph.call(e),e["graph"+t]=e.graph):(0,u.error)('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=r,e.options=n,e.graph=l,O.drawGraph.call(e)}function n(e){let t,s=[],a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=O.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",s=O.getGraphPath.call(this,e),a=t.slice(0,s.length);for(let e=a.length-1;e>=0;e--)s.push(a[e])}}else s=O.getGraphPath.apply(this,arguments);return s}function l(e){let t=[];return(this.pointArrayMap||[]).forEach(s=>{t.push(e[s])}),t}function p(){let e=this.pointArrayMap,t=[],s;t=i(this),O.translate.apply(this,arguments),this.points.forEach(a=>{e.forEach((e,o)=>{s=a[e],this.dataModify&&(s=this.dataModify.modifyValue(s)),null!==s&&(a[t[o]]=this.yAxis.toPixels(s,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||s.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||a.slice(),o.drawGraph=r,o.getGraphPath=n,o.toYData=l,o.translate=p,e}}(i||(i={}));let L=i,{sma:w}=x().seriesTypes;function E(e,t){let s=e[0],a=0,o;for(o=1;o<e.length;o++)("max"===t&&e[o]>=s||"min"===t&&e[o]<=s)&&(s=e[o],a=o);return a}class I extends w{getValues(e,t){let s,a,o,i,r,n=t.period,l=e.xData,p=e.yData,h=p?p.length:0,d=[],c=[],g=[];for(i=n-1;i<h;i++)o=E((r=p.slice(i-n+1,i+2)).map(function(e){return(0,u.pick)(e[2],e)}),"min"),s=E(r.map(function(e){return(0,u.pick)(e[1],e)}),"max")/n*100,a=o/n*100,l[i+1]&&(d.push([l[i+1],s,a]),c.push(l[i+1]),g.push([s,a]));return{values:d,xData:c,yData:g}}}I.defaultOptions=(0,u.merge)(w.defaultOptions,{params:{index:void 0,period:25},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Aroon Up: {point.y}<br/>Aroon Down: {point.aroonDown}<br/>'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(I.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),L.compose(I),x().registerSeriesType("aroon",I);let{aroon:N}=x().seriesTypes;class F extends N{getValues(e,t){let s,a,o=[],i=[],r=[],n=super.getValues.call(this,e,t);for(a=0;a<n.yData.length;a++)s=n.yData[a][0]-n.yData[a][1],o.push([n.xData[a],s]),i.push(n.xData[a]),r.push(s);return{values:o,xData:i,yData:r}}}F.defaultOptions=(0,u.merge)(N.defaultOptions,{tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b>: {point.y}'}}),(0,u.extend)(F.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),L.compose(N),x().registerSeriesType("aroonoscillator",F);let{sma:B}=x().seriesTypes;function G(e,t){return Math.max(e[1]-e[2],void 0===t?0:Math.abs(e[1]-t[3]),void 0===t?0:Math.abs(e[2]-t[3]))}class W extends B{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[[a[0],o[0]]],n=[],l=[],p=[],h,d,c=0,g=1,m=0;if(!(a.length<=s)&&(0,u.isArray)(o[0])&&4===o[0].length){for(d=1;d<=i;d++){var y,f,x,v,D;!function(e,t,s,a){let o=t[a],i=s[a];e.push([o,i])}(r,a,o,d),s<g?(c=(y=a,f=o,x=d,v=s,D=c,h=[y[x-1],(D*(v-1)+G(f[x-1],f[x-2]))/v])[1],n.push(h),l.push(h[0]),p.push(h[1])):(s===g?(c=m/(d-1),n.push([a[d-1],c]),l.push(a[d-1]),p.push(c)):m+=G(o[d-1],o[d-2]),g++)}return{values:n,xData:l,yData:p}}}}W.defaultOptions=(0,u.merge)(B.defaultOptions,{params:{index:void 0}}),x().registerSeriesType("atr",W);let{sma:z}=x().seriesTypes;class Y extends z{init(){x().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=(0,u.merge)({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l,p,h,d=t.period,c=t.standardDeviation,g=[],m=[],y=e.xData,f=e.yData,v=f?f.length:0,D=[];if(y.length<d)return;let A=(0,u.isArray)(f[0]);for(h=d;h<=v;h++)r=y.slice(h-d,h),n=f.slice(h-d,h),i=(p=x().seriesTypes.sma.prototype.getValues.call(this,{xData:r,yData:n},t)).xData[0],s=p.yData[0],l=function(e,t,s,a){let o=e.length,i=0,r,n=0;for(;i<o;i++)n+=(r=(s?e[i][t]:e[i])-a)*r;return Math.sqrt(n/=o-1)}(n,t.index,A,s),a=s+c*l,o=s-c*l,D.push([i,a,s,o]),g.push(i),m.push([a,s,o]);return{values:D,xData:g,yData:m}}}Y.defaultOptions=(0,u.merge)(z.defaultOptions,{params:{period:20,standardDeviation:2,index:3},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),(0,u.extend)(Y.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","standardDeviation"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),L.compose(Y),x().registerSeriesType("bb",Y);let{sma:X}=x().seriesTypes;class R extends X{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p=[],h,d,c=[],g,m=1,y,f,x,v;if(!(a.length<=s)&&(0,u.isArray)(o[0])&&4===o[0].length){for(;m<s;)d=o[m-1],r.push((d[1]+d[2]+d[3])/3),m++;for(v=s;v<=i;v++)f=((d=o[v-1])[1]+d[2]+d[3])/3,g=r.push(f),y=(c=r.slice(g-s)).reduce(function(e,t){return e+t},0)/s,x=function(e,t){let s=e.length,a=0,o;for(o=0;o<s;o++)a+=Math.abs(t-e[o]);return a}(c,y)/s,h=(f-y)/(.015*x),n.push([a[v-1],h]),l.push(a[v-1]),p.push(h);return{values:n,xData:l,yData:p}}}}R.defaultOptions=(0,u.merge)(X.defaultOptions,{params:{index:void 0}}),x().registerSeriesType("cci",R);let{sma:K}=x().seriesTypes;class j extends K{constructor(){super(...arguments),this.nameBase="Chaikin Money Flow"}isValid(){let e=this.chart,t=this.options,s=this.linkedParent,a=this.volumeSeries||(this.volumeSeries=e.get(t.params.volumeSeriesID)),o=s?.pointArrayMap?.length===4;function i(e){return e.dataTable.rowCount>=t.params.period}return!!(s&&a&&i(s)&&i(a)&&o)}getValues(e,t){if(this.isValid())return this.getMoneyFlow(e.xData,e.yData,this.volumeSeries.getColumn("y"),t.period)}getMoneyFlow(e,t,s,a){let o=t.length,i=[],r=[],n=[],l=[],p,u,h=-1,d=0,c=0;function g(e,t){let s=e[1],a=e[2],o=e[3];return null!==t&&null!==s&&null!==a&&null!==o&&s!==a?(o-a-(s-o))/(s-a)*t:(h=p,null)}if(a>0&&a<=o){for(p=0;p<a;p++)i[p]=g(t[p],s[p]),d+=s[p],c+=i[p];for(r.push(e[p-1]),n.push(p-h>=a&&0!==d?c/d:null),l.push([r[0],n[0]]);p<o;p++)i[p]=g(t[p],s[p]),d-=s[p-a],d+=s[p],c-=i[p-a],c+=i[p],u=[e[p],p-h>=a?c/d:null],r.push(u[0]),n.push(u[1]),l.push([u[0],u[1]])}return{values:l,xData:r,yData:n}}}j.defaultOptions=(0,u.merge)(K.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),x().registerSeriesType("cmf",j);let{sma:H}=x().seriesTypes;class U extends H{calculateDM(e,t,s){let a,o=e[t][1],i=e[t][2],r=e[t-1][1],n=e[t-1][2];return a=o-r>n-i?s?Math.max(o-r,0):0:s?0:Math.max(n-i,0),(0,u.correctFloat)(a)}calculateDI(e,t){return e/t*100}calculateDX(e,t){return(0,u.correctFloat)(Math.abs(e-t)/Math.abs(e+t)*100)}smoothValues(e,t,s){return(0,u.correctFloat)(e-e/s+t)}getTR(e,t){return(0,u.correctFloat)(Math.max(e[1]-e[2],t?Math.abs(e[1]-t[3]):0,t?Math.abs(e[2]-t[3]):0))}getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[];if(a.length<=s||!(0,u.isArray)(o[0])||4!==o[0].length)return;let p=0,h=0,d=0,c;for(c=1;c<i;c++){let e,t,i,u,g,m,y,f,x;c<=s?(u=this.calculateDM(o,c,!0),g=this.calculateDM(o,c),m=this.getTR(o[c],o[c-1]),p+=u,h+=g,d+=m,c===s&&(y=this.calculateDI(p,d),f=this.calculateDI(h,d),x=this.calculateDX(p,h),r.push([a[c],x,y,f]),n.push(a[c]),l.push([x,y,f]))):(u=this.calculateDM(o,c,!0),g=this.calculateDM(o,c),m=this.getTR(o[c],o[c-1]),e=this.smoothValues(p,u,s),t=this.smoothValues(h,g,s),i=this.smoothValues(d,m,s),p=e,h=t,d=i,y=this.calculateDI(p,d),f=this.calculateDI(h,d),x=this.calculateDX(p,h),r.push([a[c],x,y,f]),n.push(a[c]),l.push([x,y,f]))}return{values:r,xData:n,yData:l}}}U.defaultOptions=(0,u.merge)(H.defaultOptions,{params:{index:void 0},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color: {point.color}">●</span><b> {series.name}</b><br/><span style="color: {point.color}">DX</span>: {point.y}<br/><span style="color: {point.series.options.plusDILine.styles.lineColor}">+DI</span>: {point.plusDI}<br/><span style="color: {point.series.options.minusDILine.styles.lineColor}">-DI</span>: {point.minusDI}<br/>'},plusDILine:{styles:{lineWidth:1,lineColor:"var(--highcharts-positive-color)"}},minusDILine:{styles:{lineWidth:1,lineColor:"var(--highcharts-negative-color)"}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(U.prototype,{areaLinesNames:[],nameBase:"DMI",linesApiNames:["plusDILine","minusDILine"],pointArrayMap:["y","plusDI","minusDI"],parallelArrays:["x","y","plusDI","minusDI"],pointValKey:"y"}),L.compose(U),x().registerSeriesType("dmi",U);let{sma:Z}=x().seriesTypes;function _(e,t,s,a,o){let i=(0,u.pick)(t[s][a],t[s]);return o?(0,u.correctFloat)(e-i):(0,u.correctFloat)(e+i)}class q extends Z{getValues(e,t){let s=t.period,a=t.index,o=Math.floor(s/2+1),i=s+o,r=e.xData||[],n=e.yData||[],l=n.length,p=[],h=[],d=[],c,g,m,y,f,x=0;if(!(r.length<=i)){for(y=0;y<s-1;y++)x=_(x,n,y,a);for(f=0;f<=l-i;f++)g=f+s-1,m=f+i-1,x=_(x,n,g,a),c=(0,u.pick)(n[m][a],n[m])-x/s,x=_(x,n,f,a,!0),p.push([r[m],c]),h.push(r[m]),d.push(c);return{values:p,xData:h,yData:d}}}}q.defaultOptions=(0,u.merge)(Z.defaultOptions,{params:{index:0,period:21}}),(0,u.extend)(q.prototype,{nameBase:"DPO"}),x().registerSeriesType("dpo",q);let{ema:$}=x().seriesTypes;class J extends ${getValues(e,t){let s,a,o=t.periods,i=t.period,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0])return void(0,u.error)('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."');let p=T.prototype.getValues.call(this,e,{volumeSeriesID:t.volumeSeriesID,period:i});if(!p)return;let h=super.getValues.call(this,p,{period:o[0]}),d=super.getValues.call(this,p,{period:o[1]});if(!h||!d)return;let c=o[1]-o[0];for(a=0;a<d.yData.length;a++)s=(0,u.correctFloat)(h.yData[a+c]-d.yData[a]),r.push([d.xData[a],s]),n.push(d.xData[a]),l.push(s);return{values:r,xData:n,yData:l}}}J.defaultOptions=(0,u.merge)($.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",period:9,periods:[3,10]}}),(0,u.extend)(J.prototype,{nameBase:"Chaikin Osc",nameComponents:["periods"]}),x().registerSeriesType("chaikin",J);let{sma:Q}=x().seriesTypes;class ee extends Q{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p,h=t.index,d;if(a.length<s)return;(0,u.isNumber)(o[0])?d=o:(h=Math.min(h,o[0].length-1),d=o.map(e=>e[h]));let c=0,g=0,m=0,y;for(let e=s;e>0;e--)d[e]>d[e-1]?g+=d[e]-d[e-1]:d[e]<d[e-1]&&(m+=d[e-1]-d[e]);for(y=g+m>0?100*(g-m)/(g+m):0,n.push(a[s]),l.push(y),r.push([a[s],y]),p=s+1;p<i;p++)c=Math.abs(d[p-s-1]-d[p-s]),d[p]>d[p-1]?g+=d[p]-d[p-1]:d[p]<d[p-1]&&(m+=d[p-1]-d[p]),d[p-s]>d[p-s-1]?g-=c:m-=c,y=g+m>0?100*(g-m)/(g+m):0,n.push(a[p]),l.push(y),r.push([a[p],y]);return{values:r,xData:n,yData:l}}}ee.defaultOptions=(0,u.merge)(Q.defaultOptions,{params:{period:20,index:3}}),x().registerSeriesType("cmo",ee);let{ema:et}=x().seriesTypes;class es extends et{getEMA(e,t,s,a,o,i){return super.calculateEma(i||[],e,void 0===o?1:o,this.EMApercent,t,void 0===a?-1:a,s)}getValues(e,t){let s=t.period,a=[],o=2*s,i=e.xData,r=e.yData,n=r?r.length:0,l=[],p=[],h=[],d=0,c=0,g,m,y,f,x=-1,v,D=0;if(this.EMApercent=2/(s+1),!(n<2*s-1)){for((0,u.isArray)(r[0])&&(x=t.index?t.index:0),D=(d=super.accumulatePeriodPoints(s,x,r))/s,d=0,f=s;f<n+2;f++)f<n+1&&(c=this.getEMA(r,m,D,x,f)[1],a.push(c)),m=c,f<o?d+=c:(f===o&&(D=d/s),c=a[f-s-1],g=this.getEMA([c],y,D)[1],v=[i[f-2],(0,u.correctFloat)(2*c-g)],l.push(v),p.push(v[0]),h.push(v[1]),y=g);return{values:l,xData:p,yData:h}}}}es.defaultOptions=(0,u.merge)(et.defaultOptions),x().registerSeriesType("dema",es);let{ema:ea}=x().seriesTypes;class eo extends ea{getEMA(e,t,s,a,o,i){return super.calculateEma(i||[],e,void 0===o?1:o,this.EMApercent,t,void 0===a?-1:a,s)}getTemaPoint(e,t,s,a){return[e[a-3],(0,u.correctFloat)(3*s.level1-3*s.level2+s.level3)]}getValues(e,t){let s=t.period,a=2*s,o=3*s,i=e.xData,r=e.yData,n=r?r.length:0,l=[],p=[],h=[],d=[],c=[],g={},m=-1,y=0,f=0,x,v,D,A;if(this.EMApercent=2/(s+1),!(n<3*s-2)){for((0,u.isArray)(r[0])&&(m=t.index?t.index:0),f=(y=super.accumulatePeriodPoints(s,m,r))/s,y=0,D=s;D<n+3;D++)D<n+1&&(g.level1=this.getEMA(r,x,f,m,D)[1],d.push(g.level1)),x=g.level1,D<a?y+=g.level1:(D===a&&(f=y/s,y=0),g.level1=d[D-s-1],g.level2=this.getEMA([g.level1],v,f)[1],c.push(g.level2),v=g.level2,D<o?y+=g.level2:(D===o&&(f=y/s),D===n+1&&(g.level1=d[D-s-1],g.level2=this.getEMA([g.level1],v,f)[1],c.push(g.level2)),g.level1=d[D-s-2],g.level2=c[D-2*s-1],g.level3=this.getEMA([g.level2],g.prevLevel3,f)[1],(A=this.getTemaPoint(i,o,g,D))&&(l.push(A),p.push(A[0]),h.push(A[1])),g.prevLevel3=g.level3));return{values:l,xData:p,yData:h}}}}eo.defaultOptions=(0,u.merge)(ea.defaultOptions),x().registerSeriesType("tema",eo);let{tema:ei}=x().seriesTypes;class er extends ei{getTemaPoint(e,t,s,a){if(a>t)return[e[a-3],0!==s.prevLevel3?(0,u.correctFloat)(s.level3-s.prevLevel3)/s.prevLevel3*100:null]}}er.defaultOptions=(0,u.merge)(ei.defaultOptions),x().registerSeriesType("trix",er);let{ema:en}=x().seriesTypes;class el extends en{getValues(e,t){let s,a,o=t.periods,i=t.index,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0])return void(0,u.error)('Error: "APO requires two periods. Notice, first period should be lower than the second one."');let p=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!p||!h)return;let d=o[1]-o[0];for(a=0;a<h.yData.length;a++)s=p.yData[a+d]-h.yData[a],r.push([h.xData[a],s]),n.push(h.xData[a]),l.push(s);return{values:r,xData:n,yData:l}}}el.defaultOptions=(0,u.merge)(en.defaultOptions,{params:{period:void 0,periods:[10,20]}}),(0,u.extend)(el.prototype,{nameBase:"APO",nameComponents:["periods"]}),x().registerSeriesType("apo",el);var ep=l(956),eu=l.n(ep),eh=l(620);let{parse:ed}=l.n(eh)(),{sma:ec}=x().seriesTypes;function eg(e){return{high:e.reduce(function(e,t){return Math.max(e,t[1])},-1/0),low:e.reduce(function(e,t){return Math.min(e,t[2])},1/0)}}function em(e){let t=e.indicator;t.points=e.points,t.nextPoints=e.nextPoints,t.color=e.color,t.options=(0,u.merge)(e.options.senkouSpan.styles,e.gap),t.graph=e.graph,t.fillGraph=!0,x().seriesTypes.sma.prototype.drawGraph.call(t)}class ey extends ec{constructor(){super(...arguments),this.data=[],this.options={},this.points=[],this.graphCollection=[]}init(){super.init.apply(this,arguments),this.options=(0,u.merge)({tenkanLine:{styles:{lineColor:this.color}},kijunLine:{styles:{lineColor:this.color}},chikouLine:{styles:{lineColor:this.color}},senkouSpanA:{styles:{lineColor:this.color,fill:ed(this.color).setOpacity(.5).get()}},senkouSpanB:{styles:{lineColor:this.color,fill:ed(this.color).setOpacity(.5).get()}},senkouSpan:{styles:{fill:ed(this.color).setOpacity(.2).get()}}},this.options)}toYData(e){return[e.tenkanSen,e.kijunSen,e.chikouSpan,e.senkouSpanA,e.senkouSpanB]}translate(){for(let e of(x().seriesTypes.sma.prototype.translate.apply(this),this.points))for(let t of this.pointArrayMap){let s=e[t];(0,u.isNumber)(s)&&(e["plot"+t]=this.yAxis.toPixels(s,!0),e.plotY=e["plot"+t],e.tooltipPos=[e.plotX,e["plot"+t]],e.isNull=!1)}}drawGraph(){let e=this,t=e.points,s=e.options,a=e.graph,o=e.color,i={options:{gapSize:s.gapSize}},r=e.pointArrayMap.length,n=[[],[],[],[],[],[]],l={tenkanLine:n[0],kijunLine:n[1],chikouLine:n[2],senkouSpanA:n[3],senkouSpanB:n[4],senkouSpan:n[5]},p=[],h=e.options.senkouSpan,d=h.color||h.styles.fill,c=h.negativeColor,g=[[],[]],m=[[],[]],y=t.length,f=0,v,D,A,S,b,C,T,P,M,V,k,O,L;for(e.ikhMap=l;y--;){for(A=0,D=t[y];A<r;A++)v=e.pointArrayMap[A],(0,u.defined)(D[v])&&n[A].push({plotX:D.plotX,plotY:D["plot"+v],isNull:!1});if(c&&y!==t.length-1){let e=l.senkouSpanB.length-1,t=function(e,t,s,a){if(e&&t&&s&&a){let o=t.plotX-e.plotX,i=t.plotY-e.plotY,r=a.plotX-s.plotX,n=a.plotY-s.plotY,l=e.plotX-s.plotX,p=e.plotY-s.plotY,u=(-i*l+o*p)/(-r*i+o*n),h=(r*p-n*l)/(-r*i+o*n);if(u>=0&&u<=1&&h>=0&&h<=1)return{plotX:e.plotX+h*o,plotY:e.plotY+h*i}}}(l.senkouSpanA[e-1],l.senkouSpanA[e],l.senkouSpanB[e-1],l.senkouSpanB[e]);if(t){let s={plotX:t.plotX,plotY:t.plotY,isNull:!1,intersectPoint:!0};l.senkouSpanA.splice(e,0,s),l.senkouSpanB.splice(e,0,s),p.push(e)}}}if((0,u.objectEach)(l,(t,a)=>{s[a]&&"senkouSpan"!==a&&(e.points=n[f],e.options=(0,u.merge)(s[a].styles,i),e.graph=e["graph"+a],e.fillGraph=!1,e.color=o,x().seriesTypes.sma.prototype.drawGraph.call(e),e["graph"+a]=e.graph),f++}),e.graphCollection)for(let t of e.graphCollection)e[t].destroy(),delete e[t];if(e.graphCollection=[],c&&l.senkouSpanA[0]&&l.senkouSpanB[0]){for(p.unshift(0),p.push(l.senkouSpanA.length-1),O=0;O<p.length-1;O++)if(S=p[O],b=p[O+1],C=l.senkouSpanB.slice(S,b+1),T=l.senkouSpanA.slice(S,b+1),Math.floor(C.length/2)>=1){let e=Math.floor(C.length/2);if(C[e].plotY===T[e].plotY){for(L=0,P=0,M=0;L<C.length;L++)P+=C[L].plotY,M+=T[L].plotY;g[k=P>M?0:1]=g[k].concat(C),m[k]=m[k].concat(T)}else g[k=C[e].plotY>T[e].plotY?0:1]=g[k].concat(C),m[k]=m[k].concat(T)}else g[k=C[0].plotY>T[0].plotY?0:1]=g[k].concat(C),m[k]=m[k].concat(T);["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(t,a){g[a].length&&m[a].length&&(V=0===a?d:c,em({indicator:e,points:g[a],nextPoints:m[a],color:V,options:s,gap:i,graph:e[t]}),e[t]=e.graph,e.graphCollection.push(t))})}else em({indicator:e,points:l.senkouSpanB,nextPoints:l.senkouSpanA,color:d,options:s,gap:i,graph:e.graphsenkouSpan}),e.graphsenkouSpan=e.graph;delete e.nextPoints,delete e.fillGraph,e.points=t,e.options=s,e.graph=a,e.color=o}getGraphPath(e){let t=[],s,a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((s=x().seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&s.length){s[0][0]="L",t=x().seriesTypes.sma.prototype.getGraphPath.call(this,e),a=s.slice(0,t.length);for(let e=a.length-1;e>=0;e--)t.push(a[e])}}else t=x().seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return t}getValues(e,t){let s,a,o,i,r,n,l,p,h,d,c=t.period,g=t.periodTenkan,m=t.periodSenkouSpanB,y=e.xData,f=e.yData,x=e.xAxis,v=f&&f.length||0,D=(0,u.getClosestDistance)(x.series.map(e=>e.getColumn("x"))),A=[],S=[];if(y.length<=c||!(0,u.isArray)(f[0])||4!==f[0].length)return;let b=y[0]-c*D;for(r=0;r<c;r++)S.push(b+r*D);for(r=0;r<v;r++)r>=g&&(n=((a=eg(f.slice(r-g,r))).high+a.low)/2),r>=c&&(h=(n+(l=((o=eg(f.slice(r-c,r))).high+o.low)/2))/2),r>=m&&(d=((i=eg(f.slice(r-m,r))).high+i.low)/2),p=f[r][3],s=y[r],void 0===A[r]&&(A[r]=[]),void 0===A[r+c-1]&&(A[r+c-1]=[]),A[r+c-1][0]=n,A[r+c-1][1]=l,A[r+c-1][2]=void 0,void 0===A[r+1]&&(A[r+1]=[]),A[r+1][2]=p,r<=c&&(A[r+c-1][3]=void 0,A[r+c-1][4]=void 0),void 0===A[r+2*c-2]&&(A[r+2*c-2]=[]),A[r+2*c-2][3]=h,A[r+2*c-2][4]=d,S.push(s);for(r=1;r<=c;r++)S.push(s+r*D);return{values:A,xData:S,yData:A}}}ey.defaultOptions=(0,u.merge)(ec.defaultOptions,{params:{index:void 0,period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>TENKAN SEN: {point.tenkanSen:.3f}<br/>KIJUN SEN: {point.kijunSen:.3f}<br/>CHIKOU SPAN: {point.chikouSpan:.3f}<br/>SENKOU SPAN A: {point.senkouSpanA:.3f}<br/>SENKOU SPAN B: {point.senkouSpanB:.3f}<br/>'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}}),(0,u.extend)(ey.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"]}),eu()["ichimoku-averages"]=function(){let e,t=[];return[].forEach.call(arguments,function(s,a){t.push(eu().average(s)),e=!e&&void 0===t[a]}),e?void 0:t},x().registerSeriesType("ikh",ey);let{sma:ef}=x().seriesTypes;class ex extends ef{init(){x().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=(0,u.merge)({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l,p=t.period,h=t.periodATR,d=t.multiplierATR,c=t.index,g=e.yData,m=g?g.length:0,y=[],f=x().seriesTypes.ema.prototype.getValues(e,{period:p,index:c}),v=x().seriesTypes.atr.prototype.getValues(e,{period:h}),D=[],A=[];if(!(m<p)){for(l=p;l<=m;l++)r=f.values[l-p],n=v.values[l-h],i=r[0],a=(0,u.correctFloat)(r[1]+d*n[1]),o=(0,u.correctFloat)(r[1]-d*n[1]),s=r[1],y.push([i,a,s,o]),D.push(i),A.push([a,s,o]);return{values:y,xData:D,yData:A}}}}ex.defaultOptions=(0,u.merge)(ef.defaultOptions,{params:{index:0,period:20,periodATR:10,multiplierATR:2},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Upper Channel: {point.top}<br/>EMA({series.options.params.period}): {point.middle}<br/>Lower Channel: {point.bottom}<br/>'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1}),(0,u.extend)(ex.prototype,{nameBase:"Keltner Channels",areaLinesNames:["top","bottom"],nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),L.compose(ex),x().registerSeriesType("keltnerchannels",ex);let{ema:ev,sma:eD}=x().seriesTypes;class eA extends eD{calculateTrend(e,t){return e[t][1]+e[t][2]+e[t][3]>e[t-1][1]+e[t-1][2]+e[t-1][3]?1:-1}isValidData(e){let t=this.chart,s=this.options,a=this.linkedParent,o=(0,u.isArray)(e)&&4===e.length,i=this.volumeSeries||(this.volumeSeries=t.get(s.params.volumeSeriesID));return i||(0,u.error)("Series "+s.params.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,a.chart),!!([a,i].every(function(e){return e&&e.dataTable.rowCount>=s.params.slowAvgPeriod})&&o)}getCM(e,t,s,a,o){return(0,u.correctFloat)(t+(s===a?e:o))}getDM(e,t){return(0,u.correctFloat)(e-t)}getVolumeForce(e){let t=[],s=0,a,o=1,i=0,r=e[0][1]-e[0][2],n=0,l;for(;o<e.length;o++)l=this.calculateTrend(e,o),a=this.getDM(e[o][1],e[o][2]),s=this.getCM(i,a,l,n,r),t.push([this.volumeSeries.getColumn("y")[o]*l*Math.abs(2*(a/s-1))*100]),n=l,i=s,r=a;return t}getEMA(e,t,s,a,o,i,r){return ev.prototype.calculateEma(r||[],e,void 0===i?1:i,a,t,void 0===o?-1:o,s)}getSMA(e,t,s){return ev.prototype.accumulatePeriodPoints(e,t,s)/e}getValues(e,t){let s=[],a=e.xData,o=e.yData,i=[],r=[],n=[],l,p=0,h=0,d,c,g,m=null;if(!this.isValidData(o[0]))return;let y=this.getVolumeForce(o),f=this.getSMA(t.fastAvgPeriod,0,y),x=this.getSMA(t.slowAvgPeriod,0,y),v=2/(t.fastAvgPeriod+1),D=2/(t.slowAvgPeriod+1);for(;p<o.length;p++)p>=t.fastAvgPeriod&&(c=h=this.getEMA(y,c,f,v,0,p,a)[1]),p>=t.slowAvgPeriod&&(g=d=this.getEMA(y,g,x,D,0,p,a)[1],n.push(l=(0,u.correctFloat)(h-d)),n.length>=t.signalPeriod&&(m=n.slice(-t.signalPeriod).reduce((e,t)=>e+t)/t.signalPeriod),s.push([a[p],l,m]),i.push(a[p]),r.push([l,m]));return{values:s,xData:i,yData:r}}}eA.defaultOptions=(0,u.merge)(eD.defaultOptions,{params:{fastAvgPeriod:34,slowAvgPeriod:55,signalPeriod:13,volumeSeriesID:"volume"},signalLine:{styles:{lineWidth:1,lineColor:"#ff0000"}},dataGrouping:{approximation:"averages"},tooltip:{pointFormat:'<span style="color: {point.color}">●</span><b> {series.name}</b><br/><span style="color: {point.color}">Klinger</span>: {point.y}<br/><span style="color: {point.series.options.signalLine.styles.lineColor}">Signal</span>: {point.signal}<br/>'}}),(0,u.extend)(eA.prototype,{areaLinesNames:[],linesApiNames:["signalLine"],nameBase:"Klinger",nameComponents:["fastAvgPeriod","slowAvgPeriod"],pointArrayMap:["y","signal"],parallelArrays:["x","y","signal"],pointValKey:"y"}),L.compose(eA),x().registerSeriesType("klinger",eA);let{noop:eS}=h(),{sma:eb}=x().seriesTypes;class eC extends eb{init(){x().seriesTypes.sma.prototype.init.apply(this,arguments);let e=this.color,t=this.colorIndex;this.options&&((0,u.defined)(this.colorIndex)&&(this.options.signalLine?.styles&&!this.options.signalLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.signalLine.styles.lineColor=this.color),this.options.macdLine?.styles&&!this.options.macdLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.macdLine.styles.lineColor=this.color)),this.macdZones={zones:this.options.macdLine?.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones?.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones?.length}),this.color=e,this.colorIndex=t}toYData(e){return[e.y,e.signal,e.MACD]}translate(){let e=this,t=["plotSignal","plotMACD"];h().seriesTypes.column.prototype.translate.apply(e),e.points.forEach(function(s){[s.signal,s.MACD].forEach(function(a,o){null!==a&&(s[t[o]]=e.yAxis.toPixels(a,!0))})})}destroy(){this.graph=null,this.graphmacd=this.graphmacd&&this.graphmacd.destroy(),this.graphsignal=this.graphsignal&&this.graphsignal.destroy(),x().seriesTypes.sma.prototype.destroy.apply(this,arguments)}drawGraph(){let e=this,t=e.points,s=e.options,a=e.zones,o={options:{gapSize:s.gapSize}},i=[[],[]],r,n=t.length;for(;n--;)r=t[n],(0,u.defined)(r.plotMACD)&&i[0].push({plotX:r.plotX,plotY:r.plotMACD,isNull:!(0,u.defined)(r.plotMACD)}),(0,u.defined)(r.plotSignal)&&i[1].push({plotX:r.plotX,plotY:r.plotSignal,isNull:!(0,u.defined)(r.plotMACD)});["macd","signal"].forEach((t,a)=>{e.points=i[a],e.options=(0,u.merge)(s[`${t}Line`]?.styles||{},o),e.graph=e[`graph${t}`],e.zones=(e[`${t}Zones`].zones||[]).slice(e[`${t}Zones`].startIndex||0),x().seriesTypes.sma.prototype.drawGraph.call(e),e[`graph${t}`]=e.graph}),e.points=t,e.options=s,e.zones=a}applyZones(){let e=this.zones;this.zones=this.signalZones.zones,x().seriesTypes.sma.prototype.applyZones.call(this),this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(),this.zones=e}getValues(e,t){let s=t.longPeriod-t.shortPeriod,a=[],o=[],i=[],r,n,l,p=0,h=[];if(!(e.xData.length<t.longPeriod+t.signalPeriod)){for(l=0,r=x().seriesTypes.ema.prototype.getValues(e,{period:t.shortPeriod,index:t.index}),n=x().seriesTypes.ema.prototype.getValues(e,{period:t.longPeriod,index:t.index}),r=r.values,n=n.values;l<=r.length;l++)(0,u.defined)(n[l])&&(0,u.defined)(n[l][1])&&(0,u.defined)(r[l+s])&&(0,u.defined)(r[l+s][0])&&a.push([r[l+s][0],0,null,r[l+s][1]-n[l][1]]);for(l=0;l<a.length;l++)o.push(a[l][0]),i.push([0,null,a[l][3]]);for(l=0,h=(h=x().seriesTypes.ema.prototype.getValues({xData:o,yData:i},{period:t.signalPeriod,index:2})).values;l<a.length;l++)a[l][0]>=h[0][0]&&(a[l][2]=h[p][1],i[l]=[0,h[p][1],a[l][3]],null===a[l][3]?(a[l][1]=0,i[l][0]=0):(a[l][1]=(0,u.correctFloat)(a[l][3]-h[p][1]),i[l][0]=(0,u.correctFloat)(a[l][3]-h[p][1])),p++);return{values:a,xData:o,yData:i}}}}eC.defaultOptions=(0,u.merge)(eb.defaultOptions,{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,crisp:!1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>Value: {point.MACD}<br/>Signal: {point.signal}<br/>Histogram: {point.y}<br/>'},dataGrouping:{approximation:"averages"},minPointLength:0}),(0,u.extend)(eC.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:eS,getColumnMetrics:h().seriesTypes.column.prototype.getColumnMetrics,crispCol:h().seriesTypes.column.prototype.crispCol,drawPoints:h().seriesTypes.column.prototype.drawPoints}),x().registerSeriesType("macd",eC);let{sma:eT}=x().seriesTypes;function eP(e){return e.reduce(function(e,t){return e+t})}function eM(e){return(e[1]+e[2]+e[3])/3}class eV extends eT{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=t.decimals,n=e.chart.get(t.volumeSeriesID),l=n?.getColumn("y")||[],p=[],h=[],d=[],c=[],g=[],m,y,f,x,v,D,A=!1,S=1;if(!n)return void(0,u.error)("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);if(!(a.length<=s)&&(0,u.isArray)(o[0])&&4===o[0].length&&l){for(m=eM(o[S]);S<s+1;)y=m,A=(m=eM(o[S]))>=y,f=m*l[S],c.push(A?f:0),g.push(A?0:f),S++;for(D=S-1;D<i;D++){var b;D>S-1&&(c.shift(),g.shift(),y=m,A=(m=eM(o[D]))>y,f=m*l[D],c.push(A?f:0),g.push(A?0:f)),x=eP(g),b=100-100/(1+eP(c)/x),v=parseFloat(b.toFixed(r)),p.push([a[D],v]),h.push(a[D]),d.push(v)}return{values:p,xData:h,yData:d}}}}eV.defaultOptions=(0,u.merge)(eT.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",decimals:4}}),(0,u.extend)(eV.prototype,{nameBase:"Money Flow Index"}),x().registerSeriesType("mfi",eV);let{sma:ek}=x().seriesTypes;function eO(e,t,s,a,o){let i=t[s-1][o]-t[s-a-1][o];return[e[s-1],i]}class eL extends ek{getValues(e,t){let s,a,o=t.period,i=t.index,r=e.xData,n=e.yData,l=n?n.length:0,p=[],h=[],d=[];if(!(r.length<=o)&&(0,u.isArray)(n[0])){for(s=o+1;s<l;s++)a=eO(r,n,s,o,i),p.push(a),h.push(a[0]),d.push(a[1]);return a=eO(r,n,s,o,i),p.push(a),h.push(a[0]),d.push(a[1]),{values:p,xData:h,yData:d}}}}eL.defaultOptions=(0,u.merge)(ek.defaultOptions,{params:{index:3}}),(0,u.extend)(eL.prototype,{nameBase:"Momentum"}),x().registerSeriesType("momentum",eL);let{atr:ew}=x().seriesTypes;class eE extends ew{getValues(e,t){let s=super.getValues.apply(this,arguments),a=s.values.length,o=e.yData,i=0,r=t.period-1;if(s){for(;i<a;i++)s.yData[i]=s.values[i][1]/o[r][3]*100,s.values[i][1]=s.yData[i],r++;return s}}}eE.defaultOptions=(0,u.merge)(ew.defaultOptions,{tooltip:{valueSuffix:"%"}}),x().registerSeriesType("natr",eE);let{sma:eI}=x().seriesTypes;class eN extends eI{getValues(e,t){let s=e.chart.get(t.volumeSeriesID),a=e.xData,o=e.yData,i=[],r=[],n=[],l=!(0,u.isNumber)(o[0]),p=[],h=1,d=0,c=0,g=0,m=0,y;if(!s)return void(0,u.error)("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);for(y=s.getColumn("y"),p=[a[0],d],g=l?o[0][3]:o[0],i.push(p),r.push(a[0]),n.push(p[1]);h<o.length;h++)c=(m=l?o[h][3]:o[h])>g?d+y[h]:m===g?d:d-y[h],p=[a[h],c],d=c,g=m,i.push(p),r.push(a[h]),n.push(p[1]);return{values:i,xData:r,yData:n}}}eN.defaultOptions=(0,u.merge)(eI.defaultOptions,{marker:{enabled:!1},params:{index:void 0,period:void 0,volumeSeriesID:"volume"},tooltip:{valueDecimals:0}}),(0,u.extend)(eN.prototype,{nameComponents:void 0}),x().registerSeriesType("obv",eN);let eF=x().seriesTypes.sma.prototype.pointClass;function eB(e,t){let s=e.series.pointArrayMap,a,o=s.length;for(x().seriesTypes.sma.prototype.pointClass.prototype[t].call(e);o--;)e[a="dataLabel"+s[o]]&&e[a].element&&e[a].destroy(),e[a]=null}let{sma:eG}=x().seriesTypes;class eW extends eG{toYData(e){return[e.P]}translate(){let e=this;super.translate.apply(e),e.points.forEach(function(t){e.pointArrayMap.forEach(function(s){(0,u.defined)(t[s])&&(t["plot"+s]=e.yAxis.toPixels(t[s],!0))})}),e.plotEndPoint=e.xAxis.toPixels(e.endPoint,!0)}getGraphPath(e){let t=this,s=[[],[],[],[],[],[],[],[],[]],a=t.pointArrayMap.length,o=t.plotEndPoint,i=[],r,n,l=e.length,p;for(;l--;){for(p=0,n=e[l];p<a;p++)r=t.pointArrayMap[p],(0,u.defined)(n[r])&&s[p].push({plotX:n.plotX,plotY:n["plot"+r],isNull:!1},{plotX:o,plotY:n["plot"+r],isNull:!1},{plotX:o,plotY:null,isNull:!0});o=n.plotX}return s.forEach(e=>{i=i.concat(super.getGraphPath.call(t,e))}),i}drawDataLabels(){let e,t,s,a,o=this,i=o.pointArrayMap;o.options.dataLabels.enabled&&(t=o.points.length,i.concat([!1]).forEach((r,n)=>{for(a=t;a--;)s=o.points[a],r?(s.y=s[r],s.pivotLine=r,s.plotY=s["plot"+r],e=s["dataLabel"+r],n&&(s["dataLabel"+i[n-1]]=s.dataLabel),s.dataLabels||(s.dataLabels=[]),s.dataLabels[0]=s.dataLabel=e=e&&e.element?e:null):s["dataLabel"+i[n-1]]=s.dataLabel;super.drawDataLabels.call(o)}))}getValues(e,t){let s,a,o,i,r,n,l,p=t.period,h=e.xData,d=e.yData,c=d?d.length:0,g=this[t.algorithm+"Placement"],m=[],y=[],f=[];if(!(h.length<p)&&(0,u.isArray)(d[0])&&4===d[0].length){for(l=p+1;l<=c+p;l+=p)o=h.slice(l-p-1,l),i=d.slice(l-p-1,l),a=o.length,s=o[a-1],n=g(this.getPivotAndHLC(i)),r=m.push([s].concat(n)),y.push(s),f.push(m[r-1].slice(1));return this.endPoint=o[0]+(s-o[0])/a*p,{values:m,xData:y,yData:f}}}getPivotAndHLC(e){let t=e[e.length-1][3],s=-1/0,a=1/0;return e.forEach(function(e){s=Math.max(s,e[1]),a=Math.min(a,e[2])}),[(s+a+t)/3,s,a,t]}standardPlacement(e){let t=e[1]-e[2];return[null,null,e[0]+t,2*e[0]-e[2],e[0],2*e[0]-e[1],e[0]-t,null,null]}camarillaPlacement(e){let t=e[1]-e[2];return[e[3]+1.5*t,e[3]+1.25*t,e[3]+1.1666*t,e[3]+1.0833*t,e[0],e[3]-1.0833*t,e[3]-1.1666*t,e[3]-1.25*t,e[3]-1.5*t]}fibonacciPlacement(e){let t=e[1]-e[2];return[null,e[0]+t,e[0]+.618*t,e[0]+.382*t,e[0],e[0]-.382*t,e[0]-.618*t,e[0]-t,null]}}eW.defaultOptions=(0,u.merge)(eG.defaultOptions,{params:{index:void 0,period:28,algorithm:"standard"},marker:{enabled:!1},enableMouseTracking:!1,dataLabels:{enabled:!0,format:"{point.pivotLine}"},dataGrouping:{approximation:"averages"}}),(0,u.extend)(eW.prototype,{nameBase:"Pivot Points",pointArrayMap:["R4","R3","R2","R1","P","S1","S2","S3","S4"],pointValKey:"P",pointClass:class extends eF{destroyElements(){eB(this,"destroyElements")}destroy(){eB(this,"destroyElements")}}}),x().registerSeriesType("pivotpoints",eW);let{ema:ez}=x().seriesTypes;class eY extends ez{getValues(e,t){let s,a,o=t.periods,i=t.index,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0])return void(0,u.error)('Error: "PPO requires two periods. Notice, first period should be lower than the second one."');let p=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!p||!h)return;let d=o[1]-o[0];for(a=0;a<h.yData.length;a++)s=(0,u.correctFloat)((p.yData[a+d]-h.yData[a])/h.yData[a]*100),r.push([h.xData[a],s]),n.push(h.xData[a]),l.push(s);return{values:r,xData:n,yData:l}}}eY.defaultOptions=(0,u.merge)(ez.defaultOptions,{params:{period:void 0,periods:[12,26]}}),(0,u.extend)(eY.prototype,{nameBase:"PPO",nameComponents:["periods"]}),x().registerSeriesType("ppo",eY);let eX=function(e,t,s){return e.reduce((e,a)=>[Math.min(e[0],a[t]),Math.max(e[1],a[s])],[Number.MAX_VALUE,-Number.MAX_VALUE])},{sma:eR}=x().seriesTypes;class eK extends eR{getValues(e,t){let s,a,o,i,r,n,l=t.period,p=e.xData,u=e.yData,h=u?u.length:0,d=[],c=[],g=[];if(!(h<l)){for(n=l;n<=h;n++)i=p[n-1],s=((a=(r=eX(u.slice(n-l,n),2,1))[1])+(o=r[0]))/2,d.push([i,a,s,o]),c.push(i),g.push([a,s,o]);return{values:d,xData:c,yData:g}}}}eK.defaultOptions=(0,u.merge)(eR.defaultOptions,{params:{index:void 0,period:20},lineWidth:1,topLine:{styles:{lineColor:"var(--highcharts-color-2)",lineWidth:1}},bottomLine:{styles:{lineColor:"var(--highcharts-color-8)",lineWidth:1}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(eK.prototype,{areaLinesNames:["top","bottom"],nameBase:"Price Channel",nameComponents:["period"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),L.compose(eK),x().registerSeriesType("pc",eK);let{sma:ej}=x().seriesTypes;class eH extends ej{init(){super.init.apply(this,arguments),this.options=(0,u.merge)({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l,p,h=t.period,d=t.topBand,c=t.bottomBand,g=e.xData,m=e.yData,y=m?m.length:0,f=[],x=[],v=[];if(!(g.length<h)&&(0,u.isArray)(m[0])&&4===m[0].length){for(p=h;p<=y;p++)r=g.slice(p-h,p),n=m.slice(p-h,p),i=(l=super.getValues({xData:r,yData:n},t)).xData[0],a=(s=l.yData[0])*(1+d),o=s*(1-c),f.push([i,a,s,o]),x.push(i),v.push([a,s,o]);return{values:f,xData:x,yData:v}}}}eH.defaultOptions=(0,u.merge)(ej.defaultOptions,{marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>'},params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(eH.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle"}),L.compose(eH),x().registerSeriesType("priceenvelopes",eH);let{sma:eU}=x().seriesTypes;function eZ(e,t){return parseFloat(e.toFixed(t))}class e_ extends eU{constructor(){super(...arguments),this.nameComponents=void 0}getValues(e,t){let s=e.xData,a=e.yData,o=t.maxAccelerationFactor,i=t.increment,r=t.initialAccelerationFactor,n=t.decimals,l=t.index,p=[],u=[],h=[],d=t.initialAccelerationFactor,c,g=a[0][1],m,y,f,x=1,v,D,A,S,b=a[0][2],C,T,P,M;if(!(l>=a.length)){for(M=0;M<l;M++)g=Math.max(a[M][1],g),b=Math.min(a[M][2],eZ(b,n));for(c=a[M][1]>b?1:-1,m=g-b,y=(d=t.initialAccelerationFactor)*m,p.push([s[l],b]),u.push(s[l]),h.push(eZ(b,n)),M=l+1;M<a.length;M++)if(v=a[M-1][2],D=a[M-2][2],A=a[M-1][1],S=a[M-2][1],T=a[M][1],P=a[M][2],null!==D&&null!==S&&null!==v&&null!==A&&null!==T&&null!==P){var V,k,O,L,w,E,I,N,F,B,G,W,z,Y,X,R,K,j,H,U,Z;w=c,E=x,I=b,N=y,F=D,B=v,G=A,W=S,z=g,b=w===E?1===w?I+N<Math.min(F,B)?I+N:Math.min(F,B):I+N>Math.max(W,G)?I+N:Math.max(W,G):z,V=c,k=g,C=1===V?T>k?T:k:P<k?P:k,O=x,L=b,Y=f=1===O&&P>L||-1===O&&T>L?1:-1,X=c,R=C,K=g,j=d,H=i,U=o,Z=r,y=(d=Y===X?1===Y&&R>K||-1===Y&&R<K?j===U?U:eZ(j+H,2):j:Z)*(m=C-b),p.push([s[M],eZ(b,n)]),u.push(s[M]),h.push(eZ(b,n)),x=c,c=f,g=C}return{values:p,xData:u,yData:h}}}}e_.defaultOptions=(0,u.merge)(eU.defaultOptions,{lineWidth:0,marker:{enabled:!0},states:{hover:{lineWidthPlus:0}},params:{period:void 0,initialAccelerationFactor:.02,maxAccelerationFactor:.2,increment:.02,index:2,decimals:4}}),x().registerSeriesType("psar",e_);let{sma:eq}=x().seriesTypes;class e$ extends eq{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p,h=-1,d;if(!(a.length<=s)){for((0,u.isArray)(o[0])&&(h=t.index),p=s;p<i;p++)d=function(e,t,s,a,o){let i,r;return r=o<0?(i=t[s-a])?(t[s]-i)/i*100:null:(i=t[s-a][o])?(t[s][o]-i)/i*100:null,[e[s],r]}(a,o,p,s,h),r.push(d),n.push(d[0]),l.push(d[1]);return{values:r,xData:n,yData:l}}}}e$.defaultOptions=(0,u.merge)(eq.defaultOptions,{params:{index:3,period:9}}),(0,u.extend)(e$.prototype,{nameBase:"Rate of Change"}),x().registerSeriesType("roc",e$);let{sma:eJ}=x().seriesTypes;function eQ(e,t){return parseFloat(e.toFixed(t))}class e0 extends eJ{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=t.decimals,n=[],l=[],p=[],h=0,d=0,c=t.index,g=1,m,y,f,x,v,D;if(!(a.length<s)){for((0,u.isNumber)(o[0])?D=o:(c=Math.min(c,o[0].length-1),D=o.map(e=>e[c]));g<s;)(y=eQ(D[g]-D[g-1],r))>0?h+=y:d+=Math.abs(y),g++;for(f=eQ(h/(s-1),r),x=eQ(d/(s-1),r),v=g;v<i;v++)(y=eQ(D[v]-D[v-1],r))>0?(h=y,d=0):(h=0,d=Math.abs(y)),f=eQ((f*(s-1)+h)/s,r),m=0===(x=eQ((x*(s-1)+d)/s,r))?100:0===f?0:eQ(100-100/(1+f/x),r),n.push([a[v],m]),l.push(a[v]),p.push(m);return{values:n,xData:l,yData:p}}}}e0.defaultOptions=(0,u.merge)(eJ.defaultOptions,{params:{decimals:4,index:3}}),x().registerSeriesType("rsi",e0);let{sma:e1}=x().seriesTypes;class e2 extends e1{init(){super.init.apply(this,arguments),this.options=(0,u.merge)({smoothedLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s=t.periods[0],a=t.periods[1],o=e.xData,i=e.yData,r=i?i.length:0,n=[],l=[],p=[],h,d,c=null,g,m;if(r<s||!(0,u.isArray)(i[0])||4!==i[0].length)return;let y=!0,f=0;for(m=s-1;m<r;m++){if(h=(g=eX(i.slice(m-s+1,m+1),2,1))[0],isNaN(d=(i[m][3]-h)/(g[1]-h)*100)&&y){f++;continue}y&&!isNaN(d)&&(y=!1);let e=l.push(o[m]);isNaN(d)?p.push([p[e-2]&&"number"==typeof p[e-2][0]?p[e-2][0]:null,null]):p.push([d,null]),m>=f+(s-1)+(a-1)&&(c=super.getValues({xData:l.slice(-a),yData:p.slice(-a)},{period:a}).yData[0]),n.push([o[m],d,c]),p[e-1][1]=c}return{values:n,xData:l,yData:p}}}e2.defaultOptions=(0,u.merge)(e1.defaultOptions,{params:{index:void 0,period:void 0,periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>%K: {point.y}<br/>%D: {point.smoothed}<br/>'},smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(e2.prototype,{areaLinesNames:[],nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"]}),L.compose(e2),x().registerSeriesType("stochastic",e2);let{sma:e3,stochastic:e4}=x().seriesTypes;class e5 extends e4{getValues(e,t){let s=t.periods,a=super.getValues.call(this,e,t),o={values:[],xData:[],yData:[]};if(!a)return;o.xData=a.xData.slice(s[1]-1);let i=a.yData.slice(s[1]-1),r=e3.prototype.getValues.call(this,{xData:o.xData,yData:i},{index:1,period:s[2]});if(r){for(let e=0,t=o.xData.length;e<t;e++)o.yData[e]=[i[e][1],r.yData[e-s[2]+1]||null],o.values[e]=[o.xData[e],i[e][1],r.yData[e-s[2]+1]||null];return o}}}e5.defaultOptions=(0,u.merge)(e4.defaultOptions,{params:{periods:[14,3,3]}}),(0,u.extend)(e5.prototype,{nameBase:"Slow Stochastic"}),x().registerSeriesType("slowstochastic",e5);let{atr:e6,sma:e9}=x().seriesTypes;function e8(e,t){return{index:t,close:e.getColumn("close")[t],x:e.getColumn("x")[t]}}class e7 extends e9{init(){let e=this;super.init.apply(e,arguments);let t=(0,u.addEvent)(this.chart.constructor,"afterLinkSeries",()=>{let{linkedParent:s,options:a}=e;a&&s&&(a.cropThreshold=(s.options.cropThreshold??0)-((a.params?.period??0)-1)),t()},{order:1})}drawGraph(){let e=this,t=e.options,s=e.linkedParent,a=s.getColumn("x"),o=s?s.points:[],i=e.points,r=e.graph,n=o.length-i.length,l=n>0?n:0,p={options:{gapSize:t.gapSize}},h={top:[],bottom:[],intersect:[]},d={top:{styles:{lineWidth:t.lineWidth,lineColor:t.fallingTrendColor||t.color,dashStyle:t.dashStyle}},bottom:{styles:{lineWidth:t.lineWidth,lineColor:t.risingTrendColor||t.color,dashStyle:t.dashStyle}},intersect:t.changeTrendLine},c,g,m,y,f,x,v,D,A,S=i.length;for(;S--;)c=i[S],g=i[S-1],m=o[S-1+l],y=o[S-2+l],f=o[S+l],x=o[S+l+1],v=c.options.color,D={x:c.x,plotX:c.plotX,plotY:c.plotY,isNull:!1},!y&&m&&(0,u.isNumber)(a[m.index-1])&&(y=e8(s,m.index-1)),!x&&f&&(0,u.isNumber)(a[f.index+1])&&(x=e8(s,f.index+1)),!m&&y&&(0,u.isNumber)(a[y.index+1])?m=e8(s,y.index+1):!m&&f&&(0,u.isNumber)(a[f.index-1])&&(m=e8(s,f.index-1)),c&&m&&f&&y&&c.x!==m.x&&(c.x===f.x?(y=m,m=f):c.x===y.x?(m=y,y={close:s.getColumn("close")[m.index-1],x:a[m.index-1]}):x&&c.x===x.x&&(m=x,y=f)),g&&y&&m?(A={x:g.x,plotX:g.plotX,plotY:g.plotY,isNull:!1},c.y>=m.close&&g.y>=y.close?(c.color=v||t.fallingTrendColor||t.color,h.top.push(D)):c.y<m.close&&g.y<y.close?(c.color=v||t.risingTrendColor||t.color,h.bottom.push(D)):(h.intersect.push(D),h.intersect.push(A),h.intersect.push((0,u.merge)(A,{isNull:!0})),c.y>=m.close&&g.y<y.close?(c.color=v||t.fallingTrendColor||t.color,g.color=v||t.risingTrendColor||t.color,h.top.push(D),h.top.push((0,u.merge)(A,{isNull:!0}))):c.y<m.close&&g.y>=y.close&&(c.color=v||t.risingTrendColor||t.color,g.color=v||t.fallingTrendColor||t.color,h.bottom.push(D),h.bottom.push((0,u.merge)(A,{isNull:!0}))))):m&&(c.y>=m.close?(c.color=v||t.fallingTrendColor||t.color,h.top.push(D)):(c.color=v||t.risingTrendColor||t.color,h.bottom.push(D)));(0,u.objectEach)(h,function(t,s){e.points=t,e.options=(0,u.merge)(d[s].styles,p),e.graph=e["graph"+s+"Line"],e9.prototype.drawGraph.call(e),e["graph"+s+"Line"]=e.graph}),e.points=i,e.options=t,e.graph=r}getValues(e,t){let s=t.period,a=t.multiplier,o=e.xData,i=e.yData,r=[],n=[],l=[],p=0===s?0:s-1,h=[],d=[],c=[],g,m,y,f,x,v,D,A,S;if(!(o.length<=s)&&(0,u.isArray)(i[0])&&4===i[0].length&&!(s<0)){for(S=0,c=e6.prototype.getValues.call(this,e,{period:s}).yData;S<c.length;S++)A=i[p+S],D=i[p+S-1]||[],f=h[S-1],x=d[S-1],v=l[S-1],0===S&&(f=x=v=0),g=(0,u.correctFloat)((A[1]+A[2])/2+a*c[S]),m=(0,u.correctFloat)((A[1]+A[2])/2-a*c[S]),g<f||D[3]>f?h[S]=g:h[S]=f,m>x||D[3]<x?d[S]=m:d[S]=x,v===f&&A[3]<h[S]||v===x&&A[3]<d[S]?y=h[S]:(v===f&&A[3]>h[S]||v===x&&A[3]>d[S])&&(y=d[S]),r.push([o[p+S],y]),n.push(o[p+S]),l.push(y);return{values:r,xData:n,yData:l}}}}e7.defaultOptions=(0,u.merge)(e9.defaultOptions,{params:{index:void 0,multiplier:3,period:10},risingTrendColor:"var(--highcharts-positive-color)",fallingTrendColor:"var(--highcharts-negative-color)",changeTrendLine:{styles:{lineWidth:1,lineColor:"var(--highcharts-neutral-color-80)",dashStyle:"LongDash"}}}),(0,u.extend)(e7.prototype,{nameBase:"Supertrend",nameComponents:["multiplier","period"]}),x().registerSeriesType("supertrend",e7);let{sma:{prototype:{pointClass:te}}}=x().seriesTypes,tt=class extends te{destroy(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy()),super.destroy.apply(this,arguments)}},{animObject:ts}=h(),{noop:ta}=h(),{column:{prototype:to},sma:ti}=x().seriesTypes,tr=Math.abs;class tn extends ti{init(e,t){let s=this;delete t.data,super.init.apply(s,arguments);let a=(0,u.addEvent)(this.chart.constructor,"afterLinkSeries",function(){if(s.options){let t=s.options.params,a=s.linkedParent,o=t?.volumeSeriesID?e.get(t?.volumeSeriesID):void 0;a&&o&&s.addCustomEvents(a,o)}a()},{order:1});return s}addCustomEvents(e,t){let s=this,a=()=>{s.chart.redraw(),s.setData([]),s.zoneStarts=[],s.zoneLinesSVG&&(s.zoneLinesSVG=s.zoneLinesSVG.destroy())};return s.dataEventsToUnbind.push((0,u.addEvent)(e,"remove",function(){a()})),t&&s.dataEventsToUnbind.push((0,u.addEvent)(t,"remove",function(){a()})),s}animate(e){let t=this,s=t.chart.inverted,a=t.group,o={};if(!e&&a){let e=s?t.yAxis.top:t.xAxis.left;s?(a["forceAnimate:translateY"]=!0,o.translateY=e):(a["forceAnimate:translateX"]=!0,o.translateX=e),a.animate(o,(0,u.extend)(ts(t.options.animation),{step:function(e,s){t.group.attr({scaleX:Math.max(.001,s.pos)})}}))}}drawPoints(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),to.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1)),to.drawPoints.apply(this,arguments)}posNegVolume(e,t){let s=t?["positive","negative"]:["negative","positive"],a=this.options.volumeDivision,o=this.points.length,i=[],r=[],n=0,l,p,u,h;for(e?(this.posWidths=i,this.negWidths=r):(i=this.posWidths,r=this.negWidths);n<o;n++)(h=this.points[n])[s[0]+"Graphic"]=h.graphic,h.graphic=h[s[1]+"Graphic"],e&&(l=h.shapeArgs.width,(u=(p=this.priceZones[n]).wholeVolumeData)?(i.push(l/u*p.positiveVolumeData),r.push(l/u*p.negativeVolumeData)):(i.push(0),r.push(0))),h.color=t?a.styles.positiveColor:a.styles.negativeColor,h.shapeArgs.width=t?this.posWidths[n]:this.negWidths[n],h.shapeArgs.x=t?h.shapeArgs.x:this.posWidths[n]}translate(){let e=this,t=e.options,s=e.chart,a=e.yAxis,o=a.min,i=e.options.zoneLines,r=e.priceZones,n=0,l,p,h,d,c,g,m,y,f,x,v;to.translate.apply(e);let D=e.points;D.length&&(y=t.pointPadding<.5?t.pointPadding:.1,l=e.volumeDataArray,p=(0,u.arrayMax)(l),h=s.plotWidth/2,f=s.plotTop,d=tr(a.toPixels(o)-a.toPixels(o+e.rangeStep)),g=tr(a.toPixels(o)-a.toPixels(o+e.rangeStep)),y&&(c=tr(d*(1-2*y)),n=tr((d-c)/2),d=tr(c)),D.forEach(function(t,s){x=t.barX=t.plotX=0,v=t.plotY=a.toPixels(r[s].start)-f-(a.reversed?d-g:d)-n,t.pointWidth=m=(0,u.correctFloat)(h*r[s].wholeVolumeData/p),t.shapeArgs=e.crispCol.apply(e,[x,v,m,d]),t.volumeNeg=r[s].negativeVolumeData,t.volumePos=r[s].positiveVolumeData,t.volumeAll=r[s].wholeVolumeData,delete t.origin,t.isInside=e.isPointInside(t)}),i.enabled&&e.drawZones(s,a,e.zoneStarts,i.styles))}getExtremes(){let e,t=this.options.compare,s=this.options.cumulative;return this.options.compare?(this.options.compare=void 0,e=super.getExtremes(),this.options.compare=t):this.options.cumulative?(this.options.cumulative=!1,e=super.getExtremes(),this.options.cumulative=s):e=super.getExtremes(),e}getValues(e,t){let s=e.getColumn("x",!0),a=e.processedYData,o=this.chart,i=t.ranges,r=[],n=[],l=[],p=o.get(t.volumeSeriesID);if(!e.chart)return void(0,u.error)("Base series not found! In case it has been removed, add a new one.",!0,o);if(!p||!p.getColumn("x",!0).length){let e=p&&!p.getColumn("x",!0).length?" does not contain any data.":" not found! Check `volumeSeriesID`.";(0,u.error)("Series "+t.volumeSeriesID+e,!0,o);return}let h=(0,u.isArray)(a[0]);return h&&4!==a[0].length?void(0,u.error)("Type of "+e.name+" series is different than line, OHLC or candlestick.",!0,o):((this.priceZones=this.specifyZones(h,s,a,i,p)).forEach(function(e,t){r.push([e.x,e.end]),n.push(r[t][0]),l.push(r[t][1])}),{values:r,xData:n,yData:l})}specifyZones(e,t,s,a,o){let i=!!e&&function(e){let t=e.length,s=e[0][3],a=s,o=1,i;for(;o<t;o++)(i=e[o][3])<s&&(s=i),i>a&&(a=i);return{min:s,max:a}}(s),r=this.zoneStarts=[],n=[],l=i?i.min:(0,u.arrayMin)(s),p=i?i.max:(0,u.arrayMax)(s),h=0,d=1,c=this.linkedParent;if(!this.options.compareToMain&&c.dataModify&&(l=c.dataModify.modifyValue(l),p=c.dataModify.modifyValue(p)),!(0,u.defined)(l)||!(0,u.defined)(p))return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];let g=this.rangeStep=(0,u.correctFloat)(p-l)/a;for(r.push(l);h<a-1;h++)r.push((0,u.correctFloat)(r[h]+g));r.push(p);let m=r.length;for(;d<m;d++)n.push({index:d-1,x:t[0],start:r[d-1],end:r[d]});return this.volumePerZone(e,n,o,t,s)}volumePerZone(e,t,s,a,o){let i,r,n,l,p,u=this,h=s.getColumn("x",!0),d=s.getColumn("y",!0),c=t.length-1,g=o.length,m=d.length;return tr(g-m)&&(a[0]!==h[0]&&d.unshift(0),a[g-1]!==h[m-1]&&d.push(0)),u.volumeDataArray=[],t.forEach(function(t){for(p=0,t.wholeVolumeData=0,t.positiveVolumeData=0,t.negativeVolumeData=0;p<g;p++){r=!1,n=!1,l=e?o[p][3]:o[p],i=p?e?o[p-1][3]:o[p-1]:l;let s=u.linkedParent;!u.options.compareToMain&&s.dataModify&&(l=s.dataModify.modifyValue(l),i=s.dataModify.modifyValue(i)),l<=t.start&&0===t.index&&(r=!0),l>=t.end&&t.index===c&&(n=!0),(l>t.start||r)&&(l<t.end||n)&&(t.wholeVolumeData+=d[p],i>l?t.negativeVolumeData+=d[p]:t.positiveVolumeData+=d[p])}u.volumeDataArray.push(t.wholeVolumeData)}),t}drawZones(e,t,s,a){let o=e.renderer,i=e.plotWidth,r=e.plotTop,n=this.zoneLinesSVG,l=[],p;s.forEach(function(s){p=t.toPixels(s)-r,l=l.concat(e.renderer.crispLine([["M",0,p],["L",i,p]],a.lineWidth))}),n?n.animate({d:l}):n=this.zoneLinesSVG=o.path(l).attr({"stroke-width":a.lineWidth,stroke:a.color,dashstyle:a.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}}tn.defaultOptions=(0,u.merge)(ti.defaultOptions,{params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1e3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{align:"left",allowOverlap:!0,distance:0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"0.5em"},verticalAlign:"top"}}),(0,u.extend)(tn.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],calculateOn:{chart:"render",xAxis:"afterSetExtremes"},pointClass:tt,markerAttribs:ta,drawGraph:ta,getColumnMetrics:to.getColumnMetrics,crispCol:to.crispCol}),x().registerSeriesType("vbp",tn);let{sma:tl}=x().seriesTypes;class tp extends tl{getValues(e,t){let s=e.chart,a=e.xData,o=e.yData,i=t.period,r=!0,n;return(n=s.get(t.volumeSeriesID))?((0,u.isArray)(o[0])||(r=!1),this.calculateVWAPValues(r,a,o,n,i)):void(0,u.error)("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,s)}calculateVWAPValues(e,t,s,a,o){let i,r,n,l,p,u,h=a.getColumn("y"),d=h.length,c=t.length,g=[],m=[],y=[],f=[],x=[];for(p=0,i=c<=d?c:d,u=0;p<i;p++)r=(e?(s[p][1]+s[p][2]+s[p][3])/3:s[p])*h[p],n=u?g[p-1]+r:r,l=u?m[p-1]+h[p]:h[p],g.push(n),m.push(l),x.push([t[p],n/l]),y.push(x[p][0]),f.push(x[p][1]),++u===o&&(u=0);return{values:x,xData:y,yData:f}}}tp.defaultOptions=(0,u.merge)(tl.defaultOptions,{params:{index:void 0,period:30,volumeSeriesID:"volume"}}),x().registerSeriesType("vwap",tp);let{sma:tu}=x().seriesTypes;class th extends tu{getValues(e,t){let s,a,o,i,r,n=t.period,l=e.xData,p=e.yData,h=p?p.length:0,d=[],c=[],g=[];if(!(l.length<n)&&(0,u.isArray)(p[0])&&4===p[0].length){for(r=n-1;r<h;r++)i=(s=eX(p.slice(r-n+1,r+1),2,1))[0],a=-(((o=s[1])-p[r][3])/(o-i)*100),l[r]&&(d.push([l[r],a]),c.push(l[r]),g.push(a));return{values:d,xData:c,yData:g}}}}th.defaultOptions=(0,u.merge)(tu.defaultOptions,{params:{index:void 0,period:14}}),(0,u.extend)(th.prototype,{nameBase:"Williams %R"}),x().registerSeriesType("williamsr",th);let{sma:td}=x().seriesTypes;function tc(e,t,s,a,o){let i=t[a],r=o<0?s[a]:s[a][o];e.push([i,r])}function tg(e,t,s,a){let o=e.length,i=e.reduce(function(e,t,s){return[null,e[1]+t[1]*(s+1)]})[1]/((o+1)/2*o),r=t[a-1];return e.shift(),[r,i]}class tm extends td{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=a[0],n=[],l=[],p=[],h=1,d=-1,c,g,m=o[0];if(a.length<s)return;(0,u.isArray)(o[0])&&(d=t.index,m=o[0][d]);let y=[[r,m]];for(;h!==s;)tc(y,a,o,h,d),h++;for(c=h;c<i;c++)n.push(g=tg(y,a,o,c)),l.push(g[0]),p.push(g[1]),tc(y,a,o,c,d);return n.push(g=tg(y,a,o,c)),l.push(g[0]),p.push(g[1]),{values:n,xData:l,yData:p}}}tm.defaultOptions=(0,u.merge)(td.defaultOptions,{params:{index:3,period:9}}),x().registerSeriesType("wma",tm);let{sma:ty}=x().seriesTypes;class tf extends ty{getValues(e,t){let s=t.lowIndex,a=t.highIndex,o=t.deviation/100,i={low:1+o,high:1-o},r=e.xData,n=e.yData,l=n?n.length:0,p=[],u=[],h=[],d,c,g,m,y=!1,f=!1;if(!r||r.length<=1||l&&(void 0===n[0][s]||void 0===n[0][a]))return;let x=n[0][s],v=n[0][a];for(d=1;d<l;d++)n[d][s]<=v*i.high?(p.push([r[0],v]),g=[r[d],n[d][s]],m=!0,y=!0):n[d][a]>=x*i.low&&(p.push([r[0],x]),g=[r[d],n[d][a]],m=!1,y=!0),y&&(u.push(p[0][0]),h.push(p[0][1]),c=d++,d=l);for(d=c;d<l;d++)m?(n[d][s]<=g[1]&&(g=[r[d],n[d][s]]),n[d][a]>=g[1]*i.low&&(f=a)):(n[d][a]>=g[1]&&(g=[r[d],n[d][a]]),n[d][s]<=g[1]*i.high&&(f=s)),!1!==f&&(p.push(g),u.push(g[0]),h.push(g[1]),g=[r[d],n[d][f]],m=!m,f=!1);let D=p.length;return 0!==D&&p[D-1][0]<r[l-1]&&(p.push(g),u.push(g[0]),h.push(g[1])),{values:p,xData:u,yData:h}}}tf.defaultOptions=(0,u.merge)(ty.defaultOptions,{params:{index:void 0,period:void 0,lowIndex:2,highIndex:1,deviation:1}}),(0,u.extend)(tf.prototype,{nameComponents:["deviation"],nameSuffixes:["%"],nameBase:"Zig Zag"}),x().registerSeriesType("zigzag",tf);let{sma:tx}=x().seriesTypes;class tv extends tx{getRegressionLineParameters(e,t){let s=this.options.params.index,a=function(e,t){return(0,u.isArray)(e)?e[t]:e},o=e.reduce(function(e,t){return t+e},0),i=t.reduce(function(e,t){return a(t,s)+e},0),r=o/e.length,n=i/t.length,l,p,h=0,d=0;for(p=0;p<e.length;p++)h+=(l=e[p]-r)*(a(t[p],s)-n),d+=Math.pow(l,2);let c=d?h/d:0;return{slope:c,intercept:n-c*r}}getEndPointY(e,t){return e.slope*t+e.intercept}transformXData(e,t){let s=e[0];return e.map(function(e){return(e-s)/t})}findClosestDistance(e){let t,s,a;for(a=1;a<e.length-1;a++)(t=e[a]-e[a-1])>0&&(void 0===s||t<s)&&(s=t);return s}getValues(e,t){let s,a,o,i,r,n,l,p,h,d=e.xData,c=e.yData,g=t.period,m={xData:[],yData:[],values:[]},y=this.options.params.xAxisUnit||this.findClosestDistance(d);for(a=g-1;a<=d.length-1;a++)o=a-g+1,i=a+1,r=d[a],l=d.slice(o,i),p=c.slice(o,i),h=this.transformXData(l,y),s=this.getRegressionLineParameters(h,p),n=this.getEndPointY(s,h[h.length-1]),m.values.push({regressionLineParameters:s,x:r,y:n}),(0,u.isArray)(m.xData)&&m.xData.push(r),(0,u.isArray)(m.yData)&&m.yData.push(n);return m}}tv.defaultOptions=(0,u.merge)(tx.defaultOptions,{params:{xAxisUnit:null},tooltip:{valueDecimals:4}}),(0,u.extend)(tv.prototype,{nameBase:"Linear Regression Indicator"}),x().registerSeriesType("linearregression",tv),x().registerSeriesType("linearRegression",tv);let{linearregression:tD}=x().seriesTypes;class tA extends tD{getEndPointY(e){return e.slope}}tA.defaultOptions=(0,u.merge)(tD.defaultOptions),(0,u.extend)(tA.prototype,{nameBase:"Linear Regression Slope Indicator"}),x().registerSeriesType("linearregressionslope",tA),x().registerSeriesType("linearRegressionSlope",tA);let{linearregression:tS}=x().seriesTypes;class tb extends tS{getEndPointY(e){return e.intercept}}tb.defaultOptions=(0,u.merge)(tS.defaultOptions),(0,u.extend)(tb.prototype,{nameBase:"Linear Regression Intercept Indicator"}),x().registerSeriesType("linearregressionintercept",tb),x().registerSeriesType("linearRegressionIntercept",tb);let{linearregression:tC}=x().seriesTypes;class tT extends tC{slopeToAngle(e){return 180/Math.PI*Math.atan(e)}getEndPointY(e){return this.slopeToAngle(e.slope)}}tT.defaultOptions=(0,u.merge)(tC.defaultOptions,{tooltip:{pointFormat:'<span style="color:{point.color}">●</span>{series.name}: <b>{point.y}\xb0</b><br/>'}}),(0,u.extend)(tT.prototype,{nameBase:"Linear Regression Angle Indicator"}),x().registerSeriesType("linearregressionangle",tT),x().registerSeriesType("linearRegressionAngle",tT);let{sma:tP}=x().seriesTypes;class tM extends tP{getValues(e,t){let s,a,o,i,r,n,l,p,h,d,c,g=t.period,m=t.factor,y=t.index,f=e.xData,x=e.yData,v=x?x.length:0,D=[],A=[],S=[],b=[],C=[];if(!(v<g)){for(c=0;c<=v;c++){if(c<v){var T,P,M,V;T=x[c][2],P=x[c][1],r=(0,u.correctFloat)(P-T)/((0,u.correctFloat)(P+T)/2)*1e3*m,D.push((M=x[c][1],M*(0,u.correctFloat)(1+2*r))),A.push((V=x[c][2],V*(0,u.correctFloat)(1-2*r)))}c>=g&&(h=f.slice(c-g,c),d=x.slice(c-g,c),l=super.getValues.call(this,{xData:h,yData:D.slice(c-g,c)},{period:g}),p=super.getValues.call(this,{xData:h,yData:A.slice(c-g,c)},{period:g}),i=(n=super.getValues.call(this,{xData:h,yData:d},{period:g,index:y})).xData[0],a=l.yData[0],o=p.yData[0],s=n.yData[0],S.push([i,a,s,o]),b.push(i),C.push([a,s,o]))}return{values:S,xData:b,yData:C}}}}tM.defaultOptions=(0,u.merge)(tP.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(tM.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),L.compose(tM),x().registerSeriesType("abands",tM);let{sma:tV}=x().seriesTypes;class tk extends tV{constructor(){super(...arguments),this.updateAllPoints=!0}getValues(e,t){let s=e.xData,a=e.yData,o=[],i=[],r=[],n=[],l=t.index,p=0,h=0,d=0,c=0,g=0;for(let e=0;e<s.length;e++)(0===e||s[e]!==s[e-1])&&g++,o.push(g);for(let e=0;e<o.length;e++)d+=o[e],c+=(0,u.isArray)(a[e])?a[e][l]:a[e];let m=d/o.length,y=c/a.length;for(let e=0;e<o.length;e++){let t=(0,u.isArray)(a[e])?a[e][l]:a[e];p+=(o[e]-m)*(t-y),h+=Math.pow(o[e]-m,2)}for(let e=0;e<o.length;e++){if(s[e]===r[r.length-1])continue;let t=s[e],a=y+p/h*(o[e]-m);i.push([t,a]),r.push(t),n.push(a)}return{xData:r,yData:n,values:i}}}tk.defaultOptions=(0,u.merge)(tV.defaultOptions,{params:{period:void 0,index:3}}),(0,u.extend)(tk.prototype,{nameBase:"Trendline",nameComponents:void 0}),x().registerSeriesType("trendline",tk);let{sma:tO}=x().seriesTypes;class tL extends tO{init(){let e=arguments,t=e[1].params,s=t&&t.average?t.average:void 0;this.averageIndicator=x().seriesTypes[s]||tO,this.averageIndicator.prototype.init.apply(this,e)}calculateDisparityIndex(e,t){return(0,u.correctFloat)(e-t)/t*100}getValues(e,t){let s=t.index,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p=this.averageIndicator,h=(0,u.isArray)(o[0]),d=p.prototype.getValues(e,t),c=d.yData,g=a.indexOf(d.xData[0]);if(c&&0!==c.length&&(0,u.defined)(s)&&!(o.length<=g)){for(let e=g;e<i;e++){let t=this.calculateDisparityIndex(h?o[e][s]:o[e],c[e-g]);r.push([a[e],t]),n.push(a[e]),l.push(t)}return{values:r,xData:n,yData:l}}}}tL.defaultOptions=(0,u.merge)(tO.defaultOptions,{params:{average:"sma",index:3},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),(0,u.extend)(tL.prototype,{nameBase:"Disparity Index",nameComponents:["period","average"]}),x().registerSeriesType("disparityindex",tL);let tw=h();tw.MultipleLinesComposition=tw.MultipleLinesComposition||L;let tE=h();return p.default})());
14
+ */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Chart,e._Highcharts.SeriesRegistry,e._Highcharts.dataGrouping.approximations,e._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/indicators/indicators-all",["highcharts/highcharts"],function(e){return t(e,e.Chart,e.SeriesRegistry,e.dataGrouping,["approximations"],e.Color)}):"object"==typeof exports?exports["highcharts/indicators/indicators-all"]=t(e._Highcharts,e._Highcharts.Chart,e._Highcharts.SeriesRegistry,e._Highcharts.dataGrouping.approximations,e._Highcharts.Color):e.Highcharts=t(e.Highcharts,e.Highcharts.Chart,e.Highcharts.SeriesRegistry,e.Highcharts.dataGrouping.approximations,e.Highcharts.Color)}("u"<typeof window?this:window,(e,t,s,a,o)=>(()=>{"use strict";var i,r={960(e){e.exports=t},620(e){e.exports=o},512(e){e.exports=s},956(e){e.exports=a},944(t){t.exports=e}};let n={};function l(e){let t=n[e];if(void 0!==t)return t.exports;let s=n[e]={exports:{}};return r[e](s,s.exports,l),s.exports}l.n=e=>{let t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{if(Array.isArray(t))for(var s=0;s<t.length;){var a=t[s++],o=t[s++];l.o(e,a)?0===o&&s++:0===o?Object.defineProperty(e,a,{enumerable:!0,value:t[s++]}):Object.defineProperty(e,a,{enumerable:!0,get:o})}else for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let p={};l.d(p,{default:()=>tw});var u=l(944),h=l.n(u),d=l(960),c=l.n(d);let{setLength:g,splice:m}={convertToNumber:function(e,t){switch(typeof e){case"boolean":return+!!e;case"number":return isNaN(e)&&!t?null:e;default:return isNaN(e=parseFloat(`${e??""}`))&&!t?null:e}},setLength:function(e,t,s){return Array.isArray(e)?(e.length=t,e):e[s?"subarray":"slice"](0,t)},splice:function(e,t,s,a,o=[]){if(Array.isArray(e))return Array.isArray(o)||(o=Array.from(o)),{removed:e.splice(t,s,...o),array:e};let i=Object.getPrototypeOf(e).constructor,r=e[a?"subarray":"slice"](t,t+s),n=new i(e.length-s+o.length);return n.set(e.subarray(0,t),0),n.set(o,t),n.set(e.subarray(t+s),t+o.length),{removed:r,array:n}}},y=class{constructor(e={}){this.isDataTable=!0,this.autoId=!e.id,this.columns={},this.id=e.id||(0,u.uniqueKey)(),this.rowCount=0,this.versionTag=(0,u.uniqueKey)();let t=0;(0,u.objectEach)(e.columns||{},(e,s)=>{this.columns[s]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,(0,u.objectEach)(this.columns,(t,s)=>{t.length!==e&&(this.columns[s]=g(t,e))})}deleteRows(e,t=1){if(t>0&&e<this.rowCount){let s=0;(0,u.objectEach)(this.columns,(a,o)=>{this.columns[o]=m(a,e,t).array,s=a.length}),this.rowCount=s}(0,u.fireEvent)(this,"afterDeleteRows",{rowIndex:e,rowCount:t}),this.versionTag=(0,u.uniqueKey)()}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRowObject(e,t){let s={},a=this.columns;for(let o of(t??(t=Object.keys(this.columns)),t))s[o]=a[o]?.[e];return s}setColumn(e,t=[],s=0,a){this.setColumns({[e]:t},s,a)}setColumns(e,t,s){let a=this.rowCount;(0,u.objectEach)(e,(e,t)=>{this.columns[t]=e.slice(),a=e.length}),this.applyRowCount(a),s?.silent||((0,u.fireEvent)(this,"afterSetColumns"),this.versionTag=(0,u.uniqueKey)())}setRow(e,t=this.rowCount,s,a){var o;let{columns:i}=this,r=s?this.rowCount+1:t+1,n=Object.keys(e);if(a?.addColumns!==!1)for(let e=0,t=n.length;e<t;e++)i[o=n[e]]||(i[o]=Array(this.rowCount));(0,u.objectEach)(i,(a,o)=>{a&&(s?a=m(a,t,0,!0,[e[o]]).array:a[t]=o in e?e[o]:a[t],i[o]=a)}),this.applyRowCount(Math.max(r,this.rowCount)),a?.silent||((0,u.fireEvent)(this,"afterSetRows",{rowIndex:t}),this.versionTag=(0,u.uniqueKey)())}getModified(){return this.modified||this}};var f=l(512),x=l.n(f);let{line:v}=x().seriesTypes,D=(e,t)=>{let s=[],a=e.pointArrayMap,o=t&&e.dataTable.getModified()||e.dataTable;if(!a)return e.getColumn("y",t);let i=a.map(s=>e.getColumn(s,t));for(let e=0;e<o.rowCount;e++){let t=a.map((t,s)=>i[s]?.[e]||0);s.push(t)}return s};class b extends v{destroy(){this.dataEventsToUnbind.forEach(function(e){e()}),super.destroy.apply(this,arguments)}getName(){let e=[],t=this.name;return t||((this.nameComponents||[]).forEach(function(t,s){e.push(this.options.params[t]+(this.nameSuffixes[s]??""))},this),t=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+e.join(", ")+")":"")),t}getValues(e,t){let s=t.period,a=e.xData||[],o=e.yData,i=o.length,r=[],n=[],l=[],p,h=-1,d=0,c,g=0;if(!(a.length<s)){for((0,u.isArray)(o[0])&&(h=t.index?t.index:0);d<s-1;)g+=h<0?o[d]:o[d][h],d++;for(p=d;p<i;p++)g+=h<0?o[p]:o[p][h],c=[a[p],g/s],r.push(c),n.push(c[0]),l.push(c[1]),g-=h<0?o[p-d]:o[p-d][h];return{values:r,xData:n,yData:l}}}init(e,t){let s=this;super.init.call(s,e,t);let a=(0,u.addEvent)(c(),"afterLinkSeries",function({isUpdating:t}){if(t)return;let a=!!s.dataEventsToUnbind.length;if(!s.linkedParent)return(0,u.error)("Series "+s.options.linkedTo+" not found! Check `linkedTo`.",!1,e);if(!a&&(s.dataEventsToUnbind.push((0,u.addEvent)(s.linkedParent,"updatedData",function(){s.recalculateValues()})),s.calculateOn.xAxis&&s.dataEventsToUnbind.push((0,u.addEvent)(s.linkedParent.xAxis,s.calculateOn.xAxis,function(){s.recalculateValues()}))),"init"===s.calculateOn.chart)s.closestPointRange||s.recalculateValues();else if(!a){let e=(0,u.addEvent)(s.chart,s.calculateOn.chart,function(){s.recalculateValues(),e()})}},{order:0});s.dataEventsToUnbind=[],s.eventsToUnbind.push(a)}recalculateValues(){let e=this.dataTable,t=this.dataTable.rowCount,s=!0,a,o,i=this.linkedParent.yData,r=this.linkedParent.processedYData;this.linkedParent.xData=this.linkedParent.getColumn("x"),this.linkedParent.yData=D(this.linkedParent),this.linkedParent.processedYData=D(this.linkedParent,!0);let n=this.linkedParent.options&&this.linkedParent.dataTable.rowCount&&this.getValues(this.linkedParent,this.options.params)||{values:[],xData:[],yData:[]};n.xData.length=n.values.length,delete this.linkedParent.xData,this.linkedParent.yData=i,this.linkedParent.processedYData=r;let l=this.pointArrayMap||["y"],p={};if(n.yData.forEach(e=>{l.forEach((t,s)=>{let a=p[t]||[];a.push((0,u.isArray)(e)?e[s]:e),p[t]||(p[t]=a)})}),t&&!this.hasGroupedData&&this.visible&&this.points)if(this.cropped){this.xAxis&&(a=this.xAxis.min,o=this.xAxis.max);let t=this.cropData(e,a,o);this.setData(t.modified,!1)}else(this.updateAllPoints||n.xData.length!==t-1&&n.xData.length!==t+1)&&(s=!1,this.setData(new y({columns:{x:n.xData,...p}}),!1));s&&(p.x=n.xData,n.values.reduce((e,t,s)=>(Object.keys(t).forEach(a=>{e[a]||(e[a]=[]),e[a][s]=t[a]}),e),p),e.setColumns(p),delete this.xColumn,delete this.xColumnIsNumbers),this.calculateOn.xAxis&&this.getColumn("x",!0).length&&(this.isDirty=!0,this.redraw()),this.isDirtyData=!!this.linkedSeries.length,(0,u.fireEvent)(this,"updatedData")}processData(){let e=this.options.compareToMain,t=this.linkedParent;super.processData.apply(this,arguments),this.dataModify&&t&&t.dataModify&&t.dataModify.compareValue&&e&&(this.dataModify.compareValue=t.dataModify.compareValue)}}b.defaultOptions=(0,u.merge)(v.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:3,period:14}}),(0,u.extend)(b.prototype,{calculateOn:{chart:"init"},hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],useCommonDataGrouping:!0}),x().registerSeriesType("sma",b);let{sma:A}=x().seriesTypes;class S extends A{accumulatePeriodPoints(e,t,s){let a=0,o=0;for(;o<e;)a+=t<0?s[o]:s[o][t],o++;return a}calculateEma(e,t,s,a,o,i,r){let n=e[s-1],l=i<0?t[s-1]:t[s-1][i];return[n,void 0===o?r:(0,u.correctFloat)(l*a+o*(1-a))]}getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=2/(s+1),n=[],l=[],p=[],h,d,c,g=-1,m=0;if(!(i<s)){for((0,u.isArray)(o[0])&&(g=t.index?t.index:0),m=this.accumulatePeriodPoints(s,g,o)/s,c=s;c<i+1;c++)d=this.calculateEma(a,o,c,r,h,g,m),n.push(d),l.push(d[0]),p.push(d[1]),h=d[1];return{values:n,xData:l,yData:p}}}}S.defaultOptions=(0,u.merge)(A.defaultOptions,{params:{index:3,period:9}}),x().registerSeriesType("ema",S);let{sma:C}=x().seriesTypes;class T extends C{static populateAverage(e,t,s,a,o){let i=t[a][1],r=t[a][2],n=t[a][3],l=s[a],p=n===i&&n===r||i===r?0:(2*n-r-i)/(i-r)*l;return[e[a],p]}getValues(e,t){let s,a,o,i=t.period,r=e.xData,n=e.yData,l=t.volumeSeriesID,p=e.chart.get(l),h=p?.getColumn("y"),d=n?n.length:0,c=[],g=[],m=[];if(!(r.length<=i)||!d||4===n[0].length){if(!p)return void(0,u.error)("Series "+l+" not found! Check `volumeSeriesID`.",!0,e.chart);for(a=i;a<d;a++)s=c.length,o=T.populateAverage(r,n,h,a,i),s>0&&(o[1]+=c[s-1][1]),c.push(o),g.push(o[0]),m.push(o[1]);return{values:c,xData:g,yData:m}}}}T.defaultOptions=(0,u.merge)(C.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),(0,u.extend)(T.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),x().registerSeriesType("ad",T);let{noop:P}=h(),{column:{prototype:M},sma:V}=x().seriesTypes;class O extends V{drawGraph(){let e,t=this.options,s=this.points,a=this.userOptions.color,o=t.greaterBarColor,i=t.lowerBarColor,r=s[0];if(!a&&r)for(e=1,r.color=o;e<s.length;e++)s[e].y>s[e-1].y?s[e].color=o:s[e].y<s[e-1].y?s[e].color=i:s[e].color=s[e-1].color}getValues(e){let t=e.xData||[],s=e.yData||[],a=s.length,o=[],i=[],r=[],n,l,p,h,d,c,g,m,y=0,f=0;if(!(t.length<=34)&&(0,u.isArray)(s[0])&&4===s[0].length){for(g=0;g<33;g++)c=(s[g][1]+s[g][2])/2,g>=29&&(f=(0,u.correctFloat)(f+c)),y=(0,u.correctFloat)(y+c);for(m=33;m<a;m++)c=(s[m][1]+s[m][2])/2,f=(0,u.correctFloat)(f+c),y=(0,u.correctFloat)(y+c),n=f/5,l=y/34,p=(0,u.correctFloat)(n-l),o.push([t[m],p]),i.push(t[m]),r.push(p),h=m+1-5,d=m+1-34,f=(0,u.correctFloat)(f-(s[h][1]+s[h][2])/2),y=(0,u.correctFloat)(y-(s[d][1]+s[d][2])/2);return{values:o,xData:i,yData:r}}}}O.defaultOptions=(0,u.merge)(V.defaultOptions,{params:{index:void 0,period:void 0},greaterBarColor:"var(--highcharts-positive-color)",lowerBarColor:"var(--highcharts-negative-color)",threshold:0,groupPadding:.2,pointPadding:.2,crisp:!1,states:{hover:{halo:{size:0}}}}),(0,u.extend)(O.prototype,{nameBase:"AO",nameComponents:void 0,markerAttribs:P,getColumnMetrics:M.getColumnMetrics,crispCol:M.crispCol,translate:M.translate,drawPoints:M.drawPoints}),x().registerSeriesType("ao",O);let{sma:{prototype:L}}=x().seriesTypes;!function(e){let t=["bottomLine"],s=["top","bottom"],a=["top"];function o(e){return"plot"+e.charAt(0).toUpperCase()+e.slice(1)}function i(e,t){let s=[];return(e.pointArrayMap||[]).forEach(e=>{e!==t&&s.push(o(e))}),s}function r(){let e=this,t=e.pointValKey,s=e.linesApiNames,a=e.areaLinesNames,r=e.points,n=e.options,l=e.graph,p={options:{gapSize:n.gapSize}},h=[],d=i(e,t),c=r.length,g;if(d.forEach((e,t)=>{for(h[t]=[];c--;)g=r[c],h[t].push({x:g.x,plotX:g.plotX,plotY:g[e],isNull:!(0,u.defined)(g[e])});c=r.length}),e.userOptions.fillColor&&a.length){let t=h[d.indexOf(o(a[0]))],s=1===a.length?r:h[d.indexOf(o(a[1]))],i=e.color;e.points=s,e.nextPoints=t,e.color=e.userOptions.fillColor,e.options=(0,u.merge)(r,p),e.graph=e.area,e.fillGraph=!0,L.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=i}s.forEach((t,s)=>{h[s]?(e.points=h[s],n[t]?e.options=(0,u.merge)(n[t].styles,p):(0,u.error)('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],L.drawGraph.call(e),e["graph"+t]=e.graph):(0,u.error)('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=r,e.options=n,e.graph=l,L.drawGraph.call(e)}function n(e){let t,s=[],a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((t=L.getGraphPath.call(this,this.nextPoints))&&t.length){t[0][0]="L",s=L.getGraphPath.call(this,e),a=t.slice(0,s.length);for(let e=a.length-1;e>=0;e--)s.push(a[e])}}else s=L.getGraphPath.apply(this,arguments);return s}function l(e){let t=[];return(this.pointArrayMap||[]).forEach(s=>{t.push(e[s])}),t}function p(){let e=this.pointArrayMap,t=[],s;t=i(this),L.translate.apply(this,arguments),this.points.forEach(a=>{e.forEach((e,o)=>{s=a[e],this.dataModify&&(s=this.dataModify.modifyValue(s)),null!==s&&(a[t[o]]=this.yAxis.toPixels(s,!0))})})}e.compose=function(e){let o=e.prototype;return o.linesApiNames=o.linesApiNames||t.slice(),o.pointArrayMap=o.pointArrayMap||s.slice(),o.pointValKey=o.pointValKey||"top",o.areaLinesNames=o.areaLinesNames||a.slice(),o.drawGraph=r,o.getGraphPath=n,o.toYData=l,o.translate=p,e}}(i||(i={}));let k=i,{sma:w}=x().seriesTypes;function E(e,t){let s=e[0],a=0,o;for(o=1;o<e.length;o++)("max"===t&&e[o]>=s||"min"===t&&e[o]<=s)&&(s=e[o],a=o);return a}class I extends w{getValues(e,t){let s,a,o,i,r,n=t.period,l=e.xData,p=e.yData,u=p?p.length:0,h=[],d=[],c=[];for(i=n-1;i<u;i++)o=E((r=p.slice(i-n+1,i+2)).map(function(e){return e[2]??e}),"min"),s=E(r.map(function(e){return e[1]??e}),"max")/n*100,a=o/n*100,l[i+1]&&(h.push([l[i+1],s,a]),d.push(l[i+1]),c.push([s,a]));return{values:h,xData:d,yData:c}}}I.defaultOptions=(0,u.merge)(w.defaultOptions,{params:{index:void 0,period:25},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Aroon Up: {point.y}<br/>Aroon Down: {point.aroonDown}<br/>'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(I.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),k.compose(I),x().registerSeriesType("aroon",I);let{aroon:N}=x().seriesTypes;class F extends N{getValues(e,t){let s,a,o=[],i=[],r=[],n=super.getValues.call(this,e,t);for(a=0;a<n.yData.length;a++)s=n.yData[a][0]-n.yData[a][1],o.push([n.xData[a],s]),i.push(n.xData[a]),r.push(s);return{values:o,xData:i,yData:r}}}F.defaultOptions=(0,u.merge)(N.defaultOptions,{tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b>: {point.y}'}}),(0,u.extend)(F.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),k.compose(N),x().registerSeriesType("aroonoscillator",F);let{sma:B}=x().seriesTypes;function G(e,t){return Math.max(e[1]-e[2],void 0===t?0:Math.abs(e[1]-t[3]),void 0===t?0:Math.abs(e[2]-t[3]))}class W extends B{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[[a[0],o[0]]],n=[],l=[],p=[],h,d,c=0,g=1,m=0;if(!(a.length<=s)&&(0,u.isArray)(o[0])&&4===o[0].length){for(d=1;d<=i;d++){var y,f,x,v,D;!function(e,t,s,a){let o=t[a],i=s[a];e.push([o,i])}(r,a,o,d),s<g?(c=(y=a,f=o,x=d,v=s,D=c,h=[y[x-1],(D*(v-1)+G(f[x-1],f[x-2]))/v])[1],n.push(h),l.push(h[0]),p.push(h[1])):(s===g?(c=m/(d-1),n.push([a[d-1],c]),l.push(a[d-1]),p.push(c)):m+=G(o[d-1],o[d-2]),g++)}return{values:n,xData:l,yData:p}}}}W.defaultOptions=(0,u.merge)(B.defaultOptions,{params:{index:void 0}}),x().registerSeriesType("atr",W);let{sma:z}=x().seriesTypes;class Y extends z{init(){x().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=(0,u.merge)({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l,p,h,d=t.period,c=t.standardDeviation,g=[],m=[],y=e.xData,f=e.yData,v=f?f.length:0,D=[];if(y.length<d)return;let b=(0,u.isArray)(f[0]);for(h=d;h<=v;h++)r=y.slice(h-d,h),n=f.slice(h-d,h),i=(p=x().seriesTypes.sma.prototype.getValues.call(this,{xData:r,yData:n},t)).xData[0],s=p.yData[0],l=function(e,t,s,a){let o=e.length,i=0,r,n=0;for(;i<o;i++)n+=(r=(s?e[i][t]:e[i])-a)*r;return Math.sqrt(n/=o-1)}(n,t.index,b,s),a=s+c*l,o=s-c*l,D.push([i,a,s,o]),g.push(i),m.push([a,s,o]);return{values:D,xData:g,yData:m}}}Y.defaultOptions=(0,u.merge)(z.defaultOptions,{params:{period:20,standardDeviation:2,index:3},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),(0,u.extend)(Y.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","standardDeviation"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),k.compose(Y),x().registerSeriesType("bb",Y);let{sma:X}=x().seriesTypes;class R extends X{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p=[],h,d,c=[],g,m=1,y,f,x,v;if(!(a.length<=s)&&(0,u.isArray)(o[0])&&4===o[0].length){for(;m<s;)d=o[m-1],r.push((d[1]+d[2]+d[3])/3),m++;for(v=s;v<=i;v++)f=((d=o[v-1])[1]+d[2]+d[3])/3,g=r.push(f),y=(c=r.slice(g-s)).reduce(function(e,t){return e+t},0)/s,x=function(e,t){let s=e.length,a=0,o;for(o=0;o<s;o++)a+=Math.abs(t-e[o]);return a}(c,y)/s,h=(f-y)/(.015*x),n.push([a[v-1],h]),l.push(a[v-1]),p.push(h);return{values:n,xData:l,yData:p}}}}R.defaultOptions=(0,u.merge)(X.defaultOptions,{params:{index:void 0}}),x().registerSeriesType("cci",R);let{sma:K}=x().seriesTypes;class j extends K{constructor(){super(...arguments),this.nameBase="Chaikin Money Flow"}isValid(){let e=this.chart,t=this.options,s=this.linkedParent,a=this.volumeSeries||(this.volumeSeries=e.get(t.params.volumeSeriesID)),o=s?.pointArrayMap?.length===4;function i(e){return e.dataTable.rowCount>=t.params.period}return!!(s&&a&&i(s)&&i(a)&&o)}getValues(e,t){if(this.isValid())return this.getMoneyFlow(e.xData,e.yData,this.volumeSeries.getColumn("y"),t.period)}getMoneyFlow(e,t,s,a){let o=t.length,i=[],r=[],n=[],l=[],p,u,h=-1,d=0,c=0;function g(e,t){let s=e[1],a=e[2],o=e[3];return null!==t&&null!==s&&null!==a&&null!==o&&s!==a?(o-a-(s-o))/(s-a)*t:(h=p,null)}if(a>0&&a<=o){for(p=0;p<a;p++)i[p]=g(t[p],s[p]),d+=s[p],c+=i[p];for(r.push(e[p-1]),n.push(p-h>=a&&0!==d?c/d:null),l.push([r[0],n[0]]);p<o;p++)i[p]=g(t[p],s[p]),d-=s[p-a],d+=s[p],c-=i[p-a],c+=i[p],u=[e[p],p-h>=a?c/d:null],r.push(u[0]),n.push(u[1]),l.push([u[0],u[1]])}return{values:l,xData:r,yData:n}}}j.defaultOptions=(0,u.merge)(K.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),x().registerSeriesType("cmf",j);let{sma:H}=x().seriesTypes;class U extends H{calculateDM(e,t,s){let a,o=e[t][1],i=e[t][2],r=e[t-1][1],n=e[t-1][2];return a=o-r>n-i?s?Math.max(o-r,0):0:s?0:Math.max(n-i,0),(0,u.correctFloat)(a)}calculateDI(e,t){return e/t*100}calculateDX(e,t){return(0,u.correctFloat)(Math.abs(e-t)/Math.abs(e+t)*100)}smoothValues(e,t,s){return(0,u.correctFloat)(e-e/s+t)}getTR(e,t){return(0,u.correctFloat)(Math.max(e[1]-e[2],t?Math.abs(e[1]-t[3]):0,t?Math.abs(e[2]-t[3]):0))}getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[];if(a.length<=s||!(0,u.isArray)(o[0])||4!==o[0].length)return;let p=0,h=0,d=0,c;for(c=1;c<i;c++){let e,t,i,u,g,m,y,f,x;c<=s?(u=this.calculateDM(o,c,!0),g=this.calculateDM(o,c),m=this.getTR(o[c],o[c-1]),p+=u,h+=g,d+=m,c===s&&(y=this.calculateDI(p,d),f=this.calculateDI(h,d),x=this.calculateDX(p,h),r.push([a[c],x,y,f]),n.push(a[c]),l.push([x,y,f]))):(u=this.calculateDM(o,c,!0),g=this.calculateDM(o,c),m=this.getTR(o[c],o[c-1]),e=this.smoothValues(p,u,s),t=this.smoothValues(h,g,s),i=this.smoothValues(d,m,s),p=e,h=t,d=i,y=this.calculateDI(p,d),f=this.calculateDI(h,d),x=this.calculateDX(p,h),r.push([a[c],x,y,f]),n.push(a[c]),l.push([x,y,f]))}return{values:r,xData:n,yData:l}}}U.defaultOptions=(0,u.merge)(H.defaultOptions,{params:{index:void 0},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color: {point.color}">●</span><b> {series.name}</b><br/><span style="color: {point.color}">DX</span>: {point.y}<br/><span style="color: {point.series.options.plusDILine.styles.lineColor}">+DI</span>: {point.plusDI}<br/><span style="color: {point.series.options.minusDILine.styles.lineColor}">-DI</span>: {point.minusDI}<br/>'},plusDILine:{styles:{lineWidth:1,lineColor:"var(--highcharts-positive-color)"}},minusDILine:{styles:{lineWidth:1,lineColor:"var(--highcharts-negative-color)"}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(U.prototype,{areaLinesNames:[],nameBase:"DMI",linesApiNames:["plusDILine","minusDILine"],pointArrayMap:["y","plusDI","minusDI"],parallelArrays:["x","y","plusDI","minusDI"],pointValKey:"y"}),k.compose(U),x().registerSeriesType("dmi",U);let{sma:Z}=x().seriesTypes;function _(e,t,s,a,o){let i=t[s][a]??t[s];return o?(0,u.correctFloat)(e-i):(0,u.correctFloat)(e+i)}class q extends Z{getValues(e,t){let s=t.period,a=t.index,o=Math.floor(s/2+1),i=s+o,r=e.xData||[],n=e.yData||[],l=n.length,p=[],u=[],h=[],d,c,g,m,y,f=0;if(!(r.length<=i)){for(m=0;m<s-1;m++)f=_(f,n,m,a);for(y=0;y<=l-i;y++)c=y+s-1,g=y+i-1,f=_(f,n,c,a),d=(n[g][a]??n[g])-f/s,f=_(f,n,y,a,!0),p.push([r[g],d]),u.push(r[g]),h.push(d);return{values:p,xData:u,yData:h}}}}q.defaultOptions=(0,u.merge)(Z.defaultOptions,{params:{index:0,period:21}}),(0,u.extend)(q.prototype,{nameBase:"DPO"}),x().registerSeriesType("dpo",q);let{ema:$}=x().seriesTypes;class J extends ${getValues(e,t){let s,a,o=t.periods,i=t.period,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0])return void(0,u.error)('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."');let p=T.prototype.getValues.call(this,e,{volumeSeriesID:t.volumeSeriesID,period:i});if(!p)return;let h=super.getValues.call(this,p,{period:o[0]}),d=super.getValues.call(this,p,{period:o[1]});if(!h||!d)return;let c=o[1]-o[0];for(a=0;a<d.yData.length;a++)s=(0,u.correctFloat)(h.yData[a+c]-d.yData[a]),r.push([d.xData[a],s]),n.push(d.xData[a]),l.push(s);return{values:r,xData:n,yData:l}}}J.defaultOptions=(0,u.merge)($.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",period:9,periods:[3,10]}}),(0,u.extend)(J.prototype,{nameBase:"Chaikin Osc",nameComponents:["periods"]}),x().registerSeriesType("chaikin",J);let{sma:Q}=x().seriesTypes;class ee extends Q{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p,h=t.index,d;if(a.length<s)return;(0,u.isNumber)(o[0])?d=o:(h=Math.min(h,o[0].length-1),d=o.map(e=>e[h]));let c=0,g=0,m=0,y;for(let e=s;e>0;e--)d[e]>d[e-1]?g+=d[e]-d[e-1]:d[e]<d[e-1]&&(m+=d[e-1]-d[e]);for(y=g+m>0?100*(g-m)/(g+m):0,n.push(a[s]),l.push(y),r.push([a[s],y]),p=s+1;p<i;p++)c=Math.abs(d[p-s-1]-d[p-s]),d[p]>d[p-1]?g+=d[p]-d[p-1]:d[p]<d[p-1]&&(m+=d[p-1]-d[p]),d[p-s]>d[p-s-1]?g-=c:m-=c,y=g+m>0?100*(g-m)/(g+m):0,n.push(a[p]),l.push(y),r.push([a[p],y]);return{values:r,xData:n,yData:l}}}ee.defaultOptions=(0,u.merge)(Q.defaultOptions,{params:{period:20,index:3}}),x().registerSeriesType("cmo",ee);let{ema:et}=x().seriesTypes;class es extends et{getEMA(e,t,s,a,o,i){return super.calculateEma(i||[],e,void 0===o?1:o,this.EMApercent,t,void 0===a?-1:a,s)}getValues(e,t){let s=t.period,a=[],o=2*s,i=e.xData,r=e.yData,n=r?r.length:0,l=[],p=[],h=[],d=0,c=0,g,m,y,f,x=-1,v,D=0;if(this.EMApercent=2/(s+1),!(n<2*s-1)){for((0,u.isArray)(r[0])&&(x=t.index?t.index:0),D=(d=super.accumulatePeriodPoints(s,x,r))/s,d=0,f=s;f<n+2;f++)f<n+1&&(c=this.getEMA(r,m,D,x,f)[1],a.push(c)),m=c,f<o?d+=c:(f===o&&(D=d/s),c=a[f-s-1],g=this.getEMA([c],y,D)[1],v=[i[f-2],(0,u.correctFloat)(2*c-g)],l.push(v),p.push(v[0]),h.push(v[1]),y=g);return{values:l,xData:p,yData:h}}}}es.defaultOptions=(0,u.merge)(et.defaultOptions),x().registerSeriesType("dema",es);let{ema:ea}=x().seriesTypes;class eo extends ea{getEMA(e,t,s,a,o,i){return super.calculateEma(i||[],e,void 0===o?1:o,this.EMApercent,t,void 0===a?-1:a,s)}getTemaPoint(e,t,s,a){return[e[a-3],(0,u.correctFloat)(3*s.level1-3*s.level2+s.level3)]}getValues(e,t){let s=t.period,a=2*s,o=3*s,i=e.xData,r=e.yData,n=r?r.length:0,l=[],p=[],h=[],d=[],c=[],g={},m=-1,y=0,f=0,x,v,D,b;if(this.EMApercent=2/(s+1),!(n<3*s-2)){for((0,u.isArray)(r[0])&&(m=t.index?t.index:0),f=(y=super.accumulatePeriodPoints(s,m,r))/s,y=0,D=s;D<n+3;D++)D<n+1&&(g.level1=this.getEMA(r,x,f,m,D)[1],d.push(g.level1)),x=g.level1,D<a?y+=g.level1:(D===a&&(f=y/s,y=0),g.level1=d[D-s-1],g.level2=this.getEMA([g.level1],v,f)[1],c.push(g.level2),v=g.level2,D<o?y+=g.level2:(D===o&&(f=y/s),D===n+1&&(g.level1=d[D-s-1],g.level2=this.getEMA([g.level1],v,f)[1],c.push(g.level2)),g.level1=d[D-s-2],g.level2=c[D-2*s-1],g.level3=this.getEMA([g.level2],g.prevLevel3,f)[1],(b=this.getTemaPoint(i,o,g,D))&&(l.push(b),p.push(b[0]),h.push(b[1])),g.prevLevel3=g.level3));return{values:l,xData:p,yData:h}}}}eo.defaultOptions=(0,u.merge)(ea.defaultOptions),x().registerSeriesType("tema",eo);let{tema:ei}=x().seriesTypes;class er extends ei{getTemaPoint(e,t,s,a){if(a>t)return[e[a-3],0!==s.prevLevel3?(0,u.correctFloat)(s.level3-s.prevLevel3)/s.prevLevel3*100:null]}}er.defaultOptions=(0,u.merge)(ei.defaultOptions),x().registerSeriesType("trix",er);let{ema:en}=x().seriesTypes;class el extends en{getValues(e,t){let s,a,o=t.periods,i=t.index,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0])return void(0,u.error)('Error: "APO requires two periods. Notice, first period should be lower than the second one."');let p=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!p||!h)return;let d=o[1]-o[0];for(a=0;a<h.yData.length;a++)s=p.yData[a+d]-h.yData[a],r.push([h.xData[a],s]),n.push(h.xData[a]),l.push(s);return{values:r,xData:n,yData:l}}}el.defaultOptions=(0,u.merge)(en.defaultOptions,{params:{period:void 0,periods:[10,20]}}),(0,u.extend)(el.prototype,{nameBase:"APO",nameComponents:["periods"]}),x().registerSeriesType("apo",el);var ep=l(956),eu=l.n(ep),eh=l(620);let{parse:ed}=l.n(eh)(),{sma:ec}=x().seriesTypes;function eg(e){return{high:e.reduce(function(e,t){return Math.max(e,t[1])},-1/0),low:e.reduce(function(e,t){return Math.min(e,t[2])},1/0)}}function em(e){let t=e.indicator;t.points=e.points,t.nextPoints=e.nextPoints,t.color=e.color,t.options=(0,u.merge)(e.options.senkouSpan.styles,e.gap),t.graph=e.graph,t.fillGraph=!0,x().seriesTypes.sma.prototype.drawGraph.call(t)}class ey extends ec{constructor(){super(...arguments),this.data=[],this.options={},this.points=[],this.graphCollection=[]}init(){super.init.apply(this,arguments),this.options=(0,u.merge)({tenkanLine:{styles:{lineColor:this.color}},kijunLine:{styles:{lineColor:this.color}},chikouLine:{styles:{lineColor:this.color}},senkouSpanA:{styles:{lineColor:this.color,fill:ed(this.color).setOpacity(.5).get()}},senkouSpanB:{styles:{lineColor:this.color,fill:ed(this.color).setOpacity(.5).get()}},senkouSpan:{styles:{fill:ed(this.color).setOpacity(.2).get()}}},this.options)}toYData(e){return[e.tenkanSen,e.kijunSen,e.chikouSpan,e.senkouSpanA,e.senkouSpanB]}translate(){for(let e of(x().seriesTypes.sma.prototype.translate.apply(this),this.points))for(let t of this.pointArrayMap){let s=e[t];(0,u.isNumber)(s)&&(e["plot"+t]=this.yAxis.toPixels(s,!0),e.plotY=e["plot"+t],e.tooltipPos=[e.plotX,e["plot"+t]],e.isNull=!1)}}drawGraph(){let e=this,t=e.points,s=e.options,a=e.graph,o=e.color,i={options:{gapSize:s.gapSize}},r=e.pointArrayMap.length,n=[[],[],[],[],[],[]],l={tenkanLine:n[0],kijunLine:n[1],chikouLine:n[2],senkouSpanA:n[3],senkouSpanB:n[4],senkouSpan:n[5]},p=[],h=e.options.senkouSpan,d=h.color||h.styles.fill,c=h.negativeColor,g=[[],[]],m=[[],[]],y=t.length,f=0,v,D,b,A,S,C,T,P,M,V,O,L,k;for(e.ikhMap=l;y--;){for(b=0,D=t[y];b<r;b++)v=e.pointArrayMap[b],(0,u.defined)(D[v])&&n[b].push({plotX:D.plotX,plotY:D["plot"+v],isNull:!1});if(c&&y!==t.length-1){let e=l.senkouSpanB.length-1,t=function(e,t,s,a){if(e&&t&&s&&a){let o=t.plotX-e.plotX,i=t.plotY-e.plotY,r=a.plotX-s.plotX,n=a.plotY-s.plotY,l=e.plotX-s.plotX,p=e.plotY-s.plotY,u=(-i*l+o*p)/(-r*i+o*n),h=(r*p-n*l)/(-r*i+o*n);if(u>=0&&u<=1&&h>=0&&h<=1)return{plotX:e.plotX+h*o,plotY:e.plotY+h*i}}}(l.senkouSpanA[e-1],l.senkouSpanA[e],l.senkouSpanB[e-1],l.senkouSpanB[e]);if(t){let s={plotX:t.plotX,plotY:t.plotY,isNull:!1,intersectPoint:!0};l.senkouSpanA.splice(e,0,s),l.senkouSpanB.splice(e,0,s),p.push(e)}}}if((0,u.objectEach)(l,(t,a)=>{s[a]&&"senkouSpan"!==a&&(e.points=n[f],e.options=(0,u.merge)(s[a].styles,i),e.graph=e["graph"+a],e.fillGraph=!1,e.color=o,x().seriesTypes.sma.prototype.drawGraph.call(e),e["graph"+a]=e.graph),f++}),e.graphCollection)for(let t of e.graphCollection)e[t].destroy(),delete e[t];if(e.graphCollection=[],c&&l.senkouSpanA[0]&&l.senkouSpanB[0]){for(p.unshift(0),p.push(l.senkouSpanA.length-1),L=0;L<p.length-1;L++)if(A=p[L],S=p[L+1],C=l.senkouSpanB.slice(A,S+1),T=l.senkouSpanA.slice(A,S+1),Math.floor(C.length/2)>=1){let e=Math.floor(C.length/2);if(C[e].plotY===T[e].plotY){for(k=0,P=0,M=0;k<C.length;k++)P+=C[k].plotY,M+=T[k].plotY;g[O=P>M?0:1]=g[O].concat(C),m[O]=m[O].concat(T)}else g[O=C[e].plotY>T[e].plotY?0:1]=g[O].concat(C),m[O]=m[O].concat(T)}else g[O=C[0].plotY>T[0].plotY?0:1]=g[O].concat(C),m[O]=m[O].concat(T);["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(t,a){g[a].length&&m[a].length&&(V=0===a?d:c,em({indicator:e,points:g[a],nextPoints:m[a],color:V,options:s,gap:i,graph:e[t]}),e[t]=e.graph,e.graphCollection.push(t))})}else em({indicator:e,points:l.senkouSpanB,nextPoints:l.senkouSpanA,color:d,options:s,gap:i,graph:e.graphsenkouSpan}),e.graphsenkouSpan=e.graph;delete e.nextPoints,delete e.fillGraph,e.points=t,e.options=s,e.graph=a,e.color=o}getGraphPath(e){let t=[],s,a=[];if(e=e||this.points,this.fillGraph&&this.nextPoints){if((s=x().seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&s.length){s[0][0]="L",t=x().seriesTypes.sma.prototype.getGraphPath.call(this,e),a=s.slice(0,t.length);for(let e=a.length-1;e>=0;e--)t.push(a[e])}}else t=x().seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return t}getValues(e,t){let s,a,o,i,r,n,l,p,h,d,c=t.period,g=t.periodTenkan,m=t.periodSenkouSpanB,y=e.xData,f=e.yData,x=e.xAxis,v=f&&f.length||0,D=(0,u.getClosestDistance)(x.series.map(e=>e.getColumn("x"))),b=[],A=[];if(y.length<=c||!(0,u.isArray)(f[0])||4!==f[0].length)return;let S=y[0]-c*D;for(r=0;r<c;r++)A.push(S+r*D);for(r=0;r<v;r++)r>=g&&(n=((a=eg(f.slice(r-g,r))).high+a.low)/2),r>=c&&(h=(n+(l=((o=eg(f.slice(r-c,r))).high+o.low)/2))/2),r>=m&&(d=((i=eg(f.slice(r-m,r))).high+i.low)/2),p=f[r][3],s=y[r],void 0===b[r]&&(b[r]=[]),void 0===b[r+c-1]&&(b[r+c-1]=[]),b[r+c-1][0]=n,b[r+c-1][1]=l,b[r+c-1][2]=void 0,void 0===b[r+1]&&(b[r+1]=[]),b[r+1][2]=p,r<=c&&(b[r+c-1][3]=void 0,b[r+c-1][4]=void 0),void 0===b[r+2*c-2]&&(b[r+2*c-2]=[]),b[r+2*c-2][3]=h,b[r+2*c-2][4]=d,A.push(s);for(r=1;r<=c;r++)A.push(s+r*D);return{values:b,xData:A,yData:b}}}ey.defaultOptions=(0,u.merge)(ec.defaultOptions,{params:{index:void 0,period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>TENKAN SEN: {point.tenkanSen:.3f}<br/>KIJUN SEN: {point.kijunSen:.3f}<br/>CHIKOU SPAN: {point.chikouSpan:.3f}<br/>SENKOU SPAN A: {point.senkouSpanA:.3f}<br/>SENKOU SPAN B: {point.senkouSpanB:.3f}<br/>'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}}),(0,u.extend)(ey.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"]}),eu()["ichimoku-averages"]=function(){let e,t=[];return[].forEach.call(arguments,function(s,a){t.push(eu().average(s)),e=!e&&void 0===t[a]}),e?void 0:t},x().registerSeriesType("ikh",ey);let{sma:ef}=x().seriesTypes;class ex extends ef{init(){x().seriesTypes.sma.prototype.init.apply(this,arguments),this.options=(0,u.merge)({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l,p=t.period,h=t.periodATR,d=t.multiplierATR,c=t.index,g=e.yData,m=g?g.length:0,y=[],f=x().seriesTypes.ema.prototype.getValues(e,{period:p,index:c}),v=x().seriesTypes.atr.prototype.getValues(e,{period:h}),D=[],b=[];if(!(m<p)){for(l=p;l<=m;l++)r=f.values[l-p],n=v.values[l-h],i=r[0],a=(0,u.correctFloat)(r[1]+d*n[1]),o=(0,u.correctFloat)(r[1]-d*n[1]),s=r[1],y.push([i,a,s,o]),D.push(i),b.push([a,s,o]);return{values:y,xData:D,yData:b}}}}ex.defaultOptions=(0,u.merge)(ef.defaultOptions,{params:{index:0,period:20,periodATR:10,multiplierATR:2},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Upper Channel: {point.top}<br/>EMA({series.options.params.period}): {point.middle}<br/>Lower Channel: {point.bottom}<br/>'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1}),(0,u.extend)(ex.prototype,{nameBase:"Keltner Channels",areaLinesNames:["top","bottom"],nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),k.compose(ex),x().registerSeriesType("keltnerchannels",ex);let{ema:ev,sma:eD}=x().seriesTypes;class eb extends eD{calculateTrend(e,t){return e[t][1]+e[t][2]+e[t][3]>e[t-1][1]+e[t-1][2]+e[t-1][3]?1:-1}isValidData(e){let t=this.chart,s=this.options,a=this.linkedParent,o=(0,u.isArray)(e)&&4===e.length,i=this.volumeSeries||(this.volumeSeries=t.get(s.params.volumeSeriesID));return i||(0,u.error)("Series "+s.params.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,a.chart),!!([a,i].every(function(e){return e&&e.dataTable.rowCount>=s.params.slowAvgPeriod})&&o)}getCM(e,t,s,a,o){return(0,u.correctFloat)(t+(s===a?e:o))}getDM(e,t){return(0,u.correctFloat)(e-t)}getVolumeForce(e){let t=[],s=0,a,o=1,i=0,r=e[0][1]-e[0][2],n=0,l;for(;o<e.length;o++)l=this.calculateTrend(e,o),a=this.getDM(e[o][1],e[o][2]),s=this.getCM(i,a,l,n,r),t.push([this.volumeSeries.getColumn("y")[o]*l*Math.abs(2*(a/s-1))*100]),n=l,i=s,r=a;return t}getEMA(e,t,s,a,o,i,r){return ev.prototype.calculateEma(r||[],e,void 0===i?1:i,a,t,void 0===o?-1:o,s)}getSMA(e,t,s){return ev.prototype.accumulatePeriodPoints(e,t,s)/e}getValues(e,t){let s=[],a=e.xData,o=e.yData,i=[],r=[],n=[],l,p=0,h=0,d,c,g,m=null;if(!this.isValidData(o[0]))return;let y=this.getVolumeForce(o),f=this.getSMA(t.fastAvgPeriod,0,y),x=this.getSMA(t.slowAvgPeriod,0,y),v=2/(t.fastAvgPeriod+1),D=2/(t.slowAvgPeriod+1);for(;p<o.length;p++)p>=t.fastAvgPeriod&&(c=h=this.getEMA(y,c,f,v,0,p,a)[1]),p>=t.slowAvgPeriod&&(g=d=this.getEMA(y,g,x,D,0,p,a)[1],n.push(l=(0,u.correctFloat)(h-d)),n.length>=t.signalPeriod&&(m=n.slice(-t.signalPeriod).reduce((e,t)=>e+t)/t.signalPeriod),s.push([a[p],l,m]),i.push(a[p]),r.push([l,m]));return{values:s,xData:i,yData:r}}}eb.defaultOptions=(0,u.merge)(eD.defaultOptions,{params:{fastAvgPeriod:34,slowAvgPeriod:55,signalPeriod:13,volumeSeriesID:"volume"},signalLine:{styles:{lineWidth:1,lineColor:"#ff0000"}},dataGrouping:{approximation:"averages"},tooltip:{pointFormat:'<span style="color: {point.color}">●</span><b> {series.name}</b><br/><span style="color: {point.color}">Klinger</span>: {point.y}<br/><span style="color: {point.series.options.signalLine.styles.lineColor}">Signal</span>: {point.signal}<br/>'}}),(0,u.extend)(eb.prototype,{areaLinesNames:[],linesApiNames:["signalLine"],nameBase:"Klinger",nameComponents:["fastAvgPeriod","slowAvgPeriod"],pointArrayMap:["y","signal"],parallelArrays:["x","y","signal"],pointValKey:"y"}),k.compose(eb),x().registerSeriesType("klinger",eb);let{noop:eA}=h(),{sma:eS}=x().seriesTypes;class eC extends eS{init(){x().seriesTypes.sma.prototype.init.apply(this,arguments);let e=this.color,t=this.colorIndex;this.options&&((0,u.defined)(this.colorIndex)&&(this.options.signalLine?.styles&&!this.options.signalLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.signalLine.styles.lineColor=this.color),this.options.macdLine?.styles&&!this.options.macdLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.macdLine.styles.lineColor=this.color)),this.macdZones={zones:this.options.macdLine?.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones?.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones?.length}),this.color=e,this.colorIndex=t}toYData(e){return[e.y,e.signal,e.MACD]}translate(){let e=this,t=["plotSignal","plotMACD"];h().seriesTypes.column.prototype.translate.apply(e),e.points.forEach(function(s){[s.signal,s.MACD].forEach(function(a,o){null!==a&&(s[t[o]]=e.yAxis.toPixels(a,!0))})})}destroy(){this.graph=null,this.graphmacd=this.graphmacd&&this.graphmacd.destroy(),this.graphsignal=this.graphsignal&&this.graphsignal.destroy(),x().seriesTypes.sma.prototype.destroy.apply(this,arguments)}drawGraph(){let e=this,t=e.points,s=e.options,a=e.zones,o={options:{gapSize:s.gapSize}},i=[[],[]],r,n=t.length;for(;n--;)r=t[n],(0,u.defined)(r.plotMACD)&&i[0].push({plotX:r.plotX,plotY:r.plotMACD,isNull:!(0,u.defined)(r.plotMACD)}),(0,u.defined)(r.plotSignal)&&i[1].push({plotX:r.plotX,plotY:r.plotSignal,isNull:!(0,u.defined)(r.plotMACD)});["macd","signal"].forEach((t,a)=>{e.points=i[a],e.options=(0,u.merge)(s[`${t}Line`]?.styles||{},o),e.graph=e[`graph${t}`],e.zones=(e[`${t}Zones`].zones||[]).slice(e[`${t}Zones`].startIndex||0),x().seriesTypes.sma.prototype.drawGraph.call(e),e[`graph${t}`]=e.graph}),e.points=t,e.options=s,e.zones=a}applyZones(){let e=this.zones;this.zones=this.signalZones.zones,x().seriesTypes.sma.prototype.applyZones.call(this),this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(),this.zones=e}getValues(e,t){let s=t.longPeriod-t.shortPeriod,a=[],o=[],i=[],r,n,l,p=0,h=[];if(!(e.xData.length<t.longPeriod+t.signalPeriod)){for(l=0,r=x().seriesTypes.ema.prototype.getValues(e,{period:t.shortPeriod,index:t.index}),n=x().seriesTypes.ema.prototype.getValues(e,{period:t.longPeriod,index:t.index}),r=r.values,n=n.values;l<=r.length;l++)(0,u.defined)(n[l])&&(0,u.defined)(n[l][1])&&(0,u.defined)(r[l+s])&&(0,u.defined)(r[l+s][0])&&a.push([r[l+s][0],0,null,r[l+s][1]-n[l][1]]);for(l=0;l<a.length;l++)o.push(a[l][0]),i.push([0,null,a[l][3]]);for(l=0,h=(h=x().seriesTypes.ema.prototype.getValues({xData:o,yData:i},{period:t.signalPeriod,index:2})).values;l<a.length;l++)a[l][0]>=h[0][0]&&(a[l][2]=h[p][1],i[l]=[0,h[p][1],a[l][3]],null===a[l][3]?(a[l][1]=0,i[l][0]=0):(a[l][1]=(0,u.correctFloat)(a[l][3]-h[p][1]),i[l][0]=(0,u.correctFloat)(a[l][3]-h[p][1])),p++);return{values:a,xData:o,yData:i}}}}eC.defaultOptions=(0,u.merge)(eS.defaultOptions,{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,crisp:!1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>Value: {point.MACD}<br/>Signal: {point.signal}<br/>Histogram: {point.y}<br/>'},dataGrouping:{approximation:"averages"},minPointLength:0}),(0,u.extend)(eC.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:eA,getColumnMetrics:h().seriesTypes.column.prototype.getColumnMetrics,crispCol:h().seriesTypes.column.prototype.crispCol,drawPoints:h().seriesTypes.column.prototype.drawPoints}),x().registerSeriesType("macd",eC);let{sma:eT}=x().seriesTypes;function eP(e){return e.reduce(function(e,t){return e+t})}function eM(e){return(e[1]+e[2]+e[3])/3}class eV extends eT{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=t.decimals,n=e.chart.get(t.volumeSeriesID),l=n?.getColumn("y")||[],p=[],h=[],d=[],c=[],g=[],m,y,f,x,v,D,b=!1,A=1;if(!n)return void(0,u.error)("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);if(!(a.length<=s)&&(0,u.isArray)(o[0])&&4===o[0].length&&l){for(m=eM(o[A]);A<s+1;)y=m,b=(m=eM(o[A]))>=y,f=m*l[A],c.push(b?f:0),g.push(b?0:f),A++;for(D=A-1;D<i;D++){var S;D>A-1&&(c.shift(),g.shift(),y=m,b=(m=eM(o[D]))>y,f=m*l[D],c.push(b?f:0),g.push(b?0:f)),x=eP(g),S=100-100/(1+eP(c)/x),v=parseFloat(S.toFixed(r)),p.push([a[D],v]),h.push(a[D]),d.push(v)}return{values:p,xData:h,yData:d}}}}eV.defaultOptions=(0,u.merge)(eT.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",decimals:4}}),(0,u.extend)(eV.prototype,{nameBase:"Money Flow Index"}),x().registerSeriesType("mfi",eV);let{sma:eO}=x().seriesTypes;function eL(e,t,s,a,o){let i=t[s-1][o]-t[s-a-1][o];return[e[s-1],i]}class ek extends eO{getValues(e,t){let s,a,o=t.period,i=t.index,r=e.xData,n=e.yData,l=n?n.length:0,p=[],h=[],d=[];if(!(r.length<=o)&&(0,u.isArray)(n[0])){for(s=o+1;s<l;s++)a=eL(r,n,s,o,i),p.push(a),h.push(a[0]),d.push(a[1]);return a=eL(r,n,s,o,i),p.push(a),h.push(a[0]),d.push(a[1]),{values:p,xData:h,yData:d}}}}ek.defaultOptions=(0,u.merge)(eO.defaultOptions,{params:{index:3}}),(0,u.extend)(ek.prototype,{nameBase:"Momentum"}),x().registerSeriesType("momentum",ek);let{atr:ew}=x().seriesTypes;class eE extends ew{getValues(e,t){let s=super.getValues.apply(this,arguments),a=s.values.length,o=e.yData,i=0,r=t.period-1;if(s){for(;i<a;i++)s.yData[i]=s.values[i][1]/o[r][3]*100,s.values[i][1]=s.yData[i],r++;return s}}}eE.defaultOptions=(0,u.merge)(ew.defaultOptions,{tooltip:{valueSuffix:"%"}}),x().registerSeriesType("natr",eE);let{sma:eI}=x().seriesTypes;class eN extends eI{getValues(e,t){let s=e.chart.get(t.volumeSeriesID),a=e.xData,o=e.yData,i=[],r=[],n=[],l=!(0,u.isNumber)(o[0]),p=[],h=1,d=0,c=0,g=0,m=0,y;if(!s)return void(0,u.error)("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,e.chart);for(y=s.getColumn("y"),p=[a[0],d],g=l?o[0][3]:o[0],i.push(p),r.push(a[0]),n.push(p[1]);h<o.length;h++)c=(m=l?o[h][3]:o[h])>g?d+y[h]:m===g?d:d-y[h],p=[a[h],c],d=c,g=m,i.push(p),r.push(a[h]),n.push(p[1]);return{values:i,xData:r,yData:n}}}eN.defaultOptions=(0,u.merge)(eI.defaultOptions,{marker:{enabled:!1},params:{index:void 0,period:void 0,volumeSeriesID:"volume"},tooltip:{valueDecimals:0}}),(0,u.extend)(eN.prototype,{nameComponents:void 0}),x().registerSeriesType("obv",eN);let eF=x().seriesTypes.sma.prototype.pointClass;function eB(e,t){let s=e.series.pointArrayMap,a,o=s.length;for(x().seriesTypes.sma.prototype.pointClass.prototype[t].call(e);o--;)e[a="dataLabel"+s[o]]&&e[a].element&&e[a].destroy(),e[a]=null}let{sma:eG}=x().seriesTypes;class eW extends eG{toYData(e){return[e.P]}translate(){let e=this;super.translate.apply(e),e.points.forEach(function(t){e.pointArrayMap.forEach(function(s){(0,u.defined)(t[s])&&(t["plot"+s]=e.yAxis.toPixels(t[s],!0))})}),e.plotEndPoint=e.xAxis.toPixels(e.endPoint,!0)}getGraphPath(e){let t=this,s=[[],[],[],[],[],[],[],[],[]],a=t.pointArrayMap.length,o=t.plotEndPoint,i=[],r,n,l=e.length,p;for(;l--;){for(p=0,n=e[l];p<a;p++)r=t.pointArrayMap[p],(0,u.defined)(n[r])&&s[p].push({plotX:n.plotX,plotY:n["plot"+r],isNull:!1},{plotX:o,plotY:n["plot"+r],isNull:!1},{plotX:o,plotY:null,isNull:!0});o=n.plotX}return s.forEach(e=>{i=i.concat(super.getGraphPath.call(t,e))}),i}drawDataLabels(){let e,t,s,a,o=this,i=o.pointArrayMap;o.options.dataLabels.enabled&&(t=o.points.length,i.concat([!1]).forEach((r,n)=>{for(a=t;a--;)s=o.points[a],r?(s.y=s[r],s.pivotLine=r,s.plotY=s["plot"+r],e=s["dataLabel"+r],n&&(s["dataLabel"+i[n-1]]=s.dataLabel),s.dataLabels||(s.dataLabels=[]),s.dataLabels[0]=s.dataLabel=e=e&&e.element?e:null):s["dataLabel"+i[n-1]]=s.dataLabel;super.drawDataLabels.call(o)}))}getValues(e,t){let s,a,o,i,r,n,l,p=t.period,h=e.xData,d=e.yData,c=d?d.length:0,g=this[t.algorithm+"Placement"],m=[],y=[],f=[];if(!(h.length<p)&&(0,u.isArray)(d[0])&&4===d[0].length){for(l=p+1;l<=c+p;l+=p)o=h.slice(l-p-1,l),i=d.slice(l-p-1,l),a=o.length,s=o[a-1],n=g(this.getPivotAndHLC(i)),r=m.push([s].concat(n)),y.push(s),f.push(m[r-1].slice(1));return this.endPoint=o[0]+(s-o[0])/a*p,{values:m,xData:y,yData:f}}}getPivotAndHLC(e){let t=e[e.length-1][3],s=-1/0,a=1/0;return e.forEach(function(e){s=Math.max(s,e[1]),a=Math.min(a,e[2])}),[(s+a+t)/3,s,a,t]}standardPlacement(e){let t=e[1]-e[2];return[null,null,e[0]+t,2*e[0]-e[2],e[0],2*e[0]-e[1],e[0]-t,null,null]}camarillaPlacement(e){let t=e[1]-e[2];return[e[3]+1.5*t,e[3]+1.25*t,e[3]+1.1666*t,e[3]+1.0833*t,e[0],e[3]-1.0833*t,e[3]-1.1666*t,e[3]-1.25*t,e[3]-1.5*t]}fibonacciPlacement(e){let t=e[1]-e[2];return[null,e[0]+t,e[0]+.618*t,e[0]+.382*t,e[0],e[0]-.382*t,e[0]-.618*t,e[0]-t,null]}}eW.defaultOptions=(0,u.merge)(eG.defaultOptions,{params:{index:void 0,period:28,algorithm:"standard"},marker:{enabled:!1},enableMouseTracking:!1,dataLabels:{enabled:!0,format:"{point.pivotLine}"},dataGrouping:{approximation:"averages"}}),(0,u.extend)(eW.prototype,{nameBase:"Pivot Points",pointArrayMap:["R4","R3","R2","R1","P","S1","S2","S3","S4"],pointValKey:"P",pointClass:class extends eF{destroyElements(){eB(this,"destroyElements")}destroy(){eB(this,"destroyElements")}}}),x().registerSeriesType("pivotpoints",eW);let{ema:ez}=x().seriesTypes;class eY extends ez{getValues(e,t){let s,a,o=t.periods,i=t.index,r=[],n=[],l=[];if(2!==o.length||o[1]<=o[0])return void(0,u.error)('Error: "PPO requires two periods. Notice, first period should be lower than the second one."');let p=super.getValues.call(this,e,{index:i,period:o[0]}),h=super.getValues.call(this,e,{index:i,period:o[1]});if(!p||!h)return;let d=o[1]-o[0];for(a=0;a<h.yData.length;a++)s=(0,u.correctFloat)((p.yData[a+d]-h.yData[a])/h.yData[a]*100),r.push([h.xData[a],s]),n.push(h.xData[a]),l.push(s);return{values:r,xData:n,yData:l}}}eY.defaultOptions=(0,u.merge)(ez.defaultOptions,{params:{period:void 0,periods:[12,26]}}),(0,u.extend)(eY.prototype,{nameBase:"PPO",nameComponents:["periods"]}),x().registerSeriesType("ppo",eY);let eX=function(e,t,s){return e.reduce((e,a)=>[Math.min(e[0],a[t]),Math.max(e[1],a[s])],[Number.MAX_VALUE,-Number.MAX_VALUE])},{sma:eR}=x().seriesTypes;class eK extends eR{getValues(e,t){let s,a,o,i,r,n,l=t.period,p=e.xData,u=e.yData,h=u?u.length:0,d=[],c=[],g=[];if(!(h<l)){for(n=l;n<=h;n++)i=p[n-1],s=((a=(r=eX(u.slice(n-l,n),2,1))[1])+(o=r[0]))/2,d.push([i,a,s,o]),c.push(i),g.push([a,s,o]);return{values:d,xData:c,yData:g}}}}eK.defaultOptions=(0,u.merge)(eR.defaultOptions,{params:{index:void 0,period:20},lineWidth:1,topLine:{styles:{lineColor:"var(--highcharts-color-2)",lineWidth:1}},bottomLine:{styles:{lineColor:"var(--highcharts-color-8)",lineWidth:1}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(eK.prototype,{areaLinesNames:["top","bottom"],nameBase:"Price Channel",nameComponents:["period"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),k.compose(eK),x().registerSeriesType("pc",eK);let{sma:ej}=x().seriesTypes;class eH extends ej{init(){super.init.apply(this,arguments),this.options=(0,u.merge)({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s,a,o,i,r,n,l,p,h=t.period,d=t.topBand,c=t.bottomBand,g=e.xData,m=e.yData,y=m?m.length:0,f=[],x=[],v=[];if(!(g.length<h)&&(0,u.isArray)(m[0])&&4===m[0].length){for(p=h;p<=y;p++)r=g.slice(p-h,p),n=m.slice(p-h,p),i=(l=super.getValues({xData:r,yData:n},t)).xData[0],a=(s=l.yData[0])*(1+d),o=s*(1-c),f.push([i,a,s,o]),x.push(i),v.push([a,s,o]);return{values:f,xData:x,yData:v}}}}eH.defaultOptions=(0,u.merge)(ej.defaultOptions,{marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>'},params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(eH.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle"}),k.compose(eH),x().registerSeriesType("priceenvelopes",eH);let{sma:eU}=x().seriesTypes;function eZ(e,t){return parseFloat(e.toFixed(t))}class e_ extends eU{constructor(){super(...arguments),this.nameComponents=void 0}getValues(e,t){let s=e.xData,a=e.yData,o=t.maxAccelerationFactor,i=t.increment,r=t.initialAccelerationFactor,n=t.decimals,l=t.index,p=[],u=[],h=[],d=t.initialAccelerationFactor,c,g=a[0][1],m,y,f,x=1,v,D,b,A,S=a[0][2],C,T,P,M;if(!(l>=a.length)){for(M=0;M<l;M++)g=Math.max(a[M][1],g),S=Math.min(a[M][2],eZ(S,n));for(c=a[M][1]>S?1:-1,m=g-S,y=(d=t.initialAccelerationFactor)*m,p.push([s[l],S]),u.push(s[l]),h.push(eZ(S,n)),M=l+1;M<a.length;M++)if(v=a[M-1][2],D=a[M-2][2],b=a[M-1][1],A=a[M-2][1],T=a[M][1],P=a[M][2],null!==D&&null!==A&&null!==v&&null!==b&&null!==T&&null!==P){var V,O,L,k,w,E,I,N,F,B,G,W,z,Y,X,R,K,j,H,U,Z;w=c,E=x,I=S,N=y,F=D,B=v,G=b,W=A,z=g,S=w===E?1===w?I+N<Math.min(F,B)?I+N:Math.min(F,B):I+N>Math.max(W,G)?I+N:Math.max(W,G):z,V=c,O=g,C=1===V?T>O?T:O:P<O?P:O,L=x,k=S,Y=f=1===L&&P>k||-1===L&&T>k?1:-1,X=c,R=C,K=g,j=d,H=i,U=o,Z=r,y=(d=Y===X?1===Y&&R>K||-1===Y&&R<K?j===U?U:eZ(j+H,2):j:Z)*(m=C-S),p.push([s[M],eZ(S,n)]),u.push(s[M]),h.push(eZ(S,n)),x=c,c=f,g=C}return{values:p,xData:u,yData:h}}}}e_.defaultOptions=(0,u.merge)(eU.defaultOptions,{lineWidth:0,marker:{enabled:!0},states:{hover:{lineWidthPlus:0}},params:{period:void 0,initialAccelerationFactor:.02,maxAccelerationFactor:.2,increment:.02,index:2,decimals:4}}),x().registerSeriesType("psar",e_);let{sma:eq}=x().seriesTypes;class e$ extends eq{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p,h=-1,d;if(!(a.length<=s)){for((0,u.isArray)(o[0])&&(h=t.index),p=s;p<i;p++)d=function(e,t,s,a,o){let i,r;return r=o<0?(i=t[s-a])?(t[s]-i)/i*100:null:(i=t[s-a][o])?(t[s][o]-i)/i*100:null,[e[s],r]}(a,o,p,s,h),r.push(d),n.push(d[0]),l.push(d[1]);return{values:r,xData:n,yData:l}}}}e$.defaultOptions=(0,u.merge)(eq.defaultOptions,{params:{index:3,period:9}}),(0,u.extend)(e$.prototype,{nameBase:"Rate of Change"}),x().registerSeriesType("roc",e$);let{sma:eJ}=x().seriesTypes;function eQ(e,t){return parseFloat(e.toFixed(t))}class e0 extends eJ{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=t.decimals,n=[],l=[],p=[],h=0,d=0,c=t.index,g=1,m,y,f,x,v,D;if(!(a.length<s)){for((0,u.isNumber)(o[0])?D=o:(c=Math.min(c,o[0].length-1),D=o.map(e=>e[c]));g<s;)(y=eQ(D[g]-D[g-1],r))>0?h+=y:d+=Math.abs(y),g++;for(f=eQ(h/(s-1),r),x=eQ(d/(s-1),r),v=g;v<i;v++)(y=eQ(D[v]-D[v-1],r))>0?(h=y,d=0):(h=0,d=Math.abs(y)),f=eQ((f*(s-1)+h)/s,r),m=0===(x=eQ((x*(s-1)+d)/s,r))?100:0===f?0:eQ(100-100/(1+f/x),r),n.push([a[v],m]),l.push(a[v]),p.push(m);return{values:n,xData:l,yData:p}}}}e0.defaultOptions=(0,u.merge)(eJ.defaultOptions,{params:{decimals:4,index:3}}),x().registerSeriesType("rsi",e0);let{sma:e1}=x().seriesTypes;class e2 extends e1{init(){super.init.apply(this,arguments),this.options=(0,u.merge)({smoothedLine:{styles:{lineColor:this.color}}},this.options)}getValues(e,t){let s=t.periods[0],a=t.periods[1],o=e.xData,i=e.yData,r=i?i.length:0,n=[],l=[],p=[],h,d,c=null,g,m;if(r<s||!(0,u.isArray)(i[0])||4!==i[0].length)return;let y=!0,f=0;for(m=s-1;m<r;m++){if(h=(g=eX(i.slice(m-s+1,m+1),2,1))[0],isNaN(d=(i[m][3]-h)/(g[1]-h)*100)&&y){f++;continue}y&&!isNaN(d)&&(y=!1);let e=l.push(o[m]);isNaN(d)?p.push([p[e-2]&&"number"==typeof p[e-2][0]?p[e-2][0]:null,null]):p.push([d,null]),m>=f+(s-1)+(a-1)&&(c=super.getValues({xData:l.slice(-a),yData:p.slice(-a)},{period:a}).yData[0]),n.push([o[m],d,c]),p[e-1][1]=c}return{values:n,xData:l,yData:p}}}e2.defaultOptions=(0,u.merge)(e1.defaultOptions,{params:{index:void 0,period:void 0,periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">●</span><b> {series.name}</b><br/>%K: {point.y}<br/>%D: {point.smoothed}<br/>'},smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(e2.prototype,{areaLinesNames:[],nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"]}),k.compose(e2),x().registerSeriesType("stochastic",e2);let{sma:e3,stochastic:e4}=x().seriesTypes;class e5 extends e4{getValues(e,t){let s=t.periods,a=super.getValues.call(this,e,t),o={values:[],xData:[],yData:[]};if(!a)return;o.xData=a.xData.slice(s[1]-1);let i=a.yData.slice(s[1]-1),r=e3.prototype.getValues.call(this,{xData:o.xData,yData:i},{index:1,period:s[2]});if(r){for(let e=0,t=o.xData.length;e<t;e++)o.yData[e]=[i[e][1],r.yData[e-s[2]+1]||null],o.values[e]=[o.xData[e],i[e][1],r.yData[e-s[2]+1]||null];return o}}}e5.defaultOptions=(0,u.merge)(e4.defaultOptions,{params:{periods:[14,3,3]}}),(0,u.extend)(e5.prototype,{nameBase:"Slow Stochastic"}),x().registerSeriesType("slowstochastic",e5);let{atr:e6,sma:e9}=x().seriesTypes;function e8(e,t){return{index:t,close:e.getColumn("close")[t],x:e.getColumn("x")[t]}}class e7 extends e9{init(){let e=this;super.init.apply(e,arguments);let t=(0,u.addEvent)(this.chart.constructor,"afterLinkSeries",()=>{let{linkedParent:s,options:a}=e;a&&s&&(a.cropThreshold=(s.options.cropThreshold??0)-((a.params?.period??0)-1)),t()},{order:1})}drawGraph(){let e=this,t=e.options,s=e.linkedParent,a=s.getColumn("x"),o=s?s.points:[],i=e.points,r=e.graph,n=o.length-i.length,l=n>0?n:0,p={options:{gapSize:t.gapSize}},h={top:[],bottom:[],intersect:[]},d={top:{styles:{lineWidth:t.lineWidth,lineColor:t.fallingTrendColor||t.color,dashStyle:t.dashStyle}},bottom:{styles:{lineWidth:t.lineWidth,lineColor:t.risingTrendColor||t.color,dashStyle:t.dashStyle}},intersect:t.changeTrendLine},c,g,m,y,f,x,v,D,b,A=i.length;for(;A--;)c=i[A],g=i[A-1],m=o[A-1+l],y=o[A-2+l],f=o[A+l],x=o[A+l+1],v=c.options.color,D={x:c.x,plotX:c.plotX,plotY:c.plotY,isNull:!1},!y&&m&&(0,u.isNumber)(a[m.index-1])&&(y=e8(s,m.index-1)),!x&&f&&(0,u.isNumber)(a[f.index+1])&&(x=e8(s,f.index+1)),!m&&y&&(0,u.isNumber)(a[y.index+1])?m=e8(s,y.index+1):!m&&f&&(0,u.isNumber)(a[f.index-1])&&(m=e8(s,f.index-1)),c&&m&&f&&y&&c.x!==m.x&&(c.x===f.x?(y=m,m=f):c.x===y.x?(m=y,y={close:s.getColumn("close")[m.index-1],x:a[m.index-1]}):x&&c.x===x.x&&(m=x,y=f)),g&&y&&m?(b={x:g.x,plotX:g.plotX,plotY:g.plotY,isNull:!1},c.y>=m.close&&g.y>=y.close?(c.color=v||t.fallingTrendColor||t.color,h.top.push(D)):c.y<m.close&&g.y<y.close?(c.color=v||t.risingTrendColor||t.color,h.bottom.push(D)):(h.intersect.push(D),h.intersect.push(b),h.intersect.push((0,u.merge)(b,{isNull:!0})),c.y>=m.close&&g.y<y.close?(c.color=v||t.fallingTrendColor||t.color,g.color=v||t.risingTrendColor||t.color,h.top.push(D),h.top.push((0,u.merge)(b,{isNull:!0}))):c.y<m.close&&g.y>=y.close&&(c.color=v||t.risingTrendColor||t.color,g.color=v||t.fallingTrendColor||t.color,h.bottom.push(D),h.bottom.push((0,u.merge)(b,{isNull:!0}))))):m&&(c.y>=m.close?(c.color=v||t.fallingTrendColor||t.color,h.top.push(D)):(c.color=v||t.risingTrendColor||t.color,h.bottom.push(D)));(0,u.objectEach)(h,function(t,s){e.points=t,e.options=(0,u.merge)(d[s].styles,p),e.graph=e["graph"+s+"Line"],e9.prototype.drawGraph.call(e),e["graph"+s+"Line"]=e.graph}),e.points=i,e.options=t,e.graph=r}getValues(e,t){let s=t.period,a=t.multiplier,o=e.xData,i=e.yData,r=[],n=[],l=[],p=0===s?0:s-1,h=[],d=[],c=[],g,m,y,f,x,v,D,b,A;if(!(o.length<=s)&&(0,u.isArray)(i[0])&&4===i[0].length&&!(s<0)){for(A=0,c=e6.prototype.getValues.call(this,e,{period:s}).yData;A<c.length;A++)b=i[p+A],D=i[p+A-1]||[],f=h[A-1],x=d[A-1],v=l[A-1],0===A&&(f=x=v=0),g=(0,u.correctFloat)((b[1]+b[2])/2+a*c[A]),m=(0,u.correctFloat)((b[1]+b[2])/2-a*c[A]),g<f||D[3]>f?h[A]=g:h[A]=f,m>x||D[3]<x?d[A]=m:d[A]=x,v===f&&b[3]<h[A]||v===x&&b[3]<d[A]?y=h[A]:(v===f&&b[3]>h[A]||v===x&&b[3]>d[A])&&(y=d[A]),r.push([o[p+A],y]),n.push(o[p+A]),l.push(y);return{values:r,xData:n,yData:l}}}}e7.defaultOptions=(0,u.merge)(e9.defaultOptions,{params:{index:void 0,multiplier:3,period:10},risingTrendColor:"var(--highcharts-positive-color)",fallingTrendColor:"var(--highcharts-negative-color)",changeTrendLine:{styles:{lineWidth:1,lineColor:"var(--highcharts-neutral-color-80)",dashStyle:"LongDash"}}}),(0,u.extend)(e7.prototype,{nameBase:"Supertrend",nameComponents:["multiplier","period"]}),x().registerSeriesType("supertrend",e7);let{sma:{prototype:{pointClass:te}}}=x().seriesTypes,tt=class extends te{destroy(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy()),super.destroy.apply(this,arguments)}},{noop:ts}=h(),{column:{prototype:ta},sma:to}=x().seriesTypes,ti=Math.abs;class tr extends to{init(e,t){let s=this;delete t.data,super.init.apply(s,arguments);let a=(0,u.addEvent)(this.chart.constructor,"afterLinkSeries",function(){if(s.options){let t=s.options.params,a=s.linkedParent,o=t?.volumeSeriesID?e.get(t?.volumeSeriesID):void 0;a&&o&&s.addCustomEvents(a,o)}a()},{order:1});return s}addCustomEvents(e,t){let s=this,a=()=>{s.chart.redraw(),s.setData([]),s.zoneStarts=[],s.zoneLinesSVG&&(s.zoneLinesSVG=s.zoneLinesSVG.destroy())};return s.dataEventsToUnbind.push((0,u.addEvent)(e,"remove",function(){a()})),t&&s.dataEventsToUnbind.push((0,u.addEvent)(t,"remove",function(){a()})),s}animate(e){let t=this,s=t.chart.inverted,a=t.group,o={};if(!e&&a){let e=s?t.yAxis.top:t.xAxis.left;s?(a["forceAnimate:translateY"]=!0,o.translateY=e):(a["forceAnimate:translateX"]=!0,o.translateX=e),a.animate(o,(0,u.extend)((0,u.animObject)(t.options.animation),{step:function(e,s){t.group.attr({scaleX:Math.max(.001,s.pos)})}}))}}drawPoints(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),ta.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1)),ta.drawPoints.apply(this,arguments)}posNegVolume(e,t){let s=t?["positive","negative"]:["negative","positive"],a=this.options.volumeDivision,o=this.points.length,i=[],r=[],n=0,l,p,u,h;for(e?(this.posWidths=i,this.negWidths=r):(i=this.posWidths,r=this.negWidths);n<o;n++)(h=this.points[n])[s[0]+"Graphic"]=h.graphic,h.graphic=h[s[1]+"Graphic"],e&&(l=h.shapeArgs.width,(u=(p=this.priceZones[n]).wholeVolumeData)?(i.push(l/u*p.positiveVolumeData),r.push(l/u*p.negativeVolumeData)):(i.push(0),r.push(0))),h.color=t?a.styles.positiveColor:a.styles.negativeColor,h.shapeArgs.width=t?this.posWidths[n]:this.negWidths[n],h.shapeArgs.x=t?h.shapeArgs.x:this.posWidths[n]}translate(){let e=this,t=e.options,s=e.chart,a=e.yAxis,o=a.min,i=e.options.zoneLines,r=e.priceZones,n=0,l,p,h,d,c,g,m,y,f,x,v;ta.translate.apply(e);let D=e.points;D.length&&(y=t.pointPadding<.5?t.pointPadding:.1,l=e.volumeDataArray,p=(0,u.arrayMax)(l),h=s.plotWidth/2,f=s.plotTop,d=ti(a.toPixels(o)-a.toPixels(o+e.rangeStep)),g=ti(a.toPixels(o)-a.toPixels(o+e.rangeStep)),y&&(c=ti(d*(1-2*y)),n=ti((d-c)/2),d=ti(c)),D.forEach(function(t,s){x=t.barX=t.plotX=0,v=t.plotY=a.toPixels(r[s].start)-f-(a.reversed?d-g:d)-n,t.pointWidth=m=(0,u.correctFloat)(h*r[s].wholeVolumeData/p),t.shapeArgs=e.crispCol.apply(e,[x,v,m,d]),t.volumeNeg=r[s].negativeVolumeData,t.volumePos=r[s].positiveVolumeData,t.volumeAll=r[s].wholeVolumeData,delete t.origin,t.isInside=e.isPointInside(t)}),i.enabled&&e.drawZones(s,a,e.zoneStarts,i.styles))}getExtremes(){let e,t=this.options.compare,s=this.options.cumulative;return this.options.compare?(this.options.compare=void 0,e=super.getExtremes(),this.options.compare=t):this.options.cumulative?(this.options.cumulative=!1,e=super.getExtremes(),this.options.cumulative=s):e=super.getExtremes(),e}getValues(e,t){let s=e.getColumn("x",!0),a=e.processedYData,o=this.chart,i=t.ranges,r=[],n=[],l=[],p=o.get(t.volumeSeriesID);if(!e.chart)return void(0,u.error)("Base series not found! In case it has been removed, add a new one.",!0,o);if(!p||!p.getColumn("x",!0).length){let e=p&&!p.getColumn("x",!0).length?" does not contain any data.":" not found! Check `volumeSeriesID`.";(0,u.error)("Series "+t.volumeSeriesID+e,!0,o);return}let h=(0,u.isArray)(a[0]);return h&&4!==a[0].length?void(0,u.error)("Type of "+e.name+" series is different than line, OHLC or candlestick.",!0,o):((this.priceZones=this.specifyZones(h,s,a,i,p)).forEach(function(e,t){r.push([e.x,e.end]),n.push(r[t][0]),l.push(r[t][1])}),{values:r,xData:n,yData:l})}specifyZones(e,t,s,a,o){let i=!!e&&function(e){let t=e.length,s=e[0][3],a=s,o=1,i;for(;o<t;o++)(i=e[o][3])<s&&(s=i),i>a&&(a=i);return{min:s,max:a}}(s),r=this.zoneStarts=[],n=[],l=i?i.min:(0,u.arrayMin)(s),p=i?i.max:(0,u.arrayMax)(s),h=0,d=1,c=this.linkedParent;if(!this.options.compareToMain&&c.dataModify&&(l=c.dataModify.modifyValue(l),p=c.dataModify.modifyValue(p)),!(0,u.defined)(l)||!(0,u.defined)(p))return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];let g=this.rangeStep=(0,u.correctFloat)(p-l)/a;for(r.push(l);h<a-1;h++)r.push((0,u.correctFloat)(r[h]+g));r.push(p);let m=r.length;for(;d<m;d++)n.push({index:d-1,x:t[0],start:r[d-1],end:r[d]});return this.volumePerZone(e,n,o,t,s)}volumePerZone(e,t,s,a,o){let i,r,n,l,p,u=this,h=s.getColumn("x",!0),d=s.getColumn("y",!0),c=t.length-1,g=o.length,m=d.length;return ti(g-m)&&(a[0]!==h[0]&&d.unshift(0),a[g-1]!==h[m-1]&&d.push(0)),u.volumeDataArray=[],t.forEach(function(t){for(p=0,t.wholeVolumeData=0,t.positiveVolumeData=0,t.negativeVolumeData=0;p<g;p++){r=!1,n=!1,l=e?o[p][3]:o[p],i=p?e?o[p-1][3]:o[p-1]:l;let s=u.linkedParent;!u.options.compareToMain&&s.dataModify&&(l=s.dataModify.modifyValue(l),i=s.dataModify.modifyValue(i)),l<=t.start&&0===t.index&&(r=!0),l>=t.end&&t.index===c&&(n=!0),(l>t.start||r)&&(l<t.end||n)&&(t.wholeVolumeData+=d[p],i>l?t.negativeVolumeData+=d[p]:t.positiveVolumeData+=d[p])}u.volumeDataArray.push(t.wholeVolumeData)}),t}drawZones(e,t,s,a){let o=e.renderer,i=e.plotWidth,r=e.plotTop,n=this.zoneLinesSVG,l=[],p;s.forEach(function(s){p=t.toPixels(s)-r,l=l.concat(e.renderer.crispLine([["M",0,p],["L",i,p]],a.lineWidth))}),n?n.animate({d:l}):n=this.zoneLinesSVG=o.path(l).attr({"stroke-width":a.lineWidth,stroke:a.color,dashstyle:a.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)}}tr.defaultOptions=(0,u.merge)(to.defaultOptions,{params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1e3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{align:"left",allowOverlap:!0,distance:0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"0.5em"},verticalAlign:"top"}}),(0,u.extend)(tr.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],calculateOn:{chart:"render",xAxis:"afterSetExtremes"},pointClass:tt,markerAttribs:ts,drawGraph:ts,getColumnMetrics:ta.getColumnMetrics,crispCol:ta.crispCol}),x().registerSeriesType("vbp",tr);let{sma:tn}=x().seriesTypes;class tl extends tn{getValues(e,t){let s=e.chart,a=e.xData,o=e.yData,i=t.period,r=!0,n;return(n=s.get(t.volumeSeriesID))?((0,u.isArray)(o[0])||(r=!1),this.calculateVWAPValues(r,a,o,n,i)):void(0,u.error)("Series "+t.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,s)}calculateVWAPValues(e,t,s,a,o){let i,r,n,l,p,u,h=a.getColumn("y"),d=h.length,c=t.length,g=[],m=[],y=[],f=[],x=[];for(p=0,i=c<=d?c:d,u=0;p<i;p++)r=(e?(s[p][1]+s[p][2]+s[p][3])/3:s[p])*h[p],n=u?g[p-1]+r:r,l=u?m[p-1]+h[p]:h[p],g.push(n),m.push(l),x.push([t[p],n/l]),y.push(x[p][0]),f.push(x[p][1]),++u===o&&(u=0);return{values:x,xData:y,yData:f}}}tl.defaultOptions=(0,u.merge)(tn.defaultOptions,{params:{index:void 0,period:30,volumeSeriesID:"volume"}}),x().registerSeriesType("vwap",tl);let{sma:tp}=x().seriesTypes;class tu extends tp{getValues(e,t){let s,a,o,i,r,n=t.period,l=e.xData,p=e.yData,h=p?p.length:0,d=[],c=[],g=[];if(!(l.length<n)&&(0,u.isArray)(p[0])&&4===p[0].length){for(r=n-1;r<h;r++)i=(s=eX(p.slice(r-n+1,r+1),2,1))[0],a=-(((o=s[1])-p[r][3])/(o-i)*100),l[r]&&(d.push([l[r],a]),c.push(l[r]),g.push(a));return{values:d,xData:c,yData:g}}}}tu.defaultOptions=(0,u.merge)(tp.defaultOptions,{params:{index:void 0,period:14}}),(0,u.extend)(tu.prototype,{nameBase:"Williams %R"}),x().registerSeriesType("williamsr",tu);let{sma:th}=x().seriesTypes;function td(e,t,s,a,o){let i=t[a],r=o<0?s[a]:s[a][o];e.push([i,r])}function tc(e,t,s,a){let o=e.length,i=e.reduce(function(e,t,s){return[null,e[1]+t[1]*(s+1)]})[1]/((o+1)/2*o),r=t[a-1];return e.shift(),[r,i]}class tg extends th{getValues(e,t){let s=t.period,a=e.xData,o=e.yData,i=o?o.length:0,r=a[0],n=[],l=[],p=[],h=1,d=-1,c,g,m=o[0];if(a.length<s)return;(0,u.isArray)(o[0])&&(d=t.index,m=o[0][d]);let y=[[r,m]];for(;h!==s;)td(y,a,o,h,d),h++;for(c=h;c<i;c++)n.push(g=tc(y,a,o,c)),l.push(g[0]),p.push(g[1]),td(y,a,o,c,d);return n.push(g=tc(y,a,o,c)),l.push(g[0]),p.push(g[1]),{values:n,xData:l,yData:p}}}tg.defaultOptions=(0,u.merge)(th.defaultOptions,{params:{index:3,period:9}}),x().registerSeriesType("wma",tg);let{sma:tm}=x().seriesTypes;class ty extends tm{getValues(e,t){let s=t.lowIndex,a=t.highIndex,o=t.deviation/100,i={low:1+o,high:1-o},r=e.xData,n=e.yData,l=n?n.length:0,p=[],u=[],h=[],d,c,g,m,y=!1,f=!1;if(!r||r.length<=1||l&&(void 0===n[0][s]||void 0===n[0][a]))return;let x=n[0][s],v=n[0][a];for(d=1;d<l;d++)n[d][s]<=v*i.high?(p.push([r[0],v]),g=[r[d],n[d][s]],m=!0,y=!0):n[d][a]>=x*i.low&&(p.push([r[0],x]),g=[r[d],n[d][a]],m=!1,y=!0),y&&(u.push(p[0][0]),h.push(p[0][1]),c=d++,d=l);for(d=c;d<l;d++)m?(n[d][s]<=g[1]&&(g=[r[d],n[d][s]]),n[d][a]>=g[1]*i.low&&(f=a)):(n[d][a]>=g[1]&&(g=[r[d],n[d][a]]),n[d][s]<=g[1]*i.high&&(f=s)),!1!==f&&(p.push(g),u.push(g[0]),h.push(g[1]),g=[r[d],n[d][f]],m=!m,f=!1);let D=p.length;return 0!==D&&p[D-1][0]<r[l-1]&&(p.push(g),u.push(g[0]),h.push(g[1])),{values:p,xData:u,yData:h}}}ty.defaultOptions=(0,u.merge)(tm.defaultOptions,{params:{index:void 0,period:void 0,lowIndex:2,highIndex:1,deviation:1}}),(0,u.extend)(ty.prototype,{nameComponents:["deviation"],nameSuffixes:["%"],nameBase:"Zig Zag"}),x().registerSeriesType("zigzag",ty);let{sma:tf}=x().seriesTypes;class tx extends tf{getRegressionLineParameters(e,t){let s=this.options.params.index,a=function(e,t){return(0,u.isArray)(e)?e[t]:e},o=e.reduce(function(e,t){return t+e},0),i=t.reduce(function(e,t){return a(t,s)+e},0),r=o/e.length,n=i/t.length,l,p,h=0,d=0;for(p=0;p<e.length;p++)h+=(l=e[p]-r)*(a(t[p],s)-n),d+=Math.pow(l,2);let c=d?h/d:0;return{slope:c,intercept:n-c*r}}getEndPointY(e,t){return e.slope*t+e.intercept}transformXData(e,t){let s=e[0];return e.map(function(e){return(e-s)/t})}findClosestDistance(e){let t,s,a;for(a=1;a<e.length-1;a++)(t=e[a]-e[a-1])>0&&(void 0===s||t<s)&&(s=t);return s}getValues(e,t){let s,a,o,i,r,n,l,p,h,d=e.xData,c=e.yData,g=t.period,m={xData:[],yData:[],values:[]},y=this.options.params.xAxisUnit||this.findClosestDistance(d);for(a=g-1;a<=d.length-1;a++)o=a-g+1,i=a+1,r=d[a],l=d.slice(o,i),p=c.slice(o,i),h=this.transformXData(l,y),s=this.getRegressionLineParameters(h,p),n=this.getEndPointY(s,h[h.length-1]),m.values.push({regressionLineParameters:s,x:r,y:n}),(0,u.isArray)(m.xData)&&m.xData.push(r),(0,u.isArray)(m.yData)&&m.yData.push(n);return m}}tx.defaultOptions=(0,u.merge)(tf.defaultOptions,{params:{xAxisUnit:null},tooltip:{valueDecimals:4}}),(0,u.extend)(tx.prototype,{nameBase:"Linear Regression Indicator"}),x().registerSeriesType("linearregression",tx),x().registerSeriesType("linearRegression",tx);let{linearregression:tv}=x().seriesTypes;class tD extends tv{getEndPointY(e){return e.slope}}tD.defaultOptions=(0,u.merge)(tv.defaultOptions),(0,u.extend)(tD.prototype,{nameBase:"Linear Regression Slope Indicator"}),x().registerSeriesType("linearregressionslope",tD),x().registerSeriesType("linearRegressionSlope",tD);let{linearregression:tb}=x().seriesTypes;class tA extends tb{getEndPointY(e){return e.intercept}}tA.defaultOptions=(0,u.merge)(tb.defaultOptions),(0,u.extend)(tA.prototype,{nameBase:"Linear Regression Intercept Indicator"}),x().registerSeriesType("linearregressionintercept",tA),x().registerSeriesType("linearRegressionIntercept",tA);let{linearregression:tS}=x().seriesTypes;class tC extends tS{slopeToAngle(e){return 180/Math.PI*Math.atan(e)}getEndPointY(e){return this.slopeToAngle(e.slope)}}tC.defaultOptions=(0,u.merge)(tS.defaultOptions,{tooltip:{pointFormat:'<span style="color:{point.color}">●</span>{series.name}: <b>{point.y}\xb0</b><br/>'}}),(0,u.extend)(tC.prototype,{nameBase:"Linear Regression Angle Indicator"}),x().registerSeriesType("linearregressionangle",tC),x().registerSeriesType("linearRegressionAngle",tC);let{sma:tT}=x().seriesTypes;class tP extends tT{getValues(e,t){let s,a,o,i,r,n,l,p,h,d,c,g=t.period,m=t.factor,y=t.index,f=e.xData,x=e.yData,v=x?x.length:0,D=[],b=[],A=[],S=[],C=[];if(!(v<g)){for(c=0;c<=v;c++){if(c<v){var T,P,M,V;T=x[c][2],P=x[c][1],r=(0,u.correctFloat)(P-T)/((0,u.correctFloat)(P+T)/2)*1e3*m,D.push((M=x[c][1],M*(0,u.correctFloat)(1+2*r))),b.push((V=x[c][2],V*(0,u.correctFloat)(1-2*r)))}c>=g&&(h=f.slice(c-g,c),d=x.slice(c-g,c),l=super.getValues.call(this,{xData:h,yData:D.slice(c-g,c)},{period:g}),p=super.getValues.call(this,{xData:h,yData:b.slice(c-g,c)},{period:g}),i=(n=super.getValues.call(this,{xData:h,yData:d},{period:g,index:y})).xData[0],a=l.yData[0],o=p.yData[0],s=n.yData[0],A.push([i,a,s,o]),S.push(i),C.push([a,s,o]))}return{values:A,xData:S,yData:C}}}}tP.defaultOptions=(0,u.merge)(tT.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),(0,u.extend)(tP.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),k.compose(tP),x().registerSeriesType("abands",tP);let{sma:tM}=x().seriesTypes;class tV extends tM{constructor(){super(...arguments),this.updateAllPoints=!0}getValues(e,t){let s=e.xData,a=e.yData,o=[],i=[],r=[],n=[],l=t.index,p=0,h=0,d=0,c=0,g=0;for(let e=0;e<s.length;e++)(0===e||s[e]!==s[e-1])&&g++,o.push(g);for(let e=0;e<o.length;e++)d+=o[e],c+=(0,u.isArray)(a[e])?a[e][l]:a[e];let m=d/o.length,y=c/a.length;for(let e=0;e<o.length;e++){let t=(0,u.isArray)(a[e])?a[e][l]:a[e];p+=(o[e]-m)*(t-y),h+=Math.pow(o[e]-m,2)}for(let e=0;e<o.length;e++){if(s[e]===r[r.length-1])continue;let t=s[e],a=y+p/h*(o[e]-m);i.push([t,a]),r.push(t),n.push(a)}return{xData:r,yData:n,values:i}}}tV.defaultOptions=(0,u.merge)(tM.defaultOptions,{params:{period:void 0,index:3}}),(0,u.extend)(tV.prototype,{nameBase:"Trendline",nameComponents:void 0}),x().registerSeriesType("trendline",tV);let{sma:tO}=x().seriesTypes;class tL extends tO{init(){let e=arguments,t=e[1].params,s=t&&t.average?t.average:void 0;this.averageIndicator=x().seriesTypes[s]||tO,this.averageIndicator.prototype.init.apply(this,e)}calculateDisparityIndex(e,t){return(0,u.correctFloat)(e-t)/t*100}getValues(e,t){let s=t.index,a=e.xData,o=e.yData,i=o?o.length:0,r=[],n=[],l=[],p=this.averageIndicator,h=(0,u.isArray)(o[0]),d=p.prototype.getValues(e,t),c=d.yData,g=a.indexOf(d.xData[0]);if(c&&0!==c.length&&(0,u.defined)(s)&&!(o.length<=g)){for(let e=g;e<i;e++){let t=this.calculateDisparityIndex(h?o[e][s]:o[e],c[e-g]);r.push([a[e],t]),n.push(a[e]),l.push(t)}return{values:r,xData:n,yData:l}}}}tL.defaultOptions=(0,u.merge)(tO.defaultOptions,{params:{average:"sma",index:3},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),(0,u.extend)(tL.prototype,{nameBase:"Disparity Index",nameComponents:["period","average"]}),x().registerSeriesType("disparityindex",tL);let tk=h();tk.MultipleLinesComposition=tk.MultipleLinesComposition||k;let tw=h();return p.default})());
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LicenseRef-Highcharts
2
2
  /**
3
- * @license Highstock JS v13.0.0 (2026-06-11)
3
+ * @license Highstock JS v13.0.2 (2026-08-27)
4
4
  * @module highcharts/indicators/indicators-all
5
5
  * @requires highcharts
6
6
  * @requires highcharts/modules/stock
@@ -27,55 +27,55 @@ return /******/ (() => { // webpackBootstrap
27
27
  /******/ "use strict";
28
28
  /******/ var __webpack_modules__ = ({
29
29
 
30
- /***/ 512:
31
- /***/ ((module) => {
30
+ /***/ 960
31
+ (module) {
32
32
 
33
- module.exports = __WEBPACK_EXTERNAL_MODULE__512__;
33
+ module.exports = __WEBPACK_EXTERNAL_MODULE__960__;
34
34
 
35
- /***/ }),
35
+ /***/ },
36
36
 
37
- /***/ 620:
38
- /***/ ((module) => {
37
+ /***/ 620
38
+ (module) {
39
39
 
40
40
  module.exports = __WEBPACK_EXTERNAL_MODULE__620__;
41
41
 
42
- /***/ }),
42
+ /***/ },
43
43
 
44
- /***/ 944:
45
- /***/ ((module) => {
44
+ /***/ 512
45
+ (module) {
46
46
 
47
- module.exports = __WEBPACK_EXTERNAL_MODULE__944__;
47
+ module.exports = __WEBPACK_EXTERNAL_MODULE__512__;
48
48
 
49
- /***/ }),
49
+ /***/ },
50
50
 
51
- /***/ 956:
52
- /***/ ((module) => {
51
+ /***/ 956
52
+ (module) {
53
53
 
54
54
  module.exports = __WEBPACK_EXTERNAL_MODULE__956__;
55
55
 
56
- /***/ }),
56
+ /***/ },
57
57
 
58
- /***/ 960:
59
- /***/ ((module) => {
58
+ /***/ 944
59
+ (module) {
60
60
 
61
- module.exports = __WEBPACK_EXTERNAL_MODULE__960__;
61
+ module.exports = __WEBPACK_EXTERNAL_MODULE__944__;
62
62
 
63
- /***/ })
63
+ /***/ }
64
64
 
65
65
  /******/ });
66
66
  /************************************************************************/
67
67
  /******/ // The module cache
68
- /******/ var __webpack_module_cache__ = {};
68
+ /******/ const __webpack_module_cache__ = {};
69
69
  /******/
70
70
  /******/ // The require function
71
71
  /******/ function __webpack_require__(moduleId) {
72
72
  /******/ // Check if module is in cache
73
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
73
+ /******/ const cachedModule = __webpack_module_cache__[moduleId];
74
74
  /******/ if (cachedModule !== undefined) {
75
75
  /******/ return cachedModule.exports;
76
76
  /******/ }
77
77
  /******/ // Create a new module (and put it into the cache)
78
- /******/ var module = __webpack_module_cache__[moduleId] = {
78
+ /******/ const module = __webpack_module_cache__[moduleId] = {
79
79
  /******/ // no module.id needed
80
80
  /******/ // no module.loaded needed
81
81
  /******/ exports: {}
@@ -93,7 +93,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__960__;
93
93
  /******/ (() => {
94
94
  /******/ // getDefaultExport function for compatibility with non-harmony modules
95
95
  /******/ __webpack_require__.n = (module) => {
96
- /******/ var getter = module && module.__esModule ?
96
+ /******/ const getter = module && module.__esModule ?
97
97
  /******/ () => (module['default']) :
98
98
  /******/ () => (module);
99
99
  /******/ __webpack_require__.d(getter, { a: getter });
@@ -103,11 +103,26 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__960__;
103
103
  /******/
104
104
  /******/ /* webpack/runtime/define property getters */
105
105
  /******/ (() => {
106
- /******/ // define getter functions for harmony exports
106
+ /******/ // define getter/value functions for harmony exports
107
107
  /******/ __webpack_require__.d = (exports, definition) => {
108
- /******/ for(var key in definition) {
109
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
110
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
108
+ /******/ if(Array.isArray(definition)) {
109
+ /******/ var i = 0;
110
+ /******/ while(i < definition.length) {
111
+ /******/ var key = definition[i++];
112
+ /******/ var binding = definition[i++];
113
+ /******/ if(!__webpack_require__.o(exports, key)) {
114
+ /******/ if(binding === 0) {
115
+ /******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
116
+ /******/ } else {
117
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
118
+ /******/ }
119
+ /******/ } else if(binding === 0) { i++; }
120
+ /******/ }
121
+ /******/ } else {
122
+ /******/ for(var key in definition) {
123
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
124
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
125
+ /******/ }
111
126
  /******/ }
112
127
  /******/ }
113
128
  /******/ };
@@ -119,7 +134,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__960__;
119
134
  /******/ })();
120
135
  /******/
121
136
  /************************************************************************/
122
- var __webpack_exports__ = {};
137
+ let __webpack_exports__ = {};
123
138
 
124
139
  // EXPORTS
125
140
  __webpack_require__.d(__webpack_exports__, {
@@ -395,7 +410,7 @@ class DataTableCore {
395
410
  * Fetches the given column by the canonical column ID. Simplified version
396
411
  * of the full `DataTable.getRow` method, always returning by reference.
397
412
  *
398
- * @function Highcharts.DataTable#setColumn
413
+ * @function Highcharts.DataTable#getColumn
399
414
  *
400
415
  * @param {string} columnId
401
416
  * ID of the column to get.
@@ -701,7 +716,7 @@ class SMAIndicator extends LineSeries {
701
716
  if (!name) {
702
717
  (this.nameComponents || []).forEach(function (component, index) {
703
718
  params.push(this.options.params[component] +
704
- (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.pick)(this.nameSuffixes[index], ''));
719
+ (this.nameSuffixes[index] ?? ''));
705
720
  }, this);
706
721
  name = (this.nameBase || this.type.toUpperCase()) +
707
722
  (this.nameComponents ? ' (' + params.join(', ') + ')' : '');
@@ -1851,10 +1866,10 @@ class AroonIndicator extends AroonIndicator_SMAIndicator {
1851
1866
  for (i = period - 1; i < yValLen; i++) {
1852
1867
  slicedY = yVal.slice(i - period + 1, i + 2);
1853
1868
  xLow = getExtremeIndexInArray(slicedY.map(function (elem) {
1854
- return (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.pick)(elem[low], elem);
1869
+ return (elem[low] ?? elem);
1855
1870
  }), 'min');
1856
1871
  xHigh = getExtremeIndexInArray(slicedY.map(function (elem) {
1857
- return (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.pick)(elem[high], elem);
1872
+ return (elem[high] ?? elem);
1858
1873
  }), 'max');
1859
1874
  aroonUp = (xHigh / period) * 100;
1860
1875
  aroonDown = (xLow / period) * 100;
@@ -3130,7 +3145,7 @@ const { sma: DPOIndicator_SMAIndicator } = (highcharts_SeriesRegistry_commonjs_h
3130
3145
  // Utils:
3131
3146
  /** @internal */
3132
3147
  function accumulatePoints(sum, yVal, i, index, subtract) {
3133
- const price = (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.pick)(yVal[i][index], yVal[i]);
3148
+ const price = (yVal[i][index] ?? yVal[i]);
3134
3149
  if (subtract) {
3135
3150
  return (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.correctFloat)(sum - price);
3136
3151
  }
@@ -3175,7 +3190,8 @@ class DPOIndicator extends DPOIndicator_SMAIndicator {
3175
3190
  rangeIndex = j + range - 1;
3176
3191
  // Adding the last period point
3177
3192
  sum = accumulatePoints(sum, yVal, periodIndex, index);
3178
- price = (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.pick)(yVal[rangeIndex][index], yVal[rangeIndex]);
3193
+ price = yVal[rangeIndex][index] ??
3194
+ yVal[rangeIndex];
3179
3195
  oscillator = price - sum / period;
3180
3196
  // Subtracting the first period point
3181
3197
  sum = accumulatePoints(sum, yVal, j, index, true);
@@ -7715,7 +7731,7 @@ class RSIIndicator extends RSIIndicator_SMAIndicator {
7715
7731
  // Cause we need to calculate change between two points
7716
7732
  RSI = [], xData = [], yData = [];
7717
7733
  let gain = 0, loss = 0, index = params.index, range = 1, RSIPoint, change, avgGain, avgLoss, i, values;
7718
- if ((xVal.length < period)) {
7734
+ if (xVal.length < period) {
7719
7735
  return;
7720
7736
  }
7721
7737
  if ((0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.isNumber)(yVal[0])) {
@@ -8721,7 +8737,6 @@ class VBPPoint extends VBPPoint_SMAPoint {
8721
8737
 
8722
8738
 
8723
8739
 
8724
- const { animObject } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
8725
8740
 
8726
8741
  const { noop: VBPIndicator_noop } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
8727
8742
 
@@ -8843,7 +8858,7 @@ class VBPIndicator extends VBPIndicator_SMAIndicator {
8843
8858
  group['forceAnimate:translateX'] = true;
8844
8859
  attr.translateX = position;
8845
8860
  }
8846
- group.animate(attr, (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.extend)(animObject(series.options.animation), {
8861
+ group.animate(attr, (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.extend)((0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.animObject)(series.options.animation), {
8847
8862
  step: function (val, fx) {
8848
8863
  series.group.attr({
8849
8864
  scaleX: Math.max(0.001, fx.pos)