highcharts 10.2.0 → 10.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (763) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +10 -20
  3. package/css/themes/dark-unica.css +10 -20
  4. package/css/themes/grid-light.css +10 -20
  5. package/css/themes/sand-signika.css +10 -20
  6. package/es-modules/Accessibility/Accessibility.js +6 -0
  7. package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
  8. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
  9. package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
  10. package/es-modules/Core/Axis/Axis.js +3 -0
  11. package/es-modules/Core/Axis/Axis3D.js +1 -1
  12. package/es-modules/Core/Axis/AxisDefaults.js +1 -1
  13. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  14. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
  15. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  16. package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
  17. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  18. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  19. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  20. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  21. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  22. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  23. package/es-modules/Core/Axis/ZAxis.js +73 -70
  24. package/es-modules/Core/Chart/Chart.js +16 -2
  25. package/es-modules/Core/Chart/Chart3D.js +2 -2
  26. package/es-modules/Core/Chart/ChartDefaults.js +151 -2
  27. package/es-modules/Core/Chart/StockChart.js +5 -3
  28. package/es-modules/Core/DefaultOptions.js +2 -1
  29. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  30. package/es-modules/Core/Globals.js +2 -1
  31. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  32. package/es-modules/Core/Navigator.js +24 -7
  33. package/es-modules/Core/Pointer.js +7 -9
  34. package/es-modules/Core/Renderer/HTML/AST.js +4 -1
  35. package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
  36. package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
  37. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
  38. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  39. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  40. package/es-modules/Core/Scrollbar.js +3 -1
  41. package/es-modules/Core/Series/DataLabel.js +8 -6
  42. package/es-modules/Core/Series/Point.js +2 -2
  43. package/es-modules/Core/Series/Series.js +36 -31
  44. package/es-modules/Core/Series/Series3D.js +1 -1
  45. package/es-modules/Core/Series/SeriesDefaults.js +8 -3
  46. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  47. package/es-modules/Core/Tooltip.js +14 -3
  48. package/es-modules/Core/Utilities.js +1 -3
  49. package/es-modules/Data/DataConverter.js +5 -0
  50. package/es-modules/Data/DataPromise.js +1 -1
  51. package/es-modules/Data/DataSeriesComposition.js +288 -0
  52. package/es-modules/Data/DataSeriesConverter.js +1 -1
  53. package/es-modules/Data/DataTable.js +2 -2
  54. package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
  55. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  56. package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
  57. package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
  58. package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
  59. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
  60. package/es-modules/Data/Modifiers/SortModifier.js +1 -1
  61. package/es-modules/Data/Parsers/DataParser.js +1 -1
  62. package/es-modules/Data/Stores/DataStore.js +1 -1
  63. package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
  64. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  65. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  66. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  67. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  68. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  69. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  70. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
  71. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  72. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  73. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  74. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  75. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  76. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  77. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
  78. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  79. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  80. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  81. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  82. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  83. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  84. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  85. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
  86. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
  87. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
  88. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
  89. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
  90. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
  91. package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
  92. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
  93. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
  94. package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
  95. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
  96. package/es-modules/Extensions/Boost/Boost.js +320 -15
  97. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  98. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  99. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  100. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  101. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  102. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  103. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  104. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  105. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  106. package/es-modules/Extensions/BoostCanvas.js +62 -46
  107. package/es-modules/Extensions/Breadcrumbs.js +4 -0
  108. package/es-modules/Extensions/DataGrouping.js +65 -27
  109. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  110. package/es-modules/Extensions/DraggablePoints.js +4 -3
  111. package/es-modules/Extensions/Drilldown.js +7 -8
  112. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
  113. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  114. package/es-modules/Extensions/Exporting/Exporting.js +5 -1
  115. package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
  116. package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
  117. package/es-modules/Extensions/MarkerClusters.js +2 -0
  118. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  119. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  120. package/es-modules/Extensions/ParallelCoordinates.js +11 -7
  121. package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
  122. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
  123. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  124. package/es-modules/Maps/MapPointer.js +1 -1
  125. package/es-modules/Maps/MapView.js +2 -1
  126. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  127. package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
  128. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  129. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  130. package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
  131. package/es-modules/Series/Column/ColumnSeries.js +2 -0
  132. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  133. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
  134. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  135. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
  136. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
  137. package/es-modules/Series/DragNodesComposition.js +166 -0
  138. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
  139. package/es-modules/Series/Gantt/GanttSeries.js +1 -1
  140. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  141. package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
  142. package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
  143. package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
  144. package/es-modules/Series/Map/MapSeries.js +6 -1
  145. package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
  146. package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
  147. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  148. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  149. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  150. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  151. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  152. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  153. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  154. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  155. package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
  156. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  157. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
  158. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
  159. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
  160. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  161. package/es-modules/Series/Pie/PieSeries.js +3 -1
  162. package/es-modules/Series/PolarComposition.js +12 -12
  163. package/es-modules/Series/Sankey/SankeySeries.js +13 -1
  164. package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
  165. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
  166. package/es-modules/Series/SeriesOnPointComposition.js +5 -1
  167. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
  168. package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
  169. package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
  170. package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
  171. package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
  172. package/es-modules/Series/Vector/VectorSeries.js +2 -4
  173. package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
  174. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  175. package/es-modules/Series/XRange/XRangePoint.js +54 -45
  176. package/es-modules/Series/XRange/XRangeSeries.js +121 -273
  177. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  178. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
  179. package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
  180. package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
  181. package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
  182. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
  183. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
  184. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
  185. package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
  186. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
  187. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
  188. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
  189. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
  190. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
  191. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
  192. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
  193. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
  194. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
  195. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
  196. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
  197. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
  198. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
  199. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
  200. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
  201. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
  202. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
  203. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
  204. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
  205. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
  206. package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
  207. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
  208. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
  209. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
  210. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
  211. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
  212. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
  213. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
  214. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  215. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
  216. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
  217. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
  218. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
  219. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
  220. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
  221. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
  222. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
  223. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
  224. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
  225. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
  226. package/es-modules/Stock/StockToolbar.js +568 -0
  227. package/es-modules/Stock/StockTools.js +256 -0
  228. package/es-modules/Stock/StockToolsBindings.js +114 -629
  229. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  230. package/es-modules/Stock/StockToolsGui.js +150 -1771
  231. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  232. package/es-modules/masters/highcharts-3d.src.js +5 -4
  233. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  234. package/es-modules/masters/highcharts-more.src.js +4 -3
  235. package/es-modules/masters/highcharts.src.js +5 -2
  236. package/es-modules/masters/highmaps.src.js +1 -1
  237. package/es-modules/masters/highstock.src.js +1 -1
  238. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  239. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  240. package/es-modules/masters/indicators/ao.src.js +1 -1
  241. package/es-modules/masters/indicators/apo.src.js +1 -1
  242. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  243. package/es-modules/masters/indicators/aroon.src.js +1 -1
  244. package/es-modules/masters/indicators/atr.src.js +1 -1
  245. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  246. package/es-modules/masters/indicators/cci.src.js +1 -1
  247. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  248. package/es-modules/masters/indicators/cmf.src.js +1 -1
  249. package/es-modules/masters/indicators/cmo.src.js +1 -1
  250. package/es-modules/masters/indicators/dema.src.js +1 -1
  251. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  252. package/es-modules/masters/indicators/dmi.src.js +1 -1
  253. package/es-modules/masters/indicators/dpo.src.js +1 -1
  254. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  255. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  256. package/es-modules/masters/indicators/indicators.src.js +1 -1
  257. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  258. package/es-modules/masters/indicators/klinger.src.js +1 -1
  259. package/es-modules/masters/indicators/macd.src.js +1 -1
  260. package/es-modules/masters/indicators/mfi.src.js +1 -1
  261. package/es-modules/masters/indicators/momentum.src.js +1 -1
  262. package/es-modules/masters/indicators/natr.src.js +1 -1
  263. package/es-modules/masters/indicators/obv.src.js +1 -1
  264. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  265. package/es-modules/masters/indicators/ppo.src.js +1 -1
  266. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  267. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  268. package/es-modules/masters/indicators/psar.src.js +1 -1
  269. package/es-modules/masters/indicators/regressions.src.js +5 -5
  270. package/es-modules/masters/indicators/roc.src.js +1 -1
  271. package/es-modules/masters/indicators/rsi.src.js +1 -1
  272. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  273. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  274. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  275. package/es-modules/masters/indicators/tema.src.js +1 -1
  276. package/es-modules/masters/indicators/trendline.src.js +1 -1
  277. package/es-modules/masters/indicators/trix.src.js +1 -1
  278. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  279. package/es-modules/masters/indicators/vwap.src.js +1 -1
  280. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  281. package/es-modules/masters/indicators/wma.src.js +1 -1
  282. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  283. package/es-modules/masters/modules/accessibility.src.js +1 -1
  284. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  285. package/es-modules/masters/modules/annotations.src.js +6 -4
  286. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  287. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  288. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  289. package/es-modules/masters/modules/boost.src.js +6 -2
  290. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  291. package/es-modules/masters/modules/bullet.src.js +1 -1
  292. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  293. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  294. package/es-modules/masters/modules/cylinder.src.js +1 -1
  295. package/es-modules/masters/modules/data.src.js +1 -1
  296. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  297. package/es-modules/masters/modules/debugger.src.js +5 -3
  298. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  299. package/es-modules/masters/modules/dotplot.src.js +1 -1
  300. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  301. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  302. package/es-modules/masters/modules/drilldown.src.js +1 -1
  303. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  304. package/es-modules/masters/modules/export-data.src.js +5 -2
  305. package/es-modules/masters/modules/exporting.src.js +1 -2
  306. package/es-modules/masters/modules/full-screen.src.js +6 -2
  307. package/es-modules/masters/modules/funnel.src.js +1 -1
  308. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  309. package/es-modules/masters/modules/gantt.src.js +3 -2
  310. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  311. package/es-modules/masters/modules/heatmap.src.js +1 -1
  312. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  313. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  314. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  315. package/es-modules/masters/modules/item-series.src.js +1 -1
  316. package/es-modules/masters/modules/lollipop.src.js +1 -1
  317. package/es-modules/masters/modules/map.src.js +2 -2
  318. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  319. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  320. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  321. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  322. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  323. package/es-modules/masters/modules/oldie.src.js +1 -1
  324. package/es-modules/masters/modules/organization.src.js +1 -1
  325. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  326. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  327. package/es-modules/masters/modules/pareto.src.js +1 -1
  328. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  329. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  330. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  331. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  332. package/es-modules/masters/modules/sankey.src.js +1 -1
  333. package/es-modules/masters/modules/series-label.src.js +1 -1
  334. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  335. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  336. package/es-modules/masters/modules/sonification.src.js +1 -1
  337. package/es-modules/masters/modules/static-scale.src.js +1 -1
  338. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  339. package/es-modules/masters/modules/stock.src.js +1 -1
  340. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  341. package/es-modules/masters/modules/sunburst.src.js +1 -1
  342. package/es-modules/masters/modules/tilemap.src.js +1 -1
  343. package/es-modules/masters/modules/timeline.src.js +1 -1
  344. package/es-modules/masters/modules/treegrid.src.js +2 -2
  345. package/es-modules/masters/modules/treemap.src.js +1 -1
  346. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  347. package/es-modules/masters/modules/variwide.src.js +1 -1
  348. package/es-modules/masters/modules/vector.src.js +1 -1
  349. package/es-modules/masters/modules/venn.src.js +1 -1
  350. package/es-modules/masters/modules/windbarb.src.js +1 -1
  351. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  352. package/es-modules/masters/modules/xrange.src.js +5 -2
  353. package/es-modules/masters/themes/avocado.src.js +1 -1
  354. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  355. package/es-modules/masters/themes/brand-light.src.js +1 -1
  356. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  357. package/es-modules/masters/themes/dark-green.src.js +1 -1
  358. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  359. package/es-modules/masters/themes/gray.src.js +1 -1
  360. package/es-modules/masters/themes/grid-light.src.js +1 -1
  361. package/es-modules/masters/themes/grid.src.js +1 -1
  362. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  363. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  364. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  365. package/es-modules/masters/themes/skies.src.js +1 -1
  366. package/es-modules/masters/themes/sunset.src.js +1 -1
  367. package/highcharts-3d.js +98 -99
  368. package/highcharts-3d.js.map +1 -1
  369. package/highcharts-3d.src.js +232 -211
  370. package/highcharts-gantt.js +808 -809
  371. package/highcharts-gantt.js.map +1 -1
  372. package/highcharts-gantt.src.js +2308 -2136
  373. package/highcharts-more.d.ts +5 -8
  374. package/highcharts-more.js +201 -194
  375. package/highcharts-more.js.map +1 -1
  376. package/highcharts-more.src.d.ts +5 -8
  377. package/highcharts-more.src.js +3671 -3275
  378. package/highcharts.d.ts +1400 -885
  379. package/highcharts.js +593 -595
  380. package/highcharts.js.map +1 -1
  381. package/highcharts.src.d.ts +1400 -885
  382. package/highcharts.src.js +847 -716
  383. package/highmaps.js +762 -763
  384. package/highmaps.js.map +1 -1
  385. package/highmaps.src.js +1288 -1129
  386. package/highstock.js +796 -798
  387. package/highstock.js.map +1 -1
  388. package/highstock.src.js +953 -762
  389. package/indicators/acceleration-bands.js +1 -1
  390. package/indicators/acceleration-bands.js.map +1 -1
  391. package/indicators/acceleration-bands.src.js +11 -3
  392. package/indicators/accumulation-distribution.js +1 -1
  393. package/indicators/accumulation-distribution.js.map +1 -1
  394. package/indicators/accumulation-distribution.src.js +6 -1
  395. package/indicators/ao.js +6 -6
  396. package/indicators/ao.js.map +1 -1
  397. package/indicators/ao.src.js +23 -14
  398. package/indicators/apo.js +1 -1
  399. package/indicators/apo.js.map +1 -1
  400. package/indicators/apo.src.js +6 -1
  401. package/indicators/aroon-oscillator.js +10 -10
  402. package/indicators/aroon-oscillator.js.map +1 -1
  403. package/indicators/aroon-oscillator.src.js +7 -3
  404. package/indicators/aroon.js +1 -1
  405. package/indicators/aroon.js.map +1 -1
  406. package/indicators/aroon.src.js +16 -3
  407. package/indicators/atr.js +1 -1
  408. package/indicators/atr.js.map +1 -1
  409. package/indicators/atr.src.js +17 -4
  410. package/indicators/bollinger-bands.js +1 -1
  411. package/indicators/bollinger-bands.js.map +1 -1
  412. package/indicators/bollinger-bands.src.js +6 -2
  413. package/indicators/cci.js +1 -1
  414. package/indicators/cci.js.map +1 -1
  415. package/indicators/cci.src.js +17 -4
  416. package/indicators/chaikin.js +8 -8
  417. package/indicators/chaikin.js.map +1 -1
  418. package/indicators/chaikin.src.js +13 -5
  419. package/indicators/cmf.js +1 -1
  420. package/indicators/cmf.js.map +1 -1
  421. package/indicators/cmf.src.js +21 -1
  422. package/indicators/cmo.js +1 -1
  423. package/indicators/cmo.js.map +1 -1
  424. package/indicators/cmo.src.js +16 -2
  425. package/indicators/dema.js +1 -1
  426. package/indicators/dema.js.map +1 -1
  427. package/indicators/dema.src.js +26 -1
  428. package/indicators/disparity-index.js +1 -1
  429. package/indicators/disparity-index.src.js +1 -1
  430. package/indicators/dmi.js +1 -1
  431. package/indicators/dmi.js.map +1 -1
  432. package/indicators/dmi.src.js +6 -1
  433. package/indicators/dpo.js +1 -1
  434. package/indicators/dpo.js.map +1 -1
  435. package/indicators/dpo.src.js +20 -9
  436. package/indicators/ichimoku-kinko-hyo.js +1 -1
  437. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  438. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  439. package/indicators/indicators-all.js +199 -199
  440. package/indicators/indicators-all.js.map +1 -1
  441. package/indicators/indicators-all.src.js +754 -162
  442. package/indicators/indicators.js +1 -1
  443. package/indicators/indicators.js.map +1 -1
  444. package/indicators/indicators.src.js +12 -2
  445. package/indicators/keltner-channels.js +1 -1
  446. package/indicators/keltner-channels.js.map +1 -1
  447. package/indicators/keltner-channels.src.js +26 -1
  448. package/indicators/klinger.js +12 -12
  449. package/indicators/klinger.js.map +1 -1
  450. package/indicators/klinger.src.js +13 -4
  451. package/indicators/macd.js +1 -1
  452. package/indicators/macd.js.map +1 -1
  453. package/indicators/macd.src.js +22 -13
  454. package/indicators/mfi.js +1 -1
  455. package/indicators/mfi.js.map +1 -1
  456. package/indicators/mfi.src.js +24 -11
  457. package/indicators/momentum.js +1 -1
  458. package/indicators/momentum.js.map +1 -1
  459. package/indicators/momentum.src.js +31 -3
  460. package/indicators/natr.js +1 -1
  461. package/indicators/natr.js.map +1 -1
  462. package/indicators/natr.src.js +17 -3
  463. package/indicators/obv.js +1 -1
  464. package/indicators/obv.js.map +1 -1
  465. package/indicators/obv.src.js +11 -1
  466. package/indicators/pivot-points.js +1 -1
  467. package/indicators/pivot-points.js.map +1 -1
  468. package/indicators/pivot-points.src.js +32 -19
  469. package/indicators/ppo.js +1 -1
  470. package/indicators/ppo.js.map +1 -1
  471. package/indicators/ppo.src.js +15 -5
  472. package/indicators/price-channel.js +1 -1
  473. package/indicators/price-channel.js.map +1 -1
  474. package/indicators/price-channel.src.js +14 -9
  475. package/indicators/price-envelopes.js +1 -1
  476. package/indicators/price-envelopes.js.map +1 -1
  477. package/indicators/price-envelopes.src.js +26 -1
  478. package/indicators/psar.js +1 -1
  479. package/indicators/psar.js.map +1 -1
  480. package/indicators/psar.src.js +17 -4
  481. package/indicators/regressions.js +12 -11
  482. package/indicators/regressions.js.map +1 -1
  483. package/indicators/regressions.src.js +50 -15
  484. package/indicators/roc.js +1 -1
  485. package/indicators/roc.js.map +1 -1
  486. package/indicators/roc.src.js +16 -3
  487. package/indicators/rsi.js +1 -1
  488. package/indicators/rsi.js.map +1 -1
  489. package/indicators/rsi.src.js +21 -3
  490. package/indicators/slow-stochastic.js +1 -1
  491. package/indicators/slow-stochastic.js.map +1 -1
  492. package/indicators/slow-stochastic.src.js +26 -1
  493. package/indicators/stochastic.js +1 -1
  494. package/indicators/stochastic.js.map +1 -1
  495. package/indicators/stochastic.src.js +16 -1
  496. package/indicators/supertrend.js +7 -7
  497. package/indicators/supertrend.js.map +1 -1
  498. package/indicators/supertrend.src.js +18 -6
  499. package/indicators/tema.js +1 -1
  500. package/indicators/tema.src.js +1 -1
  501. package/indicators/trendline.js +1 -1
  502. package/indicators/trendline.js.map +1 -1
  503. package/indicators/trendline.src.js +15 -5
  504. package/indicators/trix.js +1 -1
  505. package/indicators/trix.js.map +1 -1
  506. package/indicators/trix.src.js +26 -1
  507. package/indicators/volume-by-price.js +17 -17
  508. package/indicators/volume-by-price.js.map +1 -1
  509. package/indicators/volume-by-price.src.js +38 -10
  510. package/indicators/vwap.js +1 -1
  511. package/indicators/vwap.js.map +1 -1
  512. package/indicators/vwap.src.js +12 -2
  513. package/indicators/williams-r.js +1 -1
  514. package/indicators/williams-r.js.map +1 -1
  515. package/indicators/williams-r.src.js +11 -1
  516. package/indicators/wma.js +1 -1
  517. package/indicators/wma.js.map +1 -1
  518. package/indicators/wma.src.js +31 -3
  519. package/indicators/zigzag.js +1 -1
  520. package/indicators/zigzag.js.map +1 -1
  521. package/indicators/zigzag.src.js +12 -2
  522. package/modules/accessibility.js +183 -182
  523. package/modules/accessibility.js.map +1 -1
  524. package/modules/accessibility.src.js +559 -554
  525. package/modules/annotations-advanced.d.ts +1 -1
  526. package/modules/annotations-advanced.js +193 -192
  527. package/modules/annotations-advanced.js.map +1 -1
  528. package/modules/annotations-advanced.src.d.ts +1 -1
  529. package/modules/annotations-advanced.src.js +9263 -8654
  530. package/modules/annotations.d.ts +1 -1
  531. package/modules/annotations.js +128 -126
  532. package/modules/annotations.js.map +1 -1
  533. package/modules/annotations.src.d.ts +1 -1
  534. package/modules/annotations.src.js +6699 -6063
  535. package/modules/arc-diagram.js +1 -1
  536. package/modules/arc-diagram.src.js +1 -1
  537. package/modules/arrow-symbols.js +1 -1
  538. package/modules/arrow-symbols.src.js +1 -1
  539. package/modules/boost-canvas.d.ts +19 -0
  540. package/modules/boost-canvas.js +81 -16
  541. package/modules/boost-canvas.js.map +1 -1
  542. package/modules/boost-canvas.src.d.ts +19 -0
  543. package/modules/boost-canvas.src.js +3334 -50
  544. package/modules/boost.d.ts +8 -26
  545. package/modules/boost.js +84 -77
  546. package/modules/boost.js.map +1 -1
  547. package/modules/boost.src.d.ts +8 -26
  548. package/modules/boost.src.js +2423 -1888
  549. package/modules/broken-axis.js +2 -2
  550. package/modules/broken-axis.js.map +1 -1
  551. package/modules/broken-axis.src.js +2 -2
  552. package/modules/bullet.js +1 -1
  553. package/modules/bullet.src.js +1 -1
  554. package/modules/coloraxis.js +1 -1
  555. package/modules/coloraxis.js.map +1 -1
  556. package/modules/coloraxis.src.js +5 -1
  557. package/modules/current-date-indicator.js +1 -1
  558. package/modules/current-date-indicator.src.js +1 -1
  559. package/modules/cylinder.js +9 -9
  560. package/modules/cylinder.js.map +1 -1
  561. package/modules/cylinder.src.js +2 -2
  562. package/modules/data.js +1 -1
  563. package/modules/data.src.js +1 -1
  564. package/modules/datagrouping.d.ts +22 -0
  565. package/modules/datagrouping.js +4 -4
  566. package/modules/datagrouping.js.map +1 -1
  567. package/modules/datagrouping.src.d.ts +22 -0
  568. package/modules/datagrouping.src.js +66 -28
  569. package/modules/debugger.js +6 -5
  570. package/modules/debugger.js.map +1 -1
  571. package/modules/debugger.src.js +81 -40
  572. package/modules/dependency-wheel.js +12 -12
  573. package/modules/dependency-wheel.js.map +1 -1
  574. package/modules/dependency-wheel.src.js +41 -14
  575. package/modules/dotplot.js +1 -1
  576. package/modules/dotplot.src.js +1 -1
  577. package/modules/drag-panes.js +1 -1
  578. package/modules/drag-panes.src.js +1 -1
  579. package/modules/draggable-points.js +5 -5
  580. package/modules/draggable-points.js.map +1 -1
  581. package/modules/draggable-points.src.js +5 -4
  582. package/modules/drilldown.d.ts +0 -10
  583. package/modules/drilldown.js +29 -29
  584. package/modules/drilldown.js.map +1 -1
  585. package/modules/drilldown.src.d.ts +0 -10
  586. package/modules/drilldown.src.js +12 -9
  587. package/modules/dumbbell.js +1 -1
  588. package/modules/dumbbell.src.js +1 -1
  589. package/modules/export-data.js +25 -24
  590. package/modules/export-data.js.map +1 -1
  591. package/modules/export-data.src.js +607 -499
  592. package/modules/exporting.js +38 -38
  593. package/modules/exporting.js.map +1 -1
  594. package/modules/exporting.src.js +559 -507
  595. package/modules/full-screen.js +8 -8
  596. package/modules/full-screen.js.map +1 -1
  597. package/modules/full-screen.src.js +76 -26
  598. package/modules/funnel.js +1 -1
  599. package/modules/funnel.src.js +1 -1
  600. package/modules/funnel3d.js +2 -2
  601. package/modules/funnel3d.js.map +1 -1
  602. package/modules/funnel3d.src.js +2 -2
  603. package/modules/gantt.js +217 -216
  604. package/modules/gantt.js.map +1 -1
  605. package/modules/gantt.src.js +1481 -1440
  606. package/modules/grid-axis.js +1 -1
  607. package/modules/grid-axis.src.js +1 -1
  608. package/modules/heatmap.js +1 -1
  609. package/modules/heatmap.js.map +1 -1
  610. package/modules/heatmap.src.js +10 -2
  611. package/modules/heikinashi.js +1 -1
  612. package/modules/heikinashi.src.js +1 -1
  613. package/modules/histogram-bellcurve.js +1 -1
  614. package/modules/histogram-bellcurve.src.js +1 -1
  615. package/modules/hollowcandlestick.js +1 -1
  616. package/modules/hollowcandlestick.src.js +1 -1
  617. package/modules/item-series.js +1 -1
  618. package/modules/item-series.src.js +1 -1
  619. package/modules/lollipop.js +6 -6
  620. package/modules/lollipop.js.map +1 -1
  621. package/modules/lollipop.src.js +37 -22
  622. package/modules/map.d.ts +3 -3
  623. package/modules/map.js +171 -171
  624. package/modules/map.js.map +1 -1
  625. package/modules/map.src.d.ts +3 -3
  626. package/modules/map.src.js +442 -414
  627. package/modules/marker-clusters.js +1 -1
  628. package/modules/marker-clusters.js.map +1 -1
  629. package/modules/marker-clusters.src.js +3 -1
  630. package/modules/networkgraph.js +55 -50
  631. package/modules/networkgraph.js.map +1 -1
  632. package/modules/networkgraph.src.js +2259 -1938
  633. package/modules/no-data-to-display.js +1 -1
  634. package/modules/no-data-to-display.src.js +1 -1
  635. package/modules/offline-exporting.js +2 -2
  636. package/modules/offline-exporting.src.js +2 -2
  637. package/modules/oldie-polyfills.js +1 -1
  638. package/modules/oldie-polyfills.src.js +1 -1
  639. package/modules/oldie.js +2 -2
  640. package/modules/oldie.src.js +2 -2
  641. package/modules/organization.js +15 -15
  642. package/modules/organization.js.map +1 -1
  643. package/modules/organization.src.js +10 -2
  644. package/modules/overlapping-datalabels.js +1 -1
  645. package/modules/overlapping-datalabels.src.js +1 -1
  646. package/modules/parallel-coordinates.js +11 -11
  647. package/modules/parallel-coordinates.js.map +1 -1
  648. package/modules/parallel-coordinates.src.js +13 -8
  649. package/modules/pareto.js +1 -1
  650. package/modules/pareto.src.js +1 -1
  651. package/modules/pathfinder.js +1 -1
  652. package/modules/pathfinder.src.js +1 -1
  653. package/modules/pattern-fill.js +1 -1
  654. package/modules/pattern-fill.src.js +1 -1
  655. package/modules/price-indicator.js +1 -1
  656. package/modules/price-indicator.src.js +1 -1
  657. package/modules/pyramid3d.js +1 -1
  658. package/modules/pyramid3d.src.js +1 -1
  659. package/modules/sankey.js +1 -1
  660. package/modules/sankey.js.map +1 -1
  661. package/modules/sankey.src.js +14 -2
  662. package/modules/series-label.js +5 -5
  663. package/modules/series-label.js.map +1 -1
  664. package/modules/series-label.src.js +3 -3
  665. package/modules/series-on-point.js +1 -1
  666. package/modules/series-on-point.js.map +1 -1
  667. package/modules/series-on-point.src.js +6 -2
  668. package/modules/solid-gauge.js +1 -1
  669. package/modules/solid-gauge.src.js +2 -2
  670. package/modules/sonification.d.ts +2 -2
  671. package/modules/sonification.js +1 -1
  672. package/modules/sonification.src.d.ts +2 -2
  673. package/modules/sonification.src.js +2 -2
  674. package/modules/static-scale.js +1 -1
  675. package/modules/static-scale.src.js +1 -1
  676. package/modules/stock-tools.d.ts +1 -23
  677. package/modules/stock-tools.js +109 -179
  678. package/modules/stock-tools.js.map +1 -1
  679. package/modules/stock-tools.src.d.ts +1 -23
  680. package/modules/stock-tools.src.js +2605 -6335
  681. package/modules/stock.d.ts +8 -0
  682. package/modules/stock.js +105 -105
  683. package/modules/stock.js.map +1 -1
  684. package/modules/stock.src.d.ts +8 -0
  685. package/modules/stock.src.js +105 -45
  686. package/modules/streamgraph.js +1 -1
  687. package/modules/streamgraph.src.js +1 -1
  688. package/modules/sunburst.js +72 -72
  689. package/modules/sunburst.js.map +1 -1
  690. package/modules/sunburst.src.js +38 -12
  691. package/modules/tilemap.js +1 -1
  692. package/modules/tilemap.src.js +1 -1
  693. package/modules/timeline.js +1 -1
  694. package/modules/timeline.js.map +1 -1
  695. package/modules/timeline.src.js +3 -1
  696. package/modules/treegrid.js +57 -57
  697. package/modules/treegrid.js.map +1 -1
  698. package/modules/treegrid.src.js +1022 -1014
  699. package/modules/treemap.js +1 -1
  700. package/modules/treemap.js.map +1 -1
  701. package/modules/treemap.src.js +8 -4
  702. package/modules/variable-pie.js +1 -1
  703. package/modules/variable-pie.src.js +1 -1
  704. package/modules/variwide.js +1 -1
  705. package/modules/variwide.src.js +1 -1
  706. package/modules/vector.js +2 -2
  707. package/modules/vector.js.map +1 -1
  708. package/modules/vector.src.js +3 -5
  709. package/modules/venn.js +1 -1
  710. package/modules/venn.src.js +5 -5
  711. package/modules/windbarb.js +1 -1
  712. package/modules/windbarb.src.js +1 -1
  713. package/modules/wordcloud.js +1 -1
  714. package/modules/wordcloud.src.js +3 -3
  715. package/modules/xrange.js +17 -17
  716. package/modules/xrange.js.map +1 -1
  717. package/modules/xrange.src.js +411 -397
  718. package/package.json +1 -1
  719. package/themes/avocado.js +1 -1
  720. package/themes/avocado.src.js +1 -1
  721. package/themes/brand-dark.js +1 -1
  722. package/themes/brand-dark.src.js +1 -1
  723. package/themes/brand-light.js +1 -1
  724. package/themes/brand-light.src.js +1 -1
  725. package/themes/dark-blue.js +1 -1
  726. package/themes/dark-blue.src.js +1 -1
  727. package/themes/dark-green.js +1 -1
  728. package/themes/dark-green.src.js +1 -1
  729. package/themes/dark-unica.js +1 -1
  730. package/themes/dark-unica.src.js +1 -1
  731. package/themes/gray.js +1 -1
  732. package/themes/gray.src.js +1 -1
  733. package/themes/grid-light.js +1 -1
  734. package/themes/grid-light.src.js +1 -1
  735. package/themes/grid.js +1 -1
  736. package/themes/grid.src.js +1 -1
  737. package/themes/high-contrast-dark.js +1 -1
  738. package/themes/high-contrast-dark.src.js +1 -1
  739. package/themes/high-contrast-light.js +1 -1
  740. package/themes/high-contrast-light.src.js +1 -1
  741. package/themes/sand-signika.js +1 -1
  742. package/themes/sand-signika.src.js +1 -1
  743. package/themes/skies.js +1 -1
  744. package/themes/skies.src.js +1 -1
  745. package/themes/sunset.js +1 -1
  746. package/themes/sunset.src.js +1 -1
  747. package/es-modules/Core/Axis/StackingAxis.js +0 -215
  748. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  749. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  750. package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
  751. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  752. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  753. package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
  754. package/es-modules/Extensions/Boost/BoostInit.js +0 -324
  755. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  756. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  757. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  758. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  759. package/es-modules/Extensions/Stacking.js +0 -517
  760. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  761. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  762. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
  763. package/es-modules/Series/XRange/XRangeComposition.js +0 -49
