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
@@ -0,0 +1,617 @@
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
+ /* global MSBlobBuilder */
13
+ 'use strict';
14
+ import Chart from '../../Core/Chart/Chart.js';
15
+ import D from '../../Core/DefaultOptions.js';
16
+ var defaultOptions = D.defaultOptions;
17
+ import DownloadURL from '../DownloadURL.js';
18
+ var downloadURL = DownloadURL.downloadURL;
19
+ import Exporting from '../Exporting/Exporting.js';
20
+ import H from '../../Core/Globals.js';
21
+ var win = H.win, doc = H.doc;
22
+ import OfflineExportingDefaults from './OfflineExportingDefaults.js';
23
+ import U from '../../Core/Utilities.js';
24
+ var addEvent = U.addEvent, error = U.error, extend = U.extend, fireEvent = U.fireEvent, merge = U.merge;
25
+ /* *
26
+ *
27
+ * Constants
28
+ *
29
+ * */
30
+ var composedClasses = [];
31
+ /* *
32
+ *
33
+ * Composition
34
+ *
35
+ * */
36
+ var OfflineExporting;
37
+ (function (OfflineExporting) {
38
+ /* *
39
+ *
40
+ * Declarations
41
+ *
42
+ * */
43
+ /* *
44
+ *
45
+ * Constants
46
+ *
47
+ * */
48
+ // Dummy object so we can reuse our canvas-tools.js without errors
49
+ OfflineExporting.CanVGRenderer = {}, OfflineExporting.domurl = win.URL || win.webkitURL || win,
50
+ // Milliseconds to defer image load event handlers to offset IE bug
51
+ OfflineExporting.loadEventDeferDelay = H.isMS ? 150 : 0;
52
+ /* *
53
+ *
54
+ * Functions
55
+ *
56
+ * */
57
+ /* eslint-disable valid-jsdoc */
58
+ /**
59
+ * Extends OfflineExporting with Chart.
60
+ * @private
61
+ */
62
+ function compose(ChartClass) {
63
+ if (composedClasses.indexOf(ChartClass) === -1) {
64
+ composedClasses.push(ChartClass);
65
+ var chartProto = ChartClass.prototype;
66
+ chartProto.getSVGForLocalExport = getSVGForLocalExport;
67
+ chartProto.exportChartLocal = exportChartLocal;
68
+ // Extend the default options to use the local exporter logic
69
+ merge(true, defaultOptions.exporting, OfflineExportingDefaults);
70
+ }
71
+ return ChartClass;
72
+ }
73
+ OfflineExporting.compose = compose;
74
+ /* eslint-disable valid-jsdoc */
75
+ /**
76
+ * Get data URL to an image of an SVG and call download on it options
77
+ * object:
78
+ * - **filename:** Name of resulting downloaded file without extension.
79
+ * Default is `chart`.
80
+ *
81
+ * - **type:** File type of resulting download. Default is `image/png`.
82
+ *
83
+ * - **scale:** Scaling factor of downloaded image compared to source.
84
+ * Default is `1`.
85
+ *
86
+ * - **libURL:** URL pointing to location of dependency scripts to download
87
+ * on demand. Default is the exporting.libURL option of the global
88
+ * Highcharts options pointing to our server.
89
+ *
90
+ * @function Highcharts.downloadSVGLocal
91
+ *
92
+ * @param {string} svg
93
+ * The generated SVG
94
+ *
95
+ * @param {Highcharts.ExportingOptions} options
96
+ * The exporting options
97
+ *
98
+ * @param {Function} failCallback
99
+ * The callback function in case of errors
100
+ *
101
+ * @param {Function} [successCallback]
102
+ * The callback function in case of success
103
+ *
104
+ * @return {void}
105
+ */
106
+ function downloadSVGLocal(svg, options, failCallback, successCallback) {
107
+ var dummySVGContainer = doc.createElement('div'), imageType = options.type || 'image/png', filename = ((options.filename || 'chart') +
108
+ '.' +
109
+ (imageType === 'image/svg+xml' ? 'svg' : imageType.split('/')[1])), scale = options.scale || 1;
110
+ var svgurl, blob, finallyHandler, libURL = (options.libURL || defaultOptions.exporting.libURL), objectURLRevoke = true;
111
+ // Allow libURL to end with or without fordward slash
112
+ libURL = libURL.slice(-1) !== '/' ? libURL + '/' : libURL;
113
+ /**
114
+ * @private
115
+ * @return {void}
116
+ */
117
+ var downloadPDF = function () {
118
+ dummySVGContainer.innerHTML = svg;
119
+ var textElements = dummySVGContainer.getElementsByTagName('text'),
120
+ // Copy style property to element from parents if it's not
121
+ // there. Searches up hierarchy until it finds prop, or hits the
122
+ // chart container.
123
+ setStylePropertyFromParents = function (el, propName) {
124
+ var curParent = el;
125
+ while (curParent && curParent !== dummySVGContainer) {
126
+ if (curParent.style[propName]) {
127
+ el.style[propName] =
128
+ curParent.style[propName];
129
+ break;
130
+ }
131
+ curParent = curParent.parentNode;
132
+ }
133
+ };
134
+ var titleElements;
135
+ // Workaround for the text styling. Making sure it does pick up
136
+ // settings for parent elements.
137
+ [].forEach.call(textElements, function (el) {
138
+ // Workaround for the text styling. making sure it does pick up@
139
+ // the root element
140
+ ['font-family', 'font-size'].forEach(function (property) {
141
+ setStylePropertyFromParents(el, property);
142
+ });
143
+ el.style['font-family'] = (el.style['font-family'] &&
144
+ el.style['font-family'].split(' ').splice(-1));
145
+ // Workaround for plotband with width, removing title from text
146
+ // nodes
147
+ titleElements = el.getElementsByTagName('title');
148
+ [].forEach.call(titleElements, function (titleElement) {
149
+ el.removeChild(titleElement);
150
+ });
151
+ });
152
+ var svgData = svgToPdf(dummySVGContainer.firstChild, 0);
153
+ try {
154
+ downloadURL(svgData, filename);
155
+ if (successCallback) {
156
+ successCallback();
157
+ }
158
+ }
159
+ catch (e) {
160
+ failCallback(e);
161
+ }
162
+ };
163
+ // Initiate download depending on file type
164
+ if (imageType === 'image/svg+xml') {
165
+ // SVG download. In this case, we want to use Microsoft specific
166
+ // Blob if available
167
+ try {
168
+ if (typeof win.navigator.msSaveOrOpenBlob !== 'undefined') {
169
+ blob = new MSBlobBuilder();
170
+ blob.append(svg);
171
+ svgurl = blob.getBlob('image/svg+xml');
172
+ }
173
+ else {
174
+ svgurl = svgToDataUrl(svg);
175
+ }
176
+ downloadURL(svgurl, filename);
177
+ if (successCallback) {
178
+ successCallback();
179
+ }
180
+ }
181
+ catch (e) {
182
+ failCallback(e);
183
+ }
184
+ }
185
+ else if (imageType === 'application/pdf') {
186
+ if (win.jsPDF && win.svg2pdf) {
187
+ downloadPDF();
188
+ }
189
+ else {
190
+ // Must load pdf libraries first. // Don't destroy the object
191
+ // URL yet since we are doing things asynchronously. A cleaner
192
+ // solution would be nice, but this will do for now.
193
+ objectURLRevoke = true;
194
+ getScript(libURL + 'jspdf.js', function () {
195
+ getScript(libURL + 'svg2pdf.js', function () {
196
+ downloadPDF();
197
+ });
198
+ });
199
+ }
200
+ }
201
+ else {
202
+ // PNG/JPEG download - create bitmap from SVG
203
+ svgurl = svgToDataUrl(svg);
204
+ finallyHandler = function () {
205
+ try {
206
+ OfflineExporting.domurl.revokeObjectURL(svgurl);
207
+ }
208
+ catch (e) {
209
+ // Ignore
210
+ }
211
+ };
212
+ // First, try to get PNG by rendering on canvas
213
+ imageToDataUrl(svgurl, imageType, {}, scale, function (imageURL) {
214
+ // Success
215
+ try {
216
+ downloadURL(imageURL, filename);
217
+ if (successCallback) {
218
+ successCallback();
219
+ }
220
+ }
221
+ catch (e) {
222
+ failCallback(e);
223
+ }
224
+ }, function () {
225
+ // Failed due to tainted canvas
226
+ // Create new and untainted canvas
227
+ 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 () {
228
+ var v = win.canvg.Canvg.fromString(ctx, svg);
229
+ v.start();
230
+ try {
231
+ downloadURL(win.navigator.msSaveOrOpenBlob ?
232
+ canvas.msToBlob() :
233
+ canvas.toDataURL(imageType), filename);
234
+ if (successCallback) {
235
+ successCallback();
236
+ }
237
+ }
238
+ catch (e) {
239
+ failCallback(e);
240
+ }
241
+ finally {
242
+ finallyHandler();
243
+ }
244
+ };
245
+ canvas.width = imageWidth;
246
+ canvas.height = imageHeight;
247
+ if (win.canvg) {
248
+ // Use preloaded canvg
249
+ downloadWithCanVG();
250
+ }
251
+ else {
252
+ // Must load canVG first. // Don't destroy the object
253
+ // URL yet since we are doing things asynchronously. A
254
+ // cleaner solution would be nice, but this will do for
255
+ // now.
256
+ objectURLRevoke = true;
257
+ getScript(libURL + 'canvg.js', function () {
258
+ downloadWithCanVG();
259
+ });
260
+ }
261
+ },
262
+ // No canvas support
263
+ failCallback,
264
+ // Failed to load image
265
+ failCallback,
266
+ // Finally
267
+ function () {
268
+ if (objectURLRevoke) {
269
+ finallyHandler();
270
+ }
271
+ });
272
+ }
273
+ }
274
+ OfflineExporting.downloadSVGLocal = downloadSVGLocal;
275
+ /* eslint-disable valid-jsdoc */
276
+ /**
277
+ * Exporting and offline-exporting modules required. Export a chart to
278
+ * an image locally in the user's browser.
279
+ *
280
+ * @function Highcharts.Chart#exportChartLocal
281
+ *
282
+ * @param {Highcharts.ExportingOptions} [exportingOptions]
283
+ * Exporting options, the same as in
284
+ * {@link Highcharts.Chart#exportChart}.
285
+ *
286
+ * @param {Highcharts.Options} [chartOptions]
287
+ * Additional chart options for the exported chart. For example
288
+ * a different background color can be added here, or
289
+ * `dataLabels` for export only.
290
+ *
291
+ * @return {void}
292
+ *
293
+ * @requires modules/exporting
294
+ */
295
+ function exportChartLocal(exportingOptions, chartOptions) {
296
+ var chart = this, options = merge(chart.options.exporting, exportingOptions), fallbackToExportServer = function (err) {
297
+ if (options.fallbackToExportServer === false) {
298
+ if (options.error) {
299
+ options.error(options, err);
300
+ }
301
+ else {
302
+ error(28, true); // Fallback disabled
303
+ }
304
+ }
305
+ else {
306
+ chart.exportChart(options);
307
+ }
308
+ }, svgSuccess = function (svg) {
309
+ // If SVG contains foreignObjects PDF fails in all browsers
310
+ // and all exports except SVG will fail in IE, as both CanVG
311
+ // and svg2pdf choke on this. Gracefully fall back.
312
+ if (svg.indexOf('<foreignObject') > -1 &&
313
+ options.type !== 'image/svg+xml' &&
314
+ (H.isMS || options.type === 'application/pdf')) {
315
+ fallbackToExportServer('Image type not supported' +
316
+ 'for charts with embedded HTML');
317
+ }
318
+ else {
319
+ OfflineExporting.downloadSVGLocal(svg, extend({ filename: chart.getFilename() }, options), fallbackToExportServer, function () { return fireEvent(chart, 'exportChartLocalSuccess'); });
320
+ }
321
+ },
322
+ // Return true if the SVG contains images with external data.
323
+ // With the boost module there are `image` elements with encoded
324
+ // PNGs, these are supported by svg2pdf and should
325
+ // pass (#10243).
326
+ hasExternalImages = function () {
327
+ return [].some.call(chart.container.getElementsByTagName('image'), function (image) {
328
+ var href = image.getAttribute('href');
329
+ return href !== '' && href.indexOf('data:') !== 0;
330
+ });
331
+ };
332
+ // If we are on IE and in styled mode, add a whitelist to the
333
+ // renderer for inline styles that we want to pass through. There
334
+ // are so many styles by default in IE that we don't want to
335
+ // blacklist them all.
336
+ if (H.isMS && chart.styledMode && !Exporting.inlineWhitelist.length) {
337
+ Exporting.inlineWhitelist.push(/^blockSize/, /^border/, /^caretColor/, /^color/, /^columnRule/, /^columnRuleColor/, /^cssFloat/, /^cursor/, /^fill$/, /^fillOpacity/, /^font/, /^inlineSize/, /^length/, /^lineHeight/, /^opacity/, /^outline/, /^parentRule/, /^rx$/, /^ry$/, /^stroke/, /^textAlign/, /^textAnchor/, /^textDecoration/, /^transform/, /^vectorEffect/, /^visibility/, /^x$/, /^y$/);
338
+ }
339
+ // Always fall back on:
340
+ // - MS browsers: Embedded images JPEG/PNG, or any PDF
341
+ // - Embedded images and PDF
342
+ if ((H.isMS &&
343
+ (options.type === 'application/pdf' ||
344
+ chart.container.getElementsByTagName('image').length &&
345
+ options.type !== 'image/svg+xml')) || (options.type === 'application/pdf' &&
346
+ hasExternalImages())) {
347
+ fallbackToExportServer('Image type not supported for this chart/browser.');
348
+ return;
349
+ }
350
+ chart.getSVGForLocalExport(options, chartOptions || {}, fallbackToExportServer, svgSuccess);
351
+ }
352
+ /**
353
+ * Downloads a script and executes a callback when done.
354
+ *
355
+ * @private
356
+ * @function getScript
357
+ * @param {string} scriptLocation
358
+ * @param {Function} callback
359
+ */
360
+ function getScript(scriptLocation, callback) {
361
+ var head = doc.getElementsByTagName('head')[0], script = doc.createElement('script');
362
+ script.type = 'text/javascript';
363
+ script.src = scriptLocation;
364
+ script.onload = callback;
365
+ script.onerror = function () {
366
+ error('Error loading script ' + scriptLocation);
367
+ };
368
+ head.appendChild(script);
369
+ }
370
+ OfflineExporting.getScript = getScript;
371
+ /**
372
+ * Get SVG of chart prepared for client side export. This converts
373
+ * embedded images in the SVG to data URIs. It requires the regular
374
+ * exporting module. The options and chartOptions arguments are passed
375
+ * to the getSVGForExport function.
376
+ *
377
+ * @private
378
+ * @function Highcharts.Chart#getSVGForLocalExport
379
+ * @param {Highcharts.ExportingOptions} options
380
+ * @param {Highcharts.Options} chartOptions
381
+ * @param {Function} failCallback
382
+ * @param {Function} successCallback
383
+ * @return {void}
384
+ */
385
+ function getSVGForLocalExport(options, chartOptions, failCallback, successCallback) {
386
+ var chart = this,
387
+ // After grabbing the SVG of the chart's copy container we need
388
+ // to do sanitation on the SVG
389
+ sanitize = function (svg) { return chart.sanitizeSVG(svg, chartCopyOptions); },
390
+ // When done with last image we have our SVG
391
+ checkDone = function () {
392
+ if (images && imagesEmbedded === images.length) {
393
+ successCallback(sanitize(chartCopyContainer.innerHTML));
394
+ }
395
+ },
396
+ // Success handler, we converted image to base64!
397
+ embeddedSuccess = function (imageURL, imageType, callbackArgs) {
398
+ ++imagesEmbedded;
399
+ // Change image href in chart copy
400
+ callbackArgs.imageElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', imageURL);
401
+ checkDone();
402
+ };
403
+ var el, i, l, chartCopyContainer, chartCopyOptions, href = null, images, imagesEmbedded = 0;
404
+ // Hook into getSVG to get a copy of the chart copy's
405
+ // container (#8273)
406
+ chart.unbindGetSVG = addEvent(chart, 'getSVG', function (e) {
407
+ chartCopyOptions = e.chartCopy.options;
408
+ chartCopyContainer = e.chartCopy.container.cloneNode(true);
409
+ images = chartCopyContainer && chartCopyContainer.getElementsByTagName('image') || [];
410
+ });
411
+ // Trigger hook to get chart copy
412
+ chart.getSVGForExport(options, chartOptions);
413
+ try {
414
+ // If there are no images to embed, the SVG is okay now.
415
+ if (!images || !images.length) {
416
+ // Use SVG of chart copy
417
+ successCallback(sanitize(chartCopyContainer.innerHTML));
418
+ return;
419
+ }
420
+ // Go through the images we want to embed
421
+ for (i = 0, l = images.length; i < l; ++i) {
422
+ el = images[i];
423
+ href = el.getAttributeNS('http://www.w3.org/1999/xlink', 'href');
424
+ if (href) {
425
+ OfflineExporting.imageToDataUrl(href, 'image/png', { imageElement: el }, options.scale, embeddedSuccess,
426
+ // Tainted canvas
427
+ failCallback,
428
+ // No canvas support
429
+ failCallback,
430
+ // Failed to load source
431
+ failCallback);
432
+ // Hidden, boosted series have blank href (#10243)
433
+ }
434
+ else {
435
+ ++imagesEmbedded;
436
+ el.parentNode.removeChild(el);
437
+ checkDone();
438
+ }
439
+ }
440
+ }
441
+ catch (e) {
442
+ failCallback(e);
443
+ }
444
+ // Clean up
445
+ chart.unbindGetSVG();
446
+ }
447
+ /**
448
+ * Get data:URL from image URL. Pass in callbacks to handle results.
449
+ *
450
+ * @private
451
+ * @function Highcharts.imageToDataUrl
452
+ *
453
+ * @param {string} imageURL
454
+ *
455
+ * @param {string} imageType
456
+ *
457
+ * @param {*} callbackArgs
458
+ * callbackArgs is used only by callbacks.
459
+ *
460
+ * @param {number} scale
461
+ *
462
+ * @param {Function} successCallback
463
+ * Receives four arguments: imageURL, imageType, callbackArgs,
464
+ * and scale.
465
+ *
466
+ * @param {Function} taintedCallback
467
+ * Receives four arguments: imageURL, imageType, callbackArgs,
468
+ * and scale.
469
+ *
470
+ * @param {Function} noCanvasSupportCallback
471
+ * Receives four arguments: imageURL, imageType, callbackArgs,
472
+ * and scale.
473
+ *
474
+ * @param {Function} failedLoadCallback
475
+ * Receives four arguments: imageURL, imageType, callbackArgs,
476
+ * and scale.
477
+ *
478
+ * @param {Function} [finallyCallback]
479
+ * finallyCallback is always called at the end of the process. All
480
+ * callbacks receive four arguments: imageURL, imageType,
481
+ * callbackArgs, and scale.
482
+ */
483
+ function imageToDataUrl(imageURL, imageType, callbackArgs, scale, successCallback, taintedCallback, noCanvasSupportCallback, failedLoadCallback, finallyCallback) {
484
+ var img = new win.Image(), taintedHandler;
485
+ var loadHandler = function () {
486
+ setTimeout(function () {
487
+ var canvas = doc.createElement('canvas'), ctx = canvas.getContext && canvas.getContext('2d');
488
+ var dataURL;
489
+ try {
490
+ if (!ctx) {
491
+ noCanvasSupportCallback(imageURL, imageType, callbackArgs, scale);
492
+ }
493
+ else {
494
+ canvas.height = img.height * scale;
495
+ canvas.width = img.width * scale;
496
+ ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
497
+ // Now we try to get the contents of the canvas.
498
+ try {
499
+ dataURL = canvas.toDataURL(imageType);
500
+ successCallback(dataURL, imageType, callbackArgs, scale);
501
+ }
502
+ catch (e) {
503
+ taintedHandler(imageURL, imageType, callbackArgs, scale);
504
+ }
505
+ }
506
+ }
507
+ finally {
508
+ if (finallyCallback) {
509
+ finallyCallback(imageURL, imageType, callbackArgs, scale);
510
+ }
511
+ }
512
+ // IE bug where image is not always ready despite calling load
513
+ // event.
514
+ }, OfflineExporting.loadEventDeferDelay);
515
+ },
516
+ // Image load failed (e.g. invalid URL)
517
+ errorHandler = function () {
518
+ failedLoadCallback(imageURL, imageType, callbackArgs, scale);
519
+ if (finallyCallback) {
520
+ finallyCallback(imageURL, imageType, callbackArgs, scale);
521
+ }
522
+ };
523
+ // This is called on load if the image drawing to canvas failed with a
524
+ // security error. We retry the drawing with crossOrigin set to
525
+ // Anonymous.
526
+ taintedHandler = function () {
527
+ img = new win.Image();
528
+ taintedHandler = taintedCallback;
529
+ // Must be set prior to loading image source
530
+ img.crossOrigin = 'Anonymous';
531
+ img.onload = loadHandler;
532
+ img.onerror = errorHandler;
533
+ img.src = imageURL;
534
+ };
535
+ img.onload = loadHandler;
536
+ img.onerror = errorHandler;
537
+ img.src = imageURL;
538
+ }
539
+ OfflineExporting.imageToDataUrl = imageToDataUrl;
540
+ /**
541
+ * Get blob URL from SVG code. Falls back to normal data URI.
542
+ *
543
+ * @private
544
+ * @function Highcharts.svgToDataURL
545
+ * @param {string} svg
546
+ * @return {string}
547
+ */
548
+ function svgToDataUrl(svg) {
549
+ // Webkit and not chrome
550
+ var userAgent = win.navigator.userAgent;
551
+ var webKit = (userAgent.indexOf('WebKit') > -1 &&
552
+ userAgent.indexOf('Chrome') < 0);
553
+ try {
554
+ // Safari requires data URI since it doesn't allow navigation to
555
+ // blob URLs. Firefox has an issue with Blobs and internal
556
+ // references, leading to gradients not working using Blobs (#4550).
557
+ // foreignObjects also dont work well in Blobs in Chrome (#14780).
558
+ if (!webKit && !H.isFirefox && svg.indexOf('<foreignObject') === -1) {
559
+ return OfflineExporting.domurl.createObjectURL(new win.Blob([svg], {
560
+ type: 'image/svg+xml;charset-utf-16'
561
+ }));
562
+ }
563
+ }
564
+ catch (e) {
565
+ // Ignore
566
+ }
567
+ return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);
568
+ }
569
+ OfflineExporting.svgToDataUrl = svgToDataUrl;
570
+ /* eslint-disable valid-jsdoc */
571
+ /**
572
+ * @private
573
+ */
574
+ function svgToPdf(svgElement, margin) {
575
+ var width = svgElement.width.baseVal.value + 2 * margin, height = svgElement.height.baseVal.value + 2 * margin, pdf = new win.jsPDF(// eslint-disable-line new-cap
576
+ height > width ? 'p' : 'l', // setting orientation to portrait if height exceeds width
577
+ 'pt', [width, height]);
578
+ // Workaround for #7090, hidden elements were drawn anyway. It comes
579
+ // down to https://github.com/yWorks/svg2pdf.js/issues/28. Check this
580
+ // later.
581
+ [].forEach.call(svgElement.querySelectorAll('*[visibility="hidden"]'), function (node) {
582
+ node.parentNode.removeChild(node);
583
+ });
584
+ // Workaround for #13948, multiple stops in linear gradient set to 0
585
+ // causing error in Acrobat
586
+ var gradients = svgElement.querySelectorAll('linearGradient');
587
+ for (var index = 0; index < gradients.length; index++) {
588
+ var gradient = gradients[index];
589
+ var stops = gradient.querySelectorAll('stop');
590
+ var i = 0;
591
+ while (i < stops.length &&
592
+ stops[i].getAttribute('offset') === '0' &&
593
+ stops[i + 1].getAttribute('offset') === '0') {
594
+ stops[i].remove();
595
+ i++;
596
+ }
597
+ }
598
+ // Workaround for #15135, zero width spaces, which Highcharts uses
599
+ // to break lines, are not correctly rendered in PDF. Replace it
600
+ // with a regular space and offset by some pixels to compensate.
601
+ [].forEach.call(svgElement.querySelectorAll('tspan'), function (tspan) {
602
+ if (tspan.textContent === '\u200B') {
603
+ tspan.textContent = ' ';
604
+ tspan.setAttribute('dx', -5);
605
+ }
606
+ });
607
+ win.svg2pdf(svgElement, pdf, { removeInvalid: true });
608
+ return pdf.output('datauristring');
609
+ }
610
+ OfflineExporting.svgToPdf = svgToPdf;
611
+ })(OfflineExporting || (OfflineExporting = {}));
612
+ /* *
613
+ *
614
+ * Default Export
615
+ *
616
+ * */
617
+ export default OfflineExporting;
@@ -0,0 +1,58 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2021 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
+ /* *
12
+ *
13
+ * Declarations
14
+ *
15
+ * */
16
+ var OfflineExportingDefaults = {
17
+ libURL: 'https://code.highcharts.com/9.2.2/lib/',
18
+ // When offline-exporting is loaded, redefine the menu item definitions
19
+ // related to download.
20
+ menuItemDefinitions: {
21
+ downloadPNG: {
22
+ textKey: 'downloadPNG',
23
+ onclick: function () {
24
+ this.exportChartLocal();
25
+ }
26
+ },
27
+ downloadJPEG: {
28
+ textKey: 'downloadJPEG',
29
+ onclick: function () {
30
+ this.exportChartLocal({
31
+ type: 'image/jpeg'
32
+ });
33
+ }
34
+ },
35
+ downloadSVG: {
36
+ textKey: 'downloadSVG',
37
+ onclick: function () {
38
+ this.exportChartLocal({
39
+ type: 'image/svg+xml'
40
+ });
41
+ }
42
+ },
43
+ downloadPDF: {
44
+ textKey: 'downloadPDF',
45
+ onclick: function () {
46
+ this.exportChartLocal({
47
+ type: 'application/pdf'
48
+ });
49
+ }
50
+ }
51
+ }
52
+ };
53
+ /* *
54
+ *
55
+ * Default Export
56
+ *
57
+ * */
58
+ export default OfflineExportingDefaults;
@@ -37,7 +37,7 @@ var VMLRenderer, VMLElement;
37
37
  * @apioption global.VMLRadialGradientURL
38
38
  */
39
39
  getOptions().global.VMLRadialGradientURL =
40
- 'http://code.highcharts.com/9.1.1/gfx/vml-radial-gradient.png';
40
+ 'http://code.highcharts.com/9.2.2/gfx/vml-radial-gradient.png';
41
41
  // Utilites
42
42
  if (doc && !doc.defaultView) {
43
43
  H.getStyle = U.getStyle = function getStyle(el, prop) {
@@ -333,7 +333,6 @@ var Pane = /** @class */ (function () {
333
333
  */
334
334
  Pane.prototype.update = function (options, redraw) {
335
335
  merge(true, this.options, options);
336
- merge(true, this.chart.options.pane, options); // #9917
337
336
  this.setOptions(this.options);
338
337
  this.render();
339
338
  this.chart.axes.forEach(function (axis) {