highcharts 11.4.3 → 11.4.4

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 (625) hide show
  1. package/bower.json +1 -1
  2. package/es-modules/Accessibility/Accessibility.js +1 -1
  3. package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
  4. package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
  5. package/es-modules/Accessibility/KeyboardNavigation.js +1 -1
  6. package/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
  7. package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
  8. package/es-modules/Accessibility/Options/LangDefaults.js +3 -3
  9. package/es-modules/Accessibility/Utils/EventProvider.js +1 -1
  10. package/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -1
  11. package/es-modules/Core/Animation/Fx.js +4 -2
  12. package/es-modules/Core/Axis/Axis.js +3 -3
  13. package/es-modules/Core/Axis/AxisDefaults.js +1 -0
  14. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
  15. package/es-modules/Core/Axis/GridAxis.js +1 -1
  16. package/es-modules/Core/Axis/OrdinalAxis.js +5 -2
  17. package/es-modules/Core/Axis/RadialAxisDefaults.js +3 -3
  18. package/es-modules/Core/Axis/Stacking/StackItem.js +1 -1
  19. package/es-modules/Core/Chart/Chart.js +16 -7
  20. package/es-modules/Core/Chart/MapChart.js +3 -3
  21. package/es-modules/Core/Chart/StockChart.js +1 -1
  22. package/es-modules/Core/Color/Color.js +2 -2
  23. package/es-modules/Core/Defaults.js +27 -1
  24. package/es-modules/Core/Geometry/GeometryUtilities.js +22 -0
  25. package/es-modules/Core/Globals.js +1 -1
  26. package/es-modules/Core/Legend/Legend.js +82 -14
  27. package/es-modules/Core/MSPointer.js +42 -1
  28. package/es-modules/Core/Pointer.js +10 -6
  29. package/es-modules/Core/Renderer/HTML/AST.js +6 -0
  30. package/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -2
  31. package/es-modules/Core/Renderer/SVG/SVGElement.js +31 -98
  32. package/es-modules/Core/Renderer/SVG/SVGLabel.js +20 -0
  33. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +29 -14
  34. package/es-modules/Core/Renderer/SVG/Symbols.js +18 -18
  35. package/es-modules/Core/Responsive.js +6 -1
  36. package/es-modules/Core/Series/DataLabel.js +1 -10
  37. package/es-modules/Core/Series/DataSeriesComposition.js +0 -2
  38. package/es-modules/Core/Series/Point.js +7 -10
  39. package/es-modules/Core/Series/Series.js +40 -24
  40. package/es-modules/Core/Series/SeriesDefaults.js +18 -12
  41. package/es-modules/Core/Templating.js +2 -2
  42. package/es-modules/Core/Tooltip.js +6 -3
  43. package/es-modules/Data/Connectors/JSONConnector.js +1 -0
  44. package/es-modules/Data/Converters/CSVConverter.js +1 -1
  45. package/es-modules/Data/Converters/DataConverter.js +7 -7
  46. package/es-modules/Data/DataTable.js +106 -5
  47. package/es-modules/Data/Formula/FormulaParser.js +2 -2
  48. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +1 -1
  49. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +1 -1
  50. package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -2
  51. package/es-modules/Extensions/Boost/Boost.js +1 -1
  52. package/es-modules/Extensions/Boost/BoostChart.js +8 -2
  53. package/es-modules/Extensions/Boost/BoostSeries.js +41 -10
  54. package/es-modules/Extensions/Boost/WGLShader.js +1 -1
  55. package/es-modules/Extensions/BorderRadius.js +3 -3
  56. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +0 -38
  57. package/es-modules/Extensions/Data.js +11 -11
  58. package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -2
  59. package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
  60. package/es-modules/Extensions/DownloadURL.js +1 -1
  61. package/es-modules/Extensions/Drilldown/Drilldown.js +0 -2
  62. package/es-modules/Extensions/Exporting/Exporting.js +14 -14
  63. package/es-modules/Extensions/OverlappingDataLabels.js +36 -5
  64. package/es-modules/Extensions/Pane/PaneDefaults.js +3 -2
  65. package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +1 -1
  66. package/es-modules/Extensions/Sonification/MIDI.js +7 -7
  67. package/es-modules/Extensions/Sonification/SonificationInstrument.js +0 -1
  68. package/es-modules/Extensions/Sonification/TimelineFromChart.js +1 -3
  69. package/es-modules/Extensions/TextPath.js +225 -0
  70. package/es-modules/Maps/MapUtilities.js +1 -20
  71. package/es-modules/Maps/MapView.js +3 -1
  72. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -0
  73. package/es-modules/Series/Area/AreaSeries.js +5 -0
  74. package/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
  75. package/es-modules/Series/Bar/BarSeries.js +1 -1
  76. package/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +2 -2
  77. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +2 -1
  78. package/es-modules/Series/Bubble/BubbleLegendComposition.js +4 -7
  79. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +3 -3
  80. package/es-modules/Series/Bubble/BubbleSeries.js +4 -4
  81. package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
  82. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -2
  83. package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +2 -2
  84. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +2 -2
  85. package/es-modules/Series/Flags/FlagsSeries.js +2 -2
  86. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +1 -1
  87. package/es-modules/Series/Gantt/GanttSeriesDefaults.js +1 -1
  88. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  89. package/es-modules/Series/HLC/HLCSeries.js +1 -1
  90. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +2 -2
  91. package/es-modules/Series/Item/ItemSeries.js +1 -1
  92. package/es-modules/Series/Map/MapSeries.js +1 -1
  93. package/es-modules/Series/Map/MapSeriesDefaults.js +2 -2
  94. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -1
  95. package/es-modules/Series/Organization/OrganizationSeries.js +3 -0
  96. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  97. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +8 -5
  98. package/es-modules/Series/Pie/PieDataLabel.js +7 -6
  99. package/es-modules/Series/Pie/PiePoint.js +6 -6
  100. package/es-modules/Series/Pie/PieSeriesDefaults.js +11 -10
  101. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  102. package/es-modules/Series/Sankey/SankeySeries.js +7 -4
  103. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
  104. package/es-modules/Series/Sunburst/SunburstSeries.js +8 -5
  105. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +2 -2
  106. package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -2
  107. package/es-modules/Series/Treegraph/TreegraphSeries.js +23 -2
  108. package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +2 -2
  109. package/es-modules/Series/Treemap/TreemapPoint.js +2 -1
  110. package/es-modules/Series/Treemap/TreemapSeries.js +15 -7
  111. package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +15 -1
  112. package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +2 -2
  113. package/es-modules/Series/Variwide/VariwideComposition.js +1 -1
  114. package/es-modules/Series/Vector/VectorSeries.js +1 -1
  115. package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
  116. package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
  117. package/es-modules/Series/Wordcloud/WordcloudSeriesDefaults.js +1 -1
  118. package/es-modules/Stock/Indicators/AD/ADIndicator.js +1 -1
  119. package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
  120. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
  121. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
  122. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
  123. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -3
  124. package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +1 -1
  125. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +1 -1
  126. package/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
  127. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
  128. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +1 -1
  129. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -3
  130. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  131. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +2 -2
  132. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +3 -3
  133. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +1 -1
  134. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +1 -1
  135. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
  136. package/es-modules/Stock/Navigator/Navigator.js +141 -55
  137. package/es-modules/Stock/Navigator/NavigatorDefaults.js +1 -1
  138. package/es-modules/Stock/RangeSelector/RangeSelector.js +1 -1
  139. package/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +1 -1
  140. package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -1
  141. package/es-modules/Stock/StockTools/StockToolbar.js +115 -37
  142. package/es-modules/Stock/StockTools/StockToolsDefaults.js +7 -1
  143. package/es-modules/Stock/StockTools/StockToolsGui.js +24 -23
  144. package/es-modules/Stock/StockTools/StockToolsUtilities.js +26 -0
  145. package/es-modules/masters/highcharts-more.src.js +2 -2
  146. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  147. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  148. package/es-modules/masters/indicators/ao.src.js +1 -1
  149. package/es-modules/masters/indicators/apo.src.js +1 -1
  150. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  151. package/es-modules/masters/indicators/aroon.src.js +1 -1
  152. package/es-modules/masters/indicators/atr.src.js +1 -1
  153. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  154. package/es-modules/masters/indicators/cci.src.js +1 -1
  155. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  156. package/es-modules/masters/indicators/cmf.src.js +1 -1
  157. package/es-modules/masters/indicators/cmo.src.js +1 -1
  158. package/es-modules/masters/indicators/dema.src.js +1 -1
  159. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  160. package/es-modules/masters/indicators/dmi.src.js +1 -1
  161. package/es-modules/masters/indicators/dpo.src.js +1 -1
  162. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  163. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  164. package/es-modules/masters/indicators/indicators.src.js +1 -1
  165. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  166. package/es-modules/masters/indicators/klinger.src.js +1 -1
  167. package/es-modules/masters/indicators/macd.src.js +1 -1
  168. package/es-modules/masters/indicators/mfi.src.js +1 -1
  169. package/es-modules/masters/indicators/momentum.src.js +1 -1
  170. package/es-modules/masters/indicators/natr.src.js +1 -1
  171. package/es-modules/masters/indicators/obv.src.js +1 -1
  172. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  173. package/es-modules/masters/indicators/ppo.src.js +1 -1
  174. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  175. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  176. package/es-modules/masters/indicators/psar.src.js +1 -1
  177. package/es-modules/masters/indicators/regressions.src.js +1 -1
  178. package/es-modules/masters/indicators/roc.src.js +1 -1
  179. package/es-modules/masters/indicators/rsi.src.js +1 -1
  180. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  181. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  182. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  183. package/es-modules/masters/indicators/tema.src.js +1 -1
  184. package/es-modules/masters/indicators/trendline.src.js +1 -1
  185. package/es-modules/masters/indicators/trix.src.js +1 -1
  186. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  187. package/es-modules/masters/indicators/vwap.src.js +1 -1
  188. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  189. package/es-modules/masters/indicators/wma.src.js +1 -1
  190. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  191. package/es-modules/masters/modules/arc-diagram.src.js +2 -3
  192. package/es-modules/masters/modules/cylinder.src.js +1 -1
  193. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  194. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  195. package/es-modules/masters/modules/export-data.src.js +1 -1
  196. package/es-modules/masters/modules/funnel3d.src.js +2 -2
  197. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  198. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  199. package/es-modules/masters/modules/map.src.js +1 -1
  200. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  201. package/es-modules/masters/modules/organization.src.js +1 -1
  202. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  203. package/es-modules/masters/modules/pyramid3d.src.js +3 -3
  204. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  205. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  206. package/es-modules/masters/modules/textpath.src.d.ts +1 -0
  207. package/es-modules/masters/modules/textpath.src.js +16 -0
  208. package/es-modules/masters/modules/tilemap.src.js +1 -1
  209. package/es-modules/masters/modules/treegraph.src.js +1 -1
  210. package/es-modules/tsconfig.tsbuildinfo +1 -1
  211. package/highcharts-3d.js +2 -2
  212. package/highcharts-3d.src.js +4 -4
  213. package/highcharts-gantt.js +3 -3
  214. package/highcharts-gantt.src.js +3374 -3042
  215. package/highcharts-more.d.ts +42 -2
  216. package/highcharts-more.js +2 -2
  217. package/highcharts-more.src.d.ts +42 -2
  218. package/highcharts-more.src.js +260 -35
  219. package/highcharts.d.ts +828 -428
  220. package/highcharts.js +3 -3
  221. package/highcharts.src.d.ts +828 -428
  222. package/highcharts.src.js +5844 -5600
  223. package/highmaps.js +3 -3
  224. package/highmaps.src.js +3270 -3043
  225. package/highstock.js +3 -3
  226. package/highstock.src.js +3379 -3048
  227. package/indicators/acceleration-bands.js +2 -2
  228. package/indicators/acceleration-bands.src.js +4 -4
  229. package/indicators/accumulation-distribution.js +2 -2
  230. package/indicators/accumulation-distribution.src.js +5 -5
  231. package/indicators/ao.js +2 -2
  232. package/indicators/ao.src.js +4 -4
  233. package/indicators/apo.js +2 -2
  234. package/indicators/apo.src.js +5 -5
  235. package/indicators/aroon-oscillator.js +2 -2
  236. package/indicators/aroon-oscillator.src.js +4 -4
  237. package/indicators/aroon.js +2 -2
  238. package/indicators/aroon.src.js +5 -5
  239. package/indicators/atr.js +2 -2
  240. package/indicators/atr.src.js +4 -4
  241. package/indicators/bollinger-bands.js +2 -2
  242. package/indicators/bollinger-bands.src.js +4 -4
  243. package/indicators/cci.js +2 -2
  244. package/indicators/cci.src.js +4 -4
  245. package/indicators/chaikin.js +2 -2
  246. package/indicators/chaikin.src.js +6 -6
  247. package/indicators/cmf.js +2 -2
  248. package/indicators/cmf.src.js +5 -5
  249. package/indicators/cmo.js +2 -2
  250. package/indicators/cmo.src.js +4 -4
  251. package/indicators/dema.js +2 -2
  252. package/indicators/dema.src.js +4 -4
  253. package/indicators/disparity-index.js +2 -2
  254. package/indicators/disparity-index.src.js +4 -4
  255. package/indicators/dmi.js +2 -2
  256. package/indicators/dmi.src.js +4 -4
  257. package/indicators/dpo.js +2 -2
  258. package/indicators/dpo.src.js +4 -4
  259. package/indicators/ema.js +1 -1
  260. package/indicators/ema.src.js +2 -2
  261. package/indicators/ichimoku-kinko-hyo.js +2 -2
  262. package/indicators/ichimoku-kinko-hyo.src.js +7 -7
  263. package/indicators/indicators-all.js +2 -2
  264. package/indicators/indicators-all.src.js +29 -29
  265. package/indicators/indicators.js +2 -2
  266. package/indicators/indicators.src.js +5 -5
  267. package/indicators/keltner-channels.js +2 -2
  268. package/indicators/keltner-channels.src.js +4 -4
  269. package/indicators/klinger.js +2 -2
  270. package/indicators/klinger.src.js +4 -4
  271. package/indicators/macd.js +2 -2
  272. package/indicators/macd.src.js +4 -4
  273. package/indicators/mfi.js +2 -2
  274. package/indicators/mfi.src.js +5 -5
  275. package/indicators/momentum.js +2 -2
  276. package/indicators/momentum.src.js +4 -4
  277. package/indicators/natr.js +2 -2
  278. package/indicators/natr.src.js +4 -4
  279. package/indicators/obv.js +2 -2
  280. package/indicators/obv.src.js +4 -4
  281. package/indicators/pivot-points.js +2 -2
  282. package/indicators/pivot-points.src.js +7 -7
  283. package/indicators/ppo.js +2 -2
  284. package/indicators/ppo.src.js +5 -5
  285. package/indicators/price-channel.js +2 -2
  286. package/indicators/price-channel.src.js +5 -5
  287. package/indicators/price-envelopes.js +2 -2
  288. package/indicators/price-envelopes.src.js +4 -4
  289. package/indicators/psar.js +2 -2
  290. package/indicators/psar.src.js +5 -5
  291. package/indicators/regressions.js +2 -2
  292. package/indicators/regressions.src.js +5 -5
  293. package/indicators/roc.js +2 -2
  294. package/indicators/roc.src.js +4 -4
  295. package/indicators/rsi.js +2 -2
  296. package/indicators/rsi.src.js +4 -4
  297. package/indicators/slow-stochastic.js +2 -2
  298. package/indicators/slow-stochastic.src.js +6 -6
  299. package/indicators/stochastic.js +2 -2
  300. package/indicators/stochastic.src.js +4 -4
  301. package/indicators/supertrend.js +2 -2
  302. package/indicators/supertrend.src.js +7 -7
  303. package/indicators/tema.js +2 -2
  304. package/indicators/tema.src.js +4 -4
  305. package/indicators/trendline.js +2 -2
  306. package/indicators/trendline.src.js +5 -5
  307. package/indicators/trix.js +2 -2
  308. package/indicators/trix.src.js +4 -4
  309. package/indicators/volume-by-price.js +2 -2
  310. package/indicators/volume-by-price.src.js +4 -4
  311. package/indicators/vwap.js +2 -2
  312. package/indicators/vwap.src.js +5 -5
  313. package/indicators/williams-r.js +2 -2
  314. package/indicators/williams-r.src.js +5 -5
  315. package/indicators/wma.js +2 -2
  316. package/indicators/wma.src.js +4 -4
  317. package/indicators/zigzag.js +2 -2
  318. package/indicators/zigzag.src.js +4 -4
  319. package/modules/accessibility.js +2 -2
  320. package/modules/accessibility.src.js +162 -77
  321. package/modules/annotations-advanced.js +2 -2
  322. package/modules/annotations-advanced.src.js +8 -9
  323. package/modules/annotations.js +2 -2
  324. package/modules/annotations.src.js +8 -9
  325. package/modules/arc-diagram.d.ts +120 -1
  326. package/modules/arc-diagram.js +2 -2
  327. package/modules/arc-diagram.src.d.ts +120 -1
  328. package/modules/arc-diagram.src.js +9363 -5
  329. package/modules/arrow-symbols.js +2 -2
  330. package/modules/arrow-symbols.src.js +3 -3
  331. package/modules/boost-canvas.js +2 -2
  332. package/modules/boost-canvas.src.js +53 -16
  333. package/modules/boost.js +2 -2
  334. package/modules/boost.src.js +54 -17
  335. package/modules/broken-axis.js +2 -2
  336. package/modules/broken-axis.src.js +3 -3
  337. package/modules/bullet.js +2 -2
  338. package/modules/bullet.src.js +3 -3
  339. package/modules/coloraxis.js +2 -2
  340. package/modules/coloraxis.src.js +10 -6
  341. package/modules/current-date-indicator.js +2 -2
  342. package/modules/current-date-indicator.src.js +3 -3
  343. package/modules/cylinder.js +2 -2
  344. package/modules/cylinder.src.js +4 -4
  345. package/modules/data-tools.js +2 -2
  346. package/modules/data-tools.src.js +120 -18
  347. package/modules/data.js +2 -2
  348. package/modules/data.src.js +14 -14
  349. package/modules/datagrouping.js +2 -2
  350. package/modules/datagrouping.src.js +5 -6
  351. package/modules/debugger.js +2 -2
  352. package/modules/debugger.src.js +3 -3
  353. package/modules/dependency-wheel.js +2 -2
  354. package/modules/dependency-wheel.src.js +8 -7
  355. package/modules/dotplot.js +2 -2
  356. package/modules/dotplot.src.js +3 -3
  357. package/modules/drag-panes.js +2 -2
  358. package/modules/drag-panes.src.js +4 -4
  359. package/modules/draggable-points.js +2 -2
  360. package/modules/draggable-points.src.js +3 -3
  361. package/modules/drilldown.js +2 -2
  362. package/modules/drilldown.src.js +3 -43
  363. package/modules/dumbbell.js +2 -2
  364. package/modules/dumbbell.src.js +5 -5
  365. package/modules/export-data.js +2 -2
  366. package/modules/export-data.src.js +5 -5
  367. package/modules/exporting.js +2 -2
  368. package/modules/exporting.src.js +17 -17
  369. package/modules/flowmap.js +2 -2
  370. package/modules/flowmap.src.js +3 -3
  371. package/modules/full-screen.js +2 -2
  372. package/modules/full-screen.src.js +3 -3
  373. package/modules/funnel.js +2 -2
  374. package/modules/funnel.src.js +3 -3
  375. package/modules/funnel3d.js +2 -2
  376. package/modules/funnel3d.src.js +4 -4
  377. package/modules/gantt.js +2 -2
  378. package/modules/gantt.src.js +155 -67
  379. package/modules/geoheatmap.js +2 -2
  380. package/modules/geoheatmap.src.js +3 -3
  381. package/modules/grid-axis.js +2 -2
  382. package/modules/grid-axis.src.js +4 -4
  383. package/modules/heatmap.js +2 -2
  384. package/modules/heatmap.src.js +12 -8
  385. package/modules/heikinashi.js +2 -2
  386. package/modules/heikinashi.src.js +4 -4
  387. package/modules/histogram-bellcurve.js +2 -2
  388. package/modules/histogram-bellcurve.src.js +5 -5
  389. package/modules/hollowcandlestick.js +2 -2
  390. package/modules/hollowcandlestick.src.js +4 -4
  391. package/modules/item-series.js +2 -2
  392. package/modules/item-series.src.js +4 -4
  393. package/modules/lollipop.js +2 -2
  394. package/modules/lollipop.src.js +3 -3
  395. package/modules/map.d.ts +1 -1
  396. package/modules/map.js +2 -2
  397. package/modules/map.src.d.ts +1 -1
  398. package/modules/map.src.js +34 -51
  399. package/modules/marker-clusters.js +2 -2
  400. package/modules/marker-clusters.src.js +3 -3
  401. package/modules/mouse-wheel-zoom.js +2 -2
  402. package/modules/mouse-wheel-zoom.src.js +3 -3
  403. package/modules/navigator.js +2 -2
  404. package/modules/navigator.src.js +146 -61
  405. package/modules/networkgraph.d.ts +40 -0
  406. package/modules/networkgraph.js +2 -2
  407. package/modules/networkgraph.src.d.ts +40 -0
  408. package/modules/networkgraph.src.js +231 -5
  409. package/modules/no-data-to-display.js +2 -2
  410. package/modules/no-data-to-display.src.js +3 -3
  411. package/modules/offline-exporting.js +2 -2
  412. package/modules/offline-exporting.src.js +6 -6
  413. package/modules/organization.js +2 -2
  414. package/modules/organization.src.js +6 -5
  415. package/modules/overlapping-datalabels.js +2 -2
  416. package/modules/overlapping-datalabels.src.js +3 -3
  417. package/modules/parallel-coordinates.js +2 -2
  418. package/modules/parallel-coordinates.src.js +4 -4
  419. package/modules/pareto.js +2 -2
  420. package/modules/pareto.src.js +3 -3
  421. package/modules/pathfinder.js +2 -2
  422. package/modules/pathfinder.src.js +3 -3
  423. package/modules/pattern-fill.js +2 -2
  424. package/modules/pattern-fill.src.js +3 -3
  425. package/modules/pictorial.js +2 -2
  426. package/modules/pictorial.src.js +3 -3
  427. package/modules/price-indicator.js +2 -2
  428. package/modules/price-indicator.src.js +4 -4
  429. package/modules/pyramid3d.js +2 -2
  430. package/modules/pyramid3d.src.js +4 -4
  431. package/modules/sankey.d.ts +42 -1
  432. package/modules/sankey.js +2 -2
  433. package/modules/sankey.src.d.ts +42 -1
  434. package/modules/sankey.src.js +235 -9
  435. package/modules/series-label.js +2 -2
  436. package/modules/series-label.src.js +3 -3
  437. package/modules/series-on-point.js +2 -2
  438. package/modules/series-on-point.src.js +3 -3
  439. package/modules/solid-gauge.js +2 -2
  440. package/modules/solid-gauge.src.js +4 -4
  441. package/modules/sonification.js +2 -2
  442. package/modules/sonification.src.js +12 -15
  443. package/modules/static-scale.js +2 -2
  444. package/modules/static-scale.src.js +3 -3
  445. package/modules/stock-tools.d.ts +15 -1
  446. package/modules/stock-tools.js +2 -2
  447. package/modules/stock-tools.src.d.ts +15 -1
  448. package/modules/stock-tools.src.js +178 -70
  449. package/modules/stock.js +2 -2
  450. package/modules/stock.src.js +160 -73
  451. package/modules/streamgraph.js +2 -2
  452. package/modules/streamgraph.src.js +3 -3
  453. package/modules/sunburst.d.ts +40 -0
  454. package/modules/sunburst.js +2 -2
  455. package/modules/sunburst.src.d.ts +40 -0
  456. package/modules/sunburst.src.js +269 -58
  457. package/modules/textpath.d.ts +58 -0
  458. package/modules/textpath.js +7 -0
  459. package/modules/textpath.src.d.ts +58 -0
  460. package/modules/textpath.src.js +269 -0
  461. package/modules/tiledwebmap.js +3 -3
  462. package/modules/tiledwebmap.src.js +3 -3
  463. package/modules/tilemap.js +2 -2
  464. package/modules/tilemap.src.js +6 -6
  465. package/modules/timeline.js +2 -2
  466. package/modules/timeline.src.js +3 -3
  467. package/modules/treegraph.d.ts +40 -0
  468. package/modules/treegraph.js +2 -2
  469. package/modules/treegraph.src.d.ts +40 -0
  470. package/modules/treegraph.src.js +253 -9
  471. package/modules/treegrid.js +2 -2
  472. package/modules/treegrid.src.js +4 -4
  473. package/modules/treemap.js +2 -2
  474. package/modules/treemap.src.js +35 -50
  475. package/modules/variable-pie.js +2 -2
  476. package/modules/variable-pie.src.js +5 -5
  477. package/modules/variwide.js +2 -2
  478. package/modules/variwide.src.js +4 -4
  479. package/modules/vector.js +2 -2
  480. package/modules/vector.src.js +4 -4
  481. package/modules/venn.js +2 -2
  482. package/modules/venn.src.js +3 -88
  483. package/modules/windbarb.js +2 -2
  484. package/modules/windbarb.src.js +5 -5
  485. package/modules/wordcloud.js +2 -2
  486. package/modules/wordcloud.src.js +6 -6
  487. package/modules/xrange.js +2 -2
  488. package/modules/xrange.src.js +3 -3
  489. package/options/ad.d.ts +17 -9
  490. package/options/ad.src.d.ts +17 -9
  491. package/options/apo.d.ts +17 -9
  492. package/options/apo.src.d.ts +17 -9
  493. package/options/arearange.d.ts +17 -9
  494. package/options/arearange.src.d.ts +17 -9
  495. package/options/areaspline.d.ts +17 -9
  496. package/options/areaspline.src.d.ts +17 -9
  497. package/options/bar.d.ts +17 -9
  498. package/options/bar.src.d.ts +17 -9
  499. package/options/bb.d.ts +17 -9
  500. package/options/bb.src.d.ts +17 -9
  501. package/options/bubble.d.ts +17 -9
  502. package/options/bubble.src.d.ts +17 -9
  503. package/options/candlestick.d.ts +17 -9
  504. package/options/candlestick.src.d.ts +17 -9
  505. package/options/cci.d.ts +17 -9
  506. package/options/cci.src.d.ts +17 -9
  507. package/options/cmf.d.ts +17 -9
  508. package/options/cmf.src.d.ts +17 -9
  509. package/options/column.d.ts +17 -9
  510. package/options/column.src.d.ts +17 -9
  511. package/options/columnpyramid.d.ts +17 -9
  512. package/options/columnpyramid.src.d.ts +17 -9
  513. package/options/columnrange.d.ts +17 -9
  514. package/options/columnrange.src.d.ts +17 -9
  515. package/options/cylinder.d.ts +17 -9
  516. package/options/cylinder.src.d.ts +17 -9
  517. package/options/dema.d.ts +17 -9
  518. package/options/dema.src.d.ts +17 -9
  519. package/options/dependencywheel.d.ts +17 -9
  520. package/options/dependencywheel.src.d.ts +17 -9
  521. package/options/disparityindex.d.ts +17 -9
  522. package/options/disparityindex.src.d.ts +17 -9
  523. package/options/dpo.d.ts +17 -9
  524. package/options/dpo.src.d.ts +17 -9
  525. package/options/dumbbell.d.ts +17 -9
  526. package/options/dumbbell.src.d.ts +17 -9
  527. package/options/ema.d.ts +17 -9
  528. package/options/ema.src.d.ts +17 -9
  529. package/options/funnel.d.ts +17 -9
  530. package/options/funnel.src.d.ts +17 -9
  531. package/options/gantt.d.ts +16 -8
  532. package/options/gantt.src.d.ts +16 -8
  533. package/options/klinger.d.ts +17 -9
  534. package/options/klinger.src.d.ts +17 -9
  535. package/options/linearregression.d.ts +17 -9
  536. package/options/linearregression.src.d.ts +17 -9
  537. package/options/lollipop.d.ts +17 -9
  538. package/options/lollipop.src.d.ts +17 -9
  539. package/options/macd.d.ts +17 -9
  540. package/options/macd.src.d.ts +17 -9
  541. package/options/momentum.d.ts +17 -9
  542. package/options/momentum.src.d.ts +17 -9
  543. package/options/ohlc.d.ts +17 -9
  544. package/options/ohlc.src.d.ts +17 -9
  545. package/options/organization.d.ts +17 -9
  546. package/options/organization.src.d.ts +17 -9
  547. package/options/pareto.d.ts +16 -8
  548. package/options/pareto.src.d.ts +16 -8
  549. package/options/pc.d.ts +17 -9
  550. package/options/pc.src.d.ts +17 -9
  551. package/options/polygon.d.ts +17 -9
  552. package/options/polygon.src.d.ts +17 -9
  553. package/options/ppo.d.ts +17 -9
  554. package/options/ppo.src.d.ts +17 -9
  555. package/options/psar.d.ts +17 -9
  556. package/options/psar.src.d.ts +17 -9
  557. package/options/pyramid.d.ts +17 -9
  558. package/options/pyramid.src.d.ts +17 -9
  559. package/options/roc.d.ts +17 -9
  560. package/options/roc.src.d.ts +17 -9
  561. package/options/sankey.d.ts +17 -9
  562. package/options/sankey.src.d.ts +17 -9
  563. package/options/scatter.d.ts +17 -9
  564. package/options/scatter.src.d.ts +17 -9
  565. package/options/series.d.ts +17 -9
  566. package/options/series.src.d.ts +17 -9
  567. package/options/sma.d.ts +17 -9
  568. package/options/sma.src.d.ts +17 -9
  569. package/options/spline.d.ts +17 -9
  570. package/options/spline.src.d.ts +17 -9
  571. package/options/stochastic.d.ts +17 -9
  572. package/options/stochastic.src.d.ts +17 -9
  573. package/options/supertrend.d.ts +17 -9
  574. package/options/supertrend.src.d.ts +17 -9
  575. package/options/tilemap.d.ts +17 -9
  576. package/options/tilemap.src.d.ts +17 -9
  577. package/options/treegraph.d.ts +24 -9
  578. package/options/treegraph.src.d.ts +24 -9
  579. package/options/treemap.d.ts +23 -8
  580. package/options/treemap.src.d.ts +23 -8
  581. package/options/trendline.d.ts +17 -9
  582. package/options/trendline.src.d.ts +17 -9
  583. package/options/variwide.d.ts +17 -9
  584. package/options/variwide.src.d.ts +17 -9
  585. package/options/vbp.d.ts +17 -9
  586. package/options/vbp.src.d.ts +17 -9
  587. package/options/vector.d.ts +17 -9
  588. package/options/vector.src.d.ts +17 -9
  589. package/options/waterfall.d.ts +17 -9
  590. package/options/waterfall.src.d.ts +17 -9
  591. package/options/williamsr.d.ts +17 -9
  592. package/options/williamsr.src.d.ts +17 -9
  593. package/options/xrange.d.ts +17 -9
  594. package/options/xrange.src.d.ts +17 -9
  595. package/package.json +1 -1
  596. package/standalone-navigator.js +2 -2
  597. package/standalone-navigator.src.js +3363 -3034
  598. package/themes/avocado.js +2 -2
  599. package/themes/avocado.src.js +3 -3
  600. package/themes/brand-dark.js +2 -2
  601. package/themes/brand-dark.src.js +3 -3
  602. package/themes/brand-light.js +2 -2
  603. package/themes/brand-light.src.js +3 -3
  604. package/themes/dark-blue.js +2 -2
  605. package/themes/dark-blue.src.js +3 -3
  606. package/themes/dark-green.js +2 -2
  607. package/themes/dark-green.src.js +3 -3
  608. package/themes/dark-unica.js +2 -2
  609. package/themes/dark-unica.src.js +3 -3
  610. package/themes/gray.js +2 -2
  611. package/themes/gray.src.js +3 -3
  612. package/themes/grid-light.js +2 -2
  613. package/themes/grid-light.src.js +3 -3
  614. package/themes/grid.js +2 -2
  615. package/themes/grid.src.js +3 -3
  616. package/themes/high-contrast-dark.js +2 -2
  617. package/themes/high-contrast-dark.src.js +3 -3
  618. package/themes/high-contrast-light.js +2 -2
  619. package/themes/high-contrast-light.src.js +3 -3
  620. package/themes/sand-signika.js +2 -2
  621. package/themes/sand-signika.src.js +3 -3
  622. package/themes/skies.js +2 -2
  623. package/themes/skies.src.js +3 -3
  624. package/themes/sunset.js +2 -2
  625. package/themes/sunset.src.js +3 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts Gantt JS v11.4.3 (2024-05-22)