@@ -8,11 +8,27 @@
8
8
  *
9
9
  * */
10
10
  'use strict';
11
+ var __extends = (this && this.__extends) || (function () {
12
+ var extendStatics = function (d, b) {
13
+ extendStatics = Object.setPrototypeOf ||
14
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16
+ return extendStatics(d, b);
17
+ };
18
+ return function (d, b) {
19
+ if (typeof b !== "function" && b !== null)
20
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
21
+ extendStatics(d, b);
22
+ function __() { this.constructor = d; }
23
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
24
+ };
25
+ })();
11
26
  import A from '../../Core/Animation/AnimationUtilities.js';
12
27
  var getDeferredAnimation = A.getDeferredAnimation;
13
- import Chart from '../../Core/Chart/Chart.js';
14
- var chartProto = Chart.prototype;
15
- import ControllableMixin from './Mixins/ControllableMixin.js';
28
+ import AnnotationChart from './AnnotationChart.js';
29
+ import AnnotationDefaults from './AnnotationDefaults.js';
30
+ import Controllable from './Controllables/Controllable.js';
31
+ var controllableProto = Controllable.prototype;
16
32
  import ControllableRect from './Controllables/ControllableRect.js';
17
33
  import ControllableCircle from './Controllables/ControllableCircle.js';
