highcharts 10.0.0 → 10.2.1

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 (942) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +10 -20
  3. package/css/themes/dark-unica.css +10 -20
  4. package/css/themes/grid-light.css +10 -20
  5. package/css/themes/sand-signika.css +10 -20
  6. package/es-modules/Accessibility/A11yI18n.js +4 -4
  7. package/es-modules/Accessibility/Accessibility.js +8 -3
  8. package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
  11. package/es-modules/Accessibility/Components/LegendComponent.js +11 -11
  12. package/es-modules/Accessibility/Components/MenuComponent.js +3 -1
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +3 -1
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -17
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +35 -10
  17. package/es-modules/Accessibility/Components/ZoomComponent.js +30 -70
  18. package/es-modules/Accessibility/FocusBorder.js +6 -5
  19. package/es-modules/Accessibility/HighContrastMode.js +1 -1
  20. package/es-modules/Accessibility/KeyboardNavigation.js +2 -2
  21. package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +73 -5
  22. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
  23. package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
  24. package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
  25. package/es-modules/Core/Animation/Fx.js +1 -1
  26. package/es-modules/Core/Axis/Axis.js +51 -46
  27. package/es-modules/Core/Axis/Axis3D.js +1 -1
  28. package/es-modules/Core/Axis/AxisDefaults.js +9 -9
  29. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  30. package/es-modules/Core/Axis/Color/ColorAxis.js +4 -2
  31. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
  32. package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
  33. package/es-modules/Core/Axis/GridAxis.js +821 -822
  34. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  35. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  36. package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
  37. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  38. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  39. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  40. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  41. package/es-modules/Core/Axis/Tick.js +22 -18
  42. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  43. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  44. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  45. package/es-modules/Core/Axis/ZAxis.js +76 -71
  46. package/es-modules/Core/Chart/Chart.js +42 -9
  47. package/es-modules/Core/Chart/Chart3D.js +2 -2
  48. package/es-modules/Core/Chart/ChartDefaults.js +165 -5
  49. package/es-modules/Core/Chart/GanttChart.js +3 -1
  50. package/es-modules/Core/Chart/MapChart.js +3 -1
  51. package/es-modules/Core/Chart/StockChart.js +12 -8
  52. package/es-modules/Core/Color/Color.js +1 -1
  53. package/es-modules/Core/DefaultOptions.js +19 -16
  54. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  55. package/es-modules/Core/Globals.js +2 -1
  56. package/es-modules/Core/HttpUtilities.js +39 -37
  57. package/es-modules/Core/Legend/Legend.js +4 -4
  58. package/es-modules/Core/MSPointer.js +3 -1
  59. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  60. package/es-modules/Core/Navigator.js +31 -14
  61. package/es-modules/Core/Pointer.js +8 -10
  62. package/es-modules/Core/Renderer/HTML/AST.js +13 -7
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
  64. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
  65. package/es-modules/Core/Renderer/SVG/SVGElement.js +132 -192
  66. package/es-modules/Core/Renderer/SVG/SVGLabel.js +32 -28
  67. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +50 -45
  68. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +5 -3
  69. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  70. package/es-modules/Core/Scrollbar.js +12 -6
  71. package/es-modules/Core/ScrollbarDefaults.js +8 -8
  72. package/es-modules/Core/Series/DataLabel.js +63 -40
  73. package/es-modules/Core/Series/Point.js +11 -2
  74. package/es-modules/Core/Series/Series.js +60 -43
  75. package/es-modules/Core/Series/Series3D.js +4 -2
  76. package/es-modules/Core/Series/SeriesDefaults.js +11 -6
  77. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  78. package/es-modules/Core/Time.js +6 -7
  79. package/es-modules/Core/Tooltip.js +17 -6
  80. package/es-modules/Core/Utilities.js +7 -9
  81. package/es-modules/Data/DataConverter.js +6 -1
  82. package/es-modules/Data/DataPromise.js +1 -1
  83. package/es-modules/Data/DataSeriesComposition.js +288 -0
  84. package/es-modules/Data/DataSeriesConverter.js +1 -1
  85. package/es-modules/Data/DataTable.js +14 -12
  86. package/es-modules/Data/Modifiers/ChainModifier.js +4 -2
  87. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  88. package/es-modules/Data/Modifiers/GroupModifier.js +4 -2
  89. package/es-modules/Data/Modifiers/InvertModifier.js +10 -8
  90. package/es-modules/Data/Modifiers/RangeModifier.js +4 -2
  91. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +4 -2
  92. package/es-modules/Data/Modifiers/SortModifier.js +4 -2
  93. package/es-modules/Data/Parsers/CSVParser.js +3 -1
  94. package/es-modules/Data/Parsers/DataParser.js +2 -2
  95. package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
  96. package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
  97. package/es-modules/Data/Stores/CSVStore.js +8 -5
  98. package/es-modules/Data/Stores/DataStore.js +1 -1
  99. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  100. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  101. package/es-modules/Extensions/Annotations/Annotation.js +652 -0
  102. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  103. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  104. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  105. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  106. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  107. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  108. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +95 -63
  109. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  110. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  111. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  112. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  113. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  114. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  115. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -663
  116. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  117. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  118. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  119. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  120. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  121. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  122. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  123. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +23 -23
  124. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +15 -21
  125. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +14 -12
  126. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +33 -23
  127. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +67 -65
  128. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +14 -21
  129. package/es-modules/Extensions/Annotations/Types/Measure.js +259 -251
  130. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +15 -19
  131. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +24 -19
  132. package/es-modules/Extensions/Annotations/Types/Tunnel.js +17 -15
  133. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +15 -17
  134. package/es-modules/Extensions/Boost/Boost.js +320 -15
  135. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  136. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  137. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  138. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  139. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  140. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  141. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  142. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  143. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  144. package/es-modules/Extensions/BoostCanvas.js +70 -48
  145. package/es-modules/Extensions/Breadcrumbs.js +37 -9
  146. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  147. package/es-modules/Extensions/Data.js +638 -602
  148. package/es-modules/Extensions/DataGrouping.js +68 -28
  149. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  150. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  151. package/es-modules/Extensions/DownloadURL.js +3 -3
  152. package/es-modules/Extensions/DragPanes.js +1 -1
  153. package/es-modules/Extensions/DraggablePoints.js +4 -3
  154. package/es-modules/Extensions/Drilldown.js +15 -14
  155. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +358 -498
  156. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  157. package/es-modules/Extensions/Exporting/Exporting.js +30 -17
  158. package/es-modules/Extensions/Exporting/ExportingDefaults.js +10 -8
  159. package/es-modules/Extensions/Exporting/Fullscreen.js +352 -0
  160. package/es-modules/Extensions/GeoJSON.js +3 -4
  161. package/es-modules/Extensions/MarkerClusters.js +5 -3
  162. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  163. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  164. package/es-modules/Extensions/Oldie/Oldie.js +2 -2
  165. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  166. package/es-modules/Extensions/Pane.js +3 -3
  167. package/es-modules/Extensions/ParallelCoordinates.js +12 -8
  168. package/es-modules/Extensions/PatternFill.js +14 -2
  169. package/es-modules/Extensions/RangeSelector.js +29 -18
  170. package/es-modules/Extensions/ScrollablePlotArea.js +4 -4
  171. package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +264 -386
  172. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
  173. package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
  174. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  175. package/es-modules/Extensions/Sonification/Earcon.js +1 -1
  176. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  177. package/es-modules/Extensions/Themes/HighContrastLight.js +9 -9
  178. package/es-modules/Maps/MapNavigation.js +3 -7
  179. package/es-modules/Maps/MapPointer.js +1 -1
  180. package/es-modules/Maps/MapView.js +31 -19
  181. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +1 -1
  182. package/es-modules/Maps/MapViewOptionsDefault.js +3 -1
  183. package/es-modules/Maps/Projection.js +13 -11
  184. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +3 -1
  185. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +12 -2
  186. package/es-modules/Series/Area/AreaSeries.js +21 -14
  187. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  188. package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
  189. package/es-modules/Series/AreaRange/AreaRangeSeries.js +162 -149
  190. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
  191. package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
  192. package/es-modules/Series/Bar/BarSeries.js +3 -1
  193. package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
  194. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
  195. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  196. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
  197. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  198. package/es-modules/Series/Bubble/BubblePoint.js +3 -1
  199. package/es-modules/Series/Bubble/BubbleSeries.js +96 -68
  200. package/es-modules/Series/Bullet/BulletPoint.js +3 -1
  201. package/es-modules/Series/Bullet/BulletSeries.js +4 -3
  202. package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
  203. package/es-modules/Series/CenteredUtilities.js +8 -2
  204. package/es-modules/Series/ColorMapComposition.js +111 -0
  205. package/es-modules/Series/Column/ColumnSeries.js +8 -4
  206. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  207. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -2
  208. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
  209. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
  210. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  211. package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
  212. package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
  213. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +27 -12
  214. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +19 -3
  215. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
  216. package/es-modules/Series/DragNodesComposition.js +166 -0
  217. package/es-modules/Series/DrawPointUtilities.js +87 -0
  218. package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
  219. package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
  220. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
  221. package/es-modules/Series/Flags/FlagsPoint.js +4 -1
  222. package/es-modules/Series/Flags/FlagsSeries.js +13 -16
  223. package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
  224. package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
  225. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +4 -2
  226. package/es-modules/Series/Gantt/GanttPoint.js +3 -1
  227. package/es-modules/Series/Gantt/GanttSeries.js +4 -2
  228. package/es-modules/Series/Gauge/GaugePoint.js +3 -1
  229. package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
  230. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  231. package/es-modules/Series/HLC/HLCPoint.js +3 -1
  232. package/es-modules/Series/HLC/HLCSeries.js +4 -2
  233. package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
  234. package/es-modules/Series/Heatmap/HeatmapSeries.js +34 -34
  235. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  236. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
  237. package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
  238. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
  239. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
  240. package/es-modules/Series/Item/ItemPoint.js +3 -1
  241. package/es-modules/Series/Item/ItemSeries.js +3 -1
  242. package/es-modules/Series/Line/LineSeries.js +4 -2
  243. package/es-modules/Series/Lollipop/LollipopPoint.js +24 -12
  244. package/es-modules/Series/Lollipop/LollipopSeries.js +18 -11
  245. package/es-modules/Series/Map/MapPoint.js +8 -6
  246. package/es-modules/Series/Map/MapSeries.js +115 -28
  247. package/es-modules/Series/MapBubble/MapBubblePoint.js +18 -18
  248. package/es-modules/Series/MapBubble/MapBubbleSeries.js +69 -21
  249. package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
  250. package/es-modules/Series/MapPoint/MapPointPoint.js +4 -2
  251. package/es-modules/Series/MapPoint/MapPointSeries.js +14 -2
  252. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  253. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  254. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  255. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  256. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  257. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  258. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  259. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  260. package/es-modules/Series/NodesComposition.js +45 -40
  261. package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
  262. package/es-modules/Series/OHLC/OHLCSeries.js +3 -1
  263. package/es-modules/Series/Organization/OrganizationPoint.js +3 -1
  264. package/es-modules/Series/Organization/OrganizationSeries.js +14 -4
  265. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  266. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -79
  267. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -3
  268. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +200 -571
  269. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  270. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
  271. package/es-modules/Series/Pie/PieDataLabel.js +4 -2
  272. package/es-modules/Series/Pie/PiePoint.js +3 -1
  273. package/es-modules/Series/Pie/PieSeries.js +54 -38
  274. package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
  275. package/es-modules/Series/Pie3D/Pie3DSeries.js +3 -1
  276. package/es-modules/Series/PolarComposition.js +819 -0
  277. package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
  278. package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
  279. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
  280. package/es-modules/Series/Sankey/SankeyPoint.js +3 -1
  281. package/es-modules/Series/Sankey/SankeySeries.js +38 -10
  282. package/es-modules/Series/Scatter/ScatterSeries.js +14 -6
  283. package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
  284. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +4 -2
  285. package/es-modules/Series/SeriesOnPointComposition.js +395 -0
  286. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +6 -4
  287. package/es-modules/Series/Spline/SplineSeries.js +13 -4
  288. package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
  289. package/es-modules/Series/Sunburst/SunburstPoint.js +8 -9
  290. package/es-modules/Series/Sunburst/SunburstSeries.js +32 -5
  291. package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
  292. package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
  293. package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
  294. package/es-modules/Series/Timeline/TimelineSeries.js +8 -4
  295. package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
  296. package/es-modules/Series/Treemap/TreemapSeries.js +12 -10
  297. package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
  298. package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
  299. package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
  300. package/es-modules/Series/Vector/VectorSeries.js +5 -5
  301. package/es-modules/Series/Venn/VennPoint.js +5 -5
  302. package/es-modules/Series/Venn/VennSeries.js +9 -6
  303. package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
  304. package/es-modules/Series/Waterfall/WaterfallSeries.js +14 -12
  305. package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
  306. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
  307. package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
  308. package/es-modules/Series/Wordcloud/WordcloudSeries.js +12 -9
  309. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  310. package/es-modules/Series/XRange/XRangePoint.js +57 -46
  311. package/es-modules/Series/XRange/XRangeSeries.js +124 -274
  312. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  313. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +13 -3
  314. package/es-modules/Stock/Indicators/AD/ADIndicator.js +8 -1
  315. package/es-modules/Stock/Indicators/AO/AOIndicator.js +27 -14
  316. package/es-modules/Stock/Indicators/APO/APOIndicator.js +9 -2
  317. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +19 -4
  318. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +18 -3
  319. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +9 -3
  320. package/es-modules/Stock/Indicators/BB/BBIndicator.js +11 -5
  321. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +19 -4
  322. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +23 -1
  323. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +18 -2
  324. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +10 -3
  325. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +28 -1
  326. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +18 -7
  327. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +22 -9
  328. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
  329. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +13 -1
  330. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +37 -16
  331. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +28 -1
  332. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +15 -2
  333. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +14 -2
  334. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +15 -8
  335. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +14 -2
  336. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +14 -2
  337. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +47 -23
  338. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +26 -11
  339. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +33 -3
  340. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
  341. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +19 -2
  342. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +13 -1
  343. package/es-modules/Stock/Indicators/PC/PCIndicator.js +16 -9
  344. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +17 -5
  345. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +19 -4
  346. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +19 -7
  347. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +19 -13
  348. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +28 -1
  349. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +18 -3
  350. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +23 -3
  351. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +4 -2
  352. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +28 -1
  353. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -1
  354. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +23 -7
  355. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
  356. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +28 -1
  357. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +17 -5
  358. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +35 -4
  359. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +9 -7
  360. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +14 -2
  361. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +33 -3
  362. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +13 -1
  363. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +14 -2
  364. package/es-modules/Stock/StockToolbar.js +568 -0
  365. package/es-modules/Stock/StockTools.js +256 -0
  366. package/es-modules/Stock/StockToolsBindings.js +140 -647
  367. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  368. package/es-modules/Stock/StockToolsGui.js +150 -1771
  369. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  370. package/es-modules/masters/highcharts-3d.src.js +5 -4
  371. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  372. package/es-modules/masters/highcharts-more.src.js +7 -6
  373. package/es-modules/masters/highcharts.src.js +5 -2
  374. package/es-modules/masters/highmaps.src.js +1 -1
  375. package/es-modules/masters/highstock.src.js +1 -1
  376. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  377. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  378. package/es-modules/masters/indicators/ao.src.js +1 -1
  379. package/es-modules/masters/indicators/apo.src.js +1 -1
  380. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  381. package/es-modules/masters/indicators/aroon.src.js +1 -1
  382. package/es-modules/masters/indicators/atr.src.js +1 -1
  383. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  384. package/es-modules/masters/indicators/cci.src.js +1 -1
  385. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  386. package/es-modules/masters/indicators/cmf.src.js +1 -1
  387. package/es-modules/masters/indicators/cmo.src.js +1 -1
  388. package/es-modules/masters/indicators/dema.src.js +1 -1
  389. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  390. package/es-modules/masters/indicators/dmi.src.js +1 -1
  391. package/es-modules/masters/indicators/dpo.src.js +1 -1
  392. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  393. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  394. package/es-modules/masters/indicators/indicators.src.js +1 -1
  395. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  396. package/es-modules/masters/indicators/klinger.src.js +1 -1
  397. package/es-modules/masters/indicators/macd.src.js +1 -1
  398. package/es-modules/masters/indicators/mfi.src.js +1 -1
  399. package/es-modules/masters/indicators/momentum.src.js +1 -1
  400. package/es-modules/masters/indicators/natr.src.js +1 -1
  401. package/es-modules/masters/indicators/obv.src.js +1 -1
  402. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  403. package/es-modules/masters/indicators/ppo.src.js +1 -1
  404. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  405. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  406. package/es-modules/masters/indicators/psar.src.js +1 -1
  407. package/es-modules/masters/indicators/regressions.src.js +5 -5
  408. package/es-modules/masters/indicators/roc.src.js +1 -1
  409. package/es-modules/masters/indicators/rsi.src.js +1 -1
  410. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  411. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  412. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  413. package/es-modules/masters/indicators/tema.src.js +1 -1
  414. package/es-modules/masters/indicators/trendline.src.js +1 -1
  415. package/es-modules/masters/indicators/trix.src.js +1 -1
  416. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  417. package/es-modules/masters/indicators/vwap.src.js +1 -1
  418. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  419. package/es-modules/masters/indicators/wma.src.js +1 -1
  420. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  421. package/es-modules/masters/modules/accessibility.src.js +1 -1
  422. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  423. package/es-modules/masters/modules/annotations.src.js +6 -4
  424. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  425. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  426. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  427. package/es-modules/masters/modules/boost.src.js +6 -2
  428. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  429. package/es-modules/masters/modules/bullet.src.js +1 -1
  430. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  431. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  432. package/es-modules/masters/modules/cylinder.src.js +1 -1
  433. package/es-modules/masters/modules/data.src.js +2 -1
  434. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  435. package/es-modules/masters/modules/debugger.src.js +5 -3
  436. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  437. package/es-modules/masters/modules/dotplot.src.js +1 -1
  438. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  439. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  440. package/es-modules/masters/modules/drilldown.src.js +1 -1
  441. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  442. package/es-modules/masters/modules/export-data.src.js +5 -2
  443. package/es-modules/masters/modules/exporting.src.js +1 -2
  444. package/es-modules/masters/modules/full-screen.src.js +6 -2
  445. package/es-modules/masters/modules/funnel.src.js +1 -1
  446. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  447. package/es-modules/masters/modules/gantt.src.js +3 -2
  448. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  449. package/es-modules/masters/modules/heatmap.src.js +1 -1
  450. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  451. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  452. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  453. package/es-modules/masters/modules/item-series.src.js +1 -1
  454. package/es-modules/masters/modules/lollipop.src.js +1 -1
  455. package/es-modules/masters/modules/map.src.js +2 -2
  456. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  457. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  458. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  459. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  460. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  461. package/es-modules/masters/modules/oldie.src.js +1 -1
  462. package/es-modules/masters/modules/organization.src.js +1 -1
  463. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  464. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  465. package/es-modules/masters/modules/pareto.src.js +1 -1
  466. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  467. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  468. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  469. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  470. package/es-modules/masters/modules/sankey.src.js +1 -1
  471. package/es-modules/masters/modules/series-label.src.js +5 -2
  472. package/es-modules/masters/modules/series-on-point.src.js +16 -0
  473. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  474. package/es-modules/masters/modules/sonification.src.js +2 -6
  475. package/es-modules/masters/modules/static-scale.src.js +1 -1
  476. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  477. package/es-modules/masters/modules/stock.src.js +1 -1
  478. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  479. package/es-modules/masters/modules/sunburst.src.js +1 -1
  480. package/es-modules/masters/modules/tilemap.src.js +1 -1
  481. package/es-modules/masters/modules/timeline.src.js +1 -1
  482. package/es-modules/masters/modules/treegrid.src.js +2 -2
  483. package/es-modules/masters/modules/treemap.src.js +1 -1
  484. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  485. package/es-modules/masters/modules/variwide.src.js +1 -1
  486. package/es-modules/masters/modules/vector.src.js +1 -1
  487. package/es-modules/masters/modules/venn.src.js +1 -1
  488. package/es-modules/masters/modules/windbarb.src.js +1 -1
  489. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  490. package/es-modules/masters/modules/xrange.src.js +5 -2
  491. package/es-modules/masters/themes/avocado.src.js +1 -1
  492. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  493. package/es-modules/masters/themes/brand-light.src.js +1 -1
  494. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  495. package/es-modules/masters/themes/dark-green.src.js +1 -1
  496. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  497. package/es-modules/masters/themes/gray.src.js +1 -1
  498. package/es-modules/masters/themes/grid-light.src.js +1 -1
  499. package/es-modules/masters/themes/grid.src.js +1 -1
  500. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  501. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  502. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  503. package/es-modules/masters/themes/skies.src.js +1 -1
  504. package/es-modules/masters/themes/sunset.src.js +1 -1
  505. package/highcharts-3d.js +98 -99
  506. package/highcharts-3d.js.map +1 -1
  507. package/highcharts-3d.src.js +233 -212
  508. package/highcharts-gantt.js +809 -805
  509. package/highcharts-gantt.js.map +1 -1
  510. package/highcharts-gantt.src.js +3817 -3470
  511. package/highcharts-more.d.ts +15 -8
  512. package/highcharts-more.js +201 -195
  513. package/highcharts-more.js.map +1 -1
  514. package/highcharts-more.src.d.ts +15 -8
  515. package/highcharts-more.src.js +7994 -7461
  516. package/highcharts.d.ts +11364 -1136
  517. package/highcharts.js +593 -591
  518. package/highcharts.js.map +1 -1
  519. package/highcharts.src.d.ts +11364 -1136
  520. package/highcharts.src.js +1408 -1117
  521. package/highmaps.js +762 -758
  522. package/highmaps.js.map +1 -1
  523. package/highmaps.src.js +2237 -1721
  524. package/highstock.js +796 -792
  525. package/highstock.js.map +1 -1
  526. package/highstock.src.js +1617 -1224
  527. package/indicators/acceleration-bands.d.ts +1 -17
  528. package/indicators/acceleration-bands.js +11 -12
  529. package/indicators/acceleration-bands.js.map +1 -1
  530. package/indicators/acceleration-bands.src.d.ts +1 -17
  531. package/indicators/acceleration-bands.src.js +99 -101
  532. package/indicators/accumulation-distribution.js +1 -1
  533. package/indicators/accumulation-distribution.js.map +1 -1
  534. package/indicators/accumulation-distribution.src.js +6 -1
  535. package/indicators/ao.js +6 -6
  536. package/indicators/ao.js.map +1 -1
  537. package/indicators/ao.src.js +25 -16
  538. package/indicators/apo.js +1 -1
  539. package/indicators/apo.js.map +1 -1
  540. package/indicators/apo.src.js +6 -1
  541. package/indicators/aroon-oscillator.d.ts +1 -17
  542. package/indicators/aroon-oscillator.js +10 -10
  543. package/indicators/aroon-oscillator.js.map +1 -1
  544. package/indicators/aroon-oscillator.src.d.ts +1 -17
  545. package/indicators/aroon-oscillator.src.js +95 -101
  546. package/indicators/aroon.d.ts +1 -17
  547. package/indicators/aroon.js +11 -11
  548. package/indicators/aroon.js.map +1 -1
  549. package/indicators/aroon.src.d.ts +1 -17
  550. package/indicators/aroon.src.js +104 -101
  551. package/indicators/atr.js +1 -1
  552. package/indicators/atr.js.map +1 -1
  553. package/indicators/atr.src.js +17 -4
  554. package/indicators/bollinger-bands.d.ts +1 -17
  555. package/indicators/bollinger-bands.js +11 -12
  556. package/indicators/bollinger-bands.js.map +1 -1
  557. package/indicators/bollinger-bands.src.d.ts +1 -17
  558. package/indicators/bollinger-bands.src.js +97 -103
  559. package/indicators/cci.js +1 -1
  560. package/indicators/cci.js.map +1 -1
  561. package/indicators/cci.src.js +17 -4
  562. package/indicators/chaikin.js +8 -8
  563. package/indicators/chaikin.js.map +1 -1
  564. package/indicators/chaikin.src.js +13 -5
  565. package/indicators/cmf.js +1 -1
  566. package/indicators/cmf.js.map +1 -1
  567. package/indicators/cmf.src.js +21 -1
  568. package/indicators/cmo.js +1 -1
  569. package/indicators/cmo.js.map +1 -1
  570. package/indicators/cmo.src.js +16 -2
  571. package/indicators/dema.js +1 -1
  572. package/indicators/dema.js.map +1 -1
  573. package/indicators/dema.src.js +26 -1
  574. package/indicators/disparity-index.js +1 -1
  575. package/indicators/disparity-index.src.js +1 -1
  576. package/indicators/dmi.js +12 -12
  577. package/indicators/dmi.js.map +1 -1
  578. package/indicators/dmi.src.js +104 -105
  579. package/indicators/dpo.js +1 -1
  580. package/indicators/dpo.js.map +1 -1
  581. package/indicators/dpo.src.js +20 -9
  582. package/indicators/ichimoku-kinko-hyo.js +1 -1
  583. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  584. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  585. package/indicators/indicators-all.d.ts +1 -17
  586. package/indicators/indicators-all.js +200 -199
  587. package/indicators/indicators-all.js.map +1 -1
  588. package/indicators/indicators-all.src.d.ts +1 -17
  589. package/indicators/indicators-all.src.js +882 -284
  590. package/indicators/indicators.js +1 -1
  591. package/indicators/indicators.js.map +1 -1
  592. package/indicators/indicators.src.js +12 -2
  593. package/indicators/keltner-channels.d.ts +1 -17
  594. package/indicators/keltner-channels.js +11 -12
  595. package/indicators/keltner-channels.js.map +1 -1
  596. package/indicators/keltner-channels.src.d.ts +1 -17
  597. package/indicators/keltner-channels.src.js +114 -99
  598. package/indicators/klinger.js +14 -14
  599. package/indicators/klinger.js.map +1 -1
  600. package/indicators/klinger.src.js +101 -102
  601. package/indicators/macd.js +10 -9
  602. package/indicators/macd.js.map +1 -1
  603. package/indicators/macd.src.js +46 -25
  604. package/indicators/mfi.js +1 -1
  605. package/indicators/mfi.js.map +1 -1
  606. package/indicators/mfi.src.js +24 -11
  607. package/indicators/momentum.js +1 -1
  608. package/indicators/momentum.js.map +1 -1
  609. package/indicators/momentum.src.js +31 -3
  610. package/indicators/natr.js +1 -1
  611. package/indicators/natr.js.map +1 -1
  612. package/indicators/natr.src.js +17 -3
  613. package/indicators/obv.js +1 -1
  614. package/indicators/obv.js.map +1 -1
  615. package/indicators/obv.src.js +11 -1
  616. package/indicators/pivot-points.js +1 -1
  617. package/indicators/pivot-points.js.map +1 -1
  618. package/indicators/pivot-points.src.js +32 -19
  619. package/indicators/ppo.js +1 -1
  620. package/indicators/ppo.js.map +1 -1
  621. package/indicators/ppo.src.js +15 -5
  622. package/indicators/price-channel.d.ts +1 -17
  623. package/indicators/price-channel.js +11 -11
  624. package/indicators/price-channel.js.map +1 -1
  625. package/indicators/price-channel.src.d.ts +1 -17
  626. package/indicators/price-channel.src.js +102 -107
  627. package/indicators/price-envelopes.js +1 -1
  628. package/indicators/price-envelopes.js.map +1 -1
  629. package/indicators/price-envelopes.src.js +26 -1
  630. package/indicators/psar.js +1 -1
  631. package/indicators/psar.js.map +1 -1
  632. package/indicators/psar.src.js +17 -4
  633. package/indicators/regressions.js +12 -11
  634. package/indicators/regressions.js.map +1 -1
  635. package/indicators/regressions.src.js +50 -15
  636. package/indicators/roc.js +1 -1
  637. package/indicators/roc.js.map +1 -1
  638. package/indicators/roc.src.js +16 -3
  639. package/indicators/rsi.js +1 -1
  640. package/indicators/rsi.js.map +1 -1
  641. package/indicators/rsi.src.js +21 -3
  642. package/indicators/slow-stochastic.js +1 -1
  643. package/indicators/slow-stochastic.js.map +1 -1
  644. package/indicators/slow-stochastic.src.js +26 -1
  645. package/indicators/stochastic.d.ts +1 -17
  646. package/indicators/stochastic.js +12 -12
  647. package/indicators/stochastic.js.map +1 -1
  648. package/indicators/stochastic.src.d.ts +1 -17
  649. package/indicators/stochastic.src.js +104 -99
  650. package/indicators/supertrend.js +7 -7
  651. package/indicators/supertrend.js.map +1 -1
  652. package/indicators/supertrend.src.js +21 -9
  653. package/indicators/tema.js +1 -1
  654. package/indicators/tema.src.js +1 -1
  655. package/indicators/trendline.js +1 -1
  656. package/indicators/trendline.js.map +1 -1
  657. package/indicators/trendline.src.js +15 -5
  658. package/indicators/trix.js +1 -1
  659. package/indicators/trix.js.map +1 -1
  660. package/indicators/trix.src.js +26 -1
  661. package/indicators/volume-by-price.js +17 -17
  662. package/indicators/volume-by-price.js.map +1 -1
  663. package/indicators/volume-by-price.src.js +38 -10
  664. package/indicators/vwap.js +1 -1
  665. package/indicators/vwap.js.map +1 -1
  666. package/indicators/vwap.src.js +12 -2
  667. package/indicators/williams-r.js +1 -1
  668. package/indicators/williams-r.js.map +1 -1
  669. package/indicators/williams-r.src.js +11 -1
  670. package/indicators/wma.js +1 -1
  671. package/indicators/wma.js.map +1 -1
  672. package/indicators/wma.src.js +31 -3
  673. package/indicators/zigzag.js +1 -1
  674. package/indicators/zigzag.js.map +1 -1
  675. package/indicators/zigzag.src.js +12 -2
  676. package/modules/accessibility.js +246 -242
  677. package/modules/accessibility.js.map +1 -1
  678. package/modules/accessibility.src.js +797 -664
  679. package/modules/annotations-advanced.d.ts +1 -1
  680. package/modules/annotations-advanced.js +193 -192
  681. package/modules/annotations-advanced.js.map +1 -1
  682. package/modules/annotations-advanced.src.d.ts +1 -1
  683. package/modules/annotations-advanced.src.js +9229 -8589
  684. package/modules/annotations.d.ts +1 -1
  685. package/modules/annotations.js +128 -126
  686. package/modules/annotations.js.map +1 -1
  687. package/modules/annotations.src.d.ts +1 -1
  688. package/modules/annotations.src.js +6190 -5528
  689. package/modules/arc-diagram.js +7 -7
  690. package/modules/arc-diagram.js.map +1 -1
  691. package/modules/arc-diagram.src.js +10 -2
  692. package/modules/arrow-symbols.js +1 -1
  693. package/modules/arrow-symbols.src.js +1 -1
  694. package/modules/boost-canvas.d.ts +19 -0
  695. package/modules/boost-canvas.js +81 -15
  696. package/modules/boost-canvas.js.map +1 -1
  697. package/modules/boost-canvas.src.d.ts +19 -0
  698. package/modules/boost-canvas.src.js +3342 -52
  699. package/modules/boost.d.ts +8 -26
  700. package/modules/boost.js +88 -80
  701. package/modules/boost.js.map +1 -1
  702. package/modules/boost.src.d.ts +8 -26
  703. package/modules/boost.src.js +2435 -1889
  704. package/modules/broken-axis.js +2 -2
  705. package/modules/broken-axis.js.map +1 -1
  706. package/modules/broken-axis.src.js +2 -2
  707. package/modules/bullet.js +1 -1
  708. package/modules/bullet.js.map +1 -1
  709. package/modules/bullet.src.js +2 -5
  710. package/modules/coloraxis.js +2 -2
  711. package/modules/coloraxis.js.map +1 -1
  712. package/modules/coloraxis.src.js +9 -5
  713. package/modules/current-date-indicator.js +1 -1
  714. package/modules/current-date-indicator.src.js +2 -2
  715. package/modules/cylinder.js +9 -9
  716. package/modules/cylinder.js.map +1 -1
  717. package/modules/cylinder.src.js +2 -2
  718. package/modules/data.d.ts +12 -12
  719. package/modules/data.js +33 -34
  720. package/modules/data.js.map +1 -1
  721. package/modules/data.src.d.ts +12 -12
  722. package/modules/data.src.js +862 -829
  723. package/modules/datagrouping.d.ts +22 -0
  724. package/modules/datagrouping.js +9 -9
  725. package/modules/datagrouping.js.map +1 -1
  726. package/modules/datagrouping.src.d.ts +22 -0
  727. package/modules/datagrouping.src.js +69 -29
  728. package/modules/debugger.js +8 -6
  729. package/modules/debugger.js.map +1 -1
  730. package/modules/debugger.src.js +85 -40
  731. package/modules/dependency-wheel.js +12 -12
  732. package/modules/dependency-wheel.js.map +1 -1
  733. package/modules/dependency-wheel.src.js +41 -14
  734. package/modules/dotplot.js +1 -1
  735. package/modules/dotplot.src.js +1 -1
  736. package/modules/drag-panes.js +1 -1
  737. package/modules/drag-panes.src.js +2 -2
  738. package/modules/draggable-points.js +5 -5
  739. package/modules/draggable-points.js.map +1 -1
  740. package/modules/draggable-points.src.js +5 -4
  741. package/modules/drilldown.d.ts +0 -10
  742. package/modules/drilldown.js +37 -37
  743. package/modules/drilldown.js.map +1 -1
  744. package/modules/drilldown.src.d.ts +0 -10
  745. package/modules/drilldown.src.js +59 -25
  746. package/modules/dumbbell.d.ts +4 -0
  747. package/modules/dumbbell.js +17 -17
  748. package/modules/dumbbell.js.map +1 -1
  749. package/modules/dumbbell.src.d.ts +4 -0
  750. package/modules/dumbbell.src.js +24 -12
  751. package/modules/export-data.js +25 -22
  752. package/modules/export-data.js.map +1 -1
  753. package/modules/export-data.src.js +641 -469
  754. package/modules/exporting.d.ts +8 -8
  755. package/modules/exporting.js +39 -39
  756. package/modules/exporting.js.map +1 -1
  757. package/modules/exporting.src.d.ts +8 -8
  758. package/modules/exporting.src.js +442 -319
  759. package/modules/full-screen.js +8 -8
  760. package/modules/full-screen.js.map +1 -1
  761. package/modules/full-screen.src.js +196 -78
  762. package/modules/funnel.js +1 -1
  763. package/modules/funnel.src.js +3 -3
  764. package/modules/funnel3d.js +2 -2
  765. package/modules/funnel3d.js.map +1 -1
  766. package/modules/funnel3d.src.js +2 -2
  767. package/modules/gantt.js +219 -217
  768. package/modules/gantt.js.map +1 -1
  769. package/modules/gantt.src.js +2420 -2364
  770. package/modules/grid-axis.js +23 -23
  771. package/modules/grid-axis.js.map +1 -1
  772. package/modules/grid-axis.src.js +890 -891
  773. package/modules/heatmap.js +40 -40
  774. package/modules/heatmap.js.map +1 -1
  775. package/modules/heatmap.src.js +137 -108
  776. package/modules/heikinashi.js +1 -1
  777. package/modules/heikinashi.src.js +1 -1
  778. package/modules/histogram-bellcurve.js +1 -1
  779. package/modules/histogram-bellcurve.src.js +1 -1
  780. package/modules/hollowcandlestick.js +1 -1
  781. package/modules/hollowcandlestick.src.js +9 -9
  782. package/modules/item-series.js +1 -1
  783. package/modules/item-series.src.js +1 -1
  784. package/modules/lollipop.js +6 -6
  785. package/modules/lollipop.js.map +1 -1
  786. package/modules/lollipop.src.js +37 -22
  787. package/modules/map.d.ts +3 -3
  788. package/modules/map.js +171 -169
  789. package/modules/map.js.map +1 -1
  790. package/modules/map.src.d.ts +3 -3
  791. package/modules/map.src.js +830 -605
  792. package/modules/marker-clusters.js +1 -1
  793. package/modules/marker-clusters.js.map +1 -1
  794. package/modules/marker-clusters.src.js +4 -6
  795. package/modules/networkgraph.d.ts +1 -17
  796. package/modules/networkgraph.js +55 -50
  797. package/modules/networkgraph.js.map +1 -1
  798. package/modules/networkgraph.src.d.ts +1 -17
  799. package/modules/networkgraph.src.js +2339 -2008
  800. package/modules/no-data-to-display.js +1 -1
  801. package/modules/no-data-to-display.src.js +2 -2
  802. package/modules/offline-exporting.js +3 -3
  803. package/modules/offline-exporting.js.map +1 -1
  804. package/modules/offline-exporting.src.js +5 -5
  805. package/modules/oldie-polyfills.js +1 -1
  806. package/modules/oldie-polyfills.src.js +1 -1
  807. package/modules/oldie.js +2 -2
  808. package/modules/oldie.src.js +3 -3
  809. package/modules/organization.js +15 -15
  810. package/modules/organization.js.map +1 -1
  811. package/modules/organization.src.js +12 -4
  812. package/modules/overlapping-datalabels.js +1 -1
  813. package/modules/overlapping-datalabels.src.js +1 -1
  814. package/modules/parallel-coordinates.js +11 -11
  815. package/modules/parallel-coordinates.js.map +1 -1
  816. package/modules/parallel-coordinates.src.js +14 -9
  817. package/modules/pareto.js +1 -1
  818. package/modules/pareto.src.js +1 -1
  819. package/modules/pathfinder.js +1 -1
  820. package/modules/pathfinder.src.js +1 -1
  821. package/modules/pattern-fill.js +15 -14
  822. package/modules/pattern-fill.js.map +1 -1
  823. package/modules/pattern-fill.src.js +15 -2
  824. package/modules/price-indicator.js +1 -1
  825. package/modules/price-indicator.src.js +1 -1
  826. package/modules/pyramid3d.js +1 -1
  827. package/modules/pyramid3d.src.js +1 -1
  828. package/modules/sankey.d.ts +1 -17
  829. package/modules/sankey.js +32 -32
  830. package/modules/sankey.js.map +1 -1
  831. package/modules/sankey.src.d.ts +1 -17
  832. package/modules/sankey.src.js +102 -57
  833. package/modules/series-label.js +18 -18
  834. package/modules/series-label.js.map +1 -1
  835. package/modules/series-label.src.js +474 -387
  836. package/modules/series-on-point.js +18 -0
  837. package/modules/series-on-point.js.map +1 -0
  838. package/modules/series-on-point.src.js +468 -0
  839. package/modules/solid-gauge.js +4 -4
  840. package/modules/solid-gauge.js.map +1 -1
  841. package/modules/solid-gauge.src.js +6 -6
  842. package/modules/sonification.d.ts +2 -2
  843. package/modules/sonification.js +1 -1
  844. package/modules/sonification.js.map +1 -1
  845. package/modules/sonification.src.d.ts +2 -2
  846. package/modules/sonification.src.js +4 -8
  847. package/modules/static-scale.js +1 -1
  848. package/modules/static-scale.src.js +1 -1
  849. package/modules/stock-tools.d.ts +1 -23
  850. package/modules/stock-tools.js +109 -179
  851. package/modules/stock-tools.js.map +1 -1
  852. package/modules/stock-tools.src.d.ts +1 -23
  853. package/modules/stock-tools.src.js +2652 -6347
  854. package/modules/stock.d.ts +8 -0
  855. package/modules/stock.js +205 -204
  856. package/modules/stock.js.map +1 -1
  857. package/modules/stock.src.d.ts +8 -0
  858. package/modules/stock.src.js +208 -106
  859. package/modules/streamgraph.js +1 -1
  860. package/modules/streamgraph.src.js +1 -1
  861. package/modules/sunburst.js +73 -73
  862. package/modules/sunburst.js.map +1 -1
  863. package/modules/sunburst.src.js +251 -193
  864. package/modules/tilemap.js +1 -1
  865. package/modules/tilemap.src.js +1 -1
  866. package/modules/timeline.js +1 -1
  867. package/modules/timeline.js.map +1 -1
  868. package/modules/timeline.src.js +6 -4
  869. package/modules/treegrid.js +57 -57
  870. package/modules/treegrid.js.map +1 -1
  871. package/modules/treegrid.src.js +1908 -1901
  872. package/modules/treemap.js +54 -53
  873. package/modules/treemap.js.map +1 -1
  874. package/modules/treemap.src.js +217 -183
  875. package/modules/variable-pie.js +1 -1
  876. package/modules/variable-pie.src.js +1 -1
  877. package/modules/variwide.js +1 -1
  878. package/modules/variwide.src.js +1 -1
  879. package/modules/vector.js +2 -2
  880. package/modules/vector.js.map +1 -1
  881. package/modules/vector.src.js +3 -5
  882. package/modules/venn.js +31 -31
  883. package/modules/venn.js.map +1 -1
  884. package/modules/venn.src.js +82 -111
  885. package/modules/windbarb.js +1 -1
  886. package/modules/windbarb.src.js +1 -1
  887. package/modules/wordcloud.js +23 -23
  888. package/modules/wordcloud.js.map +1 -1
  889. package/modules/wordcloud.src.js +84 -113
  890. package/modules/xrange.js +17 -17
  891. package/modules/xrange.js.map +1 -1
  892. package/modules/xrange.src.js +411 -397
  893. package/package.json +1 -1
  894. package/themes/avocado.js +1 -1
  895. package/themes/avocado.src.js +1 -1
  896. package/themes/brand-dark.js +1 -1
  897. package/themes/brand-dark.src.js +1 -1
  898. package/themes/brand-light.js +1 -1
  899. package/themes/brand-light.src.js +1 -1
  900. package/themes/dark-blue.js +1 -1
  901. package/themes/dark-blue.src.js +1 -1
  902. package/themes/dark-green.js +1 -1
  903. package/themes/dark-green.src.js +1 -1
  904. package/themes/dark-unica.js +1 -1
  905. package/themes/dark-unica.src.js +1 -1
  906. package/themes/gray.js +1 -1
  907. package/themes/gray.src.js +1 -1
  908. package/themes/grid-light.js +1 -1
  909. package/themes/grid-light.src.js +1 -1
  910. package/themes/grid.js +1 -1
  911. package/themes/grid.src.js +1 -1
  912. package/themes/high-contrast-dark.js +2 -2
  913. package/themes/high-contrast-dark.src.js +11 -11
  914. package/themes/high-contrast-light.js +2 -2
  915. package/themes/high-contrast-light.src.js +10 -10
  916. package/themes/sand-signika.js +1 -1
  917. package/themes/sand-signika.src.js +1 -1
  918. package/themes/skies.js +1 -1
  919. package/themes/skies.src.js +1 -1
  920. package/themes/sunset.js +1 -1
  921. package/themes/sunset.src.js +1 -1
  922. package/es-modules/Core/Axis/StackingAxis.js +0 -216
  923. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  924. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  925. package/es-modules/Extensions/Annotations/Annotations.js +0 -1449
  926. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  927. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  928. package/es-modules/Extensions/Boost/BoostAttach.js +0 -150
  929. package/es-modules/Extensions/Boost/BoostInit.js +0 -323
  930. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  931. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  932. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  933. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  934. package/es-modules/Extensions/FullScreen.js +0 -240
  935. package/es-modules/Extensions/Polar.js +0 -740
  936. package/es-modules/Extensions/Stacking.js +0 -517
  937. package/es-modules/Series/ColorMapMixin.js +0 -84
  938. package/es-modules/Series/DrawPointComposition.js +0 -114
  939. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  940. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  941. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1178
  942. package/es-modules/Series/XRange/XRangeComposition.js +0 -49
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v10.0.0 (2022-03-07)
2
+ * @license Highcharts JS v10.2.1 (2022-08-29)
3
3
  *
