highcharts 11.4.7 → 11.4.9

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 (493) hide show
  1. package/SECURITY.md +41 -0
  2. package/bower.json +14 -2
  3. package/css/annotations/popup.css +224 -46
  4. package/css/highcharts-palette.css +99 -0
  5. package/css/highcharts.css +130 -72
  6. package/css/stocktools/gui.css +28 -11
  7. package/css/themes/dark-unica.css +4 -69
  8. package/css/themes/grid-light.css +14 -4
  9. package/css/themes/sand-signika.css +16 -29
  10. package/es-modules/Accessibility/Accessibility.js +15 -3
  11. package/es-modules/Accessibility/AccessibilityComponent.js +38 -30
  12. package/es-modules/Core/Axis/Axis.js +15 -12
  13. package/es-modules/Core/Axis/AxisDefaults.js +4 -2
  14. package/es-modules/Core/Axis/DateTimeAxis.js +3 -3
  15. package/es-modules/Core/Axis/GridAxis.js +2 -2
  16. package/es-modules/Core/Axis/LogarithmicAxis.js +5 -10
  17. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +54 -13
  18. package/es-modules/Core/Axis/ScrollbarAxis.js +12 -2
  19. package/es-modules/Core/Axis/Tick.js +1 -1
  20. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +6 -9
  21. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +2 -2
  22. package/es-modules/Core/Chart/Chart.js +38 -10
  23. package/es-modules/Core/Color/Color.js +1 -0
  24. package/es-modules/Core/Defaults.js +13 -7
  25. package/es-modules/Core/Globals.js +1 -1
  26. package/es-modules/Core/Legend/LegendSymbol.js +1 -1
  27. package/es-modules/Core/Renderer/HTML/AST.js +6 -5
  28. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +2 -1
  29. package/es-modules/Core/Series/DataLabel.js +9 -0
  30. package/es-modules/Core/Series/Point.js +8 -1
  31. package/es-modules/Core/Series/Series.js +1 -1
  32. package/es-modules/Core/Tooltip.js +9 -0
  33. package/es-modules/Extensions/Annotations/Annotation.js +4 -0
  34. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
  35. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
  36. package/es-modules/Extensions/Boost/BoostSeries.js +2 -0
  37. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +6 -4
  38. package/es-modules/Extensions/Breadcrumbs/BreadcrumbsDefaults.js +1 -1
  39. package/es-modules/Extensions/Data.js +125 -98
  40. package/es-modules/Extensions/Exporting/Exporting.js +5 -1
  41. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +4 -1
  42. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  43. package/es-modules/Maps/GeoJSONComposition.js +0 -5
  44. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -0
  45. package/es-modules/Series/MapBubble/MapBubbleSeries.js +3 -3
  46. package/es-modules/Series/Pictorial/PictorialSeries.js +2 -1
  47. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +1 -0
  48. package/es-modules/Series/Treegraph/TreegraphSeries.js +1 -1
  49. package/es-modules/Stock/Navigator/Navigator.js +7 -2
  50. package/es-modules/Stock/StockTools/StockToolbar.js +1 -1
  51. package/es-modules/masters/highcharts-3d.src.js +1 -1
  52. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  53. package/es-modules/masters/highcharts-more.src.js +1 -1
  54. package/es-modules/masters/highcharts.src.js +2 -2
  55. package/es-modules/masters/highmaps.src.js +1 -1
  56. package/es-modules/masters/highstock.src.js +1 -1
  57. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  58. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  59. package/es-modules/masters/indicators/ao.src.js +1 -1
  60. package/es-modules/masters/indicators/apo.src.js +1 -1
  61. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  62. package/es-modules/masters/indicators/aroon.src.js +1 -1
  63. package/es-modules/masters/indicators/atr.src.js +1 -1
  64. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  65. package/es-modules/masters/indicators/cci.src.js +1 -1
  66. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  67. package/es-modules/masters/indicators/cmf.src.js +1 -1
  68. package/es-modules/masters/indicators/cmo.src.js +1 -1
  69. package/es-modules/masters/indicators/dema.src.js +1 -1
  70. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  71. package/es-modules/masters/indicators/dmi.src.js +1 -1
  72. package/es-modules/masters/indicators/dpo.src.js +1 -1
  73. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  74. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  75. package/es-modules/masters/indicators/indicators.src.js +1 -1
  76. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  77. package/es-modules/masters/indicators/klinger.src.js +1 -1
  78. package/es-modules/masters/indicators/macd.src.js +1 -1
  79. package/es-modules/masters/indicators/mfi.src.js +1 -1
  80. package/es-modules/masters/indicators/momentum.src.js +1 -1
  81. package/es-modules/masters/indicators/natr.src.js +1 -1
  82. package/es-modules/masters/indicators/obv.src.js +1 -1
  83. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  84. package/es-modules/masters/indicators/ppo.src.js +1 -1
  85. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  86. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  87. package/es-modules/masters/indicators/psar.src.js +1 -1
  88. package/es-modules/masters/indicators/regressions.src.js +1 -1
  89. package/es-modules/masters/indicators/roc.src.js +1 -1
  90. package/es-modules/masters/indicators/rsi.src.js +1 -1
  91. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  92. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  93. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  94. package/es-modules/masters/indicators/tema.src.js +1 -1
  95. package/es-modules/masters/indicators/trendline.src.js +1 -1
  96. package/es-modules/masters/indicators/trix.src.js +1 -1
  97. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  98. package/es-modules/masters/indicators/vwap.src.js +1 -1
  99. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  100. package/es-modules/masters/indicators/wma.src.js +1 -1
  101. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  102. package/es-modules/masters/modules/accessibility.src.js +1 -1
  103. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  104. package/es-modules/masters/modules/annotations.src.js +1 -1
  105. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  106. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  107. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  108. package/es-modules/masters/modules/boost.src.js +1 -1
  109. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  110. package/es-modules/masters/modules/bullet.src.js +1 -1
  111. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  112. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  113. package/es-modules/masters/modules/cylinder.src.js +1 -1
  114. package/es-modules/masters/modules/data-tools.src.js +1 -1
  115. package/es-modules/masters/modules/data.src.js +1 -1
  116. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  117. package/es-modules/masters/modules/debugger.src.js +1 -1
  118. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  119. package/es-modules/masters/modules/dotplot.src.js +1 -1
  120. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  121. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  122. package/es-modules/masters/modules/drilldown.src.js +1 -1
  123. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  124. package/es-modules/masters/modules/export-data.src.js +1 -1
  125. package/es-modules/masters/modules/exporting.src.js +1 -1
  126. package/es-modules/masters/modules/flowmap.src.js +1 -1
  127. package/es-modules/masters/modules/full-screen.src.js +1 -1
  128. package/es-modules/masters/modules/funnel.src.js +1 -1
  129. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  130. package/es-modules/masters/modules/gantt.src.js +1 -1
  131. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  132. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  133. package/es-modules/masters/modules/heatmap.src.js +1 -1
  134. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  135. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  136. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  137. package/es-modules/masters/modules/item-series.src.js +1 -1
  138. package/es-modules/masters/modules/lollipop.src.js +1 -1
  139. package/es-modules/masters/modules/map.src.js +1 -1
  140. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  141. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  142. package/es-modules/masters/modules/navigator.src.js +1 -1
  143. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  144. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  145. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  146. package/es-modules/masters/modules/organization.src.js +1 -1
  147. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  148. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  149. package/es-modules/masters/modules/pareto.src.js +1 -1
  150. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  151. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  152. package/es-modules/masters/modules/pictorial.src.js +1 -1
  153. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  154. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  155. package/es-modules/masters/modules/sankey.src.js +1 -1
  156. package/es-modules/masters/modules/series-label.src.js +1 -1
  157. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  158. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  159. package/es-modules/masters/modules/sonification.src.js +1 -1
  160. package/es-modules/masters/modules/static-scale.src.js +1 -1
  161. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  162. package/es-modules/masters/modules/stock.src.js +1 -1
  163. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  164. package/es-modules/masters/modules/sunburst.src.js +1 -1
  165. package/es-modules/masters/modules/textpath.src.js +1 -1
  166. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  167. package/es-modules/masters/modules/tilemap.src.js +1 -1
  168. package/es-modules/masters/modules/timeline.src.js +1 -1
  169. package/es-modules/masters/modules/treegraph.src.js +1 -1
  170. package/es-modules/masters/modules/treegrid.src.js +1 -1
  171. package/es-modules/masters/modules/treemap.src.js +1 -1
  172. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  173. package/es-modules/masters/modules/variwide.src.js +1 -1
  174. package/es-modules/masters/modules/vector.src.js +1 -1
  175. package/es-modules/masters/modules/venn.src.js +1 -1
  176. package/es-modules/masters/modules/windbarb.src.js +1 -1
  177. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  178. package/es-modules/masters/modules/xrange.src.js +1 -1
  179. package/es-modules/masters/themes/avocado.src.js +1 -1
  180. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  181. package/es-modules/masters/themes/brand-light.src.js +1 -1
  182. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  183. package/es-modules/masters/themes/dark-green.src.js +1 -1
  184. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  185. package/es-modules/masters/themes/gray.src.js +1 -1
  186. package/es-modules/masters/themes/grid-light.src.js +1 -1
  187. package/es-modules/masters/themes/grid.src.js +1 -1
  188. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  189. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  190. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  191. package/es-modules/masters/themes/skies.src.js +1 -1
  192. package/es-modules/masters/themes/sunset.src.js +1 -1
  193. package/es-modules/tsconfig.tsbuildinfo +1 -1
  194. package/highcharts-3d.js +1 -1
  195. package/highcharts-3d.src.js +1 -1
  196. package/highcharts-gantt.js +3 -3
  197. package/highcharts-gantt.src.js +202 -87
  198. package/highcharts-more.js +1 -1
  199. package/highcharts-more.src.js +1 -1
  200. package/highcharts.d.ts +64 -79
  201. package/highcharts.js +3 -3
  202. package/highcharts.src.d.ts +64 -79
  203. package/highcharts.src.js +173 -70
  204. package/highmaps.js +3 -3
  205. package/highmaps.src.js +176 -78
  206. package/highstock.js +3 -3
  207. package/highstock.src.js +192 -74
  208. package/indicators/acceleration-bands.js +1 -1
  209. package/indicators/acceleration-bands.src.js +1 -1
  210. package/indicators/accumulation-distribution.js +1 -1
  211. package/indicators/accumulation-distribution.src.js +1 -1
  212. package/indicators/ao.js +1 -1
  213. package/indicators/ao.src.js +1 -1
  214. package/indicators/apo.js +1 -1
  215. package/indicators/apo.src.js +1 -1
  216. package/indicators/aroon-oscillator.js +1 -1
  217. package/indicators/aroon-oscillator.src.js +1 -1
  218. package/indicators/aroon.js +1 -1
  219. package/indicators/aroon.src.js +1 -1
  220. package/indicators/atr.js +1 -1
  221. package/indicators/atr.src.js +1 -1
  222. package/indicators/bollinger-bands.js +1 -1
  223. package/indicators/bollinger-bands.src.js +1 -1
  224. package/indicators/cci.js +1 -1
  225. package/indicators/cci.src.js +1 -1
  226. package/indicators/chaikin.js +1 -1
  227. package/indicators/chaikin.src.js +1 -1
  228. package/indicators/cmf.js +1 -1
  229. package/indicators/cmf.src.js +1 -1
  230. package/indicators/cmo.js +1 -1
  231. package/indicators/cmo.src.js +1 -1
  232. package/indicators/dema.js +1 -1
  233. package/indicators/dema.src.js +1 -1
  234. package/indicators/disparity-index.js +1 -1
  235. package/indicators/disparity-index.src.js +1 -1
  236. package/indicators/dmi.js +1 -1
  237. package/indicators/dmi.src.js +1 -1
  238. package/indicators/dpo.js +1 -1
  239. package/indicators/dpo.src.js +1 -1
  240. package/indicators/ichimoku-kinko-hyo.js +1 -1
  241. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  242. package/indicators/indicators-all.js +1 -1
  243. package/indicators/indicators-all.src.js +1 -1
  244. package/indicators/indicators.js +1 -1
  245. package/indicators/indicators.src.js +1 -1
  246. package/indicators/keltner-channels.js +1 -1
  247. package/indicators/keltner-channels.src.js +1 -1
  248. package/indicators/klinger.js +1 -1
  249. package/indicators/klinger.src.js +1 -1
  250. package/indicators/macd.js +1 -1
  251. package/indicators/macd.src.js +1 -1
  252. package/indicators/mfi.js +1 -1
  253. package/indicators/mfi.src.js +1 -1
  254. package/indicators/momentum.js +1 -1
  255. package/indicators/momentum.src.js +1 -1
  256. package/indicators/natr.js +1 -1
  257. package/indicators/natr.src.js +1 -1
  258. package/indicators/obv.js +1 -1
  259. package/indicators/obv.src.js +1 -1
  260. package/indicators/pivot-points.js +1 -1
  261. package/indicators/pivot-points.src.js +1 -1
  262. package/indicators/ppo.js +1 -1
  263. package/indicators/ppo.src.js +1 -1
  264. package/indicators/price-channel.js +1 -1
  265. package/indicators/price-channel.src.js +1 -1
  266. package/indicators/price-envelopes.js +1 -1
  267. package/indicators/price-envelopes.src.js +1 -1
  268. package/indicators/psar.js +1 -1
  269. package/indicators/psar.src.js +1 -1
  270. package/indicators/regressions.js +1 -1
  271. package/indicators/regressions.src.js +1 -1
  272. package/indicators/roc.js +1 -1
  273. package/indicators/roc.src.js +1 -1
  274. package/indicators/rsi.js +1 -1
  275. package/indicators/rsi.src.js +1 -1
  276. package/indicators/slow-stochastic.js +1 -1
  277. package/indicators/slow-stochastic.src.js +1 -1
  278. package/indicators/stochastic.js +1 -1
  279. package/indicators/stochastic.src.js +1 -1
  280. package/indicators/supertrend.js +1 -1
  281. package/indicators/supertrend.src.js +1 -1
  282. package/indicators/tema.js +1 -1
  283. package/indicators/tema.src.js +1 -1
  284. package/indicators/trendline.js +1 -1
  285. package/indicators/trendline.src.js +1 -1
  286. package/indicators/trix.js +1 -1
  287. package/indicators/trix.src.js +1 -1
  288. package/indicators/volume-by-price.js +1 -1
  289. package/indicators/volume-by-price.src.js +1 -1
  290. package/indicators/vwap.js +1 -1
  291. package/indicators/vwap.src.js +1 -1
  292. package/indicators/williams-r.js +1 -1
  293. package/indicators/williams-r.src.js +1 -1
  294. package/indicators/wma.js +1 -1
  295. package/indicators/wma.src.js +1 -1
  296. package/indicators/zigzag.js +1 -1
  297. package/indicators/zigzag.src.js +1 -1
  298. package/modules/accessibility.d.ts +11 -5
  299. package/modules/accessibility.js +2 -2
  300. package/modules/accessibility.src.d.ts +11 -5
  301. package/modules/accessibility.src.js +74 -38
  302. package/modules/annotations-advanced.js +2 -2
  303. package/modules/annotations-advanced.src.js +7 -3
  304. package/modules/annotations.js +2 -2
  305. package/modules/annotations.src.js +7 -3
  306. package/modules/arc-diagram.js +2 -2
  307. package/modules/arc-diagram.src.js +5 -4
  308. package/modules/arrow-symbols.js +1 -1
  309. package/modules/arrow-symbols.src.js +1 -1
  310. package/modules/boost-canvas.js +2 -2
  311. package/modules/boost-canvas.src.js +7 -2
  312. package/modules/boost.js +2 -2
  313. package/modules/boost.src.js +7 -2
  314. package/modules/broken-axis.js +1 -1
  315. package/modules/broken-axis.src.js +1 -1
  316. package/modules/bullet.js +1 -1
  317. package/modules/bullet.src.js +1 -1
  318. package/modules/coloraxis.js +1 -1
  319. package/modules/coloraxis.src.js +1 -1
  320. package/modules/current-date-indicator.js +1 -1
  321. package/modules/current-date-indicator.src.js +1 -1
  322. package/modules/cylinder.js +1 -1
  323. package/modules/cylinder.src.js +1 -1
  324. package/modules/data-tools.js +1 -1
  325. package/modules/data-tools.src.js +1 -1
  326. package/modules/data.d.ts +10 -1
  327. package/modules/data.js +2 -2
  328. package/modules/data.src.d.ts +10 -1
  329. package/modules/data.src.js +126 -100
  330. package/modules/datagrouping.js +1 -1
  331. package/modules/datagrouping.src.js +1 -1
  332. package/modules/debugger.js +1 -1
  333. package/modules/debugger.src.js +1 -1
  334. package/modules/dependency-wheel.js +1 -1
  335. package/modules/dependency-wheel.src.js +1 -1
  336. package/modules/dotplot.js +1 -1
  337. package/modules/dotplot.src.js +1 -1
  338. package/modules/drag-panes.js +1 -1
  339. package/modules/drag-panes.src.js +1 -1
  340. package/modules/draggable-points.js +1 -1
  341. package/modules/draggable-points.src.js +1 -1
  342. package/modules/drilldown.js +2 -2
  343. package/modules/drilldown.src.js +8 -6
  344. package/modules/dumbbell.js +1 -1
  345. package/modules/dumbbell.src.js +1 -1
  346. package/modules/export-data.js +1 -1
  347. package/modules/export-data.src.js +1 -1
  348. package/modules/exporting.js +2 -2
  349. package/modules/exporting.src.js +6 -2
  350. package/modules/flowmap.js +1 -1
  351. package/modules/flowmap.src.js +1 -1
  352. package/modules/full-screen.js +1 -1
  353. package/modules/full-screen.src.js +1 -1
  354. package/modules/funnel.js +1 -1
  355. package/modules/funnel.src.js +1 -1
  356. package/modules/funnel3d.js +1 -1
  357. package/modules/funnel3d.src.js +2 -1
  358. package/modules/gantt.js +2 -2
  359. package/modules/gantt.src.js +30 -18
  360. package/modules/geoheatmap.js +1 -1
  361. package/modules/geoheatmap.src.js +1 -1
  362. package/modules/grid-axis.js +2 -2
  363. package/modules/grid-axis.src.js +3 -3
  364. package/modules/heatmap.js +1 -1
  365. package/modules/heatmap.src.js +1 -1
  366. package/modules/heikinashi.js +1 -1
  367. package/modules/heikinashi.src.js +1 -1
  368. package/modules/histogram-bellcurve.js +1 -1
  369. package/modules/histogram-bellcurve.src.js +1 -1
  370. package/modules/hollowcandlestick.js +1 -1
  371. package/modules/hollowcandlestick.src.js +1 -1
  372. package/modules/item-series.js +1 -1
  373. package/modules/item-series.src.js +1 -1
  374. package/modules/lollipop.js +1 -1
  375. package/modules/lollipop.src.js +1 -1
  376. package/modules/map.js +2 -2
  377. package/modules/map.src.js +4 -9
  378. package/modules/marker-clusters.js +1 -1
  379. package/modules/marker-clusters.src.js +1 -1
  380. package/modules/mouse-wheel-zoom.js +1 -1
  381. package/modules/mouse-wheel-zoom.src.js +1 -1
  382. package/modules/navigator.js +2 -2
  383. package/modules/navigator.src.js +20 -5
  384. package/modules/networkgraph.js +1 -1
  385. package/modules/networkgraph.src.js +1 -1
  386. package/modules/no-data-to-display.js +1 -1
  387. package/modules/no-data-to-display.src.js +1 -1
  388. package/modules/offline-exporting.js +2 -2
  389. package/modules/offline-exporting.src.js +6 -3
  390. package/modules/organization.js +1 -1
  391. package/modules/organization.src.js +1 -1
  392. package/modules/overlapping-datalabels.js +1 -1
  393. package/modules/overlapping-datalabels.src.js +1 -1
  394. package/modules/parallel-coordinates.js +1 -1
  395. package/modules/parallel-coordinates.src.js +1 -1
  396. package/modules/pareto.js +1 -1
  397. package/modules/pareto.src.js +1 -1
  398. package/modules/pathfinder.js +1 -1
  399. package/modules/pathfinder.src.js +1 -1
  400. package/modules/pattern-fill.js +1 -1
  401. package/modules/pattern-fill.src.js +1 -1
  402. package/modules/pictorial.js +1 -1
  403. package/modules/pictorial.src.js +3 -2
  404. package/modules/price-indicator.js +1 -1
  405. package/modules/price-indicator.src.js +1 -1
  406. package/modules/pyramid3d.js +1 -1
  407. package/modules/pyramid3d.src.js +2 -1
  408. package/modules/sankey.js +1 -1
  409. package/modules/sankey.src.js +1 -1
  410. package/modules/series-label.js +1 -1
  411. package/modules/series-label.src.js +1 -1
  412. package/modules/series-on-point.js +1 -1
  413. package/modules/series-on-point.src.js +1 -1
  414. package/modules/solid-gauge.js +1 -1
  415. package/modules/solid-gauge.src.js +1 -1
  416. package/modules/sonification.js +1 -1
  417. package/modules/sonification.src.js +1 -1
  418. package/modules/static-scale.js +1 -1
  419. package/modules/static-scale.src.js +1 -1
  420. package/modules/stock-tools.js +2 -2
  421. package/modules/stock-tools.src.js +3 -3
  422. package/modules/stock.js +2 -2
  423. package/modules/stock.src.js +20 -5
  424. package/modules/streamgraph.js +1 -1
  425. package/modules/streamgraph.src.js +1 -1
  426. package/modules/sunburst.js +2 -2
  427. package/modules/sunburst.src.js +8 -6
  428. package/modules/textpath.js +1 -1
  429. package/modules/textpath.src.js +1 -1
  430. package/modules/tiledwebmap.js +1 -1
  431. package/modules/tiledwebmap.src.js +1 -1
  432. package/modules/tilemap.js +1 -1
  433. package/modules/tilemap.src.js +1 -1
  434. package/modules/timeline.js +1 -1
  435. package/modules/timeline.src.js +1 -1
  436. package/modules/treegraph.js +2 -2
  437. package/modules/treegraph.src.js +2 -2
  438. package/modules/treegrid.js +2 -2
  439. package/modules/treegrid.src.js +11 -14
  440. package/modules/treemap.js +2 -2
  441. package/modules/treemap.src.js +8 -6
  442. package/modules/variable-pie.js +1 -1
  443. package/modules/variable-pie.src.js +1 -1
  444. package/modules/variwide.js +1 -1
  445. package/modules/variwide.src.js +1 -1
  446. package/modules/vector.js +1 -1
  447. package/modules/vector.src.js +1 -1
  448. package/modules/venn.js +1 -1
  449. package/modules/venn.src.js +1 -1
  450. package/modules/windbarb.js +1 -1
  451. package/modules/windbarb.src.js +1 -1
  452. package/modules/wordcloud.js +1 -1
  453. package/modules/wordcloud.src.js +1 -1
  454. package/modules/xrange.js +1 -1
  455. package/modules/xrange.src.js +1 -1
  456. package/options/sunburst.d.ts +1 -1
  457. package/options/sunburst.src.d.ts +1 -1
  458. package/package.json +14 -2
  459. package/standalone-navigator.js +2 -2
  460. package/standalone-navigator.src.js +191 -73
  461. package/themes/avocado.js +1 -1
  462. package/themes/avocado.src.js +1 -1
  463. package/themes/brand-dark.js +1 -1
  464. package/themes/brand-dark.src.js +1 -1
  465. package/themes/brand-light.js +1 -1
  466. package/themes/brand-light.src.js +1 -1
  467. package/themes/dark-blue.js +1 -1
  468. package/themes/dark-blue.src.js +1 -1
  469. package/themes/dark-green.js +1 -1
  470. package/themes/dark-green.src.js +1 -1
  471. package/themes/dark-unica.js +1 -1
  472. package/themes/dark-unica.src.js +1 -1
  473. package/themes/gray.js +1 -1
  474. package/themes/gray.src.js +1 -1
  475. package/themes/grid-light.js +1 -1
  476. package/themes/grid-light.src.js +1 -1
  477. package/themes/grid.js +1 -1
  478. package/themes/grid.src.js +1 -1
  479. package/themes/high-contrast-dark.js +1 -1
  480. package/themes/high-contrast-dark.src.js +1 -1
  481. package/themes/high-contrast-light.js +1 -1
  482. package/themes/high-contrast-light.src.js +1 -1
  483. package/themes/sand-signika.js +1 -1
  484. package/themes/sand-signika.src.js +1 -1
  485. package/themes/skies.js +1 -1
  486. package/themes/skies.src.js +1 -1
  487. package/themes/sunset.js +1 -1
  488. package/themes/sunset.src.js +1 -1
  489. package/es-modules/Core/Series/KDPointSearchObjectLike.js +0 -10
  490. package/lib/jspdf.js +0 -398
  491. package/lib/jspdf.src.js +0 -28833
  492. package/lib/svg2pdf.js +0 -42
  493. package/lib/svg2pdf.src.js +0 -5983