18
34
  import ControllableEllipse from './Controllables/ControllableEllipse.js';
@@ -20,49 +36,58 @@ import ControllablePath from './Controllables/ControllablePath.js';
20
36
  import ControllableImage from './Controllables/ControllableImage.js';
21
37
  import ControllableLabel from './Controllables/ControllableLabel.js';
22
38
  import ControlPoint from './ControlPoint.js';
23
- import EventEmitterMixin from './Mixins/EventEmitterMixin.js';
24
- import H from '../../Core/Globals.js';
39
+ import EventEmitter from './EventEmitter.js';
25
40
  import MockPoint from './MockPoint.js';
26
- import Pointer from '../../Core/Pointer.js';
41
+ import NavigationBindings from './NavigationBindings.js';
42
+ import PopupComposition from './Popup/PopupComposition.js';
27
43
  import U from '../../Core/Utilities.js';
28
- var addEvent = U.addEvent, defined = U.defined, destroyObjectProperties = U.destroyObjectProperties, erase = U.erase, extend = U.extend, find = U.find, fireEvent = U.fireEvent, merge = U.merge, pick = U.pick, splat = U.splat, wrap = U.wrap;
29
- /* *********************************************************************
30
- *
31
- * ANNOTATION
44
+ var addEvent = U.addEvent, destroyObjectProperties = U.destroyObjectProperties, erase = U.erase, extend = U.extend, find = U.find, fireEvent = U.fireEvent, merge = U.merge, pick = U.pick, splat = U.splat, wrap = U.wrap;
45
+ /* *
32
46
  *
33
- ******************************************************************** */
34
- /**
35
- * Possible directions for draggable annotations. An empty string (`''`)
36
- * makes the annotation undraggable.
47
+ * Functions
37
48
  *
38
- * @typedef {''|'x'|'xy'|'y'} Highcharts.AnnotationDraggableValue
39
- */
40
- /**
41
- * @private
42
- * @typedef {
43
- * Highcharts.AnnotationControllableCircle|
44
- * Highcharts.AnnotationControllableImage|
45
- * Highcharts.AnnotationControllablePath|
46
- * Highcharts.AnnotationControllableRect
47
- * }
48
- * Highcharts.AnnotationShapeType
49
- * @requires modules/annotations
50
- */
49
+ * */
51
50
  /**
51
+ * Hide or show annotaiton attached to points.
52
52
  * @private
53
- * @typedef {
54
- * Highcharts.AnnotationControllableLabel
55
- * }
56
- * Highcharts.AnnotationLabelType
57
- * @requires modules/annotations
58
53
  */
