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
@@ -13,317 +13,138 @@
13
13
  // - Set up systematic tests for all series types, paired with tests of the data
14
14
  // module importing the same data.
15
15
  'use strict';
16
- import Axis from '../Core/Axis/Axis.js';
17
- import Chart from '../Core/Chart/Chart.js';
18
- import AST from '../Core/Renderer/HTML/AST.js';
19
- import H from '../Core/Globals.js';
20
- var doc = H.doc, seriesTypes = H.seriesTypes, win = H.win;
21
- import D from '../Core/DefaultOptions.js';
16
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
17
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
18
+ if (ar || !(i in from)) {
19
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
20
+ ar[i] = from[i];
21
+ }
22
+ }
23
+ return to.concat(ar || Array.prototype.slice.call(from));
24
+ };
25
+ import AST from '../../Core/Renderer/HTML/AST.js';
26
+ import ExportDataDefaults from './ExportDataDefaults.js';
27
+ import H from '../../Core/Globals.js';
28
+ var doc = H.doc, win = H.win;
29
+ import D from '../../Core/DefaultOptions.js';
22
30
  var getOptions = D.getOptions, setOptions = D.setOptions;
23
- import U from '../Core/Utilities.js';
31
+ import DownloadURL from '../DownloadURL.js';
32
+ var downloadURL = DownloadURL.downloadURL;
33
+ import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
34
+ var SeriesClass = SeriesRegistry.series, _a = SeriesRegistry.seriesTypes, AreaRangeSeries = _a.arearange, GanttSeries = _a.gantt, MapSeries = _a.map, MapBubbleSeries = _a.mapbubble, TreemapSeries = _a.treemap;
35
+ import U from '../../Core/Utilities.js';
24
36
  var addEvent = U.addEvent, defined = U.defined, extend = U.extend, find = U.find, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick;
37
+ /* *
38
+ *
39
+ * Constants
40
+ *
41
+ * */
42
+ var composedClasses = [];
43
+ /* *
44
+ *
45
+ * Functions
46
+ *
47
+ * */
25
48
  /**
26
- * Function callback to execute while data rows are processed for exporting.
27
- * This allows the modification of data rows before processed into the final
28
- * format.
49
+ * Generates a data URL of CSV for local download in the browser. This is the
50
+ * default action for a click on the 'Download CSV' button.
29
51
  *
30
- * @callback Highcharts.ExportDataCallbackFunction
31
- * @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
52
+ * See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
32
53
  *
33
- * @param {Highcharts.Chart} this
34
- * Chart context where the event occured.
54
+ * @function Highcharts.Chart#downloadCSV
35
55
  *
36
- * @param {Highcharts.ExportDataEventObject} event
37
- * Event object with data rows that can be modified.
56
+ * @requires modules/exporting
38
57
  */
