highcharts 7.1.1 → 7.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +3 -3
  3. package/css/annotations/popup.scss +1 -1
  4. package/css/stocktools/gui.css +5 -5
  5. package/css/stocktools/gui.scss +1 -1
  6. package/es-modules/annotations/ControlPoint.js +1 -1
  7. package/es-modules/annotations/MockPoint.js +45 -12
  8. package/es-modules/annotations/annotations.src.js +203 -166
  9. package/es-modules/annotations/controllable/ControllableCircle.js +2 -10
  10. package/es-modules/annotations/controllable/ControllableImage.js +2 -10
  11. package/es-modules/annotations/controllable/ControllableLabel.js +54 -9
  12. package/es-modules/annotations/controllable/ControllableRect.js +2 -10
  13. package/es-modules/annotations/controllable/controllableMixin.js +32 -4
  14. package/es-modules/annotations/controllable/markerMixin.js +1 -0
  15. package/es-modules/annotations/eventEmitterMixin.js +1 -0
  16. package/es-modules/annotations/navigationBindings.js +15 -11
  17. package/es-modules/annotations/popup.js +59 -81
  18. package/es-modules/annotations/types/CrookedLine.js +19 -7
  19. package/es-modules/annotations/types/ElliottWave.js +7 -6
  20. package/es-modules/annotations/types/Fibonacci.js +14 -14
  21. package/es-modules/annotations/types/InfinityLine.js +4 -4
  22. package/es-modules/annotations/types/Measure.js +41 -41
  23. package/es-modules/annotations/types/Pitchfork.js +5 -4
  24. package/es-modules/annotations/types/VerticalLine.js +6 -5
  25. package/es-modules/error-messages.js +6 -1
  26. package/es-modules/indicators/indicators.src.js +5 -3
  27. package/es-modules/mixins/nodes.js +16 -8
  28. package/es-modules/modules/accessibility/AccessibilityComponent.js +4 -4
  29. package/es-modules/modules/accessibility/KeyboardNavigation.js +17 -4
  30. package/es-modules/modules/accessibility/components/RangeSelectorComponent.js +3 -2
  31. package/es-modules/modules/accessibility/components/SeriesComponent.js +110 -2
  32. package/es-modules/modules/accessibility/components/ZoomComponent.js +1 -1
  33. package/es-modules/modules/accessibility/options.js +2 -1
  34. package/es-modules/modules/bellcurve.src.js +27 -29
  35. package/es-modules/modules/boost/boost-init.js +14 -0
  36. package/es-modules/modules/boost/boost-overrides.js +13 -3
  37. package/es-modules/modules/boost/wgl-renderer.js +30 -15
  38. package/es-modules/modules/boost/wgl-shader.js +33 -16
  39. package/es-modules/modules/boost/wgl-vbuffer.js +8 -4
  40. package/es-modules/modules/broken-axis.src.js +1 -1
  41. package/es-modules/modules/bullet.src.js +68 -68
  42. package/es-modules/modules/cylinder.src.js +3 -1
  43. package/es-modules/modules/data.src.js +9 -5
  44. package/es-modules/modules/draggable-points.src.js +1 -1
  45. package/es-modules/modules/drilldown.src.js +1 -1
  46. package/es-modules/modules/export-data.src.js +7 -8
  47. package/es-modules/modules/exporting.src.js +9 -1
  48. package/es-modules/modules/full-screen.src.js +1 -1
  49. package/es-modules/modules/funnel3d.src.js +10 -3
  50. package/es-modules/modules/histogram.src.js +162 -164
  51. package/es-modules/modules/item-series.src.js +10 -10
  52. package/es-modules/modules/networkgraph/layouts.js +16 -12
  53. package/es-modules/modules/networkgraph/networkgraph.src.js +147 -51
  54. package/es-modules/modules/offline-exporting.src.js +15 -2
  55. package/es-modules/modules/oldie-polyfills.src.js +1 -1
  56. package/es-modules/modules/organization.src.js +65 -20
  57. package/es-modules/modules/pareto.src.js +52 -51
  58. package/es-modules/modules/pattern-fill.src.js +1 -1
  59. package/es-modules/modules/price-indicator.src.js +1 -1
  60. package/es-modules/modules/pyramid3d.src.js +1 -1
  61. package/es-modules/modules/sankey.src.js +22 -10
  62. package/es-modules/modules/series-label.src.js +16 -8
  63. package/es-modules/modules/solid-gauge.src.js +128 -79
  64. package/es-modules/modules/static-scale.src.js +8 -1
  65. package/es-modules/modules/stock-tools-gui.js +1 -1
  66. package/es-modules/modules/streamgraph.src.js +11 -11
  67. package/es-modules/modules/sunburst.src.js +23 -2
  68. package/es-modules/modules/tilemap.src.js +58 -57
  69. package/es-modules/modules/timeline.src.js +17 -12
  70. package/es-modules/modules/treemap.src.js +6 -6
  71. package/es-modules/modules/variwide.src.js +39 -39
  72. package/es-modules/modules/vector.src.js +108 -107
  73. package/es-modules/modules/venn.src.js +4 -2
  74. package/es-modules/modules/windbarb.src.js +43 -43
  75. package/es-modules/modules/wordcloud.src.js +1 -0
  76. package/es-modules/modules/xrange.src.js +112 -104
  77. package/es-modules/parts/AreaSeries.js +4 -1
  78. package/es-modules/parts/Axis.js +809 -1870
  79. package/es-modules/parts/Chart.js +254 -743
  80. package/es-modules/parts/Color.js +160 -113
  81. package/es-modules/parts/ColumnSeries.js +9 -3
  82. package/es-modules/parts/DataLabels.js +31 -2
  83. package/es-modules/parts/Dynamics.js +73 -26
  84. package/es-modules/parts/FlagsSeries.js +6 -4
  85. package/es-modules/parts/Globals.js +20 -36
  86. package/es-modules/parts/Html.js +116 -235
  87. package/es-modules/parts/Interaction.js +17 -7
  88. package/es-modules/parts/Legend.js +277 -632
  89. package/es-modules/parts/MSPointer.js +62 -106
  90. package/es-modules/parts/Options.js +128 -367
  91. package/es-modules/parts/OrdinalAxis.js +12 -0
  92. package/es-modules/parts/PieSeries.js +61 -44
  93. package/es-modules/parts/PlotLineOrBand.js +38 -3
  94. package/es-modules/parts/Point.js +117 -227
  95. package/es-modules/parts/Pointer.js +273 -558
  96. package/es-modules/parts/RangeSelector.js +5 -3
  97. package/es-modules/parts/Responsive.js +8 -4
  98. package/es-modules/parts/ScrollablePlotArea.js +215 -81
  99. package/es-modules/parts/Scrollbar.js +38 -23
  100. package/es-modules/parts/Series.js +151 -47
  101. package/es-modules/parts/Stacking.js +8 -3
  102. package/es-modules/parts/StockChart.js +42 -29
  103. package/es-modules/parts/SvgRenderer.js +1080 -2100
  104. package/es-modules/parts/Tick.js +11 -4
  105. package/es-modules/parts/Time.js +179 -363
  106. package/es-modules/parts/Tooltip.js +23 -12
  107. package/es-modules/parts/TouchPointer.js +69 -187
  108. package/es-modules/parts/Utilities.js +593 -846
  109. package/es-modules/parts-3d/Axis.js +2 -2
  110. package/es-modules/parts-3d/Column.js +18 -8
  111. package/es-modules/parts-gantt/GanttSeries.js +17 -21
  112. package/es-modules/parts-gantt/GridAxis.js +183 -101
  113. package/es-modules/parts-gantt/PathfinderAlgorithms.js +2 -2
  114. package/es-modules/parts-gantt/TreeGrid.js +53 -36
  115. package/es-modules/parts-map/ColorAxis.js +35 -14
  116. package/es-modules/parts-map/MapBubbleSeries.js +2 -1
  117. package/es-modules/parts-map/MapSeries.js +29 -18
  118. package/es-modules/parts-more/AreaRangeSeries.js +13 -12
  119. package/es-modules/parts-more/ColumnRangeSeries.js +8 -2
  120. package/es-modules/parts-more/GaugeSeries.js +9 -9
  121. package/es-modules/parts-more/PackedBubbleSeries.js +152 -115
  122. package/es-modules/parts-more/RadialAxis.js +102 -8
  123. package/es-modules/parts-more/WaterfallSeries.js +148 -35
  124. package/highcharts-3d.js +68 -67
  125. package/highcharts-3d.js.map +1 -1
  126. package/highcharts-3d.src.js +21 -11
  127. package/highcharts-gantt.d.ts +5 -3
  128. package/highcharts-gantt.js +618 -610
  129. package/highcharts-gantt.js.map +1 -1
  130. package/highcharts-gantt.src.d.ts +5 -3
  131. package/highcharts-gantt.src.js +5185 -8892
  132. package/highcharts-more.js +144 -140
  133. package/highcharts-more.js.map +1 -1
  134. package/highcharts-more.src.js +449 -194
  135. package/highcharts.d.ts +3943 -5236
  136. package/highcharts.js +454 -449
  137. package/highcharts.js.map +1 -1
  138. package/highcharts.src.d.ts +3943 -5236
  139. package/highcharts.src.js +4767 -8601
  140. package/highmaps.d.ts +5 -3
  141. package/highmaps.js +498 -494
  142. package/highmaps.js.map +1 -1
  143. package/highmaps.src.d.ts +5 -3
  144. package/highmaps.src.js +4547 -8507
  145. package/highstock.d.ts +5 -3
  146. package/highstock.js +597 -590
  147. package/highstock.js.map +1 -1
  148. package/highstock.src.d.ts +5 -3
  149. package/highstock.src.js +4871 -8661
  150. package/indicators/acceleration-bands.js +1 -1
  151. package/indicators/acceleration-bands.src.js +1 -1
  152. package/indicators/accumulation-distribution.js +1 -1
  153. package/indicators/accumulation-distribution.src.js +1 -1
  154. package/indicators/ao.js +1 -1
  155. package/indicators/ao.src.js +1 -1
  156. package/indicators/apo.js +1 -1
  157. package/indicators/apo.src.js +1 -1
  158. package/indicators/aroon-oscillator.js +1 -1
  159. package/indicators/aroon-oscillator.src.js +1 -1
  160. package/indicators/aroon.js +1 -1
  161. package/indicators/aroon.src.js +1 -1
  162. package/indicators/atr.js +1 -1
  163. package/indicators/atr.src.js +1 -1
  164. package/indicators/bollinger-bands.js +1 -1
  165. package/indicators/bollinger-bands.src.js +1 -1
  166. package/indicators/cci.js +1 -1
  167. package/indicators/cci.src.js +1 -1
  168. package/indicators/chaikin.js +1 -1
  169. package/indicators/chaikin.src.js +1 -1
  170. package/indicators/cmf.js +1 -1
  171. package/indicators/cmf.src.js +1 -1
  172. package/indicators/dema.js +1 -1
  173. package/indicators/dema.src.js +1 -1
  174. package/indicators/dpo.js +1 -1
  175. package/indicators/dpo.src.js +1 -1
  176. package/indicators/ema.js +1 -1
  177. package/indicators/ema.src.js +1 -1
  178. package/indicators/ichimoku-kinko-hyo.js +1 -1
  179. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  180. package/indicators/indicators-all.js +105 -105
  181. package/indicators/indicators-all.js.map +1 -1
  182. package/indicators/indicators-all.src.js +6 -4
  183. package/indicators/indicators.js +9 -9
  184. package/indicators/indicators.js.map +1 -1
  185. package/indicators/indicators.src.js +6 -4
  186. package/indicators/keltner-channels.js +1 -1
  187. package/indicators/keltner-channels.src.js +1 -1
  188. package/indicators/macd.js +1 -1
  189. package/indicators/macd.src.js +1 -1
  190. package/indicators/mfi.js +1 -1
  191. package/indicators/mfi.src.js +1 -1
  192. package/indicators/momentum.js +1 -1
  193. package/indicators/momentum.src.js +1 -1
  194. package/indicators/natr.js +1 -1
  195. package/indicators/natr.src.js +1 -1
  196. package/indicators/pivot-points.js +1 -1
  197. package/indicators/pivot-points.src.js +1 -1
  198. package/indicators/ppo.js +1 -1
  199. package/indicators/ppo.src.js +1 -1
  200. package/indicators/price-channel.js +1 -1
  201. package/indicators/price-channel.src.js +1 -1
  202. package/indicators/price-envelopes.js +1 -1
  203. package/indicators/price-envelopes.src.js +1 -1
  204. package/indicators/psar.js +1 -1
  205. package/indicators/psar.src.js +1 -1
  206. package/indicators/regressions.js +1 -1
  207. package/indicators/regressions.src.js +1 -1
  208. package/indicators/roc.js +1 -1
  209. package/indicators/roc.src.js +1 -1
  210. package/indicators/rsi.js +1 -1
  211. package/indicators/rsi.src.js +1 -1
  212. package/indicators/stochastic.js +1 -1
  213. package/indicators/stochastic.src.js +1 -1
  214. package/indicators/supertrend.js +1 -1
  215. package/indicators/supertrend.src.js +1 -1
  216. package/indicators/tema.js +1 -1
  217. package/indicators/tema.src.js +1 -1
  218. package/indicators/trix.js +1 -1
  219. package/indicators/trix.src.js +1 -1
  220. package/indicators/volume-by-price.js +1 -1
  221. package/indicators/volume-by-price.src.js +1 -1
  222. package/indicators/vwap.js +1 -1
  223. package/indicators/vwap.src.js +1 -1
  224. package/indicators/williams-r.js +1 -1
  225. package/indicators/williams-r.src.js +1 -1
  226. package/indicators/wma.js +1 -1
  227. package/indicators/wma.src.js +1 -1
  228. package/indicators/zigzag.js +1 -1
  229. package/indicators/zigzag.src.js +1 -1
  230. package/modules/accessibility.js +92 -89
  231. package/modules/accessibility.js.map +1 -1
  232. package/modules/accessibility.src.js +138 -15
  233. package/modules/annotations-advanced.js +128 -127
  234. package/modules/annotations-advanced.js.map +1 -1
  235. package/modules/annotations-advanced.src.js +514 -396
  236. package/modules/annotations.d.ts +36 -0
  237. package/modules/annotations.js +81 -81
  238. package/modules/annotations.js.map +1 -1
  239. package/modules/annotations.src.d.ts +36 -0
  240. package/modules/annotations.src.js +418 -315
  241. package/modules/arrow-symbols.js +1 -1
  242. package/modules/arrow-symbols.src.js +1 -1
  243. package/modules/boost-canvas.js +1 -1
  244. package/modules/boost-canvas.src.js +1 -1
  245. package/modules/boost.js +63 -63
  246. package/modules/boost.js.map +1 -1
  247. package/modules/boost.src.js +99 -39
  248. package/modules/broken-axis.js +1 -1
  249. package/modules/broken-axis.src.js +2 -2
  250. package/modules/bullet.js +1 -1
  251. package/modules/bullet.src.js +69 -69
  252. package/modules/current-date-indicator.js +1 -1
  253. package/modules/current-date-indicator.src.js +1 -1
  254. package/modules/cylinder.js +1 -1
  255. package/modules/cylinder.js.map +1 -1
  256. package/modules/cylinder.src.js +4 -2
  257. package/modules/data.js +4 -4
  258. package/modules/data.js.map +1 -1
  259. package/modules/data.src.js +10 -6
  260. package/modules/datagrouping.js +1 -1
  261. package/modules/datagrouping.src.js +1 -1
  262. package/modules/debugger.js +4 -4
  263. package/modules/debugger.js.map +1 -1
  264. package/modules/debugger.src.js +7 -2
  265. package/modules/dependency-wheel.js +1 -1
  266. package/modules/dependency-wheel.src.js +1 -1
  267. package/modules/dotplot.js +1 -1
  268. package/modules/dotplot.src.js +1 -1
  269. package/modules/drag-panes.js +1 -1
  270. package/modules/drag-panes.src.js +1 -1
  271. package/modules/draggable-points.js +1 -1
  272. package/modules/draggable-points.src.js +2 -2
  273. package/modules/drilldown.js +1 -1
  274. package/modules/drilldown.src.js +2 -2
  275. package/modules/export-data.js +2 -2
  276. package/modules/export-data.js.map +1 -1
  277. package/modules/export-data.src.js +8 -9
  278. package/modules/exporting.js +25 -25
  279. package/modules/exporting.js.map +1 -1
  280. package/modules/exporting.src.js +11 -3
  281. package/modules/full-screen.js +1 -1
  282. package/modules/full-screen.src.js +2 -2
  283. package/modules/funnel.js +1 -1
  284. package/modules/funnel.src.js +1 -1
  285. package/modules/funnel3d.js +2 -2
  286. package/modules/funnel3d.js.map +1 -1
  287. package/modules/funnel3d.src.js +11 -4
  288. package/modules/gantt.js +166 -164
  289. package/modules/gantt.js.map +1 -1
  290. package/modules/gantt.src.js +422 -295
  291. package/modules/grid-axis.js +18 -16
  292. package/modules/grid-axis.js.map +1 -1
  293. package/modules/grid-axis.src.js +184 -102
  294. package/modules/heatmap.js +22 -22
  295. package/modules/heatmap.js.map +1 -1
  296. package/modules/heatmap.src.js +36 -15
  297. package/modules/histogram-bellcurve.js +1 -1
  298. package/modules/histogram-bellcurve.js.map +1 -1
  299. package/modules/histogram-bellcurve.src.js +186 -183
  300. package/modules/item-series.js +1 -1
  301. package/modules/item-series.src.js +11 -11
  302. package/modules/map-parser.js +1 -1
  303. package/modules/map-parser.src.js +1 -1
  304. package/modules/map.js +83 -83
  305. package/modules/map.js.map +1 -1
  306. package/modules/map.src.js +67 -34
  307. package/modules/networkgraph.js +10 -9
  308. package/modules/networkgraph.js.map +1 -1
  309. package/modules/networkgraph.src.js +180 -72
  310. package/modules/no-data-to-display.js +1 -1
  311. package/modules/no-data-to-display.src.js +1 -1
  312. package/modules/offline-exporting.js +15 -15
  313. package/modules/offline-exporting.js.map +1 -1
  314. package/modules/offline-exporting.src.js +17 -4
  315. package/modules/oldie-polyfills.js +1 -1
  316. package/modules/oldie-polyfills.src.js +2 -2
  317. package/modules/oldie.js +2 -2
  318. package/modules/oldie.src.js +2 -2
  319. package/modules/organization.js +1 -1
  320. package/modules/organization.js.map +1 -1
  321. package/modules/organization.src.js +66 -21
  322. package/modules/overlapping-datalabels.js +1 -1
  323. package/modules/overlapping-datalabels.src.js +1 -1
  324. package/modules/parallel-coordinates.js +1 -1
  325. package/modules/parallel-coordinates.src.js +1 -1
  326. package/modules/pareto.js +1 -1
  327. package/modules/pareto.js.map +1 -1
  328. package/modules/pareto.src.js +53 -52
  329. package/modules/pathfinder.js +3 -3
  330. package/modules/pathfinder.js.map +1 -1
  331. package/modules/pathfinder.src.js +3 -3
  332. package/modules/pattern-fill.js +1 -1
  333. package/modules/pattern-fill.src.js +2 -2
  334. package/modules/price-indicator.js +1 -1
  335. package/modules/price-indicator.src.js +2 -2
  336. package/modules/pyramid3d.js +1 -1
  337. package/modules/pyramid3d.src.js +2 -2
  338. package/modules/sankey.js +14 -14
  339. package/modules/sankey.js.map +1 -1
  340. package/modules/sankey.src.js +39 -19
  341. package/modules/series-label.js +16 -16
  342. package/modules/series-label.js.map +1 -1
  343. package/modules/series-label.src.js +17 -9
  344. package/modules/solid-gauge.js +5 -5
  345. package/modules/solid-gauge.js.map +1 -1
  346. package/modules/solid-gauge.src.js +129 -80
  347. package/modules/sonification.js +1 -1
  348. package/modules/sonification.src.js +1 -1
  349. package/modules/static-scale.js +4 -4
  350. package/modules/static-scale.js.map +1 -1
  351. package/modules/static-scale.src.js +9 -2
  352. package/modules/stock-tools.js +2 -2
  353. package/modules/stock-tools.src.js +3 -3
  354. package/modules/stock.js +146 -145
  355. package/modules/stock.js.map +1 -1
  356. package/modules/stock.src.js +105 -61
  357. package/modules/streamgraph.js +1 -1
  358. package/modules/streamgraph.src.js +12 -12
  359. package/modules/sunburst.js +40 -40
  360. package/modules/sunburst.js.map +1 -1
  361. package/modules/sunburst.src.js +30 -9
  362. package/modules/tilemap.js +1 -1
  363. package/modules/tilemap.js.map +1 -1
  364. package/modules/tilemap.src.js +59 -58
  365. package/modules/timeline.js +12 -11
  366. package/modules/timeline.js.map +1 -1
  367. package/modules/timeline.src.js +18 -13
  368. package/modules/treegrid.js +45 -43
  369. package/modules/treegrid.js.map +1 -1
  370. package/modules/treegrid.src.js +238 -139
  371. package/modules/treemap.js +1 -1
  372. package/modules/treemap.src.js +7 -7
  373. package/modules/variable-pie.js +1 -1
  374. package/modules/variable-pie.src.js +1 -1
  375. package/modules/variwide.js +1 -1
  376. package/modules/variwide.src.js +40 -40
  377. package/modules/vector.js +1 -1
  378. package/modules/vector.js.map +1 -1
  379. package/modules/vector.src.js +109 -108
  380. package/modules/venn.js +23 -23
  381. package/modules/venn.js.map +1 -1
  382. package/modules/venn.src.js +5 -3
  383. package/modules/windbarb.js +1 -1
  384. package/modules/windbarb.src.js +44 -44
  385. package/modules/wordcloud.js +10 -10
  386. package/modules/wordcloud.js.map +1 -1
  387. package/modules/wordcloud.src.js +2 -1
  388. package/modules/xrange.js +12 -12
  389. package/modules/xrange.js.map +1 -1
  390. package/modules/xrange.src.js +113 -105
  391. package/package.json +1 -1
  392. package/themes/avocado.js +21 -37
  393. package/themes/avocado.src.js +1 -1
  394. package/themes/dark-blue.js +1 -1
  395. package/themes/dark-blue.src.js +1 -1
  396. package/themes/dark-green.js +1 -1
  397. package/themes/dark-green.src.js +1 -1
  398. package/themes/dark-unica.js +1 -1
  399. package/themes/dark-unica.src.js +1 -1
  400. package/themes/gray.js +1 -1
  401. package/themes/gray.src.js +1 -1
  402. package/themes/grid-light.js +1 -1
  403. package/themes/grid-light.src.js +1 -1
  404. package/themes/grid.js +1 -1
  405. package/themes/grid.src.js +1 -1
  406. package/themes/sand-signika.js +1 -1
  407. package/themes/sand-signika.src.js +1 -1
  408. package/themes/skies.js +1 -1
  409. package/themes/skies.src.js +1 -1
  410. package/themes/sunset.js +21 -37
  411. package/themes/sunset.src.js +1 -1
  412. package/.DS_Store +0 -0
  413. package/es-modules/.DS_Store +0 -0
  414. package/es-modules/modules/annotations-legacy.src.js +0 -1977
  415. package/js/.DS_Store +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v7.1.1 (2019-04-09)
