highcharts 12.2.0 → 12.4.0

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 (1311) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +86 -45
  3. package/css/highcharts.css +40 -35
  4. package/css/stocktools/gui.css +28 -11
  5. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +3 -3
  6. package/es-modules/Accessibility/Components/LegendComponent.js +10 -1
  7. package/es-modules/Accessibility/Components/MenuComponent.js +26 -23
  8. package/es-modules/Accessibility/Components/NavigatorComponent.js +5 -1
  9. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +3 -1
  10. package/es-modules/Accessibility/FocusBorder.js +4 -0
  11. package/es-modules/Accessibility/HighContrastMode.js +0 -5
  12. package/es-modules/Accessibility/Options/A11yDefaults.js +12 -0
  13. package/es-modules/Core/Axis/Axis.js +4 -3
  14. package/es-modules/Core/Axis/Axis3DComposition.js +0 -3
  15. package/es-modules/Core/Axis/AxisDefaults.js +5 -8
  16. package/es-modules/Core/Axis/BrokenAxis.js +114 -90
  17. package/es-modules/Core/Axis/Color/ColorAxis.js +3 -3
  18. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +2 -3
  19. package/es-modules/Core/Axis/OrdinalAxis.js +19 -12
  20. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +15 -2
  21. package/es-modules/Core/Axis/RadialAxis.js +18 -7
  22. package/es-modules/Core/Axis/ScrollbarAxis.js +19 -17
  23. package/es-modules/Core/Axis/Stacking/StackingAxis.js +0 -1
  24. package/es-modules/Core/Axis/Tick.js +1 -1
  25. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +36 -51
  26. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +39 -17
  27. package/es-modules/Core/Axis/WaterfallAxis.js +4 -4
  28. package/es-modules/Core/Chart/Chart.js +41 -34
  29. package/es-modules/Core/Chart/ChartDefaults.js +16 -2
  30. package/es-modules/Core/Chart/GanttChart.js +4 -2
  31. package/es-modules/Core/Chart/StockChart.js +42 -49
  32. package/es-modules/Core/Color/Color.js +4 -8
  33. package/es-modules/Core/Defaults.js +16 -7
  34. package/es-modules/Core/Geometry/CircleUtilities.js +3 -1
  35. package/es-modules/Core/Globals.js +1 -1
  36. package/es-modules/Core/HttpUtilities.js +45 -38
  37. package/es-modules/Core/Legend/Legend.js +8 -7
  38. package/es-modules/Core/Pointer.js +17 -9
  39. package/es-modules/Core/Renderer/HTML/AST.js +15 -15
  40. package/es-modules/Core/Renderer/HTML/HTMLElement.js +8 -3
  41. package/es-modules/Core/Renderer/SVG/SVGElement.js +2 -2
  42. package/es-modules/Core/Renderer/SVG/SVGLabel.js +10 -1
  43. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +10 -7
  44. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  45. package/es-modules/Core/Series/DataLabel.js +4 -2
  46. package/es-modules/Core/Series/Point.js +9 -0
  47. package/es-modules/Core/Series/Series.js +17 -7
  48. package/es-modules/Core/Series/SeriesDefaults.js +1 -3
  49. package/es-modules/Core/Series/SeriesRegistry.js +8 -1
  50. package/es-modules/Core/Templating.js +6 -5
  51. package/es-modules/Core/Tooltip.js +3 -1
  52. package/es-modules/Data/Connectors/CSVConnector.js +32 -15
  53. package/es-modules/Data/Connectors/DataConnector.js +107 -12
  54. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +29 -17
  55. package/es-modules/Data/Connectors/HTMLTableConnector.js +3 -3
  56. package/es-modules/Data/Connectors/JSONConnector.js +37 -17
  57. package/es-modules/Data/Converters/HTMLTableConverter.js +2 -2
  58. package/es-modules/Data/Converters/JSONConverter.js +0 -1
  59. package/es-modules/Data/DataPool.js +15 -4
  60. package/es-modules/Data/DataTable.js +1 -2
  61. package/es-modules/Data/Formula/FormulaParser.js +33 -1
  62. package/es-modules/Data/Formula/FormulaProcessor.js +97 -45
  63. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  64. package/es-modules/Data/Modifiers/FilterModifier.js +168 -0
  65. package/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
  66. package/es-modules/Data/Modifiers/SortModifier.js +12 -3
  67. package/es-modules/Extensions/Annotations/Annotation.js +10 -7
  68. package/es-modules/Extensions/Annotations/AnnotationChart.js +7 -3
  69. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +38 -12
  70. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +10 -3
  71. package/es-modules/Extensions/Annotations/MockPoint.js +6 -3
  72. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
  73. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +10 -4
  74. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
  75. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +0 -3
  76. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +97 -94
  77. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +43 -36
  78. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +86 -82
  79. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +74 -71
  80. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +17 -3
  81. package/es-modules/Extensions/Annotations/Types/Measure.js +229 -226
  82. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +39 -40
  83. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +56 -52
  84. package/es-modules/Extensions/Annotations/Types/Tunnel.js +80 -76
  85. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +57 -53
  86. package/es-modules/Extensions/Boost/Boost.js +5 -1
  87. package/es-modules/Extensions/Boost/BoostSeries.js +53 -21
  88. package/es-modules/Extensions/Boost/WGLRenderer.js +30 -21
  89. package/es-modules/Extensions/Boost/WGLShader.js +18 -5
  90. package/es-modules/Extensions/BoostCanvas.js +0 -5
  91. package/es-modules/Extensions/BorderRadius.js +6 -2
  92. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +1 -1
  93. package/es-modules/Extensions/DownloadURL.js +43 -8
  94. package/es-modules/Extensions/ExportData/ExportData.js +875 -781
  95. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +67 -13
  96. package/es-modules/Extensions/Exporting/Exporting.js +1177 -546
  97. package/es-modules/Extensions/Exporting/ExportingDefaults.js +52 -36
  98. package/es-modules/Extensions/Exporting/Fullscreen.js +2 -2
  99. package/es-modules/Extensions/NonCartesianSeriesZoom/NonCartesianSeriesZoom.js +311 -0
  100. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +254 -575
  101. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +9 -38
  102. package/es-modules/Extensions/Pane/Pane.js +1 -1
  103. package/es-modules/Extensions/Pane/PaneComposition.js +19 -12
  104. package/es-modules/Extensions/Pane/PaneDefaults.js +9 -1
  105. package/es-modules/Extensions/ScrollablePlotArea.js +29 -21
  106. package/es-modules/Extensions/Sonification/Sonification.js +1 -1
  107. package/es-modules/Extensions/StaticScale.js +13 -11
  108. package/es-modules/Extensions/TextPath.js +2 -2
  109. package/es-modules/Extensions/Themes/Adaptive.js +1009 -0
  110. package/es-modules/Maps/MapNavigation.js +1 -1
  111. package/es-modules/Series/Bellcurve/BellcurveSeries.js +16 -9
  112. package/es-modules/Series/Bubble/BubblePoint.js +2 -2
  113. package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -2
  114. package/es-modules/Series/DataModifyComposition.js +0 -2
  115. package/es-modules/Series/DragNodesComposition.js +4 -0
  116. package/es-modules/Series/DrawPointUtilities.js +1 -1
  117. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +2 -0
  118. package/es-modules/Series/GraphLayoutComposition.js +2 -1
  119. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -2
  120. package/es-modules/Series/Histogram/HistogramSeries.js +19 -17
  121. package/es-modules/Series/Item/ItemSeries.js +1 -1
  122. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -0
  123. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  124. package/es-modules/Series/Pie/PieSeries.js +2 -2
  125. package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -2
  126. package/es-modules/Series/PolarComposition.js +37 -2
  127. package/es-modules/Series/SeriesOnPointComposition.js +0 -1
  128. package/es-modules/Series/SimulationSeriesUtilities.js +7 -0
  129. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +7 -2
  130. package/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +13 -0
  131. package/es-modules/Series/Treegraph/TreegraphLayout.js +10 -4
  132. package/es-modules/Series/Treegraph/TreegraphSeries.js +3 -1
  133. package/es-modules/Series/Treemap/TreemapSeries.js +4 -4
  134. package/es-modules/Series/Variwide/VariwideComposition.js +9 -11
  135. package/es-modules/Series/Variwide/VariwideSeries.js +8 -1
  136. package/es-modules/Series/Waterfall/WaterfallSeries.js +12 -17
  137. package/es-modules/Series/Wordcloud/WordcloudSeries.js +87 -10
  138. package/es-modules/Series/XRange/XRangePoint.js +2 -1
  139. package/es-modules/Shared/BaseForm.js +6 -3
  140. package/es-modules/Shared/TimeBase.js +5 -1
  141. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
  142. package/es-modules/Stock/Navigator/NavigatorComposition.js +2 -2
  143. package/es-modules/Stock/Scrollbar/Scrollbar.js +5 -7
  144. package/es-modules/Stock/StockTools/StockToolbar.js +1 -1
  145. package/es-modules/Stock/StockTools/StockToolsBindings.js +34 -113
  146. package/es-modules/masters/highcharts-3d.src.js +3 -1
  147. package/es-modules/masters/highcharts-gantt.src.js +8 -2
  148. package/es-modules/masters/highcharts-more.src.js +2 -2
  149. package/es-modules/masters/highcharts.src.js +2 -2
  150. package/es-modules/masters/highmaps.src.js +2 -2
  151. package/es-modules/masters/highstock.src.js +2 -2
  152. package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
  153. package/es-modules/masters/i18n/fr-FR.src.js +1 -1
  154. package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
  155. package/es-modules/masters/i18n/nb-NO.src.js +1 -1
  156. package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
  157. package/es-modules/masters/i18n/zh-CN.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 +0 -3
  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/arc-diagram.src.js +1 -1
  208. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  209. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  210. package/es-modules/masters/modules/boost.src.js +1 -1
  211. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  212. package/es-modules/masters/modules/bullet.src.js +1 -1
  213. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  214. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  215. package/es-modules/masters/modules/cylinder.src.js +1 -1
  216. package/es-modules/masters/modules/data-tools.src.d.ts +1 -0
  217. package/es-modules/masters/modules/data-tools.src.js +2 -1
  218. package/es-modules/masters/modules/data.src.js +1 -1
  219. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  220. package/es-modules/masters/modules/debugger.src.js +1 -1
  221. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  222. package/es-modules/masters/modules/dotplot.src.js +1 -1
  223. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  224. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  225. package/es-modules/masters/modules/drilldown.src.js +3 -1
  226. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  227. package/es-modules/masters/modules/export-data.src.js +3 -3
  228. package/es-modules/masters/modules/exporting.src.js +5 -1
  229. package/es-modules/masters/modules/flowmap.src.js +1 -1
  230. package/es-modules/masters/modules/full-screen.src.js +1 -1
  231. package/es-modules/masters/modules/funnel.src.js +1 -1
  232. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  233. package/es-modules/masters/modules/gantt.src.js +1 -1
  234. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  235. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  236. package/es-modules/masters/modules/heatmap.src.js +1 -1
  237. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  238. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  239. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  240. package/es-modules/masters/modules/item-series.src.js +1 -1
  241. package/es-modules/masters/modules/lollipop.src.js +1 -1
  242. package/es-modules/masters/modules/map.src.js +1 -1
  243. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  244. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  245. package/es-modules/masters/modules/navigator.src.js +1 -1
  246. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  247. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  248. package/es-modules/masters/modules/non-cartesian-zoom.src.d.ts +2 -0
  249. package/es-modules/masters/modules/non-cartesian-zoom.src.js +18 -0
  250. package/es-modules/masters/modules/offline-exporting.src.js +2 -2
  251. package/es-modules/masters/modules/organization.src.js +1 -1
  252. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  253. package/es-modules/masters/modules/pareto.src.js +1 -1
  254. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  255. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  256. package/es-modules/masters/modules/pictorial.src.js +1 -1
  257. package/es-modules/masters/modules/pointandfigure.src.js +1 -1
  258. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  259. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  260. package/es-modules/masters/modules/renko.src.js +1 -1
  261. package/es-modules/masters/modules/sankey.src.js +1 -1
  262. package/es-modules/masters/modules/series-label.src.js +1 -1
  263. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  264. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  265. package/es-modules/masters/modules/sonification.src.js +1 -1
  266. package/es-modules/masters/modules/static-scale.src.js +1 -1
  267. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  268. package/es-modules/masters/modules/stock.src.js +1 -1
  269. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  270. package/es-modules/masters/modules/sunburst.src.js +1 -1
  271. package/es-modules/masters/modules/textpath.src.js +1 -1
  272. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  273. package/es-modules/masters/modules/tilemap.src.js +1 -1
  274. package/es-modules/masters/modules/timeline.src.js +1 -1
  275. package/es-modules/masters/modules/treegraph.src.js +1 -1
  276. package/es-modules/masters/modules/treegrid.src.js +1 -1
  277. package/es-modules/masters/modules/treemap.src.js +1 -1
  278. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  279. package/es-modules/masters/modules/variwide.src.js +1 -1
  280. package/es-modules/masters/modules/vector.src.js +1 -1
  281. package/es-modules/masters/modules/venn.src.js +1 -1
  282. package/es-modules/masters/modules/windbarb.src.js +1 -1
  283. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  284. package/es-modules/masters/modules/xrange.src.js +1 -1
  285. package/es-modules/masters/standalone-navigator.src.js +7 -6
  286. package/es-modules/masters/themes/adaptive.src.d.ts +2 -0
  287. package/es-modules/masters/themes/adaptive.src.js +15 -0
  288. package/es-modules/masters/themes/avocado.src.js +1 -1
  289. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  290. package/es-modules/masters/themes/brand-light.src.js +1 -1
  291. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  292. package/es-modules/masters/themes/dark-green.src.js +1 -1
  293. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  294. package/es-modules/masters/themes/gray.src.js +1 -1
  295. package/es-modules/masters/themes/grid-light.src.js +1 -1
  296. package/es-modules/masters/themes/grid.src.js +1 -1
  297. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  298. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  299. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  300. package/es-modules/masters/themes/skies.src.js +1 -1
  301. package/es-modules/masters/themes/sunset.src.js +1 -1
  302. package/es-modules/tsconfig.tsbuildinfo +1 -1
  303. package/esm/highcharts-3d.js +11 -1
  304. package/esm/highcharts-3d.src.js +3 -4
  305. package/esm/highcharts-gantt.js +14 -1
  306. package/esm/highcharts-gantt.src.js +8 -2
  307. package/esm/highcharts-more.js +9 -1
  308. package/esm/highcharts-more.src.js +516 -57
  309. package/esm/highcharts.js +9 -2
  310. package/esm/highcharts.src.js +273 -168
  311. package/esm/highmaps.js +8 -1
  312. package/esm/highmaps.src.js +2 -2
  313. package/esm/highstock.js +8 -1
  314. package/esm/highstock.src.js +2 -2
  315. package/esm/i18n/fr-FR.js +13 -1
  316. package/esm/i18n/fr-FR.src.js +1 -1
  317. package/esm/i18n/nb-NO.js +13 -1
  318. package/esm/i18n/nb-NO.src.js +1 -1
  319. package/esm/i18n/zh-CN.js +13 -1
  320. package/esm/i18n/zh-CN.src.js +1 -1
  321. package/esm/indicators/acceleration-bands.js +12 -1
  322. package/esm/indicators/acceleration-bands.src.js +1 -1
  323. package/esm/indicators/accumulation-distribution.js +12 -1
  324. package/esm/indicators/accumulation-distribution.src.js +1 -1
  325. package/esm/indicators/ao.js +12 -1
  326. package/esm/indicators/ao.src.js +1 -1
  327. package/esm/indicators/apo.js +12 -1
  328. package/esm/indicators/apo.src.js +1 -1
  329. package/esm/indicators/aroon-oscillator.js +12 -1
  330. package/esm/indicators/aroon-oscillator.src.js +1 -1
  331. package/esm/indicators/aroon.js +12 -1
  332. package/esm/indicators/aroon.src.js +1 -1
  333. package/esm/indicators/atr.js +12 -1
  334. package/esm/indicators/atr.src.js +1 -1
  335. package/esm/indicators/bollinger-bands.js +12 -1
  336. package/esm/indicators/bollinger-bands.src.js +1 -1
  337. package/esm/indicators/cci.js +12 -1
  338. package/esm/indicators/cci.src.js +1 -1
  339. package/esm/indicators/chaikin.js +12 -1
  340. package/esm/indicators/chaikin.src.js +1 -1
  341. package/esm/indicators/cmf.js +11 -1
  342. package/esm/indicators/cmf.src.js +1 -1
  343. package/esm/indicators/cmo.js +12 -1
  344. package/esm/indicators/cmo.src.js +1 -1
  345. package/esm/indicators/dema.js +12 -1
  346. package/esm/indicators/dema.src.js +1 -1
  347. package/esm/indicators/disparity-index.js +12 -1
  348. package/esm/indicators/disparity-index.src.js +1 -1
  349. package/esm/indicators/dmi.js +12 -1
  350. package/esm/indicators/dmi.src.js +1 -1
  351. package/esm/indicators/dpo.js +12 -1
  352. package/esm/indicators/dpo.src.js +1 -1
  353. package/esm/indicators/ema.src.js +0 -3
  354. package/esm/indicators/ichimoku-kinko-hyo.js +12 -1
  355. package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
  356. package/esm/indicators/indicators-all.js +12 -1
  357. package/esm/indicators/indicators-all.src.js +2 -2
  358. package/esm/indicators/indicators.js +12 -1
  359. package/esm/indicators/indicators.src.js +1 -1
  360. package/esm/indicators/keltner-channels.js +12 -1
  361. package/esm/indicators/keltner-channels.src.js +1 -1
  362. package/esm/indicators/klinger.js +12 -1
  363. package/esm/indicators/klinger.src.js +1 -1
  364. package/esm/indicators/macd.js +12 -1
  365. package/esm/indicators/macd.src.js +2 -2
  366. package/esm/indicators/mfi.js +12 -1
  367. package/esm/indicators/mfi.src.js +1 -1
  368. package/esm/indicators/momentum.js +12 -1
  369. package/esm/indicators/momentum.src.js +1 -1
  370. package/esm/indicators/natr.js +12 -1
  371. package/esm/indicators/natr.src.js +1 -1
  372. package/esm/indicators/obv.js +12 -1
  373. package/esm/indicators/obv.src.js +1 -1
  374. package/esm/indicators/pivot-points.js +12 -1
  375. package/esm/indicators/pivot-points.src.js +1 -1
  376. package/esm/indicators/ppo.js +12 -1
  377. package/esm/indicators/ppo.src.js +1 -1
  378. package/esm/indicators/price-channel.js +12 -1
  379. package/esm/indicators/price-channel.src.js +1 -1
  380. package/esm/indicators/price-envelopes.js +12 -1
  381. package/esm/indicators/price-envelopes.src.js +1 -1
  382. package/esm/indicators/psar.js +12 -1
  383. package/esm/indicators/psar.src.js +1 -1
  384. package/esm/indicators/regressions.js +12 -1
  385. package/esm/indicators/regressions.src.js +1 -1
  386. package/esm/indicators/roc.js +12 -1
  387. package/esm/indicators/roc.src.js +1 -1
  388. package/esm/indicators/rsi.js +12 -1
  389. package/esm/indicators/rsi.src.js +1 -1
  390. package/esm/indicators/slow-stochastic.js +12 -1
  391. package/esm/indicators/slow-stochastic.src.js +1 -1
  392. package/esm/indicators/stochastic.js +12 -1
  393. package/esm/indicators/stochastic.src.js +1 -1
  394. package/esm/indicators/supertrend.js +12 -1
  395. package/esm/indicators/supertrend.src.js +1 -1
  396. package/esm/indicators/tema.js +12 -1
  397. package/esm/indicators/tema.src.js +1 -1
  398. package/esm/indicators/trendline.js +12 -1
  399. package/esm/indicators/trendline.src.js +1 -1
  400. package/esm/indicators/trix.js +12 -1
  401. package/esm/indicators/trix.src.js +1 -1
  402. package/esm/indicators/volume-by-price.js +12 -1
  403. package/esm/indicators/volume-by-price.src.js +1 -1
  404. package/esm/indicators/vwap.js +12 -1
  405. package/esm/indicators/vwap.src.js +1 -1
  406. package/esm/indicators/williams-r.js +12 -1
  407. package/esm/indicators/williams-r.src.js +1 -1
  408. package/esm/indicators/wma.js +12 -1
  409. package/esm/indicators/wma.src.js +1 -1
  410. package/esm/indicators/zigzag.js +12 -1
  411. package/esm/indicators/zigzag.src.js +1 -1
  412. package/esm/modules/accessibility.js +12 -1
  413. package/esm/modules/accessibility.src.js +92 -63
  414. package/esm/modules/annotations-advanced.js +11 -1
  415. package/esm/modules/annotations-advanced.src.js +872 -778
  416. package/esm/modules/annotations.js +11 -1
  417. package/esm/modules/annotations.src.js +95 -43
  418. package/esm/modules/arc-diagram.js +11 -1
  419. package/esm/modules/arc-diagram.src.js +3 -3
  420. package/esm/modules/arrow-symbols.js +11 -1
  421. package/esm/modules/arrow-symbols.src.js +1 -1
  422. package/esm/modules/boost-canvas.js +12 -1
  423. package/esm/modules/boost-canvas.src.js +102 -53
  424. package/esm/modules/boost.js +13 -1
  425. package/esm/modules/boost.src.js +107 -49
  426. package/esm/modules/broken-axis.js +9 -1
  427. package/esm/modules/broken-axis.src.js +115 -91
  428. package/esm/modules/bullet.js +11 -1
  429. package/esm/modules/bullet.src.js +1 -1
  430. package/esm/modules/coloraxis.js +11 -1
  431. package/esm/modules/coloraxis.src.js +6 -7
  432. package/esm/modules/current-date-indicator.js +11 -1
  433. package/esm/modules/current-date-indicator.src.js +1 -1
  434. package/esm/modules/cylinder.js +12 -1
  435. package/esm/modules/cylinder.src.js +1 -1
  436. package/esm/modules/data-tools.js +11 -1
  437. package/esm/modules/data-tools.src.js +542 -125
  438. package/esm/modules/data.js +11 -1
  439. package/esm/modules/data.src.js +46 -39
  440. package/esm/modules/datagrouping.js +11 -1
  441. package/esm/modules/datagrouping.src.js +1 -1
  442. package/esm/modules/debugger.js +11 -1
  443. package/esm/modules/debugger.src.js +1 -1
  444. package/esm/modules/dependency-wheel.js +12 -1
  445. package/esm/modules/dependency-wheel.src.js +3 -3
  446. package/esm/modules/dotplot.js +11 -1
  447. package/esm/modules/dotplot.src.js +1 -1
  448. package/esm/modules/drag-panes.js +13 -1
  449. package/esm/modules/drag-panes.src.js +1 -1
  450. package/esm/modules/draggable-points.js +9 -1
  451. package/esm/modules/draggable-points.src.js +1 -1
  452. package/esm/modules/drilldown.js +13 -1
  453. package/esm/modules/drilldown.src.js +4 -2
  454. package/esm/modules/dumbbell.js +9 -1
  455. package/esm/modules/dumbbell.src.js +1 -1
  456. package/esm/modules/export-data.js +12 -1
  457. package/esm/modules/export-data.src.js +985 -799
  458. package/esm/modules/exporting.js +11 -1
  459. package/esm/modules/exporting.src.js +1453 -634
  460. package/esm/modules/flowmap.js +9 -1
  461. package/esm/modules/flowmap.src.js +1 -1
  462. package/esm/modules/full-screen.js +12 -1
  463. package/esm/modules/full-screen.src.js +3 -3
  464. package/esm/modules/funnel.js +11 -1
  465. package/esm/modules/funnel.src.js +7 -3
  466. package/esm/modules/funnel3d.js +13 -1
  467. package/esm/modules/funnel3d.src.js +1 -1
  468. package/esm/modules/gantt.js +11 -1
  469. package/esm/modules/gantt.src.js +254 -212
  470. package/esm/modules/geoheatmap.js +9 -1
  471. package/esm/modules/geoheatmap.src.js +1 -1
  472. package/esm/modules/grid-axis.js +11 -1
  473. package/esm/modules/grid-axis.src.js +1 -1
  474. package/esm/modules/heatmap.js +9 -1
  475. package/esm/modules/heatmap.src.js +2 -3
  476. package/esm/modules/heikinashi.js +12 -1
  477. package/esm/modules/heikinashi.src.js +1 -1
  478. package/esm/modules/histogram-bellcurve.js +10 -1
  479. package/esm/modules/histogram-bellcurve.src.js +36 -27
  480. package/esm/modules/hollowcandlestick.js +12 -1
  481. package/esm/modules/hollowcandlestick.src.js +1 -1
  482. package/esm/modules/item-series.js +11 -1
  483. package/esm/modules/item-series.src.js +3 -5
  484. package/esm/modules/lollipop.js +9 -1
  485. package/esm/modules/lollipop.src.js +1 -1
  486. package/esm/modules/map.js +11 -1
  487. package/esm/modules/map.src.js +5 -6
  488. package/esm/modules/marker-clusters.js +11 -1
  489. package/esm/modules/marker-clusters.src.js +1 -1
  490. package/esm/modules/mouse-wheel-zoom.js +11 -1
  491. package/esm/modules/mouse-wheel-zoom.src.js +1 -1
  492. package/esm/modules/navigator.js +11 -1
  493. package/esm/modules/navigator.src.js +29 -29
  494. package/esm/modules/networkgraph.js +11 -1
  495. package/esm/modules/networkgraph.src.js +16 -4
  496. package/esm/modules/no-data-to-display.js +12 -1
  497. package/esm/modules/no-data-to-display.src.js +1 -1
  498. package/esm/modules/non-cartesian-zoom.d.ts +2 -0
  499. package/esm/modules/non-cartesian-zoom.js +11 -0
  500. package/esm/modules/non-cartesian-zoom.src.d.ts +2 -0
  501. package/esm/modules/non-cartesian-zoom.src.js +374 -0
  502. package/esm/modules/offline-exporting.js +12 -1
  503. package/esm/modules/offline-exporting.src.js +339 -3363
  504. package/esm/modules/organization.js +11 -1
  505. package/esm/modules/organization.src.js +3 -3
  506. package/esm/modules/parallel-coordinates.js +11 -1
  507. package/esm/modules/parallel-coordinates.src.js +1 -1
  508. package/esm/modules/pareto.js +11 -1
  509. package/esm/modules/pareto.src.js +1 -1
  510. package/esm/modules/pathfinder.js +11 -1
  511. package/esm/modules/pathfinder.src.js +1 -1
  512. package/esm/modules/pattern-fill.js +12 -1
  513. package/esm/modules/pattern-fill.src.js +1 -1
  514. package/esm/modules/pictorial.js +11 -1
  515. package/esm/modules/pictorial.src.js +1 -1
  516. package/esm/modules/pointandfigure.js +12 -1
  517. package/esm/modules/pointandfigure.src.js +1 -1
  518. package/esm/modules/price-indicator.js +13 -1
  519. package/esm/modules/price-indicator.src.js +1 -1
  520. package/esm/modules/pyramid3d.js +14 -1
  521. package/esm/modules/pyramid3d.src.js +1 -1
  522. package/esm/modules/renko.js +12 -1
  523. package/esm/modules/renko.src.js +1 -1
  524. package/esm/modules/sankey.js +11 -1
  525. package/esm/modules/sankey.src.js +3 -3
  526. package/esm/modules/series-label.js +9 -1
  527. package/esm/modules/series-label.src.js +1 -1
  528. package/esm/modules/series-on-point.js +12 -1
  529. package/esm/modules/series-on-point.src.js +1 -9
  530. package/esm/modules/solid-gauge.js +12 -1
  531. package/esm/modules/solid-gauge.src.js +27 -5
  532. package/esm/modules/sonification.js +12 -1
  533. package/esm/modules/sonification.src.js +45 -10
  534. package/esm/modules/static-scale.js +11 -1
  535. package/esm/modules/static-scale.src.js +14 -12
  536. package/esm/modules/stock-tools.js +13 -1
  537. package/esm/modules/stock-tools.src.js +37 -116
  538. package/esm/modules/stock.js +11 -1
  539. package/esm/modules/stock.src.js +98 -98
  540. package/esm/modules/streamgraph.js +11 -1
  541. package/esm/modules/streamgraph.src.js +1 -1
  542. package/esm/modules/sunburst.js +10 -1
  543. package/esm/modules/sunburst.src.js +9 -9
  544. package/esm/modules/textpath.js +9 -1
  545. package/esm/modules/textpath.src.js +3 -3
  546. package/esm/modules/tiledwebmap.js +10 -2
  547. package/esm/modules/tiledwebmap.src.js +1 -1
  548. package/esm/modules/tilemap.js +12 -1
  549. package/esm/modules/tilemap.src.js +1 -1
  550. package/esm/modules/timeline.js +12 -1
  551. package/esm/modules/timeline.src.js +1 -1
  552. package/esm/modules/treegraph.js +11 -1
  553. package/esm/modules/treegraph.src.js +16 -8
  554. package/esm/modules/treegrid.js +11 -1
  555. package/esm/modules/treegrid.src.js +190 -159
  556. package/esm/modules/treemap.js +10 -1
  557. package/esm/modules/treemap.src.js +7 -7
  558. package/esm/modules/variable-pie.js +11 -1
  559. package/esm/modules/variable-pie.src.js +1 -1
  560. package/esm/modules/variwide.js +11 -1
  561. package/esm/modules/variwide.src.js +18 -13
  562. package/esm/modules/vector.js +11 -1
  563. package/esm/modules/vector.src.js +1 -1
  564. package/esm/modules/venn.js +10 -1
  565. package/esm/modules/venn.src.js +5 -3
  566. package/esm/modules/windbarb.js +11 -1
  567. package/esm/modules/windbarb.src.js +1 -1
  568. package/esm/modules/wordcloud.js +10 -1
  569. package/esm/modules/wordcloud.src.js +89 -12
  570. package/esm/modules/xrange.js +11 -1
  571. package/esm/modules/xrange.src.js +3 -2
  572. package/esm/standalone-navigator.js +11 -2
  573. package/esm/standalone-navigator.src.js +312 -206
  574. package/esm/themes/adaptive.d.ts +2 -0
  575. package/esm/themes/adaptive.js +130 -0
  576. package/esm/themes/adaptive.src.d.ts +2 -0
  577. package/esm/themes/adaptive.src.js +1069 -0
  578. package/esm/themes/avocado.js +9 -1
  579. package/esm/themes/avocado.src.js +1 -1
  580. package/esm/themes/brand-dark.js +9 -1
  581. package/esm/themes/brand-dark.src.js +1 -1
  582. package/esm/themes/brand-light.js +9 -1
  583. package/esm/themes/brand-light.src.js +1 -1
  584. package/esm/themes/dark-blue.js +9 -1
  585. package/esm/themes/dark-blue.src.js +1 -1
  586. package/esm/themes/dark-green.js +9 -1
  587. package/esm/themes/dark-green.src.js +1 -1
  588. package/esm/themes/dark-unica.js +9 -1
  589. package/esm/themes/dark-unica.src.js +1 -1
  590. package/esm/themes/gray.js +9 -1
  591. package/esm/themes/gray.src.js +1 -1
  592. package/esm/themes/grid-light.js +9 -1
  593. package/esm/themes/grid-light.src.js +1 -1
  594. package/esm/themes/grid.js +9 -1
  595. package/esm/themes/grid.src.js +1 -1
  596. package/esm/themes/high-contrast-dark.js +9 -1
  597. package/esm/themes/high-contrast-dark.src.js +1 -1
  598. package/esm/themes/high-contrast-light.js +9 -1
  599. package/esm/themes/high-contrast-light.src.js +1 -1
  600. package/esm/themes/sand-signika.js +9 -1
  601. package/esm/themes/sand-signika.src.js +1 -1
  602. package/esm/themes/skies.js +9 -1
  603. package/esm/themes/skies.src.js +1 -1
  604. package/esm/themes/sunset.js +9 -1
  605. package/esm/themes/sunset.src.js +1 -1
  606. package/highcharts-3d.d.ts +1 -9
  607. package/highcharts-3d.js +11 -1
  608. package/highcharts-3d.src.d.ts +1 -9
  609. package/highcharts-3d.src.js +3 -4
  610. package/highcharts-gantt.js +15 -2
  611. package/highcharts-gantt.src.js +546 -392
  612. package/highcharts-more.d.ts +10 -9
  613. package/highcharts-more.js +9 -1
  614. package/highcharts-more.src.d.ts +10 -9
  615. package/highcharts-more.src.js +516 -57
  616. package/highcharts.d.ts +4526 -1522
  617. package/highcharts.js +9 -2
  618. package/highcharts.src.d.ts +4526 -1522
  619. package/highcharts.src.js +273 -168
  620. package/highmaps.js +9 -2
  621. package/highmaps.src.js +294 -191
  622. package/highstock.js +9 -2
  623. package/highstock.src.js +490 -361
  624. package/i18n/fr-FR.js +13 -1
  625. package/i18n/fr-FR.src.js +8 -8
  626. package/i18n/nb-NO.js +13 -1
  627. package/i18n/nb-NO.src.js +8 -8
  628. package/i18n/zh-CN.js +13 -1
  629. package/i18n/zh-CN.src.js +8 -8
  630. package/indicators/acceleration-bands.d.ts +1 -9
  631. package/indicators/acceleration-bands.js +12 -1
  632. package/indicators/acceleration-bands.src.d.ts +1 -9
  633. package/indicators/acceleration-bands.src.js +1 -1
  634. package/indicators/accumulation-distribution.d.ts +1 -9
  635. package/indicators/accumulation-distribution.js +12 -1
  636. package/indicators/accumulation-distribution.src.d.ts +1 -9
  637. package/indicators/accumulation-distribution.src.js +1 -1
  638. package/indicators/ao.d.ts +1 -9
  639. package/indicators/ao.js +12 -1
  640. package/indicators/ao.src.d.ts +1 -9
  641. package/indicators/ao.src.js +1 -1
  642. package/indicators/apo.d.ts +1 -9
  643. package/indicators/apo.js +12 -1
  644. package/indicators/apo.src.d.ts +1 -9
  645. package/indicators/apo.src.js +1 -1
  646. package/indicators/aroon-oscillator.d.ts +1 -9
  647. package/indicators/aroon-oscillator.js +12 -1
  648. package/indicators/aroon-oscillator.src.d.ts +1 -9
  649. package/indicators/aroon-oscillator.src.js +1 -1
  650. package/indicators/aroon.d.ts +1 -9
  651. package/indicators/aroon.js +12 -1
  652. package/indicators/aroon.src.d.ts +1 -9
  653. package/indicators/aroon.src.js +1 -1
  654. package/indicators/atr.d.ts +1 -9
  655. package/indicators/atr.js +12 -1
  656. package/indicators/atr.src.d.ts +1 -9
  657. package/indicators/atr.src.js +1 -1
  658. package/indicators/bollinger-bands.d.ts +1 -9
  659. package/indicators/bollinger-bands.js +12 -1
  660. package/indicators/bollinger-bands.src.d.ts +1 -9
  661. package/indicators/bollinger-bands.src.js +1 -1
  662. package/indicators/cci.d.ts +1 -9
  663. package/indicators/cci.js +12 -1
  664. package/indicators/cci.src.d.ts +1 -9
  665. package/indicators/cci.src.js +1 -1
  666. package/indicators/chaikin.d.ts +1 -9
  667. package/indicators/chaikin.js +12 -1
  668. package/indicators/chaikin.src.d.ts +1 -9
  669. package/indicators/chaikin.src.js +1 -1
  670. package/indicators/cmf.d.ts +1 -9
  671. package/indicators/cmf.js +11 -1
  672. package/indicators/cmf.src.d.ts +1 -9
  673. package/indicators/cmf.src.js +1 -1
  674. package/indicators/cmo.d.ts +1 -9
  675. package/indicators/cmo.js +12 -1
  676. package/indicators/cmo.src.d.ts +1 -9
  677. package/indicators/cmo.src.js +1 -1
  678. package/indicators/dema.d.ts +1 -9
  679. package/indicators/dema.js +12 -1
  680. package/indicators/dema.src.d.ts +1 -9
  681. package/indicators/dema.src.js +1 -1
  682. package/indicators/disparity-index.d.ts +1 -9
  683. package/indicators/disparity-index.js +12 -1
  684. package/indicators/disparity-index.src.d.ts +1 -9
  685. package/indicators/disparity-index.src.js +1 -1
  686. package/indicators/dmi.d.ts +1 -9
  687. package/indicators/dmi.js +12 -1
  688. package/indicators/dmi.src.d.ts +1 -9
  689. package/indicators/dmi.src.js +1 -1
  690. package/indicators/dpo.d.ts +1 -9
  691. package/indicators/dpo.js +12 -1
  692. package/indicators/dpo.src.d.ts +1 -9
  693. package/indicators/dpo.src.js +1 -1
  694. package/indicators/ema.d.ts +1 -9
  695. package/indicators/ema.src.d.ts +1 -9
  696. package/indicators/ema.src.js +3 -6
  697. package/indicators/ichimoku-kinko-hyo.d.ts +1 -9
  698. package/indicators/ichimoku-kinko-hyo.js +12 -1
  699. package/indicators/ichimoku-kinko-hyo.src.d.ts +1 -9
  700. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  701. package/indicators/indicators-all.d.ts +1 -9
  702. package/indicators/indicators-all.js +12 -1
  703. package/indicators/indicators-all.src.d.ts +1 -9
  704. package/indicators/indicators-all.src.js +2 -2
  705. package/indicators/indicators.d.ts +1 -9
  706. package/indicators/indicators.js +12 -1
  707. package/indicators/indicators.src.d.ts +1 -9
  708. package/indicators/indicators.src.js +1 -1
  709. package/indicators/keltner-channels.d.ts +1 -9
  710. package/indicators/keltner-channels.js +12 -1
  711. package/indicators/keltner-channels.src.d.ts +1 -9
  712. package/indicators/keltner-channels.src.js +1 -1
  713. package/indicators/klinger.d.ts +1 -9
  714. package/indicators/klinger.js +12 -1
  715. package/indicators/klinger.src.d.ts +1 -9
  716. package/indicators/klinger.src.js +1 -1
  717. package/indicators/macd.d.ts +1 -9
  718. package/indicators/macd.js +12 -1
  719. package/indicators/macd.src.d.ts +1 -9
  720. package/indicators/macd.src.js +2 -2
  721. package/indicators/mfi.d.ts +1 -9
  722. package/indicators/mfi.js +12 -1
  723. package/indicators/mfi.src.d.ts +1 -9
  724. package/indicators/mfi.src.js +1 -1
  725. package/indicators/momentum.d.ts +1 -9
  726. package/indicators/momentum.js +12 -1
  727. package/indicators/momentum.src.d.ts +1 -9
  728. package/indicators/momentum.src.js +1 -1
  729. package/indicators/natr.d.ts +1 -9
  730. package/indicators/natr.js +12 -1
  731. package/indicators/natr.src.d.ts +1 -9
  732. package/indicators/natr.src.js +1 -1
  733. package/indicators/obv.d.ts +1 -9
  734. package/indicators/obv.js +12 -1
  735. package/indicators/obv.src.d.ts +1 -9
  736. package/indicators/obv.src.js +1 -1
  737. package/indicators/pivot-points.d.ts +1 -9
  738. package/indicators/pivot-points.js +12 -1
  739. package/indicators/pivot-points.src.d.ts +1 -9
  740. package/indicators/pivot-points.src.js +1 -1
  741. package/indicators/ppo.d.ts +1 -9
  742. package/indicators/ppo.js +12 -1
  743. package/indicators/ppo.src.d.ts +1 -9
  744. package/indicators/ppo.src.js +1 -1
  745. package/indicators/price-channel.d.ts +1 -9
  746. package/indicators/price-channel.js +12 -1
  747. package/indicators/price-channel.src.d.ts +1 -9
  748. package/indicators/price-channel.src.js +1 -1
  749. package/indicators/price-envelopes.d.ts +1 -9
  750. package/indicators/price-envelopes.js +12 -1
  751. package/indicators/price-envelopes.src.d.ts +1 -9
  752. package/indicators/price-envelopes.src.js +1 -1
  753. package/indicators/psar.d.ts +1 -9
  754. package/indicators/psar.js +12 -1
  755. package/indicators/psar.src.d.ts +1 -9
  756. package/indicators/psar.src.js +1 -1
  757. package/indicators/regressions.d.ts +1 -9
  758. package/indicators/regressions.js +12 -1
  759. package/indicators/regressions.src.d.ts +1 -9
  760. package/indicators/regressions.src.js +1 -1
  761. package/indicators/roc.d.ts +1 -9
  762. package/indicators/roc.js +12 -1
  763. package/indicators/roc.src.d.ts +1 -9
  764. package/indicators/roc.src.js +1 -1
  765. package/indicators/rsi.d.ts +1 -9
  766. package/indicators/rsi.js +12 -1
  767. package/indicators/rsi.src.d.ts +1 -9
  768. package/indicators/rsi.src.js +1 -1
  769. package/indicators/slow-stochastic.d.ts +1 -9
  770. package/indicators/slow-stochastic.js +12 -1
  771. package/indicators/slow-stochastic.src.d.ts +1 -9
  772. package/indicators/slow-stochastic.src.js +1 -1
  773. package/indicators/stochastic.d.ts +1 -9
  774. package/indicators/stochastic.js +12 -1
  775. package/indicators/stochastic.src.d.ts +1 -9
  776. package/indicators/stochastic.src.js +1 -1
  777. package/indicators/supertrend.d.ts +1 -9
  778. package/indicators/supertrend.js +12 -1
  779. package/indicators/supertrend.src.d.ts +1 -9
  780. package/indicators/supertrend.src.js +1 -1
  781. package/indicators/tema.d.ts +1 -9
  782. package/indicators/tema.js +12 -1
  783. package/indicators/tema.src.d.ts +1 -9
  784. package/indicators/tema.src.js +1 -1
  785. package/indicators/trendline.d.ts +1 -9
  786. package/indicators/trendline.js +12 -1
  787. package/indicators/trendline.src.d.ts +1 -9
  788. package/indicators/trendline.src.js +1 -1
  789. package/indicators/trix.d.ts +1 -9
  790. package/indicators/trix.js +12 -1
  791. package/indicators/trix.src.d.ts +1 -9
  792. package/indicators/trix.src.js +1 -1
  793. package/indicators/volume-by-price.d.ts +1 -9
  794. package/indicators/volume-by-price.js +12 -1
  795. package/indicators/volume-by-price.src.d.ts +1 -9
  796. package/indicators/volume-by-price.src.js +1 -1
  797. package/indicators/vwap.d.ts +1 -9
  798. package/indicators/vwap.js +12 -1
  799. package/indicators/vwap.src.d.ts +1 -9
  800. package/indicators/vwap.src.js +1 -1
  801. package/indicators/williams-r.d.ts +1 -9
  802. package/indicators/williams-r.js +12 -1
  803. package/indicators/williams-r.src.d.ts +1 -9
  804. package/indicators/williams-r.src.js +1 -1
  805. package/indicators/wma.d.ts +1 -9
  806. package/indicators/wma.js +12 -1
  807. package/indicators/wma.src.d.ts +1 -9
  808. package/indicators/wma.src.js +1 -1
  809. package/indicators/zigzag.d.ts +1 -9
  810. package/indicators/zigzag.js +12 -1
  811. package/indicators/zigzag.src.d.ts +1 -9
  812. package/indicators/zigzag.src.js +1 -1
  813. package/modules/accessibility.d.ts +1 -11
  814. package/modules/accessibility.js +12 -1
  815. package/modules/accessibility.src.d.ts +1 -11
  816. package/modules/accessibility.src.js +92 -63
  817. package/modules/annotations-advanced.d.ts +1 -9
  818. package/modules/annotations-advanced.js +21 -1
  819. package/modules/annotations-advanced.src.d.ts +1 -9
  820. package/modules/annotations-advanced.src.js +888 -794
  821. package/modules/annotations.d.ts +1 -9
  822. package/modules/annotations.js +11 -1
  823. package/modules/annotations.src.d.ts +1 -9
  824. package/modules/annotations.src.js +95 -43
  825. package/modules/arc-diagram.d.ts +1 -9
  826. package/modules/arc-diagram.js +11 -1
  827. package/modules/arc-diagram.src.d.ts +1 -9
  828. package/modules/arc-diagram.src.js +3 -3
  829. package/modules/arrow-symbols.d.ts +1 -9
  830. package/modules/arrow-symbols.js +11 -1
  831. package/modules/arrow-symbols.src.d.ts +1 -9
  832. package/modules/arrow-symbols.src.js +1 -1
  833. package/modules/boost-canvas.d.ts +1 -9
  834. package/modules/boost-canvas.js +12 -1
  835. package/modules/boost-canvas.src.d.ts +1 -9
  836. package/modules/boost-canvas.src.js +102 -53
  837. package/modules/boost.d.ts +1 -9
  838. package/modules/boost.js +13 -1
  839. package/modules/boost.src.d.ts +1 -9
  840. package/modules/boost.src.js +107 -49
  841. package/modules/broken-axis.d.ts +1 -9
  842. package/modules/broken-axis.js +9 -1
  843. package/modules/broken-axis.src.d.ts +1 -9
  844. package/modules/broken-axis.src.js +115 -91
  845. package/modules/bullet.d.ts +1 -9
  846. package/modules/bullet.js +11 -1
  847. package/modules/bullet.src.d.ts +1 -9
  848. package/modules/bullet.src.js +1 -1
  849. package/modules/coloraxis.d.ts +1 -9
  850. package/modules/coloraxis.js +11 -1
  851. package/modules/coloraxis.src.d.ts +1 -9
  852. package/modules/coloraxis.src.js +6 -7
  853. package/modules/current-date-indicator.d.ts +1 -9
  854. package/modules/current-date-indicator.js +11 -1
  855. package/modules/current-date-indicator.src.d.ts +1 -9
  856. package/modules/current-date-indicator.src.js +1 -1
  857. package/modules/cylinder.d.ts +1 -9
  858. package/modules/cylinder.js +12 -1
  859. package/modules/cylinder.src.d.ts +1 -9
  860. package/modules/cylinder.src.js +1 -1
  861. package/modules/data-tools.js +11 -1
  862. package/modules/data-tools.src.js +542 -125
  863. package/modules/data.d.ts +1 -9
  864. package/modules/data.js +11 -1
  865. package/modules/data.src.d.ts +1 -9
  866. package/modules/data.src.js +46 -39
  867. package/modules/datagrouping.d.ts +1 -9
  868. package/modules/datagrouping.js +11 -1
  869. package/modules/datagrouping.src.d.ts +1 -9
  870. package/modules/datagrouping.src.js +1 -1
  871. package/modules/debugger.d.ts +1 -9
  872. package/modules/debugger.js +11 -1
  873. package/modules/debugger.src.d.ts +1 -9
  874. package/modules/debugger.src.js +1 -1
  875. package/modules/dependency-wheel.d.ts +1 -9
  876. package/modules/dependency-wheel.js +12 -1
  877. package/modules/dependency-wheel.src.d.ts +1 -9
  878. package/modules/dependency-wheel.src.js +3 -3
  879. package/modules/dotplot.d.ts +1 -9
  880. package/modules/dotplot.js +11 -1
  881. package/modules/dotplot.src.d.ts +1 -9
  882. package/modules/dotplot.src.js +1 -1
  883. package/modules/drag-panes.d.ts +1 -9
  884. package/modules/drag-panes.js +13 -1
  885. package/modules/drag-panes.src.d.ts +1 -9
  886. package/modules/drag-panes.src.js +1 -1
  887. package/modules/draggable-points.d.ts +1 -9
  888. package/modules/draggable-points.js +9 -1
  889. package/modules/draggable-points.src.d.ts +1 -9
  890. package/modules/draggable-points.src.js +1 -1
  891. package/modules/drilldown.d.ts +1 -9
  892. package/modules/drilldown.js +13 -1
  893. package/modules/drilldown.src.d.ts +1 -9
  894. package/modules/drilldown.src.js +4 -2
  895. package/modules/dumbbell.d.ts +1 -9
  896. package/modules/dumbbell.js +9 -1
  897. package/modules/dumbbell.src.d.ts +1 -9
  898. package/modules/dumbbell.src.js +1 -1
  899. package/modules/export-data.d.ts +2 -79
  900. package/modules/export-data.js +12 -1
  901. package/modules/export-data.src.d.ts +2 -79
  902. package/modules/export-data.src.js +997 -804
  903. package/modules/exporting.d.ts +35 -21
  904. package/modules/exporting.js +11 -1
  905. package/modules/exporting.src.d.ts +35 -21
  906. package/modules/exporting.src.js +1452 -628
  907. package/modules/flowmap.d.ts +1 -9
  908. package/modules/flowmap.js +9 -1
  909. package/modules/flowmap.src.d.ts +1 -9
  910. package/modules/flowmap.src.js +1 -1
  911. package/modules/full-screen.d.ts +1 -9
  912. package/modules/full-screen.js +12 -1
  913. package/modules/full-screen.src.d.ts +1 -9
  914. package/modules/full-screen.src.js +3 -3
  915. package/modules/funnel.d.ts +1 -9
  916. package/modules/funnel.js +11 -1
  917. package/modules/funnel.src.d.ts +1 -9
  918. package/modules/funnel.src.js +7 -3
  919. package/modules/funnel3d.d.ts +1 -9
  920. package/modules/funnel3d.js +13 -1
  921. package/modules/funnel3d.src.d.ts +1 -9
  922. package/modules/funnel3d.src.js +1 -1
  923. package/modules/gantt.d.ts +1 -9
  924. package/modules/gantt.js +31 -1
  925. package/modules/gantt.src.d.ts +1 -9
  926. package/modules/gantt.src.js +273 -230
  927. package/modules/geoheatmap.d.ts +1 -9
  928. package/modules/geoheatmap.js +9 -1
  929. package/modules/geoheatmap.src.d.ts +1 -9
  930. package/modules/geoheatmap.src.js +1 -1
  931. package/modules/grid-axis.d.ts +1 -9
  932. package/modules/grid-axis.js +11 -1
  933. package/modules/grid-axis.src.d.ts +1 -9
  934. package/modules/grid-axis.src.js +1 -1
  935. package/modules/heatmap.d.ts +1 -9
  936. package/modules/heatmap.js +19 -1
  937. package/modules/heatmap.src.d.ts +1 -9
  938. package/modules/heatmap.src.js +21 -23
  939. package/modules/heikinashi.d.ts +1 -9
  940. package/modules/heikinashi.js +12 -1
  941. package/modules/heikinashi.src.d.ts +1 -9
  942. package/modules/heikinashi.src.js +1 -1
  943. package/modules/histogram-bellcurve.d.ts +2 -11
  944. package/modules/histogram-bellcurve.js +10 -1
  945. package/modules/histogram-bellcurve.src.d.ts +2 -11
  946. package/modules/histogram-bellcurve.src.js +36 -27
  947. package/modules/hollowcandlestick.d.ts +1 -9
  948. package/modules/hollowcandlestick.js +12 -1
  949. package/modules/hollowcandlestick.src.d.ts +1 -9
  950. package/modules/hollowcandlestick.src.js +1 -1
  951. package/modules/item-series.d.ts +1 -9
  952. package/modules/item-series.js +11 -1
  953. package/modules/item-series.src.d.ts +1 -9
  954. package/modules/item-series.src.js +3 -5
  955. package/modules/lollipop.d.ts +1 -9
  956. package/modules/lollipop.js +9 -1
  957. package/modules/lollipop.src.d.ts +1 -9
  958. package/modules/lollipop.src.js +1 -1
  959. package/modules/map.d.ts +1 -9
  960. package/modules/map.js +21 -1
  961. package/modules/map.src.d.ts +1 -9
  962. package/modules/map.src.js +25 -27
  963. package/modules/marker-clusters.d.ts +1 -9
  964. package/modules/marker-clusters.js +11 -1
  965. package/modules/marker-clusters.src.d.ts +1 -9
  966. package/modules/marker-clusters.src.js +1 -1
  967. package/modules/mouse-wheel-zoom.d.ts +1 -9
  968. package/modules/mouse-wheel-zoom.js +11 -1
  969. package/modules/mouse-wheel-zoom.src.d.ts +1 -9
  970. package/modules/mouse-wheel-zoom.src.js +1 -1
  971. package/modules/navigator.d.ts +1 -9
  972. package/modules/navigator.js +11 -1
  973. package/modules/navigator.src.d.ts +1 -9
  974. package/modules/navigator.src.js +29 -29
  975. package/modules/networkgraph.d.ts +1 -9
  976. package/modules/networkgraph.js +11 -1
  977. package/modules/networkgraph.src.d.ts +1 -9
  978. package/modules/networkgraph.src.js +16 -4
  979. package/modules/no-data-to-display.d.ts +1 -9
  980. package/modules/no-data-to-display.js +12 -1
  981. package/modules/no-data-to-display.src.d.ts +1 -9
  982. package/modules/no-data-to-display.src.js +1 -1
  983. package/modules/non-cartesian-zoom.d.ts +9 -0
  984. package/modules/non-cartesian-zoom.js +11 -0
  985. package/modules/non-cartesian-zoom.src.d.ts +9 -0
  986. package/modules/non-cartesian-zoom.src.js +427 -0
  987. package/modules/offline-exporting.d.ts +2 -90
  988. package/modules/offline-exporting.js +12 -1
  989. package/modules/offline-exporting.src.d.ts +2 -90
  990. package/modules/offline-exporting.src.js +355 -3380
  991. package/modules/organization.d.ts +1 -9
  992. package/modules/organization.js +11 -1
  993. package/modules/organization.src.d.ts +1 -9
  994. package/modules/organization.src.js +3 -3
  995. package/modules/parallel-coordinates.d.ts +1 -9
  996. package/modules/parallel-coordinates.js +11 -1
  997. package/modules/parallel-coordinates.src.d.ts +1 -9
  998. package/modules/parallel-coordinates.src.js +1 -1
  999. package/modules/pareto.d.ts +1 -9
  1000. package/modules/pareto.js +11 -1
  1001. package/modules/pareto.src.d.ts +1 -9
  1002. package/modules/pareto.src.js +1 -1
  1003. package/modules/pathfinder.d.ts +1 -9
  1004. package/modules/pathfinder.js +11 -1
  1005. package/modules/pathfinder.src.d.ts +1 -9
  1006. package/modules/pathfinder.src.js +1 -1
  1007. package/modules/pattern-fill.d.ts +1 -9
  1008. package/modules/pattern-fill.js +12 -1
  1009. package/modules/pattern-fill.src.d.ts +1 -9
  1010. package/modules/pattern-fill.src.js +1 -1
  1011. package/modules/pictorial.d.ts +1 -9
  1012. package/modules/pictorial.js +11 -1
  1013. package/modules/pictorial.src.d.ts +1 -9
  1014. package/modules/pictorial.src.js +1 -1
  1015. package/modules/pointandfigure.d.ts +1 -9
  1016. package/modules/pointandfigure.js +12 -1
  1017. package/modules/pointandfigure.src.d.ts +1 -9
  1018. package/modules/pointandfigure.src.js +1 -1
  1019. package/modules/price-indicator.d.ts +1 -9
  1020. package/modules/price-indicator.js +13 -1
  1021. package/modules/price-indicator.src.d.ts +1 -9
  1022. package/modules/price-indicator.src.js +1 -1
  1023. package/modules/pyramid3d.d.ts +1 -9
  1024. package/modules/pyramid3d.js +14 -1
  1025. package/modules/pyramid3d.src.d.ts +1 -9
  1026. package/modules/pyramid3d.src.js +1 -1
  1027. package/modules/renko.d.ts +1 -9
  1028. package/modules/renko.js +12 -1
  1029. package/modules/renko.src.d.ts +1 -9
  1030. package/modules/renko.src.js +1 -1
  1031. package/modules/sankey.d.ts +1 -9
  1032. package/modules/sankey.js +11 -1
  1033. package/modules/sankey.src.d.ts +1 -9
  1034. package/modules/sankey.src.js +3 -3
  1035. package/modules/series-label.d.ts +1 -9
  1036. package/modules/series-label.js +9 -1
  1037. package/modules/series-label.src.d.ts +1 -9
  1038. package/modules/series-label.src.js +1 -1
  1039. package/modules/series-on-point.d.ts +1 -9
  1040. package/modules/series-on-point.js +12 -1
  1041. package/modules/series-on-point.src.d.ts +1 -9
  1042. package/modules/series-on-point.src.js +6 -16
  1043. package/modules/solid-gauge.d.ts +1 -9
  1044. package/modules/solid-gauge.js +12 -1
  1045. package/modules/solid-gauge.src.d.ts +1 -9
  1046. package/modules/solid-gauge.src.js +27 -5
  1047. package/modules/sonification.d.ts +1 -9
  1048. package/modules/sonification.js +12 -1
  1049. package/modules/sonification.src.d.ts +1 -9
  1050. package/modules/sonification.src.js +45 -10
  1051. package/modules/static-scale.d.ts +1 -9
  1052. package/modules/static-scale.js +11 -1
  1053. package/modules/static-scale.src.d.ts +1 -9
  1054. package/modules/static-scale.src.js +14 -12
  1055. package/modules/stock-tools.d.ts +1 -9
  1056. package/modules/stock-tools.js +13 -1
  1057. package/modules/stock-tools.src.d.ts +1 -9
  1058. package/modules/stock-tools.src.js +37 -116
  1059. package/modules/stock.d.ts +1 -9
  1060. package/modules/stock.js +21 -1
  1061. package/modules/stock.src.d.ts +1 -9
  1062. package/modules/stock.src.js +233 -209
  1063. package/modules/streamgraph.d.ts +1 -9
  1064. package/modules/streamgraph.js +11 -1
  1065. package/modules/streamgraph.src.d.ts +1 -9
  1066. package/modules/streamgraph.src.js +1 -1
  1067. package/modules/sunburst.d.ts +1 -9
  1068. package/modules/sunburst.js +10 -1
  1069. package/modules/sunburst.src.d.ts +1 -9
  1070. package/modules/sunburst.src.js +9 -9
  1071. package/modules/textpath.d.ts +1 -9
  1072. package/modules/textpath.js +9 -1
  1073. package/modules/textpath.src.d.ts +1 -9
  1074. package/modules/textpath.src.js +3 -3
  1075. package/modules/tiledwebmap.d.ts +1 -9
  1076. package/modules/tiledwebmap.js +10 -2
  1077. package/modules/tiledwebmap.src.d.ts +1 -9
  1078. package/modules/tiledwebmap.src.js +1 -1
  1079. package/modules/tilemap.d.ts +1 -9
  1080. package/modules/tilemap.js +12 -1
  1081. package/modules/tilemap.src.d.ts +1 -9
  1082. package/modules/tilemap.src.js +1 -1
  1083. package/modules/timeline.d.ts +1 -9
  1084. package/modules/timeline.js +12 -1
  1085. package/modules/timeline.src.d.ts +1 -9
  1086. package/modules/timeline.src.js +1 -1
  1087. package/modules/treegraph.d.ts +1 -9
  1088. package/modules/treegraph.js +11 -1
  1089. package/modules/treegraph.src.d.ts +1 -9
  1090. package/modules/treegraph.src.js +16 -8
  1091. package/modules/treegrid.d.ts +1 -9
  1092. package/modules/treegrid.js +11 -1
  1093. package/modules/treegrid.src.d.ts +1 -9
  1094. package/modules/treegrid.src.js +190 -159
  1095. package/modules/treemap.d.ts +1 -9
  1096. package/modules/treemap.js +10 -1
  1097. package/modules/treemap.src.d.ts +1 -9
  1098. package/modules/treemap.src.js +7 -7
  1099. package/modules/variable-pie.d.ts +1 -9
  1100. package/modules/variable-pie.js +11 -1
  1101. package/modules/variable-pie.src.d.ts +1 -9
  1102. package/modules/variable-pie.src.js +1 -1
  1103. package/modules/variwide.d.ts +1 -9
  1104. package/modules/variwide.js +11 -1
  1105. package/modules/variwide.src.d.ts +1 -9
  1106. package/modules/variwide.src.js +18 -13
  1107. package/modules/vector.d.ts +1 -9
  1108. package/modules/vector.js +11 -1
  1109. package/modules/vector.src.d.ts +1 -9
  1110. package/modules/vector.src.js +1 -1
  1111. package/modules/venn.d.ts +1 -9
  1112. package/modules/venn.js +10 -1
  1113. package/modules/venn.src.d.ts +1 -9
  1114. package/modules/venn.src.js +5 -3
  1115. package/modules/windbarb.d.ts +1 -9
  1116. package/modules/windbarb.js +11 -1
  1117. package/modules/windbarb.src.d.ts +1 -9
  1118. package/modules/windbarb.src.js +1 -1
  1119. package/modules/wordcloud.d.ts +1 -9
  1120. package/modules/wordcloud.js +10 -1
  1121. package/modules/wordcloud.src.d.ts +1 -9
  1122. package/modules/wordcloud.src.js +89 -12
  1123. package/modules/xrange.d.ts +1 -9
  1124. package/modules/xrange.js +11 -1
  1125. package/modules/xrange.src.d.ts +1 -9
  1126. package/modules/xrange.src.js +3 -2
  1127. package/options/abands.d.ts +8 -0
  1128. package/options/abands.src.d.ts +8 -0
  1129. package/options/ao.d.ts +8 -0
  1130. package/options/ao.src.d.ts +8 -0
  1131. package/options/arcdiagram.d.ts +8 -0
  1132. package/options/arcdiagram.src.d.ts +8 -0
  1133. package/options/area.d.ts +9 -0
  1134. package/options/area.src.d.ts +9 -0
  1135. package/options/arearange.d.ts +9 -0
  1136. package/options/arearange.src.d.ts +9 -0
  1137. package/options/areaspline.d.ts +9 -0
  1138. package/options/areaspline.src.d.ts +9 -0
  1139. package/options/areasplinerange.d.ts +9 -0
  1140. package/options/areasplinerange.src.d.ts +9 -0
  1141. package/options/aroon.d.ts +8 -0
  1142. package/options/aroon.src.d.ts +8 -0
  1143. package/options/atr.d.ts +8 -0
  1144. package/options/atr.src.d.ts +8 -0
  1145. package/options/bellcurve.d.ts +8 -0
  1146. package/options/bellcurve.src.d.ts +8 -0
  1147. package/options/boxplot.d.ts +8 -0
  1148. package/options/boxplot.src.d.ts +8 -0
  1149. package/options/bullet.d.ts +8 -0
  1150. package/options/bullet.src.d.ts +8 -0
  1151. package/options/chaikin.d.ts +8 -0
  1152. package/options/chaikin.src.d.ts +8 -0
  1153. package/options/cmo.d.ts +8 -0
  1154. package/options/cmo.src.d.ts +8 -0
  1155. package/options/columnpyramid.d.ts +9 -0
  1156. package/options/columnpyramid.src.d.ts +9 -0
  1157. package/options/columnrange.d.ts +9 -0
  1158. package/options/columnrange.src.d.ts +9 -0
  1159. package/options/dmi.d.ts +8 -0
  1160. package/options/dmi.src.d.ts +8 -0
  1161. package/options/errorbar.d.ts +8 -0
  1162. package/options/errorbar.src.d.ts +8 -0
  1163. package/options/flags.d.ts +8 -0
  1164. package/options/flags.src.d.ts +8 -0
  1165. package/options/funnel.d.ts +8 -0
  1166. package/options/funnel.src.d.ts +8 -0
  1167. package/options/gauge.d.ts +8 -0
  1168. package/options/gauge.src.d.ts +8 -0
  1169. package/options/item.d.ts +8 -0
  1170. package/options/item.src.d.ts +8 -0
  1171. package/options/keltnerchannels.d.ts +8 -0
  1172. package/options/keltnerchannels.src.d.ts +8 -0
  1173. package/options/line.d.ts +9 -0
  1174. package/options/line.src.d.ts +9 -0
  1175. package/options/linearregressionangle.d.ts +8 -0
  1176. package/options/linearregressionangle.src.d.ts +8 -0
  1177. package/options/linearregressionintercept.d.ts +8 -0
  1178. package/options/linearregressionintercept.src.d.ts +8 -0
  1179. package/options/map.d.ts +8 -0
  1180. package/options/map.src.d.ts +8 -0
  1181. package/options/mfi.d.ts +8 -0
  1182. package/options/mfi.src.d.ts +8 -0
  1183. package/options/natr.d.ts +8 -0
  1184. package/options/natr.src.d.ts +8 -0
  1185. package/options/ohlc.d.ts +8 -0
  1186. package/options/ohlc.src.d.ts +8 -0
  1187. package/options/packedbubble.d.ts +8 -0
  1188. package/options/packedbubble.src.d.ts +8 -0
  1189. package/options/pictorial.d.ts +8 -0
  1190. package/options/pictorial.src.d.ts +8 -0
  1191. package/options/pointandfigure.d.ts +8 -0
  1192. package/options/pointandfigure.src.d.ts +8 -0
  1193. package/options/polygon.d.ts +9 -0
  1194. package/options/polygon.src.d.ts +9 -0
  1195. package/options/ppo.d.ts +8 -0
  1196. package/options/ppo.src.d.ts +8 -0
  1197. package/options/psar.d.ts +8 -0
  1198. package/options/psar.src.d.ts +8 -0
  1199. package/options/pyramid.d.ts +8 -0
  1200. package/options/pyramid.src.d.ts +8 -0
  1201. package/options/renko.d.ts +8 -0
  1202. package/options/renko.src.d.ts +8 -0
  1203. package/options/roc.d.ts +8 -0
  1204. package/options/roc.src.d.ts +8 -0
  1205. package/options/sankey.d.ts +8 -0
  1206. package/options/sankey.src.d.ts +8 -0
  1207. package/options/scatter.d.ts +9 -0
  1208. package/options/scatter.src.d.ts +9 -0
  1209. package/options/series.d.ts +9 -0
  1210. package/options/series.src.d.ts +9 -0
  1211. package/options/sma.d.ts +8 -0
  1212. package/options/sma.src.d.ts +8 -0
  1213. package/options/solidgauge.d.ts +14 -0
  1214. package/options/solidgauge.src.d.ts +14 -0
  1215. package/options/spline.d.ts +9 -0
  1216. package/options/spline.src.d.ts +9 -0
  1217. package/options/stochastic.d.ts +8 -0
  1218. package/options/stochastic.src.d.ts +8 -0
  1219. package/options/tema.d.ts +8 -0
  1220. package/options/tema.src.d.ts +8 -0
  1221. package/options/tiledwebmap.d.ts +8 -0
  1222. package/options/tiledwebmap.src.d.ts +8 -0
  1223. package/options/timeline.d.ts +8 -0
  1224. package/options/timeline.src.d.ts +8 -0
  1225. package/options/treegraph.d.ts +8 -0
  1226. package/options/treegraph.src.d.ts +8 -0
  1227. package/options/trix.d.ts +8 -0
  1228. package/options/trix.src.d.ts +8 -0
  1229. package/options/variablepie.d.ts +8 -0
  1230. package/options/variablepie.src.d.ts +8 -0
  1231. package/options/variwide.d.ts +8 -0
  1232. package/options/variwide.src.d.ts +8 -0
  1233. package/options/vbp.d.ts +8 -0
  1234. package/options/vbp.src.d.ts +8 -0
  1235. package/options/vector.d.ts +9 -0
  1236. package/options/vector.src.d.ts +9 -0
  1237. package/options/venn.d.ts +8 -0
  1238. package/options/venn.src.d.ts +8 -0
  1239. package/options/vwap.d.ts +8 -0
  1240. package/options/vwap.src.d.ts +8 -0
  1241. package/options/windbarb.d.ts +9 -0
  1242. package/options/windbarb.src.d.ts +9 -0
  1243. package/options/wma.d.ts +8 -0
  1244. package/options/wma.src.d.ts +8 -0
  1245. package/options/wordcloud.d.ts +8 -0
  1246. package/options/wordcloud.src.d.ts +8 -0
  1247. package/options/zigzag.d.ts +8 -0
  1248. package/options/zigzag.src.d.ts +8 -0
  1249. package/package.json +1 -1
  1250. package/standalone-navigator.js +11 -2
  1251. package/standalone-navigator.src.js +312 -206
  1252. package/themes/adaptive.d.ts +18 -0
  1253. package/themes/adaptive.js +130 -0
  1254. package/themes/adaptive.src.d.ts +18 -0
  1255. package/themes/adaptive.src.js +1122 -0
  1256. package/themes/avocado.d.ts +1 -9
  1257. package/themes/avocado.js +9 -1
  1258. package/themes/avocado.src.d.ts +1 -9
  1259. package/themes/avocado.src.js +1 -1
  1260. package/themes/brand-dark.d.ts +1 -9
  1261. package/themes/brand-dark.js +9 -1
  1262. package/themes/brand-dark.src.d.ts +1 -9
  1263. package/themes/brand-dark.src.js +1 -1
  1264. package/themes/brand-light.d.ts +1 -9
  1265. package/themes/brand-light.js +9 -1
  1266. package/themes/brand-light.src.d.ts +1 -9
  1267. package/themes/brand-light.src.js +1 -1
  1268. package/themes/dark-blue.d.ts +1 -9
  1269. package/themes/dark-blue.js +9 -1
  1270. package/themes/dark-blue.src.d.ts +1 -9
  1271. package/themes/dark-blue.src.js +1 -1
  1272. package/themes/dark-green.d.ts +1 -9
  1273. package/themes/dark-green.js +9 -1
  1274. package/themes/dark-green.src.d.ts +1 -9
  1275. package/themes/dark-green.src.js +1 -1
  1276. package/themes/dark-unica.d.ts +1 -9
  1277. package/themes/dark-unica.js +9 -1
  1278. package/themes/dark-unica.src.d.ts +1 -9
  1279. package/themes/dark-unica.src.js +1 -1
  1280. package/themes/gray.d.ts +1 -9
  1281. package/themes/gray.js +9 -1
  1282. package/themes/gray.src.d.ts +1 -9
  1283. package/themes/gray.src.js +1 -1
  1284. package/themes/grid-light.d.ts +1 -9
  1285. package/themes/grid-light.js +9 -1
  1286. package/themes/grid-light.src.d.ts +1 -9
  1287. package/themes/grid-light.src.js +1 -1
  1288. package/themes/grid.d.ts +1 -9
  1289. package/themes/grid.js +9 -1
  1290. package/themes/grid.src.d.ts +1 -9
  1291. package/themes/grid.src.js +1 -1
  1292. package/themes/high-contrast-dark.d.ts +1 -9
  1293. package/themes/high-contrast-dark.js +9 -1
  1294. package/themes/high-contrast-dark.src.d.ts +1 -9
  1295. package/themes/high-contrast-dark.src.js +1 -1
  1296. package/themes/high-contrast-light.d.ts +1 -9
  1297. package/themes/high-contrast-light.js +9 -1
  1298. package/themes/high-contrast-light.src.d.ts +1 -9
  1299. package/themes/high-contrast-light.src.js +1 -1
  1300. package/themes/sand-signika.d.ts +1 -9
  1301. package/themes/sand-signika.js +9 -1
  1302. package/themes/sand-signika.src.d.ts +1 -9
  1303. package/themes/sand-signika.src.js +1 -1
  1304. package/themes/skies.d.ts +1 -9
  1305. package/themes/skies.js +9 -1
  1306. package/themes/skies.src.d.ts +1 -9
  1307. package/themes/skies.src.js +1 -1
  1308. package/themes/sunset.d.ts +1 -9
  1309. package/themes/sunset.js +9 -1
  1310. package/themes/sunset.src.d.ts +1 -9
  1311. package/themes/sunset.src.js +1 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Highcharts JS v12.2.0 (2025-04-07)