2
+ * @license Highcharts Gantt JS v11.4.4 (2024-07-02)
3
3
  *
4
4
  * Gantt series
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
  ));
@@ -1564,7 +1564,7 @@
1564
1564
  *
1565
1565
  * @type {Highcharts.ColorString|null}
1566
1566
  */
1567
- lineColor: null,
1567
+ lineColor: null, // #4602
1568
1568
  marker: {
1569
1569
  enabled: false
1570
1570
  },
@@ -2280,7 +2280,7 @@
2280
2280
  *
2281
2281
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2282
2282
  */
2283
- trackBackgroundColor: 'rgba(255, 255, 255, 0.001)',
2283
+ trackBackgroundColor: 'rgba(255, 255, 255, 0.001)', // #18922
2284
2284
  /**
2285
2285
  * The color of the border of the scrollbar track.
2286
2286
  *
@@ -2970,7 +2970,7 @@
2970
2970
 
2971
2971
  return Scrollbar;
2972
2972
  });
2973
- _registerModule(_modules, 'Stock/Navigator/Navigator.js', [_modules['Core/Axis/Axis.js'], _modules['Stock/Navigator/ChartNavigatorComposition.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Core/Axis/NavigatorAxisComposition.js'], _modules['Stock/Navigator/NavigatorComposition.js'], _modules['Stock/Scrollbar/Scrollbar.js'], _modules['Core/Utilities.js']], function (Axis, ChartNavigatorComposition, D, H, NavigatorAxisAdditions, NavigatorComposition, Scrollbar, U) {
2973
+ _registerModule(_modules, 'Stock/Navigator/Navigator.js', [_modules['Core/Axis/Axis.js'], _modules['Stock/Navigator/ChartNavigatorComposition.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Core/Axis/NavigatorAxisComposition.js'], _modules['Stock/Navigator/NavigatorComposition.js'], _modules['Stock/Scrollbar/Scrollbar.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (Axis, ChartNavigatorComposition, D, H, NavigatorAxisAdditions, NavigatorComposition, Scrollbar, SVGRenderer, U) {
2974
2974
  /* *
2975
2975
  *
2976
2976
  * (c) 2010-2024 Torstein Honsi
@@ -2982,6 +2982,7 @@
2982
2982
  * */
