@ntlab/ntjs-assets 2.0.27 → 2.0.29

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 (459) hide show
  1. package/assets/js/cdn.json +1 -1
  2. package/assets/js/highcharts/es-modules/Accessibility/Accessibility.js +1 -1
  3. package/assets/js/highcharts/es-modules/Accessibility/AccessibilityComponent.js +1 -1
  4. package/assets/js/highcharts/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
  5. package/assets/js/highcharts/es-modules/Accessibility/KeyboardNavigation.js +1 -1
  6. package/assets/js/highcharts/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
  7. package/assets/js/highcharts/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
  8. package/assets/js/highcharts/es-modules/Accessibility/Options/LangDefaults.js +3 -3
  9. package/assets/js/highcharts/es-modules/Accessibility/Utils/EventProvider.js +1 -1
  10. package/assets/js/highcharts/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -1
  11. package/assets/js/highcharts/es-modules/Core/Animation/Fx.js +4 -2
  12. package/assets/js/highcharts/es-modules/Core/Axis/Axis.js +6 -4
  13. package/assets/js/highcharts/es-modules/Core/Axis/AxisDefaults.js +1 -0
  14. package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -1
  15. package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
  16. package/assets/js/highcharts/es-modules/Core/Axis/GridAxis.js +1 -1
  17. package/assets/js/highcharts/es-modules/Core/Axis/OrdinalAxis.js +5 -2
  18. package/assets/js/highcharts/es-modules/Core/Axis/RadialAxisDefaults.js +3 -3
  19. package/assets/js/highcharts/es-modules/Core/Axis/Stacking/StackItem.js +1 -1
  20. package/assets/js/highcharts/es-modules/Core/Chart/Chart.js +16 -7
  21. package/assets/js/highcharts/es-modules/Core/Chart/MapChart.js +3 -3
  22. package/assets/js/highcharts/es-modules/Core/Chart/StockChart.js +1 -1
  23. package/assets/js/highcharts/es-modules/Core/Color/Color.js +2 -2
  24. package/assets/js/highcharts/es-modules/Core/Defaults.js +27 -1
  25. package/assets/js/highcharts/es-modules/Core/Geometry/GeometryUtilities.js +22 -0
  26. package/assets/js/highcharts/es-modules/Core/Globals.js +1 -1
  27. package/assets/js/highcharts/es-modules/Core/Legend/Legend.js +82 -14
  28. package/assets/js/highcharts/es-modules/Core/MSPointer.js +42 -1
  29. package/assets/js/highcharts/es-modules/Core/Pointer.js +10 -6
  30. package/assets/js/highcharts/es-modules/Core/Renderer/HTML/AST.js +6 -0
  31. package/assets/js/highcharts/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -2
  32. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGElement.js +31 -98
  33. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGLabel.js +20 -0
  34. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGRenderer.js +29 -14
  35. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/Symbols.js +18 -18
  36. package/assets/js/highcharts/es-modules/Core/Responsive.js +6 -1
  37. package/assets/js/highcharts/es-modules/Core/Series/DataLabel.js +1 -10
  38. package/assets/js/highcharts/es-modules/Core/Series/DataSeriesComposition.js +0 -2
  39. package/assets/js/highcharts/es-modules/Core/Series/Point.js +7 -10
  40. package/assets/js/highcharts/es-modules/Core/Series/Series.js +40 -24
  41. package/assets/js/highcharts/es-modules/Core/Series/SeriesDefaults.js +18 -12
  42. package/assets/js/highcharts/es-modules/Core/Templating.js +2 -2
  43. package/assets/js/highcharts/es-modules/Core/Tooltip.js +6 -3
  44. package/assets/js/highcharts/es-modules/Data/Connectors/JSONConnector.js +1 -0
  45. package/assets/js/highcharts/es-modules/Data/Converters/CSVConverter.js +1 -1
  46. package/assets/js/highcharts/es-modules/Data/Converters/DataConverter.js +7 -7
  47. package/assets/js/highcharts/es-modules/Data/Converters/GoogleSheetsConverter.js +8 -3
  48. package/assets/js/highcharts/es-modules/Data/DataTable.js +106 -5
  49. package/assets/js/highcharts/es-modules/Data/Formula/FormulaParser.js +2 -2
  50. package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +1 -1
  51. package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +1 -1
  52. package/assets/js/highcharts/es-modules/Extensions/Annotations/NavigationBindings.js +1 -2
  53. package/assets/js/highcharts/es-modules/Extensions/Boost/Boost.js +1 -1
  54. package/assets/js/highcharts/es-modules/Extensions/Boost/BoostChart.js +8 -2
  55. package/assets/js/highcharts/es-modules/Extensions/Boost/BoostSeries.js +41 -10
  56. package/assets/js/highcharts/es-modules/Extensions/Boost/WGLShader.js +1 -1
  57. package/assets/js/highcharts/es-modules/Extensions/BorderRadius.js +3 -3
  58. package/assets/js/highcharts/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +0 -38
  59. package/assets/js/highcharts/es-modules/Extensions/Data.js +11 -11
  60. package/assets/js/highcharts/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -2
  61. package/assets/js/highcharts/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
  62. package/assets/js/highcharts/es-modules/Extensions/DownloadURL.js +1 -1
  63. package/assets/js/highcharts/es-modules/Extensions/Drilldown/Drilldown.js +0 -2
  64. package/assets/js/highcharts/es-modules/Extensions/Exporting/Exporting.js +14 -14
  65. package/assets/js/highcharts/es-modules/Extensions/OverlappingDataLabels.js +36 -5
  66. package/assets/js/highcharts/es-modules/Extensions/Pane/PaneDefaults.js +3 -2
  67. package/assets/js/highcharts/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +1 -1
  68. package/assets/js/highcharts/es-modules/Extensions/Sonification/MIDI.js +7 -7
  69. package/assets/js/highcharts/es-modules/Extensions/Sonification/SonificationInstrument.js +0 -1
  70. package/assets/js/highcharts/es-modules/Extensions/Sonification/TimelineFromChart.js +1 -3
  71. package/assets/js/highcharts/es-modules/Extensions/TextPath.js +227 -0
  72. package/assets/js/highcharts/es-modules/Maps/MapUtilities.js +1 -20
  73. package/assets/js/highcharts/es-modules/Maps/MapView.js +3 -1
  74. package/assets/js/highcharts/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -0
  75. package/assets/js/highcharts/es-modules/Series/Area/AreaSeries.js +5 -0
  76. package/assets/js/highcharts/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
  77. package/assets/js/highcharts/es-modules/Series/Bar/BarSeries.js +1 -1
  78. package/assets/js/highcharts/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +2 -2
  79. package/assets/js/highcharts/es-modules/Series/BoxPlot/BoxPlotSeries.js +2 -1
  80. package/assets/js/highcharts/es-modules/Series/Bubble/BubbleLegendComposition.js +4 -7
  81. package/assets/js/highcharts/es-modules/Series/Bubble/BubbleLegendDefaults.js +3 -3
  82. package/assets/js/highcharts/es-modules/Series/Bubble/BubbleSeries.js +4 -4
  83. package/assets/js/highcharts/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
  84. package/assets/js/highcharts/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -2
  85. package/assets/js/highcharts/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +2 -2
  86. package/assets/js/highcharts/es-modules/Series/ErrorBar/ErrorBarSeries.js +2 -2
  87. package/assets/js/highcharts/es-modules/Series/Flags/FlagsSeries.js +2 -2
  88. package/assets/js/highcharts/es-modules/Series/Flags/FlagsSeriesDefaults.js +1 -1
  89. package/assets/js/highcharts/es-modules/Series/Gantt/GanttSeriesDefaults.js +1 -1
  90. package/assets/js/highcharts/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  91. package/assets/js/highcharts/es-modules/Series/HLC/HLCSeries.js +1 -1
  92. package/assets/js/highcharts/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +2 -2
  93. package/assets/js/highcharts/es-modules/Series/Item/ItemSeries.js +1 -1
  94. package/assets/js/highcharts/es-modules/Series/Map/MapSeries.js +1 -1
  95. package/assets/js/highcharts/es-modules/Series/Map/MapSeriesDefaults.js +2 -2
  96. package/assets/js/highcharts/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -1
  97. package/assets/js/highcharts/es-modules/Series/Organization/OrganizationSeries.js +3 -0
  98. package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  99. package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleSeries.js +8 -5
  100. package/assets/js/highcharts/es-modules/Series/Pie/PieDataLabel.js +7 -6
  101. package/assets/js/highcharts/es-modules/Series/Pie/PiePoint.js +6 -6
  102. package/assets/js/highcharts/es-modules/Series/Pie/PieSeriesDefaults.js +11 -10
  103. package/assets/js/highcharts/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  104. package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeries.js +7 -4
  105. package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
  106. package/assets/js/highcharts/es-modules/Series/Sunburst/SunburstSeries.js +8 -5
  107. package/assets/js/highcharts/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +2 -2
  108. package/assets/js/highcharts/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -2
  109. package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphSeries.js +23 -2
  110. package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +2 -2
  111. package/assets/js/highcharts/es-modules/Series/Treemap/TreemapPoint.js +2 -1
  112. package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeries.js +15 -7
  113. package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeriesDefaults.js +15 -1
  114. package/assets/js/highcharts/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +2 -2
  115. package/assets/js/highcharts/es-modules/Series/Variwide/VariwideComposition.js +1 -1
  116. package/assets/js/highcharts/es-modules/Series/Vector/VectorSeries.js +1 -1
  117. package/assets/js/highcharts/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
  118. package/assets/js/highcharts/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
  119. package/assets/js/highcharts/es-modules/Series/Wordcloud/WordcloudSeriesDefaults.js +1 -1
  120. package/assets/js/highcharts/es-modules/Stock/Indicators/AD/ADIndicator.js +1 -1
  121. package/assets/js/highcharts/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
  122. package/assets/js/highcharts/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
  123. package/assets/js/highcharts/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
  124. package/assets/js/highcharts/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
  125. package/assets/js/highcharts/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -3
  126. package/assets/js/highcharts/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +1 -1
  127. package/assets/js/highcharts/es-modules/Stock/Indicators/MFI/MFIIndicator.js +1 -1
  128. package/assets/js/highcharts/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
  129. package/assets/js/highcharts/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
  130. package/assets/js/highcharts/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +1 -1
  131. package/assets/js/highcharts/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -3
  132. package/assets/js/highcharts/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  133. package/assets/js/highcharts/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +2 -2
  134. package/assets/js/highcharts/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +3 -3
  135. package/assets/js/highcharts/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +1 -1
  136. package/assets/js/highcharts/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +1 -1
  137. package/assets/js/highcharts/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
  138. package/assets/js/highcharts/es-modules/Stock/Navigator/Navigator.js +141 -55
  139. package/assets/js/highcharts/es-modules/Stock/Navigator/NavigatorDefaults.js +1 -1
  140. package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelector.js +1 -1
  141. package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +1 -1
  142. package/assets/js/highcharts/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -1
  143. package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolbar.js +115 -37
  144. package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolsDefaults.js +7 -1
  145. package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolsGui.js +24 -23
  146. package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolsUtilities.js +26 -0
  147. package/assets/js/highcharts/es-modules/masters/highcharts-more.src.js +2 -2
  148. package/assets/js/highcharts/es-modules/masters/modules/arc-diagram.src.js +1 -2
  149. package/assets/js/highcharts/es-modules/masters/modules/cylinder.src.js +1 -1
  150. package/assets/js/highcharts/es-modules/masters/modules/funnel3d.src.js +1 -1
  151. package/assets/js/highcharts/es-modules/masters/modules/map.src.js +1 -1
  152. package/assets/js/highcharts/es-modules/masters/modules/pyramid3d.src.js +1 -1
  153. package/assets/js/highcharts/es-modules/masters/modules/solid-gauge.src.js +1 -1
  154. package/assets/js/highcharts/es-modules/masters/modules/textpath.src.js +16 -0
  155. package/assets/js/highcharts/highcharts-3d.js +2 -2
  156. package/assets/js/highcharts/highcharts-3d.src.js +4 -4
  157. package/assets/js/highcharts/highcharts-gantt.js +3 -3
  158. package/assets/js/highcharts/highcharts-gantt.src.js +3376 -3042
  159. package/assets/js/highcharts/highcharts-more.js +2 -2
  160. package/assets/js/highcharts/highcharts-more.src.js +262 -35
  161. package/assets/js/highcharts/highcharts.js +3 -3
  162. package/assets/js/highcharts/highcharts.src.js +6064 -5818
  163. package/assets/js/highcharts/highmaps.js +3 -3
  164. package/assets/js/highcharts/highmaps.src.js +3276 -3046
  165. package/assets/js/highcharts/highstock.js +3 -3
  166. package/assets/js/highcharts/highstock.src.js +3395 -3062
  167. package/assets/js/highcharts/indicators/acceleration-bands.js +2 -2
  168. package/assets/js/highcharts/indicators/acceleration-bands.src.js +3 -3
  169. package/assets/js/highcharts/indicators/accumulation-distribution.js +2 -2
  170. package/assets/js/highcharts/indicators/accumulation-distribution.src.js +4 -4
  171. package/assets/js/highcharts/indicators/ao.js +2 -2
  172. package/assets/js/highcharts/indicators/ao.src.js +3 -3
  173. package/assets/js/highcharts/indicators/apo.js +2 -2
  174. package/assets/js/highcharts/indicators/apo.src.js +4 -4
  175. package/assets/js/highcharts/indicators/aroon-oscillator.js +2 -2
  176. package/assets/js/highcharts/indicators/aroon-oscillator.src.js +3 -3
  177. package/assets/js/highcharts/indicators/aroon.js +2 -2
  178. package/assets/js/highcharts/indicators/aroon.src.js +4 -4
  179. package/assets/js/highcharts/indicators/atr.js +2 -2
  180. package/assets/js/highcharts/indicators/atr.src.js +3 -3
  181. package/assets/js/highcharts/indicators/bollinger-bands.js +2 -2
  182. package/assets/js/highcharts/indicators/bollinger-bands.src.js +3 -3
  183. package/assets/js/highcharts/indicators/cci.js +2 -2
  184. package/assets/js/highcharts/indicators/cci.src.js +3 -3
  185. package/assets/js/highcharts/indicators/chaikin.js +2 -2
  186. package/assets/js/highcharts/indicators/chaikin.src.js +5 -5
  187. package/assets/js/highcharts/indicators/cmf.js +2 -2
  188. package/assets/js/highcharts/indicators/cmf.src.js +4 -4
  189. package/assets/js/highcharts/indicators/cmo.js +2 -2
  190. package/assets/js/highcharts/indicators/cmo.src.js +3 -3
  191. package/assets/js/highcharts/indicators/dema.js +2 -2
  192. package/assets/js/highcharts/indicators/dema.src.js +3 -3
  193. package/assets/js/highcharts/indicators/disparity-index.js +2 -2
  194. package/assets/js/highcharts/indicators/disparity-index.src.js +3 -3
  195. package/assets/js/highcharts/indicators/dmi.js +2 -2
  196. package/assets/js/highcharts/indicators/dmi.src.js +3 -3
  197. package/assets/js/highcharts/indicators/dpo.js +2 -2
  198. package/assets/js/highcharts/indicators/dpo.src.js +3 -3
  199. package/assets/js/highcharts/indicators/ema.js +1 -1
  200. package/assets/js/highcharts/indicators/ema.src.js +2 -2
  201. package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.js +2 -2
  202. package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.src.js +6 -6
  203. package/assets/js/highcharts/indicators/indicators-all.js +2 -2
  204. package/assets/js/highcharts/indicators/indicators-all.src.js +28 -28
  205. package/assets/js/highcharts/indicators/indicators.js +2 -2
  206. package/assets/js/highcharts/indicators/indicators.src.js +4 -4
  207. package/assets/js/highcharts/indicators/keltner-channels.js +2 -2
  208. package/assets/js/highcharts/indicators/keltner-channels.src.js +3 -3
  209. package/assets/js/highcharts/indicators/klinger.js +2 -2
  210. package/assets/js/highcharts/indicators/klinger.src.js +3 -3
  211. package/assets/js/highcharts/indicators/macd.js +2 -2
  212. package/assets/js/highcharts/indicators/macd.src.js +3 -3
  213. package/assets/js/highcharts/indicators/mfi.js +2 -2
  214. package/assets/js/highcharts/indicators/mfi.src.js +4 -4
  215. package/assets/js/highcharts/indicators/momentum.js +2 -2
  216. package/assets/js/highcharts/indicators/momentum.src.js +3 -3
  217. package/assets/js/highcharts/indicators/natr.js +2 -2
  218. package/assets/js/highcharts/indicators/natr.src.js +3 -3
  219. package/assets/js/highcharts/indicators/obv.js +2 -2
  220. package/assets/js/highcharts/indicators/obv.src.js +3 -3
  221. package/assets/js/highcharts/indicators/pivot-points.js +2 -2
  222. package/assets/js/highcharts/indicators/pivot-points.src.js +6 -6
  223. package/assets/js/highcharts/indicators/ppo.js +2 -2
  224. package/assets/js/highcharts/indicators/ppo.src.js +4 -4
  225. package/assets/js/highcharts/indicators/price-channel.js +2 -2
  226. package/assets/js/highcharts/indicators/price-channel.src.js +4 -4
  227. package/assets/js/highcharts/indicators/price-envelopes.js +2 -2
  228. package/assets/js/highcharts/indicators/price-envelopes.src.js +3 -3
  229. package/assets/js/highcharts/indicators/psar.js +2 -2
  230. package/assets/js/highcharts/indicators/psar.src.js +4 -4
  231. package/assets/js/highcharts/indicators/regressions.js +2 -2
  232. package/assets/js/highcharts/indicators/regressions.src.js +4 -4
  233. package/assets/js/highcharts/indicators/roc.js +2 -2
  234. package/assets/js/highcharts/indicators/roc.src.js +3 -3
  235. package/assets/js/highcharts/indicators/rsi.js +2 -2
  236. package/assets/js/highcharts/indicators/rsi.src.js +3 -3
  237. package/assets/js/highcharts/indicators/slow-stochastic.js +2 -2
  238. package/assets/js/highcharts/indicators/slow-stochastic.src.js +5 -5
  239. package/assets/js/highcharts/indicators/stochastic.js +2 -2
  240. package/assets/js/highcharts/indicators/stochastic.src.js +3 -3
  241. package/assets/js/highcharts/indicators/supertrend.js +2 -2
  242. package/assets/js/highcharts/indicators/supertrend.src.js +6 -6
  243. package/assets/js/highcharts/indicators/tema.js +2 -2
  244. package/assets/js/highcharts/indicators/tema.src.js +3 -3
  245. package/assets/js/highcharts/indicators/trendline.js +2 -2
  246. package/assets/js/highcharts/indicators/trendline.src.js +4 -4
  247. package/assets/js/highcharts/indicators/trix.js +2 -2
  248. package/assets/js/highcharts/indicators/trix.src.js +3 -3
  249. package/assets/js/highcharts/indicators/volume-by-price.js +2 -2
  250. package/assets/js/highcharts/indicators/volume-by-price.src.js +3 -3
  251. package/assets/js/highcharts/indicators/vwap.js +2 -2
  252. package/assets/js/highcharts/indicators/vwap.src.js +4 -4
  253. package/assets/js/highcharts/indicators/williams-r.js +2 -2
  254. package/assets/js/highcharts/indicators/williams-r.src.js +4 -4
  255. package/assets/js/highcharts/indicators/wma.js +2 -2
  256. package/assets/js/highcharts/indicators/wma.src.js +3 -3
  257. package/assets/js/highcharts/indicators/zigzag.js +2 -2
  258. package/assets/js/highcharts/indicators/zigzag.src.js +3 -3
  259. package/assets/js/highcharts/modules/accessibility.js +2 -2
  260. package/assets/js/highcharts/modules/accessibility.src.js +162 -77
  261. package/assets/js/highcharts/modules/annotations-advanced.js +2 -2
  262. package/assets/js/highcharts/modules/annotations-advanced.src.js +8 -9
  263. package/assets/js/highcharts/modules/annotations.js +2 -2
  264. package/assets/js/highcharts/modules/annotations.src.js +8 -9
  265. package/assets/js/highcharts/modules/arc-diagram.js +2 -2
  266. package/assets/js/highcharts/modules/arc-diagram.src.js +9363 -5
  267. package/assets/js/highcharts/modules/arrow-symbols.js +2 -2
  268. package/assets/js/highcharts/modules/arrow-symbols.src.js +3 -3
  269. package/assets/js/highcharts/modules/boost-canvas.js +2 -2
  270. package/assets/js/highcharts/modules/boost-canvas.src.js +53 -16
  271. package/assets/js/highcharts/modules/boost.js +2 -2
  272. package/assets/js/highcharts/modules/boost.src.js +54 -17
  273. package/assets/js/highcharts/modules/broken-axis.js +2 -2
  274. package/assets/js/highcharts/modules/broken-axis.src.js +3 -3
  275. package/assets/js/highcharts/modules/bullet.js +2 -2
  276. package/assets/js/highcharts/modules/bullet.src.js +3 -3
  277. package/assets/js/highcharts/modules/coloraxis.js +2 -2
  278. package/assets/js/highcharts/modules/coloraxis.src.js +12 -7
  279. package/assets/js/highcharts/modules/current-date-indicator.js +2 -2
  280. package/assets/js/highcharts/modules/current-date-indicator.src.js +3 -3
  281. package/assets/js/highcharts/modules/cylinder.js +2 -2
  282. package/assets/js/highcharts/modules/cylinder.src.js +4 -4
  283. package/assets/js/highcharts/modules/data-tools.js +2 -2
  284. package/assets/js/highcharts/modules/data-tools.src.js +128 -21
  285. package/assets/js/highcharts/modules/data.js +2 -2
  286. package/assets/js/highcharts/modules/data.src.js +14 -14
  287. package/assets/js/highcharts/modules/datagrouping.js +2 -2
  288. package/assets/js/highcharts/modules/datagrouping.src.js +5 -6
  289. package/assets/js/highcharts/modules/debugger.js +2 -2
  290. package/assets/js/highcharts/modules/debugger.src.js +3 -3
  291. package/assets/js/highcharts/modules/dependency-wheel.js +2 -2
  292. package/assets/js/highcharts/modules/dependency-wheel.src.js +7 -6
  293. package/assets/js/highcharts/modules/dotplot.js +2 -2
  294. package/assets/js/highcharts/modules/dotplot.src.js +3 -3
  295. package/assets/js/highcharts/modules/drag-panes.js +2 -2
  296. package/assets/js/highcharts/modules/drag-panes.src.js +3 -3
  297. package/assets/js/highcharts/modules/draggable-points.js +2 -2
  298. package/assets/js/highcharts/modules/draggable-points.src.js +3 -3
  299. package/assets/js/highcharts/modules/drilldown.js +2 -2
  300. package/assets/js/highcharts/modules/drilldown.src.js +3 -43
  301. package/assets/js/highcharts/modules/dumbbell.js +2 -2
  302. package/assets/js/highcharts/modules/dumbbell.src.js +5 -5
  303. package/assets/js/highcharts/modules/export-data.js +2 -2
  304. package/assets/js/highcharts/modules/export-data.src.js +4 -4
  305. package/assets/js/highcharts/modules/exporting.js +2 -2
  306. package/assets/js/highcharts/modules/exporting.src.js +17 -17
  307. package/assets/js/highcharts/modules/flowmap.js +2 -2
  308. package/assets/js/highcharts/modules/flowmap.src.js +3 -3
  309. package/assets/js/highcharts/modules/full-screen.js +2 -2
  310. package/assets/js/highcharts/modules/full-screen.src.js +3 -3
  311. package/assets/js/highcharts/modules/funnel.js +2 -2
  312. package/assets/js/highcharts/modules/funnel.src.js +3 -3
  313. package/assets/js/highcharts/modules/funnel3d.js +2 -2
  314. package/assets/js/highcharts/modules/funnel3d.src.js +4 -4
  315. package/assets/js/highcharts/modules/gantt.js +2 -2
  316. package/assets/js/highcharts/modules/gantt.src.js +155 -67
  317. package/assets/js/highcharts/modules/geoheatmap.js +2 -2
  318. package/assets/js/highcharts/modules/geoheatmap.src.js +3 -3
  319. package/assets/js/highcharts/modules/grid-axis.js +2 -2
  320. package/assets/js/highcharts/modules/grid-axis.src.js +4 -4
  321. package/assets/js/highcharts/modules/heatmap.js +2 -2
  322. package/assets/js/highcharts/modules/heatmap.src.js +14 -9
  323. package/assets/js/highcharts/modules/heikinashi.js +2 -2
  324. package/assets/js/highcharts/modules/heikinashi.src.js +3 -3
  325. package/assets/js/highcharts/modules/histogram-bellcurve.js +2 -2
  326. package/assets/js/highcharts/modules/histogram-bellcurve.src.js +5 -5
  327. package/assets/js/highcharts/modules/hollowcandlestick.js +2 -2
  328. package/assets/js/highcharts/modules/hollowcandlestick.src.js +3 -3
  329. package/assets/js/highcharts/modules/item-series.js +2 -2
  330. package/assets/js/highcharts/modules/item-series.src.js +4 -4
  331. package/assets/js/highcharts/modules/lollipop.js +2 -2
  332. package/assets/js/highcharts/modules/lollipop.src.js +3 -3
  333. package/assets/js/highcharts/modules/map.js +2 -2
  334. package/assets/js/highcharts/modules/map.src.js +36 -52
  335. package/assets/js/highcharts/modules/marker-clusters.js +2 -2
  336. package/assets/js/highcharts/modules/marker-clusters.src.js +3 -3
  337. package/assets/js/highcharts/modules/mouse-wheel-zoom.js +2 -2
  338. package/assets/js/highcharts/modules/mouse-wheel-zoom.src.js +3 -3
  339. package/assets/js/highcharts/modules/navigator.js +2 -2
  340. package/assets/js/highcharts/modules/navigator.src.js +146 -61
  341. package/assets/js/highcharts/modules/networkgraph.js +2 -2
  342. package/assets/js/highcharts/modules/networkgraph.src.js +233 -5
  343. package/assets/js/highcharts/modules/no-data-to-display.js +2 -2
  344. package/assets/js/highcharts/modules/no-data-to-display.src.js +3 -3
  345. package/assets/js/highcharts/modules/offline-exporting.js +2 -2
  346. package/assets/js/highcharts/modules/offline-exporting.src.js +5 -5
  347. package/assets/js/highcharts/modules/organization.js +2 -2
  348. package/assets/js/highcharts/modules/organization.src.js +5 -4
  349. package/assets/js/highcharts/modules/overlapping-datalabels.js +2 -2
  350. package/assets/js/highcharts/modules/overlapping-datalabels.src.js +3 -3
  351. package/assets/js/highcharts/modules/parallel-coordinates.js +2 -2
  352. package/assets/js/highcharts/modules/parallel-coordinates.src.js +4 -4
  353. package/assets/js/highcharts/modules/pareto.js +2 -2
  354. package/assets/js/highcharts/modules/pareto.src.js +3 -3
  355. package/assets/js/highcharts/modules/pathfinder.js +2 -2
  356. package/assets/js/highcharts/modules/pathfinder.src.js +3 -3
  357. package/assets/js/highcharts/modules/pattern-fill.js +2 -2
  358. package/assets/js/highcharts/modules/pattern-fill.src.js +3 -3
  359. package/assets/js/highcharts/modules/pictorial.js +2 -2
  360. package/assets/js/highcharts/modules/pictorial.src.js +3 -3
  361. package/assets/js/highcharts/modules/price-indicator.js +2 -2
  362. package/assets/js/highcharts/modules/price-indicator.src.js +3 -3
  363. package/assets/js/highcharts/modules/pyramid3d.js +2 -2
  364. package/assets/js/highcharts/modules/pyramid3d.src.js +4 -4
  365. package/assets/js/highcharts/modules/sankey.js +2 -2
  366. package/assets/js/highcharts/modules/sankey.src.js +237 -9
  367. package/assets/js/highcharts/modules/series-label.js +2 -2
  368. package/assets/js/highcharts/modules/series-label.src.js +3 -3
  369. package/assets/js/highcharts/modules/series-on-point.js +2 -2
  370. package/assets/js/highcharts/modules/series-on-point.src.js +3 -3
  371. package/assets/js/highcharts/modules/solid-gauge.js +2 -2
  372. package/assets/js/highcharts/modules/solid-gauge.src.js +4 -4
  373. package/assets/js/highcharts/modules/sonification.js +2 -2
  374. package/assets/js/highcharts/modules/sonification.src.js +12 -15
  375. package/assets/js/highcharts/modules/static-scale.js +2 -2
  376. package/assets/js/highcharts/modules/static-scale.src.js +3 -3
  377. package/assets/js/highcharts/modules/stock-tools.js +2 -2
  378. package/assets/js/highcharts/modules/stock-tools.src.js +177 -69
  379. package/assets/js/highcharts/modules/stock.js +2 -2
  380. package/assets/js/highcharts/modules/stock.src.js +160 -73
  381. package/assets/js/highcharts/modules/streamgraph.js +2 -2
  382. package/assets/js/highcharts/modules/streamgraph.src.js +3 -3
  383. package/assets/js/highcharts/modules/sunburst.js +2 -2
  384. package/assets/js/highcharts/modules/sunburst.src.js +271 -58
  385. package/assets/js/highcharts/modules/textpath.js +7 -0
  386. package/assets/js/highcharts/modules/textpath.src.js +271 -0
  387. package/assets/js/highcharts/modules/tiledwebmap.js +3 -3
  388. package/assets/js/highcharts/modules/tiledwebmap.src.js +3 -3
  389. package/assets/js/highcharts/modules/tilemap.js +2 -2
  390. package/assets/js/highcharts/modules/tilemap.src.js +5 -5
  391. package/assets/js/highcharts/modules/timeline.js +2 -2
  392. package/assets/js/highcharts/modules/timeline.src.js +3 -3
  393. package/assets/js/highcharts/modules/treegraph.js +2 -2
  394. package/assets/js/highcharts/modules/treegraph.src.js +254 -8
  395. package/assets/js/highcharts/modules/treegrid.js +2 -2
  396. package/assets/js/highcharts/modules/treegrid.src.js +4 -4
  397. package/assets/js/highcharts/modules/treemap.js +2 -2
  398. package/assets/js/highcharts/modules/treemap.src.js +35 -50
  399. package/assets/js/highcharts/modules/variable-pie.js +2 -2
  400. package/assets/js/highcharts/modules/variable-pie.src.js +5 -5
  401. package/assets/js/highcharts/modules/variwide.js +2 -2
  402. package/assets/js/highcharts/modules/variwide.src.js +4 -4
  403. package/assets/js/highcharts/modules/vector.js +2 -2
  404. package/assets/js/highcharts/modules/vector.src.js +4 -4
  405. package/assets/js/highcharts/modules/venn.js +2 -2
  406. package/assets/js/highcharts/modules/venn.src.js +3 -88
  407. package/assets/js/highcharts/modules/windbarb.js +2 -2
  408. package/assets/js/highcharts/modules/windbarb.src.js +5 -5
  409. package/assets/js/highcharts/modules/wordcloud.js +2 -2
  410. package/assets/js/highcharts/modules/wordcloud.src.js +6 -6
  411. package/assets/js/highcharts/modules/xrange.js +2 -2
  412. package/assets/js/highcharts/modules/xrange.src.js +3 -3
  413. package/assets/js/highcharts/standalone-navigator.js +2 -2
  414. package/assets/js/highcharts/standalone-navigator.src.js +3380 -3049
  415. package/assets/js/highcharts/themes/avocado.js +2 -2
  416. package/assets/js/highcharts/themes/avocado.src.js +3 -3
  417. package/assets/js/highcharts/themes/brand-dark.js +2 -2
  418. package/assets/js/highcharts/themes/brand-dark.src.js +3 -3
  419. package/assets/js/highcharts/themes/brand-light.js +2 -2
  420. package/assets/js/highcharts/themes/brand-light.src.js +3 -3
  421. package/assets/js/highcharts/themes/dark-blue.js +2 -2
  422. package/assets/js/highcharts/themes/dark-blue.src.js +3 -3
  423. package/assets/js/highcharts/themes/dark-green.js +2 -2
  424. package/assets/js/highcharts/themes/dark-green.src.js +3 -3
  425. package/assets/js/highcharts/themes/dark-unica.js +2 -2
  426. package/assets/js/highcharts/themes/dark-unica.src.js +3 -3
  427. package/assets/js/highcharts/themes/gray.js +2 -2
  428. package/assets/js/highcharts/themes/gray.src.js +3 -3
  429. package/assets/js/highcharts/themes/grid-light.js +2 -2
  430. package/assets/js/highcharts/themes/grid-light.src.js +3 -3
  431. package/assets/js/highcharts/themes/grid.js +2 -2
  432. package/assets/js/highcharts/themes/grid.src.js +3 -3
  433. package/assets/js/highcharts/themes/high-contrast-dark.js +2 -2
  434. package/assets/js/highcharts/themes/high-contrast-dark.src.js +3 -3
  435. package/assets/js/highcharts/themes/high-contrast-light.js +2 -2
  436. package/assets/js/highcharts/themes/high-contrast-light.src.js +3 -3
  437. package/assets/js/highcharts/themes/sand-signika.js +2 -2
  438. package/assets/js/highcharts/themes/sand-signika.src.js +3 -3
  439. package/assets/js/highcharts/themes/skies.js +2 -2
  440. package/assets/js/highcharts/themes/skies.src.js +3 -3
  441. package/assets/js/highcharts/themes/sunset.js +2 -2
  442. package/assets/js/highcharts/themes/sunset.src.js +3 -3
  443. package/assets/js/pdfjs/build/pdf.mjs +464 -207
  444. package/assets/js/pdfjs/build/pdf.mjs.map +1 -1
  445. package/assets/js/pdfjs/build/pdf.sandbox.mjs +6 -3
  446. package/assets/js/pdfjs/build/pdf.sandbox.mjs.map +1 -1
  447. package/assets/js/pdfjs/build/pdf.worker.mjs +384 -204
  448. package/assets/js/pdfjs/build/pdf.worker.mjs.map +1 -1
  449. package/assets/js/pdfjs/web/locale/br/viewer.ftl +5 -6
  450. package/assets/js/pdfjs/web/locale/is/viewer.ftl +1 -9
  451. package/assets/js/pdfjs/web/locale/ja/viewer.ftl +1 -3
  452. package/assets/js/pdfjs/web/locale/kab/viewer.ftl +57 -8
  453. package/assets/js/pdfjs/web/locale/nn-NO/viewer.ftl +40 -6
  454. package/assets/js/pdfjs/web/locale/sl/viewer.ftl +4 -0
  455. package/assets/js/pdfjs/web/viewer.css +15 -0
  456. package/assets/js/pdfjs/web/viewer.html +1 -1
  457. package/assets/js/pdfjs/web/viewer.mjs +159 -91
  458. package/assets/js/pdfjs/web/viewer.mjs.map +1 -1
  459. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  !/**
2
- * Highcharts JS v11.4.3 (2024-05-22)
2
+ * Highcharts JS v11.4.5 (2024-07-04)
3
3
  * Treegraph chart series type
4
4
  *
5
5
  * (c) 2010-2024 Pawel Lysy Grzegorz Blachlinski
6
6
  *
7
7
  * License: www.highcharts.com/license
8
- */function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/treegraph",["highcharts","highcharts/modules/treemap"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function i(e,t,i,s){e.hasOwnProperty(t)||(e[t]=s.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}i(t,"Series/PathUtilities.js",[],function(){function e(e,t){let i=[];for(let s=0;s<e.length;s++){let o=e[s][1],r=e[s][2];if("number"==typeof o&&"number"==typeof r){if(0===s)i.push(["M",o,r]);else if(s===e.length-1)i.push(["L",o,r]);else if(t){let l=e[s-1],n=e[s+1];if(l&&n){let e=l[1],s=l[2],a=n[1],h=n[2];if("number"==typeof e&&"number"==typeof a&&"number"==typeof s&&"number"==typeof h&&e!==a&&s!==h){let l=e<a?1:-1,n=s<h?1:-1;i.push(["L",o-l*Math.min(Math.abs(o-e),t),r-n*Math.min(Math.abs(r-s),t)],["C",o,r,o,r,o+l*Math.min(Math.abs(o-a),t),r+n*Math.min(Math.abs(r-h),t)])}}}else i.push(["L",o,r])}}return i}return{applyRadius:e,getLinkPath:{default:function(t){let{x1:i,y1:s,x2:o,y2:r,width:l=0,inverted:n=!1,radius:a,parentVisible:h}=t,d=[["M",i,s],["L",i,s],["C",i,s,i,r,i,r],["L",i,r],["C",i,s,i,r,i,r],["L",i,r]];return h?e([["M",i,s],["L",i+l*(n?-.5:.5),s],["L",i+l*(n?-.5:.5),r],["L",o,r]],a):d},straight:function(e){let{x1:t,y1:i,x2:s,y2:o,width:r=0,inverted:l=!1,parentVisible:n}=e;return n?[["M",t,i],["L",t+r*(l?-1:1),o],["L",s,o]]:[["M",t,i],["L",t,o],["L",t,o]]},curved:function(e){let{x1:t,y1:i,x2:s,y2:o,offset:r=0,width:l=0,inverted:n=!1,parentVisible:a}=e;return a?[["M",t,i],["C",t+r,i,t-r+l*(n?-1:1),o,t+l*(n?-1:1),o],["L",s,o]]:[["M",t,i],["C",t,i,t,o,t,o],["L",s,o]]}}}}),i(t,"Series/Treegraph/TreegraphNode.js",[t["Core/Series/SeriesRegistry.js"]],function(e){let{seriesTypes:{treemap:{prototype:{NodeClass:t}}}}=e;return class extends t{constructor(){super(...arguments),this.mod=0,this.shift=0,this.change=0,this.children=[],this.preX=0,this.hidden=!1,this.wasVisited=!1,this.collapsed=!1}nextLeft(){return this.getLeftMostChild()||this.thread}nextRight(){return this.getRightMostChild()||this.thread}getAncestor(e,t){return e.ancestor.children[0]===this.children[0]?e.ancestor:t}getLeftMostSibling(){let e=this.getParent();if(e){for(let t of e.children)if(t&&t.point.visible)return t}}hasChildren(){let e=this.children;for(let t=0;t<e.length;t++)if(e[t].point.visible)return!0;return!1}getLeftSibling(){let e=this.getParent();if(e){let t=e.children;for(let e=this.relativeXPosition-1;e>=0;e--)if(t[e]&&t[e].point.visible)return t[e]}}getLeftMostChild(){let e=this.children;for(let t=0;t<e.length;t++)if(e[t].point.visible)return e[t]}getRightMostChild(){let e=this.children;for(let t=e.length-1;t>=0;t--)if(e[t].point.visible)return e[t]}getParent(){return this.parentNode}getFirstChild(){let e=this.children;for(let t=0;t<e.length;t++)if(e[t].point.visible)return e[t]}}}),i(t,"Series/Treegraph/TreegraphPoint.js",[t["Core/Series/Point.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,i){let{seriesTypes:{treemap:{prototype:{pointClass:s}}}}=t,{addEvent:o,fireEvent:r,merge:l}=i;class n extends s{constructor(){super(...arguments),this.dataLabelOnHidden=!0,this.isLink=!1,this.setState=e.prototype.setState}draw(){super.draw.apply(this,arguments);let e=this.graphic;e&&e.animate({visibility:this.visible?"inherit":"hidden"}),this.renderCollapseButton()}renderCollapseButton(){let e=this.series,t=this.graphic&&this.graphic.parentGroup,i=e.mapOptionsToLevel[this.node.level||0]||{},s=l(e.options.collapseButton,i.collapseButton,this.options.collapseButton),{width:o,height:r,shape:n,style:a}=s,h=this.series.chart,d=this.visible&&(this.collapsed||!s.onlyOnHover||"hover"===this.state)?1:0;if(this.shapeArgs){if(this.collapseButtonOptions=s,this.collapseButton){if(this.node.children.length&&s.enabled){let{x:e,y:t}=this.getCollapseBtnPosition(s);this.collapseButton.attr({text:this.collapsed?"+":"-",rotation:h.inverted?90:0,rotationOriginX:o/2,rotationOriginY:r/2,visibility:this.visible?"inherit":"hidden"}).animate({x:e,y:t,opacity:d})}else this.collapseButton.destroy(),delete this.collapseButton}else{if(!this.node.children.length||!s.enabled)return;let{x:e,y:i}=this.getCollapseBtnPosition(s),p=s.fillColor||this.color||"#cccccc";this.collapseButton=h.renderer.label(this.collapsed?"+":"-",e,i,n).attr({height:r-4,width:o-4,padding:2,fill:p,rotation:h.inverted?90:0,rotationOriginX:o/2,rotationOriginY:r/2,stroke:s.lineColor||"#ffffff","stroke-width":s.lineWidth,"text-align":"center",align:"center",zIndex:1,opacity:d,visibility:this.visible?"inherit":"hidden"}).addClass("highcharts-tracker").addClass("highcharts-collapse-button").removeClass("highcharts-no-tooltip").css(l({color:"string"==typeof p?h.renderer.getContrast(p):"#333333"},a)).add(t),this.collapseButton.element.point=this}}}toggleCollapse(e){let t=this.series;this.update({collapsed:e??!this.collapsed},!1,void 0,!1),r(t,"toggleCollapse"),t.redraw()}destroy(){this.collapseButton&&(this.collapseButton.destroy(),delete this.collapseButton,this.collapseButton=void 0),this.linkToParent&&(this.linkToParent.destroy(),delete this.linkToParent),super.destroy.apply(this,arguments)}getCollapseBtnPosition(e){let t=this.series.chart.inverted,i=e.width,s=e.height,{x:o=0,y:r=0,width:l=0,height:n=0}=this.shapeArgs||{};return{x:o+e.x+(t?-(.3*s):l+-.3*i),y:r+n/2-s/2+e.y}}}return o(n,"mouseOut",function(){let e=this.collapseButton,t=this.collapseButtonOptions;e&&t?.onlyOnHover&&!this.collapsed&&e.animate({opacity:0})}),o(n,"mouseOver",function(){this.collapseButton&&this.visible&&this.collapseButton.animate({opacity:1},this.series.options.states?.hover?.animation)}),o(n,"click",function(){this.toggleCollapse()}),n}),i(t,"Series/Treegraph/TreegraphLink.js",[t["Core/Series/Point.js"],t["Core/Utilities.js"],t["Core/Series/SeriesRegistry.js"]],function(e,t,i){let{pick:s,extend:o}=t,{seriesTypes:{column:{prototype:{pointClass:r}}}}=i;return class extends r{constructor(e,t,i,s){super(e,t,i),this.dataLabelOnNull=!0,this.formatPrefix="link",this.isLink=!0,this.node={},this.formatPrefix="link",this.dataLabelOnNull=!0,s&&(this.fromNode=s.node.parentNode.point,this.visible=s.visible,this.toNode=s,this.id=this.toNode.id+"-"+this.fromNode.id)}update(t,i,r,l){let n={id:this.id,formatPrefix:this.formatPrefix};e.prototype.update.call(this,t,!this.isLink&&i,r,l),this.visible=this.toNode.visible,o(this,n),s(i,!0)&&this.series.chart.redraw(r)}}}),i(t,"Series/Treegraph/TreegraphLayout.js",[t["Series/Treegraph/TreegraphNode.js"]],function(e){class t{static createDummyNode(t,i,s){let o=new e;return o.id=t.id+"-"+s,o.ancestor=t,o.children.push(i),o.parent=t.id,o.parentNode=t,o.point=i.point,o.level=i.level-s,o.relativeXPosition=i.relativeXPosition,o.visible=i.visible,t.children[i.relativeXPosition]=o,i.oldParentNode=t,i.relativeXPosition=0,i.parentNode=o,i.parent=o.id,o}calculatePositions(e){let t=e.nodeList;this.resetValues(t);let i=e.tree;i&&(this.calculateRelativeX(i,0),this.beforeLayout(t),this.firstWalk(i),this.secondWalk(i,-i.preX),this.afterLayout(t))}beforeLayout(e){for(let i of e)for(let e of i.children)if(e&&e.level-i.level>1){let s=e.level-i.level-1;for(;s>0;)e=t.createDummyNode(i,e,s),s--}}resetValues(e){for(let t of e)t.mod=0,t.ancestor=t,t.shift=0,t.thread=void 0,t.change=0,t.preX=0}calculateRelativeX(e,t){let i=e.children;for(let e=0,t=i.length;e<t;++e)this.calculateRelativeX(i[e],e);e.relativeXPosition=t}firstWalk(e){let t;if(e.hasChildren()){let i=e.getLeftMostChild();for(let t of e.children)this.firstWalk(t),i=this.apportion(t,i);this.executeShifts(e);let s=e.getLeftMostChild(),o=e.getRightMostChild(),r=(s.preX+o.preX)/2;(t=e.getLeftSibling())?(e.preX=t.preX+1,e.mod=e.preX-r):e.preX=r}else(t=e.getLeftSibling())?(e.preX=t.preX+1,e.mod=e.preX):e.preX=0}secondWalk(e,t){for(let i of(e.yPosition=e.preX+t,e.xPosition=e.level,e.children))this.secondWalk(i,t+e.mod)}executeShifts(e){let t=0,i=0;for(let s=e.children.length-1;s>=0;s--){let o=e.children[s];o.preX+=t,o.mod+=t,i+=o.change,t+=o.shift+i}}apportion(e,t){let i=e.getLeftSibling();if(i){let s=e,o=e,r=i,l=s.getLeftMostSibling(),n=s.mod,a=o.mod,h=r.mod,d=l.mod;for(;r&&r.nextRight()&&s&&s.nextLeft();){r=r.nextRight(),l=l.nextLeft(),s=s.nextLeft(),(o=o.nextRight()).ancestor=e;let i=r.preX+h-(s.preX+n)+1;i>0&&(this.moveSubtree(e.getAncestor(r,t),e,i),n+=i,a+=i),h+=r.mod,n+=s.mod,d+=l.mod,a+=o.mod}r&&r.nextRight()&&!o.nextRight()&&(o.thread=r.nextRight(),o.mod+=h-a),s&&s.nextLeft()&&!l.nextLeft()&&(l.thread=s.nextLeft(),l.mod+=n-d),t=e}return t}moveSubtree(e,t,i){let s=t.relativeXPosition-e.relativeXPosition;t.change-=i/s,t.shift+=i,t.preX+=i,t.mod+=i,e.change+=i/s}afterLayout(e){for(let t of e)t.oldParentNode&&(t.relativeXPosition=t.parentNode.relativeXPosition,t.parent=t.oldParentNode.parent,t.parentNode=t.oldParentNode,delete t.oldParentNode.children[t.relativeXPosition],t.oldParentNode.children[t.relativeXPosition]=t,t.oldParentNode=void 0)}}return t}),i(t,"Series/Treegraph/TreegraphSeriesDefaults.js",[],function(){return{reversed:!1,marker:{radius:10,lineWidth:0,symbol:"circle",fillOpacity:1,states:{}},link:{color:"#666666",lineWidth:1,radius:10,cursor:"default",type:"curved"},collapseButton:{onlyOnHover:!0,enabled:!0,lineWidth:1,x:0,y:0,height:18,width:18,shape:"circle",style:{cursor:"pointer",fontWeight:"bold",fontSize:"1em"}},fillSpace:!1,tooltip:{linkFormat:"{point.fromNode.id} → {point.toNode.id}",pointFormat:"{point.id}"},dataLabels:{defer:!0,linkTextPath:{attributes:{startOffset:"50%"}},enabled:!0,linkFormatter:()=>"",style:{textOverflow:"none"}},nodeDistance:30,nodeWidth:void 0}}),i(t,"Series/Treegraph/TreegraphSeries.js",[t["Series/PathUtilities.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Renderer/SVG/SVGRenderer.js"],t["Series/Treegraph/TreegraphNode.js"],t["Series/Treegraph/TreegraphPoint.js"],t["Series/TreeUtilities.js"],t["Core/Utilities.js"],t["Series/Treegraph/TreegraphLink.js"],t["Series/Treegraph/TreegraphLayout.js"],t["Series/Treegraph/TreegraphSeriesDefaults.js"]],function(e,t,i,s,o,r,l,n,a,h){let{getLinkPath:d}=e,{series:{prototype:p},seriesTypes:{treemap:c,column:u}}=t,{prototype:{symbols:f}}=i,{getLevelOptions:g,getNodeWidth:m}=r,{arrayMax:y,crisp:v,extend:b,merge:k,pick:L,relativeLength:P,splat:T}=l;class x extends c{constructor(){super(...arguments),this.nodeList=[],this.links=[]}init(){super.init.apply(this,arguments),this.layoutAlgorythm=new a}getLayoutModifiers(){let e=this.chart,t=this,i=e.plotSizeX,s=e.plotSizeY,o=y(this.points.map(e=>e.node.xPosition)),r=1/0,l=-1/0,n=1/0,a=-1/0,h=0,d=0,p=0,c=0;this.points.forEach(e=>{if(this.options.fillSpace&&!e.visible)return;let u=e.node,f=t.mapOptionsToLevel[e.node.level]||{},g=k(this.options.marker,f.marker,e.options.marker),y=g.width??m(this,o),v=P(g.radius||0,Math.min(i,s)),b=g.symbol,L="circle"!==b&&g.height?P(g.height,s):2*v,T="circle"!==b&&y?P(y,i):2*v;u.nodeSizeX=T,u.nodeSizeY=L,u.xPosition<=r&&(r=u.xPosition,d=Math.max(T+(g.lineWidth||0),d)),u.xPosition>=l&&(l=u.xPosition,h=Math.max(T+(g.lineWidth||0),h)),u.yPosition<=n&&(n=u.yPosition,c=Math.max(L+(g.lineWidth||0),c)),u.yPosition>=a&&(a=u.yPosition,p=Math.max(L+(g.lineWidth||0),p))});let u=a===n?1:(s-(c+p)/2)/(a-n),f=a===n?s/2:-u*n+c/2,g=l===r?1:(i-(h+h)/2)/(l-r),v=l===r?i/2:-g*r+d/2;return{ax:g,bx:v,ay:u,by:f}}getLinks(){let e=this,t=[];return this.data.forEach(i=>{let s=e.mapOptionsToLevel[i.node.level||0]||{};if(i.node.parent){let o=k(s,i.options);if(!i.linkToParent||i.linkToParent.destroyed){let t=new e.LinkClass(e,o,void 0,i);i.linkToParent=t}else i.collapsed=L(i.collapsed,(this.mapOptionsToLevel[i.node.level]||{}).collapsed),i.linkToParent.visible=i.linkToParent.toNode.visible;i.linkToParent.index=t.push(i.linkToParent)-1}else i.linkToParent&&(e.links.splice(i.linkToParent.index),i.linkToParent.destroy(),delete i.linkToParent)}),t}buildTree(e,t,i,s,o){let r=this.points[t];return i=r&&r.level||i,super.buildTree.call(this,e,t,i,s,o)}markerAttribs(){return{}}setCollapsedStatus(e,t){let i=e.point;i&&(i.collapsed=L(i.collapsed,(this.mapOptionsToLevel[e.level]||{}).collapsed),i.visible=t,t=!1!==t&&!i.collapsed),e.children.forEach(e=>{this.setCollapsedStatus(e,t)})}drawTracker(){u.prototype.drawTracker.apply(this,arguments),u.prototype.drawTracker.call(this,this.links)}translate(){let e=this.options,t=r.updateRootId(this),i;p.translate.call(this);let s=this.tree=this.getTree();i=this.nodeMap[t],""===t||i&&i.children.length||(this.setRootNode("",!1),t=this.rootNode,i=this.nodeMap[t]),this.mapOptionsToLevel=g({from:i.level+1,levels:e.levels,to:s.height,defaults:{levelIsConstant:this.options.levelIsConstant,colorByPoint:e.colorByPoint}}),this.setCollapsedStatus(s,!0),this.links=this.getLinks(),this.setTreeValues(s),this.layoutAlgorythm.calculatePositions(this),this.layoutModifier=this.getLayoutModifiers(),this.points.forEach(e=>{this.translateNode(e)}),this.points.forEach(e=>{e.linkToParent&&this.translateLink(e.linkToParent)}),e.colorByPoint||this.setColorRecursive(this.tree)}translateLink(e){let t=e.fromNode,i=e.toNode,s=this.options.link?.lineWidth||0,o=L(this.options.link?.curveFactor,.5),r=L(e.options.link?.type,this.options.link?.type,"default");if(t.shapeArgs&&i.shapeArgs){let l=t.shapeArgs.width||0,n=this.chart.inverted,a=v((t.shapeArgs.y||0)+(t.shapeArgs.height||0)/2,s),h=v((i.shapeArgs.y||0)+(i.shapeArgs.height||0)/2,s),p=v((t.shapeArgs.x||0)+l,s),c=v(i.shapeArgs.x||0,s);n&&(p-=l,c+=i.shapeArgs.width||0);let u=i.node.xPosition-t.node.xPosition;e.shapeType="path";let f=(Math.abs(c-p)+l)/u-l,g=v((c+p)/2,s);e.plotX=g,e.plotY=h,e.shapeArgs={d:d[r]({x1:p,y1:a,x2:c,y2:h,width:f,offset:f*o*(n?-1:1),inverted:n,parentVisible:i.visible,radius:this.options.link?.radius})},e.dlBox={x:(p+c)/2,y:(a+h)/2,height:s,width:0},e.tooltipPos=n?[(this.chart.plotSizeY||0)-e.dlBox.y,(this.chart.plotSizeX||0)-e.dlBox.x]:[e.dlBox.x,e.dlBox.y]}}drawNodeLabels(e){let t,i;let s=this.mapOptionsToLevel;for(let o of e)i=s[o.node.level],t={style:{}},i&&i.dataLabels&&(t=k(t,i.dataLabels),this.hasDataLabels=()=>!0),o.shapeArgs&&!T(this.options.dataLabels)[0].style.width&&(t.style.width=o.shapeArgs.width,o.dataLabel&&o.dataLabel.css({width:o.shapeArgs.width+"px"})),o.dlOptions=k(t,o.options.dataLabels);p.drawDataLabels.call(this,e)}alignDataLabel(e,t){let i=e.visible;e.visible=!0,super.alignDataLabel.apply(this,arguments),t.animate({opacity:!1===i?0:1},void 0,function(){i||t.hide()}),e.visible=i}drawDataLabels(){this.options.dataLabels&&(this.options.dataLabels=T(this.options.dataLabels),this.drawNodeLabels(this.points),p.drawDataLabels.call(this,this.links))}destroy(){if(this.links){for(let e of this.links)e.destroy();this.links.length=0}return p.destroy.apply(this,arguments)}pointAttribs(e,t){let i=e&&this.mapOptionsToLevel[e.node.level||0]||{},s=e&&e.options,o=i.states&&i.states[t]||{};e&&(e.options.marker=k(this.options.marker,i.marker,e.options.marker));let r=L(o&&o.link&&o.link.color,s&&s.link&&s.link.color,i&&i.link&&i.link.color,this.options.link&&this.options.link.color),l=L(o&&o.link&&o.link.lineWidth,s&&s.link&&s.link.lineWidth,i&&i.link&&i.link.lineWidth,this.options.link&&this.options.link.lineWidth),n=p.pointAttribs.call(this,e,t);return e&&(e.isLink&&(n.stroke=r,n["stroke-width"]=l,delete n.fill),e.visible||(n.opacity=0)),n}drawPoints(){c.prototype.drawPoints.apply(this,arguments),u.prototype.drawPoints.call(this,this.links)}translateNode(e){let t=this.chart,i=e.node,s=t.plotSizeY,o=t.plotSizeX,{ax:r,bx:l,ay:n,by:a}=this.layoutModifier,h=r*i.xPosition+l,d=n*i.yPosition+a,p=this.mapOptionsToLevel[i.level]||{},c=k(this.options.marker,p.marker,e.options.marker).symbol,u=i.nodeSizeY,g=i.nodeSizeX,m=this.options.reversed,y=i.x=t.inverted?o-g/2-h:h-g/2,v=i.y=m?d-u/2:s-d-u/2,P=L(e.options.borderRadius,p.borderRadius,this.options.borderRadius),T=f[c||"circle"];if(void 0===T?(e.hasImage=!0,e.shapeType="image",e.imageUrl=c.match(/^url\((.*?)\)$/)[1]):e.shapeType="path",!e.visible&&e.linkToParent){let t=e.linkToParent.fromNode;if(t){let{x:i=0,y:s=0,width:o=0,height:r=0}=t.shapeArgs||{};e.shapeArgs||(e.shapeArgs={}),e.hasImage||b(e.shapeArgs,{d:T(i,s,o,r,P?{r:P}:void 0)}),b(e.shapeArgs,{x:i,y:s}),e.plotX=t.plotX,e.plotY=t.plotY}}else e.plotX=y,e.plotY=v,e.shapeArgs={x:y,y:v,width:g,height:u,cursor:e.node.isLeaf?"default":"pointer"},e.hasImage||(e.shapeArgs.d=T(y,v,g,u,P?{r:P}:void 0));e.tooltipPos=t.inverted?[s-v-u/2,o-y-g/2]:[y+g/2,v]}}return x.defaultOptions=k(c.defaultOptions,h),b(x.prototype,{pointClass:o,NodeClass:s,LinkClass:n}),t.registerSeriesType("treegraph",x),x}),i(t,"masters/modules/treegraph.src.js",[t["Core/Globals.js"]],function(e){return e})});
8
+ */function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/treegraph",["highcharts","highcharts/modules/treemap"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function i(t,i,s,o){t.hasOwnProperty(i)||(t[i]=o.apply(null,s),"function"==typeof CustomEvent&&e.win.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:i,module:t[i]}})))}i(t,"Series/PathUtilities.js",[],function(){function e(e,t){let i=[];for(let s=0;s<e.length;s++){let o=e[s][1],r=e[s][2];if("number"==typeof o&&"number"==typeof r){if(0===s)i.push(["M",o,r]);else if(s===e.length-1)i.push(["L",o,r]);else if(t){let l=e[s-1],n=e[s+1];if(l&&n){let e=l[1],s=l[2],a=n[1],h=n[2];if("number"==typeof e&&"number"==typeof a&&"number"==typeof s&&"number"==typeof h&&e!==a&&s!==h){let l=e<a?1:-1,n=s<h?1:-1;i.push(["L",o-l*Math.min(Math.abs(o-e),t),r-n*Math.min(Math.abs(r-s),t)],["C",o,r,o,r,o+l*Math.min(Math.abs(o-a),t),r+n*Math.min(Math.abs(r-h),t)])}}}else i.push(["L",o,r])}}return i}return{applyRadius:e,getLinkPath:{default:function(t){let{x1:i,y1:s,x2:o,y2:r,width:l=0,inverted:n=!1,radius:a,parentVisible:h}=t,d=[["M",i,s],["L",i,s],["C",i,s,i,r,i,r],["L",i,r],["C",i,s,i,r,i,r],["L",i,r]];return h?e([["M",i,s],["L",i+l*(n?-.5:.5),s],["L",i+l*(n?-.5:.5),r],["L",o,r]],a):d},straight:function(e){let{x1:t,y1:i,x2:s,y2:o,width:r=0,inverted:l=!1,parentVisible:n}=e;return n?[["M",t,i],["L",t+r*(l?-1:1),o],["L",s,o]]:[["M",t,i],["L",t,o],["L",t,o]]},curved:function(e){let{x1:t,y1:i,x2:s,y2:o,offset:r=0,width:l=0,inverted:n=!1,parentVisible:a}=e;return a?[["M",t,i],["C",t+r,i,t-r+l*(n?-1:1),o,t+l*(n?-1:1),o],["L",s,o]]:[["M",t,i],["C",t,i,t,o,t,o],["L",s,o]]}}}}),i(t,"Series/Treegraph/TreegraphNode.js",[t["Core/Series/SeriesRegistry.js"]],function(e){let{seriesTypes:{treemap:{prototype:{NodeClass:t}}}}=e;return class extends t{constructor(){super(...arguments),this.mod=0,this.shift=0,this.change=0,this.children=[],this.preX=0,this.hidden=!1,this.wasVisited=!1,this.collapsed=!1}nextLeft(){return this.getLeftMostChild()||this.thread}nextRight(){return this.getRightMostChild()||this.thread}getAncestor(e,t){return e.ancestor.children[0]===this.children[0]?e.ancestor:t}getLeftMostSibling(){let e=this.getParent();if(e){for(let t of e.children)if(t&&t.point.visible)return t}}hasChildren(){let e=this.children;for(let t=0;t<e.length;t++)if(e[t].point.visible)return!0;return!1}getLeftSibling(){let e=this.getParent();if(e){let t=e.children;for(let e=this.relativeXPosition-1;e>=0;e--)if(t[e]&&t[e].point.visible)return t[e]}}getLeftMostChild(){let e=this.children;for(let t=0;t<e.length;t++)if(e[t].point.visible)return e[t]}getRightMostChild(){let e=this.children;for(let t=e.length-1;t>=0;t--)if(e[t].point.visible)return e[t]}getParent(){return this.parentNode}getFirstChild(){let e=this.children;for(let t=0;t<e.length;t++)if(e[t].point.visible)return e[t]}}}),i(t,"Series/Treegraph/TreegraphPoint.js",[t["Core/Series/Point.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,i){let{seriesTypes:{treemap:{prototype:{pointClass:s}}}}=t,{addEvent:o,fireEvent:r,merge:l}=i;class n extends s{constructor(){super(...arguments),this.dataLabelOnHidden=!0,this.isLink=!1,this.setState=e.prototype.setState}draw(){super.draw.apply(this,arguments);let e=this.graphic;e&&e.animate({visibility:this.visible?"inherit":"hidden"}),this.renderCollapseButton()}renderCollapseButton(){let e=this.series,t=this.graphic&&this.graphic.parentGroup,i=e.mapOptionsToLevel[this.node.level||0]||{},s=l(e.options.collapseButton,i.collapseButton,this.options.collapseButton),{width:o,height:r,shape:n,style:a}=s,h=this.series.chart,d=this.visible&&(this.collapsed||!s.onlyOnHover||"hover"===this.state)?1:0;if(this.shapeArgs){if(this.collapseButtonOptions=s,this.collapseButton){if(this.node.children.length&&s.enabled){let{x:e,y:t}=this.getCollapseBtnPosition(s);this.collapseButton.attr({text:this.collapsed?"+":"-",rotation:h.inverted?90:0,rotationOriginX:o/2,rotationOriginY:r/2,visibility:this.visible?"inherit":"hidden"}).animate({x:e,y:t,opacity:d})}else this.collapseButton.destroy(),delete this.collapseButton}else{if(!this.node.children.length||!s.enabled)return;let{x:e,y:i}=this.getCollapseBtnPosition(s),p=s.fillColor||this.color||"#cccccc";this.collapseButton=h.renderer.label(this.collapsed?"+":"-",e,i,n).attr({height:r-4,width:o-4,padding:2,fill:p,rotation:h.inverted?90:0,rotationOriginX:o/2,rotationOriginY:r/2,stroke:s.lineColor||"#ffffff","stroke-width":s.lineWidth,"text-align":"center",align:"center",zIndex:1,opacity:d,visibility:this.visible?"inherit":"hidden"}).addClass("highcharts-tracker").addClass("highcharts-collapse-button").removeClass("highcharts-no-tooltip").css(l({color:"string"==typeof p?h.renderer.getContrast(p):"#333333"},a)).add(t),this.collapseButton.element.point=this}}}toggleCollapse(e){let t=this.series;this.update({collapsed:e??!this.collapsed},!1,void 0,!1),r(t,"toggleCollapse"),t.redraw()}destroy(){this.collapseButton&&(this.collapseButton.destroy(),delete this.collapseButton,this.collapseButton=void 0),this.linkToParent&&(this.linkToParent.destroy(),delete this.linkToParent),super.destroy.apply(this,arguments)}getCollapseBtnPosition(e){let t=this.series.chart.inverted,i=e.width,s=e.height,{x:o=0,y:r=0,width:l=0,height:n=0}=this.shapeArgs||{};return{x:o+e.x+(t?-(.3*s):l+-.3*i),y:r+n/2-s/2+e.y}}}return o(n,"mouseOut",function(){let e=this.collapseButton,t=this.collapseButtonOptions;e&&t?.onlyOnHover&&!this.collapsed&&e.animate({opacity:0})}),o(n,"mouseOver",function(){this.collapseButton&&this.visible&&this.collapseButton.animate({opacity:1},this.series.options.states?.hover?.animation)}),o(n,"click",function(){this.toggleCollapse()}),n}),i(t,"Series/Treegraph/TreegraphLink.js",[t["Core/Series/Point.js"],t["Core/Utilities.js"],t["Core/Series/SeriesRegistry.js"]],function(e,t,i){let{pick:s,extend:o}=t,{seriesTypes:{column:{prototype:{pointClass:r}}}}=i;return class extends r{constructor(e,t,i,s){super(e,t,i),this.dataLabelOnNull=!0,this.formatPrefix="link",this.isLink=!0,this.node={},this.formatPrefix="link",this.dataLabelOnNull=!0,s&&(this.fromNode=s.node.parentNode.point,this.visible=s.visible,this.toNode=s,this.id=this.toNode.id+"-"+this.fromNode.id)}update(t,i,r,l){let n={id:this.id,formatPrefix:this.formatPrefix};e.prototype.update.call(this,t,!this.isLink&&i,r,l),this.visible=this.toNode.visible,o(this,n),s(i,!0)&&this.series.chart.redraw(r)}}}),i(t,"Series/Treegraph/TreegraphLayout.js",[t["Series/Treegraph/TreegraphNode.js"]],function(e){class t{static createDummyNode(t,i,s){let o=new e;return o.id=t.id+"-"+s,o.ancestor=t,o.children.push(i),o.parent=t.id,o.parentNode=t,o.point=i.point,o.level=i.level-s,o.relativeXPosition=i.relativeXPosition,o.visible=i.visible,t.children[i.relativeXPosition]=o,i.oldParentNode=t,i.relativeXPosition=0,i.parentNode=o,i.parent=o.id,o}calculatePositions(e){let t=e.nodeList;this.resetValues(t);let i=e.tree;i&&(this.calculateRelativeX(i,0),this.beforeLayout(t),this.firstWalk(i),this.secondWalk(i,-i.preX),this.afterLayout(t))}beforeLayout(e){for(let i of e)for(let e of i.children)if(e&&e.level-i.level>1){let s=e.level-i.level-1;for(;s>0;)e=t.createDummyNode(i,e,s),s--}}resetValues(e){for(let t of e)t.mod=0,t.ancestor=t,t.shift=0,t.thread=void 0,t.change=0,t.preX=0}calculateRelativeX(e,t){let i=e.children;for(let e=0,t=i.length;e<t;++e)this.calculateRelativeX(i[e],e);e.relativeXPosition=t}firstWalk(e){let t;if(e.hasChildren()){let i=e.getLeftMostChild();for(let t of e.children)this.firstWalk(t),i=this.apportion(t,i);this.executeShifts(e);let s=e.getLeftMostChild(),o=e.getRightMostChild(),r=(s.preX+o.preX)/2;(t=e.getLeftSibling())?(e.preX=t.preX+1,e.mod=e.preX-r):e.preX=r}else(t=e.getLeftSibling())?(e.preX=t.preX+1,e.mod=e.preX):e.preX=0}secondWalk(e,t){for(let i of(e.yPosition=e.preX+t,e.xPosition=e.level,e.children))this.secondWalk(i,t+e.mod)}executeShifts(e){let t=0,i=0;for(let s=e.children.length-1;s>=0;s--){let o=e.children[s];o.preX+=t,o.mod+=t,i+=o.change,t+=o.shift+i}}apportion(e,t){let i=e.getLeftSibling();if(i){let s=e,o=e,r=i,l=s.getLeftMostSibling(),n=s.mod,a=o.mod,h=r.mod,d=l.mod;for(;r&&r.nextRight()&&s&&s.nextLeft();){r=r.nextRight(),l=l.nextLeft(),s=s.nextLeft(),(o=o.nextRight()).ancestor=e;let i=r.preX+h-(s.preX+n)+1;i>0&&(this.moveSubtree(e.getAncestor(r,t),e,i),n+=i,a+=i),h+=r.mod,n+=s.mod,d+=l.mod,a+=o.mod}r&&r.nextRight()&&!o.nextRight()&&(o.thread=r.nextRight(),o.mod+=h-a),s&&s.nextLeft()&&!l.nextLeft()&&(l.thread=s.nextLeft(),l.mod+=n-d),t=e}return t}moveSubtree(e,t,i){let s=t.relativeXPosition-e.relativeXPosition;t.change-=i/s,t.shift+=i,t.preX+=i,t.mod+=i,e.change+=i/s}afterLayout(e){for(let t of e)t.oldParentNode&&(t.relativeXPosition=t.parentNode.relativeXPosition,t.parent=t.oldParentNode.parent,t.parentNode=t.oldParentNode,delete t.oldParentNode.children[t.relativeXPosition],t.oldParentNode.children[t.relativeXPosition]=t,t.oldParentNode=void 0)}}return t}),i(t,"Series/Treegraph/TreegraphSeriesDefaults.js",[],function(){return{reversed:!1,marker:{radius:10,lineWidth:0,symbol:"circle",fillOpacity:1,states:{}},link:{color:"#666666",lineWidth:1,radius:10,cursor:"default",type:"curved"},collapseButton:{onlyOnHover:!0,enabled:!0,lineWidth:1,x:0,y:0,height:18,width:18,shape:"circle",style:{cursor:"pointer",fontWeight:"bold",fontSize:"1em"}},fillSpace:!1,tooltip:{linkFormat:"{point.fromNode.id} → {point.toNode.id}",pointFormat:"{point.id}"},dataLabels:{defer:!0,linkTextPath:{attributes:{startOffset:"50%"}},enabled:!0,linkFormatter:()=>"",style:{textOverflow:"none"}},nodeDistance:30,nodeWidth:void 0}}),i(t,"Extensions/TextPath.js",[t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t){let{deg2rad:i}=e,{addEvent:s,merge:o,uniqueKey:r,defined:l,extend:n}=t;function a(e,t){t=o(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},t);let i=this.renderer.url,a=this.text||this,h=a.textPath,{attributes:d,enabled:p}=t;if(e=e||h&&h.path,h&&h.undo(),e&&p){let t=s(a,"afterModifyTree",t=>{if(e&&p){let s=e.attr("id");s||e.attr("id",s=r());let o={x:0,y:0};l(d.dx)&&(o.dx=d.dx,delete d.dx),l(d.dy)&&(o.dy=d.dy,delete d.dy),a.attr(o),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let h=t.nodes.slice(0);t.nodes.length=0,t.nodes[0]={tagName:"textPath",attributes:n(d,{"text-anchor":d.textAnchor,href:`${i}#${s}`}),children:h}}});a.textPath={path:e,undo:t}}else a.attr({dx:0,dy:0}),delete a.textPath;return this.added&&(a.textCache="",this.renderer.buildText(a)),this}function h(e){let t=e.bBox,s=this.element?.querySelector("textPath");if(s){let e=[],{b:o,h:r}=this.renderer.fontMetrics(this.element),l=r-o,n=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),a=s.innerHTML.replace(n,"").split(/<tspan class="highcharts-br"[^>]*>/),h=a.length,d=(e,t)=>{let{x:r,y:n}=t,a=(s.getRotationOfChar(e)-90)*i,h=Math.cos(a),d=Math.sin(a);return[[r-l*h,n-l*d],[r+o*h,n+o*d]]};for(let t=0,i=0;i<h;i++){let o=a[i].length;for(let r=0;r<o;r+=5)try{let o=t+r+i,[l,n]=d(o,s.getStartPositionOfChar(o));0===r?(e.push(n),e.push(l)):(0===i&&e.unshift(n),i===h-1&&e.push(l))}catch(e){break}t+=o-1;try{let o=t+i,r=s.getEndPositionOfChar(o),[l,n]=d(o,r);e.unshift(n),e.unshift(l)}catch(e){break}}e.length&&e.push(e[0].slice()),t.polygon=e}return t}function d(e){let t=e.labelOptions,i=e.point,s=t[i.formatPrefix+"TextPath"]||t.textPath;s&&!t.useHTML&&(this.setTextPath(i.getDataLabelPath?.(this)||i.graphic,s),i.dataLabelPath&&!s.enabled&&(i.dataLabelPath=i.dataLabelPath.destroy()))}return{compose:function(e){s(e,"afterGetBBox",h),s(e,"beforeAddingDataLabel",d);let t=e.prototype;t.setTextPath||(t.setTextPath=a)}}}),i(t,"Series/Treegraph/TreegraphSeries.js",[t["Series/PathUtilities.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Renderer/SVG/SVGRenderer.js"],t["Series/Treegraph/TreegraphNode.js"],t["Series/Treegraph/TreegraphPoint.js"],t["Series/TreeUtilities.js"],t["Core/Utilities.js"],t["Series/Treegraph/TreegraphLink.js"],t["Series/Treegraph/TreegraphLayout.js"],t["Series/Treegraph/TreegraphSeriesDefaults.js"],t["Core/Renderer/SVG/SVGElement.js"],t["Extensions/TextPath.js"]],function(e,t,i,s,o,r,l,n,a,h,d,p){let{getLinkPath:c}=e,{series:{prototype:u},seriesTypes:{treemap:f,column:g}}=t,{prototype:{symbols:y}}=i,{getLevelOptions:m,getNodeWidth:b}=r,{arrayMax:v,crisp:P,extend:k,merge:L,pick:x,relativeLength:T,splat:C}=l;p.compose(d);class S extends f{constructor(){super(...arguments),this.nodeList=[],this.links=[]}init(){super.init.apply(this,arguments),this.layoutAlgorythm=new a;let e=this,t=this.chart.labelCollectors;t.some(e=>"collectorFunc"===e.name)||t.push(function(){let t=[];if(!C(e.options.dataLabels)[0].allowOverlap)for(let i of e.links)i.dataLabel&&t.push(i.dataLabel);return t})}getLayoutModifiers(){let e=this.chart,t=this,i=e.plotSizeX,s=e.plotSizeY,o=v(this.points.map(e=>e.node.xPosition)),r=1/0,l=-1/0,n=1/0,a=-1/0,h=0,d=0,p=0,c=0;this.points.forEach(e=>{if(this.options.fillSpace&&!e.visible)return;let u=e.node,f=t.mapOptionsToLevel[e.node.level]||{},g=L(this.options.marker,f.marker,e.options.marker),y=g.width??b(this,o),m=T(g.radius||0,Math.min(i,s)),v=g.symbol,P="circle"!==v&&g.height?T(g.height,s):2*m,k="circle"!==v&&y?T(y,i):2*m;u.nodeSizeX=k,u.nodeSizeY=P,u.xPosition<=r&&(r=u.xPosition,d=Math.max(k+(g.lineWidth||0),d)),u.xPosition>=l&&(l=u.xPosition,h=Math.max(k+(g.lineWidth||0),h)),u.yPosition<=n&&(n=u.yPosition,c=Math.max(P+(g.lineWidth||0),c)),u.yPosition>=a&&(a=u.yPosition,p=Math.max(P+(g.lineWidth||0),p))});let u=a===n?1:(s-(c+p)/2)/(a-n),f=a===n?s/2:-u*n+c/2,g=l===r?1:(i-(h+h)/2)/(l-r),y=l===r?i/2:-g*r+d/2;return{ax:g,bx:y,ay:u,by:f}}getLinks(){let e=this,t=[];return this.data.forEach(i=>{let s=e.mapOptionsToLevel[i.node.level||0]||{};if(i.node.parent){let o=L(s,i.options);if(!i.linkToParent||i.linkToParent.destroyed){let t=new e.LinkClass(e,o,void 0,i);i.linkToParent=t}else i.collapsed=x(i.collapsed,(this.mapOptionsToLevel[i.node.level]||{}).collapsed),i.linkToParent.visible=i.linkToParent.toNode.visible;i.linkToParent.index=t.push(i.linkToParent)-1}else i.linkToParent&&(e.links.splice(i.linkToParent.index),i.linkToParent.destroy(),delete i.linkToParent)}),t}buildTree(e,t,i,s,o){let r=this.points[t];return i=r&&r.level||i,super.buildTree.call(this,e,t,i,s,o)}markerAttribs(){return{}}setCollapsedStatus(e,t){let i=e.point;i&&(i.collapsed=x(i.collapsed,(this.mapOptionsToLevel[e.level]||{}).collapsed),i.visible=t,t=!1!==t&&!i.collapsed),e.children.forEach(e=>{this.setCollapsedStatus(e,t)})}drawTracker(){g.prototype.drawTracker.apply(this,arguments),g.prototype.drawTracker.call(this,this.links)}translate(){let e=this.options,t=r.updateRootId(this),i;u.translate.call(this);let s=this.tree=this.getTree();i=this.nodeMap[t],""===t||i&&i.children.length||(this.setRootNode("",!1),t=this.rootNode,i=this.nodeMap[t]),this.mapOptionsToLevel=m({from:i.level+1,levels:e.levels,to:s.height,defaults:{levelIsConstant:this.options.levelIsConstant,colorByPoint:e.colorByPoint}}),this.setCollapsedStatus(s,!0),this.links=this.getLinks(),this.setTreeValues(s),this.layoutAlgorythm.calculatePositions(this),this.layoutModifier=this.getLayoutModifiers(),this.points.forEach(e=>{this.translateNode(e)}),this.points.forEach(e=>{e.linkToParent&&this.translateLink(e.linkToParent)}),e.colorByPoint||this.setColorRecursive(this.tree)}translateLink(e){let t=e.fromNode,i=e.toNode,s=this.options.link?.lineWidth||0,o=x(this.options.link?.curveFactor,.5),r=x(e.options.link?.type,this.options.link?.type,"default");if(t.shapeArgs&&i.shapeArgs){let l=t.shapeArgs.width||0,n=this.chart.inverted,a=P((t.shapeArgs.y||0)+(t.shapeArgs.height||0)/2,s),h=P((i.shapeArgs.y||0)+(i.shapeArgs.height||0)/2,s),d=P((t.shapeArgs.x||0)+l,s),p=P(i.shapeArgs.x||0,s);n&&(d-=l,p+=i.shapeArgs.width||0);let u=i.node.xPosition-t.node.xPosition;e.shapeType="path";let f=(Math.abs(p-d)+l)/u-l,g=P((p+d)/2,s);e.plotX=g,e.plotY=h,e.shapeArgs={d:c[r]({x1:d,y1:a,x2:p,y2:h,width:f,offset:f*o*(n?-1:1),inverted:n,parentVisible:i.visible,radius:this.options.link?.radius})},e.dlBox={x:(d+p)/2,y:(a+h)/2,height:s,width:0},e.tooltipPos=n?[(this.chart.plotSizeY||0)-e.dlBox.y,(this.chart.plotSizeX||0)-e.dlBox.x]:[e.dlBox.x,e.dlBox.y]}}drawNodeLabels(e){let t,i;let s=this.mapOptionsToLevel;for(let o of e)i=s[o.node.level],t={style:{}},i&&i.dataLabels&&(t=L(t,i.dataLabels),this.hasDataLabels=()=>!0),o.shapeArgs&&!C(this.options.dataLabels)[0].style.width&&(t.style.width=o.shapeArgs.width,o.dataLabel&&o.dataLabel.css({width:o.shapeArgs.width+"px"})),o.dlOptions=L(t,o.options.dataLabels);u.drawDataLabels.call(this,e)}alignDataLabel(e,t){let i=e.visible;e.visible=!0,super.alignDataLabel.apply(this,arguments),t.animate({opacity:!1===i?0:1},void 0,function(){i||t.hide()}),e.visible=i}drawDataLabels(){this.options.dataLabels&&(this.options.dataLabels=C(this.options.dataLabels),this.drawNodeLabels(this.points),u.drawDataLabels.call(this,this.links))}destroy(){if(this.links){for(let e of this.links)e.destroy();this.links.length=0}return u.destroy.apply(this,arguments)}pointAttribs(e,t){let i=e&&this.mapOptionsToLevel[e.node.level||0]||{},s=e&&e.options,o=i.states&&i.states[t]||{};e&&(e.options.marker=L(this.options.marker,i.marker,e.options.marker));let r=x(o&&o.link&&o.link.color,s&&s.link&&s.link.color,i&&i.link&&i.link.color,this.options.link&&this.options.link.color),l=x(o&&o.link&&o.link.lineWidth,s&&s.link&&s.link.lineWidth,i&&i.link&&i.link.lineWidth,this.options.link&&this.options.link.lineWidth),n=u.pointAttribs.call(this,e,t);return e&&(e.isLink&&(n.stroke=r,n["stroke-width"]=l,delete n.fill),e.visible||(n.opacity=0)),n}drawPoints(){f.prototype.drawPoints.apply(this,arguments),g.prototype.drawPoints.call(this,this.links)}translateNode(e){let t=this.chart,i=e.node,s=t.plotSizeY,o=t.plotSizeX,{ax:r,bx:l,ay:n,by:a}=this.layoutModifier,h=r*i.xPosition+l,d=n*i.yPosition+a,p=this.mapOptionsToLevel[i.level]||{},c=L(this.options.marker,p.marker,e.options.marker).symbol,u=i.nodeSizeY,f=i.nodeSizeX,g=this.options.reversed,m=i.x=t.inverted?o-f/2-h:h-f/2,b=i.y=g?d-u/2:s-d-u/2,v=x(e.options.borderRadius,p.borderRadius,this.options.borderRadius),P=y[c||"circle"];if(void 0===P?(e.hasImage=!0,e.shapeType="image",e.imageUrl=c.match(/^url\((.*?)\)$/)[1]):e.shapeType="path",!e.visible&&e.linkToParent){let t=e.linkToParent.fromNode;if(t){let{x:i=0,y:s=0,width:o=0,height:r=0}=t.shapeArgs||{};e.shapeArgs||(e.shapeArgs={}),e.hasImage||k(e.shapeArgs,{d:P(i,s,o,r,v?{r:v}:void 0)}),k(e.shapeArgs,{x:i,y:s}),e.plotX=t.plotX,e.plotY=t.plotY}}else e.plotX=m,e.plotY=b,e.shapeArgs={x:m,y:b,width:f,height:u,cursor:e.node.isLeaf?"default":"pointer"},e.hasImage||(e.shapeArgs.d=P(m,b,f,u,v?{r:v}:void 0));e.tooltipPos=t.inverted?[s-b-u/2,o-m-f/2]:[m+f/2,b]}}return S.defaultOptions=L(f.defaultOptions,h),k(S.prototype,{pointClass:o,NodeClass:s,LinkClass:n}),t.registerSeriesType("treegraph",S),S}),i(t,"masters/modules/treegraph.src.js",[t["Core/Globals.js"]],function(e){return e})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v11.4.3 (2024-05-22)
2
+ * @license Highcharts JS v11.4.5 (2024-07-04)
3
3
  * Treegraph chart series type