2
+ * @license Highcharts JS v7.1.2 (2019-06-04)
3
3
  *
4
4
  * Annotations module
5
5
  *
@@ -39,6 +39,7 @@
39
39
  * The units of the distance are specific to a transformation,
40
40
  * e.g. for rotation they are radians, for scaling they are scale factors.
41
41
  *
42
+ * @private
42
43
  * @mixin
43
44
  * @memberOf Annotation
44
45
  */
@@ -326,7 +327,7 @@
326
327
  * a control point
327
328
  * @param {Annotation.ControlPoint.Options} options an options object
328
329
  * @param {number} [index]
329
- **/
330
+ */
330
331
  function ControlPoint(chart, target, options, index) {
331
332
  this.chart = chart;
332
333
  this.target = target;
@@ -452,19 +453,49 @@
452
453
  _registerModule(_modules, 'annotations/MockPoint.js', [_modules['parts/Globals.js']], function (H) {
453
454
 
454
455
  /**
455
- * A point-like object, a mock point or a point uses in series.
456
+ * A mock point label configuration.
456
457
  *
457
- * @typedef {Highcharts.Point | Annotation.MockPoint} Annotation.PointLike
458
+ * @interface Annotation.MockLabelOptionsObject
459
+ *//**
460
+ * X value translated to x axis scale
461
+ * @name Annotation.MockLabelOptionsObject#x
462
+ * @type {number|undefined}
463
+ *//**
464
+ * Y value translated to y axis scale
465
+ * @name Annotation.MockLabelOptionsObject#y
466
+ * @type {number|undefined}
467
+ *//**
468
+ * @name Annotation.MockLabelOptionsObject#point
469
+ * @type {Highcharts.Point}
458
470
  */
459
471
 
460
472
  /**
461
473
  * A mock point configuration.
462
474
  *
463
- * @typedef {Object} Annotation.MockPoint.Options
464
- * @property {number} x x value for the point in xAxis scale or pixels
465
- * @property {number} y y value for the point in yAxis scale or pixels
466
- * @property {string|number|Highcharts.Axis} [xAxis] xAxis instance, index or id
467
- * @property {string|number|Highcharts.Axis} [yAxis] yAxis instance, index or id
475
+ * @interface Highcharts.MockPointOptionsObject
476
+ *//**
477
+ * x value for the point in xAxis scale or pixels
478
+ * @name Highcharts.MockPointOptionsObject#x
479
+ * @type {number}
480
+ *//**
481
+ * y value for the point in yAxis scale or pixels
482
+ * @name Highcharts.MockPointOptionsObject#y
483
+ * @type {number}
484
+ *//**
485
+ * xAxis index or id
486
+ * @name Highcharts.MockPointOptionsObject#xAxis
487
+ * @type {Highcharts.Axis|number|string|undefined}
488
+ *//**
489
+ * yAxis index or id
490
+ * @name Highcharts.MockPointOptionsObject#yAxis
491
+ * @property {Highcharts.Axis|number|string|undefined}
492
+ */
493
+
494
+ /**
495
+ * A point-like object, a mock point or a point uses in series.
496
+ *
497
+ * @private
498
+ * @typedef {Highcharts.Point|Highcharts.MockPoint} Highcharts.PointLike
468
499
  */
469
500
 
470
501
  /**
@@ -472,12 +503,15 @@
472
503
  * It is created when there is a need of pointing to some chart's position
473
504
  * using axis values or pixel values
474
505
  *
506
+ * @private
475
507
  * @class
476
- * @memberOf Annotation
508
+ * @name Highcharts.MockPoint
477
509
  *
478
- * @param {Chart} chart a chart instance
479
- * @param {Controllable} [target] a controllable instance
480
- * @param {Annotation.MockPoint.Options} options an options object
510
+ * @param {Highcharts.Chart} chart
511
+ * The chart object
512
+ *
513
+ * @param {Highcharts.MockPointOptionsObject} options
514
+ * The options object
481
515
  */
482
516
  function MockPoint(chart, target, options) {
483
517
  /**
@@ -502,7 +536,7 @@
502
536
  /**
503
537
  * Options for the mock point.
504
538
  *
505
- * @type {Annotation.MockPoint.Options}
539
+ * @type {Highcharts.MockPointOptionsObject}
506
540
  */
507
541
  this.options = options;
508
542
 
@@ -870,6 +904,7 @@
870
904
  * It provides methods for handling points, control points
871
905
  * and points transformations.
872
906
  *
907
+ * @private
873
908
  * @mixin
874
909
  * @memberOf Annotation
875
910
  */
@@ -1003,10 +1038,13 @@
1003
1038
  /**
1004
1039
  * Map point's options to a point-like object.
1005
1040
  *
1006
- * @param {Annotation.MockPoint.Options} pointOptions point's options
1007
- * @param {Annotation.PointLike} point a point like instance
1008
- * @return {Annotation.PointLike|null} if the point is
1009
- * found/set returns this point, otherwise null
1041
+ * @param {Highcharts.MockPointOptionsObject} pointOptions
1042
+ * point's options
1043
+ * @param {Highcharts.PointLike} point
1044
+ * a point like instance
1045
+ *
1046
+ * @return {Highcharts.PointLike|null}
1047
+ * if the point is found/set returns this point, otherwise null
1010
1048
  */
1011
1049
  point: function (pointOptions, point) {
1012
1050
  if (pointOptions && pointOptions.series) {
@@ -1192,6 +1230,30 @@
1192
1230
  this.transformPoint('translate', null, null, dx, dy, i);
1193
1231
  },
1194
1232
 
1233
+ /**
1234
+ * Translate shape within controllable item.
1235
+ * Replaces `controllable.translate` method.
1236
+ *
1237
+ * @param {number} dx translation for x coordinate
1238
+ * @param {number} dy translation for y coordinate
1239
+ */
1240
+ translateShape: function (dx, dy) {
1241
+ var chart = this.annotation.chart,
1242
+ // Annotation.options
1243
+ shapeOptions = this.annotation.userOptions,
1244
+ // Chart.options.annotations
1245
+ annotationIndex = chart.annotations.indexOf(this.annotation),
1246
+ chartOptions = chart.options.annotations[annotationIndex];
1247
+
1248
+ this.translatePoint(dx, dy, 0);
1249
+
1250
+ // Options stored in:
1251
+ // - chart (for exporting)
1252
+ // - current config (for redraws)
1253
+ chartOptions[this.collection][this.index].point = this.options.point;
1254
+ shapeOptions[this.collection][this.index].point = this.options.point;
1255
+ },
1256
+
1195
1257
  /**
1196
1258
  * Rotate a controllable.
1197
1259
  *
@@ -1370,6 +1432,7 @@
1370
1432
  };
1371
1433
 
1372
1434
  /**
1435
+ * @private
1373
1436
  * @mixin
1374
1437
  */
1375
1438
  var markerMixin = {
@@ -1701,6 +1764,8 @@
1701
1764
  */
1702
1765
  type: 'rect',
1703
1766
 
1767
+ translate: controllableMixin.translateShape,
1768
+
1704
1769
  render: function (parent) {
1705
1770
  var attrs = this.attrsFromOptions(this.options);
1706
1771
 
@@ -1732,16 +1797,6 @@
1732
1797
  this.graphic.placed = Boolean(position);
1733
1798
 
1734
1799
  controllableMixin.redraw.call(this, animation);
1735
- },
1736
-
1737
- translate: function (dx, dy) {
1738
- var annotationOptions = this.annotation.userOptions,
1739
- shapeOptions = annotationOptions[this.collection][this.index];
1740
-
1741
- this.translatePoint(dx, dy, 0);
1742
-
1743
- // Options stored in chart:
1744
- shapeOptions.point = this.options.point;
1745
1800
  }
1746
1801
  }
1747
1802
  );
@@ -1783,6 +1838,8 @@
1783
1838
  */
1784
1839
  type: 'circle',
1785
1840
 
1841
+ translate: controllableMixin.translateShape,
1842
+
1786
1843
  render: function (parent) {
1787
1844
  var attrs = this.attrsFromOptions(this.options);
1788
1845
 
@@ -1815,16 +1872,6 @@
1815
1872
  controllableMixin.redraw.call(this, animation);
1816
1873
  },
1817
1874
 
1818
- translate: function (dx, dy) {
1819
- var annotationOptions = this.annotation.userOptions,
1820
- shapeOptions = annotationOptions[this.collection][this.index];
1821
-
1822
- this.translatePoint(dx, dy, 0);
1823
-
1824
- // Options stored in chart:
1825
- shapeOptions.point = this.options.point;
1826
- },
1827
-
1828
1875
  /**
1829
1876
  * Set the radius.
1830
1877
  *
@@ -1841,15 +1888,50 @@
1841
1888
  });
1842
1889
  _registerModule(_modules, 'annotations/controllable/ControllableLabel.js', [_modules['parts/Globals.js'], _modules['annotations/controllable/controllableMixin.js'], _modules['annotations/MockPoint.js']], function (H, controllableMixin, MockPoint) {
1843
1890
 
1891
+
1892
+ /**
1893
+ * @private
1894
+ * @interface Highcharts.AnnotationAnchorObject
1895
+ *//**
1896
+ * Relative to the plot area position
1897
+ * @name Highcharts.AnnotationAnchorObject#relativePosition
1898
+ * @type {Highcharts.AnnotationAnchorPositionObject}
1899
+ *//**
1900
+ * Absolute position
1901
+ * @name Highcharts.AnnotationAnchorObject#absolutePosition
1902
+ * @type {Highcharts.AnnotationAnchorPositionObject}
1903
+ */
1904
+
1905
+ /**
1906
+ * An object which denotes an anchor position
1907
+ *
1908
+ * @private
1909
+ * @interface Highcharts.AnnotationAnchorPositionObject
1910
+ *//**
1911
+ * @name Highcharts.AnnotationAnchorPositionObject#x
1912
+ * @property {number}
1913
+ *//**
1914
+ * @name Highcharts.AnnotationAnchorPositionObject#y
1915
+ * @property {number}
1916
+ *//**
1917
+ * @name Highcharts.AnnotationAnchorPositionObject#height
1918
+ * @property {number}
1919
+ *//**
1920
+ * @name Highcharts.AnnotationAnchorPositionObject#width
1921
+ * @property {number}
1922
+ */
1923
+
1844
1924
  /**
1845
1925
  * A controllable label class.
1846
1926
  *
1927
+ * @private
1847
1928
  * @class
1929
+ * @name Annotation.ControllableLabel
1930
+ *
1848
1931
  * @mixes Annotation.controllableMixin
1849
- * @memberOf Annotation
1850
1932
  *
1851
1933
  * @param {Highcharts.Annotation} annotation an annotation instance
1852
- * @param {Object} options a label's options
1934
+ * @param {object} options a label's options
1853
1935
  * @param {number} index of the label
1854
1936
  **/
1855
1937
  function ControllableLabel(annotation, options, index) {
@@ -1861,7 +1943,7 @@
1861
1943
  * Shapes which do not have background - the object is used for proper
1862
1944
  * setting of the contrast color.
1863
1945
  *
1864
- * @type {Array<String>}
1946
+ * @type {Array<string>}
1865
1947
  */
1866
1948
  ControllableLabel.shapesWithoutBackground = ['connector'];
1867
1949
 
@@ -2031,16 +2113,24 @@
2031
2113
  * @param {number} dy translation for y coordinate
2032
2114
  **/
2033
2115
  translate: function (dx, dy) {
2034
- var annotationOptions = this.annotation.userOptions,
2035
- labelOptions = annotationOptions[this.collection][this.index];
2116
+ var chart = this.annotation.chart,
2117
+ // Annotation.options
2118
+ labelOptions = this.annotation.userOptions,
2119
+ // Chart.options.annotations
2120
+ annotationIndex = chart.annotations.indexOf(this.annotation),
2121
+ chartAnnotations = chart.options.annotations,
2122
+ chartOptions = chartAnnotations[annotationIndex];
2036
2123
 
2037
2124
  // Local options:
2038
2125
  this.options.x += dx;
2039
2126
  this.options.y += dy;
2040
2127
 
2041
2128
  // Options stored in chart:
2042
- labelOptions.x = this.options.x;
2043
- labelOptions.y = this.options.y;
2129
+ chartOptions[this.collection][this.index].x = this.options.x;
2130
+ chartOptions[this.collection][this.index].y = this.options.y;
2131
+
2132
+ labelOptions[this.collection][this.index].x = this.options.x;
2133
+ labelOptions[this.collection][this.index].y = this.options.y;
2044
2134
  },
2045
2135
 
2046
2136
  render: function (parent) {
@@ -2148,8 +2238,9 @@
2148
2238
  /**
2149
2239
  * Returns the label position relative to its anchor.
2150
2240
  *
2151
- * @param {Annotation.controllableMixin.Anchor} anchor
2152
- * @return {Annotation.controllableMixin.Position|null} position
2241
+ * @param {Highcharts.AnnotationAnchorObject} anchor
2242
+ *
2243
+ * @return {Highcharts.AnnotationAnchorPositionObject|null} position
2153
2244
  */
2154
2245
  position: function (anchor) {
2155
2246
  var item = this.graphic,
@@ -2243,6 +2334,7 @@
2243
2334
 
2244
2335
  /**
2245
2336
  * General symbol definition for labels with connector
2337
+ * @private
2246
2338
  */
2247
2339
  H.SVGRenderer.prototype.symbols.connector = function (x, y, w, h, options) {
2248
2340
  var anchorX = options && options.anchorX,
@@ -2333,6 +2425,8 @@
2333
2425
  */
2334
2426
  type: 'image',
2335
2427
 
2428
+ translate: controllableMixin.translateShape,
2429
+
2336
2430
  render: function (parent) {
2337
2431
  var attrs = this.attrsFromOptions(this.options),
2338
2432
  options = this.options;
@@ -2370,16 +2464,6 @@
2370
2464
  this.graphic.placed = Boolean(position);
2371
2465
 
2372
2466
  controllableMixin.redraw.call(this, animation);
2373
- },
2374
-
2375
- translate: function (dx, dy) {
2376
- var annotationOptions = this.annotation.userOptions,
2377
- shapeOptions = annotationOptions[this.collection][this.index];
2378
-
2379
- this.translatePoint(dx, dy, 0);
2380
-
2381
- // Options stored in chart:
2382
- shapeOptions.point = this.options.point;
2383
2467
  }
2384
2468
  }
2385
2469
  );
@@ -2388,11 +2472,15 @@
2388
2472
  return ControllableImage;
2389
2473
  });
2390
2474
  _registerModule(_modules, 'annotations/annotations.src.js', [_modules['parts/Globals.js'], _modules['annotations/controllable/controllableMixin.js'], _modules['annotations/controllable/ControllableRect.js'], _modules['annotations/controllable/ControllableCircle.js'], _modules['annotations/controllable/ControllablePath.js'], _modules['annotations/controllable/ControllableImage.js'], _modules['annotations/controllable/ControllableLabel.js'], _modules['annotations/eventEmitterMixin.js'], _modules['annotations/MockPoint.js'], _modules['annotations/ControlPoint.js']], function (H, controllableMixin, ControllableRect, ControllableCircle, ControllablePath, ControllableImage, ControllableLabel, eventEmitterMixin, MockPoint, ControlPoint) {
2391
- /**
2392
- * (c) 2009-2017 Highsoft, Black Label
2475
+ /* *
2393
2476
  *
2394
- * License: www.highcharts.com/license
2395
- */
2477
+ * (c) 2009-2017 Highsoft, Black Label
2478
+ *
2479
+ * License: www.highcharts.com/license
2480
+ *
2481
+ * */
2482
+
2483
+
2396
2484
 
2397
2485
  var merge = H.merge,
2398
2486
  addEvent = H.addEvent,
@@ -2404,7 +2492,8 @@
2404
2492
  pick = H.pick,
2405
2493
  reduce = H.reduce,
2406
2494
  splat = H.splat,
2407
- destroyObjectProperties = H.destroyObjectProperties;
2495
+ destroyObjectProperties = H.destroyObjectProperties,
2496
+ chartProto = H.Chart.prototype;
2408
2497
 
2409
2498
  /* *********************************************************************
2410
2499
  *
@@ -2432,8 +2521,7 @@
2432
2521
  * existing points or created mock points
2433
2522
  *
2434
2523
  * @class
2435
- * @mixes Annotation.controllableMixin
2436
- * @mixes Annotation.eventEmitterMixin
2524
+ * @name Highcharts.Annotation
2437
2525
  *
2438
2526
  * @param {Highcharts.Chart} chart a chart instance
2439
2527
  * @param {Highcharts.AnnotationsOptions} options the options object
@@ -2451,7 +2539,7 @@
2451
2539
  /**
2452
2540
  * The array of points which defines the annotation.
2453
2541
  *
2454
- * @type {Array<Annotation.PointLike>}
2542
+ * @type {Array<Highcharts.Point>}
2455
2543
  */
2456
2544
  this.points = [];
2457
2545
 
@@ -2474,7 +2562,7 @@
2474
2562
  /**
2475
2563
  * The array of shapes which belong to the annotation.
2476
2564
  *
2477
- * @type {Array<Highcharts.Annotation.Shape>}
2565
+ * @type {Array<Annotation.Shape>}
2478
2566
  */
2479
2567
  this.shapes = [];
2480
2568
 
@@ -2543,7 +2631,10 @@
2543
2631
  true,
2544
2632
  Annotation.prototype,
2545
2633
  controllableMixin,
2546
- eventEmitterMixin, /** @lends Annotation# */ {
2634
+ eventEmitterMixin,
2635
+ /** @lends Annotation# */
2636
+ {
2637
+
2547
2638
  /**
2548
2639
  * List of events for `annotation.options.events` that should not be
2549
2640
  * added to `annotation.graphic` but to the `annotation`.
@@ -2551,14 +2642,12 @@
2551
2642
  * @type {Array<string>}
2552
2643
  */
2553
2644
  nonDOMEvents: ['add', 'afterUpdate', 'remove'],
2645
+
2554
2646
  /**
2555
2647
  * A basic type of an annotation. It allows to add custom labels
2556
2648
  * or shapes. The items can be tied to points, axis coordinates
2557
2649
  * or chart pixel coordinates.
2558
2650
  *
2559
- * @private
2560
- * @type {Object}
2561
- * @ignore-options base, annotations.crookedLine
2562
2651
  * @sample highcharts/annotations/basic/
2563
2652
  * Basic annotations
2564
2653
  * @sample highcharts/demo/annotations/
@@ -2566,13 +2655,25 @@
2566
2655
  * @sample highcharts/css/annotations
2567
2656
  * Styled mode
2568
2657
  * @sample highcharts/annotations-advanced/controllable
2569
- * Controllable items
2658
+ * Controllable items
2570
2659
  * @sample {highstock} stock/annotations/fibonacci-retracements
2571
2660
  * Custom annotation, Fibonacci retracement
2572
- * @since 6.0.0
2573
- * @optionparent annotations.crookedLine
2661
+ *
2662
+ * @type {Array<*>}
2663
+ * @since 6.0.0
2664
+ * @optionparent annotations
2574
2665
  */
2575
2666
  defaultOptions: {
2667
+
2668
+ /**
2669
+ * Sets an ID for an annotation. Can be user later when removing an
2670
+ * annotation in [Chart#removeAnnotation(id)](
2671
+ * /class-reference/Highcharts.Chart#removeAnnotation) method.
2672
+ *
2673
+ * @type {string}
2674
+ * @apioption annotations.id
2675
+ */
2676
+
2576
2677
  /**
2577
2678
  * Whether the annotation is visible.
2578
2679
  *
@@ -2585,7 +2686,10 @@
2585
2686
  * Allow an annotation to be draggable by a user. Possible
2586
2687
  * values are `"x"`, `"xy"`, `"y"` and `""` (disabled).
2587
2688
  *
2588
- * @type {string}
2689
+ * @sample highcharts/annotations/draggable/
2690
+ * Annotations draggable: 'xy'
2691
+ *
2692
+ * @type {string}
2589
2693
  * @validvalue ["x", "xy", "y", ""]
2590
2694
  */
2591
2695
  draggable: 'xy',
@@ -2621,18 +2725,20 @@
2621
2725
  /**
2622
2726
  * The background color or gradient for the annotation's label.
2623
2727
  *
2624
- * @type {Color}
2625
2728
  * @sample highcharts/annotations/label-presentation/
2626
2729
  * Set labels graphic options
2730
+ *
2731
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2627
2732
  */
2628
2733
  backgroundColor: 'rgba(0, 0, 0, 0.75)',
2629
2734
 
2630
2735
  /**
2631
2736
  * The border color for the annotation's label.
2632
2737
  *
2633
- * @type {Color}
2634
2738
  * @sample highcharts/annotations/label-presentation/
2635
2739
  * Set labels graphic options
2740
+ *
2741
+ * @type {Highcharts.ColorString}
2636
2742
  */
2637
2743
  borderColor: 'black',
2638
2744
 
@@ -2657,6 +2763,7 @@
2657
2763
  *
2658
2764
  * @sample highcharts/css/annotations
2659
2765
  * Styled mode annotations
2766
+ *
2660
2767
  * @since 6.0.5
2661
2768
  */
2662
2769
  className: '',
@@ -2673,67 +2780,70 @@
2673
2780
  /**
2674
2781
  * The label's pixel distance from the point.
2675
2782
  *
2676
- * @type {number}
2677
2783
  * @sample highcharts/annotations/label-position/
2678
2784
  * Set labels position
2679
- * @default undefined
2680
- * @apioption annotations.crookedLine.labelOptions.distance
2785
+ *
2786
+ * @type {number}
2787
+ * @apioption annotations.labelOptions.distance
2681
2788
  */
2682
2789
 
2683
2790
  /**
2684
- * A [format](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting) string for the data label.
2791
+ * A
2792
+ * [format](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
2793
+ * string for the data label.
2794
+ *
2795
+ * @see [plotOptions.series.dataLabels.format](plotOptions.series.dataLabels.format.html)
2685
2796
  *
2686
- * @type {string}
2687
- * @see [plotOptions.series.dataLabels.format](
2688
- * plotOptions.series.dataLabels.format.html)
2689
2797
  * @sample highcharts/annotations/label-text/
2690
2798
  * Set labels text
2691
- * @default undefined
2692
- * @apioption annotations.crookedLine.labelOptions.format
2799
+ *
2800
+ * @type {string}
2801
+ * @apioption annotations.labelOptions.format
2693
2802
  */
2694
2803
 
2695
2804
  /**
2696
2805
  * Alias for the format option.
2697
2806
  *
2698
- * @type {string}
2699
2807
  * @see [format](annotations.labelOptions.format.html)
2808
+ *
2700
2809
  * @sample highcharts/annotations/label-text/
2701
2810
  * Set labels text
2702
- * @default undefined
2703
- * @apioption annotations.crookedLine.labelOptions.text
2811
+ *
2812
+ * @type {string}
2813
+ * @apioption annotations.labelOptions.text
2704
2814
  */
2705
2815
 
2706
2816
  /**
2707
- * Callback JavaScript function to format
2708
- * the annotation's label. Note that if a `format` or `text`
2709
- * are defined, the format or text take precedence and
2710
- * the formatter is ignored. `This` refers to a * point object.
2817
+ * Callback JavaScript function to format the annotation's
2818
+ * label. Note that if a `format` or `text` are defined, the
2819
+ * format or text take precedence and the formatter is ignored.
2820
+ * `This` refers to a point object.
2711
2821
  *
2712
- * @type {function}
2713
2822
  * @sample highcharts/annotations/label-text/
2714
2823
  * Set labels text
2715
- * @default function () {
2716
- * return defined(this.y) ? this.y : 'Annotation label';
2717
- * }
2824
+ *
2825
+ * @type {Highcharts.FormatterCallbackFunction<Highcharts.Point>}
2826
+ * @default function () { return defined(this.y) ? this.y : 'Annotation label'; }
2718
2827
  */
2719
2828
  formatter: function () {
2720
2829
  return defined(this.y) ? this.y : 'Annotation label';
2721
2830
  },
2722
2831
 
2723
2832
  /**
2724
- * How to handle the annotation's label that flow
2725
- * outside the plot area. The justify option aligns the label
2726
- * inside the plot area.
2833
+ * How to handle the annotation's label that flow outside the
2834
+ * plot area. The justify option aligns the label inside the
2835
+ * plot area.
2727
2836
  *
2728
- * @validvalue ["allow", "justify"]
2729
2837
  * @sample highcharts/annotations/label-crop-overflow/
2730
2838
  * Crop or justify labels
2839
+ *
2840
+ * @validvalue ["allow", "justify"]
2731
2841
  */
2732
2842
  overflow: 'justify',
2733
2843
 
2734
2844
  /**
2735
2845
  * When either the borderWidth or the backgroundColor is set,
2736
- * this is the padding within the box.
2846
+ * this is the padding within the box.
2737
2847
  *
2738
2848
  * @sample highcharts/annotations/label-presentation/
2739
2849
  * Set labels graphic options
@@ -2741,13 +2851,14 @@
2741
2851
  padding: 5,
2742
2852
 
2743
2853
  /**
2744
- * The shadow of the box. The shadow can be
2745
- * an object configuration containing
2746
- * `color`, `offsetX`, `offsetY`, `opacity` and `width`.
2854
+ * The shadow of the box. The shadow can be an object
2855
+ * configuration containing `color`, `offsetX`, `offsetY`,
2856
+ * `opacity` and `width`.
2747
2857
  *
2748
- * @type {Boolean|Object}
2749
2858
  * @sample highcharts/annotations/label-presentation/
2750
2859
  * Set labels graphic options
2860
+ *
2861
+ * @type {boolean|Highcharts.ShadowOptionsObject}
2751
2862
  */
2752
2863
  shadow: false,
2753
2864
 
@@ -2755,7 +2866,6 @@
2755
2866
  * The name of a symbol to use for the border around the label.
2756
2867
  * Symbols are predefined functions on the Renderer object.
2757
2868
  *
2758
- * @type {string}
2759
2869
  * @sample highcharts/annotations/shapes/
2760
2870
  * Available shapes for labels
2761
2871
  */
@@ -2764,24 +2874,25 @@
2764
2874
  /**
2765
2875
  * Styles for the annotation's label.
2766
2876
  *
2767
- * @type {CSSObject}
2877
+ * @see [plotOptions.series.dataLabels.style](plotOptions.series.dataLabels.style.html)
2878
+ *
2768
2879
  * @sample highcharts/annotations/label-presentation/
2769
2880
  * Set labels graphic options
2770
- * @see [plotOptions.series.dataLabels.style](
2771
- * plotOptions.series.dataLabels.style.html)
2881
+ *
2882
+ * @type {Highcharts.CSSObject}
2772
2883
  */
2773
2884
  style: {
2885
+ /** @ignore */
2774
2886
  fontSize: '11px',
2887
+ /** @ignore */
2775
2888
  fontWeight: 'normal',
2889
+ /** @ignore */
2776
2890
  color: 'contrast'
2777
2891
  },
2778
2892
 
2779
2893
  /**
2780
- * Whether to [use HTML](http://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)
2894
+ * Whether to [use HTML](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)
2781
2895
  * to render the annotation's label.
2782
- *
2783
- * @type {boolean}
2784
- * @default false
2785
2896
  */
2786
2897
  useHTML: false,
2787
2898
 
@@ -2821,60 +2932,58 @@
2821
2932
  * multiple labels, they can be added to the
2822
2933
  * [labelOptions](annotations.labelOptions.html).
2823
2934
  *
2824
- * @type {Array<Object>}
2825
- * @extends annotations.crookedLine.labelOptions
2826
- * @apioption annotations.crookedLine.labels
2935
+ * @type {Array<*>}
2936
+ * @extends annotations.labelOptions
2937
+ * @apioption annotations.labels
2827
2938
  */
2828
2939
 
2829
2940
  /**
2830
- * This option defines the point to which the label
2831
- * will be connected.
2832
- * It can be either the point which exists in the series - it is
2833
- * referenced by the point's id - or a new point with defined x, y
2834
- * properies and optionally axes.
2941
+ * This option defines the point to which the label will be
2942
+ * connected. It can be either the point which exists in the
2943
+ * series - it is referenced by the point's id - or a new point with
2944
+ * defined x, y properties and optionally axes.
2835
2945
  *
2836
- * @type {string|MockPointOptions}
2837
2946
  * @sample highcharts/annotations/mock-point/
2838
2947
  * Attach annotation to a mock point
2839
- * @apioption annotations.crookedLine.labels.point
2948
+ *
2949
+ * @type {string|Highcharts.MockPointOptionsObject}
2950
+ * @apioption annotations.labels.point
2840
2951
  */
2841
2952
 
2842
2953
  /**
2843
2954
  * The x position of the point. Units can be either in axis
2844
2955
  * or chart pixel coordinates.
2845
2956
  *
2846
- * @type {number}
2847
- * @apioption annotations.crookedLine.labels.point.x
2957
+ * @type {number}
2958
+ * @apioption annotations.labels.point.x
2848
2959
  */
2849
2960
 
2850
2961
  /**
2851
2962
  * The y position of the point. Units can be either in axis
2852
2963
  * or chart pixel coordinates.
2853
2964
  *
2854
- * @type {number}
2855
- * @apioption annotations.crookedLine.labels.point.y
2965
+ * @type {number}
2966
+ * @apioption annotations.labels.point.y
2856
2967
  */
2857
2968
 
2858
2969
  /**
2859
- * This number defines which xAxis the point is connected to.
2860
- * It refers to either the axis id or the index of the axis
2861
- * in the xAxis array. If the option is not configured or
2862
- * the axis is not found the point's
2863
- * x coordinate refers to the chart pixels.
2970
+ * This number defines which xAxis the point is connected to. It
2971
+ * refers to either the axis id or the index of the axis in the
2972
+ * xAxis array. If the option is not configured or the axis is not
2973
+ * found the point's x coordinate refers to the chart pixels.
2864
2974
  *
2865
- * @type {number|string}
2866
- * @apioption annotations.crookedLine.labels.point.xAxis
2975
+ * @type {number|string}
2976
+ * @apioption annotations.labels.point.xAxis
2867
2977
  */
2868
2978
 
2869
2979
  /**
2870
- * This number defines which yAxis the point is connected to.
2871
- * It refers to either the axis id or the index of the axis
2872
- * in the yAxis array. If the option is not configured or
2873
- * the axis is not found the point's
2874
- * y coordinate refers to the chart pixels.
2980
+ * This number defines which yAxis the point is connected to. It
2981
+ * refers to either the axis id or the index of the axis in the
2982
+ * yAxis array. If the option is not configured or the axis is not
2983
+ * found the point's y coordinate refers to the chart pixels.
2875
2984
  *
2876
- * @type {number|string}
2877
- * @apioption annotations.crookedLine.labels.point.yAxis
2985
+ * @type {number|string}
2986
+ * @apioption annotations.labels.point.yAxis
2878
2987
  */
2879
2988
 
2880
2989
 
@@ -2883,119 +2992,126 @@
2883
2992
  * multiple shapes, then can be added to the
2884
2993
  * [shapeOptions](annotations.shapeOptions.html).
2885
2994
  *
2886
- * @type {Array<Object>}
2887
- * @extends annotations.crookedLine.shapeOptions
2888
- * @apioption annotations.crookedLine.shapes
2995
+ * @type {Array<*>}
2996
+ * @extends annotations.shapeOptions
2997
+ * @apioption annotations.shapes
2889
2998
  */
2890
2999
 
2891
3000
  /**
2892
3001
  * This option defines the point to which the shape will be
2893
- * connected.
2894
- * It can be either the point which exists in the series - it is
2895
- * referenced by the point's id - or a new point with defined x, y
2896
- * properties and optionally axes.
3002
+ * connected. It can be either the point which exists in the
3003
+ * series - it is referenced by the point's id - or a new point with
3004
+ * defined x, y properties and optionally axes.
2897
3005
  *
2898
- * @type {string|MockPointOptions}
2899
- * @extends annotations.crookedLine.labels.point
2900
- * @apioption annotations.crookedLine.shapes.point
3006
+ * @type {string|Highcharts.MockPointOptionsObject}
3007
+ * @extends annotations.labels.point
3008
+ * @apioption annotations.shapes.point
2901
3009
  */
2902
3010
 
2903
3011
  /**
2904
- * An array of points for the shape. This option is available
2905
- * for shapes which can use multiple points such as path.
2906
- * A point can be either a point object or a point's id.
3012
+ * An array of points for the shape. This option is available for
3013
+ * shapes which can use multiple points such as path. A point can be
3014
+ * either a point object or a point's id.
2907
3015
  *
2908
- * @type {Array<string|Highcharts.MockPoint.Options>}
2909
3016
  * @see [annotations.shapes.point](annotations.shapes.point.html)
2910
- * @apioption annotations.crookedLine.shapes.points
3017
+ *
3018
+ * @type {Array<string|Highcharts.MockPointOptionsObject>}
3019
+ * @extends annotations.labels.point
3020
+ * @apioption annotations.shapes.points
2911
3021
  */
2912
3022
 
2913
3023
  /**
2914
- * Id of the marker which will be drawn at the final
2915
- * vertex of the path.
2916
- * Custom markers can be defined in defs property.
3024
+ * Id of the marker which will be drawn at the final vertex of the
3025
+ * path. Custom markers can be defined in defs property.
2917
3026
  *
2918
- * @type {string}
2919
3027
  * @see [defs.markers](defs.markers.html)
3028
+ *
2920
3029
  * @sample highcharts/annotations/custom-markers/
2921
3030
  * Define a custom marker for annotations
2922
- * @apioption annotations.crookedLine.shapes.markerEnd
3031
+ *
3032
+ * @type {string}
3033
+ * @apioption annotations.shapes.markerEnd
2923
3034
  */
2924
3035
 
2925
3036
  /**
2926
- * Id of the marker which will be drawn at the first
2927
- * vertex of the path.
2928
- * Custom markers can be defined in defs property.
3037
+ * Id of the marker which will be drawn at the first vertex of the
3038
+ * path. Custom markers can be defined in defs property.
2929
3039
  *
2930
- * @type {string}
2931
3040
  * @see [defs.markers](defs.markers.html)
3041
+ *
2932
3042
  * @sample {highcharts} highcharts/annotations/custom-markers/
2933
3043
  * Define a custom marker for annotations
2934
- * @apioption annotations.crookedLine.shapes.markerStart
3044
+ *
3045
+ * @type {string}
3046
+ * @apioption annotations.shapes.markerStart
2935
3047
  */
2936
3048
 
2937
3049
 
2938
3050
  /**
2939
- * Options for annotation's shapes. Each shape inherits options
2940
- * from the shapeOptions object. An option from the shapeOptions
2941
- * can be overwritten by config for a specific shape.
2942
- *
2943
- * @type {Object}
3051
+ * Options for annotation's shapes. Each shape inherits options from
3052
+ * the shapeOptions object. An option from the shapeOptions can be
3053
+ * overwritten by config for a specific shape.
2944
3054
  */
2945
3055
  shapeOptions: {
3056
+
2946
3057
  /**
2947
3058
  * The width of the shape.
2948
3059
  *
2949
- * @type {number}
2950
3060
  * @sample highcharts/annotations/shape/
2951
3061
  * Basic shape annotation
2952
- * @apioption annotations.crookedLine.shapeOptions.width
3062
+ *
3063
+ * @type {number}
3064
+ * @apioption annotations.shapeOptions.width
2953
3065
  **/
2954
3066
 
2955
3067
  /**
2956
3068
  * The height of the shape.
2957
3069
  *
2958
- * @type {number}
2959
3070
  * @sample highcharts/annotations/shape/
2960
3071
  * Basic shape annotation
2961
- * @apioption annotations.crookedLine.shapeOptions.height
3072
+ *
3073
+ * @type {number}
3074
+ * @apioption annotations.shapeOptions.height
2962
3075
  */
2963
3076
 
2964
3077
  /**
2965
- * The color of the shape's stroke.
3078
+ * The type of the shape, e.g. circle or rectangle.
2966
3079
  *
2967
- * @type {Color}
2968
3080
  * @sample highcharts/annotations/shape/
2969
3081
  * Basic shape annotation
3082
+ *
3083
+ * @type {string}
3084
+ * @default 'rect'
3085
+ * @apioption annotations.shapeOptions.type
2970
3086
  */
2971
- stroke: 'rgba(0, 0, 0, 0.75)',
2972
3087
 
2973
3088
  /**
2974
- * The pixel stroke width of the shape.
3089
+ * The color of the shape's stroke.
2975
3090
  *
2976
3091
  * @sample highcharts/annotations/shape/
2977
3092
  * Basic shape annotation
3093
+ *
3094
+ * @type {Highcharts.ColorString}
2978
3095
  */
2979
- strokeWidth: 1,
3096
+ stroke: 'rgba(0, 0, 0, 0.75)',
2980
3097
 
2981
3098
  /**
2982
- * The color of the shape's fill.
3099
+ * The pixel stroke width of the shape.
2983
3100
  *
2984
- * @type {Color}
2985
3101
  * @sample highcharts/annotations/shape/
2986
3102
  * Basic shape annotation
2987
3103
  */
2988
- fill: 'rgba(0, 0, 0, 0.75)',
3104
+ strokeWidth: 1,
2989
3105
 
2990
3106
  /**
2991
- * The type of the shape, e.g. circle or rectangle.
3107
+ * The color of the shape's fill.
2992
3108
  *
2993
- * @type {string}
2994
3109
  * @sample highcharts/annotations/shape/
2995
3110
  * Basic shape annotation
2996
- * @default 'rect'
2997
- * @apioption annotations.crookedLine.shapeOptions.type
3111
+ *
3112
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2998
3113
  */
3114
+ fill: 'rgba(0, 0, 0, 0.75)',
2999
3115
 
3000
3116
  /**
3001
3117
  * The radius of the shape.
@@ -3018,10 +3134,16 @@
3018
3134
  * Options from the controlPointOptions can be overwritten
3019
3135
  * by options in a specific control point.
3020
3136
  *
3021
- * @type {Annotation.ControlPoint.Options}
3022
- * @apioption annotations.crookedLine.controlPointOptions
3137
+ * @type {Annotation.ControlPoint.Options}
3138
+ * @apioption annotations.controlPointOptions
3023
3139
  */
3024
3140
  controlPointOptions: {
3141
+
3142
+ /**
3143
+ * @function {Annotation.ControlPoint.Positioner}
3144
+ * @apioption annotations.controlPointOptions.positioner
3145
+ */
3146
+
3025
3147
  symbol: 'circle',
3026
3148
  width: 10,
3027
3149
  height: 10,
@@ -3031,57 +3153,53 @@
3031
3153
  fill: 'white'
3032
3154
  },
3033
3155
  visible: false,
3034
-
3035
- /**
3036
- * @function {Annotation.ControlPoint.Positioner}
3037
- * @apioption annotations.crookedLine.controlPointOptions.positioner
3038
- */
3039
-
3040
-
3041
3156
  events: {}
3042
3157
  },
3043
3158
 
3044
-
3045
- /**
3046
- * Events available in annotations.
3047
- *
3048
- * @type {Object}
3049
- */
3050
3159
  /**
3051
3160
  * Event callback when annotation is added to the chart.
3052
3161
  *
3053
- * @since 7.1.0
3054
- * @apioption annotations.crookedLine.events.add
3162
+ * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
3163
+ * @since 7.1.0
3164
+ * @apioption annotations.events.add
3055
3165
  */
3166
+
3056
3167
  /**
3057
3168
  * Event callback when annotation is updated (e.g. drag and
3058
3169
  * droppped or resized by control points).
3059
3170
  *
3060
- * @since 7.1.0
3061
- * @apioption annotations.crookedLine.events.afterUpdate
3171
+ * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
3172
+ * @since 7.1.0
3173
+ * @apioption annotations.events.afterUpdate
3062
3174
  */
3175
+
3063
3176
  /**
3064
3177
  * Event callback when annotation is removed from the chart.
3065
3178
  *
3066
- * @since 7.1.0
3067
- * @apioption annotations.crookedLine.events.remove
3179
+ * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
3180
+ * @since 7.1.0
3181
+ * @apioption annotations.events.remove
3182
+ */
3183
+
3184
+ /**
3185
+ * Events available in annotations.
3068
3186
  */
3069
3187
  events: {},
3070
3188
 
3071
3189
  /**
3072
3190
  * The Z index of the annotation.
3073
- *
3074
- * @type {number}
3075
- * @default 6
3076
3191
  */
3077
3192
  zIndex: 6
3193
+
3078
3194
  },
3079
3195
 
3080
3196
  /**
3081
3197
  * Initialize the annotation.
3082
3198
  *
3083
- * @param {Highcharts.Chart} - the chart
3084
- * @param {Highcharts.AnnotationsOptions} - the user options for the annotation
3199
+ * @param {Highcharts.Chart}
3200
+ * The chart
3201
+ * @param {Highcharts.AnnotationsOptions}
3202
+ * The user options for the annotation
3085
3203
  */
3086
3204
  init: function () {
3087
3205
  this.linkPoints();
@@ -3330,10 +3448,11 @@
3330
3448
  },
3331
3449
 
3332
3450
  /**
3333
- * See {@link Highcharts.Annotation#destroy}.
3451
+ * See {@link Highcharts.Chart#removeAnnotation}.
3334
3452
  */
3335
3453
  remove: function () {
3336
- return this.destroy();
3454
+ // Let chart.update() remove annoations on demand
3455
+ return this.chart.removeAnnotation(this);
3337
3456
  },
3338
3457
 
3339
3458
  update: function (userOptions) {
@@ -3369,7 +3488,7 @@
3369
3488
  * Initialisation of a single shape
3370
3489
  *
3371
3490
  * @param {Object} shapeOptions - a confg object for a single shape
3372
- **/
3491
+ */
3373
3492
  initShape: function (shapeOptions, index) {
3374
3493
  var options = merge(
3375
3494
  this.options.shapeOptions,
@@ -3481,7 +3600,7 @@
3481
3600
  item.destroy();
3482
3601
  },
3483
3602
 
3484
- /*
3603
+ /**
3485
3604
  * @private
3486
3605
  */
3487
3606
  renderItem: function (item) {
@@ -3498,7 +3617,7 @@
3498
3617
  * An object uses for mapping between a shape type and a constructor.
3499
3618
  * To add a new shape type extend this object with type name as a key
3500
3619
  * and a constructor as its value.
3501
- **/
3620
+ */
3502
3621
  Annotation.shapesMap = {
3503
3622
  'rect': ControllableRect,
3504
3623
  'circle': ControllableCircle,
@@ -3538,10 +3657,7 @@
3538
3657
  *
3539
3658
  ******************************************************************** */
3540
3659
 
3541
- // Let chart.update() work with annotations
3542
- H.Chart.prototype.collectionsWithUpdate.push('annotations');
3543
-
3544
- H.extend(H.Chart.prototype, /** @lends Highcharts.Chart# */ {
3660
+ H.extend(chartProto, /** @lends Highcharts.Chart# */ {
3545
3661
  initAnnotation: function (userOptions) {
3546
3662
  var Constructor =
3547
3663
  Annotation.types[userOptions.type] || Annotation,
@@ -3609,8 +3725,13 @@
3609
3725
  }
3610
3726
  });
3611
3727
 
3728
+ // Let chart.update() update annotations
3729
+ chartProto.collectionsWithUpdate.push('annotations');
3612
3730
 
3613
- H.Chart.prototype.callbacks.push(function (chart) {
3731
+ // Let chart.update() create annoations on demand
3732
+ chartProto.collectionsWithInit.annotations = [chartProto.addAnnotation];
3733
+
3734
+ chartProto.callbacks.push(function (chart) {
3614
3735
  chart.annotations = [];
3615
3736
 
3616
3737
  if (!chart.options.annotations) {
@@ -3702,11 +3823,13 @@
3702
3823
  return chartNavigation;
3703
3824
  });
3704
3825
  _registerModule(_modules, 'annotations/navigationBindings.js', [_modules['parts/Globals.js'], _modules['mixins/navigation.js']], function (H, chartNavigationMixin) {
3705
- /**
3706
- * (c) 2009-2017 Highsoft, Black Label
3826
+ /* *
3707
3827
  *
3708
- * License: www.highcharts.com/license
3709
- */
3828
+ * (c) 2009-2017 Highsoft, Black Label
3829
+ *
3830
+ * License: www.highcharts.com/license
3831
+ *
3832
+ * */
3710
3833
 
3711
3834
  var doc = H.doc,
3712
3835
  win = H.win,
@@ -3919,13 +4042,15 @@
3919
4042
  });
3920
4043
 
3921
4044
  objectEach(options.events || {}, function (callback, eventName) {
3922
- navigation.eventsToUnbind.push(
3923
- addEvent(
3924
- navigation,
3925
- eventName,
3926
- callback
3927
- )
3928
- );
4045
+ if (H.isFunction(callback)) {
4046
+ navigation.eventsToUnbind.push(
4047
+ addEvent(
4048
+ navigation,
4049
+ eventName,
4050
+ callback
4051
+ )
4052
+ );
4053
+ }
3929
4054
  });
3930
4055
 
3931
4056
  navigation.eventsToUnbind.push(
@@ -5040,13 +5165,15 @@
5040
5165
 
5041
5166
  });
5042
5167
  _registerModule(_modules, 'annotations/popup.js', [_modules['parts/Globals.js']], function (H) {
5043
- /**
5044
- * Popup generator for Stock tools
5168
+ /* *
5045
5169
  *
5046
- * (c) 2009-2017 Sebastian Bochan
5170
+ * Popup generator for Stock tools
5047
5171
  *
5048
- * License: www.highcharts.com/license
5049
- */
5172
+ * (c) 2009-2017 Sebastian Bochan
5173
+ *
5174
+ * License: www.highcharts.com/license
5175
+ *
5176
+ * */
5050
5177
 
5051
5178
  var addEvent = H.addEvent,
5052
5179
  createElement = H.createElement,
@@ -5089,13 +5216,11 @@
5089
5216
  };
5090
5217
 
5091
5218
  H.Popup.prototype = {
5092
- /*
5219
+ /**
5093
5220
  * Initialize the popup. Create base div and add close button.
5094
- *
5221
+ * @private
5095
5222
  * @param {HTMLDOMElement} - container where popup should be placed
5096
- *
5097
5223
  * @return {HTMLDOMElement} - return created popup's div
5098
- *
5099
5224
  */
5100
5225
  init: function (parentDiv) {
5101
5226
 
@@ -5109,9 +5234,9 @@
5109
5234
  // add close button
5110
5235
  this.addCloseBtn();
5111
5236
  },
5112
- /*
5237
+ /**
5113
5238
  * Create HTML element and attach click event (close popup).
5114
- *
5239
+ * @private
5115
5240
  */
5116
5241
  addCloseBtn: function () {
5117
5242
  var _self = this,
@@ -5128,13 +5253,11 @@
5128
5253
  });
5129
5254
  });
5130
5255
  },
5131
- /*
5256
+ /**
5132
5257
  * Create two columns (divs) in HTML.
5133
- *
5258
+ * @private
5134
5259
  * @param {HTMLDOMElement} - container of columns
5135
- *
5136
5260
  * @return {Object} - reference to two HTML columns
5137
- *
5138
5261
  */
5139
5262
  addColsContainer: function (container) {
5140
5263
  var rhsCol,
@@ -5160,15 +5283,14 @@
5160
5283
  rhsCol: rhsCol
5161
5284
  };
5162
5285
  },
5163
- /*
5286
+ /**
5164
5287
  * Create input with label.
5165
- *
5288
+ * @private
5166
5289
  * @param {String} - chain of fields i.e params.styles.fontSize
5167
5290
  * @param {String} - indicator type
5168
5291
  * @param {HTMLDOMElement} - container where elements should be added
5169
5292
  * @param {String} - dafault value of input i.e period value is 14,
5170
5293
  * extracted from defaultOptions (ADD mode) or series options (EDIT mode)
5171
- *
5172
5294
  */
5173
5295
  addInput: function (option, type, parentDiv, value) {
5174
5296
  var optionParamList = option.split('.'),
@@ -5201,15 +5323,14 @@
5201
5323
  parentDiv
5202
5324
  ).setAttribute(PREFIX + 'data-name', option);
5203
5325
  },
5204
- /*
5326
+ /**
5205
5327
  * Create button.
5206
- *
5328
+ * @private
5207
5329
  * @param {HTMLDOMElement} - container where elements should be added
5208
5330
  * @param {String} - text placed as button label
5209
5331
  * @param {String} - add | edit | remove
5210
5332
  * @param {Function} - on click callback
5211
5333
  * @param {HTMLDOMElement} - container where inputs are generated
5212
- *
5213
5334
  * @return {HTMLDOMElement} - html button
5214
5335
  */
5215
5336
  addButton: function (parentDiv, label, type, callback, fieldsDiv) {
@@ -5234,12 +5355,11 @@
5234
5355
 
5235
5356
  return button;
5236
5357
  },
5237
- /*
5358
+ /**
5238
5359
  * Get values from all inputs and create JSON.
5239
- *
5360
+ * @private
5240
5361
  * @param {HTMLDOMElement} - container where inputs are created
5241
5362
  * @param {String} - add | edit | remove
5242
- *
5243
5363
  * @return {Object} - fields
5244
5364
  */
5245
5365
  getFields: function (parentDiv, type) {
@@ -5281,12 +5401,11 @@
5281
5401
 
5282
5402
  return fieldsOutput;
5283
5403
  },
5284
- /*
5404
+ /**
5285
5405
  * Reset content of the current popup and show.
5286
- *
5406
+ * @private
5287
5407
  * @param {Chart} - chart
5288
5408
  * @param {Function} - on click callback
5289
- *
5290
5409
  * @return {Object} - fields
5291
5410
  */
5292
5411
  showPopup: function () {
@@ -5311,21 +5430,20 @@
5311
5430
  popupDiv.appendChild(popupCloseBtn);
5312
5431
  popupDiv.style.display = 'block';
5313
5432
  },
5314
- /*
5433
+ /**
5315
5434
  * Hide popup.
5316
- *
5435
+ * @private
5317
5436
  */
5318
5437
  closePopup: function () {
5319
5438
  this.popup.container.style.display = 'none';
5320
5439
  },
5321
- /*
5440
+ /**
5322
5441
  * Create content and show popup.
5323
- *
5442
+ * @private
5324
5443
  * @param {String} - type of popup i.e indicators
5325
5444
  * @param {Chart} - chart
5326
5445
  * @param {Object} - options
5327
5446
  * @param {Function} - on click callback
5328
- *
5329
5447
  */
5330
5448
  showForm: function (type, chart, options, callback) {
5331
5449
 
@@ -5354,23 +5472,22 @@
5354
5472
  this.annotations.addForm.call(this, chart, options, callback, true);
5355
5473
  }
5356
5474
  },
5357
- /*
5475
+ /**
5358
5476
  * Return lang definitions for popup.
5359
- *
5477
+ * @private
5360
5478
  * @return {Object} - elements translations.
5361
5479
  */
5362
5480
  getLangpack: function () {
5363
5481
  return H.getOptions().lang.navigation.popup;
5364
5482
  },
5365
5483
  annotations: {
5366
- /*
5484
+ /**
5367
5485
  * Create annotation simple form. It contains two buttons
5368
5486
  * (edit / remove) and text label.
5369
- *
5487
+ * @private
5370
5488
  * @param {Chart} - chart
5371
5489
  * @param {Object} - options
5372
5490
  * @param {Function} - on click callback
5373
- *
5374
5491
  */
5375
5492
  addToolbar: function (chart, options, callback) {
5376
5493
  var _self = this,
@@ -5427,15 +5544,14 @@
5427
5544
 
5428
5545
  button.className += ' ' + PREFIX + 'annotation-edit-button';
5429
5546
  },
5430
- /*
5547
+ /**
5431
5548
  * Create annotation simple form.
5432
5549
  * It contains fields with param names.
5433
- *
5550
+ * @private
5434
5551
  * @param {Chart} - chart
5435
5552
  * @param {Object} - options
5436
5553
  * @param {Function} - on click callback
5437
5554
  * @param {Boolean} - if it is a form declared for init annotation
5438
- *
5439
5555
  */
5440
5556
  addForm: function (chart, options, callback, isInit) {
5441
5557
  var popupDiv = this.popup.container,
@@ -5478,16 +5594,15 @@
5478
5594
  popupDiv
5479
5595
  );
5480
5596
  },
5481
- /*
5597
+ /**
5482
5598
  * Create annotation's form fields.
5483
- *
5599
+ * @private
5484
5600
  * @param {HTMLDOMElement} - div where inputs are placed
5485
5601
  * @param {Chart} - chart
5486
5602
  * @param {String} - name of parent to create chain of names
5487
5603
  * @param {Object} - options
5488
5604
  * @param {Array} - storage - array where all items are stored
5489
5605
  * @param {Boolean} - isRoot - recursive flag for root
5490
- *
5491
5606
  */
5492
5607
  addFormFields: function (
5493
5608
  parentDiv,
@@ -5567,14 +5682,13 @@
5567
5682
  }
5568
5683
  },
5569
5684
  indicators: {
5570
- /*
5685
+ /**
5571
5686
  * Create indicator's form. It contains two tabs (ADD and EDIT) with
5572
5687
  * content.
5573
- *
5688
+ * @private
5574
5689
  * @param {Chart} - chart
5575
5690
  * @param {Object} - options
5576
5691
  * @param {Function} - on click callback
5577
- *
5578
5692
  */
5579
5693
  addForm: function (chart, options, callback) {
5580
5694
 
@@ -5637,14 +5751,13 @@
5637
5751
  buttonParentDiv
5638
5752
  );
5639
5753
  },
5640
- /*
5754
+ /**
5641
5755
  * Create HTML list of all indicators (ADD mode) or added indicators
5642
5756
  * (EDIT mode).
5643
- *
5757
+ * @private
5644
5758
  * @param {Chart} - chart
5645
5759
  * @param {HTMLDOMElement} - container where list is added
5646
5760
  * @param {String} - 'edit' or 'add' mode
5647
- *
5648
5761
  */
5649
5762
  addIndicatorList: function (chart, parentDiv, listType) {
5650
5763
  var _self = this,
@@ -5718,15 +5831,13 @@
5718
5831
  indicatorList.childNodes[0].click();
5719
5832
  }
5720
5833
  },
5721
- /*
5834
+ /**
5722
5835
  * Extract full name and type of requested indicator.
5723
- *
5836
+ * @private
5724
5837
  * @param {Series} - series which name is needed.
5725
5838
  * (EDIT mode - defaultOptions.series, ADD mode - indicator series).
5726
5839
  * @param {String} - indicator type like: sma, ema, etc.
5727
- *
5728
5840
  * @return {Object} - series name and type like: sma, ema, etc.
5729
- *
5730
5841
  */
5731
5842
  getNameType: function (series, type) {
5732
5843
  var options = series.options,
@@ -5747,15 +5858,14 @@
5747
5858
  type: seriesType
5748
5859
  };
5749
5860
  },
5750
- /*
5861
+ /**
5751
5862
  * List all series with unique ID. Its mandatory for indicators to set
5752
5863
  * correct linking.
5753
- *
5864
+ * @private
5754
5865
  * @param {String} - indicator type like: sma, ema, etc.
5755
5866
  * @param {String} - type of select i.e series or volume.
5756
5867
  * @param {Chart} - chart
5757
5868
  * @param {HTMLDOMElement} - element where created HTML list is added
5758
- *
5759
5869
  */
5760
5870
  listAllSeries: function (type, optionName, chart, parentDiv) {
5761
5871
  var selectName = PREFIX + optionName + '-type-' + type,
@@ -5807,18 +5917,17 @@
5807
5917
  }
5808
5918
  });
5809
5919
  },
5810
- /*
5920
+ /**
5811
5921
  * Create typical inputs for chosen indicator. Fields are extracted from
5812
5922
  * defaultOptions (ADD mode) or current indicator (ADD mode). Two extra
5813
5923
  * fields are added:
5814
5924
  * - hidden input - contains indicator type (required for callback)
5815
5925
  * - select - list of series which can be linked with indicator
5816
- *
5926
+ * @private
5817
5927
  * @param {Chart} - chart
5818
5928
  * @param {Series} - indicator
5819
5929
  * @param {String} - indicator type like: sma, ema, etc.
5820
5930
  * @param {HTMLDOMElement} - element where created HTML list is added
5821
- *
5822
5931
  */
5823
5932
  addFormFields: function (chart, series, seriesType, rhsColWrapper) {
5824
5933
  var fields = series.params || series.options.params,
@@ -5879,17 +5988,16 @@
5879
5988
  rhsColWrapper
5880
5989
  );
5881
5990
  },
5882
- /*
5991
+ /**
5883
5992
  * Recurent function which lists all fields, from params object and
5884
5993
  * create them as inputs. Each input has unique `data-name` attribute,
5885
5994
  * which keeps chain of fields i.e params.styles.fontSize.
5886
- *
5995
+ * @private
5887
5996
  * @param {Chart} - chart
5888
5997
  * @param {String} - name of parent to create chain of names
5889
5998
  * @param {Series} - fields - params which are based for input create
5890
5999
  * @param {String} - indicator type like: sma, ema, etc.
5891
6000
  * @param {HTMLDOMElement} - element where created HTML list is added
5892
- *
5893
6001
  */
5894
6002
  addParamInputs: function (chart, parentNode, fields, type, parentDiv) {
5895
6003
  var _self = this,
@@ -5924,9 +6032,9 @@
5924
6032
  }
5925
6033
  });
5926
6034
  },
5927
- /*
6035
+ /**
5928
6036
  * Get amount of indicators added to chart.
5929
- *
6037
+ * @private
5930
6038
  * @return {Number} - Amount of indicators
5931
6039
  */
5932
6040
  getAmount: function () {
@@ -5948,11 +6056,10 @@
5948
6056
  }
5949
6057
  },