2983
2983
  const { defaultOptions } = D;
2984
2984
  const { isTouchDevice } = H;
2985
+ const { prototype: { symbols } } = SVGRenderer;
2985
2986
  const { addEvent, clamp, correctFloat, defined, destroyObjectProperties, erase, extend, find, fireEvent, isArray, isNumber, merge, pick, removeEvent, splat } = U;
2986
2987
  /* *
2987
2988
  *
@@ -3031,6 +3032,7 @@
3031
3032
  *
3032
3033
  * */
3033
3034
  constructor(chart) {
3035
+ this.isDirty = false;
3034
3036
  this.scrollbarHeight = 0;
3035
3037
  this.init(chart);
3036
3038
  }
@@ -3101,9 +3103,9 @@
3101
3103
  ],
3102
3104
  // Top right of zoomed range
3103
3105
  ['L', left + height, verticalMin],
3104
- ['L', left, verticalMin],
3105
- ['M', left, zoomedMax],
3106
- ['L', left + height, zoomedMax],
3106
+ ['L', left, verticalMin], // Top left of z.r.
3107
+ ['M', left, zoomedMax], // Bottom left of z.r.
3108
+ ['L', left + height, zoomedMax], // Bottom right of z.r.
3107
3109
  [
3108
3110
  'L',
3109
3111
  left + height,
@@ -3141,7 +3143,7 @@
3141
3143
  [
3142
3144
  'L',
3143
3145
  left + navigatorSize + scrollButtonSize * 2,
3144
- navigatorTop + halfOutline
3146
+ lineTop
3145
3147
  ]
3146
3148
  ];
