highcharts 10.2.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 (763) 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/Accessibility.js +6 -0
  7. package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
  8. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
  9. package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
  10. package/es-modules/Core/Axis/Axis.js +3 -0
  11. package/es-modules/Core/Axis/Axis3D.js +1 -1
  12. package/es-modules/Core/Axis/AxisDefaults.js +1 -1
  13. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  14. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
  15. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  16. package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
  17. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  18. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  19. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  20. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  21. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  22. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  23. package/es-modules/Core/Axis/ZAxis.js +73 -70
  24. package/es-modules/Core/Chart/Chart.js +16 -2
  25. package/es-modules/Core/Chart/Chart3D.js +2 -2
  26. package/es-modules/Core/Chart/ChartDefaults.js +151 -2
  27. package/es-modules/Core/Chart/StockChart.js +5 -3
  28. package/es-modules/Core/DefaultOptions.js +2 -1
  29. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  30. package/es-modules/Core/Globals.js +2 -1
  31. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  32. package/es-modules/Core/Navigator.js +24 -7
  33. package/es-modules/Core/Pointer.js +7 -9
  34. package/es-modules/Core/Renderer/HTML/AST.js +4 -1
  35. package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
  36. package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
  37. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
  38. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  39. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  40. package/es-modules/Core/Scrollbar.js +3 -1
  41. package/es-modules/Core/Series/DataLabel.js +8 -6
  42. package/es-modules/Core/Series/Point.js +2 -2
  43. package/es-modules/Core/Series/Series.js +36 -31
  44. package/es-modules/Core/Series/Series3D.js +1 -1
  45. package/es-modules/Core/Series/SeriesDefaults.js +8 -3
  46. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  47. package/es-modules/Core/Tooltip.js +14 -3
  48. package/es-modules/Core/Utilities.js +1 -3
  49. package/es-modules/Data/DataConverter.js +5 -0
  50. package/es-modules/Data/DataPromise.js +1 -1
  51. package/es-modules/Data/DataSeriesComposition.js +288 -0
  52. package/es-modules/Data/DataSeriesConverter.js +1 -1
  53. package/es-modules/Data/DataTable.js +2 -2
  54. package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
  55. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  56. package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
  57. package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
  58. package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
  59. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
  60. package/es-modules/Data/Modifiers/SortModifier.js +1 -1
  61. package/es-modules/Data/Parsers/DataParser.js +1 -1
  62. package/es-modules/Data/Stores/DataStore.js +1 -1
  63. package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
  64. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  65. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  66. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  67. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  68. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  69. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  70. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
  71. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  72. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  73. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  74. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  75. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  76. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  77. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
  78. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  79. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  80. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  81. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  82. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  83. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  84. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  85. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
  86. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
  87. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
  88. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
  89. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
  90. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
  91. package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
  92. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
  93. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
  94. package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
  95. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
  96. package/es-modules/Extensions/Boost/Boost.js +320 -15
  97. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  98. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  99. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  100. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  101. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  102. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  103. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  104. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  105. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  106. package/es-modules/Extensions/BoostCanvas.js +62 -46
  107. package/es-modules/Extensions/Breadcrumbs.js +4 -0
  108. package/es-modules/Extensions/DataGrouping.js +65 -27
  109. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  110. package/es-modules/Extensions/DraggablePoints.js +4 -3
  111. package/es-modules/Extensions/Drilldown.js +7 -8
  112. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
  113. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  114. package/es-modules/Extensions/Exporting/Exporting.js +5 -1
  115. package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
  116. package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
  117. package/es-modules/Extensions/MarkerClusters.js +2 -0
  118. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  119. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  120. package/es-modules/Extensions/ParallelCoordinates.js +11 -7
  121. package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
  122. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
  123. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  124. package/es-modules/Maps/MapPointer.js +1 -1
  125. package/es-modules/Maps/MapView.js +2 -1
  126. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  127. package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
  128. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  129. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  130. package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
  131. package/es-modules/Series/Column/ColumnSeries.js +2 -0
  132. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  133. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
  134. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  135. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
  136. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
  137. package/es-modules/Series/DragNodesComposition.js +166 -0
  138. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
  139. package/es-modules/Series/Gantt/GanttSeries.js +1 -1
  140. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  141. package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
  142. package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
  143. package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
  144. package/es-modules/Series/Map/MapSeries.js +6 -1
  145. package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
  146. package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
  147. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  148. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  149. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  150. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  151. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  152. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  153. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  154. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  155. package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
  156. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  157. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
  158. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
  159. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
  160. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  161. package/es-modules/Series/Pie/PieSeries.js +3 -1
  162. package/es-modules/Series/PolarComposition.js +12 -12
  163. package/es-modules/Series/Sankey/SankeySeries.js +13 -1
  164. package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
  165. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
  166. package/es-modules/Series/SeriesOnPointComposition.js +5 -1
  167. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
  168. package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
  169. package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
  170. package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
  171. package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
  172. package/es-modules/Series/Vector/VectorSeries.js +2 -4
  173. package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
  174. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  175. package/es-modules/Series/XRange/XRangePoint.js +54 -45
  176. package/es-modules/Series/XRange/XRangeSeries.js +121 -273
  177. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  178. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
  179. package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
  180. package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
  181. package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
  182. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
  183. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
  184. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
  185. package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
  186. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
  187. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
  188. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
  189. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
  190. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
  191. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
  192. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
  193. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
  194. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
  195. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
  196. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
  197. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
  198. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
  199. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
  200. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
  201. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
  202. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
  203. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
  204. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
  205. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
  206. package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
  207. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
  208. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
  209. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
  210. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
  211. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
  212. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
  213. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
  214. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  215. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
  216. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
  217. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
  218. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
  219. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
  220. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
  221. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
  222. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
  223. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
  224. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
  225. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
  226. package/es-modules/Stock/StockToolbar.js +568 -0
  227. package/es-modules/Stock/StockTools.js +256 -0
  228. package/es-modules/Stock/StockToolsBindings.js +114 -629
  229. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  230. package/es-modules/Stock/StockToolsGui.js +150 -1771
  231. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  232. package/es-modules/masters/highcharts-3d.src.js +5 -4
  233. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  234. package/es-modules/masters/highcharts-more.src.js +4 -3
  235. package/es-modules/masters/highcharts.src.js +5 -2
  236. package/es-modules/masters/highmaps.src.js +1 -1
  237. package/es-modules/masters/highstock.src.js +1 -1
  238. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  239. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  240. package/es-modules/masters/indicators/ao.src.js +1 -1
  241. package/es-modules/masters/indicators/apo.src.js +1 -1
  242. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  243. package/es-modules/masters/indicators/aroon.src.js +1 -1
  244. package/es-modules/masters/indicators/atr.src.js +1 -1
  245. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  246. package/es-modules/masters/indicators/cci.src.js +1 -1
  247. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  248. package/es-modules/masters/indicators/cmf.src.js +1 -1
  249. package/es-modules/masters/indicators/cmo.src.js +1 -1
  250. package/es-modules/masters/indicators/dema.src.js +1 -1
  251. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  252. package/es-modules/masters/indicators/dmi.src.js +1 -1
  253. package/es-modules/masters/indicators/dpo.src.js +1 -1
  254. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  255. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  256. package/es-modules/masters/indicators/indicators.src.js +1 -1
  257. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  258. package/es-modules/masters/indicators/klinger.src.js +1 -1
  259. package/es-modules/masters/indicators/macd.src.js +1 -1
  260. package/es-modules/masters/indicators/mfi.src.js +1 -1
  261. package/es-modules/masters/indicators/momentum.src.js +1 -1
  262. package/es-modules/masters/indicators/natr.src.js +1 -1
  263. package/es-modules/masters/indicators/obv.src.js +1 -1
  264. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  265. package/es-modules/masters/indicators/ppo.src.js +1 -1
  266. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  267. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  268. package/es-modules/masters/indicators/psar.src.js +1 -1
  269. package/es-modules/masters/indicators/regressions.src.js +5 -5
  270. package/es-modules/masters/indicators/roc.src.js +1 -1
  271. package/es-modules/masters/indicators/rsi.src.js +1 -1
  272. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  273. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  274. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  275. package/es-modules/masters/indicators/tema.src.js +1 -1
  276. package/es-modules/masters/indicators/trendline.src.js +1 -1
  277. package/es-modules/masters/indicators/trix.src.js +1 -1
  278. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  279. package/es-modules/masters/indicators/vwap.src.js +1 -1
  280. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  281. package/es-modules/masters/indicators/wma.src.js +1 -1
  282. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  283. package/es-modules/masters/modules/accessibility.src.js +1 -1
  284. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  285. package/es-modules/masters/modules/annotations.src.js +6 -4
  286. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  287. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  288. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  289. package/es-modules/masters/modules/boost.src.js +6 -2
  290. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  291. package/es-modules/masters/modules/bullet.src.js +1 -1
  292. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  293. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  294. package/es-modules/masters/modules/cylinder.src.js +1 -1
  295. package/es-modules/masters/modules/data.src.js +1 -1
  296. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  297. package/es-modules/masters/modules/debugger.src.js +5 -3
  298. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  299. package/es-modules/masters/modules/dotplot.src.js +1 -1
  300. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  301. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  302. package/es-modules/masters/modules/drilldown.src.js +1 -1
  303. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  304. package/es-modules/masters/modules/export-data.src.js +5 -2
  305. package/es-modules/masters/modules/exporting.src.js +1 -2
  306. package/es-modules/masters/modules/full-screen.src.js +6 -2
  307. package/es-modules/masters/modules/funnel.src.js +1 -1
  308. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  309. package/es-modules/masters/modules/gantt.src.js +3 -2
  310. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  311. package/es-modules/masters/modules/heatmap.src.js +1 -1
  312. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  313. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  314. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  315. package/es-modules/masters/modules/item-series.src.js +1 -1
  316. package/es-modules/masters/modules/lollipop.src.js +1 -1
  317. package/es-modules/masters/modules/map.src.js +2 -2
  318. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  319. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  320. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  321. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  322. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  323. package/es-modules/masters/modules/oldie.src.js +1 -1
  324. package/es-modules/masters/modules/organization.src.js +1 -1
  325. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  326. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  327. package/es-modules/masters/modules/pareto.src.js +1 -1
  328. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  329. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  330. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  331. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  332. package/es-modules/masters/modules/sankey.src.js +1 -1
  333. package/es-modules/masters/modules/series-label.src.js +1 -1
  334. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  335. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  336. package/es-modules/masters/modules/sonification.src.js +1 -1
  337. package/es-modules/masters/modules/static-scale.src.js +1 -1
  338. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  339. package/es-modules/masters/modules/stock.src.js +1 -1
  340. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  341. package/es-modules/masters/modules/sunburst.src.js +1 -1
  342. package/es-modules/masters/modules/tilemap.src.js +1 -1
  343. package/es-modules/masters/modules/timeline.src.js +1 -1
  344. package/es-modules/masters/modules/treegrid.src.js +2 -2
  345. package/es-modules/masters/modules/treemap.src.js +1 -1
  346. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  347. package/es-modules/masters/modules/variwide.src.js +1 -1
  348. package/es-modules/masters/modules/vector.src.js +1 -1
  349. package/es-modules/masters/modules/venn.src.js +1 -1
  350. package/es-modules/masters/modules/windbarb.src.js +1 -1
  351. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  352. package/es-modules/masters/modules/xrange.src.js +5 -2
  353. package/es-modules/masters/themes/avocado.src.js +1 -1
  354. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  355. package/es-modules/masters/themes/brand-light.src.js +1 -1
  356. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  357. package/es-modules/masters/themes/dark-green.src.js +1 -1
  358. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  359. package/es-modules/masters/themes/gray.src.js +1 -1
  360. package/es-modules/masters/themes/grid-light.src.js +1 -1
  361. package/es-modules/masters/themes/grid.src.js +1 -1
  362. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  363. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  364. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  365. package/es-modules/masters/themes/skies.src.js +1 -1
  366. package/es-modules/masters/themes/sunset.src.js +1 -1
  367. package/highcharts-3d.js +98 -99
  368. package/highcharts-3d.js.map +1 -1
  369. package/highcharts-3d.src.js +232 -211
  370. package/highcharts-gantt.js +808 -809
  371. package/highcharts-gantt.js.map +1 -1
  372. package/highcharts-gantt.src.js +2308 -2136
  373. package/highcharts-more.d.ts +5 -8
  374. package/highcharts-more.js +201 -194
  375. package/highcharts-more.js.map +1 -1
  376. package/highcharts-more.src.d.ts +5 -8
  377. package/highcharts-more.src.js +3671 -3275
  378. package/highcharts.d.ts +1400 -885
  379. package/highcharts.js +593 -595
  380. package/highcharts.js.map +1 -1
  381. package/highcharts.src.d.ts +1400 -885
  382. package/highcharts.src.js +847 -716
  383. package/highmaps.js +762 -763
  384. package/highmaps.js.map +1 -1
  385. package/highmaps.src.js +1288 -1129
  386. package/highstock.js +796 -798
  387. package/highstock.js.map +1 -1
  388. package/highstock.src.js +953 -762
  389. package/indicators/acceleration-bands.js +1 -1
  390. package/indicators/acceleration-bands.js.map +1 -1
  391. package/indicators/acceleration-bands.src.js +11 -3
  392. package/indicators/accumulation-distribution.js +1 -1
  393. package/indicators/accumulation-distribution.js.map +1 -1
  394. package/indicators/accumulation-distribution.src.js +6 -1
  395. package/indicators/ao.js +6 -6
  396. package/indicators/ao.js.map +1 -1
  397. package/indicators/ao.src.js +23 -14
  398. package/indicators/apo.js +1 -1
  399. package/indicators/apo.js.map +1 -1
  400. package/indicators/apo.src.js +6 -1
  401. package/indicators/aroon-oscillator.js +10 -10
  402. package/indicators/aroon-oscillator.js.map +1 -1
  403. package/indicators/aroon-oscillator.src.js +7 -3
  404. package/indicators/aroon.js +1 -1
  405. package/indicators/aroon.js.map +1 -1
  406. package/indicators/aroon.src.js +16 -3
  407. package/indicators/atr.js +1 -1
  408. package/indicators/atr.js.map +1 -1
  409. package/indicators/atr.src.js +17 -4
  410. package/indicators/bollinger-bands.js +1 -1
  411. package/indicators/bollinger-bands.js.map +1 -1
  412. package/indicators/bollinger-bands.src.js +6 -2
  413. package/indicators/cci.js +1 -1
  414. package/indicators/cci.js.map +1 -1
  415. package/indicators/cci.src.js +17 -4
  416. package/indicators/chaikin.js +8 -8
  417. package/indicators/chaikin.js.map +1 -1
  418. package/indicators/chaikin.src.js +13 -5
  419. package/indicators/cmf.js +1 -1
  420. package/indicators/cmf.js.map +1 -1
  421. package/indicators/cmf.src.js +21 -1
  422. package/indicators/cmo.js +1 -1
  423. package/indicators/cmo.js.map +1 -1
  424. package/indicators/cmo.src.js +16 -2
  425. package/indicators/dema.js +1 -1
  426. package/indicators/dema.js.map +1 -1
  427. package/indicators/dema.src.js +26 -1
  428. package/indicators/disparity-index.js +1 -1
  429. package/indicators/disparity-index.src.js +1 -1
  430. package/indicators/dmi.js +1 -1
  431. package/indicators/dmi.js.map +1 -1
  432. package/indicators/dmi.src.js +6 -1
  433. package/indicators/dpo.js +1 -1
  434. package/indicators/dpo.js.map +1 -1
  435. package/indicators/dpo.src.js +20 -9
  436. package/indicators/ichimoku-kinko-hyo.js +1 -1
  437. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  438. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  439. package/indicators/indicators-all.js +199 -199
  440. package/indicators/indicators-all.js.map +1 -1
  441. package/indicators/indicators-all.src.js +754 -162
  442. package/indicators/indicators.js +1 -1
  443. package/indicators/indicators.js.map +1 -1
  444. package/indicators/indicators.src.js +12 -2
  445. package/indicators/keltner-channels.js +1 -1
  446. package/indicators/keltner-channels.js.map +1 -1
  447. package/indicators/keltner-channels.src.js +26 -1
  448. package/indicators/klinger.js +12 -12
  449. package/indicators/klinger.js.map +1 -1
  450. package/indicators/klinger.src.js +13 -4
  451. package/indicators/macd.js +1 -1
  452. package/indicators/macd.js.map +1 -1
  453. package/indicators/macd.src.js +22 -13
  454. package/indicators/mfi.js +1 -1
  455. package/indicators/mfi.js.map +1 -1
  456. package/indicators/mfi.src.js +24 -11
  457. package/indicators/momentum.js +1 -1
  458. package/indicators/momentum.js.map +1 -1
  459. package/indicators/momentum.src.js +31 -3
  460. package/indicators/natr.js +1 -1
  461. package/indicators/natr.js.map +1 -1
  462. package/indicators/natr.src.js +17 -3
  463. package/indicators/obv.js +1 -1
  464. package/indicators/obv.js.map +1 -1
  465. package/indicators/obv.src.js +11 -1
  466. package/indicators/pivot-points.js +1 -1
  467. package/indicators/pivot-points.js.map +1 -1
  468. package/indicators/pivot-points.src.js +32 -19
  469. package/indicators/ppo.js +1 -1
  470. package/indicators/ppo.js.map +1 -1
  471. package/indicators/ppo.src.js +15 -5
  472. package/indicators/price-channel.js +1 -1
  473. package/indicators/price-channel.js.map +1 -1
  474. package/indicators/price-channel.src.js +14 -9
  475. package/indicators/price-envelopes.js +1 -1
  476. package/indicators/price-envelopes.js.map +1 -1
  477. package/indicators/price-envelopes.src.js +26 -1
  478. package/indicators/psar.js +1 -1
  479. package/indicators/psar.js.map +1 -1
  480. package/indicators/psar.src.js +17 -4
  481. package/indicators/regressions.js +12 -11
  482. package/indicators/regressions.js.map +1 -1
  483. package/indicators/regressions.src.js +50 -15
  484. package/indicators/roc.js +1 -1
  485. package/indicators/roc.js.map +1 -1
  486. package/indicators/roc.src.js +16 -3
  487. package/indicators/rsi.js +1 -1
  488. package/indicators/rsi.js.map +1 -1
  489. package/indicators/rsi.src.js +21 -3
  490. package/indicators/slow-stochastic.js +1 -1
  491. package/indicators/slow-stochastic.js.map +1 -1
  492. package/indicators/slow-stochastic.src.js +26 -1
  493. package/indicators/stochastic.js +1 -1
  494. package/indicators/stochastic.js.map +1 -1
  495. package/indicators/stochastic.src.js +16 -1
  496. package/indicators/supertrend.js +7 -7
  497. package/indicators/supertrend.js.map +1 -1
  498. package/indicators/supertrend.src.js +18 -6
  499. package/indicators/tema.js +1 -1
  500. package/indicators/tema.src.js +1 -1
  501. package/indicators/trendline.js +1 -1
  502. package/indicators/trendline.js.map +1 -1
  503. package/indicators/trendline.src.js +15 -5
  504. package/indicators/trix.js +1 -1
  505. package/indicators/trix.js.map +1 -1
  506. package/indicators/trix.src.js +26 -1
  507. package/indicators/volume-by-price.js +17 -17
  508. package/indicators/volume-by-price.js.map +1 -1
  509. package/indicators/volume-by-price.src.js +38 -10
  510. package/indicators/vwap.js +1 -1
  511. package/indicators/vwap.js.map +1 -1
  512. package/indicators/vwap.src.js +12 -2
  513. package/indicators/williams-r.js +1 -1
  514. package/indicators/williams-r.js.map +1 -1
  515. package/indicators/williams-r.src.js +11 -1
  516. package/indicators/wma.js +1 -1
  517. package/indicators/wma.js.map +1 -1
  518. package/indicators/wma.src.js +31 -3
  519. package/indicators/zigzag.js +1 -1
  520. package/indicators/zigzag.js.map +1 -1
  521. package/indicators/zigzag.src.js +12 -2
  522. package/modules/accessibility.js +183 -182
  523. package/modules/accessibility.js.map +1 -1
  524. package/modules/accessibility.src.js +559 -554
  525. package/modules/annotations-advanced.d.ts +1 -1
  526. package/modules/annotations-advanced.js +193 -192
  527. package/modules/annotations-advanced.js.map +1 -1
  528. package/modules/annotations-advanced.src.d.ts +1 -1
  529. package/modules/annotations-advanced.src.js +9263 -8654
  530. package/modules/annotations.d.ts +1 -1
  531. package/modules/annotations.js +128 -126
  532. package/modules/annotations.js.map +1 -1
  533. package/modules/annotations.src.d.ts +1 -1
  534. package/modules/annotations.src.js +6699 -6063
  535. package/modules/arc-diagram.js +1 -1
  536. package/modules/arc-diagram.src.js +1 -1
  537. package/modules/arrow-symbols.js +1 -1
  538. package/modules/arrow-symbols.src.js +1 -1
  539. package/modules/boost-canvas.d.ts +19 -0
  540. package/modules/boost-canvas.js +81 -16
  541. package/modules/boost-canvas.js.map +1 -1
  542. package/modules/boost-canvas.src.d.ts +19 -0
  543. package/modules/boost-canvas.src.js +3334 -50
  544. package/modules/boost.d.ts +8 -26
  545. package/modules/boost.js +84 -77
  546. package/modules/boost.js.map +1 -1
  547. package/modules/boost.src.d.ts +8 -26
  548. package/modules/boost.src.js +2423 -1888
  549. package/modules/broken-axis.js +2 -2
  550. package/modules/broken-axis.js.map +1 -1
  551. package/modules/broken-axis.src.js +2 -2
  552. package/modules/bullet.js +1 -1
  553. package/modules/bullet.src.js +1 -1
  554. package/modules/coloraxis.js +1 -1
  555. package/modules/coloraxis.js.map +1 -1
  556. package/modules/coloraxis.src.js +5 -1
  557. package/modules/current-date-indicator.js +1 -1
  558. package/modules/current-date-indicator.src.js +1 -1
  559. package/modules/cylinder.js +9 -9
  560. package/modules/cylinder.js.map +1 -1
  561. package/modules/cylinder.src.js +2 -2
  562. package/modules/data.js +1 -1
  563. package/modules/data.src.js +1 -1
  564. package/modules/datagrouping.d.ts +22 -0
  565. package/modules/datagrouping.js +4 -4
  566. package/modules/datagrouping.js.map +1 -1
  567. package/modules/datagrouping.src.d.ts +22 -0
  568. package/modules/datagrouping.src.js +66 -28
  569. package/modules/debugger.js +6 -5
  570. package/modules/debugger.js.map +1 -1
  571. package/modules/debugger.src.js +81 -40
  572. package/modules/dependency-wheel.js +12 -12
  573. package/modules/dependency-wheel.js.map +1 -1
  574. package/modules/dependency-wheel.src.js +41 -14
  575. package/modules/dotplot.js +1 -1
  576. package/modules/dotplot.src.js +1 -1
  577. package/modules/drag-panes.js +1 -1
  578. package/modules/drag-panes.src.js +1 -1
  579. package/modules/draggable-points.js +5 -5
  580. package/modules/draggable-points.js.map +1 -1
  581. package/modules/draggable-points.src.js +5 -4
  582. package/modules/drilldown.d.ts +0 -10
  583. package/modules/drilldown.js +29 -29
  584. package/modules/drilldown.js.map +1 -1
  585. package/modules/drilldown.src.d.ts +0 -10
  586. package/modules/drilldown.src.js +12 -9
  587. package/modules/dumbbell.js +1 -1
  588. package/modules/dumbbell.src.js +1 -1
  589. package/modules/export-data.js +25 -24
  590. package/modules/export-data.js.map +1 -1
  591. package/modules/export-data.src.js +607 -499
  592. package/modules/exporting.js +38 -38
  593. package/modules/exporting.js.map +1 -1
  594. package/modules/exporting.src.js +559 -507
  595. package/modules/full-screen.js +8 -8
  596. package/modules/full-screen.js.map +1 -1
  597. package/modules/full-screen.src.js +76 -26
  598. package/modules/funnel.js +1 -1
  599. package/modules/funnel.src.js +1 -1
  600. package/modules/funnel3d.js +2 -2
  601. package/modules/funnel3d.js.map +1 -1
  602. package/modules/funnel3d.src.js +2 -2
  603. package/modules/gantt.js +217 -216
  604. package/modules/gantt.js.map +1 -1
  605. package/modules/gantt.src.js +1481 -1440
  606. package/modules/grid-axis.js +1 -1
  607. package/modules/grid-axis.src.js +1 -1
  608. package/modules/heatmap.js +1 -1
  609. package/modules/heatmap.js.map +1 -1
  610. package/modules/heatmap.src.js +10 -2
  611. package/modules/heikinashi.js +1 -1
  612. package/modules/heikinashi.src.js +1 -1
  613. package/modules/histogram-bellcurve.js +1 -1
  614. package/modules/histogram-bellcurve.src.js +1 -1
  615. package/modules/hollowcandlestick.js +1 -1
  616. package/modules/hollowcandlestick.src.js +1 -1
  617. package/modules/item-series.js +1 -1
  618. package/modules/item-series.src.js +1 -1
  619. package/modules/lollipop.js +6 -6
  620. package/modules/lollipop.js.map +1 -1
  621. package/modules/lollipop.src.js +37 -22
  622. package/modules/map.d.ts +3 -3
  623. package/modules/map.js +171 -171
  624. package/modules/map.js.map +1 -1
  625. package/modules/map.src.d.ts +3 -3
  626. package/modules/map.src.js +442 -414
  627. package/modules/marker-clusters.js +1 -1
  628. package/modules/marker-clusters.js.map +1 -1
  629. package/modules/marker-clusters.src.js +3 -1
  630. package/modules/networkgraph.js +55 -50
  631. package/modules/networkgraph.js.map +1 -1
  632. package/modules/networkgraph.src.js +2259 -1938
  633. package/modules/no-data-to-display.js +1 -1
  634. package/modules/no-data-to-display.src.js +1 -1
  635. package/modules/offline-exporting.js +2 -2
  636. package/modules/offline-exporting.src.js +2 -2
  637. package/modules/oldie-polyfills.js +1 -1
  638. package/modules/oldie-polyfills.src.js +1 -1
  639. package/modules/oldie.js +2 -2
  640. package/modules/oldie.src.js +2 -2
  641. package/modules/organization.js +15 -15
  642. package/modules/organization.js.map +1 -1
  643. package/modules/organization.src.js +10 -2
  644. package/modules/overlapping-datalabels.js +1 -1
  645. package/modules/overlapping-datalabels.src.js +1 -1
  646. package/modules/parallel-coordinates.js +11 -11
  647. package/modules/parallel-coordinates.js.map +1 -1
  648. package/modules/parallel-coordinates.src.js +13 -8
  649. package/modules/pareto.js +1 -1
  650. package/modules/pareto.src.js +1 -1
  651. package/modules/pathfinder.js +1 -1
  652. package/modules/pathfinder.src.js +1 -1
  653. package/modules/pattern-fill.js +1 -1
  654. package/modules/pattern-fill.src.js +1 -1
  655. package/modules/price-indicator.js +1 -1
  656. package/modules/price-indicator.src.js +1 -1
  657. package/modules/pyramid3d.js +1 -1
  658. package/modules/pyramid3d.src.js +1 -1
  659. package/modules/sankey.js +1 -1
  660. package/modules/sankey.js.map +1 -1
  661. package/modules/sankey.src.js +14 -2
  662. package/modules/series-label.js +5 -5
  663. package/modules/series-label.js.map +1 -1
  664. package/modules/series-label.src.js +3 -3
  665. package/modules/series-on-point.js +1 -1
  666. package/modules/series-on-point.js.map +1 -1
  667. package/modules/series-on-point.src.js +6 -2
  668. package/modules/solid-gauge.js +1 -1
  669. package/modules/solid-gauge.src.js +2 -2
  670. package/modules/sonification.d.ts +2 -2
  671. package/modules/sonification.js +1 -1
  672. package/modules/sonification.src.d.ts +2 -2
  673. package/modules/sonification.src.js +2 -2
  674. package/modules/static-scale.js +1 -1
  675. package/modules/static-scale.src.js +1 -1
  676. package/modules/stock-tools.d.ts +1 -23
  677. package/modules/stock-tools.js +109 -179
  678. package/modules/stock-tools.js.map +1 -1
  679. package/modules/stock-tools.src.d.ts +1 -23
  680. package/modules/stock-tools.src.js +2605 -6335
  681. package/modules/stock.d.ts +8 -0
  682. package/modules/stock.js +105 -105
  683. package/modules/stock.js.map +1 -1
  684. package/modules/stock.src.d.ts +8 -0
  685. package/modules/stock.src.js +105 -45
  686. package/modules/streamgraph.js +1 -1
  687. package/modules/streamgraph.src.js +1 -1
  688. package/modules/sunburst.js +72 -72
  689. package/modules/sunburst.js.map +1 -1
  690. package/modules/sunburst.src.js +38 -12
  691. package/modules/tilemap.js +1 -1
  692. package/modules/tilemap.src.js +1 -1
  693. package/modules/timeline.js +1 -1
  694. package/modules/timeline.js.map +1 -1
  695. package/modules/timeline.src.js +3 -1
  696. package/modules/treegrid.js +57 -57
  697. package/modules/treegrid.js.map +1 -1
  698. package/modules/treegrid.src.js +1022 -1014
  699. package/modules/treemap.js +1 -1
  700. package/modules/treemap.js.map +1 -1
  701. package/modules/treemap.src.js +8 -4
  702. package/modules/variable-pie.js +1 -1
  703. package/modules/variable-pie.src.js +1 -1
  704. package/modules/variwide.js +1 -1
  705. package/modules/variwide.src.js +1 -1
  706. package/modules/vector.js +2 -2
  707. package/modules/vector.js.map +1 -1
  708. package/modules/vector.src.js +3 -5
  709. package/modules/venn.js +1 -1
  710. package/modules/venn.src.js +5 -5
  711. package/modules/windbarb.js +1 -1
  712. package/modules/windbarb.src.js +1 -1
  713. package/modules/wordcloud.js +1 -1
  714. package/modules/wordcloud.src.js +3 -3
  715. package/modules/xrange.js +17 -17
  716. package/modules/xrange.js.map +1 -1
  717. package/modules/xrange.src.js +411 -397
  718. package/package.json +1 -1
  719. package/themes/avocado.js +1 -1
  720. package/themes/avocado.src.js +1 -1
  721. package/themes/brand-dark.js +1 -1
  722. package/themes/brand-dark.src.js +1 -1
  723. package/themes/brand-light.js +1 -1
  724. package/themes/brand-light.src.js +1 -1
  725. package/themes/dark-blue.js +1 -1
  726. package/themes/dark-blue.src.js +1 -1
  727. package/themes/dark-green.js +1 -1
  728. package/themes/dark-green.src.js +1 -1
  729. package/themes/dark-unica.js +1 -1
  730. package/themes/dark-unica.src.js +1 -1
  731. package/themes/gray.js +1 -1
  732. package/themes/gray.src.js +1 -1
  733. package/themes/grid-light.js +1 -1
  734. package/themes/grid-light.src.js +1 -1
  735. package/themes/grid.js +1 -1
  736. package/themes/grid.src.js +1 -1
  737. package/themes/high-contrast-dark.js +1 -1
  738. package/themes/high-contrast-dark.src.js +1 -1
  739. package/themes/high-contrast-light.js +1 -1
  740. package/themes/high-contrast-light.src.js +1 -1
  741. package/themes/sand-signika.js +1 -1
  742. package/themes/sand-signika.src.js +1 -1
  743. package/themes/skies.js +1 -1
  744. package/themes/skies.src.js +1 -1
  745. package/themes/sunset.js +1 -1
  746. package/themes/sunset.src.js +1 -1
  747. package/es-modules/Core/Axis/StackingAxis.js +0 -215
  748. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  749. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  750. package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
  751. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  752. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  753. package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
  754. package/es-modules/Extensions/Boost/BoostInit.js +0 -324
  755. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  756. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  757. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  758. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  759. package/es-modules/Extensions/Stacking.js +0 -517
  760. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  761. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  762. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
  763. package/es-modules/Series/XRange/XRangeComposition.js +0 -49