5950
6058
  tabs: {
5951
- /*
6059
+ /**
5952
6060
  * Init tabs. Create tab menu items, tabs containers
5953
- *
6061
+ * @private
5954
6062
  * @param {Chart} - reference to current chart
5955
- *
5956
6063
  */
5957
6064
  init: function (chart) {
5958
6065
  var tabs = this.tabs,
@@ -5972,12 +6079,11 @@
5972
6079
  // activate first tab
5973
6080
  tabs.selectTab.call(this, firstTab, 0);
5974
6081
  },
5975
- /*
6082
+ /**
5976
6083
  * Create tab menu item
5977
- *
6084
+ * @private
5978
6085
  * @param {String} - `add` or `edit`
5979
6086
  * @param {Number} - Disable tab when 0
5980
- *
5981
6087
  * @return {HTMLDOMElement} - created HTML tab-menu element
5982
6088
  */
5983
6089
  addMenuItem: function (tabName, disableTab) {
@@ -6005,11 +6111,10 @@
6005
6111
 
6006
6112
  return menuItem;
6007
6113
  },
6008
- /*
6114
+ /**
6009
6115
  * Create tab content
6010
- *
6116
+ * @private
6011
6117
  * @return {HTMLDOMElement} - created HTML tab-content element
6012
- *
6013
6118
  */
6014
6119
  addContentItem: function () {
6015
6120
  var popupDiv = this.popup.container;
@@ -6023,11 +6128,10 @@
6023
6128
  popupDiv
6024
6129
  );
6025
6130
  },
