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
package/highstock.src.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @license Highcharts JS v12.2.0 (2025-04-07)
3
- * @module highcharts/highcharts
2
+ * @license Highchart Stock v12.4.0 (2025-09-04)
3
+ * @module highcharts/highstock
4
4
  *
5
- * (c) 2009-2025 Torstein Honsi
5
+ * (c) 2009-2025 Highsoft AS
6
6
  *
7
7
  * License: www.highcharts.com/license
8
8
  */
@@ -74,7 +74,7 @@ var Globals;
74
74
  * Constants
75
75
  *
76
76
  * */
77
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.2.0', Globals.win = (typeof window !== 'undefined' ?
77
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '12.4.0', Globals.win = (typeof window !== 'undefined' ?
78
78
  window :
79
79
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
80
80
  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 +2630,10 @@ const ChartDefaults = {
2630
2630
  * panning action is finished, the axes will adjust to their actual
2631
2631
  * settings.
2632
2632
  *
2633
+ * **Note:** For non-cartesian series, the only supported panning type
2634
+ * is `xy`, as zooming in a single direction is not applicable due to
2635
+ * the radial nature of the coordinate system.
2636
+ *
2633
2637
  * @sample {highcharts} highcharts/chart/panning-type
2634
2638
  * Zooming and xy panning
2635
2639
  *
@@ -2955,11 +2959,12 @@ const ChartDefaults = {
2955
2959
  * others series in a stack. The shadow can be an object configuration
2956
2960
  * containing `color`, `offsetX`, `offsetY`, `opacity` and `width`.
2957
2961
  *
2958
- * @sample highcharts/chart/seriesgroupshadow/ Shadow
2962
+ * @sample highcharts/chart/seriesgroupshadow/
2963
+ * Shadow
2959
2964
  *
2960
2965
  * @type {boolean|Highcharts.ShadowOptionsObject}
2961
2966
  * @default false
2962
- * @apioption chart.shadow
2967
+ * @apioption chart.seriesGroupShadow
2963
2968
  */
2964
2969
  /**
2965
2970
  * Whether to apply a drop shadow to the outer chart area. Requires
@@ -3169,6 +3174,11 @@ const ChartDefaults = {
3169
3174
  /**
3170
3175
  * Chart zooming options.
3171
3176
  * @since 10.2.1
3177
+ *
3178
+ * @sample highcharts/plotoptions/sankey-node-color
3179
+ * Zooming in sankey series
3180
+ * @sample highcharts/series-treegraph/link-types
3181
+ * Zooming in treegraph series
3172
3182
  */
3173
3183
  zooming: {
3174
3184
  /**
@@ -3191,6 +3201,10 @@ const ChartDefaults = {
3191
3201
  * Decides in what dimensions the user can zoom by dragging the mouse.
3192
3202
  * Can be one of `x`, `y` or `xy`.
3193
3203
  *
3204
+ * **Note:** For non-cartesian series, the only supported zooming type
3205
+ * is `xy`, as zooming in a single direction is not applicable due to
3206
+ * the radial nature of the coordinate system.
3207
+ *
3194
3208
  * @declare Highcharts.OptionsChartZoomingTypeValue
3195
3209
  * @type {string}
3196
3210
  * @default {highcharts} undefined
@@ -3610,7 +3624,7 @@ class TimeBase {
3610
3624
  update(options = {}) {
3611
3625
  this.dTLCache = {};
3612
3626
  this.options = options = TimeBase_merge(true, this.options, options);
3613
- const { timezoneOffset, useUTC } = options;
3627
+ const { timezoneOffset, useUTC, locale } = options;
3614
3628
  // Allow using a different Date class
3615
3629
  this.Date = options.Date || TimeBase_win.Date || Date;
3616
3630
  // Assign the time zone. Handle the legacy, deprecated `useUTC` option.
@@ -3630,6 +3644,10 @@ class TimeBase {
3630
3644
  this.variableTimezone = timezone !== 'UTC' &&
3631
3645
  timezone?.indexOf('Etc/GMT') !== 0;
3632
3646
  this.timezone = timezone;
3647
+ // Update locale.
3648
+ if (this.lang && locale) {
3649
+ this.lang.locale = locale;
3650
+ }
3633
3651
  // Assign default time formats from locale strings
3634
3652
  ['months', 'shortMonths', 'weekdays', 'shortWeekdays'].forEach((name) => {
3635
3653
  const isMonth = /months/i.test(name), isShort = /short/.test(name), options = {
@@ -4570,6 +4588,9 @@ const defaultOptions = {
4570
4588
  * setup uses `Highcharts.setOptions` to make the options apply to all
4571
4589
  * charts in the same page.
4572
4590
  *
4591
+ * Some language options, like `months` and `weekdays`, are only used
4592
+ * with non-locale-aware date formats.
4593
+ *
4573
4594
  * ```js
4574
4595
  * Highcharts.setOptions({
4575
4596
  * lang: {
@@ -4619,7 +4640,7 @@ const defaultOptions = {
4619
4640
  * An array containing the months names. Corresponds to the `%B` format
4620
4641
  * in `Highcharts.dateFormat()`. Defaults to 'undefined',
4621
4642
  * meaning the default month names are used according to the
4622
- * `lang.locale` setting.
4643
+ * `lang.locale` or browser settings.
4623
4644
  *
4624
4645
  * @type {Array<string>}
4625
4646
  */
@@ -4634,23 +4655,25 @@ const defaultOptions = {
4634
4655
  * An array containing the months names in abbreviated form. Corresponds
4635
4656
  * to the `%b` format in `Highcharts.dateFormat()`. Defaults to
4636
4657
  * 'undefined', meaning the default short month names are used according
4637
- * to the `lang.locale` setting.
4658
+ * to the `lang.locale` or browser settings.
4638
4659
  *
4639
4660
  * @type {Array<string>}
4640
4661
  */
4641
4662
  shortMonths: void 0,
4642
4663
  /**
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.
4664
+ * An array containing the weekday names. Corresponds
4665
+ * to the `%A` format in `Highcharts.dateFormat()`. Defaults to
4666
+ * 'undefined', meaning the default weekday names are used according to
4667
+ * the `lang.locale` or browser settings.
4646
4668
  *
4647
4669
  * @type {Array<string>}
4648
4670
  */
4649
4671
  weekdays: void 0,
4650
4672
  /**
4651
- * Short week days, starting Sunday. Defaults to 'undefined', meaning
4673
+ * Short week days, starting Sunday. Corresponds to the `%a` format in
4674
+ * `Highcharts.dateFormat()`. Defaults to 'undefined', meaning
4652
4675
  * the default short weekday names are used according to the
4653
- * `lang.locale` setting.
4676
+ * `lang.locale` or browser settings.
4654
4677
  *
4655
4678
  * @sample highcharts/lang/shortweekdays/
4656
4679
  * Finnish two-letter abbreviations
@@ -6213,6 +6236,10 @@ const defaultOptions = {
6213
6236
  * @since 3.0
6214
6237
  */
6215
6238
  style: {
6239
+ /**
6240
+ * @ignore
6241
+ */
6242
+ color: "#333333" /* Palette.neutralColor80 */,
6216
6243
  /**
6217
6244
  * @ignore
6218
6245
  */
@@ -7481,7 +7508,7 @@ const isStringColor = (color) => Color_isString(color) && !!color && color !== '
7481
7508
  * @name Highcharts.Color
7482
7509
  *
7483
7510
  * @param {Highcharts.ColorType} input
7484
- * The input color in either rgba or hex format
7511
+ * The input color.
7485
7512
  */
7486
7513
  class Color {
7487
7514
  /* *
@@ -7495,7 +7522,7 @@ class Color {
7495
7522
  * @function Highcharts.Color.parse
7496
7523
  *
7497
7524
  * @param {Highcharts.ColorType} [input]
7498
- * The input color in either rgba or hex format.
7525
+ * The input color.
7499
7526
  *
7500
7527
  * @return {Highcharts.Color}
7501
7528
  * Color instance.
@@ -7755,11 +7782,7 @@ Color.None = new Color('');
7755
7782
  *
7756
7783
  * */
7757
7784
  /**
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.
7785
+ * A valid color to be parsed and handled by Highcharts.
7763
7786
  *
7764
7787
  * @typedef {string} Highcharts.ColorString
7765
7788
  */
@@ -7863,7 +7886,7 @@ Color.None = new Color('');
7863
7886
  * @function Highcharts.color
7864
7887
  *
7865
7888
  * @param {Highcharts.ColorType} input
7866
- * The input color in either rgba or hex format
7889
+ * The input color.
7867
7890
  *
7868
7891
  * @return {Highcharts.Color}
7869
7892
  * Color instance
@@ -8707,7 +8730,7 @@ class AST {
8707
8730
  trustedTypesPolicy.createHTML(markup) :
8708
8731
  markup, 'text/html');
8709
8732
  }
8710
- catch (e) {
8733
+ catch {
8711
8734
  // There are two cases where this fails:
8712
8735
  // 1. IE9 and PhantomJS, where the DOMParser only supports parsing
8713
8736
  // XML
@@ -8800,9 +8823,9 @@ AST.allowedAttributes = [
8800
8823
  'cx',
8801
8824
  'cy',
8802
8825
  'd',
8826
+ 'disabled',
8803
8827
  'dx',
8804
8828
  'dy',
8805
- 'disabled',
8806
8829
  'fill',
8807
8830
  'filterUnits',
8808
8831
  'flood-color',
@@ -8826,22 +8849,22 @@ AST.allowedAttributes = [
8826
8849
  'radius',
8827
8850
  'refX',
8828
8851
  'refY',
8852
+ 'result',
8829
8853
  'role',
8854
+ 'rowspan',
8830
8855
  'scope',
8831
8856
  'slope',
8832
8857
  'src',
8833
8858
  'startOffset',
8834
8859
  'stdDeviation',
8835
- 'stroke',
8836
8860
  'stroke-linecap',
8837
8861
  'stroke-width',
8862
+ 'stroke',
8838
8863
  'style',
8839
- 'tableValues',
8840
- 'result',
8841
- 'rowspan',
8842
8864
  'summary',
8843
- 'target',
8844
8865
  'tabindex',
8866
+ 'tableValues',
8867
+ 'target',
8845
8868
  'text-align',
8846
8869
  'text-anchor',
8847
8870
  'textAnchor',
@@ -8898,6 +8921,7 @@ AST.allowedReferences = [
8898
8921
  * @type {Array<string>}
8899
8922
  */
8900
8923
  AST.allowedTags = [
8924
+ '#text',
8901
8925
  'a',
8902
8926
  'abbr',
8903
8927
  'b',
@@ -8922,10 +8946,10 @@ AST.allowedTags = [
8922
8946
  'feFuncG',
8923
8947
  'feFuncR',
8924
8948
  'feGaussianBlur',
8925
- 'feMorphology',
8926
- 'feOffset',
8927
8949
  'feMerge',
8928
8950
  'feMergeNode',
8951
+ 'feMorphology',
8952
+ 'feOffset',
8929
8953
  'filter',
8930
8954
  'h1',
8931
8955
  'h2',
@@ -8954,18 +8978,17 @@ AST.allowedTags = [
8954
8978
  'sup',
8955
8979
  'svg',
8956
8980
  'table',
8981
+ 'tbody',
8982
+ 'td',
8957
8983
  'text',
8958
8984
  'textPath',
8985
+ 'th',
8959
8986
  'thead',
8960
8987
  'title',
8961
- 'tbody',
8962
- 'tspan',
8963
- 'td',
8964
- 'th',
8965
8988
  'tr',
8989
+ 'tspan',
8966
8990
  'u',
8967
- 'ul',
8968
- '#text'
8991
+ 'ul'
8969
8992
  ];
8970
8993
  AST.emptyHTML = emptyHTML;
8971
8994
  /**
@@ -9161,7 +9184,7 @@ function format(str = '', ctx, owner) {
9161
9184
  // The sub expression regex is the same as the top expression regex,
9162
9185
  // but except parens and block helpers (#), and surrounded by parens
9163
9186
  // 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;
9187
+ 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
9188
  /*
9166
9189
  * Get a literal or variable value inside a template expression. May be
9167
9190
  * extended with other types like string or null if needed, but keep it
@@ -9296,9 +9319,11 @@ function format(str = '', ctx, owner) {
9296
9319
  [expression] : expression.split(':');
9297
9320
  replacement = resolveProperty(valueAndFormat.shift() || '');
9298
9321
  // Format the replacement
9299
- if (valueAndFormat.length && typeof replacement === 'number') {
9322
+ const isFloat = replacement % 1 !== 0;
9323
+ if (typeof replacement === 'number' &&
9324
+ (valueAndFormat.length || isFloat)) {
9300
9325
  const segment = valueAndFormat.join(':');
9301
- if (floatRegex.test(segment)) { // Float
9326
+ if (floatRegex.test(segment) || isFloat) { // Float
9302
9327
  const decimals = parseInt((segment.match(decRegex) || ['', '-1'])[1], 10);
9303
9328
  if (replacement !== null) {
9304
9329
  replacement = numberFormatter(replacement, decimals, lang.decimalPoint, segment.indexOf(',') > -1 ? lang.thousandsSep : '');
@@ -9393,8 +9418,7 @@ function numberFormat(number, decimals, decimalPoint, thousandsSep) {
9393
9418
  options.useGrouping = false;
9394
9419
  }
9395
9420
  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));
9421
+ 'en' : (this?.locale || lang.locale || Templating_pageLang), cacheKey = JSON.stringify(options) + locale, nf = numberFormatCache[cacheKey] ?? (numberFormatCache[cacheKey] = new Intl.NumberFormat(locale, options));
9398
9422
  ret = nf.format(number);
9399
9423
  // If thousandsSep or decimalPoint are set, fall back to using English
9400
9424
  // format with string replacement for the separators.
@@ -10718,8 +10742,8 @@ class SVGElement {
10718
10742
  toggleTextShadowShim('');
10719
10743
  }
10720
10744
  }
10721
- catch (e) {
10722
- '';
10745
+ catch {
10746
+ // Ignore error
10723
10747
  }
10724
10748
  // If the bBox is not set, the try-catch block above failed. The
10725
10749
  // other condition is for Opera that returns a width of
@@ -11624,7 +11648,8 @@ class SVGLabel extends SVG_SVGElement {
11624
11648
  * Constructor
11625
11649
  *
11626
11650
  * */
11627
- constructor(renderer, str, x, y, shape, anchorX, anchorY, useHTML, baseline, className) {
11651
+ constructor(renderer, str, x, y, shape, // @todo (SymbolKey|string),
11652
+ anchorX, anchorY, useHTML, baseline, className) {
11628
11653
  super(renderer, 'g');
11629
11654
  this.paddingLeftSetter = this.paddingSetter;
11630
11655
  this.paddingRightSetter = this.paddingSetter;
@@ -11957,10 +11982,18 @@ class SVGLabel extends SVG_SVGElement {
11957
11982
  // Force animation even when setting to the same value (#7898)
11958
11983
  this['forceAnimate:x'] = true;
11959
11984
  }
11985
+ if (this.anchorX) {
11986
+ // #22907, force anchorX to animate after x set
11987
+ this['forceAnimate:anchorX'] = true;
11988
+ }
11960
11989
  this.xSetting = Math.round(value);
11961
11990
  this.attr('translateX', this.xSetting);
11962
11991
  }
11963
11992
  ySetter(value) {
11993
+ if (this.anchorY) {
11994
+ // #22907, force anchorY to animate after y set
11995
+ this['forceAnimate:anchorY'] = true;
11996
+ }
11964
11997
  this.ySetting = this.y = Math.round(value);
11965
11998
  this.attr('translateY', this.ySetting);
11966
11999
  }
@@ -12627,8 +12660,8 @@ class TextBuilder {
12627
12660
  lengths[end] = startAt +
12628
12661
  parentNode.getSubStringLength(0, words ? end + 1 : end);
12629
12662
  }
12630
- catch (e) {
12631
- '';
12663
+ catch {
12664
+ // Ignore error
12632
12665
  }
12633
12666
  }
12634
12667
  }
@@ -12880,7 +12913,7 @@ class SVGRenderer {
12880
12913
  this.url = this.getReferenceURL();
12881
12914
  // Add description
12882
12915
  const desc = this.createElement('desc').add();
12883
- desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.2.0'));
12916
+ desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 12.4.0'));
12884
12917
  this.defs = this.createElement('defs').add();
12885
12918
  this.allowHTML = allowHTML;
12886
12919
  this.forExport = forExport;
@@ -13216,6 +13249,9 @@ class SVGRenderer {
13216
13249
  * The contrast color, either `#000000` or `#FFFFFF`.
13217
13250
  */
13218
13251
  getContrast(color) {
13252
+ if (color === 'transparent') {
13253
+ return '#000000';
13254
+ }
13219
13255
  // #6216, #17273
13220
13256
  const rgba256 = Color_Color.parse(color).rgba,
13221
13257
  // For each rgb channel, compute the luminosity based on all
@@ -14016,15 +14052,15 @@ class SVGRenderer {
14016
14052
  *
14017
14053
  * @function Highcharts.SVGRenderer#fontMetrics
14018
14054
  *
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.
14055
+ * @param {Highcharts.SVGElement|Highcharts.SVGDOMElement|number} ref
14056
+ * The element to inspect for a current font size. If a number is given,
14057
+ * it's used as a fall back for direct font size in pixels.
14022
14058
  *
14023
14059
  * @return {Highcharts.FontMetricsObject}
14024
- * The font metrics.
14060
+ * The font metrics.
14025
14061
  */
14026
- fontMetrics(element) {
14027
- const f = SVGRenderer_pInt(SVG_SVGElement.prototype.getStyle.call(element, 'font-size') || 0);
14062
+ fontMetrics(ref) {
14063
+ const f = SVGRenderer_isNumber(ref) ? ref : SVGRenderer_pInt((SVG_SVGElement.prototype.getStyle.call(ref, 'font-size') || 0));
14028
14064
  // Empirical values found by comparing font size and bounding box
14029
14065
  // height. Applies to the default font family.
14030
14066
  // https://jsfiddle.net/highcharts/7xvn7/
@@ -14637,10 +14673,10 @@ const { attr: HTMLElement_attr, css: HTMLElement_css, createElement: HTMLElement
14637
14673
  * @private
14638
14674
  */
14639
14675
  function commonSetter(value, key, elem) {
14640
- const style = this.div?.style || elem.style;
14676
+ const style = this.div?.style;
14641
14677
  SVG_SVGElement.prototype[`${key}Setter`].call(this, value, key, elem);
14642
14678
  if (style) {
14643
- style[key] = value;
14679
+ elem.style[key] = style[key] = value;
14644
14680
  }
14645
14681
  }
14646
14682
  /**
@@ -14685,6 +14721,10 @@ const decorateSVGGroup = (g, container) => {
14685
14721
  div.style[key === 'translateX' ? 'left' : 'top'] = `${value}px`;
14686
14722
  g.doTransform = true;
14687
14723
  };
14724
+ g.scaleXSetter = g.scaleYSetter = (value, key) => {
14725
+ g[key] = value;
14726
+ g.doTransform = true;
14727
+ };
14688
14728
  g.opacitySetter = g.visibilitySetter = commonSetter;
14689
14729
  // Extend the parent group's css function by updating the parallel div
14690
14730
  // counterpart with the same style.
@@ -14879,7 +14919,8 @@ class HTMLElement extends SVG_SVGElement {
14879
14919
  // Calling offsetWidth affects rendering time as it forces layout
14880
14920
  // (#7656).
14881
14921
  if (textWidth !== oldTextWidth) { // #983, #1254
14882
- const textPxLength = getTextPxLength(), textWidthNum = textWidth || 0, willOverWrap = element.style.textOverflow === '' &&
14922
+ const textPxLength = getTextPxLength(), textWidthNum = textWidth || 0, willOverWrap = !renderer.styledMode &&
14923
+ element.style.textOverflow === '' &&
14883
14924
  element.style.webkitLineClamp;
14884
14925
  if ((textWidthNum > oldTextWidth ||
14885
14926
  textPxLength > textWidthNum ||
@@ -15772,14 +15813,6 @@ var AxisDefaults;
15772
15813
  * @context Highcharts.Axis
15773
15814
  * @apioption xAxis.events.pointInBreak
15774
15815
  */
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
15816
  /**
15784
15817
  * Fires when the minimum and maximum is set for the axis, either by
15785
15818
  * calling the `.setExtremes()` method or by selecting an area in the
@@ -16850,6 +16883,10 @@ var AxisDefaults;
16850
16883
  * overrides the default behaviour of [tickPixelInterval](
16851
16884
  * #xAxis.tickPixelInterval) and [tickInterval](#xAxis.tickInterval).
16852
16885
  *
16886
+ * Note: When working with date-time axes, be aware of time zone
16887
+ * handling. See the [documentation on time options](https://www.highcharts.com/docs/chart-concepts/axes#datetime)
16888
+ * for best practices.
16889
+ *
16853
16890
  * @see [tickPositioner](#xAxis.tickPositioner)
16854
16891
  *
16855
16892
  * @sample {highcharts} highcharts/xaxis/tickpositions-tickpositioner/
@@ -17937,6 +17974,7 @@ var AxisDefaults;
17937
17974
  * @default {highcharts} Values
17938
17975
  * @default {highstock} undefined
17939
17976
  * @product highcharts highstock gantt
17977
+ * @apioption yAxis.title.text
17940
17978
  */
17941
17979
  },
17942
17980
  /**
@@ -18307,7 +18345,7 @@ class Tick {
18307
18345
  // position, use that. If not, use the general format.
18308
18346
  if (axis.dateTime) {
18309
18347
  if (tickPositionInfo) {
18310
- dateTimeLabelFormats = chart.time.resolveDTLFormat(options.dateTimeLabelFormats[(!options.grid &&
18348
+ dateTimeLabelFormats = chart.time.resolveDTLFormat(options.dateTimeLabelFormats[(!options.grid?.enabled &&
18311
18349
  tickPositionInfo.higherRanks[pos]) ||
18312
18350
  tickPositionInfo.unitName]);
18313
18351
  dateTimeLabelFormat = dateTimeLabelFormats.main;
@@ -19426,7 +19464,7 @@ class Axis {
19426
19464
  }
19427
19465
  const minPixelPadding = axis.minPixelPadding, doPostTranslate = (axis.isOrdinal ||
19428
19466
  axis.brokenAxis?.hasBreaks ||
19429
- (axis.logarithmic && handleLog)) && axis.lin2val;
19467
+ (axis.logarithmic && handleLog)) && !!axis.lin2val;
19430
19468
  let sign = 1, cvsOffset = 0, localA = old && axis.old ? axis.old.transA : axis.transA, returnValue = 0;
19431
19469
  if (!localA) {
19432
19470
  localA = axis.transA;
@@ -20988,7 +21026,8 @@ class Axis {
20988
21026
  if (cssWidth !== void 0) {
20989
21027
  return parseInt(String(cssWidth), 10);
20990
21028
  }
20991
- if (marginLeft) {
21029
+ // Skip marginLeft for opposite axis to avoid label cutoff, #22821
21030
+ if (!this.opposite && marginLeft) {
20992
21031
  return marginLeft - chart.spacing[3];
20993
21032
  }
20994
21033
  }
@@ -21703,7 +21742,7 @@ class Axis {
21703
21742
  axis.plotLinesAndBandsGroups[plotGroup].destroy();
21704
21743
  }
21705
21744
  // Delete all properties and fall back to the prototype.
21706
- Axis_objectEach(axis, function (val, key) {
21745
+ Axis_objectEach(axis, function (_val, key) {
21707
21746
  if (axis.getKeepProps().indexOf(key) === -1) {
21708
21747
  delete axis[key];
21709
21748
  }
@@ -22986,7 +23025,7 @@ class PlotLineOrBand {
22986
23025
  // Common for lines and bands. Add events only if they were not added
22987
23026
  // before.
22988
23027
  if (!this.eventsAdded && events) {
22989
- PlotLineOrBand_objectEach(events, (event, eventType) => {
23028
+ PlotLineOrBand_objectEach(events, (_event, eventType) => {
22990
23029
  svgElem?.on(eventType, (e) => {
22991
23030
  events[eventType].apply(this, [e]);
22992
23031
  });
@@ -23060,6 +23099,11 @@ class PlotLineOrBand {
23060
23099
  });
23061
23100
  if (!axis.chart.styledMode) {
23062
23101
  label.css(PlotLineOrBand_merge({
23102
+ // To allow theming, and in lack of a general place to set
23103
+ // default options for plot lines and bands, default to the
23104
+ // title color. If we expose the palette, we should use that
23105
+ // instead.
23106
+ color: axis.chart.options.title?.style?.color,
23063
23107
  fontSize: '0.8em',
23064
23108
  textOverflow: (isBand && !inside) ? '' : 'ellipsis'
23065
23109
  }, optionsLabel.style));
@@ -23592,7 +23636,7 @@ class PlotLineOrBand {
23592
23636
  * @apioption xAxis.plotLines.zIndex
23593
23637
  */
23594
23638
  /**
23595
- * Text labels for the plot bands
23639
+ * Text labels for the plot lines
23596
23640
  *
23597
23641
  * @apioption xAxis.plotLines.label
23598
23642
  */
@@ -23610,6 +23654,14 @@ class PlotLineOrBand {
23610
23654
  * @since 2.1
23611
23655
  * @apioption xAxis.plotLines.label.align
23612
23656
  */
23657
+ /**
23658
+ * Whether or not the label can be hidden if it overlaps with another label.
23659
+ *
23660
+ * @type {boolean}
23661
+ * @default undefined
23662
+ * @since 11.4.8
23663
+ * @apioption xAxis.plotBands.label.allowOverlap
23664
+ */
23613
23665
  /**
23614
23666
  * Whether to hide labels that are outside the plot area.
23615
23667
  *
@@ -23987,7 +24039,9 @@ class Tooltip {
23987
24039
  // Use the average position for multiple points
23988
24040
  ret = [chartX - plotLeft, chartY - plotTop];
23989
24041
  }
23990
- return ret.map(Math.round);
24042
+ const params = { point: points[0], ret };
24043
+ Tooltip_fireEvent(this, 'getAnchor', params);
24044
+ return params.ret.map(Math.round);
23991
24045
  }
23992
24046
  /**
23993
24047
  * Get the CSS class names for the tooltip's label. Styles the label
@@ -25264,6 +25318,15 @@ class Point {
25264
25318
  * @name Highcharts.Point#shapeArgs
25265
25319
  * @type {Readonly<Highcharts.SVGAttributes>|undefined}
25266
25320
  */
25321
+ /**
25322
+ * Defines the tooltip's position for a data point in a chart. It is an
25323
+ * array of numbers representing the coordinates for the tooltip's
25324
+ * placement, allowing for precise control over its location.
25325
+ *
25326
+ * @readonly
25327
+ * @name Highcharts.Point#tooltipPos
25328
+ * @type {Readonly<Array<number>>|undefined}
25329
+ */
25267
25330
  /**
25268
25331
  * The total of values in either a stack for stacked series, or a pie in a
25269
25332
  * pie series.
@@ -26549,17 +26612,20 @@ class Pointer {
26549
26612
  activeSeries.push.apply(activeSeries, this.chart.series.filter((otherSeries) => otherSeries.markerGroup === series.markerGroup));
26550
26613
  }
26551
26614
  });
26552
- // Now loop over all series, filtering out active series
26553
- this.chart.series.forEach((series) => {
26615
+ for (const series of this.chart.series) {
26616
+ const seriesOptions = series.options;
26617
+ if (seriesOptions.states?.inactive?.enabled === false) {
26618
+ continue;
26619
+ }
26554
26620
  if (activeSeries.indexOf(series) === -1) {
26555
26621
  // Inactive series
26556
26622
  series.setState('inactive', true);
26557
26623
  }
26558
- else if (series.options.inactiveOtherPoints) {
26624
+ else if (seriesOptions.inactiveOtherPoints) {
26559
26625
  // Active series, but other points should be inactivated
26560
26626
  series.setAllPointsToState('inactive');
26561
26627
  }
26562
- });
26628
+ }
26563
26629
  }
26564
26630
  /**
26565
26631
  * Destroys the Pointer object and disconnects DOM events.
@@ -26659,8 +26725,7 @@ class Pointer {
26659
26725
  });
26660
26726
  const { shapeType, attrs } = this.getSelectionMarkerAttrs(chartX, chartY);
26661
26727
  // Make a selection
26662
- if ((chart.hasCartesianSeries || chart.mapView) &&
26663
- this.hasZoom &&
26728
+ if (this.hasZoom &&
26664
26729
  clickedInside &&
26665
26730
  !panKeyPressed) {
26666
26731
  if (!selectionMarker) {
@@ -26773,6 +26838,7 @@ class Pointer {
26773
26838
  chart.mouseIsDown = false;
26774
26839
  this.hasDragged = 0;
26775
26840
  this.pinchDown = [];
26841
+ this.hasPinchMoved = false;
26776
26842
  }
26777
26843
  }
26778
26844
  /**
@@ -27246,7 +27312,7 @@ class Pointer {
27246
27312
  this.drag(pEvt);
27247
27313
  }
27248
27314
  // Show the tooltip and run mouse over events (#977)
27249
- if (!chart.openMenu &&
27315
+ if (!chart.exporting?.openMenu &&
27250
27316
  (this.inClass(pEvt.target, 'highcharts-tracker') ||
27251
27317
  chart.isInsidePlot(pEvt.chartX - chart.plotLeft, pEvt.chartY - chart.plotTop, {
27252
27318
  visiblePlotOnly: true
@@ -27322,6 +27388,11 @@ class Pointer {
27322
27388
  * @function Highcharts.Pointer#onDocumentMouseUp
27323
27389
  */
27324
27390
  onDocumentMouseUp(e) {
27391
+ // #17852, IOS devices sometimes reverts back to previous point when
27392
+ // dragging between points
27393
+ if (e?.touches && this.hasPinchMoved) {
27394
+ e?.preventDefault?.();
27395
+ }
27325
27396
  Pointer_charts[Pointer_pick(Pointer.hoverChartIndex, -1)]
27326
27397
  ?.pointer
27327
27398
  ?.drop(e);
@@ -27865,7 +27936,7 @@ class Pointer {
27865
27936
  isInside = chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop, {
27866
27937
  visiblePlotOnly: true
27867
27938
  });
27868
- if (isInside && !chart.openMenu) {
27939
+ if (isInside && !chart.exporting?.openMenu) {
27869
27940
  // Run mouse events and display tooltip etc
27870
27941
  if (start) {
27871
27942
  this.runPointActions(e);
@@ -27877,7 +27948,7 @@ class Pointer {
27877
27948
  // checking how much it moved, and cancelling on small
27878
27949
  // distances. #3450. Tested and still relevant as of 2024.
27879
27950
  if (e.type === 'touchmove') {
27880
- hasMoved = pinchDown[0] ? // #5266
27951
+ this.hasPinchMoved = hasMoved = pinchDown[0] ? // #5266
27881
27952
  (Math.pow(pinchDown[0].chartX - e.chartX, 2) +
27882
27953
  Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
27883
27954
  false;
@@ -30805,9 +30876,7 @@ const seriesDefaults = {
30805
30876
  size: 10,
30806
30877
  /**
30807
30878
  * 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.
30879
+ * using the `attributes` setting.
30811
30880
  *
30812
30881
  * @since 4.0
30813
30882
  * @product highcharts highstock
@@ -31120,6 +31189,12 @@ const seriesDefaults = {
31120
31189
  *
31121
31190
  * */
31122
31191
 
31192
+ /* *
31193
+ *
31194
+ * Imports
31195
+ *
31196
+ * */
31197
+
31123
31198
 
31124
31199
 
31125
31200
  const { defaultOptions: SeriesRegistry_defaultOptions } = Defaults;
@@ -31203,7 +31278,8 @@ var SeriesRegistry;
31203
31278
  defaultPlotOptions[type] = SeriesRegistry_merge(defaultPlotOptions[parent], options);
31204
31279
  // Create the class
31205
31280
  delete SeriesRegistry.seriesTypes[type];
31206
- registerSeriesType(type, SeriesRegistry_extendClass(SeriesRegistry.seriesTypes[parent] || function () { }, seriesProto));
31281
+ const parentClass = SeriesRegistry.seriesTypes[parent] || Series_Series, childClass = SeriesRegistry_extendClass(parentClass, seriesProto);
31282
+ registerSeriesType(type, childClass);
31207
31283
  SeriesRegistry.seriesTypes[type].prototype.type = type;
31208
31284
  // Create the point class if needed
31209
31285
  if (pointProto) {
@@ -32035,7 +32111,9 @@ class Series {
32035
32111
  // all the rest are defined the same way. Although the 'for' loops
32036
32112
  // are similar, they are repeated inside each if-else conditional
32037
32113
  // for max performance.
32038
- let runTurbo = turboThreshold && dataLength > turboThreshold;
32114
+ let runTurbo = (turboThreshold &&
32115
+ !options.relativeXValue &&
32116
+ dataLength > turboThreshold);
32039
32117
  if (runTurbo) {
32040
32118
  const firstPoint = series.getFirstValidPoint(data), lastPoint = series.getFirstValidPoint(data, dataLength - 1, -1), isShortArray = (a) => Boolean(Series_isArray(a) && (keys || Series_isNumber(a[0])));
32041
32119
  // Assume all points are numbers
@@ -33380,18 +33458,26 @@ class Series {
33380
33458
  horAxis = vertAxis;
33381
33459
  vertAxis = this.xAxis;
33382
33460
  }
33383
- return {
33461
+ const params = {
33462
+ scale: 1,
33384
33463
  translateX: horAxis ? horAxis.left : chart.plotLeft,
33385
33464
  translateY: vertAxis ? vertAxis.top : chart.plotTop,
33465
+ name
33466
+ };
33467
+ Series_fireEvent(this, 'getPlotBox', params);
33468
+ const { scale, translateX, translateY } = params;
33469
+ return {
33470
+ translateX,
33471
+ translateY,
33386
33472
  rotation: inverted ? 90 : 0,
33387
33473
  rotationOriginX: inverted ?
33388
- (horAxis.len - vertAxis.len) / 2 :
33474
+ scale * (horAxis.len - vertAxis.len) / 2 :
33389
33475
  0,
33390
33476
  rotationOriginY: inverted ?
33391
- (horAxis.len + vertAxis.len) / 2 :
33477
+ scale * (horAxis.len + vertAxis.len) / 2 :
33392
33478
  0,
33393
- scaleX: inverted ? -1 : 1, // #1623
33394
- scaleY: 1
33479
+ scaleX: inverted ? -scale : scale, // #1623
33480
+ scaleY: scale
33395
33481
  };
33396
33482
  }
33397
33483
  /**
@@ -34011,7 +34097,7 @@ class Series {
34011
34097
  oldOptions.type ||
34012
34098
  chart.options.chart.type);
34013
34099
  const keepPoints = !(
34014
- // Indicators, histograms etc recalculate the data. It should be
34100
+ // Indicators etc recalculate the data. It should be
34015
34101
  // possible to omit this.
34016
34102
  this.hasDerivedData ||
34017
34103
  // New type requires new point classes
@@ -35221,16 +35307,14 @@ class Legend {
35221
35307
  * The item to remove
35222
35308
  */
35223
35309
  destroyItem(item) {
35224
- const checkbox = item.checkbox, legendItem = item.legendItem || {};
35310
+ const legendItem = item.legendItem || {};
35225
35311
  // Destroy SVG elements
35226
35312
  for (const key of ['group', 'label', 'line', 'symbol']) {
35227
35313
  if (legendItem[key]) {
35228
35314
  legendItem[key] = legendItem[key].destroy();
35229
35315
  }
35230
35316
  }
35231
- if (checkbox) {
35232
- Legend_discardElement(checkbox);
35233
- }
35317
+ item.checkbox = Legend_discardElement(item.checkbox);
35234
35318
  item.legendItem = void 0;
35235
35319
  }
35236
35320
  /**
@@ -35559,13 +35643,13 @@ class Legend {
35559
35643
  /(rtv|rm|rbv)/,
35560
35644
  /(rbh|cb|lbh)/,
35561
35645
  /(lbv|lm|ltv)/
35562
- ]).forEach(function (alignments, side) {
35646
+ ]).forEach((alignments, side) => {
35563
35647
  if (alignments.test(alignment) && !Legend_defined(margin[side])) {
35564
35648
  // Now we have detected on which side of the chart we should
35565
35649
  // reserve space for the legend
35566
35650
  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) +
35651
+ [1, -1, -1, 1][side] * (options[(side % 2) ? 'x' : 'y']) +
35652
+ (options.margin ?? 12) +
35569
35653
  spacing[side] +
35570
35654
  (chart.titleOffset[side] || 0)));
35571
35655
  }
@@ -36179,6 +36263,9 @@ class Legend {
36179
36263
  */ /**
36180
36264
  * @name Highcharts.LegendItemObject#symbol
36181
36265
  * @type {Highcharts.SVGElement|undefined}
36266
+ */ /**
36267
+ * @name Highcharts.LegendItemObject#label
36268
+ * @type {Highcharts.SVGElement|undefined}
36182
36269
  */
36183
36270
  /**
36184
36271
  * Gets fired when the legend item is clicked. The default
@@ -37525,8 +37612,8 @@ class Chart {
37525
37612
  getAxisMargins() {
37526
37613
  const chart = this,
37527
37614
  // [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) {
37615
+ axisOffset = chart.axisOffset = [0, 0, 0, 0], colorAxis = chart.colorAxis, margin = chart.margin, getOffset = (axes) => {
37616
+ axes.forEach((axis) => {
37530
37617
  if (axis.visible) {
37531
37618
  axis.getOffset();
37532
37619
  }
@@ -37540,9 +37627,9 @@ class Chart {
37540
37627
  getOffset(colorAxis);
37541
37628
  }
37542
37629
  // Add the axis offsets
37543
- Chart_marginNames.forEach(function (m, side) {
37630
+ Chart_marginNames.forEach((marginName, side) => {
37544
37631
  if (!Chart_defined(margin[side])) {
37545
- chart[m] += axisOffset[side];
37632
+ chart[marginName] += axisOffset[side];
37546
37633
  }
37547
37634
  });
37548
37635
  chart.setChartSize();
@@ -37583,7 +37670,7 @@ class Chart {
37583
37670
  delete chart.pointer?.chartPosition;
37584
37671
  // Width and height checks for display:none. Target is doc in Opera
37585
37672
  // and win in Firefox, Chrome and IE9.
37586
- if (!chart.isPrinting &&
37673
+ if (!chart.exporting?.isPrinting &&
37587
37674
  !chart.isResizing &&
37588
37675
  oldBox &&
37589
37676
  // When fired by resize observer inside hidden container
@@ -37797,21 +37884,22 @@ class Chart {
37797
37884
  Chart_fireEvent(this, 'resetMargins');
37798
37885
  const chart = this, chartOptions = chart.options.chart, plotBorderWidth = chartOptions.plotBorderWidth || 0, halfWidth = Math.round(plotBorderWidth) / 2;
37799
37886
  // Create margin and spacing array
37800
- ['margin', 'spacing'].forEach(function splashArrays(target) {
37887
+ ['margin', 'spacing'].forEach((target) => {
37801
37888
  const value = chartOptions[target], values = Chart_isObject(value) ? value : [value, value, value, value];
37802
37889
  [
37803
37890
  'Top',
37804
37891
  'Right',
37805
37892
  'Bottom',
37806
37893
  'Left'
37807
- ].forEach(function (sideName, side) {
37808
- chart[target][side] = Chart_pick(chartOptions[target + sideName], values[side]);
37894
+ ].forEach((sideName, side) => {
37895
+ chart[target][side] = (chartOptions[`${target}${sideName}`] ??
37896
+ values[side]);
37809
37897
  });
37810
37898
  });
37811
37899
  // Set margin names like chart.plotTop, chart.plotLeft,
37812
37900
  // chart.marginRight, chart.marginBottom.
37813
- Chart_marginNames.forEach(function (m, side) {
37814
- chart[m] = Chart_pick(chart.margin[side], chart.spacing[side]);
37901
+ Chart_marginNames.forEach((marginName, side) => {
37902
+ chart[marginName] = chart.margin[side] ?? chart.spacing[side];
37815
37903
  });
37816
37904
  chart.axisOffset = [0, 0, 0, 0]; // Top, right, bottom, left
37817
37905
  chart.clipOffset = [
@@ -38122,12 +38210,13 @@ class Chart {
38122
38210
  renderAxes(colorAxis);
38123
38211
  }
38124
38212
  // 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
- }
38213
+ chart.seriesGroup || (chart.seriesGroup = renderer.g('series-group')
38214
+ .attr({ zIndex: 3 })
38215
+ .shadow(chart.options.chart.seriesGroupShadow)
38216
+ .add());
38217
+ chart.dataLabelsGroup || (chart.dataLabelsGroup = renderer.g('datalabels-group')
38218
+ .attr({ zIndex: 6 })
38219
+ .add());
38131
38220
  chart.renderSeries();
38132
38221
  // Credits
38133
38222
  chart.addCredits();
@@ -38959,9 +39048,10 @@ class Chart {
38959
39048
  */
38960
39049
  transform(params) {
38961
39050
  const { axes = this.axes, event, from = {}, reset, selection, to = {}, trigger } = params, { inverted, time } = this;
38962
- let hasZoomed = false, displayButton, isAnyAxisPanning;
38963
39051
  // Remove active points for shared tooltip
38964
39052
  this.hoverPoints?.forEach((point) => point.setState());
39053
+ Chart_fireEvent(this, 'transform', params);
39054
+ let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
38965
39055
  for (const axis of axes) {
38966
39056
  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
39057
  // If fingers pinched very close on this axis, treat as pan
@@ -38977,19 +39067,19 @@ class Chart {
38977
39067
  if (!reset && (fromCenter < 0 || fromCenter > axis.len)) {
38978
39068
  continue;
38979
39069
  }
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;
39070
+ // Adjust offset to ensure selection zoom triggers correctly
39071
+ // (#22945)
39072
+ const offset = (axis.chart.polar || axis.isOrdinal) ?
39073
+ 0 :
39074
+ (minPointOffset * pointRangeDirection || 0), eventMin = axis.toValue(minPx, true), eventMax = axis.toValue(minPx + len / scale, true);
39075
+ let newMin = eventMin + offset, newMax = eventMax - offset, allExtremes = axis.allExtremes;
39076
+ if (selection) {
39077
+ selection[axis.coll].push({
39078
+ axis,
39079
+ min: Math.min(eventMin, eventMax),
39080
+ max: Math.max(eventMin, eventMax)
39081
+ });
39082
+ }
38993
39083
  if (newMin > newMax) {
38994
39084
  [newMin, newMax] = [newMax, newMin];
38995
39085
  }
@@ -39029,10 +39119,7 @@ class Chart {
39029
39119
  // It is not necessary to calculate extremes on ordinal axis,
39030
39120
  // because they are already calculated, so we don't want to override
39031
39121
  // them.
39032
- if (!axis.isOrdinal ||
39033
- axis.options.overscroll || // #21316
39034
- scale !== 1 ||
39035
- reset) {
39122
+ if (!axis.isOrdinal || scale !== 1 || reset) {
39036
39123
  // If the new range spills over, either to the min or max,
39037
39124
  // adjust it.
39038
39125
  if (newMin < floor) {
@@ -39077,6 +39164,13 @@ class Chart {
39077
39164
  }
39078
39165
  hasZoomed = true;
39079
39166
  }
39167
+ // Show the resetZoom button for non-cartesian series,
39168
+ // except when triggered by mouse wheel zoom
39169
+ if (!this.hasCartesianSeries &&
39170
+ !reset &&
39171
+ trigger !== 'mousewheel') {
39172
+ displayButton = true;
39173
+ }
39080
39174
  if (event) {
39081
39175
  this[horiz ? 'mouseDownX' : 'mouseDownY'] =
39082
39176
  event[horiz ? 'chartX' : 'chartY'];
@@ -39368,29 +39462,33 @@ class ScrollablePlotArea {
39368
39462
  static afterSetSize(chart, e) {
39369
39463
  const { minWidth, minHeight } = chart.options.chart.scrollablePlotArea || {}, { clipBox, plotBox, inverted, renderer } = chart;
39370
39464
  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) {
39465
+ // Skip for exporting
39466
+ if (renderer.forExport) {
39467
+ return;
39468
+ }
39469
+ // The amount of pixels to scroll, the difference between chart width
39470
+ // and scrollable width
39471
+ if (minWidth) {
39472
+ chart.scrollablePixelsX = scrollablePixelsX = Math.max(0, minWidth - chart.chartWidth);
39473
+ if (scrollablePixelsX) {
39474
+ chart.scrollablePlotBox = ScrollablePlotArea_merge(chart.plotBox);
39475
+ plotBox.width = chart.plotWidth += scrollablePixelsX;
39476
+ clipBox[inverted ? 'height' : 'width'] += scrollablePixelsX;
39477
+ recalculateHoriz = true;
39478
+ }
39479
+ // Currently we can only do either X or Y
39480
+ }
39481
+ else if (minHeight) {
39482
+ chart.scrollablePixelsY = scrollablePixelsY = Math.max(0, minHeight - chart.chartHeight);
39483
+ if (ScrollablePlotArea_defined(scrollablePixelsY)) {
39484
+ chart.scrollablePlotBox = ScrollablePlotArea_merge(chart.plotBox);
39485
+ plotBox.height = chart.plotHeight += scrollablePixelsY;
39486
+ clipBox[inverted ? 'width' : 'height'] += scrollablePixelsY;
39487
+ recalculateHoriz = false;
39488
+ }
39489
+ }
39490
+ if (ScrollablePlotArea_defined(recalculateHoriz)) {
39491
+ if (!e.skipAxes) {
39394
39492
  for (const axis of chart.axes) {
39395
39493
  // Apply the corrected plot size to the axes of the other
39396
39494
  // orientation than the scrolling direction
@@ -39403,6 +39501,10 @@ class ScrollablePlotArea {
39403
39501
  }
39404
39502
  }
39405
39503
  }
39504
+ else {
39505
+ // Clear (potential) old box when a new one was not set
39506
+ delete chart.scrollablePlotBox;
39507
+ }
39406
39508
  }
39407
39509
  constructor(chart) {
39408
39510
  const chartOptions = chart.options.chart, Renderer = Renderer_RendererRegistry.getRendererType(), scrollableOptions = chartOptions.scrollablePlotArea || {}, moveFixedElements = this.moveFixedElements.bind(this), styles = {
@@ -39986,7 +40088,6 @@ class StackItem {
39986
40088
 
39987
40089
  const { getDeferredAnimation: StackingAxis_getDeferredAnimation } = AnimationUtilities;
39988
40090
 
39989
-
39990
40091
  const { series: { prototype: seriesProto } } = Series_SeriesRegistry;
39991
40092
 
39992
40093
 
@@ -42189,8 +42290,7 @@ const ColumnSeriesDefaults = {
42189
42290
  * @apioption plotOptions.column.states.hover.color
42190
42291
  */
42191
42292
  /**
42192
- * How much to brighten the point on interaction. Requires the
42193
- * main color to be defined in hex or rgb(a) format.
42293
+ * How much to brighten the point on interaction.
42194
42294
  *
42195
42295
  * In styled mode, the hover brightening is by default replaced
42196
42296
  * with a fill-opacity set in the `.highcharts-point:hover`
@@ -43309,7 +43409,7 @@ var DataLabel;
43309
43409
  */
43310
43410
  function initDataLabelsGroup() {
43311
43411
  return this.plotGroup('dataLabelsGroup', 'data-labels', this.hasRendered ? 'inherit' : 'hidden', // #5133, #10220
43312
- this.options.dataLabels.zIndex || 6);
43412
+ this.options.dataLabels.zIndex || 6, this.chart.dataLabelsGroup);
43313
43413
  }
43314
43414
  /**
43315
43415
  * Init the data labels with the correct animation
@@ -43447,7 +43547,9 @@ var DataLabel;
43447
43547
  // Individual labels are disabled if the are explicitly
43448
43548
  // disabled in the point options, or if they fall outside
43449
43549
  // the plot area.
43450
- if (labelEnabled && DataLabel_defined(labelText)) {
43550
+ if (labelEnabled &&
43551
+ DataLabel_defined(labelText) &&
43552
+ labelText !== '') {
43451
43553
  if (!dataLabel) {
43452
43554
  // Create new label element
43453
43555
  dataLabel = renderer.label(labelText, 0, 0, labelOptions.shape, void 0, void 0, labelOptions.useHTML, void 0, 'data-label');
@@ -45178,8 +45280,7 @@ const PieSeriesDefaults = {
45178
45280
  */
45179
45281
  hover: {
45180
45282
  /**
45181
- * How much to brighten the point on interaction. Requires the
45182
- * main color to be defined in hex or rgb(a) format.
45283
+ * How much to brighten the point on interaction.
45183
45284
  *
45184
45285
  * In styled mode, the hover brightness is by default replaced
45185
45286
  * by a fill-opacity given in the `.highcharts-point-hover`
@@ -45450,11 +45551,11 @@ class PieSeries extends Series_Series {
45450
45551
  }
45451
45552
  /**
45452
45553
  * Define hasData function for non-cartesian series. Returns true if the
45453
- * series has points at all.
45554
+ * series has at least one visible point (#23235)
45454
45555
  * @private
45455
45556
  */
45456
45557
  hasData() {
45457
- return !!this.dataTable.rowCount;
45558
+ return this.points.some((point) => point.visible);
45458
45559
  }
45459
45560
  /**
45460
45561
  * Draw the data points
@@ -45675,7 +45776,7 @@ const { distribute: PieDataLabel_distribute } = Renderer_RendererUtilities;
45675
45776
 
45676
45777
  const { series: PieDataLabel_Series } = Series_SeriesRegistry;
45677
45778
 
45678
- const { arrayMax: PieDataLabel_arrayMax, clamp: PieDataLabel_clamp, defined: PieDataLabel_defined, pick: PieDataLabel_pick, pushUnique: PieDataLabel_pushUnique, relativeLength: PieDataLabel_relativeLength } = Core_Utilities;
45779
+ 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
45780
  /* *
45680
45781
  *
45681
45782
  * Composition
@@ -46027,7 +46128,7 @@ var PieDataLabel_ColumnDataLabel;
46027
46128
  // #8864: every connector can have individual options
46028
46129
  const { connectorColor, connectorWidth = 1 } = (dataLabel.options || {}), labelPosition = dataLabel.dataLabelPosition;
46029
46130
  // Draw the connector
46030
- if (connectorWidth) {
46131
+ if (PieDataLabel_isNumber(connectorWidth)) {
46031
46132
  let isNew;
46032
46133
  connector = dataLabel.connector;
46033
46134
  if (labelPosition && labelPosition.distance > 0) {
@@ -46652,7 +46753,7 @@ function applyBorderRadius(path, i, r) {
46652
46753
  * @private
46653
46754
  */
46654
46755
  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;
46756
+ const path = oldArc(x, y, w, h, options), { brStart = true, brEnd = true, innerR = 0, r = w, start = 0, end = 0 } = options;
46656
46757
  if (options.open || !options.borderRadius) {
46657
46758
  return path;
46658
46759
  }
@@ -46669,6 +46770,10 @@ function BorderRadius_arc(x, y, w, h, options = {}) {
46669
46770
  // splicing in arc segments.
46670
46771
  let i = path.length - 1;
46671
46772
  while (i--) {
46773
+ if ((!brStart && (i === 0 || i === 3)) ||
46774
+ (!brEnd && (i === 1 || i === 2))) {
46775
+ continue;
46776
+ }
46672
46777
  applyBorderRadius(path, i, i > 1 ? innerBorderRadius : borderRadius);
46673
46778
  }
46674
46779
  return path;
@@ -46743,7 +46848,7 @@ function BorderRadius_compose(SeriesClass, SVGElementClass, SVGRendererClass) {
46743
46848
  order: 9
46744
46849
  });
46745
46850
  BorderRadius_addEvent(PieSeriesClass, 'afterTranslate', pieSeriesOnAfterTranslate);
46746
- SVGElementClass.symbolCustomAttribs.push('borderRadius', 'brBoxHeight', 'brBoxY');
46851
+ SVGElementClass.symbolCustomAttribs.push('borderRadius', 'brBoxHeight', 'brBoxY', 'brEnd', 'brStart');
46747
46852
  oldArc = symbols.arc;
46748
46853
  oldRoundedRect = symbols.roundedRect;
46749
46854
  symbols.arc = BorderRadius_arc;
@@ -47169,7 +47274,14 @@ var Responsive;
47169
47274
  (''); // Keeps doclets above in JS file
47170
47275
 
47171
47276
  ;// ./code/es-modules/masters/highcharts.src.js
47172
-
47277
+ /**
47278
+ * @license Highcharts JS v12.4.0 (2025-09-04)
47279
+ * @module highcharts/highcharts
47280
+ *
47281
+ * (c) 2009-2025 Highsoft AS
47282
+ *
47283
+ * License: www.highcharts.com/license
47284
+ */
47173
47285
 
47174
47286
 
47175
47287
 
@@ -47292,10 +47404,8 @@ Core_Utilities.extend(G, Core_Utilities);
47292
47404
  * */
47293
47405
 
47294
47406
 
47295
-
47296
47407
  const { tooltipFormatter: pointTooltipFormatter } = Series_Point.prototype;
47297
47408
 
47298
-
47299
47409
  const { addEvent: DataModifyComposition_addEvent, arrayMax: DataModifyComposition_arrayMax, arrayMin: DataModifyComposition_arrayMin, correctFloat: DataModifyComposition_correctFloat, defined: DataModifyComposition_defined, isArray: DataModifyComposition_isArray, isNumber: DataModifyComposition_isNumber, isString: DataModifyComposition_isString, pick: DataModifyComposition_pick } = Core_Utilities;
47300
47410
  /* *
47301
47411
  *
@@ -48793,7 +48903,7 @@ const StockUtilities = {
48793
48903
  * */
48794
48904
 
48795
48905
 
48796
- const { setOptions: NavigatorComposition_setOptions } = Defaults;
48906
+ const { defaultOptions: NavigatorComposition_defaultOptions } = Defaults;
48797
48907
 
48798
48908
  const { composed: NavigatorComposition_composed } = Core_Globals;
48799
48909
 
@@ -48823,8 +48933,8 @@ function NavigatorComposition_compose(ChartClass, AxisClass, SeriesClass) {
48823
48933
  if (NavigatorComposition_pushUnique(NavigatorComposition_composed, 'Navigator')) {
48824
48934
  ChartClass.prototype.setFixedRange = NavigatorComposition_setFixedRange;
48825
48935
  NavigatorComposition_extend(getRendererType().prototype.symbols, Navigator_NavigatorSymbols);
48936
+ NavigatorComposition_extend(NavigatorComposition_defaultOptions, { navigator: Navigator_NavigatorDefaults });
48826
48937
  NavigatorComposition_addEvent(SeriesClass, 'afterUpdate', onSeriesAfterUpdate);
48827
- NavigatorComposition_setOptions({ navigator: Navigator_NavigatorDefaults });
48828
48938
  }
48829
48939
  }
48830
48940
  /**
@@ -48860,7 +48970,7 @@ const NavigatorComposition = {
48860
48970
 
48861
48971
  const { composed: ScrollbarAxis_composed } = Core_Globals;
48862
48972
 
48863
- const { addEvent: ScrollbarAxis_addEvent, defined: ScrollbarAxis_defined, pick: ScrollbarAxis_pick, pushUnique: ScrollbarAxis_pushUnique } = Core_Utilities;
48973
+ const { addEvent: ScrollbarAxis_addEvent, correctFloat: ScrollbarAxis_correctFloat, defined: ScrollbarAxis_defined, pick: ScrollbarAxis_pick, pushUnique: ScrollbarAxis_pushUnique } = Core_Utilities;
48864
48974
  /* *
48865
48975
  *
48866
48976
  * Composition
@@ -48907,9 +49017,10 @@ var ScrollbarAxis;
48907
49017
  axisMin,
48908
49018
  axisMax,
48909
49019
  scrollMin: ScrollbarAxis_defined(axis.dataMin) ?
48910
- Math.min(axisMin, axis.min, axis.dataMin, ScrollbarAxis_pick(axis.threshold, Infinity)) : axisMin,
48911
- scrollMax: ScrollbarAxis_defined(axis.dataMax) ?
48912
- Math.max(axisMax, axis.max, axis.dataMax, ScrollbarAxis_pick(axis.threshold, -Infinity)) : axisMax
49020
+ Math.min(axisMin, axis.min ?? Infinity, axis.dataMin, axis.threshold ?? Infinity) : axisMin,
49021
+ scrollMax: axis.treeGrid?.adjustedMax ?? (ScrollbarAxis_defined(axis.dataMax) ?
49022
+ Math.max(axisMax, axis.max ?? -Infinity, axis.dataMax, axis.threshold ?? -Infinity) :
49023
+ axisMax)
48913
49024
  };
48914
49025
  }
48915
49026
  /**
@@ -48937,7 +49048,7 @@ var ScrollbarAxis;
48937
49048
  axis.options.startOnTick = axis.options.endOnTick = false;
48938
49049
  axis.scrollbar = new Scrollbar(axis.chart.renderer, axis.options.scrollbar, axis.chart);
48939
49050
  ScrollbarAxis_addEvent(axis.scrollbar, 'changed', function (e) {
48940
- const { axisMin, axisMax, scrollMin: unitedMin, scrollMax: unitedMax } = getExtremes(axis), range = unitedMax - unitedMin;
49051
+ const { axisMin, axisMax, scrollMin: unitedMin, scrollMax: unitedMax } = getExtremes(axis), minPX = axis.toPixels(unitedMin), maxPX = axis.toPixels(unitedMax), rangePX = maxPX - minPX;
48941
49052
  let to, from;
48942
49053
  // #12834, scroll when show/hide series, wrong extremes
48943
49054
  if (!ScrollbarAxis_defined(axisMin) || !ScrollbarAxis_defined(axisMax)) {
@@ -48945,20 +49056,20 @@ var ScrollbarAxis;
48945
49056
  }
48946
49057
  if ((axis.horiz && !axis.reversed) ||
48947
49058
  (!axis.horiz && axis.reversed)) {
48948
- to = unitedMin + range * this.to;
48949
- from = unitedMin + range * this.from;
49059
+ to = Math.min(unitedMax, axis.toValue(minPX + rangePX * this.to));
49060
+ from = Math.max(unitedMin, axis.toValue(minPX + rangePX * this.from));
48950
49061
  }
48951
49062
  else {
48952
49063
  // Y-values in browser are reversed, but this also
48953
49064
  // applies for reversed horizontal axis:
48954
- to = unitedMin + range * (1 - this.from);
48955
- from = unitedMin + range * (1 - this.to);
49065
+ to = Math.min(unitedMax, axis.toValue(minPX + rangePX * (1 - this.from)));
49066
+ from = Math.max(unitedMin, axis.toValue(minPX + rangePX * (1 - this.to)));
48956
49067
  }
48957
49068
  if (this.shouldUpdateExtremes(e.DOMType)) {
48958
49069
  // #17977, set animation to undefined instead of true
48959
49070
  const animate = e.DOMType === 'mousemove' ||
48960
49071
  e.DOMType === 'touchmove' ? false : void 0;
48961
- axis.setExtremes(from, to, true, animate, e);
49072
+ axis.setExtremes(ScrollbarAxis_correctFloat(from), ScrollbarAxis_correctFloat(to), true, animate, e);
48962
49073
  }
48963
49074
  else {
48964
49075
  // When live redraw is disabled, don't change extremes
@@ -48973,7 +49084,7 @@ var ScrollbarAxis;
48973
49084
  * @private
48974
49085
  */
48975
49086
  function onAxisAfterRender() {
48976
- 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;
49087
+ 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;
48977
49088
  let offsetsIndex, from, to;
48978
49089
  if (scrollbar && scrollbarsOffsets) {
48979
49090
  if (axis.horiz) {
@@ -49021,8 +49132,9 @@ var ScrollbarAxis;
49021
49132
  isNaN(scrollMax) ||
49022
49133
  !ScrollbarAxis_defined(axis.min) ||
49023
49134
  !ScrollbarAxis_defined(axis.max) ||
49024
- axis.dataMin === axis.dataMax // #10733
49025
- ) {
49135
+ (ScrollbarAxis_defined(axis.dataMin) && // #23335
49136
+ axis.dataMin === axis.dataMax // #10733
49137
+ )) {
49026
49138
  // Default action: when data extremes are the same or there is
49027
49139
  // not extremes on the axis, but scrollbar exists, make it
49028
49140
  // full size
@@ -49039,10 +49151,10 @@ var ScrollbarAxis;
49039
49151
  scrollbar.setRange(from, to);
49040
49152
  }
49041
49153
  else {
49042
- from = ((axis.min - scrollMin) /
49043
- (scrollMax - scrollMin));
49044
- to = ((axis.max - scrollMin) /
49045
- (scrollMax - scrollMin));
49154
+ from = (axis.toPixels(axis.min) - axis.toPixels(scrollMin)) /
49155
+ (axis.toPixels(scrollMax) - axis.toPixels(scrollMin));
49156
+ to = (axis.toPixels(axis.max) - axis.toPixels(scrollMin)) /
49157
+ (axis.toPixels(scrollMax) - axis.toPixels(scrollMin));
49046
49158
  if ((axis.horiz && !axis.reversed) ||
49047
49159
  (!axis.horiz && axis.reversed)) {
49048
49160
  scrollbar.setRange(from, to);
@@ -49299,10 +49411,11 @@ const ScrollbarDefaults = {
49299
49411
 
49300
49412
  const { defaultOptions: Scrollbar_defaultOptions } = Defaults;
49301
49413
 
49414
+ const { composed: Scrollbar_composed } = Core_Globals;
49302
49415
 
49303
49416
 
49304
49417
 
49305
- 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;
49418
+ 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;
49306
49419
  /* *
49307
49420
  *
49308
49421
  * Constants
@@ -49328,6 +49441,9 @@ class Scrollbar {
49328
49441
  * */
49329
49442
  static compose(AxisClass) {
49330
49443
  Axis_ScrollbarAxis.compose(AxisClass, Scrollbar);
49444
+ if (Scrollbar_pushUnique(Scrollbar_composed, 'Scrollbar')) {
49445
+ Scrollbar_extend(Scrollbar_defaultOptions, { scrollbar: Scrollbar_ScrollbarDefaults });
49446
+ }
49331
49447
  }
49332
49448
  /**
49333
49449
  * When we have vertical scrollbar, rifles and arrow in buttons should be
@@ -49934,12 +50050,6 @@ class Scrollbar {
49934
50050
  *
49935
50051
  * */
49936
50052
  Scrollbar.defaultOptions = Scrollbar_ScrollbarDefaults;
49937
- /* *
49938
- *
49939
- * Registry
49940
- *
49941
- * */
49942
- Scrollbar_defaultOptions.scrollbar = Scrollbar_merge(true, Scrollbar.defaultOptions, Scrollbar_defaultOptions.scrollbar);
49943
50053
  /* *
49944
50054
  *
49945
50055
  * Default Export
@@ -51450,7 +51560,6 @@ class Navigator {
51450
51560
 
51451
51561
 
51452
51562
 
51453
-
51454
51563
  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;
51455
51564
  /* *
51456
51565
  *
@@ -51808,8 +51917,7 @@ var OrdinalAxis;
51808
51917
  function onChartPan(e) {
51809
51918
  const chart = this, xAxis = chart.xAxis[0], overscroll = xAxis.ordinal.convertOverscroll(xAxis.options.overscroll), chartX = e.originalEvent.chartX, panning = chart.options.chart.panning;
51810
51919
  let runBase = false;
51811
- if (panning &&
51812
- panning.type !== 'y' &&
51920
+ if (panning?.type !== 'y' &&
51813
51921
  xAxis.options.ordinal &&
51814
51922
  xAxis.series.length &&
51815
51923
  // On touch devices, let default function handle the pinching
@@ -51828,8 +51936,9 @@ var OrdinalAxis;
51828
51936
  }, index2val = xAxis.index2val, val2lin = xAxis.val2lin;
51829
51937
  let trimmedRange, ordinalPositions;
51830
51938
  // Make sure panning to the edges does not decrease the zoomed range
51831
- if ((min <= dataMin && movedUnits < 0) ||
51832
- (max + overscroll >= dataMax && movedUnits > 0)) {
51939
+ if ((min <= dataMin && movedUnits <= 0) ||
51940
+ (max >= dataMax + overscroll && movedUnits >= 0)) {
51941
+ e.preventDefault();
51833
51942
  return;
51834
51943
  }
51835
51944
  // We have an ordinal axis, but the data is equally spaced
@@ -51848,8 +51957,11 @@ var OrdinalAxis;
51848
51957
  // If we don't compensate for this, we will be allowed to pan
51849
51958
  // grouped data series passed the right of the plot area.
51850
51959
  ordinalPositions = extendedAxis.ordinal.positions;
51851
- if (dataMax >
51852
- ordinalPositions[ordinalPositions.length - 1]) {
51960
+ if (overscroll) { // #21606
51961
+ ordinalPositions = extendedAxis.ordinal.positions =
51962
+ ordinalPositions.concat(xAxis.ordinal.getOverscrollPositions());
51963
+ }
51964
+ if (dataMax > ordinalPositions[ordinalPositions.length - 1]) {
51853
51965
  ordinalPositions.push(dataMax);
51854
51966
  }
51855
51967
  // Get the new min and max values by getting the ordinal index
@@ -51880,7 +51992,7 @@ var OrdinalAxis;
51880
51992
  }
51881
51993
  // Revert to the linear chart.pan version
51882
51994
  if (runBase || (panning && /y/.test(panning.type))) {
51883
- if (overscroll) {
51995
+ if (overscroll && OrdinalAxis_isNumber(xAxis.dataMax)) {
51884
51996
  xAxis.max = xAxis.dataMax + overscroll;
51885
51997
  }
51886
51998
  }
@@ -52012,7 +52124,9 @@ var OrdinalAxis;
52012
52124
  * @private
52013
52125
  */
52014
52126
  beforeSetTickPositions() {
52015
- const axis = this.axis, ordinal = axis.ordinal, extremes = axis.getExtremes(), min = extremes.min, max = extremes.max, hasBreaks = axis.brokenAxis?.hasBreaks, isOrdinal = axis.options.ordinal;
52127
+ 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 &&
52128
+ axis.ordinal.convertOverscroll(axis.options.overscroll) ||
52129
+ 0;
52016
52130
  let len, uniqueOrdinalPositions, dist, minIndex, maxIndex, slope, i, ordinalPositions = [], overscrollPointsRange = Number.MAX_VALUE, useOrdinal = false, adjustOrdinalExtremesPoints = false, isBoosted = false;
52017
52131
  // Apply the ordinal logic
52018
52132
  if (isOrdinal || hasBreaks) { // #4167 YAxis is never ordinal ?
@@ -52096,8 +52210,8 @@ var OrdinalAxis;
52096
52210
  // spaced.
52097
52211
  if (!axis.options.keepOrdinalPadding &&
52098
52212
  (ordinalPositions[0] - min > dist ||
52099
- (max -
52100
- ordinalPositions[ordinalPositions.length - 1]) > dist)) {
52213
+ max - overscroll - ordinalPositions[len - 1] >
52214
+ dist)) {
52101
52215
  useOrdinal = true;
52102
52216
  }
52103
52217
  }
@@ -52110,7 +52224,7 @@ var OrdinalAxis;
52110
52224
  else if (len === 1) {
52111
52225
  // We have just one point, closest distance is unknown.
52112
52226
  // Assume then it is last point and overscrolled range:
52113
- overscrollPointsRange = axis.ordinal.convertOverscroll(axis.options.overscroll);
52227
+ overscrollPointsRange = overscroll;
52114
52228
  ordinalPositions = [
52115
52229
  ordinalPositions[0],
52116
52230
  ordinalPositions[0] + overscrollPointsRange
@@ -52240,6 +52354,9 @@ var OrdinalAxis;
52240
52354
  // Add the fake series to hold the full data, then apply
52241
52355
  // processData to it
52242
52356
  axis.series.forEach((series) => {
52357
+ if (series.takeOrdinalPosition === false) {
52358
+ return; // #22657
52359
+ }
52243
52360
  fakeSeries = {
52244
52361
  xAxis: fakeAxis,
52245
52362
  chart: chart,
@@ -55334,7 +55451,7 @@ StockChart_addEvent(Chart_Chart, 'update', function (e) {
55334
55451
  function onAxisGetPlotLinePath(e) {
55335
55452
  const axis = this, series = (axis.isLinked && !axis.series && axis.linkedParent ?
55336
55453
  axis.linkedParent.series :
55337
- axis.series), chart = axis.chart, renderer = chart.renderer, axisLeft = axis.left, axisTop = axis.top, result = [], translatedValue = e.translatedValue, value = e.value, force = e.force,
55454
+ axis.series), { chart, horiz } = axis, renderer = chart.renderer, result = [], { acrossPanes = true, force, translatedValue, value } = e, allPerpendicularAxes = (axis.isXAxis ? chart.yAxis : chart.xAxis) || [],
55338
55455
  /**
55339
55456
  * Return the other axis based on either the axis option or on
55340
55457
  * related series.
@@ -55342,6 +55459,9 @@ StockChart_addEvent(Chart_Chart, 'update', function (e) {
55342
55459
  */
55343
55460
  getAxis = (coll) => {
55344
55461
  const otherColl = coll === 'xAxis' ? 'yAxis' : 'xAxis', opt = axis.options[otherColl];
55462
+ if (acrossPanes && !axis.options.isInternal) {
55463
+ return allPerpendicularAxes.filter((a) => !a.options.isInternal);
55464
+ }
55345
55465
  // Other axis indexed by number
55346
55466
  if (StockChart_isNumber(opt)) {
55347
55467
  return [chart[otherColl][opt]];
@@ -55353,23 +55473,25 @@ StockChart_addEvent(Chart_Chart, 'update', function (e) {
55353
55473
  // Auto detect based on existing series
55354
55474
  return series.map((s) => s[otherColl]);
55355
55475
  };
55356
- let x1, y1, x2, y2, axes = [], // #3416 need a default array
55357
- axes2, uniqueAxes, transVal;
55358
- if ( // For stock chart, by default render paths across the panes
55359
- // except the case when `acrossPanes` is disabled by user (#6644)
55360
- (chart.options.isStock && e.acrossPanes !== false) &&
55476
+ /**
55477
+ * Push a segment to the result SVGPath array
55478
+ */
55479
+ function pushSegment(pos, crossingPos1, crossingPos2) {
55480
+ result.push(['M', horiz ? pos : crossingPos1, horiz ? crossingPos1 : pos], ['L', horiz ? pos : crossingPos2, horiz ? crossingPos2 : pos]);
55481
+ }
55482
+ let axes = [], // #3416 need a default array
55483
+ uniqueAxes, transVal;
55484
+ if (chart.options.isStock &&
55361
55485
  // Ignore in case of colorAxis or zAxis. #3360, #3524, #6720
55362
- axis.coll === 'xAxis' || axis.coll === 'yAxis') {
55486
+ (axis.coll === 'xAxis' || axis.coll === 'yAxis')) {
55363
55487
  e.preventDefault();
55364
55488
  // Get the related axes based on series
55365
55489
  axes = getAxis(axis.coll);
55366
55490
  // Get the related axes based options.*Axis setting #2810
55367
- axes2 = (axis.isXAxis ? chart.yAxis : chart.xAxis);
55368
- for (const A of axes2) {
55491
+ for (const A of allPerpendicularAxes) {
55369
55492
  if (!A.options.isInternal) {
55370
- const a = (A.isXAxis ? 'yAxis' : 'xAxis'), relatedAxis = (StockChart_defined(A.options[a]) ?
55371
- chart[a][A.options[a]] :
55372
- chart[a][0]);
55493
+ const a = (A.isXAxis ? 'yAxis' : 'xAxis'), relatedAxis = (StockChart_defined(A.options[a]) &&
55494
+ chart[a][A.options[a]]);
55373
55495
  if (axis === relatedAxis) {
55374
55496
  axes.push(A);
55375
55497
  }
@@ -55391,45 +55513,33 @@ StockChart_addEvent(Chart_Chart, 'update', function (e) {
55391
55513
  }
55392
55514
  transVal = StockChart_pick(translatedValue, axis.translate(value || 0, void 0, void 0, e.old));
55393
55515
  if (StockChart_isNumber(transVal)) {
55394
- if (axis.horiz) {
55395
- for (const axis2 of uniqueAxes) {
55396
- let skip;
55397
- y1 = axis2.pos;
55398
- y2 = y1 + axis2.len;
55399
- x1 = x2 = Math.round(transVal + axis.transB);
55400
- // Outside plot area
55401
- if (force !== 'pass' &&
55402
- (x1 < axisLeft || x1 > axisLeft + axis.width)) {
55403
- if (force) {
55404
- x1 = x2 = StockChart_clamp(x1, axisLeft, axisLeft + axis.width);
55405
- }
55406
- else {
55407
- skip = true;
55408
- }
55409
- }
55410
- if (!skip) {
55411
- result.push(['M', x1, y1], ['L', x2, y2]);
55412
- }
55516
+ let skip, pos = horiz ?
55517
+ transVal + axis.pos :
55518
+ axis.pos + axis.len - transVal;
55519
+ // Outside plot area
55520
+ if (force !== 'pass' &&
55521
+ (pos < axis.pos || pos > axis.pos + axis.len)) {
55522
+ if (force) {
55523
+ pos = StockChart_clamp(pos, axis.pos, axis.pos + axis.len);
55524
+ }
55525
+ else {
55526
+ skip = true;
55413
55527
  }
55414
55528
  }
55415
- else {
55416
- for (const axis2 of uniqueAxes) {
55417
- let skip;
55418
- x1 = axis2.pos;
55419
- x2 = x1 + axis2.len;
55420
- y1 = y2 = Math.round(axisTop + axis.height - transVal);
55421
- // Outside plot area
55422
- if (force !== 'pass' &&
55423
- (y1 < axisTop || y1 > axisTop + axis.height)) {
55424
- if (force) {
55425
- y1 = y2 = StockChart_clamp(y1, axisTop, axisTop + axis.height);
55426
- }
55427
- else {
55428
- skip = true;
55429
- }
55430
- }
55431
- if (!skip) {
55432
- result.push(['M', x1, y1], ['L', x2, y2]);
55529
+ if (!skip) {
55530
+ const crossingPosName = horiz ? 'top' : 'left', crossingLenName = horiz ? 'height' : 'width';
55531
+ if (!acrossPanes &&
55532
+ // If the perpendicular position is set explicitly on
55533
+ // the axis, use it. For example, if `top` and `height`
55534
+ // options are set on a horizontal x-axis, the grid
55535
+ // lines should conform to that position.
55536
+ (axis.options[crossingPosName] ||
55537
+ axis.options[crossingLenName])) {
55538
+ pushSegment(pos, axis[crossingPosName], axis[crossingPosName] + axis[crossingLenName]);
55539
+ }
55540
+ else {
55541
+ for (const perpendicularAxis of uniqueAxes) {
55542
+ pushSegment(pos, perpendicularAxis.pos, perpendicularAxis.pos + perpendicularAxis.len);
55433
55543
  }
55434
55544
  }
55435
55545
  }
@@ -56937,6 +57047,8 @@ const FlagsSeriesDefaults = {
56937
57047
  * @product highstock
56938
57048
  */
56939
57049
  style: {
57050
+ /** @ignore-option */
57051
+ color: "#000000" /* Palette.neutralColor100 */,
56940
57052
  /** @ignore-option */
56941
57053
  fontSize: '0.7em',
56942
57054
  /** @ignore-option */
@@ -57716,7 +57828,8 @@ var BrokenAxis;
57716
57828
  */
57717
57829
  function onAxisAfterSetOptions() {
57718
57830
  const axis = this;
57719
- if (axis.brokenAxis?.hasBreaks) {
57831
+ // Too early for axis.brokenAxis?.hasBreaks.
57832
+ if (Object.keys(axis.options.breaks?.[0] || {}).length) {
57720
57833
  axis.options.ordinal = false;
57721
57834
  }
57722
57835
  }
@@ -57788,24 +57901,9 @@ var BrokenAxis;
57788
57901
  threshold = axis.isXAxis ?
57789
57902
  axis.min :
57790
57903
  BrokenAxis_pick(series.options.threshold, axis.min);
57791
- // Array of breaks that have been "zoomed-out" which means that
57792
- // they were shown previously, but now after zoom, they are not
57793
- // (#19885).
57794
- const breaksOutOfRange = axis?.options?.breaks?.filter(function (brk) {
57795
- let isOut = true;
57796
- // Iterate to see if "brk" is in axis range
57797
- for (let i = 0; i < breaks.length; i++) {
57798
- const otherBreak = breaks[i];
57799
- if (otherBreak.from === brk.from &&
57800
- otherBreak.to === brk.to) {
57801
- isOut = false;
57802
- break;
57803
- }
57804
- }
57805
- return isOut;
57806
- });
57807
57904
  points.forEach(function (point) {
57808
- y = BrokenAxis_pick(point['stack' + key.toUpperCase()], point[key]);
57905
+ y = point['stack' + key.toUpperCase()] ??
57906
+ point[key];
57809
57907
  breaks.forEach(function (brk) {
57810
57908
  if (BrokenAxis_isNumber(threshold) && BrokenAxis_isNumber(y)) {
57811
57909
  let eventName = '';
@@ -57825,9 +57923,6 @@ var BrokenAxis;
57825
57923
  }
57826
57924
  }
57827
57925
  });
57828
- breaksOutOfRange?.forEach(function (brk) {
57829
- BrokenAxis_fireEvent(axis, 'pointOutsideOfBreak', { point, brk });
57830
- });
57831
57926
  });
57832
57927
  });
57833
57928
  }
@@ -57982,23 +58077,39 @@ var BrokenAxis;
57982
58077
  * @private
57983
58078
  */
57984
58079
  static lin2Val(val) {
57985
- const axis = this;
57986
- const brokenAxis = axis.brokenAxis;
57987
- const breakArray = brokenAxis?.breakArray;
57988
- if (!breakArray || !BrokenAxis_isNumber(val)) {
58080
+ const axis = this, threshold = axis.min || 0, brokenAxis = axis.brokenAxis, breakArray = brokenAxis?.breakArray;
58081
+ if (!breakArray?.length || !BrokenAxis_isNumber(val)) {
57989
58082
  return val;
57990
58083
  }
57991
- let nval = val, brk, i;
57992
- for (i = 0; i < breakArray.length; i++) {
57993
- brk = breakArray[i];
57994
- if (brk.from >= nval) {
57995
- break;
57996
- }
57997
- else if (brk.to < nval) {
57998
- nval += brk.len;
58084
+ let nval = val;
58085
+ // Axis min is the anchor point. Above it, break gaps impact the
58086
+ // result differently than below.
58087
+ if (val > threshold) {
58088
+ for (const brk of breakArray) {
58089
+ if (brk.from > nval) {
58090
+ // Skip all breaks after the nval.
58091
+ break;
58092
+ }
58093
+ else if (brk.to <= nval && brk.to > threshold) {
58094
+ nval += brk.len;
58095
+ }
58096
+ else if (Additions.isInBreak(brk, nval)) {
58097
+ nval += brk.len;
58098
+ }
57999
58099
  }
58000
- else if (Additions.isInBreak(brk, nval)) {
58001
- nval += brk.len;
58100
+ }
58101
+ else if (val < threshold) {
58102
+ for (const brk of breakArray) {
58103
+ if (brk.from > threshold) {
58104
+ // Skip all breaks above the threshold.
58105
+ break;
58106
+ }
58107
+ else if (brk.from >= nval && brk.from < threshold) {
58108
+ nval -= brk.len;
58109
+ }
58110
+ else if (Additions.isInBreak(brk, nval)) {
58111
+ nval -= brk.len;
58112
+ }
58002
58113
  }
58003
58114
  }
58004
58115
  return nval;
@@ -58007,24 +58118,41 @@ var BrokenAxis;
58007
58118
  * @private
58008
58119
  */
58009
58120
  static val2Lin(val) {
58010
- const axis = this;
58011
- const brokenAxis = axis.brokenAxis;
58012
- const breakArray = brokenAxis?.breakArray;
58013
- if (!breakArray || !BrokenAxis_isNumber(val)) {
58121
+ const axis = this, threshold = axis.min || 0, brokenAxis = axis.brokenAxis, breakArray = brokenAxis?.breakArray;
58122
+ if (!breakArray?.length || !BrokenAxis_isNumber(val)) {
58014
58123
  return val;
58015
58124
  }
58016
- let nval = val, brk, i;
58017
- for (i = 0; i < breakArray.length; i++) {
58018
- brk = breakArray[i];
58019
- if (brk.to <= val) {
58020
- nval -= brk.len;
58021
- }
58022
- else if (brk.from >= val) {
58023
- break;
58125
+ let nval = val;
58126
+ // Axis min is the anchor point. Above it, break gaps impact the
58127
+ // result differently than below.
58128
+ if (val > threshold) {
58129
+ for (const brk of breakArray) {
58130
+ if (brk.to <= val && brk.to > threshold) {
58131
+ nval -= brk.len;
58132
+ }
58133
+ else if (brk.from > val) {
58134
+ // Skip all breaks after the val.
58135
+ break;
58136
+ }
58137
+ else if (Additions.isInBreak(brk, val)) {
58138
+ nval -= (val - brk.from);
58139
+ break;
58140
+ }
58024
58141
  }
58025
- else if (Additions.isInBreak(brk, val)) {
58026
- nval -= (val - brk.from);
58027
- break;
58142
+ }
58143
+ else if (val < threshold) {
58144
+ for (const brk of breakArray) {
58145
+ if (brk.from >= val && brk.from < threshold) {
58146
+ nval += brk.len;
58147
+ }
58148
+ else if (brk.from > threshold) {
58149
+ // Skip all breaks before the threshold.
58150
+ break;
58151
+ }
58152
+ else if (Additions.isInBreak(brk, val)) {
58153
+ nval += (brk.to - val);
58154
+ break;
58155
+ }
58028
58156
  }
58029
58157
  }
58030
58158
  return nval;
@@ -58035,7 +58163,6 @@ var BrokenAxis;
58035
58163
  *
58036
58164
  * */
58037
58165
  constructor(axis) {
58038
- this.hasBreaks = false;
58039
58166
  this.axis = axis;
58040
58167
  }
58041
58168
  /* *
@@ -58101,9 +58228,8 @@ var BrokenAxis;
58101
58228
  */
58102
58229
  setBreaks(breaks, redraw) {
58103
58230
  const brokenAxis = this, axis = brokenAxis.axis, time = axis.chart.time, hasBreaks = BrokenAxis_isArray(breaks) &&
58104
- !!breaks.length &&
58105
- !!Object.keys(breaks[0]).length; // Check for [{}], #16368.
58106
- axis.isDirty = brokenAxis.hasBreaks !== hasBreaks;
58231
+ !!Object.keys(breaks?.[0] || {}).length;
58232
+ axis.isDirty = (brokenAxis.hasBreaks ?? false) !== hasBreaks;
58107
58233
  brokenAxis.hasBreaks = hasBreaks;
58108
58234
  // Compile string dates
58109
58235
  breaks?.forEach((brk) => {
@@ -58130,8 +58256,9 @@ var BrokenAxis;
58130
58256
  axis.setExtremes = function (newMin, newMax, redraw, animation, eventArguments) {
58131
58257
  // If trying to set extremes inside a break, extend min to
58132
58258
  // after, and max to before the break ( #3857 )
58133
- if (brokenAxis.hasBreaks) {
58134
- const breaks = (this.options.breaks || []);
58259
+ // but not for gantt (#13898);
58260
+ if (brokenAxis.hasBreaks && !axis.treeGrid?.tree) {
58261
+ const breaks = (this.brokenAxis.breakArray || []);
58135
58262
  let axisBreak;
58136
58263
  while ((axisBreak = brokenAxis.findBreakAt(newMin, breaks))) {
58137
58264
  newMin = axisBreak.to;
@@ -58150,49 +58277,54 @@ var BrokenAxis;
58150
58277
  axis.constructor.prototype.setAxisTranslation.call(this);
58151
58278
  brokenAxis.unitLength = void 0;
58152
58279
  if (brokenAxis.hasBreaks) {
58153
- const breaks = axis.options.breaks || [],
58154
- // Temporary one:
58155
- breakArrayT = [], breakArray = [], pointRangePadding = BrokenAxis_pick(axis.pointRangePadding, 0);
58156
- let length = 0, inBrk, repeat, min = axis.userMin || axis.min, max = axis.userMax || axis.max, start, i;
58157
- // Min & max check (#4247)
58158
- breaks.forEach(function (brk) {
58159
- repeat = brk.repeat || Infinity;
58160
- if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max)) {
58161
- if (Additions.isInBreak(brk, min)) {
58162
- min += ((brk.to % repeat) -
58163
- (min % repeat));
58164
- }
58165
- if (Additions.isInBreak(brk, max)) {
58166
- max -= ((max % repeat) -
58167
- (brk.from % repeat));
58280
+ const breaks = axis.options.breaks || [], breakArrayTemp = [], breakArray = [], pointRangePadding = axis.pointRangePadding ?? 0;
58281
+ 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;
58282
+ if (BrokenAxis_isNumber(axis.threshold)) {
58283
+ dataMin = Math.min(dataMin ?? axis.threshold, axis.threshold);
58284
+ dataMax = Math.max(dataMax ?? axis.threshold, axis.threshold);
58285
+ }
58286
+ // Min & max check (#4247) but not for gantt (#13898)
58287
+ if (!axis.treeGrid?.tree) {
58288
+ breaks.forEach(function (brk) {
58289
+ repeat = brk.repeat || Infinity;
58290
+ if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max)) {
58291
+ if (Additions.isInBreak(brk, min)) {
58292
+ min += ((brk.to % repeat) -
58293
+ (min % repeat));
58294
+ }
58295
+ if (Additions.isInBreak(brk, max)) {
58296
+ max -= ((max % repeat) -
58297
+ (brk.from % repeat));
58298
+ }
58168
58299
  }
58169
- }
58170
- });
58300
+ });
58301
+ }
58171
58302
  // Construct an array holding all breaks in the axis
58172
- breaks.forEach(function (brk) {
58173
- start = brk.from;
58174
- repeat = brk.repeat || Infinity;
58175
- if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max)) {
58176
- while (start - repeat > min) {
58303
+ // for the current data range.
58304
+ if (BrokenAxis_isNumber(dataMin) && BrokenAxis_isNumber(dataMax)) {
58305
+ breaks.forEach(function (brk) {
58306
+ start = brk.from;
58307
+ repeat = brk.repeat || Infinity;
58308
+ while (start - repeat > dataMin) {
58177
58309
  start -= repeat;
58178
58310
  }
58179
- while (start < min) {
58311
+ while (start < dataMin) {
58180
58312
  start += repeat;
58181
58313
  }
58182
- for (i = start; i < max; i += repeat) {
58183
- breakArrayT.push({
58314
+ for (i = start; i < dataMax; i += repeat) {
58315
+ breakArrayTemp.push({
58184
58316
  value: i,
58185
58317
  move: 'in'
58186
58318
  });
58187
- breakArrayT.push({
58319
+ breakArrayTemp.push({
58188
58320
  value: i + brk.to - brk.from,
58189
58321
  move: 'out',
58190
58322
  size: brk.breakSize
58191
58323
  });
58192
58324
  }
58193
- }
58194
- });
58195
- breakArrayT.sort(function (a, b) {
58325
+ });
58326
+ }
58327
+ breakArrayTemp.sort(function (a, b) {
58196
58328
  return ((a.value === b.value) ?
58197
58329
  ((a.move === 'in' ? 0 : 1) -
58198
58330
  (b.move === 'in' ? 0 : 1)) :
@@ -58200,8 +58332,8 @@ var BrokenAxis;
58200
58332
  });
58201
58333
  // Simplify the breaks
58202
58334
  inBrk = 0;
58203
- start = min;
58204
- breakArrayT.forEach(function (brk) {
58335
+ start = dataMin;
58336
+ breakArrayTemp.forEach((brk) => {
58205
58337
  inBrk += (brk.move === 'in' ? 1 : -1);
58206
58338
  if (inBrk === 1 && brk.move === 'in') {
58207
58339
  start = brk.value;
@@ -58212,9 +58344,13 @@ var BrokenAxis;
58212
58344
  to: brk.value,
58213
58345
  len: brk.value - start - (brk.size || 0)
58214
58346
  });
58215
- length += (brk.value -
58216
- start -
58217
- (brk.size || 0));
58347
+ if (BrokenAxis_isNumber(min) && BrokenAxis_isNumber(max) &&
58348
+ start < max && brk.value > min) {
58349
+ // Sum break gaps in the visible range
58350
+ length += (brk.value -
58351
+ start -
58352
+ (brk.size || 0));
58353
+ }
58218
58354
  }
58219
58355
  });
58220
58356
  brokenAxis.breakArray = breakArray;
@@ -58260,7 +58396,7 @@ var BrokenAxis;
58260
58396
 
58261
58397
  ;// ./code/es-modules/masters/modules/broken-axis.src.js
58262
58398
  /**
58263
- * @license Highcharts JS v12.2.0 (2025-04-07)
58399
+ * @license Highcharts JS v12.4.0 (2025-09-04)
58264
58400
  * @module highcharts/modules/broken-axis
58265
58401
  * @requires highcharts
58266
58402
  *
@@ -59752,7 +59888,7 @@ const DataGroupingComposition = {
59752
59888
 
59753
59889
  ;// ./code/es-modules/masters/modules/datagrouping.src.js
59754
59890
  /**
59755
- * @license Highstock JS v12.2.0 (2025-04-07)
59891
+ * @license Highstock JS v12.4.0 (2025-09-04)
59756
59892
  * @module highcharts/modules/datagrouping
59757
59893
  * @requires highcharts
59758
59894
  *
@@ -60074,7 +60210,7 @@ const MouseWheelZoomComposition = {
60074
60210
 
60075
60211
  ;// ./code/es-modules/masters/modules/mouse-wheel-zoom.src.js
60076
60212
  /**
60077
- * @license Highcharts JS v12.2.0 (2025-04-07)
60213
+ * @license Highcharts JS v12.4.0 (2025-09-04)
60078
60214
  * @module highcharts/modules/mouse-wheel-zoom
60079
60215
  * @requires highcharts
60080
60216
  *
@@ -60094,7 +60230,7 @@ mouse_wheel_zoom_src_G.MouseWheelZoom.compose(mouse_wheel_zoom_src_G.Chart);
60094
60230
 
60095
60231
  ;// ./code/es-modules/masters/modules/stock.src.js
60096
60232
  /**
60097
- * @license Highstock JS v12.2.0 (2025-04-07)
60233
+ * @license Highstock JS v12.4.0 (2025-09-04)
60098
60234
  * @module highcharts/modules/stock
60099
60235
  * @requires highcharts
60100
60236
  *
@@ -60141,14 +60277,7 @@ stock_src_G.StockChart.compose(stock_src_G.Chart, stock_src_G.Axis, stock_src_G.
60141
60277
  /* harmony default export */ const stock_src = ((/* unused pure expression or super */ null && (Highcharts)));
60142
60278
 
60143
60279
  ;// ./code/es-modules/masters/highstock.src.js
60144
- /**
60145
- * @license Highstock JS v12.2.0 (2025-04-07)
60146
- * @module highcharts/highstock
60147
- *
60148
- * (c) 2009-2025 Torstein Honsi
60149
- *
60150
- * License: www.highcharts.com/license
60151
- */
60280
+
60152
60281
 
60153
60282
 
60154
60283