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,9 +1,14 @@
1
1
  /* *
2
- * (c) 2010-2019 Torstein Honsi
3
2
  *
4
- * License: www.highcharts.com/license
5
- */
6
-
3
+ * (c) 2010-2019 Torstein Honsi
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * */
10
+ 'use strict';
11
+ import H from './Globals.js';
7
12
  /**
8
13
  * A valid color to be parsed and handled by Highcharts. Highcharts internally
9
14
  * supports hex colors like `#ffffff`, rgb colors like `rgb(255,255,255)` and
@@ -13,24 +18,89 @@
13
18
  *
14
19
  * @typedef {string} Highcharts.ColorString
15
20
  */
16
-
17
- 'use strict';
18
-
19
- import H from './Globals.js';
21
+ /**
22
+ * Gradient options instead of a solid color.
23
+ *
24
+ * @example
25
+ * // Linear gradient used as a color option
26
+ * color: {
27
+ * linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },
28
+ * stops: [
29
+ * [0, '#003399'], // start
30
+ * [0.5, '#ffffff'], // middle
31
+ * [1, '#3366AA'] // end
32
+ * ]
33
+ * }
34
+ * }
35
+ *
36
+ * @interface Highcharts.GradientColorObject
37
+ */ /**
38
+ * Holds an object that defines the start position and the end position relative
39
+ * to the shape.
40
+ * @name Highcharts.GradientColorObject#linearGradient
41
+ * @type {Highcharts.LinearGradientColorObject|undefined}
42
+ */ /**
43
+ * Holds an object that defines the center position and the radius.
44
+ * @name Highcharts.GradientColorObject#radialGradient
45
+ * @type {Highcharts.RadialGradientColorObject|undefined}
46
+ */ /**
47
+ * The first item in each tuple is the position in the gradient, where 0 is the
48
+ * start of the gradient and 1 is the end of the gradient. Multiple stops can be
49
+ * applied. The second item is the color for each stop. This color can also be
50
+ * given in the rgba format.
51
+ * @name Highcharts.GradientColorObject#stops
52
+ * @type {Array<Array<number,Highcharts.ColorString>>|undefined}
53
+ */
54
+ /**
55
+ * Defines the start position and the end position for a gradient relative
56
+ * to the shape. Start position (x1, y1) and end position (x2, y2) are relative
57
+ * to the shape, where 0 means top/left and 1 is bottom/right.
58
+ *
59
+ * @interface Highcharts.LinearGradientColorObject
60
+ */ /**
61
+ * Start horizontal position of the gradient. Float ranges 0-1.
62
+ * @name Highcharts.LinearGradientColorObject#x1
63
+ * @type {number}
64
+ */ /**
65
+ * End horizontal position of the gradient. Float ranges 0-1.
66
+ * @name Highcharts.LinearGradientColorObject#x2
67
+ * @type {number}
68
+ */ /**
69
+ * Start vertical position of the gradient. Float ranges 0-1.
70
+ * @name Highcharts.LinearGradientColorObject#y1
71
+ * @type {number}
72
+ */ /**
73
+ * End vertical position of the gradient. Float ranges 0-1.
74
+ * @name Highcharts.LinearGradientColorObject#y2
75
+ * @type {number}
76
+ */
77
+ /**
78
+ * Defines the center position and the radius for a gradient.
79
+ *
80
+ * @interface Highcharts.RadialGradientColorObject
81
+ */ /**
82
+ * Center horizontal position relative to the shape. Float ranges 0-1.
83
+ * @name Highcharts.RadialGradientColorObject#cx
84
+ * @type {number}
85
+ */ /**
86
+ * Center vertical position relative to the shape. Float ranges 0-1.
87
+ * @name Highcharts.RadialGradientColorObject#cy
88
+ * @type {number}
89
+ */ /**
90
+ * Radius relative to the shape. Float ranges 0-1.
91
+ * @name Highcharts.RadialGradientColorObject#r
92
+ * @type {number}
93
+ */
20
94
  import './Utilities.js';
