highcharts 9.1.1 → 9.2.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 (718) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +29 -28
  3. package/css/annotations/popup.scss +29 -27
  4. package/css/highcharts.css +15 -0
  5. package/css/highcharts.scss +12 -0
  6. package/css/stocktools/gui.css +1 -0
  7. package/css/stocktools/gui.scss +1 -0
  8. package/css/themes/dark-unica.css +15 -0
  9. package/css/themes/grid-light.css +15 -0
  10. package/css/themes/sand-signika.css +15 -0
  11. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -2
  12. package/es-modules/Accessibility/Components/LegendComponent.js +19 -8
  13. package/es-modules/Accessibility/Components/MenuComponent.js +19 -13
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +4 -8
  15. package/es-modules/Accessibility/FocusBorder.js +1 -3
  16. package/es-modules/Accessibility/Options/LangOptions.js +3 -3
  17. package/es-modules/Accessibility/Utils/Announcer.js +22 -5
  18. package/es-modules/Accessibility/Utils/ChartUtilities.js +6 -1
  19. package/es-modules/Core/Animation/AnimationUtilities.js +12 -4
  20. package/es-modules/Core/Animation/Fx.js +15 -12
  21. package/es-modules/Core/Axis/Axis.js +25 -13
  22. package/es-modules/Core/Axis/AxisDefaults.js +0 -1
  23. package/es-modules/Core/Axis/BrokenAxis.js +32 -15
  24. package/es-modules/Core/Axis/Color/ColorAxis.js +665 -0
  25. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +237 -0
  26. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +434 -0
  27. package/es-modules/Core/Axis/DateTimeAxis.js +163 -133
  28. package/es-modules/Core/Axis/GridAxis.js +8 -3
  29. package/es-modules/Core/Axis/LogarithmicAxis.js +159 -117
  30. package/es-modules/Core/Axis/OrdinalAxis.js +666 -460
  31. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +874 -0
  32. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +292 -0
  33. package/es-modules/Core/Axis/RadialAxis.js +858 -745
  34. package/es-modules/Core/Axis/ScrollbarAxis.js +7 -0
  35. package/es-modules/Core/Axis/StackingAxis.js +159 -140
  36. package/es-modules/Core/Axis/Tick.js +17 -27
  37. package/es-modules/Core/Chart/Chart.js +24 -38
  38. package/es-modules/Core/Chart/ChartDefaults.js +1 -1
  39. package/es-modules/Core/Chart/StockChart.js +12 -0
  40. package/es-modules/Core/Color/Color.js +96 -104
  41. package/es-modules/Core/DefaultOptions.js +269 -248
  42. package/es-modules/Core/Foundation.js +9 -8
  43. package/es-modules/Core/Geometry/CircleUtilities.js +385 -0
  44. package/es-modules/Core/Geometry/GeometryUtilities.js +83 -0
  45. package/es-modules/Core/Globals.js +23 -1
  46. package/es-modules/{Extensions/Ajax.js → Core/HttpUtilities.js} +86 -42
  47. package/es-modules/Core/{Legend.js → Legend/Legend.js} +142 -116
  48. package/es-modules/{Mixins → Core/Legend}/LegendSymbol.js +54 -38
  49. package/es-modules/Core/Navigator.js +3 -0
  50. package/es-modules/Core/Pointer.js +9 -0
  51. package/es-modules/Core/Renderer/HTML/AST.js +100 -82
  52. package/es-modules/Core/Renderer/HTML/HTMLElement.js +17 -7
  53. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +26 -9
  54. package/es-modules/Core/Renderer/RendererRegistry.js +9 -4
  55. package/es-modules/Core/Renderer/RendererUtilities.js +159 -0
  56. package/es-modules/Core/Renderer/SVG/SVGElement.js +13 -7
  57. package/es-modules/Core/Renderer/SVG/SVGLabel.js +9 -29
  58. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +2 -2
  59. package/es-modules/Core/Renderer/SVG/TextBuilder.js +18 -16
  60. package/es-modules/Core/Responsive.js +166 -148
  61. package/es-modules/Core/Series/DataLabel.js +564 -0
  62. package/es-modules/Core/Series/Point.js +233 -209
  63. package/es-modules/Core/Series/Series.js +174 -2339
  64. package/es-modules/Core/Series/SeriesDefaults.js +2293 -0
  65. package/es-modules/Core/Series/SeriesRegistry.js +3 -9
  66. package/es-modules/Core/Time.js +78 -2
  67. package/es-modules/Core/Tooltip.js +178 -236
  68. package/es-modules/Core/Utilities.js +409 -394
  69. package/es-modules/Extensions/Annotations/Annotations.js +102 -49
  70. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +9 -1
  71. package/es-modules/Extensions/Annotations/NavigationBindings.js +30 -25
  72. package/es-modules/Extensions/Annotations/Popup.js +16 -7
  73. package/es-modules/Extensions/Boost/BoostOverrides.js +5 -1
  74. package/es-modules/Extensions/Boost/WGLRenderer.js +5 -4
  75. package/es-modules/Extensions/Boost/WGLVBuffer.js +3 -0
  76. package/es-modules/Extensions/BoostCanvas.js +1 -1
  77. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  78. package/es-modules/Extensions/Data.js +82 -76
  79. package/es-modules/Extensions/DataGrouping.js +225 -184
  80. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  81. package/es-modules/Extensions/DraggablePoints.js +13 -5
  82. package/es-modules/Extensions/Drilldown.js +41 -14
  83. package/es-modules/Extensions/ExportData.js +7 -4
  84. package/es-modules/Extensions/Exporting/Exporting.js +1273 -0
  85. package/es-modules/Extensions/Exporting/ExportingDefaults.js +803 -0
  86. package/es-modules/Extensions/Exporting/ExportingSymbols.js +73 -0
  87. package/es-modules/Extensions/FullScreen.js +7 -5
  88. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  89. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +617 -0
  90. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +58 -0
  91. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  92. package/es-modules/Extensions/Pane.js +0 -1
  93. package/es-modules/Extensions/PatternFill.js +23 -10
  94. package/es-modules/Extensions/Polar.js +2 -1
  95. package/es-modules/Extensions/RangeSelector.js +1 -1
  96. package/es-modules/Extensions/Themes/Avocado.js +49 -20
  97. package/es-modules/Extensions/Themes/DarkBlue.js +226 -203
  98. package/es-modules/Extensions/Themes/DarkGreen.js +231 -203
  99. package/es-modules/Extensions/Themes/DarkUnica.js +201 -172
  100. package/es-modules/Extensions/Themes/Gray.js +228 -205
  101. package/es-modules/Extensions/Themes/Grid.js +109 -81
  102. package/es-modules/Extensions/Themes/GridLight.js +83 -55
  103. package/es-modules/Extensions/Themes/HighContrastDark.js +192 -164
  104. package/es-modules/Extensions/Themes/HighContrastLight.js +49 -21
  105. package/es-modules/Extensions/Themes/SandSignika.js +115 -86
  106. package/es-modules/Extensions/Themes/Skies.js +102 -74
  107. package/es-modules/Extensions/Themes/Sunset.js +47 -19
  108. package/es-modules/Mixins/ColorSeries.js +0 -1
  109. package/es-modules/Mixins/MultipleLines.js +6 -0
  110. package/es-modules/Mixins/TreeSeries.js +1 -1
  111. package/es-modules/Series/Area/AreaSeries.js +2 -2
  112. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +2 -2
  113. package/es-modules/Series/Bubble/BubbleLegendComposition.js +279 -0
  114. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +267 -0
  115. package/es-modules/Series/Bubble/BubbleLegendItem.js +472 -0
  116. package/es-modules/Series/Bubble/BubbleSeries.js +6 -2
  117. package/es-modules/Series/Column/ColumnDataLabel.js +109 -0
  118. package/es-modules/Series/Column/ColumnSeries.js +39 -26
  119. package/es-modules/Series/Column3D/Column3DComposition.js +5 -2
  120. package/es-modules/Series/Flags/FlagsSeries.js +8 -1
  121. package/es-modules/Series/Gantt/GanttSeries.js +3 -3
  122. package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -5
  123. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +60 -0
  124. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +277 -0
  125. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +83 -0
  126. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +370 -0
  127. package/es-modules/Series/Line/LineSeries.js +12 -8
  128. package/es-modules/Series/Map/MapSeries.js +5 -3
  129. package/es-modules/Series/MapBubble/MapBubbleSeries.js +6 -5
  130. package/es-modules/Series/OHLC/OHLCPoint.js +11 -0
  131. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
  132. package/es-modules/Series/Pie/PieDataLabel.js +448 -0
  133. package/es-modules/Series/Pie/PiePoint.js +35 -34
  134. package/es-modules/Series/Pie/PieSeries.js +19 -16
  135. package/es-modules/Series/Polygon/PolygonSeries.js +3 -3
  136. package/es-modules/Series/Sankey/SankeySeries.js +9 -7
  137. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
  138. package/es-modules/Series/Sunburst/SunburstSeries.js +1 -14
  139. package/es-modules/Series/Timeline/TimelinePoint.js +6 -0
  140. package/es-modules/Series/Timeline/TimelineSeries.js +14 -17
  141. package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
  142. package/es-modules/Series/Venn/VennSeries.js +4 -4
  143. package/es-modules/Series/Venn/VennUtils.js +10 -16
  144. package/es-modules/Series/Waterfall/WaterfallSeries.js +40 -35
  145. package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -0
  146. package/es-modules/Series/XRange/XRangeSeries.js +4 -2
  147. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +92 -75
  148. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +20 -8
  149. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +17 -4
  150. package/es-modules/Stock/StockToolsBindings.js +77 -38
  151. package/es-modules/Stock/StockToolsGui.js +28 -3
  152. package/es-modules/masters/highcharts-3d.src.js +1 -1
  153. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  154. package/es-modules/masters/highcharts-more.src.js +11 -7
  155. package/es-modules/masters/highcharts.src.js +25 -9
  156. package/es-modules/masters/highmaps.src.js +1 -1
  157. package/es-modules/masters/highstock.src.js +1 -1
  158. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  159. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  160. package/es-modules/masters/indicators/ao.src.js +1 -1
  161. package/es-modules/masters/indicators/apo.src.js +1 -1
  162. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  163. package/es-modules/masters/indicators/aroon.src.js +1 -1
  164. package/es-modules/masters/indicators/atr.src.js +1 -1
  165. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  166. package/es-modules/masters/indicators/cci.src.js +1 -1
  167. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  168. package/es-modules/masters/indicators/cmf.src.js +1 -1
  169. package/es-modules/masters/indicators/cmo.src.js +1 -1
  170. package/es-modules/masters/indicators/dema.src.js +1 -1
  171. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  172. package/es-modules/masters/indicators/dmi.src.js +1 -1
  173. package/es-modules/masters/indicators/dpo.src.js +1 -1
  174. package/es-modules/masters/indicators/ema.src.js +1 -1
  175. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  176. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  177. package/es-modules/masters/indicators/indicators.src.js +1 -1
  178. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  179. package/es-modules/masters/indicators/klinger.src.js +1 -1
  180. package/es-modules/masters/indicators/macd.src.js +1 -1
  181. package/es-modules/masters/indicators/mfi.src.js +1 -1
  182. package/es-modules/masters/indicators/momentum.src.js +1 -1
  183. package/es-modules/masters/indicators/natr.src.js +1 -1
  184. package/es-modules/masters/indicators/obv.src.js +1 -1
  185. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  186. package/es-modules/masters/indicators/ppo.src.js +1 -1
  187. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  188. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  189. package/es-modules/masters/indicators/psar.src.js +1 -1
  190. package/es-modules/masters/indicators/regressions.src.js +1 -1
  191. package/es-modules/masters/indicators/roc.src.js +1 -1
  192. package/es-modules/masters/indicators/rsi.src.js +1 -1
  193. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  194. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  195. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  196. package/es-modules/masters/indicators/tema.src.js +1 -1
  197. package/es-modules/masters/indicators/trendline.src.js +1 -1
  198. package/es-modules/masters/indicators/trix.src.js +1 -1
  199. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  200. package/es-modules/masters/indicators/vwap.src.js +1 -1
  201. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  202. package/es-modules/masters/indicators/wma.src.js +1 -1
  203. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  204. package/es-modules/masters/modules/accessibility.src.js +1 -1
  205. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  206. package/es-modules/masters/modules/annotations.src.js +1 -1
  207. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  208. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  209. package/es-modules/masters/modules/boost.src.js +1 -1
  210. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  211. package/es-modules/masters/modules/bullet.src.js +1 -1
  212. package/es-modules/masters/modules/coloraxis.src.js +6 -2
  213. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  214. package/es-modules/masters/modules/cylinder.src.js +1 -1
  215. package/es-modules/masters/modules/data.src.js +8 -1
  216. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  217. package/es-modules/masters/modules/debugger.src.js +1 -1
  218. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  219. package/es-modules/masters/modules/dotplot.src.js +1 -1
  220. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  221. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  222. package/es-modules/masters/modules/drilldown.src.js +1 -1
  223. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  224. package/es-modules/masters/modules/export-data.src.js +1 -1
  225. package/es-modules/masters/modules/exporting.src.js +10 -2
  226. package/es-modules/masters/modules/full-screen.src.js +1 -1
  227. package/es-modules/masters/modules/funnel.src.js +1 -1
  228. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  229. package/es-modules/masters/modules/gantt.src.js +9 -4
  230. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  231. package/es-modules/masters/modules/heatmap.src.js +6 -2
  232. package/es-modules/masters/modules/heikinashi.src.js +14 -0
  233. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  234. package/es-modules/masters/modules/hollowcandlestick.src.js +14 -0
  235. package/es-modules/masters/modules/item-series.src.js +1 -1
  236. package/es-modules/masters/modules/lollipop.src.js +1 -1
  237. package/es-modules/masters/modules/map.src.js +10 -6
  238. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  239. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  240. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  241. package/es-modules/masters/modules/offline-exporting.src.js +8 -2
  242. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  243. package/es-modules/masters/modules/oldie.src.js +1 -1
  244. package/es-modules/masters/modules/organization.src.js +1 -1
  245. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  246. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  247. package/es-modules/masters/modules/pareto.src.js +1 -1
  248. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  249. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  250. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  251. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  252. package/es-modules/masters/modules/sankey.src.js +1 -1
  253. package/es-modules/masters/modules/series-label.src.js +1 -1
  254. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  255. package/es-modules/masters/modules/sonification.src.js +1 -1
  256. package/es-modules/masters/modules/static-scale.src.js +1 -1
  257. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  258. package/es-modules/masters/modules/stock.src.js +3 -2
  259. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  260. package/es-modules/masters/modules/sunburst.src.js +1 -1
  261. package/es-modules/masters/modules/tilemap.src.js +1 -1
  262. package/es-modules/masters/modules/timeline.src.js +1 -1
  263. package/es-modules/masters/modules/treegrid.src.js +1 -1
  264. package/es-modules/masters/modules/treemap.src.js +1 -1
  265. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  266. package/es-modules/masters/modules/variwide.src.js +1 -1
  267. package/es-modules/masters/modules/vector.src.js +1 -1
  268. package/es-modules/masters/modules/venn.src.js +1 -1
  269. package/es-modules/masters/modules/windbarb.src.js +1 -1
  270. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  271. package/es-modules/masters/modules/xrange.src.js +1 -1
  272. package/es-modules/masters/themes/avocado.src.js +5 -2
  273. package/es-modules/masters/themes/dark-blue.src.js +5 -2
  274. package/es-modules/masters/themes/dark-green.src.js +5 -2
  275. package/es-modules/masters/themes/dark-unica.src.js +5 -2
  276. package/es-modules/masters/themes/gray.src.js +5 -2
  277. package/es-modules/masters/themes/grid-light.src.js +5 -2
  278. package/es-modules/masters/themes/grid.src.js +5 -2
  279. package/es-modules/masters/themes/high-contrast-dark.src.js +5 -2
  280. package/es-modules/masters/themes/high-contrast-light.src.js +5 -2
  281. package/es-modules/masters/themes/sand-signika.src.js +5 -2
  282. package/es-modules/masters/themes/skies.src.js +5 -2
  283. package/es-modules/masters/themes/sunset.src.js +5 -2
  284. package/gfx/stock-icons/annotations-hidden.svg +1 -1
  285. package/gfx/stock-icons/annotations-visible.svg +2 -2
  286. package/gfx/stock-icons/arrow-bottom.svg +1 -1
  287. package/gfx/stock-icons/arrow-left.svg +1 -1
  288. package/gfx/stock-icons/arrow-line.svg +1 -1
  289. package/gfx/stock-icons/arrow-ray.svg +1 -1
  290. package/gfx/stock-icons/arrow-right.svg +1 -1
  291. package/gfx/stock-icons/arrow-segment.svg +1 -2
  292. package/gfx/stock-icons/circle.svg +1 -1
  293. package/gfx/stock-icons/close.svg +2 -2
  294. package/gfx/stock-icons/crooked-3.svg +1 -1
  295. package/gfx/stock-icons/crooked-5.svg +1 -1
  296. package/gfx/stock-icons/current-price-hide.svg +3 -3
  297. package/gfx/stock-icons/current-price-show.svg +2 -2
  298. package/gfx/stock-icons/destroy.svg +1 -1
  299. package/gfx/stock-icons/drawing.svg +18 -0
  300. package/gfx/stock-icons/edit.svg +1 -1
  301. package/gfx/stock-icons/elliott-3.svg +1 -1
  302. package/gfx/stock-icons/elliott-5.svg +1 -1
  303. package/gfx/stock-icons/ellipse.svg +11 -0
  304. package/gfx/stock-icons/fibonacci-timezone.svg +16 -0
  305. package/gfx/stock-icons/fibonacci.svg +1 -1
  306. package/gfx/stock-icons/flag-basic.svg +1 -1
  307. package/gfx/stock-icons/flag-diamond.svg +2 -2
  308. package/gfx/stock-icons/flag-elipse.svg +1 -1
  309. package/gfx/stock-icons/flag-trapeze.svg +2 -2
  310. package/gfx/stock-icons/fullscreen.svg +4 -4
  311. package/gfx/stock-icons/horizontal-line.svg +1 -1
  312. package/gfx/stock-icons/indicators.svg +3 -3
  313. package/gfx/stock-icons/label.svg +4 -4
  314. package/gfx/stock-icons/line.svg +1 -1
  315. package/gfx/stock-icons/linear.svg +11 -0
  316. package/gfx/stock-icons/logarithmic.svg +1 -0
  317. package/gfx/stock-icons/measure-x.svg +2 -2
  318. package/gfx/stock-icons/measure-xy.svg +1 -1
  319. package/gfx/stock-icons/measure-y.svg +1 -1
  320. package/gfx/stock-icons/panning.svg +17 -0
  321. package/gfx/stock-icons/parallel-channel.svg +1 -1
  322. package/gfx/stock-icons/pitchfork.svg +1 -1
  323. package/gfx/stock-icons/ray.svg +1 -1
  324. package/gfx/stock-icons/rectangle.svg +1 -1
  325. package/gfx/stock-icons/remove-annotations.svg +2 -2
  326. package/gfx/stock-icons/save-chart.svg +3 -3
  327. package/gfx/stock-icons/segment.svg +1 -1
  328. package/gfx/stock-icons/separator.svg +1 -1
  329. package/gfx/stock-icons/series-candlestick.svg +1 -1
  330. package/gfx/stock-icons/series-heikin-ashi.svg +1 -0
  331. package/gfx/stock-icons/series-hlc.svg +1 -0
  332. package/gfx/stock-icons/series-hollow-candlestick.svg +1 -0
  333. package/gfx/stock-icons/series-line.svg +1 -1
  334. package/gfx/stock-icons/series-ohlc.svg +4 -4
  335. package/gfx/stock-icons/time-cycles.svg +35 -0
  336. package/gfx/stock-icons/vertical-arrow.svg +1 -1
  337. package/gfx/stock-icons/vertical-counter.svg +1 -1
  338. package/gfx/stock-icons/vertical-double-arrow.svg +1 -1
  339. package/gfx/stock-icons/vertical-label.svg +3 -3
  340. package/gfx/stock-icons/vertical-line.svg +1 -1
  341. package/gfx/stock-icons/zoom-x.svg +2 -2
  342. package/gfx/stock-icons/zoom-xy.svg +2 -2
  343. package/gfx/stock-icons/zoom-y.svg +2 -2
  344. package/highcharts-3d.js +24 -24
  345. package/highcharts-3d.js.map +1 -1
  346. package/highcharts-3d.src.js +6 -3
  347. package/highcharts-gantt.js +800 -792
  348. package/highcharts-gantt.js.map +1 -1
  349. package/highcharts-gantt.src.js +16535 -15918
  350. package/highcharts-more.d.ts +73 -1
  351. package/highcharts-more.js +193 -192
  352. package/highcharts-more.js.map +1 -1
  353. package/highcharts-more.src.d.ts +73 -1
  354. package/highcharts-more.src.js +8044 -7839
  355. package/highcharts.d.ts +3850 -177
  356. package/highcharts.js +589 -581
  357. package/highcharts.js.map +1 -1
  358. package/highcharts.src.d.ts +3850 -177
  359. package/highcharts.src.js +16635 -16060
  360. package/highmaps.js +708 -698
  361. package/highmaps.js.map +1 -1
  362. package/highmaps.src.js +17419 -16521
  363. package/highstock.js +782 -769
  364. package/highstock.js.map +1 -1
  365. package/highstock.src.js +28867 -27975
  366. package/indicators/acceleration-bands.js +9 -9
  367. package/indicators/acceleration-bands.js.map +1 -1
  368. package/indicators/acceleration-bands.src.js +7 -1
  369. package/indicators/accumulation-distribution.js +1 -1
  370. package/indicators/accumulation-distribution.src.js +1 -1
  371. package/indicators/ao.js +1 -1
  372. package/indicators/ao.src.js +1 -1
  373. package/indicators/apo.js +1 -1
  374. package/indicators/apo.src.js +1 -1
  375. package/indicators/aroon-oscillator.js +9 -9
  376. package/indicators/aroon-oscillator.js.map +1 -1
  377. package/indicators/aroon-oscillator.src.js +7 -1
  378. package/indicators/aroon.js +9 -9
  379. package/indicators/aroon.js.map +1 -1
  380. package/indicators/aroon.src.js +7 -1
  381. package/indicators/atr.js +1 -1
  382. package/indicators/atr.src.js +1 -1
  383. package/indicators/bollinger-bands.js +9 -9
  384. package/indicators/bollinger-bands.js.map +1 -1
  385. package/indicators/bollinger-bands.src.js +7 -1
  386. package/indicators/cci.js +1 -1
  387. package/indicators/cci.src.js +1 -1
  388. package/indicators/chaikin.js +1 -1
  389. package/indicators/chaikin.src.js +1 -1
  390. package/indicators/cmf.js +1 -1
  391. package/indicators/cmf.src.js +1 -1
  392. package/indicators/cmo.js +1 -1
  393. package/indicators/cmo.src.js +1 -1
  394. package/indicators/dema.js +1 -1
  395. package/indicators/dema.src.js +1 -1
  396. package/indicators/disparity-index.js +1 -1
  397. package/indicators/disparity-index.src.js +1 -1
  398. package/indicators/dmi.js +11 -11
  399. package/indicators/dmi.js.map +1 -1
  400. package/indicators/dmi.src.js +7 -1
  401. package/indicators/dpo.js +1 -1
  402. package/indicators/dpo.src.js +1 -1
  403. package/indicators/ema.js +1 -1
  404. package/indicators/ema.src.js +1 -1
  405. package/indicators/ichimoku-kinko-hyo.js +1 -1
  406. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  407. package/indicators/indicators-all.js +203 -200
  408. package/indicators/indicators-all.js.map +1 -1
  409. package/indicators/indicators-all.src.js +206 -104
  410. package/indicators/indicators.js +12 -11
  411. package/indicators/indicators.js.map +1 -1
  412. package/indicators/indicators.src.js +108 -90
  413. package/indicators/keltner-channels.js +9 -9
  414. package/indicators/keltner-channels.js.map +1 -1
  415. package/indicators/keltner-channels.src.js +7 -1
  416. package/indicators/klinger.js +13 -13
  417. package/indicators/klinger.js.map +1 -1
  418. package/indicators/klinger.src.js +7 -1
  419. package/indicators/macd.js +1 -1
  420. package/indicators/macd.src.js +1 -1
  421. package/indicators/mfi.js +1 -1
  422. package/indicators/mfi.src.js +1 -1
  423. package/indicators/momentum.js +1 -1
  424. package/indicators/momentum.src.js +1 -1
  425. package/indicators/natr.js +1 -1
  426. package/indicators/natr.src.js +1 -1
  427. package/indicators/obv.js +1 -1
  428. package/indicators/obv.src.js +1 -1
  429. package/indicators/pivot-points.js +1 -1
  430. package/indicators/pivot-points.src.js +1 -1
  431. package/indicators/ppo.js +1 -1
  432. package/indicators/ppo.src.js +1 -1
  433. package/indicators/price-channel.js +9 -9
  434. package/indicators/price-channel.js.map +1 -1
  435. package/indicators/price-channel.src.js +7 -1
  436. package/indicators/price-envelopes.js +1 -1
  437. package/indicators/price-envelopes.src.js +1 -1
  438. package/indicators/psar.js +1 -1
  439. package/indicators/psar.src.js +1 -1
  440. package/indicators/regressions.js +1 -1
  441. package/indicators/regressions.src.js +1 -1
  442. package/indicators/roc.js +1 -1
  443. package/indicators/roc.src.js +1 -1
  444. package/indicators/rsi.js +1 -1
  445. package/indicators/rsi.src.js +1 -1
  446. package/indicators/slow-stochastic.js +1 -1
  447. package/indicators/slow-stochastic.src.js +1 -1
  448. package/indicators/stochastic.js +10 -10
  449. package/indicators/stochastic.js.map +1 -1
  450. package/indicators/stochastic.src.js +7 -1
  451. package/indicators/supertrend.js +10 -10
  452. package/indicators/supertrend.js.map +1 -1
  453. package/indicators/supertrend.src.js +23 -10
  454. package/indicators/tema.js +1 -1
  455. package/indicators/tema.src.js +1 -1
  456. package/indicators/trendline.js +1 -1
  457. package/indicators/trendline.src.js +1 -1
  458. package/indicators/trix.js +1 -1
  459. package/indicators/trix.src.js +1 -1
  460. package/indicators/volume-by-price.js +17 -15
  461. package/indicators/volume-by-price.js.map +1 -1
  462. package/indicators/volume-by-price.src.js +71 -6
  463. package/indicators/vwap.js +1 -1
  464. package/indicators/vwap.src.js +1 -1
  465. package/indicators/williams-r.js +1 -1
  466. package/indicators/williams-r.src.js +1 -1
  467. package/indicators/wma.js +1 -1
  468. package/indicators/wma.src.js +1 -1
  469. package/indicators/zigzag.js +1 -1
  470. package/indicators/zigzag.src.js +1 -1
  471. package/modules/accessibility.js +203 -202
  472. package/modules/accessibility.js.map +1 -1
  473. package/modules/accessibility.src.js +89 -49
  474. package/modules/annotations-advanced.js +164 -163
  475. package/modules/annotations-advanced.js.map +1 -1
  476. package/modules/annotations-advanced.src.js +162 -87
  477. package/modules/annotations.js +111 -111
  478. package/modules/annotations.js.map +1 -1
  479. package/modules/annotations.src.js +162 -87
  480. package/modules/arrow-symbols.js +1 -1
  481. package/modules/arrow-symbols.src.js +1 -1
  482. package/modules/boost-canvas.js +2 -2
  483. package/modules/boost-canvas.js.map +1 -1
  484. package/modules/boost-canvas.src.js +2 -2
  485. package/modules/boost.js +52 -52
  486. package/modules/boost.js.map +1 -1
  487. package/modules/boost.src.js +15 -7
  488. package/modules/broken-axis.js +13 -13
  489. package/modules/broken-axis.js.map +1 -1
  490. package/modules/broken-axis.src.js +34 -15
  491. package/modules/bullet.js +1 -1
  492. package/modules/bullet.src.js +1 -1
  493. package/modules/coloraxis.js +24 -22
  494. package/modules/coloraxis.js.map +1 -1
  495. package/modules/coloraxis.src.js +954 -774
  496. package/modules/current-date-indicator.js +2 -2
  497. package/modules/current-date-indicator.js.map +1 -1
  498. package/modules/current-date-indicator.src.js +2 -2
  499. package/modules/cylinder.js +1 -1
  500. package/modules/cylinder.src.js +1 -1
  501. package/modules/data.js +33 -32
  502. package/modules/data.js.map +1 -1
  503. package/modules/data.src.js +182 -134
  504. package/modules/datagrouping.d.ts +5 -0
  505. package/modules/datagrouping.js +20 -20
  506. package/modules/datagrouping.js.map +1 -1
  507. package/modules/datagrouping.src.d.ts +5 -0
  508. package/modules/datagrouping.src.js +270 -228
  509. package/modules/debugger.js +3 -3
  510. package/modules/debugger.js.map +1 -1
  511. package/modules/debugger.src.js +3 -3
  512. package/modules/dependency-wheel.js +1 -1
  513. package/modules/dependency-wheel.src.js +1 -1
  514. package/modules/dotplot.js +1 -1
  515. package/modules/dotplot.src.js +1 -1
  516. package/modules/drag-panes.js +1 -1
  517. package/modules/drag-panes.src.js +1 -1
  518. package/modules/draggable-points.js +34 -34
  519. package/modules/draggable-points.js.map +1 -1
  520. package/modules/draggable-points.src.js +14 -5
  521. package/modules/drilldown.d.ts +27 -0
  522. package/modules/drilldown.js +18 -18
  523. package/modules/drilldown.js.map +1 -1
  524. package/modules/drilldown.src.d.ts +27 -0
  525. package/modules/drilldown.src.js +42 -16
  526. package/modules/dumbbell.js +1 -1
  527. package/modules/dumbbell.src.js +1 -1
  528. package/modules/export-data.js +20 -20
  529. package/modules/export-data.js.map +1 -1
  530. package/modules/export-data.src.js +8 -5
  531. package/modules/exporting.d.ts +29 -0
  532. package/modules/exporting.js +38 -35
  533. package/modules/exporting.js.map +1 -1
  534. package/modules/exporting.src.d.ts +29 -0
  535. package/modules/exporting.src.js +1937 -1614
  536. package/modules/full-screen.js +2 -2
  537. package/modules/full-screen.js.map +1 -1
  538. package/modules/full-screen.src.js +8 -6
  539. package/modules/funnel.js +1 -1
  540. package/modules/funnel.src.js +1 -1
  541. package/modules/funnel3d.js +1 -1
  542. package/modules/funnel3d.src.js +1 -1
  543. package/modules/gantt.js +218 -217
  544. package/modules/gantt.js.map +1 -1
  545. package/modules/gantt.src.js +74 -32
  546. package/modules/grid-axis.js +23 -22
  547. package/modules/grid-axis.js.map +1 -1
  548. package/modules/grid-axis.src.js +9 -4
  549. package/modules/heatmap.js +39 -37
  550. package/modules/heatmap.js.map +1 -1
  551. package/modules/heatmap.src.js +963 -779
  552. package/modules/heikinashi.js +17 -0
  553. package/modules/heikinashi.js.map +1 -0
  554. package/modules/heikinashi.src.js +394 -0
  555. package/modules/histogram-bellcurve.js +1 -1
  556. package/modules/histogram-bellcurve.src.js +1 -1
  557. package/modules/hollowcandlestick.js +18 -0
  558. package/modules/hollowcandlestick.js.map +1 -0
  559. package/modules/hollowcandlestick.src.js +504 -0
  560. package/modules/item-series.js +1 -1
  561. package/modules/item-series.src.js +1 -1
  562. package/modules/lollipop.js +1 -1
  563. package/modules/lollipop.src.js +1 -1
  564. package/modules/map.d.ts +9 -0
  565. package/modules/map.js +122 -119
  566. package/modules/map.js.map +1 -1
  567. package/modules/map.src.d.ts +9 -0
  568. package/modules/map.src.js +1655 -1332
  569. package/modules/marker-clusters.js +1 -1
  570. package/modules/marker-clusters.src.js +1 -1
  571. package/modules/networkgraph.js +1 -1
  572. package/modules/networkgraph.src.js +1 -1
  573. package/modules/no-data-to-display.js +3 -3
  574. package/modules/no-data-to-display.js.map +1 -1
  575. package/modules/no-data-to-display.src.js +2 -2
  576. package/modules/offline-exporting.js +18 -16
  577. package/modules/offline-exporting.js.map +1 -1
  578. package/modules/offline-exporting.src.js +623 -562
  579. package/modules/oldie-polyfills.js +1 -1
  580. package/modules/oldie-polyfills.src.js +1 -1
  581. package/modules/oldie.js +2 -2
  582. package/modules/oldie.src.js +2 -2
  583. package/modules/organization.js +1 -1
  584. package/modules/organization.src.js +1 -1
  585. package/modules/overlapping-datalabels.js +1 -1
  586. package/modules/overlapping-datalabels.src.js +1 -1
  587. package/modules/parallel-coordinates.js +1 -1
  588. package/modules/parallel-coordinates.src.js +1 -1
  589. package/modules/pareto.js +1 -1
  590. package/modules/pareto.src.js +1 -1
  591. package/modules/pathfinder.js +1 -1
  592. package/modules/pathfinder.src.js +1 -1
  593. package/modules/pattern-fill.js +14 -14
  594. package/modules/pattern-fill.js.map +1 -1
  595. package/modules/pattern-fill.src.js +24 -12
  596. package/modules/price-indicator.js +1 -1
  597. package/modules/price-indicator.src.js +1 -1
  598. package/modules/pyramid3d.js +1 -1
  599. package/modules/pyramid3d.src.js +1 -1
  600. package/modules/sankey.js +28 -28
  601. package/modules/sankey.js.map +1 -1
  602. package/modules/sankey.src.js +11 -11
  603. package/modules/series-label.js +1 -1
  604. package/modules/series-label.src.js +1 -1
  605. package/modules/solid-gauge.js +2 -2
  606. package/modules/solid-gauge.js.map +1 -1
  607. package/modules/solid-gauge.src.js +3 -3
  608. package/modules/sonification.js +1 -1
  609. package/modules/sonification.src.js +1 -1
  610. package/modules/static-scale.js +1 -1
  611. package/modules/static-scale.src.js +1 -1
  612. package/modules/stock-tools.js +159 -157
  613. package/modules/stock-tools.js.map +1 -1
  614. package/modules/stock-tools.src.js +253 -123
  615. package/modules/stock.d.ts +5 -0
  616. package/modules/stock.js +196 -191
  617. package/modules/stock.js.map +1 -1
  618. package/modules/stock.src.d.ts +5 -0
  619. package/modules/stock.src.js +7749 -7432
  620. package/modules/streamgraph.js +1 -1
  621. package/modules/streamgraph.src.js +1 -1
  622. package/modules/sunburst.js +5 -5
  623. package/modules/sunburst.js.map +1 -1
  624. package/modules/sunburst.src.js +6 -19
  625. package/modules/tilemap.js +1 -1
  626. package/modules/tilemap.src.js +1 -1
  627. package/modules/timeline.js +18 -17
  628. package/modules/timeline.js.map +1 -1
  629. package/modules/timeline.src.js +21 -24
  630. package/modules/treegrid.js +57 -57
  631. package/modules/treegrid.js.map +1 -1
  632. package/modules/treegrid.src.js +43 -19
  633. package/modules/treemap.js +5 -5
  634. package/modules/treemap.js.map +1 -1
  635. package/modules/treemap.src.js +5 -5
  636. package/modules/variable-pie.js +1 -1
  637. package/modules/variable-pie.src.js +1 -1
  638. package/modules/variwide.js +1 -1
  639. package/modules/variwide.src.js +1 -1
  640. package/modules/vector.js +1 -1
  641. package/modules/vector.src.js +1 -1
  642. package/modules/venn.js +31 -30
  643. package/modules/venn.js.map +1 -1
  644. package/modules/venn.src.js +508 -424
  645. package/modules/windbarb.js +1 -1
  646. package/modules/windbarb.src.js +1 -1
  647. package/modules/wordcloud.js +4 -4
  648. package/modules/wordcloud.js.map +1 -1
  649. package/modules/wordcloud.src.js +2 -1
  650. package/modules/xrange.js +17 -17
  651. package/modules/xrange.js.map +1 -1
  652. package/modules/xrange.src.js +7 -4
  653. package/package.json +1 -1
  654. package/themes/avocado.d.ts +6 -1
  655. package/themes/avocado.js +3 -3
  656. package/themes/avocado.js.map +1 -1
  657. package/themes/avocado.src.d.ts +6 -1
  658. package/themes/avocado.src.js +53 -22
  659. package/themes/dark-blue.d.ts +6 -1
  660. package/themes/dark-blue.js +3 -3
  661. package/themes/dark-blue.js.map +1 -1
  662. package/themes/dark-blue.src.d.ts +6 -1
  663. package/themes/dark-blue.src.js +231 -205
  664. package/themes/dark-green.d.ts +6 -1
  665. package/themes/dark-green.js +4 -4
  666. package/themes/dark-green.js.map +1 -1
  667. package/themes/dark-green.src.d.ts +6 -1
  668. package/themes/dark-green.src.js +236 -205
  669. package/themes/dark-unica.d.ts +6 -1
  670. package/themes/dark-unica.js +7 -7
  671. package/themes/dark-unica.js.map +1 -1
  672. package/themes/dark-unica.src.d.ts +6 -1
  673. package/themes/dark-unica.src.js +206 -174
  674. package/themes/gray.d.ts +6 -1
  675. package/themes/gray.js +3 -3
  676. package/themes/gray.js.map +1 -1
  677. package/themes/gray.src.d.ts +6 -1
  678. package/themes/gray.src.js +233 -207
  679. package/themes/grid-light.d.ts +6 -1
  680. package/themes/grid-light.js +4 -4
  681. package/themes/grid-light.js.map +1 -1
  682. package/themes/grid-light.src.d.ts +6 -1
  683. package/themes/grid-light.src.js +88 -57
  684. package/themes/grid.d.ts +6 -1
  685. package/themes/grid.js +3 -3
  686. package/themes/grid.js.map +1 -1
  687. package/themes/grid.src.d.ts +6 -1
  688. package/themes/grid.src.js +114 -83
  689. package/themes/high-contrast-dark.js +5 -4
  690. package/themes/high-contrast-dark.js.map +1 -1
  691. package/themes/high-contrast-dark.src.js +197 -166
  692. package/themes/high-contrast-light.js +3 -3
  693. package/themes/high-contrast-light.js.map +1 -1
  694. package/themes/high-contrast-light.src.js +54 -23
  695. package/themes/sand-signika.d.ts +6 -1
  696. package/themes/sand-signika.js +5 -5
  697. package/themes/sand-signika.js.map +1 -1
  698. package/themes/sand-signika.src.d.ts +6 -1
  699. package/themes/sand-signika.src.js +119 -88
  700. package/themes/skies.d.ts +6 -1
  701. package/themes/skies.js +5 -5
  702. package/themes/skies.js.map +1 -1
  703. package/themes/skies.src.d.ts +6 -1
  704. package/themes/skies.src.js +107 -76
  705. package/themes/sunset.d.ts +6 -1
  706. package/themes/sunset.js +3 -3
  707. package/themes/sunset.js.map +1 -1
  708. package/themes/sunset.src.d.ts +6 -1
  709. package/themes/sunset.src.js +52 -21
  710. package/es-modules/Core/Axis/ColorAxis.js +0 -1164
  711. package/es-modules/Core/Axis/HiddenAxis.js +0 -46
  712. package/es-modules/Core/Axis/PlotLineOrBand.js +0 -1051
  713. package/es-modules/Core/Series/DataLabels.js +0 -1173
  714. package/es-modules/Extensions/Exporting.js +0 -2024
  715. package/es-modules/Extensions/OfflineExporting.js +0 -621
  716. package/es-modules/Mixins/Geometry.js +0 -56
  717. package/es-modules/Mixins/GeometryCircles.js +0 -320
  718. package/es-modules/Series/Bubble/BubbleLegend.js +0 -893
