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
@@ -519,6 +519,8 @@ H.Series = H.seriesType(
519
519
  *
520
520
  * @sample {highcharts} highcharts/series/type/
521
521
  * Line and column in the same chart
522
+ * @sample highcharts/series/type-dynamic/
523
+ * Dynamic types with button selector
522
524
  * @sample {highmaps} maps/demo/mapline-mappoint/
523
525
  * Multiple types in the same map
524
526
  *
@@ -1857,7 +1859,8 @@ H.Series = H.seriesType(
1857
1859
  * @sample highcharts/plotoptions/series-datalabels-multiple
1858
1860
  * Multiple data labels on a bar series
1859
1861
  *
1860
- * @type {Highcharts.DataLabelsOptionsObject}
1862
+ * @type {Highcharts.DataLabelsOptionsObject|Array<Highcharts.DataLabelsOptionsObject>}
1863
+ * @default {"align": "center", "formatter": function () { return H.numberFormat(this.y, -1); }, "padding": 5, "style": {"fontSize": "11px", "fontWeight": "bold", "color": "contrast", "textOutline": "1px contrast"}, "verticalAlign": "bottom", "x":0, "y": 0}
1861
1864
  *
1862
1865
  * @private
1863
1866
  */
@@ -1882,8 +1885,8 @@ H.Series = H.seriesType(
1882
1885
  textOutline: '1px contrast'
1883
1886
  },
1884
1887
  /**
1885
- * @ignore-option
1886
1888
  * above singular point
1889
+ * @ignore-option
1887
1890
  */
1888
1891
  verticalAlign: 'bottom',
1889
1892
  /** @ignore-option */
@@ -2130,18 +2133,26 @@ H.Series = H.seriesType(
2130
2133
  /**
2131
2134
  * The opposite state of a hover for series.
2132
2135
  *
2133
- * @sample {highcharts} highcharts/demo/windbarb-series/
2134
- * Disabled inactive state
2136
+ * @sample highcharts/plotoptions/series-states-inactive-opacity
2137
+ * Disabled inactive state by setting opacity
2135
2138
  */
2136
2139
  inactive: {
2140
+ /**
2141
+ * The animation for entering the inactive state.
2142
+ *
2143
+ * @type {boolean|Highcharts.AnimationOptionsObject}
2144
+ */
2137
2145
  animation: {
2138
2146
  duration: 50
2139
2147
  },
2140
2148
  /**
2141
- * Opacity of series elements (dataLabels, line, area).
2149
+ * Opacity of series elements (dataLabels, line, area). Set to 1
2150
+ * to disable inactive state.
2142
2151
  *
2143
2152
  * @apioption plotOptions.series.states.inactive.opacity
2144
2153
  * @type {number}
2154
+ * @sample highcharts/plotoptions/series-states-inactive-opacity
2155
+ * Disabled inactive state
2145
2156
  */
2146
2157
  opacity: 0.2
2147
2158
  }
@@ -2390,11 +2401,16 @@ H.Series = H.seriesType(
2390
2401
 
2391
2402
  objectEach(events, function (event, eventType) {
2392
2403
  if (
2393
- // In case we're doing Series.update(), first check if the
2394
- // event already exists.
2395
- !series.hcEvents ||
2396
- !series.hcEvents[eventType] ||
2397
- series.hcEvents[eventType].indexOf(event) === -1
2404
+ H.isFunction(event) &&
2405
+ (
2406
+ // In case we're doing Series.update(), first check if
2407
+ // the event already exists.
2408
+ !series.hcEvents ||
2409
+ !series.hcEvents[eventType] ||
2410
+ !series.hcEvents[eventType].some(function (obj) {
2411
+ return obj.fn === event;
2412
+ })
2413
+ )
2398
2414
  ) {
2399
2415
  addEvent(series, eventType, event);
2400
2416
  }
@@ -2679,14 +2695,11 @@ H.Series = H.seriesType(
2679
2695
  * Set the series options by merging from the options tree. Called
2680
2696
  * internally on initializing and updating series. This function will
2681
2697
  * not redraw the series. For API usage, use {@link Series#update}.
2682
- *
2698
+ * @private
2683
2699
  * @function Highcharts.Series#setOptions
2684
- *
2685
- * @param {Highcharts.SeriesOptionsType} itemOptions
2686
- * The series options.
2687
- *
2700
+ * @param {Highcharts.SeriesOptionsType} itemOptions - The series
2701
+ * options.
2688
2702
  * @return {Highcharts.SeriesOptionsType}
2689
- *
2690
2703
  * @fires Highcharts.Series#event:afterSetOptions
2691
2704
  */
2692
2705
  setOptions: function (itemOptions) {
@@ -2694,27 +2707,31 @@ H.Series = H.seriesType(
2694
2707
  chartOptions = chart.options,
2695
2708
  plotOptions = chartOptions.plotOptions,
2696
2709
  userOptions = chart.userOptions || {},
2697
- userPlotOptions = userOptions.plotOptions || {},
2698
- typeOptions = plotOptions[this.type],
2699
2710
  seriesUserOptions = merge(itemOptions),
2700
2711
  options,
2701
2712
  zones,
2702
2713
  zone,
2703
- styledMode = chart.styledMode;
2714
+ styledMode = chart.styledMode,
2715
+ e = {
2716
+ plotOptions: plotOptions,
2717
+ userOptions: seriesUserOptions
2718
+ };
2704
2719
 
2705
- fireEvent(this, 'setOptions', { userOptions: seriesUserOptions });
2720
+ fireEvent(this, 'setOptions', e);
2721
+
2722
+ // These may be modified by the event
2723
+ var userPlotOptions = userOptions.plotOptions || {},
2724
+ typeOptions = e.plotOptions[this.type];
2706
2725
 
2707
2726
  // use copy to prevent undetected changes (#9762)
2708
- this.userOptions = seriesUserOptions;
2727
+ this.userOptions = e.userOptions;
2709
2728
 
2710
- // General series options take precedence over type options because
2711
- // otherwise, default type options like column.animation would be
2712
- // overwritten by the general option. But issues have been raised
2713
- // here (#3881), and the solution may be to distinguish between
2714
- // default option and userOptions like in the tooltip below.
2715
2729
  options = merge(
2716
2730
  typeOptions,
2717
2731
  plotOptions.series,
2732
+ // #3881, chart instance plotOptions[type] should trump
2733
+ // plotOptions.series
2734
+ userOptions.plotOptions && userOptions.plotOptions[this.type],
2718
2735
  seriesUserOptions
2719
2736
  );
2720
2737
 
@@ -3963,6 +3980,59 @@ H.Series = H.seriesType(
3963
3980
  );
3964
3981
  },
3965
3982
 
3983
+ /**
3984
+ * Get the clipping for the series. Could be called for a series to
3985
+ * initiate animating the clip or to set the final clip (only width
3986
+ * and x).
3987
+ *
3988
+ * @private
3989
+ * @function Highcharts.Series#getClip
3990
+ *
3991
+ * @param {boolean} [animation]
3992
+ * Initialize the animation.
3993
+ * @param {boolean} [finalBox]
3994
+ * Final size for the clip - end state for the animation.
3995
+ * @return {*}
3996
+ */
3997
+ getClipBox: function (animation, finalBox) {
3998
+ var series = this,
3999
+ options = series.options,
4000
+ chart = series.chart,
4001
+ inverted = chart.inverted,
4002
+ xAxis = series.xAxis,
4003
+ yAxis = xAxis && series.yAxis,
4004
+ clipBox;
4005
+
4006
+ if (animation && options.clip === false && yAxis) {
4007
+ // support for not clipped series animation (#10450)
4008
+ clipBox = inverted ? {
4009
+ y: -chart.chartWidth + yAxis.len + yAxis.pos,
4010
+ height: chart.chartWidth,
4011
+ width: chart.chartHeight,
4012
+ x: -chart.chartHeight + xAxis.len + xAxis.pos
4013
+ } : {
4014
+ y: -yAxis.pos,
4015
+ height: chart.chartHeight,
4016
+ width: chart.chartWidth,
4017
+ x: -xAxis.pos
4018
+ };
4019
+ // x and width will be changed later when setting for animation
4020
+ // initial state in Series.setClip
4021
+ } else {
4022
+ clipBox = series.clipBox || chart.clipBox;
4023
+
4024
+ if (finalBox) {
4025
+ clipBox.width = chart.plotSizeX;
4026
+ clipBox.x = 0;
4027
+ }
4028
+ }
4029
+
4030
+ return !finalBox ? clipBox : {
4031
+ width: clipBox.width,
4032
+ x: clipBox.x
4033
+ };
4034
+ },
4035
+
3966
4036
  /**
3967
4037
  * Set the clipping for the series. For animated series it is called
3968
4038
  * twice, first to initiate animating the clip then the second time
@@ -3979,7 +4049,7 @@ H.Series = H.seriesType(
3979
4049
  renderer = chart.renderer,
3980
4050
  inverted = chart.inverted,
3981
4051
  seriesClipBox = this.clipBox,
3982
- clipBox = seriesClipBox || chart.clipBox,
4052
+ clipBox = this.getClipBox(animation),
3983
4053
  sharedClipKey =
3984
4054
  this.sharedClipKey ||
3985
4055
  [
@@ -4001,7 +4071,8 @@ H.Series = H.seriesType(
4001
4071
  if (animation) {
4002
4072
  clipBox.width = 0;
4003
4073
  if (inverted) {
4004
- clipBox.x = chart.plotSizeX;
4074
+ clipBox.x = chart.plotSizeX +
4075
+ (options.clip !== false ? 0 : chart.plotTop);
4005
4076
  }
4006
4077
 
4007
4078
  chart[sharedClipKey + 'm'] = markerClipRect = renderer
@@ -4025,7 +4096,7 @@ H.Series = H.seriesType(
4025
4096
  }
4026
4097
  }
4027
4098
 
4028
- if (options.clip !== false) {
4099
+ if (options.clip !== false || animation) {
4029
4100
  this.group.clip(
4030
4101
  animation || seriesClipBox ? clipRect : chart.clipRect
4031
4102
  );
@@ -4071,9 +4142,10 @@ H.Series = H.seriesType(
4071
4142
  animate: function (init) {
4072
4143
  var series = this,
4073
4144
  chart = series.chart,
4074
- clipRect,
4075
4145
  animation = animObject(series.options.animation),
4076
- sharedClipKey;
4146
+ clipRect,
4147
+ sharedClipKey,
4148
+ finalBox;
4077
4149
 
4078
4150
  // Initialize the animation. Set up the clipping rectangle.
4079
4151
  if (init) {
@@ -4084,22 +4156,21 @@ H.Series = H.seriesType(
4084
4156
  } else {
4085
4157
  sharedClipKey = this.sharedClipKey;
4086
4158
  clipRect = chart[sharedClipKey];
4159
+
4160
+ finalBox = series.getClipBox(animation, true);
4161
+
4087
4162
  if (clipRect) {
4088
- clipRect.animate({
4089
- width: chart.plotSizeX,
4090
- x: 0
4091
- }, animation);
4163
+ clipRect.animate(finalBox, animation);
4092
4164
  }
4093
4165
  if (chart[sharedClipKey + 'm']) {
4094
4166
  chart[sharedClipKey + 'm'].animate({
4095
- width: chart.plotSizeX + 99,
4096
- x: chart.inverted ? 0 : -99
4167
+ width: finalBox.width + 99,
4168
+ x: finalBox.x - (chart.inverted ? 0 : 99)
4097
4169
  }, animation);
4098
4170
  }
4099
4171
 
4100
4172
  // Delete this function to allow it only once
4101
4173
  series.animate = null;
4102
-
4103
4174
  }
4104
4175
  },
4105
4176
 
@@ -4322,8 +4393,8 @@ H.Series = H.seriesType(
4322
4393
  * The point instance to inspect.
4323
4394
  *
4324
4395
  * @param {string} [state]
4325
- * The point state, can be either `hover`, `select` or undefined
4326
- * for normal state.
4396
+ * The point state, can be either `hover`, `select` or 'normal'.
4397
+ * If undefined, normal state is assumed.
4327
4398
  *
4328
4399
  * @return {Highcharts.SVGAttributes}
4329
4400
  * The presentational attributes to be set on the point.
@@ -4367,6 +4438,7 @@ H.Series = H.seriesType(
4367
4438
  );
4368
4439
 
4369
4440
  // Handle hover and select states
4441
+ state = state || 'normal';
4370
4442
  if (state) {
4371
4443
  seriesStateOptions = seriesMarkerOptions.states[state];
4372
4444
  pointStateOptions = (
@@ -4672,6 +4744,26 @@ H.Series = H.seriesType(
4672
4744
 
4673
4745
  } else if (graphPath.length) { // #1487
4674
4746
 
4747
+ /**
4748
+ * SVG element of area-based charts. Can be used for styling
4749
+ * purposes. If zones are configured, this element will be
4750
+ * hidden and replaced by multiple zone areas, accessible
4751
+ * via `series['zone-area-x']` (where x is a number,
4752
+ * starting with 0).
4753
+ *
4754
+ * @name Highcharts.Series#area
4755
+ * @type {Highcharts.SVGElement|undefined}
4756
+ */
4757
+ /**
4758
+ * SVG element of line-based charts. Can be used for styling
4759
+ * purposes. If zones are configured, this element will be
4760
+ * hidden and replaced by multiple zone lines, accessible
4761
+ * via `series['zone-graph-x']` (where x is a number,
4762
+ * starting with 0).
4763
+ *
4764
+ * @name Highcharts.Series#graph
4765
+ * @type {Highcharts.SVGElement|undefined}
4766
+ */
4675
4767
  series[graphKey] = graph = series.chart.renderer
4676
4768
  .path(graphPath)
4677
4769
  .addClass(prop[1])
@@ -4871,15 +4963,19 @@ H.Series = H.seriesType(
4871
4963
  clips[i].animate(clipAttr);
4872
4964
  } else {
4873
4965
  clips[i] = renderer.clipRect(clipAttr);
4966
+ }
4874
4967
 
4875
- if (graph) {
4876
- series['zone-graph-' + i].clip(clips[i]);
4877
- }
4968
+ // when no data, graph zone is not applied and after setData
4969
+ // clip was ignored. As a result, it should be applied each
4970
+ // time.
4971
+ if (graph) {
4972
+ series['zone-graph-' + i].clip(clips[i]);
4973
+ }
4878
4974
 
4879
- if (area) {
4880
- series['zone-area-' + i].clip(clips[i]);
4881
- }
4975
+ if (area) {
4976
+ series['zone-area-' + i].clip(clips[i]);
4882
4977
  }
4978
+
4883
4979
  // if this zone extends out of the axis, ignore the others
4884
4980
  ignoreZones = threshold.value > extremes.max;
4885
4981
 
@@ -4889,6 +4985,14 @@ H.Series = H.seriesType(
4889
4985
  }
4890
4986
  });
4891
4987
  this.clips = clips;
4988
+ } else if (series.visible) {
4989
+ // If zones were removed, restore graph and area
4990
+ if (graph) {
4991
+ graph.show(true);
4992
+ }
4993
+ if (area) {
4994
+ area.show(true);
4995
+ }
4892
4996
  }
4893
4997
  },
4894
4998
 
@@ -5556,7 +5660,7 @@ H.Series = H.seriesType(
5556
5660
  * @sample highcharts/point/datalabels/
5557
5661
  * Show a label for the last value
5558
5662
  *
5559
- * @type {Highcharts.DataLabelsOptionsObject}
5663
+ * @type {Highcharts.DataLabelsOptionsObject|Array<Highcharts.DataLabelsOptionsObject>}
5560
5664
  * @product highcharts highstock gantt
5561
5665
  * @apioption series.line.data.dataLabels
5562
5666
  */
@@ -181,20 +181,25 @@ H.StackItem.prototype = {
181
181
  * @param {number} xOffset
182
182
  *
183
183
  * @param {number} xWidth
184
+ *
185
+ * @param {number} boxBottom
186
+ *
187
+ * @param {number} boxTop
184
188
  */
185
- setOffset: function (xOffset, xWidth) {
189
+ setOffset: function (xOffset, xWidth, boxBottom, boxTop) {
186
190
  var stackItem = this,
187
191
  axis = stackItem.axis,
188
192
  chart = axis.chart,
189
193
  // stack value translated mapped to chart coordinates
190
194
  y = axis.translate(
191
- axis.usePercentage ? 100 : stackItem.total,
195
+ axis.usePercentage ? 100 : (boxTop ? boxTop :
196
+ stackItem.total),
192
197
  0,
193
198
  0,
194
199
  0,
195
200
  1
196
201
  ),
197
- yZero = axis.translate(0), // stack origin
202
+ yZero = axis.translate(boxBottom ? boxBottom : 0), // stack origin
198
203
  h = defined(y) && Math.abs(y - yZero), // stack height
199
204
  x = chart.xAxis[0].translate(stackItem.x) + xOffset, // x position
200
205
  stackBox = defined(y) && stackItem.getStackBox(
@@ -160,20 +160,7 @@ H.StockChart = H.stockChart = function (a, b, c) {
160
160
  disableStartOnTick = navigatorEnabled ? {
161
161
  startOnTick: false,
162
162
  endOnTick: false
163
- } : null,
164
-
165
- lineOptions = {
166
-
167
- marker: {
168
- enabled: false,
169
- radius: 2
170
- }
171
- // gapSize: 0
172
- },
173
- columnOptions = {
174
- shadow: false,
175
- borderWidth: 0
176
- };
163
+ } : null;
177
164
 
178
165
  // apply X axis options to both single and multi y axes
179
166
  options.xAxis = splat(options.xAxis || {}).map(function (xAxisOptions, i) {
@@ -263,19 +250,6 @@ H.StockChart = H.stockChart = function (a, b, c) {
263
250
  },
264
251
  legend: {
265
252
  enabled: false
266
- },
267
-
268
- plotOptions: {
269
- line: lineOptions,
270
- spline: lineOptions,
271
- area: lineOptions,
272
- areaspline: lineOptions,
273
- arearange: lineOptions,
274
- areasplinerange: lineOptions,
275
- column: columnOptions,
276
- columnrange: columnOptions,
277
- candlestick: columnOptions,
278
- ohlc: columnOptions
279
253
  }
280
254
 
281
255
  },
@@ -294,6 +268,40 @@ H.StockChart = H.stockChart = function (a, b, c) {
294
268
  new Chart(options, b);
295
269
  };
296
270
 
271
+ // Handle som Stock-specific series defaults, override the plotOptions before
272
+ // series options are handled.
273
+ addEvent(Series, 'setOptions', function (e) {
274
+ var series = this,
275
+ overrides;
276
+
277
+ function is(type) {
278
+ return H.seriesTypes[type] && series instanceof H.seriesTypes[type];
279
+ }
280
+ if (this.chart.options.isStock) {
281
+
282
+ if (is('column') || is('columnrange')) {
283
+ overrides = {
284
+ borderWidth: 0,
285
+ shadow: false
286
+ };
287
+
288
+ } else if (is('line') && !is('scatter') && !is('sma')) {
289
+ overrides = {
290
+ marker: {
291
+ enabled: false,
292
+ radius: 2
293
+ }
294
+ };
295
+ }
296
+ if (overrides) {
297
+ e.plotOptions[this.type] = merge(
298
+ e.plotOptions[this.type],
299
+ overrides
300
+ );
301
+ }
302
+ }
303
+ });
304
+
297
305
  // Override the automatic label alignment so that the first Y axis' labels
298
306
  // are drawn on top of the grid line, and subsequent axes are drawn outside
299
307
  addEvent(Axis, 'autoLabelAlign', function (e) {
@@ -378,8 +386,13 @@ addEvent(Axis, 'getPlotLinePath', function (e) {
378
386
  });
379
387
  }
380
388
 
381
- // Ignore in case of colorAxis or zAxis. #3360, #3524, #6720
382
- if (axis.coll === 'xAxis' || axis.coll === 'yAxis') {
389
+ if (
390
+ // For stock chart, by default render paths across the panes
391
+ // except the case when `acrossPanes` is disabled by user (#6644)
392
+ (chart.options.isStock && e.acrossPanes !== false) &&
393
+ // Ignore in case of colorAxis or zAxis. #3360, #3524, #6720
394
+ axis.coll === 'xAxis' || axis.coll === 'yAxis'
395
+ ) {
383
396
 
384
397
  e.preventDefault();
385
398