21
-
22
- var isNumber = H.isNumber,
23
- merge = H.merge,
24
- pInt = H.pInt;
25
-
95
+ var isNumber = H.isNumber, merge = H.merge, pInt = H.pInt;
96
+ /* eslint-disable no-invalid-this, valid-jsdoc */
26
97
  /**
27
- * Handle color operations. The object methods are chainable.
98
+ * Handle color operations. Some object methods are chainable.
28
99
  *
29
- * @private
30
100
  * @class
31
101
  * @name Highcharts.Color
32
102
  *
33
- * @param {Highcharts.ColorString} input
103
+ * @param {Highcharts.ColorString|Highcharts.GradientColorObject} input
34
104
  * The input color in either rbga or hex format
35
105
  */
36
106
  H.Color = function (input) {
@@ -42,97 +112,85 @@ H.Color = function (input) {
42
112
  this.init(input);
43
113
  };
44
114
  H.Color.prototype = {
45
-
46
115
  // Collection of parsers. This can be extended from the outside by pushing
47
116
  // parsers to Highcharts.Color.prototype.parsers.
48
117
  parsers: [{
49
- // RGBA color
50
- regex: /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/, // eslint-disable-line security/detect-unsafe-regex
51
- parse: function (result) {
52
- return [
53
- pInt(result[1]),
54
- pInt(result[2]),
55
- pInt(result[3]),
56
- parseFloat(result[4], 10)
57
- ];
58
- }
59
- }, {
60
- // RGB color
61
- regex:
62
- /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
63
- parse: function (result) {
64
- return [pInt(result[1]), pInt(result[2]), pInt(result[3]), 1];
65
- }
66
- }],
67
-
118
+ // RGBA color
119
+ regex: /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,
120
+ parse: function (result) {
121
+ return [
122
+ pInt(result[1]),
123
+ pInt(result[2]),
124
+ pInt(result[3]),
125
+ parseFloat(result[4], 10)
126
+ ];
127
+ }
128
+ }, {
129
+ // RGB color
130
+ regex: /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
131
+ parse: function (result) {
132
+ return [pInt(result[1]), pInt(result[2]), pInt(result[3]), 1];
133
+ }
134
+ }],
68
135
  // Collection of named colors. Can be extended from the outside by adding
69
136
  // colors to Highcharts.Color.prototype.names.
70
137
  names: {
71
138
  white: '#ffffff',
72
139
  black: '#000000'
73
140
  },
74
-
75
141
  /**
76
142
  * Parse the input color to rgba array
77
143
  *
78
144
  * @private
79
145
  * @function Highcharts.Color#init
80
146
  *
81
- * @param {Highcharts.ColorString} input
147
+ * @param {Highcharts.ColorString|Highcharts.GradientColorObject} input
82
148
  * The input color in either rbga or hex format
149
+ *
150
+ * @return {void}
83
151
  */