58
+ function chartDownloadCSV() {
59
+ var csv = this.getCSV(true);
60
+ downloadURL(getBlobFromContent(csv, 'text/csv') ||
61
+ 'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
62
+ }
39
63
  /**
40
- * Contains information about the export data event.
64
+ * Generates a data URL of an XLS document for local download in the browser.
65
+ * This is the default action for a click on the 'Download XLS' button.
41
66
  *
42
- * @interface Highcharts.ExportDataEventObject
43
- */ /**
44
- * Contains the data rows for the current export task and can be modified.
45
- * @name Highcharts.ExportDataEventObject#dataRows
46
- * @type {Array<Array<string>>}
47
- */
48
- import DownloadURL from '../Extensions/DownloadURL.js';
49
- var downloadURL = DownloadURL.downloadURL;
50
- setOptions({
51
- /**
52
- * Callback that fires while exporting data. This allows the modification of
53
- * data rows before processed into the final format.
54
- *
55
- * @type {Highcharts.ExportDataCallbackFunction}
56
- * @context Highcharts.Chart
57
- * @requires modules/export-data
58
- * @apioption chart.events.exportData
59
- */
60
- /**
61
- * When set to `false` will prevent the series data from being included in
62
- * any form of data export.
63
- *
64
- * Since version 6.0.0 until 7.1.0 the option was existing undocumented
65
- * as `includeInCSVExport`.
66
- *
67
- * @type {boolean}
68
- * @since 7.1.0
69
- * @requires modules/export-data
70
- * @apioption plotOptions.series.includeInDataExport
71
- */
72
- /**
73
- * @optionparent exporting
74
- * @private
75
- */
76
- exporting: {
77
- /**
78
- * Caption for the data table. Same as chart title by default. Set to
79
- * `false` to disable.
80
- *
81
- * @sample highcharts/export-data/multilevel-table
82
- * Multiple table headers
83
- *
84
- * @type {boolean|string}
85
- * @since 6.0.4
86
- * @requires modules/export-data
87
- * @apioption exporting.tableCaption
88
- */
89
- /**
90
- * Options for exporting data to CSV or ExCel, or displaying the data
91
- * in a HTML table or a JavaScript structure.
92
- *
93
- * This module adds data export options to the export menu and provides
94
- * functions like `Chart.getCSV`, `Chart.getTable`, `Chart.getDataRows`
95
- * and `Chart.viewData`.
96
- *
97
- * The XLS converter is limited and only creates a HTML string that is
98
- * passed for download, which works but creates a warning before
99
- * opening. The workaround for this is to use a third party XLSX
100
- * converter, as demonstrated in the sample below.
101
- *
102
- * @sample highcharts/export-data/categorized/ Categorized data
103
- * @sample highcharts/export-data/stock-timeaxis/ Highcharts Stock time axis
104
- * @sample highcharts/export-data/xlsx/
105
- * Using a third party XLSX converter
106
- *
107
- * @since 6.0.0
108
- * @requires modules/export-data
109
- */
110
- csv: {
111
- /**
112
- *
113
- * Options for annotations in the export-data table.
114
- *
115
- * @since 8.2.0
116
- * @requires modules/export-data
117
- * @requires modules/annotations
118
- *
119
- *
120
- */
121
- annotations: {
122
- /**
123
- * The way to mark the separator for annotations
124
- * combined in one export-data table cell.
125
- *
126
- * @since 8.2.0
127
- * @requires modules/annotations
128
- */
129
- itemDelimiter: '; ',
130
- /**
131
- * When several labels are assigned to a specific point,
132
- * they will be displayed in one field in the table.
133
- *
134
- * @sample highcharts/export-data/join-annotations/
135
- * Concatenate point annotations with itemDelimiter set.
136
- *
137
- * @since 8.2.0
138
- * @requires modules/annotations
139
- */
140
- join: false
141
- },
142
- /**
143
- * Formatter callback for the column headers. Parameters are:
144
- * - `item` - The series or axis object)
145
- * - `key` - The point key, for example y or z
146
- * - `keyLength` - The amount of value keys for this item, for
147
- * example a range series has the keys `low` and `high` so the
148
- * key length is 2.
149
- *
150
- * If [useMultiLevelHeaders](#exporting.useMultiLevelHeaders) is
151
- * true, columnHeaderFormatter by default returns an object with
152
- * columnTitle and topLevelColumnTitle for each key. Columns with
153
- * the same topLevelColumnTitle have their titles merged into a
154
- * single cell with colspan for table/Excel export.
155
- *
156
- * If `useMultiLevelHeaders` is false, or for CSV export, it returns
157
- * the series name, followed by the key if there is more than one
158
- * key.
159
- *
160
- * For the axis it returns the axis title or "Category" or
161
- * "DateTime" by default.
162
- *
163
- * Return `false` to use Highcharts' proposed header.
164
- *
165
- * @sample highcharts/export-data/multilevel-table
166
- * Multiple table headers
167
- *
168
- * @type {Function|null}
169
- */
170
- columnHeaderFormatter: null,
171
- /**
172
- * Which date format to use for exported dates on a datetime X axis.
173
- * See `Highcharts.dateFormat`.
174
- */
175
- dateFormat: '%Y-%m-%d %H:%M:%S',
176
- /**
177
- * Which decimal point to use for exported CSV. Defaults to the same
178
- * as the browser locale, typically `.` (English) or `,` (German,
179
- * French etc).
180
- *
181
- * @type {string|null}
182
- * @since 6.0.4
183
- */
184
- decimalPoint: null,
185
- /**
186
- * The item delimiter in the exported data. Use `;` for direct
187
- * exporting to Excel. Defaults to a best guess based on the browser
188
- * locale. If the locale _decimal point_ is `,`, the `itemDelimiter`
189
- * defaults to `;`, otherwise the `itemDelimiter` defaults to `,`.
190
- *
191
- * @type {string|null}
192
- */
193
- itemDelimiter: null,
194
- /**
195
- * The line delimiter in the exported data, defaults to a newline.
196
- */
197
- lineDelimiter: '\n'
198
- },
199
- /**
200
- * Show a HTML table below the chart with the chart's current data.
201
- *
202
- * @sample highcharts/export-data/showtable/
203
- * Show the table
204
- * @sample highcharts/studies/exporting-table-html
205
- * Experiment with putting the table inside the subtitle to
206
- * allow exporting it.
207
- *
208
- * @since 6.0.0
209
- * @requires modules/export-data
210
- */
211
- showTable: false,
212
- /**
213
- * Use multi level headers in data table. If [csv.columnHeaderFormatter
214
- * ](#exporting.csv.columnHeaderFormatter) is defined, it has to return
215
- * objects in order for multi level headers to work.
216
- *
217
- * @sample highcharts/export-data/multilevel-table
218
- * Multiple table headers
219
- *
220
- * @since 6.0.4
221
- * @requires modules/export-data
222
- */
223
- useMultiLevelHeaders: true,
224
- /**
225
- * If using multi level table headers, use rowspans for headers that
226
- * have only one level.
227
- *
228
- * @sample highcharts/export-data/multilevel-table
229
- * Multiple table headers
230
- *
231
- * @since 6.0.4
232
- * @requires modules/export-data
233
- */
234
- useRowspanHeaders: true
235
- },
236
- /**
237
- * @optionparent lang
238
- *
239
- * @private
240
- */
241
- lang: {
242
- /**
243
- * The text for the menu item.
244
- *
245
- * @since 6.0.0
246
- * @requires modules/export-data
247
- */
248
- downloadCSV: 'Download CSV',
249
- /**
250
- * The text for the menu item.
251
- *
252
- * @since 6.0.0
253
- * @requires modules/export-data
254
- */
255
- downloadXLS: 'Download XLS',
256
- /**
257
- * The text for exported table.
258
- *
259
- * @since 8.1.0
260
- * @requires modules/export-data
261
- */
262
- exportData: {
263
- /**
264
- * The annotation column title.
265
- */
266
- annotationHeader: 'Annotations',
267
- /**
268
- * The category column title.
269
- */
270
- categoryHeader: 'Category',
271
- /**
272
- * The category column title when axis type set to "datetime".
273
- */
274
- categoryDatetimeHeader: 'DateTime'
275
- },
276
- /**
277
- * The text for the menu item.
278
- *
279
- * @since 6.0.0
280
- * @requires modules/export-data
281
- */
282
- viewData: 'View data table',
283
- /**
284
- * The text for the menu item.
285
- *
286
- * @since 8.2.0
287
- * @requires modules/export-data
288
- */
289
- hideData: 'Hide data table'
290
- }
291
- });
292
- /* eslint-disable no-invalid-this */
293
- // Add an event listener to handle the showTable option
294
- addEvent(Chart, 'render', function () {
295
- if (this.options &&
296
- this.options.exporting &&
297
- this.options.exporting.showTable &&
298
- !this.options.chart.forExport &&
299
- !this.dataTableDiv) {
300
- this.viewData();
301
- }
302
- });
303
- /* eslint-enable no-invalid-this */
67
+ * See {@link Highcharts.Chart#getTable} to get the table data itself.
68
+ *
69
+ * @function Highcharts.Chart#downloadXLS
70
+ *
71
+ * @requires modules/exporting
72
+ */
73
+ function chartDownloadXLS() {
74
+ var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
75
+ 'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
76
+ 'xmlns="http://www.w3.org/TR/REC-html40">' +
77
+ '<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
78
+ '<x:ExcelWorksheets><x:ExcelWorksheet>' +
79
+ '<x:Name>Ark1</x:Name>' +
80
+ '<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
81
+ '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
82
+ '</xml><![endif]-->' +
83
+ '<style>td{border:none;font-family: Calibri, sans-serif;} ' +
84
+ '.number{mso-number-format:"0.00";} ' +
85
+ '.text{ mso-number-format:"\@";}</style>' +
86
+ '<meta name=ProgId content=Excel.Sheet>' +
87
+ '<meta charset=UTF-8>' +
88
+ '</head><body>' +
89
+ this.getTable(true) +
90
+ '</body></html>', base64 = function (s) {
91
+ return win.btoa(unescape(encodeURIComponent(s))); // #50
92
+ };
93
+ downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
94
+ uri + base64(template), this.getFilename() + '.xls');
95
+ }
304
96
  /**
305
- * Set up key-to-axis bindings. This is used when the Y axis is datetime or
306
- * categorized. For example in an arearange series, the low and high values
307
- * should be formatted according to the Y axis type, and in order to link them
308
- * we need this map.
97
+ * Export-data module required. Returns the current chart data as a CSV string.
309
98
  *
310
- * @private
311
- * @function Highcharts.Chart#setUpKeyToAxis
99
+ * @function Highcharts.Chart#getCSV
100
+ *
101
+ * @param {boolean} [useLocalDecimalPoint]
102
+ * Whether to use the local decimal point as detected from the browser.
103
+ * This makes it easier to export data to Excel in the same locale as the
104
+ * user is.
105
+ *
106
+ * @return {string}
107
+ * CSV representation of the data
312
108
  */
313
- Chart.prototype.setUpKeyToAxis = function () {
314
- if (seriesTypes.arearange) {
315
- seriesTypes.arearange.prototype.keyToAxis = {
316
- low: 'y',
317
- high: 'y'
318
- };
319
- }
320
- if (seriesTypes.gantt) {
321
- seriesTypes.gantt.prototype.keyToAxis = {
322
- start: 'x',
323
- end: 'x'
324
- };
325
- }
326
- };
109
+ function chartGetCSV(useLocalDecimalPoint) {
110
+ var csv = '';
111
+ var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
112
+ (1.1).toLocaleString()[1] :
113
+ '.'),
114
+ // use ';' for direct to Excel
115
+ itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
116
+ // '\n' isn't working with the js csv data extraction
117
+ lineDelimiter = csvOptions.lineDelimiter;
118
+ // Transform the rows to CSV
119
+ rows.forEach(function (row, i) {
120
+ var val = '', j = row.length;
121
+ while (j--) {
122
+ val = row[j];
123
+ if (typeof val === 'string') {
124
+ val = '"' + val + '"';
125
+ }
126
+ if (typeof val === 'number') {
127
+ if (decimalPoint !== '.') {
128
+ val = val.toString().replace('.', decimalPoint);
129
+ }
130
+ }
131
+ row[j] = val;
132
+ }
133
+ // The first row is the header - it defines the number of columns.
134
+ // Empty columns between not-empty cells are covered in the getDataRows
135
+ // method.
136
+ // Now add empty values only to the end of the row so all rows have
137
+ // the same number of columns, #17186
138
+ row.length = rows.length ? rows[0].length : 0;
139
+ // Add the values
140
+ csv += row.join(itemDelimiter);
141
+ // Add the line delimiter
142
+ if (i < rows.length - 1) {
143
+ csv += lineDelimiter;
144
+ }
145
+ });
146
+ return csv;
147
+ }
327
148
  /**
328
149
  * Export-data module required. Returns a two-dimensional array containing the
329
150
  * current chart data.
@@ -340,8 +161,8 @@ Chart.prototype.setUpKeyToAxis = function () {
340
161
  *
341
162
  * @emits Highcharts.Chart#event:exportData
342
163
  */