package/highstock.src.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highstock JS v11.4.7 (2024-08-14)
2
+ * @license Highstock JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * (c) 2009-2024 Torstein Honsi
5
5
  *
@@ -62,7 +62,7 @@
62
62
  * Constants
63
63
  *
64
64
  * */
65
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '11.4.7', Globals.win = (typeof window !== 'undefined' ?
65
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '11.4.9', Globals.win = (typeof window !== 'undefined' ?
66
66
  window :
67
67
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
68
68
  Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
@@ -6448,8 +6448,9 @@
6448
6448
  * @apioption tooltip.positioner
6449
6449
  */
6450
6450
  /**
6451
- * Split the tooltip into one label per series, with the header close
6452
- * to the axis. This is recommended over [shared](#tooltip.shared)
6451
+ * Shows tooltip for all points with the same X value. Splits the
6452
+ * tooltip into one label per series, with the header close to the axis.
6453
+ * This is recommended over [shared](#tooltip.shared)
6453
6454
  * tooltips for charts with multiple line series, generally making them
6454
6455
  * easier to read. This option takes precedence over `tooltip.shared`.
6455
6456
  *
@@ -6687,11 +6688,12 @@
6687
6688
  */
6688
6689
  shape: 'callout',
6689
6690
  /**
6690
- * When the tooltip is shared, the entire plot area will capture mouse
6691
- * movement or touch events. Tooltip texts for series types with ordered
6692
- * data (not pie, scatter, flags etc) will be shown in a single bubble.
6693
- * This is recommended for single series charts and for tablet/mobile
6694
- * optimized charts.
6691
+ * Shows information in the tooltip for all points with the same X
6692
+ * value. When the tooltip is shared, the entire plot area will capture
6693
+ * mouse movement or touch events. Tooltip texts for series types with
6694
+ * ordered data (not pie, scatter, flags etc) will be shown in a single
6695
+ * bubble. This is recommended for single series charts and for
6696
+ * tablet/mobile optimized charts.
6695
6697
  *
6696
6698
  * See also [tooltip.split](#tooltip.split), that is better suited for
6697
6699
  * charts with many series, especially line-type series. The
@@ -6942,6 +6944,10 @@
6942
6944
  /**
6943
6945
  * The URL for the credits label.
6944
6946
  *
6947
+ * * URLs that do not start with one of the
6948
+ * [AST.allowedReferences](https://api.highcharts.com/class-reference/Highcharts.AST#.allowedReferences),
6949
+ * for example `javascript:` URLs, are ignored.
6950
+ *
6945
6951
  * @sample {highcharts} highcharts/credits/href/
6946
6952
  * Custom URL and text
6947
6953
  * @sample {highmaps} maps/credits/customized/
@@ -7467,6 +7473,7 @@
7467
7473
  /**
7468
7474
  * Collection of parsers. This can be extended from the outside by pushing
7469
7475
  * parsers to `Color.parsers`.
7476
+ * @private
7470
7477
  */
7471
7478
  Color.parsers = [{
7472
7479
  // RGBA color
@@ -8215,7 +8222,7 @@
8215
8222
  *
8216
8223
  * */
8217
8224
  const { SVG_NS, win } = H;
8218
- const { attr, createElement, css, error, isFunction, isString, objectEach, splat } = U;
8225
+ const { attr, css, error, isFunction, isString, objectEach, splat } = U;
8219
8226
  const { trustedTypes } = win;
8220
8227
  /* *
8221
8228
  *
@@ -8280,7 +8287,7 @@
8280
8287
  if (AST.allowedAttributes.indexOf(key) === -1) {
8281
8288
  valid = false;
8282
8289
  }
8283
- if (['background', 'dynsrc', 'href', 'lowsrc', 'src']
8290
+ if (['background', 'dynsrc', 'href', 'lowsrc', 'src', 'xlink:href']
8284
8291
  .indexOf(key) !== -1) {
8285
8292
  valid = isString(val) && AST.allowedReferences.some((ref) => val.indexOf(ref) === 0);
8286
8293
  }
@@ -8456,9 +8463,10 @@
8456
8463
  markup, 'text/html');
8457
8464
  }
8458
8465
  else {
8459
- const body = createElement('div');
8460
- body.innerHTML = markup;
8461
- doc = { body };
8466
+ // Never assign untrusted markup to a live document's innerHTML.
8467
+ // Parse into a detached, inert document instead.
8468
+ doc = H.doc.implementation.createHTMLDocument('');
8469
+ doc.body.innerHTML = markup;
8462
8470
  }
8463
8471
  const appendChildNodes = (node, addTo) => {
8464
8472
  const tagName = node.nodeName.toLowerCase();
@@ -12530,7 +12538,7 @@
12530
12538
  this.url = this.getReferenceURL();
12531
12539
  // Add description
12532
12540
  const desc = this.createElement('desc').add();
12533
- desc.element.appendChild(doc.createTextNode('Created with Highcharts 11.4.7'));
12541
+ desc.element.appendChild(doc.createTextNode('Created with Highcharts 11.4.9'));
12534
12542
  this.defs = this.createElement('defs').add();
12535
12543
  this.allowHTML = allowHTML;
12536
12544
  this.forExport = forExport;
@@ -13495,6 +13503,7 @@
13495
13503
  });
13496
13504
  }
13497
13505
  img.isImg = true;
13506
+ img.symbolUrl = symbol;
13498
13507
  if (defined(img.imgwidth) && defined(img.imgheight)) {
13499
13508
  centerImage(img);
13500
13509
  }
@@ -16593,9 +16602,10 @@
16593
16602
  * Logarithmic with extension to emulate negative values
16594
16603
  *
16595
16604
  * @type {Highcharts.AxisTypeValue}
16605
+ * @default linear
16596
16606
  * @product highcharts gantt
16607
+ * @apioption xAxis.type
16597
16608
  */
16598
- type: 'linear',
16599
16609
  /**
16600
16610
  * If there are multiple axes on the same side of the chart, the pixel
16601
16611
  * margin between the axes. Defaults to 0 on vertical axes, 15 on
@@ -16621,8 +16631,9 @@
16621
16631
  *
16622
16632
  * @since 4.2.7
16623
16633
  * @product highcharts gantt
16634
+ * @type {boolean}
16635
+ * @default true
16624
16636
  */
16625
- uniqueNames: true,
16626
16637
  /**
16627
16638
  * Datetime axis only. An array determining what time intervals the
16628
16639
  * ticks are allowed to fall on. Each array item is an array where the
@@ -18010,7 +18021,7 @@
18010
18021
  axis.transB)
18011
18022
  };
18012
18023
  // Chrome workaround for #10516
18013
- pos.y = clamp(pos.y, -1e5, 1e5);
18024
+ pos.y = clamp(pos.y, -1e9, 1e9);
18014
18025
  fireEvent(this, 'afterGetPosition', { pos: pos });
18015
18026
  return pos;
18016
18027
  }
@@ -18586,7 +18597,11 @@
18586
18597
  * @type {Highcharts.AxisOptions}
18587
18598
  */
18588
18599
  axis.setOptions(userOptions);
18589
- const options = this.options, labelsOptions = options.labels, type = options.type;
18600
+ const options = axis.options, labelsOptions = options.labels;
18601
+ // Set the type and fire an event
18602
+ axis.type ?? (axis.type = options.type || 'linear');
18603
+ axis.uniqueNames ?? (axis.uniqueNames = options.uniqueNames ?? true);
18604
+ fireEvent(axis, 'afterSetType');
18590
18605
  /**
18591
18606
  * User's options for this axis without defaults.
18592
18607
  *
@@ -18606,7 +18621,7 @@
18606
18621
  axis.visible = options.visible;
18607
18622
  axis.zoomEnabled = options.zoomEnabled;
18608
18623
  // Initial categories
18609
- axis.hasNames = type === 'category' || options.categories === true;
18624
+ axis.hasNames = this.type === 'category' || options.categories === true;
18610
18625
  /**
18611
18626
  * If categories are present for the axis, names are used instead of
18612
18627
  * numbers for that axis.
@@ -18979,7 +18994,7 @@
18979
18994
  * @param {number} value
18980
18995
  * A value in terms of axis units.
18981
18996
  *
18982
- * @param {boolean} paneCoordinates
18997
+ * @param {boolean} [paneCoordinates=false]
18983
18998
  * Whether to return the pixel coordinate relative to the chart or just the
18984
18999
  * axis/pane itself.
18985
19000
  *
@@ -19054,7 +19069,7 @@
19054
19069
  translatedValue = pick(translatedValue, axis.translate(value, void 0, void 0, old));
19055
19070
  // Keep the translated value within sane bounds, and avoid Infinity
19056
19071
  // to fail the isNumber test (#7709).
19057
- translatedValue = clamp(translatedValue, -1e5, 1e5);
19072
+ translatedValue = clamp(translatedValue, -1e9, 1e9);
19058
19073
  x1 = x2 = translatedValue + transB;
19059
19074
  y1 = y2 = cHeight - translatedValue - transB;
19060
19075
  if (!isNumber(translatedValue)) { // No min or max
@@ -19329,7 +19344,7 @@
19329
19344
  let nameX = point.options.x, x;
19330
19345
  point.series.requireSorting = false;
19331
19346
  if (!defined(nameX)) {
19332
- nameX = this.options.uniqueNames && names ?
19347
+ nameX = this.uniqueNames && names ?
19333
19348
  (explicitCategories ?
19334
19349
  names.indexOf(point.name) :
19335
19350
  pick(names.keys[point.name], -1)) :
@@ -19515,7 +19530,7 @@
19515
19530
  linkedParentExtremes = linkedParent.getExtremes();
19516
19531
  axis.min = pick(linkedParentExtremes.min, linkedParentExtremes.dataMin);
19517
19532
  axis.max = pick(linkedParentExtremes.max, linkedParentExtremes.dataMax);
19518
- if (options.type !== linkedParent.options.type) {
19533
+ if (this.type !== linkedParent.type) {
19519
19534
  // Can't link axes of different type
19520
19535
  error(11, true, chart);
19521
19536
  }
@@ -19722,12 +19737,6 @@
19722
19737
  this.tickmarkOffset = (this.categories &&
19723
19738
  options.tickmarkPlacement === 'between' &&
19724
19739
  this.tickInterval === 1) ? 0.5 : 0; // #3202
19725
- // Get minorTickInterval
19726
- this.minorTickInterval =
19727
- minorTickIntervalOption === 'auto' &&
19728
- this.tickInterval ?
19729
- this.tickInterval / options.minorTicksPerMajor :
19730
- minorTickIntervalOption;
19731
19740
  // When there is only one point, or all points have the same value on
19732
19741
  // this axis, then min and max are equal and tickPositions.length is 0
19733
19742
  // or 1. In this case, add some padding in order to center the point,
@@ -19815,6 +19824,11 @@
19815
19824
  }
19816
19825
  }
19817
19826
  this.tickPositions = tickPositions;
19827
+ // Get minorTickInterval
19828
+ this.minorTickInterval =
19829
+ minorTickIntervalOption === 'auto' && this.tickInterval ?
19830
+ this.tickInterval / options.minorTicksPerMajor :
19831
+ minorTickIntervalOption;
19818
19832
  // Reset min/max or remove extremes based on start/end on tick
19819
19833
  this.paddedTicks = tickPositions.slice(0); // Used for logarithmic minor
19820
19834
  this.trimTicks(tickPositions, startOnTick, endOnTick);
@@ -21749,7 +21763,7 @@
21749
21763
  AxisClass.keepProps.push('dateTime');
21750
21764
  const axisProto = AxisClass.prototype;
21751
21765
  axisProto.getTimeTicks = getTimeTicks;
21752
- addEvent(AxisClass, 'afterSetOptions', onAfterSetOptions);
21766
+ addEvent(AxisClass, 'afterSetType', onAfterSetType);
21753
21767
  }
21754
21768
  return AxisClass;
21755
21769
  }
@@ -21775,8 +21789,8 @@
21775
21789
  /**
21776
21790
  * @private
21777
21791
  */
21778
- function onAfterSetOptions() {
21779
- if (this.options.type !== 'datetime') {
21792
+ function onAfterSetType() {
21793
+ if (this.type !== 'datetime') {
21780
21794
  this.dateTime = void 0;
21781
21795
  return;
21782
21796
  }
@@ -21938,7 +21952,7 @@
21938
21952
  function compose(AxisClass) {
21939
21953
  if (!AxisClass.keepProps.includes('logarithmic')) {
21940
21954
  AxisClass.keepProps.push('logarithmic');
21941
- addEvent(AxisClass, 'init', onInit);
21955
+ addEvent(AxisClass, 'afterSetType', onAfterSetType);
21942
21956
  addEvent(AxisClass, 'afterInit', onAfterInit);
21943
21957
  }
21944
21958
  return AxisClass;
@@ -21947,17 +21961,12 @@
21947
21961
  /**
21948
21962
  * @private
21949
21963
  */
21950
- function onInit(e) {
21951
- const axis = this;
21952
- const options = e.userOptions;
21953
- let logarithmic = axis.logarithmic;
21954
- if (options.type !== 'logarithmic') {
21955
- axis.logarithmic = void 0;
21964
+ function onAfterSetType() {
21965
+ if (this.type !== 'logarithmic') {
21966
+ this.logarithmic = void 0;
21956
21967
  }
21957
21968
  else {
21958
- if (!logarithmic) {
21959
- logarithmic = axis.logarithmic = new Additions(axis);
21960
- }
21969
+ this.logarithmic ?? (this.logarithmic = new Additions(this));
21961
21970
  }
21962
21971
  }
21963
21972
  /**
@@ -22367,7 +22376,7 @@
22367
22376
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
22368
22377
  *
22369
22378
  * */
22370
- const { arrayMax, arrayMin, defined, destroyObjectProperties, erase, fireEvent, merge, objectEach, pick } = U;
22379
+ const { addEvent, arrayMax, arrayMin, defined, destroyObjectProperties, erase, fireEvent, merge, objectEach, pick } = U;
22371
22380
  /* *
22372
22381
  *
22373
22382
  * Class
@@ -22391,7 +22400,20 @@
22391
22400
  * Static Functions
22392
22401
  *
22393
22402
  * */
22394
- static compose(AxisClass) {
22403
+ static compose(ChartClass, AxisClass) {
22404
+ addEvent(ChartClass, 'afterInit', function () {
22405
+ this.labelCollectors.push(() => {
22406
+ const labels = [];
22407
+ for (const axis of this.axes) {
22408
+ for (const { label, options } of axis.plotLinesAndBands) {
22409
+ if (label && !options?.label?.allowOverlap) {
22410
+ labels.push(label);
22411
+ }
22412
+ }
22413
+ }
22414
+ return labels;
22415
+ });
22416
+ });
22395
22417
  return PlotLineOrBandAxis.compose(PlotLineOrBand, AxisClass);
22396
22418
  }
22397
22419
  /* *
@@ -22530,7 +22552,8 @@
22530
22552
  x: horiz ? !isBand && 4 : 10,
22531
22553
  verticalAlign: !horiz && isBand ? 'middle' : void 0,
22532
22554
  y: horiz ? isBand ? 16 : 10 : isBand ? 6 : -4,
22533
- rotation: horiz && !isBand ? 90 : 0
22555
+ rotation: horiz && !isBand ? 90 : 0,
22556
+ ...(isBand ? { inside: true } : {})
22534
22557
  }, optionsLabel);
22535
22558
  this.renderLabel(optionsLabel, path, isBand, zIndex);
22536
22559
  // Move out of sight
@@ -22547,7 +22570,7 @@
22547
22570
  * @function Highcharts.PlotLineOrBand#renderLabel
22548
22571
  */
22549
22572
  renderLabel(optionsLabel, path, isBand, zIndex) {
22550
- const plotLine = this, axis = plotLine.axis, renderer = axis.chart.renderer;
22573
+ const plotLine = this, axis = plotLine.axis, renderer = axis.chart.renderer, inside = optionsLabel.inside;
22551
22574
  let label = plotLine.label;
22552
22575
  // Add the SVG element
22553
22576
  if (!label) {
@@ -22569,7 +22592,7 @@
22569
22592
  if (!axis.chart.styledMode) {
22570
22593
  label.css(merge({
22571
22594
  fontSize: '0.8em',
22572
- textOverflow: 'ellipsis'
22595
+ textOverflow: (isBand && !inside) ? '' : 'ellipsis'
22573
22596
  }, optionsLabel.style));
22574
22597
  }
22575
22598
  label.add();
@@ -22578,20 +22601,24 @@
22578
22601
  // #3000 changed to better handle choice between plotband or plotline
22579
22602
  const xBounds = path.xBounds ||
22580
22603
  [path[0][1], path[1][1], (isBand ? path[2][1] : path[0][1])], yBounds = path.yBounds ||
22581
- [path[0][2], path[1][2], (isBand ? path[2][2] : path[0][2])], x = arrayMin(xBounds), y = arrayMin(yBounds);
22604
+ [path[0][2], path[1][2], (isBand ? path[2][2] : path[0][2])], x = arrayMin(xBounds), y = arrayMin(yBounds), bBoxWidth = arrayMax(xBounds) - x;
22582
22605
  label.align(optionsLabel, false, {
22583
22606
  x,
22584
22607
  y,
22585
- width: arrayMax(xBounds) - x,
22608
+ width: bBoxWidth,
22586
22609
  height: arrayMax(yBounds) - y
22587
22610
  });
22588
- if (!label.alignValue || label.alignValue === 'left') {
22589
- const width = optionsLabel.clip ?
22590
- axis.width : axis.chart.chartWidth;
22611
+ if (!label.alignValue ||
22612
+ label.alignValue === 'left' ||
22613
+ defined(inside)) {
22591
22614
  label.css({
22592
- width: (label.rotation === 90 ?
22593
- axis.height - (label.alignAttr.y - axis.top) :
22594
- width - (label.alignAttr.x - axis.left)) + 'px'
22615
+ width: (optionsLabel.style?.width || ((!isBand ||
22616
+ !inside) ? (label.rotation === 90 ?
22617
+ axis.height - (label.alignAttr.y -
22618
+ axis.top) : (optionsLabel.clip ?
22619
+ axis.width :
22620
+ axis.chart.chartWidth) - (label.alignAttr.x - axis.left)) :
22621
+ bBoxWidth)) + 'px'
22595
22622
  });
22596
22623
  }
22597
22624
  label.show(true);
@@ -22830,6 +22857,29 @@
22830
22857
  * @since 2.1
22831
22858
  * @apioption xAxis.plotBands.label.align
22832
22859
  */
22860
+ /**
22861
+ * Whether or not the label can be hidden if it overlaps with another label.
22862
+ *
22863
+ * @sample {highcharts} highcharts/xaxis/plotbands-label-allowoverlap/
22864
+ * A Plotband label overlapping another
22865
+ *
22866
+ * @type {boolean}
22867
+ * @default undefined
22868
+ * @since 11.4.8
22869
+ * @apioption xAxis.plotBands.label.allowOverlap
22870
+ */
22871
+ /**
22872
+ * Wether or not the text of the label can exceed the width of the label.
22873
+ *
22874
+ * @type {boolean}
22875
+ * @product highcharts highstock gantt
22876
+ * @sample {highcharts} highcharts/xaxis/plotbands-label-textwidth/
22877
+ * Displaying text with text-wrapping/ellipsis, or the full text.
22878
+ *
22879
+ * @default true
22880
+ * @since 11.4.6
22881
+ * @apioption xAxis.plotBands.label.inside
22882
+ */
22833
22883
  /**
22834
22884
  * Rotation of the text label in degrees .
22835
22885
  *
@@ -23977,6 +24027,15 @@
23977
24027
  text.join('') :
23978
24028
  text
23979
24029
  });
24030
+ // When the length of the label has increased, immediately
24031
+ // update the x position to prevent tooltip from flowing
24032
+ // outside the viewport during animation (#21371)
24033
+ if (this.outside) {
24034
+ label.attr({
24035
+ x: clamp(label.x || 0, 0, this.getPlayingField().width -
24036
+ (label.width || 0))
24037
+ });
24038
+ }
23980
24039
  if (!styledMode) {
23981
24040
  label.attr({
23982
24041
  stroke: (options.borderColor ||
@@ -25253,11 +25312,18 @@
25253
25312
  */
25254
25313
  setNestedProperty(object, value, key) {
25255
25314
  const nestedKeys = key.split('.');
25315
+ // Reject nested keys that would allow prototype pollution
25316
+ if (nestedKeys.some((nestedKey) => (nestedKey === '__proto__' || nestedKey === 'constructor'))) {
25317
+ return object;
25318
+ }
25256
25319
  nestedKeys.reduce(function (result, key, i, arr) {
25257
25320
  const isLastKey = arr.length - 1 === i;
25258
25321
  result[key] = (isLastKey ?
25259
25322
  value :
25260
- isObject(result[key], true) ?
25323
+ // Inherited objects are shared with everything else on
25324
+ // that prototype, so start a fresh one instead
25325
+ isObject(result[key], true) &&
25326
+ Object.hasOwnProperty.call(result, key) ?
25261
25327
  result[key] :
25262
25328
  {});
25263
25329
  return result[key];
@@ -27607,7 +27673,7 @@
27607
27673
  * The legend object.
27608
27674
  */
27609
27675
  function lineMarker(legend, item, hasArea) {
27610
- const legendItem = this.legendItem = this.legendItem || {}, { chart, options } = this, { baseline = 0, symbolWidth, symbolHeight } = legend, symbol = this.symbol || 'circle', generalRadius = symbolHeight / 2, renderer = chart.renderer, legendItemGroup = legendItem.group, verticalCenter = baseline - Math.round(symbolHeight *
27676
+ const legendItem = this.legendItem = this.legendItem || {}, { chart, options } = this, { baseline = 0, symbolWidth, symbolHeight } = legend, symbol = this.symbol || 'circle', generalRadius = symbolHeight / 2, renderer = chart.renderer, legendItemGroup = legendItem.group, verticalCenter = baseline - Math.round((legend.fontMetrics?.b || symbolHeight) *
27611
27677
  // Render line and marker slightly higher to make room for the
27612
27678
  // area
27613
27679
  (hasArea ? 0.4 : 0.3)), attr = {};
@@ -31593,7 +31659,7 @@
31593
31659
  * @private
31594
31660
  */
31595
31661
  function limitedRange(val) {
31596
- return clamp(val, -1e5, 1e5);
31662
+ return clamp(val, -1e9, 1e9);
31597
31663
  }
31598
31664
  // Translate each point
31599
31665
  for (i = 0; i < dataLength; i++) {
@@ -36122,10 +36188,22 @@
36122
36188
  * @function Highcharts.Chart#getContainerBox
36123
36189
  */
36124
36190
  getContainerBox() {
36125
- return {
36191
+ // Temporarily hide support divs from a11y and others, #21888
36192
+ const nonContainers = [].map.call(this.renderTo.children, (child) => {
36193
+ if (child !== this.container) {
36194
+ const display = child.style.display;
36195
+ child.style.display = 'none';
36196
+ return [child, display];
36197
+ }
36198
+ }), box = {
36126
36199
  width: getStyle(this.renderTo, 'width', true) || 0,
36127
- height: getStyle(this.renderTo, 'height', true) || 0
36200
+ height: (getStyle(this.renderTo, 'height', true) || 0)
36128
36201
  };
36202
+ // Restore the non-containers
36203
+ nonContainers.filter(Boolean).forEach(([div, display]) => {
36204
+ div.style.display = display;
36205
+ });
36206
+ return box;
36129
36207
  }
36130
36208
  /**
36131
36209
  * Internal function to get the chart width and height according to options
@@ -36136,7 +36214,10 @@
36136
36214
  * @function Highcharts.Chart#getChartSize
36137
36215
  */
36138
36216
  getChartSize() {
36139
- const chart = this, optionsChart = chart.options.chart, widthOption = optionsChart.width, heightOption = optionsChart.height, containerBox = chart.getContainerBox();
36217
+ const chart = this, optionsChart = chart.options.chart, widthOption = optionsChart.width, heightOption = optionsChart.height, containerBox = chart.getContainerBox(), enableDefaultHeight = containerBox.height > 1 &&
36218
+ !( // #21510, prevent infinite reflow
36219
+ !chart.renderTo.parentElement?.style.height &&
36220
+ chart.renderTo.style.height === '100%');
36140
36221
  /**
36141
36222
  * The current pixel width of the chart.
36142
36223
  *
@@ -36153,7 +36234,7 @@
36153
36234
  * @type {number}
36154
36235
  */
36155
36236
  chart.chartHeight = Math.max(0, relativeLength(heightOption, chart.chartWidth) ||
36156
- (containerBox.height > 1 ? containerBox.height : 400));
36237
+ (enableDefaultHeight ? containerBox.height : 400));
36157
36238
  chart.containerBox = containerBox;
36158
36239
  }
36159
36240
  /**
@@ -36301,7 +36382,8 @@
36301
36382
  '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',
36302
36383
  userSelect: 'none', // #13503
36303
36384
  'touch-action': 'manipulation',
36304
- outline: 'none'
36385
+ outline: 'none',
36386
+ padding: '0px'
36305
36387
  }, optionsChart.style || {});
36306
36388
  }
36307
36389
  /**
@@ -37022,6 +37104,12 @@
37022
37104
  addCredits(credits) {
37023
37105
  const chart = this, creds = merge(true, this.options.credits, credits);
37024
37106
  if (creds.enabled && !this.credits) {
37107
+ // Run the user-supplied URL through the allow list, so that
37108
+ // references like `javascript:` can't be executed from the
37109
+ // credits label
37110
+ const href = creds.href ?
37111
+ AST.filterUserAttributes({ href: creds.href }).href :
37112
+ void 0;
37025
37113
  /**
37026
37114
  * The chart's credits label. The label has an `update` method that
37027
37115
  * allows setting new options as per the
@@ -37033,8 +37121,8 @@
37033
37121
  this.credits = this.renderer.text(creds.text + (this.mapCredits || ''), 0, 0)
37034
37122
  .addClass('highcharts-credits')
37035
37123
  .on('click', function () {
37036
- if (creds.href) {
37037
- win.location.href = creds.href;
37124
+ if (href) {
37125
+ win.location.href = href;
37038
37126
  }
37039
37127
  })
37040
37128
  .attr({
@@ -37869,8 +37957,11 @@
37869
37957
  }
37870
37958
  let newMin = axis.toValue(minPx, true) +
37871
37959
  // Don't apply offset for selection (#20784)
37872
- (selection ? 0 : minPointOffset * pointRangeDirection), newMax = axis.toValue(minPx + len / scale, true) -
37873
- (selection ? // Don't apply offset for selection (#20784)
37960
+ (selection || axis.isOrdinal ?
37961
+ 0 : minPointOffset * pointRangeDirection), newMax = axis.toValue(minPx + len / scale, true) -
37962
+ (
37963
+ // Don't apply offset for selection (#20784)
37964
+ selection || axis.isOrdinal ?
37874
37965
  0 :
37875
37966
  ((minPointOffset * pointRangeDirection) ||
37876
37967
  // Polar zoom tests failed when this was not
@@ -37915,7 +38006,10 @@
37915
38006
  // It is not necessary to calculate extremes on ordinal axis,
37916
38007
  // because they are already calculated, so we don't want to override
37917
38008
  // them.
37918
- if (!axis.isOrdinal || scale !== 1 || reset) {
38009
+ if (!axis.isOrdinal ||
38010
+ axis.options.overscroll || // #21316
38011
+ scale !== 1 ||
38012
+ reset) {
37919
38013
  // If the new range spills over, either to the min or max,
37920
38014
  // adjust it.
37921
38015
  if (newMin < floor) {
@@ -42280,6 +42374,15 @@
42280
42374
  // read text bounding box
42281
42375
  dataLabel.css(style).shadow(labelOptions.shadow);
42282
42376
  }
42377
+ else if (style.width) {
42378
+ // In styled mode with a width property set,
42379
+ // the width should be applied to the
42380
+ // dataLabel. (#20499)
42381
+ dataLabel.css({
42382
+ width: style.width,
42383
+ textOverflow: style.textOverflow
42384
+ });
42385
+ }
42283
42386
  fireEvent(dataLabel, 'beforeAddingDataLabel', { labelOptions, point });
42284
42387
  if (!dataLabel.added) {
42285
42388
  dataLabel.add(dataLabelsGroup);
@@ -45941,7 +46044,7 @@
45941
46044
  LogarithmicAxis.compose(G.Axis);
45942
46045
  OverlappingDataLabels.compose(G.Chart);
45943
46046
  PieDataLabel.compose(G.Series.types.pie);
45944
- PlotLineOrBand.compose(G.Axis);
46047
+ PlotLineOrBand.compose(G.Chart, G.Axis);
45945
46048
  Pointer.compose(G.Chart);
45946
46049
  Responsive.compose(G.Chart);
45947
46050
  ScrollablePlotArea.compose(G.Axis, G.Chart, G.Series);
@@ -47674,13 +47777,23 @@
47674
47777
  isNaN(scrollMax) ||
47675
47778
  !defined(axis.min) ||
47676
47779
  !defined(axis.max) ||
47677
- axis.min === axis.max // #10733
47780
+ axis.dataMin === axis.dataMax // #10733
47678
47781
  ) {
47679
- // Default action: when extremes are the same or there is
47782
+ // Default action: when data extremes are the same or there is
47680
47783
  // not extremes on the axis, but scrollbar exists, make it
47681
47784
  // full size
47682
47785
  scrollbar.setRange(0, 1);
47683
47786
  }
47787
+ else if (axis.min === axis.max) { // #20359
47788
+ // When the extremes are the same, set the scrollbar to a point
47789
+ // within the extremes range. Utilize pointRange to perform the
47790
+ // calculations. (#20359)
47791
+ const interval = axis.pointRange / (axis.dataMax +
47792
+ 1);
47793
+ from = interval * axis.min;
47794
+ to = interval * (axis.max + 1);
47795
+ scrollbar.setRange(from, to);
47796
+ }
47684
47797
  else {
47685
47798
  from = ((axis.min - scrollMin) /
47686
47799
  (scrollMax - scrollMin));
@@ -48890,7 +49003,10 @@
48890
49003
  const handlesOptions = navigatorOptions.handles, { height, width } = handlesOptions;
48891
49004
  [0, 1].forEach((index) => {
48892
49005
  const symbolName = handlesOptions.symbols[index];
48893
- if (!navigator.handles[index]) {
49006
+ if (!navigator.handles[index] ||
49007
+ navigator.handles[index].symbolUrl !== symbolName) {
49008
+ // Generate symbol from scratch if we're dealing with an URL
49009
+ navigator.handles[index]?.destroy();
48894
49010
  navigator.handles[index] = renderer.symbol(symbolName, -width / 2 - 1, 0, width, height, handlesOptions);
48895
49011
  // Z index is 6 for right handle, 7 for left. Can't be 10,
48896
49012
  // because of the tooltip in inverted chart (#2908).
@@ -48898,9 +49014,11 @@
48898
49014
  .addClass('highcharts-navigator-handle ' +
48899
49015
  'highcharts-navigator-handle-' +
48900
49016
  ['left', 'right'][index]).add(navigatorGroup);
49017
+ navigator.addMouseEvents();
48901
49018
  // If the navigator symbol changed, update its path and name
48902
49019
  }
48903
- else if (symbolName !== navigator.handles[index].symbolName) {
49020
+ else if (!navigator.handles[index].isImg &&
49021
+ navigator.handles[index].symbolName !== symbolName) {
48904
49022
  const symbolFn = symbols[symbolName], path = symbolFn.call(symbols, -width / 2 - 1, 0, width, height);
48905
49023
  navigator.handles[index].attr({
48906
49024
  d: path
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highstock JS v11.4.7 (2024-08-14)
2
+ * Highstock JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * Indicator series type for Highcharts Stock
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highstock JS v11.4.7 (2024-08-14)
2
+ * @license Highstock JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * Indicator series type for Highcharts Stock
5
5
  *
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highstock JS v11.4.7 (2024-08-14)
2
+ * Highstock JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * Indicator series type for Highcharts Stock
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highstock JS v11.4.7 (2024-08-14)
2
+ * @license Highstock JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * Indicator series type for Highcharts Stock
5
5
  *