84
152
  init: function (input) {
85
- var result,
86
- rgba,
87
- i,
88
- parser,
89
- len;
90
-
91
- this.input = input = this.names[
92
- input && input.toLowerCase ?
93
- input.toLowerCase() :
94
- ''
95
- ] || input;
96
-
153
+ var result, rgba, i, parser, len;
154
+ this.input = input = this.names[input && input.toLowerCase ?
155
+ input.toLowerCase() :
156
+ ''] || input;
97
157
  // Gradients
98
158
  if (input && input.stops) {
99
159
  this.stops = input.stops.map(function (stop) {
100
160
  return new H.Color(stop[1]);
101
161
  });
102
-
103
- // Solid colors
104
- } else {
105
-
162
+ // Solid colors
163
+ }
164
+ else {
106
165
  // Bitmasking as input[0] is not working for legacy IE.
107
- if (input && input.charAt && input.charAt() === '#') {
108
-
166
+ if (input &&
167
+ input.charAt &&
168
+ input.charAt() === '#') {
109
169
  len = input.length;
110
170
  input = parseInt(input.substr(1), 16);
111
-
112
171
  // Handle long-form, e.g. #AABBCC
113
172
  if (len === 7) {
114
-
115
173
  rgba = [
116
174
  (input & 0xFF0000) >> 16,
117
175
  (input & 0xFF00) >> 8,
118
176
  (input & 0xFF),
119
177
  1
120
178
  ];
121
-
122
- // Handle short-form, e.g. #ABC
123
- // In short form, the value is assumed to be the same
124
- // for both nibbles for each component. e.g. #ABC = #AABBCC
125
- } else if (len === 4) {
126
-
179
+ // Handle short-form, e.g. #ABC
180
+ // In short form, the value is assumed to be the same
181
+ // for both nibbles for each component. e.g. #ABC = #AABBCC
182
+ }
183
+ else if (len === 4) {
127
184
  rgba = [
128
- ((input & 0xF00) >> 4) | (input & 0xF00) >> 8,
129
- ((input & 0xF0) >> 4) | (input & 0xF0),
185
+ (((input & 0xF00) >> 4) |
186
+ (input & 0xF00) >> 8),
187
+ (((input & 0xF0) >> 4) |
188
+ (input & 0xF0)),
130
189
  ((input & 0xF) << 4) | (input & 0xF),
131
190
  1
132
191
  ];
133
192
  }
134
193
  }
135
-
136
194
  // Otherwise, check regex parsers
137
195
  if (!rgba) {
138
196
  i = this.parsers.length;
@@ -147,45 +205,46 @@ H.Color.prototype = {
147
205
  }
148
206
  this.rgba = rgba || [];
149
207
  },
150
-
151
208
  /**
152
- * Return the color in the specified format
209
+ * Return the color or gradient stops in the specified format
153
210
  *
154
211
  * @function Highcharts.Color#get
155
212
  *
156
- * @param {string} format
157
- * Possible values are 'a', 'rgb', undefined
213
+ * @param {string} [format]
214
+ * Possible values are 'a', 'rgb', 'rgba' (default).
158
215
  *
159
- * @return {Highcharts.ColorString}
160
- * This color as a string.
216
+ * @return {Highcharts.ColorString|Highcharts.GradientColorObject}
217
+ * This color as a string or gradient stops.
161
218
  */
162
219
  get: function (format) {
163
- var input = this.input,
164
- rgba = this.rgba,
165
- ret;
166
-
220
+ var input = this.input, rgba = this.rgba, ret;
167
221
  if (this.stops) {
168
222
  ret = merge(input);
169
223
  ret.stops = [].concat(ret.stops);
170
224
  this.stops.forEach(function (stop, i) {
171
- ret.stops[i] = [ret.stops[i][0], stop.get(format)];
225
+ ret.stops[i] = [
226
+ ret.stops[i][0],
227
+ stop.get(format)
228
+ ];
172
229
  });
173
-
174
- // it's NaN if gradient colors on a column chart
175
- } else if (rgba && isNumber(rgba[0])) {
230
+ // it's NaN if gradient colors on a column chart
231
+ }
232
+ else if (rgba && isNumber(rgba[0])) {
176
233
  if (format === 'rgb' || (!format && rgba[3] === 1)) {
177
234
  ret = 'rgb(' + rgba[0] + ',' + rgba[1] + ',' + rgba[2] + ')';
178
- } else if (format === 'a') {
235
+ }
236
+ else if (format === 'a') {
179
237
  ret = rgba[3];
180
- } else {
238
+ }
239
+ else {
181
240
  ret = 'rgba(' + rgba.join(',') + ')';
182
241
  }
183
- } else {
242
+ }
243
+ else {
184
244
  ret = input;
185
245
  }
186
246
  return ret;
187
247
  },
188
-
189
248
  /**
190
249
  * Brighten the color instance.
191
250
  *
@@ -194,22 +253,19 @@ H.Color.prototype = {
194
253
  * @param {number} alpha
195
254
  * The alpha value.
196
255
  *
197
- * @return {Highcharts.ColorString}
256
+ * @return {Highcharts.Color}
198
257
  * This color with modifications.
199
258
  */
200
259
  brighten: function (alpha) {
201
- var i,
202
- rgba = this.rgba;
203
-
260
+ var i, rgba = this.rgba;
204
261
  if (this.stops) {
205
262
  this.stops.forEach(function (stop) {
206
263
  stop.brighten(alpha);
207
264
  });
208
-
209
- } else if (isNumber(alpha) && alpha !== 0) {
265
+ }
266
+ else if (isNumber(alpha) && alpha !== 0) {
210
267
  for (i = 0; i < 3; i++) {
211
268
  rgba[i] += pInt(alpha * 255);
212
-
213
269
  if (rgba[i] < 0) {
214
270
  rgba[i] = 0;
215
271
  }
@@ -220,7 +276,6 @@ H.Color.prototype = {
220
276
  }
221
277
  return this;
222
278
  },
223
-
224
279
  /**
225
280
  * Set the color's opacity to a given alpha value.
226
281
  *
@@ -229,14 +284,13 @@ H.Color.prototype = {
229
284
  * @param {number} alpha
230
285
  * Opacity between 0 and 1.
231
286
  *
232
- * @return {Highcharts.ColorString}
287
+ * @return {Highcharts.Color}
233
288
  * Color with modifications.
234
289
  */
235
290
  setOpacity: function (alpha) {
236
291
  this.rgba[3] = alpha;
237
292
  return this;
238
293
  },
239
-
240
294
  /**
241
295
  * Return an intermediate color between two colors.
242
296
  *
@@ -255,17 +309,13 @@ H.Color.prototype = {
255
309
  tweenTo: function (to, pos) {
256
310
  // Check for has alpha, because rgba colors perform worse due to lack of
257
311
  // support in WebKit.
258
- var fromRgba = this.rgba,
259
- toRgba = to.rgba,
260
- hasAlpha,
261
- ret;
262
-
312
+ var fromRgba = this.rgba, toRgba = to.rgba, hasAlpha, ret;
263
313
  // Unsupported color, return to-color (#3920, #7034)
264
314
  if (!toRgba.length || !fromRgba || !fromRgba.length) {
265
315
  ret = to.input || 'none';
266
-
267
- // Interpolate
268
- } else {
316
+ // Interpolate
317
+ }
318
+ else {
269
319
  hasAlpha = (toRgba[3] !== 1 || fromRgba[3] !== 1);
270
320
  ret = (hasAlpha ? 'rgba(' : 'rgb(') +
271
321
  Math.round(toRgba[0] + (fromRgba[0] - toRgba[0]) * (1 - pos)) +
@@ -273,28 +323,25 @@ H.Color.prototype = {
273
323
  Math.round(toRgba[1] + (fromRgba[1] - toRgba[1]) * (1 - pos)) +
274
324
  ',' +
275
325
  Math.round(toRgba[2] + (fromRgba[2] - toRgba[2]) * (1 - pos)) +
276
- (
277
- hasAlpha ?
278
- (
279
- ',' +
280
- (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))
281
- ) :
282
- ''
283
- ) +
326
+ (hasAlpha ?
327
+ (',' +
328
+ (toRgba[3] + (fromRgba[3] - toRgba[3]) * (1 - pos))) :
329
+ '') +
284
330
  ')';
285
331
  }
286
332
  return ret;
287
333
  }
288
334
  };
289
-
290
335
  /**
291
336
  * Creates a color instance out of a color string.
292
337
  *
293
- * @private
294
338
  * @function Highcharts.color
295
339
  *
296
340
  * @param {Highcharts.ColorString} input
297
341
  * The input color in either rbga or hex format
342
+ *
343
+ * @return {Highcharts.Color}
344
+ * Color instance
298
345
  */
299
346
  H.color = function (input) {
300
347
  return new H.Color(input);
@@ -664,7 +664,9 @@ seriesType(
664
664
  // postprocessed for border width
665
665
  seriesBarW = series.barW =
666
666
  Math.max(seriesPointWidth, 1 + 2 * borderWidth),
667
- seriesXOffset = series.pointXOffset = metrics.offset;
667
+ seriesXOffset = series.pointXOffset = metrics.offset,
668
+ dataMin = series.dataMin,
669
+ dataMax = series.dataMax;
668
670
 
669
671
  if (chart.inverted) {
670
672
  translatedThreshold -= 0.5; // #3355
@@ -707,8 +709,12 @@ seriesType(
707
709
  // in visible range (#7046)
708
710
  if (
709
711
  point.y === threshold &&
710
- series.dataMax <= threshold &&
711
- yAxis.min < threshold // and if there's room for it (#7311)
712
+ series.dataMax <= threshold &&
713
+ // and if there's room for it (#7311)
714
+ yAxis.min < threshold &&
715
+ // if all points are the same value (i.e zero) not draw
716
+ // as negative points (#10646)
717
+ dataMin !== dataMax
712
718
  ) {
713
719
  up = !up;
714
720
  }
@@ -408,6 +408,14 @@
408
408
  * @default {"color": "contrast", "fontSize": "11px", "fontWeight": "bold", "textOutline": "1px contrast" }
409
409
  * @since 4.1.0
410
410
  *//**
411
+ * Options for a label text which should follow marker's shape. Border and
412
+ * background are disabled for a label that follows a path.
413
+ * **Note:** Only SVG-based renderer supports this option. Setting `useHTML` to
414
+ * true will disable this option.
415
+ * @name Highcharts.DataLabelsOptionsObject#textPath
416
+ * @type {Highcharts.DataLabelsTextPath|undefined}
417
+ * @since 7.1.0
418
+ *//**
411
419
  * Whether to
412
420
  * [use HTML](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)
413
421
  * to render the labels.
@@ -457,6 +465,27 @@
457
465
  * @typedef {"allow"|"justify"} Highcharts.DataLabelsOverflowValue
458
466
  */
459
467
 
468
+ /**
469
+ * Options for a label text which should follow marker's shape.
470
+ * **Note:** Only SVG-based renderer supports this option.
471
+ *
472
+ * @see {@link Highcharts.SeriesNetworkDataLabelsTextPath#linkTextPath}
473
+ * @see {@link Highcharts.SeriesNetworkDataLabelsTextPath#textPath}
474
+ *
475
+ * @interface Highcharts.DataLabelsTextPath
476
+ * @since 7.1.0
477
+ *//**
478
+ * Presentation attributes for the text path.
479
+ * @name Highcharts.DataLabelsTextPath#attributes
480
+ * @type {Highcharts.SVGAttributes}
481
+ * @since 7.1.0
482
+ *//**
483
+ * Enable or disable `textPath` option for link's or marker's data labels.
484
+ * @name Highcharts.DataLabelsTextPath#enabled
485
+ * @type {boolean|undefined}
486
+ * @since 7.1.0
487
+ */
488
+
460
489
  'use strict';
461
490
 
462
491
  import H from './Globals.js';
@@ -654,7 +683,7 @@ Series.prototype.drawDataLabels = function () {
654
683
  dataLabelsGroup,
655
684
  seriesAnimDuration = H.animObject(seriesOptions.animation).duration,
656
685
  fadeInDuration = Math.min(seriesAnimDuration, 200),
657
- defer = pick(
686
+ defer = !chart.renderer.forExport && pick(
658
687
  seriesDlOptions.defer,
659
688
  fadeInDuration > 0
660
689
  ),
@@ -953,7 +982,7 @@ Series.prototype.drawDataLabels = function () {
953
982
  dataLabel.add(dataLabelsGroup);
954
983
  }
955
984
 
956
- if (labelOptions.textPath) {
985
+ if (labelOptions.textPath && !labelOptions.useHTML) {
957
986
  dataLabel.setTextPath(
958
987
  (
959
988
  point.getDataLabelPath &&