2
+ * @license Highcharts JS v12.4.0 (2025-09-04)
3
3
  * @module highcharts/modules/export-data
4
4
  * @requires highcharts
5
5
  * @requires highcharts/modules/exporting
6
6
  *
7
- * Exporting module
7
+ * Export data module
8
8
  *
9
9
  * (c) 2010-2025 Torstein Honsi
10
10
  *
@@ -12,14 +12,14 @@
12
12
  */
13
13
  (function webpackUniversalModuleDefinition(root, factory) {
14
14
  if(typeof exports === 'object' && typeof module === 'object')
15
- module.exports = factory(root["_Highcharts"], root["_Highcharts"]["AST"]);
15
+ module.exports = factory(root["_Highcharts"], root["_Highcharts"]["AST"], root["_Highcharts"]["Chart"]);
16
16
  else if(typeof define === 'function' && define.amd)
17
- define("highcharts/modules/export-data", ["highcharts/highcharts"], function (amd1) {return factory(amd1,amd1["AST"]);});
17
+ define("highcharts/modules/export-data", ["highcharts/highcharts"], function (amd1) {return factory(amd1,amd1["AST"],amd1["Chart"]);});
18
18
  else if(typeof exports === 'object')
19
- exports["highcharts/modules/export-data"] = factory(root["_Highcharts"], root["_Highcharts"]["AST"]);
19
+ exports["highcharts/modules/export-data"] = factory(root["_Highcharts"], root["_Highcharts"]["AST"], root["_Highcharts"]["Chart"]);
20
20
  else
21
- root["Highcharts"] = factory(root["Highcharts"], root["Highcharts"]["AST"]);
22
- })(typeof window === 'undefined' ? this : window, (__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__660__) => {
21
+ root["Highcharts"] = factory(root["Highcharts"], root["Highcharts"]["AST"], root["Highcharts"]["Chart"]);
22
+ })(typeof window === 'undefined' ? this : window, (__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__660__, __WEBPACK_EXTERNAL_MODULE__960__) => {
23
23
  return /******/ (() => { // webpackBootstrap
24
24
  /******/ "use strict";
25
25
  /******/ var __webpack_modules__ = ({
@@ -36,6 +36,13 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__660__;
36
36
 
37
37
  module.exports = __WEBPACK_EXTERNAL_MODULE__944__;
38
38
 
39
+ /***/ }),
40
+
41
+ /***/ 960:
42
+ /***/ ((module) => {
43
+
44
+ module.exports = __WEBPACK_EXTERNAL_MODULE__960__;
45
+
39
46
  /***/ })
40
47
 
41
48
  /******/ });
@@ -125,6 +132,8 @@ var highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default
125
132
  * */
126
133
 
127
134
  const { isSafari, win, win: { document: doc } } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
135
+
136
+ const { error } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
128
137
  /* *
129
138
  *
130
139
  * Constants
@@ -138,12 +147,15 @@ const domurl = win.URL || win.webkitURL || win;
138
147
  * */
139
148
  /**
140
149
  * Convert base64 dataURL to Blob if supported, otherwise returns undefined.
150
+ *
141
151
  * @private
142
152
  * @function Highcharts.dataURLtoBlob
153
+ *
143
154
  * @param {string} dataURL
144
- * URL to convert
145
- * @return {string|undefined}
146
- * Blob
155
+ * URL to convert.
156
+ *
157
+ * @return {string | undefined}
158
+ * Blob.
147
159
  */
148
160
  function dataURLtoBlob(dataURL) {
149
161
  const parts = dataURL
@@ -170,11 +182,11 @@ function dataURLtoBlob(dataURL) {
170
182
  *
171
183
  * @private
172
184
  * @function Highcharts.downloadURL
173
- * @param {string|global.URL} dataURL
174
- * The dataURL/Blob to download
185
+ *
186
+ * @param {string | global.URL} dataURL
187
+ * The dataURL/Blob to download.
175
188
  * @param {string} filename
176
- * The name of the resulting file (w/extension)
177
- * @return {void}
189
+ * The name of the resulting file (w/extension).
178
190
  */
179
191
  function downloadURL(dataURL, filename) {
180
192
  const nav = win.navigator, a = doc.createElement('a');
@@ -224,6 +236,35 @@ function downloadURL(dataURL, filename) {
224
236
  }
225
237
  }
226
238
  }
239
+ /**
240
+ * Asynchronously downloads a script from a provided location.
241
+ *
242
+ * @private
243
+ * @function Highcharts.getScript
244
+ *
245
+ * @param {string} scriptLocation
246
+ * The location for the script to fetch.
247
+ */
248
+ function getScript(scriptLocation) {
249
+ return new Promise((resolve, reject) => {
250
+ const head = doc.getElementsByTagName('head')[0], script = doc.createElement('script');
251
+ // Set type and location for the script
252
+ script.type = 'text/javascript';
253
+ script.src = scriptLocation;
254
+ // Resolve in case of a succesful script fetching
255
+ script.onload = () => {
256
+ resolve();
257
+ };
258
+ // Reject in case of fail
259
+ script.onerror = () => {
260
+ const msg = `Error loading script ${scriptLocation}`;
261
+ error(msg);
262
+ reject(new Error(msg));
263
+ };
264
+ // Append the newly created script
265
+ head.appendChild(script);
266
+ });
267
+ }
227
268
  /* *
228
269
  *
229
270
  * Default Export
@@ -231,13 +272,17 @@ function downloadURL(dataURL, filename) {
231
272
  * */
232
273
  const DownloadURL = {
233
274
  dataURLtoBlob,
234
- downloadURL
275
+ downloadURL,
276
+ getScript
235
277
  };
236
278
  /* harmony default export */ const Extensions_DownloadURL = (DownloadURL);
237
279
 
238
280
  // EXTERNAL MODULE: external {"amd":["highcharts/highcharts","AST"],"commonjs":["highcharts","AST"],"commonjs2":["highcharts","AST"],"root":["Highcharts","AST"]}
239
281
  var highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_ = __webpack_require__(660);
240
282
  var highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default = /*#__PURE__*/__webpack_require__.n(highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_);
283
+ // EXTERNAL MODULE: external {"amd":["highcharts/highcharts","Chart"],"commonjs":["highcharts","Chart"],"commonjs2":["highcharts","Chart"],"root":["Highcharts","Chart"]}
284
+ var highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_ = __webpack_require__(960);
285
+ var highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default = /*#__PURE__*/__webpack_require__.n(highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_);
241
286
  ;// ./code/es-modules/Extensions/ExportData/ExportDataDefaults.js
242
287
  /* *
243
288
  *
@@ -268,7 +313,7 @@ const exporting = {
268
313
  * @sample highcharts/export-data/multilevel-table
269
314
  * Multiple table headers
270
315
  *
271
- * @type {boolean|string}
316
+ * @type {boolean | string}
272
317
  * @since 6.0.4
273
318
  * @requires modules/export-data
274
319
  * @apioption exporting.tableCaption
@@ -278,8 +323,8 @@ const exporting = {
278
323
  * in a HTML table or a JavaScript structure.
279
324
  *
280
325
  * This module adds data export options to the export menu and provides
281
- * functions like `Chart.getCSV`, `Chart.getTable`, `Chart.getDataRows`
282
- * and `Chart.viewData`.
326
+ * functions like `Exporting.getCSV`, `Exporting.getTable`,
327
+ * `Exporting.getDataRows` and `Exporting.viewData`.
283
328
  *
284
329
  * The XLS converter is limited and only creates a HTML string that is
285
330
  * passed for download, which works but creates a warning before
@@ -299,7 +344,7 @@ const exporting = {
299
344
  *
300
345
  * Options for annotations in the export-data table.
301
346
  *
302
- * @since 8.2.0
347
+ * @since 8.2.0
303
348
  * @requires modules/export-data
304
349
  * @requires modules/annotations
305
350
  *
@@ -310,7 +355,7 @@ const exporting = {
310
355
  * The way to mark the separator for annotations
311
356
  * combined in one export-data table cell.
312
357
  *
313
- * @since 8.2.0
358
+ * @since 8.2.0
314
359
  * @requires modules/annotations
315
360
  */
316
361
  itemDelimiter: '; ',
@@ -321,7 +366,7 @@ const exporting = {
321
366
  * @sample highcharts/export-data/join-annotations/
322
367
  * Concatenate point annotations with itemDelimiter set.
323
368
  *
324
- * @since 8.2.0
369
+ * @since 8.2.0
325
370
  * @requires modules/annotations
326
371
  */
327
372
  join: false
@@ -352,7 +397,7 @@ const exporting = {
352
397
  * @sample highcharts/export-data/multilevel-table
353
398
  * Multiple table headers
354
399
  *
355
- * @type {Function|null}
400
+ * @type {Function | null}
356
401
  */
357
402
  columnHeaderFormatter: null,
358
403
  /**
@@ -365,7 +410,7 @@ const exporting = {
365
410
  * as the browser locale, typically `.` (English) or `,` (German,
366
411
  * French etc).
367
412
  *
368
- * @type {string|null}
413
+ * @type {string | null}
369
414
  * @since 6.0.4
370
415
  */
371
416
  decimalPoint: null,
@@ -375,7 +420,7 @@ const exporting = {
375
420
  * locale. If the locale _decimal point_ is `,`, the `itemDelimiter`
376
421
  * defaults to `;`, otherwise the `itemDelimiter` defaults to `,`.
377
422
  *
378
- * @type {string|null}
423
+ * @type {string | null}
379
424
  */
380
425
  itemDelimiter: null,
381
426
  /**
@@ -383,6 +428,60 @@ const exporting = {
383
428
  */
384
429
  lineDelimiter: '\n'
385
430
  },
431
+ /**
432
+ * An object consisting of definitions for the menu items in the context
433
+ * menu. Each key value pair has a `key` that is referenced in the
434
+ * [menuItems](#exporting.buttons.contextButton.menuItems) setting,
435
+ * and a `value`, which is an object with the following properties:
436
+ *
437
+ * - **onclick:** The click handler for the menu item
438
+ *
439
+ * - **text:** The text for the menu item
440
+ *
441
+ * - **textKey:** If internationalization is required, the key to a language
442
+ * string
443
+ *
444
+ * Custom text for the "exitFullScreen" can be set only in lang options
445
+ * (it is not a separate button).
446
+ *
447
+ * @sample highcharts/exporting/menuitemdefinitions/
448
+ * Menu item definitions
449
+ * @sample highcharts/exporting/menuitemdefinitions-webp/
450
+ * Adding a custom menu item for WebP export
451
+ *
452
+ * @type {Highcharts.Dictionary<Highcharts.ExportingMenuObject>}
453
+ * @default {"downloadCSV": {}, "downloadXLS": {}, "viewData": {}}
454
+ * @requires modules/export-data
455
+ */
456
+ menuItemDefinitions: {
457
+ /**
458
+ * @ignore
459
+ */
460
+ downloadCSV: {
461
+ textKey: 'downloadCSV',
462
+ onclick: function () {
463
+ this.exporting?.downloadCSV();
464
+ }
465
+ },
466
+ /**
467
+ * @ignore
468
+ */
469
+ downloadXLS: {
470
+ textKey: 'downloadXLS',
471
+ onclick: function () {
472
+ this.exporting?.downloadXLS();
473
+ }
474
+ },
475
+ /**
476
+ * @ignore
477
+ */
478
+ viewData: {
479
+ textKey: 'viewData',
480
+ onclick: function () {
481
+ this.exporting?.wrapLoading(this.exporting.toggleDataTable);
482
+ }
483
+ }
484
+ },
386
485
  /**
387
486
  * Show a HTML table below the chart with the chart's current data.
388
487
  *
@@ -425,7 +524,7 @@ const exporting = {
425
524
  *
426
525
  * The message can be altered by changing [](#lang.exporting.exportInProgress)
427
526
  *
428
- * @since 11.3.0
527
+ * @since 11.3.0
429
528
  * @requires modules/export-data
430
529
  */
431
530
  showExportInProgress: true
@@ -452,7 +551,7 @@ const lang = {
452
551
  /**
453
552
  * The text for exported table.
454
553
  *
455
- * @since 8.1.0
554
+ * @since 8.1.0
456
555
  * @requires modules/export-data
457
556
  */
458
557
  exportData: {
@@ -479,14 +578,14 @@ const lang = {
479
578
  /**
480
579
  * The text for the menu item.
481
580
  *
482
- * @since 8.2.0
581
+ * @since 8.2.0
483
582
  * @requires modules/export-data
484
583
  */
485
584
  hideData: 'Hide data table',
486
585
  /**
487
586
  * Text to show when export is in progress.
488
587
  *
489
- * @since 11.3.0
588
+ * @since 11.3.0
490
589
  * @requires modules/export-data
491
590
  */
492
591
  exportInProgress: 'Exporting...'
@@ -547,857 +646,951 @@ const ExportDataDefaults = {
547
646
 
548
647
 
549
648
 
649
+
550
650
  const { getOptions, setOptions } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
551
651
 
552
652
  const { downloadURL: ExportData_downloadURL } = Extensions_DownloadURL;
553
653
 
554
654
 
555
- const { doc: ExportData_doc, win: ExportData_win } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
655
+ const { composed, doc: ExportData_doc, win: ExportData_win } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
556
656
 
557
- const { addEvent, defined, extend, find, fireEvent, isNumber, pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
657
+ const { addEvent, defined, extend, find, fireEvent, isNumber, pick, pushUnique } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
558
658
  /* *
559
659
  *
560
- * Functions
660
+ * Composition
561
661
  *
562
662
  * */
563
- /**
564
- * Wrapper function for the download functions, which handles showing and hiding
565
- * the loading message
566
- *
567
- * @private
568
- *
569
- */
570
- function wrapLoading(fn) {
571
- const showMessage = Boolean(this.options.exporting?.showExportInProgress);
572
- // Prefer requestAnimationFrame if available
573
- const timeoutFn = ExportData_win.requestAnimationFrame || setTimeout;
574
- // Outer timeout avoids menu freezing on click
575
- timeoutFn(() => {
576
- showMessage && this.showLoading(this.options.lang.exportInProgress);
577
- timeoutFn(() => {
578
- try {
579
- fn.call(this);
580
- }
581
- finally {
582
- showMessage && this.hideLoading();
663
+ var ExportData;
664
+ (function (ExportData) {
665
+ /* *
666
+ *
667
+ * Declarations
668
+ *
669
+ * */
670
+ /* *
671
+ *
672
+ * Functions
673
+ *
674
+ * */
675
+ /**
676
+ * Composition function.
677
+ *
678
+ * @private
679
+ * @function Highcharts.Exporting#compose
680
+ *
681
+ * @param {ChartClass} ChartClass
682
+ * Chart class.
683
+ * @param {ExportingClass} ExportingClass
684
+ * Exporting class.
685
+ * @param {SeriesClass} SeriesClass
686
+ * Series class.
687
+ *
688
+ * @requires modules/exporting
689
+ * @requires modules/export-data
690
+ */
691
+ function compose(ChartClass, ExportingClass, SeriesClass) {
692
+ // Check the composition registry for the Exporting
693
+ if (!pushUnique(composed, 'ExportData')) {
694
+ return;
695
+ }
696
+ // Adding wrappers for the deprecated functions
697
+ extend((highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default()).prototype, {
698
+ downloadCSV: function () {
699
+ return this.exporting?.downloadCSV();
700
+ },
701
+ downloadXLS: function () {
702
+ return this.exporting?.downloadXLS();
703
+ },
704
+ getCSV: function (useLocalDecimalPoint) {
705
+ return this.exporting?.getCSV(useLocalDecimalPoint);
706
+ },
707
+ getDataRows: function (multiLevelHeaders) {
708
+ return this.exporting?.getDataRows(multiLevelHeaders);
709
+ },
710
+ getTable: function (useLocalDecimalPoint) {
711
+ return this.exporting?.getTable(useLocalDecimalPoint);
712
+ },
713
+ getTableAST: function (useLocalDecimalPoint) {
714
+ return this.exporting?.getTableAST(useLocalDecimalPoint);
715
+ },
716
+ hideData: function () {
717
+ return this.exporting?.hideData();
718
+ },
719
+ toggleDataTable: function (show) {
720
+ return this.exporting?.toggleDataTable(show);
721
+ },
722
+ viewData: function () {
723
+ return this.exporting?.viewData();
583
724
  }
584
725
  });
585
- });
586
- }
587
- /**
588
- * Generates a data URL of CSV for local download in the browser. This is the
589
- * default action for a click on the 'Download CSV' button.
590
- *
591
- * See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
592
- *
593
- * @function Highcharts.Chart#downloadCSV
594
- *
595
- * @requires modules/exporting
596
- */
597
- function chartDownloadCSV() {
598
- wrapLoading.call(this, () => {
599
- const csv = this.getCSV(true);
600
- ExportData_downloadURL(getBlobFromContent(csv, 'text/csv') ||
601
- 'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
602
- });
603
- }
604
- /**
605
- * Generates a data URL of an XLS document for local download in the browser.
606
- * This is the default action for a click on the 'Download XLS' button.
607
- *
608
- * See {@link Highcharts.Chart#getTable} to get the table data itself.
609
- *
610
- * @function Highcharts.Chart#downloadXLS
611
- *
612
- * @requires modules/exporting
613
- */
614
- function chartDownloadXLS() {
615
- wrapLoading.call(this, () => {
616
- const uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
617
- 'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
618
- 'xmlns="http://www.w3.org/TR/REC-html40">' +
619
- '<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
620
- '<x:ExcelWorksheets><x:ExcelWorksheet>' +
621
- '<x:Name>Ark1</x:Name>' +
622
- '<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
623
- '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
624
- '</xml><![endif]-->' +
625
- '<style>td{border:none;font-family: Calibri, sans-serif;} ' +
626
- '.number{mso-number-format:"0.00";} ' +
627
- '.text{ mso-number-format:"\@";}</style>' +
628
- '<meta name=ProgId content=Excel.Sheet>' +
629
- '<meta charset=UTF-8>' +
630
- '</head><body>' +
631
- this.getTable(true) +
632
- '</body></html>', base64 = function (s) {
633
- return ExportData_win.btoa(unescape(encodeURIComponent(s))); // #50
634
- };
635
- ExportData_downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
636
- uri + base64(template), this.getFilename() + '.xls');
637
- });
638
- }
639
- /**
640
- * Export-data module required. Returns the current chart data as a CSV string.
641
- *
642
- * @function Highcharts.Chart#getCSV
643
- *
644
- * @param {boolean} [useLocalDecimalPoint]
645
- * Whether to use the local decimal point as detected from the browser.
646
- * This makes it easier to export data to Excel in the same locale as the
647
- * user is.
648
- *
649
- * @return {string}
650
- * CSV representation of the data
651
- */
652
- function chartGetCSV(useLocalDecimalPoint) {
653
- let csv = '';
654
- const rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
655
- (1.1).toLocaleString()[1] :
656
- '.'),
657
- // Use ';' for direct to Excel
658
- itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
659
- // '\n' isn't working with the js csv data extraction
660
- lineDelimiter = csvOptions.lineDelimiter;
661
- // Transform the rows to CSV
662
- rows.forEach((row, i) => {
663
- let val = '', j = row.length;
664
- while (j--) {
665
- val = row[j];
666
- if (typeof val === 'string') {
667
- val = `"${val}"`;
726
+ const exportingProto = ExportingClass.prototype;
727
+ if (!exportingProto.downloadCSV) {
728
+ // Add an event listener to handle the showTable option
729
+ addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
730
+ addEvent(ChartClass, 'render', onChartRenderer);
731
+ addEvent(ChartClass, 'destroy', onChartDestroy);
732
+ // Adding functions to the Exporting prototype
733
+ exportingProto.downloadCSV = downloadCSV;
734
+ exportingProto.downloadXLS = downloadXLS;
735
+ exportingProto.getCSV = getCSV;
736
+ exportingProto.getDataRows = getDataRows;
737
+ exportingProto.getTable = getTable;
738
+ exportingProto.getTableAST = getTableAST;
739
+ exportingProto.hideData = hideData;
740
+ exportingProto.toggleDataTable = toggleDataTable;
741
+ exportingProto.wrapLoading = wrapLoading;
742
+ exportingProto.viewData = viewData;
743
+ // Update with defaults of the export data module
744
+ setOptions(ExportData_ExportDataDefaults);
745
+ // Additionaly, extend the menuItems with the export data variants
746
+ const menuItems = getOptions().exporting?.buttons?.contextButton?.menuItems;
747
+ menuItems && menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
748
+ const { arearange: AreaRangeSeries, gantt: GanttSeries, map: MapSeries, mapbubble: MapBubbleSeries, treemap: TreemapSeries, xrange: XRangeSeries } = SeriesClass.types;
749
+ if (AreaRangeSeries) {
750
+ AreaRangeSeries.prototype.keyToAxis = {
751
+ low: 'y',
752
+ high: 'y'
753
+ };
668
754
  }
669
- if (typeof val === 'number') {
670
- if (decimalPoint !== '.') {
671
- val = val.toString().replace('.', decimalPoint);
672
- }
755
+ if (GanttSeries) {
756
+ GanttSeries.prototype.exportKey = 'name';
757
+ GanttSeries.prototype.keyToAxis = {
758
+ start: 'x',
759
+ end: 'x'
760
+ };
673
761
  }
674
- row[j] = val;
675
- }
676
- // The first row is the header - it defines the number of columns.
677
- // Empty columns between not-empty cells are covered in the getDataRows
678
- // method.
679
- // Now add empty values only to the end of the row so all rows have
680
- // the same number of columns, #17186
681
- row.length = rows.length ? rows[0].length : 0;
682
- // Add the values
683
- csv += row.join(itemDelimiter);
684
- // Add the line delimiter
685
- if (i < rows.length - 1) {
686
- csv += lineDelimiter;
687
- }
688
- });
689
- return csv;
690
- }
691
- /**
692
- * Export-data module required. Returns a two-dimensional array containing the
693
- * current chart data.
694
- *
695
- * @function Highcharts.Chart#getDataRows
696
- *
697
- * @param {boolean} [multiLevelHeaders]
698
- * Use multilevel headers for the rows by default. Adds an extra row with
699
- * top level headers. If a custom columnHeaderFormatter is defined, this
700
- * can override the behavior.
701
- *
702
- * @return {Array<Array<(number|string)>>}
703
- * The current chart data
704
- *
705
- * @emits Highcharts.Chart#event:exportData
706
- */
707
- function chartGetDataRows(multiLevelHeaders) {
708
- const hasParallelCoords = this.hasParallelCoordinates, time = this.time, csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}), xAxes = this.xAxis, rows = {}, rowArr = [], topLevelColumnTitles = [], columnTitles = [], langOptions = this.options.lang, exportDataOptions = langOptions.exportData, categoryHeader = exportDataOptions.categoryHeader, categoryDatetimeHeader = exportDataOptions.categoryDatetimeHeader,
709
- // Options
710
- columnHeaderFormatter = function (item, key, keyLength) {
711
- if (csvOptions.columnHeaderFormatter) {
712
- const s = csvOptions.columnHeaderFormatter(item, key, keyLength);
713
- if (s !== false) {
714
- return s;
762
+ if (MapSeries) {
763
+ MapSeries.prototype.exportKey = 'name';
764
+ }
765
+ if (MapBubbleSeries) {
766
+ MapBubbleSeries.prototype.exportKey = 'name';
767
+ }
768
+ if (TreemapSeries) {
769
+ TreemapSeries.prototype.exportKey = 'name';
770
+ }
771
+ if (XRangeSeries) {
772
+ XRangeSeries.prototype.keyToAxis = {
773
+ x2: 'x'
774
+ };
715
775
  }
716
776
  }
717
- if (!item) {
718
- return categoryHeader;
719
- }
720
- if (!item.bindAxes) {
721
- return (item.options.title &&
722
- item.options.title.text) || (item.dateTime ?
723
- categoryDatetimeHeader :
724
- categoryHeader);
725
- }
726
- if (multiLevelHeaders) {
727
- return {
728
- columnTitle: keyLength > 1 ?
729
- key :
730
- item.name,
731
- topLevelColumnTitle: item.name
777
+ }
778
+ ExportData.compose = compose;
779
+ /**
780
+ * Generates a data URL of CSV for local download in the browser. This is
781
+ * the default action for a click on the 'Download CSV' button.
782
+ *
783
+ * See {@link Highcharts.Exporting#getCSV} to get the CSV data itself.
784
+ *
785
+ * @function Highcharts.Exporting#downloadCSV
786
+ *
787
+ * @requires modules/exporting
788
+ * @requires modules/export-data
789
+ */
790
+ function downloadCSV() {
791
+ this.wrapLoading(() => {
792
+ const csv = this.getCSV(true);
793
+ ExportData_downloadURL(getBlobFromContent(csv, 'text/csv') ||
794
+ 'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
795
+ });
796
+ }
797
+ /**
798
+ * Generates a data URL of an XLS document for local download in the
799
+ * browser. This is the default action for a click on the 'Download XLS'
800
+ * button.
801
+ *
802
+ * See {@link Highcharts.Exporting#getTable} to get the table data itself.
803
+ *
804
+ * @function Highcharts.Exporting#downloadXLS
805
+ *
806
+ * @requires modules/exporting
807
+ * @requires modules/export-data
808
+ */
809
+ function downloadXLS() {
810
+ this.wrapLoading(() => {
811
+ const uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
812
+ 'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
813
+ 'xmlns="http://www.w3.org/TR/REC-html40">' +
814
+ '<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
815
+ '<x:ExcelWorksheets><x:ExcelWorksheet>' +
816
+ '<x:Name>Ark1</x:Name>' +
817
+ '<x:WorksheetOptions><x:DisplayGridlines/>' +
818
+ '</x:WorksheetOptions>' +
819
+ '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
820
+ '</xml><![endif]-->' +
821
+ '<style>td{border:none;font-family: Calibri, sans-serif;} ' +
822
+ '.number{mso-number-format:"0.00";} ' +
823
+ '.text{ mso-number-format:"\@";}</style>' +
824
+ '<meta name=ProgId content=Excel.Sheet>' +
825
+ '<meta charset=UTF-8>' +
826
+ '</head><body>' +
827
+ this.getTable(true) +
828
+ '</body></html>', base64 = function (s) {
829
+ return ExportData_win.btoa(unescape(encodeURIComponent(s))); // #50
732
830
  };
733
- }
734
- return item.name + (keyLength > 1 ? ' (' + key + ')' : '');
735
- },
736
- // Map the categories for value axes
737
- getCategoryAndDateTimeMap = function (series, pointArrayMap, pIdx) {
738
- const categoryMap = {}, dateTimeValueAxisMap = {};
739
- pointArrayMap.forEach(function (prop) {
740
- const axisName = ((series.keyToAxis && series.keyToAxis[prop]) ||
741
- prop) + 'Axis',
742
- // Points in parallel coordinates refers to all yAxis
743
- // not only `series.yAxis`
744
- axis = isNumber(pIdx) ?
745
- series.chart[axisName][pIdx] :
746
- series[axisName];
747
- categoryMap[prop] = (axis && axis.categories) || [];
748
- dateTimeValueAxisMap[prop] = (axis && axis.dateTime);
831
+ ExportData_downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
832
+ uri + base64(template), this.getFilename() + '.xls');
749
833
  });
750
- return {
751
- categoryMap: categoryMap,
752
- dateTimeValueAxisMap: dateTimeValueAxisMap
753
- };
754
- },
755
- // Create point array depends if xAxis is category
756
- // or point.name is defined #13293
757
- getPointArray = function (series, xAxis) {
758
- const pointArrayMap = series.pointArrayMap || ['y'], namedPoints = series.data.some((d) => (typeof d.y !== 'undefined') && d.name);
759
- // If there are points with a name, we also want the x value in the
760
- // table
761
- if (namedPoints &&
762
- xAxis &&
763
- !xAxis.categories &&
764
- series.exportKey !== 'name') {
765
- return ['x', ...pointArrayMap];
834
+ }
835
+ /**
836
+ * Get a blob object from content, if blob is supported.
837
+ *
838
+ * @private
839
+ * @function Highcharts.getBlobFromContent
840
+ *
841
+ * @param {string} content
842
+ * The content to create the blob from.
843
+ * @param {string} type
844
+ * The type of the content.
845
+ *
846
+ * @return {string | undefined}
847
+ * The blob object, or undefined if not supported.
848
+ *
849
+ * @requires modules/exporting
850
+ * @requires modules/export-data
851
+ */
852
+ function getBlobFromContent(content, type) {
853
+ const nav = ExportData_win.navigator, domurl = ExportData_win.URL || ExportData_win.webkitURL || ExportData_win;
854
+ try {
855
+ // MS specific
856
+ if ((nav.msSaveOrOpenBlob) && ExportData_win.MSBlobBuilder) {
857
+ const blob = new ExportData_win.MSBlobBuilder();
858
+ blob.append(content);
859
+ return blob.getBlob('image/svg+xml');
860
+ }
861
+ return domurl.createObjectURL(new ExportData_win.Blob(['\uFEFF' + content], // #7084
862
+ { type: type }));
766
863
  }
767
- return pointArrayMap;
768
- }, xAxisIndices = [];
769
- let xAxis, dataRows, columnTitleObj, i = 0, // Loop the series and index values
770
- x, xTitle;
771
- this.series.forEach(function (series) {
772
- const keys = series.options.keys, xAxis = series.xAxis, pointArrayMap = keys || getPointArray(series, xAxis), valueCount = pointArrayMap.length, xTaken = !series.requireSorting && {}, xAxisIndex = xAxes.indexOf(xAxis);
773
- let categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap), mockSeries, j;
774
- if (series.options.includeInDataExport !== false &&
775
- !series.options.isInternal &&
776
- series.visible !== false // #55
777
- ) {
778
- // Build a lookup for X axis index and the position of the first
779
- // series that belongs to that X axis. Includes -1 for non-axis
780
- // series types like pies.
781
- if (!find(xAxisIndices, function (index) {
782
- return index[0] === xAxisIndex;
783
- })) {
784
- xAxisIndices.push([xAxisIndex, i]);
864
+ catch {
865
+ // Ignore
866
+ }
867
+ }
868
+ /**
869
+ * Returns the current chart data as a CSV string.
870
+ *
871
+ * @function Highcharts.Exporting#getCSV
872
+ *
873
+ * @param {boolean} [useLocalDecimalPoint]
874
+ * Whether to use the local decimal point as detected from the browser. This
875
+ * makes it easier to export data to Excel in the same locale as the user
876
+ * is.
877
+ *
878
+ * @return {string}
879
+ * CSV representation of the data.
880
+ *
881
+ * @requires modules/exporting
882
+ * @requires modules/export-data
883
+ */
884
+ function getCSV(useLocalDecimalPoint) {
885
+ let csv = '';
886
+ const rows = this.getDataRows(), csvOptions = this.options?.csv, decimalPoint = pick(csvOptions?.decimalPoint, csvOptions?.itemDelimiter !== ',' && useLocalDecimalPoint ?
887
+ (1.1).toLocaleString()[1] :
888
+ '.'),
889
+ // Use ';' for direct to Excel
890
+ itemDelimiter = pick(csvOptions?.itemDelimiter, decimalPoint === ',' ? ';' : ','),
891
+ // '\n' isn't working with the js csv data extraction
892
+ lineDelimiter = csvOptions?.lineDelimiter;
893
+ // Transform the rows to CSV
894
+ rows.forEach((row, i) => {
895
+ let val = '', j = row.length;
896
+ while (j--) {
897
+ val = row[j];
898
+ if (typeof val === 'string') {
899
+ val = `"${val}"`;
900
+ }
901
+ if (typeof val === 'number') {
902
+ if (decimalPoint !== '.') {
903
+ val = val.toString().replace('.', decimalPoint);
904
+ }
905
+ }
906
+ row[j] = val;
785
907
  }
786
- // Compute the column headers and top level headers, usually the
787
- // same as series names
788
- j = 0;
789
- while (j < valueCount) {
790
- columnTitleObj = columnHeaderFormatter(series, pointArrayMap[j], pointArrayMap.length);
791
- columnTitles.push(columnTitleObj.columnTitle || columnTitleObj);
792
- if (multiLevelHeaders) {
793
- topLevelColumnTitles.push(columnTitleObj.topLevelColumnTitle ||
794
- columnTitleObj);
908
+ // The first row is the header - it defines the number of columns.
909
+ // Empty columns between not-empty cells are covered in the
910
+ // getDataRows method.
911
+ // Now add empty values only to the end of the row so all rows have
912
+ // the same number of columns, #17186
913
+ row.length = rows.length ? rows[0].length : 0;
914
+ // Add the values
915
+ csv += row.join(itemDelimiter);
916
+ // Add the line delimiter
917
+ if (i < rows.length - 1) {
918
+ csv += lineDelimiter;
919
+ }
920
+ });
921
+ return csv;
922
+ }
923
+ /**
924
+ * Returns a two-dimensional array containing the current chart data.
925
+ *
926
+ * @function Highcharts.Exporting#getDataRows
927
+ *
928
+ * @param {boolean} [multiLevelHeaders]
929
+ * Use multilevel headers for the rows by default. Adds an extra row with
930
+ * top level headers. If a custom columnHeaderFormatter is defined, this can
931
+ * override the behavior.
932
+ *
933
+ * @return {Array<Array<(number | string)>>}
934
+ * The current chart data
935
+ *
936
+ * @emits Highcharts.Chart#event:exportData
937
+ *
938
+ * @requires modules/exporting
939
+ * @requires modules/export-data
940
+ */
941
+ function getDataRows(multiLevelHeaders) {
942
+ const chart = this.chart, hasParallelCoords = chart.hasParallelCoordinates, time = chart.time, csvOptions = this.options?.csv || {}, xAxes = chart.xAxis, rows = {}, rowArr = [], topLevelColumnTitles = [], columnTitles = [], langOptions = chart.options.lang, exportDataOptions = langOptions.exportData, categoryHeader = exportDataOptions?.categoryHeader, categoryDatetimeHeader = exportDataOptions?.categoryDatetimeHeader,
943
+ // Options
944
+ columnHeaderFormatter = function (item, key, keyLength) {
945
+ if (csvOptions.columnHeaderFormatter) {
946
+ const s = csvOptions.columnHeaderFormatter(item, key, keyLength);
947
+ if (s !== false) {
948
+ return s;
795
949
  }
796
- j++;
797
950
  }
798
- mockSeries = {
799
- chart: series.chart,
800
- autoIncrement: series.autoIncrement,
801
- options: series.options,
802
- pointArrayMap: series.pointArrayMap,
803
- index: series.index
951
+ if (!item && categoryHeader) {
952
+ return categoryHeader;
953
+ }
954
+ if (!item.bindAxes &&
955
+ categoryDatetimeHeader &&
956
+ categoryHeader) {
957
+ return (item.options.title &&
958
+ item.options.title.text) || (item.dateTime ?
959
+ categoryDatetimeHeader :
960
+ categoryHeader);
961
+ }
962
+ if (multiLevelHeaders) {
963
+ return {
964
+ columnTitle: ((keyLength || 0) > 1 ?
965
+ key :
966
+ item.name) || '',
967
+ topLevelColumnTitle: item.name
968
+ };
969
+ }
970
+ return item.name + ((keyLength || 0) > 1 ? ' (' + key + ')' : '');
971
+ },
972
+ // Map the categories for value axes
973
+ getCategoryAndDateTimeMap = function (series, pointArrayMap, pIdx) {
974
+ const categoryMap = {}, dateTimeValueAxisMap = {};
975
+ pointArrayMap.forEach(function (prop) {
976
+ const axisName = ((series.keyToAxis && series.keyToAxis[prop]) ||
977
+ prop) + 'Axis',
978
+ // Points in parallel coordinates refers to all yAxis
979
+ // not only `series.yAxis`
980
+ axis = isNumber(pIdx) ?
981
+ series.chart[axisName][pIdx] :
982
+ series[axisName];
983
+ categoryMap[prop] = (axis && axis.categories) || [];
984
+ dateTimeValueAxisMap[prop] = (axis && axis.dateTime);
985
+ });
986
+ return {
987
+ categoryMap: categoryMap,
988
+ dateTimeValueAxisMap: dateTimeValueAxisMap
804
989
  };
805
- // Export directly from options.data because we need the uncropped
806
- // data (#7913), and we need to support Boost (#7026).
807
- series.options.data.forEach(function eachData(options, pIdx) {
808
- const mockPoint = { series: mockSeries };
809
- let key, prop, val;
810
- // In parallel coordinates chart, each data point is connected
811
- // to a separate yAxis, conform this
812
- if (hasParallelCoords) {
813
- categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
990
+ },
991
+ // Create point array depends if xAxis is category
992
+ // or point.name is defined #13293
993
+ getPointArray = function (series, xAxis) {
994
+ const pointArrayMap = series.pointArrayMap || ['y'], namedPoints = series.data.some((d) => (typeof d.y !== 'undefined') && d.name);
995
+ // If there are points with a name, we also want the x value in
996
+ // the table
997
+ if (namedPoints &&
998
+ xAxis &&
999
+ !xAxis.categories &&
1000
+ series.exportKey !== 'name') {
1001
+ return ['x', ...pointArrayMap];
1002
+ }
1003
+ return pointArrayMap;
1004
+ }, xAxisIndices = [];
1005
+ let xAxis, dataRows, columnTitleObj, i = 0, // Loop the series and index values
1006
+ x, xTitle;
1007
+ chart.series.forEach(function (series) {
1008
+ const keys = series.options.keys, xAxis = series.xAxis, pointArrayMap = keys || getPointArray(series, xAxis), valueCount = pointArrayMap.length, xTaken = !series.requireSorting && {}, xAxisIndex = xAxes.indexOf(xAxis);
1009
+ let categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap), mockSeries, j;
1010
+ if (series.options.includeInDataExport !== false &&
1011
+ !series.options.isInternal &&
1012
+ series.visible !== false // #55
1013
+ ) {
1014
+ // Build a lookup for X axis index and the position of the first
1015
+ // series that belongs to that X axis. Includes -1 for non-axis
1016
+ // series types like pies.
1017
+ if (!find(xAxisIndices, function (index) {
1018
+ return index[0] === xAxisIndex;
1019
+ })) {
1020
+ xAxisIndices.push([xAxisIndex, i]);
814
1021
  }
815
- series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
816
- const name = series.data[pIdx] && series.data[pIdx].name;
817
- key = (mockPoint.x ?? '') + ',' + name;
1022
+ // Compute the column headers and top level headers, usually the
1023
+ // same as series names
818
1024
  j = 0;
819
- // Pies, funnels, geo maps etc. use point name in X row
820
- if (!xAxis ||
821
- series.exportKey === 'name' ||
822
- (!hasParallelCoords && xAxis && xAxis.hasNames) && name) {
823
- key = name;
824
- }
825
- if (xTaken) {
826
- if (xTaken[key]) {
827
- key += '|' + pIdx;
1025
+ while (j < valueCount) {
1026
+ columnTitleObj = columnHeaderFormatter(series, pointArrayMap[j], pointArrayMap.length);
1027
+ columnTitles.push(columnTitleObj.columnTitle ||
1028
+ columnTitleObj);
1029
+ if (multiLevelHeaders) {
1030
+ topLevelColumnTitles.push(columnTitleObj.topLevelColumnTitle ||
1031
+ columnTitleObj);
828
1032
  }
829
- xTaken[key] = true;
1033
+ j++;
830
1034
  }
831
- if (!rows[key]) {
832
- rows[key] = [];
833
- rows[key].xValues = [];
834
- // ES5 replacement for Array.from / fill.
835
- const arr = [];
836
- for (let i = 0; i < series.chart.series.length; i++) {
837
- arr[i] = 0;
1035
+ mockSeries = {
1036
+ chart: series.chart,
1037
+ autoIncrement: series.autoIncrement,
1038
+ options: series.options,
1039
+ pointArrayMap: series.pointArrayMap,
1040
+ index: series.index
1041
+ };
1042
+ // Export directly from options.data because we need the
1043
+ // uncropped data (#7913), and we need to support Boost (#7026).
1044
+ series.options.data?.forEach(function eachData(options, pIdx) {
1045
+ const mockPoint = { series: mockSeries };
1046
+ let key, prop, val;
1047
+ // In parallel coordinates chart, each data point is
1048
+ // connected to a separate yAxis, conform this
1049
+ if (hasParallelCoords) {
1050
+ categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
838
1051
  }
839
- // Create pointers array, holding information how many
840
- // duplicates of specific x occurs in each series.
841
- // Used for creating rows with duplicates.
842
- rows[key].pointers = arr;
843
- rows[key].pointers[series.index] = 1;
844
- }
845
- else {
846
- // Handle duplicates (points with the same x), by creating
847
- // extra rows based on pointers for better performance.
848
- const modifiedKey = `${key},${rows[key].pointers[series.index]}`, originalKey = key;
849
- if (rows[key].pointers[series.index]) {
850
- if (!rows[modifiedKey]) {
851
- rows[modifiedKey] = [];
852
- rows[modifiedKey].xValues = [];
853
- rows[modifiedKey].pointers = [];
1052
+ series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
1053
+ const name = series.data[pIdx] && series.data[pIdx].name;
1054
+ key = (mockPoint.x ?? '') + ',' + name;
1055
+ j = 0;
1056
+ // Pies, funnels, geo maps etc. use point name in X row
1057
+ if (!xAxis ||
1058
+ series.exportKey === 'name' ||
1059
+ (!hasParallelCoords && xAxis && xAxis.hasNames) && name) {
1060
+ key = name;
1061
+ }
1062
+ if (xTaken) {
1063
+ if (xTaken[key]) {
1064
+ key += '|' + pIdx;
854
1065
  }
855
- key = modifiedKey;
1066
+ xTaken[key] = true;
856
1067
  }
857
- rows[originalKey].pointers[series.index] += 1;
858
- }
859
- rows[key].x = mockPoint.x;
860
- rows[key].name = name;
861
- rows[key].xValues[xAxisIndex] = mockPoint.x;
862
- while (j < valueCount) {
863
- prop = pointArrayMap[j]; // `y`, `z` etc
864
- val = series.pointClass.prototype.getNestedProperty.apply(mockPoint, [prop]); // Allow values from nested properties (#20470)
865
- rows[key][i + j] = pick(
866
- // Y axis category if present
867
- categoryAndDatetimeMap.categoryMap[prop][val],
868
- // Datetime yAxis
869
- categoryAndDatetimeMap.dateTimeValueAxisMap[prop] ?
870
- time.dateFormat(csvOptions.dateFormat, val) :
871
- null,
872
- // Linear/log yAxis
873
- val);
874
- j++;
875
- }
876
- });
877
- i = i + j;
878
- }
879
- });
880
- // Make a sortable array
881
- for (x in rows) {
882
- if (Object.hasOwnProperty.call(rows, x)) {
883
- rowArr.push(rows[x]);
884
- }
885
- }
886
- let xAxisIndex, column;
887
- // Add computed column headers and top level headers to final row set
888
- dataRows = multiLevelHeaders ? [topLevelColumnTitles, columnTitles] :
889
- [columnTitles];
890
- i = xAxisIndices.length;
891
- while (i--) { // Start from end to splice in
892
- xAxisIndex = xAxisIndices[i][0];
893
- column = xAxisIndices[i][1];
894
- xAxis = xAxes[xAxisIndex];
895
- // Sort it by X values
896
- rowArr.sort(function (// eslint-disable-line no-loop-func
897
- a, b) {
898
- return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
899
- });
900
- // Add header row
901
- xTitle = columnHeaderFormatter(xAxis);
902
- dataRows[0].splice(column, 0, xTitle);
903
- if (multiLevelHeaders && dataRows[1]) {
904
- // If using multi level headers, we just added top level header.
905
- // Also add for sub level
906
- dataRows[1].splice(column, 0, xTitle);
907
- }
908
- // Add the category column
909
- rowArr.forEach(function (// eslint-disable-line no-loop-func
910
- row) {
911
- let category = row.name;
912
- if (xAxis && !defined(category)) {
913
- if (xAxis.dateTime) {
914
- if (row.x instanceof Date) {
915
- row.x = row.x.getTime();
1068
+ if (!rows[key]) {
1069
+ rows[key] = [];
1070
+ rows[key].xValues = [];
1071
+ // ES5 replacement for Array.from / fill.
1072
+ const arr = [];
1073
+ for (let i = 0; i < series.chart.series.length; i++) {
1074
+ arr[i] = 0;
1075
+ }
1076
+ // Create pointers array, holding information how many
1077
+ // duplicates of specific x occurs in each series.
1078
+ // Used for creating rows with duplicates.
1079
+ rows[key].pointers = arr;
1080
+ rows[key].pointers[series.index] = 1;
916
1081
  }
917
- category = time.dateFormat(csvOptions.dateFormat, row.x);
918
- }
919
- else if (xAxis.categories) {
920
- category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
921
- }
922
- else {
923
- category = row.x;
924
- }
1082
+ else {
1083
+ // Handle duplicates (points with the same x), by
1084
+ // creating extra rows based on pointers for better
1085
+ // performance.
1086
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
1087
+ const modifiedKey = `${key},${rows[key].pointers[series.index]}`, originalKey = key;
1088
+ if (rows[key].pointers[series.index]) {
1089
+ if (!rows[modifiedKey]) {
1090
+ rows[modifiedKey] = [];
1091
+ rows[modifiedKey].xValues = [];
1092
+ rows[modifiedKey].pointers = [];
1093
+ }
1094
+ key = modifiedKey;
1095
+ }
1096
+ rows[originalKey].pointers[series.index] += 1;
1097
+ }
1098
+ rows[key].x = mockPoint.x;
1099
+ rows[key].name = name;
1100
+ rows[key].xValues[xAxisIndex] = mockPoint.x;
1101
+ while (j < valueCount) {
1102
+ prop = pointArrayMap[j]; // `y`, `z` etc
1103
+ val =
1104
+ series.pointClass.prototype.getNestedProperty.apply(mockPoint, [prop]);
1105
+ // Allow values from nested properties (#20470)
1106
+ rows[key][i + j] = pick(
1107
+ // Y axis category if present
1108
+ categoryAndDatetimeMap.categoryMap[prop][val],
1109
+ // Datetime yAxis
1110
+ categoryAndDatetimeMap.dateTimeValueAxisMap[prop] ?
1111
+ time.dateFormat(csvOptions.dateFormat, val) :
1112
+ null,
1113
+ // Linear/log yAxis
1114
+ val);
1115
+ j++;
1116
+ }
1117
+ });
1118
+ i = i + j;
925
1119
  }
926
- // Add the X/date/category
927
- row.splice(column, 0, category);
928
1120
  });
929
- }
930
- dataRows = dataRows.concat(rowArr);
931
- fireEvent(this, 'exportData', { dataRows: dataRows });
932
- return dataRows;
933
- }
934
- /**
935
- * Export-data module required. Build a HTML table with the chart's current
936
- * data.
937
- *
938
- * @sample highcharts/export-data/viewdata/
939
- * View the data from the export menu
940
- *
941
- * @function Highcharts.Chart#getTable
942
- *
943
- * @param {boolean} [useLocalDecimalPoint]
944
- * Whether to use the local decimal point as detected from the browser.
945
- * This makes it easier to export data to Excel in the same locale as the
946
- * user is.
947
- *
948
- * @return {string}
949
- * HTML representation of the data.
950
- *
951
- * @emits Highcharts.Chart#event:afterGetTable
952
- */
953
- function chartGetTable(useLocalDecimalPoint) {
954
- const serialize = (node) => {
955
- if (!node.tagName || node.tagName === '#text') {
956
- // Text node
957
- return node.textContent || '';
1121
+ // Make a sortable array
1122
+ for (x in rows) {
1123
+ if (Object.hasOwnProperty.call(rows, x)) {
1124
+ rowArr.push(rows[x]);
1125
+ }
958
1126
  }
959
- const attributes = node.attributes;
960
- let html = `<${node.tagName}`;
961
- if (attributes) {
962
- Object.keys(attributes)
963
- .forEach((key) => {
964
- const value = attributes[key];
965
- html += ` ${key}="${value}"`;
1127
+ let xAxisIndex, column;
1128
+ // Add computed column headers and top level headers to final row set
1129
+ dataRows = multiLevelHeaders ? [topLevelColumnTitles, columnTitles] :
1130
+ [columnTitles];
1131
+ i = xAxisIndices.length;
1132
+ while (i--) { // Start from end to splice in
1133
+ xAxisIndex = xAxisIndices[i][0];
1134
+ column = xAxisIndices[i][1];
1135
+ xAxis = xAxes[xAxisIndex];
1136
+ // Sort it by X values
1137
+ rowArr.sort(function (// eslint-disable-line no-loop-func
1138
+ a, b) {
1139
+ return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
966
1140
  });
967
- }
968
- html += '>';
969
- html += node.textContent || '';
970
- (node.children || []).forEach((child) => {
971
- html += serialize(child);
972
- });
973
- html += `</${node.tagName}>`;
974
- return html;
975
- };
976
- const tree = this.getTableAST(useLocalDecimalPoint);
977
- return serialize(tree);
978
- }
979
- /**
980
- * Get the AST of a HTML table representing the chart data.
981
- *
982
- * @private
983
- *
984
- * @function Highcharts.Chart#getTableAST
985
- *
986
- * @param {boolean} [useLocalDecimalPoint]
987
- * Whether to use the local decimal point as detected from the browser.
988
- * This makes it easier to export data to Excel in the same locale as the
989
- * user is.
990
- *
991
- * @return {Highcharts.ASTNode}
992
- * The abstract syntax tree
993
- */
994
- function chartGetTableAST(useLocalDecimalPoint) {
995
- let rowLength = 0;
996
- const treeChildren = [];
997
- const options = this.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : '.', useMultiLevelHeaders = pick(options.exporting.useMultiLevelHeaders, true), rows = this.getDataRows(useMultiLevelHeaders), topHeaders = useMultiLevelHeaders ? rows.shift() : null, subHeaders = rows.shift(),
998
- // Compare two rows for equality
999
- isRowEqual = function (row1, row2) {
1000
- let i = row1.length;
1001
- if (row2.length === i) {
1002
- while (i--) {
1003
- if (row1[i] !== row2[i]) {
1004
- return false;
1005
- }
1141
+ // Add header row
1142
+ xTitle = columnHeaderFormatter(xAxis);
1143
+ dataRows[0].splice(column, 0, xTitle);
1144
+ if (multiLevelHeaders && dataRows[1]) {
1145
+ // If using multi level headers, we just added top level header.
1146
+ // Also add for sub level
1147
+ dataRows[1].splice(column, 0, xTitle);
1006
1148
  }
1149
+ // Add the category column
1150
+ rowArr.forEach(function (// eslint-disable-line no-loop-func
1151
+ row) {
1152
+ let category = row.name;
1153
+ if (xAxis && !defined(category)) {
1154
+ if (xAxis.dateTime) {
1155
+ if (row.x instanceof Date) {
1156
+ row.x = row.x.getTime();
1157
+ }
1158
+ category = time.dateFormat(csvOptions.dateFormat, row.x);
1159
+ }
1160
+ else if (xAxis.categories) {
1161
+ category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
1162
+ }
1163
+ else {
1164
+ category = row.x;
1165
+ }
1166
+ }
1167
+ // Add the X/date/category
1168
+ row.splice(column, 0, category);
1169
+ });
1007
1170
  }
1008
- else {
1009
- return false;
1010
- }
1011
- return true;
1012
- },
1013
- // Get table cell HTML from value
1014
- getCellHTMLFromValue = function (tagName, classes, attributes, value) {
1015
- let textContent = pick(value, ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
1016
- // Convert to string if number
1017
- if (typeof textContent === 'number') {
1018
- textContent = textContent.toString();
1019
- if (decimalPoint === ',') {
1020
- textContent = textContent.replace('.', decimalPoint);
1171
+ dataRows = dataRows.concat(rowArr);
1172
+ fireEvent(chart, 'exportData', { dataRows: dataRows });
1173
+ return dataRows;
1174
+ }
1175
+ /**
1176
+ * Build a HTML table with the chart's current data.
1177
+ *
1178
+ * @sample highcharts/export-data/viewdata/
1179
+ * View the data from the export menu
1180
+ *
1181
+ * @function Highcharts.Exporting#getTable
1182
+ *
1183
+ * @param {boolean} [useLocalDecimalPoint]
1184
+ * Whether to use the local decimal point as detected from the browser. This
1185
+ * makes it easier to export data to Excel in the same locale as the user
1186
+ * is.
1187
+ *
1188
+ * @return {string}
1189
+ * HTML representation of the data.
1190
+ *
1191
+ * @emits Highcharts.Chart#event:afterGetTable
1192
+ *
1193
+ * @requires modules/exporting
1194
+ * @requires modules/export-data
1195
+ */
1196
+ function getTable(useLocalDecimalPoint) {
1197
+ const serialize = (node) => {
1198
+ if (!node.tagName || node.tagName === '#text') {
1199
+ // Text node
1200
+ return node.textContent || '';
1021
1201
  }
1022
- className = 'highcharts-number';
1023
- }
1024
- else if (!value) {
1025
- className = 'highcharts-empty';
1026
- }
1027
- attributes = extend({ 'class': className }, attributes);
1028
- return {
1029
- tagName,
1030
- attributes,
1031
- textContent
1202
+ const attributes = node.attributes;
1203
+ let html = `<${node.tagName}`;
1204
+ if (attributes) {
1205
+ Object.keys(attributes)
1206
+ .forEach((key) => {
1207
+ const value = attributes[key];
1208
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
1209
+ html += ` ${key}="${value}"`;
1210
+ });
1211
+ }
1212
+ html += '>';
1213
+ html += node.textContent || '';
1214
+ (node.children || []).forEach((child) => {
1215
+ html += serialize(child);
1216
+ });
1217
+ html += `</${node.tagName}>`;
1218
+ return html;
1032
1219
  };
1033
- },
1034
- // Get table header markup from row data
1035
- getTableHeaderHTML = function (topheaders, subheaders, rowLength) {
1036
- const theadChildren = [];
1037
- let i = 0, len = rowLength || subheaders && subheaders.length, next, cur, curColspan = 0, rowspan;
1038
- // Clean up multiple table headers. Chart.getDataRows() returns two
1039
- // levels of headers when using multilevel, not merged. We need to
1040
- // merge identical headers, remove redundant headers, and keep it
1041
- // all marked up nicely.
1042
- if (useMultiLevelHeaders &&
1043
- topheaders &&
1044
- subheaders &&
1045
- !isRowEqual(topheaders, subheaders)) {
1046
- const trChildren = [];
1047
- for (; i < len; ++i) {
1048
- cur = topheaders[i];
1049
- next = topheaders[i + 1];
1050
- if (cur === next) {
1051
- ++curColspan;
1052
- }
1053
- else if (curColspan) {
1054
- // Ended colspan
1055
- // Add cur to HTML with colspan.
1056
- trChildren.push(getCellHTMLFromValue('th', 'highcharts-table-topheading', {
1057
- scope: 'col',
1058
- colspan: curColspan + 1
1059
- }, cur));
1060
- curColspan = 0;
1220
+ const tree = this.getTableAST(useLocalDecimalPoint);
1221
+ return serialize(tree);
1222
+ }
1223
+ /**
1224
+ * Get the AST of a HTML table representing the chart data.
1225
+ *
1226
+ * @private
1227
+ * @function Highcharts.Exporting#getTableAST
1228
+ *
1229
+ * @param {boolean} [useLocalDecimalPoint]
1230
+ * Whether to use the local decimal point as detected from the browser. This
1231
+ * makes it easier to export data to Excel in the same locale as the user
1232
+ * is.
1233
+ *
1234
+ * @return {Highcharts.ASTNode}
1235
+ * The abstract syntax tree
1236
+ *
1237
+ * @requires modules/exporting
1238
+ * @requires modules/export-data
1239
+ */
1240
+ function getTableAST(useLocalDecimalPoint) {
1241
+ let rowLength = 0;
1242
+ const treeChildren = [], exporting = this, chart = exporting.chart, options = chart.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : '.', useMultiLevelHeaders = pick(exporting.options.useMultiLevelHeaders, true), rows = exporting.getDataRows(useMultiLevelHeaders), topHeaders = useMultiLevelHeaders ? rows.shift() : null, subHeaders = rows.shift(),
1243
+ // Compare two rows for equality
1244
+ isRowEqual = function (row1, row2) {
1245
+ let i = row1.length;
1246
+ if (row2.length === i) {
1247
+ while (i--) {
1248
+ if (row1[i] !== row2[i]) {
1249
+ return false;
1250
+ }
1061
1251
  }
1062
- else {
1063
- // Cur is standalone. If it is same as sublevel,
1064
- // remove sublevel and add just toplevel.
1065
- if (cur === subheaders[i]) {
1066
- if (options.exporting.useRowspanHeaders) {
1067
- rowspan = 2;
1068
- delete subheaders[i];
1252
+ }
1253
+ else {
1254
+ return false;
1255
+ }
1256
+ return true;
1257
+ },
1258
+ // Get table cell HTML from value
1259
+ getCellHTMLFromValue = function (tagName, classes, attributes, value) {
1260
+ let textContent = pick(value, ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
1261
+ // Convert to string if number
1262
+ if (typeof textContent === 'number') {
1263
+ textContent = chart.numberFormatter(textContent, -1, decimalPoint, tagName === 'th' ? '' : void 0);
1264
+ className = 'highcharts-number';
1265
+ }
1266
+ else if (!value) {
1267
+ className = 'highcharts-empty';
1268
+ }
1269
+ attributes = extend({ 'class': className }, attributes);
1270
+ return {
1271
+ tagName,
1272
+ attributes,
1273
+ textContent
1274
+ };
1275
+ },
1276
+ // Get table header markup from row data
1277
+ getTableHeaderHTML = function (topheaders, subheaders, rowLength) {
1278
+ const theadChildren = [];
1279
+ let i = 0, len = rowLength || subheaders && subheaders.length, next, cur, curColspan = 0, rowspan;
1280
+ // Clean up multiple table headers. Chart.getDataRows() returns
1281
+ // two levels of headers when using multilevel, not merged. We
1282
+ // need to merge identical headers, remove redundant headers,
1283
+ // and keep it all marked up nicely.
1284
+ if (useMultiLevelHeaders &&
1285
+ topheaders &&
1286
+ subheaders &&
1287
+ !isRowEqual(topheaders, subheaders)) {
1288
+ const trChildren = [];
1289
+ for (; i < len; ++i) {
1290
+ cur = topheaders[i];
1291
+ next = topheaders[i + 1];
1292
+ if (cur === next) {
1293
+ ++curColspan;
1294
+ }
1295
+ else if (curColspan) {
1296
+ // Ended colspan
1297
+ // Add cur to HTML with colspan.
1298
+ trChildren.push(getCellHTMLFromValue('th', 'highcharts-table-topheading', {
1299
+ scope: 'col',
1300
+ colspan: curColspan + 1
1301
+ }, cur));
1302
+ curColspan = 0;
1303
+ }
1304
+ else {
1305
+ // Cur is standalone. If it is same as sublevel,
1306
+ // remove sublevel and add just toplevel.
1307
+ if (cur === subheaders[i]) {
1308
+ if (exporting.options.useRowspanHeaders) {
1309
+ rowspan = 2;
1310
+ // eslint-disable-next-line @typescript-eslint/no-array-delete
1311
+ delete subheaders[i];
1312
+ }
1313
+ else {
1314
+ rowspan = 1;
1315
+ subheaders[i] = '';
1316
+ }
1069
1317
  }
1070
1318
  else {
1071
1319
  rowspan = 1;
1072
- subheaders[i] = '';
1073
1320
  }
1321
+ const cell = getCellHTMLFromValue('th', 'highcharts-table-topheading', { scope: 'col' }, cur);
1322
+ if (rowspan > 1 && cell.attributes) {
1323
+ cell.attributes.valign = 'top';
1324
+ cell.attributes.rowspan = rowspan;
1325
+ }
1326
+ trChildren.push(cell);
1074
1327
  }
1075
- else {
1076
- rowspan = 1;
1077
- }
1078
- const cell = getCellHTMLFromValue('th', 'highcharts-table-topheading', { scope: 'col' }, cur);
1079
- if (rowspan > 1 && cell.attributes) {
1080
- cell.attributes.valign = 'top';
1081
- cell.attributes.rowspan = rowspan;
1328
+ }
1329
+ theadChildren.push({
1330
+ tagName: 'tr',
1331
+ children: trChildren
1332
+ });
1333
+ }
1334
+ // Add the subheaders (the only headers if not using
1335
+ // multilevels)
1336
+ if (subheaders) {
1337
+ const trChildren = [];
1338
+ for (i = 0, len = subheaders.length; i < len; ++i) {
1339
+ if (typeof subheaders[i] !== 'undefined') {
1340
+ trChildren.push(getCellHTMLFromValue('th', null, { scope: 'col' }, subheaders[i]));
1082
1341
  }
1083
- trChildren.push(cell);
1084
1342
  }
1343
+ theadChildren.push({
1344
+ tagName: 'tr',
1345
+ children: trChildren
1346
+ });
1085
1347
  }
1086
- theadChildren.push({
1087
- tagName: 'tr',
1088
- children: trChildren
1348
+ return {
1349
+ tagName: 'thead',
1350
+ children: theadChildren
1351
+ };
1352
+ };
1353
+ // Add table caption
1354
+ const { tableCaption } = exporting.options || {};
1355
+ if (tableCaption !== false) {
1356
+ treeChildren.push({
1357
+ tagName: 'caption',
1358
+ attributes: {
1359
+ 'class': 'highcharts-table-caption'
1360
+ },
1361
+ textContent: typeof tableCaption === 'string' ?
1362
+ tableCaption :
1363
+ options.title?.text || options.lang.chartTitle
1089
1364
  });
1090
1365
  }
1091
- // Add the subheaders (the only headers if not using multilevels)
1092
- if (subheaders) {
1366
+ // Find longest row
1367
+ for (let i = 0, len = rows.length; i < len; ++i) {
1368
+ if (rows[i].length > rowLength) {
1369
+ rowLength = rows[i].length;
1370
+ }
1371
+ }
1372
+ // Add header
1373
+ treeChildren.push(getTableHeaderHTML(topHeaders, subHeaders || [], Math.max(rowLength, subHeaders?.length || 0)));
1374
+ // Transform the rows to HTML
1375
+ const trs = [];
1376
+ rows.forEach(function (row) {
1093
1377
  const trChildren = [];
1094
- for (i = 0, len = subheaders.length; i < len; ++i) {
1095
- if (typeof subheaders[i] !== 'undefined') {
1096
- trChildren.push(getCellHTMLFromValue('th', null, { scope: 'col' }, subheaders[i]));
1097
- }
1378
+ for (let j = 0; j < rowLength; j++) {
1379
+ // Make first column a header too. Especially important for
1380
+ // category axes, but also might make sense for datetime? Should
1381
+ // await user feedback on this.
1382
+ trChildren.push(getCellHTMLFromValue(j ? 'td' : 'th', null, j ? {} : { scope: 'row' }, row[j]));
1098
1383
  }
1099
- theadChildren.push({
1384
+ trs.push({
1100
1385
  tagName: 'tr',
1101
1386
  children: trChildren
1102
1387
  });
1103
- }
1104
- return {
1105
- tagName: 'thead',
1106
- children: theadChildren
1107
- };
1108
- };
1109
- // Add table caption
1110
- const { tableCaption } = options.exporting || {};
1111
- if (tableCaption !== false) {
1388
+ });
1112
1389
  treeChildren.push({
1113
- tagName: 'caption',
1114
- attributes: {
1115
- 'class': 'highcharts-table-caption'
1116
- },
1117
- textContent: typeof tableCaption === 'string' ?
1118
- tableCaption :
1119
- options.title?.text || options.lang.chartTitle
1390
+ tagName: 'tbody',
1391
+ children: trs
1120
1392
  });
1393
+ const e = {
1394
+ tree: {
1395
+ tagName: 'table',
1396
+ id: `highcharts-data-table-${chart.index}`,
1397
+ children: treeChildren
1398
+ }
1399
+ };
1400
+ fireEvent(chart, 'afterGetTableAST', e);
1401
+ return e.tree;
1121
1402
  }
1122
- // Find longest row
1123
- for (let i = 0, len = rows.length; i < len; ++i) {
1124
- if (rows[i].length > rowLength) {
1125
- rowLength = rows[i].length;
1126
- }
1403
+ /**
1404
+ * Hide the data table when visible.
1405
+ *
1406
+ * @function Highcharts.Exporting#hideData
1407
+ *
1408
+ * @requires modules/exporting
1409
+ * @requires modules/export-data
1410
+ */
1411
+ function hideData() {
1412
+ this.toggleDataTable(false);
1127
1413
  }
1128
- // Add header
1129
- treeChildren.push(getTableHeaderHTML(topHeaders, subHeaders, Math.max(rowLength, subHeaders.length)));
1130
- // Transform the rows to HTML
1131
- const trs = [];
1132
- rows.forEach(function (row) {
1133
- const trChildren = [];
1134
- for (let j = 0; j < rowLength; j++) {
1135
- // Make first column a header too. Especially important for
1136
- // category axes, but also might make sense for datetime? Should
1137
- // await user feedback on this.
1138
- trChildren.push(getCellHTMLFromValue(j ? 'td' : 'th', null, j ? {} : { scope: 'row' }, row[j]));
1139
- }
1140
- trs.push({
1141
- tagName: 'tr',
1142
- children: trChildren
1143
- });
1144
- });
1145
- treeChildren.push({
1146
- tagName: 'tbody',
1147
- children: trs
1148
- });
1149
- const e = {
1150
- tree: {
1151
- tagName: 'table',
1152
- id: `highcharts-data-table-${this.index}`,
1153
- children: treeChildren
1414
+ /**
1415
+ * Toggle showing data table.
1416
+ *
1417
+ * @private
1418
+ * @function Highcharts.Exporting#hideData
1419
+ *
1420
+ * @param {boolean} [show]
1421
+ * Whether to show data table or not.
1422
+ *
1423
+ * @requires modules/exporting
1424
+ * @requires modules/export-data
1425
+ */
1426
+ function toggleDataTable(show) {
1427
+ const chart = this.chart,
1428
+ // Create the div
1429
+ createContainer = (show = pick(show, !this.isDataTableVisible)) &&
1430
+ !this.dataTableDiv;
1431
+ if (createContainer) {
1432
+ this.dataTableDiv = ExportData_doc.createElement('div');
1433
+ this.dataTableDiv.className = 'highcharts-data-table';
1434
+ // Insert after the chart container
1435
+ chart.renderTo.parentNode.insertBefore(this.dataTableDiv, chart.renderTo.nextSibling);
1154
1436
  }
1155
- };
1156
- fireEvent(this, 'aftergetTableAST', e);
1157
- return e.tree;
1158
- }
1159
- /**
1160
- * Export-data module required. Hide the data table when visible.
1161
- *
1162
- * @function Highcharts.Chart#hideData
1163
- */
1164
- function chartHideData() {
1165
- this.toggleDataTable(false);
1166
- }
1167
- /**
1168
- * @private
1169
- */
1170
- function chartToggleDataTable(show) {
1171
- show = pick(show, !this.isDataTableVisible);
1172
- // Create the div
1173
- const createContainer = show && !this.dataTableDiv;
1174
- if (createContainer) {
1175
- this.dataTableDiv = ExportData_doc.createElement('div');
1176
- this.dataTableDiv.className = 'highcharts-data-table';
1177
- // Insert after the chart container
1178
- this.renderTo.parentNode.insertBefore(this.dataTableDiv, this.renderTo.nextSibling);
1179
- }
1180
- // Toggle the visibility
1181
- if (this.dataTableDiv) {
1182
- const style = this.dataTableDiv.style, oldDisplay = style.display;
1183
- style.display = show ? 'block' : 'none';
1184
- // Generate the data table
1185
- if (show) {
1186
- this.dataTableDiv.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;
1187
- const ast = new (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default())([this.getTableAST()]);
1188
- ast.addToDOM(this.dataTableDiv);
1189
- fireEvent(this, 'afterViewData', {
1190
- element: this.dataTableDiv,
1191
- wasHidden: createContainer || oldDisplay !== style.display
1192
- });
1437
+ // Toggle the visibility
1438
+ if (this.dataTableDiv) {
1439
+ const style = this.dataTableDiv.style, oldDisplay = style.display;
1440
+ style.display = show ? 'block' : 'none';
1441
+ // Generate the data table
1442
+ if (show) {
1443
+ this.dataTableDiv.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;
1444
+ const ast = new (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default())([this.getTableAST()]);
1445
+ ast.addToDOM(this.dataTableDiv);
1446
+ fireEvent(chart, 'afterViewData', {
1447
+ element: this.dataTableDiv,
1448
+ wasHidden: createContainer || oldDisplay !== style.display
1449
+ });
1450
+ }
1451
+ else {
1452
+ fireEvent(chart, 'afterHideData');
1453
+ }
1193
1454
  }
1194
- else {
1195
- fireEvent(this, 'afterHideData');
1455
+ // Set the flag
1456
+ this.isDataTableVisible = show;
1457
+ // Change the menu item text
1458
+ const exportDivElements = this.divElements, options = this.options, menuItems = options.buttons?.contextButton.menuItems, lang = chart.options.lang;
1459
+ if (options &&
1460
+ options.menuItemDefinitions &&
1461
+ lang &&
1462
+ lang.viewData &&
1463
+ lang.hideData &&
1464
+ menuItems &&
1465
+ exportDivElements) {
1466
+ const exportDivElement = exportDivElements[menuItems.indexOf('viewData')];
1467
+ if (exportDivElement) {
1468
+ highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default().setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
1469
+ }
1196
1470
  }
1197
1471
  }
1198
- // Set the flag
1199
- this.isDataTableVisible = show;
1200
- // Change the menu item text
1201
- const exportDivElements = this.exportDivElements, options = this.options.exporting, menuItems = options &&
1202
- options.buttons &&
1203
- options.buttons.contextButton.menuItems, lang = this.options.lang;
1204
- if (options &&
1205
- options.menuItemDefinitions &&
1206
- lang &&
1207
- lang.viewData &&
1208
- lang.hideData &&
1209
- menuItems &&
1210
- exportDivElements) {
1211
- const exportDivElement = exportDivElements[menuItems.indexOf('viewData')];
1212
- if (exportDivElement) {
1213
- highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default().setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
1214
- }
1472
+ /**
1473
+ * View the data in a table below the chart.
1474
+ *
1475
+ * @function Highcharts.Exporting#viewData
1476
+ *
1477
+ * @emits Highcharts.Chart#event:afterViewData
1478
+ *
1479
+ * @requires modules/exporting
1480
+ * @requires modules/export-data
1481
+ */
1482
+ function viewData() {
1483
+ this.toggleDataTable(true);
1215
1484
  }
1216
- }
1217
- /**
1218
- * Export-data module required. View the data in a table below the chart.
1219
- *
1220
- * @function Highcharts.Chart#viewData
1221
- *
1222
- * @emits Highcharts.Chart#event:afterViewData
1223
- */
1224
- function chartViewData() {
1225
- this.toggleDataTable(true);
1226
- }
1227
- /**
1228
- * @private
1229
- */
1230
- function compose(ChartClass, SeriesClass) {
1231
- const chartProto = ChartClass.prototype;
1232
- if (!chartProto.getCSV) {
1233
- const exportingOptions = getOptions().exporting;
1234
- // Add an event listener to handle the showTable option
1235
- addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
1236
- addEvent(ChartClass, 'render', onChartRenderer);
1237
- addEvent(ChartClass, 'destroy', onChartDestroy);
1238
- chartProto.downloadCSV = chartDownloadCSV;
1239
- chartProto.downloadXLS = chartDownloadXLS;
1240
- chartProto.getCSV = chartGetCSV;
1241
- chartProto.getDataRows = chartGetDataRows;
1242
- chartProto.getTable = chartGetTable;
1243
- chartProto.getTableAST = chartGetTableAST;
1244
- chartProto.hideData = chartHideData;
1245
- chartProto.toggleDataTable = chartToggleDataTable;
1246
- chartProto.viewData = chartViewData;
1247
- // Add "Download CSV" to the exporting menu.
1248
- // @todo consider move to defaults
1249
- if (exportingOptions) {
1250
- extend(exportingOptions.menuItemDefinitions, {
1251
- downloadCSV: {
1252
- textKey: 'downloadCSV',
1253
- onclick: function () {
1254
- this.downloadCSV();
1255
- }
1256
- },
1257
- downloadXLS: {
1258
- textKey: 'downloadXLS',
1259
- onclick: function () {
1260
- this.downloadXLS();
1261
- }
1262
- },
1263
- viewData: {
1264
- textKey: 'viewData',
1265
- onclick: function () {
1266
- wrapLoading.call(this, this.toggleDataTable);
1267
- }
1485
+ /**
1486
+ * Wrapper function for the download functions, which handles showing and
1487
+ * hiding the loading message
1488
+ *
1489
+ * @private
1490
+ *
1491
+ * @requires modules/exporting
1492
+ * @requires modules/export-data
1493
+ */
1494
+ function wrapLoading(fn) {
1495
+ const chart = this.chart, showMessage = Boolean(this.options.showExportInProgress);
1496
+ // Prefer requestAnimationFrame if available
1497
+ const timeoutFn = ExportData_win.requestAnimationFrame || setTimeout;
1498
+ // Outer timeout avoids menu freezing on click
1499
+ timeoutFn(() => {
1500
+ showMessage &&
1501
+ chart.showLoading(chart.options.lang.exportInProgress);
1502
+ timeoutFn(() => {
1503
+ try {
1504
+ fn.call(this);
1505
+ }
1506
+ finally {
1507
+ showMessage && chart.hideLoading();
1268
1508
  }
1269
1509
  });
1270
- if (exportingOptions.buttons &&
1271
- exportingOptions.buttons.contextButton.menuItems) {
1272
- exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
1273
- }
1274
- }
1275
- setOptions(ExportData_ExportDataDefaults);
1276
- const { arearange: AreaRangeSeries, gantt: GanttSeries, map: MapSeries, mapbubble: MapBubbleSeries, treemap: TreemapSeries, xrange: XRangeSeries } = SeriesClass.types;
1277
- if (AreaRangeSeries) {
1278
- AreaRangeSeries.prototype.keyToAxis = {
1279
- low: 'y',
1280
- high: 'y'
1281
- };
1282
- }
1283
- if (GanttSeries) {
1284
- GanttSeries.prototype.exportKey = 'name';
1285
- GanttSeries.prototype.keyToAxis = {
1286
- start: 'x',
1287
- end: 'x'
1288
- };
1289
- }
1290
- if (MapSeries) {
1291
- MapSeries.prototype.exportKey = 'name';
1292
- }
1293
- if (MapBubbleSeries) {
1294
- MapBubbleSeries.prototype.exportKey = 'name';
1295
- }
1296
- if (TreemapSeries) {
1297
- TreemapSeries.prototype.exportKey = 'name';
1298
- }
1299
- if (XRangeSeries) {
1300
- XRangeSeries.prototype.keyToAxis = {
1301
- x2: 'x'
1302
- };
1303
- }
1304
- }
1305
- }
1306
- /**
1307
- * Get a blob object from content, if blob is supported
1308
- *
1309
- * @private
1310
- * @param {string} content
1311
- * The content to create the blob from.
1312
- * @param {string} type
1313
- * The type of the content.
1314
- * @return {string|undefined}
1315
- * The blob object, or undefined if not supported.
1316
- */
1317
- function getBlobFromContent(content, type) {
1318
- const nav = ExportData_win.navigator, domurl = ExportData_win.URL || ExportData_win.webkitURL || ExportData_win;
1319
- try {
1320
- // MS specific
1321
- if ((nav.msSaveOrOpenBlob) && ExportData_win.MSBlobBuilder) {
1322
- const blob = new ExportData_win.MSBlobBuilder();
1323
- blob.append(content);
1324
- return blob.getBlob('image/svg+xml');
1325
- }
1326
- return domurl.createObjectURL(new ExportData_win.Blob(['\uFEFF' + content], // #7084
1327
- { type: type }));
1328
- }
1329
- catch (e) {
1330
- // Ignore
1510
+ });
1331
1511
  }
1332
- }
1333
- /**
1334
- * @private
1335
- */
1336
- function onChartAfterViewData() {
1337
- const chart = this, dataTableDiv = chart.dataTableDiv, getCellValue = (tr, index) => tr.children[index].textContent, comparer = (index, ascending) => (a, b) => {
1338
- const sort = (v1, v2) => (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
1339
- v1 - v2 :
1340
- v1.toString().localeCompare(v2));
1341
- return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
1342
- };
1343
- if (dataTableDiv &&
1344
- chart.options.exporting &&
1345
- chart.options.exporting.allowTableSorting) {
1346
- const row = dataTableDiv.querySelector('thead tr');
1347
- if (row) {
1348
- row.childNodes.forEach((th) => {
1349
- const table = th.closest('table');
1350
- th.addEventListener('click', function () {
1351
- const rows = [...dataTableDiv.querySelectorAll('tr:not(thead tr)')], headers = [...th.parentNode.children];
1352
- rows.sort(comparer(headers.indexOf(th), chart.ascendingOrderInTable =
1353
- !chart.ascendingOrderInTable)).forEach((tr) => {
1354
- table.appendChild(tr);
1355
- });
1356
- headers.forEach((th) => {
1357
- [
1358
- 'highcharts-sort-ascending',
1359
- 'highcharts-sort-descending'
1360
- ].forEach((className) => {
1361
- if (th.classList.contains(className)) {
1362
- th.classList.remove(className);
1363
- }
1364
- });
1512
+ /**
1513
+ * Function that runs on the chart's 'afterViewData' event.
1514
+ *
1515
+ * @private
1516
+ * @function Highcharts.Chart#onChartAfterViewData
1517
+ *
1518
+ * @requires modules/exporting
1519
+ * @requires modules/export-data
1520
+ */
1521
+ function onChartAfterViewData() {
1522
+ const exporting = this.exporting, dataTableDiv = exporting?.dataTableDiv, getCellValue = (tr, index) => tr.children[index].textContent, comparer = (index, ascending) => (a, b) => {
1523
+ const sort = (v1, v2) => (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
1524
+ v1 - v2 :
1525
+ v1.toString().localeCompare(v2));
1526
+ return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
1527
+ };
1528
+ if (dataTableDiv && exporting.options.allowTableSorting) {
1529
+ const row = dataTableDiv.querySelector('thead tr');
1530
+ if (row) {
1531
+ row.childNodes.forEach((th) => {
1532
+ const tableBody = dataTableDiv.querySelector('tbody');
1533
+ th.addEventListener('click', function () {
1534
+ const rows = [...dataTableDiv.querySelectorAll('tr:not(thead tr)')], headers = [...th.parentNode.children];
1535
+ if (exporting) {
1536
+ rows.sort(comparer(headers.indexOf(th), exporting.ascendingOrderInTable =
1537
+ !exporting.ascendingOrderInTable)).forEach((tr) => {
1538
+ tableBody?.appendChild(tr);
1539
+ });
1540
+ headers.forEach((th) => {
1541
+ [
1542
+ 'highcharts-sort-ascending',
1543
+ 'highcharts-sort-descending'
1544
+ ].forEach((className) => {
1545
+ if (th.classList.contains(className)) {
1546
+ th.classList.remove(className);
1547
+ }
1548
+ });
1549
+ });
1550
+ th.classList.add(exporting.ascendingOrderInTable ?
1551
+ 'highcharts-sort-ascending' :
1552
+ 'highcharts-sort-descending');
1553
+ }
1365
1554
  });
1366
- th.classList.add(chart.ascendingOrderInTable ?
1367
- 'highcharts-sort-ascending' :
1368
- 'highcharts-sort-descending');
1369
1555
  });
1370
- });
1556
+ }
1371
1557
  }
1372
1558
  }
1373
- }
1374
- /**
1375
- * Handle the showTable option
1376
- * @private
1377
- */
1378
- function onChartRenderer() {
1379
- if (this.options &&
1380
- this.options.exporting &&
1381
- this.options.exporting.showTable &&
1382
- !this.options.chart.forExport) {
1383
- this.viewData();
1559
+ /**
1560
+ * Function that runs on the chart's 'render' event. Handle the showTable
1561
+ * option.
1562
+ *
1563
+ * @private
1564
+ * @function Highcharts.Chart#onChartRenderer
1565
+ *
1566
+ * @requires modules/exporting
1567
+ * @requires modules/export-data
1568
+ */
1569
+ function onChartRenderer() {
1570
+ if (this.options?.exporting?.showTable &&
1571
+ !this.options.chart.forExport) {
1572
+ this.exporting?.viewData();
1573
+ }
1384
1574
  }
1385
- }
1386
- /**
1387
- * Clean up
1388
- * @private
1389
- */
1390
- function onChartDestroy() {
1391
- this.dataTableDiv?.remove();
1392
- }
1575
+ /**
1576
+ * Function that runs on the chart's 'destroy' event. Handle cleaning up the
1577
+ * dataTableDiv element.
1578
+ *
1579
+ * @private
1580
+ * @function Highcharts.Chart#onChartDestroy
1581
+ *
1582
+ * @requires modules/exporting
1583
+ * @requires modules/export-data
1584
+ */
1585
+ function onChartDestroy() {
1586
+ this.exporting?.dataTableDiv?.remove();
1587
+ }
1588
+ })(ExportData || (ExportData = {}));
1393
1589
  /* *
1394
1590
  *
1395
- * Default Export
1591
+ * Default Export
1396
1592
  *
1397
1593
  * */
1398
- const ExportData = {
1399
- compose
1400
- };
1401
1594
  /* harmony default export */ const ExportData_ExportData = (ExportData);
1402
1595
  /* *
1403
1596
  *
@@ -1440,7 +1633,7 @@ const G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_d
1440
1633
  G.dataURLtoBlob = G.dataURLtoBlob || Extensions_DownloadURL.dataURLtoBlob;
1441
1634
  G.downloadURL = G.downloadURL || Extensions_DownloadURL.downloadURL;
1442
1635
  // Compose
1443
- ExportData_ExportData.compose(G.Chart, G.Series);
1636
+ ExportData_ExportData.compose(G.Chart, G.Exporting, G.Series);
1444
1637
  /* harmony default export */ const export_data_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));
1445
1638
 
1446
1639
  __webpack_exports__ = __webpack_exports__["default"];