@@ -22,351 +22,129 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
22
22
  }
23
23
  return to.concat(ar || Array.prototype.slice.call(from));
24
24
  };
25
- import Axis from '../Core/Axis/Axis.js';
26
- import Chart from '../Core/Chart/Chart.js';
27
- import AST from '../Core/Renderer/HTML/AST.js';
28
- import H from '../Core/Globals.js';
29
- var doc = H.doc, seriesTypes = H.seriesTypes, win = H.win;
30
- import D from '../Core/DefaultOptions.js';
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';
31
30
  var getOptions = D.getOptions, setOptions = D.setOptions;
32
- 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';
33
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
+ * */
34
48
  /**
35
- * Function callback to execute while data rows are processed for exporting.
36
- * This allows the modification of data rows before processed into the final
37
- * 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.
38
51
  *
39
- * @callback Highcharts.ExportDataCallbackFunction
40
- * @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
52
+ * See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
41
53
  *
42
- * @param {Highcharts.Chart} this
43
- * Chart context where the event occured.
54
+ * @function Highcharts.Chart#downloadCSV
44
55
  *
45
- * @param {Highcharts.ExportDataEventObject} event
46
- * Event object with data rows that can be modified.
56
+ * @requires modules/exporting
47
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
+ }
48
63
  /**
49
- * 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.
50
66
  *
51
- * @interface Highcharts.ExportDataEventObject
52
- */ /**
53
- * Contains the data rows for the current export task and can be modified.
54
- * @name Highcharts.ExportDataEventObject#dataRows
55
- * @type {Array<Array<string>>}
56
- */
57
- import DownloadURL from '../Extensions/DownloadURL.js';
58
- var downloadURL = DownloadURL.downloadURL;
59
- setOptions({
60
- /**
61
- * Callback that fires while exporting data. This allows the modification of
62
- * data rows before processed into the final format.
63
- *
64
- * @type {Highcharts.ExportDataCallbackFunction}
65
- * @context Highcharts.Chart
66
- * @requires modules/export-data
67
- * @apioption chart.events.exportData
68
- */
69
- /**
70
- * When set to `false` will prevent the series data from being included in
71
- * any form of data export.
72
- *
73
- * Since version 6.0.0 until 7.1.0 the option was existing undocumented
74
- * as `includeInCSVExport`.
75
- *
76
- * @type {boolean}
77
- * @since 7.1.0
78
- * @requires modules/export-data
79
- * @apioption plotOptions.series.includeInDataExport
80
- */
81
- /**
82
- * @optionparent exporting
83
- * @private
84
- */
85
- exporting: {
86
- /**
87
- * Caption for the data table. Same as chart title by default. Set to
88
- * `false` to disable.
89
- *
90
- * @sample highcharts/export-data/multilevel-table
91
- * Multiple table headers
92
- *
93
- * @type {boolean|string}
94
- * @since 6.0.4
95
- * @requires modules/export-data
96
- * @apioption exporting.tableCaption
97
- */
98
- /**
99
- * Options for exporting data to CSV or ExCel, or displaying the data
100
- * in a HTML table or a JavaScript structure.
101
- *
102
- * This module adds data export options to the export menu and provides
103
- * functions like `Chart.getCSV`, `Chart.getTable`, `Chart.getDataRows`
104
- * and `Chart.viewData`.
105
- *
106
- * The XLS converter is limited and only creates a HTML string that is
107
- * passed for download, which works but creates a warning before
108
- * opening. The workaround for this is to use a third party XLSX
109
- * converter, as demonstrated in the sample below.
110
- *
111
- * @sample highcharts/export-data/categorized/ Categorized data
112
- * @sample highcharts/export-data/stock-timeaxis/ Highcharts Stock time axis
113
- * @sample highcharts/export-data/xlsx/
114
- * Using a third party XLSX converter
115
- *
116
- * @since 6.0.0
117
- * @requires modules/export-data
118
- */
119
- csv: {
120
- /**
121
- *
122
- * Options for annotations in the export-data table.
123
- *
124
- * @since 8.2.0
125
- * @requires modules/export-data
126
- * @requires modules/annotations
127
- *
128
- *
129
- */
130
- annotations: {
131
- /**
132
- * The way to mark the separator for annotations
133
- * combined in one export-data table cell.
134
- *
135
- * @since 8.2.0
136
- * @requires modules/annotations
137
- */
138
- itemDelimiter: '; ',
139
- /**
140
- * When several labels are assigned to a specific point,
141
- * they will be displayed in one field in the table.
142
- *
143
- * @sample highcharts/export-data/join-annotations/
144
- * Concatenate point annotations with itemDelimiter set.
145
- *
146
- * @since 8.2.0
147
- * @requires modules/annotations
148
- */
149
- join: false
150
- },
151
- /**
152
- * Formatter callback for the column headers. Parameters are:
153
- * - `item` - The series or axis object)
154
- * - `key` - The point key, for example y or z
155
- * - `keyLength` - The amount of value keys for this item, for
156
- * example a range series has the keys `low` and `high` so the
157
- * key length is 2.
158
- *
159
- * If [useMultiLevelHeaders](#exporting.useMultiLevelHeaders) is
160
- * true, columnHeaderFormatter by default returns an object with
161
- * columnTitle and topLevelColumnTitle for each key. Columns with
162
- * the same topLevelColumnTitle have their titles merged into a
163
- * single cell with colspan for table/Excel export.
164
- *
165
- * If `useMultiLevelHeaders` is false, or for CSV export, it returns
166
- * the series name, followed by the key if there is more than one
167
- * key.
168
- *
169
- * For the axis it returns the axis title or "Category" or
170
- * "DateTime" by default.
171
- *
172
- * Return `false` to use Highcharts' proposed header.
173
- *
174
- * @sample highcharts/export-data/multilevel-table
175
- * Multiple table headers
176
- *
177
- * @type {Function|null}
178
- */
179
- columnHeaderFormatter: null,
180
- /**
181
- * Which date format to use for exported dates on a datetime X axis.
182
- * See `Highcharts.dateFormat`.
183
- */
184
- dateFormat: '%Y-%m-%d %H:%M:%S',
185
- /**
186
- * Which decimal point to use for exported CSV. Defaults to the same
187
- * as the browser locale, typically `.` (English) or `,` (German,
188
- * French etc).
189
- *
190
- * @type {string|null}
191
- * @since 6.0.4
192
- */
193
- decimalPoint: null,
194
- /**
195
- * The item delimiter in the exported data. Use `;` for direct
196
- * exporting to Excel. Defaults to a best guess based on the browser
197
- * locale. If the locale _decimal point_ is `,`, the `itemDelimiter`
198
- * defaults to `;`, otherwise the `itemDelimiter` defaults to `,`.
199
- *
200
- * @type {string|null}
201
- */
202
- itemDelimiter: null,
203
- /**
204
- * The line delimiter in the exported data, defaults to a newline.
205
- */
206
- lineDelimiter: '\n'
207
- },
208
- /**
209
- * Show a HTML table below the chart with the chart's current data.
210
- *
211
- * @sample highcharts/export-data/showtable/
212
- * Show the table
213
- * @sample highcharts/studies/exporting-table-html
214
- * Experiment with putting the table inside the subtitle to
215
- * allow exporting it.
216
- *
217
- * @since 6.0.0
218
- * @requires modules/export-data
219
- */
220
- showTable: false,
221
- /**
222
- * Use multi level headers in data table. If [csv.columnHeaderFormatter
223
- * ](#exporting.csv.columnHeaderFormatter) is defined, it has to return
224
- * objects in order for multi level headers to work.
225
- *
226
- * @sample highcharts/export-data/multilevel-table
227
- * Multiple table headers
228
- *
229
- * @since 6.0.4
230
- * @requires modules/export-data
231
- */
232
- useMultiLevelHeaders: true,
233
- /**
234
- * If using multi level table headers, use rowspans for headers that
235
- * have only one level.
236
- *
237
- * @sample highcharts/export-data/multilevel-table
238
- * Multiple table headers
239
- *
240
- * @since 6.0.4
241
- * @requires modules/export-data
242
- */
243
- useRowspanHeaders: true
244
- },
245
- /**
246
- * @optionparent lang
247
- *
248
- * @private
249
- */
250
- lang: {
251
- /**
252
- * The text for the menu item.
253
- *
254
- * @since 6.0.0
255
- * @requires modules/export-data
256
- */
257
- downloadCSV: 'Download CSV',
258
- /**
259
- * The text for the menu item.
260
- *
261
- * @since 6.0.0
262
- * @requires modules/export-data
263
- */
264
- downloadXLS: 'Download XLS',
265
- /**
266
- * The text for exported table.
267
- *
268
- * @since 8.1.0
269
- * @requires modules/export-data
270
- */
271
- exportData: {
272
- /**
273
- * The annotation column title.
274
- */
275
- annotationHeader: 'Annotations',
276
- /**
277
- * The category column title.
278
- */
279
- categoryHeader: 'Category',
280
- /**
281
- * The category column title when axis type set to "datetime".
282
- */
283
- categoryDatetimeHeader: 'DateTime'
284
- },
285
- /**
286
- * The text for the menu item.
287
- *
288
- * @since 6.0.0
289
- * @requires modules/export-data
290
- */
291
- viewData: 'View data table',
292
- /**
293
- * The text for the menu item.
294
- *
295
- * @since 8.2.0
296
- * @requires modules/export-data
297
- */
298
- hideData: 'Hide data table'
299
- }
300
- });
301
- /* eslint-disable no-invalid-this */
302
- // Add an event listener to handle the showTable option
303
- addEvent(Chart, 'render', function () {
304
- if (this.options &&
305
- this.options.exporting &&
306
- this.options.exporting.showTable &&
307
- !this.options.chart.forExport) {
308
- this.viewData();
309
- }
310
- });
311
- addEvent(Chart, 'afterViewData', function () {
312
- var chart = this, dataTableDiv = chart.dataTableDiv, row = document.querySelectorAll('thead')[0].querySelectorAll('tr')[0], getCellValue = function (tr, index) {
313
- return tr.children[index].textContent;
314
- }, comparer = function (index, ascending) {
315
- return function (a, b) {
316
- var sort = function (v1, v2) { return (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
317
- v1 - v2 :
318
- v1.toString().localeCompare(v2)); };
319
- return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
320
- };
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
321
92
  };
322
- if (dataTableDiv) {
323
- row.childNodes.forEach(function (th) {
324
- var table = th.closest('table');
325
- th.addEventListener('click', function () {
326
- var rows = __spreadArray([], dataTableDiv.querySelectorAll('tr:not(thead tr)'), true), headers = __spreadArray([], th.parentNode.children, true);
327
- rows.sort(comparer(headers.indexOf(th), chart.ascendingOrderInTable =
328
- !chart.ascendingOrderInTable)).forEach(function (tr) {
329
- table.appendChild(tr);
330
- });
331
- headers.forEach(function (th) {
332
- ['highcharts-sort-ascending', 'highcharts-sort-descending']
333
- .forEach(function (className) {
334
- if (th.classList.contains(className)) {
335
- th.classList.remove(className);
336
- }
337
- });
338
- });
339
- th.classList.add(chart.ascendingOrderInTable ?
340
- 'highcharts-sort-ascending' :
341
- 'highcharts-sort-descending');
342
- });
343
- });
344
- }
345
- });
346
- /* eslint-enable no-invalid-this */
93
+ downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
94
+ uri + base64(template), this.getFilename() + '.xls');
95
+ }
347
96
  /**
348
- * Set up key-to-axis bindings. This is used when the Y axis is datetime or
349
- * categorized. For example in an arearange series, the low and high values
350
- * should be formatted according to the Y axis type, and in order to link them
351
- * we need this map.
97
+ * Export-data module required. Returns the current chart data as a CSV string.
352
98
  *
353
- * @private
354
- * @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
355
108
  */