@@ -1,621 +0,0 @@
1
- /* *
2
- *
3
- * Client side exporting module
4
- *
5
- * (c) 2015 Torstein Honsi / Oystein Moseng
6
- *
7
- * License: www.highcharts.com/license
8
- *
9
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
- *
11
- * */
12
- import Chart from '../Core/Chart/Chart.js';
13
- import H from '../Core/Globals.js';
14
- var win = H.win, doc = H.doc;
15
- import D from '../Core/DefaultOptions.js';
16
- var getOptions = D.getOptions;
17
- import SVGRenderer from '../Core/Renderer/SVG/SVGRenderer.js';
18
- import U from '../Core/Utilities.js';
19
- var addEvent = U.addEvent, error = U.error, extend = U.extend, fireEvent = U.fireEvent, merge = U.merge;
20
- import DownloadURL from '../Extensions/DownloadURL.js';
21
- var downloadURL = DownloadURL.downloadURL;
22
- var domurl = win.URL || win.webkitURL || win,
23
- // Milliseconds to defer image load event handlers to offset IE bug
24
- loadEventDeferDelay = H.isMS ? 150 : 0;
25
- // Dummy object so we can reuse our canvas-tools.js without errors
26
- H.CanVGRenderer = {};
27
- /* eslint-disable valid-jsdoc */
28
- /**
29
- * Downloads a script and executes a callback when done.
30
- *
31
- * @private
32
- * @function getScript
33
- * @param {string} scriptLocation
34
- * @param {Function} callback
35
- * @return {void}
36
- */
37
- function getScript(scriptLocation, callback) {
38
- var head = doc.getElementsByTagName('head')[0], script = doc.createElement('script');
39
- script.type = 'text/javascript';
40
- script.src = scriptLocation;
41
- script.onload = callback;
42
- script.onerror = function () {
43
- error('Error loading script ' + scriptLocation);
44
- };
45
- head.appendChild(script);
46
- }
47
- /**
48
- * Get blob URL from SVG code. Falls back to normal data URI.
49
- *
50
- * @private
51
- * @function Highcharts.svgToDataURL
52
- * @param {string} svg
53
- * @return {string}
54
- */
55
- function svgToDataUrl(svg) {
56
- // Webkit and not chrome
57
- var userAgent = win.navigator.userAgent;
58
- var webKit = (userAgent.indexOf('WebKit') > -1 &&
59
- userAgent.indexOf('Chrome') < 0);
60
- try {
61
- // Safari requires data URI since it doesn't allow navigation to blob
62
- // URLs. Firefox has an issue with Blobs and internal references,
63
- // leading to gradients not working using Blobs (#4550).
64
- // foreignObjects also dont work well in Blobs in Chrome (#14780).
65
- if (!webKit && !H.isFirefox && svg.indexOf('<foreignObject') === -1) {
66
- return domurl.createObjectURL(new win.Blob([svg], {
67
- type: 'image/svg+xml;charset-utf-16'
68
- }));
69
- }
70
- }
71
- catch (e) {
72
- // Ignore
73
- }
74
- return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);
75
- }
76
- /**
77
- * Get data:URL from image URL. Pass in callbacks to handle results.
78
- *
79
- * @private
80
- * @function Highcharts.imageToDataUrl
81
- *
82
- * @param {string} imageURL
83
- *
84
- * @param {string} imageType
85
- *
86
- * @param {*} callbackArgs
87
- * callbackArgs is used only by callbacks.
88
- *
89
- * @param {number} scale
90
- *
91
- * @param {Function} successCallback
92
- * Receives four arguments: imageURL, imageType, callbackArgs, and scale.
93
- *
94
- * @param {Function} taintedCallback
95
- * Receives four arguments: imageURL, imageType, callbackArgs, and scale.
96
- *
97
- * @param {Function} noCanvasSupportCallback
98
- * Receives four arguments: imageURL, imageType, callbackArgs, and scale.
99
- *
100
- * @param {Function} failedLoadCallback
101
- * Receives four arguments: imageURL, imageType, callbackArgs, and scale.
102
- *
103
- * @param {Function} [finallyCallback]
104
- * finallyCallback is always called at the end of the process. All
105
- * callbacks receive four arguments: imageURL, imageType, callbackArgs,
106
- * and scale.
107
- *
108
- * @return {void}
109
- */
110
- function imageToDataUrl(imageURL, imageType, callbackArgs, scale, successCallback, taintedCallback, noCanvasSupportCallback, failedLoadCallback, finallyCallback) {
111
- var img = new win.Image(), taintedHandler, loadHandler = function () {
112
- setTimeout(function () {
113
- var canvas = doc.createElement('canvas'), ctx = canvas.getContext && canvas.getContext('2d'), dataURL;
114
- try {
115
- if (!ctx) {
116
- noCanvasSupportCallback(imageURL, imageType, callbackArgs, scale);
117
- }
118
- else {
119
- canvas.height = img.height * scale;
120
- canvas.width = img.width * scale;
121
- ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
122
- // Now we try to get the contents of the canvas.
123
- try {
124
- dataURL = canvas.toDataURL(imageType);
125
- successCallback(dataURL, imageType, callbackArgs, scale);
126
- }
127
- catch (e) {
128
- taintedHandler(imageURL, imageType, callbackArgs, scale);
129
- }
130
- }
131
- }
132
- finally {
133
- if (finallyCallback) {
134
- finallyCallback(imageURL, imageType, callbackArgs, scale);
135
- }
136
- }
137
- // IE bug where image is not always ready despite calling load
138
- // event.
139
- }, loadEventDeferDelay);
140
- },
141
- // Image load failed (e.g. invalid URL)
142
- errorHandler = function () {
143
- failedLoadCallback(imageURL, imageType, callbackArgs, scale);
144
- if (finallyCallback) {
145
- finallyCallback(imageURL, imageType, callbackArgs, scale);
146
- }
147
- };
148
- // This is called on load if the image drawing to canvas failed with a
149
- // security error. We retry the drawing with crossOrigin set to Anonymous.
150
- taintedHandler = function () {
151
- img = new win.Image();
152
- taintedHandler = taintedCallback;
153
- // Must be set prior to loading image source
154
- img.crossOrigin = 'Anonymous';
155
- img.onload = loadHandler;
156
- img.onerror = errorHandler;
157
- img.src = imageURL;
158
- };
159
- img.onload = loadHandler;
160
- img.onerror = errorHandler;
161
- img.src = imageURL;
162
- }
163
- /* eslint-enable valid-jsdoc */
164
- /**
165
- * Get data URL to an image of an SVG and call download on it options object:
166
- *
167
- * - **filename:** Name of resulting downloaded file without extension. Default
168
- * is `chart`.
169
- *
170
- * - **type:** File type of resulting download. Default is `image/png`.
171
- *
172
- * - **scale:** Scaling factor of downloaded image compared to source. Default
173
- * is `1`.
174
- *
175
- * - **libURL:** URL pointing to location of dependency scripts to download on
176
- * demand. Default is the exporting.libURL option of the global Highcharts
177
- * options pointing to our server.
178
- *
179
- * @function Highcharts.downloadSVGLocal
180
- *
181
- * @param {string} svg
182
- * The generated SVG
183
- *
184
- * @param {Highcharts.ExportingOptions} options
185
- * The exporting options
186
- *
187
- * @param {Function} failCallback
188
- * The callback function in case of errors
189
- *
190
- * @param {Function} [successCallback]
191
- * The callback function in case of success
192
- *
193
- * @return {void}
194
- */
195
- function downloadSVGLocal(svg, options, failCallback, successCallback) {
196
- var svgurl, blob, objectURLRevoke = true, finallyHandler, libURL = (options.libURL || getOptions().exporting.libURL), dummySVGContainer = doc.createElement('div'), imageType = options.type || 'image/png', filename = ((options.filename || 'chart') +
197
- '.' +
198
- (imageType === 'image/svg+xml' ? 'svg' : imageType.split('/')[1])), scale = options.scale || 1;
199
- // Allow libURL to end with or without fordward slash
200
- libURL = libURL.slice(-1) !== '/' ? libURL + '/' : libURL;
201
- /* eslint-disable valid-jsdoc */
202
- /**
203
- * @private
204
- */
205
- function svgToPdf(svgElement, margin) {
206
- var width = svgElement.width.baseVal.value + 2 * margin, height = svgElement.height.baseVal.value + 2 * margin, pdf = new win.jsPDF(// eslint-disable-line new-cap
207
- height > width ? 'p' : 'l', // setting orientation to portrait if height exceeds width
208
- 'pt', [width, height]);
209
- // Workaround for #7090, hidden elements were drawn anyway. It comes
210
- // down to https://github.com/yWorks/svg2pdf.js/issues/28. Check this
211
- // later.
212
- [].forEach.call(svgElement.querySelectorAll('*[visibility="hidden"]'), function (node) {
213
- node.parentNode.removeChild(node);
214
- });
215
- // Workaround for #13948, multiple stops in linear gradient set to 0
216
- // causing error in Acrobat
217
- var gradients = svgElement.querySelectorAll('linearGradient');
218
- for (var index = 0; index < gradients.length; index++) {
219
- var gradient = gradients[index];
220
- var stops = gradient.querySelectorAll('stop');
221
- var i = 0;
222
- while (i < stops.length &&
223
- stops[i].getAttribute('offset') === '0' &&
224
- stops[i + 1].getAttribute('offset') === '0') {
225
- stops[i].remove();
226
- i++;
227
- }
228
- }
229
- // Workaround for #15135, zero width spaces, which Highcharts uses to
230
- // break lines, are not correctly rendered in PDF. Replace it with a
231
- // regular space and offset by some pixels to compensate.
232
- [].forEach.call(svgElement.querySelectorAll('tspan'), function (tspan) {
233
- if (tspan.textContent === '\u200B') {
234
- tspan.textContent = ' ';
235
- tspan.setAttribute('dx', -5);
236
- }
237
- });
238
- win.svg2pdf(svgElement, pdf, { removeInvalid: true });
239
- return pdf.output('datauristring');
240
- }
241
- /**
242
- * @private
243
- * @return {void}
244
- */
245
- function downloadPDF() {
246
- dummySVGContainer.innerHTML = svg;
247
- var textElements = dummySVGContainer.getElementsByTagName('text'), titleElements, svgData,
248
- // Copy style property to element from parents if it's not there.
249
- // Searches up hierarchy until it finds prop, or hits the chart
250
- // container.
251
- setStylePropertyFromParents = function (el, propName) {
252
- var curParent = el;
253
- while (curParent && curParent !== dummySVGContainer) {
254
- if (curParent.style[propName]) {
255
- el.style[propName] =
256
- curParent.style[propName];
257
- break;
258
- }
259
- curParent = curParent.parentNode;
260
- }
261
- };
262
- // Workaround for the text styling. Making sure it does pick up settings
263
- // for parent elements.
264
- [].forEach.call(textElements, function (el) {
265
- // Workaround for the text styling. making sure it does pick up the
266
- // root element
267
- ['font-family', 'font-size'].forEach(function (property) {
268
- setStylePropertyFromParents(el, property);
269
- });
270
- el.style['font-family'] = (el.style['font-family'] &&
271
- el.style['font-family'].split(' ').splice(-1));
272
- // Workaround for plotband with width, removing title from text
273
- // nodes
274
- titleElements = el.getElementsByTagName('title');
275
- [].forEach.call(titleElements, function (titleElement) {
276
- el.removeChild(titleElement);
277
- });
278
- });
279
- svgData = svgToPdf(dummySVGContainer.firstChild, 0);
280
- try {
281
- downloadURL(svgData, filename);
282
- if (successCallback) {
283
- successCallback();
284
- }
285
- }
286
- catch (e) {
287
- failCallback(e);
288
- }
289
- }
290
- /* eslint-enable valid-jsdoc */
291
- // Initiate download depending on file type
292
- if (imageType === 'image/svg+xml') {
293
- // SVG download. In this case, we want to use Microsoft specific Blob if
294
- // available
295
- try {
296
- if (typeof win.navigator.msSaveOrOpenBlob !== 'undefined') {
297
- blob = new MSBlobBuilder();
298
- blob.append(svg);
299
- svgurl = blob.getBlob('image/svg+xml');
300
- }
301
- else {
302
- svgurl = svgToDataUrl(svg);
303
- }
304
- downloadURL(svgurl, filename);
305
- if (successCallback) {
306
- successCallback();
307
- }
308
- }
309
- catch (e) {
310
- failCallback(e);
311
- }
312
- }
313
- else if (imageType === 'application/pdf') {
314
- if (win.jsPDF && win.svg2pdf) {
315
- downloadPDF();
316
- }
317
- else {
318
- // Must load pdf libraries first. // Don't destroy the object URL
319
- // yet since we are doing things asynchronously. A cleaner solution
320
- // would be nice, but this will do for now.
321
- objectURLRevoke = true;
322
- getScript(libURL + 'jspdf.js', function () {
323
- getScript(libURL + 'svg2pdf.js', function () {
324
- downloadPDF();
325
- });
326
- });
327
- }
328
- }
329
- else {
330
- // PNG/JPEG download - create bitmap from SVG
331
- svgurl = svgToDataUrl(svg);
332
- finallyHandler = function () {
333
- try {
334
- domurl.revokeObjectURL(svgurl);
335
- }
336
- catch (e) {
337
- // Ignore
338
- }
339
- };
340
- // First, try to get PNG by rendering on canvas
341
- imageToDataUrl(svgurl, imageType, {}, scale, function (imageURL) {
342
- // Success
343
- try {
344
- downloadURL(imageURL, filename);
345
- if (successCallback) {
346
- successCallback();
347
- }
348
- }
349
- catch (e) {
350
- failCallback(e);
351
- }
352
- }, function () {
353
- // Failed due to tainted canvas
354
- // Create new and untainted canvas
355
- var canvas = doc.createElement('canvas'), ctx = canvas.getContext('2d'), imageWidth = svg.match(/^<svg[^>]*width\s*=\s*\"?(\d+)\"?[^>]*>/)[1] * scale, imageHeight = svg.match(/^<svg[^>]*height\s*=\s*\"?(\d+)\"?[^>]*>/)[1] * scale, downloadWithCanVG = function () {
356
- var v = win.canvg.Canvg.fromString(ctx, svg);
357
- v.start();
358
- try {
359
- downloadURL(win.navigator.msSaveOrOpenBlob ?
360
- canvas.msToBlob() :
361
- canvas.toDataURL(imageType), filename);
362
- if (successCallback) {
363
- successCallback();
364
- }
365
- }
366
- catch (e) {
367
- failCallback(e);
368
- }
369
- finally {
370
- finallyHandler();
371
- }
372
- };
373
- canvas.width = imageWidth;
374
- canvas.height = imageHeight;
375
- if (win.canvg) {
376
- // Use preloaded canvg
377
- downloadWithCanVG();
378
- }
379
- else {
380
- // Must load canVG first. // Don't destroy the object URL
381
- // yet since we are doing things asynchronously. A cleaner
382
- // solution would be nice, but this will do for now.
383
- objectURLRevoke = true;
384
- getScript(libURL + 'canvg.js', function () {
385
- downloadWithCanVG();
386
- });
387
- }
388
- },
389
- // No canvas support
390
- failCallback,
391
- // Failed to load image
392
- failCallback,
393
- // Finally
394
- function () {
395
- if (objectURLRevoke) {
396
- finallyHandler();
397
- }
398
- });
399
- }
400
- }
401
- /* eslint-disable valid-jsdoc */
402
- /**
403
- * Get SVG of chart prepared for client side export. This converts embedded
404
- * images in the SVG to data URIs. It requires the regular exporting module. The
405
- * options and chartOptions arguments are passed to the getSVGForExport
406
- * function.
407
- *
408
- * @private
409
- * @function Highcharts.Chart#getSVGForLocalExport
410
- * @param {Highcharts.ExportingOptions} options
411
- * @param {Highcharts.Options} chartOptions
412
- * @param {Function} failCallback
413
- * @param {Function} successCallback
414
- * @return {void}
415
- */
416
- Chart.prototype.getSVGForLocalExport = function (options, chartOptions, failCallback, successCallback) {
417
- var chart = this, images, imagesEmbedded = 0, chartCopyContainer, chartCopyOptions, el, i, l, href,
418
- // After grabbing the SVG of the chart's copy container we need to do
419
- // sanitation on the SVG
420
- sanitize = function (svg) {
421
- return chart.sanitizeSVG(svg, chartCopyOptions);
422
- },
423
- // When done with last image we have our SVG
424
- checkDone = function () {
425
- if (imagesEmbedded === images.length) {
426
- successCallback(sanitize(chartCopyContainer.innerHTML));
427
- }
428
- },
429
- // Success handler, we converted image to base64!
430
- embeddedSuccess = function (imageURL, imageType, callbackArgs) {
431
- ++imagesEmbedded;
432
- // Change image href in chart copy
433
- callbackArgs.imageElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', imageURL);
434
- checkDone();
435
- };
436
- // Hook into getSVG to get a copy of the chart copy's container (#8273)
437
- chart.unbindGetSVG = addEvent(chart, 'getSVG', function (e) {
438
- chartCopyOptions = e.chartCopy.options;
439
- chartCopyContainer = e.chartCopy.container.cloneNode(true);
440
- });
441
- // Trigger hook to get chart copy
442
- chart.getSVGForExport(options, chartOptions);
443
- images = chartCopyContainer.getElementsByTagName('image');
444
- try {
445
- // If there are no images to embed, the SVG is okay now.
446
- if (!images.length) {
447
- // Use SVG of chart copy
448
- successCallback(sanitize(chartCopyContainer.innerHTML));
449
- return;
450
- }
451
- // Go through the images we want to embed
452
- for (i = 0, l = images.length; i < l; ++i) {
453
- el = images[i];
454
- href = el.getAttributeNS('http://www.w3.org/1999/xlink', 'href');
455
- if (href) {
456
- imageToDataUrl(href, 'image/png', { imageElement: el }, options.scale, embeddedSuccess,
457
- // Tainted canvas
458
- failCallback,
459
- // No canvas support
460
- failCallback,
461
- // Failed to load source
462
- failCallback);
463
- // Hidden, boosted series have blank href (#10243)
464
- }
465
- else {
466
- ++imagesEmbedded;
467
- el.parentNode.removeChild(el);
468
- checkDone();
469
- }
470
- }
471
- }
472
- catch (e) {
473
- failCallback(e);
474
- }
475
- // Clean up
476
- chart.unbindGetSVG();
477
- };
478
- /* eslint-enable valid-jsdoc */
479
- /**
480
- * Exporting and offline-exporting modules required. Export a chart to an image
481
- * locally in the user's browser.
482
- *
483
- * @function Highcharts.Chart#exportChartLocal
484
- *
485
- * @param {Highcharts.ExportingOptions} [exportingOptions]
486
- * Exporting options, the same as in
487
- * {@link Highcharts.Chart#exportChart}.
488
- *
489
- * @param {Highcharts.Options} [chartOptions]
490
- * Additional chart options for the exported chart. For example a
491
- * different background color can be added here, or `dataLabels`
492
- * for export only.
493
- *
494
- * @return {void}
495
- *
496
- * @requires modules/exporting
497
- */
498
- Chart.prototype.exportChartLocal = function (exportingOptions, chartOptions) {
499
- var chart = this, options = merge(chart.options.exporting, exportingOptions), fallbackToExportServer = function (err) {
500
- if (options.fallbackToExportServer === false) {
501
- if (options.error) {
502
- options.error(options, err);
503
- }
504
- else {
505
- error(28, true); // Fallback disabled
506
- }
507
- }
508
- else {
509
- chart.exportChart(options);
510
- }
511
- }, svgSuccess = function (svg) {
512
- // If SVG contains foreignObjects PDF fails in all browsers and all
513
- // exports except SVG will fail in IE, as both CanVG and svg2pdf
514
- // choke on this. Gracefully fall back.
515
- if (svg.indexOf('<foreignObject') > -1 &&
516
- options.type !== 'image/svg+xml' &&
517
- (H.isMS || options.type === 'application/pdf')) {
518
- fallbackToExportServer('Image type not supported' +
519
- 'for charts with embedded HTML');
520
- }
521
- else {
522
- downloadSVGLocal(svg, extend({ filename: chart.getFilename() }, options), fallbackToExportServer, function () { return fireEvent(chart, 'exportChartLocalSuccess'); });
523
- }
524
- },
525
- // Return true if the SVG contains images with external data. With the
526
- // boost module there are `image` elements with encoded PNGs, these are
527
- // supported by svg2pdf and should pass (#10243).
528
- hasExternalImages = function () {
529
- return [].some.call(chart.container.getElementsByTagName('image'), function (image) {
530
- var href = image.getAttribute('href');
531
- return href !== '' && href.indexOf('data:') !== 0;
532
- });
533
- };
534
- // If we are on IE and in styled mode, add a whitelist to the renderer for
535
- // inline styles that we want to pass through. There are so many styles by
536
- // default in IE that we don't want to blacklist them all.
537
- if (H.isMS && chart.styledMode) {
538
- SVGRenderer.prototype.inlineWhitelist = [
539
- /^blockSize/,
540
- /^border/,
541
- /^caretColor/,
542
- /^color/,
543
- /^columnRule/,
544
- /^columnRuleColor/,
545
- /^cssFloat/,
546
- /^cursor/,
547
- /^fill$/,
548
- /^fillOpacity/,
549
- /^font/,
550
- /^inlineSize/,
551
- /^length/,
552
- /^lineHeight/,
553
- /^opacity/,
554
- /^outline/,
555
- /^parentRule/,
556
- /^rx$/,
557
- /^ry$/,
558
- /^stroke/,
559
- /^textAlign/,
560
- /^textAnchor/,
561
- /^textDecoration/,
562
- /^transform/,
563
- /^vectorEffect/,
564
- /^visibility/,
565
- /^x$/,
566
- /^y$/
567
- ];
568
- }
569
- // Always fall back on:
570
- // - MS browsers: Embedded images JPEG/PNG, or any PDF
571
- // - Embedded images and PDF
572
- if ((H.isMS &&
573
- (options.type === 'application/pdf' ||
574
- chart.container.getElementsByTagName('image').length &&
575
- options.type !== 'image/svg+xml')) || (options.type === 'application/pdf' &&
576
- hasExternalImages())) {
577
- fallbackToExportServer('Image type not supported for this chart/browser.');
578
- return;
579
- }
580
- chart.getSVGForLocalExport(options, chartOptions || {}, fallbackToExportServer, svgSuccess);
581
- };
582
- // Extend the default options to use the local exporter logic
583
- merge(true, getOptions().exporting, {
584
- libURL: 'https://code.highcharts.com/9.1.1/lib/',
585
- // When offline-exporting is loaded, redefine the menu item definitions
586
- // related to download.
587
- menuItemDefinitions: {
588
- downloadPNG: {
589
- textKey: 'downloadPNG',
590
- onclick: function () {
591
- this.exportChartLocal();
592
- }
593
- },
594
- downloadJPEG: {
595
- textKey: 'downloadJPEG',
596
- onclick: function () {
597
- this.exportChartLocal({
598
- type: 'image/jpeg'
599
- });
600
- }
601
- },
602
- downloadSVG: {
603
- textKey: 'downloadSVG',
604
- onclick: function () {
605
- this.exportChartLocal({
606
- type: 'image/svg+xml'
607
- });
608
- }
609
- },
610
- downloadPDF: {
611
- textKey: 'downloadPDF',
612
- onclick: function () {
613
- this.exportChartLocal({
614
- type: 'application/pdf'
615
- });
616
- }
617
- }
618
- }
619
- });
620
- // Compatibility
621
- H.downloadSVGLocal = downloadSVGLocal;
@@ -1,56 +0,0 @@
1
- /* *
2
- *
3
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
4
- *
5
- * */
6
- 'use strict';
7
- /**
8
- * Calculates the center between a list of points.
9
- * @private
10
- * @param {Array<Highcharts.PositionObject>} points
11
- * A list of points to calculate the center of.
12
- * @return {Highcharts.PositionObject}
13
- * Calculated center
14
- */
15
- var getCenterOfPoints = function getCenterOfPoints(points) {
16
- var sum = points.reduce(function (sum, point) {
17
- sum.x += point.x;
18
- sum.y += point.y;
19
- return sum;
20
- }, { x: 0, y: 0 });
21
- return {
22
- x: sum.x / points.length,
23
- y: sum.y / points.length
24
- };
25
- };
26
- /**
27
- * Calculates the distance between two points based on their x and y
28
- * coordinates.
29
- * @private
30
- * @param {Highcharts.PositionObject} p1
31
- * The x and y coordinates of the first point.
32
- * @param {Highcharts.PositionObject} p2
33
- * The x and y coordinates of the second point.
34
- * @return {number}
35
- * Returns the distance between the points.
36
- */
37
- var getDistanceBetweenPoints = function getDistanceBetweenPoints(p1, p2) {
38
- return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
39
- };
40
- /**
41
- * Calculates the angle between two points.
42
- * @todo add unit tests.
43
- * @private
44
- * @param {Highcharts.PositionObject} p1 The first point.
45
- * @param {Highcharts.PositionObject} p2 The second point.
46
- * @return {number} Returns the angle in radians.
47
- */
48
- var getAngleBetweenPoints = function getAngleBetweenPoints(p1, p2) {
49
- return Math.atan2(p2.x - p1.x, p2.y - p1.y);
50
- };
51
- var geometry = {
52
- getAngleBetweenPoints: getAngleBetweenPoints,
53
- getCenterOfPoints: getCenterOfPoints,
54
- getDistanceBetweenPoints: getDistanceBetweenPoints
55
- };
56
- export default geometry;