3147
3149
  if (maskInside) {
@@ -3209,7 +3211,7 @@
3209
3211
  });
3210
3212
  }
3211
3213
  /**
3212
- * Generate DOM elements for a navigator:
3214
+ * Generate and update DOM elements for a navigator:
3213
3215
  *
3214
3216
  * - main navigator group
3215
3217
  *
@@ -3227,39 +3229,40 @@
3227
3229
  cursor: inverted ? 'ns-resize' : 'ew-resize'
3228
3230
  },
3229
3231
  // Create the main navigator group
3230
- navigatorGroup = navigator.navigatorGroup = renderer
3231
- .g('navigator')
3232
- .attr({
3233
- zIndex: 8,
3234
- visibility: 'hidden'
3235
- })
3236
- .add();
3232
+ navigatorGroup = navigator.navigatorGroup ??
3233
+ (navigator.navigatorGroup = renderer
3234
+ .g('navigator')
3235
+ .attr({
3236
+ zIndex: 8,
3237
+ visibility: 'hidden'
3238
+ })
3239
+ .add());
3237
3240
  // Create masks, each mask will get events and fill:
3238
3241
  [
3239
3242
  !maskInside,
3240
3243
  maskInside,
3241
3244
  !maskInside
3242
3245
  ].forEach((hasMask, index) => {
3243
- const shade = renderer.rect()
3244
- .addClass('highcharts-navigator-mask' +
3245
- (index === 1 ? '-inside' : '-outside'))
3246
- .add(navigatorGroup);
3246
+ const shade = navigator.shades[index] ??
3247
+ (navigator.shades[index] = renderer.rect()
3248
+ .addClass('highcharts-navigator-mask' +
3249
+ (index === 1 ? '-inside' : '-outside'))
3250
+ .add(navigatorGroup));
3247
3251
  if (!chart.styledMode) {
3248
3252
  shade.attr({
3249
- fill: hasMask ?
3250
- navigatorOptions.maskFill :
3251
- 'rgba(0,0,0,0)'
3253
+ fill: hasMask ? navigatorOptions.maskFill : 'rgba(0,0,0,0)'
3252
3254
  });
3253
3255
  if (index === 1) {
3254
3256
  shade.css(mouseCursor);
3255
3257
  }
3256
3258
  }
3257
- navigator.shades[index] = shade;
3258
3259
  });
3259
3260
  // Create the outline:
3260
- navigator.outline = renderer.path()
3261
- .addClass('highcharts-navigator-outline')
3262
- .add(navigatorGroup);
3261
+ if (!navigator.outline) {
3262
+ navigator.outline = renderer.path()
3263
+ .addClass('highcharts-navigator-outline')
3264
+ .add(navigatorGroup);
3265
+ }
3263
3266
  if (!chart.styledMode) {
3264
3267
  navigator.outline.attr({
3265
3268
  'stroke-width': navigatorOptions.outlineWidth,
@@ -3267,10 +3270,27 @@
3267
3270
  });
3268
3271
  }
3269
3272
  // Create the handlers:
3270
- if (navigatorOptions.handles && navigatorOptions.handles.enabled) {
3273
+ if (navigatorOptions.handles?.enabled) {
3271
3274
  const handlesOptions = navigatorOptions.handles, { height, width } = handlesOptions;
3272
3275
  [0, 1].forEach((index) => {
3273
- navigator.handles[index] = renderer.symbol(handlesOptions.symbols[index], -width / 2 - 1, 0, width, height, handlesOptions);
3276
+ const symbolName = handlesOptions.symbols[index];
3277
+ if (!navigator.handles[index]) {
3278
+ navigator.handles[index] = renderer.symbol(symbolName, -width / 2 - 1, 0, width, height, handlesOptions);
3279
+ // Z index is 6 for right handle, 7 for left. Can't be 10,
3280
+ // because of the tooltip in inverted chart (#2908).
3281
+ navigator.handles[index].attr({ zIndex: 7 - index })
3282
+ .addClass('highcharts-navigator-handle ' +
3283
+ 'highcharts-navigator-handle-' +
3284
+ ['left', 'right'][index]).add(navigatorGroup);
3285
+ // If the navigator symbol changed, update its path and name
3286
+ }
3287
+ else if (symbolName !== navigator.handles[index].symbolName) {
3288
+ const symbolFn = symbols[symbolName], path = symbolFn.call(symbols, -width / 2 - 1, 0, width, height);
3289
+ navigator.handles[index].attr({
3290
+ d: path
3291
+ });
3292
+ navigator.handles[index].symbolName = symbolName;
3293
+ }
3274
3294
  if (chart.inverted) {
3275
3295
  navigator.handles[index].attr({
3276
3296
  rotation: 90,
@@ -3278,18 +3298,16 @@
3278
3298
  rotationOriginY: (height + width) / 2
3279
3299
  });
3280
3300
  }
3281
- // Z index is 6 for right handle, 7 for left. Can't be 10,
3282
- // because of the tooltip in inverted chart (#2908).
3283
- navigator.handles[index].attr({ zIndex: 7 - index })
3284
- .addClass('highcharts-navigator-handle ' +
3285
- 'highcharts-navigator-handle-' +
3286
- ['left', 'right'][index]).add(navigatorGroup);
3287
3301
  if (!chart.styledMode) {
3288
3302
  navigator.handles[index]
3289
3303
  .attr({
3290
3304
  fill: handlesOptions.backgroundColor,
3291
3305
  stroke: handlesOptions.borderColor,
3292
- 'stroke-width': handlesOptions.lineWidth
3306
+ 'stroke-width': handlesOptions.lineWidth,
3307
+ width: handlesOptions.width,
3308
+ height: handlesOptions.height,
3309
+ x: -width / 2 - 1,
3310
+ y: 0
3293
3311
  })
3294
3312
  .css(mouseCursor);
3295
3313
  }
@@ -3305,18 +3323,53 @@
3305
3323
  * @param {Highcharts.NavigatorOptions} options
3306
3324
  * Options to merge in when updating navigator
3307
3325
  */
