highcharts 12.2.0 → 12.4.0

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 (1311) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +86 -45
  3. package/css/highcharts.css +40 -35
  4. package/css/stocktools/gui.css +28 -11
  5. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +3 -3
  6. package/es-modules/Accessibility/Components/LegendComponent.js +10 -1
  7. package/es-modules/Accessibility/Components/MenuComponent.js +26 -23
  8. package/es-modules/Accessibility/Components/NavigatorComponent.js +5 -1
  9. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +3 -1
  10. package/es-modules/Accessibility/FocusBorder.js +4 -0
  11. package/es-modules/Accessibility/HighContrastMode.js +0 -5
  12. package/es-modules/Accessibility/Options/A11yDefaults.js +12 -0
  13. package/es-modules/Core/Axis/Axis.js +4 -3
  14. package/es-modules/Core/Axis/Axis3DComposition.js +0 -3
  15. package/es-modules/Core/Axis/AxisDefaults.js +5 -8
  16. package/es-modules/Core/Axis/BrokenAxis.js +114 -90
  17. package/es-modules/Core/Axis/Color/ColorAxis.js +3 -3
  18. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +2 -3
  19. package/es-modules/Core/Axis/OrdinalAxis.js +19 -12
  20. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +15 -2
  21. package/es-modules/Core/Axis/RadialAxis.js +18 -7
  22. package/es-modules/Core/Axis/ScrollbarAxis.js +19 -17
  23. package/es-modules/Core/Axis/Stacking/StackingAxis.js +0 -1
  24. package/es-modules/Core/Axis/Tick.js +1 -1
  25. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +36 -51
  26. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +39 -17
  27. package/es-modules/Core/Axis/WaterfallAxis.js +4 -4
  28. package/es-modules/Core/Chart/Chart.js +41 -34
  29. package/es-modules/Core/Chart/ChartDefaults.js +16 -2
  30. package/es-modules/Core/Chart/GanttChart.js +4 -2
  31. package/es-modules/Core/Chart/StockChart.js +42 -49
  32. package/es-modules/Core/Color/Color.js +4 -8
  33. package/es-modules/Core/Defaults.js +16 -7
  34. package/es-modules/Core/Geometry/CircleUtilities.js +3 -1
  35. package/es-modules/Core/Globals.js +1 -1
  36. package/es-modules/Core/HttpUtilities.js +45 -38
  37. package/es-modules/Core/Legend/Legend.js +8 -7
  38. package/es-modules/Core/Pointer.js +17 -9
  39. package/es-modules/Core/Renderer/HTML/AST.js +15 -15
  40. package/es-modules/Core/Renderer/HTML/HTMLElement.js +8 -3
  41. package/es-modules/Core/Renderer/SVG/SVGElement.js +2 -2
  42. package/es-modules/Core/Renderer/SVG/SVGLabel.js +10 -1
  43. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +10 -7
  44. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  45. package/es-modules/Core/Series/DataLabel.js +4 -2
  46. package/es-modules/Core/Series/Point.js +9 -0
  47. package/es-modules/Core/Series/Series.js +17 -7
  48. package/es-modules/Core/Series/SeriesDefaults.js +1 -3
  49. package/es-modules/Core/Series/SeriesRegistry.js +8 -1
  50. package/es-modules/Core/Templating.js +6 -5
  51. package/es-modules/Core/Tooltip.js +3 -1
  52. package/es-modules/Data/Connectors/CSVConnector.js +32 -15
  53. package/es-modules/Data/Connectors/DataConnector.js +107 -12
  54. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +29 -17
  55. package/es-modules/Data/Connectors/HTMLTableConnector.js +3 -3
  56. package/es-modules/Data/Connectors/JSONConnector.js +37 -17
  57. package/es-modules/Data/Converters/HTMLTableConverter.js +2 -2
  58. package/es-modules/Data/Converters/JSONConverter.js +0 -1
  59. package/es-modules/Data/DataPool.js +15 -4
  60. package/es-modules/Data/DataTable.js +1 -2
  61. package/es-modules/Data/Formula/FormulaParser.js +33 -1
  62. package/es-modules/Data/Formula/FormulaProcessor.js +97 -45
  63. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  64. package/es-modules/Data/Modifiers/FilterModifier.js +168 -0
  65. package/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
  66. package/es-modules/Data/Modifiers/SortModifier.js +12 -3
  67. package/es-modules/Extensions/Annotations/Annotation.js +10 -7
  68. package/es-modules/Extensions/Annotations/AnnotationChart.js +7 -3
  69. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +38 -12
  70. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +10 -3
  71. package/es-modules/Extensions/Annotations/MockPoint.js +6 -3
  72. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
  73. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +10 -4
  74. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
  75. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +0 -3
  76. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +97 -94
  77. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +43 -36
  78. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +86 -82
  79. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +74 -71
  80. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +17 -3
  81. package/es-modules/Extensions/Annotations/Types/Measure.js +229 -226
  82. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +39 -40
  83. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +56 -52
  84. package/es-modules/Extensions/Annotations/Types/Tunnel.js +80 -76
  85. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +57 -53
  86. package/es-modules/Extensions/Boost/Boost.js +5 -1
  87. package/es-modules/Extensions/Boost/BoostSeries.js +53 -21
  88. package/es-modules/Extensions/Boost/WGLRenderer.js +30 -21
  89. package/es-modules/Extensions/Boost/WGLShader.js +18 -5
  90. package/es-modules/Extensions/BoostCanvas.js +0 -5
  91. package/es-modules/Extensions/BorderRadius.js +6 -2
  92. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +1 -1
  93. package/es-modules/Extensions/DownloadURL.js +43 -8
  94. package/es-modules/Extensions/ExportData/ExportData.js +875 -781
  95. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +67 -13
  96. package/es-modules/Extensions/Exporting/Exporting.js +1177 -546
  97. package/es-modules/Extensions/Exporting/ExportingDefaults.js +52 -36
  98. package/es-modules/Extensions/Exporting/Fullscreen.js +2 -2
  99. package/es-modules/Extensions/NonCartesianSeriesZoom/NonCartesianSeriesZoom.js +311 -0
  100. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +254 -575
  101. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +9 -38
  102. package/es-modules/Extensions/Pane/Pane.js +1 -1
  103. package/es-modules/Extensions/Pane/PaneComposition.js +19 -12
  104. package/es-modules/Extensions/Pane/PaneDefaults.js +9 -1
  105. package/es-modules/Extensions/ScrollablePlotArea.js +29 -21
  106. package/es-modules/Extensions/Sonification/Sonification.js +1 -1
  107. package/es-modules/Extensions/StaticScale.js +13 -11
  108. package/es-modules/Extensions/TextPath.js +2 -2
  109. package/es-modules/Extensions/Themes/Adaptive.js +1009 -0
  110. package/es-modules/Maps/MapNavigation.js +1 -1
  111. package/es-modules/Series/Bellcurve/BellcurveSeries.js +16 -9
  112. package/es-modules/Series/Bubble/BubblePoint.js +2 -2
  113. package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -2
  114. package/es-modules/Series/DataModifyComposition.js +0 -2
  115. package/es-modules/Series/DragNodesComposition.js +4 -0
  116. package/es-modules/Series/DrawPointUtilities.js +1 -1
  117. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +2 -0
  118. package/es-modules/Series/GraphLayoutComposition.js +2 -1
  119. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -2
  120. package/es-modules/Series/Histogram/HistogramSeries.js +19 -17
  121. package/es-modules/Series/Item/ItemSeries.js +1 -1
  122. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -0
  123. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  124. package/es-modules/Series/Pie/PieSeries.js +2 -2
  125. package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -2
  126. package/es-modules/Series/PolarComposition.js +37 -2
  127. package/es-modules/Series/SeriesOnPointComposition.js +0 -1
  128. package/es-modules/Series/SimulationSeriesUtilities.js +7 -0
  129. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +7 -2
  130. package/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +13 -0
  131. package/es-modules/Series/Treegraph/TreegraphLayout.js +10 -4
  132. package/es-modules/Series/Treegraph/TreegraphSeries.js +3 -1
  133. package/es-modules/Series/Treemap/TreemapSeries.js +4 -4
  134. package/es-modules/Series/Variwide/VariwideComposition.js +9 -11
  135. package/es-modules/Series/Variwide/VariwideSeries.js +8 -1
  136. package/es-modules/Series/Waterfall/WaterfallSeries.js +12 -17
  137. package/es-modules/Series/Wordcloud/WordcloudSeries.js +87 -10
  138. package/es-modules/Series/XRange/XRangePoint.js +2 -1
  139. package/es-modules/Shared/BaseForm.js +6 -3
  140. package/es-modules/Shared/TimeBase.js +5 -1
  141. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
  142. package/es-modules/Stock/Navigator/NavigatorComposition.js +2 -2
  143. package/es-modules/Stock/Scrollbar/Scrollbar.js +5 -7
  144. package/es-modules/Stock/StockTools/StockToolbar.js +1 -1
  145. package/es-modules/Stock/StockTools/StockToolsBindings.js +34 -113
  146. package/es-modules/masters/highcharts-3d.src.js +3 -1
  147. package/es-modules/masters/highcharts-gantt.src.js +8 -2
  148. package/es-modules/masters/highcharts-more.src.js +2 -2
  149. package/es-modules/masters/highcharts.src.js +2 -2
  150. package/es-modules/masters/highmaps.src.js +2 -2
  151. package/es-modules/masters/highstock.src.js +2 -2
  152. package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
  153. package/es-modules/masters/i18n/fr-FR.src.js +1 -1
  154. package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
  155. package/es-modules/masters/i18n/nb-NO.src.js +1 -1
  156. package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
  157. package/es-modules/masters/i18n/zh-CN.src.js +1 -1
  158. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  159. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  160. package/es-modules/masters/indicators/ao.src.js +1 -1
  161. package/es-modules/masters/indicators/apo.src.js +1 -1
  162. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  163. package/es-modules/masters/indicators/aroon.src.js +1 -1
  164. package/es-modules/masters/indicators/atr.src.js +1 -1
  165. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  166. package/es-modules/masters/indicators/cci.src.js +1 -1
  167. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  168. package/es-modules/masters/indicators/cmf.src.js +1 -1
  169. package/es-modules/masters/indicators/cmo.src.js +1 -1
  170. package/es-modules/masters/indicators/dema.src.js +1 -1
  171. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  172. package/es-modules/masters/indicators/dmi.src.js +1 -1
  173. package/es-modules/masters/indicators/dpo.src.js +1 -1
  174. package/es-modules/masters/indicators/ema.src.js +0 -3
  175. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  176. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  177. package/es-modules/masters/indicators/indicators.src.js +1 -1
  178. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  179. package/es-modules/masters/indicators/klinger.src.js +1 -1
  180. package/es-modules/masters/indicators/macd.src.js +1 -1
  181. package/es-modules/masters/indicators/mfi.src.js +1 -1
  182. package/es-modules/masters/indicators/momentum.src.js +1 -1
  183. package/es-modules/masters/indicators/natr.src.js +1 -1
  184. package/es-modules/masters/indicators/obv.src.js +1 -1
  185. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  186. package/es-modules/masters/indicators/ppo.src.js +1 -1
  187. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  188. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  189. package/es-modules/masters/indicators/psar.src.js +1 -1
  190. package/es-modules/masters/indicators/regressions.src.js +1 -1
  191. package/es-modules/masters/indicators/roc.src.js +1 -1
  192. package/es-modules/masters/indicators/rsi.src.js +1 -1
  193. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  194. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  195. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  196. package/es-modules/masters/indicators/tema.src.js +1 -1
  197. package/es-modules/masters/indicators/trendline.src.js +1 -1
  198. package/es-modules/masters/indicators/trix.src.js +1 -1
  199. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  200. package/es-modules/masters/indicators/vwap.src.js +1 -1
  201. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  202. package/es-modules/masters/indicators/wma.src.js +1 -1
  203. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  204. package/es-modules/masters/modules/accessibility.src.js +1 -1
  205. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  206. package/es-modules/masters/modules/annotations.src.js +1 -1
  207. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  208. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  209. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  210. package/es-modules/masters/modules/boost.src.js +1 -1
  211. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  212. package/es-modules/masters/modules/bullet.src.js +1 -1
  213. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  214. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  215. package/es-modules/masters/modules/cylinder.src.js +1 -1
  216. package/es-modules/masters/modules/data-tools.src.d.ts +1 -0
  217. package/es-modules/masters/modules/data-tools.src.js +2 -1
  218. package/es-modules/masters/modules/data.src.js +1 -1
  219. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  220. package/es-modules/masters/modules/debugger.src.js +1 -1
  221. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  222. package/es-modules/masters/modules/dotplot.src.js +1 -1
  223. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  224. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  225. package/es-modules/masters/modules/drilldown.src.js +3 -1
  226. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  227. package/es-modules/masters/modules/export-data.src.js +3 -3
  228. package/es-modules/masters/modules/exporting.src.js +5 -1
  229. package/es-modules/masters/modules/flowmap.src.js +1 -1
  230. package/es-modules/masters/modules/full-screen.src.js +1 -1
  231. package/es-modules/masters/modules/funnel.src.js +1 -1
  232. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  233. package/es-modules/masters/modules/gantt.src.js +1 -1
  234. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  235. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  236. package/es-modules/masters/modules/heatmap.src.js +1 -1
  237. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  238. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  239. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  240. package/es-modules/masters/modules/item-series.src.js +1 -1
  241. package/es-modules/masters/modules/lollipop.src.js +1 -1
  242. package/es-modules/masters/modules/map.src.js +1 -1
  243. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  244. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  245. package/es-modules/masters/modules/navigator.src.js +1 -1
  246. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  247. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  248. package/es-modules/masters/modules/non-cartesian-zoom.src.d.ts +2 -0
  249. package/es-modules/masters/modules/non-cartesian-zoom.src.js +18 -0
  250. package/es-modules/masters/modules/offline-exporting.src.js +2 -2
  251. package/es-modules/masters/modules/organization.src.js +1 -1
  252. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  253. package/es-modules/masters/modules/pareto.src.js +1 -1
  254. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  255. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  256. package/es-modules/masters/modules/pictorial.src.js +1 -1
  257. package/es-modules/masters/modules/pointandfigure.src.js +1 -1
  258. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  259. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  260. package/es-modules/masters/modules/renko.src.js +1 -1
  261. package/es-modules/masters/modules/sankey.src.js +1 -1
  262. package/es-modules/masters/modules/series-label.src.js +1 -1
  263. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  264. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  265. package/es-modules/masters/modules/sonification.src.js +1 -1
  266. package/es-modules/masters/modules/static-scale.src.js +1 -1
  267. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  268. package/es-modules/masters/modules/stock.src.js +1 -1
  269. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  270. package/es-modules/masters/modules/sunburst.src.js +1 -1
  271. package/es-modules/masters/modules/textpath.src.js +1 -1
  272. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  273. package/es-modules/masters/modules/tilemap.src.js +1 -1
  274. package/es-modules/masters/modules/timeline.src.js +1 -1
  275. package/es-modules/masters/modules/treegraph.src.js +1 -1
  276. package/es-modules/masters/modules/treegrid.src.js +1 -1
  277. package/es-modules/masters/modules/treemap.src.js +1 -1
  278. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  279. package/es-modules/masters/modules/variwide.src.js +1 -1
  280. package/es-modules/masters/modules/vector.src.js +1 -1
  281. package/es-modules/masters/modules/venn.src.js +1 -1
  282. package/es-modules/masters/modules/windbarb.src.js +1 -1
  283. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  284. package/es-modules/masters/modules/xrange.src.js +1 -1
  285. package/es-modules/masters/standalone-navigator.src.js +7 -6
  286. package/es-modules/masters/themes/adaptive.src.d.ts +2 -0
  287. package/es-modules/masters/themes/adaptive.src.js +15 -0
  288. package/es-modules/masters/themes/avocado.src.js +1 -1
  289. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  290. package/es-modules/masters/themes/brand-light.src.js +1 -1
  291. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  292. package/es-modules/masters/themes/dark-green.src.js +1 -1
  293. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  294. package/es-modules/masters/themes/gray.src.js +1 -1
  295. package/es-modules/masters/themes/grid-light.src.js +1 -1
  296. package/es-modules/masters/themes/grid.src.js +1 -1
  297. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  298. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  299. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  300. package/es-modules/masters/themes/skies.src.js +1 -1
  301. package/es-modules/masters/themes/sunset.src.js +1 -1
  302. package/es-modules/tsconfig.tsbuildinfo +1 -1
  303. package/esm/highcharts-3d.js +11 -1
  304. package/esm/highcharts-3d.src.js +3 -4
  305. package/esm/highcharts-gantt.js +14 -1
  306. package/esm/highcharts-gantt.src.js +8 -2
  307. package/esm/highcharts-more.js +9 -1
  308. package/esm/highcharts-more.src.js +516 -57
  309. package/esm/highcharts.js +9 -2
  310. package/esm/highcharts.src.js +273 -168
  311. package/esm/highmaps.js +8 -1
  312. package/esm/highmaps.src.js +2 -2
  313. package/esm/highstock.js +8 -1
  314. package/esm/highstock.src.js +2 -2
  315. package/esm/i18n/fr-FR.js +13 -1
  316. package/esm/i18n/fr-FR.src.js +1 -1
  317. package/esm/i18n/nb-NO.js +13 -1
  318. package/esm/i18n/nb-NO.src.js +1 -1
  319. package/esm/i18n/zh-CN.js +13 -1
  320. package/esm/i18n/zh-CN.src.js +1 -1
  321. package/esm/indicators/acceleration-bands.js +12 -1
  322. package/esm/indicators/acceleration-bands.src.js +1 -1
  323. package/esm/indicators/accumulation-distribution.js +12 -1
  324. package/esm/indicators/accumulation-distribution.src.js +1 -1
  325. package/esm/indicators/ao.js +12 -1
  326. package/esm/indicators/ao.src.js +1 -1
  327. package/esm/indicators/apo.js +12 -1
  328. package/esm/indicators/apo.src.js +1 -1
  329. package/esm/indicators/aroon-oscillator.js +12 -1
  330. package/esm/indicators/aroon-oscillator.src.js +1 -1
  331. package/esm/indicators/aroon.js +12 -1
  332. package/esm/indicators/aroon.src.js +1 -1
  333. package/esm/indicators/atr.js +12 -1
  334. package/esm/indicators/atr.src.js +1 -1
  335. package/esm/indicators/bollinger-bands.js +12 -1
  336. package/esm/indicators/bollinger-bands.src.js +1 -1
  337. package/esm/indicators/cci.js +12 -1
  338. package/esm/indicators/cci.src.js +1 -1
  339. package/esm/indicators/chaikin.js +12 -1
  340. package/esm/indicators/chaikin.src.js +1 -1
  341. package/esm/indicators/cmf.js +11 -1
  342. package/esm/indicators/cmf.src.js +1 -1
  343. package/esm/indicators/cmo.js +12 -1
  344. package/esm/indicators/cmo.src.js +1 -1
  345. package/esm/indicators/dema.js +12 -1
  346. package/esm/indicators/dema.src.js +1 -1
  347. package/esm/indicators/disparity-index.js +12 -1
  348. package/esm/indicators/disparity-index.src.js +1 -1
  349. package/esm/indicators/dmi.js +12 -1
  350. package/esm/indicators/dmi.src.js +1 -1
  351. package/esm/indicators/dpo.js +12 -1
  352. package/esm/indicators/dpo.src.js +1 -1
  353. package/esm/indicators/ema.src.js +0 -3
  354. package/esm/indicators/ichimoku-kinko-hyo.js +12 -1
  355. package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
  356. package/esm/indicators/indicators-all.js +12 -1
  357. package/esm/indicators/indicators-all.src.js +2 -2
  358. package/esm/indicators/indicators.js +12 -1
  359. package/esm/indicators/indicators.src.js +1 -1
  360. package/esm/indicators/keltner-channels.js +12 -1
  361. package/esm/indicators/keltner-channels.src.js +1 -1
  362. package/esm/indicators/klinger.js +12 -1
  363. package/esm/indicators/klinger.src.js +1 -1
  364. package/esm/indicators/macd.js +12 -1
  365. package/esm/indicators/macd.src.js +2 -2
  366. package/esm/indicators/mfi.js +12 -1
  367. package/esm/indicators/mfi.src.js +1 -1
  368. package/esm/indicators/momentum.js +12 -1
  369. package/esm/indicators/momentum.src.js +1 -1
  370. package/esm/indicators/natr.js +12 -1
  371. package/esm/indicators/natr.src.js +1 -1
  372. package/esm/indicators/obv.js +12 -1
  373. package/esm/indicators/obv.src.js +1 -1
  374. package/esm/indicators/pivot-points.js +12 -1
  375. package/esm/indicators/pivot-points.src.js +1 -1
  376. package/esm/indicators/ppo.js +12 -1
  377. package/esm/indicators/ppo.src.js +1 -1
  378. package/esm/indicators/price-channel.js +12 -1
  379. package/esm/indicators/price-channel.src.js +1 -1
  380. package/esm/indicators/price-envelopes.js +12 -1
  381. package/esm/indicators/price-envelopes.src.js +1 -1
  382. package/esm/indicators/psar.js +12 -1
  383. package/esm/indicators/psar.src.js +1 -1
  384. package/esm/indicators/regressions.js +12 -1
  385. package/esm/indicators/regressions.src.js +1 -1
  386. package/esm/indicators/roc.js +12 -1
  387. package/esm/indicators/roc.src.js +1 -1
  388. package/esm/indicators/rsi.js +12 -1
  389. package/esm/indicators/rsi.src.js +1 -1
  390. package/esm/indicators/slow-stochastic.js +12 -1
  391. package/esm/indicators/slow-stochastic.src.js +1 -1
  392. package/esm/indicators/stochastic.js +12 -1
  393. package/esm/indicators/stochastic.src.js +1 -1
  394. package/esm/indicators/supertrend.js +12 -1
  395. package/esm/indicators/supertrend.src.js +1 -1
  396. package/esm/indicators/tema.js +12 -1
  397. package/esm/indicators/tema.src.js +1 -1
  398. package/esm/indicators/trendline.js +12 -1
  399. package/esm/indicators/trendline.src.js +1 -1
  400. package/esm/indicators/trix.js +12 -1
  401. package/esm/indicators/trix.src.js +1 -1
  402. package/esm/indicators/volume-by-price.js +12 -1
  403. package/esm/indicators/volume-by-price.src.js +1 -1
  404. package/esm/indicators/vwap.js +12 -1
  405. package/esm/indicators/vwap.src.js +1 -1
  406. package/esm/indicators/williams-r.js +12 -1
  407. package/esm/indicators/williams-r.src.js +1 -1
  408. package/esm/indicators/wma.js +12 -1
  409. package/esm/indicators/wma.src.js +1 -1
  410. package/esm/indicators/zigzag.js +12 -1
  411. package/esm/indicators/zigzag.src.js +1 -1
  412. package/esm/modules/accessibility.js +12 -1
  413. package/esm/modules/accessibility.src.js +92 -63
  414. package/esm/modules/annotations-advanced.js +11 -1
  415. package/esm/modules/annotations-advanced.src.js +872 -778
  416. package/esm/modules/annotations.js +11 -1
  417. package/esm/modules/annotations.src.js +95 -43
  418. package/esm/modules/arc-diagram.js +11 -1
  419. package/esm/modules/arc-diagram.src.js +3 -3
  420. package/esm/modules/arrow-symbols.js +11 -1
  421. package/esm/modules/arrow-symbols.src.js +1 -1
  422. package/esm/modules/boost-canvas.js +12 -1
  423. package/esm/modules/boost-canvas.src.js +102 -53
  424. package/esm/modules/boost.js +13 -1
  425. package/esm/modules/boost.src.js +107 -49
  426. package/esm/modules/broken-axis.js +9 -1
  427. package/esm/modules/broken-axis.src.js +115 -91
  428. package/esm/modules/bullet.js +11 -1
  429. package/esm/modules/bullet.src.js +1 -1
  430. package/esm/modules/coloraxis.js +11 -1
  431. package/esm/modules/coloraxis.src.js +6 -7
  432. package/esm/modules/current-date-indicator.js +11 -1
  433. package/esm/modules/current-date-indicator.src.js +1 -1
  434. package/esm/modules/cylinder.js +12 -1
  435. package/esm/modules/cylinder.src.js +1 -1
  436. package/esm/modules/data-tools.js +11 -1
  437. package/esm/modules/data-tools.src.js +542 -125
  438. package/esm/modules/data.js +11 -1
  439. package/esm/modules/data.src.js +46 -39
  440. package/esm/modules/datagrouping.js +11 -1
  441. package/esm/modules/datagrouping.src.js +1 -1
  442. package/esm/modules/debugger.js +11 -1
  443. package/esm/modules/debugger.src.js +1 -1
  444. package/esm/modules/dependency-wheel.js +12 -1
  445. package/esm/modules/dependency-wheel.src.js +3 -3
  446. package/esm/modules/dotplot.js +11 -1
  447. package/esm/modules/dotplot.src.js +1 -1
  448. package/esm/modules/drag-panes.js +13 -1
  449. package/esm/modules/drag-panes.src.js +1 -1
  450. package/esm/modules/draggable-points.js +9 -1
  451. package/esm/modules/draggable-points.src.js +1 -1
  452. package/esm/modules/drilldown.js +13 -1
  453. package/esm/modules/drilldown.src.js +4 -2
  454. package/esm/modules/dumbbell.js +9 -1
  455. package/esm/modules/dumbbell.src.js +1 -1
  456. package/esm/modules/export-data.js +12 -1
  457. package/esm/modules/export-data.src.js +985 -799
  458. package/esm/modules/exporting.js +11 -1
  459. package/esm/modules/exporting.src.js +1453 -634
  460. package/esm/modules/flowmap.js +9 -1
  461. package/esm/modules/flowmap.src.js +1 -1
  462. package/esm/modules/full-screen.js +12 -1
  463. package/esm/modules/full-screen.src.js +3 -3
  464. package/esm/modules/funnel.js +11 -1
  465. package/esm/modules/funnel.src.js +7 -3
  466. package/esm/modules/funnel3d.js +13 -1
  467. package/esm/modules/funnel3d.src.js +1 -1
  468. package/esm/modules/gantt.js +11 -1
  469. package/esm/modules/gantt.src.js +254 -212
  470. package/esm/modules/geoheatmap.js +9 -1
  471. package/esm/modules/geoheatmap.src.js +1 -1
  472. package/esm/modules/grid-axis.js +11 -1
  473. package/esm/modules/grid-axis.src.js +1 -1
  474. package/esm/modules/heatmap.js +9 -1
  475. package/esm/modules/heatmap.src.js +2 -3
  476. package/esm/modules/heikinashi.js +12 -1
  477. package/esm/modules/heikinashi.src.js +1 -1
  478. package/esm/modules/histogram-bellcurve.js +10 -1
  479. package/esm/modules/histogram-bellcurve.src.js +36 -27
  480. package/esm/modules/hollowcandlestick.js +12 -1
  481. package/esm/modules/hollowcandlestick.src.js +1 -1
  482. package/esm/modules/item-series.js +11 -1
  483. package/esm/modules/item-series.src.js +3 -5
  484. package/esm/modules/lollipop.js +9 -1
  485. package/esm/modules/lollipop.src.js +1 -1
  486. package/esm/modules/map.js +11 -1
  487. package/esm/modules/map.src.js +5 -6
  488. package/esm/modules/marker-clusters.js +11 -1
  489. package/esm/modules/marker-clusters.src.js +1 -1
  490. package/esm/modules/mouse-wheel-zoom.js +11 -1
  491. package/esm/modules/mouse-wheel-zoom.src.js +1 -1
  492. package/esm/modules/navigator.js +11 -1
  493. package/esm/modules/navigator.src.js +29 -29
  494. package/esm/modules/networkgraph.js +11 -1
  495. package/esm/modules/networkgraph.src.js +16 -4
  496. package/esm/modules/no-data-to-display.js +12 -1
  497. package/esm/modules/no-data-to-display.src.js +1 -1
  498. package/esm/modules/non-cartesian-zoom.d.ts +2 -0
  499. package/esm/modules/non-cartesian-zoom.js +11 -0
  500. package/esm/modules/non-cartesian-zoom.src.d.ts +2 -0
  501. package/esm/modules/non-cartesian-zoom.src.js +374 -0
  502. package/esm/modules/offline-exporting.js +12 -1
  503. package/esm/modules/offline-exporting.src.js +339 -3363
  504. package/esm/modules/organization.js +11 -1
  505. package/esm/modules/organization.src.js +3 -3
  506. package/esm/modules/parallel-coordinates.js +11 -1
  507. package/esm/modules/parallel-coordinates.src.js +1 -1
  508. package/esm/modules/pareto.js +11 -1
  509. package/esm/modules/pareto.src.js +1 -1
  510. package/esm/modules/pathfinder.js +11 -1
  511. package/esm/modules/pathfinder.src.js +1 -1
  512. package/esm/modules/pattern-fill.js +12 -1
  513. package/esm/modules/pattern-fill.src.js +1 -1
  514. package/esm/modules/pictorial.js +11 -1
  515. package/esm/modules/pictorial.src.js +1 -1
  516. package/esm/modules/pointandfigure.js +12 -1
  517. package/esm/modules/pointandfigure.src.js +1 -1
  518. package/esm/modules/price-indicator.js +13 -1
  519. package/esm/modules/price-indicator.src.js +1 -1
  520. package/esm/modules/pyramid3d.js +14 -1
  521. package/esm/modules/pyramid3d.src.js +1 -1
  522. package/esm/modules/renko.js +12 -1
  523. package/esm/modules/renko.src.js +1 -1
  524. package/esm/modules/sankey.js +11 -1
  525. package/esm/modules/sankey.src.js +3 -3
  526. package/esm/modules/series-label.js +9 -1
  527. package/esm/modules/series-label.src.js +1 -1
  528. package/esm/modules/series-on-point.js +12 -1
  529. package/esm/modules/series-on-point.src.js +1 -9
  530. package/esm/modules/solid-gauge.js +12 -1
  531. package/esm/modules/solid-gauge.src.js +27 -5
  532. package/esm/modules/sonification.js +12 -1
  533. package/esm/modules/sonification.src.js +45 -10
  534. package/esm/modules/static-scale.js +11 -1
  535. package/esm/modules/static-scale.src.js +14 -12
  536. package/esm/modules/stock-tools.js +13 -1
  537. package/esm/modules/stock-tools.src.js +37 -116
  538. package/esm/modules/stock.js +11 -1
  539. package/esm/modules/stock.src.js +98 -98
  540. package/esm/modules/streamgraph.js +11 -1
  541. package/esm/modules/streamgraph.src.js +1 -1
  542. package/esm/modules/sunburst.js +10 -1
  543. package/esm/modules/sunburst.src.js +9 -9
  544. package/esm/modules/textpath.js +9 -1
  545. package/esm/modules/textpath.src.js +3 -3
  546. package/esm/modules/tiledwebmap.js +10 -2
  547. package/esm/modules/tiledwebmap.src.js +1 -1
  548. package/esm/modules/tilemap.js +12 -1
  549. package/esm/modules/tilemap.src.js +1 -1
  550. package/esm/modules/timeline.js +12 -1
  551. package/esm/modules/timeline.src.js +1 -1
  552. package/esm/modules/treegraph.js +11 -1
  553. package/esm/modules/treegraph.src.js +16 -8
  554. package/esm/modules/treegrid.js +11 -1
  555. package/esm/modules/treegrid.src.js +190 -159
  556. package/esm/modules/treemap.js +10 -1
  557. package/esm/modules/treemap.src.js +7 -7
  558. package/esm/modules/variable-pie.js +11 -1
  559. package/esm/modules/variable-pie.src.js +1 -1
  560. package/esm/modules/variwide.js +11 -1
  561. package/esm/modules/variwide.src.js +18 -13
  562. package/esm/modules/vector.js +11 -1
  563. package/esm/modules/vector.src.js +1 -1
  564. package/esm/modules/venn.js +10 -1
  565. package/esm/modules/venn.src.js +5 -3
  566. package/esm/modules/windbarb.js +11 -1
  567. package/esm/modules/windbarb.src.js +1 -1
  568. package/esm/modules/wordcloud.js +10 -1
  569. package/esm/modules/wordcloud.src.js +89 -12
  570. package/esm/modules/xrange.js +11 -1
  571. package/esm/modules/xrange.src.js +3 -2
  572. package/esm/standalone-navigator.js +11 -2
  573. package/esm/standalone-navigator.src.js +312 -206
  574. package/esm/themes/adaptive.d.ts +2 -0
  575. package/esm/themes/adaptive.js +130 -0
  576. package/esm/themes/adaptive.src.d.ts +2 -0
  577. package/esm/themes/adaptive.src.js +1069 -0
  578. package/esm/themes/avocado.js +9 -1
  579. package/esm/themes/avocado.src.js +1 -1
  580. package/esm/themes/brand-dark.js +9 -1
  581. package/esm/themes/brand-dark.src.js +1 -1
  582. package/esm/themes/brand-light.js +9 -1
  583. package/esm/themes/brand-light.src.js +1 -1
  584. package/esm/themes/dark-blue.js +9 -1
  585. package/esm/themes/dark-blue.src.js +1 -1
  586. package/esm/themes/dark-green.js +9 -1
  587. package/esm/themes/dark-green.src.js +1 -1
  588. package/esm/themes/dark-unica.js +9 -1
  589. package/esm/themes/dark-unica.src.js +1 -1
  590. package/esm/themes/gray.js +9 -1
  591. package/esm/themes/gray.src.js +1 -1
  592. package/esm/themes/grid-light.js +9 -1
  593. package/esm/themes/grid-light.src.js +1 -1
  594. package/esm/themes/grid.js +9 -1
  595. package/esm/themes/grid.src.js +1 -1
  596. package/esm/themes/high-contrast-dark.js +9 -1
  597. package/esm/themes/high-contrast-dark.src.js +1 -1
  598. package/esm/themes/high-contrast-light.js +9 -1
  599. package/esm/themes/high-contrast-light.src.js +1 -1
  600. package/esm/themes/sand-signika.js +9 -1
  601. package/esm/themes/sand-signika.src.js +1 -1
  602. package/esm/themes/skies.js +9 -1
  603. package/esm/themes/skies.src.js +1 -1
  604. package/esm/themes/sunset.js +9 -1
  605. package/esm/themes/sunset.src.js +1 -1
  606. package/highcharts-3d.d.ts +1 -9
  607. package/highcharts-3d.js +11 -1
  608. package/highcharts-3d.src.d.ts +1 -9
  609. package/highcharts-3d.src.js +3 -4
  610. package/highcharts-gantt.js +15 -2
  611. package/highcharts-gantt.src.js +546 -392
  612. package/highcharts-more.d.ts +10 -9
  613. package/highcharts-more.js +9 -1
  614. package/highcharts-more.src.d.ts +10 -9
  615. package/highcharts-more.src.js +516 -57
  616. package/highcharts.d.ts +4526 -1522
  617. package/highcharts.js +9 -2
  618. package/highcharts.src.d.ts +4526 -1522
  619. package/highcharts.src.js +273 -168
  620. package/highmaps.js +9 -2
  621. package/highmaps.src.js +294 -191
  622. package/highstock.js +9 -2
  623. package/highstock.src.js +490 -361
  624. package/i18n/fr-FR.js +13 -1
  625. package/i18n/fr-FR.src.js +8 -8
  626. package/i18n/nb-NO.js +13 -1
  627. package/i18n/nb-NO.src.js +8 -8
  628. package/i18n/zh-CN.js +13 -1
  629. package/i18n/zh-CN.src.js +8 -8
  630. package/indicators/acceleration-bands.d.ts +1 -9
  631. package/indicators/acceleration-bands.js +12 -1
  632. package/indicators/acceleration-bands.src.d.ts +1 -9
  633. package/indicators/acceleration-bands.src.js +1 -1
  634. package/indicators/accumulation-distribution.d.ts +1 -9
  635. package/indicators/accumulation-distribution.js +12 -1
  636. package/indicators/accumulation-distribution.src.d.ts +1 -9
  637. package/indicators/accumulation-distribution.src.js +1 -1
  638. package/indicators/ao.d.ts +1 -9
  639. package/indicators/ao.js +12 -1
  640. package/indicators/ao.src.d.ts +1 -9
  641. package/indicators/ao.src.js +1 -1
  642. package/indicators/apo.d.ts +1 -9
  643. package/indicators/apo.js +12 -1
  644. package/indicators/apo.src.d.ts +1 -9
  645. package/indicators/apo.src.js +1 -1
  646. package/indicators/aroon-oscillator.d.ts +1 -9
  647. package/indicators/aroon-oscillator.js +12 -1
  648. package/indicators/aroon-oscillator.src.d.ts +1 -9
  649. package/indicators/aroon-oscillator.src.js +1 -1
  650. package/indicators/aroon.d.ts +1 -9
  651. package/indicators/aroon.js +12 -1
  652. package/indicators/aroon.src.d.ts +1 -9
  653. package/indicators/aroon.src.js +1 -1
  654. package/indicators/atr.d.ts +1 -9
  655. package/indicators/atr.js +12 -1
  656. package/indicators/atr.src.d.ts +1 -9
  657. package/indicators/atr.src.js +1 -1
  658. package/indicators/bollinger-bands.d.ts +1 -9
  659. package/indicators/bollinger-bands.js +12 -1
  660. package/indicators/bollinger-bands.src.d.ts +1 -9
  661. package/indicators/bollinger-bands.src.js +1 -1
  662. package/indicators/cci.d.ts +1 -9
  663. package/indicators/cci.js +12 -1
  664. package/indicators/cci.src.d.ts +1 -9
  665. package/indicators/cci.src.js +1 -1
  666. package/indicators/chaikin.d.ts +1 -9
  667. package/indicators/chaikin.js +12 -1
  668. package/indicators/chaikin.src.d.ts +1 -9
  669. package/indicators/chaikin.src.js +1 -1
  670. package/indicators/cmf.d.ts +1 -9
  671. package/indicators/cmf.js +11 -1
  672. package/indicators/cmf.src.d.ts +1 -9
  673. package/indicators/cmf.src.js +1 -1
  674. package/indicators/cmo.d.ts +1 -9
  675. package/indicators/cmo.js +12 -1
  676. package/indicators/cmo.src.d.ts +1 -9
  677. package/indicators/cmo.src.js +1 -1
  678. package/indicators/dema.d.ts +1 -9
  679. package/indicators/dema.js +12 -1
  680. package/indicators/dema.src.d.ts +1 -9
  681. package/indicators/dema.src.js +1 -1
  682. package/indicators/disparity-index.d.ts +1 -9
  683. package/indicators/disparity-index.js +12 -1
  684. package/indicators/disparity-index.src.d.ts +1 -9
  685. package/indicators/disparity-index.src.js +1 -1
  686. package/indicators/dmi.d.ts +1 -9
  687. package/indicators/dmi.js +12 -1
  688. package/indicators/dmi.src.d.ts +1 -9
  689. package/indicators/dmi.src.js +1 -1
  690. package/indicators/dpo.d.ts +1 -9
  691. package/indicators/dpo.js +12 -1
  692. package/indicators/dpo.src.d.ts +1 -9
  693. package/indicators/dpo.src.js +1 -1
  694. package/indicators/ema.d.ts +1 -9
  695. package/indicators/ema.src.d.ts +1 -9
  696. package/indicators/ema.src.js +3 -6
  697. package/indicators/ichimoku-kinko-hyo.d.ts +1 -9
  698. package/indicators/ichimoku-kinko-hyo.js +12 -1
  699. package/indicators/ichimoku-kinko-hyo.src.d.ts +1 -9
  700. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  701. package/indicators/indicators-all.d.ts +1 -9
  702. package/indicators/indicators-all.js +12 -1
  703. package/indicators/indicators-all.src.d.ts +1 -9
  704. package/indicators/indicators-all.src.js +2 -2
  705. package/indicators/indicators.d.ts +1 -9
  706. package/indicators/indicators.js +12 -1
  707. package/indicators/indicators.src.d.ts +1 -9
  708. package/indicators/indicators.src.js +1 -1
  709. package/indicators/keltner-channels.d.ts +1 -9
  710. package/indicators/keltner-channels.js +12 -1
  711. package/indicators/keltner-channels.src.d.ts +1 -9
  712. package/indicators/keltner-channels.src.js +1 -1
  713. package/indicators/klinger.d.ts +1 -9
  714. package/indicators/klinger.js +12 -1
  715. package/indicators/klinger.src.d.ts +1 -9
  716. package/indicators/klinger.src.js +1 -1
  717. package/indicators/macd.d.ts +1 -9
  718. package/indicators/macd.js +12 -1
  719. package/indicators/macd.src.d.ts +1 -9
  720. package/indicators/macd.src.js +2 -2
  721. package/indicators/mfi.d.ts +1 -9
  722. package/indicators/mfi.js +12 -1
  723. package/indicators/mfi.src.d.ts +1 -9
  724. package/indicators/mfi.src.js +1 -1
  725. package/indicators/momentum.d.ts +1 -9
  726. package/indicators/momentum.js +12 -1
  727. package/indicators/momentum.src.d.ts +1 -9
  728. package/indicators/momentum.src.js +1 -1
  729. package/indicators/natr.d.ts +1 -9
  730. package/indicators/natr.js +12 -1
  731. package/indicators/natr.src.d.ts +1 -9
  732. package/indicators/natr.src.js +1 -1
  733. package/indicators/obv.d.ts +1 -9
  734. package/indicators/obv.js +12 -1
  735. package/indicators/obv.src.d.ts +1 -9
  736. package/indicators/obv.src.js +1 -1
  737. package/indicators/pivot-points.d.ts +1 -9
  738. package/indicators/pivot-points.js +12 -1
  739. package/indicators/pivot-points.src.d.ts +1 -9
  740. package/indicators/pivot-points.src.js +1 -1
  741. package/indicators/ppo.d.ts +1 -9
  742. package/indicators/ppo.js +12 -1
  743. package/indicators/ppo.src.d.ts +1 -9
  744. package/indicators/ppo.src.js +1 -1
  745. package/indicators/price-channel.d.ts +1 -9
  746. package/indicators/price-channel.js +12 -1
  747. package/indicators/price-channel.src.d.ts +1 -9
  748. package/indicators/price-channel.src.js +1 -1
  749. package/indicators/price-envelopes.d.ts +1 -9
  750. package/indicators/price-envelopes.js +12 -1
  751. package/indicators/price-envelopes.src.d.ts +1 -9
  752. package/indicators/price-envelopes.src.js +1 -1
  753. package/indicators/psar.d.ts +1 -9
  754. package/indicators/psar.js +12 -1
  755. package/indicators/psar.src.d.ts +1 -9
  756. package/indicators/psar.src.js +1 -1
  757. package/indicators/regressions.d.ts +1 -9
  758. package/indicators/regressions.js +12 -1
  759. package/indicators/regressions.src.d.ts +1 -9
  760. package/indicators/regressions.src.js +1 -1
  761. package/indicators/roc.d.ts +1 -9
  762. package/indicators/roc.js +12 -1
  763. package/indicators/roc.src.d.ts +1 -9
  764. package/indicators/roc.src.js +1 -1
  765. package/indicators/rsi.d.ts +1 -9
  766. package/indicators/rsi.js +12 -1
  767. package/indicators/rsi.src.d.ts +1 -9
  768. package/indicators/rsi.src.js +1 -1
  769. package/indicators/slow-stochastic.d.ts +1 -9
  770. package/indicators/slow-stochastic.js +12 -1
  771. package/indicators/slow-stochastic.src.d.ts +1 -9
  772. package/indicators/slow-stochastic.src.js +1 -1
  773. package/indicators/stochastic.d.ts +1 -9
  774. package/indicators/stochastic.js +12 -1
  775. package/indicators/stochastic.src.d.ts +1 -9
  776. package/indicators/stochastic.src.js +1 -1
  777. package/indicators/supertrend.d.ts +1 -9
  778. package/indicators/supertrend.js +12 -1
  779. package/indicators/supertrend.src.d.ts +1 -9
  780. package/indicators/supertrend.src.js +1 -1
  781. package/indicators/tema.d.ts +1 -9
  782. package/indicators/tema.js +12 -1
  783. package/indicators/tema.src.d.ts +1 -9
  784. package/indicators/tema.src.js +1 -1
  785. package/indicators/trendline.d.ts +1 -9
  786. package/indicators/trendline.js +12 -1
  787. package/indicators/trendline.src.d.ts +1 -9
  788. package/indicators/trendline.src.js +1 -1
  789. package/indicators/trix.d.ts +1 -9
  790. package/indicators/trix.js +12 -1
  791. package/indicators/trix.src.d.ts +1 -9
  792. package/indicators/trix.src.js +1 -1
  793. package/indicators/volume-by-price.d.ts +1 -9
  794. package/indicators/volume-by-price.js +12 -1
  795. package/indicators/volume-by-price.src.d.ts +1 -9
  796. package/indicators/volume-by-price.src.js +1 -1
  797. package/indicators/vwap.d.ts +1 -9
  798. package/indicators/vwap.js +12 -1
  799. package/indicators/vwap.src.d.ts +1 -9
  800. package/indicators/vwap.src.js +1 -1
  801. package/indicators/williams-r.d.ts +1 -9
  802. package/indicators/williams-r.js +12 -1
  803. package/indicators/williams-r.src.d.ts +1 -9
  804. package/indicators/williams-r.src.js +1 -1
  805. package/indicators/wma.d.ts +1 -9
  806. package/indicators/wma.js +12 -1
  807. package/indicators/wma.src.d.ts +1 -9
  808. package/indicators/wma.src.js +1 -1
  809. package/indicators/zigzag.d.ts +1 -9
  810. package/indicators/zigzag.js +12 -1
  811. package/indicators/zigzag.src.d.ts +1 -9
  812. package/indicators/zigzag.src.js +1 -1
  813. package/modules/accessibility.d.ts +1 -11
  814. package/modules/accessibility.js +12 -1
  815. package/modules/accessibility.src.d.ts +1 -11
  816. package/modules/accessibility.src.js +92 -63
  817. package/modules/annotations-advanced.d.ts +1 -9
  818. package/modules/annotations-advanced.js +21 -1
  819. package/modules/annotations-advanced.src.d.ts +1 -9
  820. package/modules/annotations-advanced.src.js +888 -794
  821. package/modules/annotations.d.ts +1 -9
  822. package/modules/annotations.js +11 -1
  823. package/modules/annotations.src.d.ts +1 -9
  824. package/modules/annotations.src.js +95 -43
  825. package/modules/arc-diagram.d.ts +1 -9
  826. package/modules/arc-diagram.js +11 -1
  827. package/modules/arc-diagram.src.d.ts +1 -9
  828. package/modules/arc-diagram.src.js +3 -3
  829. package/modules/arrow-symbols.d.ts +1 -9
  830. package/modules/arrow-symbols.js +11 -1
  831. package/modules/arrow-symbols.src.d.ts +1 -9
  832. package/modules/arrow-symbols.src.js +1 -1
  833. package/modules/boost-canvas.d.ts +1 -9
  834. package/modules/boost-canvas.js +12 -1
  835. package/modules/boost-canvas.src.d.ts +1 -9
  836. package/modules/boost-canvas.src.js +102 -53
  837. package/modules/boost.d.ts +1 -9
  838. package/modules/boost.js +13 -1
  839. package/modules/boost.src.d.ts +1 -9
  840. package/modules/boost.src.js +107 -49
  841. package/modules/broken-axis.d.ts +1 -9
  842. package/modules/broken-axis.js +9 -1
  843. package/modules/broken-axis.src.d.ts +1 -9
  844. package/modules/broken-axis.src.js +115 -91
  845. package/modules/bullet.d.ts +1 -9
  846. package/modules/bullet.js +11 -1
  847. package/modules/bullet.src.d.ts +1 -9
  848. package/modules/bullet.src.js +1 -1
  849. package/modules/coloraxis.d.ts +1 -9
  850. package/modules/coloraxis.js +11 -1
  851. package/modules/coloraxis.src.d.ts +1 -9
  852. package/modules/coloraxis.src.js +6 -7
  853. package/modules/current-date-indicator.d.ts +1 -9
  854. package/modules/current-date-indicator.js +11 -1
  855. package/modules/current-date-indicator.src.d.ts +1 -9
  856. package/modules/current-date-indicator.src.js +1 -1
  857. package/modules/cylinder.d.ts +1 -9
  858. package/modules/cylinder.js +12 -1
  859. package/modules/cylinder.src.d.ts +1 -9
  860. package/modules/cylinder.src.js +1 -1
  861. package/modules/data-tools.js +11 -1
  862. package/modules/data-tools.src.js +542 -125
  863. package/modules/data.d.ts +1 -9
  864. package/modules/data.js +11 -1
  865. package/modules/data.src.d.ts +1 -9
  866. package/modules/data.src.js +46 -39
  867. package/modules/datagrouping.d.ts +1 -9
  868. package/modules/datagrouping.js +11 -1
  869. package/modules/datagrouping.src.d.ts +1 -9
  870. package/modules/datagrouping.src.js +1 -1
  871. package/modules/debugger.d.ts +1 -9
  872. package/modules/debugger.js +11 -1
  873. package/modules/debugger.src.d.ts +1 -9
  874. package/modules/debugger.src.js +1 -1
  875. package/modules/dependency-wheel.d.ts +1 -9
  876. package/modules/dependency-wheel.js +12 -1
  877. package/modules/dependency-wheel.src.d.ts +1 -9
  878. package/modules/dependency-wheel.src.js +3 -3
  879. package/modules/dotplot.d.ts +1 -9
  880. package/modules/dotplot.js +11 -1
  881. package/modules/dotplot.src.d.ts +1 -9
  882. package/modules/dotplot.src.js +1 -1
  883. package/modules/drag-panes.d.ts +1 -9
  884. package/modules/drag-panes.js +13 -1
  885. package/modules/drag-panes.src.d.ts +1 -9
  886. package/modules/drag-panes.src.js +1 -1
  887. package/modules/draggable-points.d.ts +1 -9
  888. package/modules/draggable-points.js +9 -1
  889. package/modules/draggable-points.src.d.ts +1 -9
  890. package/modules/draggable-points.src.js +1 -1
  891. package/modules/drilldown.d.ts +1 -9
  892. package/modules/drilldown.js +13 -1
  893. package/modules/drilldown.src.d.ts +1 -9
  894. package/modules/drilldown.src.js +4 -2
  895. package/modules/dumbbell.d.ts +1 -9
  896. package/modules/dumbbell.js +9 -1
  897. package/modules/dumbbell.src.d.ts +1 -9
  898. package/modules/dumbbell.src.js +1 -1
  899. package/modules/export-data.d.ts +2 -79
  900. package/modules/export-data.js +12 -1
  901. package/modules/export-data.src.d.ts +2 -79
  902. package/modules/export-data.src.js +997 -804
  903. package/modules/exporting.d.ts +35 -21
  904. package/modules/exporting.js +11 -1
  905. package/modules/exporting.src.d.ts +35 -21
  906. package/modules/exporting.src.js +1452 -628
  907. package/modules/flowmap.d.ts +1 -9
  908. package/modules/flowmap.js +9 -1
  909. package/modules/flowmap.src.d.ts +1 -9
  910. package/modules/flowmap.src.js +1 -1
  911. package/modules/full-screen.d.ts +1 -9
  912. package/modules/full-screen.js +12 -1
  913. package/modules/full-screen.src.d.ts +1 -9
  914. package/modules/full-screen.src.js +3 -3
  915. package/modules/funnel.d.ts +1 -9
  916. package/modules/funnel.js +11 -1
  917. package/modules/funnel.src.d.ts +1 -9
  918. package/modules/funnel.src.js +7 -3
  919. package/modules/funnel3d.d.ts +1 -9
  920. package/modules/funnel3d.js +13 -1
  921. package/modules/funnel3d.src.d.ts +1 -9
  922. package/modules/funnel3d.src.js +1 -1
  923. package/modules/gantt.d.ts +1 -9
  924. package/modules/gantt.js +31 -1
  925. package/modules/gantt.src.d.ts +1 -9
  926. package/modules/gantt.src.js +273 -230
  927. package/modules/geoheatmap.d.ts +1 -9
  928. package/modules/geoheatmap.js +9 -1
  929. package/modules/geoheatmap.src.d.ts +1 -9
  930. package/modules/geoheatmap.src.js +1 -1
  931. package/modules/grid-axis.d.ts +1 -9
  932. package/modules/grid-axis.js +11 -1
  933. package/modules/grid-axis.src.d.ts +1 -9
  934. package/modules/grid-axis.src.js +1 -1
  935. package/modules/heatmap.d.ts +1 -9
  936. package/modules/heatmap.js +19 -1
  937. package/modules/heatmap.src.d.ts +1 -9
  938. package/modules/heatmap.src.js +21 -23
  939. package/modules/heikinashi.d.ts +1 -9
  940. package/modules/heikinashi.js +12 -1
  941. package/modules/heikinashi.src.d.ts +1 -9
  942. package/modules/heikinashi.src.js +1 -1
  943. package/modules/histogram-bellcurve.d.ts +2 -11
  944. package/modules/histogram-bellcurve.js +10 -1
  945. package/modules/histogram-bellcurve.src.d.ts +2 -11
  946. package/modules/histogram-bellcurve.src.js +36 -27
  947. package/modules/hollowcandlestick.d.ts +1 -9
  948. package/modules/hollowcandlestick.js +12 -1
  949. package/modules/hollowcandlestick.src.d.ts +1 -9
  950. package/modules/hollowcandlestick.src.js +1 -1
  951. package/modules/item-series.d.ts +1 -9
  952. package/modules/item-series.js +11 -1
  953. package/modules/item-series.src.d.ts +1 -9
  954. package/modules/item-series.src.js +3 -5
  955. package/modules/lollipop.d.ts +1 -9
  956. package/modules/lollipop.js +9 -1
  957. package/modules/lollipop.src.d.ts +1 -9
  958. package/modules/lollipop.src.js +1 -1
  959. package/modules/map.d.ts +1 -9
  960. package/modules/map.js +21 -1
  961. package/modules/map.src.d.ts +1 -9
  962. package/modules/map.src.js +25 -27
  963. package/modules/marker-clusters.d.ts +1 -9
  964. package/modules/marker-clusters.js +11 -1
  965. package/modules/marker-clusters.src.d.ts +1 -9
  966. package/modules/marker-clusters.src.js +1 -1
  967. package/modules/mouse-wheel-zoom.d.ts +1 -9
  968. package/modules/mouse-wheel-zoom.js +11 -1
  969. package/modules/mouse-wheel-zoom.src.d.ts +1 -9
  970. package/modules/mouse-wheel-zoom.src.js +1 -1
  971. package/modules/navigator.d.ts +1 -9
  972. package/modules/navigator.js +11 -1
  973. package/modules/navigator.src.d.ts +1 -9
  974. package/modules/navigator.src.js +29 -29
  975. package/modules/networkgraph.d.ts +1 -9
  976. package/modules/networkgraph.js +11 -1
  977. package/modules/networkgraph.src.d.ts +1 -9
  978. package/modules/networkgraph.src.js +16 -4
  979. package/modules/no-data-to-display.d.ts +1 -9
  980. package/modules/no-data-to-display.js +12 -1
  981. package/modules/no-data-to-display.src.d.ts +1 -9
  982. package/modules/no-data-to-display.src.js +1 -1
  983. package/modules/non-cartesian-zoom.d.ts +9 -0
  984. package/modules/non-cartesian-zoom.js +11 -0
  985. package/modules/non-cartesian-zoom.src.d.ts +9 -0
  986. package/modules/non-cartesian-zoom.src.js +427 -0
  987. package/modules/offline-exporting.d.ts +2 -90
  988. package/modules/offline-exporting.js +12 -1
  989. package/modules/offline-exporting.src.d.ts +2 -90
  990. package/modules/offline-exporting.src.js +355 -3380
  991. package/modules/organization.d.ts +1 -9
  992. package/modules/organization.js +11 -1
  993. package/modules/organization.src.d.ts +1 -9
  994. package/modules/organization.src.js +3 -3
  995. package/modules/parallel-coordinates.d.ts +1 -9
  996. package/modules/parallel-coordinates.js +11 -1
  997. package/modules/parallel-coordinates.src.d.ts +1 -9
  998. package/modules/parallel-coordinates.src.js +1 -1
  999. package/modules/pareto.d.ts +1 -9
  1000. package/modules/pareto.js +11 -1
  1001. package/modules/pareto.src.d.ts +1 -9
  1002. package/modules/pareto.src.js +1 -1
  1003. package/modules/pathfinder.d.ts +1 -9
  1004. package/modules/pathfinder.js +11 -1
  1005. package/modules/pathfinder.src.d.ts +1 -9
  1006. package/modules/pathfinder.src.js +1 -1
  1007. package/modules/pattern-fill.d.ts +1 -9
  1008. package/modules/pattern-fill.js +12 -1
  1009. package/modules/pattern-fill.src.d.ts +1 -9
  1010. package/modules/pattern-fill.src.js +1 -1
  1011. package/modules/pictorial.d.ts +1 -9
  1012. package/modules/pictorial.js +11 -1
  1013. package/modules/pictorial.src.d.ts +1 -9
  1014. package/modules/pictorial.src.js +1 -1
  1015. package/modules/pointandfigure.d.ts +1 -9
  1016. package/modules/pointandfigure.js +12 -1
  1017. package/modules/pointandfigure.src.d.ts +1 -9
  1018. package/modules/pointandfigure.src.js +1 -1
  1019. package/modules/price-indicator.d.ts +1 -9
  1020. package/modules/price-indicator.js +13 -1
  1021. package/modules/price-indicator.src.d.ts +1 -9
  1022. package/modules/price-indicator.src.js +1 -1
  1023. package/modules/pyramid3d.d.ts +1 -9
  1024. package/modules/pyramid3d.js +14 -1
  1025. package/modules/pyramid3d.src.d.ts +1 -9
  1026. package/modules/pyramid3d.src.js +1 -1
  1027. package/modules/renko.d.ts +1 -9
  1028. package/modules/renko.js +12 -1
  1029. package/modules/renko.src.d.ts +1 -9
  1030. package/modules/renko.src.js +1 -1
  1031. package/modules/sankey.d.ts +1 -9
  1032. package/modules/sankey.js +11 -1
  1033. package/modules/sankey.src.d.ts +1 -9
  1034. package/modules/sankey.src.js +3 -3
  1035. package/modules/series-label.d.ts +1 -9
  1036. package/modules/series-label.js +9 -1
  1037. package/modules/series-label.src.d.ts +1 -9
  1038. package/modules/series-label.src.js +1 -1
  1039. package/modules/series-on-point.d.ts +1 -9
  1040. package/modules/series-on-point.js +12 -1
  1041. package/modules/series-on-point.src.d.ts +1 -9
  1042. package/modules/series-on-point.src.js +6 -16
  1043. package/modules/solid-gauge.d.ts +1 -9
  1044. package/modules/solid-gauge.js +12 -1
  1045. package/modules/solid-gauge.src.d.ts +1 -9
  1046. package/modules/solid-gauge.src.js +27 -5
  1047. package/modules/sonification.d.ts +1 -9
  1048. package/modules/sonification.js +12 -1
  1049. package/modules/sonification.src.d.ts +1 -9
  1050. package/modules/sonification.src.js +45 -10
  1051. package/modules/static-scale.d.ts +1 -9
  1052. package/modules/static-scale.js +11 -1
  1053. package/modules/static-scale.src.d.ts +1 -9
  1054. package/modules/static-scale.src.js +14 -12
  1055. package/modules/stock-tools.d.ts +1 -9
  1056. package/modules/stock-tools.js +13 -1
  1057. package/modules/stock-tools.src.d.ts +1 -9
  1058. package/modules/stock-tools.src.js +37 -116
  1059. package/modules/stock.d.ts +1 -9
  1060. package/modules/stock.js +21 -1
  1061. package/modules/stock.src.d.ts +1 -9
  1062. package/modules/stock.src.js +233 -209
  1063. package/modules/streamgraph.d.ts +1 -9
  1064. package/modules/streamgraph.js +11 -1
  1065. package/modules/streamgraph.src.d.ts +1 -9
  1066. package/modules/streamgraph.src.js +1 -1
  1067. package/modules/sunburst.d.ts +1 -9
  1068. package/modules/sunburst.js +10 -1
  1069. package/modules/sunburst.src.d.ts +1 -9
  1070. package/modules/sunburst.src.js +9 -9
  1071. package/modules/textpath.d.ts +1 -9
  1072. package/modules/textpath.js +9 -1
  1073. package/modules/textpath.src.d.ts +1 -9
  1074. package/modules/textpath.src.js +3 -3
  1075. package/modules/tiledwebmap.d.ts +1 -9
  1076. package/modules/tiledwebmap.js +10 -2
  1077. package/modules/tiledwebmap.src.d.ts +1 -9
  1078. package/modules/tiledwebmap.src.js +1 -1
  1079. package/modules/tilemap.d.ts +1 -9
  1080. package/modules/tilemap.js +12 -1
  1081. package/modules/tilemap.src.d.ts +1 -9
  1082. package/modules/tilemap.src.js +1 -1
  1083. package/modules/timeline.d.ts +1 -9
  1084. package/modules/timeline.js +12 -1
  1085. package/modules/timeline.src.d.ts +1 -9
  1086. package/modules/timeline.src.js +1 -1
  1087. package/modules/treegraph.d.ts +1 -9
  1088. package/modules/treegraph.js +11 -1
  1089. package/modules/treegraph.src.d.ts +1 -9
  1090. package/modules/treegraph.src.js +16 -8
  1091. package/modules/treegrid.d.ts +1 -9
  1092. package/modules/treegrid.js +11 -1
  1093. package/modules/treegrid.src.d.ts +1 -9
  1094. package/modules/treegrid.src.js +190 -159
  1095. package/modules/treemap.d.ts +1 -9
  1096. package/modules/treemap.js +10 -1
  1097. package/modules/treemap.src.d.ts +1 -9
  1098. package/modules/treemap.src.js +7 -7
  1099. package/modules/variable-pie.d.ts +1 -9
  1100. package/modules/variable-pie.js +11 -1
  1101. package/modules/variable-pie.src.d.ts +1 -9
  1102. package/modules/variable-pie.src.js +1 -1
  1103. package/modules/variwide.d.ts +1 -9
  1104. package/modules/variwide.js +11 -1
  1105. package/modules/variwide.src.d.ts +1 -9
  1106. package/modules/variwide.src.js +18 -13
  1107. package/modules/vector.d.ts +1 -9
  1108. package/modules/vector.js +11 -1
  1109. package/modules/vector.src.d.ts +1 -9
  1110. package/modules/vector.src.js +1 -1
  1111. package/modules/venn.d.ts +1 -9
  1112. package/modules/venn.js +10 -1
  1113. package/modules/venn.src.d.ts +1 -9
  1114. package/modules/venn.src.js +5 -3
  1115. package/modules/windbarb.d.ts +1 -9
  1116. package/modules/windbarb.js +11 -1
  1117. package/modules/windbarb.src.d.ts +1 -9
  1118. package/modules/windbarb.src.js +1 -1
  1119. package/modules/wordcloud.d.ts +1 -9
  1120. package/modules/wordcloud.js +10 -1
  1121. package/modules/wordcloud.src.d.ts +1 -9
  1122. package/modules/wordcloud.src.js +89 -12
  1123. package/modules/xrange.d.ts +1 -9
  1124. package/modules/xrange.js +11 -1
  1125. package/modules/xrange.src.d.ts +1 -9
  1126. package/modules/xrange.src.js +3 -2
  1127. package/options/abands.d.ts +8 -0
  1128. package/options/abands.src.d.ts +8 -0
  1129. package/options/ao.d.ts +8 -0
  1130. package/options/ao.src.d.ts +8 -0
  1131. package/options/arcdiagram.d.ts +8 -0
  1132. package/options/arcdiagram.src.d.ts +8 -0
  1133. package/options/area.d.ts +9 -0
  1134. package/options/area.src.d.ts +9 -0
  1135. package/options/arearange.d.ts +9 -0
  1136. package/options/arearange.src.d.ts +9 -0
  1137. package/options/areaspline.d.ts +9 -0
  1138. package/options/areaspline.src.d.ts +9 -0
  1139. package/options/areasplinerange.d.ts +9 -0
  1140. package/options/areasplinerange.src.d.ts +9 -0
  1141. package/options/aroon.d.ts +8 -0
  1142. package/options/aroon.src.d.ts +8 -0
  1143. package/options/atr.d.ts +8 -0
  1144. package/options/atr.src.d.ts +8 -0
  1145. package/options/bellcurve.d.ts +8 -0
  1146. package/options/bellcurve.src.d.ts +8 -0
  1147. package/options/boxplot.d.ts +8 -0
  1148. package/options/boxplot.src.d.ts +8 -0
  1149. package/options/bullet.d.ts +8 -0
  1150. package/options/bullet.src.d.ts +8 -0
  1151. package/options/chaikin.d.ts +8 -0
  1152. package/options/chaikin.src.d.ts +8 -0
  1153. package/options/cmo.d.ts +8 -0
  1154. package/options/cmo.src.d.ts +8 -0
  1155. package/options/columnpyramid.d.ts +9 -0
  1156. package/options/columnpyramid.src.d.ts +9 -0
  1157. package/options/columnrange.d.ts +9 -0
  1158. package/options/columnrange.src.d.ts +9 -0
  1159. package/options/dmi.d.ts +8 -0
  1160. package/options/dmi.src.d.ts +8 -0
  1161. package/options/errorbar.d.ts +8 -0
  1162. package/options/errorbar.src.d.ts +8 -0
  1163. package/options/flags.d.ts +8 -0
  1164. package/options/flags.src.d.ts +8 -0
  1165. package/options/funnel.d.ts +8 -0
  1166. package/options/funnel.src.d.ts +8 -0
  1167. package/options/gauge.d.ts +8 -0
  1168. package/options/gauge.src.d.ts +8 -0
  1169. package/options/item.d.ts +8 -0
  1170. package/options/item.src.d.ts +8 -0
  1171. package/options/keltnerchannels.d.ts +8 -0
  1172. package/options/keltnerchannels.src.d.ts +8 -0
  1173. package/options/line.d.ts +9 -0
  1174. package/options/line.src.d.ts +9 -0
  1175. package/options/linearregressionangle.d.ts +8 -0
  1176. package/options/linearregressionangle.src.d.ts +8 -0
  1177. package/options/linearregressionintercept.d.ts +8 -0
  1178. package/options/linearregressionintercept.src.d.ts +8 -0
  1179. package/options/map.d.ts +8 -0
  1180. package/options/map.src.d.ts +8 -0
  1181. package/options/mfi.d.ts +8 -0
  1182. package/options/mfi.src.d.ts +8 -0
  1183. package/options/natr.d.ts +8 -0
  1184. package/options/natr.src.d.ts +8 -0
  1185. package/options/ohlc.d.ts +8 -0
  1186. package/options/ohlc.src.d.ts +8 -0
  1187. package/options/packedbubble.d.ts +8 -0
  1188. package/options/packedbubble.src.d.ts +8 -0
  1189. package/options/pictorial.d.ts +8 -0
  1190. package/options/pictorial.src.d.ts +8 -0
  1191. package/options/pointandfigure.d.ts +8 -0
  1192. package/options/pointandfigure.src.d.ts +8 -0
  1193. package/options/polygon.d.ts +9 -0
  1194. package/options/polygon.src.d.ts +9 -0
  1195. package/options/ppo.d.ts +8 -0
  1196. package/options/ppo.src.d.ts +8 -0
  1197. package/options/psar.d.ts +8 -0
  1198. package/options/psar.src.d.ts +8 -0
  1199. package/options/pyramid.d.ts +8 -0
  1200. package/options/pyramid.src.d.ts +8 -0
  1201. package/options/renko.d.ts +8 -0
  1202. package/options/renko.src.d.ts +8 -0
  1203. package/options/roc.d.ts +8 -0
  1204. package/options/roc.src.d.ts +8 -0
  1205. package/options/sankey.d.ts +8 -0
  1206. package/options/sankey.src.d.ts +8 -0
  1207. package/options/scatter.d.ts +9 -0
  1208. package/options/scatter.src.d.ts +9 -0
  1209. package/options/series.d.ts +9 -0
  1210. package/options/series.src.d.ts +9 -0
  1211. package/options/sma.d.ts +8 -0
  1212. package/options/sma.src.d.ts +8 -0
  1213. package/options/solidgauge.d.ts +14 -0
  1214. package/options/solidgauge.src.d.ts +14 -0
  1215. package/options/spline.d.ts +9 -0
  1216. package/options/spline.src.d.ts +9 -0
  1217. package/options/stochastic.d.ts +8 -0
  1218. package/options/stochastic.src.d.ts +8 -0
  1219. package/options/tema.d.ts +8 -0
  1220. package/options/tema.src.d.ts +8 -0
  1221. package/options/tiledwebmap.d.ts +8 -0
  1222. package/options/tiledwebmap.src.d.ts +8 -0
  1223. package/options/timeline.d.ts +8 -0
  1224. package/options/timeline.src.d.ts +8 -0
  1225. package/options/treegraph.d.ts +8 -0
  1226. package/options/treegraph.src.d.ts +8 -0
  1227. package/options/trix.d.ts +8 -0
  1228. package/options/trix.src.d.ts +8 -0
  1229. package/options/variablepie.d.ts +8 -0
  1230. package/options/variablepie.src.d.ts +8 -0
  1231. package/options/variwide.d.ts +8 -0
  1232. package/options/variwide.src.d.ts +8 -0
  1233. package/options/vbp.d.ts +8 -0
  1234. package/options/vbp.src.d.ts +8 -0
  1235. package/options/vector.d.ts +9 -0
  1236. package/options/vector.src.d.ts +9 -0
  1237. package/options/venn.d.ts +8 -0
  1238. package/options/venn.src.d.ts +8 -0
  1239. package/options/vwap.d.ts +8 -0
  1240. package/options/vwap.src.d.ts +8 -0
  1241. package/options/windbarb.d.ts +9 -0
  1242. package/options/windbarb.src.d.ts +9 -0
  1243. package/options/wma.d.ts +8 -0
  1244. package/options/wma.src.d.ts +8 -0
  1245. package/options/wordcloud.d.ts +8 -0
  1246. package/options/wordcloud.src.d.ts +8 -0
  1247. package/options/zigzag.d.ts +8 -0
  1248. package/options/zigzag.src.d.ts +8 -0
  1249. package/package.json +1 -1
  1250. package/standalone-navigator.js +11 -2
  1251. package/standalone-navigator.src.js +312 -206
  1252. package/themes/adaptive.d.ts +18 -0
  1253. package/themes/adaptive.js +130 -0
  1254. package/themes/adaptive.src.d.ts +18 -0
  1255. package/themes/adaptive.src.js +1122 -0
  1256. package/themes/avocado.d.ts +1 -9
  1257. package/themes/avocado.js +9 -1
  1258. package/themes/avocado.src.d.ts +1 -9
  1259. package/themes/avocado.src.js +1 -1
  1260. package/themes/brand-dark.d.ts +1 -9
  1261. package/themes/brand-dark.js +9 -1
  1262. package/themes/brand-dark.src.d.ts +1 -9
  1263. package/themes/brand-dark.src.js +1 -1
  1264. package/themes/brand-light.d.ts +1 -9
  1265. package/themes/brand-light.js +9 -1
  1266. package/themes/brand-light.src.d.ts +1 -9
  1267. package/themes/brand-light.src.js +1 -1
  1268. package/themes/dark-blue.d.ts +1 -9
  1269. package/themes/dark-blue.js +9 -1
  1270. package/themes/dark-blue.src.d.ts +1 -9
  1271. package/themes/dark-blue.src.js +1 -1
  1272. package/themes/dark-green.d.ts +1 -9
  1273. package/themes/dark-green.js +9 -1
  1274. package/themes/dark-green.src.d.ts +1 -9
  1275. package/themes/dark-green.src.js +1 -1
  1276. package/themes/dark-unica.d.ts +1 -9
  1277. package/themes/dark-unica.js +9 -1
  1278. package/themes/dark-unica.src.d.ts +1 -9
  1279. package/themes/dark-unica.src.js +1 -1
  1280. package/themes/gray.d.ts +1 -9
  1281. package/themes/gray.js +9 -1
  1282. package/themes/gray.src.d.ts +1 -9
  1283. package/themes/gray.src.js +1 -1
  1284. package/themes/grid-light.d.ts +1 -9
  1285. package/themes/grid-light.js +9 -1
  1286. package/themes/grid-light.src.d.ts +1 -9
  1287. package/themes/grid-light.src.js +1 -1
  1288. package/themes/grid.d.ts +1 -9
  1289. package/themes/grid.js +9 -1
  1290. package/themes/grid.src.d.ts +1 -9
  1291. package/themes/grid.src.js +1 -1
  1292. package/themes/high-contrast-dark.d.ts +1 -9
  1293. package/themes/high-contrast-dark.js +9 -1
  1294. package/themes/high-contrast-dark.src.d.ts +1 -9
  1295. package/themes/high-contrast-dark.src.js +1 -1
  1296. package/themes/high-contrast-light.d.ts +1 -9
  1297. package/themes/high-contrast-light.js +9 -1
  1298. package/themes/high-contrast-light.src.d.ts +1 -9
  1299. package/themes/high-contrast-light.src.js +1 -1
  1300. package/themes/sand-signika.d.ts +1 -9
  1301. package/themes/sand-signika.js +9 -1
  1302. package/themes/sand-signika.src.d.ts +1 -9
  1303. package/themes/sand-signika.src.js +1 -1
  1304. package/themes/skies.d.ts +1 -9
  1305. package/themes/skies.js +9 -1
  1306. package/themes/skies.src.d.ts +1 -9
  1307. package/themes/skies.src.js +1 -1
  1308. package/themes/sunset.d.ts +1 -9
  1309. package/themes/sunset.js +9 -1
  1310. package/themes/sunset.src.d.ts +1 -9
  1311. package/themes/sunset.src.js +1 -1
