highcharts 11.4.3 → 11.4.5

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 (571) hide show
  1. package/bower.json +1 -1
  2. package/es-modules/Accessibility/Accessibility.js +1 -1
  3. package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
  4. package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
  5. package/es-modules/Accessibility/KeyboardNavigation.js +1 -1
  6. package/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
  7. package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
  8. package/es-modules/Accessibility/Options/LangDefaults.js +3 -3
  9. package/es-modules/Accessibility/Utils/EventProvider.js +1 -1
  10. package/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -1
  11. package/es-modules/Core/Animation/Fx.js +4 -2
  12. package/es-modules/Core/Axis/Axis.js +6 -4
  13. package/es-modules/Core/Axis/AxisDefaults.js +1 -0
  14. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -1
  15. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
  16. package/es-modules/Core/Axis/GridAxis.js +1 -1
  17. package/es-modules/Core/Axis/OrdinalAxis.js +5 -2
  18. package/es-modules/Core/Axis/RadialAxisDefaults.js +3 -3
  19. package/es-modules/Core/Axis/Stacking/StackItem.js +1 -1
  20. package/es-modules/Core/Chart/Chart.js +16 -7
  21. package/es-modules/Core/Chart/MapChart.js +3 -3
  22. package/es-modules/Core/Chart/StockChart.js +1 -1
  23. package/es-modules/Core/Color/Color.js +2 -2
  24. package/es-modules/Core/Defaults.js +27 -1
  25. package/es-modules/Core/Geometry/GeometryUtilities.js +22 -0
  26. package/es-modules/Core/Globals.js +1 -1
  27. package/es-modules/Core/Legend/Legend.js +82 -14
  28. package/es-modules/Core/MSPointer.js +42 -1
  29. package/es-modules/Core/Pointer.js +10 -6
  30. package/es-modules/Core/Renderer/HTML/AST.js +6 -0
  31. package/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -2
  32. package/es-modules/Core/Renderer/SVG/SVGElement.js +31 -98
  33. package/es-modules/Core/Renderer/SVG/SVGLabel.js +20 -0
  34. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +29 -14
  35. package/es-modules/Core/Renderer/SVG/Symbols.js +18 -18
  36. package/es-modules/Core/Responsive.js +6 -1
  37. package/es-modules/Core/Series/DataLabel.js +1 -10
  38. package/es-modules/Core/Series/DataSeriesComposition.js +0 -2
  39. package/es-modules/Core/Series/Point.js +7 -10
  40. package/es-modules/Core/Series/Series.js +40 -24
  41. package/es-modules/Core/Series/SeriesDefaults.js +18 -12
  42. package/es-modules/Core/Templating.js +2 -2
  43. package/es-modules/Core/Tooltip.js +6 -3
  44. package/es-modules/Data/Connectors/JSONConnector.js +1 -0
  45. package/es-modules/Data/Converters/CSVConverter.js +1 -1
  46. package/es-modules/Data/Converters/DataConverter.js +7 -7
  47. package/es-modules/Data/Converters/GoogleSheetsConverter.js +8 -3
  48. package/es-modules/Data/DataTable.js +106 -5
  49. package/es-modules/Data/Formula/FormulaParser.js +2 -2
  50. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +1 -1
  51. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +1 -1
  52. package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -2
  53. package/es-modules/Extensions/Boost/Boost.js +1 -1
  54. package/es-modules/Extensions/Boost/BoostChart.js +8 -2
  55. package/es-modules/Extensions/Boost/BoostSeries.js +41 -10
  56. package/es-modules/Extensions/Boost/WGLShader.js +1 -1
  57. package/es-modules/Extensions/BorderRadius.js +3 -3
  58. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +0 -38
  59. package/es-modules/Extensions/Data.js +11 -11
  60. package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -2
  61. package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
  62. package/es-modules/Extensions/DownloadURL.js +1 -1
  63. package/es-modules/Extensions/Drilldown/Drilldown.js +0 -2
  64. package/es-modules/Extensions/Exporting/Exporting.js +14 -14
  65. package/es-modules/Extensions/OverlappingDataLabels.js +36 -5
  66. package/es-modules/Extensions/Pane/PaneDefaults.js +3 -2
  67. package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +1 -1
  68. package/es-modules/Extensions/Sonification/MIDI.js +7 -7
  69. package/es-modules/Extensions/Sonification/SonificationInstrument.js +0 -1
  70. package/es-modules/Extensions/Sonification/TimelineFromChart.js +1 -3
  71. package/es-modules/Extensions/TextPath.js +227 -0
  72. package/es-modules/Maps/MapUtilities.js +1 -20
  73. package/es-modules/Maps/MapView.js +3 -1
  74. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -0
  75. package/es-modules/Series/Area/AreaSeries.js +5 -0
  76. package/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
  77. package/es-modules/Series/Bar/BarSeries.js +1 -1
  78. package/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +2 -2
  79. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +2 -1
  80. package/es-modules/Series/Bubble/BubbleLegendComposition.js +4 -7
  81. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +3 -3
  82. package/es-modules/Series/Bubble/BubbleSeries.js +4 -4
  83. package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
  84. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -2
  85. package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +2 -2
  86. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +2 -2
  87. package/es-modules/Series/Flags/FlagsSeries.js +2 -2
  88. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +1 -1
  89. package/es-modules/Series/Gantt/GanttSeriesDefaults.js +1 -1
  90. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  91. package/es-modules/Series/HLC/HLCSeries.js +1 -1
  92. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +2 -2
  93. package/es-modules/Series/Item/ItemSeries.js +1 -1
  94. package/es-modules/Series/Map/MapSeries.js +1 -1
  95. package/es-modules/Series/Map/MapSeriesDefaults.js +2 -2
  96. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -1
  97. package/es-modules/Series/Organization/OrganizationSeries.js +3 -0
  98. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  99. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +8 -5
  100. package/es-modules/Series/Pie/PieDataLabel.js +7 -6
  101. package/es-modules/Series/Pie/PiePoint.js +6 -6
  102. package/es-modules/Series/Pie/PieSeriesDefaults.js +11 -10
  103. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  104. package/es-modules/Series/Sankey/SankeySeries.js +7 -4
  105. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
  106. package/es-modules/Series/Sunburst/SunburstSeries.js +8 -5
  107. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +2 -2
  108. package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -2
  109. package/es-modules/Series/Treegraph/TreegraphSeries.js +23 -2
  110. package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +2 -2
  111. package/es-modules/Series/Treemap/TreemapPoint.js +2 -1
  112. package/es-modules/Series/Treemap/TreemapSeries.js +15 -7
  113. package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +15 -1
  114. package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +2 -2
  115. package/es-modules/Series/Variwide/VariwideComposition.js +1 -1
  116. package/es-modules/Series/Vector/VectorSeries.js +1 -1
  117. package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
  118. package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
  119. package/es-modules/Series/Wordcloud/WordcloudSeriesDefaults.js +1 -1
  120. package/es-modules/Stock/Indicators/AD/ADIndicator.js +1 -1
  121. package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
  122. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
  123. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
  124. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
  125. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -3
  126. package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +1 -1
  127. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +1 -1
  128. package/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
  129. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
  130. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +1 -1
  131. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -3
  132. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  133. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +2 -2
  134. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +3 -3
  135. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +1 -1
  136. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +1 -1
  137. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
  138. package/es-modules/Stock/Navigator/Navigator.js +141 -55
  139. package/es-modules/Stock/Navigator/NavigatorDefaults.js +1 -1
  140. package/es-modules/Stock/RangeSelector/RangeSelector.js +1 -1
  141. package/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +1 -1
  142. package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -1
  143. package/es-modules/Stock/StockTools/StockToolbar.js +115 -37
  144. package/es-modules/Stock/StockTools/StockToolsDefaults.js +7 -1
  145. package/es-modules/Stock/StockTools/StockToolsGui.js +24 -23
  146. package/es-modules/Stock/StockTools/StockToolsUtilities.js +26 -0
  147. package/es-modules/masters/highcharts-more.src.js +2 -2
  148. package/es-modules/masters/modules/arc-diagram.src.js +1 -2
  149. package/es-modules/masters/modules/cylinder.src.js +1 -1
  150. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  151. package/es-modules/masters/modules/map.src.js +1 -1
  152. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  153. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  154. package/es-modules/masters/modules/textpath.src.d.ts +1 -0
  155. package/es-modules/masters/modules/textpath.src.js +16 -0
  156. package/es-modules/tsconfig.tsbuildinfo +1 -1
  157. package/highcharts-3d.js +2 -2
  158. package/highcharts-3d.src.js +4 -4
  159. package/highcharts-gantt.js +3 -3
  160. package/highcharts-gantt.src.js +3376 -3042
  161. package/highcharts-more.d.ts +42 -2
  162. package/highcharts-more.js +2 -2
  163. package/highcharts-more.src.d.ts +42 -2
  164. package/highcharts-more.src.js +262 -35
  165. package/highcharts.d.ts +840 -407
  166. package/highcharts.js +3 -3
  167. package/highcharts.src.d.ts +840 -407
  168. package/highcharts.src.js +6064 -5818
  169. package/highmaps.js +3 -3
  170. package/highmaps.src.js +3276 -3046
  171. package/highstock.js +3 -3
  172. package/highstock.src.js +3395 -3062
  173. package/indicators/acceleration-bands.js +2 -2
  174. package/indicators/acceleration-bands.src.js +3 -3
  175. package/indicators/accumulation-distribution.js +2 -2
  176. package/indicators/accumulation-distribution.src.js +4 -4
  177. package/indicators/ao.js +2 -2
  178. package/indicators/ao.src.js +3 -3
  179. package/indicators/apo.js +2 -2
  180. package/indicators/apo.src.js +4 -4
  181. package/indicators/aroon-oscillator.js +2 -2
  182. package/indicators/aroon-oscillator.src.js +3 -3
  183. package/indicators/aroon.js +2 -2
  184. package/indicators/aroon.src.js +4 -4
  185. package/indicators/atr.js +2 -2
  186. package/indicators/atr.src.js +3 -3
  187. package/indicators/bollinger-bands.js +2 -2
  188. package/indicators/bollinger-bands.src.js +3 -3
  189. package/indicators/cci.js +2 -2
  190. package/indicators/cci.src.js +3 -3
  191. package/indicators/chaikin.js +2 -2
  192. package/indicators/chaikin.src.js +5 -5
  193. package/indicators/cmf.js +2 -2
  194. package/indicators/cmf.src.js +4 -4
  195. package/indicators/cmo.js +2 -2
  196. package/indicators/cmo.src.js +3 -3
  197. package/indicators/dema.js +2 -2
  198. package/indicators/dema.src.js +3 -3
  199. package/indicators/disparity-index.js +2 -2
  200. package/indicators/disparity-index.src.js +3 -3
  201. package/indicators/dmi.js +2 -2
  202. package/indicators/dmi.src.js +3 -3
  203. package/indicators/dpo.js +2 -2
  204. package/indicators/dpo.src.js +3 -3
  205. package/indicators/ema.js +1 -1
  206. package/indicators/ema.src.js +2 -2
  207. package/indicators/ichimoku-kinko-hyo.js +2 -2
  208. package/indicators/ichimoku-kinko-hyo.src.js +6 -6
  209. package/indicators/indicators-all.js +2 -2
  210. package/indicators/indicators-all.src.js +28 -28
  211. package/indicators/indicators.js +2 -2
  212. package/indicators/indicators.src.js +4 -4
  213. package/indicators/keltner-channels.js +2 -2
  214. package/indicators/keltner-channels.src.js +3 -3
  215. package/indicators/klinger.js +2 -2
  216. package/indicators/klinger.src.js +3 -3
  217. package/indicators/macd.js +2 -2
  218. package/indicators/macd.src.js +3 -3
  219. package/indicators/mfi.js +2 -2
  220. package/indicators/mfi.src.js +4 -4
  221. package/indicators/momentum.js +2 -2
  222. package/indicators/momentum.src.js +3 -3
  223. package/indicators/natr.js +2 -2
  224. package/indicators/natr.src.js +3 -3
  225. package/indicators/obv.js +2 -2
  226. package/indicators/obv.src.js +3 -3
  227. package/indicators/pivot-points.js +2 -2
  228. package/indicators/pivot-points.src.js +6 -6
  229. package/indicators/ppo.js +2 -2
  230. package/indicators/ppo.src.js +4 -4
  231. package/indicators/price-channel.js +2 -2
  232. package/indicators/price-channel.src.js +4 -4
  233. package/indicators/price-envelopes.js +2 -2
  234. package/indicators/price-envelopes.src.js +3 -3
  235. package/indicators/psar.js +2 -2
  236. package/indicators/psar.src.js +4 -4
  237. package/indicators/regressions.js +2 -2
  238. package/indicators/regressions.src.js +4 -4
  239. package/indicators/roc.js +2 -2
  240. package/indicators/roc.src.js +3 -3
  241. package/indicators/rsi.js +2 -2
  242. package/indicators/rsi.src.js +3 -3
  243. package/indicators/slow-stochastic.js +2 -2
  244. package/indicators/slow-stochastic.src.js +5 -5
  245. package/indicators/stochastic.js +2 -2
  246. package/indicators/stochastic.src.js +3 -3
  247. package/indicators/supertrend.js +2 -2
  248. package/indicators/supertrend.src.js +6 -6
  249. package/indicators/tema.js +2 -2
  250. package/indicators/tema.src.js +3 -3
  251. package/indicators/trendline.js +2 -2
  252. package/indicators/trendline.src.js +4 -4
  253. package/indicators/trix.js +2 -2
  254. package/indicators/trix.src.js +3 -3
  255. package/indicators/volume-by-price.js +2 -2
  256. package/indicators/volume-by-price.src.js +3 -3
  257. package/indicators/vwap.js +2 -2
  258. package/indicators/vwap.src.js +4 -4
  259. package/indicators/williams-r.js +2 -2
  260. package/indicators/williams-r.src.js +4 -4
  261. package/indicators/wma.js +2 -2
  262. package/indicators/wma.src.js +3 -3
  263. package/indicators/zigzag.js +2 -2
  264. package/indicators/zigzag.src.js +3 -3
  265. package/modules/accessibility.js +2 -2
  266. package/modules/accessibility.src.js +162 -77
  267. package/modules/annotations-advanced.js +2 -2
  268. package/modules/annotations-advanced.src.js +8 -9
  269. package/modules/annotations.js +2 -2
  270. package/modules/annotations.src.js +8 -9
  271. package/modules/arc-diagram.d.ts +120 -1
  272. package/modules/arc-diagram.js +2 -2
  273. package/modules/arc-diagram.src.d.ts +120 -1
  274. package/modules/arc-diagram.src.js +9363 -5
  275. package/modules/arrow-symbols.js +2 -2
  276. package/modules/arrow-symbols.src.js +3 -3
  277. package/modules/boost-canvas.js +2 -2
  278. package/modules/boost-canvas.src.js +53 -16
  279. package/modules/boost.js +2 -2
  280. package/modules/boost.src.js +54 -17
  281. package/modules/broken-axis.js +2 -2
  282. package/modules/broken-axis.src.js +3 -3
  283. package/modules/bullet.js +2 -2
  284. package/modules/bullet.src.js +3 -3
  285. package/modules/coloraxis.js +2 -2
  286. package/modules/coloraxis.src.js +12 -7
  287. package/modules/current-date-indicator.js +2 -2
  288. package/modules/current-date-indicator.src.js +3 -3
  289. package/modules/cylinder.js +2 -2
  290. package/modules/cylinder.src.js +4 -4
  291. package/modules/data-tools.js +2 -2
  292. package/modules/data-tools.src.js +128 -21
  293. package/modules/data.js +2 -2
  294. package/modules/data.src.js +14 -14
  295. package/modules/datagrouping.js +2 -2
  296. package/modules/datagrouping.src.js +5 -6
  297. package/modules/debugger.js +2 -2
  298. package/modules/debugger.src.js +3 -3
  299. package/modules/dependency-wheel.js +2 -2
  300. package/modules/dependency-wheel.src.js +7 -6
  301. package/modules/dotplot.js +2 -2
  302. package/modules/dotplot.src.js +3 -3
  303. package/modules/drag-panes.js +2 -2
  304. package/modules/drag-panes.src.js +3 -3
  305. package/modules/draggable-points.js +2 -2
  306. package/modules/draggable-points.src.js +3 -3
  307. package/modules/drilldown.js +2 -2
  308. package/modules/drilldown.src.js +3 -43
  309. package/modules/dumbbell.js +2 -2
  310. package/modules/dumbbell.src.js +5 -5
  311. package/modules/export-data.js +2 -2
  312. package/modules/export-data.src.js +4 -4
  313. package/modules/exporting.js +2 -2
  314. package/modules/exporting.src.js +17 -17
  315. package/modules/flowmap.js +2 -2
  316. package/modules/flowmap.src.js +3 -3
  317. package/modules/full-screen.js +2 -2
  318. package/modules/full-screen.src.js +3 -3
  319. package/modules/funnel.js +2 -2
  320. package/modules/funnel.src.js +3 -3
  321. package/modules/funnel3d.js +2 -2
  322. package/modules/funnel3d.src.js +4 -4
  323. package/modules/gantt.js +2 -2
  324. package/modules/gantt.src.js +155 -67
  325. package/modules/geoheatmap.js +2 -2
  326. package/modules/geoheatmap.src.js +3 -3
  327. package/modules/grid-axis.js +2 -2
  328. package/modules/grid-axis.src.js +4 -4
  329. package/modules/heatmap.js +2 -2
  330. package/modules/heatmap.src.js +14 -9
  331. package/modules/heikinashi.js +2 -2
  332. package/modules/heikinashi.src.js +3 -3
  333. package/modules/histogram-bellcurve.js +2 -2
  334. package/modules/histogram-bellcurve.src.js +5 -5
  335. package/modules/hollowcandlestick.js +2 -2
  336. package/modules/hollowcandlestick.src.js +3 -3
  337. package/modules/item-series.js +2 -2
  338. package/modules/item-series.src.js +4 -4
  339. package/modules/lollipop.js +2 -2
  340. package/modules/lollipop.src.js +3 -3
  341. package/modules/map.d.ts +1 -1
  342. package/modules/map.js +2 -2
  343. package/modules/map.src.d.ts +1 -1
  344. package/modules/map.src.js +36 -52
  345. package/modules/marker-clusters.js +2 -2
  346. package/modules/marker-clusters.src.js +3 -3
  347. package/modules/mouse-wheel-zoom.js +2 -2
  348. package/modules/mouse-wheel-zoom.src.js +3 -3
  349. package/modules/navigator.js +2 -2
  350. package/modules/navigator.src.js +146 -61
  351. package/modules/networkgraph.d.ts +40 -0
  352. package/modules/networkgraph.js +2 -2
  353. package/modules/networkgraph.src.d.ts +40 -0
  354. package/modules/networkgraph.src.js +233 -5
  355. package/modules/no-data-to-display.js +2 -2
  356. package/modules/no-data-to-display.src.js +3 -3
  357. package/modules/offline-exporting.js +2 -2
  358. package/modules/offline-exporting.src.js +5 -5
  359. package/modules/organization.js +2 -2
  360. package/modules/organization.src.js +5 -4
  361. package/modules/overlapping-datalabels.js +2 -2
  362. package/modules/overlapping-datalabels.src.js +3 -3
  363. package/modules/parallel-coordinates.js +2 -2
  364. package/modules/parallel-coordinates.src.js +4 -4
  365. package/modules/pareto.js +2 -2
  366. package/modules/pareto.src.js +3 -3
  367. package/modules/pathfinder.js +2 -2
  368. package/modules/pathfinder.src.js +3 -3
  369. package/modules/pattern-fill.js +2 -2
  370. package/modules/pattern-fill.src.js +3 -3
  371. package/modules/pictorial.js +2 -2
  372. package/modules/pictorial.src.js +3 -3
  373. package/modules/price-indicator.js +2 -2
  374. package/modules/price-indicator.src.js +3 -3
  375. package/modules/pyramid3d.js +2 -2
  376. package/modules/pyramid3d.src.js +4 -4
  377. package/modules/sankey.d.ts +42 -1
  378. package/modules/sankey.js +2 -2
  379. package/modules/sankey.src.d.ts +42 -1
  380. package/modules/sankey.src.js +237 -9
  381. package/modules/series-label.js +2 -2
  382. package/modules/series-label.src.js +3 -3
  383. package/modules/series-on-point.js +2 -2
  384. package/modules/series-on-point.src.js +3 -3
  385. package/modules/solid-gauge.js +2 -2
  386. package/modules/solid-gauge.src.js +4 -4
  387. package/modules/sonification.js +2 -2
  388. package/modules/sonification.src.js +12 -15
  389. package/modules/static-scale.js +2 -2
  390. package/modules/static-scale.src.js +3 -3
  391. package/modules/stock-tools.d.ts +15 -1
  392. package/modules/stock-tools.js +2 -2
  393. package/modules/stock-tools.src.d.ts +15 -1
  394. package/modules/stock-tools.src.js +177 -69
  395. package/modules/stock.js +2 -2
  396. package/modules/stock.src.js +160 -73
  397. package/modules/streamgraph.js +2 -2
  398. package/modules/streamgraph.src.js +3 -3
  399. package/modules/sunburst.d.ts +40 -0
  400. package/modules/sunburst.js +2 -2
  401. package/modules/sunburst.src.d.ts +40 -0
  402. package/modules/sunburst.src.js +271 -58
  403. package/modules/textpath.d.ts +58 -0
  404. package/modules/textpath.js +7 -0
  405. package/modules/textpath.src.d.ts +58 -0
  406. package/modules/textpath.src.js +271 -0
  407. package/modules/tiledwebmap.js +3 -3
  408. package/modules/tiledwebmap.src.js +3 -3
  409. package/modules/tilemap.js +2 -2
  410. package/modules/tilemap.src.js +5 -5
  411. package/modules/timeline.js +2 -2
  412. package/modules/timeline.src.js +3 -3
  413. package/modules/treegraph.d.ts +40 -0
  414. package/modules/treegraph.js +2 -2
  415. package/modules/treegraph.src.d.ts +40 -0
  416. package/modules/treegraph.src.js +254 -8
  417. package/modules/treegrid.js +2 -2
  418. package/modules/treegrid.src.js +4 -4
  419. package/modules/treemap.js +2 -2
  420. package/modules/treemap.src.js +35 -50
  421. package/modules/variable-pie.js +2 -2
  422. package/modules/variable-pie.src.js +5 -5
  423. package/modules/variwide.js +2 -2
  424. package/modules/variwide.src.js +4 -4
  425. package/modules/vector.js +2 -2
  426. package/modules/vector.src.js +4 -4
  427. package/modules/venn.js +2 -2
  428. package/modules/venn.src.js +3 -88
  429. package/modules/windbarb.js +2 -2
  430. package/modules/windbarb.src.js +5 -5
  431. package/modules/wordcloud.js +2 -2
  432. package/modules/wordcloud.src.js +6 -6
  433. package/modules/xrange.js +2 -2
  434. package/modules/xrange.src.js +3 -3
  435. package/options/ad.d.ts +17 -9
  436. package/options/ad.src.d.ts +17 -9
  437. package/options/apo.d.ts +17 -9
  438. package/options/apo.src.d.ts +17 -9
  439. package/options/arearange.d.ts +17 -9
  440. package/options/arearange.src.d.ts +17 -9
  441. package/options/areaspline.d.ts +17 -9
  442. package/options/areaspline.src.d.ts +17 -9
  443. package/options/bar.d.ts +17 -9
  444. package/options/bar.src.d.ts +17 -9
  445. package/options/bb.d.ts +17 -9
  446. package/options/bb.src.d.ts +17 -9
  447. package/options/bubble.d.ts +17 -9
  448. package/options/bubble.src.d.ts +17 -9
  449. package/options/candlestick.d.ts +17 -9
  450. package/options/candlestick.src.d.ts +17 -9
  451. package/options/cci.d.ts +17 -9
  452. package/options/cci.src.d.ts +17 -9
  453. package/options/cmf.d.ts +17 -9
  454. package/options/cmf.src.d.ts +17 -9
  455. package/options/column.d.ts +17 -9
  456. package/options/column.src.d.ts +17 -9
  457. package/options/columnpyramid.d.ts +17 -9
  458. package/options/columnpyramid.src.d.ts +17 -9
  459. package/options/columnrange.d.ts +17 -9
  460. package/options/columnrange.src.d.ts +17 -9
  461. package/options/cylinder.d.ts +17 -9
  462. package/options/cylinder.src.d.ts +17 -9
  463. package/options/dema.d.ts +17 -9
  464. package/options/dema.src.d.ts +17 -9
  465. package/options/dependencywheel.d.ts +17 -9
  466. package/options/dependencywheel.src.d.ts +17 -9
  467. package/options/disparityindex.d.ts +17 -9
  468. package/options/disparityindex.src.d.ts +17 -9
  469. package/options/dpo.d.ts +17 -9
  470. package/options/dpo.src.d.ts +17 -9
  471. package/options/dumbbell.d.ts +17 -9
  472. package/options/dumbbell.src.d.ts +17 -9
  473. package/options/ema.d.ts +17 -9
  474. package/options/ema.src.d.ts +17 -9
  475. package/options/funnel.d.ts +17 -9
  476. package/options/funnel.src.d.ts +17 -9
  477. package/options/gantt.d.ts +16 -8
  478. package/options/gantt.src.d.ts +16 -8
  479. package/options/klinger.d.ts +17 -9
  480. package/options/klinger.src.d.ts +17 -9
  481. package/options/linearregression.d.ts +17 -9
  482. package/options/linearregression.src.d.ts +17 -9
  483. package/options/lollipop.d.ts +17 -9
  484. package/options/lollipop.src.d.ts +17 -9
  485. package/options/macd.d.ts +17 -9
  486. package/options/macd.src.d.ts +17 -9
  487. package/options/momentum.d.ts +17 -9
  488. package/options/momentum.src.d.ts +17 -9
  489. package/options/ohlc.d.ts +17 -9
  490. package/options/ohlc.src.d.ts +17 -9
  491. package/options/organization.d.ts +17 -9
  492. package/options/organization.src.d.ts +17 -9
  493. package/options/pareto.d.ts +16 -8
  494. package/options/pareto.src.d.ts +16 -8
  495. package/options/pc.d.ts +17 -9
  496. package/options/pc.src.d.ts +17 -9
  497. package/options/polygon.d.ts +17 -9
  498. package/options/polygon.src.d.ts +17 -9
  499. package/options/ppo.d.ts +17 -9
  500. package/options/ppo.src.d.ts +17 -9
  501. package/options/psar.d.ts +17 -9
  502. package/options/psar.src.d.ts +17 -9
  503. package/options/pyramid.d.ts +17 -9
  504. package/options/pyramid.src.d.ts +17 -9
  505. package/options/roc.d.ts +17 -9
  506. package/options/roc.src.d.ts +17 -9
  507. package/options/sankey.d.ts +17 -9
  508. package/options/sankey.src.d.ts +17 -9
  509. package/options/scatter.d.ts +17 -9
  510. package/options/scatter.src.d.ts +17 -9
  511. package/options/series.d.ts +17 -9
  512. package/options/series.src.d.ts +17 -9
  513. package/options/sma.d.ts +17 -9
  514. package/options/sma.src.d.ts +17 -9
  515. package/options/spline.d.ts +17 -9
  516. package/options/spline.src.d.ts +17 -9
  517. package/options/stochastic.d.ts +17 -9
  518. package/options/stochastic.src.d.ts +17 -9
  519. package/options/supertrend.d.ts +17 -9
  520. package/options/supertrend.src.d.ts +17 -9
  521. package/options/tilemap.d.ts +17 -9
  522. package/options/tilemap.src.d.ts +17 -9
  523. package/options/treegraph.d.ts +24 -9
  524. package/options/treegraph.src.d.ts +24 -9
  525. package/options/treemap.d.ts +23 -8
  526. package/options/treemap.src.d.ts +23 -8
  527. package/options/trendline.d.ts +17 -9
  528. package/options/trendline.src.d.ts +17 -9
  529. package/options/variwide.d.ts +17 -9
  530. package/options/variwide.src.d.ts +17 -9
  531. package/options/vbp.d.ts +17 -9
  532. package/options/vbp.src.d.ts +17 -9
  533. package/options/vector.d.ts +17 -9
  534. package/options/vector.src.d.ts +17 -9
  535. package/options/waterfall.d.ts +17 -9
  536. package/options/waterfall.src.d.ts +17 -9
  537. package/options/williamsr.d.ts +17 -9
  538. package/options/williamsr.src.d.ts +17 -9
  539. package/options/xrange.d.ts +17 -9
  540. package/options/xrange.src.d.ts +17 -9
  541. package/package.json +1 -1
  542. package/standalone-navigator.js +2 -2
  543. package/standalone-navigator.src.js +3380 -3049
  544. package/themes/avocado.js +2 -2
  545. package/themes/avocado.src.js +3 -3
  546. package/themes/brand-dark.js +2 -2
  547. package/themes/brand-dark.src.js +3 -3
  548. package/themes/brand-light.js +2 -2
  549. package/themes/brand-light.src.js +3 -3
  550. package/themes/dark-blue.js +2 -2
  551. package/themes/dark-blue.src.js +3 -3
  552. package/themes/dark-green.js +2 -2
  553. package/themes/dark-green.src.js +3 -3
  554. package/themes/dark-unica.js +2 -2
  555. package/themes/dark-unica.src.js +3 -3
  556. package/themes/gray.js +2 -2
  557. package/themes/gray.src.js +3 -3
  558. package/themes/grid-light.js +2 -2
  559. package/themes/grid-light.src.js +3 -3
  560. package/themes/grid.js +2 -2
  561. package/themes/grid.src.js +3 -3
  562. package/themes/high-contrast-dark.js +2 -2
  563. package/themes/high-contrast-dark.src.js +3 -3
  564. package/themes/high-contrast-light.js +2 -2
  565. package/themes/high-contrast-light.src.js +3 -3
  566. package/themes/sand-signika.js +2 -2
  567. package/themes/sand-signika.src.js +3 -3
  568. package/themes/skies.js +2 -2
  569. package/themes/skies.src.js +3 -3
  570. package/themes/sunset.js +2 -2
  571. package/themes/sunset.src.js +3 -3