3308
- update(options) {
3309
- // Remove references to old navigator series in base series
3310
- (this.series || []).forEach((series) => {
3311
- if (series.baseSeries) {
3312
- delete series.baseSeries.navigatorSeries;
3326
+ update(options, redraw = false) {
3327
+ const chart = this.chart, invertedUpdate = chart.options.chart.inverted !==
3328
+ chart.scrollbar?.options.vertical;
3329
+ merge(true, chart.options.navigator, options);
3330
+ this.navigatorOptions = chart.options.navigator || {};
3331
+ this.setOpposite();
3332
+ // Revert to destroy/init for navigator/scrollbar enabled toggle
3333
+ if (defined(options.enabled) || invertedUpdate) {
3334
+ this.destroy();
3335
+ this.navigatorEnabled = options.enabled || this.navigatorEnabled;
3336
+ return this.init(chart);
3337
+ }
3338
+ if (this.navigatorEnabled) {
3339
+ this.isDirty = true;
3340
+ if (options.adaptToUpdatedData === false) {
3341
+ this.baseSeries.forEach((series) => {
3342
+ removeEvent(series, 'updatedData', this.updatedDataHandler);
3343
+ }, this);
3313
3344
  }
3314
- });
3315
- // Destroy and rebuild navigator
3316
- this.destroy();
3317
- const chartOptions = this.chart.options;
3318
- merge(true, chartOptions.navigator, options);
3319
- this.init(this.chart);
3345
+ if (options.adaptToUpdatedData) {
3346
+ this.baseSeries.forEach((series) => {
3347
+ series.eventsToUnbind.push(addEvent(series, 'updatedData', this.updatedDataHandler));
3348
+ }, this);
3349
+ }
3350
+ // Update navigator series
3351
+ if (options.series || options.baseSeries) {
3352
+ this.setBaseSeries(void 0, false);
3353
+ }
3354
+ // Update navigator axis
3355
+ if (options.height || options.xAxis || options.yAxis) {
3356
+ this.height = options.height ?? this.height;
3357
+ const offsets = this.getXAxisOffsets();
3358
+ this.xAxis.update({
3359
+ ...options.xAxis,
3360
+ offsets,
3361
+ [chart.inverted ? 'width' : 'height']: this.height,
3362
+ [chart.inverted ? 'height' : 'width']: void 0
3363
+ }, false);
3364
+ this.yAxis.update({
3365
+ ...options.yAxis,
3366
+ [chart.inverted ? 'width' : 'height']: this.height
3367
+ }, false);
3368
+ }
3369
+ }
3370
+ if (redraw) {
3371
+ chart.redraw();
3372
+ }
3320
3373
  }
3321
3374
  /**
3322
3375
  * Render the navigator
@@ -3339,6 +3392,10 @@
3339
3392
  if (this.hasDragged && !defined(pxMin)) {
3340
3393
  return;
3341
3394
  }
3395
+ if (this.isDirty) {
3396
+ // Update DOM navigator elements
3397
+ this.renderElements();
3398
+ }
3342
3399
  min = correctFloat(min - pointRange / 2);
3343
3400
  max = correctFloat(max + pointRange / 2);
3344
3401
  // Don't render the navigator until we have data (#486, #4202, #5172).
@@ -3439,6 +3496,7 @@
3439
3496
  navigator.zoomedMin / (navigatorSize || 1), navigator.zoomedMax / (navigatorSize || 1));
3440
3497
  }
3441
3498
  navigator.rendered = true;
3499
+ this.isDirty = false;
3442
3500
  fireEvent(this, 'afterRender');
3443
3501
  }
3444
3502
  /**
@@ -3773,6 +3831,16 @@
3773
3831
  }
3774
3832
  }
3775
3833
  }
3834
+ /**
3835
+ * Calculate the navigator xAxis offsets
3836
+ *
3837
+ * @private
3838
+ */
3839
+ getXAxisOffsets() {
3840
+ return (this.chart.inverted ?
3841
+ [this.scrollButtonSize, 0, -this.scrollButtonSize, 0] :
3842
+ [0, -this.scrollButtonSize, 0, this.scrollButtonSize]);
3843
+ }
3776
3844
  /**
3777
3845
  * Initialize the Navigator object
3778
3846
  *
@@ -3792,11 +3860,12 @@
3792
3860
  this.navigatorEnabled = navigatorEnabled;
3793
3861
  this.navigatorOptions = navigatorOptions;
3794
3862
  this.scrollbarOptions = scrollbarOptions;
3795
- this.opposite = pick(navigatorOptions.opposite, Boolean(!navigatorEnabled && chart.inverted)); // #6262
3863
+ this.setOpposite();
3796
3864
  const navigator = this, baseSeries = navigator.baseSeries, xAxisIndex = chart.xAxis.length, yAxisIndex = chart.yAxis.length, baseXaxis = baseSeries && baseSeries[0] && baseSeries[0].xAxis ||
3797
3865
  chart.xAxis[0] || { options: {} };
3798
3866
  chart.isDirtyBox = true;
3799
3867
  if (navigator.navigatorEnabled) {
3868
+ const offsets = this.getXAxisOffsets();
3800
3869
  // An x axis is required for scrollbar also
3801
3870
  navigator.xAxis = new Axis(chart, merge({
3802
3871
  // Inherit base xAxis' break, ordinal options and overscroll
@@ -3808,18 +3877,21 @@
3808
3877
  index: xAxisIndex,
3809
3878
  isInternal: true,
3810
3879
  offset: 0,
3811
- keepOrdinalPadding: true,
3880
+ keepOrdinalPadding: true, // #2436
3812
3881
  startOnTick: false,
3813
3882
  endOnTick: false,
3814
- minPadding: 0,
3815
- maxPadding: 0,
3883
+ // Inherit base xAxis' padding when ordinal is false (#16915).
3884
+ minPadding: baseXaxis.options.ordinal ? 0 :
3885
+ baseXaxis.options.minPadding,
3886
+ maxPadding: baseXaxis.options.ordinal ? 0 :
3887
+ baseXaxis.options.maxPadding,
3816
3888
  zoomEnabled: false
3817
3889
  }, chart.inverted ? {
3818
- offsets: [scrollButtonSize, 0, -scrollButtonSize, 0],
3890
+ offsets,
3819
3891
  width: height
3820
3892
  } : {
3821
- offsets: [0, -scrollButtonSize, 0, scrollButtonSize],
3822
- height: height
3893
+ offsets,
3894
+ height
3823
3895
  }), 'xAxis');
3824
3896
  navigator.yAxis = new Axis(chart, merge(navigatorOptions.yAxis, {
3825
3897
  alignTicks: false,
@@ -3827,7 +3899,7 @@
3827
3899
  index: yAxisIndex,
3828
3900
  isInternal: true,
3829
3901
  reversed: pick((navigatorOptions.yAxis &&
3830
- navigatorOptions.yAxis.reversed), (chart.yAxis[0] && chart.yAxis[0].reversed), false),
3902
+ navigatorOptions.yAxis.reversed), (chart.yAxis[0] && chart.yAxis[0].reversed), false), // #14060
3831
3903
  zoomEnabled: false
3832
3904
  }, chart.inverted ? {
3833
3905
  width: height
@@ -3902,6 +3974,15 @@
3902
3974
  // Add redraw events
3903
3975
  navigator.addChartEvents();
3904
3976
  }
3977
+ /**
3978
+ * Set the opposite property on navigator
3979
+ *
3980
+ * @private
3981
+ */
3982
+ setOpposite() {
3983
+ const navigatorOptions = this.navigatorOptions, navigatorEnabled = this.navigatorEnabled, chart = this.chart;
3984
+ this.opposite = pick(navigatorOptions.opposite, Boolean(!navigatorEnabled && chart.inverted)); // #6262
3985
+ }
3905
3986
  /**
3906
3987
  * Get the union data extremes of the chart - the outer data extremes of the
3907
3988
  * base X axis and the navigator axis.
@@ -3969,14 +4050,14 @@
3969
4050
  updateNavigatorSeries(addEvents, redraw) {
3970
4051
  const navigator = this, chart = navigator.chart, baseSeries = navigator.baseSeries, navSeriesMixin = {
3971
4052
  enableMouseTracking: false,
3972
- index: null,
3973
- linkedTo: null,
3974
- group: 'nav',
4053
+ index: null, // #6162
4054
+ linkedTo: null, // #6734
4055
+ group: 'nav', // For columns
3975
4056
  padXAxis: false,
3976
4057
  xAxis: this.navigatorOptions.xAxis?.id,
3977
4058
  yAxis: this.navigatorOptions.yAxis?.id,
3978
4059
  showInLegend: false,
3979
- stacking: void 0,
4060
+ stacking: void 0, // #4823
3980
4061
  isInternal: true,
3981
4062
  states: {
3982
4063
  inactive: {
@@ -4131,6 +4212,9 @@
4131
4212
  }
4132
4213
  // Handle series removal
4133
4214
  base.eventsToUnbind.push(addEvent(base, 'remove', function () {
4215
+ if (baseSeries) {
4216
+ erase(baseSeries, base); // #21043
4217
+ }
4134
4218
  if (this.navigatorSeries) {
4135
4219
  erase(navigator.series, this.navigatorSeries);
4136
4220
  if (defined(this.navigatorSeries.options)) {
@@ -4347,6 +4431,7 @@
4347
4431
  [this.handles].forEach((coll) => {
4348
4432
  destroyObjectProperties(coll);
4349
4433
  });
4434
+ this.navigatorEnabled = false;
4350
4435
  }
4351
4436
  }
4352
4437
  /* *
@@ -4685,7 +4770,7 @@
4685
4770
  * @type {number|undefined}
4686
4771
  * @since 2.1.9
4687
4772
  */
4688
- height: void 0,
4773
+ height: void 0, // Reserved space for buttons and input
4689
4774
  /**
4690
4775
  * The border color of the date input boxes.
4691
4776
  *
@@ -5186,6 +5271,7 @@
5186
5271
  addEvent(AxisClass, 'afterSetScale', onAxisAfterSetScale);
5187
5272
  addEvent(AxisClass, 'initialAxisTranslation', onAxisInitialAxisTranslation);
5188
5273
  addEvent(ChartClass, 'pan', onChartPan);
5274
+ addEvent(ChartClass, 'touchpan', onChartPan);
5189
5275
  addEvent(SeriesClass, 'updatedData', onSeriesUpdatedData);
5190
5276
  }
5191
5277
  return AxisClass;
@@ -5495,7 +5581,9 @@
5495
5581
  if (panning &&
5496
5582
  panning.type !== 'y' &&
5497
5583
  xAxis.options.ordinal &&
5498
- xAxis.series.length) {
5584
+ xAxis.series.length &&
5585
+ // On touch devices, let default function handle the pinching
5586
+ (!e.touches || e.touches.length <= 1)) {
5499
5587
  const mouseDownX = chart.mouseDownX, extremes = xAxis.getExtremes(), dataMin = extremes.dataMin, dataMax = extremes.dataMax, min = extremes.min, max = extremes.max, hoverPoints = chart.hoverPoints, closestPointRange = (xAxis.closestPointRange ||
5500
5588
  (xAxis.ordinal && xAxis.ordinal.overscrollPointsRange)), pointPixelWidth = (xAxis.translationSlope *
5501
5589
  (xAxis.ordinal.slope || closestPointRange)),
@@ -5916,7 +6004,7 @@
5916
6004
  ordinal: {
5917
6005
  getGroupIntervalFactor: this.getGroupIntervalFactor
5918
6006
  },
5919
- ordinal2lin: axisProto.ordinal2lin,
6007
+ ordinal2lin: axisProto.ordinal2lin, // #6276
5920
6008
  getIndexOfPoint: axisProto.getIndexOfPoint,
5921
6009
  val2lin: axisProto.val2lin // #2590
5922
6010
  };
@@ -6842,7 +6930,7 @@
6842
6930
  position: 'absolute',
6843
6931
  border: 0,
6844
6932
  boxShadow: '0 0 15px rgba(0,0,0,0.3)',
6845
- width: '1px',
6933
+ width: '1px', // Chrome needs a pixel to see it
6846
6934
  height: '1px',
6847
6935
  padding: 0,
6848
6936
  textAlign: 'center',
@@ -10518,7 +10606,7 @@
10518
10606
  align: 'left'
10519
10607
  },
10520
10608
  endMarker: {
10521
- enabled: false,
10609
+ enabled: false, // Only show arrow on the dependent task
10522
10610
  align: 'right'
10523
10611
  }
10524
10612
  }
@@ -11796,7 +11884,7 @@
11796
11884
  // for example we shouldn't have one grid cell spanning
11797
11885
  // two days.
11798
11886
  units: [[
11799
- 'millisecond',
11887
+ 'millisecond', // Unit name
11800
11888
  [1, 10, 100]
11801
11889
  ], [
11802
11890
  'second',
@@ -13888,4 +13976,4 @@
13888
13976
 
13889
13977
  return Highcharts;
13890
13978
  });
13891
- }));
13979
+ }));
@@ -1,7 +1,7 @@
1
1
  !/**
2
- * Highcharts JS v11.4.3 (2024-05-22)
2
+ * Highcharts JS v11.4.4 (2024-07-02)
3
3
  *
4
4
  * (c) 2009-2024
5
5
  *
6
6
  * License: www.highcharts.com/license
7
- */function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/geoheatmap",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function i(t,e,i,o){t.hasOwnProperty(e)||(t[e]=o.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}i(e,"Series/GeoHeatmap/GeoHeatmapPoint.js",[e["Core/Utilities.js"],e["Core/Series/SeriesRegistry.js"]],function(t,e){let{map:{prototype:{pointClass:i}}}=e.seriesTypes,{isNumber:o}=t;return class extends i{applyOptions(t,e){let i=super.applyOptions.call(this,t,e),{lat:a,lon:s}=i.options;if(o(s)&&o(a)){let{colsize:t=1,rowsize:e=1}=this.series.options,o=s-t/2,n=a-e/2;i.geometry=i.options.geometry={type:"Polygon",coordinates:[[[o,n],[o+t,n],[o+t,n+e],[o,n+e],[o,n]]]}}return i}}}),i(e,"Series/InterpolationUtilities.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e){let{doc:i}=t,{defined:o,pick:a}=e;return{colorFromPoint:function(t,e){let i=e.series.colorAxis;if(i){let s=i.toColor(t||0,e).split(")")[0].split("(")[1].split(",").map(t=>a(parseFloat(t),parseInt(t,10)));return s[3]=255*a(s[3],1),o(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:o}=t;return e&&o?(o.clearRect(0,0,e.width,e.height),o):(t.canvas=i.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}}}),i(e,"Series/GeoHeatmap/GeoHeatmapSeries.js",[e["Core/Animation/AnimationUtilities.js"],e["Series/GeoHeatmap/GeoHeatmapPoint.js"],e["Core/Globals.js"],e["Series/InterpolationUtilities.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,i,o,a,s){let{animObject:n,stop:r}=t,{noop:l}=i,{colorFromPoint:h,getContext:p}=o,{seriesTypes:{map:d}}=a,{addEvent:u,extend:g,isNumber:c,isObject:m,merge:y,pick:f}=s;function x(t){return t-360*Math.floor((t+180)/360)}class b extends d{constructor(){super(...arguments),this.isDirtyCanvas=!0}update(){this.options=y(this.options,arguments[0]),this.getInterpolation().enabled&&(this.isDirtyCanvas=!0,this.points.forEach(t=>{t.graphic&&(t.graphic.destroy(),delete t.graphic)})),super.update.apply(this,arguments)}translate(){(!this.getInterpolation().enabled||!this.image||this.isDirty||this.isDirtyData)&&super.translate.apply(this,arguments)}getInterpolation(){return m(this.options.interpolation)?this.options.interpolation:{blur:1,enabled:this.options.interpolation}}drawPoints(){let t=this.chart.mapView,e=this.options;if(this.getInterpolation().enabled&&t&&this.bounds){let i=this.context||p(this),{canvas:o,colorAxis:a,image:s,chart:l,points:d}=this,[u,g]=[f(e.colsize,1),f(e.rowsize,1)],m=t.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),x=t.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(o&&i&&a&&m&&x){let e={x:m.x,y:m.y,width:x.x-m.x,height:x.y-m.y};if(this.isDirtyCanvas||this.isDirtyData||"Orthographic"===t.projection.options.name){this.isDirtyCanvas=!0;let a=o.width=~~(360/u)+1,s=o.height=~~(180/g)+1,n=new Uint8ClampedArray(a*s*4);this.directTouch=!1;for(let t=0;t<d.length;t++){let e=d[t],i=new Uint8ClampedArray(h(e.value,e)),{lon:o,lat:r}=e.options;c(o)&&c(r)&&n.set(i,4*Math.ceil(a*(s-1-(r+90)/g)+(o+180)/u))}let r=this.getInterpolation().blur,l=0===r?1:11*r,p=~~e.width,m=~~e.height,y=new ImageData(n,a,s);o.width=~~(a*l),o.height=~~(s*l),i.putImageData(y,0,0),i.globalCompositeOperation="copy",i.drawImage(o,0,0,y.width,y.height,0,0,o.width,o.height);let f=i.getImageData(0,0,o.width,o.height),x=new ImageData(this.getProjectedImageData(t,p,m,f,o,e.x,e.y),p,m);i.globalCompositeOperation="copy",o.width=p,o.height=m,i.putImageData(x,0,0)}if(s){if(l.renderer.globalAnimation&&l.hasRendered){let t=Number(s.attr("x")),i=Number(s.attr("y")),a=Number(s.attr("width")),r=Number(s.attr("height")),h=(o,n)=>{s.attr({x:t+(e.x-t)*n.pos,y:i+(e.y-i)*n.pos,width:a+(e.width-a)*n.pos,height:r+(e.height-r)*n.pos})},p=y(n(l.renderer.globalAnimation)),d=p.step;p.step=function(){d&&d.apply(this,arguments),h.apply(this,arguments)},s.attr(y({animator:0},this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0)).animate({animator:1},p)}else r(s),s.attr(y(e,this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0))}else this.image=l.renderer.image(o.toDataURL("image/png",1)).attr(e).add(this.group);this.isDirtyCanvas=!1}}else super.drawPoints.apply(this,arguments)}getProjectedImageData(t,e,i,o,a,s,n){let r=new Uint8ClampedArray(e*i*4),l=f(t.projection.options.rotation?.[0],0),h=a.width/360,p=-1*a.height/180,d=-1;for(let i=0;i<r.length;i+=4){let u=i/4%e;0===u&&d++;let g=t.pixelsToLonLat({x:s+u,y:n+d});if(g){g.lon>-180-l&&g.lon<180-l&&(g.lon=x(g.lon));let t=[g.lon,g.lat],e=t[0]*h+a.width/2,s=t[1]*p+a.height/2;if(e>=0&&e<=a.width&&s>=0&&s<=a.height){let t=Math.floor(s)*a.width*4+4*Math.round(e);r[i]=o.data[t],r[i+1]=o.data[t+1],r[i+2]=o.data[t+2],r[i+3]=o.data[t+3]}}}return r}searchPoint(t,e){let i=this.chart,o=i.mapView;if(o&&this.bounds&&this.image&&i.tooltip&&i.tooltip.options.enabled){if(!i.pointer.hasDragged&&(.01>=+this.image.attr("animator")||+this.image.attr("animator")>=.99)){let a=o.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),s=o.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(i.pointer.normalize(t),t.lon&&t.lat&&a&&s&&t.chartX-i.plotLeft>a.x&&t.chartX-i.plotLeft<s.x&&t.chartY-i.plotTop>a.y&&t.chartY-i.plotTop<s.y)return this.searchKDTree({clientX:t.chartX,lon:x(t.lon),lat:t.lat},e,t)}else i.tooltip.destroy()}}}return b.defaultOptions=y(d.defaultOptions,{nullColor:"transparent",tooltip:{pointFormat:"Lat: {point.lat}, Lon: {point.lon}, Value: {point.value}<br/>"},borderWidth:0,colsize:1,rowsize:1,stickyTracking:!0,interpolation:{enabled:!1,blur:1}}),u(b,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),g(b.prototype,{type:"geoheatmap",applyJitter:l,pointClass:e,pointArrayMap:["lon","lat","value"],kdAxisArray:["lon","lat"]}),a.registerSeriesType("geoheatmap",b),b}),i(e,"masters/modules/geoheatmap.src.js",[e["Core/Globals.js"]],function(t){return t})});
7
+ */function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/geoheatmap",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function i(e,i,o,a){e.hasOwnProperty(i)||(e[i]=a.apply(null,o),"function"==typeof CustomEvent&&t.win.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:i,module:e[i]}})))}i(e,"Series/GeoHeatmap/GeoHeatmapPoint.js",[e["Core/Utilities.js"],e["Core/Series/SeriesRegistry.js"]],function(t,e){let{map:{prototype:{pointClass:i}}}=e.seriesTypes,{isNumber:o}=t;return class extends i{applyOptions(t,e){let i=super.applyOptions.call(this,t,e),{lat:a,lon:s}=i.options;if(o(s)&&o(a)){let{colsize:t=1,rowsize:e=1}=this.series.options,o=s-t/2,n=a-e/2;i.geometry=i.options.geometry={type:"Polygon",coordinates:[[[o,n],[o+t,n],[o+t,n+e],[o,n+e],[o,n]]]}}return i}}}),i(e,"Series/InterpolationUtilities.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e){let{doc:i}=t,{defined:o,pick:a}=e;return{colorFromPoint:function(t,e){let i=e.series.colorAxis;if(i){let s=i.toColor(t||0,e).split(")")[0].split("(")[1].split(",").map(t=>a(parseFloat(t),parseInt(t,10)));return s[3]=255*a(s[3],1),o(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:o}=t;return e&&o?(o.clearRect(0,0,e.width,e.height),o):(t.canvas=i.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}}}),i(e,"Series/GeoHeatmap/GeoHeatmapSeries.js",[e["Core/Animation/AnimationUtilities.js"],e["Series/GeoHeatmap/GeoHeatmapPoint.js"],e["Core/Globals.js"],e["Series/InterpolationUtilities.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,i,o,a,s){let{animObject:n,stop:r}=t,{noop:l}=i,{colorFromPoint:h,getContext:p}=o,{seriesTypes:{map:d}}=a,{addEvent:u,extend:g,isNumber:c,isObject:m,merge:y,pick:f}=s;function x(t){return t-360*Math.floor((t+180)/360)}class b extends d{constructor(){super(...arguments),this.isDirtyCanvas=!0}update(){this.options=y(this.options,arguments[0]),this.getInterpolation().enabled&&(this.isDirtyCanvas=!0,this.points.forEach(t=>{t.graphic&&(t.graphic.destroy(),delete t.graphic)})),super.update.apply(this,arguments)}translate(){(!this.getInterpolation().enabled||!this.image||this.isDirty||this.isDirtyData)&&super.translate.apply(this,arguments)}getInterpolation(){return m(this.options.interpolation)?this.options.interpolation:{blur:1,enabled:this.options.interpolation}}drawPoints(){let t=this.chart.mapView,e=this.options;if(this.getInterpolation().enabled&&t&&this.bounds){let i=this.context||p(this),{canvas:o,colorAxis:a,image:s,chart:l,points:d}=this,[u,g]=[f(e.colsize,1),f(e.rowsize,1)],m=t.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),x=t.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(o&&i&&a&&m&&x){let e={x:m.x,y:m.y,width:x.x-m.x,height:x.y-m.y};if(this.isDirtyCanvas||this.isDirtyData||"Orthographic"===t.projection.options.name){this.isDirtyCanvas=!0;let a=o.width=~~(360/u)+1,s=o.height=~~(180/g)+1,n=new Uint8ClampedArray(a*s*4);this.directTouch=!1;for(let t=0;t<d.length;t++){let e=d[t],i=new Uint8ClampedArray(h(e.value,e)),{lon:o,lat:r}=e.options;c(o)&&c(r)&&n.set(i,4*Math.ceil(a*(s-1-(r+90)/g)+(o+180)/u))}let r=this.getInterpolation().blur,l=0===r?1:11*r,p=~~e.width,m=~~e.height,y=new ImageData(n,a,s);o.width=~~(a*l),o.height=~~(s*l),i.putImageData(y,0,0),i.globalCompositeOperation="copy",i.drawImage(o,0,0,y.width,y.height,0,0,o.width,o.height);let f=i.getImageData(0,0,o.width,o.height),x=new ImageData(this.getProjectedImageData(t,p,m,f,o,e.x,e.y),p,m);i.globalCompositeOperation="copy",o.width=p,o.height=m,i.putImageData(x,0,0)}if(s){if(l.renderer.globalAnimation&&l.hasRendered){let t=Number(s.attr("x")),i=Number(s.attr("y")),a=Number(s.attr("width")),r=Number(s.attr("height")),h=(o,n)=>{s.attr({x:t+(e.x-t)*n.pos,y:i+(e.y-i)*n.pos,width:a+(e.width-a)*n.pos,height:r+(e.height-r)*n.pos})},p=y(n(l.renderer.globalAnimation)),d=p.step;p.step=function(){d&&d.apply(this,arguments),h.apply(this,arguments)},s.attr(y({animator:0},this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0)).animate({animator:1},p)}else r(s),s.attr(y(e,this.isDirtyCanvas?{href:o.toDataURL("image/png",1)}:void 0))}else this.image=l.renderer.image(o.toDataURL("image/png",1)).attr(e).add(this.group);this.isDirtyCanvas=!1}}else super.drawPoints.apply(this,arguments)}getProjectedImageData(t,e,i,o,a,s,n){let r=new Uint8ClampedArray(e*i*4),l=f(t.projection.options.rotation?.[0],0),h=a.width/360,p=-1*a.height/180,d=-1;for(let i=0;i<r.length;i+=4){let u=i/4%e;0===u&&d++;let g=t.pixelsToLonLat({x:s+u,y:n+d});if(g){g.lon>-180-l&&g.lon<180-l&&(g.lon=x(g.lon));let t=[g.lon,g.lat],e=t[0]*h+a.width/2,s=t[1]*p+a.height/2;if(e>=0&&e<=a.width&&s>=0&&s<=a.height){let t=Math.floor(s)*a.width*4+4*Math.round(e);r[i]=o.data[t],r[i+1]=o.data[t+1],r[i+2]=o.data[t+2],r[i+3]=o.data[t+3]}}}return r}searchPoint(t,e){let i=this.chart,o=i.mapView;if(o&&this.bounds&&this.image&&i.tooltip&&i.tooltip.options.enabled){if(!i.pointer.hasDragged&&(.01>=+this.image.attr("animator")||+this.image.attr("animator")>=.99)){let a=o.projectedUnitsToPixels({x:this.bounds.x1,y:this.bounds.y2}),s=o.projectedUnitsToPixels({x:this.bounds.x2,y:this.bounds.y1});if(i.pointer.normalize(t),t.lon&&t.lat&&a&&s&&t.chartX-i.plotLeft>a.x&&t.chartX-i.plotLeft<s.x&&t.chartY-i.plotTop>a.y&&t.chartY-i.plotTop<s.y)return this.searchKDTree({clientX:t.chartX,lon:x(t.lon),lat:t.lat},e,t)}else i.tooltip.destroy()}}}return b.defaultOptions=y(d.defaultOptions,{nullColor:"transparent",tooltip:{pointFormat:"Lat: {point.lat}, Lon: {point.lon}, Value: {point.value}<br/>"},borderWidth:0,colsize:1,rowsize:1,stickyTracking:!0,interpolation:{enabled:!1,blur:1}}),u(b,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints()}),g(b.prototype,{type:"geoheatmap",applyJitter:l,pointClass:e,pointArrayMap:["lon","lat","value"],kdAxisArray:["lon","lat"]}),a.registerSeriesType("geoheatmap",b),b}),i(e,"masters/modules/geoheatmap.src.js",[e["Core/Globals.js"]],function(t){return t})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v11.4.3 (2024-05-22)
2
+ * @license Highcharts JS v11.4.4 (2024-07-02)
3
3
  *
4
4
  * (c) 2009-2024
5
5
  *
@@ -26,7 +26,7 @@
26
26
  obj[path] = fn.apply(null, args);
27
27
 
28
28
  if (typeof CustomEvent === 'function') {
29
- window.dispatchEvent(new CustomEvent(
29
+ Highcharts.win.dispatchEvent(new CustomEvent(
30
30
  'HighchartsModuleLoaded',
31
31
  { detail: { path: path, module: obj[path] } }
32
32
  ));
@@ -701,4 +701,4 @@
701
701
 
702
702
  return Highcharts;
703
703
  });
704
- }));
704
+ }));
@@ -1,9 +1,9 @@
1
1
  !/**
2
- * Highcharts Gantt JS v11.4.3 (2024-05-22)
2
+ * Highcharts Gantt JS v11.4.4 (2024-07-02)
3
3
  *
4
4
  * GridAxis
5
5
  *
6
6
  * (c) 2016-2024 Lars A. V. Cabrera
7
7
  *
8
8
  * License: www.highcharts.com/license
9
- */function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/grid-axis",["highcharts"],function(i){return t(i),t.Highcharts=i,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var i=t?t._modules:{};function e(t,i,e,s){t.hasOwnProperty(i)||(t[i]=s.apply(null,e),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:i,module:t[i]}})))}e(i,"Core/Axis/GridAxis.js",[i["Core/Axis/Axis.js"],i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i,e){var s,o;let{dateFormats:r}=i,{addEvent:n,defined:h,erase:l,find:a,isArray:d,isNumber:c,merge:g,pick:f,timeUnits:u,wrap:p}=e;function m(t){return e.isObject(t,!0)}function k(t,i){let e={width:0,height:0};if(i.forEach(function(i){let s=t[i],o=0,r=0,n;m(s)&&(o=(n=m(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)),e.height=Math.max(o,e.height),e.width=Math.max(r,e.width))}),"treegrid"===this.options.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let t=this.treeGrid.mapOfPosToGridNode[-1].height||0;e.width+=this.options.labels.indentation*(t-1)}return e}function x(t){let{grid:i}=this,e=3===this.side;if(e||t.apply(this),!i?.isColumn){let t=i?.columns||[];e&&(t=t.slice().reverse()),t.forEach(t=>{t.getOffset()})}e&&t.apply(this)}function b(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:i,height:e,horiz:o,left:r,offset:n,opposite:h,options:l,top:a,width:d}=this,c=this.tickSize(),g=i&&i.getBBox().width,u=l.title.x,p=l.title.y,m=f(l.title.margin,o?5:10),k=i?this.chart.renderer.fontMetrics(i).f:0,x=(o?a+e:r)+(o?1:-1)*(h?-1:1)*(c?c[0]/2:0)+(this.side===s.bottom?k:0);t.titlePosition.x=o?r-(g||0)/2-m+u:x+(h?d:0)+n+u,t.titlePosition.y=o?x-(h?e:0)+(h?k:-k)/2+n+p:a-m+p}}function P(){let{chart:i,options:{grid:e={}},userOptions:s}=this;if(e.enabled&&function(t){let i=t.options;i.labels.align=f(i.labels.align,"center"),t.categories||(i.showLastLabel=!1),t.labelRotation=0,i.labels.rotation=0,i.minTickInterval=1}(this),e.columns){let o=this.grid.columns=[],r=this.grid.columnIndex=0;for(;++r<e.columns.length;){let n=g(s,e.columns[r],{isInternal:!0,linkedTo:0,scrollbar:{enabled:!1}},{grid:{columns:void 0}}),h=new t(this.chart,n,"yAxis");h.grid.isColumn=!0,h.grid.columnIndex=r,l(i.axes,h),l(i[this.coll]||[],h),o.push(h)}}}function y(){let{axisTitle:t,grid:i,options:e}=this;if(!0===(e.grid||{}).enabled){let o=this.min||0,r=this.max||0,n=this.ticks[this.tickPositions[0]];if(t&&!this.chart.styledMode&&n?.slotWidth&&!this.options.title.style.width&&t.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 t=e.lineWidth;if(t){let i=this.getLinePath(t),n=i[0],h=i[1],l=(this.tickSize("tick")||[1])[0]*(this.side===s.top||this.side===s.left?-1:1);if("M"===n[0]&&"L"===h[0]&&(this.horiz?(n[2]+=l,h[2]+=l):(n[1]+=l,h[1]+=l)),!this.horiz&&this.chart.marginRight){let t=["L",this.left,n[2]||0],i=[n,t],s=["L",this.chart.chartWidth-this.chart.marginRight,this.toPixels(r+this.tickmarkOffset)],l=[["M",h[1]||0,this.toPixels(r+this.tickmarkOffset)],s];this.grid.upperBorder||o%1==0||(this.grid.upperBorder=this.grid.renderBorder(i)),this.grid.upperBorder&&(this.grid.upperBorder.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.upperBorder.animate({d:i})),this.grid.lowerBorder||r%1==0||(this.grid.lowerBorder=this.grid.renderBorder(l)),this.grid.lowerBorder&&(this.grid.lowerBorder.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.lowerBorder.animate({d:l}))}this.grid.axisLineExtra?(this.grid.axisLineExtra.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.axisLineExtra.animate({d:i})):this.grid.axisLineExtra=this.grid.renderBorder(i),this.axisLine[this.showAxis?"show":"hide"]()}}if((i&&i.columns||[]).forEach(t=>t.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,i;let e=this.tickmarkOffset,s=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(i=this.hiddenMarks.pop())&&i.element;)i.show();(t=this.ticks[n].label)&&(o-n>e?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[s].label)&&(s-r>e?this.hiddenLabels.push(t.hide()):t.show());let h=this.ticks[s].mark;h&&s-r<e&&s-r>0&&this.ticks[s].isLast&&this.hiddenMarks.push(h.hide())}}}function w(){let t=this.tickPositions&&this.tickPositions.info,i=this.options,e=i.grid||{},s=this.userOptions.labels||{};e.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&i.dateTimeLabelFormats&&i.labels&&!h(s.align)&&(!1===i.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(i.labels.align="left",h(s.x)||(i.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function L(t){let i;let e=this.options,s=t.userOptions,o=e&&m(e.grid)?e.grid:{};!0===o.enabled&&(i=g(!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||(h(s.linkedTo)&&!h(s.tickPixelInterval)&&(i.tickPixelInterval=350),!(!h(s.tickPixelInterval)&&h(s.linkedTo))||h(s.tickPositioner)||h(s.tickInterval)||h(s.units)||(i.tickPositioner=function(t,e){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let o=i.units||[],r,n=1,h="year";for(let t=0;t<o.length;t++){let i=o[t];if(i&&i[0]===s.unitName){r=t;break}}let l=c(r)&&o[r+1];if(l){h=l[0]||"year";let t=l[1];n=t&&t[0]||1}else"year"===s.unitName&&(n=10*s.count);let a=u[h];return this.tickInterval=a*n,this.chart.time.getTimeTicks({unitRange:a,count:n,unitName:h},t,e,this.options.startOfWeek)}})),g(!0,this.options,i),this.horiz&&(e.minPadding=f(s.minPadding,0),e.maxPadding=f(s.maxPadding,0)),c(e.grid.borderWidth)&&(e.tickWidth=e.lineWidth=o.borderWidth))}function B(t){let i=t.userOptions,e=i&&i.grid||{},s=e.columns;e.enabled&&s&&g(!0,this.options,s[0])}function v(){(this.grid.columns||[]).forEach(t=>t.setScale())}function M(t){let{horiz:i,maxLabelDimensions:e,options:{grid:s={}}}=this;if(s.enabled&&e){let o=2*this.options.labels.distance,r=i?s.cellHeight||o+e.height:o+e.width;d(t.tickSize)?t.tickSize[0]=r:t.tickSize=[r,0]}}function O(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function W(t){let{grid:i}=this;(i.columns||[]).forEach(i=>i.destroy(t.keepEvents)),i.columns=void 0}function C(t){let i=t.userOptions||{},e=i.grid||{};e.enabled&&h(e.borderColor)&&(i.tickColor=i.lineColor=e.borderColor),this.grid||(this.grid=new z(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function S(t){let i=this.label,e=this.axis,o=e.reversed,r=e.chart,n=e.options.grid||{},h=e.options.labels,l=h.align,a=s[e.side],d=t.tickmarkOffset,g=e.tickPositions,f=this.pos-d,u=c(g[t.index+1])?g[t.index+1]-d:(e.max||0)+d,p=e.tickSize("tick"),m=p?p[0]:0,k=p?p[1]/2:0;if(!0===n.enabled){let s,n,d,c;if("top"===a?n=(s=e.top+e.offset)-m:"bottom"===a?s=(n=r.chartHeight-e.bottom+e.offset)+m:(s=e.top+e.len-(e.translate(o?u:f)||0),n=e.top+e.len-(e.translate(o?f:u)||0)),"right"===a?c=(d=r.chartWidth-e.right+e.offset)+m:"left"===a?d=(c=e.left+e.offset)-m:(d=Math.round(e.left+(e.translate(o?u:f)||0))-k,c=Math.min(Math.round(e.left+(e.translate(o?f:u)||0))-k,e.left+e.len)),this.slotWidth=c-d,t.pos.x="left"===l?d:"right"===l?c:d+(c-d)/2,t.pos.y=n+(s-n)/2,i){let e=r.renderer.fontMetrics(i),s=i.getBBox().height;if(h.useHTML)t.pos.y+=e.b+-(s/2);else{let i=Math.round(s/e.h);t.pos.y+=(e.b-(e.h-e.f))/2+-((i-1)*e.h/2)}}t.pos.x+=e.horiz&&h.x||0}}function A(t){let{axis:e,value:s}=t;if(e.options.grid&&e.options.grid.enabled){let o;let r=e.tickPositions,n=(e.linkedParent||e).series[0],h=s===r[0],l=s===r[r.length-1],d=n&&a(n.options.data,function(t){return t[e.isXAxis?"x":"y"]===s});d&&n.is("gantt")&&(o=g(d),i.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(o)),t.isFirst=h,t.isLast=l,t.point=o}}function T(){let t=this.options,i=t.grid||{},e=this.categories,s=this.tickPositions,o=s[0],r=s[1],n=s[s.length-1],h=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,a=this.linkedParent&&this.linkedParent.max,d=l||this.min,g=a||this.max,f=this.tickInterval,u=c(d)&&d>=o+f&&d<r,p=c(d)&&o<d&&o+f>d,m=c(g)&&n>g&&n-f<g,k=c(g)&&g<=n-f&&g>h;!0===i.enabled&&!e&&(this.isXAxis||this.isLinked)&&((p||u)&&!t.startOnTick&&(s[0]=d),(m||k)&&!t.endOnTick&&(s[s.length-1]=g))}function E(t){var i;let{options:{grid:e={}}}=this;return!0===e.enabled&&this.categories?this.tickInterval:t.apply(this,(i=arguments,Array.prototype.slice.call(i,1)))}(o=s||(s={}))[o.top=0]="top",o[o.right=1]="right",o[o.bottom=2]="bottom",o[o.left=3]="left";class z{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,i=t.chart,e=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],o=e?t.linkedParent:t,r=-1,n=0;return 3===t.side&&!i.inverted&&s.length?!t.linkedParent:((i[t.coll]||[]).forEach((i,e)=>{i.side!==t.side||i.options.isInternal||(n=e,i!==o||(r=e))}),n===r&&(!c(e)||s.length===e))}renderBorder(t){let i=this.axis,e=i.chart.renderer,s=i.options,o=e.path(t).addClass("highcharts-axis-line").add(i.axisGroup);return e.styledMode||o.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),o}}return r.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},r.W=function(t){let i=this,e=new this.Date(t);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(t){i.set(t,e,0)});let s=(this.get("Day",e)+6)%7,o=new this.Date(e.valueOf());this.set("Date",o,this.get("Date",e)-s+3);let r=new this.Date(this.get("FullYear",o),0,1);return 4!==this.get("Day",r)&&(this.set("Month",e,0),this.set("Date",e,1+(11-this.get("Day",r))%7)),(1+Math.floor((o.valueOf()-r.valueOf())/6048e5)).toString()},{compose:function(t,i,e){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=k,p(t.prototype,"unsquish",E),p(t.prototype,"getOffset",x),n(t,"init",C),n(t,"afterGetTitlePosition",b),n(t,"afterInit",P),n(t,"afterRender",y),n(t,"afterSetAxisTranslation",w),n(t,"afterSetOptions",L),n(t,"afterSetOptions",B),n(t,"afterSetScale",v),n(t,"afterTickSize",M),n(t,"trimTicks",T),n(t,"destroy",W),n(i,"afterSetChartSize",O),n(e,"afterGetLabelPosition",S),n(e,"labelFormat",A)),t}}}),e(i,"masters/modules/grid-axis.src.js",[i["Core/Globals.js"],i["Core/Axis/GridAxis.js"]],function(t,i){return i.compose(t.Axis,t.Chart,t.Tick),t})});
9
+ */function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/grid-axis",["highcharts"],function(i){return t(i),t.Highcharts=i,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var i=t?t._modules:{};function e(i,e,s,r){i.hasOwnProperty(e)||(i[e]=r.apply(null,s),"function"==typeof CustomEvent&&t.win.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:i[e]}})))}e(i,"Core/Axis/GridAxis.js",[i["Core/Axis/Axis.js"],i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i,e){var s,r;let{dateFormats:o}=i,{addEvent:n,defined:h,erase:l,find:a,isArray:d,isNumber:c,merge:g,pick:f,timeUnits:u,wrap:p}=e;function m(t){return e.isObject(t,!0)}function k(t,i){let e={width:0,height:0};if(i.forEach(function(i){let s=t[i],r=0,o=0,n;m(s)&&(r=(n=m(s.label)?s.label:{}).getBBox?n.getBBox().height:0,n.textStr&&!c(n.textPxLength)&&(n.textPxLength=n.getBBox().width),o=c(n.textPxLength)?Math.round(n.textPxLength):0,n.textStr&&(o=Math.round(n.getBBox().width)),e.height=Math.max(r,e.height),e.width=Math.max(o,e.width))}),"treegrid"===this.options.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let t=this.treeGrid.mapOfPosToGridNode[-1].height||0;e.width+=this.options.labels.indentation*(t-1)}return e}function x(t){let{grid:i}=this,e=3===this.side;if(e||t.apply(this),!i?.isColumn){let t=i?.columns||[];e&&(t=t.slice().reverse()),t.forEach(t=>{t.getOffset()})}e&&t.apply(this)}function b(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:i,height:e,horiz:r,left:o,offset:n,opposite:h,options:l,top:a,width:d}=this,c=this.tickSize(),g=i&&i.getBBox().width,u=l.title.x,p=l.title.y,m=f(l.title.margin,r?5:10),k=i?this.chart.renderer.fontMetrics(i).f:0,x=(r?a+e:o)+(r?1:-1)*(h?-1:1)*(c?c[0]/2:0)+(this.side===s.bottom?k:0);t.titlePosition.x=r?o-(g||0)/2-m+u:x+(h?d:0)+n+u,t.titlePosition.y=r?x-(h?e:0)+(h?k:-k)/2+n+p:a-m+p}}function P(){let{chart:i,options:{grid:e={}},userOptions:s}=this;if(e.enabled&&function(t){let i=t.options;i.labels.align=f(i.labels.align,"center"),t.categories||(i.showLastLabel=!1),t.labelRotation=0,i.labels.rotation=0,i.minTickInterval=1}(this),e.columns){let r=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++o<e.columns.length;){let n=g(s,e.columns[o],{isInternal:!0,linkedTo:0,scrollbar:{enabled:!1}},{grid:{columns:void 0}}),h=new t(this.chart,n,"yAxis");h.grid.isColumn=!0,h.grid.columnIndex=o,l(i.axes,h),l(i[this.coll]||[],h),r.push(h)}}}function y(){let{axisTitle:t,grid:i,options:e}=this;if(!0===(e.grid||{}).enabled){let r=this.min||0,o=this.max||0,n=this.ticks[this.tickPositions[0]];if(t&&!this.chart.styledMode&&n?.slotWidth&&!this.options.title.style.width&&t.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 t=e.lineWidth;if(t){let i=this.getLinePath(t),n=i[0],h=i[1],l=(this.tickSize("tick")||[1])[0]*(this.side===s.top||this.side===s.left?-1:1);if("M"===n[0]&&"L"===h[0]&&(this.horiz?(n[2]+=l,h[2]+=l):(n[1]+=l,h[1]+=l)),!this.horiz&&this.chart.marginRight){let t=["L",this.left,n[2]||0],i=[n,t],s=["L",this.chart.chartWidth-this.chart.marginRight,this.toPixels(o+this.tickmarkOffset)],l=[["M",h[1]||0,this.toPixels(o+this.tickmarkOffset)],s];this.grid.upperBorder||r%1==0||(this.grid.upperBorder=this.grid.renderBorder(i)),this.grid.upperBorder&&(this.grid.upperBorder.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.upperBorder.animate({d:i})),this.grid.lowerBorder||o%1==0||(this.grid.lowerBorder=this.grid.renderBorder(l)),this.grid.lowerBorder&&(this.grid.lowerBorder.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.lowerBorder.animate({d:l}))}this.grid.axisLineExtra?(this.grid.axisLineExtra.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.axisLineExtra.animate({d:i})):this.grid.axisLineExtra=this.grid.renderBorder(i),this.axisLine[this.showAxis?"show":"hide"]()}}if((i&&i.columns||[]).forEach(t=>t.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)&&this.tickPositions.length){let t,i;let e=this.tickmarkOffset,s=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(i=this.hiddenMarks.pop())&&i.element;)i.show();(t=this.ticks[n].label)&&(r-n>e?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[s].label)&&(s-o>e?this.hiddenLabels.push(t.hide()):t.show());let h=this.ticks[s].mark;h&&s-o<e&&s-o>0&&this.ticks[s].isLast&&this.hiddenMarks.push(h.hide())}}}function w(){let t=this.tickPositions&&this.tickPositions.info,i=this.options,e=i.grid||{},s=this.userOptions.labels||{};e.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&i.dateTimeLabelFormats&&i.labels&&!h(s.align)&&(!1===i.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(i.labels.align="left",h(s.x)||(i.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function L(t){let i;let e=this.options,s=t.userOptions,r=e&&m(e.grid)?e.grid:{};!0===r.enabled&&(i=g(!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||(h(s.linkedTo)&&!h(s.tickPixelInterval)&&(i.tickPixelInterval=350),!(!h(s.tickPixelInterval)&&h(s.linkedTo))||h(s.tickPositioner)||h(s.tickInterval)||h(s.units)||(i.tickPositioner=function(t,e){let s=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(s){let r=i.units||[],o,n=1,h="year";for(let t=0;t<r.length;t++){let i=r[t];if(i&&i[0]===s.unitName){o=t;break}}let l=c(o)&&r[o+1];if(l){h=l[0]||"year";let t=l[1];n=t&&t[0]||1}else"year"===s.unitName&&(n=10*s.count);let a=u[h];return this.tickInterval=a*n,this.chart.time.getTimeTicks({unitRange:a,count:n,unitName:h},t,e,this.options.startOfWeek)}})),g(!0,this.options,i),this.horiz&&(e.minPadding=f(s.minPadding,0),e.maxPadding=f(s.maxPadding,0)),c(e.grid.borderWidth)&&(e.tickWidth=e.lineWidth=r.borderWidth))}function B(t){let i=t.userOptions,e=i&&i.grid||{},s=e.columns;e.enabled&&s&&g(!0,this.options,s[0])}function v(){(this.grid.columns||[]).forEach(t=>t.setScale())}function M(t){let{horiz:i,maxLabelDimensions:e,options:{grid:s={}}}=this;if(s.enabled&&e){let r=2*this.options.labels.distance,o=i?s.cellHeight||r+e.height:r+e.width;d(t.tickSize)?t.tickSize[0]=o:t.tickSize=[o,0]}}function O(){this.axes.forEach(t=>{(t.grid&&t.grid.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function W(t){let{grid:i}=this;(i.columns||[]).forEach(i=>i.destroy(t.keepEvents)),i.columns=void 0}function C(t){let i=t.userOptions||{},e=i.grid||{};e.enabled&&h(e.borderColor)&&(i.tickColor=i.lineColor=e.borderColor),this.grid||(this.grid=new z(this)),this.hiddenLabels=[],this.hiddenMarks=[]}function S(t){let i=this.label,e=this.axis,r=e.reversed,o=e.chart,n=e.options.grid||{},h=e.options.labels,l=h.align,a=s[e.side],d=t.tickmarkOffset,g=e.tickPositions,f=this.pos-d,u=c(g[t.index+1])?g[t.index+1]-d:(e.max||0)+d,p=e.tickSize("tick"),m=p?p[0]:0,k=p?p[1]/2:0;if(!0===n.enabled){let s,n,d,c;if("top"===a?n=(s=e.top+e.offset)-m:"bottom"===a?s=(n=o.chartHeight-e.bottom+e.offset)+m:(s=e.top+e.len-(e.translate(r?u:f)||0),n=e.top+e.len-(e.translate(r?f:u)||0)),"right"===a?c=(d=o.chartWidth-e.right+e.offset)+m:"left"===a?d=(c=e.left+e.offset)-m:(d=Math.round(e.left+(e.translate(r?u:f)||0))-k,c=Math.min(Math.round(e.left+(e.translate(r?f:u)||0))-k,e.left+e.len)),this.slotWidth=c-d,t.pos.x="left"===l?d:"right"===l?c:d+(c-d)/2,t.pos.y=n+(s-n)/2,i){let e=o.renderer.fontMetrics(i),s=i.getBBox().height;if(h.useHTML)t.pos.y+=e.b+-(s/2);else{let i=Math.round(s/e.h);t.pos.y+=(e.b-(e.h-e.f))/2+-((i-1)*e.h/2)}}t.pos.x+=e.horiz&&h.x||0}}function A(t){let{axis:e,value:s}=t;if(e.options.grid&&e.options.grid.enabled){let r;let o=e.tickPositions,n=(e.linkedParent||e).series[0],h=s===o[0],l=s===o[o.length-1],d=n&&a(n.options.data,function(t){return t[e.isXAxis?"x":"y"]===s});d&&n.is("gantt")&&(r=g(d),i.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(r)),t.isFirst=h,t.isLast=l,t.point=r}}function T(){let t=this.options,i=t.grid||{},e=this.categories,s=this.tickPositions,r=s[0],o=s[1],n=s[s.length-1],h=s[s.length-2],l=this.linkedParent&&this.linkedParent.min,a=this.linkedParent&&this.linkedParent.max,d=l||this.min,g=a||this.max,f=this.tickInterval,u=c(d)&&d>=r+f&&d<o,p=c(d)&&r<d&&r+f>d,m=c(g)&&n>g&&n-f<g,k=c(g)&&g<=n-f&&g>h;!0===i.enabled&&!e&&(this.isXAxis||this.isLinked)&&((p||u)&&!t.startOnTick&&(s[0]=d),(m||k)&&!t.endOnTick&&(s[s.length-1]=g))}function E(t){var i;let{options:{grid:e={}}}=this;return!0===e.enabled&&this.categories?this.tickInterval:t.apply(this,(i=arguments,Array.prototype.slice.call(i,1)))}(r=s||(s={}))[r.top=0]="top",r[r.right=1]="right",r[r.bottom=2]="bottom",r[r.left=3]="left";class z{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,i=t.chart,e=t.grid.columnIndex,s=t.linkedParent?.grid.columns||t.grid.columns||[],r=e?t.linkedParent:t,o=-1,n=0;return 3===t.side&&!i.inverted&&s.length?!t.linkedParent:((i[t.coll]||[]).forEach((i,e)=>{i.side!==t.side||i.options.isInternal||(n=e,i!==r||(o=e))}),n===o&&(!c(e)||s.length===e))}renderBorder(t){let i=this.axis,e=i.chart.renderer,s=i.options,r=e.path(t).addClass("highcharts-axis-line").add(i.axisGroup);return e.styledMode||r.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),r}}return o.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},o.W=function(t){let i=this,e=new this.Date(t);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(t){i.set(t,e,0)});let s=(this.get("Day",e)+6)%7,r=new this.Date(e.valueOf());this.set("Date",r,this.get("Date",e)-s+3);let o=new this.Date(this.get("FullYear",r),0,1);return 4!==this.get("Day",o)&&(this.set("Month",e,0),this.set("Date",e,1+(11-this.get("Day",o))%7)),(1+Math.floor((r.valueOf()-o.valueOf())/6048e5)).toString()},{compose:function(t,i,e){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=k,p(t.prototype,"unsquish",E),p(t.prototype,"getOffset",x),n(t,"init",C),n(t,"afterGetTitlePosition",b),n(t,"afterInit",P),n(t,"afterRender",y),n(t,"afterSetAxisTranslation",w),n(t,"afterSetOptions",L),n(t,"afterSetOptions",B),n(t,"afterSetScale",v),n(t,"afterTickSize",M),n(t,"trimTicks",T),n(t,"destroy",W),n(i,"afterSetChartSize",O),n(e,"afterGetLabelPosition",S),n(e,"labelFormat",A)),t}}}),e(i,"masters/modules/grid-axis.src.js",[i["Core/Globals.js"],i["Core/Axis/GridAxis.js"]],function(t,i){return i.compose(t.Axis,t.Chart,t.Tick),t})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts Gantt JS v11.4.3 (2024-05-22)
2
+ * @license Highcharts Gantt JS v11.4.4 (2024-07-02)
3
3
  *
4
4
  * GridAxis
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
  ));
@@ -559,7 +559,7 @@
559
559
  // for example we shouldn't have one grid cell spanning
560
560
  // two days.
561
561
  units: [[
562
- 'millisecond',
562
+ 'millisecond', // Unit name
563
563
  [1, 10, 100]
564
564
  ], [
565
565
  'second',
@@ -1113,4 +1113,4 @@
1113
1113
 
1114
1114
  return Highcharts;
1115
1115
  });
1116
- }));
1116
+ }));