@@ -1,10 +1,16 @@
1
1
  /**
2
- * @license Highcharts JS v12.2.0 (2025-04-07)
3
- * @module highcharts/highcharts
2
+ * @license Highcharts Gantt JS v12.4.0 (2025-09-04)
3
+ * @module highcharts/highcharts-gantt
4
4
  *
5
- * (c) 2009-2025 Torstein Honsi
5
+ * (c) 2017-2025 Highsoft AS
6
6
  *
7
7
  * License: www.highcharts.com/license
8
+ *
9
+ * Authors:
10
+ * - Lars Cabrera
11
+ * - Torstein Honsi
12
+ * - Jon Arild Nygard
13
+ * - Oystein Moseng
8
14
  */
9
15
  (function webpackUniversalModuleDefinition(root, factory) {
10
16
  if(typeof exports === 'object' && typeof module === 'object')
@@ -74,7 +80,7 @@ var Globals;
74
80
  * Constants
75
81
  *
76
82
  * */
77
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.2.0', Globals.win = (typeof window !== 'undefined' ?
83
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.4.0', Globals.win = (typeof window !== 'undefined' ?
78
84
  window :
79
85
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
80
86
  Globals.doc = Globals.win.document, Globals.svg = !!Globals.doc?.createElementNS?.(Globals.SVG_NS, 'svg')?.createSVGRect, Globals.pageLang = Globals.doc?.documentElement?.closest('[lang]')?.lang, Globals.userAgent = Globals.win.navigator?.userAgent || '', Globals.isChrome = Globals.win.chrome, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.marginNames = [
@@ -2630,6 +2636,10 @@ const ChartDefaults = {
2630
2636
  * panning action is finished, the axes will adjust to their actual
2631
2637
  * settings.
2632
2638
  *
2639
+ * **Note:** For non-cartesian series, the only supported panning type
2640
+ * is `xy`, as zooming in a single direction is not applicable due to
2641
+ * the radial nature of the coordinate system.
2642
+ *
2633
2643
  * @sample {highcharts} highcharts/chart/panning-type
2634
2644
  * Zooming and xy panning
2635
2645
  *
@@ -2955,11 +2965,12 @@ const ChartDefaults = {
2955
2965
  * others series in a stack. The shadow can be an object configuration
2956
2966
  * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`.
2957
2967
  *
2958
- * @sample highcharts/chart/seriesgroupshadow/ Shadow
2968
+ * @sample highcharts/chart/seriesgroupshadow/
2969
+ * Shadow
2959
2970
  *
2960
2971
  * @type {boolean|Highcharts.ShadowOptionsObject}
2961
2972
  * @default false
2962
- * @apioption chart.shadow
2973
+ * @apioption chart.seriesGroupShadow
2963
2974
  */
2964
2975
  /**
2965
2976
  * Whether to apply a drop shadow to the outer chart area. Requires
@@ -3169,6 +3180,11 @@ const ChartDefaults = {
3169
3180
  /**
3170
3181
  * Chart zooming options.
3171
3182
  * @since 10.2.1
3183
+ *
3184
+ * @sample highcharts/plotoptions/sankey-node-color
3185
+ * Zooming in sankey series
3186
+ * @sample highcharts/series-treegraph/link-types
3187
+ * Zooming in treegraph series
3172
3188
  */
3173
3189
  zooming: {
3174
3190
  /**
@@ -3191,6 +3207,10 @@ const ChartDefaults = {
3191
3207
  * Decides in what dimensions the user can zoom by dragging the mouse.
3192
3208
  * Can be one of `x`, `y` or `xy`.
3193
3209
  *
3210
+ * **Note:** For non-cartesian series, the only supported zooming type
3211
+ * is `xy`, as zooming in a single direction is not applicable due to
3212
+ * the radial nature of the coordinate system.
3213
+ *
3194
3214
  * @declare Highcharts.OptionsChartZoomingTypeValue
3195
3215
  * @type {string}
3196
3216
  * @default {highcharts} undefined
@@ -3610,7 +3630,7 @@ class TimeBase {
3610
3630
  update(options = {}) {
3611
3631
  this.dTLCache = {};
3612
3632
  this.options = options = TimeBase_merge(true, this.options, options);
3613
- const { timezoneOffset, useUTC } = options;
3633
+ const { timezoneOffset, useUTC, locale } = options;
3614
3634
  // Allow using a different Date class
3615
3635
  this.Date = options.Date || TimeBase_win.Date || Date;
3616
3636
  // Assign the time zone. Handle the legacy, deprecated `useUTC` option.
@@ -3630,6 +3650,10 @@ class TimeBase {
3630
3650
  this.variableTimezone = timezone !== 'UTC' &&
3631
3651
  timezone?.indexOf('Etc/GMT') !== 0;
3632
3652
  this.timezone = timezone;
3653
+ // Update locale.
3654
+ if (this.lang && locale) {
3655
+ this.lang.locale = locale;
3656
+ }
3633
3657
  // Assign default time formats from locale strings
3634
3658
  ['months', 'shortMonths', 'weekdays', 'shortWeekdays'].forEach((name) => {
3635
3659
  const isMonth = /months/i.test(name), isShort = /short/.test(name), options = {
@@ -4570,6 +4594,9 @@ const defaultOptions = {
4570
4594
  * setup uses `Highcharts.setOptions` to make the options apply to all
4571
4595
  * charts in the same page.
4572
4596
  *
4597
+ * Some language options, like `months` and `weekdays`, are only used
4598
+ * with non-locale-aware date formats.
4599
+ *
4573
4600
  * ```js
4574
4601
  * Highcharts.setOptions({
4575
4602
  * lang: {
@@ -4619,7 +4646,7 @@ const defaultOptions = {
4619
4646
  * An array containing the months names. Corresponds to the `%B` format
4620
4647
  * in `Highcharts.dateFormat()`. Defaults to 'undefined',
4621
4648
  * meaning the default month names are used according to the
4622
- * `lang.locale` setting.
4649
+ * `lang.locale` or browser settings.
4623
4650
  *
4624
4651
  * @type {Array<string>}
4625
4652
  */
@@ -4634,23 +4661,25 @@ const defaultOptions = {
4634
4661
  * An array containing the months names in abbreviated form. Corresponds
4635
4662
  * to the `%b` format in `Highcharts.dateFormat()`. Defaults to
4636
4663
  * 'undefined', meaning the default short month names are used according
4637
- * to the `lang.locale` setting.
4664
+ * to the `lang.locale` or browser settings.
4638
4665
  *
4639
4666
  * @type {Array<string>}
4640
4667
  */
4641
4668
  shortMonths: void 0,
4642
4669
  /**
4643
- * An array containing the weekday names. Defaults to 'undefined',
4644
- * meaning the default weekday names are used according to the
4645
- * `lang.locale` setting.
4670
+ * An array containing the weekday names. Corresponds
4671
+ * to the `%A` format in `Highcharts.dateFormat()`. Defaults to
4672
+ * 'undefined', meaning the default weekday names are used according to
4673
+ * the `lang.locale` or browser settings.
4646
4674
  *
4647
4675
  * @type {Array<string>}
4648
4676
  */
4649
4677
  weekdays: void 0,
4650
4678
  /**
4651
- * Short week days, starting Sunday. Defaults to 'undefined', meaning
4679
+ * Short week days, starting Sunday. Corresponds to the `%a` format in
4680
+ * `Highcharts.dateFormat()`. Defaults to 'undefined', meaning
4652
4681
  * the default short weekday names are used according to the
4653
- * `lang.locale` setting.
4682
+ * `lang.locale` or browser settings.
4654
4683
  *
4655
4684
  * @sample highcharts/lang/shortweekdays/
4656
4685
  * Finnish two-letter abbreviations
@@ -6213,6 +6242,10 @@ const defaultOptions = {
6213
6242
  * @since 3.0
6214
6243
  */
6215
6244
  style: {
6245
+ /**
6246
+ * @ignore
6247
+ */
6248
+ color: "#333333" /* Palette.neutralColor80 */,
6216
6249
  /**
6217
6250
  * @ignore
6218
6251
  */
@@ -7481,7 +7514,7 @@ const isStringColor = (color) => Color_isString(color) && !!color && color !== '
7481
7514
  * @name Highcharts.Color
7482
7515
  *
7483
7516
  * @param {Highcharts.ColorType} input
7484
- * The input color in either rgba or hex format
7517
+ * The input color.
7485
7518
  */
7486
7519
  class Color {
7487
7520
  /* *
@@ -7495,7 +7528,7 @@ class Color {
7495
7528
  * @function Highcharts.Color.parse
7496
7529
  *
7497
7530
  * @param {Highcharts.ColorType} [input]
7498
- * The input color in either rgba or hex format.
7531
+ * The input color.
7499
7532
  *
7500
7533
  * @return {Highcharts.Color}
7501
7534
  * Color instance.
@@ -7755,11 +7788,7 @@ Color.None = new Color('');
7755
7788
  *
7756
7789
  * */
7757
7790
  /**
7758
- * A valid color to be parsed and handled by Highcharts. Highcharts internally
7759
- * supports hex colors like `#ffffff`, rgb colors like `rgb(255,255,255)` and
7760
- * rgba colors like `rgba(255,255,255,1)`. Other colors may be supported by the
7761
- * browsers and displayed correctly, but Highcharts is not able to process them
7762
- * and apply concepts like opacity and brightening.
7791
+ * A valid color to be parsed and handled by Highcharts.
7763
7792
  *
7764
7793
  * @typedef {string} Highcharts.ColorString
7765
7794
  */
@@ -7863,7 +7892,7 @@ Color.None = new Color('');
7863
7892
  * @function Highcharts.color
7864
7893
  *
7865
7894
  * @param {Highcharts.ColorType} input
7866
- * The input color in either rgba or hex format
7895
+ * The input color.
7867
7896
  *
7868
7897
  * @return {Highcharts.Color}
7869
7898
  * Color instance
@@ -8707,7 +8736,7 @@ class AST {
8707
8736
  trustedTypesPolicy.createHTML(markup) :
8708
8737
  markup, 'text/html');
8709
8738
  }
8710
- catch (e) {
8739
+ catch {
8711
8740
  // There are two cases where this fails:
8712
8741
  // 1. IE9 and PhantomJS, where the DOMParser only supports parsing
8713
8742
  // XML
@@ -8800,9 +8829,9 @@ AST.allowedAttributes = [
8800
8829
  'cx',
8801
8830
  'cy',
8802
8831
  'd',
8832
+ 'disabled',
8803
8833
  'dx',
8804
8834
  'dy',
8805
- 'disabled',
8806
8835
  'fill',
8807
8836
  'filterUnits',
8808
8837
  'flood-color',
@@ -8826,22 +8855,22 @@ AST.allowedAttributes = [
8826
8855
  'radius',
8827
8856
  'refX',
8828
8857
  'refY',
8858
+ 'result',
8829
8859
  'role',
8860
+ 'rowspan',
8830
8861
  'scope',
8831
8862
  'slope',
8832
8863
  'src',
8833
8864
  'startOffset',
8834
8865
  'stdDeviation',
8835
- 'stroke',
8836
8866
  'stroke-linecap',
8837
8867
  'stroke-width',
8868
+ 'stroke',
8838
8869
  'style',
8839
- 'tableValues',
8840
- 'result',
8841
- 'rowspan',
8842
8870
  'summary',
8843
- 'target',
8844
8871
  'tabindex',
8872
+ 'tableValues',
8873
+ 'target',
8845
8874
  'text-align',
8846
8875
  'text-anchor',
8847
8876
  'textAnchor',
@@ -8898,6 +8927,7 @@ AST.allowedReferences = [
8898
8927
  * @type {Array<string>}
8899
8928
  */
8900
8929
  AST.allowedTags = [
8930
+ '#text',
8901
8931
  'a',
8902
8932
  'abbr',
8903
8933
  'b',
@@ -8922,10 +8952,10 @@ AST.allowedTags = [
8922
8952
  'feFuncG',
8923
8953
  'feFuncR',
8924
8954
  'feGaussianBlur',
8925
- 'feMorphology',
8926
- 'feOffset',
8927
8955
  'feMerge',
8928
8956
  'feMergeNode',
8957
+ 'feMorphology',
8958
+ 'feOffset',
8929
8959
  'filter',
8930
8960
  'h1',
8931
8961
  'h2',
@@ -8954,18 +8984,17 @@ AST.allowedTags = [
8954
8984
  'sup',
8955
8985
  'svg',
8956
8986
  'table',
8987
+ 'tbody',
8988
+ 'td',
8957
8989
  'text',
8958
8990
  'textPath',
8991
+ 'th',
8959
8992
  'thead',
8960
8993
  'title',
8961
- 'tbody',
8962
- 'tspan',
8963
- 'td',
8964
- 'th',
8965
8994
  'tr',
8995
+ 'tspan',
8966
8996
  'u',
8967
- 'ul',
8968
- '#text'
8997
+ 'ul'
8969
8998
  ];
8970
8999
  AST.emptyHTML = emptyHTML;
8971
9000
  /**
@@ -9161,7 +9190,7 @@ function format(str = '', ctx, owner) {
9161
9190
  // The sub expression regex is the same as the top expression regex,
9162
9191
  // but except parens and block helpers (#), and surrounded by parens
9163
9192
  // instead of curly brackets.
9164
- subRegex = /\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = owner?.options?.lang || Templating_defaultOptions.lang, time = owner?.time || Templating_defaultTime, numberFormatter = owner?.numberFormatter || numberFormat;
9193
+ subRegex = /\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = owner?.options?.lang || Templating_defaultOptions.lang, time = owner?.time || Templating_defaultTime, numberFormatter = owner?.numberFormatter || numberFormat.bind(owner);
9165
9194
  /*
9166
9195
  * Get a literal or variable value inside a template expression. May be
9167
9196
  * extended with other types like string or null if needed, but keep it
@@ -9296,9 +9325,11 @@ function format(str = '', ctx, owner) {
9296
9325
  [expression] : expression.split(':');
9297
9326
  replacement = resolveProperty(valueAndFormat.shift() || '');
9298
9327
  // Format the replacement
9299
- if (valueAndFormat.length && typeof replacement === 'number') {
9328
+ const isFloat = replacement % 1 !== 0;
9329
+ if (typeof replacement === 'number' &&
9330
+ (valueAndFormat.length || isFloat)) {
9300
9331
  const segment = valueAndFormat.join(':');
9301
- if (floatRegex.test(segment)) { // Float
9332
+ if (floatRegex.test(segment) || isFloat) { // Float
9302
9333
  const decimals = parseInt((segment.match(decRegex) || ['', '-1'])[1], 10);
9303
9334
  if (replacement !== null) {
9304
9335
  replacement = numberFormatter(replacement, decimals, lang.decimalPoint, segment.indexOf(',') > -1 ? lang.thousandsSep : '');
@@ -9393,8 +9424,7 @@ function numberFormat(number, decimals, decimalPoint, thousandsSep) {
9393
9424
  options.useGrouping = false;
9394
9425
  }
9395
9426
  const hasSeparators = thousandsSep || decimalPoint, locale = hasSeparators ?
9396
- 'en' :
9397
- (this?.locale || lang.locale || Templating_pageLang), cacheKey = JSON.stringify(options) + locale, nf = numberFormatCache[cacheKey] ?? (numberFormatCache[cacheKey] = new Intl.NumberFormat(locale, options));
9427
+ 'en' : (this?.locale || lang.locale || Templating_pageLang), cacheKey = JSON.stringify(options) + locale, nf = numberFormatCache[cacheKey] ?? (numberFormatCache[cacheKey] = new Intl.NumberFormat(locale, options));
9398
9428
  ret = nf.format(number);
9399
9429
  // If thousandsSep or decimalPoint are set, fall back to using English
9400
9430
  // format with string replacement for the separators.
@@ -10718,8 +10748,8 @@ class SVGElement {
10718
10748
  toggleTextShadowShim('');
10719
10749
  }
10720
10750
  }
10721
- catch (e) {
10722
- '';
10751
+ catch {
10752
+ // Ignore error
10723
10753
  }
10724
10754
  // If the bBox is not set, the try-catch block above failed. The
10725
10755
  // other condition is for Opera that returns a width of
@@ -11624,7 +11654,8 @@ class SVGLabel extends SVG_SVGElement {
11624
11654
  * Constructor
11625
11655
  *
11626
11656
  * */
11627
- constructor(renderer, str, x, y, shape, anchorX, anchorY, useHTML, baseline, className) {
11657
+ constructor(renderer, str, x, y, shape, // @todo (SymbolKey|string),
11658
+ anchorX, anchorY, useHTML, baseline, className) {
11628
11659
  super(renderer, 'g');
11629
11660
  this.paddingLeftSetter = this.paddingSetter;
11630
11661
  this.paddingRightSetter = this.paddingSetter;
@@ -11957,10 +11988,18 @@ class SVGLabel extends SVG_SVGElement {
11957
11988
  // Force animation even when setting to the same value (#7898)
11958
11989
  this['forceAnimate:x'] = true;
11959
11990
  }
11991
+ if (this.anchorX) {
11992
+ // #22907, force anchorX to animate after x set
11993
+ this['forceAnimate:anchorX'] = true;
11994
+ }
11960
11995
  this.xSetting = Math.round(value);
11961
11996
  this.attr('translateX', this.xSetting);
11962
11997
  }
11963
11998
  ySetter(value) {
11999
+ if (this.anchorY) {
12000
+ // #22907, force anchorY to animate after y set
12001
+ this['forceAnimate:anchorY'] = true;
12002
+ }
11964
12003
  this.ySetting = this.y = Math.round(value);
11965
12004
  this.attr('translateY', this.ySetting);
11966
12005
  }
@@ -12627,8 +12666,8 @@ class TextBuilder {
12627
12666
  lengths[end] = startAt +
12628
12667
  parentNode.getSubStringLength(0, words ? end + 1 : end);
12629
12668
  }
12630
- catch (e) {
12631
- '';
12669
+ catch {
12670
+ // Ignore error
12632
12671
  }
12633
12672
  }
12634
12673
  }
@@ -12880,7 +12919,7 @@ class SVGRenderer {
12880
12919
  this.url = this.getReferenceURL();
12881
12920
  // Add description
12882
12921
  const desc = this.createElement('desc').add();
12883
- desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.2.0'));
12922
+ desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.4.0'));
12884
12923
  this.defs = this.createElement('defs').add();
12885
12924
  this.allowHTML = allowHTML;
12886
12925
  this.forExport = forExport;
@@ -13216,6 +13255,9 @@ class SVGRenderer {
13216
13255
  * The contrast color, either `#000000` or `#FFFFFF`.
13217
13256
  */
13218
13257
  getContrast(color) {
13258
+ if (color === 'transparent') {
13259
+ return '#000000';
13260
+ }
13219
13261
  // #6216, #17273
13220
13262
  const rgba256 = Color_Color.parse(color).rgba,
13221
13263
  // For each rgb channel, compute the luminosity based on all
@@ -14016,15 +14058,15 @@ class SVGRenderer {
14016
14058
  *
14017
14059
  * @function Highcharts.SVGRenderer#fontMetrics
14018
14060
  *
14019
- * @param {Highcharts.SVGElement|Highcharts.SVGDOMElement|number} [element]
14020
- * The element to inspect for a current font size. If a number is
14021
- * given, it's used as a fall back for direct font size in pixels.
14061
+ * @param {Highcharts.SVGElement|Highcharts.SVGDOMElement|number} ref
14062
+ * The element to inspect for a current font size. If a number is given,
14063
+ * it's used as a fall back for direct font size in pixels.
14022
14064
  *
14023
14065
  * @return {Highcharts.FontMetricsObject}
14024
- * The font metrics.
14066
+ * The font metrics.
14025
14067
  */
14026
- fontMetrics(element) {
14027
- const f = SVGRenderer_pInt(SVG_SVGElement.prototype.getStyle.call(element, 'font-size') || 0);
14068
+ fontMetrics(ref) {
14069
+ const f = SVGRenderer_isNumber(ref) ? ref : SVGRenderer_pInt((SVG_SVGElement.prototype.getStyle.call(ref, 'font-size') || 0));
14028
14070
  // Empirical values found by comparing font size and bounding box
14029
14071
  // height. Applies to the default font family.
14030
14072
  // https://jsfiddle.net/highcharts/7xvn7/
@@ -14637,10 +14679,10 @@ const { attr: HTMLElement_attr, css: HTMLElement_css, createElement: HTMLElement
14637
14679
  * @private
14638
14680
  */
14639
14681
  function commonSetter(value, key, elem) {
14640
- const style = this.div?.style || elem.style;
14682
+ const style = this.div?.style;
14641
14683
  SVG_SVGElement.prototype[`${key}Setter`].call(this, value, key, elem);
14642
14684
  if (style) {
14643
- style[key] = value;
14685
+ elem.style[key] = style[key] = value;
14644
14686
  }
14645
14687
  }
14646
14688
  /**
@@ -14685,6 +14727,10 @@ const decorateSVGGroup = (g, container) => {
14685
14727
  div.style[key === 'translateX' ? 'left' : 'top'] = `${value}px`;
14686
14728
  g.doTransform = true;
14687
14729
  };
14730
+ g.scaleXSetter = g.scaleYSetter = (value, key) => {
14731
+ g[key] = value;
14732
+ g.doTransform = true;
14733
+ };
14688
14734
  g.opacitySetter = g.visibilitySetter = commonSetter;
14689
14735
  // Extend the parent group's css function by updating the parallel div
14690
14736
  // counterpart with the same style.
@@ -14879,7 +14925,8 @@ class HTMLElement extends SVG_SVGElement {
14879
14925
  // Calling offsetWidth affects rendering time as it forces layout
14880
14926
  // (#7656).
14881
14927
  if (textWidth !== oldTextWidth) { // #983, #1254
14882
- const textPxLength = getTextPxLength(), textWidthNum = textWidth || 0, willOverWrap = element.style.textOverflow === '' &&
14928
+ const textPxLength = getTextPxLength(), textWidthNum = textWidth || 0, willOverWrap = !renderer.styledMode &&
14929
+ element.style.textOverflow === '' &&
14883
14930
  element.style.webkitLineClamp;
14884
14931
  if ((textWidthNum > oldTextWidth ||
14885
14932
  textPxLength > textWidthNum ||
@@ -15772,14 +15819,6 @@ var AxisDefaults;
15772
15819
  * @context Highcharts.Axis
15773
15820
  * @apioption xAxis.events.pointInBreak
15774
15821
  */
15775
- /**
15776
- * An event fired when a point is outside a break after zoom.
15777
- *
15778
- * @type {Highcharts.AxisPointBreakEventCallbackFunction}
15779
- * @product highcharts highstock gantt
15780
- * @context Highcharts.Axis
15781
- * @apioption xAxis.events.pointBreakOut
15782
- */
15783
15822
  /**
15784
15823
  * Fires when the minimum and maximum is set for the axis, either by
15785
15824
  * calling the `.setExtremes()` method or by selecting an area in the
@@ -16850,6 +16889,10 @@ var AxisDefaults;
16850
16889
  * overrides the default behaviour of [tickPixelInterval](
16851
16890
  * #xAxis.tickPixelInterval) and [tickInterval](#xAxis.tickInterval).
16852
16891
  *
16892
+ * Note: When working with date-time axes, be aware of time zone
16893
+ * handling. See the [documentation on time options](https://www.highcharts.com/docs/chart-concepts/axes#datetime)
16894
+ * for best practices.
16895
+ *
16853
16896
  * @see [tickPositioner](#xAxis.tickPositioner)
16854
16897
  *
16855
16898
  * @sample {highcharts} highcharts/xaxis/tickpositions-tickpositioner/
@@ -17937,6 +17980,7 @@ var AxisDefaults;
17937
17980
  * @default {highcharts} Values
17938
17981
  * @default {highstock} undefined
17939
17982
  * @product highcharts highstock gantt
17983
+ * @apioption yAxis.title.text
17940
17984
  */
17941
17985
  },
17942
17986
  /**
@@ -18307,7 +18351,7 @@ class Tick {
18307
18351
  // position, use that. If not, use the general format.
18308
18352
  if (axis.dateTime) {
18309
18353
  if (tickPositionInfo) {
18310
- dateTimeLabelFormats = chart.time.resolveDTLFormat(options.dateTimeLabelFormats[(!options.grid &&
18354
+ dateTimeLabelFormats = chart.time.resolveDTLFormat(options.dateTimeLabelFormats[(!options.grid?.enabled &&
18311
18355
  tickPositionInfo.higherRanks[pos]) ||
18312
18356
  tickPositionInfo.unitName]);
18313
18357
  dateTimeLabelFormat = dateTimeLabelFormats.main;
@@ -19426,7 +19470,7 @@ class Axis {
19426
19470
  }
19427
19471
  const minPixelPadding = axis.minPixelPadding, doPostTranslate = (axis.isOrdinal ||
19428
19472
  axis.brokenAxis?.hasBreaks ||
19429
- (axis.logarithmic && handleLog)) && axis.lin2val;
19473
+ (axis.logarithmic && handleLog)) && !!axis.lin2val;
19430
19474
  let sign = 1, cvsOffset = 0, localA = old && axis.old ? axis.old.transA : axis.transA, returnValue = 0;
19431
19475
  if (!localA) {
19432
19476
  localA = axis.transA;
@@ -20988,7 +21032,8 @@ class Axis {
20988
21032
  if (cssWidth !== void 0) {
20989
21033
  return parseInt(String(cssWidth), 10);
20990
21034
  }
20991
- if (marginLeft) {
21035
+ // Skip marginLeft for opposite axis to avoid label cutoff, #22821
21036
+ if (!this.opposite && marginLeft) {
20992
21037
  return marginLeft - chart.spacing[3];
20993
21038
  }
20994
21039
  }
@@ -21703,7 +21748,7 @@ class Axis {
21703
21748
  axis.plotLinesAndBandsGroups[plotGroup].destroy();
21704
21749
  }
21705
21750
  // Delete all properties and fall back to the prototype.
21706
- Axis_objectEach(axis, function (val, key) {
21751
+ Axis_objectEach(axis, function (_val, key) {
21707
21752
  if (axis.getKeepProps().indexOf(key) === -1) {
21708
21753
  delete axis[key];
21709
21754
  }
@@ -22986,7 +23031,7 @@ class PlotLineOrBand {
22986
23031
  // Common for lines and bands. Add events only if they were not added
22987
23032
  // before.
22988
23033
  if (!this.eventsAdded && events) {
22989
- PlotLineOrBand_objectEach(events, (event, eventType) => {
23034
+ PlotLineOrBand_objectEach(events, (_event, eventType) => {
22990
23035
  svgElem?.on(eventType, (e) => {
22991
23036
  events[eventType].apply(this, [e]);
22992
23037
  });
@@ -23060,6 +23105,11 @@ class PlotLineOrBand {
23060
23105
  });
23061
23106
  if (!axis.chart.styledMode) {
23062
23107
  label.css(PlotLineOrBand_merge({
23108
+ // To allow theming, and in lack of a general place to set
23109
+ // default options for plot lines and bands, default to the
23110
+ // title color. If we expose the palette, we should use that
23111
+ // instead.
23112
+ color: axis.chart.options.title?.style?.color,
23063
23113
  fontSize: '0.8em',
23064
23114
  textOverflow: (isBand && !inside) ? '' : 'ellipsis'
23065
23115
  }, optionsLabel.style));
@@ -23592,7 +23642,7 @@ class PlotLineOrBand {
23592
23642
  * @apioption xAxis.plotLines.zIndex
23593
23643
  */
23594
23644
  /**
23595
- * Text labels for the plot bands
23645
+ * Text labels for the plot lines
23596
23646
  *
23597
23647
  * @apioption xAxis.plotLines.label
23598
23648
  */
@@ -23610,6 +23660,14 @@ class PlotLineOrBand {
23610
23660
  * @since 2.1
23611
23661
  * @apioption xAxis.plotLines.label.align
23612
23662
  */
23663
+ /**
23664
+ * Whether or not the label can be hidden if it overlaps with another label.
23665
+ *
23666
+ * @type {boolean}
23667
+ * @default undefined
23668
+ * @since 11.4.8
23669
+ * @apioption xAxis.plotBands.label.allowOverlap
23670
+ */
23613
23671
  /**
23614
23672
  * Whether to hide labels that are outside the plot area.
23615
23673
  *
@@ -23987,7 +24045,9 @@ class Tooltip {
23987
24045
  // Use the average position for multiple points
23988
24046
  ret = [chartX - plotLeft, chartY - plotTop];
23989
24047
  }
23990
- return ret.map(Math.round);
24048
+ const params = { point: points[0], ret };
24049
+ Tooltip_fireEvent(this, 'getAnchor', params);
24050
+ return params.ret.map(Math.round);
23991
24051
  }
23992
24052
  /**
23993
24053
  * Get the CSS class names for the tooltip's label. Styles the label
@@ -25264,6 +25324,15 @@ class Point {
25264
25324
  * @name Highcharts.Point#shapeArgs
25265
25325
  * @type {Readonly<Highcharts.SVGAttributes>|undefined}
25266
25326
  */
25327
+ /**
25328
+ * Defines the tooltip's position for a data point in a chart. It is an
25329
+ * array of numbers representing the coordinates for the tooltip's
25330
+ * placement, allowing for precise control over its location.
25331
+ *
25332
+ * @readonly
25333
+ * @name Highcharts.Point#tooltipPos
25334
+ * @type {Readonly<Array<number>>|undefined}
25335
+ */
25267
25336
  /**
25268
25337
  * The total of values in either a stack for stacked series, or a pie in a
25269
25338
  * pie series.
@@ -26549,17 +26618,20 @@ class Pointer {
26549
26618
  activeSeries.push.apply(activeSeries, this.chart.series.filter((otherSeries) => otherSeries.markerGroup === series.markerGroup));
26550
26619
  }
26551
26620
  });
26552
- // Now loop over all series, filtering out active series
26553
- this.chart.series.forEach((series) => {
26621
+ for (const series of this.chart.series) {
26622
+ const seriesOptions = series.options;
26623
+ if (seriesOptions.states?.inactive?.enabled === false) {
26624
+ continue;
26625
+ }
26554
26626
  if (activeSeries.indexOf(series) === -1) {
26555
26627
  // Inactive series
26556
26628
  series.setState('inactive', true);
26557
26629
  }
26558
- else if (series.options.inactiveOtherPoints) {
26630
+ else if (seriesOptions.inactiveOtherPoints) {
26559
26631
  // Active series, but other points should be inactivated
26560
26632
  series.setAllPointsToState('inactive');
26561
26633
  }
26562
- });
26634
+ }
26563
26635
  }
26564
26636
  /**
26565
26637
  * Destroys the Pointer object and disconnects DOM events.
@@ -26659,8 +26731,7 @@ class Pointer {
26659
26731
  });
26660
26732
  const { shapeType, attrs } = this.getSelectionMarkerAttrs(chartX, chartY);
26661
26733
  // Make a selection
26662
- if ((chart.hasCartesianSeries || chart.mapView) &&
26663
- this.hasZoom &&
26734
+ if (this.hasZoom &&
26664
26735
  clickedInside &&
26665
26736
  !panKeyPressed) {
26666
26737
  if (!selectionMarker) {
@@ -26773,6 +26844,7 @@ class Pointer {
26773
26844
  chart.mouseIsDown = false;
26774
26845
  this.hasDragged = 0;
26775
26846
  this.pinchDown = [];
26847
+ this.hasPinchMoved = false;
26776
26848
  }
26777
26849
  }
26778
26850
  /**
@@ -27246,7 +27318,7 @@ class Pointer {
27246
27318
  this.drag(pEvt);
27247
27319
  }
27248
27320
  // Show the tooltip and run mouse over events (#977)
27249
- if (!chart.openMenu &&
27321
+ if (!chart.exporting?.openMenu &&
27250
27322
  (this.inClass(pEvt.target, 'highcharts-tracker') ||
27251
27323
  chart.isInsidePlot(pEvt.chartX - chart.plotLeft, pEvt.chartY - chart.plotTop, {
27252
27324
  visiblePlotOnly: true
@@ -27322,6 +27394,11 @@ class Pointer {
27322
27394
  * @function Highcharts.Pointer#onDocumentMouseUp
27323
27395
  */
27324
27396
  onDocumentMouseUp(e) {
27397
+ // #17852, IOS devices sometimes reverts back to previous point when
27398
+ // dragging between points
27399
+ if (e?.touches && this.hasPinchMoved) {
27400
+ e?.preventDefault?.();
27401
+ }
27325
27402
  Pointer_charts[Pointer_pick(Pointer.hoverChartIndex, -1)]
27326
27403
  ?.pointer
27327
27404
  ?.drop(e);
@@ -27865,7 +27942,7 @@ class Pointer {
27865
27942
  isInside = chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop, {
27866
27943
  visiblePlotOnly: true
27867
27944
  });
27868
- if (isInside && !chart.openMenu) {
27945
+ if (isInside && !chart.exporting?.openMenu) {
27869
27946
  // Run mouse events and display tooltip etc
27870
27947
  if (start) {
27871
27948
  this.runPointActions(e);
@@ -27877,7 +27954,7 @@ class Pointer {
27877
27954
  // checking how much it moved, and cancelling on small
27878
27955
  // distances. #3450. Tested and still relevant as of 2024.
27879
27956
  if (e.type === 'touchmove') {
27880
- hasMoved = pinchDown[0] ? // #5266
27957
+ this.hasPinchMoved = hasMoved = pinchDown[0] ? // #5266
27881
27958
  (Math.pow(pinchDown[0].chartX - e.chartX, 2) +
27882
27959
  Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
27883
27960
  false;
@@ -30805,9 +30882,7 @@ const seriesDefaults = {
30805
30882
  size: 10,
30806
30883
  /**
30807
30884
  * Opacity for the halo unless a specific fill is overridden
30808
- * using the `attributes` setting. Note that Highcharts is
30809
- * only able to apply opacity to colors of hex or rgb(a)
30810
- * formats.
30885
+ * using the `attributes` setting.
30811
30886
  *
30812
30887
  * @since 4.0
30813
30888
  * @product highcharts highstock
@@ -31120,6 +31195,12 @@ const seriesDefaults = {
31120
31195
  *
31121
31196
  * */
31122
31197
 
31198
+ /* *
31199
+ *
31200
+ * Imports
31201
+ *
31202
+ * */
31203
+
31123
31204
 
31124
31205
 
31125
31206
  const { defaultOptions: SeriesRegistry_defaultOptions } = Defaults;
@@ -31203,7 +31284,8 @@ var SeriesRegistry;
31203
31284
  defaultPlotOptions[type] = SeriesRegistry_merge(defaultPlotOptions[parent], options);
31204
31285
  // Create the class
31205
31286
  delete SeriesRegistry.seriesTypes[type];
31206
- registerSeriesType(type, SeriesRegistry_extendClass(SeriesRegistry.seriesTypes[parent] || function () { }, seriesProto));
31287
+ const parentClass = SeriesRegistry.seriesTypes[parent] || Series_Series, childClass = SeriesRegistry_extendClass(parentClass, seriesProto);
31288
+ registerSeriesType(type, childClass);
31207
31289
  SeriesRegistry.seriesTypes[type].prototype.type = type;
31208
31290
  // Create the point class if needed
31209
31291
  if (pointProto) {
@@ -32035,7 +32117,9 @@ class Series {
32035
32117
  // all the rest are defined the same way. Although the 'for' loops
32036
32118
  // are similar, they are repeated inside each if-else conditional
32037
32119
  // for max performance.
32038
- let runTurbo = turboThreshold && dataLength > turboThreshold;
32120
+ let runTurbo = (turboThreshold &&
32121
+ !options.relativeXValue &&
32122
+ dataLength > turboThreshold);
32039
32123
  if (runTurbo) {
32040
32124
  const firstPoint = series.getFirstValidPoint(data), lastPoint = series.getFirstValidPoint(data, dataLength - 1, -1), isShortArray = (a) => Boolean(Series_isArray(a) && (keys || Series_isNumber(a[0])));
32041
32125
  // Assume all points are numbers
@@ -33380,18 +33464,26 @@ class Series {
33380
33464
  horAxis = vertAxis;
33381
33465
  vertAxis = this.xAxis;
33382
33466
  }
33383
- return {
33467
+ const params = {
33468
+ scale: 1,
33384
33469
  translateX: horAxis ? horAxis.left : chart.plotLeft,
33385
33470
  translateY: vertAxis ? vertAxis.top : chart.plotTop,
33471
+ name
33472
+ };
33473
+ Series_fireEvent(this, 'getPlotBox', params);
33474
+ const { scale, translateX, translateY } = params;
33475
+ return {
33476
+ translateX,
33477
+ translateY,
33386
33478
  rotation: inverted ? 90 : 0,
33387
33479
  rotationOriginX: inverted ?
33388
- (horAxis.len - vertAxis.len) / 2 :
33480
+ scale * (horAxis.len - vertAxis.len) / 2 :
33389
33481
  0,
33390
33482
  rotationOriginY: inverted ?
33391
- (horAxis.len + vertAxis.len) / 2 :
33483
+ scale * (horAxis.len + vertAxis.len) / 2 :
33392
33484
  0,
33393
- scaleX: inverted ? -1 : 1, // #1623
33394
- scaleY: 1
33485
+ scaleX: inverted ? -scale : scale, // #1623
33486
+ scaleY: scale
33395
33487
  };
33396
33488
  }
33397
33489
  /**
@@ -34011,7 +34103,7 @@ class Series {
34011
34103
  oldOptions.type ||
34012
34104
  chart.options.chart.type);
34013
34105
  const keepPoints = !(
34014
- // Indicators, histograms etc recalculate the data. It should be
34106
+ // Indicators etc recalculate the data. It should be
34015
34107
  // possible to omit this.
34016
34108
  this.hasDerivedData ||
34017
34109
  // New type requires new point classes
@@ -35221,16 +35313,14 @@ class Legend {
35221
35313
  * The item to remove
35222
35314
  */
35223
35315
  destroyItem(item) {
35224
- const checkbox = item.checkbox, legendItem = item.legendItem || {};
35316
+ const legendItem = item.legendItem || {};
35225
35317
  // Destroy SVG elements
35226
35318
  for (const key of ['group', 'label', 'line', 'symbol']) {
35227
35319
  if (legendItem[key]) {
35228
35320
  legendItem[key] = legendItem[key].destroy();
35229
35321
  }
35230
35322
  }
35231
- if (checkbox) {
35232
- Legend_discardElement(checkbox);
35233
- }
35323
+ item.checkbox = Legend_discardElement(item.checkbox);
35234
35324
  item.legendItem = void 0;
35235
35325
  }
35236
35326
  /**
@@ -35559,13 +35649,13 @@ class Legend {
35559
35649
  /(rtv|rm|rbv)/,
35560
35650
  /(rbh|cb|lbh)/,
35561
35651
  /(lbv|lm|ltv)/
35562
- ]).forEach(function (alignments, side) {
35652
+ ]).forEach((alignments, side) => {
35563
35653
  if (alignments.test(alignment) && !Legend_defined(margin[side])) {
35564
35654
  // Now we have detected on which side of the chart we should
35565
35655
  // reserve space for the legend
35566
35656
  chart[marginNames[side]] = Math.max(chart[marginNames[side]], (chart.legend[(side + 1) % 2 ? 'legendHeight' : 'legendWidth'] +
35567
- [1, -1, -1, 1][side] * options[(side % 2) ? 'x' : 'y'] +
35568
- Legend_pick(options.margin, 12) +
35657
+ [1, -1, -1, 1][side] * (options[(side % 2) ? 'x' : 'y']) +
35658
+ (options.margin ?? 12) +
35569
35659
  spacing[side] +
35570
35660
  (chart.titleOffset[side] || 0)));
35571
35661
  }
@@ -36179,6 +36269,9 @@ class Legend {
36179
36269
  */ /**
36180
36270
  * @name Highcharts.LegendItemObject#symbol
36181
36271
  * @type {Highcharts.SVGElement|undefined}
36272
+ */ /**
36273
+ * @name Highcharts.LegendItemObject#label
36274
+ * @type {Highcharts.SVGElement|undefined}
36182
36275
  */
36183
36276
  /**
36184
36277
  * Gets fired when the legend item is clicked. The default
@@ -37525,8 +37618,8 @@ class Chart {
37525
37618
  getAxisMargins() {
37526
37619
  const chart = this,
37527
37620
  // [top, right, bottom, left]
37528
- axisOffset = chart.axisOffset = [0, 0, 0, 0], colorAxis = chart.colorAxis, margin = chart.margin, getOffset = function (axes) {
37529
- axes.forEach(function (axis) {
37621
+ axisOffset = chart.axisOffset = [0, 0, 0, 0], colorAxis = chart.colorAxis, margin = chart.margin, getOffset = (axes) => {
37622
+ axes.forEach((axis) => {
37530
37623
  if (axis.visible) {
37531
37624
  axis.getOffset();
37532
37625
  }
@@ -37540,9 +37633,9 @@ class Chart {
37540
37633
  getOffset(colorAxis);
37541
37634
  }
37542
37635
  // Add the axis offsets
37543
- Chart_marginNames.forEach(function (m, side) {
37636
+ Chart_marginNames.forEach((marginName, side) => {
37544
37637
  if (!Chart_defined(margin[side])) {
37545
- chart[m] += axisOffset[side];
37638
+ chart[marginName] += axisOffset[side];
37546
37639
  }
37547
37640
  });
37548
37641
  chart.setChartSize();
@@ -37583,7 +37676,7 @@ class Chart {
37583
37676
  delete chart.pointer?.chartPosition;
37584
37677
  // Width and height checks for display:none. Target is doc in Opera
37585
37678
  // and win in Firefox, Chrome and IE9.
37586
- if (!chart.isPrinting &&
37679
+ if (!chart.exporting?.isPrinting &&
37587
37680
  !chart.isResizing &&
37588
37681
  oldBox &&
37589
37682
  // When fired by resize observer inside hidden container
@@ -37797,21 +37890,22 @@ class Chart {
37797
37890
  Chart_fireEvent(this, 'resetMargins');
37798
37891
  const chart = this, chartOptions = chart.options.chart, plotBorderWidth = chartOptions.plotBorderWidth || 0, halfWidth = Math.round(plotBorderWidth) / 2;
37799
37892
  // Create margin and spacing array
37800
- ['margin', 'spacing'].forEach(function splashArrays(target) {
37893
+ ['margin', 'spacing'].forEach((target) => {
37801
37894
  const value = chartOptions[target], values = Chart_isObject(value) ? value : [value, value, value, value];
37802
37895
  [
37803
37896
  'Top',
37804
37897
  'Right',
37805
37898
  'Bottom',
37806
37899
  'Left'
37807
- ].forEach(function (sideName, side) {
37808
- chart[target][side] = Chart_pick(chartOptions[target + sideName], values[side]);
37900
+ ].forEach((sideName, side) => {
37901
+ chart[target][side] = (chartOptions[`${target}${sideName}`] ??
37902
+ values[side]);
37809
37903
  });
37810
37904
  });
37811
37905
  // Set margin names like chart.plotTop, chart.plotLeft,
37812
37906
  // chart.marginRight, chart.marginBottom.
37813
- Chart_marginNames.forEach(function (m, side) {
37814
- chart[m] = Chart_pick(chart.margin[side], chart.spacing[side]);
37907
+ Chart_marginNames.forEach((marginName, side) => {
37908
+ chart[marginName] = chart.margin[side] ?? chart.spacing[side];
37815
37909
  });
37816
37910
  chart.axisOffset = [0, 0, 0, 0]; // Top, right, bottom, left
37817
37911
  chart.clipOffset = [
@@ -38122,12 +38216,13 @@ class Chart {
38122
38216
  renderAxes(colorAxis);
38123
38217
  }
38124
38218
  // The series
38125
- if (!chart.seriesGroup) {
38126
- chart.seriesGroup = renderer.g('series-group')
38127
- .attr({ zIndex: 3 })
38128
- .shadow(chart.options.chart.seriesGroupShadow)
38129
- .add();
38130
- }
38219
+ chart.seriesGroup || (chart.seriesGroup = renderer.g('series-group')
38220
+ .attr({ zIndex: 3 })
38221
+ .shadow(chart.options.chart.seriesGroupShadow)
38222
+ .add());
38223
+ chart.dataLabelsGroup || (chart.dataLabelsGroup = renderer.g('datalabels-group')
38224
+ .attr({ zIndex: 6 })
38225
+ .add());
38131
38226
  chart.renderSeries();
38132
38227
  // Credits
38133
38228
  chart.addCredits();
@@ -38959,9 +39054,10 @@ class Chart {
38959
39054
  */
38960
39055
  transform(params) {
38961
39056
  const { axes = this.axes, event, from = {}, reset, selection, to = {}, trigger } = params, { inverted, time } = this;
38962
- let hasZoomed = false, displayButton, isAnyAxisPanning;
38963
39057
  // Remove active points for shared tooltip
38964
39058
  this.hoverPoints?.forEach((point) => point.setState());
39059
+ Chart_fireEvent(this, 'transform', params);
39060
+ let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
38965
39061
  for (const axis of axes) {
38966
39062
  const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength = Chart_pick(to[wh], axis.len), fromLength = Chart_pick(from[wh], axis.len),
38967
39063
  // If fingers pinched very close on this axis, treat as pan
@@ -38977,19 +39073,19 @@ class Chart {
38977
39073
  if (!reset && (fromCenter < 0 || fromCenter > axis.len)) {
38978
39074
  continue;
38979
39075
  }
38980
- let newMin = axis.toValue(minPx, true) +
38981
- // Don't apply offset for selection (#20784)
38982
- (selection || axis.isOrdinal ?
38983
- 0 : minPointOffset * pointRangeDirection), newMax = axis.toValue(minPx + len / scale, true) -
38984
- (
38985
- // Don't apply offset for selection (#20784)
38986
- selection || axis.isOrdinal ?
38987
- 0 :
38988
- ((minPointOffset * pointRangeDirection) ||
38989
- // Polar zoom tests failed when this was not
38990
- // commented:
38991
- // (axis.isXAxis && axis.pointRangePadding) ||
38992
- 0)), allExtremes = axis.allExtremes;
39076
+ // Adjust offset to ensure selection zoom triggers correctly
39077
+ // (#22945)
39078
+ const offset = (axis.chart.polar || axis.isOrdinal) ?
39079
+ 0 :
39080
+ (minPointOffset * pointRangeDirection || 0), eventMin = axis.toValue(minPx, true), eventMax = axis.toValue(minPx + len / scale, true);
39081
+ let newMin = eventMin + offset, newMax = eventMax - offset, allExtremes = axis.allExtremes;
39082
+ if (selection) {
39083
+ selection[axis.coll].push({
39084
+ axis,
39085
+ min: Math.min(eventMin, eventMax),
39086
+ max: Math.max(eventMin, eventMax)
39087
+ });
39088
+ }
38993
39089
  if (newMin > newMax) {
38994
39090
  [newMin, newMax] = [newMax, newMin];
38995
39091
  }
@@ -39029,10 +39125,7 @@ class Chart {
39029
39125
  // It is not necessary to calculate extremes on ordinal axis,
39030
39126
  // because they are already calculated, so we don't want to override
39031
39127
  // them.
39032
- if (!axis.isOrdinal ||
39033
- axis.options.overscroll || // #21316
39034
- scale !== 1 ||
39035
- reset) {
39128
+ if (!axis.isOrdinal || scale !== 1 || reset) {
39036
39129
  // If the new range spills over, either to the min or max,
39037
39130
  // adjust it.
39038
39131
  if (newMin < floor) {
@@ -39077,6 +39170,13 @@ class Chart {
39077
39170
  }
39078
39171
  hasZoomed = true;
39079
39172
  }
39173
+ // Show the resetZoom button for non-cartesian series,
39174
+ // except when triggered by mouse wheel zoom
39175
+ if (!this.hasCartesianSeries &&
39176
+ !reset &&
39177
+ trigger !== 'mousewheel') {
39178
+ displayButton = true;
39179
+ }
39080
39180
  if (event) {
39081
39181
  this[horiz ? 'mouseDownX' : 'mouseDownY'] =
39082
39182
  event[horiz ? 'chartX' : 'chartY'];
@@ -39368,29 +39468,33 @@ class ScrollablePlotArea {
39368
39468
  static afterSetSize(chart, e) {
39369
39469
  const { minWidth, minHeight } = chart.options.chart.scrollablePlotArea || {}, { clipBox, plotBox, inverted, renderer } = chart;
39370
39470
  let scrollablePixelsX, scrollablePixelsY, recalculateHoriz;
39371
- if (!renderer.forExport) {
39372
- // The amount of pixels to scroll, the difference between chart
39373
- // width and scrollable width
39374
- if (minWidth) {
39375
- chart.scrollablePixelsX = scrollablePixelsX = Math.max(0, minWidth - chart.chartWidth);
39376
- if (scrollablePixelsX) {
39377
- chart.scrollablePlotBox = ScrollablePlotArea_merge(chart.plotBox);
39378
- plotBox.width = chart.plotWidth += scrollablePixelsX;
39379
- clipBox[inverted ? 'height' : 'width'] += scrollablePixelsX;
39380
- recalculateHoriz = true;
39381
- }
39382
- // Currently we can only do either X or Y
39383
- }
39384
- else if (minHeight) {
39385
- chart.scrollablePixelsY = scrollablePixelsY = Math.max(0, minHeight - chart.chartHeight);
39386
- if (ScrollablePlotArea_defined(scrollablePixelsY)) {
39387
- chart.scrollablePlotBox = ScrollablePlotArea_merge(chart.plotBox);
39388
- plotBox.height = chart.plotHeight += scrollablePixelsY;
39389
- clipBox[inverted ? 'width' : 'height'] += scrollablePixelsY;
39390
- recalculateHoriz = false;
39391
- }
39392
- }
39393
- if (ScrollablePlotArea_defined(recalculateHoriz) && !e.skipAxes) {
39471
+ // Skip for exporting
39472
+ if (renderer.forExport) {
39473
+ return;
39474
+ }
39475
+ // The amount of pixels to scroll, the difference between chart width
39476
+ // and scrollable width
39477
+ if (minWidth) {
39478
+ chart.scrollablePixelsX = scrollablePixelsX = Math.max(0, minWidth - chart.chartWidth);
39479
+ if (scrollablePixelsX) {
39480
+ chart.scrollablePlotBox = ScrollablePlotArea_merge(chart.plotBox);
39481
+ plotBox.width = chart.plotWidth += scrollablePixelsX;
39482
+ clipBox[inverted ? 'height' : 'width'] += scrollablePixelsX;
39483
+ recalculateHoriz = true;
39484
+ }
39485
+ // Currently we can only do either X or Y
39486
+ }
39487
+ else if (minHeight) {
39488
+ chart.scrollablePixelsY = scrollablePixelsY = Math.max(0, minHeight - chart.chartHeight);
39489
+ if (ScrollablePlotArea_defined(scrollablePixelsY)) {
39490
+ chart.scrollablePlotBox = ScrollablePlotArea_merge(chart.plotBox);
39491
+ plotBox.height = chart.plotHeight += scrollablePixelsY;
39492
+ clipBox[inverted ? 'width' : 'height'] += scrollablePixelsY;
39493
+ recalculateHoriz = false;
39494
+ }
39495
+ }
39496
+ if (ScrollablePlotArea_defined(recalculateHoriz)) {
39497
+ if (!e.skipAxes) {
39394
39498
  for (const axis of chart.axes) {
39395
39499
  // Apply the corrected plot size to the axes of the other
39396
39500
  // orientation than the scrolling direction
@@ -39403,6 +39507,10 @@ class ScrollablePlotArea {
39403
39507
  }
39404
39508
  }
39405
39509
  }
39510
+ else {
39511
+ // Clear (potential) old box when a new one was not set
39512
+ delete chart.scrollablePlotBox;
39513
+ }
39406
39514
  }
39407
39515
  constructor(chart) {
39408
39516
  const chartOptions = chart.options.chart, Renderer = Renderer_RendererRegistry.getRendererType(), scrollableOptions = chartOptions.scrollablePlotArea || {}, moveFixedElements = this.moveFixedElements.bind(this), styles = {
@@ -39986,7 +40094,6 @@ class StackItem {
39986
40094
 
39987
40095
  const { getDeferredAnimation: StackingAxis_getDeferredAnimation } = AnimationUtilities;
39988
40096
 
39989
-
39990
40097
  const { series: { prototype: seriesProto } } = Series_SeriesRegistry;
39991
40098
 
39992
40099
 
@@ -42189,8 +42296,7 @@ const ColumnSeriesDefaults = {
42189
42296
  * @apioption plotOptions.column.states.hover.color
42190
42297
  */
42191
42298
  /**
42192
- * How much to brighten the point on interaction. Requires the
42193
- * main color to be defined in hex or rgb(a) format.
42299
+ * How much to brighten the point on interaction.
42194
42300
  *
42195
42301
  * In styled mode, the hover brightening is by default replaced
42196
42302
  * with a fill-opacity set in the `.highcharts-point:hover`
@@ -43309,7 +43415,7 @@ var DataLabel;
43309
43415
  */
43310
43416
  function initDataLabelsGroup() {
43311
43417
  return this.plotGroup('dataLabelsGroup', 'data-labels', this.hasRendered ? 'inherit' : 'hidden', // #5133, #10220
43312
- this.options.dataLabels.zIndex || 6);
43418
+ this.options.dataLabels.zIndex || 6, this.chart.dataLabelsGroup);
43313
43419
  }
43314
43420
  /**
43315
43421
  * Init the data labels with the correct animation
@@ -43447,7 +43553,9 @@ var DataLabel;
43447
43553
  // Individual labels are disabled if the are explicitly
43448
43554
  // disabled in the point options, or if they fall outside
43449
43555
  // the plot area.
43450
- if (labelEnabled && DataLabel_defined(labelText)) {
43556
+ if (labelEnabled &&
43557
+ DataLabel_defined(labelText) &&
43558
+ labelText !== '') {
43451
43559
  if (!dataLabel) {
43452
43560
  // Create new label element
43453
43561
  dataLabel = renderer.label(labelText, 0, 0, labelOptions.shape, void 0, void 0, labelOptions.useHTML, void 0, 'data-label');
@@ -45178,8 +45286,7 @@ const PieSeriesDefaults = {
45178
45286
  */
45179
45287
  hover: {
45180
45288
  /**
45181
- * How much to brighten the point on interaction. Requires the
45182
- * main color to be defined in hex or rgb(a) format.
45289
+ * How much to brighten the point on interaction.
45183
45290
  *
45184
45291
  * In styled mode, the hover brightness is by default replaced
45185
45292
  * by a fill-opacity given in the `.highcharts-point-hover`
@@ -45450,11 +45557,11 @@ class PieSeries extends Series_Series {
45450
45557
  }
45451
45558
  /**
45452
45559
  * Define hasData function for non-cartesian series. Returns true if the
45453
- * series has points at all.
45560
+ * series has at least one visible point (#23235)
45454
45561
  * @private
45455
45562
  */
45456
45563
  hasData() {
45457
- return !!this.dataTable.rowCount;
45564
+ return this.points.some((point) => point.visible);
45458
45565
  }
45459
45566
  /**
45460
45567
  * Draw the data points
@@ -45675,7 +45782,7 @@ const { distribute: PieDataLabel_distribute } = Renderer_RendererUtilities;
45675
45782
 
45676
45783
  const { series: PieDataLabel_Series } = Series_SeriesRegistry;
45677
45784
 
45678
- const { arrayMax: PieDataLabel_arrayMax, clamp: PieDataLabel_clamp, defined: PieDataLabel_defined, pick: PieDataLabel_pick, pushUnique: PieDataLabel_pushUnique, relativeLength: PieDataLabel_relativeLength } = Core_Utilities;
45785
+ const { arrayMax: PieDataLabel_arrayMax, clamp: PieDataLabel_clamp, defined: PieDataLabel_defined, isNumber: PieDataLabel_isNumber, pick: PieDataLabel_pick, pushUnique: PieDataLabel_pushUnique, relativeLength: PieDataLabel_relativeLength } = Core_Utilities;
45679
45786
  /* *
45680
45787
  *
45681
45788
  * Composition
@@ -46027,7 +46134,7 @@ var PieDataLabel_ColumnDataLabel;
46027
46134
  // #8864: every connector can have individual options
46028
46135
  const { connectorColor, connectorWidth = 1 } = (dataLabel.options || {}), labelPosition = dataLabel.dataLabelPosition;
46029
46136
  // Draw the connector
46030
- if (connectorWidth) {
46137
+ if (PieDataLabel_isNumber(connectorWidth)) {
46031
46138
  let isNew;
46032
46139
  connector = dataLabel.connector;
46033
46140
  if (labelPosition && labelPosition.distance > 0) {
@@ -46652,7 +46759,7 @@ function applyBorderRadius(path, i, r) {
46652
46759
  * @private
46653
46760
  */
46654
46761
  function BorderRadius_arc(x, y, w, h, options = {}) {
46655
- const path = oldArc(x, y, w, h, options), { innerR = 0, r = w, start = 0, end = 0 } = options;
46762
+ const path = oldArc(x, y, w, h, options), { brStart = true, brEnd = true, innerR = 0, r = w, start = 0, end = 0 } = options;
46656
46763
  if (options.open || !options.borderRadius) {
46657
46764
  return path;
46658
46765
  }
@@ -46669,6 +46776,10 @@ function BorderRadius_arc(x, y, w, h, options = {}) {
46669
46776
  // splicing in arc segments.
46670
46777
  let i = path.length - 1;
46671
46778
  while (i--) {
46779
+ if ((!brStart && (i === 0 || i === 3)) ||
46780
+ (!brEnd && (i === 1 || i === 2))) {
46781
+ continue;
46782
+ }
46672
46783
  applyBorderRadius(path, i, i > 1 ? innerBorderRadius : borderRadius);
46673
46784
  }
46674
46785
  return path;
@@ -46743,7 +46854,7 @@ function BorderRadius_compose(SeriesClass, SVGElementClass, SVGRendererClass) {
46743
46854
  order: 9
46744
46855
  });
46745
46856
  BorderRadius_addEvent(PieSeriesClass, 'afterTranslate', pieSeriesOnAfterTranslate);
46746
- SVGElementClass.symbolCustomAttribs.push('borderRadius', 'brBoxHeight', 'brBoxY');
46857
+ SVGElementClass.symbolCustomAttribs.push('borderRadius', 'brBoxHeight', 'brBoxY', 'brEnd', 'brStart');
46747
46858
  oldArc = symbols.arc;
46748
46859
  oldRoundedRect = symbols.roundedRect;
46749
46860
  symbols.arc = BorderRadius_arc;
@@ -47169,7 +47280,14 @@ var Responsive;
47169
47280
  (''); // Keeps doclets above in JS file
47170
47281
 
47171
47282
  ;// ./code/es-modules/masters/highcharts.src.js
47172
-
47283
+ /**
47284
+ * @license Highcharts JS v12.4.0 (2025-09-04)
47285
+ * @module highcharts/highcharts
47286
+ *
47287
+ * (c) 2009-2025 Highsoft AS
47288
+ *
47289
+ * License: www.highcharts.com/license
47290
+ */
47173
47291
 
47174
47292
 
47175
47293
 
@@ -48044,7 +48162,8 @@ class GanttChart extends Chart_Chart {
48044
48162
  // Defaults
48045
48163
  {
48046
48164
  grid: {
48047
- borderColor: "#cccccc" /* Palette.neutralColor20 */,
48165
+ borderColor: GanttChart_defaultOptions.xAxis?.grid?.borderColor ||
48166
+ "#cccccc" /* Palette.neutralColor20 */,
48048
48167
  enabled: true
48049
48168
  },
48050
48169
  opposite: GanttChart_defaultOptions.xAxis?.opposite ??
@@ -48064,7 +48183,8 @@ class GanttChart extends Chart_Chart {
48064
48183
  // Defaults
48065
48184
  {
48066
48185
  grid: {
48067
- borderColor: "#cccccc" /* Palette.neutralColor20 */,
48186
+ borderColor: GanttChart_defaultOptions.yAxis?.grid?.borderColor ||
48187
+ "#cccccc" /* Palette.neutralColor20 */,
48068
48188
  enabled: true
48069
48189
  },
48070
48190
  staticScale: 50,
@@ -49099,7 +49219,7 @@ const StockUtilities = {
49099
49219
  * */
49100
49220
 
49101
49221
 
49102
- const { setOptions: NavigatorComposition_setOptions } = Defaults;
49222
+ const { defaultOptions: NavigatorComposition_defaultOptions } = Defaults;
49103
49223
 
49104
49224
  const { composed: NavigatorComposition_composed } = Core_Globals;
49105
49225
 
@@ -49129,8 +49249,8 @@ function NavigatorComposition_compose(ChartClass, AxisClass, SeriesClass) {
49129
49249
  if (NavigatorComposition_pushUnique(NavigatorComposition_composed, 'Navigator')) {
49130
49250
  ChartClass.prototype.setFixedRange = NavigatorComposition_setFixedRange;
49131
49251
  NavigatorComposition_extend(getRendererType().prototype.symbols, Navigator_NavigatorSymbols);
49252
+ NavigatorComposition_extend(NavigatorComposition_defaultOptions, { navigator: Navigator_NavigatorDefaults });
49132
49253
  NavigatorComposition_addEvent(SeriesClass, 'afterUpdate', onSeriesAfterUpdate);
49133
- NavigatorComposition_setOptions({ navigator: Navigator_NavigatorDefaults });
49134
49254
  }
49135
49255
  }
49136
49256
  /**
@@ -49166,7 +49286,7 @@ const NavigatorComposition = {
49166
49286
 
49167
49287
  const { composed: ScrollbarAxis_composed } = Core_Globals;
49168
49288
 
49169
- const { addEvent: ScrollbarAxis_addEvent, defined: ScrollbarAxis_defined, pick: ScrollbarAxis_pick, pushUnique: ScrollbarAxis_pushUnique } = Core_Utilities;
49289
+ const { addEvent: ScrollbarAxis_addEvent, correctFloat: ScrollbarAxis_correctFloat, defined: ScrollbarAxis_defined, pick: ScrollbarAxis_pick, pushUnique: ScrollbarAxis_pushUnique } = Core_Utilities;
49170
49290
  /* *
49171
49291
  *
49172
49292
  * Composition
@@ -49213,9 +49333,10 @@ var ScrollbarAxis;
49213
49333
  axisMin,
49214
49334
  axisMax,
49215
49335
  scrollMin: ScrollbarAxis_defined(axis.dataMin) ?
49216
- Math.min(axisMin, axis.min, axis.dataMin, ScrollbarAxis_pick(axis.threshold, Infinity)) : axisMin,
49217
- scrollMax: ScrollbarAxis_defined(axis.dataMax) ?
49218
- Math.max(axisMax, axis.max, axis.dataMax, ScrollbarAxis_pick(axis.threshold, -Infinity)) : axisMax
49336
+ Math.min(axisMin, axis.min ?? Infinity, axis.dataMin, axis.threshold ?? Infinity) : axisMin,
49337
+ scrollMax: axis.treeGrid?.adjustedMax ?? (ScrollbarAxis_defined(axis.dataMax) ?
49338
+ Math.max(axisMax, axis.max ?? -Infinity, axis.dataMax, axis.threshold ?? -Infinity) :
49339
+ axisMax)
49219
49340
  };
49220
49341
  }
49221
49342
  /**
@@ -49243,7 +49364,7 @@ var ScrollbarAxis;
49243
49364
  axis.options.startOnTick = axis.options.endOnTick = false;
49244
49365
  axis.scrollbar = new Scrollbar(axis.chart.renderer, axis.options.scrollbar, axis.chart);
49245
49366
  ScrollbarAxis_addEvent(axis.scrollbar, 'changed', function (e) {
49246
- const { axisMin, axisMax, scrollMin: unitedMin, scrollMax: unitedMax } = getExtremes(axis), range = unitedMax - unitedMin;
49367
+ const { axisMin, axisMax, scrollMin: unitedMin, scrollMax: unitedMax } = getExtremes(axis), minPX = axis.toPixels(unitedMin), maxPX = axis.toPixels(unitedMax), rangePX = maxPX - minPX;
49247
49368
  let to, from;
49248
49369
  // #12834, scroll when show/hide series, wrong extremes
49249
49370
  if (!ScrollbarAxis_defined(axisMin) || !ScrollbarAxis_defined(axisMax)) {
@@ -49251,20 +49372,20 @@ var ScrollbarAxis;
49251
49372
  }
49252
49373
  if ((axis.horiz && !axis.reversed) ||
49253
49374
  (!axis.horiz && axis.reversed)) {
49254
- to = unitedMin + range * this.to;
49255
- from = unitedMin + range * this.from;
49375
+ to = Math.min(unitedMax, axis.toValue(minPX + rangePX * this.to));
49376
+ from = Math.max(unitedMin, axis.toValue(minPX + rangePX * this.from));
49256
49377
  }
49257
49378
  else {
49258
49379
  // Y-values in browser are reversed, but this also
49259
49380
  // applies for reversed horizontal axis:
49260
- to = unitedMin + range * (1 - this.from);
49261
- from = unitedMin + range * (1 - this.to);
49381
+ to = Math.min(unitedMax, axis.toValue(minPX + rangePX * (1 - this.from)));
49382
+ from = Math.max(unitedMin, axis.toValue(minPX + rangePX * (1 - this.to)));
49262
49383
  }
49263
49384
  if (this.shouldUpdateExtremes(e.DOMType)) {
49264
49385
  // #17977, set animation to undefined instead of true
49265
49386
  const animate = e.DOMType === 'mousemove' ||
49266
49387
  e.DOMType === 'touchmove' ? false : void 0;
49267
- axis.setExtremes(from, to, true, animate, e);
49388
+ axis.setExtremes(ScrollbarAxis_correctFloat(from), ScrollbarAxis_correctFloat(to), true, animate, e);
49268
49389
  }
49269
49390
  else {
49270
49391
  // When live redraw is disabled, don't change extremes
@@ -49279,7 +49400,7 @@ var ScrollbarAxis;
49279
49400
  * @private
49280
49401
  */
49281
49402
  function onAxisAfterRender() {
49282
- const axis = this, { scrollMin, scrollMax } = getExtremes(axis), scrollbar = axis.scrollbar, offset = (axis.axisTitleMargin + (axis.titleOffset || 0)), scrollbarsOffsets = axis.chart.scrollbarsOffsets, axisMargin = axis.options.margin || 0;
49403
+ const axis = this, { scrollMin, scrollMax } = getExtremes(axis), scrollbar = axis.scrollbar, offset = (axis.axisTitleMargin || 0) + (axis.titleOffset || 0), scrollbarsOffsets = axis.chart.scrollbarsOffsets, axisMargin = axis.options.margin || 0;
49283
49404
  let offsetsIndex, from, to;
49284
49405
  if (scrollbar && scrollbarsOffsets) {
49285
49406
  if (axis.horiz) {
@@ -49327,8 +49448,9 @@ var ScrollbarAxis;
49327
49448
  isNaN(scrollMax) ||
49328
49449
  !ScrollbarAxis_defined(axis.min) ||
49329
49450
  !ScrollbarAxis_defined(axis.max) ||
49330
- axis.dataMin === axis.dataMax // #10733
49331
- ) {
49451
+ (ScrollbarAxis_defined(axis.dataMin) && // #23335
49452
+ axis.dataMin === axis.dataMax // #10733
49453
+ )) {
49332
49454
  // Default action: when data extremes are the same or there is
49333
49455
  // not extremes on the axis, but scrollbar exists, make it
49334
49456
  // full size
@@ -49345,10 +49467,10 @@ var ScrollbarAxis;
49345
49467
  scrollbar.setRange(from, to);
49346
49468
  }
49347
49469
  else {
49348
- from = ((axis.min - scrollMin) /
49349
- (scrollMax - scrollMin));
49350
- to = ((axis.max - scrollMin) /
49351
- (scrollMax - scrollMin));
49470
+ from = (axis.toPixels(axis.min) - axis.toPixels(scrollMin)) /
49471
+ (axis.toPixels(scrollMax) - axis.toPixels(scrollMin));
49472
+ to = (axis.toPixels(axis.max) - axis.toPixels(scrollMin)) /
49473
+ (axis.toPixels(scrollMax) - axis.toPixels(scrollMin));
49352
49474
  if ((axis.horiz && !axis.reversed) ||
49353
49475
  (!axis.horiz && axis.reversed)) {
49354
49476
  scrollbar.setRange(from, to);
@@ -49605,10 +49727,11 @@ const ScrollbarDefaults = {
49605
49727
 
49606
49728
  const { defaultOptions: Scrollbar_defaultOptions } = Defaults;
49607
49729
 
49730
+ const { composed: Scrollbar_composed } = Core_Globals;
49608
49731
 
49609
49732
 
49610
49733
 
49611
- const { addEvent: Scrollbar_addEvent, correctFloat: Scrollbar_correctFloat, crisp: Scrollbar_crisp, defined: Scrollbar_defined, destroyObjectProperties: Scrollbar_destroyObjectProperties, fireEvent: Scrollbar_fireEvent, merge: Scrollbar_merge, pick: Scrollbar_pick, removeEvent: Scrollbar_removeEvent } = Core_Utilities;
49734
+ const { addEvent: Scrollbar_addEvent, correctFloat: Scrollbar_correctFloat, crisp: Scrollbar_crisp, defined: Scrollbar_defined, destroyObjectProperties: Scrollbar_destroyObjectProperties, extend: Scrollbar_extend, fireEvent: Scrollbar_fireEvent, merge: Scrollbar_merge, pick: Scrollbar_pick, pushUnique: Scrollbar_pushUnique, removeEvent: Scrollbar_removeEvent } = Core_Utilities;
49612
49735
  /* *
49613
49736
  *
49614
49737
  * Constants
@@ -49634,6 +49757,9 @@ class Scrollbar {
49634
49757
  * */
49635
49758
  static compose(AxisClass) {
49636
49759
  Axis_ScrollbarAxis.compose(AxisClass, Scrollbar);
49760
+ if (Scrollbar_pushUnique(Scrollbar_composed, 'Scrollbar')) {
49761
+ Scrollbar_extend(Scrollbar_defaultOptions, { scrollbar: Scrollbar_ScrollbarDefaults });
49762
+ }
49637
49763
  }
49638
49764
  /**
49639
49765
  * When we have vertical scrollbar, rifles and arrow in buttons should be
@@ -50240,12 +50366,6 @@ class Scrollbar {
50240
50366
  *
50241
50367
  * */
50242
50368
  Scrollbar.defaultOptions = Scrollbar_ScrollbarDefaults;
50243
- /* *
50244
- *
50245
- * Registry
50246
- *
50247
- * */
50248
- Scrollbar_defaultOptions.scrollbar = Scrollbar_merge(true, Scrollbar.defaultOptions, Scrollbar_defaultOptions.scrollbar);
50249
50369
  /* *
50250
50370
  *
50251
50371
  * Default Export
@@ -52582,7 +52702,6 @@ const RangeSelectorComposition = {
52582
52702
 
52583
52703
 
52584
52704
 
52585
-
52586
52705
  const { addEvent: OrdinalAxis_addEvent, correctFloat: OrdinalAxis_correctFloat, css: OrdinalAxis_css, defined: OrdinalAxis_defined, error: OrdinalAxis_error, isNumber: OrdinalAxis_isNumber, pick: OrdinalAxis_pick, timeUnits: OrdinalAxis_timeUnits, isString: OrdinalAxis_isString } = Core_Utilities;
52587
52706
  /* *
52588
52707
  *
@@ -52940,8 +53059,7 @@ var OrdinalAxis;
52940
53059
  function onChartPan(e) {
52941
53060
  const chart = this, xAxis = chart.xAxis[0], overscroll = xAxis.ordinal.convertOverscroll(xAxis.options.overscroll), chartX = e.originalEvent.chartX, panning = chart.options.chart.panning;
52942
53061
  let runBase = false;
52943
- if (panning &&
52944
- panning.type !== 'y' &&
53062
+ if (panning?.type !== 'y' &&
52945
53063
  xAxis.options.ordinal &&
52946
53064
  xAxis.series.length &&
52947
53065
  // On touch devices, let default function handle the pinching
@@ -52960,8 +53078,9 @@ var OrdinalAxis;
52960
53078
  }, index2val = xAxis.index2val, val2lin = xAxis.val2lin;
52961
53079
  let trimmedRange, ordinalPositions;
52962
53080
  // Make sure panning to the edges does not decrease the zoomed range
52963
- if ((min <= dataMin && movedUnits < 0) ||
52964
- (max + overscroll >= dataMax && movedUnits > 0)) {
53081
+ if ((min <= dataMin && movedUnits <= 0) ||
53082
+ (max >= dataMax + overscroll && movedUnits >= 0)) {
53083
+ e.preventDefault();
52965
53084
  return;
52966
53085
  }
52967
53086
  // We have an ordinal axis, but the data is equally spaced
@@ -52980,8 +53099,11 @@ var OrdinalAxis;
52980
53099
  // If we don't compensate for this, we will be allowed to pan
52981
53100
  // grouped data series passed the right of the plot area.
52982
53101
  ordinalPositions = extendedAxis.ordinal.positions;
52983
- if (dataMax >
52984
- ordinalPositions[ordinalPositions.length - 1]) {
53102
+ if (overscroll) { // #21606
53103
+ ordinalPositions = extendedAxis.ordinal.positions =
53104
+ ordinalPositions.concat(xAxis.ordinal.getOverscrollPositions());
53105
+ }
53106
+ if (dataMax > ordinalPositions[ordinalPositions.length - 1]) {
52985
53107
  ordinalPositions.push(dataMax);
52986
53108
  }
52987
53109
  // Get the new min and max values by getting the ordinal index
@@ -53012,7 +53134,7 @@ var OrdinalAxis;
53012
53134
  }
53013
53135
  // Revert to the linear chart.pan version
53014
53136
  if (runBase || (panning && /y/.test(panning.type))) {
53015
- if (overscroll) {
53137
+ if (overscroll && OrdinalAxis_isNumber(xAxis.dataMax)) {
53016
53138
  xAxis.max = xAxis.dataMax + overscroll;
53017
53139
  }
53018
53140
  }
@@ -53144,7 +53266,9 @@ var OrdinalAxis;
53144
53266
  * @private
53145
53267
  */
53146
53268
  beforeSetTickPositions() {
53147
- const axis = this.axis, ordinal = axis.ordinal, extremes = axis.getExtremes(), min = extremes.min, max = extremes.max, hasBreaks = axis.brokenAxis?.hasBreaks, isOrdinal = axis.options.ordinal;
53269
+ const axis = this.axis, ordinal = axis.ordinal, extremes = axis.getExtremes(), min = extremes.min, max = extremes.max, hasBreaks = axis.brokenAxis?.hasBreaks, isOrdinal = axis.options.ordinal, overscroll = axis.options.overscroll &&
53270
+ axis.ordinal.convertOverscroll(axis.options.overscroll) ||
53271
+ 0;
53148
53272
  let len, uniqueOrdinalPositions, dist, minIndex, maxIndex, slope, i, ordinalPositions = [], overscrollPointsRange = Number.MAX_VALUE, useOrdinal = false, adjustOrdinalExtremesPoints = false, isBoosted = false;
53149
53273
  // Apply the ordinal logic
53150
53274
  if (isOrdinal || hasBreaks) { // #4167 YAxis is never ordinal ?
@@ -53228,8 +53352,8 @@ var OrdinalAxis;
53228
53352
  // spaced.
53229
53353
  if (!axis.options.keepOrdinalPadding &&
53230
53354
  (ordinalPositions[0] - min > dist ||
53231
- (max -
53232
- ordinalPositions[ordinalPositions.length - 1]) > dist)) {
53355
+ max - overscroll - ordinalPositions[len - 1] >
53356
+ dist)) {
53233
53357
  useOrdinal = true;
53234
53358
  }
53235
53359
  }
@@ -53242,7 +53366,7 @@ var OrdinalAxis;
53242
53366
  else if (len === 1) {
53243
53367
  // We have just one point, closest distance is unknown.
53244
53368
  // Assume then it is last point and overscrolled range:
53245
- overscrollPointsRange = axis.ordinal.convertOverscroll(axis.options.overscroll);
53369
+ overscrollPointsRange = overscroll;
53246
53370
  ordinalPositions = [
53247
53371
  ordinalPositions[0],
53248
53372
  ordinalPositions[0] + overscrollPointsRange
@@ -53372,6 +53496,9 @@ var OrdinalAxis;
53372
53496
  // Add the fake series to hold the full data, then apply
53373
53497
  // processData to it
53374
53498
  axis.series.forEach((series) => {
53499
+ if (series.takeOrdinalPosition === false) {
53500
+ return; // #22657
53501
+ }
53375
53502
  fakeSeries = {
53376
53503
  xAxis: fakeAxis,
53377
53504
  chart: chart,
@@ -57004,7 +57131,7 @@ Pathfinder.prototype.algorithms = PathfinderAlgorithms;
57004
57131
 
57005
57132
  ;// ./code/es-modules/masters/modules/pathfinder.src.js
57006
57133
  /**
57007
- * @license Highcharts Gantt JS v12.2.0 (2025-04-07)
57134
+ * @license Highcharts Gantt JS v12.4.0 (2025-09-04)
57008
57135
  * @module highcharts/modules/pathfinder
57009
57136
  * @requires highcharts
57010
57137
  *
@@ -57036,7 +57163,7 @@ pathfinder_src_G.Pathfinder.compose(pathfinder_src_G.Chart, pathfinder_src_G.Poi
57036
57163
  * */
57037
57164
 
57038
57165
 
57039
- const { addEvent: StaticScale_addEvent, defined: StaticScale_defined, isNumber: StaticScale_isNumber, pick: StaticScale_pick } = Core_Utilities;
57166
+ const { addEvent: StaticScale_addEvent, defined: StaticScale_defined, isNumber: StaticScale_isNumber } = Core_Utilities;
57040
57167
  /* *
57041
57168
  *
57042
57169
  * Composition
@@ -57053,12 +57180,11 @@ function StaticScale_compose(AxisClass, ChartClass) {
57053
57180
  }
57054
57181
  /** @private */
57055
57182
  function StaticScale_onAxisAfterSetOptions() {
57056
- const chartOptions = this.chart.options.chart;
57183
+ const chartOptions = this.chart.userOptions.chart;
57057
57184
  if (!this.horiz &&
57058
57185
  StaticScale_isNumber(this.options.staticScale) &&
57059
- (!chartOptions.height ||
57060
- (chartOptions.scrollablePlotArea &&
57061
- chartOptions.scrollablePlotArea.minHeight))) {
57186
+ (!chartOptions?.height ||
57187
+ chartOptions.scrollablePlotArea?.minHeight)) {
57062
57188
  this.staticScale = this.options.staticScale;
57063
57189
  }
57064
57190
  }
@@ -57067,17 +57193,20 @@ function chartAdjustHeight() {
57067
57193
  const chart = this;
57068
57194
  if (chart.redrawTrigger !== 'adjustHeight') {
57069
57195
  for (const axis of (chart.axes || [])) {
57070
- const chart = axis.chart, animate = !!chart.initiatedScale &&
57071
- chart.options.animation, staticScale = axis.options.staticScale;
57072
- if (axis.staticScale && StaticScale_defined(axis.min)) {
57073
- let height = StaticScale_pick(axis.brokenAxis && axis.brokenAxis.unitLength, axis.max + axis.tickInterval - axis.min) * staticScale;
57196
+ const chart = axis.chart, staticScale = axis.options.staticScale;
57197
+ if (axis.staticScale &&
57198
+ staticScale &&
57199
+ StaticScale_defined(axis.min) &&
57200
+ StaticScale_defined(axis.max)) {
57201
+ let height = (axis.brokenAxis?.unitLength ??
57202
+ (axis.max + axis.tickInterval - axis.min)) * (staticScale);
57074
57203
  // Minimum height is 1 x staticScale.
57075
57204
  height = Math.max(height, staticScale);
57076
57205
  const diff = height - chart.plotHeight;
57077
57206
  if (!chart.scrollablePixelsY && Math.abs(diff) >= 1) {
57078
57207
  chart.plotHeight = height;
57079
57208
  chart.redrawTrigger = 'adjustHeight';
57080
- chart.setSize(void 0, chart.chartHeight + diff, animate);
57209
+ chart.setSize(void 0, chart.chartHeight + diff, chart.initiatedScale ? void 0 : false);
57081
57210
  }
57082
57211
  // Make sure clip rects have the right height before initial
57083
57212
  // animation.
@@ -57096,7 +57225,7 @@ function chartAdjustHeight() {
57096
57225
  }
57097
57226
  this.initiatedScale = true;
57098
57227
  }
57099
- this.redrawTrigger = null;
57228
+ this.redrawTrigger = void 0;
57100
57229
  }
57101
57230
  /* *
57102
57231
  *
@@ -57132,7 +57261,7 @@ const StaticScale = {
57132
57261
 
57133
57262
  ;// ./code/es-modules/masters/modules/static-scale.src.js
57134
57263
  /**
57135
- * @license Highcharts Gantt JS v12.2.0 (2025-04-07)
57264
+ * @license Highcharts Gantt JS v12.4.0 (2025-09-04)
57136
57265
  * @module highcharts/modules/static-scale
57137
57266
  * @requires highcharts
57138
57267
  *
@@ -57432,7 +57561,8 @@ class XRangePoint extends ColumnPoint {
57432
57561
  if (!series.chart.styledMode) {
57433
57562
  this.color = colorByPoint.color;
57434
57563
  }
57435
- if (!this.options.colorIndex) {
57564
+ if (typeof this.options.colorIndex === 'undefined' ||
57565
+ this.options.colorIndex === null) {
57436
57566
  this.colorIndex = colorByPoint.colorIndex;
57437
57567
  }
57438
57568
  }
@@ -57943,7 +58073,7 @@ Series_SeriesRegistry.registerSeriesType('xrange', XRangeSeries);
57943
58073
 
57944
58074
  ;// ./code/es-modules/masters/modules/xrange.src.js
57945
58075
  /**
57946
- * @license Highcharts JS v12.2.0 (2025-04-07)
58076
+ * @license Highcharts JS v12.4.0 (2025-09-04)
57947
58077
  * @module highcharts/modules/xrange
57948
58078
  * @requires highcharts
57949
58079
  *
@@ -58329,7 +58459,8 @@ var BrokenAxis;
58329
58459
  */
58330
58460
  function onAxisAfterSetOptions() {
58331
58461
  const axis = this;
58332
- if (axis.brokenAxis?.hasBreaks) {
58462
+ // Too early for axis.brokenAxis?.hasBreaks.
58463
+ if (Object.keys(axis.options.breaks?.[0] || {}).length) {
58333
58464
  axis.options.ordinal = false;
58334
58465
  }
58335
58466
  }
@@ -58401,24 +58532,9 @@ var BrokenAxis;
58401
58532
  threshold = axis.isXAxis ?
58402
58533
  axis.min :
58403
58534
  BrokenAxis_pick(series.options.threshold, axis.min);
58404
- // Array of breaks that have been "zoomed-out" which means that
58405
- // they were shown previously, but now after zoom, they are not
58406
- // (#19885).
58407
- const breaksOutOfRange = axis?.options?.breaks?.filter(function (brk) {
58408
- let isOut = true;
58409
- // Iterate to see if "brk" is in axis range
58410
- for (let i = 0; i < breaks.length; i++) {
58411
- const otherBreak = breaks[i];
58412
- if (otherBreak.from === brk.from &&
58413
- otherBreak.to === brk.to) {
58414
- isOut = false;
58415
- break;
58416
- }
58417
- }
58418
- return isOut;
58419
- });
58420
58535
  points.forEach(function (point) {
58421
- y = BrokenAxis_pick(point['stack' + key.toUpperCase()], point[key]);
58536
+ y = point['stack' + key.toUpperCase()] ??
58537
+ point[key];
58422
58538
  breaks.forEach(function (brk) {
58423
58539
  if (BrokenAxis_isNumber(threshold) && BrokenAxis_isNumber(y)) {
58424
58540
  let eventName = '';
@@ -58438,9 +58554,6 @@ var BrokenAxis;
58438
58554
  }
58439
58555
  }
58440
58556
  });
58441
- breaksOutOfRange?.forEach(function (brk) {
58442
- BrokenAxis_fireEvent(axis, 'pointOutsideOfBreak', { point, brk });
58443
- });
58444
58557
  });
58445
58558
  });
58446
58559
  }
@@ -58595,23 +58708,39 @@ var BrokenAxis;
58595
58708
  * @private
58596
58709
  */
58597
58710
  static lin2Val(val) {
58598
- const axis = this;
58599
- const brokenAxis = axis.brokenAxis;
58600
- const breakArray = brokenAxis?.breakArray;
58601
- if (!breakArray || !BrokenAxis_isNumber(val)) {
58711
+ const axis = this, threshold = axis.min || 0, brokenAxis = axis.brokenAxis, breakArray = brokenAxis?.breakArray;
58712
+ if (!breakArray?.length || !BrokenAxis_isNumber(val)) {
58602
58713
  return val;
58603
58714
  }
58604
- let nval = val, brk, i;
58605
- for (i = 0; i < breakArray.length; i++) {
58606
- brk = breakArray[i];
58607
- if (brk.from >= nval) {
58608
- break;
58609
- }
58610
- else if (brk.to < nval) {
58611
- nval += brk.len;
58715
+ let nval = val;
58716
+ // Axis min is the anchor point. Above it, break gaps impact the
58717
+ // result differently than below.
58718
+ if (val > threshold) {
58719
+ for (const brk of breakArray) {
58720
+ if (brk.from > nval) {
58721
+ // Skip all breaks after the nval.
58722
+ break;
58723
+ }
58724
+ else if (brk.to <= nval && brk.to > threshold) {
58725
+ nval += brk.len;
58726
+ }
58727
+ else if (Additions.isInBreak(brk, nval)) {
58728
+ nval += brk.len;
58729
+ }
58612
58730
  }
58613
- else if (Additions.isInBreak(brk, nval)) {
58614
- nval += brk.len;
58731
+ }
58732
+ else if (val < threshold) {
58733
+ for (const brk of breakArray) {
58734
+ if (brk.from > threshold) {
58735
+ // Skip all breaks above the threshold.
58736
+ break;
58737
+ }
58738
+ else if (brk.from >= nval && brk.from < threshold) {
58739
+ nval -= brk.len;
58740
+ }
58741
+ else if (Additions.isInBreak(brk, nval)) {
58742
+ nval -= brk.len;
58743
+ }
58615
58744
  }
58616
58745
  }
58617
58746
  return nval;
@@ -58620,24 +58749,41 @@ var BrokenAxis;
58620
58749
  * @private
58621
58750
  */
58622
58751
  static val2Lin(val) {
58623
- const axis = this;
58624
- const brokenAxis = axis.brokenAxis;
58625
- const breakArray = brokenAxis?.breakArray;
58626
- if (!breakArray || !BrokenAxis_isNumber(val)) {
58752
+ const axis = this, threshold = axis.min || 0, brokenAxis = axis.brokenAxis, breakArray = brokenAxis?.breakArray;
58753
+ if (!breakArray?.length || !BrokenAxis_isNumber(val)) {
58627
58754
  return val;
58628
58755
  }
58629
- let nval = val, brk, i;
58630
- for (i = 0; i < breakArray.length; i++) {
58631
- brk = breakArray[i];
58632
- if (brk.to <= val) {
58633
- nval -= brk.len;
58634
- }
58635
- else if (brk.from >= val) {
58636
- break;
58756
+ let nval = val;
58757
+ // Axis min is the anchor point. Above it, break gaps impact the
58758
+ // result differently than below.
58759
+ if (val > threshold) {
58760
+ for (const brk of breakArray) {
58761
+ if (brk.to <= val && brk.to > threshold) {
58762
+ nval -= brk.len;
58763
+ }
58764
+ else if (brk.from > val) {
58765
+ // Skip all breaks after the val.
58766
+ break;
58767
+ }
58768
+ else if (Additions.isInBreak(brk, val)) {
58769
+ nval -= (val - brk.from);
58770
+ break;
58771
+ }
58637
58772
  }
58638
- else if (Additions.isInBreak(brk, val)) {
58639
- nval -= (val - brk.from);
58640
- break;
58773
+ }
58774
+ else if (val < threshold) {
58775
+ for (const brk of breakArray) {
58776
+ if (brk.from >= val && brk.from < threshold) {
58777
+ nval += brk.len;
58778
+ }
58779
+ else if (brk.from > threshold) {
58780
+ // Skip all breaks before the threshold.
58781
+ break;
58782
+ }
58783
+ else if (Additions.isInBreak(brk, val)) {
58784
+ nval += (brk.to - val);
58785
+ break;
58786
+ }
58641
58787
  }
58642
58788
  }
58643
58789
  return nval;
@@ -58648,7 +58794,6 @@ var BrokenAxis;
58648
58794
  *
58649
58795
  * */
58650
58796
  constructor(axis) {
58651
- this.hasBreaks = false;
58652
58797
  this.axis = axis;
58653
58798
  }
58654
58799
  /* *
@@ -58714,9 +58859,8 @@ var BrokenAxis;
58714
58859
  */
58715
58860
  setBreaks(breaks, redraw) {
58716
58861
  const brokenAxis = this, axis = brokenAxis.axis, time = axis.chart.time, hasBreaks = BrokenAxis_isArray(breaks) &&
58717
- !!breaks.length &&
58718
- !!Object.keys(breaks[0]).length; // Check for [{}], #16368.
58719
- axis.isDirty = brokenAxis.hasBreaks !== hasBreaks;
58862
+ !!Object.keys(breaks?.[0] || {}).length;
58863
+ axis.isDirty = (brokenAxis.hasBreaks ?? false) !== hasBreaks;
58720
58864
  brokenAxis.hasBreaks = hasBreaks;
58721
58865
  // Compile string dates
58722
58866
  breaks?.forEach((brk) => {
@@ -58743,8 +58887,9 @@ var BrokenAxis;
58743
58887
  axis.setExtremes = function (newMin, newMax, redraw, animation, eventArguments) {
58744
58888
  // If trying to set extremes inside a break, extend min to
58745
58889
  // after, and max to before the break ( #3857 )
58746
- if (brokenAxis.hasBreaks) {
58747
- const breaks = (this.options.breaks || []);
58890
+ // but not for gantt (#13898);
58891
+ if (brokenAxis.hasBreaks && !axis.treeGrid?.tree) {
58892
+ const breaks = (this.brokenAxis.breakArray || []);
58748
58893
  let axisBreak;
58749
58894
  while ((axisBreak = brokenAxis.findBreakAt(newMin, breaks))) {
58750
58895
  newMin = axisBreak.to;
@@ -58763,49 +58908,54 @@ var BrokenAxis;
58763
58908
  axis.constructor.prototype.setAxisTranslation.call(this);
58764
58909
  brokenAxis.unitLength = void 0;
58765
58910
  if (brokenAxis.hasBreaks) {
58766
- const breaks = axis.options.breaks || [],
58767
- // Temporary one:
58768
- breakArrayT = [], breakArray = [], pointRangePadding = BrokenAxis_pick(axis.pointRangePadding, 0);
58769
- let length = 0, inBrk, repeat, min = axis.userMin || axis.min, max = axis.userMax || axis.max, start, i;
58770
- // Min & max check (#4247)
58771
- breaks.forEach(function (brk) {
58772
- repeat = brk.repeat || Infinity;
58773
- if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max)) {
58774
- if (Additions.isInBreak(brk, min)) {
58775
- min += ((brk.to % repeat) -
58776
- (min % repeat));
58777
- }
58778
- if (Additions.isInBreak(brk, max)) {
58779
- max -= ((max % repeat) -
58780
- (brk.from % repeat));
58911
+ const breaks = axis.options.breaks || [], breakArrayTemp = [], breakArray = [], pointRangePadding = axis.pointRangePadding ?? 0;
58912
+ let length = 0, inBrk, repeat, min = axis.userMin ?? axis.min, max = axis.userMax ?? axis.max, dataMin = axis.dataMin ?? min, dataMax = axis.dataMax ?? max, start, i;
58913
+ if (BrokenAxis_isNumber(axis.threshold)) {
58914
+ dataMin = Math.min(dataMin ?? axis.threshold, axis.threshold);
58915
+ dataMax = Math.max(dataMax ?? axis.threshold, axis.threshold);
58916
+ }
58917
+ // Min & max check (#4247) but not for gantt (#13898)
58918
+ if (!axis.treeGrid?.tree) {
58919
+ breaks.forEach(function (brk) {
58920
+ repeat = brk.repeat || Infinity;
58921
+ if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max)) {
58922
+ if (Additions.isInBreak(brk, min)) {
58923
+ min += ((brk.to % repeat) -
58924
+ (min % repeat));
58925
+ }
58926
+ if (Additions.isInBreak(brk, max)) {
58927
+ max -= ((max % repeat) -
58928
+ (brk.from % repeat));
58929
+ }
58781
58930
  }
58782
- }
58783
- });
58931
+ });
58932
+ }
58784
58933
  // Construct an array holding all breaks in the axis
58785
- breaks.forEach(function (brk) {
58786
- start = brk.from;
58787
- repeat = brk.repeat || Infinity;
58788
- if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max)) {
58789
- while (start - repeat > min) {
58934
+ // for the current data range.
58935
+ if (BrokenAxis_isNumber(dataMin) && BrokenAxis_isNumber(dataMax)) {
58936
+ breaks.forEach(function (brk) {
58937
+ start = brk.from;
58938
+ repeat = brk.repeat || Infinity;
58939
+ while (start - repeat > dataMin) {
58790
58940
  start -= repeat;
58791
58941
  }
58792
- while (start < min) {
58942
+ while (start < dataMin) {
58793
58943
  start += repeat;
58794
58944
  }
58795
- for (i = start; i < max; i += repeat) {
58796
- breakArrayT.push({
58945
+ for (i = start; i < dataMax; i += repeat) {
58946
+ breakArrayTemp.push({
58797
58947
  value: i,
58798
58948
  move: 'in'
58799
58949
  });
58800
- breakArrayT.push({
58950
+ breakArrayTemp.push({
58801
58951
  value: i + brk.to - brk.from,
58802
58952
  move: 'out',
58803
58953
  size: brk.breakSize
58804
58954
  });
58805
58955
  }
58806
- }
58807
- });
58808
- breakArrayT.sort(function (a, b) {
58956
+ });
58957
+ }
58958
+ breakArrayTemp.sort(function (a, b) {
58809
58959
  return ((a.value === b.value) ?
58810
58960
  ((a.move === 'in' ? 0 : 1) -
58811
58961
  (b.move === 'in' ? 0 : 1)) :
@@ -58813,8 +58963,8 @@ var BrokenAxis;
58813
58963
  });
58814
58964
  // Simplify the breaks
58815
58965
  inBrk = 0;
58816
- start = min;
58817
- breakArrayT.forEach(function (brk) {
58966
+ start = dataMin;
58967
+ breakArrayTemp.forEach((brk) => {
58818
58968
  inBrk += (brk.move === 'in' ? 1 : -1);
58819
58969
  if (inBrk === 1 && brk.move === 'in') {
58820
58970
  start = brk.value;
@@ -58825,9 +58975,13 @@ var BrokenAxis;
58825
58975
  to: brk.value,
58826
58976
  len: brk.value - start - (brk.size || 0)
58827
58977
  });
58828
- length += (brk.value -
58829
- start -
58830
- (brk.size || 0));
58978
+ if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max) &&
58979
+ start < max && brk.value > min) {
58980
+ // Sum break gaps in the visible range
58981
+ length += (brk.value -
58982
+ start -
58983
+ (brk.size || 0));
58984
+ }
58831
58985
  }
58832
58986
  });
58833
58987
  brokenAxis.breakArray = breakArray;
@@ -60075,7 +60229,7 @@ const Tree = {
60075
60229
  * */
60076
60230
 
60077
60231
 
60078
- const { addEvent: TreeGridTick_addEvent, removeEvent: TreeGridTick_removeEvent, isObject: TreeGridTick_isObject, isNumber: TreeGridTick_isNumber, pick: TreeGridTick_pick, wrap: TreeGridTick_wrap } = Core_Utilities;
60232
+ const { addEvent: TreeGridTick_addEvent, correctFloat: TreeGridTick_correctFloat, removeEvent: TreeGridTick_removeEvent, isObject: TreeGridTick_isObject, isNumber: TreeGridTick_isNumber, pick: TreeGridTick_pick, wrap: TreeGridTick_wrap } = Core_Utilities;
60079
60233
  /* *
60080
60234
  *
60081
60235
  * Functions
@@ -60232,6 +60386,7 @@ function wrapRenderLabel(proceed) {
60232
60386
  TreeGridTick_removeEvent(labelElement);
60233
60387
  label?.css({ cursor: 'default' });
60234
60388
  icon.destroy();
60389
+ tickGrid.labelIcon = void 0;
60235
60390
  }
60236
60391
  }
60237
60392
  /* *
@@ -60299,11 +60454,9 @@ class TreeGridTickAdditions {
60299
60454
  * {@link Highcharts.Chart#redraw}
60300
60455
  */
60301
60456
  collapse(redraw) {
60302
- const tick = this.tick, axis = tick.axis, brokenAxis = axis.brokenAxis;
60303
- if (brokenAxis &&
60304
- axis.treeGrid.mapOfPosToGridNode) {
60305
- const pos = tick.pos, node = axis.treeGrid.mapOfPosToGridNode[pos], breaks = axis.treeGrid.collapse(node);
60306
- brokenAxis.setBreaks(breaks, TreeGridTick_pick(redraw, true));
60457
+ const { pos, axis } = this.tick, { treeGrid, brokenAxis } = axis, posMappedNodes = treeGrid.mapOfPosToGridNode;
60458
+ if (brokenAxis && posMappedNodes) {
60459
+ brokenAxis.setBreaks(treeGrid.collapse(posMappedNodes[pos]), redraw ?? true);
60307
60460
  }
60308
60461
  }
60309
60462
  /**
@@ -60313,9 +60466,7 @@ class TreeGridTickAdditions {
60313
60466
  * @function Highcharts.Tick#destroy
60314
60467
  */
60315
60468
  destroy() {
60316
- if (this.labelIcon) {
60317
- this.labelIcon.destroy();
60318
- }
60469
+ this.labelIcon?.destroy();
60319
60470
  }
60320
60471
  /**
60321
60472
  * Expand the grid cell. Used when axis is of type treegrid.
@@ -60332,8 +60483,7 @@ class TreeGridTickAdditions {
60332
60483
  expand(redraw) {
60333
60484
  const { pos, axis } = this.tick, { treeGrid, brokenAxis } = axis, posMappedNodes = treeGrid.mapOfPosToGridNode;
60334
60485
  if (brokenAxis && posMappedNodes) {
60335
- const node = posMappedNodes[pos], breaks = treeGrid.expand(node);
60336
- brokenAxis.setBreaks(breaks, TreeGridTick_pick(redraw, true));
60486
+ brokenAxis.setBreaks(treeGrid.expand(posMappedNodes[pos]), redraw ?? true);
60337
60487
  }
60338
60488
  }
60339
60489
  /**
@@ -60349,12 +60499,38 @@ class TreeGridTickAdditions {
60349
60499
  * Whether to redraw the chart or wait for an explicit call to
60350
60500
  * {@link Highcharts.Chart#redraw}
60351
60501
  */
60352
- toggleCollapse(redraw) {
60353
- const tick = this.tick, axis = tick.axis, brokenAxis = axis.brokenAxis;
60354
- if (brokenAxis &&
60355
- axis.treeGrid.mapOfPosToGridNode) {
60356
- const pos = tick.pos, node = axis.treeGrid.mapOfPosToGridNode[pos], breaks = axis.treeGrid.toggleCollapse(node);
60357
- brokenAxis.setBreaks(breaks, TreeGridTick_pick(redraw, true));
60502
+ toggleCollapse(redraw = true) {
60503
+ const { axis, pos } = this.tick, { brokenAxis, treeGrid } = axis;
60504
+ if (brokenAxis && treeGrid.mapOfPosToGridNode) {
60505
+ const scrollMode = !!(axis.scrollbar && axis.staticScale), maxPx = axis.pos + axis.len +
60506
+ (treeGrid.pendingSizeAdjustment || 0);
60507
+ treeGrid.pendingSizeAdjustment = 0;
60508
+ brokenAxis.setBreaks(treeGrid.toggleCollapse(treeGrid.mapOfPosToGridNode[pos]), scrollMode && redraw);
60509
+ if (scrollMode) {
60510
+ const adjustedMax = axis.toValue(axis.toPixels(axis.dataMax));
60511
+ let newMaxVal = axis.toValue(maxPx) - axis.tickmarkOffset, newMinVal = axis.userMin ?? axis.min;
60512
+ // If dataMax is in a break.
60513
+ treeGrid.adjustedMax = adjustedMax !== axis.dataMax ?
60514
+ adjustedMax - axis.tickmarkOffset :
60515
+ void 0;
60516
+ if (newMaxVal > axis.dataMax) {
60517
+ let missingPx = maxPx -
60518
+ axis.toPixels(axis.dataMax + axis.tickmarkOffset);
60519
+ newMaxVal = treeGrid.adjustedMax ?? axis.dataMax;
60520
+ // Check if enough space available on the min end.
60521
+ newMinVal = axis.toValue(axis.toPixels(newMinVal - axis.tickmarkOffset) - missingPx) + axis.tickmarkOffset;
60522
+ if (newMinVal < axis.dataMin) {
60523
+ missingPx = axis.toPixels(axis.dataMin) -
60524
+ axis.toPixels(newMinVal);
60525
+ newMinVal = axis.dataMin;
60526
+ treeGrid.pendingSizeAdjustment = missingPx;
60527
+ }
60528
+ }
60529
+ axis.setExtremes(TreeGridTick_correctFloat(newMinVal), TreeGridTick_correctFloat(newMaxVal), false, false, { trigger: 'toggleCollapse' });
60530
+ }
60531
+ if (redraw) {
60532
+ axis.chart.redraw();
60533
+ }
60358
60534
  }
60359
60535
  }
60360
60536
  }
@@ -60600,7 +60776,7 @@ const TreeUtilities = {
60600
60776
 
60601
60777
  const { getLevelOptions: TreeGridAxis_getLevelOptions } = Series_TreeUtilities;
60602
60778
 
60603
- const { addEvent: TreeGridAxis_addEvent, isArray: TreeGridAxis_isArray, splat: TreeGridAxis_splat, find: TreeGridAxis_find, fireEvent: TreeGridAxis_fireEvent, isObject: TreeGridAxis_isObject, isString: TreeGridAxis_isString, merge: TreeGridAxis_merge, pick: TreeGridAxis_pick, removeEvent: TreeGridAxis_removeEvent, wrap: TreeGridAxis_wrap } = Core_Utilities;
60779
+ const { addEvent: TreeGridAxis_addEvent, isArray: TreeGridAxis_isArray, splat: TreeGridAxis_splat, find: TreeGridAxis_find, fireEvent: TreeGridAxis_fireEvent, isObject: TreeGridAxis_isObject, isString: TreeGridAxis_isString, merge: TreeGridAxis_merge, removeEvent: TreeGridAxis_removeEvent, wrap: TreeGridAxis_wrap } = Core_Utilities;
60604
60780
  /* *
60605
60781
  *
60606
60782
  * Variables
@@ -60613,22 +60789,17 @@ let TickConstructor;
60613
60789
  *
60614
60790
  * */
60615
60791
  /**
60792
+ * Creates a break object from a node.
60793
+ *
60794
+ * @param {Object} node
60795
+ * The node to create a break object from.
60796
+ *
60616
60797
  * @private
60617
60798
  */
60618
- function getBreakFromNode(node, max) {
60619
- const to = node.collapseEnd || 0;
60620
- let from = node.collapseStart || 0;
60621
- // In broken-axis, the axis.max is minimized until it is not within a
60622
- // break. Therefore, if break.to is larger than axis.max, the axis.to
60623
- // should not add the 0.5 axis.tickMarkOffset, to avoid adding a break
60624
- // larger than axis.max.
60625
- // TODO consider simplifying broken-axis and this might solve itself
60626
- if (to >= max) {
60627
- from -= 0.5;
60628
- }
60799
+ function getBreakFromNode(node) {
60629
60800
  return {
60630
- from: from,
60631
- to: to,
60801
+ from: node.collapseStart || 0,
60802
+ to: node.collapseEnd || 0,
60632
60803
  showPoints: false
60633
60804
  };
60634
60805
  }
@@ -60724,8 +60895,7 @@ function getTreeGridFromData(data, uniqueNames, numberOfSeries) {
60724
60895
  }
60725
60896
  // If one of the points are collapsed, then start the grid node
60726
60897
  // in collapsed state.
60727
- if (gridNode &&
60728
- data.collapsed === true) {
60898
+ if (gridNode && data.collapsed === true) {
60729
60899
  gridNode.collapsed = true;
60730
60900
  }
60731
60901
  // Assign pos to data node
@@ -60784,7 +60954,7 @@ function getTreeGridFromData(data, uniqueNames, numberOfSeries) {
60784
60954
  function onBeforeRender(e) {
60785
60955
  const chart = e.target, axes = chart.axes;
60786
60956
  axes.filter((axis) => axis.type === 'treegrid').forEach(function (axis) {
60787
- const options = axis.options || {}, labelOptions = options.labels, uniqueNames = axis.uniqueNames, max = chart.time.parse(options.max),
60957
+ const options = axis.options, labelOptions = options.labels, uniqueNames = axis.uniqueNames, max = chart.time.parse(options.max),
60788
60958
  // Check whether any of series is rendering for the first
60789
60959
  // time, visibility has changed, or its data is dirty, and
60790
60960
  // only then update. #10570, #10580. Also check if
@@ -60803,8 +60973,8 @@ function onBeforeRender(e) {
60803
60973
  const seriesData = (s.options.data || []), firstPoint = seriesData[0],
60804
60974
  // Check if the first point is a simple array of values.
60805
60975
  // If so we assume that this is the case for all points.
60806
- foundPrimitivePoint = (Array.isArray(firstPoint) &&
60807
- !firstPoint.find((value) => (typeof value === 'object')));
60976
+ foundPrimitivePoint = Array.isArray(firstPoint) &&
60977
+ !firstPoint.find((value) => (typeof value === 'object'));
60808
60978
  seriesHasPrimitivePoints.push(foundPrimitivePoint);
60809
60979
  if (s.visible) {
60810
60980
  // Push all data to array
@@ -60820,7 +60990,7 @@ function onBeforeRender(e) {
60820
60990
  if (TreeGridAxis_isObject(pointOptions, true)) {
60821
60991
  // Set series index on data. Removed again
60822
60992
  // after use.
60823
- pointOptions.seriesIndex = (numberOfSeries);
60993
+ pointOptions.seriesIndex = numberOfSeries;
60824
60994
  arr.push(pointOptions);
60825
60995
  }
60826
60996
  });
@@ -60854,9 +61024,7 @@ function onBeforeRender(e) {
60854
61024
  axis.series.forEach(function (series, index) {
60855
61025
  const axisData = (series.options.data || []).map(function (d) {
60856
61026
  if (seriesHasPrimitivePoints[index] ||
60857
- (TreeGridAxis_isArray(d) &&
60858
- series.options.keys &&
60859
- series.options.keys.length)) {
61027
+ (TreeGridAxis_isArray(d) && series.options.keys?.length)) {
60860
61028
  // Get the axisData from the data array used to
60861
61029
  // build the treeGrid where has been modified
60862
61030
  data.forEach(function (point) {
@@ -60957,22 +61125,20 @@ function wrapInit(proceed, chart, userOptions, coll) {
60957
61125
  // Collapse all nodes in axis.treegrid.collapsednodes
60958
61126
  // where collapsed equals true.
60959
61127
  TreeGridAxis_addEvent(axis, 'foundExtremes', function () {
60960
- if (axis.treeGrid.collapsedNodes) {
60961
- axis.treeGrid.collapsedNodes.forEach(function (node) {
60962
- const breaks = axis.treeGrid.collapse(node);
60963
- if (axis.brokenAxis) {
60964
- axis.brokenAxis.setBreaks(breaks, false);
60965
- // Remove the node from the axis collapsedNodes
60966
- if (axis.treeGrid.collapsedNodes) {
60967
- axis.treeGrid.collapsedNodes = axis.treeGrid
60968
- .collapsedNodes
60969
- .filter((n) => ((node.collapseStart !==
60970
- n.collapseStart) ||
60971
- node.collapseEnd !== n.collapseEnd));
60972
- }
61128
+ axis.treeGrid.collapsedNodes?.forEach(function (node) {
61129
+ const breaks = axis.treeGrid.collapse(node);
61130
+ if (axis.brokenAxis) {
61131
+ axis.brokenAxis.setBreaks(breaks, false);
61132
+ // Remove the node from the axis collapsedNodes
61133
+ if (axis.treeGrid.collapsedNodes) {
61134
+ axis.treeGrid.collapsedNodes = axis.treeGrid
61135
+ .collapsedNodes
61136
+ .filter((n) => ((node.collapseStart !==
61137
+ n.collapseStart) ||
61138
+ node.collapseEnd !== n.collapseEnd));
60973
61139
  }
60974
- });
60975
- }
61140
+ }
61141
+ });
60976
61142
  });
60977
61143
  // If staticScale is not defined on the yAxis
60978
61144
  // and chart height is set, set axis.isDirty
@@ -61097,8 +61263,8 @@ function wrapSetTickInterval(proceed) {
61097
61263
  [];
61098
61264
  if (linkedParent) {
61099
61265
  const linkedParentExtremes = linkedParent.getExtremes();
61100
- axis.min = TreeGridAxis_pick(linkedParentExtremes.min, linkedParentExtremes.dataMin);
61101
- axis.max = TreeGridAxis_pick(linkedParentExtremes.max, linkedParentExtremes.dataMax);
61266
+ axis.min = linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
61267
+ axis.max = linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
61102
61268
  axis.tickPositions = linkedParent.tickPositions;
61103
61269
  }
61104
61270
  axis.linkedParent = linkedParent;
@@ -61177,6 +61343,7 @@ class TreeGridAxisAdditions {
61177
61343
  * @private
61178
61344
  */
61179
61345
  constructor(axis) {
61346
+ this.pendingSizeAdjustment = 0;
61180
61347
  this.axis = axis;
61181
61348
  }
61182
61349
  /* *
@@ -61226,7 +61393,7 @@ class TreeGridAxisAdditions {
61226
61393
  * Returns an array of the new breaks for the axis.
61227
61394
  */
61228
61395
  collapse(node) {
61229
- const axis = this.axis, breaks = (axis.options.breaks || []), obj = getBreakFromNode(node, axis.max);
61396
+ const axis = this.axis, breaks = axis.options.breaks || [], obj = getBreakFromNode(node);
61230
61397
  breaks.push(obj);
61231
61398
  // Change the collapsed flag #13838
61232
61399
  node.collapsed = true;
@@ -61251,17 +61418,17 @@ class TreeGridAxisAdditions {
61251
61418
  * Returns an array of the new breaks for the axis.
61252
61419
  */
61253
61420
  expand(node) {
61254
- const axis = this.axis, breaks = (axis.options.breaks || []), obj = getBreakFromNode(node, axis.max);
61421
+ const axis = this.axis, obj = getBreakFromNode(node);
61255
61422
  // Change the collapsed flag #13838
61256
61423
  node.collapsed = false;
61257
61424
  axis.treeGrid.setCollapsedStatus(node);
61258
61425
  // Remove the break from the axis breaks array.
61259
- return breaks.reduce(function (arr, b) {
61426
+ return axis.options.breaks?.reduce(function (arr, b) {
61260
61427
  if (b.to !== obj.to || b.from !== obj.from) {
61261
61428
  arr.push(b);
61262
61429
  }
61263
61430
  return arr;
61264
- }, []);
61431
+ }, []) || [];
61265
61432
  }
61266
61433
  /**
61267
61434
  * Creates a list of positions for the ticks on the axis. Filters out
@@ -61289,20 +61456,14 @@ class TreeGridAxisAdditions {
61289
61456
  *
61290
61457
  * @private
61291
61458
  *
61292
- * @param {Highcharts.Axis} axis
61293
- * The axis to check against.
61294
- *
61295
61459
  * @param {Object} node
61296
61460
  * The node to check if is collapsed.
61297
61461
  *
61298
- * @param {number} pos
61299
- * The tick position to collapse.
61300
- *
61301
61462
  * @return {boolean}
61302
61463
  * Returns true if collapsed, false if expanded.
61303
61464
  */
61304
61465
  isCollapsed(node) {
61305
- const axis = this.axis, breaks = (axis.options.breaks || []), obj = getBreakFromNode(node, axis.max);
61466
+ const axis = this.axis, breaks = (axis.options.breaks || []), obj = getBreakFromNode(node);
61306
61467
  return breaks.some(function (b) {
61307
61468
  return b.from === obj.from && b.to === obj.to;
61308
61469
  });
@@ -61486,7 +61647,7 @@ Series_SeriesRegistry.registerSeriesType('gantt', GanttSeries);
61486
61647
 
61487
61648
  ;// ./code/es-modules/masters/modules/gantt.src.js
61488
61649
  /**
61489
- * @license Highcharts Gantt JS v12.2.0 (2025-04-07)
61650
+ * @license Highcharts Gantt JS v12.4.0 (2025-09-04)
61490
61651
  * @module highcharts/modules/gantt
61491
61652
  * @requires highcharts
61492
61653
  *
@@ -61529,14 +61690,7 @@ gantt_src_G.Scrollbar.compose(gantt_src_G.Axis);
61529
61690
  /* harmony default export */ const gantt_src = ((/* unused pure expression or super */ null && (Highcharts)));
61530
61691
 
61531
61692
  ;// ./code/es-modules/masters/highcharts-gantt.src.js
61532
- /**
61533
- * @license Highcharts Gantt JS v12.2.0 (2025-04-07)
61534
- * @module highcharts/highcharts-gantt
61535
- *
61536
- * (c) 2017-2025 Lars Cabrera, Torstein Honsi, Jon Arild Nygard & Oystein Moseng
61537
- *
61538
- * License: www.highcharts.com/license
61539
- */
61693
+
61540
61694
 
61541
61695
 
61542
61696