4
4
  * Exporting module
5
5
  *
@@ -37,120 +37,7 @@
37
37
  }
38
38
  }
39
39
  }
40
- _registerModule(_modules, 'Extensions/DownloadURL.js', [_modules['Core/Globals.js']], function (Highcharts) {
41
- /* *
42
- *
43
- * (c) 2015-2021 Oystein Moseng
44
- *
45
- * License: www.highcharts.com/license
46
- *
47
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
48
- *
49
- * Mixin for downloading content in the browser
50
- *
51
- * */
52
- var isSafari = Highcharts.isSafari;
53
- var win = Highcharts.win,
54
- doc = win.document,
55
- domurl = win.URL || win.webkitURL || win;
56
- /**
57
- * Convert base64 dataURL to Blob if supported, otherwise returns undefined.
58
- * @private
59
- * @function Highcharts.dataURLtoBlob
60
- * @param {string} dataURL
61
- * URL to convert
62
- * @return {string|undefined}
63
- * Blob
64
- */
65
- var dataURLtoBlob = Highcharts.dataURLtoBlob = function (dataURL) {
66
- var parts = dataURL
67
- .replace(/filename=.*;/, '')
68
- .match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/);
69
- if (parts &&
70
- parts.length > 3 &&
71
- win.atob &&
72
- win.ArrayBuffer &&
73
- win.Uint8Array &&
74
- win.Blob &&
75
- domurl.createObjectURL) {
76
- // Try to convert data URL to Blob
77
- var binStr = win.atob(parts[3]),
78
- buf = new win.ArrayBuffer(binStr.length),
79
- binary = new win.Uint8Array(buf);
80
- for (var i = 0; i < binary.length; ++i) {
81
- binary[i] = binStr.charCodeAt(i);
82
- }
83
- var blob = new win.Blob([binary], { 'type': parts[1] });
84
- return domurl.createObjectURL(blob);
85
- }
86
- };
87
- /**
88
- * Download a data URL in the browser. Can also take a blob as first param.
89
- *
90
- * @private
91
- * @function Highcharts.downloadURL
92
- * @param {string|global.URL} dataURL
93
- * The dataURL/Blob to download
94
- * @param {string} filename
95
- * The name of the resulting file (w/extension)
96
- * @return {void}
97
- */
98
- var downloadURL = Highcharts.downloadURL = function (dataURL,
99
- filename) {
100
- var nav = win.navigator,
101
- a = doc.createElement('a');
102
- // IE specific blob implementation
103
- // Don't use for normal dataURLs
104
- if (typeof dataURL !== 'string' &&
105
- !(dataURL instanceof String) &&
106
- nav.msSaveOrOpenBlob) {
107
- nav.msSaveOrOpenBlob(dataURL, filename);
108
- return;
109
- }
110
- dataURL = "" + dataURL;
111
- // Some browsers have limitations for data URL lengths. Try to convert to
112
- // Blob or fall back. Edge always needs that blob.
113
- var isOldEdgeBrowser = /Edge\/\d+/.test(nav.userAgent);
114
- // Safari on iOS needs Blob in order to download PDF
115
- var safariBlob = (isSafari &&
116
- typeof dataURL === 'string' &&
117
- dataURL.indexOf('data:application/pdf') === 0);
118
- if (safariBlob || isOldEdgeBrowser || dataURL.length > 2000000) {
119
- dataURL = dataURLtoBlob(dataURL) || '';
120
- if (!dataURL) {
121
- throw new Error('Failed to convert to blob');
122
- }
123
- }
124
- // Try HTML5 download attr if supported
125
- if (typeof a.download !== 'undefined') {
126
- a.href = dataURL;
127
- a.download = filename; // HTML5 download attribute
128
- doc.body.appendChild(a);
129
- a.click();
130
- doc.body.removeChild(a);
131
- }
132
- else {
133
- // No download attr, just opening data URI
134
- try {
135
- var windowRef = win.open(dataURL, 'chart');
136
- if (typeof windowRef === 'undefined' || windowRef === null) {
137
- throw new Error('Failed to open window');
138
- }
139
- }
140
- catch (e) {
141
- // window.open failed, trying location.href
142
- win.location.href = dataURL;
143
- }
144
- }
145
- };
146
- var DownloadURL = {
147
- dataURLtoBlob: dataURLtoBlob,
148
- downloadURL: downloadURL
149
- };
150
-
151
- return DownloadURL;
152
- });
153
- _registerModule(_modules, 'Extensions/ExportData.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Utilities.js'], _modules['Extensions/DownloadURL.js']], function (Axis, Chart, AST, H, D, U, DownloadURL) {
40
+ _registerModule(_modules, 'Extensions/ExportData/ExportDataDefaults.js', [], function () {
154
41
  /* *
155
42
  *
156
43
  * Experimental data export module for Highcharts
@@ -162,72 +49,16 @@
162
49
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
163
50
  *
164
51
  * */
165
- // @todo
166
- // - Set up systematic tests for all series types, paired with tests of the data
167
- // module importing the same data.
168
- var doc = H.doc,
169
- seriesTypes = H.seriesTypes,
170
- win = H.win;
171
- var getOptions = D.getOptions,
172
- setOptions = D.setOptions;
173
- var addEvent = U.addEvent,
174
- defined = U.defined,
175
- extend = U.extend,
176
- find = U.find,
177
- fireEvent = U.fireEvent,
178
- isNumber = U.isNumber,
179
- pick = U.pick;
180
- /**
181
- * Function callback to execute while data rows are processed for exporting.
182
- * This allows the modification of data rows before processed into the final
183
- * format.
184
- *
185
- * @callback Highcharts.ExportDataCallbackFunction
186
- * @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
52
+ /* *
187
53
  *
188
- * @param {Highcharts.Chart} this
189
- * Chart context where the event occured.
54
+ * Constants
190
55
  *
191
- * @param {Highcharts.ExportDataEventObject} event
192
- * Event object with data rows that can be modified.
193
- */
56
+ * */
194
57
  /**
195
- * Contains information about the export data event.
196
- *
197
- * @interface Highcharts.ExportDataEventObject
198
- */ /**
199
- * Contains the data rows for the current export task and can be modified.
200
- * @name Highcharts.ExportDataEventObject#dataRows
201
- * @type {Array<Array<string>>}
202
- */
203
- var downloadURL = DownloadURL.downloadURL;
204
- setOptions({
205
- /**
206
- * Callback that fires while exporting data. This allows the modification of
207
- * data rows before processed into the final format.
208
- *
209
- * @type {Highcharts.ExportDataCallbackFunction}
210
- * @context Highcharts.Chart
211
- * @requires modules/export-data
212
- * @apioption chart.events.exportData
213
- */
214
- /**
215
- * When set to `false` will prevent the series data from being included in
216
- * any form of data export.
217
- *
218
- * Since version 6.0.0 until 7.1.0 the option was existing undocumented
219
- * as `includeInCSVExport`.
220
- *
221
- * @type {boolean}
222
- * @since 7.1.0
223
- * @requires modules/export-data
224
- * @apioption plotOptions.series.includeInDataExport
225
- */
226
- /**
227
- * @optionparent exporting
228
- * @private
229
- */
230
- exporting: {
58
+ * @optionparent exporting
59
+ * @private
60
+ */
61
+ var exporting = {
231
62
  /**
232
63
  * Caption for the data table. Same as chart title by default. Set to
233
64
  * `false` to disable.
@@ -241,17 +72,22 @@
241
72
  * @apioption exporting.tableCaption
242
73
  */
243
74
  /**
244
- * Options for exporting data to CSV or ExCel, or displaying the data
75
+ * Options for exporting data to CSV or ExCel,
76
+ or displaying the data
245
77
  * in a HTML table or a JavaScript structure.
246
78
  *
247
79
  * This module adds data export options to the export menu and provides
248
- * functions like `Chart.getCSV`, `Chart.getTable`, `Chart.getDataRows`
80
+ * functions like `Chart.getCSV`,
81
+ `Chart.getTable`,
82
+ `Chart.getDataRows`
249
83
  * and `Chart.viewData`.
250
84
  *
251
85
  * The XLS converter is limited and only creates a HTML string that is
252
- * passed for download, which works but creates a warning before
86
+ * passed for download,
87
+ which works but creates a warning before
253
88
  * opening. The workaround for this is to use a third party XLSX
254
- * converter, as demonstrated in the sample below.
89
+ * converter,
90
+ as demonstrated in the sample below.
255
91
  *
256
92
  * @sample highcharts/export-data/categorized/ Categorized data
257
93
  * @sample highcharts/export-data/stock-timeaxis/ Highcharts Stock time axis
@@ -296,19 +132,25 @@
296
132
  /**
297
133
  * Formatter callback for the column headers. Parameters are:
298
134
  * - `item` - The series or axis object)
299
- * - `key` - The point key, for example y or z
300
- * - `keyLength` - The amount of value keys for this item, for
135
+ * - `key` - The point key,
136
+ for example y or z
137
+ * - `keyLength` - The amount of value keys for this item,
138
+ for
301
139
  * example a range series has the keys `low` and `high` so the
302
140
  * key length is 2.
303
141
  *
304
142
  * If [useMultiLevelHeaders](#exporting.useMultiLevelHeaders) is
305
- * true, columnHeaderFormatter by default returns an object with
143
+ * true,
144
+ columnHeaderFormatter by default returns an object with
306
145
  * columnTitle and topLevelColumnTitle for each key. Columns with
307
146
  * the same topLevelColumnTitle have their titles merged into a
308
147
  * single cell with colspan for table/Excel export.
309
148
  *
310
- * If `useMultiLevelHeaders` is false, or for CSV export, it returns
311
- * the series name, followed by the key if there is more than one
149
+ * If `useMultiLevelHeaders` is false,
150
+ or for CSV export,
151
+ it returns
152
+ * the series name,
153
+ followed by the key if there is more than one
312
154
  * key.
313
155
  *
314
156
  * For the axis it returns the axis title or "Category" or
@@ -329,7 +171,9 @@
329
171
  dateFormat: '%Y-%m-%d %H:%M:%S',
330
172
  /**
331
173
  * Which decimal point to use for exported CSV. Defaults to the same
332
- * as the browser locale, typically `.` (English) or `,` (German,
174
+ * as the browser locale,
175
+ typically `.` (English) or `,
176
+ ` (German,
333
177
  * French etc).
334
178
  *
335
179
  * @type {string|null}
@@ -339,14 +183,19 @@
339
183
  /**
340
184
  * The item delimiter in the exported data. Use `;` for direct
341
185
  * exporting to Excel. Defaults to a best guess based on the browser
342
- * locale. If the locale _decimal point_ is `,`, the `itemDelimiter`
343
- * defaults to `;`, otherwise the `itemDelimiter` defaults to `,`.
186
+ * locale. If the locale _decimal point_ is `,
187
+ `,
188
+ the `itemDelimiter`
189
+ * defaults to `;`,
190
+ otherwise the `itemDelimiter` defaults to `,
191
+ `.
344
192
  *
345
193
  * @type {string|null}
346
194
  */
347
195
  itemDelimiter: null,
348
196
  /**
349
- * The line delimiter in the exported data, defaults to a newline.
197
+ * The line delimiter in the exported data,
198
+ defaults to a newline.
350
199
  */
351
200
  lineDelimiter: '\n'
352
201
  },
@@ -365,7 +214,8 @@
365
214
  showTable: false,
366
215
  /**
367
216
  * Use multi level headers in data table. If [csv.columnHeaderFormatter
368
- * ](#exporting.csv.columnHeaderFormatter) is defined, it has to return
217
+ * ](#exporting.csv.columnHeaderFormatter) is defined,
218
+ it has to return
369
219
  * objects in order for multi level headers to work.
370
220
  *
371
221
  * @sample highcharts/export-data/multilevel-table
@@ -376,7 +226,8 @@
376
226
  */
377
227
  useMultiLevelHeaders: true,
378
228
  /**
379
- * If using multi level table headers, use rowspans for headers that
229
+ * If using multi level table headers,
230
+ use rowspans for headers that
380
231
  * have only one level.
381
232
  *
382
233
  * @sample highcharts/export-data/multilevel-table
@@ -386,13 +237,12 @@
386
237
  * @requires modules/export-data
387
238
  */
388
239
  useRowspanHeaders: true
389
- },
390
- /**
391
- * @optionparent lang
392
- *
393
- * @private
394
- */
395
- lang: {
240
+ };
241
+ /**
242
+ * @optionparent lang
243
+ * @private
244
+ */
245
+ var lang = {
396
246
  /**
397
247
  * The text for the menu item.
398
248
  *
@@ -441,43 +291,319 @@
441
291
  * @requires modules/export-data
442
292
  */
443
293
  hideData: 'Hide data table'
294
+ };
295
+ /* *
296
+ *
297
+ * Default Export
298
+ *
299
+ * */
300
+ var ExportDataDefaults = {
301
+ exporting: exporting,
302
+ lang: lang
303
+ };
304
+ /* *
305
+ *
306
+ * API Options
307
+ *
308
+ * */
309
+ /**
310
+ * Callback that fires while exporting data. This allows the modification of
311
+ * data rows before processed into the final format.
312
+ *
313
+ * @type {Highcharts.ExportDataCallbackFunction}
314
+ * @context Highcharts.Chart
315
+ * @requires modules/export-data
316
+ * @apioption chart.events.exportData
317
+ */
318
+ /**
319
+ * When set to `false` will prevent the series data from being included in
320
+ * any form of data export.
321
+ *
322
+ * Since version 6.0.0 until 7.1.0 the option was existing undocumented
323
+ * as `includeInCSVExport`.
324
+ *
325
+ * @type {boolean}
326
+ * @since 7.1.0
327
+ * @requires modules/export-data
328
+ * @apioption plotOptions.series.includeInDataExport
329
+ */
330
+ (''); // keep doclets above in JS file
331
+
332
+ return ExportDataDefaults;
333
+ });
334
+ _registerModule(_modules, 'Extensions/DownloadURL.js', [_modules['Core/Globals.js']], function (Highcharts) {
335
+ /* *
336
+ *
337
+ * (c) 2015-2021 Oystein Moseng
338
+ *
339
+ * License: www.highcharts.com/license
340
+ *
341
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
342
+ *
343
+ * Mixin for downloading content in the browser
344
+ *
345
+ * */
346
+ var isSafari = Highcharts.isSafari;
347
+ var win = Highcharts.win,
348
+ doc = win.document,
349
+ domurl = win.URL || win.webkitURL || win;
350
+ /**
351
+ * Convert base64 dataURL to Blob if supported, otherwise returns undefined.
352
+ * @private
353
+ * @function Highcharts.dataURLtoBlob
354
+ * @param {string} dataURL
355
+ * URL to convert
356
+ * @return {string|undefined}
357
+ * Blob
358
+ */
359
+ var dataURLtoBlob = Highcharts.dataURLtoBlob = function (dataURL) {
360
+ var parts = dataURL
361
+ .replace(/filename=.*;/, '')
362
+ .match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/);
363
+ if (parts &&
364
+ parts.length > 3 &&
365
+ (win.atob) &&
366
+ win.ArrayBuffer &&
367
+ win.Uint8Array &&
368
+ win.Blob &&
369
+ (domurl.createObjectURL)) {
370
+ // Try to convert data URL to Blob
371
+ var binStr = win.atob(parts[3]),
372
+ buf = new win.ArrayBuffer(binStr.length),
373
+ binary = new win.Uint8Array(buf);
374
+ for (var i = 0; i < binary.length; ++i) {
375
+ binary[i] = binStr.charCodeAt(i);
376
+ }
377
+ var blob = new win.Blob([binary], { 'type': parts[1] });
378
+ return domurl.createObjectURL(blob);
444
379
  }
445
- });
446
- /* eslint-disable no-invalid-this */
447
- // Add an event listener to handle the showTable option
448
- addEvent(Chart, 'render', function () {
449
- if (this.options &&
450
- this.options.exporting &&
451
- this.options.exporting.showTable &&
452
- !this.options.chart.forExport &&
453
- !this.dataTableDiv) {
454
- this.viewData();
455
- }
456
- });
457
- /* eslint-enable no-invalid-this */
380
+ };
458
381
  /**
459
- * Set up key-to-axis bindings. This is used when the Y axis is datetime or
460
- * categorized. For example in an arearange series, the low and high values
461
- * should be formatted according to the Y axis type, and in order to link them
462
- * we need this map.
382
+ * Download a data URL in the browser. Can also take a blob as first param.
463
383
  *
464
384
  * @private
465
- * @function Highcharts.Chart#setUpKeyToAxis
385
+ * @function Highcharts.downloadURL
386
+ * @param {string|global.URL} dataURL
387
+ * The dataURL/Blob to download
388
+ * @param {string} filename
389
+ * The name of the resulting file (w/extension)
390
+ * @return {void}
466
391
  */
467
- Chart.prototype.setUpKeyToAxis = function () {
468
- if (seriesTypes.arearange) {
469
- seriesTypes.arearange.prototype.keyToAxis = {
470
- low: 'y',
471
- high: 'y'
472
- };
392
+ var downloadURL = Highcharts.downloadURL = function (dataURL,
393
+ filename) {
394
+ var nav = win.navigator,
395
+ a = doc.createElement('a');
396
+ // IE specific blob implementation
397
+ // Don't use for normal dataURLs
398
+ if (typeof dataURL !== 'string' &&
399
+ !(dataURL instanceof String) &&
400
+ nav.msSaveOrOpenBlob) {
401
+ nav.msSaveOrOpenBlob(dataURL, filename);
402
+ return;
473
403
  }
474
- if (seriesTypes.gantt) {
475
- seriesTypes.gantt.prototype.keyToAxis = {
476
- start: 'x',
477
- end: 'x'
478
- };
404
+ dataURL = "".concat(dataURL);
405
+ // Some browsers have limitations for data URL lengths. Try to convert to
406
+ // Blob or fall back. Edge always needs that blob.
407
+ var isOldEdgeBrowser = /Edge\/\d+/.test(nav.userAgent);
408
+ // Safari on iOS needs Blob in order to download PDF
409
+ var safariBlob = (isSafari &&
410
+ typeof dataURL === 'string' &&
411
+ dataURL.indexOf('data:application/pdf') === 0);
412
+ if (safariBlob || isOldEdgeBrowser || dataURL.length > 2000000) {
413
+ dataURL = dataURLtoBlob(dataURL) || '';
414
+ if (!dataURL) {
415
+ throw new Error('Failed to convert to blob');
416
+ }
479
417
  }
418
+ // Try HTML5 download attr if supported
419
+ if (typeof a.download !== 'undefined') {
420
+ a.href = dataURL;
421
+ a.download = filename; // HTML5 download attribute
422
+ doc.body.appendChild(a);
423
+ a.click();
424
+ doc.body.removeChild(a);
425
+ }
426
+ else {
427
+ // No download attr, just opening data URI
428
+ try {
429
+ var windowRef = win.open(dataURL, 'chart');
430
+ if (typeof windowRef === 'undefined' || windowRef === null) {
431
+ throw new Error('Failed to open window');
432
+ }
433
+ }
434
+ catch (e) {
435
+ // window.open failed, trying location.href
436
+ win.location.href = dataURL;
437
+ }
438
+ }
439
+ };
440
+ var DownloadURL = {
441
+ dataURLtoBlob: dataURLtoBlob,
442
+ downloadURL: downloadURL
443
+ };
444
+
445
+ return DownloadURL;
446
+ });
447
+ _registerModule(_modules, 'Extensions/ExportData/ExportData.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Extensions/ExportData/ExportDataDefaults.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Extensions/DownloadURL.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AST, ExportDataDefaults, H, D, DownloadURL, SeriesRegistry, U) {
448
+ /* *
449
+ *
450
+ * Experimental data export module for Highcharts
451
+ *
452
+ * (c) 2010-2021 Torstein Honsi
453
+ *
454
+ * License: www.highcharts.com/license
455
+ *
456
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
457
+ *
458
+ * */
459
+ // @todo
460
+ // - Set up systematic tests for all series types, paired with tests of the data
461
+ // module importing the same data.
462
+ var __spreadArray = (this && this.__spreadArray) || function (to,
463
+ from,
464
+ pack) {
465
+ if (pack || arguments.length === 2) for (var i = 0,
466
+ l = from.length,
467
+ ar; i < l; i++) {
468
+ if (ar || !(i in from)) {
469
+ if (!ar) ar = Array.prototype.slice.call(from, 0,
470
+ i);
471
+ ar[i] = from[i];
472
+ }
473
+ }
474
+ return to.concat(ar || Array.prototype.slice.call(from));
480
475
  };
476
+ var doc = H.doc,
477
+ win = H.win;
478
+ var getOptions = D.getOptions,
479
+ setOptions = D.setOptions;
480
+ var downloadURL = DownloadURL.downloadURL;
481
+ var SeriesClass = SeriesRegistry.series,
482
+ _a = SeriesRegistry.seriesTypes,
483
+ AreaRangeSeries = _a.arearange,
484
+ GanttSeries = _a.gantt,
485
+ MapSeries = _a.map,
486
+ MapBubbleSeries = _a.mapbubble,
487
+ TreemapSeries = _a.treemap;
488
+ var addEvent = U.addEvent,
489
+ defined = U.defined,
490
+ extend = U.extend,
491
+ find = U.find,
492
+ fireEvent = U.fireEvent,
493
+ isNumber = U.isNumber,
494
+ pick = U.pick;
495
+ /* *
496
+ *
497
+ * Constants
498
+ *
499
+ * */
500
+ var composedClasses = [];
501
+ /* *
502
+ *
503
+ * Functions
504
+ *
505
+ * */
506
+ /**
507
+ * Generates a data URL of CSV for local download in the browser. This is the
508
+ * default action for a click on the 'Download CSV' button.
509
+ *
510
+ * See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
511
+ *
512
+ * @function Highcharts.Chart#downloadCSV
513
+ *
514
+ * @requires modules/exporting
515
+ */
516
+ function chartDownloadCSV() {
517
+ var csv = this.getCSV(true);
518
+ downloadURL(getBlobFromContent(csv, 'text/csv') ||
519
+ 'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
520
+ }
521
+ /**
522
+ * Generates a data URL of an XLS document for local download in the browser.
523
+ * This is the default action for a click on the 'Download XLS' button.
524
+ *
525
+ * See {@link Highcharts.Chart#getTable} to get the table data itself.
526
+ *
527
+ * @function Highcharts.Chart#downloadXLS
528
+ *
529
+ * @requires modules/exporting
530
+ */
531
+ function chartDownloadXLS() {
532
+ var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
533
+ 'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
534
+ 'xmlns="http://www.w3.org/TR/REC-html40">' +
535
+ '<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
536
+ '<x:ExcelWorksheets><x:ExcelWorksheet>' +
537
+ '<x:Name>Ark1</x:Name>' +
538
+ '<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
539
+ '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
540
+ '</xml><![endif]-->' +
541
+ '<style>td{border:none;font-family: Calibri, sans-serif;} ' +
542
+ '.number{mso-number-format:"0.00";} ' +
543
+ '.text{ mso-number-format:"\@";}</style>' +
544
+ '<meta name=ProgId content=Excel.Sheet>' +
545
+ '<meta charset=UTF-8>' +
546
+ '</head><body>' +
547
+ this.getTable(true) +
548
+ '</body></html>', base64 = function (s) {
549
+ return win.btoa(unescape(encodeURIComponent(s))); // #50
550
+ };
551
+ downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
552
+ uri + base64(template), this.getFilename() + '.xls');
553
+ }
554
+ /**
555
+ * Export-data module required. Returns the current chart data as a CSV string.
556
+ *
557
+ * @function Highcharts.Chart#getCSV
558
+ *
559
+ * @param {boolean} [useLocalDecimalPoint]
560
+ * Whether to use the local decimal point as detected from the browser.
561
+ * This makes it easier to export data to Excel in the same locale as the
562
+ * user is.
563
+ *
564
+ * @return {string}
565
+ * CSV representation of the data
566
+ */
567
+ function chartGetCSV(useLocalDecimalPoint) {
568
+ var csv = '';
569
+ var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
570
+ (1.1).toLocaleString()[1] :
571
+ '.'),
572
+ // use ';' for direct to Excel
573
+ itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
574
+ // '\n' isn't working with the js csv data extraction
575
+ lineDelimiter = csvOptions.lineDelimiter;
576
+ // Transform the rows to CSV
577
+ rows.forEach(function (row, i) {
578
+ var val = '',
579
+ j = row.length;
580
+ while (j--) {
581
+ val = row[j];
582
+ if (typeof val === 'string') {
583
+ val = '"' + val + '"';
584
+ }
585
+ if (typeof val === 'number') {
586
+ if (decimalPoint !== '.') {
587
+ val = val.toString().replace('.', decimalPoint);
588
+ }
589
+ }
590
+ row[j] = val;
591
+ }
592
+ // The first row is the header - it defines the number of columns.
593
+ // Empty columns between not-empty cells are covered in the getDataRows
594
+ // method.
595
+ // Now add empty values only to the end of the row so all rows have
596
+ // the same number of columns, #17186
597
+ row.length = rows.length ? rows[0].length : 0;
598
+ // Add the values
599
+ csv += row.join(itemDelimiter);
600
+ // Add the line delimiter
601
+ if (i < rows.length - 1) {
602
+ csv += lineDelimiter;
603
+ }
604
+ });
605
+ return csv;
606
+ }
481
607
  /**
482
608
  * Export-data module required. Returns a two-dimensional array containing the
483
609
  * current chart data.
@@ -494,21 +620,15 @@
494
620
  *
495
621
  * @emits Highcharts.Chart#event:exportData
496
622
  */
497
- Chart.prototype.getDataRows = function (multiLevelHeaders) {
623
+ function chartGetDataRows(multiLevelHeaders) {
498
624
  var hasParallelCoords = this.hasParallelCoordinates,
499
625
  time = this.time,
500
626
  csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}),
501
- xAxis,
502
627
  xAxes = this.xAxis,
503
628
  rows = {},
504
629
  rowArr = [],
505
- dataRows,
506
630
  topLevelColumnTitles = [],
507
631
  columnTitles = [],
508
- columnTitleObj,
509
- i,
510
- x,
511
- xTitle,
512
632
  langOptions = this.options.lang,
513
633
  exportDataOptions = langOptions.exportData,
514
634
  categoryHeader = exportDataOptions.categoryHeader,
@@ -528,7 +648,7 @@
528
648
  if (!item) {
529
649
  return categoryHeader;
530
650
  }
531
- if (item instanceof Axis) {
651
+ if (!(item instanceof SeriesClass)) {
532
652
  return (item.options.title && item.options.title.text) ||
533
653
  (item.dateTime ? categoryDatetimeHeader : categoryHeader);
534
654
  }
@@ -584,9 +704,12 @@
584
704
  }
585
705
  return series.pointArrayMap || ['y'];
586
706
  }, xAxisIndices = [];
587
- // Loop the series and index values
588
- i = 0;
589
- this.setUpKeyToAxis();
707
+ var xAxis,
708
+ dataRows,
709
+ columnTitleObj,
710
+ i = 0, // Loop the series and index values
711
+ x,
712
+ xTitle;
590
713
  this.series.forEach(function (series) {
591
714
  var keys = series.options.keys,
592
715
  xAxis = series.xAxis,
@@ -632,20 +755,18 @@
632
755
  // Export directly from options.data because we need the uncropped
633
756
  // data (#7913), and we need to support Boost (#7026).
634
757
  series.options.data.forEach(function eachData(options, pIdx) {
758
+ var mockPoint = { series: mockSeries };
635
759
  var key,
636
760
  prop,
637
- val,
638
- name,
639
- point;
761
+ val;
640
762
  // In parallel coordinates chart, each data point is connected
641
763
  // to a separate yAxis, conform this
642
764
  if (hasParallelCoords) {
643
765
  categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
644
766
  }
645
- point = { series: mockSeries };
646
- series.pointClass.prototype.applyOptions.apply(point, [options]);
647
- key = point.x;
648
- name = series.data[pIdx] && series.data[pIdx].name;
767
+ series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
768
+ key = mockPoint.x;
769
+ var name = series.data[pIdx] && series.data[pIdx].name;
649
770
  j = 0;
650
771
  // Pies, funnels, geo maps etc. use point name in X row
651
772
  if (!xAxis ||
@@ -665,12 +786,12 @@
665
786
  // Contain the X values from one or more X axes
666
787
  rows[key].xValues = [];
667
788
  }
668
- rows[key].x = point.x;
789
+ rows[key].x = mockPoint.x;
669
790
  rows[key].name = name;
670
- rows[key].xValues[xAxisIndex] = point.x;
791
+ rows[key].xValues[xAxisIndex] = mockPoint.x;
671
792
  while (j < valueCount) {
672
793
  prop = pointArrayMap[j]; // y, z etc
673
- val = point[prop];
794
+ val = mockPoint[prop];
674
795
  rows[key][i + j] = pick(
675
796
  // Y axis category if present
676
797
  categoryAndDatetimeMap.categoryMap[prop][val],
@@ -708,86 +829,39 @@
708
829
  return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
709
830
  });
710
831
  // Add header row
711
- xTitle = columnHeaderFormatter(xAxis);
712
- dataRows[0].splice(column, 0, xTitle);
713
- if (multiLevelHeaders && dataRows[1]) {
714
- // If using multi level headers, we just added top level header.
715
- // Also add for sub level
716
- dataRows[1].splice(column, 0, xTitle);
717
- }
718
- // Add the category column
719
- rowArr.forEach(function (// eslint-disable-line no-loop-func
720
- row) {
721
- var category = row.name;
722
- if (xAxis && !defined(category)) {
723
- if (xAxis.dateTime) {
724
- if (row.x instanceof Date) {
725
- row.x = row.x.getTime();
726
- }
727
- category = time.dateFormat(csvOptions.dateFormat, row.x);
728
- }
729
- else if (xAxis.categories) {
730
- category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
731
- }
732
- else {
733
- category = row.x;
734
- }
735
- }
736
- // Add the X/date/category
737
- row.splice(column, 0, category);
738
- });
739
- }
740
- dataRows = dataRows.concat(rowArr);
741
- fireEvent(this, 'exportData', { dataRows: dataRows });
742
- return dataRows;
743
- };
744
- /**
745
- * Export-data module required. Returns the current chart data as a CSV string.
746
- *
747
- * @function Highcharts.Chart#getCSV
748
- *
749
- * @param {boolean} [useLocalDecimalPoint]
750
- * Whether to use the local decimal point as detected from the browser.
751
- * This makes it easier to export data to Excel in the same locale as the
752
- * user is.
753
- *
754
- * @return {string}
755
- * CSV representation of the data
756
- */
757
- Chart.prototype.getCSV = function (useLocalDecimalPoint) {
758
- var csv = '';
759
- var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
760
- (1.1).toLocaleString()[1] :
761
- '.'),
762
- // use ';' for direct to Excel
763
- itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
764
- // '\n' isn't working with the js csv data extraction
765
- lineDelimiter = csvOptions.lineDelimiter;
766
- // Transform the rows to CSV
767
- rows.forEach(function (row, i) {
768
- var val = '',
769
- j = row.length;
770
- while (j--) {
771
- val = row[j];
772
- if (typeof val === 'string') {
773
- val = '"' + val + '"';
774
- }
775
- if (typeof val === 'number') {
776
- if (decimalPoint !== '.') {
777
- val = val.toString().replace('.', decimalPoint);
832
+ xTitle = columnHeaderFormatter(xAxis);
833
+ dataRows[0].splice(column, 0, xTitle);
834
+ if (multiLevelHeaders && dataRows[1]) {
835
+ // If using multi level headers, we just added top level header.
836
+ // Also add for sub level
837
+ dataRows[1].splice(column, 0, xTitle);
838
+ }
839
+ // Add the category column
840
+ rowArr.forEach(function (// eslint-disable-line no-loop-func
841
+ row) {
842
+ var category = row.name;
843
+ if (xAxis && !defined(category)) {
844
+ if (xAxis.dateTime) {
845
+ if (row.x instanceof Date) {
846
+ row.x = row.x.getTime();
847
+ }
848
+ category = time.dateFormat(csvOptions.dateFormat, row.x);
849
+ }
850
+ else if (xAxis.categories) {
851
+ category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
852
+ }
853
+ else {
854
+ category = row.x;
778
855
  }
779
856
  }
780
- row[j] = val;
781
- }
782
- // Add the values
783
- csv += row.join(itemDelimiter);
784
- // Add the line delimiter
785
- if (i < rows.length - 1) {
786
- csv += lineDelimiter;
787
- }
788
- });
789
- return csv;
790
- };
857
+ // Add the X/date/category
858
+ row.splice(column, 0, category);
859
+ });
860
+ }
861
+ dataRows = dataRows.concat(rowArr);
862
+ fireEvent(this, 'exportData', { dataRows: dataRows });
863
+ return dataRows;
864
+ }
791
865
  /**
792
866
  * Export-data module required. Build a HTML table with the chart's current
793
867
  * data.
@@ -807,18 +881,19 @@
807
881
  *
808
882
  * @emits Highcharts.Chart#event:afterGetTable
809
883
  */
810
- Chart.prototype.getTable = function (useLocalDecimalPoint) {
884
+ function chartGetTable(useLocalDecimalPoint) {
811
885
  var serialize = function (node) {
812
886
  if (!node.tagName || node.tagName === '#text') {
813
887
  // Text node
814
888
  return node.textContent || '';
815
889
  }
816
890
  var attributes = node.attributes;
817
- var html = "<" + node.tagName;
891
+ var html = "<".concat(node.tagName);
818
892
  if (attributes) {
819
- Object.keys(attributes).forEach(function (key) {
893
+ Object.keys(attributes)
894
+ .forEach(function (key) {
820
895
  var value = attributes[key];
821
- html += " " + key + "=\"" + value + "\"";
896
+ html += " ".concat(key, "=\"").concat(value, "\"");
822
897
  });
823
898
  }
824
899
  html += '>';
@@ -826,12 +901,12 @@
826
901
  (node.children || []).forEach(function (child) {
827
902
  html += serialize(child);
828
903
  });
829
- html += "</" + node.tagName + ">";
904
+ html += "</".concat(node.tagName, ">");
830
905
  return html;
831
906
  };
832
907
  var tree = this.getTableAST(useLocalDecimalPoint);
833
908
  return serialize(tree);
834
- };
909
+ }
835
910
  /**
836
911
  * Get the AST of a HTML table representing the chart data.
837
912
  *
@@ -847,7 +922,7 @@
847
922
  * @return {Highcharts.ASTNode}
848
923
  * The abstract syntax tree
849
924
  */
850
- Chart.prototype.getTableAST = function (useLocalDecimalPoint) {
925
+ function chartGetTableAST(useLocalDecimalPoint) {
851
926
  var rowLength = 0;
852
927
  var treeChildren = [];
853
928
  var options = this.options,
@@ -875,17 +950,17 @@
875
950
  },
876
951
  // Get table cell HTML from value
877
952
  getCellHTMLFromValue = function (tagName, classes, attributes, value) {
878
- var textContent = pick(value, ''), className = 'text' + (classes ? ' ' + classes : '');
953
+ var textContent = pick(value, ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
879
954
  // Convert to string if number
880
955
  if (typeof textContent === 'number') {
881
956
  textContent = textContent.toString();
882
957
  if (decimalPoint === ',') {
883
958
  textContent = textContent.replace('.', decimalPoint);
884
959
  }
885
- className = 'number';
960
+ className = 'highcharts-number';
886
961
  }
887
962
  else if (!value) {
888
- className = 'empty';
963
+ className = 'highcharts-empty';
889
964
  }
890
965
  attributes = extend({ 'class': className }, attributes);
891
966
  return {
@@ -1016,115 +1091,25 @@
1016
1091
  var e = {
1017
1092
  tree: {
1018
1093
  tagName: 'table',
1019
- id: "highcharts-data-table-" + this.index,
1094
+ id: "highcharts-data-table-".concat(this.index),
1020
1095
  children: treeChildren
1021
1096
  }
1022
1097
  };
1023
1098
  fireEvent(this, 'aftergetTableAST', e);
1024
1099
  return e.tree;
1025
- };
1026
- /**
1027
- * Get a blob object from content, if blob is supported
1028
- *
1029
- * @private
1030
- * @param {string} content
1031
- * The content to create the blob from.
1032
- * @param {string} type
1033
- * The type of the content.
1034
- * @return {string|undefined}
1035
- * The blob object, or undefined if not supported.
1036
- */
1037
- function getBlobFromContent(content, type) {
1038
- var nav = win.navigator,
1039
- webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
1040
- nav.userAgent.indexOf('Chrome') < 0),
1041
- domurl = win.URL || win.webkitURL || win;
1042
- try {
1043
- // MS specific
1044
- if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
1045
- var blob = new win.MSBlobBuilder();
1046
- blob.append(content);
1047
- return blob.getBlob('image/svg+xml');
1048
- }
1049
- // Safari requires data URI since it doesn't allow navigation to blob
1050
- // URLs.
1051
- if (!webKit) {
1052
- return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
1053
- { type: type }));
1054
- }
1055
- }
1056
- catch (e) {
1057
- // Ignore
1058
- }
1059
1100
  }
1060
- /* eslint-disable valid-jsdoc */
1061
- /**
1062
- * Generates a data URL of CSV for local download in the browser. This is the
1063
- * default action for a click on the 'Download CSV' button.
1064
- *
1065
- * See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
1066
- *
1067
- * @function Highcharts.Chart#downloadCSV
1068
- *
1069
- * @requires modules/exporting
1070
- */
1071
- Chart.prototype.downloadCSV = function () {
1072
- var csv = this.getCSV(true);
1073
- downloadURL(getBlobFromContent(csv, 'text/csv') ||
1074
- 'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
1075
- };
1076
- /**
1077
- * Generates a data URL of an XLS document for local download in the browser.
1078
- * This is the default action for a click on the 'Download XLS' button.
1079
- *
1080
- * See {@link Highcharts.Chart#getTable} to get the table data itself.
1081
- *
1082
- * @function Highcharts.Chart#downloadXLS
1083
- *
1084
- * @requires modules/exporting
1085
- */
1086
- Chart.prototype.downloadXLS = function () {
1087
- var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
1088
- 'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
1089
- 'xmlns="http://www.w3.org/TR/REC-html40">' +
1090
- '<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
1091
- '<x:ExcelWorksheets><x:ExcelWorksheet>' +
1092
- '<x:Name>Ark1</x:Name>' +
1093
- '<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
1094
- '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
1095
- '</xml><![endif]-->' +
1096
- '<style>td{border:none;font-family: Calibri, sans-serif;} ' +
1097
- '.number{mso-number-format:"0.00";} ' +
1098
- '.text{ mso-number-format:"\@";}</style>' +
1099
- '<meta name=ProgId content=Excel.Sheet>' +
1100
- '<meta charset=UTF-8>' +
1101
- '</head><body>' +
1102
- this.getTable(true) +
1103
- '</body></html>', base64 = function (s) {
1104
- return win.btoa(unescape(encodeURIComponent(s))); // #50
1105
- };
1106
- downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
1107
- uri + base64(template), this.getFilename() + '.xls');
1108
- };
1109
- /**
1110
- * Export-data module required. View the data in a table below the chart.
1111
- *
1112
- * @function Highcharts.Chart#viewData
1113
- *
1114
- * @emits Highcharts.Chart#event:afterViewData
1115
- */
1116
- Chart.prototype.viewData = function () {
1117
- this.toggleDataTable(true);
1118
- };
1119
1101
  /**
1120
1102
  * Export-data module required. Hide the data table when visible.
1121
1103
  *
1122
1104
  * @function Highcharts.Chart#hideData
1123
1105
  */
1124
- Chart.prototype.hideData = function () {
1106
+ function chartHideData() {
1125
1107
  this.toggleDataTable(false);
1126
- };
1127
- Chart.prototype.toggleDataTable = function (show) {
1108
+ }
1109
+ /**
1110
+ * @private
1111
+ */
1112
+ function chartToggleDataTable(show) {
1128
1113
  show = pick(show, !this.isDataTableVisible);
1129
1114
  // Create the div
1130
1115
  if (show && !this.dataTableDiv) {
@@ -1153,8 +1138,8 @@
1153
1138
  options.buttons &&
1154
1139
  options.buttons.contextButton.menuItems,
1155
1140
  lang = this.options.lang;
1156
- if (exportingOptions &&
1157
- exportingOptions.menuItemDefinitions &&
1141
+ if (options &&
1142
+ options.menuItemDefinitions &&
1158
1143
  lang &&
1159
1144
  lang.viewData &&
1160
1145
  lang.hideData &&
@@ -1165,48 +1150,235 @@
1165
1150
  AST.setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
1166
1151
  }
1167
1152
  }
1168
- };
1169
- // Add "Download CSV" to the exporting menu.
1170
- var exportingOptions = getOptions().exporting;
1171
- if (exportingOptions) {
1172
- extend(exportingOptions.menuItemDefinitions, {
1173
- downloadCSV: {
1174
- textKey: 'downloadCSV',
1175
- onclick: function () {
1176
- this.downloadCSV();
1177
- }
1178
- },
1179
- downloadXLS: {
1180
- textKey: 'downloadXLS',
1181
- onclick: function () {
1182
- this.downloadXLS();
1183
- }
1184
- },
1185
- viewData: {
1186
- textKey: 'viewData',
1187
- onclick: function () {
1188
- this.toggleDataTable();
1153
+ }
1154
+ /**
1155
+ * Export-data module required. View the data in a table below the chart.
1156
+ *
1157
+ * @function Highcharts.Chart#viewData
1158
+ *
1159
+ * @emits Highcharts.Chart#event:afterViewData
1160
+ */
1161
+ function chartViewData() {
1162
+ this.toggleDataTable(true);
1163
+ }
1164
+ /**
1165
+ * @private
1166
+ */
1167
+ function compose(ChartClass) {
1168
+ if (composedClasses.indexOf(ChartClass) === -1) {
1169
+ composedClasses.push(ChartClass);
1170
+ // Add an event listener to handle the showTable option
1171
+ addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
1172
+ addEvent(ChartClass, 'render', onChartRenderer);
1173
+ var chartProto = ChartClass.prototype;
1174
+ chartProto.downloadCSV = chartDownloadCSV;
1175
+ chartProto.downloadXLS = chartDownloadXLS;
1176
+ chartProto.getCSV = chartGetCSV;
1177
+ chartProto.getDataRows = chartGetDataRows;
1178
+ chartProto.getTable = chartGetTable;
1179
+ chartProto.getTableAST = chartGetTableAST;
1180
+ chartProto.hideData = chartHideData;
1181
+ chartProto.toggleDataTable = chartToggleDataTable;
1182
+ chartProto.viewData = chartViewData;
1183
+ }
1184
+ if (composedClasses.indexOf(setOptions) === -1) {
1185
+ composedClasses.push(setOptions);
1186
+ var exportingOptions = getOptions().exporting;
1187
+ // Add "Download CSV" to the exporting menu.
1188
+ // @todo consider move to defaults
1189
+ if (exportingOptions) {
1190
+ extend(exportingOptions.menuItemDefinitions, {
1191
+ downloadCSV: {
1192
+ textKey: 'downloadCSV',
1193
+ onclick: function () {
1194
+ this.downloadCSV();
1195
+ }
1196
+ },
1197
+ downloadXLS: {
1198
+ textKey: 'downloadXLS',
1199
+ onclick: function () {
1200
+ this.downloadXLS();
1201
+ }
1202
+ },
1203
+ viewData: {
1204
+ textKey: 'viewData',
1205
+ onclick: function () {
1206
+ this.toggleDataTable();
1207
+ }
1208
+ }
1209
+ });
1210
+ if (exportingOptions.buttons &&
1211
+ exportingOptions.buttons.contextButton.menuItems) {
1212
+ exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
1189
1213
  }
1190
1214
  }
1191
- });
1192
- if (exportingOptions.buttons) {
1193
- exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
1215
+ setOptions(ExportDataDefaults);
1216
+ }
1217
+ if (AreaRangeSeries && composedClasses.indexOf(AreaRangeSeries) === -1) {
1218
+ composedClasses.push(AreaRangeSeries);
1219
+ AreaRangeSeries.prototype.keyToAxis = {
1220
+ low: 'y',
1221
+ high: 'y'
1222
+ };
1223
+ }
1224
+ if (GanttSeries && composedClasses.indexOf(GanttSeries) === -1) {
1225
+ composedClasses.push(GanttSeries);
1226
+ GanttSeries.prototype.keyToAxis = {
1227
+ start: 'x',
1228
+ end: 'x'
1229
+ };
1230
+ }
1231
+ if (MapSeries && composedClasses.indexOf(MapSeries) === -1) {
1232
+ composedClasses.push(MapSeries);
1233
+ MapSeries.prototype.exportKey = 'name';
1234
+ }
1235
+ if (MapBubbleSeries && composedClasses.indexOf(MapBubbleSeries) === -1) {
1236
+ composedClasses.push(MapBubbleSeries);
1237
+ MapBubbleSeries.prototype.exportKey = 'name';
1238
+ }
1239
+ if (TreemapSeries && composedClasses.indexOf(TreemapSeries) === -1) {
1240
+ composedClasses.push(TreemapSeries);
1241
+ TreemapSeries.prototype.exportKey = 'name';
1194
1242
  }
1195
1243
  }
1196
- // Series specific
1197
- if (seriesTypes.map) {
1198
- seriesTypes.map.prototype.exportKey = 'name';
1244
+ /**
1245
+ * Get a blob object from content, if blob is supported
1246
+ *
1247
+ * @private
1248
+ * @param {string} content
1249
+ * The content to create the blob from.
1250
+ * @param {string} type
1251
+ * The type of the content.
1252
+ * @return {string|undefined}
1253
+ * The blob object, or undefined if not supported.
1254
+ */
1255
+ function getBlobFromContent(content, type) {
1256
+ var nav = win.navigator,
1257
+ webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
1258
+ nav.userAgent.indexOf('Chrome') < 0),
1259
+ domurl = win.URL || win.webkitURL || win;
1260
+ try {
1261
+ // MS specific
1262
+ if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
1263
+ var blob = new win.MSBlobBuilder();
1264
+ blob.append(content);
1265
+ return blob.getBlob('image/svg+xml');
1266
+ }
1267
+ // Safari requires data URI since it doesn't allow navigation to blob
1268
+ // URLs.
1269
+ if (!webKit) {
1270
+ return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
1271
+ { type: type }));
1272
+ }
1273
+ }
1274
+ catch (e) {
1275
+ // Ignore
1276
+ }
1199
1277
  }
1200
- if (seriesTypes.mapbubble) {
1201
- seriesTypes.mapbubble.prototype.exportKey = 'name';
1278
+ /**
1279
+ * @private
1280
+ */
1281
+ function onChartAfterViewData() {
1282
+ var chart = this,
1283
+ dataTableDiv = chart.dataTableDiv,
1284
+ row = document.querySelectorAll('thead')[0].querySelectorAll('tr')[0],
1285
+ getCellValue = function (tr,
1286
+ index) {
1287
+ return tr.children[index].textContent;
1288
+ }, comparer = function (index, ascending) {
1289
+ return function (a, b) {
1290
+ var sort = function (v1,
1291
+ v2) { return (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
1292
+ v1 - v2 :
1293
+ v1.toString().localeCompare(v2)); };
1294
+ return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
1295
+ };
1296
+ };
1297
+ if (dataTableDiv) {
1298
+ row.childNodes.forEach(function (th) {
1299
+ var table = th.closest('table');
1300
+ th.addEventListener('click', function () {
1301
+ var rows = __spreadArray([],
1302
+ dataTableDiv.querySelectorAll('tr:not(thead tr)'),
1303
+ true),
1304
+ headers = __spreadArray([],
1305
+ th.parentNode.children,
1306
+ true);
1307
+ rows.sort(comparer(headers.indexOf(th), chart.ascendingOrderInTable =
1308
+ !chart.ascendingOrderInTable)).forEach(function (tr) {
1309
+ table.appendChild(tr);
1310
+ });
1311
+ headers.forEach(function (th) {
1312
+ ['highcharts-sort-ascending', 'highcharts-sort-descending']
1313
+ .forEach(function (className) {
1314
+ if (th.classList.contains(className)) {
1315
+ th.classList.remove(className);
1316
+ }
1317
+ });
1318
+ });
1319
+ th.classList.add(chart.ascendingOrderInTable ?
1320
+ 'highcharts-sort-ascending' :
1321
+ 'highcharts-sort-descending');
1322
+ });
1323
+ });
1324
+ }
1202
1325
  }
1203
- if (seriesTypes.treemap) {
1204
- seriesTypes.treemap.prototype.exportKey = 'name';
1326
+ /**
1327
+ * Handle the showTable option
1328
+ * @private
1329
+ */
1330
+ function onChartRenderer() {
1331
+ if (this.options &&
1332
+ this.options.exporting &&
1333
+ this.options.exporting.showTable &&
1334
+ !this.options.chart.forExport) {
1335
+ this.viewData();
1336
+ }
1205
1337
  }
1338
+ /* *
1339
+ *
1340
+ * Default Export
1341
+ *
1342
+ * */
1343
+ var ExportData = {
1344
+ compose: compose
1345
+ };
1346
+ /* *
1347
+ *
1348
+ * API Declarations
1349
+ *
1350
+ * */
1351
+ /**
1352
+ * Function callback to execute while data rows are processed for exporting.
1353
+ * This allows the modification of data rows before processed into the final
1354
+ * format.
1355
+ *
1356
+ * @callback Highcharts.ExportDataCallbackFunction
1357
+ * @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
1358
+ *
1359
+ * @param {Highcharts.Chart} this
1360
+ * Chart context where the event occured.
1361
+ *
1362
+ * @param {Highcharts.ExportDataEventObject} event
1363
+ * Event object with data rows that can be modified.
1364
+ */
1365
+ /**
1366
+ * Contains information about the export data event.
1367
+ *
1368
+ * @interface Highcharts.ExportDataEventObject
1369
+ */ /**
1370
+ * Contains the data rows for the current export task and can be modified.
1371
+ * @name Highcharts.ExportDataEventObject#dataRows
1372
+ * @type {Array<Array<string>>}
1373
+ */
1374
+ (''); // keeps doclets above in JS file
1206
1375
 
1376
+ return ExportData;
1207
1377
  });
1208
- _registerModule(_modules, 'masters/modules/export-data.src.js', [], function () {
1378
+ _registerModule(_modules, 'masters/modules/export-data.src.js', [_modules['Core/Globals.js'], _modules['Extensions/ExportData/ExportData.js']], function (Highcharts, ExportData) {
1209
1379
 
1380
+ var G = Highcharts;
1381
+ ExportData.compose(G.Chart);
1210
1382
 
1211
1383
  });
1212
1384
  }));