343
- Chart.prototype.getDataRows = function (multiLevelHeaders) {
344
- var hasParallelCoords = this.hasParallelCoordinates, time = this.time, csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}), xAxis, xAxes = this.xAxis, rows = {}, rowArr = [], dataRows, topLevelColumnTitles = [], columnTitles = [], columnTitleObj, i, x, xTitle, langOptions = this.options.lang, exportDataOptions = langOptions.exportData, categoryHeader = exportDataOptions.categoryHeader, categoryDatetimeHeader = exportDataOptions.categoryDatetimeHeader,
164
+ function chartGetDataRows(multiLevelHeaders) {
165
+ var hasParallelCoords = this.hasParallelCoordinates, time = this.time, csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}), xAxes = this.xAxis, rows = {}, rowArr = [], topLevelColumnTitles = [], columnTitles = [], langOptions = this.options.lang, exportDataOptions = langOptions.exportData, categoryHeader = exportDataOptions.categoryHeader, categoryDatetimeHeader = exportDataOptions.categoryDatetimeHeader,
345
166
  // Options
346
167
  columnHeaderFormatter = function (item, key, keyLength) {
347
168
  if (csvOptions.columnHeaderFormatter) {
@@ -353,7 +174,7 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
353
174
  if (!item) {
354
175
  return categoryHeader;
355
176
  }
356
- if (item instanceof Axis) {
177
+ if (!(item instanceof SeriesClass)) {
357
178
  return (item.options.title && item.options.title.text) ||
358
179
  (item.dateTime ? categoryDatetimeHeader : categoryHeader);
359
180
  }
@@ -408,9 +229,8 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
408
229
  }
409
230
  return series.pointArrayMap || ['y'];
410
231
  }, xAxisIndices = [];
411
- // Loop the series and index values
412
- i = 0;
413
- this.setUpKeyToAxis();
232
+ var xAxis, dataRows, columnTitleObj, i = 0, // Loop the series and index values
233
+ x, xTitle;
414
234
  this.series.forEach(function (series) {
415
235
  var keys = series.options.keys, xAxis = series.xAxis, pointArrayMap = keys || getPointArray(series, xAxis), valueCount = pointArrayMap.length, xTaken = !series.requireSorting && {}, xAxisIndex = xAxes.indexOf(xAxis);
416
236
  var categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap), mockSeries, j;
@@ -447,16 +267,16 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
447
267
  // Export directly from options.data because we need the uncropped
448
268
  // data (#7913), and we need to support Boost (#7026).
449
269
  series.options.data.forEach(function eachData(options, pIdx) {
450
- var key, prop, val, name, point;
270
+ var mockPoint = { series: mockSeries };
271
+ var key, prop, val;
451
272
  // In parallel coordinates chart, each data point is connected
452
273
  // to a separate yAxis, conform this
453
274
  if (hasParallelCoords) {
454
275
  categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
455
276
  }
456
- point = { series: mockSeries };
457
- series.pointClass.prototype.applyOptions.apply(point, [options]);
458
- key = point.x;
459
- name = series.data[pIdx] && series.data[pIdx].name;
277
+ series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
278
+ key = mockPoint.x;
279
+ var name = series.data[pIdx] && series.data[pIdx].name;
460
280
  j = 0;
461
281
  // Pies, funnels, geo maps etc. use point name in X row
462
282
  if (!xAxis ||
@@ -476,12 +296,12 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
476
296
  // Contain the X values from one or more X axes
477
297
  rows[key].xValues = [];
478
298
  }
479
- rows[key].x = point.x;
299
+ rows[key].x = mockPoint.x;
480
300
  rows[key].name = name;
481
- rows[key].xValues[xAxisIndex] = point.x;
301
+ rows[key].xValues[xAxisIndex] = mockPoint.x;
482
302
  while (j < valueCount) {
483
303
  prop = pointArrayMap[j]; // y, z etc
484
- val = point[prop];
304
+ val = mockPoint[prop];
485
305
  rows[key][i + j] = pick(
486
306
  // Y axis category if present
487
307
  categoryAndDatetimeMap.categoryMap[prop][val],
@@ -550,53 +370,7 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
550
370
  dataRows = dataRows.concat(rowArr);
551
371
  fireEvent(this, 'exportData', { dataRows: dataRows });
552
372
  return dataRows;
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
- Chart.prototype.getCSV = function (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 = '', j = row.length;
579
- while (j--) {
580
- val = row[j];
581
- if (typeof val === 'string') {
582
- val = '"' + val + '"';
583
- }
584
- if (typeof val === 'number') {
585
- if (decimalPoint !== '.') {
586
- val = val.toString().replace('.', decimalPoint);
587
- }
588
- }
589
- row[j] = val;
590
- }
591
- // Add the values
592
- csv += row.join(itemDelimiter);
593
- // Add the line delimiter
594
- if (i < rows.length - 1) {
595
- csv += lineDelimiter;
596
- }
597
- });
598
- return csv;
599
- };
373
+ }
600
374
  /**
601
375
  * Export-data module required. Build a HTML table with the chart's current
602
376
  * data.
@@ -616,18 +390,19 @@ Chart.prototype.getCSV = function (useLocalDecimalPoint) {
616
390
  *
617
391
  * @emits Highcharts.Chart#event:afterGetTable
618
392
  */
619
- Chart.prototype.getTable = function (useLocalDecimalPoint) {
393
+ function chartGetTable(useLocalDecimalPoint) {
620
394
  var serialize = function (node) {
621
395
  if (!node.tagName || node.tagName === '#text') {
622
396
  // Text node
623
397
  return node.textContent || '';
624
398
  }
625
399
  var attributes = node.attributes;
626
- var html = "<" + node.tagName;
400
+ var html = "<".concat(node.tagName);
627
401
  if (attributes) {
628
- Object.keys(attributes).forEach(function (key) {
402
+ Object.keys(attributes)
403
+ .forEach(function (key) {
629
404
  var value = attributes[key];
630
- html += " " + key + "=\"" + value + "\"";
405
+ html += " ".concat(key, "=\"").concat(value, "\"");
631
406
  });
632
407
  }
633
408
  html += '>';
@@ -635,12 +410,12 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
635
410
  (node.children || []).forEach(function (child) {
636
411
  html += serialize(child);
637
412
  });
638
- html += "</" + node.tagName + ">";
413
+ html += "</".concat(node.tagName, ">");
639
414
  return html;
640
415
  };
641
416
  var tree = this.getTableAST(useLocalDecimalPoint);
642
417
  return serialize(tree);
643
- };
418
+ }
644
419
  /**
645
420
  * Get the AST of a HTML table representing the chart data.
646
421
  *
@@ -656,7 +431,7 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
656
431
  * @return {Highcharts.ASTNode}
657
432
  * The abstract syntax tree
658
433
  */
659
- Chart.prototype.getTableAST = function (useLocalDecimalPoint) {
434
+ function chartGetTableAST(useLocalDecimalPoint) {
660
435
  var rowLength = 0;
661
436
  var treeChildren = [];
662
437
  var options = this.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : '.', useMultiLevelHeaders = pick(options.exporting.useMultiLevelHeaders, true), rows = this.getDataRows(useMultiLevelHeaders), topHeaders = useMultiLevelHeaders ? rows.shift() : null, subHeaders = rows.shift(),
@@ -677,17 +452,17 @@ Chart.prototype.getTableAST = function (useLocalDecimalPoint) {
677
452
  },
678
453
  // Get table cell HTML from value
679
454
  getCellHTMLFromValue = function (tagName, classes, attributes, value) {
680
- var textContent = pick(value, ''), className = 'text' + (classes ? ' ' + classes : '');
455
+ var textContent = pick(value, ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
681
456
  // Convert to string if number
682
457
  if (typeof textContent === 'number') {
683
458
  textContent = textContent.toString();
684
459
  if (decimalPoint === ',') {
685
460
  textContent = textContent.replace('.', decimalPoint);
686
461
  }
687
- className = 'number';
462
+ className = 'highcharts-number';
688
463
  }
689
464
  else if (!value) {
690
- className = 'empty';
465
+ className = 'highcharts-empty';
691
466
  }
692
467
  attributes = extend({ 'class': className }, attributes);
693
468
  return {
@@ -813,113 +588,25 @@ Chart.prototype.getTableAST = function (useLocalDecimalPoint) {
813
588
  var e = {
814
589
  tree: {
815
590
  tagName: 'table',
816
- id: "highcharts-data-table-" + this.index,
591
+ id: "highcharts-data-table-".concat(this.index),
817
592
  children: treeChildren
818
593
  }
819
594
  };
820
595
  fireEvent(this, 'aftergetTableAST', e);
821
596
  return e.tree;
822
- };
823
- /**
824
- * Get a blob object from content, if blob is supported
825
- *
826
- * @private
827
- * @param {string} content
828
- * The content to create the blob from.
829
- * @param {string} type
830
- * The type of the content.
831
- * @return {string|undefined}
832
- * The blob object, or undefined if not supported.
833
- */
834
- function getBlobFromContent(content, type) {
835
- var nav = win.navigator, webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
836
- nav.userAgent.indexOf('Chrome') < 0), domurl = win.URL || win.webkitURL || win;
837
- try {
838
- // MS specific
839
- if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
840
- var blob = new win.MSBlobBuilder();
841
- blob.append(content);
842
- return blob.getBlob('image/svg+xml');
843
- }
844
- // Safari requires data URI since it doesn't allow navigation to blob
845
- // URLs.
846
- if (!webKit) {
847
- return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
848
- { type: type }));
849
- }
850
- }
851
- catch (e) {
852
- // Ignore
853
- }
854
597
  }
855
- /* eslint-disable valid-jsdoc */
856
- /**
857
- * Generates a data URL of CSV for local download in the browser. This is the
858
- * default action for a click on the 'Download CSV' button.
859
- *
860
- * See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
861
- *
862
- * @function Highcharts.Chart#downloadCSV
863
- *
864
- * @requires modules/exporting
865
- */
866
- Chart.prototype.downloadCSV = function () {
867
- var csv = this.getCSV(true);
868
- downloadURL(getBlobFromContent(csv, 'text/csv') ||
869
- 'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
870
- };
871
- /**
872
- * Generates a data URL of an XLS document for local download in the browser.
873
- * This is the default action for a click on the 'Download XLS' button.
874
- *
875
- * See {@link Highcharts.Chart#getTable} to get the table data itself.
876
- *
877
- * @function Highcharts.Chart#downloadXLS
878
- *
879
- * @requires modules/exporting
880
- */
881
- Chart.prototype.downloadXLS = function () {
882
- var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
883
- 'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
884
- 'xmlns="http://www.w3.org/TR/REC-html40">' +
885
- '<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
886
- '<x:ExcelWorksheets><x:ExcelWorksheet>' +
887
- '<x:Name>Ark1</x:Name>' +
888
- '<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
889
- '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
890
- '</xml><![endif]-->' +
891
- '<style>td{border:none;font-family: Calibri, sans-serif;} ' +
892
- '.number{mso-number-format:"0.00";} ' +
893
- '.text{ mso-number-format:"\@";}</style>' +
894
- '<meta name=ProgId content=Excel.Sheet>' +
895
- '<meta charset=UTF-8>' +
896
- '</head><body>' +
897
- this.getTable(true) +
898
- '</body></html>', base64 = function (s) {
899
- return win.btoa(unescape(encodeURIComponent(s))); // #50
900
- };
901
- downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
902
- uri + base64(template), this.getFilename() + '.xls');
903
- };
904
- /**
905
- * Export-data module required. View the data in a table below the chart.
906
- *
907
- * @function Highcharts.Chart#viewData
908
- *
909
- * @emits Highcharts.Chart#event:afterViewData
910
- */
911
- Chart.prototype.viewData = function () {
912
- this.toggleDataTable(true);
913
- };
914
598
  /**
915
599
  * Export-data module required. Hide the data table when visible.
916
600
  *
917
601
  * @function Highcharts.Chart#hideData
918
602
  */
919
- Chart.prototype.hideData = function () {
603
+ function chartHideData() {
920
604
  this.toggleDataTable(false);
921
- };
922
- Chart.prototype.toggleDataTable = function (show) {
605
+ }
606
+ /**
607
+ * @private
608
+ */
609
+ function chartToggleDataTable(show) {
923
610
  show = pick(show, !this.isDataTableVisible);
924
611
  // Create the div
925
612
  if (show && !this.dataTableDiv) {
@@ -945,8 +632,8 @@ Chart.prototype.toggleDataTable = function (show) {
945
632
  var exportDivElements = this.exportDivElements, options = this.options.exporting, menuItems = options &&
946
633
  options.buttons &&
947
634
  options.buttons.contextButton.menuItems, lang = this.options.lang;
948
- if (exportingOptions &&
949
- exportingOptions.menuItemDefinitions &&
635
+ if (options &&
636
+ options.menuItemDefinitions &&
950
637
  lang &&
951
638
  lang.viewData &&
952
639
  lang.hideData &&
@@ -957,41 +644,214 @@ Chart.prototype.toggleDataTable = function (show) {
957
644
  AST.setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
958
645
  }
959
646
  }
960
- };
961
- // Add "Download CSV" to the exporting menu.
962
- var exportingOptions = getOptions().exporting;
963
- if (exportingOptions) {
964
- extend(exportingOptions.menuItemDefinitions, {
965
- downloadCSV: {
966
- textKey: 'downloadCSV',
967
- onclick: function () {
968
- this.downloadCSV();
969
- }
970
- },
971
- downloadXLS: {
972
- textKey: 'downloadXLS',
973
- onclick: function () {
974
- this.downloadXLS();
975
- }
976
- },
977
- viewData: {
978
- textKey: 'viewData',
979
- onclick: function () {
980
- this.toggleDataTable();
647
+ }
648
+ /**
649
+ * Export-data module required. View the data in a table below the chart.
650
+ *
651
+ * @function Highcharts.Chart#viewData
652
+ *
653
+ * @emits Highcharts.Chart#event:afterViewData
654
+ */
655
+ function chartViewData() {
656
+ this.toggleDataTable(true);
657
+ }
658
+ /**
659
+ * @private
660
+ */
661
+ function compose(ChartClass) {
662
+ if (composedClasses.indexOf(ChartClass) === -1) {
663
+ composedClasses.push(ChartClass);
664
+ // Add an event listener to handle the showTable option
665
+ addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
666
+ addEvent(ChartClass, 'render', onChartRenderer);
667
+ var chartProto = ChartClass.prototype;
668
+ chartProto.downloadCSV = chartDownloadCSV;
669
+ chartProto.downloadXLS = chartDownloadXLS;
670
+ chartProto.getCSV = chartGetCSV;
671
+ chartProto.getDataRows = chartGetDataRows;
672
+ chartProto.getTable = chartGetTable;
673
+ chartProto.getTableAST = chartGetTableAST;
674
+ chartProto.hideData = chartHideData;
675
+ chartProto.toggleDataTable = chartToggleDataTable;
676
+ chartProto.viewData = chartViewData;
677
+ }
678
+ if (composedClasses.indexOf(setOptions) === -1) {
679
+ composedClasses.push(setOptions);
680
+ var exportingOptions = getOptions().exporting;
681
+ // Add "Download CSV" to the exporting menu.
682
+ // @todo consider move to defaults
683
+ if (exportingOptions) {
684
+ extend(exportingOptions.menuItemDefinitions, {
685
+ downloadCSV: {
686
+ textKey: 'downloadCSV',
687
+ onclick: function () {
688
+ this.downloadCSV();
689
+ }
690
+ },
691
+ downloadXLS: {
692
+ textKey: 'downloadXLS',
693
+ onclick: function () {
694
+ this.downloadXLS();
695
+ }
696
+ },
697
+ viewData: {
698
+ textKey: 'viewData',
699
+ onclick: function () {
700
+ this.toggleDataTable();
701
+ }
702
+ }
703
+ });
704
+ if (exportingOptions.buttons &&
705
+ exportingOptions.buttons.contextButton.menuItems) {
706
+ exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
981
707
  }
982
708
  }
983
- });
984
- if (exportingOptions.buttons) {
985
- exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
709
+ setOptions(ExportDataDefaults);
710
+ }
711
+ if (AreaRangeSeries && composedClasses.indexOf(AreaRangeSeries) === -1) {
712
+ composedClasses.push(AreaRangeSeries);
713
+ AreaRangeSeries.prototype.keyToAxis = {
714
+ low: 'y',
715
+ high: 'y'
716
+ };
717
+ }
718
+ if (GanttSeries && composedClasses.indexOf(GanttSeries) === -1) {
719
+ composedClasses.push(GanttSeries);
720
+ GanttSeries.prototype.keyToAxis = {
721
+ start: 'x',
722
+ end: 'x'
723
+ };
724
+ }
725
+ if (MapSeries && composedClasses.indexOf(MapSeries) === -1) {
726
+ composedClasses.push(MapSeries);
727
+ MapSeries.prototype.exportKey = 'name';
728
+ }
729
+ if (MapBubbleSeries && composedClasses.indexOf(MapBubbleSeries) === -1) {
730
+ composedClasses.push(MapBubbleSeries);
731
+ MapBubbleSeries.prototype.exportKey = 'name';
732
+ }
733
+ if (TreemapSeries && composedClasses.indexOf(TreemapSeries) === -1) {
734
+ composedClasses.push(TreemapSeries);
735
+ TreemapSeries.prototype.exportKey = 'name';
986
736
  }
987
737
  }
988
- // Series specific
989
- if (seriesTypes.map) {
990
- seriesTypes.map.prototype.exportKey = 'name';
738
+ /**
739
+ * Get a blob object from content, if blob is supported
740
+ *
741
+ * @private
742
+ * @param {string} content
743
+ * The content to create the blob from.
744
+ * @param {string} type
745
+ * The type of the content.
746
+ * @return {string|undefined}
747
+ * The blob object, or undefined if not supported.
748
+ */
749
+ function getBlobFromContent(content, type) {
750
+ var nav = win.navigator, webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
751
+ nav.userAgent.indexOf('Chrome') < 0), domurl = win.URL || win.webkitURL || win;
752
+ try {
753
+ // MS specific
754
+ if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
755
+ var blob = new win.MSBlobBuilder();
756
+ blob.append(content);
757
+ return blob.getBlob('image/svg+xml');
758
+ }
759
+ // Safari requires data URI since it doesn't allow navigation to blob
760
+ // URLs.
761
+ if (!webKit) {
762
+ return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
763
+ { type: type }));
764
+ }
765
+ }
766
+ catch (e) {
767
+ // Ignore
768
+ }
991
769
  }
992
- if (seriesTypes.mapbubble) {
993
- seriesTypes.mapbubble.prototype.exportKey = 'name';
770
+ /**
771
+ * @private
772
+ */
773
+ function onChartAfterViewData() {
774
+ var chart = this, dataTableDiv = chart.dataTableDiv, row = document.querySelectorAll('thead')[0].querySelectorAll('tr')[0], getCellValue = function (tr, index) {
775
+ return tr.children[index].textContent;
776
+ }, comparer = function (index, ascending) {
777
+ return function (a, b) {
778
+ var sort = function (v1, v2) { return (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
779
+ v1 - v2 :
780
+ v1.toString().localeCompare(v2)); };
781
+ return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
782
+ };
783
+ };
784
+ if (dataTableDiv) {
785
+ row.childNodes.forEach(function (th) {
786
+ var table = th.closest('table');
787
+ th.addEventListener('click', function () {
788
+ var rows = __spreadArray([], dataTableDiv.querySelectorAll('tr:not(thead tr)'), true), headers = __spreadArray([], th.parentNode.children, true);
789
+ rows.sort(comparer(headers.indexOf(th), chart.ascendingOrderInTable =
790
+ !chart.ascendingOrderInTable)).forEach(function (tr) {
791
+ table.appendChild(tr);
792
+ });
793
+ headers.forEach(function (th) {
794
+ ['highcharts-sort-ascending', 'highcharts-sort-descending']
795
+ .forEach(function (className) {
796
+ if (th.classList.contains(className)) {
797
+ th.classList.remove(className);
798
+ }
799
+ });
800
+ });
801
+ th.classList.add(chart.ascendingOrderInTable ?
802
+ 'highcharts-sort-ascending' :
803
+ 'highcharts-sort-descending');
804
+ });
805
+ });
806
+ }
994
807
  }
995
- if (seriesTypes.treemap) {
996
- seriesTypes.treemap.prototype.exportKey = 'name';
808
+ /**
809
+ * Handle the showTable option
810
+ * @private
811
+ */
812
+ function onChartRenderer() {
813
+ if (this.options &&
814
+ this.options.exporting &&
815
+ this.options.exporting.showTable &&
816
+ !this.options.chart.forExport) {
817
+ this.viewData();
818
+ }
997
819
  }
820
+ /* *
821
+ *
822
+ * Default Export
823
+ *
824
+ * */
825
+ var ExportData = {
826
+ compose: compose
827
+ };
828
+ export default ExportData;
829
+ /* *
830
+ *
831
+ * API Declarations
832
+ *
833
+ * */
834
+ /**
835
+ * Function callback to execute while data rows are processed for exporting.
836
+ * This allows the modification of data rows before processed into the final
837
+ * format.
838
+ *
839
+ * @callback Highcharts.ExportDataCallbackFunction
840
+ * @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
841
+ *
842
+ * @param {Highcharts.Chart} this
843
+ * Chart context where the event occured.
844
+ *
845
+ * @param {Highcharts.ExportDataEventObject} event
846
+ * Event object with data rows that can be modified.
847
+ */
848
+ /**
849
+ * Contains information about the export data event.
850
+ *
851
+ * @interface Highcharts.ExportDataEventObject
852
+ */ /**
853
+ * Contains the data rows for the current export task and can be modified.
854
+ * @name Highcharts.ExportDataEventObject#dataRows
855
+ * @type {Array<Array<string>>}
856
+ */
857
+ (''); // keeps doclets above in JS file