4
4
  *
5
5
  * (c) 2010-2024 Pawel Lysy Grzegorz Blachlinski
@@ -27,7 +27,7 @@
27
27
  obj[path] = fn.apply(null, args);
28
28
 
29
29
  if (typeof CustomEvent === 'function') {
30
- window.dispatchEvent(new CustomEvent(
30
+ Highcharts.win.dispatchEvent(new CustomEvent(
31
31
  'HighchartsModuleLoaded',
32
32
  { detail: { path: path, module: obj[path] } }
33
33
  ));
@@ -969,8 +969,8 @@
969
969
  *
970
970
  * @product highcharts
971
971
  * @since 10.3.0
972
- * @requires modules/treemap.js
973
- * @requires modules/treegraph.js
972
+ * @requires modules/treemap
973
+ * @requires modules/treegraph
974
974
  * @optionparent plotOptions.treegraph
975
975
  */
976
976
  const TreegraphSeriesDefaults = {
@@ -1217,7 +1217,234 @@
1217
1217
 
1218
1218
  return TreegraphSeriesDefaults;
1219
1219
  });
1220
- _registerModule(_modules, 'Series/Treegraph/TreegraphSeries.js', [_modules['Series/PathUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Series/Treegraph/TreegraphNode.js'], _modules['Series/Treegraph/TreegraphPoint.js'], _modules['Series/TreeUtilities.js'], _modules['Core/Utilities.js'], _modules['Series/Treegraph/TreegraphLink.js'], _modules['Series/Treegraph/TreegraphLayout.js'], _modules['Series/Treegraph/TreegraphSeriesDefaults.js']], function (PU, SeriesRegistry, SVGRenderer, TreegraphNode, TreegraphPoint, TU, U, TreegraphLink, TreegraphLayout, TreegraphSeriesDefaults) {
1220
+ _registerModule(_modules, 'Extensions/TextPath.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
1221
+ /* *
1222
+ *
1223
+ * Highcharts module with textPath functionality.
1224
+ *
1225
+ * (c) 2009-2024 Torstein Honsi
1226
+ *
1227
+ * License: www.highcharts.com/license
1228
+ *
1229
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
1230
+ *
1231
+ * */
1232
+ const { deg2rad } = H;
1233
+ const { addEvent, merge, uniqueKey, defined, extend } = U;
1234
+ /**
1235
+ * Set a text path for a `text` or `label` element, allowing the text to
1236
+ * flow along a path.
1237
+ *
1238
+ * In order to unset the path for an existing element, call `setTextPath`
1239
+ * with `{ enabled: false }` as the second argument.
1240
+ *
1241
+ * Text path support is not bundled into `highcharts.js`, and requires the
1242
+ * `modules/textpath.js` file. However, it is included in the script files of
1243
+ * those series types that use it by default
1244
+ *
1245
+ * @sample highcharts/members/renderer-textpath/ Text path demonstrated
1246
+ *
1247
+ * @function Highcharts.SVGElement#setTextPath
1248
+ *
1249
+ * @param {Highcharts.SVGElement|undefined} path
1250
+ * Path to follow. If undefined, it allows changing options for the
1251
+ * existing path.
1252
+ *
1253
+ * @param {Highcharts.DataLabelsTextPathOptionsObject} textPathOptions
1254
+ * Options.
1255
+ *
1256
+ * @return {Highcharts.SVGElement} Returns the SVGElement for chaining.
1257
+ */
1258
+ function setTextPath(path, textPathOptions) {
1259
+ // Defaults
1260
+ textPathOptions = merge(true, {
1261
+ enabled: true,
1262
+ attributes: {
1263
+ dy: -5,
1264
+ startOffset: '50%',
1265
+ textAnchor: 'middle'
1266
+ }
1267
+ }, textPathOptions);
1268
+ const url = this.renderer.url, textWrapper = this.text || this, textPath = textWrapper.textPath, { attributes, enabled } = textPathOptions;
1269
+ path = path || (textPath && textPath.path);
1270
+ // Remove previously added event
1271
+ if (textPath) {
1272
+ textPath.undo();
1273
+ }
1274
+ if (path && enabled) {
1275
+ const undo = addEvent(textWrapper, 'afterModifyTree', (e) => {
1276
+ if (path && enabled) {
1277
+ // Set ID for the path
1278
+ let textPathId = path.attr('id');
1279
+ if (!textPathId) {
1280
+ path.attr('id', textPathId = uniqueKey());
1281
+ }
1282
+ // Set attributes for the <text>
1283
+ const textAttribs = {
1284
+ // `dx`/`dy` options must by set on <text> (parent), the
1285
+ // rest should be set on <textPath>
1286
+ x: 0,
1287
+ y: 0
1288
+ };
1289
+ if (defined(attributes.dx)) {
1290
+ textAttribs.dx = attributes.dx;
1291
+ delete attributes.dx;
1292
+ }
1293
+ if (defined(attributes.dy)) {
1294
+ textAttribs.dy = attributes.dy;
1295
+ delete attributes.dy;
1296
+ }
1297
+ textWrapper.attr(textAttribs);
1298
+ // Handle label properties
1299
+ this.attr({ transform: '' });
1300
+ if (this.box) {
1301
+ this.box = this.box.destroy();
1302
+ }
1303
+ // Wrap the nodes in a textPath
1304
+ const children = e.nodes.slice(0);
1305
+ e.nodes.length = 0;
1306
+ e.nodes[0] = {
1307
+ tagName: 'textPath',
1308
+ attributes: extend(attributes, {
1309
+ 'text-anchor': attributes.textAnchor,
1310
+ href: `${url}#${textPathId}`
1311
+ }),
1312
+ children
1313
+ };
1314
+ }
1315
+ });
1316
+ // Set the reference
1317
+ textWrapper.textPath = { path, undo };
1318
+ }
1319
+ else {
1320
+ textWrapper.attr({ dx: 0, dy: 0 });
1321
+ delete textWrapper.textPath;
1322
+ }
1323
+ if (this.added) {
1324
+ // Rebuild text after added
1325
+ textWrapper.textCache = '';
1326
+ this.renderer.buildText(textWrapper);
1327
+ }
1328
+ return this;
1329
+ }
1330
+ /**
1331
+ * Attach a polygon to a bounding box if the element contains a textPath.
1332
+ *
1333
+ * @function Highcharts.SVGElement#setPolygon
1334
+ *
1335
+ * @param {any} event
1336
+ * An event containing a bounding box object
1337
+ *
1338
+ * @return {Highcharts.BBoxObject} Returns the bounding box object.
1339
+ */
1340
+ function setPolygon(event) {
1341
+ const bBox = event.bBox, tp = this.element?.querySelector('textPath');
1342
+ if (tp) {
1343
+ const polygon = [], { b, h } = this.renderer.fontMetrics(this.element), descender = h - b, lineCleanerRegex = new RegExp('(<tspan>|' +
1344
+ '<tspan(?!\\sclass="highcharts-br")[^>]*>|' +
1345
+ '<\\/tspan>)', 'g'), lines = tp
1346
+ .innerHTML
1347
+ .replace(lineCleanerRegex, '')
1348
+ .split(/<tspan class="highcharts-br"[^>]*>/), numOfLines = lines.length;
1349
+ // Calculate top and bottom coordinates for
1350
+ // either the start or the end of a single
1351
+ // character, and append it to the polygon.
1352
+ const appendTopAndBottom = (charIndex, positionOfChar) => {
1353
+ const { x, y } = positionOfChar, rotation = (tp.getRotationOfChar(charIndex) - 90) * deg2rad, cosRot = Math.cos(rotation), sinRot = Math.sin(rotation);
1354
+ return [
1355
+ [
1356
+ x - descender * cosRot,
1357
+ y - descender * sinRot
1358
+ ],
1359
+ [
1360
+ x + b * cosRot,
1361
+ y + b * sinRot
1362
+ ]
1363
+ ];
1364
+ };
1365
+ for (let i = 0, lineIndex = 0; lineIndex < numOfLines; lineIndex++) {
1366
+ const line = lines[lineIndex], lineLen = line.length;
1367
+ for (let lineCharIndex = 0; lineCharIndex < lineLen; lineCharIndex += 5) {
1368
+ try {
1369
+ const srcCharIndex = (i +
1370
+ lineCharIndex +
1371
+ lineIndex), [lower, upper] = appendTopAndBottom(srcCharIndex, tp.getStartPositionOfChar(srcCharIndex));
1372
+ if (lineCharIndex === 0) {
1373
+ polygon.push(upper);
1374
+ polygon.push(lower);
1375
+ }
1376
+ else {
1377
+ if (lineIndex === 0) {
1378
+ polygon.unshift(upper);
1379
+ }
1380
+ if (lineIndex === numOfLines - 1) {
1381
+ polygon.push(lower);
1382
+ }
1383
+ }
1384
+ }
1385
+ catch (e) {
1386
+ // Safari fails on getStartPositionOfChar even if the
1387
+ // character is within the `textContent.length`
1388
+ break;
1389
+ }
1390
+ }
1391
+ i += lineLen - 1;
1392
+ try {
1393
+ const srcCharIndex = i + lineIndex, charPos = tp.getEndPositionOfChar(srcCharIndex), [lower, upper] = appendTopAndBottom(srcCharIndex, charPos);
1394
+ polygon.unshift(upper);
1395
+ polygon.unshift(lower);
1396
+ }
1397
+ catch (e) {
1398
+ // Safari fails on getStartPositionOfChar even if the character
1399
+ // is within the `textContent.length`
1400
+ break;
1401
+ }
1402
+ }
1403
+ // Close it
1404
+ if (polygon.length) {
1405
+ polygon.push(polygon[0].slice());
1406
+ }
1407
+ bBox.polygon = polygon;
1408
+ }
1409
+ return bBox;
1410
+ }
1411
+ /**
1412
+ * Draw text along a textPath for a dataLabel.
1413
+ *
1414
+ * @function Highcharts.SVGElement#setTextPath
1415
+ *
1416
+ * @param {any} event
1417
+ * An event containing label options
1418
+ *
1419
+ * @return {void}
1420
+ */
1421
+ function drawTextPath(event) {
1422
+ const labelOptions = event.labelOptions, point = event.point, textPathOptions = (labelOptions[point.formatPrefix + 'TextPath'] ||
1423
+ labelOptions.textPath);
1424
+ if (textPathOptions && !labelOptions.useHTML) {
1425
+ this.setTextPath(point.getDataLabelPath?.(this) || point.graphic, textPathOptions);
1426
+ if (point.dataLabelPath &&
1427
+ !textPathOptions.enabled) {
1428
+ // Clean the DOM
1429
+ point.dataLabelPath = (point.dataLabelPath.destroy());
1430
+ }
1431
+ }
1432
+ }
1433
+ function compose(SVGElementClass) {
1434
+ addEvent(SVGElementClass, 'afterGetBBox', setPolygon);
1435
+ addEvent(SVGElementClass, 'beforeAddingDataLabel', drawTextPath);
1436
+ const svgElementProto = SVGElementClass.prototype;
1437
+ if (!svgElementProto.setTextPath) {
1438
+ svgElementProto.setTextPath = setTextPath;
1439
+ }
1440
+ }
1441
+ const TextPath = {
1442
+ compose
1443
+ };
1444
+
1445
+ return TextPath;
1446
+ });
1447
+ _registerModule(_modules, 'Series/Treegraph/TreegraphSeries.js', [_modules['Series/PathUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Series/Treegraph/TreegraphNode.js'], _modules['Series/Treegraph/TreegraphPoint.js'], _modules['Series/TreeUtilities.js'], _modules['Core/Utilities.js'], _modules['Series/Treegraph/TreegraphLink.js'], _modules['Series/Treegraph/TreegraphLayout.js'], _modules['Series/Treegraph/TreegraphSeriesDefaults.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Extensions/TextPath.js']], function (PU, SeriesRegistry, SVGRenderer, TreegraphNode, TreegraphPoint, TU, U, TreegraphLink, TreegraphLayout, TreegraphSeriesDefaults, SVGElement, TextPath) {
1221
1448
  /* *
1222
1449
  *
1223
1450
  * (c) 2010-2024 Pawel Lysy Grzegorz Blachlinski
@@ -1232,6 +1459,7 @@
1232
1459
  const { prototype: { symbols } } = SVGRenderer;
1233
1460
  const { getLevelOptions, getNodeWidth } = TU;
1234
1461
  const { arrayMax, crisp, extend, merge, pick, relativeLength, splat } = U;
1462
+ TextPath.compose(SVGElement);
1235
1463
  /* *
1236
1464
  *
1237
1465
  * Class
@@ -1265,6 +1493,24 @@
1265
1493
  init() {
1266
1494
  super.init.apply(this, arguments);
1267
1495
  this.layoutAlgorythm = new TreegraphLayout();
1496
+ // Register the link data labels in the label collector for overlap
1497
+ // detection.
1498
+ const series = this, collectors = this.chart.labelCollectors, collectorFunc = function () {
1499
+ const linkLabels = [];
1500
+ // Check links for overlap
1501
+ if (!splat(series.options.dataLabels)[0].allowOverlap) {
1502
+ for (const link of series.links) {
1503
+ if (link.dataLabel) {
1504
+ linkLabels.push(link.dataLabel);
1505
+ }
1506
+ }
1507
+ }
1508
+ return linkLabels;
1509
+ };
1510
+ // Only add the collector function if it is not present
1511
+ if (!collectors.some((f) => f.name === 'collectorFunc')) {
1512
+ collectors.push(collectorFunc);
1513
+ }
1268
1514
  }
1269
1515
  /**
1270
1516
  * Calculate `a` and `b` parameters of linear transformation, where
@@ -1653,8 +1899,8 @@
1653
1899
  * relativeXValue, softThreshold, stack, stacking, step,
1654
1900
  * traverseUpButton, xAxis, yAxis, zoneAxis, zones
1655
1901
  * @product highcharts
1656
- * @requires modules/treemap.js
1657
- * @requires modules/treegraph.js
1902
+ * @requires modules/treemap
1903
+ * @requires modules/treegraph
1658
1904
  * @apioption series.treegraph
1659
1905
  */
1660
1906
  /**
@@ -1745,4 +1991,4 @@
1745
1991
 
1746
1992
  return Highcharts;
1747
1993
  });
1748
- }));
1994
+ }));
@@ -1,9 +1,9 @@
1
1
  !/**
2
- * Highcharts Gantt JS v11.4.3 (2024-05-22)
2
+ * Highcharts Gantt JS v11.4.5 (2024-07-04)
3
3
  *
4
4
  * Tree Grid
5
5
  *
6
6
  * (c) 2016-2024 Jon Arild Nygard
7
7
  *
8
8
  * License: www.highcharts.com/license
9
- */function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/treegrid",["highcharts"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function i(e,t,i,s){e.hasOwnProperty(t)||(e[t]=s.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}i(t,"Core/Axis/BrokenAxis.js",[t["Core/Axis/Stacking/StackItem.js"],t["Core/Utilities.js"]],function(e,t){var i;let{addEvent:s,find:o,fireEvent:r,isArray:n,isNumber:l,pick:a}=t;return function(t){function i(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function d(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function h(){let e=this.brokenAxis;if(e?.hasBreaks){let t=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;i<t.length;i++)e.isInAnyBreak(t[i])||s.push(t[i]);this.tickPositions=s,this.tickPositions.info=i}}function c(){this.brokenAxis||(this.brokenAxis=new k(this))}function p(){let{isDirty:e,options:{connectNulls:t},points:i,xAxis:s,yAxis:o}=this;if(e){let e=i.length;for(;e--;){let r=i[e],n=!(null===r.y&&!1===t)&&(s?.brokenAxis?.isInAnyBreak(r.x,!0)||o?.brokenAxis?.isInAnyBreak(r.y,!0));r.visible=!n&&!1!==r.options.visible}}}function f(){this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,a(this.pointArrayMap,["y"]))}function u(e,t){let i,s,o;let n=this,d=n.points;if(e?.brokenAxis?.hasBreaks){let h=e.brokenAxis;t.forEach(function(t){i=h?.breakArray||[],s=e.isXAxis?e.min:a(n.options.threshold,e.min);let c=e?.options?.breaks?.filter(function(e){let t=!0;for(let s=0;s<i.length;s++){let o=i[s];if(o.from===e.from&&o.to===e.to){t=!1;break}}return t});d.forEach(function(n){o=a(n["stack"+t.toUpperCase()],n[t]),i.forEach(function(t){if(l(s)&&l(o)){let i="";s<t.from&&o>t.to||s>t.from&&o<t.from?i="pointBreak":(s<t.from&&o>t.from&&o<t.to||s>t.from&&o>t.to&&o<t.from)&&(i="pointInBreak"),i&&r(e,i,{point:n,brk:t})}}),c?.forEach(function(t){r(e,"pointOutsideOfBreak",{point:n,brk:t})})})})}}function g(){let t=this.currentDataGrouping,i=t?.gapSize,s=this.points.slice(),o=this.yAxis,r=this.options.gapSize,n=s.length-1;if(r&&n>0){let t,l;for("value"!==this.options.gapUnit&&(r*=this.basePointRange),i&&i>r&&i>=this.basePointRange&&(r=i);n--;)if(l&&!1!==l.visible||(l=s[n+1]),t=s[n],!1!==l.visible&&!1!==t.visible){if(l.x-t.x>r){let i=(t.x+l.x)/2;s.splice(n+1,0,{isNull:!0,x:i}),o.stacking&&this.options.stacking&&((o.stacking.stacks[this.stackKey][i]=new e(o,o.options.stackLabels,!1,i,this.stack)).total=0)}l=t}}return this.getGraphPath(s)}t.compose=function(e,t){if(!e.keepProps.includes("brokenAxis")){e.keepProps.push("brokenAxis"),s(e,"init",c),s(e,"afterInit",i),s(e,"afterSetTickPositions",h),s(e,"afterSetOptions",d);let o=t.prototype;o.drawBreaks=u,o.gappedPath=g,s(t,"afterGeneratePoints",p),s(t,"afterRender",f)}return e};class k{static isInBreak(e,t){let i=e.repeat||1/0,s=e.from,o=e.to-e.from,r=t>=s?(t-s)%i:i-(s-t)%i;return e.inclusive?r<=o:r<o&&0!==r}static lin2Val(e){let t=this.brokenAxis,i=t&&t.breakArray;if(!i||!l(e))return e;let s=e,o,r;for(r=0;r<i.length&&!((o=i[r]).from>=s);r++)o.to<s?s+=o.len:k.isInBreak(o,s)&&(s+=o.len);return s}static val2Lin(e){let t=this.brokenAxis,i=t&&t.breakArray;if(!i||!l(e))return e;let s=e,o,r;for(r=0;r<i.length;r++)if((o=i[r]).to<=e)s-=o.len;else if(o.from>=e)break;else if(k.isInBreak(o,e)){s-=e-o.from;break}return s}constructor(e){this.hasBreaks=!1,this.axis=e}findBreakAt(e,t){return o(t,function(t){return t.from<e&&e<t.to})}isInAnyBreak(e,t){let i=this.axis,s=i.options.breaks||[],o=s.length,r,n,d;if(o&&l(e)){for(;o--;)k.isInBreak(s[o],e)&&(r=!0,n||(n=a(s[o].showPoints,!i.isXAxis)));d=r&&t?r&&!n:r}return d}setBreaks(e,t){let i=this,s=i.axis,o=n(e)&&!!e.length&&!!Object.keys(e[0]).length;s.isDirty=i.hasBreaks!==o,i.hasBreaks=o,e!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=e),s.forceRedraw=!0,s.series.forEach(function(e){e.isDirty=!0}),o||s.val2lin!==k.val2Lin||(delete s.val2lin,delete s.lin2val),o&&(s.userOptions.ordinal=!1,s.lin2val=k.lin2Val,s.val2lin=k.val2Lin,s.setExtremes=function(e,t,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(e,o);)e=s.to;for(;s=i.findBreakAt(t,o);)t=s.from;t<e&&(t=e)}s.constructor.prototype.setExtremes.call(this,e,t,o,r,n)},s.setAxisTranslation=function(){if(s.constructor.prototype.setAxisTranslation.call(this),i.unitLength=void 0,i.hasBreaks){let e=s.options.breaks||[],t=[],o=[],n=a(s.pointRangePadding,0),d=0,h,c,p=s.userMin||s.min,f=s.userMax||s.max,u,g;e.forEach(function(e){c=e.repeat||1/0,l(p)&&l(f)&&(k.isInBreak(e,p)&&(p+=e.to%c-p%c),k.isInBreak(e,f)&&(f-=f%c-e.from%c))}),e.forEach(function(e){if(u=e.from,c=e.repeat||1/0,l(p)&&l(f)){for(;u-c>p;)u-=c;for(;u<p;)u+=c;for(g=u;g<f;g+=c)t.push({value:g,move:"in"}),t.push({value:g+e.to-e.from,move:"out",size:e.breakSize})}}),t.sort(function(e,t){return e.value===t.value?("in"===e.move?0:1)-("in"===t.move?0:1):e.value-t.value}),h=0,u=p,t.forEach(function(e){1===(h+="in"===e.move?1:-1)&&"in"===e.move&&(u=e.value),0===h&&l(u)&&(o.push({from:u,to:e.value,len:e.value-u-(e.size||0)}),d+=e.value-u-(e.size||0))}),i.breakArray=o,l(p)&&l(f)&&l(s.min)&&(i.unitLength=f-p-d+n,r(s,"afterBreaks"),s.staticScale?s.transA=s.staticScale:i.unitLength&&(s.transA*=(f-s.min+n)/i.unitLength),n&&(s.minPixelPadding=s.transA*(s.minPointOffset||0)),s.min=p,s.max=f)}}),a(t,!0)&&s.chart.redraw()}}t.Additions=k}(i||(i={})),i}),i(t,"Core/Axis/GridAxis.js",[t["Core/Axis/Axis.js"],t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){var s,o;let{dateFormats:r}=t,{addEvent:n,defined:l,erase:a,find:d,isArray:h,isNumber:c,merge:p,pick:f,timeUnits:u,wrap:g}=i;function k(e){return i.isObject(e,!0)}function m(e,t){let i={width:0,height:0};if(t.forEach(function(t){let s=e[t],o=0,r=0,n;k(s)&&(o=(n=k(s.label)?s.label:{}).getBBox?n.getBBox().height:0,n.textStr&&!c(n.textPxLength)&&(n.textPxLength=n.getBBox().width),r=c(n.textPxLength)?Math.round(n.textPxLength):0,n.textStr&&(r=Math.round(n.getBBox().width)),i.height=Math.max(o,i.height),i.width=Math.max(r,i.width))}),"treegrid"===this.options.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let e=this.treeGrid.mapOfPosToGridNode[-1].height||0;i.width+=this.options.labels.indentation*(e-1)}return i}function x(e){let{grid:t}=this,i=3===this.side;if(i||e.apply(this),!t?.isColumn){let e=t?.columns||[];i&&(e=e.slice().reverse()),e.forEach(e=>{e.getOffset()})}i&&e.apply(this)}function b(e){if(!0===(this.options.grid||{}).enabled){let{axisTitle:t,height:i,horiz:o,left:r,offset:n,opposite:l,options:a,top:d,width:h}=this,c=this.tickSize(),p=t&&t.getBBox().width,u=a.title.x,g=a.title.y,k=f(a.title.margin,o?5:10),m=t?this.chart.renderer.fontMetrics(t).f:0,x=(o?d+i:r)+(o?1:-1)*(l?-1:1)*(c?c[0]/2:0)+(this.side===s.bottom?m:0);e.titlePosition.x=o?r-(p||0)/2-k+u:x+(l?h:0)+n+u,e.titlePosition.y=o?x-(l?i:0)+(l?m:-m)/2+n+g:d-k+g}}function y(){let{chart:t,options:{grid:i={}},userOptions:s}=this;if(i.enabled&&function(e){let t=e.options;t.labels.align=f(t.labels.align,"center"),e.categories||(t.showLastLabel=!1),e.labelRotation=0,t.labels.rotation=0,t.minTickInterval=1}(this),i.columns){let o=this.grid.columns=[],r=this.grid.columnIndex=0;for(;++r<i.columns.length;){let n=p(s,i.columns[r],{isInternal:!0,linkedTo:0,scrollbar:{enabled:!1}},{grid:{columns:void 0}}),l=new e(this.chart,n,"yAxis");l.grid.isColumn=!0,l.grid.columnIndex=r,a(t.axes,l),a(t[this.coll]||[],l),o.push(l)}}}function v(){let{axisTitle:e,grid:t,options:i}=this;if(!0===(i.grid||{}).enabled){let o=this.min||0,r=this.max||0,n=this.ticks[this.tickPositions[0]];if(e&&!this.chart.styledMode&&n?.slotWidth&&!this.options.title.style.width&&e.css({width:`${n.slotWidth}px`}),this.maxLabelDimensions=this.getMaxLabelDimensions(this.ticks,this.tickPositions),this.rightWall&&this.rightWall.destroy(),this.grid&&this.grid.isOuterAxis()&&this.axisLine){let e=i.lineWidth;if(e){let t=this.getLinePath(e),n=t[0],l=t[1],a=(this.tickSize("tick")||[1])[0]*(this.side===s.top||this.side===s.left?-1:1);if("M"===n[0]&&"L"===l[0]&&(this.horiz?(n[2]+=a,l[2]+=a):(n[1]+=a,l[1]+=a)),!this.horiz&&this.chart.marginRight){let e=["L",this.left,n[2]||0],t=[n,e],s=["L",this.chart.chartWidth-this.chart.marginRight,this.toPixels(r+this.tickmarkOffset)],a=[["M",l[1]||0,this.toPixels(r+this.tickmarkOffset)],s];this.grid.upperBorder||o%1==0||(this.grid.upperBorder=this.grid.renderBorder(t)),this.grid.upperBorder&&(this.grid.upperBorder.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.upperBorder.animate({d:t})),this.grid.lowerBorder||r%1==0||(this.grid.lowerBorder=this.grid.renderBorder(a)),this.grid.lowerBorder&&(this.grid.lowerBorder.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.lowerBorder.animate({d:a}))}this.grid.axisLineExtra?(this.grid.axisLineExtra.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.axisLineExtra.animate({d:t})):this.grid.axisLineExtra=this.grid.renderBorder(t),this.axisLine[this.showAxis?"show":"hide"]()}}if((t&&t.columns||[]).forEach(e=>e.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let e,t;let i=this.tickmarkOffset,s=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(e=this.hiddenLabels.pop())&&e.element;)e.show();for(;(t=this.hiddenMarks.pop())&&t.element;)t.show();(e=this.ticks[n].label)&&(o-n>i?this.hiddenLabels.push(e.hide()):e.show()),(e=this.ticks[s].label)&&(s-r>i?this.hiddenLabels.push(e.hide()):e.show());let l=this.ticks[s].mark;l&&s-r<i&&s-r>0&&this.ticks[s].isLast&&this.hiddenMarks.push(l.hide())}}}function P(){let e=this.tickPositions&&this.tickPositions.info,t=this.options,i=t.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(e=>{e.options.pointRange=0}),e&&t.dateTimeLabelFormats&&t.labels&&!l(s.align)&&(!1===t.dateTimeLabelFormats[e.unitName].range||e.count>1)&&(t.labels.align="left",l(s.x)||(t.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function G(e){let t;let i=this.options,s=e.userOptions,o=i&&k(i.grid)?i.grid:{};!0===o.enabled&&(t=p(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(l(s.linkedTo)&&!l(s.tickPixelInterval)&&(t.tickPixelInterval=350),!(!l(s.tickPixelInterval)&&l(s.linkedTo))||l(s.tickPositioner)||l(s.tickInterval)||l(s.units)||(t.tickPositioner=function(e,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=t.units||[],r,n=1,l="year";for(let e=0;e<o.length;e++){let t=o[e];if(t&&t[0]===s.unitName){r=e;break}}let a=c(r)&&o[r+1];if(a){l=a[0]||"year";let e=a[1];n=e&&e[0]||1}else"year"===s.unitName&&(n=10*s.count);let d=u[l];return this.tickInterval=d*n,this.chart.time.getTimeTicks({unitRange:d,count:n,unitName:l},e,i,this.options.startOfWeek)}})),p(!0,this.options,t),this.horiz&&(i.minPadding=f(s.minPadding,0),i.maxPadding=f(s.maxPadding,0)),c(i.grid.borderWidth)&&(i.tickWidth=i.lineWidth=o.borderWidth))}function A(e){let t=e.userOptions,i=t&&t.grid||{},s=i.columns;i.enabled&&s&&p(!0,this.options,s[0])}function T(){(this.grid.columns||[]).forEach(e=>e.setScale())}function C(e){let{horiz:t,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=t?s.cellHeight||o+i.height:o+i.width;h(e.tickSize)?e.tickSize[0]=r:e.tickSize=[r,0]}}function B(){this.axes.forEach(e=>{(e.grid&&e.grid.columns||[]).forEach(e=>{e.setAxisSize(),e.setAxisTranslation()})})}function O(e){let{grid:t}=this;(t.columns||[]).forEach(t=>t.destroy(e.keepEvents)),t.columns=void 0}function w(e){let t=e.userOptions||{},i=t.grid||{};i.enabled&&l(i.borderColor)&&(t.tickColor=t.lineColor=i.borderColor),this.grid||(this.grid=new M(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function I(e){let t=this.label,i=this.axis,o=i.reversed,r=i.chart,n=i.options.grid||{},l=i.options.labels,a=l.align,d=s[i.side],h=e.tickmarkOffset,p=i.tickPositions,f=this.pos-h,u=c(p[e.index+1])?p[e.index+1]-h:(i.max||0)+h,g=i.tickSize("tick"),k=g?g[0]:0,m=g?g[1]/2:0;if(!0===n.enabled){let s,n,h,c;if("top"===d?n=(s=i.top+i.offset)-k:"bottom"===d?s=(n=r.chartHeight-i.bottom+i.offset)+k:(s=i.top+i.len-(i.translate(o?u:f)||0),n=i.top+i.len-(i.translate(o?f:u)||0)),"right"===d?c=(h=r.chartWidth-i.right+i.offset)+k:"left"===d?h=(c=i.left+i.offset)-k:(h=Math.round(i.left+(i.translate(o?u:f)||0))-m,c=Math.min(Math.round(i.left+(i.translate(o?f:u)||0))-m,i.left+i.len)),this.slotWidth=c-h,e.pos.x="left"===a?h:"right"===a?c:h+(c-h)/2,e.pos.y=n+(s-n)/2,t){let i=r.renderer.fontMetrics(t),s=t.getBBox().height;if(l.useHTML)e.pos.y+=i.b+-(s/2);else{let t=Math.round(s/i.h);e.pos.y+=(i.b-(i.h-i.f))/2+-((t-1)*i.h/2)}}e.pos.x+=i.horiz&&l.x||0}}function E(e){let{axis:i,value:s}=e;if(i.options.grid&&i.options.grid.enabled){let o;let r=i.tickPositions,n=(i.linkedParent||i).series[0],l=s===r[0],a=s===r[r.length-1],h=n&&d(n.options.data,function(e){return e[i.isXAxis?"x":"y"]===s});h&&n.is("gantt")&&(o=p(h),t.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(o)),e.isFirst=l,e.isLast=a,e.point=o}}function N(){let e=this.options,t=e.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],l=s[s.length-2],a=this.linkedParent&&this.linkedParent.min,d=this.linkedParent&&this.linkedParent.max,h=a||this.min,p=d||this.max,f=this.tickInterval,u=c(h)&&h>=o+f&&h<r,g=c(h)&&o<h&&o+f>h,k=c(p)&&n>p&&n-f<p,m=c(p)&&p<=n-f&&p>l;!0===t.enabled&&!i&&(this.isXAxis||this.isLinked)&&((g||u)&&!e.startOnTick&&(s[0]=h),(k||m)&&!e.endOnTick&&(s[s.length-1]=p))}function L(e){var t;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:e.apply(this,(t=arguments,Array.prototype.slice.call(t,1)))}(o=s||(s={}))[o.top=0]="top",o[o.right=1]="right",o[o.bottom=2]="bottom",o[o.left=3]="left";class M{constructor(e){this.axis=e}isOuterAxis(){let e=this.axis,t=e.chart,i=e.grid.columnIndex,s=e.linkedParent?.grid.columns||e.grid.columns||[],o=i?e.linkedParent:e,r=-1,n=0;return 3===e.side&&!t.inverted&&s.length?!e.linkedParent:((t[e.coll]||[]).forEach((t,i)=>{t.side!==e.side||t.options.isInternal||(n=i,t!==o||(r=i))}),n===r&&(!c(i)||s.length===i))}renderBorder(e){let t=this.axis,i=t.chart.renderer,s=t.options,o=i.path(e).addClass("highcharts-axis-line").add(t.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}return r.E=function(e){return this.dateFormat("%a",e,!0).charAt(0)},r.W=function(e){let t=this,i=new this.Date(e);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(e){t.set(e,i,0)});let s=(this.get("Day",i)+6)%7,o=new this.Date(i.valueOf());this.set("Date",o,this.get("Date",i)-s+3);let r=new this.Date(this.get("FullYear",o),0,1);return 4!==this.get("Day",r)&&(this.set("Month",i,0),this.set("Date",i,1+(11-this.get("Day",r))%7)),(1+Math.floor((o.valueOf()-r.valueOf())/6048e5)).toString()},{compose:function(e,t,i){return e.keepProps.includes("grid")||(e.keepProps.push("grid"),e.prototype.getMaxLabelDimensions=m,g(e.prototype,"unsquish",L),g(e.prototype,"getOffset",x),n(e,"init",w),n(e,"afterGetTitlePosition",b),n(e,"afterInit",y),n(e,"afterRender",v),n(e,"afterSetAxisTranslation",P),n(e,"afterSetOptions",G),n(e,"afterSetOptions",A),n(e,"afterSetScale",T),n(e,"afterTickSize",C),n(e,"trimTicks",N),n(e,"destroy",O),n(t,"afterSetChartSize",B),n(i,"afterGetLabelPosition",I),n(i,"labelFormat",E)),e}}}),i(t,"Gantt/Tree.js",[t["Core/Utilities.js"]],function(e){let{extend:t,isNumber:i,pick:s}=e;function o(e,r,n,l,a,d){let h=d&&d.after,c=d&&d.before,p={data:l,depth:n-1,id:e,level:n,parent:r||""},f=0,u=0,g,k;"function"==typeof c&&c(p,d);let m=(a[e]||[]).map(t=>{let s=o(t.id,e,n+1,t,a,d),r=t.start||NaN,l=!0===t.milestone?r:t.end||NaN;return g=!i(g)||r<g?r:g,k=!i(k)||l>k?l:k,f=f+1+s.descendants,u=Math.max(s.height+1,u),s});return l&&(l.start=s(l.start,g),l.end=s(l.end,k)),t(p,{children:m,descendants:f,height:u}),"function"==typeof h&&h(p,d),p}return{getNode:o,getTree:function(e,t){return o("",null,1,null,function(e){let t=[],i=e.reduce((e,i)=>{let{parent:s="",id:o}=i;return void 0===e[s]&&(e[s]=[]),e[s].push(i),o&&t.push(o),e},{});return Object.keys(i).forEach(e=>{if(""!==e&&-1===t.indexOf(e)){let t=i[e].map(function(e){let{...t}=e;return t});i[""].push(...t),delete i[e]}}),i}(e),t)}}}),i(t,"Core/Axis/TreeGrid/TreeGridTick.js",[t["Core/Utilities.js"]],function(e){let{addEvent:t,removeEvent:i,isObject:s,isNumber:o,pick:r,wrap:n}=e;function l(){this.treeGrid||(this.treeGrid=new h(this))}function a(e,t,i,n,l,a,d,h,c){let p,f,u;let g=r(this.options&&this.options.labels,a),k=this.pos,m=this.axis,x="treegrid"===m.options.type,b=e.apply(this,[t,i,n,l,g,d,h,c]);if(x){let{width:e=0,padding:t=m.linkedParent?0:5}=g&&s(g.symbol,!0)?g.symbol:{},i=g&&o(g.indentation)?g.indentation:0;u=(f=(p=m.treeGrid.mapOfPosToGridNode)&&p[k])&&f.depth||1,b.x+=e+2*t+(u-1)*i}return b}function d(e){let n,l,a;let{pos:d,axis:h,label:c,treeGrid:p,options:f}=this,u=p?.labelIcon,g=c?.element,{treeGrid:k,options:m,chart:x,tickPositions:b}=h,y=k.mapOfPosToGridNode,v=r(f?.labels,m?.labels),P=v&&s(v.symbol,!0)?v.symbol:{},G=y&&y[d],{descendants:A,depth:T}=G||{},C=G&&A&&A>0,B="treegrid"===m.type&&g,O=b.indexOf(d)>-1,w="highcharts-treegrid-node-",I=w+"level-",E=x.styledMode;B&&G&&c.removeClass(RegExp(I+".*")).addClass(I+T),e.apply(this,Array.prototype.slice.call(arguments,1)),B&&C?(n=k.isCollapsed(G),function(e,t){let i=e.treeGrid,s=!i.labelIcon,n=t.renderer,l=t.xy,a=t.options,d=a.width||0,h=a.height||0,c=a.padding??e.axis.linkedParent?0:5,p={x:l.x-d/2-c,y:l.y-h/2},f=t.collapsed?90:180,u=t.show&&o(p.y),g=i.labelIcon;g||(i.labelIcon=g=n.path(n.symbols[a.type](a.x||0,a.y||0,d,h)).addClass("highcharts-label-icon").add(t.group)),g[u?"show":"hide"](),n.styledMode||g.attr({cursor:"pointer",fill:r(t.color,"#666666"),"stroke-width":1,stroke:a.lineColor,strokeWidth:a.lineWidth||0}),g[s?"attr":"animate"]({translateX:p.x,translateY:p.y,rotation:f})}(this,{color:!E&&c.styles.color||"",collapsed:n,group:c.parentGroup,options:P,renderer:c.renderer,show:O,xy:c.xy}),l=w+(n?"collapsed":"expanded"),a=w+(n?"expanded":"collapsed"),c.addClass(l).removeClass(a),E||c.css({cursor:"pointer"}),[c,u].forEach(e=>{e&&!e.attachedTreeGridEvents&&(t(e.element,"mouseover",function(){c.addClass("highcharts-treegrid-node-active"),c.renderer.styledMode||c.css({textDecoration:"underline"})}),t(e.element,"mouseout",function(){!function(e,t){let i=s(t.style)?t.style:{};e.removeClass("highcharts-treegrid-node-active"),e.renderer.styledMode||e.css({textDecoration:i.textDecoration||"none"})}(c,v)}),t(e.element,"click",function(){p.toggleCollapse()}),e.attachedTreeGridEvents=!0)})):u&&(i(g),c?.css({cursor:"default"}),u.destroy())}class h{static compose(e){let i=e.prototype;i.toggleCollapse||(t(e,"init",l),n(i,"getLabelPosition",a),n(i,"renderLabel",d),i.collapse=function(e){this.treeGrid.collapse(e)},i.expand=function(e){this.treeGrid.expand(e)},i.toggleCollapse=function(e){this.treeGrid.toggleCollapse(e)})}constructor(e){this.tick=e}collapse(e){let t=this.tick,i=t.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=t.pos,n=i.treeGrid.mapOfPosToGridNode[o],l=i.treeGrid.collapse(n);s.setBreaks(l,r(e,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(e){let{pos:t,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,n=s.mapOfPosToGridNode;if(o&&n){let i=n[t],l=s.expand(i);o.setBreaks(l,r(e,!0))}}toggleCollapse(e){let t=this.tick,i=t.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=t.pos,n=i.treeGrid.mapOfPosToGridNode[o],l=i.treeGrid.toggleCollapse(n);s.setBreaks(l,r(e,!0))}}}return h}),i(t,"Series/TreeUtilities.js",[t["Core/Color/Color.js"],t["Core/Utilities.js"]],function(e,t){let{extend:i,isArray:s,isNumber:o,isObject:r,merge:n,pick:l,relativeLength:a}=t;return{getColor:function(t,i){let s,o,r,n,a,d;let h=i.index,c=i.mapOptionsToLevel,p=i.parentColor,f=i.parentColorIndex,u=i.series,g=i.colors,k=i.siblings,m=u.points,x=u.chart.options.chart;return t&&(s=m[t.i],o=c[t.level]||{},s&&o.colorByPoint&&(n=s.index%(g?g.length:x.colorCount),r=g&&g[n]),u.chart.styledMode||(a=l(s&&s.options.color,o&&o.color,r,p&&(t=>{let i=o&&o.colorVariation;return i&&"brightness"===i.key&&h&&k?e.parse(t).brighten(i.to*(h/k)).get():t})(p),u.color)),d=l(s&&s.options.colorIndex,o&&o.colorIndex,n,f,i.colorIndex)),{color:a,colorIndex:d}},getLevelOptions:function(e){let t,i,a,d,h,c;let p={};if(r(e))for(d=o(e.from)?e.from:1,c=e.levels,i={},t=r(e.defaults)?e.defaults:{},s(c)&&(i=c.reduce((e,i)=>{let s,a,h;return r(i)&&o(i.level)&&(a=l((h=n({},i)).levelIsConstant,t.levelIsConstant),delete h.levelIsConstant,delete h.level,r(e[s=i.level+(a?0:d-1)])?n(!0,e[s],h):e[s]=h),e},{})),h=o(e.to)?e.to:1,a=0;a<=h;a++)p[a]=n({},t,r(i[a])?i[a]:{});return p},getNodeWidth:function(e,t){let{chart:i,options:s}=e,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(t+parseFloat(o)/100*(t-1));let e=Number(o);return(n+e)/(t||1)-e}return a(r,n)},setTreeValues:function e(t,s){let o=s.before,r=s.idRoot,n=s.mapIdToNode[r],a=!1!==s.levelIsConstant,d=s.points[t.i],h=d&&d.options||{},c=[],p=0;t.levelDynamic=t.level-(a?0:n.level),t.name=l(d&&d.name,""),t.visible=r===t.id||!0===s.visible,"function"==typeof o&&(t=o(t,s)),t.children.forEach((o,r)=>{let n=i({},s);i(n,{index:r,siblings:t.children.length,visible:t.visible}),o=e(o,n),c.push(o),o.visible&&(p+=o.val)});let f=l(h.value,p);return t.visible=f>=0&&(p>0||t.visible),t.children=c,t.childrenTotal=p,t.isLeaf=t.visible&&!p,t.val=f,t},updateRootId:function(e){let t,i;return r(e)&&(i=r(e.options)?e.options:{},t=l(e.rootNode,i.rootId,""),r(e.userOptions)&&(e.userOptions.rootId=t),e.rootNode=t),t}}}),i(t,"Core/Axis/TreeGrid/TreeGridAxis.js",[t["Core/Axis/BrokenAxis.js"],t["Core/Axis/GridAxis.js"],t["Gantt/Tree.js"],t["Core/Axis/TreeGrid/TreeGridTick.js"],t["Series/TreeUtilities.js"],t["Core/Utilities.js"]],function(e,t,i,s,o,r){let n;let{getLevelOptions:l}=o,{addEvent:a,find:d,fireEvent:h,isArray:c,isObject:p,isString:f,merge:u,pick:g,removeEvent:k,wrap:m}=r;function x(e,t){let i=e.collapseEnd||0,s=e.collapseStart||0;return i>=t&&(s-=.5),{from:s,to:i,showPoints:!1}}function b(e,t,s){let o=[],r=[],n={},l="boolean"==typeof t&&t,a={},h=-1,c=i.getTree(e,{after:function(e){let t=a[e.pos],i=0,s=0;t.children.forEach(function(e){s+=(e.descendants||0)+1,i=Math.max((e.height||0)+1,i)}),t.descendants=s,t.height=i,t.collapsed&&r.push(t)},before:function(e){let t,i;let s=p(e.data,!0)?e.data:{},r=f(s.name)?s.name:"",c=n[e.parent],u=p(c,!0)?a[c.pos]:null;l&&p(u,!0)&&(t=d(u.children,function(e){return e.name===r}))?(i=t.pos,t.nodes.push(e)):i=h++,!a[i]&&(a[i]=t={depth:u?u.depth+1:0,name:r,id:s.id,nodes:[e],children:[],pos:i},-1!==i&&o.push(r),p(u,!0)&&u.children.push(t)),f(e.id)&&(n[e.id]=e),t&&!0===s.collapsed&&(t.collapsed=!0),e.pos=i}});return{categories:o,mapOfIdToNode:n,mapOfPosToGridNode:a=function(e,t){let i=function(e,s,o){let r=e.nodes,n=s+(-1===s?0:t-1),l=(n-s)/2,a=s+l;return r.forEach(function(e){let t=e.data;p(t,!0)&&(t.y=s+(t.seriesIndex||0),delete t.seriesIndex),e.pos=a}),o[a]=e,e.pos=a,e.tickmarkOffset=l+.5,e.collapseStart=n+.5,e.children.forEach(function(e){i(e,n+1,o),n=(e.collapseEnd||0)-.5}),e.collapseEnd=n+.5,o};return i(e["-1"],-1,{})}(a,s),collapsedNodes:r,tree:c}}function y(e){e.target.axes.filter(function(e){return"treegrid"===e.options.type}).forEach(function(t){let i=t.options||{},s=i.labels,o=i.uniqueNames,r=i.max,n=!t.treeGrid.mapOfPosToGridNode||t.series.some(function(e){return!e.hasRendered||e.isDirtyData||e.isDirty}),a=0,d,h;if(n){if(d=t.series.reduce(function(e,t){return t.visible&&((t.options.data||[]).forEach(function(i){t.options.keys&&t.options.keys.length&&(i=t.pointClass.prototype.optionsToObject.call({series:t},i),t.pointClass.setGanttPointAliases(i)),p(i,!0)&&(i.seriesIndex=a,e.push(i))}),!0===o&&a++),e},[]),r&&d.length<r)for(let e=d.length;e<=r;e++)d.push({name:e+"​"});h=b(d,o||!1,!0===o?a:1),t.categories=h.categories,t.treeGrid.mapOfPosToGridNode=h.mapOfPosToGridNode,t.hasNames=!0,t.treeGrid.tree=h.tree,t.series.forEach(function(e){let t=(e.options.data||[]).map(function(t){return c(t)&&e.options.keys&&e.options.keys.length&&d.forEach(function(e){t.indexOf(e.x)>=0&&t.indexOf(e.x2)>=0&&(t=e)}),p(t,!0)?u(t):t});e.visible&&e.setData(t,!1)}),t.treeGrid.mapOptionsToLevel=l({defaults:s,from:1,levels:s&&s.levels,to:t.treeGrid.tree&&t.treeGrid.tree.height}),"beforeRender"===e.type&&(t.treeGrid.collapsedNodes=h.collapsedNodes)}})}function v(e,t){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.options.type,o=this.ticks,r=o[t],l,a,d;s&&this.treeGrid.mapOfPosToGridNode?((l=i[(d=this.treeGrid.mapOfPosToGridNode[t]).depth])&&(a={labels:l}),!r&&n?o[t]=r=new n(this,t,void 0,void 0,{category:d.name,tickmarkOffset:d.tickmarkOffset,options:a}):(r.parameters.category=d.name,r.options=a,r.addLabel())):e.apply(this,Array.prototype.slice.call(arguments,1))}function P(e,t,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new T(o)),r&&(a(t,"beforeRender",y),a(t,"beforeRedraw",y),a(t,"addSeries",function(e){if(e.options.data){let t=b(e.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(t.collapsedNodes)}}),a(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(e){let t=o.treeGrid.collapse(e);o.brokenAxis&&(o.brokenAxis.setBreaks(t,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(t=>e.collapseStart!==t.collapseStart||e.collapseEnd!==t.collapseEnd)))})}),a(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=u({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),e.apply(o,[t,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function G(e){let t=this.options,i="number"==typeof t.linkedTo?this.chart[this.coll]?.[t.linkedTo]:void 0;if("treegrid"===t.type){if(this.min=g(this.userMin,t.min,this.dataMin),this.max=g(this.userMax,t.max,this.dataMax),h(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],i){let e=i.getExtremes();this.min=g(e.min,e.dataMin),this.max=g(e.max,e.dataMax),this.tickPositions=i.tickPositions}this.linkedParent=i}else e.apply(this,Array.prototype.slice.call(arguments,1))}function A(e){let t=this;"treegrid"===t.options.type&&t.visible&&t.tickPositions.forEach(function(e){let i=t.ticks[e];i.label&&i.label.attachedTreeGridEvents&&(k(i.label.element),i.label.attachedTreeGridEvents=!1)}),e.apply(t,Array.prototype.slice.call(arguments,1))}class T{static compose(o,r,l,a){if(!o.keepProps.includes("treeGrid")){let e=o.prototype;o.keepProps.push("treeGrid"),m(e,"generateTick",v),m(e,"init",P),m(e,"setTickInterval",G),m(e,"redraw",A),e.utils={getNode:i.getNode},n||(n=a)}return t.compose(o,r,a),e.compose(o,l),s.compose(a),o}constructor(e){this.axis=e}setCollapsedStatus(e){let t=this.axis,i=t.chart;t.series.forEach(function(t){let s=t.options.data;if(e.id&&s){let o=i.get(e.id),r=s[t.data.indexOf(o)];o&&r&&(o.collapsed=e.collapsed,r.collapsed=e.collapsed)}})}collapse(e){let t=this.axis,i=t.options.breaks||[],s=x(e,t.max);return i.push(s),e.collapsed=!0,t.treeGrid.setCollapsedStatus(e),i}expand(e){let t=this.axis,i=t.options.breaks||[],s=x(e,t.max);return e.collapsed=!1,t.treeGrid.setCollapsedStatus(e),i.reduce(function(e,t){return(t.to!==s.to||t.from!==s.from)&&e.push(t),e},[])}getTickPositions(){let e=this.axis,t=Math.floor(e.min/e.tickInterval)*e.tickInterval,i=Math.ceil(e.max/e.tickInterval)*e.tickInterval;return Object.keys(e.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=t&&r<=i&&!(e.brokenAxis&&e.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(e){let t=this.axis,i=t.options.breaks||[],s=x(e,t.max);return i.some(function(e){return e.from===s.from&&e.to===s.to})}toggleCollapse(e){return this.isCollapsed(e)?this.expand(e):this.collapse(e)}}return T}),i(t,"masters/modules/treegrid.src.js",[t["Core/Globals.js"],t["Core/Axis/TreeGrid/TreeGridAxis.js"]],function(e,t){return t.compose(e.Axis,e.Chart,e.Series,e.Tick),e})});
9
+ */function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/treegrid",["highcharts"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function i(t,i,s,o){t.hasOwnProperty(i)||(t[i]=o.apply(null,s),"function"==typeof CustomEvent&&e.win.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:i,module:t[i]}})))}i(t,"Core/Axis/BrokenAxis.js",[t["Core/Axis/Stacking/StackItem.js"],t["Core/Utilities.js"]],function(e,t){var i;let{addEvent:s,find:o,fireEvent:r,isArray:n,isNumber:l,pick:a}=t;return function(t){function i(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function d(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function h(){let e=this.brokenAxis;if(e?.hasBreaks){let t=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;i<t.length;i++)e.isInAnyBreak(t[i])||s.push(t[i]);this.tickPositions=s,this.tickPositions.info=i}}function c(){this.brokenAxis||(this.brokenAxis=new k(this))}function p(){let{isDirty:e,options:{connectNulls:t},points:i,xAxis:s,yAxis:o}=this;if(e){let e=i.length;for(;e--;){let r=i[e],n=!(null===r.y&&!1===t)&&(s?.brokenAxis?.isInAnyBreak(r.x,!0)||o?.brokenAxis?.isInAnyBreak(r.y,!0));r.visible=!n&&!1!==r.options.visible}}}function f(){this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,a(this.pointArrayMap,["y"]))}function u(e,t){let i,s,o;let n=this,d=n.points;if(e?.brokenAxis?.hasBreaks){let h=e.brokenAxis;t.forEach(function(t){i=h?.breakArray||[],s=e.isXAxis?e.min:a(n.options.threshold,e.min);let c=e?.options?.breaks?.filter(function(e){let t=!0;for(let s=0;s<i.length;s++){let o=i[s];if(o.from===e.from&&o.to===e.to){t=!1;break}}return t});d.forEach(function(n){o=a(n["stack"+t.toUpperCase()],n[t]),i.forEach(function(t){if(l(s)&&l(o)){let i="";s<t.from&&o>t.to||s>t.from&&o<t.from?i="pointBreak":(s<t.from&&o>t.from&&o<t.to||s>t.from&&o>t.to&&o<t.from)&&(i="pointInBreak"),i&&r(e,i,{point:n,brk:t})}}),c?.forEach(function(t){r(e,"pointOutsideOfBreak",{point:n,brk:t})})})})}}function g(){let t=this.currentDataGrouping,i=t?.gapSize,s=this.points.slice(),o=this.yAxis,r=this.options.gapSize,n=s.length-1;if(r&&n>0){let t,l;for("value"!==this.options.gapUnit&&(r*=this.basePointRange),i&&i>r&&i>=this.basePointRange&&(r=i);n--;)if(l&&!1!==l.visible||(l=s[n+1]),t=s[n],!1!==l.visible&&!1!==t.visible){if(l.x-t.x>r){let i=(t.x+l.x)/2;s.splice(n+1,0,{isNull:!0,x:i}),o.stacking&&this.options.stacking&&((o.stacking.stacks[this.stackKey][i]=new e(o,o.options.stackLabels,!1,i,this.stack)).total=0)}l=t}}return this.getGraphPath(s)}t.compose=function(e,t){if(!e.keepProps.includes("brokenAxis")){e.keepProps.push("brokenAxis"),s(e,"init",c),s(e,"afterInit",i),s(e,"afterSetTickPositions",h),s(e,"afterSetOptions",d);let o=t.prototype;o.drawBreaks=u,o.gappedPath=g,s(t,"afterGeneratePoints",p),s(t,"afterRender",f)}return e};class k{static isInBreak(e,t){let i=e.repeat||1/0,s=e.from,o=e.to-e.from,r=t>=s?(t-s)%i:i-(s-t)%i;return e.inclusive?r<=o:r<o&&0!==r}static lin2Val(e){let t=this.brokenAxis,i=t&&t.breakArray;if(!i||!l(e))return e;let s=e,o,r;for(r=0;r<i.length&&!((o=i[r]).from>=s);r++)o.to<s?s+=o.len:k.isInBreak(o,s)&&(s+=o.len);return s}static val2Lin(e){let t=this.brokenAxis,i=t&&t.breakArray;if(!i||!l(e))return e;let s=e,o,r;for(r=0;r<i.length;r++)if((o=i[r]).to<=e)s-=o.len;else if(o.from>=e)break;else if(k.isInBreak(o,e)){s-=e-o.from;break}return s}constructor(e){this.hasBreaks=!1,this.axis=e}findBreakAt(e,t){return o(t,function(t){return t.from<e&&e<t.to})}isInAnyBreak(e,t){let i=this.axis,s=i.options.breaks||[],o=s.length,r,n,d;if(o&&l(e)){for(;o--;)k.isInBreak(s[o],e)&&(r=!0,n||(n=a(s[o].showPoints,!i.isXAxis)));d=r&&t?r&&!n:r}return d}setBreaks(e,t){let i=this,s=i.axis,o=n(e)&&!!e.length&&!!Object.keys(e[0]).length;s.isDirty=i.hasBreaks!==o,i.hasBreaks=o,e!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=e),s.forceRedraw=!0,s.series.forEach(function(e){e.isDirty=!0}),o||s.val2lin!==k.val2Lin||(delete s.val2lin,delete s.lin2val),o&&(s.userOptions.ordinal=!1,s.lin2val=k.lin2Val,s.val2lin=k.val2Lin,s.setExtremes=function(e,t,o,r,n){if(i.hasBreaks){let s;let o=this.options.breaks||[];for(;s=i.findBreakAt(e,o);)e=s.to;for(;s=i.findBreakAt(t,o);)t=s.from;t<e&&(t=e)}s.constructor.prototype.setExtremes.call(this,e,t,o,r,n)},s.setAxisTranslation=function(){if(s.constructor.prototype.setAxisTranslation.call(this),i.unitLength=void 0,i.hasBreaks){let e=s.options.breaks||[],t=[],o=[],n=a(s.pointRangePadding,0),d=0,h,c,p=s.userMin||s.min,f=s.userMax||s.max,u,g;e.forEach(function(e){c=e.repeat||1/0,l(p)&&l(f)&&(k.isInBreak(e,p)&&(p+=e.to%c-p%c),k.isInBreak(e,f)&&(f-=f%c-e.from%c))}),e.forEach(function(e){if(u=e.from,c=e.repeat||1/0,l(p)&&l(f)){for(;u-c>p;)u-=c;for(;u<p;)u+=c;for(g=u;g<f;g+=c)t.push({value:g,move:"in"}),t.push({value:g+e.to-e.from,move:"out",size:e.breakSize})}}),t.sort(function(e,t){return e.value===t.value?("in"===e.move?0:1)-("in"===t.move?0:1):e.value-t.value}),h=0,u=p,t.forEach(function(e){1===(h+="in"===e.move?1:-1)&&"in"===e.move&&(u=e.value),0===h&&l(u)&&(o.push({from:u,to:e.value,len:e.value-u-(e.size||0)}),d+=e.value-u-(e.size||0))}),i.breakArray=o,l(p)&&l(f)&&l(s.min)&&(i.unitLength=f-p-d+n,r(s,"afterBreaks"),s.staticScale?s.transA=s.staticScale:i.unitLength&&(s.transA*=(f-s.min+n)/i.unitLength),n&&(s.minPixelPadding=s.transA*(s.minPointOffset||0)),s.min=p,s.max=f)}}),a(t,!0)&&s.chart.redraw()}}t.Additions=k}(i||(i={})),i}),i(t,"Core/Axis/GridAxis.js",[t["Core/Axis/Axis.js"],t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t,i){var s,o;let{dateFormats:r}=t,{addEvent:n,defined:l,erase:a,find:d,isArray:h,isNumber:c,merge:p,pick:f,timeUnits:u,wrap:g}=i;function k(e){return i.isObject(e,!0)}function m(e,t){let i={width:0,height:0};if(t.forEach(function(t){let s=e[t],o=0,r=0,n;k(s)&&(o=(n=k(s.label)?s.label:{}).getBBox?n.getBBox().height:0,n.textStr&&!c(n.textPxLength)&&(n.textPxLength=n.getBBox().width),r=c(n.textPxLength)?Math.round(n.textPxLength):0,n.textStr&&(r=Math.round(n.getBBox().width)),i.height=Math.max(o,i.height),i.width=Math.max(r,i.width))}),"treegrid"===this.options.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let e=this.treeGrid.mapOfPosToGridNode[-1].height||0;i.width+=this.options.labels.indentation*(e-1)}return i}function x(e){let{grid:t}=this,i=3===this.side;if(i||e.apply(this),!t?.isColumn){let e=t?.columns||[];i&&(e=e.slice().reverse()),e.forEach(e=>{e.getOffset()})}i&&e.apply(this)}function b(e){if(!0===(this.options.grid||{}).enabled){let{axisTitle:t,height:i,horiz:o,left:r,offset:n,opposite:l,options:a,top:d,width:h}=this,c=this.tickSize(),p=t&&t.getBBox().width,u=a.title.x,g=a.title.y,k=f(a.title.margin,o?5:10),m=t?this.chart.renderer.fontMetrics(t).f:0,x=(o?d+i:r)+(o?1:-1)*(l?-1:1)*(c?c[0]/2:0)+(this.side===s.bottom?m:0);e.titlePosition.x=o?r-(p||0)/2-k+u:x+(l?h:0)+n+u,e.titlePosition.y=o?x-(l?i:0)+(l?m:-m)/2+n+g:d-k+g}}function y(){let{chart:t,options:{grid:i={}},userOptions:s}=this;if(i.enabled&&function(e){let t=e.options;t.labels.align=f(t.labels.align,"center"),e.categories||(t.showLastLabel=!1),e.labelRotation=0,t.labels.rotation=0,t.minTickInterval=1}(this),i.columns){let o=this.grid.columns=[],r=this.grid.columnIndex=0;for(;++r<i.columns.length;){let n=p(s,i.columns[r],{isInternal:!0,linkedTo:0,scrollbar:{enabled:!1}},{grid:{columns:void 0}}),l=new e(this.chart,n,"yAxis");l.grid.isColumn=!0,l.grid.columnIndex=r,a(t.axes,l),a(t[this.coll]||[],l),o.push(l)}}}function v(){let{axisTitle:e,grid:t,options:i}=this;if(!0===(i.grid||{}).enabled){let o=this.min||0,r=this.max||0,n=this.ticks[this.tickPositions[0]];if(e&&!this.chart.styledMode&&n?.slotWidth&&!this.options.title.style.width&&e.css({width:`${n.slotWidth}px`}),this.maxLabelDimensions=this.getMaxLabelDimensions(this.ticks,this.tickPositions),this.rightWall&&this.rightWall.destroy(),this.grid&&this.grid.isOuterAxis()&&this.axisLine){let e=i.lineWidth;if(e){let t=this.getLinePath(e),n=t[0],l=t[1],a=(this.tickSize("tick")||[1])[0]*(this.side===s.top||this.side===s.left?-1:1);if("M"===n[0]&&"L"===l[0]&&(this.horiz?(n[2]+=a,l[2]+=a):(n[1]+=a,l[1]+=a)),!this.horiz&&this.chart.marginRight){let e=["L",this.left,n[2]||0],t=[n,e],s=["L",this.chart.chartWidth-this.chart.marginRight,this.toPixels(r+this.tickmarkOffset)],a=[["M",l[1]||0,this.toPixels(r+this.tickmarkOffset)],s];this.grid.upperBorder||o%1==0||(this.grid.upperBorder=this.grid.renderBorder(t)),this.grid.upperBorder&&(this.grid.upperBorder.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.upperBorder.animate({d:t})),this.grid.lowerBorder||r%1==0||(this.grid.lowerBorder=this.grid.renderBorder(a)),this.grid.lowerBorder&&(this.grid.lowerBorder.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.lowerBorder.animate({d:a}))}this.grid.axisLineExtra?(this.grid.axisLineExtra.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.axisLineExtra.animate({d:t})):this.grid.axisLineExtra=this.grid.renderBorder(t),this.axisLine[this.showAxis?"show":"hide"]()}}if((t&&t.columns||[]).forEach(e=>e.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let e,t;let i=this.tickmarkOffset,s=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(e=this.hiddenLabels.pop())&&e.element;)e.show();for(;(t=this.hiddenMarks.pop())&&t.element;)t.show();(e=this.ticks[n].label)&&(o-n>i?this.hiddenLabels.push(e.hide()):e.show()),(e=this.ticks[s].label)&&(s-r>i?this.hiddenLabels.push(e.hide()):e.show());let l=this.ticks[s].mark;l&&s-r<i&&s-r>0&&this.ticks[s].isLast&&this.hiddenMarks.push(l.hide())}}}function P(){let e=this.tickPositions&&this.tickPositions.info,t=this.options,i=t.grid||{},s=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(e=>{e.options.pointRange=0}),e&&t.dateTimeLabelFormats&&t.labels&&!l(s.align)&&(!1===t.dateTimeLabelFormats[e.unitName].range||e.count>1)&&(t.labels.align="left",l(s.x)||(t.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function G(e){let t;let i=this.options,s=e.userOptions,o=i&&k(i.grid)?i.grid:{};!0===o.enabled&&(t=p(!0,{className:"highcharts-grid-axis "+(s.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},s),"xAxis"!==this.coll||(l(s.linkedTo)&&!l(s.tickPixelInterval)&&(t.tickPixelInterval=350),!(!l(s.tickPixelInterval)&&l(s.linkedTo))||l(s.tickPositioner)||l(s.tickInterval)||l(s.units)||(t.tickPositioner=function(e,i){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=t.units||[],r,n=1,l="year";for(let e=0;e<o.length;e++){let t=o[e];if(t&&t[0]===s.unitName){r=e;break}}let a=c(r)&&o[r+1];if(a){l=a[0]||"year";let e=a[1];n=e&&e[0]||1}else"year"===s.unitName&&(n=10*s.count);let d=u[l];return this.tickInterval=d*n,this.chart.time.getTimeTicks({unitRange:d,count:n,unitName:l},e,i,this.options.startOfWeek)}})),p(!0,this.options,t),this.horiz&&(i.minPadding=f(s.minPadding,0),i.maxPadding=f(s.maxPadding,0)),c(i.grid.borderWidth)&&(i.tickWidth=i.lineWidth=o.borderWidth))}function A(e){let t=e.userOptions,i=t&&t.grid||{},s=i.columns;i.enabled&&s&&p(!0,this.options,s[0])}function T(){(this.grid.columns||[]).forEach(e=>e.setScale())}function C(e){let{horiz:t,maxLabelDimensions:i,options:{grid:s={}}}=this;if(s.enabled&&i){let o=2*this.options.labels.distance,r=t?s.cellHeight||o+i.height:o+i.width;h(e.tickSize)?e.tickSize[0]=r:e.tickSize=[r,0]}}function B(){this.axes.forEach(e=>{(e.grid&&e.grid.columns||[]).forEach(e=>{e.setAxisSize(),e.setAxisTranslation()})})}function O(e){let{grid:t}=this;(t.columns||[]).forEach(t=>t.destroy(e.keepEvents)),t.columns=void 0}function w(e){let t=e.userOptions||{},i=t.grid||{};i.enabled&&l(i.borderColor)&&(t.tickColor=t.lineColor=i.borderColor),this.grid||(this.grid=new M(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function I(e){let t=this.label,i=this.axis,o=i.reversed,r=i.chart,n=i.options.grid||{},l=i.options.labels,a=l.align,d=s[i.side],h=e.tickmarkOffset,p=i.tickPositions,f=this.pos-h,u=c(p[e.index+1])?p[e.index+1]-h:(i.max||0)+h,g=i.tickSize("tick"),k=g?g[0]:0,m=g?g[1]/2:0;if(!0===n.enabled){let s,n,h,c;if("top"===d?n=(s=i.top+i.offset)-k:"bottom"===d?s=(n=r.chartHeight-i.bottom+i.offset)+k:(s=i.top+i.len-(i.translate(o?u:f)||0),n=i.top+i.len-(i.translate(o?f:u)||0)),"right"===d?c=(h=r.chartWidth-i.right+i.offset)+k:"left"===d?h=(c=i.left+i.offset)-k:(h=Math.round(i.left+(i.translate(o?u:f)||0))-m,c=Math.min(Math.round(i.left+(i.translate(o?f:u)||0))-m,i.left+i.len)),this.slotWidth=c-h,e.pos.x="left"===a?h:"right"===a?c:h+(c-h)/2,e.pos.y=n+(s-n)/2,t){let i=r.renderer.fontMetrics(t),s=t.getBBox().height;if(l.useHTML)e.pos.y+=i.b+-(s/2);else{let t=Math.round(s/i.h);e.pos.y+=(i.b-(i.h-i.f))/2+-((t-1)*i.h/2)}}e.pos.x+=i.horiz&&l.x||0}}function E(e){let{axis:i,value:s}=e;if(i.options.grid&&i.options.grid.enabled){let o;let r=i.tickPositions,n=(i.linkedParent||i).series[0],l=s===r[0],a=s===r[r.length-1],h=n&&d(n.options.data,function(e){return e[i.isXAxis?"x":"y"]===s});h&&n.is("gantt")&&(o=p(h),t.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(o)),e.isFirst=l,e.isLast=a,e.point=o}}function N(){let e=this.options,t=e.grid||{},i=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],l=s[s.length-2],a=this.linkedParent&&this.linkedParent.min,d=this.linkedParent&&this.linkedParent.max,h=a||this.min,p=d||this.max,f=this.tickInterval,u=c(h)&&h>=o+f&&h<r,g=c(h)&&o<h&&o+f>h,k=c(p)&&n>p&&n-f<p,m=c(p)&&p<=n-f&&p>l;!0===t.enabled&&!i&&(this.isXAxis||this.isLinked)&&((g||u)&&!e.startOnTick&&(s[0]=h),(k||m)&&!e.endOnTick&&(s[s.length-1]=p))}function L(e){var t;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:e.apply(this,(t=arguments,Array.prototype.slice.call(t,1)))}(o=s||(s={}))[o.top=0]="top",o[o.right=1]="right",o[o.bottom=2]="bottom",o[o.left=3]="left";class M{constructor(e){this.axis=e}isOuterAxis(){let e=this.axis,t=e.chart,i=e.grid.columnIndex,s=e.linkedParent?.grid.columns||e.grid.columns||[],o=i?e.linkedParent:e,r=-1,n=0;return 3===e.side&&!t.inverted&&s.length?!e.linkedParent:((t[e.coll]||[]).forEach((t,i)=>{t.side!==e.side||t.options.isInternal||(n=i,t!==o||(r=i))}),n===r&&(!c(i)||s.length===i))}renderBorder(e){let t=this.axis,i=t.chart.renderer,s=t.options,o=i.path(e).addClass("highcharts-axis-line").add(t.axisGroup);return i.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}return r.E=function(e){return this.dateFormat("%a",e,!0).charAt(0)},r.W=function(e){let t=this,i=new this.Date(e);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(e){t.set(e,i,0)});let s=(this.get("Day",i)+6)%7,o=new this.Date(i.valueOf());this.set("Date",o,this.get("Date",i)-s+3);let r=new this.Date(this.get("FullYear",o),0,1);return 4!==this.get("Day",r)&&(this.set("Month",i,0),this.set("Date",i,1+(11-this.get("Day",r))%7)),(1+Math.floor((o.valueOf()-r.valueOf())/6048e5)).toString()},{compose:function(e,t,i){return e.keepProps.includes("grid")||(e.keepProps.push("grid"),e.prototype.getMaxLabelDimensions=m,g(e.prototype,"unsquish",L),g(e.prototype,"getOffset",x),n(e,"init",w),n(e,"afterGetTitlePosition",b),n(e,"afterInit",y),n(e,"afterRender",v),n(e,"afterSetAxisTranslation",P),n(e,"afterSetOptions",G),n(e,"afterSetOptions",A),n(e,"afterSetScale",T),n(e,"afterTickSize",C),n(e,"trimTicks",N),n(e,"destroy",O),n(t,"afterSetChartSize",B),n(i,"afterGetLabelPosition",I),n(i,"labelFormat",E)),e}}}),i(t,"Gantt/Tree.js",[t["Core/Utilities.js"]],function(e){let{extend:t,isNumber:i,pick:s}=e;function o(e,r,n,l,a,d){let h=d&&d.after,c=d&&d.before,p={data:l,depth:n-1,id:e,level:n,parent:r||""},f=0,u=0,g,k;"function"==typeof c&&c(p,d);let m=(a[e]||[]).map(t=>{let s=o(t.id,e,n+1,t,a,d),r=t.start||NaN,l=!0===t.milestone?r:t.end||NaN;return g=!i(g)||r<g?r:g,k=!i(k)||l>k?l:k,f=f+1+s.descendants,u=Math.max(s.height+1,u),s});return l&&(l.start=s(l.start,g),l.end=s(l.end,k)),t(p,{children:m,descendants:f,height:u}),"function"==typeof h&&h(p,d),p}return{getNode:o,getTree:function(e,t){return o("",null,1,null,function(e){let t=[],i=e.reduce((e,i)=>{let{parent:s="",id:o}=i;return void 0===e[s]&&(e[s]=[]),e[s].push(i),o&&t.push(o),e},{});return Object.keys(i).forEach(e=>{if(""!==e&&-1===t.indexOf(e)){let t=i[e].map(function(e){let{...t}=e;return t});i[""].push(...t),delete i[e]}}),i}(e),t)}}}),i(t,"Core/Axis/TreeGrid/TreeGridTick.js",[t["Core/Utilities.js"]],function(e){let{addEvent:t,removeEvent:i,isObject:s,isNumber:o,pick:r,wrap:n}=e;function l(){this.treeGrid||(this.treeGrid=new h(this))}function a(e,t,i,n,l,a,d,h,c){let p,f,u;let g=r(this.options&&this.options.labels,a),k=this.pos,m=this.axis,x="treegrid"===m.options.type,b=e.apply(this,[t,i,n,l,g,d,h,c]);if(x){let{width:e=0,padding:t=m.linkedParent?0:5}=g&&s(g.symbol,!0)?g.symbol:{},i=g&&o(g.indentation)?g.indentation:0;u=(f=(p=m.treeGrid.mapOfPosToGridNode)&&p[k])&&f.depth||1,b.x+=e+2*t+(u-1)*i}return b}function d(e){let n,l,a;let{pos:d,axis:h,label:c,treeGrid:p,options:f}=this,u=p?.labelIcon,g=c?.element,{treeGrid:k,options:m,chart:x,tickPositions:b}=h,y=k.mapOfPosToGridNode,v=r(f?.labels,m?.labels),P=v&&s(v.symbol,!0)?v.symbol:{},G=y&&y[d],{descendants:A,depth:T}=G||{},C=G&&A&&A>0,B="treegrid"===m.type&&g,O=b.indexOf(d)>-1,w="highcharts-treegrid-node-",I=w+"level-",E=x.styledMode;B&&G&&c.removeClass(RegExp(I+".*")).addClass(I+T),e.apply(this,Array.prototype.slice.call(arguments,1)),B&&C?(n=k.isCollapsed(G),function(e,t){let i=e.treeGrid,s=!i.labelIcon,n=t.renderer,l=t.xy,a=t.options,d=a.width||0,h=a.height||0,c=a.padding??e.axis.linkedParent?0:5,p={x:l.x-d/2-c,y:l.y-h/2},f=t.collapsed?90:180,u=t.show&&o(p.y),g=i.labelIcon;g||(i.labelIcon=g=n.path(n.symbols[a.type](a.x||0,a.y||0,d,h)).addClass("highcharts-label-icon").add(t.group)),g[u?"show":"hide"](),n.styledMode||g.attr({cursor:"pointer",fill:r(t.color,"#666666"),"stroke-width":1,stroke:a.lineColor,strokeWidth:a.lineWidth||0}),g[s?"attr":"animate"]({translateX:p.x,translateY:p.y,rotation:f})}(this,{color:!E&&c.styles.color||"",collapsed:n,group:c.parentGroup,options:P,renderer:c.renderer,show:O,xy:c.xy}),l=w+(n?"collapsed":"expanded"),a=w+(n?"expanded":"collapsed"),c.addClass(l).removeClass(a),E||c.css({cursor:"pointer"}),[c,u].forEach(e=>{e&&!e.attachedTreeGridEvents&&(t(e.element,"mouseover",function(){c.addClass("highcharts-treegrid-node-active"),c.renderer.styledMode||c.css({textDecoration:"underline"})}),t(e.element,"mouseout",function(){!function(e,t){let i=s(t.style)?t.style:{};e.removeClass("highcharts-treegrid-node-active"),e.renderer.styledMode||e.css({textDecoration:i.textDecoration||"none"})}(c,v)}),t(e.element,"click",function(){p.toggleCollapse()}),e.attachedTreeGridEvents=!0)})):u&&(i(g),c?.css({cursor:"default"}),u.destroy())}class h{static compose(e){let i=e.prototype;i.toggleCollapse||(t(e,"init",l),n(i,"getLabelPosition",a),n(i,"renderLabel",d),i.collapse=function(e){this.treeGrid.collapse(e)},i.expand=function(e){this.treeGrid.expand(e)},i.toggleCollapse=function(e){this.treeGrid.toggleCollapse(e)})}constructor(e){this.tick=e}collapse(e){let t=this.tick,i=t.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=t.pos,n=i.treeGrid.mapOfPosToGridNode[o],l=i.treeGrid.collapse(n);s.setBreaks(l,r(e,!0))}}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(e){let{pos:t,axis:i}=this.tick,{treeGrid:s,brokenAxis:o}=i,n=s.mapOfPosToGridNode;if(o&&n){let i=n[t],l=s.expand(i);o.setBreaks(l,r(e,!0))}}toggleCollapse(e){let t=this.tick,i=t.axis,s=i.brokenAxis;if(s&&i.treeGrid.mapOfPosToGridNode){let o=t.pos,n=i.treeGrid.mapOfPosToGridNode[o],l=i.treeGrid.toggleCollapse(n);s.setBreaks(l,r(e,!0))}}}return h}),i(t,"Series/TreeUtilities.js",[t["Core/Color/Color.js"],t["Core/Utilities.js"]],function(e,t){let{extend:i,isArray:s,isNumber:o,isObject:r,merge:n,pick:l,relativeLength:a}=t;return{getColor:function(t,i){let s,o,r,n,a,d;let h=i.index,c=i.mapOptionsToLevel,p=i.parentColor,f=i.parentColorIndex,u=i.series,g=i.colors,k=i.siblings,m=u.points,x=u.chart.options.chart;return t&&(s=m[t.i],o=c[t.level]||{},s&&o.colorByPoint&&(n=s.index%(g?g.length:x.colorCount),r=g&&g[n]),u.chart.styledMode||(a=l(s&&s.options.color,o&&o.color,r,p&&(t=>{let i=o&&o.colorVariation;return i&&"brightness"===i.key&&h&&k?e.parse(t).brighten(i.to*(h/k)).get():t})(p),u.color)),d=l(s&&s.options.colorIndex,o&&o.colorIndex,n,f,i.colorIndex)),{color:a,colorIndex:d}},getLevelOptions:function(e){let t,i,a,d,h,c;let p={};if(r(e))for(d=o(e.from)?e.from:1,c=e.levels,i={},t=r(e.defaults)?e.defaults:{},s(c)&&(i=c.reduce((e,i)=>{let s,a,h;return r(i)&&o(i.level)&&(a=l((h=n({},i)).levelIsConstant,t.levelIsConstant),delete h.levelIsConstant,delete h.level,r(e[s=i.level+(a?0:d-1)])?n(!0,e[s],h):e[s]=h),e},{})),h=o(e.to)?e.to:1,a=0;a<=h;a++)p[a]=n({},t,r(i[a])?i[a]:{});return p},getNodeWidth:function(e,t){let{chart:i,options:s}=e,{nodeDistance:o=0,nodeWidth:r=0}=s,{plotSizeX:n=1}=i;if("auto"===r){if("string"==typeof o&&/%$/.test(o))return n/(t+parseFloat(o)/100*(t-1));let e=Number(o);return(n+e)/(t||1)-e}return a(r,n)},setTreeValues:function e(t,s){let o=s.before,r=s.idRoot,n=s.mapIdToNode[r],a=!1!==s.levelIsConstant,d=s.points[t.i],h=d&&d.options||{},c=[],p=0;t.levelDynamic=t.level-(a?0:n.level),t.name=l(d&&d.name,""),t.visible=r===t.id||!0===s.visible,"function"==typeof o&&(t=o(t,s)),t.children.forEach((o,r)=>{let n=i({},s);i(n,{index:r,siblings:t.children.length,visible:t.visible}),o=e(o,n),c.push(o),o.visible&&(p+=o.val)});let f=l(h.value,p);return t.visible=f>=0&&(p>0||t.visible),t.children=c,t.childrenTotal=p,t.isLeaf=t.visible&&!p,t.val=f,t},updateRootId:function(e){let t,i;return r(e)&&(i=r(e.options)?e.options:{},t=l(e.rootNode,i.rootId,""),r(e.userOptions)&&(e.userOptions.rootId=t),e.rootNode=t),t}}}),i(t,"Core/Axis/TreeGrid/TreeGridAxis.js",[t["Core/Axis/BrokenAxis.js"],t["Core/Axis/GridAxis.js"],t["Gantt/Tree.js"],t["Core/Axis/TreeGrid/TreeGridTick.js"],t["Series/TreeUtilities.js"],t["Core/Utilities.js"]],function(e,t,i,s,o,r){let n;let{getLevelOptions:l}=o,{addEvent:a,find:d,fireEvent:h,isArray:c,isObject:p,isString:f,merge:u,pick:g,removeEvent:k,wrap:m}=r;function x(e,t){let i=e.collapseEnd||0,s=e.collapseStart||0;return i>=t&&(s-=.5),{from:s,to:i,showPoints:!1}}function b(e,t,s){let o=[],r=[],n={},l="boolean"==typeof t&&t,a={},h=-1,c=i.getTree(e,{after:function(e){let t=a[e.pos],i=0,s=0;t.children.forEach(function(e){s+=(e.descendants||0)+1,i=Math.max((e.height||0)+1,i)}),t.descendants=s,t.height=i,t.collapsed&&r.push(t)},before:function(e){let t,i;let s=p(e.data,!0)?e.data:{},r=f(s.name)?s.name:"",c=n[e.parent],u=p(c,!0)?a[c.pos]:null;l&&p(u,!0)&&(t=d(u.children,function(e){return e.name===r}))?(i=t.pos,t.nodes.push(e)):i=h++,!a[i]&&(a[i]=t={depth:u?u.depth+1:0,name:r,id:s.id,nodes:[e],children:[],pos:i},-1!==i&&o.push(r),p(u,!0)&&u.children.push(t)),f(e.id)&&(n[e.id]=e),t&&!0===s.collapsed&&(t.collapsed=!0),e.pos=i}});return{categories:o,mapOfIdToNode:n,mapOfPosToGridNode:a=function(e,t){let i=function(e,s,o){let r=e.nodes,n=s+(-1===s?0:t-1),l=(n-s)/2,a=s+l;return r.forEach(function(e){let t=e.data;p(t,!0)&&(t.y=s+(t.seriesIndex||0),delete t.seriesIndex),e.pos=a}),o[a]=e,e.pos=a,e.tickmarkOffset=l+.5,e.collapseStart=n+.5,e.children.forEach(function(e){i(e,n+1,o),n=(e.collapseEnd||0)-.5}),e.collapseEnd=n+.5,o};return i(e["-1"],-1,{})}(a,s),collapsedNodes:r,tree:c}}function y(e){e.target.axes.filter(function(e){return"treegrid"===e.options.type}).forEach(function(t){let i=t.options||{},s=i.labels,o=i.uniqueNames,r=i.max,n=!t.treeGrid.mapOfPosToGridNode||t.series.some(function(e){return!e.hasRendered||e.isDirtyData||e.isDirty}),a=0,d,h;if(n){if(d=t.series.reduce(function(e,t){return t.visible&&((t.options.data||[]).forEach(function(i){t.options.keys&&t.options.keys.length&&(i=t.pointClass.prototype.optionsToObject.call({series:t},i),t.pointClass.setGanttPointAliases(i)),p(i,!0)&&(i.seriesIndex=a,e.push(i))}),!0===o&&a++),e},[]),r&&d.length<r)for(let e=d.length;e<=r;e++)d.push({name:e+"​"});h=b(d,o||!1,!0===o?a:1),t.categories=h.categories,t.treeGrid.mapOfPosToGridNode=h.mapOfPosToGridNode,t.hasNames=!0,t.treeGrid.tree=h.tree,t.series.forEach(function(e){let t=(e.options.data||[]).map(function(t){return c(t)&&e.options.keys&&e.options.keys.length&&d.forEach(function(e){t.indexOf(e.x)>=0&&t.indexOf(e.x2)>=0&&(t=e)}),p(t,!0)?u(t):t});e.visible&&e.setData(t,!1)}),t.treeGrid.mapOptionsToLevel=l({defaults:s,from:1,levels:s&&s.levels,to:t.treeGrid.tree&&t.treeGrid.tree.height}),"beforeRender"===e.type&&(t.treeGrid.collapsedNodes=h.collapsedNodes)}})}function v(e,t){let i=this.treeGrid.mapOptionsToLevel||{},s="treegrid"===this.options.type,o=this.ticks,r=o[t],l,a,d;s&&this.treeGrid.mapOfPosToGridNode?((l=i[(d=this.treeGrid.mapOfPosToGridNode[t]).depth])&&(a={labels:l}),!r&&n?o[t]=r=new n(this,t,void 0,void 0,{category:d.name,tickmarkOffset:d.tickmarkOffset,options:a}):(r.parameters.category=d.name,r.options=a,r.addLabel())):e.apply(this,Array.prototype.slice.call(arguments,1))}function P(e,t,i,s){let o=this,r="treegrid"===i.type;o.treeGrid||(o.treeGrid=new T(o)),r&&(a(t,"beforeRender",y),a(t,"beforeRedraw",y),a(t,"addSeries",function(e){if(e.options.data){let t=b(e.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(t.collapsedNodes)}}),a(o,"foundExtremes",function(){o.treeGrid.collapsedNodes&&o.treeGrid.collapsedNodes.forEach(function(e){let t=o.treeGrid.collapse(e);o.brokenAxis&&(o.brokenAxis.setBreaks(t,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(t=>e.collapseStart!==t.collapseStart||e.collapseEnd!==t.collapseEnd)))})}),a(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=u({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10}},uniqueNames:!1},i,{reversed:!0})),e.apply(o,[t,i,s]),r&&(o.hasNames=!0,o.options.showLastLabel=!0)}function G(e){let t=this.options,i="number"==typeof t.linkedTo?this.chart[this.coll]?.[t.linkedTo]:void 0;if("treegrid"===t.type){if(this.min=g(this.userMin,t.min,this.dataMin),this.max=g(this.userMax,t.max,this.dataMax),h(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],i){let e=i.getExtremes();this.min=g(e.min,e.dataMin),this.max=g(e.max,e.dataMax),this.tickPositions=i.tickPositions}this.linkedParent=i}else e.apply(this,Array.prototype.slice.call(arguments,1))}function A(e){let t=this;"treegrid"===t.options.type&&t.visible&&t.tickPositions.forEach(function(e){let i=t.ticks[e];i.label&&i.label.attachedTreeGridEvents&&(k(i.label.element),i.label.attachedTreeGridEvents=!1)}),e.apply(t,Array.prototype.slice.call(arguments,1))}class T{static compose(o,r,l,a){if(!o.keepProps.includes("treeGrid")){let e=o.prototype;o.keepProps.push("treeGrid"),m(e,"generateTick",v),m(e,"init",P),m(e,"setTickInterval",G),m(e,"redraw",A),e.utils={getNode:i.getNode},n||(n=a)}return t.compose(o,r,a),e.compose(o,l),s.compose(a),o}constructor(e){this.axis=e}setCollapsedStatus(e){let t=this.axis,i=t.chart;t.series.forEach(function(t){let s=t.options.data;if(e.id&&s){let o=i.get(e.id),r=s[t.data.indexOf(o)];o&&r&&(o.collapsed=e.collapsed,r.collapsed=e.collapsed)}})}collapse(e){let t=this.axis,i=t.options.breaks||[],s=x(e,t.max);return i.push(s),e.collapsed=!0,t.treeGrid.setCollapsedStatus(e),i}expand(e){let t=this.axis,i=t.options.breaks||[],s=x(e,t.max);return e.collapsed=!1,t.treeGrid.setCollapsedStatus(e),i.reduce(function(e,t){return(t.to!==s.to||t.from!==s.from)&&e.push(t),e},[])}getTickPositions(){let e=this.axis,t=Math.floor(e.min/e.tickInterval)*e.tickInterval,i=Math.ceil(e.max/e.tickInterval)*e.tickInterval;return Object.keys(e.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,o){let r=+o;return r>=t&&r<=i&&!(e.brokenAxis&&e.brokenAxis.isInAnyBreak(r))&&s.push(r),s},[])}isCollapsed(e){let t=this.axis,i=t.options.breaks||[],s=x(e,t.max);return i.some(function(e){return e.from===s.from&&e.to===s.to})}toggleCollapse(e){return this.isCollapsed(e)?this.expand(e):this.collapse(e)}}return T}),i(t,"masters/modules/treegrid.src.js",[t["Core/Globals.js"],t["Core/Axis/TreeGrid/TreeGridAxis.js"]],function(e,t){return t.compose(e.Axis,e.Chart,e.Series,e.Tick),e})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts Gantt JS v11.4.3 (2024-05-22)
2
+ * @license Highcharts Gantt JS v11.4.5 (2024-07-04)
3
3
  *
4
4
  * Tree Grid
5
5
  *
@@ -28,7 +28,7 @@
28
28
  obj[path] = fn.apply(null, args);
29
29
 
30
30
  if (typeof CustomEvent === 'function') {
31
- window.dispatchEvent(new CustomEvent(
31
+ Highcharts.win.dispatchEvent(new CustomEvent(
32
32
  'HighchartsModuleLoaded',
33
33
  { detail: { path: path, module: obj[path] } }
34
34
  ));
@@ -1165,7 +1165,7 @@
1165
1165
  // for example we shouldn't have one grid cell spanning
1166
1166
  // two days.
1167
1167
  units: [[
1168
- 'millisecond',
1168
+ 'millisecond', // Unit name
1169
1169
  [1, 10, 100]
1170
1170
  ], [
1171
1171
  'second',
@@ -3101,4 +3101,4 @@
3101
3101
 
3102
3102
  return Highcharts;
3103
3103
  });
3104
- }));
3104
+ }));