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
@@ -67,7 +67,7 @@ function hasURLOption(options) {
67
67
  /**
68
68
  * The Data class
69
69
  *
70
- * @requires module:modules/data
70
+ * @requires modules/data
71
71
  *
72
72
  * @class
73
73
  * @name Highcharts.Data
@@ -130,7 +130,7 @@ class Data {
130
130
  */
131
131
  this.dateFormats = {
132
132
  'YYYY/mm/dd': {
133
- regex: /^([0-9]{4})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{1,2})$/,
133
+ regex: /^(\d{4})[\-\/\.](\d{1,2})[\-\/\.](\d{1,2})$/,
134
134
  parser: function (match) {
135
135
  return (match ?
136
136
  Date.UTC(+match[1], match[2] - 1, +match[3]) :
@@ -138,7 +138,7 @@ class Data {
138
138
  }
139
139
  },
140
140
  'dd/mm/YYYY': {
141
- regex: /^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{4})$/,
141
+ regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,
142
142
  parser: function (match) {
143
143
  return (match ?
144
144
  Date.UTC(+match[3], match[2] - 1, +match[1]) :
@@ -147,7 +147,7 @@ class Data {
147
147
  alternative: 'mm/dd/YYYY' // Different format with the same regex
148
148
  },
149
149
  'mm/dd/YYYY': {
150
- regex: /^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{4})$/,
150
+ regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,
151
151
  parser: function (match) {
152
152
  return (match ?
153
153
  Date.UTC(+match[3], match[1] - 1, +match[2]) :
@@ -155,7 +155,7 @@ class Data {
155
155
  }
156
156
  },
157
157
  'dd/mm/YY': {
158
- regex: /^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{2})$/,
158
+ regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,
159
159
  parser: function (match) {
160
160
  if (!match) {
161
161
  return NaN;
@@ -173,7 +173,7 @@ class Data {
173
173
  alternative: 'mm/dd/YY' // Different format with the same regex
174
174
  },
175
175
  'mm/dd/YY': {
176
- regex: /^([0-9]{1,2})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{2})$/,
176
+ regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,
177
177
  parser: function (match) {
178
178
  return (match ?
179
179
  Date.UTC(+match[3] + 2000, match[1] - 1, +match[2]) :
@@ -1023,7 +1023,7 @@ class Data {
1023
1023
  if (typeof str === 'string') {
1024
1024
  str = str.replace(/^\s+|\s+$/g, '');
1025
1025
  // Clear white space inside the string, like thousands separators
1026
- if (inside && /^-?[0-9\s]+$/.test(str)) {
1026
+ if (inside && /[\d\s]+/.test(str)) {
1027
1027
  str = str.replace(/\s/g, '');
1028
1028
  }
1029
1029
  if (this.decimalRegex) {
@@ -1195,10 +1195,10 @@ class Data {
1195
1195
  }
1196
1196
  // Fall back to Date.parse
1197
1197
  if (!match) {
1198
- if (val.match(/:.+(GMT|UTC|[Z+-])/)) {
1198
+ if (val.match(/:.+(GMT|UTC|[Z+\-])/)) {
1199
1199
  val = val
1200
- .replace(/\s*(?:GMT|UTC)?([+-])(\d\d)(\d\d)$/, '$1$2:$3')
1201
- .replace(/(?:\s+|GMT|UTC)([+-])/, '$1')
1200
+ .replace(/\s*(?:GMT|UTC)?([+\-])(\d\d)(\d\d)$/, '$1$2:$3')
1201
+ .replace(/(?:\s+|GMT|UTC)([+\-])/, '$1')
1202
1202
  .replace(/(\d)\s*(?:GMT|UTC|Z)$/, '$1+00:00');
1203
1203
  }
1204
1204
  match = Date.parse(val);
@@ -1712,7 +1712,7 @@ export default Data;
1712
1712
  * A callback function to modify the CSV before parsing it. Return the modified
1713
1713
  * string.
1714
1714
  *
1715
- * @sample {highcharts} highcharts/demo/line-ajax/
1715
+ * @sample {highcharts} highcharts/demo/line-csv/
1716
1716
  * Modify CSV before parse
1717
1717
  *
1718
1718
  * @type {Highcharts.DataBeforeParseCallbackFunction}
@@ -187,8 +187,7 @@ export default DataGroupingComposition;
187
187
  *
188
188
  * @declare Highcharts.DataGroupingOptionsObject
189
189
  * @product highstock
190
- * @requires product:highstock
191
- * @requires module:modules/datagrouping
190
+ * @requires modules/stock
192
191
  * @apioption plotOptions.series.dataGrouping
193
192
  */
194
193
  /**
@@ -105,7 +105,7 @@ const seriesSpecific = {
105
105
  */
106
106
  const units = [
107
107
  [
108
- 'millisecond',
108
+ 'millisecond', // Unit name
109
109
  [1, 2, 5, 10, 20, 25, 50, 100, 200, 500] // Allowed multiples
110
110
  ], [
111
111
  'second',
@@ -40,7 +40,7 @@ const domurl = win.URL || win.webkitURL || win;
40
40
  function dataURLtoBlob(dataURL) {
41
41
  const parts = dataURL
42
42
  .replace(/filename=.*;/, '')
43
- .match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/);
43
+ .match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);
44
44
  if (parts &&
45
45
  parts.length > 3 &&
46
46
  (win.atob) &&
@@ -76,8 +76,6 @@ function axisGetDDPoints(x) {
76
76
  * This method creates an array of arrays containing a level number
77
77
  * with the corresponding series/point.
78
78
  *
79
- * @requires modules/breadcrumbs
80
- *
81
79
  * @private
82
80
  * @param {Highcharts.Chart} chart
83
81
  * Highcharts Chart object.
@@ -42,17 +42,17 @@ var Exporting;
42
42
  * */
43
43
  // These CSS properties are not inlined. Remember camelCase.
44
44
  const inlineDenylist = [
45
- /-/,
46
- /^(clipPath|cssText|d|height|width)$/,
47
- /^font$/,
45
+ /-/, // In Firefox, both hyphened and camelCased names are listed
46
+ /^(clipPath|cssText|d|height|width)$/, // Full words
47
+ /^font$/, // More specific props are set
48
48
  /[lL]ogical(Width|Height)$/,
49
49
  /^parentRule$/,
50
- /^(cssRules|ownerRules)$/,
50
+ /^(cssRules|ownerRules)$/, // #19516 read-only properties
51
51
  /perspective/,
52
52
  /TapHighlightColor/,
53
53
  /^transition/,
54
- /^length$/,
55
- /^[0-9]+$/ // #17538
54
+ /^length$/, // #7700
55
+ /^\d+$/ // #17538
56
56
  ];
57
57
  // These ones are translated to attributes rather than styles
58
58
  const inlineToAttributes = [
@@ -636,7 +636,7 @@ var Exporting;
636
636
  .toLowerCase()
637
637
  .replace(/<\/?[^>]+(>|$)/g, '') // Strip HTML tags
638
638
  .replace(/[\s_]+/g, '-')
639
- .replace(/[^a-z0-9\-]/g, '') // Preserve only latin
639
+ .replace(/[^a-z\d\-]/g, '') // Preserve only latin
640
640
  .replace(/^[\-]+/g, '') // Dashes in the start
641
641
  .replace(/[\-]+/g, '-') // Dashes in a row
642
642
  .substr(0, 24)
@@ -708,7 +708,7 @@ var Exporting;
708
708
  options.series = [];
709
709
  chart.series.forEach(function (serie) {
710
710
  seriesOptions = merge(serie.userOptions, {
711
- animation: false,
711
+ animation: false, // Turn off animation
712
712
  enableMouseTracking: false,
713
713
  showCheckbox: false,
714
714
  visible: serie.visible
@@ -797,8 +797,8 @@ var Exporting;
797
797
  * Hyphenated property name
798
798
  */
799
799
  function hyphenate(prop) {
800
- return prop.replace(/([A-Z])/g, function (a, b) {
801
- return '-' + b.toLowerCase();
800
+ return prop.replace(/[A-Z]/g, function (match) {
801
+ return '-' + match.toLowerCase();
802
802
  });
803
803
  }
804
804
  /**
@@ -920,7 +920,7 @@ var Exporting;
920
920
  for (const key in s) {
921
921
  if (key.length < 1000 /* RegexLimits.shortLimit */ &&
922
922
  typeof s[key] === 'string' &&
923
- !/^[0-9]+$/.test(key)) {
923
+ !/^\d+$/.test(key)) {
924
924
  defaults[key] = s[key];
925
925
  }
926
926
  }
@@ -1131,14 +1131,14 @@ var Exporting;
1131
1131
  svg = svg
1132
1132
  .replace(/zIndex="[^"]+"/g, '')
1133
1133
  .replace(/symbolName="[^"]+"/g, '')
1134
- .replace(/jQuery[0-9]+="[^"]+"/g, '')
1134
+ .replace(/jQuery\d+="[^"]+"/g, '')
1135
1135
  .replace(/url\(("|&quot;)(.*?)("|&quot;)\;?\)/g, 'url($2)')
1136
1136
  .replace(/url\([^#]+#/g, 'url(#')
1137
1137
  .replace(/<svg /, '<svg xmlns:xlink="http://www.w3.org/1999/xlink" ')
1138
- .replace(/ (|NS[0-9]+\:)href=/g, ' xlink:href=') // #3567
1138
+ .replace(/ (NS\d+\:)?href=/g, ' xlink:href=') // #3567
1139
1139
  .replace(/\n+/g, ' ')
1140
1140
  // Batik doesn't support rgba fills and strokes (#3095)
1141
- .replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g, // eslint-disable-line max-len
1141
+ .replace(/(fill|stroke)="rgba\(([ \d]+,[ \d]+,[ \d]+),([ \d\.]+)\)"/g, // eslint-disable-line max-len
1142
1142
  '$1="rgb($2)" $1-opacity="$3"')
1143
1143
  // Replace HTML entities, issue #347
1144
1144
  .replace(/&nbsp;/g, '\u00A0') // No-break space
@@ -11,6 +11,8 @@
11
11
  *
12
12
  * */
13
13
  'use strict';
14
+ import GeometryUtilities from '../Core/Geometry/GeometryUtilities.js';
15
+ const { pointInPolygon } = GeometryUtilities;
14
16
  import U from '../Core/Utilities.js';
15
17
  const { addEvent, fireEvent, objectEach, pick } = U;
16
18
  /* *
@@ -33,7 +35,14 @@ function chartHideOverlappingLabels(labels) {
33
35
  const chart = this, len = labels.length, isIntersectRect = (box1, box2) => !(box2.x >= box1.x + box1.width ||
34
36
  box2.x + box2.width <= box1.x ||
35
37
  box2.y >= box1.y + box1.height ||
36
- box2.y + box2.height <= box1.y);
38
+ box2.y + box2.height <= box1.y), isPolygonOverlap = (box1Poly, box2Poly) => {
39
+ for (const p of box1Poly) {
40
+ if (pointInPolygon({ x: p[0], y: p[1] }, box2Poly)) {
41
+ return true;
42
+ }
43
+ }
44
+ return false;
45
+ };
37
46
  /**
38
47
  * Get the box with its position inside the chart, as opposed to getBBox
39
48
  * that only reports the position relative to the parent.
@@ -50,7 +59,8 @@ function chartHideOverlappingLabels(labels) {
50
59
  x: pos.x + (label.parentGroup?.translateX || 0) + padding,
51
60
  y: pos.y + (label.parentGroup?.translateY || 0) + padding,
52
61
  width: (label.width || 0) - 2 * padding,
53
- height: (label.height || 0) - 2 * padding
62
+ height: (label.height || 0) - 2 * padding,
63
+ polygon: bBox?.polygon
54
64
  };
55
65
  }
56
66
  }
@@ -71,9 +81,11 @@ function chartHideOverlappingLabels(labels) {
71
81
  for (let i = 0; i < len; ++i) {
72
82
  label1 = labels[i];
73
83
  box1 = label1 && label1.absoluteBox;
84
+ const box1Poly = box1?.polygon;
74
85
  for (let j = i + 1; j < len; ++j) {
75
86
  label2 = labels[j];
76
87
  box2 = label2 && label2.absoluteBox;
88
+ let toHide = false;
77
89
  if (box1 &&
78
90
  box2 &&
79
91
  label1 !== label2 && // #6465, polar chart with connectEnds
@@ -82,9 +94,28 @@ function chartHideOverlappingLabels(labels) {
82
94
  // #15863 dataLabels are no longer hidden by translation
83
95
  label1.visibility !== 'hidden' &&
84
96
  label2.visibility !== 'hidden') {
85
- if (isIntersectRect(box1, box2)) {
86
- (label1.labelrank < label2.labelrank ? label1 : label2)
87
- .newOpacity = 0;
97
+ const box2Poly = box2.polygon;
98
+ // If labels have polygons, only evaluate
99
+ // based on polygons
100
+ if (box1Poly &&
101
+ box2Poly &&
102
+ box1Poly !== box2Poly) {
103
+ if (isPolygonOverlap(box1Poly, box2Poly)) {
104
+ toHide = true;
105
+ }
106
+ // If there are no polygons, evaluate rectangles coliding
107
+ }
108
+ else if (isIntersectRect(box1, box2)) {
109
+ toHide = true;
110
+ }
111
+ if (toHide) {
112
+ const overlappingLabel = (label1.labelrank < label2.labelrank ?
113
+ label1 :
114
+ label2), labelText = overlappingLabel.text;
115
+ overlappingLabel.newOpacity = 0;
116
+ if (labelText?.element.querySelector('textPath')) {
117
+ labelText.hide();
118
+ }
88
119
  }
89
120
  }
90
121
  }
@@ -92,7 +92,7 @@ const background = {
92
92
  ]
93
93
  },
94
94
  /** @ignore-option */
95
- from: -Number.MAX_VALUE,
95
+ from: -Number.MAX_VALUE, // Corrected to axis min
96
96
  /**
97
97
  * The inner radius of the pane background. Can be either numeric
98
98
  * (pixels) or a percentage string.
@@ -103,7 +103,7 @@ const background = {
103
103
  */
104
104
  innerRadius: 0,
105
105
  /** @ignore-option */
106
- to: Number.MAX_VALUE,
106
+ to: Number.MAX_VALUE, // Corrected to axis max
107
107
  /**
108
108
  * The outer radius of the circular pane background. Can be either
109
109
  * numeric (pixels) or a percentage string.
@@ -118,6 +118,7 @@ const background = {
118
118
  * The pane serves as a container for axes and backgrounds for circular
119
119
  * gauges and polar charts.
120
120
  *
121
+ * @type {*|Array<*>}
121
122
  * @since 2.3.0
122
123
  * @product highcharts
123
124
  * @requires highcharts-more
@@ -105,7 +105,7 @@ var ParallelCoordinates;
105
105
  * Flag used in parallel coordinates plot to check if chart has
106
106
  * ||-coords (parallel coords).
107
107
  *
108
- * @requires module:modules/parallel-coordinates
108
+ * @requires modules/parallel-coordinates
109
109
  *
110
110
  * @name Highcharts.Chart#hasParallelCoordinates
111
111
  * @type {boolean}
@@ -15,10 +15,10 @@ import SonificationInstrument from './SonificationInstrument.js';
15
15
  import U from '../../Core/Utilities.js';
16
16
  const { pick } = U;
17
17
  const freqToNote = (f) => Math.round(12 * Math.log(f) / Math.LN2 - 48.37632), b = (byte, n) => n >>> 8 * byte & 0xFF, getHeader = (nTracks) => [
18
- 0x4D, 0x54, 0x68, 0x64,
19
- 0, 0, 0, 6,
20
- 0, nTracks > 1 ? 1 : 0,
21
- b(1, nTracks), b(0, nTracks),
18
+ 0x4D, 0x54, 0x68, 0x64, // HD_TYPE
19
+ 0, 0, 0, 6, // HD_SIZE
20
+ 0, nTracks > 1 ? 1 : 0, // HD_FORMAT
21
+ b(1, nTracks), b(0, nTracks), // HD_NTRACKS
22
22
  // SMTPE: 0xE7 0x28
23
23
  // -25/40 time div gives us millisecond SMTPE, but not widely supported.
24
24
  1, 0xF4 // HD_TIMEDIV, 500 ticks per beat = millisecond at 120bpm
@@ -51,7 +51,7 @@ varLenEnc = (n) => {
51
51
  const o = e.instrumentEventOptions || {}, t = e.time, dur = cachedDur = pick(o.noteDuration, cachedDur), tNOF = dur && e.time + dur, ctrl = [{
52
52
  valMap: (n) => 64 + 63 * n & 0x7F,
53
53
  data: {
54
- 0x0A: o.pan,
54
+ 0x0A: o.pan, // Use MSB only, no need for fine adjust
55
55
  0x5C: o.tremoloDepth,
56
56
  0x5D: o.tremoloSpeed
57
57
  }
@@ -122,8 +122,8 @@ varLenEnc = (n) => {
122
122
  metaEvents.length +
123
123
  trackEvents.length + trackEnd.length;
124
124
  return [
125
- 0x4D, 0x54, 0x72, 0x6B,
126
- b(3, size), b(2, size),
125
+ 0x4D, 0x54, 0x72, 0x6B, // TRK_TYPE
126
+ b(3, size), b(2, size), // TRK_SIZE
127
127
  b(1, size), b(0, size)
128
128
  ].concat(addTimeInfo ? timeInfo : [], metaEvents, trackEvents, trackEnd // SYSEX_TRACK_END
129
129
  );
@@ -234,7 +234,6 @@ class SonificationInstrument {
234
234
  * @private
235
235
  */
236
236
  static noteStringToC0Distance(note) {
237
- // eslint-disable-next-line require-unicode-regexp
238
237
  const match = note.match(/^([a-g][#b]?)([0-8])$/i), semitone = match ? match[1] : 'a', wholetone = semitone[0].toLowerCase(), accidental = semitone[1], octave = match ? parseInt(match[2], 10) : 4, accidentalOffset = accidental === '#' ?
239
238
  1 : accidental === 'b' ? -1 : 0;
240
239
  return ({
@@ -17,9 +17,7 @@ import U from '../../Core/Utilities.js';
17
17
  const { clamp, defined, extend, getNestedProperty, merge, pick } = U;
18
18
  import T from '../../Core/Templating.js';
19
19
  const { format } = T;
20
- const isNoteDefinition = (str) =>
21
- // eslint-disable-next-line require-unicode-regexp
22
- (/^([a-g][#b]?)[0-8]$/i).test(str);
20
+ const isNoteDefinition = (str) => (/^([a-g][#b]?)[0-8]$/i).test(str);
23
21
  /**
24
22
  * Get the value of a point property from string.
25
23
  * @private
@@ -0,0 +1,227 @@
1
+ /* *
2
+ *
3
+ * Highcharts module with textPath functionality.
4
+ *
5
+ * (c) 2009-2024 Torstein Honsi
6
+ *
7
+ * License: www.highcharts.com/license
8
+ *
9
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
+ *
11
+ * */
12
+ 'use strict';
13
+ import H from '../Core/Globals.js';
14
+ import U from '../Core/Utilities.js';
15
+ const { deg2rad } = H;
16
+ const { addEvent, merge, uniqueKey, defined, extend } = U;
17
+ /**
18
+ * Set a text path for a `text` or `label` element, allowing the text to
19
+ * flow along a path.
20
+ *
21
+ * In order to unset the path for an existing element, call `setTextPath`
22
+ * with `{ enabled: false }` as the second argument.
23
+ *
24
+ * Text path support is not bundled into `highcharts.js`, and requires the
25
+ * `modules/textpath.js` file. However, it is included in the script files of
26
+ * those series types that use it by default
27
+ *
28
+ * @sample highcharts/members/renderer-textpath/ Text path demonstrated
29
+ *
30
+ * @function Highcharts.SVGElement#setTextPath
31
+ *
32
+ * @param {Highcharts.SVGElement|undefined} path
33
+ * Path to follow. If undefined, it allows changing options for the
34
+ * existing path.
35
+ *
36
+ * @param {Highcharts.DataLabelsTextPathOptionsObject} textPathOptions
37
+ * Options.
38
+ *
39
+ * @return {Highcharts.SVGElement} Returns the SVGElement for chaining.
40
+ */
41
+ function setTextPath(path, textPathOptions) {
42
+ // Defaults
43
+ textPathOptions = merge(true, {
44
+ enabled: true,
45
+ attributes: {
46
+ dy: -5,
47
+ startOffset: '50%',
48
+ textAnchor: 'middle'
49
+ }
50
+ }, textPathOptions);
51
+ const url = this.renderer.url, textWrapper = this.text || this, textPath = textWrapper.textPath, { attributes, enabled } = textPathOptions;
52
+ path = path || (textPath && textPath.path);
53
+ // Remove previously added event
54
+ if (textPath) {
55
+ textPath.undo();
56
+ }
57
+ if (path && enabled) {
58
+ const undo = addEvent(textWrapper, 'afterModifyTree', (e) => {
59
+ if (path && enabled) {
60
+ // Set ID for the path
61
+ let textPathId = path.attr('id');
62
+ if (!textPathId) {
63
+ path.attr('id', textPathId = uniqueKey());
64
+ }
65
+ // Set attributes for the <text>
66
+ const textAttribs = {
67
+ // `dx`/`dy` options must by set on <text> (parent), the
68
+ // rest should be set on <textPath>
69
+ x: 0,
70
+ y: 0
71
+ };
72
+ if (defined(attributes.dx)) {
73
+ textAttribs.dx = attributes.dx;
74
+ delete attributes.dx;
75
+ }
76
+ if (defined(attributes.dy)) {
77
+ textAttribs.dy = attributes.dy;
78
+ delete attributes.dy;
79
+ }
80
+ textWrapper.attr(textAttribs);
81
+ // Handle label properties
82
+ this.attr({ transform: '' });
83
+ if (this.box) {
84
+ this.box = this.box.destroy();
85
+ }
86
+ // Wrap the nodes in a textPath
87
+ const children = e.nodes.slice(0);
88
+ e.nodes.length = 0;
89
+ e.nodes[0] = {
90
+ tagName: 'textPath',
91
+ attributes: extend(attributes, {
92
+ 'text-anchor': attributes.textAnchor,
93
+ href: `${url}#${textPathId}`
94
+ }),
95
+ children
96
+ };
97
+ }
98
+ });
99
+ // Set the reference
100
+ textWrapper.textPath = { path, undo };
101
+ }
102
+ else {
103
+ textWrapper.attr({ dx: 0, dy: 0 });
104
+ delete textWrapper.textPath;
105
+ }
106
+ if (this.added) {
107
+ // Rebuild text after added
108
+ textWrapper.textCache = '';
109
+ this.renderer.buildText(textWrapper);
110
+ }
111
+ return this;
112
+ }
113
+ /**
114
+ * Attach a polygon to a bounding box if the element contains a textPath.
115
+ *
116
+ * @function Highcharts.SVGElement#setPolygon
117
+ *
118
+ * @param {any} event
119
+ * An event containing a bounding box object
120
+ *
121
+ * @return {Highcharts.BBoxObject} Returns the bounding box object.
122
+ */
123
+ function setPolygon(event) {
124
+ const bBox = event.bBox, tp = this.element?.querySelector('textPath');
125
+ if (tp) {
126
+ const polygon = [], { b, h } = this.renderer.fontMetrics(this.element), descender = h - b, lineCleanerRegex = new RegExp('(<tspan>|' +
127
+ '<tspan(?!\\sclass="highcharts-br")[^>]*>|' +
128
+ '<\\/tspan>)', 'g'), lines = tp
129
+ .innerHTML
130
+ .replace(lineCleanerRegex, '')
131
+ .split(/<tspan class="highcharts-br"[^>]*>/), numOfLines = lines.length;
132
+ // Calculate top and bottom coordinates for
133
+ // either the start or the end of a single
134
+ // character, and append it to the polygon.
135
+ const appendTopAndBottom = (charIndex, positionOfChar) => {
136
+ const { x, y } = positionOfChar, rotation = (tp.getRotationOfChar(charIndex) - 90) * deg2rad, cosRot = Math.cos(rotation), sinRot = Math.sin(rotation);
137
+ return [
138
+ [
139
+ x - descender * cosRot,
140
+ y - descender * sinRot
141
+ ],
142
+ [
143
+ x + b * cosRot,
144
+ y + b * sinRot
145
+ ]
146
+ ];
147
+ };
148
+ for (let i = 0, lineIndex = 0; lineIndex < numOfLines; lineIndex++) {
149
+ const line = lines[lineIndex], lineLen = line.length;
150
+ for (let lineCharIndex = 0; lineCharIndex < lineLen; lineCharIndex += 5) {
151
+ try {
152
+ const srcCharIndex = (i +
153
+ lineCharIndex +
154
+ lineIndex), [lower, upper] = appendTopAndBottom(srcCharIndex, tp.getStartPositionOfChar(srcCharIndex));
155
+ if (lineCharIndex === 0) {
156
+ polygon.push(upper);
157
+ polygon.push(lower);
158
+ }
159
+ else {
160
+ if (lineIndex === 0) {
161
+ polygon.unshift(upper);
162
+ }
163
+ if (lineIndex === numOfLines - 1) {
164
+ polygon.push(lower);
165
+ }
166
+ }
167
+ }
168
+ catch (e) {
169
+ // Safari fails on getStartPositionOfChar even if the
170
+ // character is within the `textContent.length`
171
+ break;
172
+ }
173
+ }
174
+ i += lineLen - 1;
175
+ try {
176
+ const srcCharIndex = i + lineIndex, charPos = tp.getEndPositionOfChar(srcCharIndex), [lower, upper] = appendTopAndBottom(srcCharIndex, charPos);
177
+ polygon.unshift(upper);
178
+ polygon.unshift(lower);
179
+ }
180
+ catch (e) {
181
+ // Safari fails on getStartPositionOfChar even if the character
182
+ // is within the `textContent.length`
183
+ break;
184
+ }
185
+ }
186
+ // Close it
187
+ if (polygon.length) {
188
+ polygon.push(polygon[0].slice());
189
+ }
190
+ bBox.polygon = polygon;
191
+ }
192
+ return bBox;
193
+ }
194
+ /**
195
+ * Draw text along a textPath for a dataLabel.
196
+ *
197
+ * @function Highcharts.SVGElement#setTextPath
198
+ *
199
+ * @param {any} event
200
+ * An event containing label options
201
+ *
202
+ * @return {void}
203
+ */
204
+ function drawTextPath(event) {
205
+ const labelOptions = event.labelOptions, point = event.point, textPathOptions = (labelOptions[point.formatPrefix + 'TextPath'] ||
206
+ labelOptions.textPath);
207
+ if (textPathOptions && !labelOptions.useHTML) {
208
+ this.setTextPath(point.getDataLabelPath?.(this) || point.graphic, textPathOptions);
209
+ if (point.dataLabelPath &&
210
+ !textPathOptions.enabled) {
211
+ // Clean the DOM
212
+ point.dataLabelPath = (point.dataLabelPath.destroy());
213
+ }
214
+ }
215
+ }
216
+ function compose(SVGElementClass) {
217
+ addEvent(SVGElementClass, 'afterGetBBox', setPolygon);
218
+ addEvent(SVGElementClass, 'beforeAddingDataLabel', drawTextPath);
219
+ const svgElementProto = SVGElementClass.prototype;
220
+ if (!svgElementProto.setTextPath) {
221
+ svgElementProto.setTextPath = setTextPath;
222
+ }
223
+ }
224
+ const TextPath = {
225
+ compose
226
+ };
227
+ export default TextPath;
@@ -26,31 +26,12 @@ const boundsFromPath = function (path) {
26
26
  return { x1, y1, x2, y2 };
27
27
  }
28
28
  };
29
- /**
30
- * Test for point in polygon. Polygon defined as array of [x,y] points.
31
- * @private
32
- */
33
- const pointInPolygon = function ({ x, y }, polygon) {
34
- let i, j, rel1, rel2, c = false;
35
- for (i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
36
- rel1 = polygon[i][1] > y;
37
- rel2 = polygon[j][1] > y;
38
- if (rel1 !== rel2 &&
39
- (x < (polygon[j][0] - polygon[i][0]) * (y - polygon[i][1]) /
40
- (polygon[j][1] - polygon[i][1]) +
41
- polygon[i][0])) {
42
- c = !c;
43
- }
44
- }
45
- return c;
46
- };
47
29
  /* *
48
30
  *
49
31
  * Default Export
50
32
  *
51
33
  * */
52
34
  const MapUtilities = {
53
- boundsFromPath,
54
- pointInPolygon
35
+ boundsFromPath
55
36
  };
56
37
  export default MapUtilities;
@@ -12,9 +12,11 @@ import H from '../Core/Globals.js';
12
12
  const { composed } = H;
13
13
  import MapViewDefaults from './MapViewDefaults.js';
14
14
  import GeoJSONComposition from './GeoJSONComposition.js';
15
+ import GeometryUtilities from '../Core/Geometry/GeometryUtilities.js';
16
+ const { pointInPolygon } = GeometryUtilities;
15
17
  const { topo2geo } = GeoJSONComposition;
16
18
  import MU from './MapUtilities.js';
17
- const { boundsFromPath, pointInPolygon } = MU;
19
+ const { boundsFromPath } = MU;
18
20
  import Projection from './Projection.js';
19
21
  import U from '../Core/Utilities.js';
20
22
  const { addEvent, clamp, crisp, fireEvent, isArray, isNumber, isObject, isString, merge, pick, pushUnique, relativeLength } = U;
@@ -17,6 +17,9 @@ import Series from '../../Core/Series/Series.js';
17
17
  import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
18
18
  import SVGRenderer from '../../Core/Renderer/SVG/SVGRenderer.js';
19
19
  import U from '../../Core/Utilities.js';
20
+ import SVGElement from '../../Core/Renderer/SVG/SVGElement.js';
21
+ import TextPath from '../../Extensions/TextPath.js';
22
+ TextPath.compose(SVGElement);
20
23
  const { prototype: { symbols } } = SVGRenderer;
21
24
  const { seriesTypes: { column: ColumnSeries, sankey: SankeySeries } } = SeriesRegistry;
22
25
  const { crisp, extend, merge, pick, relativeLength } = U;