6026
- /*
6131
+ /**
6027
6132
  * Add click event to each tab
6028
- *
6133
+ * @private
6029
6134
  * @param {Number} - Disable tab when 0
6030
- *
6031
6135
  */
6032
6136
  switchTabs: function (disableTab) {
6033
6137
  var _self = this,
@@ -6053,12 +6157,11 @@
6053
6157
  });
6054
6158
  });
6055
6159
  },
6056
- /*
6160
+ /**
6057
6161
  * Set tab as visible
6058
- *
6162
+ * @private
6059
6163
  * @param {HTMLDOMElement} - current tab
6060
6164
  * @param {Number} - Index of tab in menu
6061
- *
6062
6165
  */
6063
6166
  selectTab: function (tab, index) {
6064
6167
  var allTabs = this.popup.container
@@ -6067,9 +6170,9 @@
6067
6170
  tab.className += ' ' + PREFIX + 'tab-item-active';
6068
6171
  allTabs[index].className += ' ' + PREFIX + 'tab-item-show';
6069
6172
  },
6070
- /*
6173
+ /**
6071
6174
  * Set all tabs as invisible.
6072
- *
6175
+ * @private
6073
6176
  */
6074
6177
  deselectAll: function () {
6075
6178
  var popupDiv = this.popup.container,