356
- Chart.prototype.setUpKeyToAxis = function () {
357
- if (seriesTypes.arearange) {
358
- seriesTypes.arearange.prototype.keyToAxis = {
359
- low: 'y',
360
- high: 'y'
361
- };
362
- }
363
- if (seriesTypes.gantt) {
364
- seriesTypes.gantt.prototype.keyToAxis = {
365
- start: 'x',
366
- end: 'x'
367
- };
368
- }
369
- };
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
+ }
370
148
  /**
371
149
  * Export-data module required. Returns a two-dimensional array containing the
372
150
  * current chart data.
@@ -383,8 +161,8 @@ Chart.prototype.setUpKeyToAxis = function () {
383
161
  *
384
162
  * @emits Highcharts.Chart#event:exportData
385
163
  */
386
- Chart.prototype.getDataRows = function (multiLevelHeaders) {
387
- 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,
388
166
  // Options
389
167
  columnHeaderFormatter = function (item, key, keyLength) {
390
168
  if (csvOptions.columnHeaderFormatter) {
@@ -396,7 +174,7 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
396
174
  if (!item) {
397
175
  return categoryHeader;
398
176
  }
399
- if (item instanceof Axis) {
177
+ if (!(item instanceof SeriesClass)) {
400
178
  return (item.options.title && item.options.title.text) ||
401
179
  (item.dateTime ? categoryDatetimeHeader : categoryHeader);
402
180
  }
@@ -451,9 +229,8 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
451
229
  }
452
230
  return series.pointArrayMap || ['y'];
453
231
  }, xAxisIndices = [];
454
- // Loop the series and index values
455
- i = 0;
456
- this.setUpKeyToAxis();
232
+ var xAxis, dataRows, columnTitleObj, i = 0, // Loop the series and index values
233
+ x, xTitle;
457
234
  this.series.forEach(function (series) {
458
235
  var keys = series.options.keys, xAxis = series.xAxis, pointArrayMap = keys || getPointArray(series, xAxis), valueCount = pointArrayMap.length, xTaken = !series.requireSorting && {}, xAxisIndex = xAxes.indexOf(xAxis);
459
236
  var categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap), mockSeries, j;
@@ -490,16 +267,16 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
490
267
  // Export directly from options.data because we need the uncropped
491
268
  // data (#7913), and we need to support Boost (#7026).
492
269
  series.options.data.forEach(function eachData(options, pIdx) {
493
- var key, prop, val, name, point;
270
+ var mockPoint = { series: mockSeries };
271
+ var key, prop, val;
494
272
  // In parallel coordinates chart, each data point is connected
495
273
  // to a separate yAxis, conform this
496
274
  if (hasParallelCoords) {
497
275
  categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
498
276
  }
499
- point = { series: mockSeries };
500
- series.pointClass.prototype.applyOptions.apply(point, [options]);
501
- key = point.x;
502
- 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;
503
280
  j = 0;
504
281
  // Pies, funnels, geo maps etc. use point name in X row
505
282
  if (!xAxis ||
@@ -519,12 +296,12 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
519
296
  // Contain the X values from one or more X axes
520
297
  rows[key].xValues = [];
521
298
  }
522
- rows[key].x = point.x;
299
+ rows[key].x = mockPoint.x;
523
300
  rows[key].name = name;
524
- rows[key].xValues[xAxisIndex] = point.x;
301
+ rows[key].xValues[xAxisIndex] = mockPoint.x;
525
302
  while (j < valueCount) {
526
303
  prop = pointArrayMap[j]; // y, z etc
527
- val = point[prop];
304
+ val = mockPoint[prop];
528
305
  rows[key][i + j] = pick(
529
306
  // Y axis category if present
530
307
  categoryAndDatetimeMap.categoryMap[prop][val],
@@ -593,59 +370,7 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
593
370
  dataRows = dataRows.concat(rowArr);
594
371
  fireEvent(this, 'exportData', { dataRows: dataRows });
595
372
  return dataRows;
596
- };
597
- /**
598
- * Export-data module required. Returns the current chart data as a CSV string.
599
- *
600
- * @function Highcharts.Chart#getCSV
601
- *
602
- * @param {boolean} [useLocalDecimalPoint]
603
- * Whether to use the local decimal point as detected from the browser.
604
- * This makes it easier to export data to Excel in the same locale as the
605
- * user is.
606
- *
607
- * @return {string}
608
- * CSV representation of the data
609
- */
610
- Chart.prototype.getCSV = function (useLocalDecimalPoint) {
611
- var csv = '';
612
- var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
613
- (1.1).toLocaleString()[1] :
614
- '.'),
615
- // use ';' for direct to Excel
616
- itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
617
- // '\n' isn't working with the js csv data extraction
618
- lineDelimiter = csvOptions.lineDelimiter;
619
- // Transform the rows to CSV
620
- rows.forEach(function (row, i) {
621
- var val = '', j = row.length;
622
- while (j--) {
623
- val = row[j];
624
- if (typeof val === 'string') {
625
- val = '"' + val + '"';
626
- }
627
- if (typeof val === 'number') {
628
- if (decimalPoint !== '.') {
629
- val = val.toString().replace('.', decimalPoint);
630
- }
631
- }
632
- row[j] = val;
633
- }
634
- // The first row is the header - it defines the number of columns.
635
- // Empty columns between not-empty cells are covered in the getDataRows
636
- // method.
637
- // Now add empty values only to the end of the row so all rows have
638
- // the same number of columns, #17186
639
- row.length = rows.length ? rows[0].length : 0;
640
- // Add the values
641
- csv += row.join(itemDelimiter);
642
- // Add the line delimiter
643
- if (i < rows.length - 1) {
644
- csv += lineDelimiter;
645
- }
646
- });
647
- return csv;
648
- };
373
+ }
649
374
  /**
650
375
  * Export-data module required. Build a HTML table with the chart's current
651
376
  * data.
@@ -665,7 +390,7 @@ Chart.prototype.getCSV = function (useLocalDecimalPoint) {
665
390
  *
666
391
  * @emits Highcharts.Chart#event:afterGetTable
667
392
  */
668
- Chart.prototype.getTable = function (useLocalDecimalPoint) {
393
+ function chartGetTable(useLocalDecimalPoint) {
669
394
  var serialize = function (node) {
670
395
  if (!node.tagName || node.tagName === '#text') {
671
396
  // Text node
@@ -674,7 +399,8 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
674
399
  var attributes = node.attributes;
675
400
  var html = "<".concat(node.tagName);
676
401
  if (attributes) {
677
- Object.keys(attributes).forEach(function (key) {
402
+ Object.keys(attributes)
403
+ .forEach(function (key) {
678
404
  var value = attributes[key];
679
405
  html += " ".concat(key, "=\"").concat(value, "\"");
680
406
  });
@@ -689,7 +415,7 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
689
415
  };
690
416
  var tree = this.getTableAST(useLocalDecimalPoint);
691
417
  return serialize(tree);
692
- };
418
+ }
693
419
  /**
694
420
  * Get the AST of a HTML table representing the chart data.
695
421
  *
@@ -705,7 +431,7 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
705
431
  * @return {Highcharts.ASTNode}
706
432
  * The abstract syntax tree
707
433
  */
708
- Chart.prototype.getTableAST = function (useLocalDecimalPoint) {
434
+ function chartGetTableAST(useLocalDecimalPoint) {
709
435
  var rowLength = 0;
710
436
  var treeChildren = [];
711
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(),
@@ -868,107 +594,19 @@ Chart.prototype.getTableAST = function (useLocalDecimalPoint) {
868
594
  };
869
595
  fireEvent(this, 'aftergetTableAST', e);
870
596
  return e.tree;
871
- };
872
- /**
873
- * Get a blob object from content, if blob is supported
874
- *
875
- * @private
876
- * @param {string} content
877
- * The content to create the blob from.
878
- * @param {string} type
879
- * The type of the content.
880
- * @return {string|undefined}
881
- * The blob object, or undefined if not supported.
882
- */
883
- function getBlobFromContent(content, type) {
884
- var nav = win.navigator, webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
885
- nav.userAgent.indexOf('Chrome') < 0), domurl = win.URL || win.webkitURL || win;
886
- try {
887
- // MS specific
888
- if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
889
- var blob = new win.MSBlobBuilder();
890
- blob.append(content);
891
- return blob.getBlob('image/svg+xml');
892
- }
893
- // Safari requires data URI since it doesn't allow navigation to blob
894
- // URLs.
895
- if (!webKit) {
896
- return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
897
- { type: type }));
898
- }
899
- }
900
- catch (e) {
901
- // Ignore
902
- }
903
597
  }
904
- /* eslint-disable valid-jsdoc */
905
- /**
906
- * Generates a data URL of CSV for local download in the browser. This is the
907
- * default action for a click on the 'Download CSV' button.
908
- *
909
- * See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
910
- *
911
- * @function Highcharts.Chart#downloadCSV
912
- *
913
- * @requires modules/exporting
914
- */
915
- Chart.prototype.downloadCSV = function () {
916
- var csv = this.getCSV(true);
917
- downloadURL(getBlobFromContent(csv, 'text/csv') ||
918
- 'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
919
- };
920
- /**
921
- * Generates a data URL of an XLS document for local download in the browser.
922
- * This is the default action for a click on the 'Download XLS' button.
923
- *
924
- * See {@link Highcharts.Chart#getTable} to get the table data itself.
925
- *
926
- * @function Highcharts.Chart#downloadXLS
927
- *
928
- * @requires modules/exporting
929
- */
930
- Chart.prototype.downloadXLS = function () {
931
- var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
932
- 'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
933
- 'xmlns="http://www.w3.org/TR/REC-html40">' +
934
- '<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
935
- '<x:ExcelWorksheets><x:ExcelWorksheet>' +
936
- '<x:Name>Ark1</x:Name>' +
937
- '<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
938
- '</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
939
- '</xml><![endif]-->' +
940
- '<style>td{border:none;font-family: Calibri, sans-serif;} ' +
941
- '.number{mso-number-format:"0.00";} ' +
942
- '.text{ mso-number-format:"\@";}</style>' +
943
- '<meta name=ProgId content=Excel.Sheet>' +
944
- '<meta charset=UTF-8>' +
945
- '</head><body>' +
946
- this.getTable(true) +
947
- '</body></html>', base64 = function (s) {
948
- return win.btoa(unescape(encodeURIComponent(s))); // #50
949
- };
950
- downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
951
- uri + base64(template), this.getFilename() + '.xls');
952
- };
953
- /**
954
- * Export-data module required. View the data in a table below the chart.
955
- *
956
- * @function Highcharts.Chart#viewData
957
- *
958
- * @emits Highcharts.Chart#event:afterViewData
959
- */
960
- Chart.prototype.viewData = function () {
961
- this.toggleDataTable(true);
962
- };
963
598
  /**
964
599
  * Export-data module required. Hide the data table when visible.
965
600
  *
966
601
  * @function Highcharts.Chart#hideData
967
602
  */
968
- Chart.prototype.hideData = function () {
603
+ function chartHideData() {
969
604
  this.toggleDataTable(false);
970
- };
971
- Chart.prototype.toggleDataTable = function (show) {
605
+ }
606
+ /**
607
+ * @private
608
+ */
609
+ function chartToggleDataTable(show) {
972
610
  show = pick(show, !this.isDataTableVisible);
973
611
  // Create the div
974
612
  if (show && !this.dataTableDiv) {
@@ -994,8 +632,8 @@ Chart.prototype.toggleDataTable = function (show) {
994
632
  var exportDivElements = this.exportDivElements, options = this.options.exporting, menuItems = options &&
995
633
  options.buttons &&
996
634
  options.buttons.contextButton.menuItems, lang = this.options.lang;
997
- if (exportingOptions &&
998
- exportingOptions.menuItemDefinitions &&
635
+ if (options &&
636
+ options.menuItemDefinitions &&
999
637
  lang &&
1000
638
  lang.viewData &&
1001
639
  lang.hideData &&
@@ -1006,41 +644,214 @@ Chart.prototype.toggleDataTable = function (show) {
1006
644
  AST.setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
1007
645
  }
1008
646
  }
1009
- };
1010
- // Add "Download CSV" to the exporting menu.
1011
- var exportingOptions = getOptions().exporting;
1012
- if (exportingOptions) {
1013
- extend(exportingOptions.menuItemDefinitions, {
1014
- downloadCSV: {
1015
- textKey: 'downloadCSV',
1016
- onclick: function () {
1017
- this.downloadCSV();
1018
- }
1019
- },
1020
- downloadXLS: {
1021
- textKey: 'downloadXLS',
1022
- onclick: function () {
1023
- this.downloadXLS();
1024
- }
1025
- },
1026
- viewData: {
1027
- textKey: 'viewData',
1028
- onclick: function () {
1029
- 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');
1030
707
  }
1031
708
  }
1032
- });
1033
- if (exportingOptions.buttons) {
1034
- 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';
1035
736
  }
1036
737
  }
1037
- // Series specific
1038
- if (seriesTypes.map) {
1039
- 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
+ }
1040
769
  }
1041
- if (seriesTypes.mapbubble) {
1042
- 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
+ }
1043
807
  }
1044
- if (seriesTypes.treemap) {
1045
- 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
+ }
1046
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