54
+ function adjustVisibility(item) {
55
+ var label = item.graphic, hasVisiblePoints = item.points.some(function (point) { return (point.series.visible !== false &&
56
+ point.visible !== false); });
57
+ if (label) {
58
+ if (!hasVisiblePoints) {
59
+ label.hide();
60
+ }
61
+ else if (label.visibility === 'hidden') {
62
+ label.show();
63
+ }
64
+ }
65
+ }
59
66
  /**
60
- * A point-like object, a mock point or a point used in series.
61
67
  * @private
62
- * @typedef {Highcharts.AnnotationMockPoint|Highcharts.Point} Highcharts.AnnotationPointType
63
- * @requires modules/annotations
64
68
  */
65
- /* eslint-disable no-invalid-this, valid-jsdoc */
69
+ function getLabelsAndShapesOptions(baseOptions, newOptions) {
70
+ var mergedOptions = {};
71
+ ['labels', 'shapes'].forEach(function (name) {
72
+ var someBaseOptions = baseOptions[name];
73
+ if (someBaseOptions) {
74
+ if (newOptions[name]) {
75
+ mergedOptions[name] = splat(newOptions[name]).map(function (basicOptions, i) {
76
+ return merge(someBaseOptions[i], basicOptions);
77
+ });
78
+ }
79
+ else {
80
+ mergedOptions[name] = baseOptions[name];
81
+ }
82
+ }
83
+ });
84
+ return mergedOptions;
85
+ }
86
+ /* *
87
+ *
88
+ * Class
89
+ *
90
+ * */
66
91
  /**
67
92
  * An annotation class which serves as a container for items like labels or
68
93
  * shapes. Created items are positioned on the chart either by linking them to
@@ -71,87 +96,89 @@ var addEvent = U.addEvent, defined = U.defined, destroyObjectProperties = U.dest
71
96
  * @class
72
97
  * @name Highcharts.Annotation
73
98
  *
74
- * @param {Highcharts.Chart} chart a chart instance
75
- * @param {Highcharts.AnnotationsOptions} userOptions the options object
99
+ * @param {Highcharts.Chart} chart
100
+ * A chart instance
101
+ * @param {Highcharts.AnnotationsOptions} userOptions
102
+ * The annotation options
76
103
  */
