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
@@ -56,7 +56,7 @@
56
56
  * Constants
57
57
  *
58
58
  * */
59
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '11.4.7', Globals.win = (typeof window !== 'undefined' ?
59
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '11.4.9', Globals.win = (typeof window !== 'undefined' ?
60
60
  window :
61
61
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
62
62
  Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
@@ -6442,8 +6442,9 @@
6442
6442
  * @apioption tooltip.positioner
6443
6443
  */
6444
6444
  /**
6445
- * Split the tooltip into one label per series, with the header close
6446
- * to the axis. This is recommended over [shared](#tooltip.shared)
6445
+ * Shows tooltip for all points with the same X value. Splits the
6446
+ * tooltip into one label per series, with the header close to the axis.
6447
+ * This is recommended over [shared](#tooltip.shared)
6447
6448
  * tooltips for charts with multiple line series, generally making them
6448
6449
  * easier to read. This option takes precedence over `tooltip.shared`.
6449
6450
  *
@@ -6681,11 +6682,12 @@
6681
6682
  */
6682
6683
  shape: 'callout',
6683
6684
  /**
6684
- * When the tooltip is shared, the entire plot area will capture mouse
6685
- * movement or touch events. Tooltip texts for series types with ordered
6686
- * data (not pie, scatter, flags etc) will be shown in a single bubble.
6687
- * This is recommended for single series charts and for tablet/mobile
6688
- * optimized charts.
6685
+ * Shows information in the tooltip for all points with the same X
6686
+ * value. When the tooltip is shared, the entire plot area will capture
6687
+ * mouse movement or touch events. Tooltip texts for series types with
6688
+ * ordered data (not pie, scatter, flags etc) will be shown in a single
6689
+ * bubble. This is recommended for single series charts and for
6690
+ * tablet/mobile optimized charts.
6689
6691
  *
6690
6692
  * See also [tooltip.split](#tooltip.split), that is better suited for
6691
6693
  * charts with many series, especially line-type series. The
@@ -6936,6 +6938,10 @@
6936
6938
  /**
6937
6939
  * The URL for the credits label.
6938
6940
  *
6941
+ * * URLs that do not start with one of the
6942
+ * [AST.allowedReferences](https://api.highcharts.com/class-reference/Highcharts.AST#.allowedReferences),
6943
+ * for example `javascript:` URLs, are ignored.
6944
+ *
6939
6945
  * @sample {highcharts} highcharts/credits/href/
6940
6946
  * Custom URL and text
6941
6947
  * @sample {highmaps} maps/credits/customized/
@@ -7461,6 +7467,7 @@
7461
7467
  /**
7462
7468
  * Collection of parsers. This can be extended from the outside by pushing
7463
7469
  * parsers to `Color.parsers`.
7470
+ * @private
7464
7471
  */
7465
7472
  Color.parsers = [{
7466
7473
  // RGBA color
@@ -8209,7 +8216,7 @@
8209
8216
  *
8210
8217
  * */
8211
8218
  const { SVG_NS, win } = H;
8212
- const { attr, createElement, css, error, isFunction, isString, objectEach, splat } = U;
8219
+ const { attr, css, error, isFunction, isString, objectEach, splat } = U;
8213
8220
  const { trustedTypes } = win;
8214
8221
  /* *
8215
8222
  *
@@ -8274,7 +8281,7 @@
8274
8281
  if (AST.allowedAttributes.indexOf(key) === -1) {
8275
8282
  valid = false;
8276
8283
  }
8277
- if (['background', 'dynsrc', 'href', 'lowsrc', 'src']
8284
+ if (['background', 'dynsrc', 'href', 'lowsrc', 'src', 'xlink:href']
8278
8285
  .indexOf(key) !== -1) {
8279
8286
  valid = isString(val) && AST.allowedReferences.some((ref) => val.indexOf(ref) === 0);
8280
8287
  }
@@ -8450,9 +8457,10 @@
8450
8457
  markup, 'text/html');
8451
8458
  }
8452
8459
  else {
8453
- const body = createElement('div');
8454
- body.innerHTML = markup;
8455
- doc = { body };
8460
+ // Never assign untrusted markup to a live document's innerHTML.
8461
+ // Parse into a detached, inert document instead.
8462
+ doc = H.doc.implementation.createHTMLDocument('');
8463
+ doc.body.innerHTML = markup;
8456
8464
  }
8457
8465
  const appendChildNodes = (node, addTo) => {
8458
8466
  const tagName = node.nodeName.toLowerCase();
@@ -12524,7 +12532,7 @@
12524
12532
  this.url = this.getReferenceURL();
12525
12533
  // Add description
12526
12534
  const desc = this.createElement('desc').add();
12527
- desc.element.appendChild(doc.createTextNode('Created with Highcharts 11.4.7'));
12535
+ desc.element.appendChild(doc.createTextNode('Created with Highcharts 11.4.9'));
12528
12536
  this.defs = this.createElement('defs').add();
12529
12537
  this.allowHTML = allowHTML;
12530
12538
  this.forExport = forExport;
@@ -13489,6 +13497,7 @@
13489
13497
  });
13490
13498
  }
13491
13499
  img.isImg = true;
13500
+ img.symbolUrl = symbol;
13492
13501
  if (defined(img.imgwidth) && defined(img.imgheight)) {
13493
13502
  centerImage(img);
13494
13503
  }
@@ -16587,9 +16596,10 @@
16587
16596
  * Logarithmic with extension to emulate negative values
16588
16597
  *
16589
16598
  * @type {Highcharts.AxisTypeValue}
16599
+ * @default linear
16590
16600
  * @product highcharts gantt
16601
+ * @apioption xAxis.type
16591
16602
  */
16592
- type: 'linear',
16593
16603
  /**
16594
16604
  * If there are multiple axes on the same side of the chart, the pixel
16595
16605
  * margin between the axes. Defaults to 0 on vertical axes, 15 on
@@ -16615,8 +16625,9 @@
16615
16625
  *
16616
16626
  * @since 4.2.7
16617
16627
  * @product highcharts gantt
16628
+ * @type {boolean}
16629
+ * @default true
16618
16630
  */
16619
- uniqueNames: true,
16620
16631
  /**
16621
16632
  * Datetime axis only. An array determining what time intervals the
16622
16633
  * ticks are allowed to fall on. Each array item is an array where the
@@ -18004,7 +18015,7 @@
18004
18015
  axis.transB)
18005
18016
  };
18006
18017
  // Chrome workaround for #10516
18007
- pos.y = clamp(pos.y, -1e5, 1e5);
18018
+ pos.y = clamp(pos.y, -1e9, 1e9);
18008
18019
  fireEvent(this, 'afterGetPosition', { pos: pos });
18009
18020
  return pos;
18010
18021
  }
@@ -18580,7 +18591,11 @@
18580
18591
  * @type {Highcharts.AxisOptions}
18581
18592
  */
18582
18593
  axis.setOptions(userOptions);
18583
- const options = this.options, labelsOptions = options.labels, type = options.type;
18594
+ const options = axis.options, labelsOptions = options.labels;
18595
+ // Set the type and fire an event
18596
+ axis.type ?? (axis.type = options.type || 'linear');
18597
+ axis.uniqueNames ?? (axis.uniqueNames = options.uniqueNames ?? true);
18598
+ fireEvent(axis, 'afterSetType');
18584
18599
  /**
18585
18600
  * User's options for this axis without defaults.
18586
18601
  *
@@ -18600,7 +18615,7 @@
18600
18615
  axis.visible = options.visible;
18601
18616
  axis.zoomEnabled = options.zoomEnabled;
18602
18617
  // Initial categories
18603
- axis.hasNames = type === 'category' || options.categories === true;
18618
+ axis.hasNames = this.type === 'category' || options.categories === true;
18604
18619
  /**
18605
18620
  * If categories are present for the axis, names are used instead of
18606
18621
  * numbers for that axis.
@@ -18973,7 +18988,7 @@
18973
18988
  * @param {number} value
18974
18989
  * A value in terms of axis units.
18975
18990
  *
18976
- * @param {boolean} paneCoordinates
18991
+ * @param {boolean} [paneCoordinates=false]
18977
18992
  * Whether to return the pixel coordinate relative to the chart or just the
18978
18993
  * axis/pane itself.
18979
18994
  *
@@ -19048,7 +19063,7 @@
19048
19063
  translatedValue = pick(translatedValue, axis.translate(value, void 0, void 0, old));
19049
19064
  // Keep the translated value within sane bounds, and avoid Infinity
19050
19065
  // to fail the isNumber test (#7709).
19051
- translatedValue = clamp(translatedValue, -1e5, 1e5);
19066
+ translatedValue = clamp(translatedValue, -1e9, 1e9);
19052
19067
  x1 = x2 = translatedValue + transB;
19053
19068
  y1 = y2 = cHeight - translatedValue - transB;
19054
19069
  if (!isNumber(translatedValue)) { // No min or max
@@ -19323,7 +19338,7 @@
19323
19338
  let nameX = point.options.x, x;
19324
19339
  point.series.requireSorting = false;
19325
19340
  if (!defined(nameX)) {
19326
- nameX = this.options.uniqueNames && names ?
19341
+ nameX = this.uniqueNames && names ?
19327
19342
  (explicitCategories ?
19328
19343
  names.indexOf(point.name) :
19329
19344
  pick(names.keys[point.name], -1)) :
@@ -19509,7 +19524,7 @@
19509
19524
  linkedParentExtremes = linkedParent.getExtremes();
19510
19525
  axis.min = pick(linkedParentExtremes.min, linkedParentExtremes.dataMin);
19511
19526
  axis.max = pick(linkedParentExtremes.max, linkedParentExtremes.dataMax);
19512
- if (options.type !== linkedParent.options.type) {
19527
+ if (this.type !== linkedParent.type) {
19513
19528
  // Can't link axes of different type
19514
19529
  error(11, true, chart);
19515
19530
  }
@@ -19716,12 +19731,6 @@
19716
19731
  this.tickmarkOffset = (this.categories &&
19717
19732
  options.tickmarkPlacement === 'between' &&
19718
19733
  this.tickInterval === 1) ? 0.5 : 0; // #3202
19719
- // Get minorTickInterval
19720
- this.minorTickInterval =
19721
- minorTickIntervalOption === 'auto' &&
19722
- this.tickInterval ?
19723
- this.tickInterval / options.minorTicksPerMajor :
19724
- minorTickIntervalOption;
19725
19734
  // When there is only one point, or all points have the same value on
19726
19735
  // this axis, then min and max are equal and tickPositions.length is 0
19727
19736
  // or 1. In this case, add some padding in order to center the point,
@@ -19809,6 +19818,11 @@
19809
19818
  }
19810
19819
  }
19811
19820
  this.tickPositions = tickPositions;
19821
+ // Get minorTickInterval
19822
+ this.minorTickInterval =
19823
+ minorTickIntervalOption === 'auto' && this.tickInterval ?
19824
+ this.tickInterval / options.minorTicksPerMajor :
19825
+ minorTickIntervalOption;
19812
19826
  // Reset min/max or remove extremes based on start/end on tick
19813
19827
  this.paddedTicks = tickPositions.slice(0); // Used for logarithmic minor
19814
19828
  this.trimTicks(tickPositions, startOnTick, endOnTick);
@@ -21743,7 +21757,7 @@
21743
21757
  AxisClass.keepProps.push('dateTime');
21744
21758
  const axisProto = AxisClass.prototype;
21745
21759
  axisProto.getTimeTicks = getTimeTicks;
21746
- addEvent(AxisClass, 'afterSetOptions', onAfterSetOptions);
21760
+ addEvent(AxisClass, 'afterSetType', onAfterSetType);
21747
21761
  }
21748
21762
  return AxisClass;
21749
21763
  }
@@ -21769,8 +21783,8 @@
21769
21783
  /**
21770
21784
  * @private
21771
21785
  */
21772
- function onAfterSetOptions() {
21773
- if (this.options.type !== 'datetime') {
21786
+ function onAfterSetType() {
21787
+ if (this.type !== 'datetime') {
21774
21788
  this.dateTime = void 0;
21775
21789
  return;
21776
21790
  }
@@ -21932,7 +21946,7 @@
21932
21946
  function compose(AxisClass) {
21933
21947
  if (!AxisClass.keepProps.includes('logarithmic')) {
21934
21948
  AxisClass.keepProps.push('logarithmic');
21935
- addEvent(AxisClass, 'init', onInit);
21949
+ addEvent(AxisClass, 'afterSetType', onAfterSetType);
21936
21950
  addEvent(AxisClass, 'afterInit', onAfterInit);
21937
21951
  }
21938
21952
  return AxisClass;
@@ -21941,17 +21955,12 @@
21941
21955
  /**
21942
21956
  * @private
21943
21957
  */
21944
- function onInit(e) {
21945
- const axis = this;
21946
- const options = e.userOptions;
21947
- let logarithmic = axis.logarithmic;
21948
- if (options.type !== 'logarithmic') {
21949
- axis.logarithmic = void 0;
21958
+ function onAfterSetType() {
21959
+ if (this.type !== 'logarithmic') {
21960
+ this.logarithmic = void 0;
21950
21961
  }
21951
21962
  else {
21952
- if (!logarithmic) {
21953
- logarithmic = axis.logarithmic = new Additions(axis);
21954
- }
21963
+ this.logarithmic ?? (this.logarithmic = new Additions(this));
21955
21964
  }
21956
21965
  }
21957
21966
  /**
@@ -22361,7 +22370,7 @@
22361
22370
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
22362
22371
  *
22363
22372
  * */
22364
- const { arrayMax, arrayMin, defined, destroyObjectProperties, erase, fireEvent, merge, objectEach, pick } = U;
22373
+ const { addEvent, arrayMax, arrayMin, defined, destroyObjectProperties, erase, fireEvent, merge, objectEach, pick } = U;
22365
22374
  /* *
22366
22375
  *
22367
22376
  * Class
@@ -22385,7 +22394,20 @@
22385
22394
  * Static Functions
22386
22395
  *
22387
22396
  * */
22388
- static compose(AxisClass) {
22397
+ static compose(ChartClass, AxisClass) {
22398
+ addEvent(ChartClass, 'afterInit', function () {
22399
+ this.labelCollectors.push(() => {
22400
+ const labels = [];
22401
+ for (const axis of this.axes) {
22402
+ for (const { label, options } of axis.plotLinesAndBands) {
22403
+ if (label && !options?.label?.allowOverlap) {
22404
+ labels.push(label);
22405
+ }
22406
+ }
22407
+ }
22408
+ return labels;
22409
+ });
22410
+ });
22389
22411
  return PlotLineOrBandAxis.compose(PlotLineOrBand, AxisClass);
22390
22412
  }
22391
22413
  /* *
@@ -22524,7 +22546,8 @@
22524
22546
  x: horiz ? !isBand && 4 : 10,
22525
22547
  verticalAlign: !horiz && isBand ? 'middle' : void 0,
22526
22548
  y: horiz ? isBand ? 16 : 10 : isBand ? 6 : -4,
22527
- rotation: horiz && !isBand ? 90 : 0
22549
+ rotation: horiz && !isBand ? 90 : 0,
22550
+ ...(isBand ? { inside: true } : {})
22528
22551
  }, optionsLabel);
22529
22552
  this.renderLabel(optionsLabel, path, isBand, zIndex);
22530
22553
  // Move out of sight
@@ -22541,7 +22564,7 @@
22541
22564
  * @function Highcharts.PlotLineOrBand#renderLabel
22542
22565
  */
22543
22566
  renderLabel(optionsLabel, path, isBand, zIndex) {
22544
- const plotLine = this, axis = plotLine.axis, renderer = axis.chart.renderer;
22567
+ const plotLine = this, axis = plotLine.axis, renderer = axis.chart.renderer, inside = optionsLabel.inside;
22545
22568
  let label = plotLine.label;
22546
22569
  // Add the SVG element
22547
22570
  if (!label) {
@@ -22563,7 +22586,7 @@
22563
22586
  if (!axis.chart.styledMode) {
22564
22587
  label.css(merge({
22565
22588
  fontSize: '0.8em',
22566
- textOverflow: 'ellipsis'
22589
+ textOverflow: (isBand && !inside) ? '' : 'ellipsis'
22567
22590
  }, optionsLabel.style));
22568
22591
  }
22569
22592
  label.add();
@@ -22572,20 +22595,24 @@
22572
22595
  // #3000 changed to better handle choice between plotband or plotline
22573
22596
  const xBounds = path.xBounds ||
22574
22597
  [path[0][1], path[1][1], (isBand ? path[2][1] : path[0][1])], yBounds = path.yBounds ||
22575
- [path[0][2], path[1][2], (isBand ? path[2][2] : path[0][2])], x = arrayMin(xBounds), y = arrayMin(yBounds);
22598
+ [path[0][2], path[1][2], (isBand ? path[2][2] : path[0][2])], x = arrayMin(xBounds), y = arrayMin(yBounds), bBoxWidth = arrayMax(xBounds) - x;
22576
22599
  label.align(optionsLabel, false, {
22577
22600
  x,
22578
22601
  y,
22579
- width: arrayMax(xBounds) - x,
22602
+ width: bBoxWidth,
22580
22603
  height: arrayMax(yBounds) - y
22581
22604
  });
22582
- if (!label.alignValue || label.alignValue === 'left') {
22583
- const width = optionsLabel.clip ?
22584
- axis.width : axis.chart.chartWidth;
22605
+ if (!label.alignValue ||
22606
+ label.alignValue === 'left' ||
22607
+ defined(inside)) {
22585
22608
  label.css({
22586
- width: (label.rotation === 90 ?
22587
- axis.height - (label.alignAttr.y - axis.top) :
22588
- width - (label.alignAttr.x - axis.left)) + 'px'
22609
+ width: (optionsLabel.style?.width || ((!isBand ||
22610
+ !inside) ? (label.rotation === 90 ?
22611
+ axis.height - (label.alignAttr.y -
22612
+ axis.top) : (optionsLabel.clip ?
22613
+ axis.width :
22614
+ axis.chart.chartWidth) - (label.alignAttr.x - axis.left)) :
22615
+ bBoxWidth)) + 'px'
22589
22616
  });
22590
22617
  }
22591
22618
  label.show(true);
@@ -22824,6 +22851,29 @@
22824
22851
  * @since 2.1
22825
22852
  * @apioption xAxis.plotBands.label.align
22826
22853
  */
22854
+ /**
22855
+ * Whether or not the label can be hidden if it overlaps with another label.
22856
+ *
22857
+ * @sample {highcharts} highcharts/xaxis/plotbands-label-allowoverlap/
22858
+ * A Plotband label overlapping another
22859
+ *
22860
+ * @type {boolean}
22861
+ * @default undefined
22862
+ * @since 11.4.8
22863
+ * @apioption xAxis.plotBands.label.allowOverlap
22864
+ */
22865
+ /**
22866
+ * Wether or not the text of the label can exceed the width of the label.
22867
+ *
22868
+ * @type {boolean}
22869
+ * @product highcharts highstock gantt
22870
+ * @sample {highcharts} highcharts/xaxis/plotbands-label-textwidth/
22871
+ * Displaying text with text-wrapping/ellipsis, or the full text.
22872
+ *
22873
+ * @default true
22874
+ * @since 11.4.6
22875
+ * @apioption xAxis.plotBands.label.inside
22876
+ */
22827
22877
  /**
22828
22878
  * Rotation of the text label in degrees .
22829
22879
  *
@@ -23971,6 +24021,15 @@
23971
24021
  text.join('') :
23972
24022
  text
23973
24023
  });
24024
+ // When the length of the label has increased, immediately
24025
+ // update the x position to prevent tooltip from flowing
24026
+ // outside the viewport during animation (#21371)
24027
+ if (this.outside) {
24028
+ label.attr({
24029
+ x: clamp(label.x || 0, 0, this.getPlayingField().width -
24030
+ (label.width || 0))
24031
+ });
24032
+ }
23974
24033
  if (!styledMode) {
23975
24034
  label.attr({
23976
24035
  stroke: (options.borderColor ||
@@ -25247,11 +25306,18 @@
25247
25306
  */
25248
25307
  setNestedProperty(object, value, key) {
25249
25308
  const nestedKeys = key.split('.');
25309
+ // Reject nested keys that would allow prototype pollution
25310
+ if (nestedKeys.some((nestedKey) => (nestedKey === '__proto__' || nestedKey === 'constructor'))) {
25311
+ return object;
25312
+ }
25250
25313
  nestedKeys.reduce(function (result, key, i, arr) {
25251
25314
  const isLastKey = arr.length - 1 === i;
25252
25315
  result[key] = (isLastKey ?
25253
25316
  value :
25254
- isObject(result[key], true) ?
25317
+ // Inherited objects are shared with everything else on
25318
+ // that prototype, so start a fresh one instead
25319
+ isObject(result[key], true) &&
25320
+ Object.hasOwnProperty.call(result, key) ?
25255
25321
  result[key] :
25256
25322
  {});
25257
25323
  return result[key];
@@ -27601,7 +27667,7 @@
27601
27667
  * The legend object.
27602
27668
  */
27603
27669
  function lineMarker(legend, item, hasArea) {
27604
- 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 *
27670
+ 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) *
27605
27671
  // Render line and marker slightly higher to make room for the
27606
27672
  // area
27607
27673
  (hasArea ? 0.4 : 0.3)), attr = {};
@@ -31587,7 +31653,7 @@
31587
31653
  * @private
31588
31654
  */
31589
31655
  function limitedRange(val) {
31590
- return clamp(val, -1e5, 1e5);
31656
+ return clamp(val, -1e9, 1e9);
31591
31657
  }
31592
31658
  // Translate each point
31593
31659
  for (i = 0; i < dataLength; i++) {
@@ -36116,10 +36182,22 @@
36116
36182
  * @function Highcharts.Chart#getContainerBox
36117
36183
  */
36118
36184
  getContainerBox() {
36119
- return {
36185
+ // Temporarily hide support divs from a11y and others, #21888
36186
+ const nonContainers = [].map.call(this.renderTo.children, (child) => {
36187
+ if (child !== this.container) {
36188
+ const display = child.style.display;
36189
+ child.style.display = 'none';
36190
+ return [child, display];
36191
+ }
36192
+ }), box = {
36120
36193
  width: getStyle(this.renderTo, 'width', true) || 0,
36121
- height: getStyle(this.renderTo, 'height', true) || 0
36194
+ height: (getStyle(this.renderTo, 'height', true) || 0)
36122
36195
  };
36196
+ // Restore the non-containers
36197
+ nonContainers.filter(Boolean).forEach(([div, display]) => {
36198
+ div.style.display = display;
36199
+ });
36200
+ return box;
36123
36201
  }
36124
36202
  /**
36125
36203
  * Internal function to get the chart width and height according to options
@@ -36130,7 +36208,10 @@
36130
36208
  * @function Highcharts.Chart#getChartSize
36131
36209
  */
36132
36210
  getChartSize() {
36133
- const chart = this, optionsChart = chart.options.chart, widthOption = optionsChart.width, heightOption = optionsChart.height, containerBox = chart.getContainerBox();
36211
+ const chart = this, optionsChart = chart.options.chart, widthOption = optionsChart.width, heightOption = optionsChart.height, containerBox = chart.getContainerBox(), enableDefaultHeight = containerBox.height > 1 &&
36212
+ !( // #21510, prevent infinite reflow
36213
+ !chart.renderTo.parentElement?.style.height &&
36214
+ chart.renderTo.style.height === '100%');
36134
36215
  /**
36135
36216
  * The current pixel width of the chart.
36136
36217
  *
@@ -36147,7 +36228,7 @@
36147
36228
  * @type {number}
36148
36229
  */
36149
36230
  chart.chartHeight = Math.max(0, relativeLength(heightOption, chart.chartWidth) ||
36150
- (containerBox.height > 1 ? containerBox.height : 400));
36231
+ (enableDefaultHeight ? containerBox.height : 400));
36151
36232
  chart.containerBox = containerBox;
36152
36233
  }
36153
36234
  /**
@@ -36295,7 +36376,8 @@
36295
36376
  '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',
36296
36377
  userSelect: 'none', // #13503
36297
36378
  'touch-action': 'manipulation',
36298
- outline: 'none'
36379
+ outline: 'none',
36380
+ padding: '0px'
36299
36381
  }, optionsChart.style || {});
36300
36382
  }
36301
36383
  /**
@@ -37016,6 +37098,12 @@
37016
37098
  addCredits(credits) {
37017
37099
  const chart = this, creds = merge(true, this.options.credits, credits);
37018
37100
  if (creds.enabled && !this.credits) {
37101
+ // Run the user-supplied URL through the allow list, so that
37102
+ // references like `javascript:` can't be executed from the
37103
+ // credits label
37104
+ const href = creds.href ?
37105
+ AST.filterUserAttributes({ href: creds.href }).href :
37106
+ void 0;
37019
37107
  /**
37020
37108
  * The chart's credits label. The label has an `update` method that
37021
37109
  * allows setting new options as per the
@@ -37027,8 +37115,8 @@
37027
37115
  this.credits = this.renderer.text(creds.text + (this.mapCredits || ''), 0, 0)
37028
37116
  .addClass('highcharts-credits')
37029
37117
  .on('click', function () {
37030
- if (creds.href) {
37031
- win.location.href = creds.href;
37118
+ if (href) {
37119
+ win.location.href = href;
37032
37120
  }
37033
37121
  })
37034
37122
  .attr({
@@ -37863,8 +37951,11 @@
37863
37951
  }
37864
37952
  let newMin = axis.toValue(minPx, true) +
37865
37953
  // Don't apply offset for selection (#20784)
37866
- (selection ? 0 : minPointOffset * pointRangeDirection), newMax = axis.toValue(minPx + len / scale, true) -
37867
- (selection ? // Don't apply offset for selection (#20784)
37954
+ (selection || axis.isOrdinal ?
37955
+ 0 : minPointOffset * pointRangeDirection), newMax = axis.toValue(minPx + len / scale, true) -
37956
+ (
37957
+ // Don't apply offset for selection (#20784)
37958
+ selection || axis.isOrdinal ?
37868
37959
  0 :
37869
37960
  ((minPointOffset * pointRangeDirection) ||
37870
37961
  // Polar zoom tests failed when this was not
@@ -37909,7 +38000,10 @@
37909
38000
  // It is not necessary to calculate extremes on ordinal axis,
37910
38001
  // because they are already calculated, so we don't want to override
37911
38002
  // them.
37912
- if (!axis.isOrdinal || scale !== 1 || reset) {
38003
+ if (!axis.isOrdinal ||
38004
+ axis.options.overscroll || // #21316
38005
+ scale !== 1 ||
38006
+ reset) {
37913
38007
  // If the new range spills over, either to the min or max,
37914
38008
  // adjust it.
37915
38009
  if (newMin < floor) {
@@ -42274,6 +42368,15 @@
42274
42368
  // read text bounding box
42275
42369
  dataLabel.css(style).shadow(labelOptions.shadow);
42276
42370
  }
42371
+ else if (style.width) {
42372
+ // In styled mode with a width property set,
42373
+ // the width should be applied to the
42374
+ // dataLabel. (#20499)
42375
+ dataLabel.css({
42376
+ width: style.width,
42377
+ textOverflow: style.textOverflow
42378
+ });
42379
+ }
42277
42380
  fireEvent(dataLabel, 'beforeAddingDataLabel', { labelOptions, point });
42278
42381
  if (!dataLabel.added) {
42279
42382
  dataLabel.add(dataLabelsGroup);
@@ -45935,7 +46038,7 @@
45935
46038
  LogarithmicAxis.compose(G.Axis);
45936
46039
  OverlappingDataLabels.compose(G.Chart);
45937
46040
  PieDataLabel.compose(G.Series.types.pie);
45938
- PlotLineOrBand.compose(G.Axis);
46041
+ PlotLineOrBand.compose(G.Chart, G.Axis);
45939
46042
  Pointer.compose(G.Chart);
45940
46043
  Responsive.compose(G.Chart);
45941
46044
  ScrollablePlotArea.compose(G.Axis, G.Chart, G.Series);
@@ -47119,13 +47222,23 @@
47119
47222
  isNaN(scrollMax) ||
47120
47223
  !defined(axis.min) ||
47121
47224
  !defined(axis.max) ||
47122
- axis.min === axis.max // #10733
47225
+ axis.dataMin === axis.dataMax // #10733
47123
47226
  ) {
47124
- // Default action: when extremes are the same or there is
47227
+ // Default action: when data extremes are the same or there is
47125
47228
  // not extremes on the axis, but scrollbar exists, make it
47126
47229
  // full size
47127
47230
  scrollbar.setRange(0, 1);
47128
47231
  }
47232
+ else if (axis.min === axis.max) { // #20359
47233
+ // When the extremes are the same, set the scrollbar to a point
47234
+ // within the extremes range. Utilize pointRange to perform the
47235
+ // calculations. (#20359)
47236
+ const interval = axis.pointRange / (axis.dataMax +
47237
+ 1);
47238
+ from = interval * axis.min;
47239
+ to = interval * (axis.max + 1);
47240
+ scrollbar.setRange(from, to);
47241
+ }
47129
47242
  else {
47130
47243
  from = ((axis.min - scrollMin) /
47131
47244
  (scrollMax - scrollMin));
@@ -48335,7 +48448,10 @@
48335
48448
  const handlesOptions = navigatorOptions.handles, { height, width } = handlesOptions;
48336
48449
  [0, 1].forEach((index) => {
48337
48450
  const symbolName = handlesOptions.symbols[index];
48338
- if (!navigator.handles[index]) {
48451
+ if (!navigator.handles[index] ||
48452
+ navigator.handles[index].symbolUrl !== symbolName) {
48453
+ // Generate symbol from scratch if we're dealing with an URL
48454
+ navigator.handles[index]?.destroy();
48339
48455
  navigator.handles[index] = renderer.symbol(symbolName, -width / 2 - 1, 0, width, height, handlesOptions);
48340
48456
  // Z index is 6 for right handle, 7 for left. Can't be 10,
48341
48457
  // because of the tooltip in inverted chart (#2908).
@@ -48343,9 +48459,11 @@
48343
48459
  .addClass('highcharts-navigator-handle ' +
48344
48460
  'highcharts-navigator-handle-' +
48345
48461
  ['left', 'right'][index]).add(navigatorGroup);
48462
+ navigator.addMouseEvents();
48346
48463
  // If the navigator symbol changed, update its path and name
48347
48464
  }
48348
- else if (symbolName !== navigator.handles[index].symbolName) {
48465
+ else if (!navigator.handles[index].isImg &&
48466
+ navigator.handles[index].symbolName !== symbolName) {
48349
48467
  const symbolFn = symbols[symbolName], path = symbolFn.call(symbols, -width / 2 - 1, 0, width, height);
48350
48468
  navigator.handles[index].attr({
48351
48469
  d: path
package/themes/avocado.js CHANGED
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highcharts JS v11.4.7 (2024-08-14)
2
+ * Highcharts JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * (c) 2009-2024 Highsoft AS
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v11.4.7 (2024-08-14)
2
+ * @license Highcharts JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * (c) 2009-2024 Highsoft AS
5
5
  *
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highcharts JS v11.4.7 (2024-08-14)
2
+ * Highcharts JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * (c) 2009-2024 Torstein Honsi
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v11.4.7 (2024-08-14)
2
+ * @license Highcharts JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * (c) 2009-2024 Torstein Honsi
5
5
  *
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highcharts JS v11.4.7 (2024-08-14)
2
+ * Highcharts JS v11.4.9 (2026-09-25)
3
3
  *
4
4
  * (c) 2009-2024 Torstein Honsi
5
5
  *