@@ -9,6 +9,7 @@
9
9
  * Authors:
10
10
  * - Sophie Bremer
11
11
  * - Gøran Slettemark
12
+ * - Jomar Hønsi
12
13
  *
13
14
  * */
14
15
  'use strict';
@@ -114,7 +115,7 @@ class DataTable {
114
115
  this.autoId = !options.id;
115
116
  this.columns = {};
116
117
  /**
117
- * ID of the table for indentification purposes.
118
+ * ID of the table for identification purposes.
118
119
  *
119
120
  * @name Highcharts.DataTable#id
120
121
  * @type {string}
@@ -123,6 +124,7 @@ class DataTable {
123
124
  this.modified = this;
124
125
  this.rowCount = 0;
125
126
  this.versionTag = uniqueKey();
127
+ this.rowKeysId = options.rowKeysId;
126
128
  const columns = options.columns || {}, columnNames = Object.keys(columns), thisColumns = this.columns;
127
129
  let rowCount = 0;
128
130
  for (let i = 0, iEnd = columnNames.length, column, columnName; i < iEnd; ++i) {
@@ -140,6 +142,7 @@ class DataTable {
140
142
  alias = aliasKeys[i];
141
143
  thisAliases[alias] = aliases[alias];
142
144
  }
145
+ this.setRowKeysColumn(rowCount);
143
146
  }
144
147
  /* *
145
148
  *
@@ -175,6 +178,9 @@ class DataTable {
175
178
  if (!table.autoId) {
176
179
  tableOptions.id = table.id;
177
180
  }
181
+ if (table.rowKeysId) {
182
+ tableOptions.rowKeysId = table.rowKeysId;
183
+ }
178
184
  const tableClone = new DataTable(tableOptions);
179
185
  if (!skipColumns) {
180
186
  tableClone.versionTag = table.versionTag;
@@ -245,7 +251,13 @@ class DataTable {
245
251
  }
246
252
  delete columns[columnName];
247
253
  }
248
- if (!Object.keys(columns).length) {
254
+ let nColumns = Object.keys(columns).length;
255
+ if (table.rowKeysId && nColumns === 1) {
256
+ // All columns deleted, remove row keys column
257
+ delete columns[table.rowKeysId];
258
+ nColumns = 0;
259
+ }
260
+ if (!nColumns) {
249
261
  table.rowCount = 0;
250
262
  }
251
263
  if (modifier) {
@@ -415,7 +427,7 @@ class DataTable {
415
427
  case 'number':
416
428
  return (isNaN(cellValue) && !useNaN ? null : cellValue);
417
429
  }
418
- cellValue = parseFloat(`${cellValue}`);
430
+ cellValue = parseFloat(`${cellValue ?? ''}`);
419
431
  return (isNaN(cellValue) && !useNaN ? null : cellValue);
420
432
  }
421
433
  /**
@@ -437,6 +449,7 @@ class DataTable {
437
449
  columnNameOrAlias = (table.aliases[columnNameOrAlias] ||
438
450
  columnNameOrAlias);
439
451
  const column = table.columns[columnNameOrAlias];
452
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
440
453
  return `${(column && column[rowIndex])}`;
441
454
  }
442
455
  /**
@@ -516,6 +529,7 @@ class DataTable {
516
529
  */
517
530
  getColumnNames() {
518
531
  const table = this, columnNames = Object.keys(table.columns);
532
+ this.removeRowKeysColumn(columnNames);
519
533
  return columnNames;
520
534
  }
521
535
  /**
@@ -536,6 +550,7 @@ class DataTable {
536
550
  getColumns(columnNamesOrAliases, asReference) {
537
551
  const table = this, tableAliasMap = table.aliases, tableColumns = table.columns, columns = {};
538
552
  columnNamesOrAliases = (columnNamesOrAliases || Object.keys(tableColumns));
553
+ this.removeRowKeysColumn(columnNamesOrAliases);
539
554
  for (let i = 0, iEnd = columnNamesOrAliases.length, column, columnName; i < iEnd; ++i) {
540
555
  columnName = columnNamesOrAliases[i];
541
556
  column = tableColumns[(tableAliasMap[columnName] || columnName)];
@@ -652,6 +667,7 @@ class DataTable {
652
667
  getRowObjects(rowIndex = 0, rowCount = (this.rowCount - rowIndex), columnNamesOrAliases) {
653
668
  const table = this, aliases = table.aliases, columns = table.columns, rows = new Array(rowCount);
654
669
  columnNamesOrAliases = (columnNamesOrAliases || Object.keys(columns));
670
+ this.removeRowKeysColumn(columnNamesOrAliases);
655
671
  for (let i = rowIndex, i2 = 0, iEnd = Math.min(table.rowCount, (rowIndex + rowCount)), column, row; i < iEnd; ++i, ++i2) {
656
672
  row = rows[i2] = {};
657
673
  for (const columnName of columnNamesOrAliases) {
@@ -788,6 +804,10 @@ class DataTable {
788
804
  }
789
805
  columns[newColumnName] = columns[columnName];
790
806
  delete columns[columnName];
807
+ if (table.rowKeysId) {
808
+ // Ensure that row keys column is last
809
+ this.moveRowKeysColumnToLast(columns, table.rowKeysId);
810
+ }
791
811
  }
792
812
  return true;
793
813
  }
@@ -923,6 +943,10 @@ class DataTable {
923
943
  if (tableModifier) {
924
944
  tableModifier.modifyColumns(table, columns, (rowIndex || 0));
925
945
  }
946
+ if (table.rowKeysId) {
947
+ // Ensure that the row keys column is always last
948
+ this.moveRowKeysColumnToLast(tableColumns, table.rowKeysId);
949
+ }
926
950
  table.emit({
927
951
  type: 'afterSetColumns',
928
952
  columns,
@@ -931,6 +955,63 @@ class DataTable {
931
955
  rowIndex
932
956
  });
933
957
  }
958
+ /**
959
+ * Sets the row key column. This column is invisible and the cells
960
+ * serve as identifiers to the rows they are contained in. Accessing
961
+ * rows by keys instead of indexes is necessary in cases where rows
962
+ * are rearranged by a DataModifier (e.g. SortModifier or RangeModifier).
963
+ *
964
+ * @function Highcharts.DataTable#setRowKeysColumn
965
+ *
966
+ * @param {number} nRows
967
+ * Number of rows to add to the column.
968
+ *
969
+ */
970
+ setRowKeysColumn(nRows) {
971
+ const id = this.rowKeysId;
972
+ if (!id) {
973
+ return;
974
+ }
975
+ this.columns[id] = [];
976
+ const keysArray = this.columns[id];
977
+ for (let i = 0; i < nRows; i++) {
978
+ keysArray.push(id + '_' + i);
979
+ }
980
+ }
981
+ /**
982
+ * Get the row key column.
983
+ *
984
+ * @function Highcharts.DataTable#getRowKeysColumn
985
+ * *
986
+ * @return {DataTable.Column|undefined}
987
+ * Returns row keys if rowKeysId is defined, else undefined.
988
+ */
989
+ getRowKeysColumn() {
990
+ const id = this.rowKeysId;
991
+ if (id) {
992
+ return this.columns[id];
993
+ }
994
+ }
995
+ /**
996
+ * Get the row index in the original (unmodified) data table.
997
+ *
998
+ * @function Highcharts.DataTable#getRowIndexOriginal
999
+ *
1000
+ * @param {number} idx
1001
+ * Row index in the modified data table.
1002
+ *
1003
+ * @return {string}
1004
+ * Row index in the original data table.
1005
+ */
1006
+ getRowIndexOriginal(idx) {
1007
+ const id = this.rowKeysId;
1008
+ if (id) {
1009
+ const rowKeyCol = this.columns[id];
1010
+ const idxOrig = '' + rowKeyCol[idx];
1011
+ return idxOrig.split('_')[1];
1012
+ }
1013
+ return String(idx);
1014
+ }
934
1015
  /**
935
1016
  * Sets or unsets the modifier for the table.
936
1017
  * @private
@@ -942,7 +1023,7 @@ class DataTable {
942
1023
  * Custom information for pending events.
943
1024
  *
944
1025
  * @return {Promise<Highcharts.DataTable>}
945
- * Resolves to this table if successfull, or rejects on failure.
1026
+ * Resolves to this table if successful, or rejects on failure.
946
1027
  *
947
1028
  * @emits #setModifier
948
1029
  * @emits #afterSetModifier
@@ -1018,7 +1099,7 @@ class DataTable {
1018
1099
  * Row values to set.
1019
1100
  *
1020
1101
  * @param {number} [rowIndex]
1021
- * Index of the first row to set. Leave `undefind` to add as new rows.
1102
+ * Index of the first row to set. Leave `undefined` to add as new rows.
1022
1103
  *
1023
1104
  * @param {Highcharts.DataTableEventDetail} [eventDetail]
1024
1105
  * Custom information for pending events.
@@ -1066,6 +1147,9 @@ class DataTable {
1066
1147
  columns[columnNames[i]].length = indexRowCount;
1067
1148
  }
1068
1149
  }
1150
+ if (this.rowKeysId && !columnNames.includes(this.rowKeysId)) {
1151
+ this.setRowKeysColumn(rowCount);
1152
+ }
1069
1153
  if (modifier) {
1070
1154
  modifier.modifyRows(table, rows, rowIndex);
1071
1155
  }
@@ -1077,6 +1161,23 @@ class DataTable {
1077
1161
  rows
1078
1162
  });
1079
1163
  }
1164
+ // The row keys column must always be the last column
1165
+ moveRowKeysColumnToLast(columns, id) {
1166
+ const rowKeyColumn = columns[id];
1167
+ delete columns[id];
1168
+ columns[id] = rowKeyColumn;
1169
+ }
1170
+ // The row keys column must be removed in some methods
1171
+ // (API backwards compatibility)
1172
+ removeRowKeysColumn(columnNamesOrAliases) {
1173
+ if (this.rowKeysId) {
1174
+ const pos = columnNamesOrAliases.indexOf(this.rowKeysId);
1175
+ if (pos !== -1) {
1176
+ // Always the last column
1177
+ columnNamesOrAliases.pop();
1178
+ }
1179
+ }
1180
+ }
1080
1181
  }
1081
1182
  /* *
1082
1183
  *
@@ -24,12 +24,12 @@ const booleanRegExp = /^(?:FALSE|TRUE)/;
24
24
  * `.`-separated decimal.
25
25
  * @private
26
26
  */
27
- const decimal1RegExp = /^[+-]?\d+(?:\.\d+)?(?:e[+-]\d+)?/;
27
+ const decimal1RegExp = /^[+\-]?\d+(?:\.\d+)?(?:e[+\-]\d+)?/;
28
28
  /**
29
29
  * `,`-separated decimal.
30
30
  * @private
31
31
  */
32
- const decimal2RegExp = /^[+-]?\d+(?:,\d+)?(?:e[+-]\d+)?/;
32
+ const decimal2RegExp = /^[+\-]?\d+(?:,\d+)?(?:e[+\-]\d+)?/;
33
33
  /**
34
34
  * - Group 1: Function name
35
35
  * @private
@@ -57,7 +57,7 @@ const defaultMarkers = {
57
57
  children: [{
58
58
  tagName: 'path',
59
59
  attributes: {
60
- d: 'M 0 0 L 10 5 L 0 10 Z',
60
+ d: 'M 0 0 L 10 5 L 0 10 Z', // Triangle (used as an arrow)
61
61
  'stroke-width': 0
62
62
  }
63
63
  }]
@@ -185,7 +185,7 @@ class ControllablePath extends Controllable {
185
185
  .add(parent);
186
186
  if (!this.annotation.chart.styledMode) {
187
187
  this.tracker.attr({
188
- 'stroke-linejoin': 'round',
188
+ 'stroke-linejoin': 'round', // #1225
189
189
  stroke: TRACKER_FILL,
190
190
  fill: TRACKER_FILL,
191
191
  'stroke-width': this.graphic.strokeWidth() +
@@ -375,8 +375,7 @@ class NavigationBindings {
375
375
  }
376
376
  }
377
377
  else {
378
- chart.stockTools &&
379
- chart.stockTools.toggleButtonActiveClass(button);
378
+ chart.stockTools && button.classList.remove('highcharts-active');
380
379
  svgContainer.removeClass('highcharts-draw-mode');
381
380
  navigation.nextEvent = false;
382
381
  navigation.mouseMoveEvent = false;
@@ -92,7 +92,7 @@ function compose(ChartClass, AxisClass, SeriesClass, seriesTypes, ColorClass) {
92
92
  /**
93
93
  * Returns true if the current browser supports WebGL.
94
94
  *
95
- * @requires module:modules/boost
95
+ * @requires modules/boost
96
96
  *
97
97
  * @function Highcharts.hasWebGLSupport
98
98
  *
@@ -202,14 +202,20 @@ function onChartCallback(chart) {
202
202
  addEvent(chart, 'redraw', canvasToSVG);
203
203
  let prevX = -1;
204
204
  let prevY = -1;
205
- addEvent(chart.pointer, 'afterGetHoverData', () => {
206
- const series = chart.hoverSeries;
205
+ addEvent(chart.pointer, 'afterGetHoverData', (e) => {
206
+ const series = e.hoverPoint?.series;
207
207
  chart.boost = chart.boost || {};
208
208
  if (chart.boost.markerGroup && series) {
209
209
  const xAxis = chart.inverted ? series.yAxis : series.xAxis;
210
210
  const yAxis = chart.inverted ? series.xAxis : series.yAxis;
211
211
  if ((xAxis && xAxis.pos !== prevX) ||
212
212
  (yAxis && yAxis.pos !== prevY)) {
213
+ // #21176: If the axis is changed, hide teh halo without
214
+ // animation to prevent flickering of halos sharing the
215
+ // same marker group
216
+ chart.series.forEach((s) => {
217
+ s.halo?.hide();
218
+ });
213
219
  // #10464: Keep the marker group position in sync with the
214
220
  // position of the hovered series axes since there is only
215
221
  // one shared marker group when boosting.
@@ -242,7 +242,7 @@ function createAndAttachRenderer(chart, series) {
242
242
  })
243
243
  .addClass(hasClickHandler ? 'highcharts-tracker' : '');
244
244
  if (target instanceof ChartClass) {
245
- target.boost.markerGroup.translate(chart.plotLeft, chart.plotTop);
245
+ target.boost?.markerGroup?.translate(chart.plotLeft, chart.plotTop);
246
246
  }
247
247
  };
248
248
  boost.clipRect = chart.renderer.clipRect();
@@ -421,7 +421,15 @@ function enterBoost(series) {
421
421
  * @function Highcharts.Series#exitBoost
422
422
  */
423
423
  function exitBoost(series) {
424
- const boost = series.boost;
424
+ const boost = series.boost, chart = series.chart, chartBoost = chart.boost;
425
+ if (chartBoost?.markerGroup) {
426
+ chartBoost.markerGroup.destroy();
427
+ chartBoost.markerGroup = void 0;
428
+ for (const s of chart.series) {
429
+ s.markerGroup = void 0;
430
+ s.markerGroup = s.plotGroup('markerGroup', 'markers', 'visible', 1, chart.seriesGroup).addClass('highcharts-tracker');
431
+ }
432
+ }
425
433
  // Reset instance properties and/or delete instance properties and go back
426
434
  // to prototype
427
435
  if (boost) {
@@ -641,13 +649,13 @@ function scatterProcessData(force) {
641
649
  * @function Highcharts.Series#renderCanvas
642
650
  */
643
651
  function seriesRenderCanvas() {
644
- const options = this.options || {}, chart = this.chart, xAxis = this.xAxis, yAxis = this.yAxis, xData = options.xData || this.processedXData, yData = options.yData || this.processedYData, rawData = this.processedData || options.data, xExtremes = xAxis.getExtremes(),
652
+ const options = this.options || {}, chart = this.chart, chartBoost = chart.boost, seriesBoost = this.boost, xAxis = this.xAxis, yAxis = this.yAxis, xData = options.xData || this.processedXData, yData = options.yData || this.processedYData, rawData = this.processedData || options.data, xExtremes = xAxis.getExtremes(),
645
653
  // Taking into account the offset of the min point #19497
646
654
  xMin = xExtremes.min - (xAxis.minPointOffset || 0), xMax = xExtremes.max + (xAxis.minPointOffset || 0), yExtremes = yAxis.getExtremes(), yMin = yExtremes.min - (yAxis.minPointOffset || 0), yMax = yExtremes.max + (yAxis.minPointOffset || 0), pointTaken = {}, sampling = !!this.sampling, enableMouseTracking = options.enableMouseTracking, threshold = options.threshold, isRange = this.pointArrayMap &&
647
655
  this.pointArrayMap.join(',') === 'low,high', isStacked = !!options.stacking, cropStart = this.cropStart || 0, requireSorting = this.requireSorting, useRaw = !xData, compareX = options.findNearestPointBy === 'x', xDataFull = (this.xData ||
648
656
  this.options.xData ||
649
657
  this.processedXData ||
650
- false);
658
+ false), lineWidth = pick(options.lineWidth, 1);
651
659
  let renderer = false, lastClientX, yBottom = yAxis.getThreshold(threshold), minVal, maxVal, minI, maxI;
652
660
  // When touch-zooming or mouse-panning, re-rendering the canvas would not
653
661
  // perform fast enough. Instead, let the axes redraw, but not the series.
@@ -671,8 +679,7 @@ function seriesRenderCanvas() {
671
679
  if (!isChartSeriesBoosting(chart)) {
672
680
  // If all series were boosting, but are not anymore
673
681
  // restore private markerGroup
674
- if (chart.boost &&
675
- this.markerGroup === chart.boost.markerGroup) {
682
+ if (this.markerGroup === chartBoost?.markerGroup) {
676
683
  this.markerGroup = void 0;
677
684
  }
678
685
  this.markerGroup = this.plotGroup('markerGroup', 'markers', 'visible', 1, chart.seriesGroup).addClass('highcharts-tracker');
@@ -681,15 +688,17 @@ function seriesRenderCanvas() {
681
688
  // If series has a private markerGroup, remove that
682
689
  // and use common markerGroup
683
690
  if (this.markerGroup &&
684
- this.markerGroup !== chart.boost.markerGroup) {
691
+ this.markerGroup !== chartBoost?.markerGroup) {
685
692
  this.markerGroup.destroy();
686
693
  }
687
694
  // Use a single group for the markers
688
- this.markerGroup = chart.boost.markerGroup;
695
+ this.markerGroup = chartBoost?.markerGroup;
689
696
  // When switching from chart boosting mode, destroy redundant
690
697
  // series boosting targets
691
- if (this.boost && this.boost.target) {
692
- this.renderTarget = this.boost.target = this.boost.target.destroy();
698
+ if (seriesBoost && seriesBoost.target) {
699
+ this.renderTarget =
700
+ seriesBoost.target =
701
+ seriesBoost.target.destroy();
693
702
  }
694
703
  }
695
704
  const points = this.points = [], addKDPoint = (clientX, plotY, i, percentage) => {
@@ -733,6 +742,28 @@ function seriesRenderCanvas() {
733
742
  // Do not start building while drawing
734
743
  this.buildKDTree = noop;
735
744
  fireEvent(this, 'renderCanvas');
745
+ if (this.is('line') &&
746
+ lineWidth > 1 &&
747
+ seriesBoost?.target &&
748
+ chartBoost &&
749
+ !chartBoost.lineWidthFilter) {
750
+ chartBoost.lineWidthFilter = chart.renderer.definition({
751
+ tagName: 'filter',
752
+ children: [
753
+ {
754
+ tagName: 'feMorphology',
755
+ attributes: {
756
+ operator: 'dilate',
757
+ radius: 0.25 * lineWidth
758
+ }
759
+ }
760
+ ],
761
+ attributes: { id: 'linewidth' }
762
+ });
763
+ seriesBoost.target.attr({
764
+ filter: 'url(#linewidth)'
765
+ });
766
+ }
736
767
  if (renderer) {
737
768
  allocateIfNotSeriesBoosting(renderer, this);
738
769
  renderer.pushSeries(this);
@@ -143,7 +143,7 @@ const vertexShader = [
143
143
  'cvsOffset -= sign * len;',
144
144
  '}',
145
145
  'return sign * (val - localMin) * localA + cvsOffset + ',
146
- '(sign * minPixelPadding);',
146
+ '(sign * minPixelPadding);', // ' + localA * pointPlacement * pointRange;',
147
147
  '}',
148
148
  'float xToPixels(float value) {',
149
149
  'if (skipTranslation){',
@@ -88,9 +88,9 @@ function applyBorderRadius(path, i, r) {
88
88
  'A',
89
89
  r,
90
90
  r,
91
- 0,
92
- 0,
93
- 1,
91
+ 0, // Slanting,
92
+ 0, // Long arc
93
+ 1, // Clockwise
94
94
  cx + bigR * Math.cos(params.start),
95
95
  cy + bigR * Math.sin(params.start)
96
96
  ]);
@@ -146,8 +146,6 @@ class Breadcrumbs {
146
146
  /**
147
147
  * Update Breadcrumbs properties, like level and list.
148
148
  *
149
- * @requires modules/breadcrumbs
150
- *
151
149
  * @function Highcharts.Breadcrumbs#updateProperties
152
150
  * @param {Highcharts.Breadcrumbs} this
153
151
  * Breadcrumbs class.
@@ -161,8 +159,6 @@ class Breadcrumbs {
161
159
  * Set breadcrumbs list.
162
160
  * @function Highcharts.Breadcrumbs#setList
163
161
  *
164
- * @requires modules/breadcrumbs
165
- *
166
162
  * @param {Highcharts.Breadcrumbs} this
167
163
  * Breadcrumbs class.
168
164
  * @param {Highcharts.BreadcrumbsOptions} list
@@ -174,8 +170,6 @@ class Breadcrumbs {
174
170
  /**
175
171
  * Calculate level on which chart currently is.
176
172
  *
177
- * @requires modules/breadcrumbs
178
- *
179
173
  * @function Highcharts.Breadcrumbs#setLevel
180
174
  * @param {Highcharts.Breadcrumbs} this
181
175
  * Breadcrumbs class.
@@ -186,8 +180,6 @@ class Breadcrumbs {
186
180
  /**
187
181
  * Get Breadcrumbs level
188
182
  *
189
- * @requires modules/breadcrumbs
190
- *
191
183
  * @function Highcharts.Breadcrumbs#getLevel
192
184
  * @param {Highcharts.Breadcrumbs} this
193
185
  * Breadcrumbs class.
@@ -198,8 +190,6 @@ class Breadcrumbs {
198
190
  /**
199
191
  * Default button text formatter.
200
192
  *
201
- * @requires modules/breadcrumbs
202
- *
203
193
  * @function Highcharts.Breadcrumbs#getButtonText
204
194
  * @param {Highcharts.Breadcrumbs} this
205
195
  * Breadcrumbs class.
@@ -227,8 +217,6 @@ class Breadcrumbs {
227
217
  /**
228
218
  * Redraw.
229
219
  *
230
- * @requires modules/breadcrumbs
231
- *
232
220
  * @function Highcharts.Breadcrumbs#redraw
233
221
  * @param {Highcharts.Breadcrumbs} this
234
222
  * Breadcrumbs class.
@@ -245,8 +233,6 @@ class Breadcrumbs {
245
233
  /**
246
234
  * Create a group, then draw breadcrumbs together with the separators.
247
235
  *
248
- * @requires modules/breadcrumbs
249
- *
250
236
  * @function Highcharts.Breadcrumbs#render
251
237
  * @param {Highcharts.Breadcrumbs} this
252
238
  * Breadcrumbs class.
@@ -275,8 +261,6 @@ class Breadcrumbs {
275
261
  /**
276
262
  * Draw breadcrumbs together with the separators.
277
263
  *
278
- * @requires modules/breadcrumbs
279
- *
280
264
  * @function Highcharts.Breadcrumbs#renderFullPathButtons
281
265
  * @param {Highcharts.Breadcrumbs} this
282
266
  * Breadcrumbs class.
@@ -292,8 +276,6 @@ class Breadcrumbs {
292
276
  * Render Single button - when showFullPath is not used. The button is
293
277
  * similar to the old drillUpButton
294
278
  *
295
- * @requires modules/breadcrumbs
296
- *
297
279
  * @function Highcharts.Breadcrumbs#renderSingleButton
298
280
  * @param {Highcharts.Breadcrumbs} this Breadcrumbs class.
299
281
  */
@@ -323,8 +305,6 @@ class Breadcrumbs {
323
305
  /**
324
306
  * Update group position based on align and it's width.
325
307
  *
326
- * @requires modules/breadcrumbs
327
- *
328
308
  * @function Highcharts.Breadcrumbs#renderSingleButton
329
309
  * @param {Highcharts.Breadcrumbs} this
330
310
  * Breadcrumbs class.
@@ -355,8 +335,6 @@ class Breadcrumbs {
355
335
  /**
356
336
  * Render a button.
357
337
  *
358
- * @requires modules/breadcrumbs
359
- *
360
338
  * @function Highcharts.Breadcrumbs#renderButton
361
339
  * @param {Highcharts.Breadcrumbs} this
362
340
  * Breadcrumbs class.
@@ -403,8 +381,6 @@ class Breadcrumbs {
403
381
  /**
404
382
  * Render a separator.
405
383
  *
406
- * @requires modules/breadcrumbs
407
- *
408
384
  * @function Highcharts.Breadcrumbs#renderSeparator
409
385
  * @param {Highcharts.Breadcrumbs} this
410
386
  * Breadcrumbs class.
@@ -430,8 +406,6 @@ class Breadcrumbs {
430
406
  * Update.
431
407
  * @function Highcharts.Breadcrumbs#update
432
408
  *
433
- * @requires modules/breadcrumbs
434
- *
435
409
  * @param {Highcharts.Breadcrumbs} this
436
410
  * Breadcrumbs class.
437
411
  * @param {Highcharts.BreadcrumbsOptions} options
@@ -448,8 +422,6 @@ class Breadcrumbs {
448
422
  * Update button text when the showFullPath set to false.
449
423
  * @function Highcharts.Breadcrumbs#updateSingleButton
450
424
  *
451
- * @requires modules/breadcrumbs
452
- *
453
425
  * @param {Highcharts.Breadcrumbs} this
454
426
  * Breadcrumbs class.
455
427
  */
@@ -464,8 +436,6 @@ class Breadcrumbs {
464
436
  /**
465
437
  * Destroy the chosen breadcrumbs group
466
438
  *
467
- * @requires modules/breadcrumbs
468
- *
469
439
  * @function Highcharts.Breadcrumbs#destroy
470
440
  * @param {Highcharts.Breadcrumbs} this
471
441
  * Breadcrumbs class.
@@ -484,8 +454,6 @@ class Breadcrumbs {
484
454
  /**
485
455
  * Destroy the elements' buttons and separators.
486
456
  *
487
- * @requires modules/breadcrumbs
488
- *
489
457
  * @function Highcharts.Breadcrumbs#destroyListElements
490
458
  * @param {Highcharts.Breadcrumbs} this
491
459
  * Breadcrumbs class.
@@ -510,8 +478,6 @@ class Breadcrumbs {
510
478
  /**
511
479
  * Destroy the single button if exists.
512
480
  *
513
- * @requires modules/breadcrumbs
514
- *
515
481
  * @function Highcharts.Breadcrumbs#destroySingleButton
516
482
  * @param {Highcharts.Breadcrumbs} this
517
483
  * Breadcrumbs class.
@@ -525,8 +491,6 @@ class Breadcrumbs {
525
491
  /**
526
492
  * Reset state for all buttons in elementList.
527
493
  *
528
- * @requires modules/breadcrumbs
529
- *
530
494
  * @function Highcharts.Breadcrumbs#resetElementListState
531
495
  * @param {Highcharts.Breadcrumbs} this
532
496
  * Breadcrumbs class.
@@ -539,8 +503,6 @@ class Breadcrumbs {
539
503
  /**
540
504
  * Update rendered elements inside the elementList.
541
505
  *
542
- * @requires modules/breadcrumbs
543
- *
544
506
  * @function Highcharts.Breadcrumbs#updateListElements
545
507
  *
546
508
  * @param {Highcharts.Breadcrumbs} this