77
- var Annotation = /** @class */ (function () {
104
+ var Annotation = /** @class */ (function (_super) {
105
+ __extends(Annotation, _super);
78
106
  /* *
79
107
  *
80
108
  * Constructors
81
109
  *
82
110
  * */
83
111
  function Annotation(chart, userOptions) {
112
+ var _this = _super.call(this) || this;
84
113
  /* *
85
114
  *
86
115
  * Properties
87
116
  *
88
117
  * */
89
- this.annotation = void 0;
90
- this.coll = 'annotations';
91
- this.collection = void 0;
92
- this.animationConfig = void 0;
93
- this.graphic = void 0;
94
- this.group = void 0;
95
- this.labelCollector = void 0;
96
- this.labelsGroup = void 0;
97
- this.shapesGroup = void 0;
98
- var labelsAndShapes;
118
+ _this.annotation = void 0;
119
+ _this.coll = 'annotations';
120
+ _this.collection = void 0;
121
+ _this.animationConfig = void 0;
122
+ _this.graphic = void 0;
123
+ _this.group = void 0;
124
+ _this.labelCollector = void 0;
125
+ _this.labelsGroup = void 0;
126
+ _this.shapesGroup = void 0;
99
127
  /**
100
128
  * The chart that the annotation belongs to.
101
129
  *
130
+ * @name Highcharts.Annotation#chart
102
131
  * @type {Highcharts.Chart}
103
132
  */
104
- this.chart = chart;
133
+ _this.chart = chart;
105
134
  /**
106
135
  * The array of points which defines the annotation.
107
- *
136
+ * @private
137
+ * @name Highcharts.Annotation#points
108
138
  * @type {Array<Highcharts.Point>}
109
139
  */
110
- this.points = [];
140
+ _this.points = [];
111
141
  /**
112
142
  * The array of control points.
113
- *
114
143
  * @private
115
144
  * @name Highcharts.Annotation#controlPoints
116
145
  * @type {Array<Annotation.ControlPoint>}
117
146
  */
118
- this.controlPoints = [];
119
- this.coll = 'annotations';
147
+ _this.controlPoints = [];
148
+ _this.coll = 'annotations';
120
149
  /**
121
150
  * The array of labels which belong to the annotation.
122
- *
123
151
  * @private
124
152
  * @name Highcharts.Annotation#labels
125
153
  * @type {Array<Highcharts.AnnotationLabelType>}
126
154
  */
127
- this.labels = [];
155
+ _this.labels = [];
128
156
  /**
129
157
  * The array of shapes which belong to the annotation.
130
- *
131
158
  * @private
132
159
  * @name Highcharts.Annotation#shapes
133
160
  * @type {Array<Highcharts.AnnotationShapeType>}
134
161
  */
135
- this.shapes = [];
162
+ _this.shapes = [];
136
163
  /**
137
164
  * The options for the annotations.
138
165
  *
139
166
  * @name Highcharts.Annotation#options
140
167
  * @type {Highcharts.AnnotationsOptions}
141
168
  */
142
- this.options = merge(this.defaultOptions, userOptions);
169
+ _this.options = merge(_this.defaultOptions, userOptions);
143
170
  /**
144
171
  * The user options for the annotations.
145
172
  *
146
173
  * @name Highcharts.Annotation#userOptions
147
174
  * @type {Highcharts.AnnotationsOptions}
148
175
  */
149
- this.userOptions = userOptions;
176
+ _this.userOptions = userOptions;
150
177
  // Handle labels and shapes - those are arrays
151
178
  // Merging does not work with arrays (stores reference)
152
- labelsAndShapes = this.getLabelsAndShapesOptions(this.options, userOptions);
153
- this.options.labels = labelsAndShapes.labels;
154
- this.options.shapes = labelsAndShapes.shapes;
179
+ var labelsAndShapes = getLabelsAndShapesOptions(_this.options, userOptions);
180
+ _this.options.labels = labelsAndShapes.labels;
181
+ _this.options.shapes = labelsAndShapes.shapes;
155
182
  /**
156
183
  * The callback that reports to the overlapping-labels module which
157
184
  * labels it should account for.
@@ -177,51 +204,32 @@ var Annotation = /** @class */ (function () {
177
204
  * @name Highcharts.Annotation#labelsGroup
178
205
  * @type {Highcharts.SVGElement}
179
206
  */
180
- this.init(chart, this.options);
207
+ _this.init(chart, _this.options);
208
+ return _this;
181
209
  }
210
+ /* *
211
+ *
212
+ * Static Functions
213
+ *
214
+ * */
182
215
  /**
183
- * Initialize the annotation.
184
216
  * @private
185
217
  */
186
- Annotation.prototype.init = function () {
187
- var chart = this.chart, animOptions = this.options.animation;
188
- this.linkPoints();
189
- this.addControlPoints();
190
- this.addShapes();
191
- this.addLabels();
192
- this.setLabelCollector();
193
- this.animationConfig = getDeferredAnimation(chart, animOptions);
194
- };
195
- Annotation.prototype.getLabelsAndShapesOptions = function (baseOptions, newOptions) {
196
- var mergedOptions = {};
197
- ['labels', 'shapes'].forEach(function (name) {
198
- var someBaseOptions = baseOptions[name];
199
- if (someBaseOptions) {
200
- if (newOptions[name]) {
201
- mergedOptions[name] = splat(newOptions[name]).map(function (basicOptions, i) {
202
- return merge(someBaseOptions[i], basicOptions);
203
- });
204
- }
205
- else {
206
- mergedOptions[name] = baseOptions[name];
207
- }
208
- }
209
- });
210
- return mergedOptions;
211
- };
212
- Annotation.prototype.addShapes = function () {
213
- var shapes = this.options.shapes || [];
214
- shapes.forEach(function (shapeOptions, i) {
215
- var shape = this.initShape(shapeOptions, i);
216
- merge(true, shapes[i], shape.options);
217
- }, this);
218
- };
219
- Annotation.prototype.addLabels = function () {
220
- (this.options.labels || []).forEach(function (labelsOptions, i) {
221
- var labels = this.initLabel(labelsOptions, i);
222
- merge(true, this.options.labels[i], labels.options);
223
- }, this);
218
+ Annotation.compose = function (ChartClass, PointerClass, SVGRendererClass) {
219
+ AnnotationChart.compose(Annotation, ChartClass, PointerClass);
220
+ ControllableLabel.compose(SVGRendererClass);
221
+ ControllablePath.compose(ChartClass, SVGRendererClass);
222
+ NavigationBindings.compose(Annotation, ChartClass);
223
+ PopupComposition.compose(NavigationBindings, PointerClass);
224
224
  };
225
+ /* *
226
+ *
227
+ * Functions
228
+ *
229
+ * */
230
+ /**
231
+ * @private
232
+ */
225
233
  Annotation.prototype.addClipPaths = function () {
226
234
  this.setClipAxes();
227
235
  if (this.clipXAxis &&
@@ -231,21 +239,60 @@ var Annotation = /** @class */ (function () {
231
239
  this.clipRect = this.chart.renderer.clipRect(this.getClipBox());
232
240
  }
233
241
  };
234
- Annotation.prototype.setClipAxes = function () {
235
- var xAxes = this.chart.xAxis, yAxes = this.chart.yAxis, linkedAxes = (this.options.labels || [])
236
- .concat(this.options.shapes || [])
237
- .reduce(function (axes, labelOrShape) {
238
- var point = labelOrShape &&
239
- (labelOrShape.point ||
240
- (labelOrShape.points && labelOrShape.points[0]));
241
- return [
242
- xAxes[point && point.xAxis] || axes[0],
243
- yAxes[point && point.yAxis] || axes[1]
244
- ];
245
- }, []);
246
- this.clipXAxis = linkedAxes[0];
247
- this.clipYAxis = linkedAxes[1];
242
+ /**
243
+ * @private
244
+ */
245
+ Annotation.prototype.addLabels = function () {
246
+ var _this = this;
247
+ var labelsOptions = (this.options.labels || []);
248
+ labelsOptions.forEach(function (labelOptions, i) {
249
+ var label = _this.initLabel(labelOptions, i);
250
+ merge(true, labelsOptions[i], label.options);
251
+ });
252
+ };
253
+ /**
254
+ * @private
255
+ */
256
+ Annotation.prototype.addShapes = function () {
257
+ var _this = this;
258
+ var shapes = this.options.shapes || [];
259
+ shapes.forEach(function (shapeOptions, i) {
260
+ var shape = _this.initShape(shapeOptions, i);
261
+ merge(true, shapes[i], shape.options);
262
+ });
263
+ };
264
+ /**
265
+ * Destroy the annotation. This function does not touch the chart
266
+ * that the annotation belongs to (all annotations are kept in
267
+ * the chart.annotations array) - it is recommended to use
268
+ * {@link Highcharts.Chart#removeAnnotation} instead.
269
+ * @private
270
+ */
271
+ Annotation.prototype.destroy = function () {
272
+ var chart = this.chart, destroyItem = function (item) {
273
+ item.destroy();
274
+ };
275
+ this.labels.forEach(destroyItem);
276
+ this.shapes.forEach(destroyItem);
277
+ this.clipXAxis = null;
278
+ this.clipYAxis = null;
279
+ erase(chart.labelCollectors, this.labelCollector);
280
+ _super.prototype.destroy.call(this);
281
+ controllableProto.destroy.call(this);
282
+ destroyObjectProperties(this, chart);
283
+ };
284
+ /**
285
+ * Destroy a single item.
286
+ * @private
287
+ */
288
+ Annotation.prototype.destroyItem = function (item) {
289
+ // erase from shapes or labels array
290
+ erase(this[item.itemType + 's'], item);
291
+ item.destroy();
248
292
  };
293
+ /**
294
+ * @private
295
+ */
249
296
  Annotation.prototype.getClipBox = function () {
250
297
  if (this.clipXAxis && this.clipYAxis) {
251
298
  return {
@@ -256,26 +303,51 @@ var Annotation = /** @class */ (function () {
256
303
  };
257
304
  }
258
305
  };
259
- Annotation.prototype.setLabelCollector = function () {
260
- var annotation = this;
261
- annotation.labelCollector = function () {
262
- return annotation.labels.reduce(function (labels, label) {
263
- if (!label.options.allowOverlap) {
264
- labels.push(label.graphic);
265
- }
266
- return labels;
267
- }, []);
268
- };
269
- annotation.chart.labelCollectors.push(annotation.labelCollector);
306
+ /**
307
+ * Initialize the annotation.
308
+ * @private
309
+ */
310
+ Annotation.prototype.init = function (_annotationOrChart, _userOptions, _index) {
311
+ var chart = this.chart, animOptions = this.options.animation;
312
+ this.linkPoints();
313
+ this.addControlPoints();
314
+ this.addShapes();
315
+ this.addLabels();
316
+ this.setLabelCollector();
317
+ this.animationConfig = getDeferredAnimation(chart, animOptions);
270
318
  };
271
319
  /**
272
- * Set an annotation options.
320
+ * Initialisation of a single label
273
321
  * @private
274
- * @param {Highcharts.AnnotationsOptions} - user options for an annotation
275
322
  */
276
- Annotation.prototype.setOptions = function (userOptions) {
277
- this.options = merge(this.defaultOptions, userOptions);
323
+ Annotation.prototype.initLabel = function (labelOptions, index) {
324
+ var options = merge(this.options.labelOptions, {
325
+ controlPointOptions: this.options.controlPointOptions
326
+ }, labelOptions), label = new ControllableLabel(this, options, index);
327
+ label.itemType = 'label';
328
+ this.labels.push(label);
329
+ return label;
330
+ };
331
+ /**
332
+ * Initialisation of a single shape
333
+ * @private
334
+ * @param {Object} shapeOptions
335
+ * a confg object for a single shape
336
+ * @param {number} index
337
+ * annotation may have many shapes, this is the shape's index saved in
338
+ * shapes.index.
339
+ */
340
+ Annotation.prototype.initShape = function (shapeOptions, index) {
341
+ var options = merge(this.options.shapeOptions, {
342
+ controlPointOptions: this.options.controlPointOptions
343
+ }, shapeOptions), shape = new (Annotation.shapesMap[options.type])(this, options, index);
344
+ shape.itemType = 'shape';
345
+ this.shapes.push(shape);
346
+ return shape;
278
347
  };
348
+ /**
349
+ * @private
350
+ */
279
351
  Annotation.prototype.redraw = function (animation) {
280
352
  this.linkPoints();
281
353
  if (!this.graphic) {
@@ -286,12 +358,29 @@ var Annotation = /** @class */ (function () {
286
358
  }
287
359
  this.redrawItems(this.shapes, animation);
288
360
  this.redrawItems(this.labels, animation);
289
- ControllableMixin.redraw.call(this, animation);
361
+ controllableProto.redraw.call(this, animation);
362
+ };
363
+ /**
364
+ * Redraw a single item.
365
+ * @private
366
+ */
367
+ Annotation.prototype.redrawItem = function (item, animation) {
368
+ item.linkPoints();
369
+ if (!item.shouldBeDrawn()) {
370
+ this.destroyItem(item);
371
+ }
372
+ else {
373
+ if (!item.graphic) {
374
+ this.renderItem(item);
375
+ }
376
+ item.redraw(pick(animation, true) && item.graphic.placed);
377
+ if (item.points.length) {
378
+ adjustVisibility(item);
379
+ }
380
+ }
290
381
  };
291
382
  /**
292
383
  * @private
293
- * @param {Array<Highcharts.AnnotationControllable>} items
294
- * @param {boolean} [animation]
295
384
  */
296
385
  Annotation.prototype.redrawItems = function (items, animation) {
297
386
  var i = items.length;
@@ -303,15 +392,16 @@ var Annotation = /** @class */ (function () {
303
392
  }
304
393
  };
305
394
  /**
395
+ * See {@link Highcharts.Chart#removeAnnotation}.
306
396
  * @private
307
- * @param {Array<Highcharts.AnnotationControllable>} items
308
397
  */
309
- Annotation.prototype.renderItems = function (items) {
310
- var i = items.length;
311
- while (i--) {
312
- this.renderItem(items[i]);
313
- }
398
+ Annotation.prototype.remove = function () {
399
+ // Let chart.update() remove annoations on demand
400
+ return this.chart.removeAnnotation(this);
314
401
  };
402
+ /**
403
+ * @private
404
+ */
315
405
  Annotation.prototype.render = function () {
316
406
  var renderer = this.chart.renderer;
317
407
  this.graphic = renderer
@@ -346,63 +436,97 @@ var Annotation = /** @class */ (function () {
346
436
  this.renderItems(this.shapes);
347
437
  this.renderItems(this.labels);
348
438
  this.addEvents();
349
- ControllableMixin.render.call(this);
439
+ controllableProto.render.call(this);
350
440
  };
351
441
  /**
352
- * Set the annotation's visibility.
353
442
  * @private
354
- * @param {boolean} [visible]
355
- * Whether to show or hide an annotation. If the param is omitted, the
356
- * annotation's visibility is toggled.
357
443
  */
358
- Annotation.prototype.setVisibility = function (visible) {
359
- var options = this.options, navigation = this.chart.navigationBindings, visibility = pick(visible, !options.visible);
360
- this.graphic.attr('visibility', visibility ? 'inherit' : 'hidden');
361
- if (!visibility) {
362
- this.setControlPointsVisibility(false);
363
- if (navigation.activeAnnotation === this &&
364
- navigation.popup &&
365
- navigation.popup.formType === 'annotation-toolbar') {
366
- fireEvent(navigation, 'closePopup');
367
- }
368
- }
369
- options.visible = visibility;
444
+ Annotation.prototype.renderItem = function (item) {
445
+ item.render(item.itemType === 'label' ?
446
+ this.labelsGroup :
447
+ this.shapesGroup);
370
448
  };
371
- Annotation.prototype.setControlPointsVisibility = function (visible) {
372
- var setItemControlPointsVisibility = function (item) {
373
- item.setControlPointsVisibility(visible);
374
- };
375
- ControllableMixin.setControlPointsVisibility.call(this, visible);
376
- this.shapes.forEach(setItemControlPointsVisibility);
377
- this.labels.forEach(setItemControlPointsVisibility);
449
+ /**
450
+ * @private
451
+ */
452
+ Annotation.prototype.renderItems = function (items) {
453
+ var i = items.length;
454
+ while (i--) {
455
+ this.renderItem(items[i]);
456
+ }
378
457
  };
379
458
  /**
380
- * Destroy the annotation. This function does not touch the chart
381
- * that the annotation belongs to (all annotations are kept in
382
- * the chart.annotations array) - it is recommended to use
383
- * {@link Highcharts.Chart#removeAnnotation} instead.
384
459
  * @private
385
460
  */
386
- Annotation.prototype.destroy = function () {
387
- var chart = this.chart, destroyItem = function (item) {
388
- item.destroy();
461
+ Annotation.prototype.setClipAxes = function () {
462
+ var xAxes = this.chart.xAxis, yAxes = this.chart.yAxis, linkedAxes = (this.options.labels || [])
463
+ .concat(this.options.shapes || [])
464
+ .reduce(function (axes, labelOrShape) {
465
+ var point = labelOrShape &&
466
+ (labelOrShape.point ||
467
+ (labelOrShape.points && labelOrShape.points[0]));
468
+ return [
469
+ xAxes[point && point.xAxis] || axes[0],
470
+ yAxes[point && point.yAxis] || axes[1]
471
+ ];
472
+ }, []);
473
+ this.clipXAxis = linkedAxes[0];
474
+ this.clipYAxis = linkedAxes[1];
475
+ };
476
+ /**
477
+ * @private
478
+ */
479
+ Annotation.prototype.setControlPointsVisibility = function (visible) {
480
+ var setItemControlPointsVisibility = function (item) {
481
+ item.setControlPointsVisibility(visible);
389
482
  };
390
- this.labels.forEach(destroyItem);
391
- this.shapes.forEach(destroyItem);
392
- this.clipXAxis = null;
393
- this.clipYAxis = null;
394
- erase(chart.labelCollectors, this.labelCollector);
395
- EventEmitterMixin.destroy.call(this);
396
- ControllableMixin.destroy.call(this);
397
- destroyObjectProperties(this, chart);
483
+ controllableProto.setControlPointsVisibility.call(this, visible);
484
+ this.shapes.forEach(setItemControlPointsVisibility);
485
+ this.labels.forEach(setItemControlPointsVisibility);
398
486
  };
399
487
  /**
400
- * See {@link Highcharts.Chart#removeAnnotation}.
401
488
  * @private
402
489
  */
403
- Annotation.prototype.remove = function () {
404
- // Let chart.update() remove annoations on demand
405
- return this.chart.removeAnnotation(this);
490
+ Annotation.prototype.setLabelCollector = function () {
491
+ var annotation = this;
492
+ annotation.labelCollector = function () {
493
+ return annotation.labels.reduce(function (labels, label) {
494
+ if (!label.options.allowOverlap) {
495
+ labels.push(label.graphic);
496
+ }
497
+ return labels;
498
+ }, []);
499
+ };
500
+ annotation.chart.labelCollectors.push(annotation.labelCollector);
501
+ };
502
+ /**
503
+ * Set an annotation options.
504
+ * @private
505
+ * @param {Highcharts.AnnotationsOptions} userOptions
506
+ * User options for an annotation
507
+ */
508
+ Annotation.prototype.setOptions = function (userOptions) {
509
+ this.options = merge(this.defaultOptions, userOptions);
510
+ };
511
+ /**
512
+ * Set the annotation's visibility.
513
+ * @private
514
+ * @param {boolean} [visible]
515
+ * Whether to show or hide an annotation. If the param is omitted, the
516
+ * annotation's visibility is toggled.
517
+ */
518
+ Annotation.prototype.setVisibility = function (visible) {
519
+ var options = this.options, navigation = this.chart.navigationBindings, visibility = pick(visible, !options.visible);
520
+ this.graphic.attr('visibility', visibility ? 'inherit' : 'hidden');
521
+ if (!visibility) {
522
+ this.setControlPointsVisibility(false);
523
+ if (navigation.activeAnnotation === this &&
524
+ navigation.popup &&
525
+ navigation.popup.formType === 'annotation-toolbar') {
526
+ fireEvent(navigation, 'closePopup');
527
+ }
528
+ }
529
+ options.visible = visibility;
406
530
  };
407
531
  /**
408
532
  * Updates an annotation.
@@ -410,11 +534,11 @@ var Annotation = /** @class */ (function () {
410
534
  * @function Highcharts.Annotation#update
411
535
  *
412
536
  * @param {Partial<Highcharts.AnnotationsOptions>} userOptions
413
- * New user options for the annotation.
537
+ * New user options for the annotation.
414
538
  *
415
539
  */
416
540
  Annotation.prototype.update = function (userOptions, redraw) {
417
- var chart = this.chart, labelsAndShapes = this.getLabelsAndShapesOptions(this.userOptions, userOptions), userOptionsIndex = chart.annotations.indexOf(this), options = merge(true, this.userOptions, userOptions);
541
+ var chart = this.chart, labelsAndShapes = getLabelsAndShapesOptions(this.userOptions, userOptions), userOptionsIndex = chart.annotations.indexOf(this), options = merge(true, this.userOptions, userOptions);
418
542
  options.labels = labelsAndShapes.labels;
419
543
  options.shapes = labelsAndShapes.shapes;
420
544
  this.destroy();
@@ -428,98 +552,11 @@ var Annotation = /** @class */ (function () {
428
552
  fireEvent(this, 'afterUpdate');
429
553
  this.isUpdating = false;
430
554
  };
431
- /* *************************************************************
432
- * ITEM SECTION
433
- * Contains methods for handling a single item in an annotation
434
- **************************************************************** */
435
- /**
436
- * Initialisation of a single shape
437
- * @private
438
- * @param {Object} shapeOptions
439
- * a confg object for a single shape
440
- * @param {number} index
441
- * annotation may have many shapes, this is the shape's index saved in
442
- * shapes.index.
443
- */
444
- Annotation.prototype.initShape = function (shapeOptions, index) {
445
- var options = merge(this.options.shapeOptions, {
446
- controlPointOptions: this.options.controlPointOptions
447
- }, shapeOptions), shape = new Annotation.shapesMap[options.type](this, options, index);
448
- shape.itemType = 'shape';
449
- this.shapes.push(shape);
450
- return shape;
451
- };
452
- /**
453
- * Initialisation of a single label
454
- * @private
455
- */
456
- Annotation.prototype.initLabel = function (labelOptions, index) {
457
- var options = merge(this.options.labelOptions, {
458
- controlPointOptions: this.options.controlPointOptions
459
- }, labelOptions), label = new ControllableLabel(this, options, index);
460
- label.itemType = 'label';
461
- this.labels.push(label);
462
- return label;
463
- };
464
- /**
465
- * Redraw a single item.
466
- * @private
467
- * @param {Annotation.Label|Annotation.Shape} item
468
- * @param {boolean} [animation]
469
- */
470
- Annotation.prototype.redrawItem = function (item, animation) {
471
- item.linkPoints();
472
- if (!item.shouldBeDrawn()) {
473
- this.destroyItem(item);
474
- }
475
- else {
476
- if (!item.graphic) {
477
- this.renderItem(item);
478
- }
479
- item.redraw(pick(animation, true) && item.graphic.placed);
480
- if (item.points.length) {
481
- this.adjustVisibility(item);
482
- }
483
- }
484
- };
485
- /**
486
- * Hide or show annotaiton attached to points.
487
- * @private
488
- * @param {Annotation.Label|Annotation.Shape} item
489
- */
490
- Annotation.prototype.adjustVisibility = function (item) {
491
- var hasVisiblePoints = false, label = item.graphic;
492
- item.points.forEach(function (point) {
493
- if (point.series.visible !== false &&
494
- point.visible !== false) {
495
- hasVisiblePoints = true;
496
- }
497
- });
498
- if (!hasVisiblePoints) {
499
- label.hide();
500
- }
501
- else if (label.visibility === 'hidden') {
502
- label.show();
503
- }
504
- };
505
- /**
506
- * Destroy a single item.
507
- * @private
508
- * @param {Annotation.Label|Annotation.Shape} item
509
- */
510
- Annotation.prototype.destroyItem = function (item) {
511
- // erase from shapes or labels array
512
- erase(this[item.itemType + 's'], item);
513
- item.destroy();
514
- };
515
- /**
516
- * @private
517
- */
518
- Annotation.prototype.renderItem = function (item) {
519
- item.render(item.itemType === 'label' ?
520
- this.labelsGroup :
521
- this.shapesGroup);
522
- };
555
+ /* *
556
+ *
557
+ * Static Properties
558
+ *
559
+ * */
523
560
  /**
524
561
  * @private
525
562
  */
@@ -545,12 +582,10 @@ var Annotation = /** @class */ (function () {
545
582
  */
546
583
  Annotation.types = {};
547
584
  return Annotation;
548
- }());
549
- merge(true, Annotation.prototype, ControllableMixin, EventEmitterMixin,
550
- // restore original Annotation implementation after mixin overwrite
551
- merge(Annotation.prototype,
552
- /** @lends Highcharts.Annotation# */
553
- {
585
+ }(EventEmitter));
586
+ merge(true, Annotation.prototype, Controllable.prototype,
587
+ // restore original Annotation implementation after mixin overwrite:
588
+ merge(Annotation.prototype, {
554
589
  /**
555
590
  * List of events for `annotation.options.events` that should not be
556
591
  * added to `annotation.graphic` but to the `annotation`.
@@ -559,834 +594,8 @@ merge(Annotation.prototype,
559
594
  * @type {Array<string>}
560
595
  */
561
596
  nonDOMEvents: ['add', 'afterUpdate', 'drag', 'remove'],
562
- /**
563
- * A basic type of an annotation. It allows to add custom labels
564
- * or shapes. The items can be tied to points, axis coordinates
565
- * or chart pixel coordinates.
566
- *
567
- * @sample highcharts/annotations/basic/
568
- * Basic annotations
569
- * @sample highcharts/demo/annotations/
570
- * Advanced annotations
571
- * @sample highcharts/css/annotations
572
- * Styled mode
573
- * @sample highcharts/annotations-advanced/controllable
574
- * Controllable items
575
- * @sample {highstock} stock/annotations/fibonacci-retracements
576
- * Custom annotation, Fibonacci retracement
577
- *
578
- * @type {Array<*>}
579
- * @since 6.0.0
580
- * @requires modules/annotations
581
- * @optionparent annotations
582
- *
583
- * @private
584
- */
585
- defaultOptions: {
586
- /**
587
- * Sets an ID for an annotation. Can be user later when
588
- * removing an annotation in [Chart#removeAnnotation(id)](
589
- * /class-reference/Highcharts.Chart#removeAnnotation) method.
590
- *
591
- * @type {number|string}
592
- * @apioption annotations.id
593
- */
594
- /**
595
- * Whether the annotation is visible.
596
- *
597
- * @sample highcharts/annotations/visible/
598
- * Set annotation visibility
599
- */
600
- visible: true,
601
- /**
602
- * Enable or disable the initial animation when a series is
603
- * displayed for the `annotation`. The animation can also be set
604
- * as a configuration object. Please note that this option only
605
- * applies to the initial animation.
606
- * For other animations, see [chart.animation](#chart.animation)
607
- * and the animation parameter under the API methods.
608
- * The following properties are supported:
609
- *
610
- * - `defer`: The animation delay time in milliseconds.
611
- *
612
- * @sample {highcharts} highcharts/annotations/defer/
613
- * Animation defer settings
614
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
615
- * @since 8.2.0
616
- */
617
- animation: {},
618
- /**
619
- * Whether to hide the part of the annotation
620
- * that is outside the plot area.
621
- *
622
- * @sample highcharts/annotations/label-crop-overflow/
623
- * Crop line annotation
624
- * @type {boolean}
625
- * @since 9.3.0
626
- */
627
- crop: true,
628
- /**
629
- * The animation delay time in milliseconds.
630
- * Set to `0` renders annotation immediately.
631
- * As `undefined` inherits defer time from the [series.animation.defer](#plotOptions.series.animation.defer).
632
- *
633
- * @type {number}
634
- * @since 8.2.0
635
- * @apioption annotations.animation.defer
636
- */
637
- /**
638
- * Allow an annotation to be draggable by a user. Possible
639
- * values are `'x'`, `'xy'`, `'y'` and `''` (disabled).
640
- *
641
- * @sample highcharts/annotations/draggable/
642
- * Annotations draggable: 'xy'
643
- *
644
- * @type {Highcharts.AnnotationDraggableValue}
645
- */
646
- draggable: 'xy',
647
- /**
648
- * Options for annotation's labels. Each label inherits options
649
- * from the labelOptions object. An option from the labelOptions
650
- * can be overwritten by config for a specific label.
651
- *
652
- * @requires modules/annotations
653
- */
654
- labelOptions: {
655
- /**
656
- * The alignment of the annotation's label. If right,
657
- * the right side of the label should be touching the point.
658
- *
659
- * @sample highcharts/annotations/label-position/
660
- * Set labels position
661
- *
662
- * @type {Highcharts.AlignValue}
663
- */
664
- align: 'center',
665
- /**
666
- * Whether to allow the annotation's labels to overlap.
667
- * To make the labels less sensitive for overlapping,
668
- * the can be set to 0.
669
- *
670
- * @sample highcharts/annotations/tooltip-like/
671
- * Hide overlapping labels
672
- */
673
- allowOverlap: false,
674
- /**
675
- * The background color or gradient for the annotation's
676
- * label.
677
- *
678
- * @sample highcharts/annotations/label-presentation/
679
- * Set labels graphic options
680
- *
681
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
682
- */
683
- backgroundColor: 'rgba(0, 0, 0, 0.75)',
684
- /**
685
- * The border color for the annotation's label.
686
- *
687
- * @sample highcharts/annotations/label-presentation/
688
- * Set labels graphic options
689
- *
690
- * @type {Highcharts.ColorString}
691
- */
692
- borderColor: "#000000" /* Palette.neutralColor100 */,
693
- /**
694
- * The border radius in pixels for the annotaiton's label.
695
- *
696
- * @sample highcharts/annotations/label-presentation/
697
- * Set labels graphic options
698
- */
699
- borderRadius: 3,
700
- /**
701
- * The border width in pixels for the annotation's label
702
- *
703
- * @sample highcharts/annotations/label-presentation/
704
- * Set labels graphic options
705
- */
706
- borderWidth: 1,
707
- /**
708
- * A class name for styling by CSS.
709
- *
710
- * @sample highcharts/css/annotations
711
- * Styled mode annotations
712
- *
713
- * @since 6.0.5
714
- */
715
- className: 'highcharts-no-tooltip',
716
- /**
717
- * Whether to hide the annotation's label
718
- * that is outside the plot area.
719
- *
720
- * @sample highcharts/annotations/label-crop-overflow/
721
- * Crop or justify labels
722
- */
723
- crop: false,
724
- /**
725
- * The label's pixel distance from the point.
726
- *
727
- * @sample highcharts/annotations/label-position/
728
- * Set labels position
729
- *
730
- * @type {number}
731
- * @apioption annotations.labelOptions.distance
732
- */
733
- /**
734
- * A
735
- * [format](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
736
- * string for the data label.
737
- *
738
- * @see [plotOptions.series.dataLabels.format](plotOptions.series.dataLabels.format.html)
739
- *
740
- * @sample highcharts/annotations/label-text/
741
- * Set labels text
742
- *
743
- * @type {string}
744
- * @apioption annotations.labelOptions.format
745
- */
746
- /**
747
- * Alias for the format option.
748
- *
749
- * @see [format](annotations.labelOptions.format.html)
750
- *
751
- * @sample highcharts/annotations/label-text/
752
- * Set labels text
753
- *
754
- * @type {string}
755
- * @apioption annotations.labelOptions.text
756
- */
757
- /**
758
- * Callback JavaScript function to format the annotation's
759
- * label. Note that if a `format` or `text` are defined,
760
- * the format or text take precedence and the formatter is
761
- * ignored. `This` refers to a point object.
762
- *
763
- * @sample highcharts/annotations/label-text/
764
- * Set labels text
765
- *
766
- * @type {Highcharts.FormatterCallbackFunction<Highcharts.Point>}
767
- * @default function () { return defined(this.y) ? this.y : 'Annotation label'; }
768
- */
769
- formatter: function () {
770
- return defined(this.y) ? this.y : 'Annotation label';
771
- },
772
- /**
773
- * Whether the annotation is visible in the exported data
774
- * table.
775
- *
776
- * @sample highcharts/annotations/include-in-data-export/
777
- * Do not include in the data export
778
- *
779
- * @since 8.2.0
780
- * @requires modules/export-data
781
- */
782
- includeInDataExport: true,
783
- /**
784
- * How to handle the annotation's label that flow outside
785
- * the plot area. The justify option aligns the label inside
786
- * the plot area.
787
- *
788
- * @sample highcharts/annotations/label-crop-overflow/
789
- * Crop or justify labels
790
- *
791
- * @validvalue ["allow", "justify"]
792
- */
793
- overflow: 'justify',
794
- /**
795
- * When either the borderWidth or the backgroundColor is
796
- * set, this is the padding within the box.
797
- *
798
- * @sample highcharts/annotations/label-presentation/
799
- * Set labels graphic options
800
- */
801
- padding: 5,
802
- /**
803
- * The shadow of the box. The shadow can be an object
804
- * configuration containing `color`, `offsetX`, `offsetY`,
805
- * `opacity` and `width`.
806
- *
807
- * @sample highcharts/annotations/label-presentation/
808
- * Set labels graphic options
809
- *
810
- * @type {boolean|Highcharts.ShadowOptionsObject}
811
- */
812
- shadow: false,
813
- /**
814
- * The name of a symbol to use for the border around the
815
- * label. Symbols are predefined functions on the Renderer
816
- * object.
817
- *
818
- * @sample highcharts/annotations/shapes/
819
- * Available shapes for labels
820
- */
821
- shape: 'callout',
822
- /**
823
- * Styles for the annotation's label.
824
- *
825
- * @see [plotOptions.series.dataLabels.style](plotOptions.series.dataLabels.style.html)
826
- *
827
- * @sample highcharts/annotations/label-presentation/
828
- * Set labels graphic options
829
- *
830
- * @type {Highcharts.CSSObject}
831
- */
832
- style: {
833
- /** @ignore */
834
- fontSize: '11px',
835
- /** @ignore */
836
- fontWeight: 'normal',
837
- /** @ignore */
838
- color: 'contrast'
839
- },
840
- /**
841
- * Whether to [use HTML](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)
842
- * to render the annotation's label.
843
- */
844
- useHTML: false,
845
- /**
846
- * The vertical alignment of the annotation's label.
847
- *
848
- * @sample highcharts/annotations/label-position/
849
- * Set labels position
850
- *
851
- * @type {Highcharts.VerticalAlignValue}
852
- */
853
- verticalAlign: 'bottom',
854
- /**
855
- * The x position offset of the label relative to the point.
856
- * Note that if a `distance` is defined, the distance takes
857
- * precedence over `x` and `y` options.
858
- *
859
- * @sample highcharts/annotations/label-position/
860
- * Set labels position
861
- */
862
- x: 0,
863
- /**
864
- * The y position offset of the label relative to the point.
865
- * Note that if a `distance` is defined, the distance takes
866
- * precedence over `x` and `y` options.
867
- *
868
- * @sample highcharts/annotations/label-position/
869
- * Set labels position
870
- */
871
- y: -16
872
- },
873
- /**
874
- * An array of labels for the annotation. For options that apply
875
- * to multiple labels, they can be added to the
876
- * [labelOptions](annotations.labelOptions.html).
877
- *
878
- * @type {Array<*>}
879
- * @extends annotations.labelOptions
880
- * @apioption annotations.labels
881
- */
882
- /**
883
- * This option defines the point to which the label will be
884
- * connected. It can be either the point which exists in the
885
- * series - it is referenced by the point's id - or a new point
886
- * with defined x, y properties and optionally axes.
887
- *
888
- * @sample highcharts/annotations/mock-point/
889
- * Attach annotation to a mock point
890
- * @sample highcharts/annotations/mock-points/
891
- * Attach annotation to a mock point with different ways
892
- *
893
- * @declare Highcharts.AnnotationMockPointOptionsObject
894
- * @type {
895
- * string|
896
- * Highcharts.AnnotationMockPointOptionsObject|
897
- * Highcharts.AnnotationMockPointFunction
898
- * }
899
- * @requires modules/annotations
900
- * @apioption annotations.labels.point
901
- */
902
- /**
903
- * An array of shapes for the annotation. For options that apply
904
- * to multiple shapes, then can be added to the
905
- * [shapeOptions](annotations.shapeOptions.html).
906
- *
907
- * @type {Array<*>}
908
- * @extends annotations.shapeOptions
909
- * @apioption annotations.shapes
910
- */
911
- /**
912
- * This option defines the point to which the shape will be
913
- * connected. It can be either the point which exists in the
914
- * series - it is referenced by the point's id - or a new point
915
- * with defined x, y properties and optionally axes.
916
- *
917
- * @sample highcharts/annotations/mock-points/
918
- * Attach annotation to a mock point with different ways
919
- *
920
- * @declare Highcharts.AnnotationMockPointOptionsObject
921
- * @type {
922
- * string|
923
- * Highcharts.AnnotationMockPointOptionsObject|
924
- * Highcharts.AnnotationMockPointFunction
925
- * }
926
- * @extends annotations.labels.point
927
- * @requires modules/annotations
928
- * @apioption annotations.shapes.point
929
- */
930
- /**
931
- * An array of points for the shape
932
- * or a callback function that returns that shape point.
933
- *
934
- * This option is available
935
- * for shapes which can use multiple points such as path. A
936
- * point can be either a point object or a point's id.
937
- *
938
- * @see [annotations.shapes.point](annotations.shapes.point.html)
939
- *
940
- * @type {Array<Highcharts.AnnotationShapePointOptions>}
941
- * @extends annotations.labels.point
942
- * @apioption annotations.shapes.points
943
- */
944
- /**
945
- * The URL for an image to use as the annotation shape. Note,
946
- * type has to be set to `'image'`.
947
- *
948
- * @see [annotations.shapes.type](annotations.shapes.type)
949
- * @sample highcharts/annotations/shape-src/
950
- * Define a marker image url for annotations
951
- *
952
- * @type {string}
953
- * @apioption annotations.shapes.src
954
- */
955
- /**
956
- * Id of the marker which will be drawn at the final vertex of
957
- * the path. Custom markers can be defined in defs property.
958
- *
959
- * @see [defs.markers](defs.markers.html)
960
- *
961
- * @sample highcharts/annotations/custom-markers/
962
- * Define a custom marker for annotations
963
- *
964
- * @type {string}
965
- * @apioption annotations.shapes.markerEnd
966
- */
967
- /**
968
- * Id of the marker which will be drawn at the first vertex of
969
- * the path. Custom markers can be defined in defs property.
970
- *
971
- * @see [defs.markers](defs.markers.html)
972
- *
973
- * @sample {highcharts} highcharts/annotations/custom-markers/
974
- * Define a custom marker for annotations
975
- *
976
- * @type {string}
977
- * @apioption annotations.shapes.markerStart
978
- */
979
- /**
980
- * Options for annotation's shapes. Each shape inherits options
981
- * from the shapeOptions object. An option from the shapeOptions
982
- * can be overwritten by config for a specific shape.
983
- *
984
- * @requires modules/annotations
985
- */
986
- shapeOptions: {
987
- /**
988
- *
989
- * The radius of the shape in y direction.
990
- * Used for the ellipse.
991
- *
992
- * @sample highcharts/annotations/ellipse/
993
- * Ellipse annotation
994
- *
995
- * @type {number}
996
- * @apioption annotations.shapeOptions.ry
997
- **/
998
- /**
999
- *
1000
- * The xAxis index to which the points should be attached.
1001
- * Used for the ellipse.
1002
- *
1003
- * @type {number}
1004
- * @apioption annotations.shapeOptions.xAxis
1005
- **/
1006
- /**
1007
- * The yAxis index to which the points should be attached.
1008
- * Used for the ellipse.
1009
- *
1010
- * @type {number}
1011
- * @apioption annotations.shapeOptions.yAxis
1012
- **/
1013
- /**
1014
- * The width of the shape.
1015
- *
1016
- * @sample highcharts/annotations/shape/
1017
- * Basic shape annotation
1018
- *
1019
- * @type {number}
1020
- * @apioption annotations.shapeOptions.width
1021
- **/
1022
- /**
1023
- * The height of the shape.
1024
- *
1025
- * @sample highcharts/annotations/shape/
1026
- * Basic shape annotation
1027
- *
1028
- * @type {number}
1029
- * @apioption annotations.shapeOptions.height
1030
- */
1031
- /**
1032
- * The type of the shape.
1033
- * Avaliable options are circle, rect and ellipse.
1034
- *
1035
- * @sample highcharts/annotations/shape/
1036
- * Basic shape annotation
1037
- *
1038
- * @sample highcharts/annotations/ellipse/
1039
- * Ellipse annotation
1040
- *
1041
- * @type {string}
1042
- * @default rect
1043
- * @apioption annotations.shapeOptions.type
1044
- */
1045
- /**
1046
- * The URL for an image to use as the annotation shape.
1047
- * Note, type has to be set to `'image'`.
1048
- *
1049
- * @see [annotations.shapeOptions.type](annotations.shapeOptions.type)
1050
- * @sample highcharts/annotations/shape-src/
1051
- * Define a marker image url for annotations
1052
- *
1053
- * @type {string}
1054
- * @apioption annotations.shapeOptions.src
1055
- */
1056
- /**
1057
- * Name of the dash style to use for the shape's stroke.
1058
- *
1059
- * @sample {highcharts} highcharts/plotoptions/series-dashstyle-all/
1060
- * Possible values demonstrated
1061
- *
1062
- * @type {Highcharts.DashStyleValue}
1063
- * @apioption annotations.shapeOptions.dashStyle
1064
- */
1065
- /**
1066
- * The color of the shape's stroke.
1067
- *
1068
- * @sample highcharts/annotations/shape/
1069
- * Basic shape annotation
1070
- *
1071
- * @type {Highcharts.ColorString}
1072
- */
1073
- stroke: 'rgba(0, 0, 0, 0.75)',
1074
- /**
1075
- * The pixel stroke width of the shape.
1076
- *
1077
- * @sample highcharts/annotations/shape/
1078
- * Basic shape annotation
1079
- */
1080
- strokeWidth: 1,
1081
- /**
1082
- * The color of the shape's fill.
1083
- *
1084
- * @sample highcharts/annotations/shape/
1085
- * Basic shape annotation
1086
- *
1087
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
1088
- */
1089
- fill: 'rgba(0, 0, 0, 0.75)',
1090
- /**
1091
- * The radius of the shape.
1092
- *
1093
- * @sample highcharts/annotations/shape/
1094
- * Basic shape annotation
1095
- */
1096
- r: 0,
1097
- /**
1098
- * Defines additional snapping area around an annotation
1099
- * making this annotation to focus. Defined in pixels.
1100
- */
1101
- snap: 2
1102
- },
1103
- /**
1104
- * Options for annotation's control points. Each control point
1105
- * inherits options from controlPointOptions object.
1106
- * Options from the controlPointOptions can be overwritten
1107
- * by options in a specific control point.
1108
- *
1109
- * @declare Highcharts.AnnotationControlPointOptionsObject
1110
- * @requires modules/annotations
1111
- * @apioption annotations.controlPointOptions
1112
- */
1113
- controlPointOptions: {
1114
- /**
1115
- * @type {Highcharts.AnnotationControlPointPositionerFunction}
1116
- * @apioption annotations.controlPointOptions.positioner
1117
- */
1118
- symbol: 'circle',
1119
- width: 10,
1120
- height: 10,
1121
- style: {
1122
- cursor: 'pointer',
1123
- fill: "#ffffff" /* Palette.backgroundColor */,
1124
- stroke: "#000000" /* Palette.neutralColor100 */,
1125
- 'stroke-width': 2
1126
- },
1127
- visible: false,
1128
- events: {}
1129
- },
1130
- /**
1131
- * Event callback when annotation is added to the chart.
1132
- *
1133
- * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
1134
- * @since 7.1.0
1135
- * @apioption annotations.events.add
1136
- */
1137
- /**
1138
- * Event callback when annotation is updated (e.g. drag and
1139
- * droppped or resized by control points).
1140
- *
1141
- * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
1142
- * @since 7.1.0
1143
- * @apioption annotations.events.afterUpdate
1144
- */
1145
- /**
1146
- * Fires when the annotation is clicked.
1147
- *
1148
- * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
1149
- * @since 7.1.0
1150
- * @apioption annotations.events.click
1151
- */
1152
- /**
1153
- * Event callback when annotation is removed from the chart.
1154
- *
1155
- * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
1156
- * @since 7.1.0
1157
- * @apioption annotations.events.remove
1158
- */
1159
- /**
1160
- * Events available in annotations.
1161
- *
1162
- * @requires modules/annotations
1163
- */
1164
- events: {},
1165
- /**
1166
- * The Z index of the annotation.
1167
- */
1168
- zIndex: 6
1169
- }
597
+ defaultOptions: AnnotationDefaults
1170
598
  }));
1171
- H.extendAnnotation = function (Constructor, BaseConstructor, prototype, defaultOptions) {
1172
- BaseConstructor = BaseConstructor || Annotation;
1173
- extend(Constructor.prototype, merge(BaseConstructor.prototype, prototype));
1174
- Constructor.prototype.defaultOptions = merge(Constructor.prototype.defaultOptions, defaultOptions || {});
1175
- };
1176
- /* *********************************************************************
1177
- *
1178
- * EXTENDING CHART PROTOTYPE
1179
- *
1180
- ******************************************************************** */
1181
- extend(chartProto, /** @lends Highcharts.Chart# */ {
1182
- initAnnotation: function (userOptions) {
1183
- var Constructor = Annotation
1184
- .types[userOptions.type] || Annotation, annotation = new Constructor(this, userOptions);
1185
- this.annotations.push(annotation);
1186
- return annotation;
1187
- },
1188
- /**
1189
- * Add an annotation to the chart after render time.
1190
- *
1191
- * @param {Highcharts.AnnotationsOptions} options
1192
- * The annotation options for the new, detailed annotation.
1193
- * @param {boolean} [redraw]
1194
- * @sample highcharts/annotations/add-annotation/
1195
- * Add annotation
1196
- * @return {Highcharts.Annotation} - The newly generated annotation.
1197
- */
1198
- addAnnotation: function (userOptions, redraw) {
1199
- var annotation = this.initAnnotation(userOptions);
1200
- this.options.annotations.push(annotation.options);
1201
- if (pick(redraw, true)) {
1202
- annotation.redraw();
1203
- annotation.graphic.attr({
1204
- opacity: 1
1205
- });
1206
- }
1207
- return annotation;
1208
- },
1209
- /**
1210
- * Remove an annotation from the chart.
1211
- *
1212
- * @param {number|string|Highcharts.Annotation} idOrAnnotation
1213
- * The annotation's id or direct annotation object.
1214
- */
1215
- removeAnnotation: function (idOrAnnotation) {
1216
- var annotations = this.annotations, annotation = (idOrAnnotation.coll === 'annotations') ?
1217
- idOrAnnotation :
1218
- find(annotations, function (annotation) {
1219
- return annotation.options.id === idOrAnnotation;
1220
- });
1221
- if (annotation) {
1222
- fireEvent(annotation, 'remove');
1223
- erase(this.options.annotations, annotation.options);
1224
- erase(annotations, annotation);
1225
- annotation.destroy();
1226
- }
1227
- },
1228
- drawAnnotations: function () {
1229
- this.plotBoxClip.attr(this.plotBox);
1230
- this.annotations.forEach(function (annotation) {
1231
- annotation.redraw();
1232
- annotation.graphic.animate({
1233
- opacity: 1
1234
- }, annotation.animationConfig);
1235
- });
1236
- }
1237
- });
1238
- // Let chart.update() update annotations
1239
- chartProto.collectionsWithUpdate.push('annotations');
1240
- // Let chart.update() create annoations on demand
1241
- chartProto.collectionsWithInit.annotations = [chartProto.addAnnotation];
1242
- // Create lookups initially
1243
- addEvent(Chart, 'afterInit', function () {
1244
- this.annotations = [];
1245
- if (!this.options.annotations) {
1246
- this.options.annotations = [];
1247
- }
1248
- });
1249
- chartProto.callbacks.push(function (chart) {
1250
- chart.plotBoxClip = this.renderer.clipRect(this.plotBox);
1251
- chart.controlPointsGroup = chart.renderer
1252
- .g('control-points')
1253
- .attr({ zIndex: 99 })
1254
- .clip(chart.plotBoxClip)
1255
- .add();
1256
- chart.options.annotations.forEach(function (annotationOptions, i) {
1257
- if (
1258
- // Verify that it has not been previously added in a responsive rule
1259
- !chart.annotations.some(function (annotation) {
1260
- return annotation.options === annotationOptions;
1261
- })) {
1262
- var annotation = chart.initAnnotation(annotationOptions);
1263
- chart.options.annotations[i] = annotation.options;
1264
- }
1265
- });
1266
- chart.drawAnnotations();
1267
- addEvent(chart, 'redraw', chart.drawAnnotations);
1268
- addEvent(chart, 'destroy', function () {
1269
- chart.plotBoxClip.destroy();
1270
- chart.controlPointsGroup.destroy();
1271
- });
1272
- addEvent(chart, 'exportData', function (event) {
1273
- var annotations = chart.annotations, csvColumnHeaderFormatter = ((this.options.exporting &&
1274
- this.options.exporting.csv) ||
1275
- {}).columnHeaderFormatter,
1276
- // If second row doesn't have xValues
1277
- // then it is a title row thus multiple level header is in use.
1278
- multiLevelHeaders = !event.dataRows[1].xValues, annotationHeader = (chart.options.lang &&
1279
- chart.options.lang.exportData &&
1280
- chart.options.lang.exportData.annotationHeader), columnHeaderFormatter = function (index) {
1281
- var s;
1282
- if (csvColumnHeaderFormatter) {
1283
- s = csvColumnHeaderFormatter(index);
1284
- if (s !== false) {
1285
- return s;
1286
- }
1287
- }
1288
- s = annotationHeader + ' ' + index;
1289
- if (multiLevelHeaders) {
1290
- return {
1291
- columnTitle: s,
1292
- topLevelColumnTitle: s
1293
- };
1294
- }
1295
- return s;
1296
- }, startRowLength = event.dataRows[0].length, annotationSeparator = (chart.options.exporting &&
1297
- chart.options.exporting.csv &&
1298
- chart.options.exporting.csv.annotations &&
1299
- chart.options.exporting.csv.annotations.itemDelimiter), joinAnnotations = (chart.options.exporting &&
1300
- chart.options.exporting.csv &&
1301
- chart.options.exporting.csv.annotations &&
1302
- chart.options.exporting.csv.annotations.join);
1303
- annotations.forEach(function (annotation) {
1304
- if (annotation.options.labelOptions &&
1305
- annotation.options.labelOptions.includeInDataExport) {
1306
- annotation.labels.forEach(function (label) {
1307
- if (label.options.text) {
1308
- var annotationText_1 = label.options.text;
1309
- label.points.forEach(function (points) {
1310
- var annotationX = points.x, xAxisIndex = points.series.xAxis ?
1311
- points.series.xAxis.options.index :
1312
- -1;
1313
- var wasAdded = false;
1314
- // Annotation not connected to any xAxis -
1315
- // add new row.
1316
- if (xAxisIndex === -1) {
1317
- var n = event.dataRows[0].length, newRow = new Array(n);
1318
- for (var i = 0; i < n; ++i) {
1319
- newRow[i] = '';
1320
- }
1321
- newRow.push(annotationText_1);
1322
- newRow.xValues = [];
1323
- newRow.xValues[xAxisIndex] = annotationX;
1324
- event.dataRows.push(newRow);
1325
- wasAdded = true;
1326
- }
1327
- // Annotation placed on a exported data point
1328
- // - add new column
1329
- if (!wasAdded) {
1330
- event.dataRows.forEach(function (row) {
1331
- if (!wasAdded &&
1332
- row.xValues &&
1333
- xAxisIndex !== void 0 &&
1334
- annotationX === row.xValues[xAxisIndex]) {
1335
- if (joinAnnotations &&
1336
- row.length > startRowLength) {
1337
- row[row.length - 1] += (annotationSeparator +
1338
- annotationText_1);
1339
- }
1340
- else {
1341
- row.push(annotationText_1);
1342
- }
1343
- wasAdded = true;
1344
- }
1345
- });
1346
- }
1347
- // Annotation not placed on any exported data point,
1348
- // but connected to the xAxis - add new row
1349
- if (!wasAdded) {
1350
- var n = event.dataRows[0].length, newRow = new Array(n);
1351
- for (var i = 0; i < n; ++i) {
1352
- newRow[i] = '';
1353
- }
1354
- newRow[0] = annotationX;
1355
- newRow.push(annotationText_1);
1356
- newRow.xValues = [];
1357
- if (xAxisIndex !== void 0) {
1358
- newRow.xValues[xAxisIndex] = annotationX;
1359
- }
1360
- event.dataRows.push(newRow);
1361
- }
1362
- });
1363
- }
1364
- });
1365
- }
1366
- });
1367
- var maxRowLen = 0;
1368
- event.dataRows.forEach(function (row) {
1369
- maxRowLen = Math.max(maxRowLen, row.length);
1370
- });
1371
- var newRows = maxRowLen - event.dataRows[0].length;
1372
- for (var i = 0; i < newRows; i++) {
1373
- var header = columnHeaderFormatter(i + 1);
1374
- if (multiLevelHeaders) {
1375
- event.dataRows[0].push(header.topLevelColumnTitle);
1376
- event.dataRows[1].push(header.columnTitle);
1377
- }
1378
- else {
1379
- event.dataRows[0].push(header);
1380
- }
1381
- }
1382
- });
1383
- });
1384
- wrap(Pointer.prototype, 'onContainerMouseDown', function (proceed) {
1385
- if (!this.chart.hasDraggedAnnotation) {
1386
- proceed.apply(this, Array.prototype.slice.call(arguments, 1));
1387
- }
1388
- });
1389
- H.Annotation = Annotation;
1390
599
  /* *
1391
600
  *
1392
601
  * Default Export
@@ -1399,55 +608,37 @@ export default Annotation;
1399
608
  *
1400
609
  * */
1401
610
  /**
1402
- * Object of shape point.
1403
- *
1404
- * @interface Highcharts.AnnotationMockPointOptionsObject
1405
- *
1406
- */
1407
- /**
1408
- * The x position of the point. Units can be either in axis
1409
- * or chart pixel coordinates.
1410
- *
1411
- * @type {number}
1412
- * @name Highcharts.AnnotationMockPointOptionsObject.x
1413
- */
1414
- /**
1415
- * The y position of the point. Units can be either in axis
1416
- * or chart pixel coordinates.
611
+ * Possible directions for draggable annotations. An empty string (`''`)
612
+ * makes the annotation undraggable.
1417
613
  *
1418
- * @type {number}
1419
- * @name Highcharts.AnnotationMockPointOptionsObject.y
614
+ * @typedef {''|'x'|'xy'|'y'} Highcharts.AnnotationDraggableValue
615
+ * @requires modules/annotations
1420
616
  */
1421
617
  /**
1422
- * This number defines which xAxis the point is connected to.
1423
- * It refers to either the axis id or the index of the axis in
1424
- * the xAxis array. If the option is not configured or the axis
1425
- * is not found the point's x coordinate refers to the chart
1426
- * pixels.
1427
- *
1428
- * @type {number|string|null}
1429
- * @name Highcharts.AnnotationMockPointOptionsObject.xAxis
618
+ * @private
619
+ * @typedef {
620
+ * Highcharts.AnnotationControllableCircle|
621
+ * Highcharts.AnnotationControllableImage|
622
+ * Highcharts.AnnotationControllablePath|
623
+ * Highcharts.AnnotationControllableRect
624
+ * } Highcharts.AnnotationShapeType
625
+ * @requires modules/annotations
1430
626
  */
1431
627
  /**
1432
- * This number defines which yAxis the point is connected to.
1433
- * It refers to either the axis id or the index of the axis in
1434
- * the yAxis array. If the option is not configured or the axis
1435
- * is not found the point's y coordinate refers to the chart
1436
- * pixels.
1437
- *
1438
- * @type {number|string|null}
1439
- * @name Highcharts.AnnotationMockPointOptionsObject.yAxis
628
+ * @private
629
+ * @typedef {
630
+ * Highcharts.AnnotationControllableLabel
631
+ * } Highcharts.AnnotationLabelType
632
+ * @requires modules/annotations
1440
633
  */
1441
634
  /**
1442
- * Callback function that returns the annotation shape point.
1443
- *
1444
- * @callback Highcharts.AnnotationMockPointFunction
1445
- *
1446
- * @param {Highcharts.Annotation} annotation
1447
- * An annotation instance.
1448
- *
1449
- * @return {Highcharts.AnnotationMockPointOptionsObject}
1450
- * Annotations shape point.
635
+ * A point-like object, a mock point or a point used in series.
636
+ * @private
637
+ * @typedef {
638
+ * Highcharts.AnnotationMockPoint|
639
+ * Highcharts.Point
640
+ * } Highcharts.AnnotationPointType
641
+ * @requires modules/annotations
1451
642
  */
1452
643
  /**
1453
644
  * Shape point as string, object or function.
@@ -1456,6 +647,6 @@ export default Annotation;
1456
647
  * string|
1457
648
  * Highcharts.AnnotationMockPointOptionsObject|
1458
649
  * Highcharts.AnnotationMockPointFunction
1459
- * }Highcharts.AnnotationShapePointOptions
650
+ * } Highcharts.AnnotationShapePointOptions
1460
651
  */
1461
- ''; // required by JSDoc parsing
652
+ (''); // keeps doclets above in JS file