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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts Gantt JS v10.2.0 (2022-07-05)
2
+ * @license Highcharts Gantt JS v10.2.1 (2022-08-29)
3
3
  *
4
4
  * Tree Grid
5
5
  *
@@ -37,7 +37,7 @@
37
37
  }
38
38
  }
39
39
  }
40
- _registerModule(_modules, 'Core/Axis/BrokenAxis.js', [_modules['Extensions/Stacking.js'], _modules['Core/Utilities.js']], function (StackItem, U) {
40
+ _registerModule(_modules, 'Core/Axis/BrokenAxis.js', [_modules['Core/Axis/Stacking/StackItem.js'], _modules['Core/Utilities.js']], function (StackItem, U) {
41
41
  /* *
42
42
  *
43
43
  * (c) 2009-2021 Torstein Honsi
@@ -1940,7 +1940,7 @@
1940
1940
 
1941
1941
  return Tree;
1942
1942
  });
1943
- _registerModule(_modules, 'Core/Axis/TreeGridTick.js', [_modules['Core/Utilities.js']], function (U) {
1943
+ _registerModule(_modules, 'Core/Axis/TreeGrid/TreeGridTick.js', [_modules['Core/Utilities.js']], function (U) {
1944
1944
  /* *
1945
1945
  *
1946
1946
  * (c) 2016 Highsoft AS
@@ -1956,34 +1956,237 @@
1956
1956
  isNumber = U.isNumber,
1957
1957
  pick = U.pick,
1958
1958
  wrap = U.wrap;
1959
- /* eslint-disable no-invalid-this, valid-jsdoc */
1959
+ /* *
1960
+ *
1961
+ * Constants
1962
+ *
1963
+ * */
1964
+ var composedClasses = [];
1965
+ /* *
1966
+ *
1967
+ * Functions
1968
+ *
1969
+ * */
1960
1970
  /**
1961
1971
  * @private
1962
1972
  */
1963
- var TreeGridTick;
1964
- (function (TreeGridTick) {
1965
- /* *
1966
- *
1967
- * Interfaces
1968
- *
1969
- * */
1970
- /* *
1971
- *
1972
- * Variables
1973
- *
1974
- * */
1975
- var applied = false;
1973
+ function onTickInit() {
1974
+ var tick = this;
1975
+ if (!tick.treeGrid) {
1976
+ tick.treeGrid = new TreeGridTickAdditions(tick);
1977
+ }
1978
+ }
1979
+ /**
1980
+ * @private
1981
+ */
1982
+ function onTickHover(label) {
1983
+ label.addClass('highcharts-treegrid-node-active');
1984
+ if (!label.renderer.styledMode) {
1985
+ label.css({
1986
+ textDecoration: 'underline'
1987
+ });
1988
+ }
1989
+ }
1990
+ /**
1991
+ * @private
1992
+ */
1993
+ function onTickHoverExit(label, options) {
1994
+ var css = isObject(options.style) ? options.style : {};
1995
+ label.removeClass('highcharts-treegrid-node-active');
1996
+ if (!label.renderer.styledMode) {
1997
+ label.css({ textDecoration: css.textDecoration });
1998
+ }
1999
+ }
2000
+ /**
2001
+ * @private
2002
+ */
2003
+ function renderLabelIcon(tick, params) {
2004
+ var treeGrid = tick.treeGrid,
2005
+ isNew = !treeGrid.labelIcon,
2006
+ renderer = params.renderer,
2007
+ labelBox = params.xy,
2008
+ options = params.options,
2009
+ width = options.width || 0,
2010
+ height = options.height || 0,
2011
+ iconCenter = {
2012
+ x: labelBox.x - (width / 2) - (options.padding || 0),
2013
+ y: labelBox.y - (height / 2)
2014
+ },
2015
+ rotation = params.collapsed ? 90 : 180,
2016
+ shouldRender = params.show && isNumber(iconCenter.y);
2017
+ var icon = treeGrid.labelIcon;
2018
+ if (!icon) {
2019
+ treeGrid.labelIcon = icon = renderer
2020
+ .path(renderer.symbols[options.type](options.x || 0, options.y || 0, width, height))
2021
+ .addClass('highcharts-label-icon')
2022
+ .add(params.group);
2023
+ }
2024
+ // Set the new position, and show or hide
2025
+ icon[shouldRender ? 'show' : 'hide'](); // #14904, #1338
2026
+ // Presentational attributes
2027
+ if (!renderer.styledMode) {
2028
+ icon
2029
+ .attr({
2030
+ cursor: 'pointer',
2031
+ 'fill': pick(params.color, "#666666" /* Palette.neutralColor60 */),
2032
+ 'stroke-width': 1,
2033
+ stroke: options.lineColor,
2034
+ strokeWidth: options.lineWidth || 0
2035
+ });
2036
+ }
2037
+ // Update the icon positions
2038
+ icon[isNew ? 'attr' : 'animate']({
2039
+ translateX: iconCenter.x,
2040
+ translateY: iconCenter.y,
2041
+ rotation: rotation
2042
+ });
2043
+ }
2044
+ /**
2045
+ * @private
2046
+ */
2047
+ function wrapGetLabelPosition(proceed, x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
2048
+ var tick = this,
2049
+ lbOptions = pick(tick.options && tick.options.labels,
2050
+ labelOptions),
2051
+ pos = tick.pos,
2052
+ axis = tick.axis,
2053
+ options = axis.options,
2054
+ isTreeGrid = options.type === 'treegrid',
2055
+ result = proceed.apply(tick,
2056
+ [x,
2057
+ y,
2058
+ label,
2059
+ horiz,
2060
+ lbOptions,
2061
+ tickmarkOffset,
2062
+ index,
2063
+ step]);
2064
+ var symbolOptions,
2065
+ indentation,
2066
+ mapOfPosToGridNode,
2067
+ node,
2068
+ level;
2069
+ if (isTreeGrid) {
2070
+ symbolOptions = (lbOptions && isObject(lbOptions.symbol, true) ?
2071
+ lbOptions.symbol :
2072
+ {});
2073
+ indentation = (lbOptions && isNumber(lbOptions.indentation) ?
2074
+ lbOptions.indentation :
2075
+ 0);
2076
+ mapOfPosToGridNode = axis.treeGrid.mapOfPosToGridNode;
2077
+ node = mapOfPosToGridNode && mapOfPosToGridNode[pos];
2078
+ level = (node && node.depth) || 1;
2079
+ result.x += (
2080
+ // Add space for symbols
2081
+ ((symbolOptions.width || 0) +
2082
+ ((symbolOptions.padding || 0) * 2)) +
2083
+ // Apply indentation
2084
+ ((level - 1) * indentation));
2085
+ }
2086
+ return result;
2087
+ }
2088
+ /**
2089
+ * @private
2090
+ */
2091
+ function wrapRenderLabel(proceed) {
2092
+ var tick = this, pos = tick.pos, axis = tick.axis, label = tick.label, mapOfPosToGridNode = axis.treeGrid.mapOfPosToGridNode, options = axis.options, labelOptions = pick(tick.options && tick.options.labels, options && options.labels), symbolOptions = (labelOptions && isObject(labelOptions.symbol, true) ?
2093
+ labelOptions.symbol :
2094
+ {}), node = mapOfPosToGridNode && mapOfPosToGridNode[pos], level = node && node.depth, isTreeGrid = options.type === 'treegrid', shouldRender = axis.tickPositions.indexOf(pos) > -1, prefixClassName = 'highcharts-treegrid-node-', styledMode = axis.chart.styledMode;
2095
+ var collapsed,
2096
+ addClassName,
2097
+ removeClassName;
2098
+ if (isTreeGrid && node) {
2099
+ // Add class name for hierarchical styling.
2100
+ if (label &&
2101
+ label.element) {
2102
+ label.addClass(prefixClassName + 'level-' + level);
2103
+ }
2104
+ }
2105
+ proceed.apply(tick, Array.prototype.slice.call(arguments, 1));
2106
+ if (isTreeGrid &&
2107
+ label &&
2108
+ label.element &&
2109
+ node &&
2110
+ node.descendants &&
2111
+ node.descendants > 0) {
2112
+ collapsed = axis.treeGrid.isCollapsed(node);
2113
+ renderLabelIcon(tick, {
2114
+ color: (!styledMode &&
2115
+ label.styles &&
2116
+ label.styles.color ||
2117
+ ''),
2118
+ collapsed: collapsed,
2119
+ group: label.parentGroup,
2120
+ options: symbolOptions,
2121
+ renderer: label.renderer,
2122
+ show: shouldRender,
2123
+ xy: label.xy
2124
+ });
2125
+ // Add class name for the node.
2126
+ addClassName = prefixClassName +
2127
+ (collapsed ? 'collapsed' : 'expanded');
2128
+ removeClassName = prefixClassName +
2129
+ (collapsed ? 'expanded' : 'collapsed');
2130
+ label
2131
+ .addClass(addClassName)
2132
+ .removeClass(removeClassName);
2133
+ if (!styledMode) {
2134
+ label.css({
2135
+ cursor: 'pointer'
2136
+ });
2137
+ }
2138
+ // Add events to both label text and icon
2139
+ [label, tick.treeGrid.labelIcon].forEach(function (object) {
2140
+ if (object && !object.attachedTreeGridEvents) {
2141
+ // On hover
2142
+ addEvent(object.element, 'mouseover', function () {
2143
+ onTickHover(label);
2144
+ });
2145
+ // On hover out
2146
+ addEvent(object.element, 'mouseout', function () {
2147
+ onTickHoverExit(label, labelOptions);
2148
+ });
2149
+ addEvent(object.element, 'click', function () {
2150
+ tick.treeGrid.toggleCollapse();
2151
+ });
2152
+ object.attachedTreeGridEvents = true;
2153
+ }
2154
+ });
2155
+ }
2156
+ }
2157
+ /* *
2158
+ *
2159
+ * Classes
2160
+ *
2161
+ * */
2162
+ /**
2163
+ * @private
2164
+ * @class
2165
+ */
2166
+ var TreeGridTickAdditions = /** @class */ (function () {
2167
+ /* *
2168
+ *
2169
+ * Constructors
2170
+ *
2171
+ * */
2172
+ /**
2173
+ * @private
2174
+ */
2175
+ function TreeGridTickAdditions(tick) {
2176
+ this.tick = tick;
2177
+ }
1976
2178
  /* *
1977
2179
  *
1978
- * Functions
2180
+ * Static Functions
1979
2181
  *
1980
2182
  * */
1981
2183
  /**
1982
2184
  * @private
1983
2185
  */
1984
- function compose(TickClass) {
1985
- if (!applied) {
1986
- addEvent(TickClass, 'init', onInit);
2186
+ TreeGridTickAdditions.compose = function (TickClass) {
2187
+ if (composedClasses.indexOf(TickClass) === -1) {
2188
+ composedClasses.push(TickClass);
2189
+ addEvent(TickClass, 'init', onTickInit);
1987
2190
  wrap(TickClass.prototype, 'getLabelPosition', wrapGetLabelPosition);
1988
2191
  wrap(TickClass.prototype, 'renderLabel', wrapRenderLabel);
1989
2192
  // backwards compatibility
@@ -1996,313 +2199,106 @@
1996
2199
  TickClass.prototype.toggleCollapse = function (redraw) {
1997
2200
  this.treeGrid.toggleCollapse(redraw);
1998
2201
  };
1999
- applied = true;
2000
- }
2001
- }
2002
- TreeGridTick.compose = compose;
2003
- /**
2004
- * @private
2005
- */
2006
- function onInit() {
2007
- var tick = this;
2008
- if (!tick.treeGrid) {
2009
- tick.treeGrid = new Additions(tick);
2010
2202
  }
2011
- }
2012
- /**
2013
- * @private
2014
- */
2015
- function onTickHover(label) {
2016
- label.addClass('highcharts-treegrid-node-active');
2017
- if (!label.renderer.styledMode) {
2018
- label.css({
2019
- textDecoration: 'underline'
2020
- });
2021
- }
2022
- }
2203
+ };
2204
+ /* *
2205
+ *
2206
+ * Functions
2207
+ *
2208
+ * */
2023
2209
  /**
2210
+ * Collapse the grid cell. Used when axis is of type treegrid.
2211
+ *
2212
+ * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
2213
+ *
2024
2214
  * @private
2215
+ * @function Highcharts.Tick#collapse
2216
+ *
2217
+ * @param {boolean} [redraw=true]
2218
+ * Whether to redraw the chart or wait for an explicit call to
2219
+ * {@link Highcharts.Chart#redraw}
2025
2220
  */
2026
- function onTickHoverExit(label, options) {
2027
- var css = isObject(options.style) ? options.style : {};
2028
- label.removeClass('highcharts-treegrid-node-active');
2029
- if (!label.renderer.styledMode) {
2030
- label.css({ textDecoration: css.textDecoration });
2221
+ TreeGridTickAdditions.prototype.collapse = function (redraw) {
2222
+ var tick = this.tick,
2223
+ axis = tick.axis,
2224
+ brokenAxis = axis.brokenAxis;
2225
+ if (brokenAxis &&
2226
+ axis.treeGrid.mapOfPosToGridNode) {
2227
+ var pos = tick.pos,
2228
+ node = axis.treeGrid.mapOfPosToGridNode[pos],
2229
+ breaks = axis.treeGrid.collapse(node);
2230
+ brokenAxis.setBreaks(breaks, pick(redraw, true));
2031
2231
  }
2032
- }
2232
+ };
2033
2233
  /**
2234
+ * Destroy remaining labelIcon if exist.
2235
+ *
2034
2236
  * @private
2237
+ * @function Highcharts.Tick#destroy
2035
2238
  */
2036
- function renderLabelIcon(tick, params) {
2037
- var treeGrid = tick.treeGrid,
2038
- isNew = !treeGrid.labelIcon,
2039
- renderer = params.renderer,
2040
- labelBox = params.xy,
2041
- options = params.options,
2042
- width = options.width || 0,
2043
- height = options.height || 0,
2044
- iconCenter = {
2045
- x: labelBox.x - (width / 2) - (options.padding || 0),
2046
- y: labelBox.y - (height / 2)
2047
- },
2048
- rotation = params.collapsed ? 90 : 180,
2049
- shouldRender = params.show && isNumber(iconCenter.y);
2050
- var icon = treeGrid.labelIcon;
2051
- if (!icon) {
2052
- treeGrid.labelIcon = icon = renderer
2053
- .path(renderer.symbols[options.type](options.x || 0, options.y || 0, width, height))
2054
- .addClass('highcharts-label-icon')
2055
- .add(params.group);
2056
- }
2057
- // Set the new position, and show or hide
2058
- icon[shouldRender ? 'show' : 'hide'](); // #14904, #1338
2059
- // Presentational attributes
2060
- if (!renderer.styledMode) {
2061
- icon
2062
- .attr({
2063
- cursor: 'pointer',
2064
- 'fill': pick(params.color, "#666666" /* Palette.neutralColor60 */),
2065
- 'stroke-width': 1,
2066
- stroke: options.lineColor,
2067
- strokeWidth: options.lineWidth || 0
2068
- });
2239
+ TreeGridTickAdditions.prototype.destroy = function () {
2240
+ if (this.labelIcon) {
2241
+ this.labelIcon.destroy();
2069
2242
  }
2070
- // Update the icon positions
2071
- icon[isNew ? 'attr' : 'animate']({
2072
- translateX: iconCenter.x,
2073
- translateY: iconCenter.y,
2074
- rotation: rotation
2075
- });
2076
- }
2243
+ };
2077
2244
  /**
2245
+ * Expand the grid cell. Used when axis is of type treegrid.
2246
+ *
2247
+ * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
2248
+ *
2078
2249
  * @private
2250
+ * @function Highcharts.Tick#expand
2251
+ *
2252
+ * @param {boolean} [redraw=true]
2253
+ * Whether to redraw the chart or wait for an explicit call to
2254
+ * {@link Highcharts.Chart#redraw}
2079
2255
  */
2080
- function wrapGetLabelPosition(proceed, x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
2081
- var tick = this,
2082
- lbOptions = pick(tick.options && tick.options.labels,
2083
- labelOptions),
2084
- pos = tick.pos,
2256
+ TreeGridTickAdditions.prototype.expand = function (redraw) {
2257
+ var tick = this.tick,
2085
2258
  axis = tick.axis,
2086
- options = axis.options,
2087
- isTreeGrid = options.type === 'treegrid',
2088
- result = proceed.apply(tick,
2089
- [x,
2090
- y,
2091
- label,
2092
- horiz,
2093
- lbOptions,
2094
- tickmarkOffset,
2095
- index,
2096
- step]);
2097
- var symbolOptions,
2098
- indentation,
2099
- mapOfPosToGridNode,
2100
- node,
2101
- level;
2102
- if (isTreeGrid) {
2103
- symbolOptions = (lbOptions && isObject(lbOptions.symbol, true) ?
2104
- lbOptions.symbol :
2105
- {});
2106
- indentation = (lbOptions && isNumber(lbOptions.indentation) ?
2107
- lbOptions.indentation :
2108
- 0);
2109
- mapOfPosToGridNode = axis.treeGrid.mapOfPosToGridNode;
2110
- node = mapOfPosToGridNode && mapOfPosToGridNode[pos];
2111
- level = (node && node.depth) || 1;
2112
- result.x += (
2113
- // Add space for symbols
2114
- ((symbolOptions.width || 0) +
2115
- ((symbolOptions.padding || 0) * 2)) +
2116
- // Apply indentation
2117
- ((level - 1) * indentation));
2259
+ brokenAxis = axis.brokenAxis;
2260
+ if (brokenAxis &&
2261
+ axis.treeGrid.mapOfPosToGridNode) {
2262
+ var pos = tick.pos,
2263
+ node = axis.treeGrid.mapOfPosToGridNode[pos],
2264
+ breaks = axis.treeGrid.expand(node);
2265
+ brokenAxis.setBreaks(breaks, pick(redraw, true));
2118
2266
  }
2119
- return result;
2120
- }
2267
+ };
2121
2268
  /**
2122
- * @private
2123
- */
2124
- function wrapRenderLabel(proceed) {
2125
- var tick = this, pos = tick.pos, axis = tick.axis, label = tick.label, mapOfPosToGridNode = axis.treeGrid.mapOfPosToGridNode, options = axis.options, labelOptions = pick(tick.options && tick.options.labels, options && options.labels), symbolOptions = (labelOptions && isObject(labelOptions.symbol, true) ?
2126
- labelOptions.symbol :
2127
- {}), node = mapOfPosToGridNode && mapOfPosToGridNode[pos], level = node && node.depth, isTreeGrid = options.type === 'treegrid', shouldRender = axis.tickPositions.indexOf(pos) > -1, prefixClassName = 'highcharts-treegrid-node-', styledMode = axis.chart.styledMode;
2128
- var collapsed,
2129
- addClassName,
2130
- removeClassName;
2131
- if (isTreeGrid && node) {
2132
- // Add class name for hierarchical styling.
2133
- if (label &&
2134
- label.element) {
2135
- label.addClass(prefixClassName + 'level-' + level);
2136
- }
2137
- }
2138
- proceed.apply(tick, Array.prototype.slice.call(arguments, 1));
2139
- if (isTreeGrid &&
2140
- label &&
2141
- label.element &&
2142
- node &&
2143
- node.descendants &&
2144
- node.descendants > 0) {
2145
- collapsed = axis.treeGrid.isCollapsed(node);
2146
- renderLabelIcon(tick, {
2147
- color: (!styledMode &&
2148
- label.styles &&
2149
- label.styles.color ||
2150
- ''),
2151
- collapsed: collapsed,
2152
- group: label.parentGroup,
2153
- options: symbolOptions,
2154
- renderer: label.renderer,
2155
- show: shouldRender,
2156
- xy: label.xy
2157
- });
2158
- // Add class name for the node.
2159
- addClassName = prefixClassName +
2160
- (collapsed ? 'collapsed' : 'expanded');
2161
- removeClassName = prefixClassName +
2162
- (collapsed ? 'expanded' : 'collapsed');
2163
- label
2164
- .addClass(addClassName)
2165
- .removeClass(removeClassName);
2166
- if (!styledMode) {
2167
- label.css({
2168
- cursor: 'pointer'
2169
- });
2170
- }
2171
- // Add events to both label text and icon
2172
- [label, tick.treeGrid.labelIcon].forEach(function (object) {
2173
- if (object && !object.attachedTreeGridEvents) {
2174
- // On hover
2175
- addEvent(object.element, 'mouseover', function () {
2176
- onTickHover(label);
2177
- });
2178
- // On hover out
2179
- addEvent(object.element, 'mouseout', function () {
2180
- onTickHoverExit(label, labelOptions);
2181
- });
2182
- addEvent(object.element, 'click', function () {
2183
- tick.treeGrid.toggleCollapse();
2184
- });
2185
- object.attachedTreeGridEvents = true;
2186
- }
2187
- });
2188
- }
2189
- }
2190
- /* *
2269
+ * Toggle the collapse/expand state of the grid cell. Used when axis is
2270
+ * of type treegrid.
2191
2271
  *
2192
- * Classes
2272
+ * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
2193
2273
  *
2194
- * */
2195
- /**
2196
2274
  * @private
2197
- * @class
2275
+ * @function Highcharts.Tick#toggleCollapse
2276
+ *
2277
+ * @param {boolean} [redraw=true]
2278
+ * Whether to redraw the chart or wait for an explicit call to
2279
+ * {@link Highcharts.Chart#redraw}
2198
2280
  */
2199
- var Additions = /** @class */ (function () {
2200
- /* *
2201
- *
2202
- * Constructors
2203
- *
2204
- * */
2205
- /**
2206
- * @private
2207
- */
2208
- function Additions(tick) {
2209
- this.tick = tick;
2281
+ TreeGridTickAdditions.prototype.toggleCollapse = function (redraw) {
2282
+ var tick = this.tick,
2283
+ axis = tick.axis,
2284
+ brokenAxis = axis.brokenAxis;
2285
+ if (brokenAxis &&
2286
+ axis.treeGrid.mapOfPosToGridNode) {
2287
+ var pos = tick.pos,
2288
+ node = axis.treeGrid.mapOfPosToGridNode[pos],
2289
+ breaks = axis.treeGrid.toggleCollapse(node);
2290
+ brokenAxis.setBreaks(breaks, pick(redraw, true));
2210
2291
  }
2211
- /* *
2212
- *
2213
- * Functions
2214
- *
2215
- * */
2216
- /**
2217
- * Collapse the grid cell. Used when axis is of type treegrid.
2218
- *
2219
- * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
2220
- *
2221
- * @private
2222
- * @function Highcharts.Tick#collapse
2223
- *
2224
- * @param {boolean} [redraw=true]
2225
- * Whether to redraw the chart or wait for an explicit call to
2226
- * {@link Highcharts.Chart#redraw}
2227
- */
2228
- Additions.prototype.collapse = function (redraw) {
2229
- var tick = this.tick,
2230
- axis = tick.axis,
2231
- brokenAxis = axis.brokenAxis;
2232
- if (brokenAxis &&
2233
- axis.treeGrid.mapOfPosToGridNode) {
2234
- var pos = tick.pos,
2235
- node = axis.treeGrid.mapOfPosToGridNode[pos],
2236
- breaks = axis.treeGrid.collapse(node);
2237
- brokenAxis.setBreaks(breaks, pick(redraw, true));
2238
- }
2239
- };
2240
- /**
2241
- * Destroy remaining labelIcon if exist.
2242
- *
2243
- * @private
2244
- * @function Highcharts.Tick#destroy
2245
- */
2246
- Additions.prototype.destroy = function () {
2247
- if (this.labelIcon) {
2248
- this.labelIcon.destroy();
2249
- }
2250
- };
2251
- /**
2252
- * Expand the grid cell. Used when axis is of type treegrid.
2253
- *
2254
- * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
2255
- *
2256
- * @private
2257
- * @function Highcharts.Tick#expand
2258
- *
2259
- * @param {boolean} [redraw=true]
2260
- * Whether to redraw the chart or wait for an explicit call to
2261
- * {@link Highcharts.Chart#redraw}
2262
- */
2263
- Additions.prototype.expand = function (redraw) {
2264
- var tick = this.tick,
2265
- axis = tick.axis,
2266
- brokenAxis = axis.brokenAxis;
2267
- if (brokenAxis &&
2268
- axis.treeGrid.mapOfPosToGridNode) {
2269
- var pos = tick.pos,
2270
- node = axis.treeGrid.mapOfPosToGridNode[pos],
2271
- breaks = axis.treeGrid.expand(node);
2272
- brokenAxis.setBreaks(breaks, pick(redraw, true));
2273
- }
2274
- };
2275
- /**
2276
- * Toggle the collapse/expand state of the grid cell. Used when axis is
2277
- * of type treegrid.
2278
- *
2279
- * @see gantt/treegrid-axis/collapsed-dynamically/demo.js
2280
- *
2281
- * @private
2282
- * @function Highcharts.Tick#toggleCollapse
2283
- *
2284
- * @param {boolean} [redraw=true]
2285
- * Whether to redraw the chart or wait for an explicit call to
2286
- * {@link Highcharts.Chart#redraw}
2287
- */
2288
- Additions.prototype.toggleCollapse = function (redraw) {
2289
- var tick = this.tick,
2290
- axis = tick.axis,
2291
- brokenAxis = axis.brokenAxis;
2292
- if (brokenAxis &&
2293
- axis.treeGrid.mapOfPosToGridNode) {
2294
- var pos = tick.pos,
2295
- node = axis.treeGrid.mapOfPosToGridNode[pos],
2296
- breaks = axis.treeGrid.toggleCollapse(node);
2297
- brokenAxis.setBreaks(breaks, pick(redraw, true));
2298
- }
2299
- };
2300
- return Additions;
2301
- }());
2302
- TreeGridTick.Additions = Additions;
2303
- })(TreeGridTick || (TreeGridTick = {}));
2292
+ };
2293
+ return TreeGridTickAdditions;
2294
+ }());
2295
+ /* *
2296
+ *
2297
+ * Default Export
2298
+ *
2299
+ * */
2304
2300
 
2305
- return TreeGridTick;
2301
+ return TreeGridTickAdditions;
2306
2302
  });
2307
2303
  _registerModule(_modules, 'Series/TreeUtilities.js', [_modules['Core/Color/Color.js'], _modules['Core/Utilities.js']], function (Color, U) {
2308
2304
  /* *
@@ -2534,7 +2530,7 @@
2534
2530
 
2535
2531
  return TreeUtilities;
2536
2532
  });
2537
- _registerModule(_modules, 'Core/Axis/TreeGridAxis.js', [_modules['Core/Axis/BrokenAxis.js'], _modules['Core/Axis/GridAxis.js'], _modules['Gantt/Tree.js'], _modules['Core/Axis/TreeGridTick.js'], _modules['Series/TreeUtilities.js'], _modules['Core/Utilities.js']], function (BrokenAxis, GridAxis, Tree, TreeGridTick, TU, U) {
2533
+ _registerModule(_modules, 'Core/Axis/TreeGrid/TreeGridAxis.js', [_modules['Core/Axis/BrokenAxis.js'], _modules['Core/Axis/GridAxis.js'], _modules['Gantt/Tree.js'], _modules['Core/Axis/TreeGrid/TreeGridTick.js'], _modules['Series/TreeUtilities.js'], _modules['Core/Utilities.js']], function (BrokenAxis, GridAxis, Tree, TreeGridTick, TU, U) {
2538
2534
  /* *
2539
2535
  *
2540
2536
  * (c) 2016 Highsoft AS
@@ -2555,757 +2551,769 @@
2555
2551
  merge = U.merge,
2556
2552
  pick = U.pick,
2557
2553
  wrap = U.wrap;
2554
+ /* *
2555
+ *
2556
+ * Constants
2557
+ *
2558
+ * */
2559
+ var composedClasses = [];
2560
+ /* *
2561
+ *
2562
+ * Variables
2563
+ *
2564
+ * */
2565
+ var TickConstructor;
2566
+ /* *
2567
+ *
2568
+ * Functions
2569
+ *
2570
+ * */
2558
2571
  /**
2559
2572
  * @private
2560
2573
  */
2561
- var TreeGridAxis;
2562
- (function (TreeGridAxis) {
2563
- /* *
2564
- *
2565
- * Declarations
2566
- *
2567
- * */
2568
- /* *
2569
- *
2570
- * Variables
2571
- *
2572
- * */
2573
- var TickConstructor;
2574
- /* *
2575
- *
2576
- * Functions
2577
- *
2578
- * */
2579
- /**
2580
- * @private
2581
- */
2582
- function compose(AxisClass, ChartClass, SeriesClass, TickClass) {
2583
- if (AxisClass.keepProps.indexOf('treeGrid') === -1) {
2584
- AxisClass.keepProps.push('treeGrid');
2585
- TickConstructor = TickClass;
2586
- wrap(AxisClass.prototype, 'generateTick', wrapGenerateTick);
2587
- wrap(AxisClass.prototype, 'init', wrapInit);
2588
- wrap(AxisClass.prototype, 'setTickInterval', wrapSetTickInterval);
2589
- // Make utility functions available for testing.
2590
- AxisClass.prototype.utils = {
2591
- getNode: Tree.getNode
2592
- };
2593
- GridAxis.compose(AxisClass, ChartClass, TickClass);
2594
- BrokenAxis.compose(AxisClass, SeriesClass);
2595
- TreeGridTick.compose(TickClass);
2596
- }
2597
- return AxisClass;
2598
- }
2599
- TreeGridAxis.compose = compose;
2600
- /**
2601
- * @private
2602
- */
2603
- function getBreakFromNode(node, max) {
2604
- var to = node.collapseEnd || 0;
2605
- var from = node.collapseStart || 0;
2606
- // In broken-axis, the axis.max is minimized until it is not within a
2607
- // break. Therefore, if break.to is larger than axis.max, the axis.to
2608
- // should not add the 0.5 axis.tickMarkOffset, to avoid adding a break
2609
- // larger than axis.max.
2610
- // TODO consider simplifying broken-axis and this might solve itself
2611
- if (to >= max) {
2612
- from -= 0.5;
2613
- }
2614
- return {
2615
- from: from,
2616
- to: to,
2617
- showPoints: false
2618
- };
2574
+ function getBreakFromNode(node, max) {
2575
+ var to = node.collapseEnd || 0;
2576
+ var from = node.collapseStart || 0;
2577
+ // In broken-axis, the axis.max is minimized until it is not within a
2578
+ // break. Therefore, if break.to is larger than axis.max, the axis.to
2579
+ // should not add the 0.5 axis.tickMarkOffset, to avoid adding a break
2580
+ // larger than axis.max.
2581
+ // TODO consider simplifying broken-axis and this might solve itself
2582
+ if (to >= max) {
2583
+ from -= 0.5;
2619
2584
  }
2620
- /**
2621
- * Creates a tree structure of the data, and the treegrid. Calculates
2622
- * categories, and y-values of points based on the tree.
2623
- *
2624
- * @private
2625
- * @function getTreeGridFromData
2626
- *
2627
- * @param {Array<Highcharts.GanttPointOptions>} data
2628
- * All the data points to display in the axis.
2629
- *
2630
- * @param {boolean} uniqueNames
2631
- * Wether or not the data node with the same name should share grid cell. If
2632
- * true they do share cell. False by default.
2633
- *
2634
- * @param {number} numberOfSeries
2635
- *
2636
- * @return {Object}
2637
- * Returns an object containing categories, mapOfIdToNode,
2638
- * mapOfPosToGridNode, and tree.
2639
- *
2640
- * @todo There should be only one point per line.
2641
- * @todo It should be optional to have one category per point, or merge
2642
- * cells
2643
- * @todo Add unit-tests.
2644
- */
2645
- function getTreeGridFromData(data, uniqueNames, numberOfSeries) {
2646
- var categories = [],
2647
- collapsedNodes = [],
2648
- mapOfIdToNode = {},
2649
- uniqueNamesEnabled = typeof uniqueNames === 'boolean' ?
2650
- uniqueNames : false;
2651
- var mapOfPosToGridNode = {},
2652
- posIterator = -1;
2653
- // Build the tree from the series data.
2654
- var treeParams = {
2655
- // After the children has been created.
2656
- after: function (node) {
2657
- var gridNode = mapOfPosToGridNode[node.pos];
2658
- var height = 0,
2659
- descendants = 0;
2660
- gridNode.children.forEach(function (child) {
2661
- descendants += (child.descendants || 0) + 1;
2662
- height = Math.max((child.height || 0) + 1, height);
2663
- });
2664
- gridNode.descendants = descendants;
2665
- gridNode.height = height;
2666
- if (gridNode.collapsed) {
2667
- collapsedNodes.push(gridNode);
2668
- }
2669
- },
2670
- // Before the children has been created.
2671
- before: function (node) {
2672
- var data = isObject(node.data,
2673
- true) ?
2674
- node.data :
2675
- {},
2676
- name = isString(data.name) ? data.name : '',
2677
- parentNode = mapOfIdToNode[node.parent],
2678
- parentGridNode = (isObject(parentNode,
2679
- true) ?
2680
- mapOfPosToGridNode[parentNode.pos] :
2681
- null),
2682
- hasSameName = function (x) {
2683
- return x.name === name;
2585
+ return {
2586
+ from: from,
2587
+ to: to,
2588
+ showPoints: false
2589
+ };
2590
+ }
2591
+ /**
2592
+ * Creates a tree structure of the data, and the treegrid. Calculates
2593
+ * categories, and y-values of points based on the tree.
2594
+ *
2595
+ * @private
2596
+ * @function getTreeGridFromData
2597
+ *
2598
+ * @param {Array<Highcharts.GanttPointOptions>} data
2599
+ * All the data points to display in the axis.
2600
+ *
2601
+ * @param {boolean} uniqueNames
2602
+ * Whether or not the data node with the same name should share grid cell. If
2603
+ * true they do share cell. False by default.
2604
+ *
2605
+ * @param {number} numberOfSeries
2606
+ *
2607
+ * @return {Object}
2608
+ * Returns an object containing categories, mapOfIdToNode,
2609
+ * mapOfPosToGridNode, and tree.
2610
+ *
2611
+ * @todo There should be only one point per line.
2612
+ * @todo It should be optional to have one category per point, or merge
2613
+ * cells
2614
+ * @todo Add unit-tests.
2615
+ */
2616
+ function getTreeGridFromData(data, uniqueNames, numberOfSeries) {
2617
+ var categories = [],
2618
+ collapsedNodes = [],
2619
+ mapOfIdToNode = {},
2620
+ uniqueNamesEnabled = typeof uniqueNames === 'boolean' ?
2621
+ uniqueNames : false;
2622
+ var mapOfPosToGridNode = {},
2623
+ posIterator = -1;
2624
+ // Build the tree from the series data.
2625
+ var treeParams = {
2626
+ // After the children has been created.
2627
+ after: function (node) {
2628
+ var gridNode = mapOfPosToGridNode[node.pos];
2629
+ var height = 0,
2630
+ descendants = 0;
2631
+ gridNode.children.forEach(function (child) {
2632
+ descendants += (child.descendants || 0) + 1;
2633
+ height = Math.max((child.height || 0) + 1, height);
2634
+ });
2635
+ gridNode.descendants = descendants;
2636
+ gridNode.height = height;
2637
+ if (gridNode.collapsed) {
2638
+ collapsedNodes.push(gridNode);
2639
+ }
2640
+ },
2641
+ // Before the children has been created.
2642
+ before: function (node) {
2643
+ var data = isObject(node.data,
2644
+ true) ?
2645
+ node.data :
2646
+ {},
2647
+ name = isString(data.name) ? data.name : '',
2648
+ parentNode = mapOfIdToNode[node.parent],
2649
+ parentGridNode = (isObject(parentNode,
2650
+ true) ?
2651
+ mapOfPosToGridNode[parentNode.pos] :
2652
+ null),
2653
+ hasSameName = function (x) {
2654
+ return x.name === name;
2655
+ };
2656
+ var gridNode,
2657
+ pos;
2658
+ // If not unique names, look for sibling node with the same name
2659
+ if (uniqueNamesEnabled &&
2660
+ isObject(parentGridNode, true) &&
2661
+ !!(gridNode = find(parentGridNode.children, hasSameName))) {
2662
+ // If there is a gridNode with the same name, reuse position
2663
+ pos = gridNode.pos;
2664
+ // Add data node to list of nodes in the grid node.
2665
+ gridNode.nodes.push(node);
2666
+ }
2667
+ else {
2668
+ // If it is a new grid node, increment position.
2669
+ pos = posIterator++;
2670
+ }
2671
+ // Add new grid node to map.
2672
+ if (!mapOfPosToGridNode[pos]) {
2673
+ mapOfPosToGridNode[pos] = gridNode = {
2674
+ depth: parentGridNode ? parentGridNode.depth + 1 : 0,
2675
+ name: name,
2676
+ id: data.id,
2677
+ nodes: [node],
2678
+ children: [],
2679
+ pos: pos
2684
2680
  };
2685
- var gridNode,
2686
- pos;
2687
- // If not unique names, look for sibling node with the same name
2688
- if (uniqueNamesEnabled &&
2689
- isObject(parentGridNode, true) &&
2690
- !!(gridNode = find(parentGridNode.children, hasSameName))) {
2691
- // If there is a gridNode with the same name, reuse position
2692
- pos = gridNode.pos;
2693
- // Add data node to list of nodes in the grid node.
2694
- gridNode.nodes.push(node);
2695
- }
2696
- else {
2697
- // If it is a new grid node, increment position.
2698
- pos = posIterator++;
2699
- }
2700
- // Add new grid node to map.
2701
- if (!mapOfPosToGridNode[pos]) {
2702
- mapOfPosToGridNode[pos] = gridNode = {
2703
- depth: parentGridNode ? parentGridNode.depth + 1 : 0,
2704
- name: name,
2705
- id: data.id,
2706
- nodes: [node],
2707
- children: [],
2708
- pos: pos
2709
- };
2710
- // If not root, then add name to categories.
2711
- if (pos !== -1) {
2712
- categories.push(name);
2713
- }
2714
- // Add name to list of children.
2715
- if (isObject(parentGridNode, true)) {
2716
- parentGridNode.children.push(gridNode);
2717
- }
2681
+ // If not root, then add name to categories.
2682
+ if (pos !== -1) {
2683
+ categories.push(name);
2718
2684
  }
2719
- // Add data node to map
2720
- if (isString(node.id)) {
2721
- mapOfIdToNode[node.id] = node;
2685
+ // Add name to list of children.
2686
+ if (isObject(parentGridNode, true)) {
2687
+ parentGridNode.children.push(gridNode);
2722
2688
  }
2723
- // If one of the points are collapsed, then start the grid node
2724
- // in collapsed state.
2725
- if (gridNode &&
2726
- data.collapsed === true) {
2727
- gridNode.collapsed = true;
2689
+ }
2690
+ // Add data node to map
2691
+ if (isString(node.id)) {
2692
+ mapOfIdToNode[node.id] = node;
2693
+ }
2694
+ // If one of the points are collapsed, then start the grid node
2695
+ // in collapsed state.
2696
+ if (gridNode &&
2697
+ data.collapsed === true) {
2698
+ gridNode.collapsed = true;
2699
+ }
2700
+ // Assign pos to data node
2701
+ node.pos = pos;
2702
+ }
2703
+ };
2704
+ var updateYValuesAndTickPos = function (map,
2705
+ numberOfSeries) {
2706
+ var setValues = function (gridNode,
2707
+ start,
2708
+ result) {
2709
+ var nodes = gridNode.nodes,
2710
+ padding = 0.5;
2711
+ var end = start + (start === -1 ? 0 : numberOfSeries - 1);
2712
+ var diff = (end - start) / 2,
2713
+ pos = start + diff;
2714
+ nodes.forEach(function (node) {
2715
+ var data = node.data;
2716
+ if (isObject(data, true)) {
2717
+ // Update point
2718
+ data.y = start + (data.seriesIndex || 0);
2719
+ // Remove the property once used
2720
+ delete data.seriesIndex;
2728
2721
  }
2729
- // Assign pos to data node
2730
2722
  node.pos = pos;
2731
- }
2732
- };
2733
- var updateYValuesAndTickPos = function (map,
2734
- numberOfSeries) {
2735
- var setValues = function (gridNode,
2736
- start,
2737
- result) {
2738
- var nodes = gridNode.nodes,
2739
- padding = 0.5;
2740
- var end = start + (start === -1 ? 0 : numberOfSeries - 1);
2741
- var diff = (end - start) / 2,
2742
- pos = start + diff;
2743
- nodes.forEach(function (node) {
2744
- var data = node.data;
2745
- if (isObject(data, true)) {
2746
- // Update point
2747
- data.y = start + (data.seriesIndex || 0);
2748
- // Remove the property once used
2749
- delete data.seriesIndex;
2750
- }
2751
- node.pos = pos;
2752
- });
2753
- result[pos] = gridNode;
2754
- gridNode.pos = pos;
2755
- gridNode.tickmarkOffset = diff + padding;
2756
- gridNode.collapseStart = end + padding;
2757
- gridNode.children.forEach(function (child) {
2758
- setValues(child, end + 1, result);
2759
- end = (child.collapseEnd || 0) - padding;
2760
- });
2761
- // Set collapseEnd to the end of the last child node.
2762
- gridNode.collapseEnd = end + padding;
2763
- return result;
2764
- };
2765
- return setValues(map['-1'], -1, {});
2766
- };
2767
- // Create tree from data
2768
- var tree = Tree.getTree(data,
2769
- treeParams);
2770
- // Update y values of data, and set calculate tick positions.
2771
- mapOfPosToGridNode = updateYValuesAndTickPos(mapOfPosToGridNode, numberOfSeries);
2772
- // Return the resulting data.
2773
- return {
2774
- categories: categories,
2775
- mapOfIdToNode: mapOfIdToNode,
2776
- mapOfPosToGridNode: mapOfPosToGridNode,
2777
- collapsedNodes: collapsedNodes,
2778
- tree: tree
2723
+ });
2724
+ result[pos] = gridNode;
2725
+ gridNode.pos = pos;
2726
+ gridNode.tickmarkOffset = diff + padding;
2727
+ gridNode.collapseStart = end + padding;
2728
+ gridNode.children.forEach(function (child) {
2729
+ setValues(child, end + 1, result);
2730
+ end = (child.collapseEnd || 0) - padding;
2731
+ });
2732
+ // Set collapseEnd to the end of the last child node.
2733
+ gridNode.collapseEnd = end + padding;
2734
+ return result;
2779
2735
  };
2780
- }
2781
- /**
2782
- * Builds the tree of categories and calculates its positions.
2783
- * @private
2784
- * @param {Object} e Event object
2785
- * @param {Object} e.target The chart instance which the event was fired on.
2786
- * @param {object[]} e.target.axes The axes of the chart.
2787
- */
2788
- function onBeforeRender(e) {
2789
- var chart = e.target,
2790
- axes = chart.axes;
2791
- axes.filter(function (axis) {
2792
- return axis.options.type === 'treegrid';
2793
- }).forEach(function (axis) {
2794
- var options = axis.options || {},
2795
- labelOptions = options.labels,
2796
- uniqueNames = options.uniqueNames,
2797
- max = options.max,
2798
- // Check whether any of series is rendering for the first
2799
- // time, visibility has changed, or its data is dirty, and
2800
- // only then update. #10570, #10580. Also check if
2801
- // mapOfPosToGridNode exists. #10887
2802
- isDirty = (!axis.treeGrid.mapOfPosToGridNode ||
2803
- axis.series.some(function (series) {
2804
- return !series.hasRendered ||
2805
- series.isDirtyData ||
2806
- series.isDirty;
2807
- }));
2808
- var numberOfSeries = 0,
2809
- data,
2810
- treeGrid;
2811
- if (isDirty) {
2812
- // Concatenate data from all series assigned to this axis.
2813
- data = axis.series.reduce(function (arr, s) {
2814
- if (s.visible) {
2815
- // Push all data to array
2816
- (s.options.data || []).forEach(function (data) {
2817
- // For using keys - rebuild the data structure
2818
- if (s.options.keys && s.options.keys.length) {
2819
- data = s.pointClass.prototype
2820
- .optionsToObject
2821
- .call({ series: s }, data);
2822
- s.pointClass.setGanttPointAliases(data);
2823
- }
2824
- if (isObject(data, true)) {
2825
- // Set series index on data. Removed again
2826
- // after use.
2827
- data.seriesIndex = (numberOfSeries);
2828
- arr.push(data);
2829
- }
2830
- });
2831
- // Increment series index
2832
- if (uniqueNames === true) {
2833
- numberOfSeries++;
2736
+ return setValues(map['-1'], -1, {});
2737
+ };
2738
+ // Create tree from data
2739
+ var tree = Tree.getTree(data,
2740
+ treeParams);
2741
+ // Update y values of data, and set calculate tick positions.
2742
+ mapOfPosToGridNode = updateYValuesAndTickPos(mapOfPosToGridNode, numberOfSeries);
2743
+ // Return the resulting data.
2744
+ return {
2745
+ categories: categories,
2746
+ mapOfIdToNode: mapOfIdToNode,
2747
+ mapOfPosToGridNode: mapOfPosToGridNode,
2748
+ collapsedNodes: collapsedNodes,
2749
+ tree: tree
2750
+ };
2751
+ }
2752
+ /**
2753
+ * Builds the tree of categories and calculates its positions.
2754
+ * @private
2755
+ * @param {Object} e Event object
2756
+ * @param {Object} e.target The chart instance which the event was fired on.
2757
+ * @param {object[]} e.target.axes The axes of the chart.
2758
+ */
2759
+ function onBeforeRender(e) {
2760
+ var chart = e.target,
2761
+ axes = chart.axes;
2762
+ axes.filter(function (axis) {
2763
+ return axis.options.type === 'treegrid';
2764
+ }).forEach(function (axis) {
2765
+ var options = axis.options || {},
2766
+ labelOptions = options.labels,
2767
+ uniqueNames = options.uniqueNames,
2768
+ max = options.max,
2769
+ // Check whether any of series is rendering for the first
2770
+ // time, visibility has changed, or its data is dirty, and
2771
+ // only then update. #10570, #10580. Also check if
2772
+ // mapOfPosToGridNode exists. #10887
2773
+ isDirty = (!axis.treeGrid.mapOfPosToGridNode ||
2774
+ axis.series.some(function (series) {
2775
+ return !series.hasRendered ||
2776
+ series.isDirtyData ||
2777
+ series.isDirty;
2778
+ }));
2779
+ var numberOfSeries = 0,
2780
+ data,
2781
+ treeGrid;
2782
+ if (isDirty) {
2783
+ // Concatenate data from all series assigned to this axis.
2784
+ data = axis.series.reduce(function (arr, s) {
2785
+ if (s.visible) {
2786
+ // Push all data to array
2787
+ (s.options.data || []).forEach(function (data) {
2788
+ // For using keys - rebuild the data structure
2789
+ if (s.options.keys && s.options.keys.length) {
2790
+ data = s.pointClass.prototype
2791
+ .optionsToObject
2792
+ .call({ series: s }, data);
2793
+ s.pointClass.setGanttPointAliases(data);
2834
2794
  }
2835
- }
2836
- return arr;
2837
- }, []);
2838
- // If max is higher than set data - add a
2839
- // dummy data to render categories #10779
2840
- if (max && data.length < max) {
2841
- for (var i = data.length; i <= max; i++) {
2842
- data.push({
2843
- // Use the zero-width character
2844
- // to avoid conflict with uniqueNames
2845
- name: i + '\u200B'
2846
- });
2847
- }
2848
- }
2849
- // setScale is fired after all the series is initialized,
2850
- // which is an ideal time to update the axis.categories.
2851
- treeGrid = getTreeGridFromData(data, uniqueNames || false, (uniqueNames === true) ? numberOfSeries : 1);
2852
- // Assign values to the axis.
2853
- axis.categories = treeGrid.categories;
2854
- axis.treeGrid.mapOfPosToGridNode = (treeGrid.mapOfPosToGridNode);
2855
- axis.hasNames = true;
2856
- axis.treeGrid.tree = treeGrid.tree;
2857
- // Update yData now that we have calculated the y values
2858
- axis.series.forEach(function (series) {
2859
- var axisData = (series.options.data || []).map(function (d) {
2860
- if (isArray(d) &&
2861
- series.options.keys &&
2862
- series.options.keys.length) {
2863
- // Get the axisData from the data array used to
2864
- // build the treeGrid where has been modified
2865
- data.forEach(function (point) {
2866
- if (d.indexOf(point.x) >= 0 &&
2867
- d.indexOf(point.x2) >= 0) {
2868
- d = point;
2869
- }
2870
- });
2795
+ if (isObject(data, true)) {
2796
+ // Set series index on data. Removed again
2797
+ // after use.
2798
+ data.seriesIndex = (numberOfSeries);
2799
+ arr.push(data);
2871
2800
  }
2872
- return isObject(d, true) ? merge(d) : d;
2873
2801
  });
2874
- // Avoid destroying points when series is not visible
2875
- if (series.visible) {
2876
- series.setData(axisData, false);
2802
+ // Increment series index
2803
+ if (uniqueNames === true) {
2804
+ numberOfSeries++;
2877
2805
  }
2878
- });
2879
- // Calculate the label options for each level in the tree.
2880
- axis.treeGrid.mapOptionsToLevel =
2881
- getLevelOptions({
2882
- defaults: labelOptions,
2883
- from: 1,
2884
- levels: labelOptions && labelOptions.levels,
2885
- to: axis.treeGrid.tree && axis.treeGrid.tree.height
2886
- });
2887
- // Setting initial collapsed nodes
2888
- if (e.type === 'beforeRender') {
2889
- axis.treeGrid.collapsedNodes = treeGrid.collapsedNodes;
2890
2806
  }
2891
- }
2892
- });
2893
- }
2894
- /**
2895
- * Generates a tick for initial positioning.
2896
- *
2897
- * @private
2898
- * @function Highcharts.GridAxis#generateTick
2899
- *
2900
- * @param {Function} proceed
2901
- * The original generateTick function.
2902
- *
2903
- * @param {number} pos
2904
- * The tick position in axis values.
2905
- */
2906
- function wrapGenerateTick(proceed, pos) {
2907
- var axis = this,
2908
- mapOptionsToLevel = axis.treeGrid.mapOptionsToLevel || {},
2909
- isTreeGrid = axis.options.type === 'treegrid',
2910
- ticks = axis.ticks;
2911
- var tick = ticks[pos],
2912
- levelOptions,
2913
- options,
2914
- gridNode;
2915
- if (isTreeGrid &&
2916
- axis.treeGrid.mapOfPosToGridNode) {
2917
- gridNode = axis.treeGrid.mapOfPosToGridNode[pos];
2918
- levelOptions = mapOptionsToLevel[gridNode.depth];
2919
- if (levelOptions) {
2920
- options = {
2921
- labels: levelOptions
2922
- };
2923
- }
2924
- if (!tick &&
2925
- TickConstructor) {
2926
- ticks[pos] = tick =
2927
- new TickConstructor(axis, pos, void 0, void 0, {
2928
- category: gridNode.name,
2929
- tickmarkOffset: gridNode.tickmarkOffset,
2930
- options: options
2807
+ return arr;
2808
+ }, []);
2809
+ // If max is higher than set data - add a
2810
+ // dummy data to render categories #10779
2811
+ if (max && data.length < max) {
2812
+ for (var i = data.length; i <= max; i++) {
2813
+ data.push({
2814
+ // Use the zero-width character
2815
+ // to avoid conflict with uniqueNames
2816
+ name: i + '\u200B'
2931
2817
  });
2818
+ }
2932
2819
  }
2933
- else {
2934
- // update labels depending on tick interval
2935
- tick.parameters.category = gridNode.name;
2936
- tick.options = options;
2937
- tick.addLabel();
2820
+ // setScale is fired after all the series is initialized,
2821
+ // which is an ideal time to update the axis.categories.
2822
+ treeGrid = getTreeGridFromData(data, uniqueNames || false, (uniqueNames === true) ? numberOfSeries : 1);
2823
+ // Assign values to the axis.
2824
+ axis.categories = treeGrid.categories;
2825
+ axis.treeGrid.mapOfPosToGridNode = (treeGrid.mapOfPosToGridNode);
2826
+ axis.hasNames = true;
2827
+ axis.treeGrid.tree = treeGrid.tree;
2828
+ // Update yData now that we have calculated the y values
2829
+ axis.series.forEach(function (series) {
2830
+ var axisData = (series.options.data || []).map(function (d) {
2831
+ if (isArray(d) &&
2832
+ series.options.keys &&
2833
+ series.options.keys.length) {
2834
+ // Get the axisData from the data array used to
2835
+ // build the treeGrid where has been modified
2836
+ data.forEach(function (point) {
2837
+ if (d.indexOf(point.x) >= 0 &&
2838
+ d.indexOf(point.x2) >= 0) {
2839
+ d = point;
2840
+ }
2841
+ });
2842
+ }
2843
+ return isObject(d, true) ? merge(d) : d;
2844
+ });
2845
+ // Avoid destroying points when series is not visible
2846
+ if (series.visible) {
2847
+ series.setData(axisData, false);
2848
+ }
2849
+ });
2850
+ // Calculate the label options for each level in the tree.
2851
+ axis.treeGrid.mapOptionsToLevel =
2852
+ getLevelOptions({
2853
+ defaults: labelOptions,
2854
+ from: 1,
2855
+ levels: labelOptions && labelOptions.levels,
2856
+ to: axis.treeGrid.tree && axis.treeGrid.tree.height
2857
+ });
2858
+ // Setting initial collapsed nodes
2859
+ if (e.type === 'beforeRender') {
2860
+ axis.treeGrid.collapsedNodes = treeGrid.collapsedNodes;
2938
2861
  }
2939
2862
  }
2863
+ });
2864
+ }
2865
+ /**
2866
+ * Generates a tick for initial positioning.
2867
+ *
2868
+ * @private
2869
+ * @function Highcharts.GridAxis#generateTick
2870
+ *
2871
+ * @param {Function} proceed
2872
+ * The original generateTick function.
2873
+ *
2874
+ * @param {number} pos
2875
+ * The tick position in axis values.
2876
+ */
2877
+ function wrapGenerateTick(proceed, pos) {
2878
+ var axis = this,
2879
+ mapOptionsToLevel = axis.treeGrid.mapOptionsToLevel || {},
2880
+ isTreeGrid = axis.options.type === 'treegrid',
2881
+ ticks = axis.ticks;
2882
+ var tick = ticks[pos],
2883
+ levelOptions,
2884
+ options,
2885
+ gridNode;
2886
+ if (isTreeGrid &&
2887
+ axis.treeGrid.mapOfPosToGridNode) {
2888
+ gridNode = axis.treeGrid.mapOfPosToGridNode[pos];
2889
+ levelOptions = mapOptionsToLevel[gridNode.depth];
2890
+ if (levelOptions) {
2891
+ options = {
2892
+ labels: levelOptions
2893
+ };
2894
+ }
2895
+ if (!tick &&
2896
+ TickConstructor) {
2897
+ ticks[pos] = tick =
2898
+ new TickConstructor(axis, pos, void 0, void 0, {
2899
+ category: gridNode.name,
2900
+ tickmarkOffset: gridNode.tickmarkOffset,
2901
+ options: options
2902
+ });
2903
+ }
2940
2904
  else {
2941
- proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
2905
+ // update labels depending on tick interval
2906
+ tick.parameters.category = gridNode.name;
2907
+ tick.options = options;
2908
+ tick.addLabel();
2942
2909
  }
2943
2910
  }
2944
- /**
2945
- * @private
2946
- */
2947
- function wrapInit(proceed, chart, userOptions) {
2948
- var axis = this,
2949
- isTreeGrid = userOptions.type === 'treegrid';
2950
- if (!axis.treeGrid) {
2951
- axis.treeGrid = new Additions(axis);
2952
- }
2953
- // Set default and forced options for TreeGrid
2954
- if (isTreeGrid) {
2955
- // Add event for updating the categories of a treegrid.
2956
- // NOTE Preferably these events should be set on the axis.
2957
- addEvent(chart, 'beforeRender', onBeforeRender);
2958
- addEvent(chart, 'beforeRedraw', onBeforeRender);
2959
- // Add new collapsed nodes on addseries
2960
- addEvent(chart, 'addSeries', function (e) {
2961
- if (e.options.data) {
2962
- var treeGrid = getTreeGridFromData(e.options.data,
2963
- userOptions.uniqueNames || false, 1);
2964
- axis.treeGrid.collapsedNodes = (axis.treeGrid.collapsedNodes || []).concat(treeGrid.collapsedNodes);
2965
- }
2966
- });
2967
- // Collapse all nodes in axis.treegrid.collapsednodes
2968
- // where collapsed equals true.
2969
- addEvent(axis, 'foundExtremes', function () {
2970
- if (axis.treeGrid.collapsedNodes) {
2971
- axis.treeGrid.collapsedNodes.forEach(function (node) {
2972
- var breaks = axis.treeGrid.collapse(node);
2973
- if (axis.brokenAxis) {
2974
- axis.brokenAxis.setBreaks(breaks, false);
2975
- // remove the node from the axis collapsedNodes
2976
- if (axis.treeGrid.collapsedNodes) {
2977
- axis.treeGrid.collapsedNodes = axis.treeGrid
2978
- .collapsedNodes
2979
- .filter(function (n) { return ((node.collapseStart !==
2980
- n.collapseStart) ||
2981
- node.collapseEnd !== n.collapseEnd); });
2982
- }
2911
+ else {
2912
+ proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
2913
+ }
2914
+ }
2915
+ /**
2916
+ * @private
2917
+ */
2918
+ function wrapInit(proceed, chart, userOptions) {
2919
+ var axis = this,
2920
+ isTreeGrid = userOptions.type === 'treegrid';
2921
+ if (!axis.treeGrid) {
2922
+ axis.treeGrid = new TreeGridAxisAdditions(axis);
2923
+ }
2924
+ // Set default and forced options for TreeGrid
2925
+ if (isTreeGrid) {
2926
+ // Add event for updating the categories of a treegrid.
2927
+ // NOTE Preferably these events should be set on the axis.
2928
+ addEvent(chart, 'beforeRender', onBeforeRender);
2929
+ addEvent(chart, 'beforeRedraw', onBeforeRender);
2930
+ // Add new collapsed nodes on addseries
2931
+ addEvent(chart, 'addSeries', function (e) {
2932
+ if (e.options.data) {
2933
+ var treeGrid = getTreeGridFromData(e.options.data,
2934
+ userOptions.uniqueNames || false, 1);
2935
+ axis.treeGrid.collapsedNodes = (axis.treeGrid.collapsedNodes || []).concat(treeGrid.collapsedNodes);
2936
+ }
2937
+ });
2938
+ // Collapse all nodes in axis.treegrid.collapsednodes
2939
+ // where collapsed equals true.
2940
+ addEvent(axis, 'foundExtremes', function () {
2941
+ if (axis.treeGrid.collapsedNodes) {
2942
+ axis.treeGrid.collapsedNodes.forEach(function (node) {
2943
+ var breaks = axis.treeGrid.collapse(node);
2944
+ if (axis.brokenAxis) {
2945
+ axis.brokenAxis.setBreaks(breaks, false);
2946
+ // remove the node from the axis collapsedNodes
2947
+ if (axis.treeGrid.collapsedNodes) {
2948
+ axis.treeGrid.collapsedNodes = axis.treeGrid
2949
+ .collapsedNodes
2950
+ .filter(function (n) { return ((node.collapseStart !==
2951
+ n.collapseStart) ||
2952
+ node.collapseEnd !== n.collapseEnd); });
2983
2953
  }
2984
- });
2985
- }
2986
- });
2987
- // If staticScale is not defined on the yAxis
2988
- // and chart height is set, set axis.isDirty
2989
- // to ensure collapsing works (#12012)
2990
- addEvent(axis, 'afterBreaks', function () {
2991
- if (axis.coll === 'yAxis' &&
2992
- !axis.staticScale &&
2993
- axis.chart.options.chart.height) {
2994
- axis.isDirty = true;
2995
- }
2996
- });
2997
- userOptions = merge({
2998
- // Default options
2999
- grid: {
3000
- enabled: true
3001
- },
3002
- // TODO: add support for align in treegrid.
3003
- labels: {
3004
- align: 'left',
3005
- /**
3006
- * Set options on specific levels in a tree grid axis. Takes
3007
- * precedence over labels options.
3008
- *
3009
- * @sample {gantt} gantt/treegrid-axis/labels-levels
3010
- * Levels on TreeGrid Labels
3011
- *
3012
- * @type {Array<*>}
3013
- * @product gantt
3014
- * @apioption yAxis.labels.levels
3015
- *
3016
- * @private
3017
- */
3018
- levels: [{
3019
- /**
3020
- * Specify the level which the options within this object
3021
- * applies to.
3022
- *
3023
- * @type {number}
3024
- * @product gantt
3025
- * @apioption yAxis.labels.levels.level
3026
- *
3027
- * @private
3028
- */
3029
- level: void 0
3030
- }, {
3031
- level: 1,
3032
- /**
3033
- * @type {Highcharts.CSSObject}
3034
- * @product gantt
3035
- * @apioption yAxis.labels.levels.style
3036
- *
3037
- * @private
3038
- */
3039
- style: {
3040
- /** @ignore-option */
3041
- fontWeight: 'bold'
3042
- }
3043
- }],
2954
+ }
2955
+ });
2956
+ }
2957
+ });
2958
+ // If staticScale is not defined on the yAxis
2959
+ // and chart height is set, set axis.isDirty
2960
+ // to ensure collapsing works (#12012)
2961
+ addEvent(axis, 'afterBreaks', function () {
2962
+ if (axis.coll === 'yAxis' &&
2963
+ !axis.staticScale &&
2964
+ axis.chart.options.chart.height) {
2965
+ axis.isDirty = true;
2966
+ }
2967
+ });
2968
+ userOptions = merge({
2969
+ // Default options
2970
+ grid: {
2971
+ enabled: true
2972
+ },
2973
+ // TODO: add support for align in treegrid.
2974
+ labels: {
2975
+ align: 'left',
2976
+ /**
2977
+ * Set options on specific levels in a tree grid axis. Takes
2978
+ * precedence over labels options.
2979
+ *
2980
+ * @sample {gantt} gantt/treegrid-axis/labels-levels
2981
+ * Levels on TreeGrid Labels
2982
+ *
2983
+ * @type {Array<*>}
2984
+ * @product gantt
2985
+ * @apioption yAxis.labels.levels
2986
+ *
2987
+ * @private
2988
+ */
2989
+ levels: [{
2990
+ /**
2991
+ * Specify the level which the options within this object
2992
+ * applies to.
2993
+ *
2994
+ * @type {number}
2995
+ * @product gantt
2996
+ * @apioption yAxis.labels.levels.level
2997
+ *
2998
+ * @private
2999
+ */
3000
+ level: void 0
3001
+ }, {
3002
+ level: 1,
3003
+ /**
3004
+ * @type {Highcharts.CSSObject}
3005
+ * @product gantt
3006
+ * @apioption yAxis.labels.levels.style
3007
+ *
3008
+ * @private
3009
+ */
3010
+ style: {
3011
+ /** @ignore-option */
3012
+ fontWeight: 'bold'
3013
+ }
3014
+ }],
3015
+ /**
3016
+ * The symbol for the collapse and expand icon in a
3017
+ * treegrid.
3018
+ *
3019
+ * @product gantt
3020
+ * @optionparent yAxis.labels.symbol
3021
+ *
3022
+ * @private
3023
+ */
3024
+ symbol: {
3044
3025
  /**
3045
- * The symbol for the collapse and expand icon in a
3046
- * treegrid.
3026
+ * The symbol type. Points to a definition function in
3027
+ * the `Highcharts.Renderer.symbols` collection.
3047
3028
  *
3048
- * @product gantt
3049
- * @optionparent yAxis.labels.symbol
3029
+ * @type {Highcharts.SymbolKeyValue}
3050
3030
  *
3051
3031
  * @private
3052
3032
  */
3053
- symbol: {
3054
- /**
3055
- * The symbol type. Points to a definition function in
3056
- * the `Highcharts.Renderer.symbols` collection.
3057
- *
3058
- * @type {Highcharts.SymbolKeyValue}
3059
- *
3060
- * @private
3061
- */
3062
- type: 'triangle',
3063
- x: -5,
3064
- y: -5,
3065
- height: 10,
3066
- width: 10,
3067
- padding: 5
3068
- }
3069
- },
3070
- uniqueNames: false
3071
- }, userOptions, {
3072
- // Forced options
3073
- reversed: true,
3074
- // grid.columns is not supported in treegrid
3075
- grid: {
3076
- columns: void 0
3033
+ type: 'triangle',
3034
+ x: -5,
3035
+ y: -5,
3036
+ height: 10,
3037
+ width: 10,
3038
+ padding: 5
3077
3039
  }
3078
- });
3079
- }
3080
- // Now apply the original function with the original arguments,
3081
- // which are sliced off this function's arguments
3082
- proceed.apply(axis, [chart, userOptions]);
3083
- if (isTreeGrid) {
3084
- axis.hasNames = true;
3085
- axis.options.showLastLabel = true;
3086
- }
3040
+ },
3041
+ uniqueNames: false
3042
+ }, userOptions, {
3043
+ // Forced options
3044
+ reversed: true,
3045
+ // grid.columns is not supported in treegrid
3046
+ grid: {
3047
+ columns: void 0
3048
+ }
3049
+ });
3087
3050
  }
3088
- /**
3089
- * Set the tick positions, tickInterval, axis min and max.
3051
+ // Now apply the original function with the original arguments,
3052
+ // which are sliced off this function's arguments
3053
+ proceed.apply(axis, [chart, userOptions]);
3054
+ if (isTreeGrid) {
3055
+ axis.hasNames = true;
3056
+ axis.options.showLastLabel = true;
3057
+ }
3058
+ }
3059
+ /**
3060
+ * Set the tick positions, tickInterval, axis min and max.
3061
+ *
3062
+ * @private
3063
+ * @function Highcharts.GridAxis#setTickInterval
3064
+ *
3065
+ * @param {Function} proceed
3066
+ * The original setTickInterval function.
3067
+ */
3068
+ function wrapSetTickInterval(proceed) {
3069
+ var axis = this,
3070
+ options = axis.options,
3071
+ isTreeGrid = options.type === 'treegrid';
3072
+ if (isTreeGrid) {
3073
+ axis.min = pick(axis.userMin, options.min, axis.dataMin);
3074
+ axis.max = pick(axis.userMax, options.max, axis.dataMax);
3075
+ fireEvent(axis, 'foundExtremes');
3076
+ // setAxisTranslation modifies the min and max according to
3077
+ // axis breaks.
3078
+ axis.setAxisTranslation();
3079
+ axis.tickmarkOffset = 0.5;
3080
+ axis.tickInterval = 1;
3081
+ axis.tickPositions = axis.treeGrid.mapOfPosToGridNode ?
3082
+ axis.treeGrid.getTickPositions() :
3083
+ [];
3084
+ }
3085
+ else {
3086
+ proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
3087
+ }
3088
+ }
3089
+ /* *
3090
+ *
3091
+ * Classes
3092
+ *
3093
+ * */
3094
+ /**
3095
+ * @private
3096
+ * @class
3097
+ */
3098
+ var TreeGridAxisAdditions = /** @class */ (function () {
3099
+ /* *
3100
+ *
3101
+ * Constructors
3102
+ *
3103
+ * */
3104
+ /**
3105
+ * @private
3106
+ */
3107
+ function TreeGridAxisAdditions(axis) {
3108
+ this.axis = axis;
3109
+ }
3110
+ /* *
3090
3111
  *
3091
- * @private
3092
- * @function Highcharts.GridAxis#setTickInterval
3112
+ * Static Functions
3093
3113
  *
3094
- * @param {Function} proceed
3095
- * The original setTickInterval function.
3114
+ * */
3115
+ /**
3116
+ * @private
3096
3117
  */
3097
- function wrapSetTickInterval(proceed) {
3098
- var axis = this,
3099
- options = axis.options,
3100
- isTreeGrid = options.type === 'treegrid';
3101
- if (isTreeGrid) {
3102
- axis.min = pick(axis.userMin, options.min, axis.dataMin);
3103
- axis.max = pick(axis.userMax, options.max, axis.dataMax);
3104
- fireEvent(axis, 'foundExtremes');
3105
- // setAxisTranslation modifies the min and max according to
3106
- // axis breaks.
3107
- axis.setAxisTranslation();
3108
- axis.tickmarkOffset = 0.5;
3109
- axis.tickInterval = 1;
3110
- axis.tickPositions = axis.treeGrid.mapOfPosToGridNode ?
3111
- axis.treeGrid.getTickPositions() :
3112
- [];
3118
+ TreeGridAxisAdditions.compose = function (AxisClass, ChartClass, SeriesClass, TickClass) {
3119
+ if (composedClasses.indexOf(AxisClass) === -1) {
3120
+ composedClasses.push(AxisClass);
3121
+ if (AxisClass.keepProps.indexOf('treeGrid') === -1) {
3122
+ AxisClass.keepProps.push('treeGrid');
3123
+ }
3124
+ var axisProps = AxisClass.prototype;
3125
+ wrap(axisProps, 'generateTick', wrapGenerateTick);
3126
+ wrap(axisProps, 'init', wrapInit);
3127
+ wrap(axisProps, 'setTickInterval', wrapSetTickInterval);
3128
+ // Make utility functions available for testing.
3129
+ axisProps.utils = {
3130
+ getNode: Tree.getNode
3131
+ };
3113
3132
  }
3114
- else {
3115
- proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
3133
+ if (composedClasses.indexOf(TickClass) === -1) {
3134
+ composedClasses.push(TickClass);
3135
+ if (!TickConstructor) {
3136
+ TickConstructor = TickClass;
3137
+ }
3116
3138
  }
3117
- }
3139
+ GridAxis.compose(AxisClass, ChartClass, TickClass);
3140
+ BrokenAxis.compose(AxisClass, SeriesClass);
3141
+ TreeGridTick.compose(TickClass);
3142
+ return AxisClass;
3143
+ };
3118
3144
  /* *
3119
3145
  *
3120
- * Classes
3146
+ * Functions
3121
3147
  *
3122
3148
  * */
3123
3149
  /**
3150
+ * Set the collapse status.
3151
+ *
3124
3152
  * @private
3125
- * @class
3153
+ *
3154
+ * @param {Highcharts.Axis} axis
3155
+ * The axis to check against.
3156
+ *
3157
+ * @param {Highcharts.GridNode} node
3158
+ * The node to collapse.
3126
3159
  */
3127
- var Additions = /** @class */ (function () {
3128
- /* *
3129
- *
3130
- * Constructors
3131
- *
3132
- * */
3133
- /**
3134
- * @private
3135
- */
3136
- function Additions(axis) {
3137
- this.axis = axis;
3138
- }
3139
- /* *
3140
- *
3141
- * Functions
3142
- *
3143
- * */
3144
- /**
3145
- * Set the collapse status.
3146
- *
3147
- * @private
3148
- *
3149
- * @param {Highcharts.Axis} axis
3150
- * The axis to check against.
3151
- *
3152
- * @param {Highcharts.GridNode} node
3153
- * The node to collapse.
3154
- */
3155
- Additions.prototype.setCollapsedStatus = function (node) {
3156
- var axis = this.axis,
3157
- chart = axis.chart;
3158
- axis.series.forEach(function (series) {
3159
- var data = series.options.data;
3160
- if (node.id && data) {
3161
- var point = chart.get(node.id),
3162
- dataPoint = data[series.data.indexOf(point)];
3163
- if (point && dataPoint) {
3164
- point.collapsed = node.collapsed;
3165
- dataPoint.collapsed = node.collapsed;
3166
- }
3167
- }
3168
- });
3169
- };
3170
- /**
3171
- * Calculates the new axis breaks to collapse a node.
3172
- *
3173
- * @private
3174
- *
3175
- * @param {Highcharts.Axis} axis
3176
- * The axis to check against.
3177
- *
3178
- * @param {Highcharts.GridNode} node
3179
- * The node to collapse.
3180
- *
3181
- * @param {number} pos
3182
- * The tick position to collapse.
3183
- *
3184
- * @return {Array<object>}
3185
- * Returns an array of the new breaks for the axis.
3186
- */
3187
- Additions.prototype.collapse = function (node) {
3188
- var axis = this.axis,
3189
- breaks = (axis.options.breaks || []),
3190
- obj = getBreakFromNode(node,
3191
- axis.max);
3192
- breaks.push(obj);
3193
- // Change the collapsed flag #13838
3194
- node.collapsed = true;
3195
- axis.treeGrid.setCollapsedStatus(node);
3196
- return breaks;
3197
- };
3198
- /**
3199
- * Calculates the new axis breaks to expand a node.
3200
- *
3201
- * @private
3202
- *
3203
- * @param {Highcharts.Axis} axis
3204
- * The axis to check against.
3205
- *
3206
- * @param {Highcharts.GridNode} node
3207
- * The node to expand.
3208
- *
3209
- * @param {number} pos
3210
- * The tick position to expand.
3211
- *
3212
- * @return {Array<object>}
3213
- * Returns an array of the new breaks for the axis.
3214
- */
3215
- Additions.prototype.expand = function (node) {
3216
- var axis = this.axis,
3217
- breaks = (axis.options.breaks || []),
3218
- obj = getBreakFromNode(node,
3219
- axis.max);
3220
- // Change the collapsed flag #13838
3221
- node.collapsed = false;
3222
- axis.treeGrid.setCollapsedStatus(node);
3223
- // Remove the break from the axis breaks array.
3224
- return breaks.reduce(function (arr, b) {
3225
- if (b.to !== obj.to || b.from !== obj.from) {
3226
- arr.push(b);
3227
- }
3228
- return arr;
3229
- }, []);
3230
- };
3231
- /**
3232
- * Creates a list of positions for the ticks on the axis. Filters out
3233
- * positions that are outside min and max, or is inside an axis break.
3234
- *
3235
- * @private
3236
- *
3237
- * @return {Array<number>}
3238
- * List of positions.
3239
- */
3240
- Additions.prototype.getTickPositions = function () {
3241
- var axis = this.axis,
3242
- roundedMin = Math.floor(axis.min / axis.tickInterval) * axis.tickInterval,
3243
- roundedMax = Math.ceil(axis.max / axis.tickInterval) * axis.tickInterval;
3244
- return Object.keys(axis.treeGrid.mapOfPosToGridNode || {}).reduce(function (arr, key) {
3245
- var pos = +key;
3246
- if (pos >= roundedMin &&
3247
- pos <= roundedMax &&
3248
- !(axis.brokenAxis && axis.brokenAxis.isInAnyBreak(pos))) {
3249
- arr.push(pos);
3160
+ TreeGridAxisAdditions.prototype.setCollapsedStatus = function (node) {
3161
+ var axis = this.axis,
3162
+ chart = axis.chart;
3163
+ axis.series.forEach(function (series) {
3164
+ var data = series.options.data;
3165
+ if (node.id && data) {
3166
+ var point = chart.get(node.id),
3167
+ dataPoint = data[series.data.indexOf(point)];
3168
+ if (point && dataPoint) {
3169
+ point.collapsed = node.collapsed;
3170
+ dataPoint.collapsed = node.collapsed;
3250
3171
  }
3251
- return arr;
3252
- }, []);
3253
- };
3254
- /**
3255
- * Check if a node is collapsed.
3256
- *
3257
- * @private
3258
- *
3259
- * @param {Highcharts.Axis} axis
3260
- * The axis to check against.
3261
- *
3262
- * @param {Object} node
3263
- * The node to check if is collapsed.
3264
- *
3265
- * @param {number} pos
3266
- * The tick position to collapse.
3267
- *
3268
- * @return {boolean}
3269
- * Returns true if collapsed, false if expanded.
3270
- */
3271
- Additions.prototype.isCollapsed = function (node) {
3272
- var axis = this.axis,
3273
- breaks = (axis.options.breaks || []),
3274
- obj = getBreakFromNode(node,
3275
- axis.max);
3276
- return breaks.some(function (b) {
3277
- return b.from === obj.from && b.to === obj.to;
3278
- });
3279
- };
3280
- /**
3281
- * Calculates the new axis breaks after toggling the collapse/expand
3282
- * state of a node. If it is collapsed it will be expanded, and if it is
3283
- * exapended it will be collapsed.
3284
- *
3285
- * @private
3286
- *
3287
- * @param {Highcharts.Axis} axis
3288
- * The axis to check against.
3289
- *
3290
- * @param {Highcharts.GridNode} node
3291
- * The node to toggle.
3292
- *
3293
- * @return {Array<object>}
3294
- * Returns an array of the new breaks for the axis.
3295
- */
3296
- Additions.prototype.toggleCollapse = function (node) {
3297
- return (this.isCollapsed(node) ?
3298
- this.expand(node) :
3299
- this.collapse(node));
3300
- };
3301
- return Additions;
3302
- }());
3303
- TreeGridAxis.Additions = Additions;
3304
- })(TreeGridAxis || (TreeGridAxis = {}));
3172
+ }
3173
+ });
3174
+ };
3175
+ /**
3176
+ * Calculates the new axis breaks to collapse a node.
3177
+ *
3178
+ * @private
3179
+ *
3180
+ * @param {Highcharts.Axis} axis
3181
+ * The axis to check against.
3182
+ *
3183
+ * @param {Highcharts.GridNode} node
3184
+ * The node to collapse.
3185
+ *
3186
+ * @param {number} pos
3187
+ * The tick position to collapse.
3188
+ *
3189
+ * @return {Array<object>}
3190
+ * Returns an array of the new breaks for the axis.
3191
+ */
3192
+ TreeGridAxisAdditions.prototype.collapse = function (node) {
3193
+ var axis = this.axis,
3194
+ breaks = (axis.options.breaks || []),
3195
+ obj = getBreakFromNode(node,
3196
+ axis.max);
3197
+ breaks.push(obj);
3198
+ // Change the collapsed flag #13838
3199
+ node.collapsed = true;
3200
+ axis.treeGrid.setCollapsedStatus(node);
3201
+ return breaks;
3202
+ };
3203
+ /**
3204
+ * Calculates the new axis breaks to expand a node.
3205
+ *
3206
+ * @private
3207
+ *
3208
+ * @param {Highcharts.Axis} axis
3209
+ * The axis to check against.
3210
+ *
3211
+ * @param {Highcharts.GridNode} node
3212
+ * The node to expand.
3213
+ *
3214
+ * @param {number} pos
3215
+ * The tick position to expand.
3216
+ *
3217
+ * @return {Array<object>}
3218
+ * Returns an array of the new breaks for the axis.
3219
+ */
3220
+ TreeGridAxisAdditions.prototype.expand = function (node) {
3221
+ var axis = this.axis,
3222
+ breaks = (axis.options.breaks || []),
3223
+ obj = getBreakFromNode(node,
3224
+ axis.max);
3225
+ // Change the collapsed flag #13838
3226
+ node.collapsed = false;
3227
+ axis.treeGrid.setCollapsedStatus(node);
3228
+ // Remove the break from the axis breaks array.
3229
+ return breaks.reduce(function (arr, b) {
3230
+ if (b.to !== obj.to || b.from !== obj.from) {
3231
+ arr.push(b);
3232
+ }
3233
+ return arr;
3234
+ }, []);
3235
+ };
3236
+ /**
3237
+ * Creates a list of positions for the ticks on the axis. Filters out
3238
+ * positions that are outside min and max, or is inside an axis break.
3239
+ *
3240
+ * @private
3241
+ *
3242
+ * @return {Array<number>}
3243
+ * List of positions.
3244
+ */
3245
+ TreeGridAxisAdditions.prototype.getTickPositions = function () {
3246
+ var axis = this.axis,
3247
+ roundedMin = Math.floor(axis.min / axis.tickInterval) * axis.tickInterval,
3248
+ roundedMax = Math.ceil(axis.max / axis.tickInterval) * axis.tickInterval;
3249
+ return Object.keys(axis.treeGrid.mapOfPosToGridNode || {}).reduce(function (arr, key) {
3250
+ var pos = +key;
3251
+ if (pos >= roundedMin &&
3252
+ pos <= roundedMax &&
3253
+ !(axis.brokenAxis && axis.brokenAxis.isInAnyBreak(pos))) {
3254
+ arr.push(pos);
3255
+ }
3256
+ return arr;
3257
+ }, []);
3258
+ };
3259
+ /**
3260
+ * Check if a node is collapsed.
3261
+ *
3262
+ * @private
3263
+ *
3264
+ * @param {Highcharts.Axis} axis
3265
+ * The axis to check against.
3266
+ *
3267
+ * @param {Object} node
3268
+ * The node to check if is collapsed.
3269
+ *
3270
+ * @param {number} pos
3271
+ * The tick position to collapse.
3272
+ *
3273
+ * @return {boolean}
3274
+ * Returns true if collapsed, false if expanded.
3275
+ */
3276
+ TreeGridAxisAdditions.prototype.isCollapsed = function (node) {
3277
+ var axis = this.axis,
3278
+ breaks = (axis.options.breaks || []),
3279
+ obj = getBreakFromNode(node,
3280
+ axis.max);
3281
+ return breaks.some(function (b) {
3282
+ return b.from === obj.from && b.to === obj.to;
3283
+ });
3284
+ };
3285
+ /**
3286
+ * Calculates the new axis breaks after toggling the collapse/expand
3287
+ * state of a node. If it is collapsed it will be expanded, and if it is
3288
+ * exapended it will be collapsed.
3289
+ *
3290
+ * @private
3291
+ *
3292
+ * @param {Highcharts.Axis} axis
3293
+ * The axis to check against.
3294
+ *
3295
+ * @param {Highcharts.GridNode} node
3296
+ * The node to toggle.
3297
+ *
3298
+ * @return {Array<object>}
3299
+ * Returns an array of the new breaks for the axis.
3300
+ */
3301
+ TreeGridAxisAdditions.prototype.toggleCollapse = function (node) {
3302
+ return (this.isCollapsed(node) ?
3303
+ this.expand(node) :
3304
+ this.collapse(node));
3305
+ };
3306
+ return TreeGridAxisAdditions;
3307
+ }());
3308
+ /* *
3309
+ *
3310
+ * Default Export
3311
+ *
3312
+ * */
3305
3313
 
3306
- return TreeGridAxis;
3314
+ return TreeGridAxisAdditions;
3307
3315
  });
3308
- _registerModule(_modules, 'masters/modules/treegrid.src.js', [_modules['Core/Globals.js'], _modules['Core/Axis/TreeGridAxis.js']], function (Highcharts, TreeGridAxis) {
3316
+ _registerModule(_modules, 'masters/modules/treegrid.src.js', [_modules['Core/Globals.js'], _modules['Core/Axis/TreeGrid/TreeGridAxis.js']], function (Highcharts, TreeGridAxis) {
3309
3317
 
3310
3318
  var G = Highcharts;
3311
3319
  // Compositions