highcharts 10.2.1 → 10.3.1

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 (732) hide show
  1. package/bower.json +1 -1
  2. package/es-modules/Accessibility/Accessibility.js +1 -1
  3. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +9 -6
  4. package/es-modules/Accessibility/Components/LegendComponent.js +36 -32
  5. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +1 -1
  6. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +16 -16
  7. package/es-modules/Accessibility/Options/LangDefaults.js +4 -0
  8. package/es-modules/Core/Axis/Axis.js +42 -32
  9. package/es-modules/Core/Axis/Axis3DComposition.js +501 -0
  10. package/es-modules/Core/Axis/Axis3DDefaults.js +130 -0
  11. package/es-modules/Core/Axis/AxisDefaults.js +20 -7
  12. package/es-modules/Core/Axis/Color/ColorAxis.js +46 -52
  13. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +4 -2
  14. package/es-modules/Core/Axis/NavigatorAxisComposition.js +161 -0
  15. package/es-modules/Core/Axis/OrdinalAxis.js +2 -1
  16. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  17. package/es-modules/Core/Axis/RadialAxis.js +19 -5
  18. package/es-modules/Core/Axis/Tick.js +1 -1
  19. package/es-modules/Core/Axis/Tick3DComposition.js +71 -0
  20. package/es-modules/Core/Chart/Chart.js +16 -20
  21. package/es-modules/Core/Chart/Chart3D.js +4 -4
  22. package/es-modules/Core/Chart/ChartDefaults.js +33 -43
  23. package/es-modules/Core/Chart/GanttChart.js +1 -1
  24. package/es-modules/Core/Chart/MapChart.js +1 -1
  25. package/es-modules/Core/Chart/StockChart.js +11 -28
  26. package/es-modules/Core/{DefaultOptions.js → Defaults.js} +21 -37
  27. package/es-modules/Core/FormatUtilities.js +1 -1
  28. package/es-modules/Core/Globals.js +1 -1
  29. package/es-modules/Core/Legend/Legend.js +114 -110
  30. package/es-modules/Core/Legend/LegendSymbol.js +9 -6
  31. package/es-modules/Core/MSPointer.js +4 -2
  32. package/es-modules/Core/Pointer.js +125 -75
  33. package/es-modules/Core/Renderer/SVG/SVGElement.js +0 -3
  34. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +28 -14
  35. package/es-modules/Core/Series/DataLabel.js +8 -5
  36. package/es-modules/Core/Series/Point.js +38 -22
  37. package/es-modules/Core/Series/Series.js +12 -9
  38. package/es-modules/Core/Series/SeriesDefaults.js +36 -24
  39. package/es-modules/Core/Series/SeriesRegistry.js +2 -2
  40. package/es-modules/Core/Time.js +6 -5
  41. package/es-modules/Core/Tooltip.js +6 -28
  42. package/es-modules/Core/Utilities.js +6 -8
  43. package/es-modules/Extensions/Annotations/Annotation.js +1 -1
  44. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +13 -8
  45. package/es-modules/Extensions/Annotations/MockPoint.js +2 -1
  46. package/es-modules/Extensions/Annotations/NavigationBindings.js +4 -5
  47. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
  48. package/es-modules/Extensions/Annotations/Popup/Popup.js +2 -2
  49. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -4
  50. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
  51. package/es-modules/Extensions/Boost/BoostSeries.js +11 -8
  52. package/es-modules/Extensions/Breadcrumbs.js +2 -2
  53. package/es-modules/Extensions/Data.js +2 -2
  54. package/es-modules/Extensions/DataGrouping/ApproximationDefaults.js +157 -0
  55. package/es-modules/Extensions/DataGrouping/ApproximationRegistry.js +35 -0
  56. package/es-modules/Extensions/DataGrouping/DataGrouping.js +469 -0
  57. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +174 -0
  58. package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +143 -0
  59. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +479 -0
  60. package/es-modules/Extensions/Debugger/Debugger.js +1 -1
  61. package/es-modules/Extensions/DraggablePoints.js +6 -2
  62. package/es-modules/Extensions/Drilldown.js +3 -5
  63. package/es-modules/Extensions/ExportData/ExportData.js +31 -5
  64. package/es-modules/Extensions/Exporting/Exporting.js +47 -60
  65. package/es-modules/Extensions/Exporting/ExportingDefaults.js +22 -24
  66. package/es-modules/Extensions/GeoJSON.js +3 -1
  67. package/es-modules/Extensions/MarkerClusters.js +1 -1
  68. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  69. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +5 -5
  70. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  71. package/es-modules/Extensions/Oldie/Oldie.js +3 -3
  72. package/es-modules/Extensions/Oldie/VMLRenderer3D.js +1 -1
  73. package/es-modules/Extensions/OldiePolyfills.js +3 -1
  74. package/es-modules/Extensions/Pane.js +42 -5
  75. package/es-modules/Extensions/ParallelCoordinates.js +5 -1
  76. package/es-modules/Extensions/PatternFill.js +10 -10
  77. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
  78. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +4 -0
  79. package/es-modules/Extensions/Sonification/Sonification.js +1 -1
  80. package/es-modules/Extensions/Themes/Avocado.js +1 -1
  81. package/es-modules/Extensions/Themes/BrandDark.js +1 -1
  82. package/es-modules/Extensions/Themes/BrandLight.js +1 -1
  83. package/es-modules/Extensions/Themes/DarkBlue.js +1 -1
  84. package/es-modules/Extensions/Themes/DarkGreen.js +1 -1
  85. package/es-modules/Extensions/Themes/DarkUnica.js +1 -1
  86. package/es-modules/Extensions/Themes/Gray.js +1 -1
  87. package/es-modules/Extensions/Themes/Grid.js +1 -1
  88. package/es-modules/Extensions/Themes/GridLight.js +1 -1
  89. package/es-modules/Extensions/Themes/HighContrastDark.js +1 -1
  90. package/es-modules/Extensions/Themes/HighContrastLight.js +1 -1
  91. package/es-modules/Extensions/Themes/SandSignika.js +1 -1
  92. package/es-modules/Extensions/Themes/Skies.js +1 -1
  93. package/es-modules/Extensions/Themes/Sunset.js +1 -1
  94. package/es-modules/Gantt/Connection.js +5 -5
  95. package/es-modules/Gantt/Pathfinder.js +6 -6
  96. package/es-modules/Maps/MapNavigation.js +1 -1
  97. package/es-modules/Maps/{MapNavigationOptionsDefault.js → MapNavigationDefaults.js} +4 -4
  98. package/es-modules/Maps/MapViewOptionsDefault.js +4 -4
  99. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -5
  100. package/es-modules/Series/AreaRange/AreaRangePoint.js +6 -10
  101. package/es-modules/Series/AreaRange/AreaRangeSeries.js +59 -48
  102. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -1
  103. package/es-modules/Series/Bubble/BubbleLegendComposition.js +22 -16
  104. package/es-modules/Series/Bubble/BubbleLegendItem.js +17 -21
  105. package/es-modules/Series/Candlestick/CandlestickSeries.js +15 -175
  106. package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +179 -0
  107. package/es-modules/Series/Column/ColumnSeries.js +25 -506
  108. package/es-modules/Series/Column/ColumnSeriesDefaults.js +487 -0
  109. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +40 -36
  110. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -106
  111. package/es-modules/Series/DependencyWheel/DependencyWheelSeriesDefaults.js +183 -0
  112. package/es-modules/Series/DotPlot/DotPlotSeries.js +11 -12
  113. package/es-modules/Series/DrawPointUtilities.js +2 -14
  114. package/es-modules/Series/Dumbbell/DumbbellPoint.js +5 -4
  115. package/es-modules/Series/Dumbbell/DumbbellSeries.js +11 -7
  116. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +19 -136
  117. package/es-modules/Series/ErrorBar/ErrorBarSeriesDefaults.js +147 -0
  118. package/es-modules/Series/Flags/FlagsPoint.js +2 -3
  119. package/es-modules/Series/Flags/FlagsSeries.js +31 -298
  120. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +295 -0
  121. package/es-modules/Series/Flags/FlagsSymbols.js +96 -71
  122. package/es-modules/Series/HLC/HLCPoint.js +2 -2
  123. package/es-modules/Series/HLC/HLCSeries.js +7 -172
  124. package/es-modules/Series/HLC/HLCSeriesDefaults.js +184 -0
  125. package/es-modules/Series/Heatmap/HeatmapSeries.js +3 -0
  126. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -20
  127. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +78 -139
  128. package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +102 -0
  129. package/es-modules/Series/Item/ItemPoint.js +0 -1
  130. package/es-modules/Series/Item/ItemSeries.js +13 -8
  131. package/es-modules/Series/Line/LineSeries.js +8 -4
  132. package/es-modules/Series/Map/MapPoint.js +19 -1
  133. package/es-modules/Series/Map/MapSeries.js +7 -3
  134. package/es-modules/Series/MapBubble/MapBubbleSeries.js +4 -0
  135. package/es-modules/Series/MapPoint/MapPointPoint.js +0 -5
  136. package/es-modules/Series/MapPoint/MapPointSeries.js +24 -9
  137. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +2 -5
  138. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +2 -0
  139. package/es-modules/Series/OHLC/OHLCPoint.js +0 -2
  140. package/es-modules/Series/OHLC/OHLCSeries.js +64 -160
  141. package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +151 -0
  142. package/es-modules/Series/Organization/OrganizationPoint.js +0 -2
  143. package/es-modules/Series/Organization/OrganizationSeries.js +96 -469
  144. package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +415 -0
  145. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -10
  146. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +2 -0
  147. package/es-modules/Series/PathUtilities.js +74 -0
  148. package/es-modules/Series/Pie/PieSeries.js +2 -644
  149. package/es-modules/Series/Pie/PieSeriesDefaults.js +660 -0
  150. package/es-modules/Series/PolarComposition.js +233 -15
  151. package/es-modules/Series/Sankey/SankeySeries.js +27 -530
  152. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +522 -0
  153. package/es-modules/Series/Scatter/ScatterSeries.js +2 -172
  154. package/es-modules/Series/Scatter/ScatterSeriesDefaults.js +188 -0
  155. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +12 -182
  156. package/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +199 -0
  157. package/es-modules/Series/Sunburst/SunburstNode.js +34 -0
  158. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -1
  159. package/es-modules/Series/Sunburst/SunburstSeries.js +3 -1
  160. package/es-modules/Series/Timeline/TimelineSeries.js +2 -231
  161. package/es-modules/Series/Timeline/TimelineSeriesDefaults.js +248 -0
  162. package/es-modules/Series/TreeUtilities.js +1 -2
  163. package/es-modules/Series/Treegraph/TreegraphLayout.js +338 -0
  164. package/es-modules/Series/Treegraph/TreegraphLink.js +92 -0
  165. package/es-modules/Series/Treegraph/TreegraphNode.js +206 -0
  166. package/es-modules/Series/Treegraph/TreegraphPoint.js +175 -0
  167. package/es-modules/Series/Treegraph/TreegraphSeries.js +510 -0
  168. package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +231 -0
  169. package/es-modules/Series/Treemap/TreemapNode.js +48 -0
  170. package/es-modules/Series/Treemap/TreemapPoint.js +2 -1
  171. package/es-modules/Series/Treemap/TreemapSeries.js +29 -27
  172. package/es-modules/Series/Variwide/VariwideComposition.js +70 -26
  173. package/es-modules/Series/Variwide/VariwidePoint.js +8 -7
  174. package/es-modules/Series/Variwide/VariwideSeries.js +19 -14
  175. package/es-modules/Series/Vector/VectorSeries.js +2 -2
  176. package/es-modules/Series/Venn/VennSeries.js +14 -0
  177. package/es-modules/Series/Waterfall/WaterfallSeries.js +0 -1
  178. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -2
  179. package/es-modules/Series/Wordcloud/WordcloudSeries.js +3 -0
  180. package/es-modules/Stock/Indicators/AO/AOIndicator.js +1 -2
  181. package/es-modules/Stock/Indicators/BB/BBIndicator.js +15 -4
  182. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +21 -18
  183. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +1 -2
  184. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
  185. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +1 -1
  186. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +0 -1
  187. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +3 -4
  188. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +1 -2
  189. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +6 -7
  190. package/es-modules/{Core → Stock/Navigator}/Navigator.js +112 -686
  191. package/es-modules/Stock/Navigator/NavigatorComposition.js +218 -0
  192. package/es-modules/Stock/Navigator/NavigatorDefaults.js +490 -0
  193. package/es-modules/Stock/Navigator/NavigatorSymbols.js +44 -0
  194. package/es-modules/{Extensions → Stock/RangeSelector}/RangeSelector.js +154 -818
  195. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +286 -0
  196. package/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +521 -0
  197. package/es-modules/{Core → Stock/Scrollbar}/Scrollbar.js +4 -4
  198. package/es-modules/{Core → Stock/Scrollbar}/ScrollbarDefaults.js +1 -1
  199. package/es-modules/Stock/{StockToolbar.js → StockTools/StockToolbar.js} +2 -2
  200. package/es-modules/Stock/{StockTools.js → StockTools/StockTools.js} +3 -3
  201. package/es-modules/Stock/{StockToolsBindings.js → StockTools/StockToolsBindings.js} +3 -3
  202. package/es-modules/Stock/{StockToolsDefaults.js → StockTools/StockToolsDefaults.js} +4 -4
  203. package/es-modules/Stock/{StockToolsGui.js → StockTools/StockToolsGui.js} +4 -4
  204. package/es-modules/Stock/{StockToolsUtilities.js → StockTools/StockToolsUtilities.js} +4 -4
  205. package/es-modules/masters/highcharts-3d.src.js +3 -5
  206. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  207. package/es-modules/masters/highcharts-more.src.js +1 -1
  208. package/es-modules/masters/highcharts.src.js +6 -6
  209. package/es-modules/masters/highmaps.src.js +1 -1
  210. package/es-modules/masters/highstock.src.js +1 -1
  211. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  212. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  213. package/es-modules/masters/indicators/ao.src.js +1 -1
  214. package/es-modules/masters/indicators/apo.src.js +1 -1
  215. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  216. package/es-modules/masters/indicators/aroon.src.js +1 -1
  217. package/es-modules/masters/indicators/atr.src.js +1 -1
  218. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  219. package/es-modules/masters/indicators/cci.src.js +1 -1
  220. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  221. package/es-modules/masters/indicators/cmf.src.js +1 -1
  222. package/es-modules/masters/indicators/cmo.src.js +1 -1
  223. package/es-modules/masters/indicators/dema.src.js +1 -1
  224. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  225. package/es-modules/masters/indicators/dmi.src.js +1 -1
  226. package/es-modules/masters/indicators/dpo.src.js +1 -1
  227. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  228. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  229. package/es-modules/masters/indicators/indicators.src.js +1 -1
  230. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  231. package/es-modules/masters/indicators/klinger.src.js +1 -1
  232. package/es-modules/masters/indicators/macd.src.js +1 -1
  233. package/es-modules/masters/indicators/mfi.src.js +1 -1
  234. package/es-modules/masters/indicators/momentum.src.js +1 -1
  235. package/es-modules/masters/indicators/natr.src.js +1 -1
  236. package/es-modules/masters/indicators/obv.src.js +1 -1
  237. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  238. package/es-modules/masters/indicators/ppo.src.js +1 -1
  239. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  240. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  241. package/es-modules/masters/indicators/psar.src.js +1 -1
  242. package/es-modules/masters/indicators/regressions.src.js +1 -1
  243. package/es-modules/masters/indicators/roc.src.js +1 -1
  244. package/es-modules/masters/indicators/rsi.src.js +1 -1
  245. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  246. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  247. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  248. package/es-modules/masters/indicators/tema.src.js +1 -1
  249. package/es-modules/masters/indicators/trendline.src.js +1 -1
  250. package/es-modules/masters/indicators/trix.src.js +1 -1
  251. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  252. package/es-modules/masters/indicators/vwap.src.js +1 -1
  253. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  254. package/es-modules/masters/indicators/wma.src.js +1 -1
  255. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  256. package/es-modules/masters/modules/accessibility.src.js +1 -1
  257. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  258. package/es-modules/masters/modules/annotations.src.js +1 -1
  259. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  260. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  261. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  262. package/es-modules/masters/modules/boost.src.js +1 -1
  263. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  264. package/es-modules/masters/modules/bullet.src.js +1 -1
  265. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  266. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  267. package/es-modules/masters/modules/cylinder.src.js +1 -1
  268. package/es-modules/masters/modules/data.src.js +1 -1
  269. package/es-modules/masters/modules/datagrouping.src.js +11 -3
  270. package/es-modules/masters/modules/debugger.src.js +1 -1
  271. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  272. package/es-modules/masters/modules/dotplot.src.js +1 -1
  273. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  274. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  275. package/es-modules/masters/modules/drilldown.src.js +1 -1
  276. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  277. package/es-modules/masters/modules/export-data.src.js +1 -1
  278. package/es-modules/masters/modules/exporting.src.js +1 -1
  279. package/es-modules/masters/modules/full-screen.src.js +1 -1
  280. package/es-modules/masters/modules/funnel.src.js +1 -1
  281. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  282. package/es-modules/masters/modules/gantt.src.js +9 -5
  283. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  284. package/es-modules/masters/modules/heatmap.src.js +1 -1
  285. package/es-modules/masters/modules/heikinashi.src.js +5 -2
  286. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  287. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  288. package/es-modules/masters/modules/item-series.src.js +1 -1
  289. package/es-modules/masters/modules/lollipop.src.js +1 -1
  290. package/es-modules/masters/modules/map.src.js +1 -1
  291. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  292. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  293. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  294. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  295. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  296. package/es-modules/masters/modules/oldie.src.js +1 -1
  297. package/es-modules/masters/modules/organization.src.js +1 -1
  298. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  299. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  300. package/es-modules/masters/modules/pareto.src.js +1 -1
  301. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  302. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  303. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  304. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  305. package/es-modules/masters/modules/sankey.src.js +1 -1
  306. package/es-modules/masters/modules/series-label.src.js +1 -1
  307. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  308. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  309. package/es-modules/masters/modules/sonification.src.js +1 -1
  310. package/es-modules/masters/modules/static-scale.src.js +1 -1
  311. package/es-modules/masters/modules/stock-tools.src.js +4 -4
  312. package/es-modules/masters/modules/stock.src.js +17 -11
  313. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  314. package/es-modules/masters/modules/sunburst.src.js +1 -1
  315. package/es-modules/masters/modules/tilemap.src.js +1 -1
  316. package/es-modules/masters/modules/timeline.src.js +1 -1
  317. package/es-modules/masters/modules/treegraph.src.js +13 -0
  318. package/es-modules/masters/modules/treegrid.src.js +1 -1
  319. package/es-modules/masters/modules/treemap.src.js +1 -1
  320. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  321. package/es-modules/masters/modules/variwide.src.js +5 -2
  322. package/es-modules/masters/modules/vector.src.js +1 -1
  323. package/es-modules/masters/modules/venn.src.js +1 -1
  324. package/es-modules/masters/modules/windbarb.src.js +1 -1
  325. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  326. package/es-modules/masters/modules/xrange.src.js +1 -1
  327. package/es-modules/masters/themes/avocado.src.js +1 -1
  328. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  329. package/es-modules/masters/themes/brand-light.src.js +1 -1
  330. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  331. package/es-modules/masters/themes/dark-green.src.js +1 -1
  332. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  333. package/es-modules/masters/themes/gray.src.js +1 -1
  334. package/es-modules/masters/themes/grid-light.src.js +1 -1
  335. package/es-modules/masters/themes/grid.src.js +1 -1
  336. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  337. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  338. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  339. package/es-modules/masters/themes/skies.src.js +1 -1
  340. package/es-modules/masters/themes/sunset.src.js +1 -1
  341. package/highcharts-3d.js +97 -98
  342. package/highcharts-3d.js.map +1 -1
  343. package/highcharts-3d.src.js +476 -449
  344. package/highcharts-gantt.js +811 -808
  345. package/highcharts-gantt.js.map +1 -1
  346. package/highcharts-gantt.src.js +14619 -14112
  347. package/highcharts-more.d.ts +0 -8
  348. package/highcharts-more.js +208 -201
  349. package/highcharts-more.js.map +1 -1
  350. package/highcharts-more.src.d.ts +0 -8
  351. package/highcharts-more.src.js +679 -289
  352. package/highcharts.d.ts +30739 -6156
  353. package/highcharts.js +590 -589
  354. package/highcharts.js.map +1 -1
  355. package/highcharts.src.d.ts +30739 -6156
  356. package/highcharts.src.js +1988 -1799
  357. package/highmaps.js +759 -757
  358. package/highmaps.js.map +1 -1
  359. package/highmaps.src.js +2339 -2077
  360. package/highstock.js +802 -794
  361. package/highstock.js.map +1 -1
  362. package/highstock.src.js +12349 -11416
  363. package/indicators/acceleration-bands.js +1 -1
  364. package/indicators/acceleration-bands.src.js +1 -1
  365. package/indicators/accumulation-distribution.js +1 -1
  366. package/indicators/accumulation-distribution.src.js +1 -1
  367. package/indicators/ao.js +6 -6
  368. package/indicators/ao.js.map +1 -1
  369. package/indicators/ao.src.js +4 -3
  370. package/indicators/apo.js +1 -1
  371. package/indicators/apo.src.js +1 -1
  372. package/indicators/aroon-oscillator.js +1 -1
  373. package/indicators/aroon-oscillator.src.js +1 -1
  374. package/indicators/aroon.js +1 -1
  375. package/indicators/aroon.src.js +1 -1
  376. package/indicators/atr.js +1 -1
  377. package/indicators/atr.src.js +1 -1
  378. package/indicators/bollinger-bands.js +1 -1
  379. package/indicators/bollinger-bands.js.map +1 -1
  380. package/indicators/bollinger-bands.src.js +16 -5
  381. package/indicators/cci.js +1 -1
  382. package/indicators/cci.src.js +1 -1
  383. package/indicators/chaikin.js +1 -1
  384. package/indicators/chaikin.src.js +1 -1
  385. package/indicators/cmf.js +1 -1
  386. package/indicators/cmf.src.js +1 -1
  387. package/indicators/cmo.d.ts +17 -0
  388. package/indicators/cmo.js +1 -1
  389. package/indicators/cmo.src.d.ts +17 -0
  390. package/indicators/cmo.src.js +1 -1
  391. package/indicators/dema.js +1 -1
  392. package/indicators/dema.src.js +1 -1
  393. package/indicators/disparity-index.d.ts +17 -0
  394. package/indicators/disparity-index.js +1 -1
  395. package/indicators/disparity-index.src.d.ts +17 -0
  396. package/indicators/disparity-index.src.js +1 -1
  397. package/indicators/dmi.d.ts +17 -0
  398. package/indicators/dmi.js +1 -1
  399. package/indicators/dmi.src.d.ts +17 -0
  400. package/indicators/dmi.src.js +1 -1
  401. package/indicators/dpo.js +1 -1
  402. package/indicators/dpo.src.js +1 -1
  403. package/indicators/ichimoku-kinko-hyo.js +14 -14
  404. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  405. package/indicators/ichimoku-kinko-hyo.src.js +22 -19
  406. package/indicators/indicators-all.js +198 -199
  407. package/indicators/indicators-all.js.map +1 -1
  408. package/indicators/indicators-all.src.js +63 -57
  409. package/indicators/indicators.js +13 -13
  410. package/indicators/indicators.js.map +1 -1
  411. package/indicators/indicators.src.js +1 -15
  412. package/indicators/keltner-channels.js +1 -1
  413. package/indicators/keltner-channels.src.js +1 -1
  414. package/indicators/klinger.d.ts +17 -0
  415. package/indicators/klinger.js +12 -12
  416. package/indicators/klinger.js.map +1 -1
  417. package/indicators/klinger.src.d.ts +17 -0
  418. package/indicators/klinger.src.js +4 -3
  419. package/indicators/macd.js +1 -1
  420. package/indicators/macd.js.map +1 -1
  421. package/indicators/macd.src.js +4 -3
  422. package/indicators/mfi.js +1 -1
  423. package/indicators/mfi.src.js +1 -1
  424. package/indicators/momentum.js +1 -1
  425. package/indicators/momentum.src.js +1 -1
  426. package/indicators/natr.js +1 -1
  427. package/indicators/natr.src.js +1 -1
  428. package/indicators/obv.d.ts +17 -0
  429. package/indicators/obv.js +1 -1
  430. package/indicators/obv.src.d.ts +17 -0
  431. package/indicators/obv.src.js +1 -1
  432. package/indicators/pivot-points.js +2 -2
  433. package/indicators/pivot-points.js.map +1 -1
  434. package/indicators/pivot-points.src.js +2 -2
  435. package/indicators/ppo.js +1 -1
  436. package/indicators/ppo.src.js +1 -1
  437. package/indicators/price-channel.js +1 -1
  438. package/indicators/price-channel.src.js +1 -1
  439. package/indicators/price-envelopes.js +1 -1
  440. package/indicators/price-envelopes.src.js +1 -1
  441. package/indicators/psar.js +1 -1
  442. package/indicators/psar.src.js +1 -1
  443. package/indicators/regressions.js +1 -1
  444. package/indicators/regressions.src.js +1 -1
  445. package/indicators/roc.js +1 -1
  446. package/indicators/roc.src.js +1 -1
  447. package/indicators/rsi.js +1 -1
  448. package/indicators/rsi.src.js +1 -1
  449. package/indicators/slow-stochastic.js +5 -5
  450. package/indicators/slow-stochastic.js.map +1 -1
  451. package/indicators/slow-stochastic.src.js +6 -5
  452. package/indicators/stochastic.js +1 -1
  453. package/indicators/stochastic.src.js +1 -1
  454. package/indicators/supertrend.js +7 -7
  455. package/indicators/supertrend.js.map +1 -1
  456. package/indicators/supertrend.src.js +4 -3
  457. package/indicators/tema.js +1 -1
  458. package/indicators/tema.src.js +1 -1
  459. package/indicators/trendline.js +1 -1
  460. package/indicators/trendline.src.js +1 -1
  461. package/indicators/trix.js +1 -1
  462. package/indicators/trix.src.js +1 -1
  463. package/indicators/volume-by-price.js +17 -17
  464. package/indicators/volume-by-price.js.map +1 -1
  465. package/indicators/volume-by-price.src.js +9 -8
  466. package/indicators/vwap.js +1 -1
  467. package/indicators/vwap.src.js +1 -1
  468. package/indicators/williams-r.js +1 -1
  469. package/indicators/williams-r.src.js +1 -1
  470. package/indicators/wma.js +1 -1
  471. package/indicators/wma.src.js +1 -1
  472. package/indicators/zigzag.js +1 -1
  473. package/indicators/zigzag.src.js +1 -1
  474. package/modules/accessibility.js +214 -213
  475. package/modules/accessibility.js.map +1 -1
  476. package/modules/accessibility.src.js +991 -835
  477. package/modules/annotations-advanced.js +16 -16
  478. package/modules/annotations-advanced.js.map +1 -1
  479. package/modules/annotations-advanced.src.js +29 -24
  480. package/modules/annotations.js +91 -91
  481. package/modules/annotations.js.map +1 -1
  482. package/modules/annotations.src.js +29 -24
  483. package/modules/arc-diagram.d.ts +17 -0
  484. package/modules/arc-diagram.js +15 -15
  485. package/modules/arc-diagram.js.map +1 -1
  486. package/modules/arc-diagram.src.d.ts +17 -0
  487. package/modules/arc-diagram.src.js +6 -6
  488. package/modules/arrow-symbols.js +1 -1
  489. package/modules/arrow-symbols.src.js +1 -1
  490. package/modules/boost-canvas.js +19 -19
  491. package/modules/boost-canvas.js.map +1 -1
  492. package/modules/boost-canvas.src.js +13 -8
  493. package/modules/boost.js +37 -37
  494. package/modules/boost.js.map +1 -1
  495. package/modules/boost.src.js +13 -8
  496. package/modules/broken-axis.js +1 -1
  497. package/modules/broken-axis.src.js +1 -1
  498. package/modules/bullet.js +1 -1
  499. package/modules/bullet.src.js +1 -1
  500. package/modules/coloraxis.js +25 -24
  501. package/modules/coloraxis.js.map +1 -1
  502. package/modules/coloraxis.src.js +77 -58
  503. package/modules/current-date-indicator.js +1 -1
  504. package/modules/current-date-indicator.src.js +1 -1
  505. package/modules/cylinder.js +1 -1
  506. package/modules/cylinder.src.js +1 -1
  507. package/modules/data.js +27 -27
  508. package/modules/data.js.map +1 -1
  509. package/modules/data.src.js +3 -3
  510. package/modules/datagrouping.d.ts +31 -0
  511. package/modules/datagrouping.js +23 -21
  512. package/modules/datagrouping.js.map +1 -1
  513. package/modules/datagrouping.src.d.ts +31 -0
  514. package/modules/datagrouping.src.js +921 -640
  515. package/modules/debugger.js +3 -3
  516. package/modules/debugger.js.map +1 -1
  517. package/modules/debugger.src.js +2 -2
  518. package/modules/dependency-wheel.js +12 -12
  519. package/modules/dependency-wheel.js.map +1 -1
  520. package/modules/dependency-wheel.src.js +191 -108
  521. package/modules/dotplot.js +6 -6
  522. package/modules/dotplot.js.map +1 -1
  523. package/modules/dotplot.src.js +10 -13
  524. package/modules/drag-panes.js +1 -1
  525. package/modules/drag-panes.src.js +1 -1
  526. package/modules/draggable-points.js +5 -5
  527. package/modules/draggable-points.js.map +1 -1
  528. package/modules/draggable-points.src.js +7 -3
  529. package/modules/drilldown.js +37 -37
  530. package/modules/drilldown.js.map +1 -1
  531. package/modules/drilldown.src.js +5 -6
  532. package/modules/dumbbell.js +17 -17
  533. package/modules/dumbbell.js.map +1 -1
  534. package/modules/dumbbell.src.js +27 -22
  535. package/modules/export-data.js +26 -25
  536. package/modules/export-data.js.map +1 -1
  537. package/modules/export-data.src.js +33 -6
  538. package/modules/exporting.js +36 -35
  539. package/modules/exporting.js.map +1 -1
  540. package/modules/exporting.src.js +81 -88
  541. package/modules/full-screen.js +1 -1
  542. package/modules/full-screen.src.js +1 -1
  543. package/modules/funnel.js +1 -1
  544. package/modules/funnel.src.js +1 -1
  545. package/modules/funnel3d.js +1 -1
  546. package/modules/funnel3d.src.js +1 -1
  547. package/modules/gantt.js +221 -219
  548. package/modules/gantt.js.map +1 -1
  549. package/modules/gantt.src.js +12842 -12524
  550. package/modules/grid-axis.js +1 -1
  551. package/modules/grid-axis.src.js +1 -1
  552. package/modules/heatmap.js +40 -40
  553. package/modules/heatmap.js.map +1 -1
  554. package/modules/heatmap.src.js +80 -58
  555. package/modules/heikinashi.d.ts +17 -0
  556. package/modules/heikinashi.js +9 -8
  557. package/modules/heikinashi.js.map +1 -1
  558. package/modules/heikinashi.src.d.ts +17 -0
  559. package/modules/heikinashi.src.js +192 -165
  560. package/modules/histogram-bellcurve.js +1 -1
  561. package/modules/histogram-bellcurve.src.js +1 -1
  562. package/modules/hollowcandlestick.d.ts +17 -0
  563. package/modules/hollowcandlestick.js +1 -1
  564. package/modules/hollowcandlestick.src.d.ts +17 -0
  565. package/modules/hollowcandlestick.src.js +1 -1
  566. package/modules/item-series.js +12 -12
  567. package/modules/item-series.js.map +1 -1
  568. package/modules/item-series.src.js +14 -10
  569. package/modules/lollipop.js +1 -1
  570. package/modules/lollipop.src.js +1 -1
  571. package/modules/map.js +172 -171
  572. package/modules/map.js.map +1 -1
  573. package/modules/map.src.js +194 -121
  574. package/modules/marker-clusters.js +2 -2
  575. package/modules/marker-clusters.js.map +1 -1
  576. package/modules/marker-clusters.src.js +2 -2
  577. package/modules/networkgraph.js +8 -8
  578. package/modules/networkgraph.js.map +1 -1
  579. package/modules/networkgraph.src.js +5 -6
  580. package/modules/no-data-to-display.js +4 -4
  581. package/modules/no-data-to-display.js.map +1 -1
  582. package/modules/no-data-to-display.src.js +2 -2
  583. package/modules/offline-exporting.js +4 -4
  584. package/modules/offline-exporting.js.map +1 -1
  585. package/modules/offline-exporting.src.js +7 -7
  586. package/modules/oldie-polyfills.js +7 -7
  587. package/modules/oldie-polyfills.js.map +1 -1
  588. package/modules/oldie-polyfills.src.js +9 -7
  589. package/modules/oldie.js +30 -30
  590. package/modules/oldie.js.map +1 -1
  591. package/modules/oldie.src.js +5 -5
  592. package/modules/organization.js +18 -16
  593. package/modules/organization.js.map +1 -1
  594. package/modules/organization.src.js +659 -495
  595. package/modules/overlapping-datalabels.js +1 -1
  596. package/modules/overlapping-datalabels.src.js +1 -1
  597. package/modules/parallel-coordinates.js +10 -10
  598. package/modules/parallel-coordinates.js.map +1 -1
  599. package/modules/parallel-coordinates.src.js +6 -2
  600. package/modules/pareto.js +1 -1
  601. package/modules/pareto.src.js +1 -1
  602. package/modules/pathfinder.js +31 -31
  603. package/modules/pathfinder.js.map +1 -1
  604. package/modules/pathfinder.src.js +19 -23
  605. package/modules/pattern-fill.js +2 -2
  606. package/modules/pattern-fill.js.map +1 -1
  607. package/modules/pattern-fill.src.js +11 -11
  608. package/modules/price-indicator.js +1 -1
  609. package/modules/price-indicator.src.js +1 -1
  610. package/modules/pyramid3d.js +1 -1
  611. package/modules/pyramid3d.src.js +1 -1
  612. package/modules/sankey.js +33 -32
  613. package/modules/sankey.js.map +1 -1
  614. package/modules/sankey.src.js +571 -550
  615. package/modules/series-label.js +17 -17
  616. package/modules/series-label.js.map +1 -1
  617. package/modules/series-label.src.js +7 -3
  618. package/modules/series-on-point.d.ts +17 -0
  619. package/modules/series-on-point.js +1 -1
  620. package/modules/series-on-point.src.d.ts +17 -0
  621. package/modules/series-on-point.src.js +1 -1
  622. package/modules/solid-gauge.js +11 -10
  623. package/modules/solid-gauge.js.map +1 -1
  624. package/modules/solid-gauge.src.js +220 -192
  625. package/modules/sonification.js +2 -2
  626. package/modules/sonification.js.map +1 -1
  627. package/modules/sonification.src.js +2 -2
  628. package/modules/static-scale.js +1 -1
  629. package/modules/static-scale.src.js +1 -1
  630. package/modules/stock-tools.js +59 -59
  631. package/modules/stock-tools.js.map +1 -1
  632. package/modules/stock-tools.src.js +19 -21
  633. package/modules/stock.d.ts +26 -6
  634. package/modules/stock.js +212 -205
  635. package/modules/stock.js.map +1 -1
  636. package/modules/stock.src.d.ts +26 -6
  637. package/modules/stock.src.js +11361 -10617
  638. package/modules/streamgraph.js +1 -1
  639. package/modules/streamgraph.src.js +1 -1
  640. package/modules/sunburst.js +75 -73
  641. package/modules/sunburst.js.map +1 -1
  642. package/modules/sunburst.src.js +133 -57
  643. package/modules/tilemap.js +1 -1
  644. package/modules/tilemap.src.js +1 -1
  645. package/modules/timeline.js +18 -18
  646. package/modules/timeline.js.map +1 -1
  647. package/modules/timeline.src.js +257 -233
  648. package/modules/treegraph.d.ts +17 -0
  649. package/modules/treegraph.js +44 -0
  650. package/modules/treegraph.js.map +1 -0
  651. package/modules/treegraph.src.d.ts +17 -0
  652. package/modules/treegraph.src.js +1829 -0
  653. package/modules/treegrid.js +2 -2
  654. package/modules/treegrid.js.map +1 -1
  655. package/modules/treegrid.src.js +2 -3
  656. package/modules/treemap.js +54 -53
  657. package/modules/treemap.js.map +1 -1
  658. package/modules/treemap.src.js +90 -52
  659. package/modules/variable-pie.js +1 -1
  660. package/modules/variable-pie.src.js +1 -1
  661. package/modules/variwide.js +12 -12
  662. package/modules/variwide.js.map +1 -1
  663. package/modules/variwide.src.js +158 -106
  664. package/modules/vector.js +1 -1
  665. package/modules/vector.src.js +3 -3
  666. package/modules/venn.js +31 -31
  667. package/modules/venn.js.map +1 -1
  668. package/modules/venn.src.js +17 -16
  669. package/modules/windbarb.js +15 -15
  670. package/modules/windbarb.js.map +1 -1
  671. package/modules/windbarb.src.js +41 -4
  672. package/modules/wordcloud.js +23 -23
  673. package/modules/wordcloud.js.map +1 -1
  674. package/modules/wordcloud.src.js +6 -15
  675. package/modules/xrange.js +1 -1
  676. package/modules/xrange.src.js +1 -1
  677. package/package.json +1 -1
  678. package/themes/avocado.js +2 -3
  679. package/themes/avocado.js.map +1 -1
  680. package/themes/avocado.src.js +2 -2
  681. package/themes/brand-dark.d.ts +22 -0
  682. package/themes/brand-dark.js +3 -3
  683. package/themes/brand-dark.js.map +1 -1
  684. package/themes/brand-dark.src.d.ts +22 -0
  685. package/themes/brand-dark.src.js +2 -2
  686. package/themes/brand-light.d.ts +22 -0
  687. package/themes/brand-light.js +2 -2
  688. package/themes/brand-light.js.map +1 -1
  689. package/themes/brand-light.src.d.ts +22 -0
  690. package/themes/brand-light.src.js +2 -2
  691. package/themes/dark-blue.js +2 -2
  692. package/themes/dark-blue.js.map +1 -1
  693. package/themes/dark-blue.src.js +2 -2
  694. package/themes/dark-green.js +2 -2
  695. package/themes/dark-green.js.map +1 -1
  696. package/themes/dark-green.src.js +2 -2
  697. package/themes/dark-unica.js +2 -2
  698. package/themes/dark-unica.js.map +1 -1
  699. package/themes/dark-unica.src.js +2 -2
  700. package/themes/gray.js +2 -2
  701. package/themes/gray.js.map +1 -1
  702. package/themes/gray.src.js +2 -2
  703. package/themes/grid-light.js +2 -2
  704. package/themes/grid-light.js.map +1 -1
  705. package/themes/grid-light.src.js +2 -2
  706. package/themes/grid.js +2 -2
  707. package/themes/grid.js.map +1 -1
  708. package/themes/grid.src.js +2 -2
  709. package/themes/high-contrast-dark.d.ts +22 -0
  710. package/themes/high-contrast-dark.js +2 -2
  711. package/themes/high-contrast-dark.js.map +1 -1
  712. package/themes/high-contrast-dark.src.d.ts +22 -0
  713. package/themes/high-contrast-dark.src.js +2 -2
  714. package/themes/high-contrast-light.d.ts +22 -0
  715. package/themes/high-contrast-light.js +2 -2
  716. package/themes/high-contrast-light.js.map +1 -1
  717. package/themes/high-contrast-light.src.d.ts +22 -0
  718. package/themes/high-contrast-light.src.js +2 -2
  719. package/themes/sand-signika.js +2 -2
  720. package/themes/sand-signika.js.map +1 -1
  721. package/themes/sand-signika.src.js +2 -2
  722. package/themes/skies.js +2 -2
  723. package/themes/skies.js.map +1 -1
  724. package/themes/skies.src.js +2 -2
  725. package/themes/sunset.js +2 -2
  726. package/themes/sunset.js.map +1 -1
  727. package/themes/sunset.src.js +2 -2
  728. package/es-modules/Core/Axis/Axis3D.js +0 -612
  729. package/es-modules/Core/Axis/NavigatorAxis.js +0 -159
  730. package/es-modules/Core/Axis/Tick3D.js +0 -68
  731. package/es-modules/Extensions/DataGrouping.js +0 -1177
  732. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -12
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v10.2.1 (2022-08-29)
2
+ * @license Highcharts JS v10.3.1 (2022-10-31)
3
3
  *
4
4
  * (c) 2009-2021 Torstein Honsi
5
5
  *
@@ -46,6 +46,8 @@
46
46
  *
47
47
  * */
48
48
  var addEvent = U.addEvent,
49
+ correctFloat = U.correctFloat,
50
+ defined = U.defined,
49
51
  extend = U.extend,
50
52
  merge = U.merge,
51
53
  pick = U.pick,
@@ -389,21 +391,52 @@
389
391
  * Element's x coordinate
390
392
  * @param {number} y
391
393
  * Element's y coordinate
394
+ * @param {Array<number>} inverted
395
+ * `Chart.inverted` param
392
396
  * @param {Array<number>} center
393
397
  * Pane's center (x, y) and diameter
394
- */
395
- function isInsidePane(x, y, center) {
396
- return Math.sqrt(Math.pow(x - center[0], 2) + Math.pow(y - center[1], 2)) <= center[2] / 2;
398
+ * @param {number} startAngle
399
+ * Pane's normalized start angle in radians (<-PI, PI>)
400
+ * @param {number} endAngle
401
+ * Pane's normalized end angle in radians (<-PI, PI>)
402
+ */
403
+ function isInsidePane(x, y, center, startAngle, endAngle) {
404
+ var insideSlice = true;
405
+ var cx = center[0],
406
+ cy = center[1];
407
+ var distance = Math.sqrt(Math.pow(x - cx, 2) + Math.pow(y - cy, 2));
408
+ if (defined(startAngle) && defined(endAngle)) {
409
+ // Round angle to N-decimals to avoid numeric errors
410
+ var angle = Math.atan2(correctFloat(y - cy, 8),
411
+ correctFloat(x - cx, 8));
412
+ // Ignore full circle panes:
413
+ if (endAngle !== startAngle) {
414
+ // If normalized start angle is bigger than normalized end,
415
+ // it means angles have different signs. In such situation we
416
+ // check the <-PI, startAngle> and <endAngle, PI> ranges.
417
+ if (startAngle > endAngle) {
418
+ insideSlice = (angle >= startAngle &&
419
+ angle <= Math.PI) || (angle <= endAngle &&
420
+ angle >= -Math.PI);
421
+ }
422
+ else {
423
+ // In this case, we simple check if angle is within the
424
+ // <startAngle, endAngle> range
425
+ insideSlice = angle >= startAngle &&
426
+ angle <= correctFloat(endAngle, 8);
427
+ }
428
+ }
429
+ }
430
+ // Round up radius because x and y values are rounded
431
+ return distance <= Math.ceil(center[2] / 2) && insideSlice;
397
432
  }
398
433
  Chart.prototype.getHoverPane = function (eventArgs) {
399
434
  var chart = this;
400
435
  var hoverPane;
401
436
  if (eventArgs) {
402
437
  chart.pane.forEach(function (pane) {
403
- var plotX = eventArgs.chartX - chart.plotLeft,
404
- plotY = eventArgs.chartY - chart.plotTop,
405
- x = chart.inverted ? plotY : plotX,
406
- y = chart.inverted ? plotX : plotY;
438
+ var x = eventArgs.chartX - chart.plotLeft,
439
+ y = eventArgs.chartY - chart.plotTop;
407
440
  if (isInsidePane(x, y, pane.center)) {
408
441
  hoverPane = pane;
409
442
  }
@@ -411,10 +444,17 @@
411
444
  }
412
445
  return hoverPane;
413
446
  };
447
+ // Check if (x, y) position is within pane for polar
414
448
  addEvent(Chart, 'afterIsInsidePlot', function (e) {
449
+ var _a;
415
450
  var chart = this;
416
451
  if (chart.polar) {
417
- e.isInsidePlot = chart.pane.some(function (pane) { return isInsidePane(e.x, e.y, pane.center); });
452
+ var x_1 = e.x - (e.options.paneCoordinates ? chart.plotLeft : 0),
453
+ y_1 = e.y - (e.options.paneCoordinates ? chart.plotTop : 0);
454
+ if (e.options.inverted) {
455
+ _a = [y_1, x_1], x_1 = _a[0], y_1 = _a[1];
456
+ }
457
+ e.isInsidePlot = chart.pane.some(function (pane) { return isInsidePane(x_1, y_1, pane.center, pane.axis && pane.axis.normalizedStartAngleRad, pane.axis && pane.axis.normalizedEndAngleRad); });
418
458
  }
419
459
  });
420
460
  addEvent(Pointer, 'beforeGetHoverData', function (eventArgs) {
@@ -507,10 +547,6 @@
507
547
  */
508
548
  _this.low = void 0;
509
549
  _this.options = void 0;
510
- _this.plotHigh = void 0;
511
- _this.plotLow = void 0;
512
- _this.plotHighX = void 0;
513
- _this.plotLowX = void 0;
514
550
  _this.plotX = void 0;
515
551
  _this.series = void 0;
516
552
  return _this;
@@ -540,9 +576,9 @@
540
576
  series.stateMarkerGraphic = series.upperStateMarkerGraphic;
541
577
  }
542
578
  // Change state also for the top marker
543
- this.graphic = this.upperGraphic;
579
+ this.graphic = this.graphics && this.graphics[1];
544
580
  this.plotY = this.plotHigh;
545
- if (isPolar) {
581
+ if (isPolar && isNumber(this.plotHighX)) {
546
582
  this.plotX = this.plotHighX;
547
583
  }
548
584
  // Top state:
@@ -550,8 +586,8 @@
550
586
  this.state = prevState;
551
587
  // Now restore defaults
552
588
  this.plotY = this.plotLow;
553
- this.graphic = this.lowerGraphic;
554
- if (isPolar) {
589
+ this.graphic = this.graphics && this.graphics[0];
590
+ if (isPolar && isNumber(this.plotLowX)) {
555
591
  this.plotX = this.plotLowX;
556
592
  }
557
593
  if (series.stateMarkerGraphic) {
@@ -568,7 +604,7 @@
568
604
  var path = [];
569
605
  // Bottom halo
570
606
  this.plotY = this.plotLow;
571
- if (isPolar) {
607
+ if (isPolar && isNumber(this.plotLowX)) {
572
608
  this.plotX = this.plotLowX;
573
609
  }
574
610
  if (this.isInside) {
@@ -576,7 +612,7 @@
576
612
  }
577
613
  // Top halo
578
614
  this.plotY = this.plotHigh;
579
- if (isPolar) {
615
+ if (isPolar && isNumber(this.plotHighX)) {
580
616
  this.plotX = this.plotHighX;
581
617
  }
582
618
  if (this.isTopInside) {
@@ -628,9 +664,11 @@
628
664
  AreaSeries = _a.area,
629
665
  areaProto = _a.area.prototype,
630
666
  columnProto = _a.column.prototype;
631
- var defined = U.defined,
667
+ var addEvent = U.addEvent,
668
+ defined = U.defined,
632
669
  extend = U.extend,
633
670
  isArray = U.isArray,
671
+ isNumber = U.isNumber,
634
672
  pick = U.pick,
635
673
  merge = U.merge;
636
674
  /* *
@@ -699,6 +737,9 @@
699
737
  * @private
700
738
  */
701
739
  lineWidth: 1,
740
+ /**
741
+ * @type {number|null}
742
+ */
702
743
  threshold: null,
703
744
  tooltip: {
704
745
  pointFormat: '<span style="color:{series.color}">\u25CF</span> ' +
@@ -819,49 +860,11 @@
819
860
  // Find the polar plotX and plotY
820
861
  var chart = this.chart,
821
862
  xy = this.xAxis.postTranslate(point.rectPlotX || 0,
822
- this.yAxis.len - point.plotHigh);
863
+ this.yAxis.len - (point.plotHigh || 0));
823
864
  point.plotHighX = xy.x - chart.plotLeft;
824
865
  point.plotHigh = xy.y - chart.plotTop;
825
866
  point.plotLowX = point.plotX;
826
867
  };
827
- /**
828
- * Translate data points from raw values x and y to plotX and plotY.
829
- * @private
830
- */
831
- AreaRangeSeries.prototype.translate = function () {
832
- var series = this;
833
- areaProto.translate.apply(series);
834
- // Set plotLow and plotHigh
835
- series.points.forEach(function (point, i) {
836
- var high = point.high,
837
- plotY = point.plotY;
838
- if (point.isNull) {
839
- point.plotY = null;
840
- }
841
- else {
842
- var yAxis = series.chart.hasParallelCoordinates ?
843
- series.chart.yAxis[i] :
844
- series.yAxis;
845
- point.plotLow = plotY;
846
- // Calculate plotHigh value based on each yAxis scale (#15752)
847
- point.plotHigh = yAxis.translate(series.dataModify ?
848
- series.dataModify.modifyValue(high) : high, 0, 1, 0, 1);
849
- if (series.dataModify) {
850
- point.yBottom = point.plotHigh;
851
- }
852
- }
853
- });
854
- // Postprocess plotHigh
855
- if (this.chart.polar) {
856
- this.points.forEach(function (point) {
857
- series.highToXY(point);
858
- point.tooltipPos = [
859
- (point.plotHighX + point.plotLowX) / 2,
860
- (point.plotHigh + point.plotLow) / 2
861
- ];
862
- });
863
- }
864
- };
865
868
  /**
866
869
  * Extend the line series' getSegmentPath method by applying the segment
867
870
  * path to both lower and higher values of the range.
@@ -1012,12 +1015,16 @@
1012
1015
  while (i--) {
1013
1016
  point = data[i];
1014
1017
  if (point) {
1018
+ var _a = point.plotHigh,
1019
+ plotHigh = _a === void 0 ? 0 : _a,
1020
+ _b = point.plotLow,
1021
+ plotLow = _b === void 0 ? 0 : _b;
1015
1022
  up = upperDataLabelOptions.inside ?
1016
- point.plotHigh < point.plotLow :
1017
- point.plotHigh > point.plotLow;
1023
+ plotHigh < plotLow :
1024
+ plotHigh > plotLow;
1018
1025
  point.y = point.high;
1019
1026
  point._plotY = point.plotY;
1020
- point.plotY = point.plotHigh;
1027
+ point.plotY = plotHigh;
1021
1028
  // Store original data labels and set preliminary label
1022
1029
  // objects to be picked up in the uber method
1023
1030
  originalDataLabels[i] = point.dataLabel;
@@ -1065,9 +1072,13 @@
1065
1072
  while (i--) {
1066
1073
  point = data[i];
1067
1074
  if (point) {
1075
+ var _c = point.plotHigh,
1076
+ plotHigh = _c === void 0 ? 0 : _c,
1077
+ _d = point.plotLow,
1078
+ plotLow = _d === void 0 ? 0 : _d;
1068
1079
  up = lowerDataLabelOptions.inside ?
1069
- point.plotHigh < point.plotLow :
1070
- point.plotHigh > point.plotLow;
1080
+ plotHigh < plotLow :
1081
+ plotHigh > plotLow;
1071
1082
  // Set the default offset
1072
1083
  point.below = !up;
1073
1084
  if (inverted) {
@@ -1123,6 +1134,7 @@
1123
1134
  i = 0;
1124
1135
  while (i < pointLength) {
1125
1136
  point = series.points[i];
1137
+ point.graphics = point.graphics || [];
1126
1138
  // Save original props to be overridden by temporary props for top
1127
1139
  // points
1128
1140
  point.origProps = {
@@ -1133,8 +1145,10 @@
1133
1145
  zone: point.zone,
1134
1146
  y: point.y
1135
1147
  };
1136
- point.lowerGraphic = point.graphic;
1137
- point.graphic = point.upperGraphic;
1148
+ if (point.graphic) {
1149
+ point.graphics[0] = point.graphic;
1150
+ }
1151
+ point.graphic = point.graphics[1];
1138
1152
  point.plotY = point.plotHigh;
1139
1153
  if (defined(point.plotHighX)) {
1140
1154
  point.plotX = point.plotHighX;
@@ -1159,8 +1173,11 @@
1159
1173
  i = 0;
1160
1174
  while (i < pointLength) {
1161
1175
  point = series.points[i];
1162
- point.upperGraphic = point.graphic;
1163
- point.graphic = point.lowerGraphic;
1176
+ point.graphics = point.graphics || [];
1177
+ if (point.graphic) {
1178
+ point.graphics[1] = point.graphic;
1179
+ }
1180
+ point.graphic = point.graphics[0];
1164
1181
  if (point.origProps) {
1165
1182
  extend(point, point.origProps);
1166
1183
  delete point.origProps;
@@ -1171,6 +1188,44 @@
1171
1188
  AreaRangeSeries.defaultOptions = merge(AreaSeries.defaultOptions, areaRangeSeriesOptions);
1172
1189
  return AreaRangeSeries;
1173
1190
  }(AreaSeries));
1191
+ addEvent(AreaRangeSeries, 'afterTranslate', function () {
1192
+ // Set plotLow and plotHigh
1193
+ var _this = this;
1194
+ // Rules out lollipop, but lollipop should not inherit range series in the
1195
+ // first place
1196
+ if (this.pointArrayMap.join(',') === 'low,high') {
1197
+ this.points.forEach(function (point) {
1198
+ var high = point.high,
1199
+ plotY = point.plotY;
1200
+ if (point.isNull) {
1201
+ point.plotY = void 0;
1202
+ }
1203
+ else {
1204
+ point.plotLow = plotY;
1205
+ // Calculate plotHigh value based on each yAxis scale (#15752)
1206
+ point.plotHigh = isNumber(high) ? _this.yAxis.translate(_this.dataModify ?
1207
+ _this.dataModify.modifyValue(high) : high, false, true, void 0, true) : void 0;
1208
+ if (_this.dataModify) {
1209
+ point.yBottom = point.plotHigh;
1210
+ }
1211
+ }
1212
+ });
1213
+ }
1214
+ }, { order: 0 });
1215
+ addEvent(AreaRangeSeries, 'afterTranslate', function () {
1216
+ var _this = this;
1217
+ // Postprocess after the PolarComposition's afterTranslate
1218
+ if (this.chart.polar) {
1219
+ this.points.forEach(function (point) {
1220
+ _this.highToXY(point);
1221
+ point.plotLow = point.plotY;
1222
+ point.tooltipPos = [
1223
+ ((point.plotHighX || 0) + (point.plotLowX || 0)) / 2,
1224
+ ((point.plotHigh || 0) + (point.plotLow || 0)) / 2
1225
+ ];
1226
+ });
1227
+ }
1228
+ }, { order: 3 });
1174
1229
  extend(AreaRangeSeries.prototype, {
1175
1230
  deferTranslatePolar: true,
1176
1231
  pointArrayMap: ['low', 'high'],
@@ -1778,9 +1833,12 @@
1778
1833
  * @optionparent plotOptions.boxplot
1779
1834
  */
1780
1835
  BoxPlotSeries.defaultOptions = merge(ColumnSeries.defaultOptions, {
1836
+ /**
1837
+ * @type {number|null}
1838
+ */
1781
1839
  threshold: null,
1782
1840
  tooltip: {
1783
- pointFormat: '<span style="color:{point.color}">\u25CF</span> <b> ' +
1841
+ pointFormat: '<span style="color:{point.color}">\u25CF</span> <b>' +
1784
1842
  '{series.name}</b><br/>' +
1785
1843
  'Maximum: {point.high}<br/>' +
1786
1844
  'Upper quartile: {point.q3}<br/>' +
@@ -2546,11 +2604,6 @@
2546
2604
  this.chart = void 0;
2547
2605
  this.fontMetrics = void 0;
2548
2606
  this.legend = void 0;
2549
- this.legendGroup = void 0;
2550
- this.legendItem = void 0;
2551
- this.legendItemHeight = void 0;
2552
- this.legendItemWidth = void 0;
2553
- this.legendSymbol = void 0;
2554
2607
  this.maxLabel = void 0;
2555
2608
  this.movementX = void 0;
2556
2609
  this.ranges = void 0;
@@ -2599,8 +2652,9 @@
2599
2652
  */
2600
2653
  BubbleLegendItem.prototype.drawLegendSymbol = function (legend) {
2601
2654
  var chart = this.chart,
2602
- options = this.options,
2603
2655
  itemDistance = pick(legend.options.itemDistance, 20),
2656
+ legendItem = this.legendItem || {},
2657
+ options = this.options,
2604
2658
  ranges = options.ranges,
2605
2659
  connectorDistance = options.connectorDistance;
2606
2660
  var connectorSpace;
@@ -2630,8 +2684,8 @@
2630
2684
  this.maxLabel = maxLabel;
2631
2685
  this.movementX = options.labels.align === 'left' ?
2632
2686
  connectorSpace : 0;
2633
- this.legendItemWidth = size + connectorSpace + itemDistance;
2634
- this.legendItemHeight = size + this.fontMetrics.h / 2;
2687
+ legendItem.labelWidth = size + connectorSpace + itemDistance;
2688
+ legendItem.labelHeight = size + this.fontMetrics.h / 2;
2635
2689
  };
2636
2690
  /**
2637
2691
  * Set style options for each bubbleLegend range.
@@ -2705,11 +2759,12 @@
2705
2759
  return bubbleSeries.getRadius.call(this, zMin, zMax, minSize, maxSize, value);
2706
2760
  };
2707
2761
  /**
2708
- * Render the legendSymbol group.
2762
+ * Render the legendItem group.
2709
2763
  * @private
2710
2764
  */
2711
2765
  BubbleLegendItem.prototype.render = function () {
2712
- var renderer = this.chart.renderer,
2766
+ var legendItem = this.legendItem || {},
2767
+ renderer = this.chart.renderer,
2713
2768
  zThreshold = this.options.zThreshold;
2714
2769
  if (!this.symbols) {
2715
2770
  this.symbols = {
@@ -2719,19 +2774,20 @@
2719
2774
  };
2720
2775
  }
2721
2776
  // Nesting SVG groups to enable handleOverflow
2722
- this.legendSymbol = renderer.g('bubble-legend');
2723
- this.legendItem = renderer.g('bubble-legend-item');
2777
+ legendItem.symbol = renderer.g('bubble-legend');
2778
+ legendItem.label = renderer.g('bubble-legend-item');
2724
2779
  // To enable default 'hideOverlappingLabels' method
2725
- this.legendSymbol.translateX = 0;
2726
- this.legendSymbol.translateY = 0;
2727
- this.ranges.forEach(function (range) {
2780
+ legendItem.symbol.translateX = 0;
2781
+ legendItem.symbol.translateY = 0;
2782
+ for (var _i = 0, _a = this.ranges; _i < _a.length; _i++) {
2783
+ var range = _a[_i];
2728
2784
  if (range.value >= zThreshold) {
2729
2785
  this.renderRange(range);
2730
2786
  }
2731
- }, this);
2787
+ }
2732
2788
  // To use handleOverflow method
2733
- this.legendSymbol.add(this.legendItem);
2734
- this.legendItem.add(this.legendGroup);
2789
+ legendItem.symbol.add(legendItem.label);
2790
+ legendItem.label.add(legendItem.group);
2735
2791
  this.hideOverlappingLabels();
2736
2792
  };
2737
2793
  /**
@@ -2787,7 +2843,7 @@
2787
2843
  bubbleSeries.colorIndex + ' ' :
2788
2844
  '') +
2789
2845
  'highcharts-bubble-legend-symbol ' +
2790
- (options.className || '')).add(this.legendSymbol));
2846
+ (options.className || '')).add(this.legendItem.symbol));
2791
2847
  // Render connector
2792
2848
  symbols.connectors.push(renderer
2793
2849
  .path(renderer.crispLine([
@@ -2799,7 +2855,7 @@
2799
2855
  'highcharts-color-' +
2800
2856
  this.options.seriesIndex + ' ' : '') +
2801
2857
  'highcharts-bubble-legend-connectors ' +
2802
- (options.connectorClassName || '')).add(this.legendSymbol));
2858
+ (options.connectorClassName || '')).add(this.legendItem.symbol));
2803
2859
  // Render label
2804
2860
  var label = renderer
2805
2861
  .text(this.formatLabel(range),
@@ -2808,7 +2864,7 @@
2808
2864
  .attr((styledMode ? {} : range.labelAttribs))
2809
2865
  .css(styledMode ? {} : labelsOptions.style)
2810
2866
  .addClass('highcharts-bubble-legend-labels ' +
2811
- (options.labels.className || '')).add(this.legendSymbol);
2867
+ (options.labels.className || '')).add(this.legendItem.symbol);
2812
2868
  labels.push(label);
2813
2869
  // To enable default 'hideOverlappingLabels' method
2814
2870
  label.placed = true;
@@ -3034,7 +3090,7 @@
3034
3090
 
3035
3091
  return BubbleLegendItem;
3036
3092
  });
3037
- _registerModule(_modules, 'Series/Bubble/BubbleLegendComposition.js', [_modules['Series/Bubble/BubbleLegendDefaults.js'], _modules['Series/Bubble/BubbleLegendItem.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Utilities.js']], function (BubbleLegendDefaults, BubbleLegendItem, D, U) {
3093
+ _registerModule(_modules, 'Series/Bubble/BubbleLegendComposition.js', [_modules['Series/Bubble/BubbleLegendDefaults.js'], _modules['Series/Bubble/BubbleLegendItem.js'], _modules['Core/Defaults.js'], _modules['Core/Utilities.js']], function (BubbleLegendDefaults, BubbleLegendItem, D, U) {
3038
3094
  /* *
3039
3095
  *
3040
3096
  * (c) 2010-2021 Highsoft AS
@@ -3070,7 +3126,8 @@
3070
3126
  legend = chart.legend,
3071
3127
  bubbleSeries = getVisibleBubbleSeriesIndex(chart) >= 0;
3072
3128
  var bubbleLegendOptions,
3073
- bubbleSizes;
3129
+ bubbleSizes,
3130
+ legendItem;
3074
3131
  if (legend && legend.options.enabled && legend.bubbleLegend &&
3075
3132
  legend.options.bubbleLegend.autoRanges && bubbleSeries) {
3076
3133
  bubbleLegendOptions = legend.bubbleLegend.options;
@@ -3080,7 +3137,10 @@
3080
3137
  if (!bubbleLegendOptions.placed) {
3081
3138
  legend.group.placed = false;
3082
3139
  legend.allItems.forEach(function (item) {
3083
- item.legendGroup.translateY = null;
3140
+ legendItem = item.legendItem || {};
3141
+ if (legendItem.group) {
3142
+ legendItem.group.translateY = null;
3143
+ }
3084
3144
  });
3085
3145
  }
3086
3146
  // Create legend with bubbleLegend
@@ -3193,18 +3253,20 @@
3193
3253
  lines = [],
3194
3254
  length = items.length;
3195
3255
  var lastLine,
3256
+ legendItem,
3257
+ legendItem2,
3196
3258
  i = 0,
3197
3259
  j = 0;
3198
3260
  for (i = 0; i < length; i++) {
3199
- if (items[i].legendItemHeight) {
3261
+ legendItem = items[i].legendItem || {};
3262
+ legendItem2 = (items[i + 1] || {}).legendItem || {};
3263
+ if (legendItem.labelHeight) {
3200
3264
  // for bubbleLegend
3201
- items[i].itemHeight = items[i].legendItemHeight;
3265
+ items[i].itemHeight = legendItem.labelHeight;
3202
3266
  }
3203
3267
  if ( // Line break
3204
3268
  items[i] === items[length - 1] ||
3205
- items[i + 1] &&
3206
- items[i]._legendItemPos[1] !==
3207
- items[i + 1]._legendItemPos[1]) {
3269
+ legendItem.y !== legendItem2.y) {
3208
3270
  lines.push({ height: 0 });
3209
3271
  lastLine = lines[lines.length - 1];
3210
3272
  // Find the highest item in line
@@ -3291,25 +3353,29 @@
3291
3353
  var orgTranslateX,
3292
3354
  orgTranslateY,
3293
3355
  movementX,
3356
+ legendItem,
3294
3357
  actualLine = 0;
3295
3358
  items.forEach(function (item, index) {
3296
- orgTranslateX = item.legendGroup.translateX;
3297
- orgTranslateY = item._legendItemPos[1];
3359
+ legendItem = item.legendItem || {};
3360
+ if (!legendItem.group) {
3361
+ return;
3362
+ }
3363
+ orgTranslateX = legendItem.group.translateX || 0;
3364
+ orgTranslateY = legendItem.y || 0;
3298
3365
  movementX = item.movementX;
3299
3366
  if (movementX || (rtl && item.ranges)) {
3300
3367
  movementX = rtl ?
3301
3368
  orgTranslateX - item.options.maxSize / 2 :
3302
3369
  orgTranslateX + movementX;
3303
- item.legendGroup.attr({ translateX: movementX });
3370
+ legendItem.group.attr({ translateX: movementX });
3304
3371
  }
3305
3372
  if (index > lines[actualLine].step) {
3306
3373
  actualLine++;
3307
3374
  }
3308
- item.legendGroup.attr({
3375
+ legendItem.group.attr({
3309
3376
  translateY: Math.round(orgTranslateY + lines[actualLine].height / 2)
3310
3377
  });
3311
- item._legendItemPos[1] = orgTranslateY +
3312
- lines[actualLine].height / 2;
3378
+ legendItem.y = orgTranslateY + lines[actualLine].height / 2;
3313
3379
  });
3314
3380
  }
3315
3381
  /* *
@@ -4250,6 +4316,7 @@
4250
4316
  columnProto = _a.column.prototype;
4251
4317
  var clamp = U.clamp,
4252
4318
  extend = U.extend,
4319
+ isNumber = U.isNumber,
4253
4320
  merge = U.merge,
4254
4321
  pick = U.pick;
4255
4322
  /* *
@@ -4357,45 +4424,51 @@
4357
4424
  // Set plotLow and plotHigh
4358
4425
  this.points.forEach(function (point) {
4359
4426
  var shapeArgs = point.shapeArgs || {},
4360
- minPointLength = _this.options.minPointLength;
4361
- point.plotHigh = plotHigh = safeBounds(yAxis.translate(point.high, 0, 1, 0, 1));
4362
- point.plotLow = safeBounds(point.plotY);
4363
- // adjust shape
4364
- y = plotHigh;
4365
- height = pick(point.rectPlotY, point.plotY) - plotHigh;
4366
- // Adjust for minPointLength
4367
- if (Math.abs(height) < minPointLength) {
4368
- heightDifference = (minPointLength - height);
4369
- height += heightDifference;
4370
- y -= heightDifference / 2;
4371
- // Adjust for negative ranges or reversed Y axis (#1457)
4372
- }
4373
- else if (height < 0) {
4374
- height *= -1;
4375
- y -= height;
4376
- }
4377
- if (isRadial && _this.polar) {
4378
- start = point.barX + startAngleRad;
4379
- point.shapeType = 'arc';
4380
- point.shapeArgs = _this.polar.arc(y + height, y, start, start + point.pointWidth);
4381
- }
4382
- else {
4383
- shapeArgs.height = height;
4384
- shapeArgs.y = y;
4385
- var _a = shapeArgs.x,
4386
- x = _a === void 0 ? 0 : _a,
4387
- _b = shapeArgs.width,
4388
- width = _b === void 0 ? 0 : _b;
4389
- point.tooltipPos = chart.inverted ?
4390
- [
4391
- yAxis.len + yAxis.pos - chart.plotLeft - y - height / 2,
4392
- xAxis.len + xAxis.pos - chart.plotTop - x - width / 2,
4427
+ minPointLength = _this.options.minPointLength,
4428
+ plotY = point.plotY,
4429
+ plotHigh = yAxis.translate(point.high, 0, 1, 0, 1);
4430
+ if (isNumber(plotHigh) && isNumber(plotY)) {
4431
+ point.plotHigh = safeBounds(plotHigh);
4432
+ point.plotLow = safeBounds(plotY);
4433
+ // adjust shape
4434
+ y = point.plotHigh;
4435
+ height = pick(point.rectPlotY, point.plotY) - point.plotHigh;
4436
+ // Adjust for minPointLength
4437
+ if (Math.abs(height) < minPointLength) {
4438
+ heightDifference = (minPointLength - height);
4439
+ height += heightDifference;
4440
+ y -= heightDifference / 2;
4441
+ // Adjust for negative ranges or reversed Y axis (#1457)
4442
+ }
4443
+ else if (height < 0) {
4444
+ height *= -1;
4445
+ y -= height;
4446
+ }
4447
+ if (isRadial && _this.polar) {
4448
+ start = point.barX + startAngleRad;
4449
+ point.shapeType = 'arc';
4450
+ point.shapeArgs = _this.polar.arc(y + height, y, start, start + point.pointWidth);
4451
+ }
4452
+ else {
4453
+ shapeArgs.height = height;
4454
+ shapeArgs.y = y;
4455
+ var _a = shapeArgs.x,
4456
+ x = _a === void 0 ? 0 : _a,
4457
+ _b = shapeArgs.width,
4458
+ width = _b === void 0 ? 0 : _b;
4459
+ point.tooltipPos = chart.inverted ?
4460
+ [
4461
+ yAxis.len + yAxis.pos - chart.plotLeft - y -
4462
+ height / 2,
4463
+ xAxis.len + xAxis.pos - chart.plotTop - x -
4464
+ width / 2,
4465
+ height
4466
+ ] : [
4467
+ xAxis.left - chart.plotLeft + x + width / 2,
4468
+ yAxis.pos - chart.plotTop + y + height / 2,
4393
4469
  height
4394
- ] : [
4395
- xAxis.left - chart.plotLeft + x + width / 2,
4396
- yAxis.pos - chart.plotTop + y + height / 2,
4397
- height
4398
- ]; // don't inherit from column tooltip position - #3372
4470
+ ]; // don't inherit from column tooltip position - #3372
4471
+ }
4399
4472
  }
4400
4473
  });
4401
4474
  };
@@ -4896,7 +4969,7 @@
4896
4969
 
4897
4970
  return ColumnPyramidSeries;
4898
4971
  });
4899
- _registerModule(_modules, 'Series/ErrorBar/ErrorBarSeries.js', [_modules['Series/BoxPlot/BoxPlotSeries.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (BoxPlotSeries, ColumnSeries, SeriesRegistry, U) {
4972
+ _registerModule(_modules, 'Series/ErrorBar/ErrorBarSeriesDefaults.js', [], function () {
4900
4973
  /* *
4901
4974
  *
4902
4975
  * (c) 2010-2021 Torstein Honsi
@@ -4906,98 +4979,30 @@
4906
4979
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
4907
4980
  *
4908
4981
  * */
4909
- var __extends = (this && this.__extends) || (function () {
4910
- var extendStatics = function (d,
4911
- b) {
4912
- extendStatics = Object.setPrototypeOf ||
4913
- ({ __proto__: [] } instanceof Array && function (d,
4914
- b) { d.__proto__ = b; }) ||
4915
- function (d,
4916
- b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
4917
- return extendStatics(d, b);
4918
- };
4919
- return function (d, b) {
4920
- extendStatics(d, b);
4921
- function __() { this.constructor = d; }
4922
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
4923
- };
4924
- })();
4925
- var AreaRangeSeries = SeriesRegistry.seriesTypes.arearange;
4926
- var merge = U.merge,
4927
- extend = U.extend;
4928
- /**
4929
- * Errorbar series type
4982
+ /* *
4930
4983
  *
4931
- * @private
4932
- * @class
4933
- * @name Highcharts.seriesTypes.errorbar
4984
+ * API Options
4934
4985
  *
4935
- * @augments Highcharts.Series
4986
+ * */
4987
+ /**
4988
+ * Error bars are a graphical representation of the variability of data and
4989
+ * are used on graphs to indicate the error, or uncertainty in a reported
4990
+ * measurement.
4936
4991
  *
4992
+ * @sample highcharts/demo/error-bar/
4993
+ * Error bars on a column series
4994
+ * @sample highcharts/series-errorbar/on-scatter/
4995
+ * Error bars on a scatter series
4996
+ * @sample highcharts/series-errorbar/datalabels/
4997
+ * Error bars with data labels
4998
+ *
4999
+ * @extends plotOptions.boxplot
5000
+ * @excluding boostBlending, boostThreshold
5001
+ * @product highcharts
5002
+ * @requires highcharts-more
5003
+ * @optionparent plotOptions.errorbar
4937
5004
  */
4938
- var ErrorBarSeries = /** @class */ (function (_super) {
4939
- __extends(ErrorBarSeries, _super);
4940
- function ErrorBarSeries() {
4941
- /* *
4942
- *
4943
- * Static properties
4944
- *
4945
- * */
4946
- var _this = _super !== null && _super.apply(this,
4947
- arguments) || this;
4948
- /* *
4949
- *
4950
- * Properties
4951
- *
4952
- * */
4953
- _this.data = void 0;
4954
- _this.options = void 0;
4955
- _this.points = void 0;
4956
- return _this;
4957
- }
4958
- /* *
4959
- *
4960
- * Functions
4961
- *
4962
- * */
4963
- // Get the width and X offset, either on top of the linked series
4964
- // column or standalone
4965
- ErrorBarSeries.prototype.getColumnMetrics = function () {
4966
- return ((this.linkedParent && this.linkedParent.columnMetrics) ||
4967
- ColumnSeries.prototype.getColumnMetrics.call(this));
4968
- };
4969
- ErrorBarSeries.prototype.drawDataLabels = function () {
4970
- var valKey = this.pointValKey;
4971
- if (AreaRangeSeries) {
4972
- AreaRangeSeries.prototype.drawDataLabels.call(this);
4973
- // Arearange drawDataLabels does not reset point.y to high,
4974
- // but to low after drawing (#4133)
4975
- this.data.forEach(function (point) {
4976
- point.y = point[valKey];
4977
- });
4978
- }
4979
- };
4980
- // return a plain array for speedy calculation
4981
- ErrorBarSeries.prototype.toYData = function (point) {
4982
- return [point.low, point.high];
4983
- };
4984
- /**
4985
- * Error bars are a graphical representation of the variability of data and
4986
- * are used on graphs to indicate the error, or uncertainty in a reported
4987
- * measurement.
4988
- *
4989
- * @sample highcharts/demo/error-bar/
4990
- * Error bars on a column series
4991
- * @sample highcharts/series-errorbar/on-scatter/
4992
- * Error bars on a scatter series
4993
- *
4994
- * @extends plotOptions.boxplot
4995
- * @excluding boostBlending, boostThreshold
4996
- * @product highcharts highstock
4997
- * @requires highcharts-more
4998
- * @optionparent plotOptions.errorbar
4999
- */
5000
- ErrorBarSeries.defaultOptions = merge(BoxPlotSeries.defaultOptions, {
5005
+ var ErrorBarSeriesDefaults = {
5001
5006
  /**
5002
5007
  * The main color of the bars. This can be overridden by
5003
5008
  * [stemColor](#plotOptions.errorbar.stemColor) and
@@ -5015,7 +5020,8 @@
5015
5020
  grouping: false,
5016
5021
  /**
5017
5022
  * The parent series of the error bar. The default value links it to
5018
- * the previous series. Otherwise, use the id of the parent series.
5023
+ * the previous series. Otherwise,
5024
+ use the id of the parent series.
5019
5025
  *
5020
5026
  * @since 3.0
5021
5027
  * @product highcharts
@@ -5025,8 +5031,10 @@
5025
5031
  pointFormat: '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'
5026
5032
  },
5027
5033
  /**
5028
- * The line width of the whiskers, the horizontal lines marking
5029
- * low and high values. When `null`, the general
5034
+ * The line width of the whiskers,
5035
+ the horizontal lines marking
5036
+ * low and high values. When `null`,
5037
+ the general
5030
5038
  * [lineWidth](#plotOptions.errorbar.lineWidth) applies.
5031
5039
  *
5032
5040
  * @sample {highcharts} highcharts/plotoptions/error-bar-styling/
@@ -5037,26 +5045,7 @@
5037
5045
  * @product highcharts
5038
5046
  */
5039
5047
  whiskerWidth: null
5040
- });
5041
- return ErrorBarSeries;
5042
- }(BoxPlotSeries));
5043
- extend(ErrorBarSeries.prototype, {
5044
- // array point configs are mapped to this
5045
- pointArrayMap: ['low', 'high'],
5046
- pointValKey: 'high',
5047
- doQuartiles: false
5048
- });
5049
- SeriesRegistry.registerSeriesType('errorbar', ErrorBarSeries);
5050
- /* *
5051
- *
5052
- * Default export
5053
- *
5054
- * */
5055
- /* *
5056
- *
5057
- * API options
5058
- *
5059
- * */
5048
+ };
5060
5049
  /**
5061
5050
  * A `errorbar` series. If the [type](#series.errorbar.type) option
5062
5051
  * is not specified, it is inherited from [chart.type](#chart.type).
@@ -5124,6 +5113,125 @@
5124
5113
  * @apioption series.errorbar.data
5125
5114
  */
5126
5115
  ''; // adds doclets above to transpiled file
5116
+ /* *
5117
+ *
5118
+ * Default Export
5119
+ *
5120
+ * */
5121
+
5122
+ return ErrorBarSeriesDefaults;
5123
+ });
5124
+ _registerModule(_modules, 'Series/ErrorBar/ErrorBarSeries.js', [_modules['Series/BoxPlot/BoxPlotSeries.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Series/ErrorBar/ErrorBarSeriesDefaults.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (BoxPlotSeries, ColumnSeries, ErrorBarSeriesDefaults, SeriesRegistry, U) {
5125
+ /* *
5126
+ *
5127
+ * (c) 2010-2021 Torstein Honsi
5128
+ *
5129
+ * License: www.highcharts.com/license
5130
+ *
5131
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
5132
+ *
5133
+ * */
5134
+ var __extends = (this && this.__extends) || (function () {
5135
+ var extendStatics = function (d,
5136
+ b) {
5137
+ extendStatics = Object.setPrototypeOf ||
5138
+ ({ __proto__: [] } instanceof Array && function (d,
5139
+ b) { d.__proto__ = b; }) ||
5140
+ function (d,
5141
+ b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
5142
+ return extendStatics(d, b);
5143
+ };
5144
+ return function (d, b) {
5145
+ extendStatics(d, b);
5146
+ function __() { this.constructor = d; }
5147
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
5148
+ };
5149
+ })();
5150
+ var AreaRangeSeries = SeriesRegistry.seriesTypes.arearange;
5151
+ var addEvent = U.addEvent,
5152
+ merge = U.merge,
5153
+ extend = U.extend;
5154
+ /* *
5155
+ *
5156
+ * Class
5157
+ *
5158
+ * */
5159
+ /**
5160
+ * Errorbar series type
5161
+ *
5162
+ * @private
5163
+ * @class
5164
+ * @name Highcharts.seriesTypes.errorbar
5165
+ *
5166
+ * @augments Highcharts.Series
5167
+ *
5168
+ */
5169
+ var ErrorBarSeries = /** @class */ (function (_super) {
5170
+ __extends(ErrorBarSeries, _super);
5171
+ function ErrorBarSeries() {
5172
+ /* *
5173
+ *
5174
+ * Static Properties
5175
+ *
5176
+ * */
5177
+ var _this = _super !== null && _super.apply(this,
5178
+ arguments) || this;
5179
+ /* *
5180
+ *
5181
+ * Properties
5182
+ *
5183
+ * */
5184
+ _this.data = void 0;
5185
+ _this.options = void 0;
5186
+ _this.points = void 0;
5187
+ return _this;
5188
+ }
5189
+ /* *
5190
+ *
5191
+ * Functions
5192
+ *
5193
+ * */
5194
+ ErrorBarSeries.prototype.getColumnMetrics = function () {
5195
+ // Get the width and X offset, either on top of the linked series
5196
+ // column or standalone
5197
+ return ((this.linkedParent && this.linkedParent.columnMetrics) ||
5198
+ ColumnSeries.prototype.getColumnMetrics.call(this));
5199
+ };
5200
+ ErrorBarSeries.prototype.drawDataLabels = function () {
5201
+ var valKey = this.pointValKey;
5202
+ if (AreaRangeSeries) {
5203
+ AreaRangeSeries.prototype.drawDataLabels.call(this);
5204
+ // Arearange drawDataLabels does not reset point.y to high,
5205
+ // but to low after drawing (#4133)
5206
+ this.data.forEach(function (point) {
5207
+ point.y = point[valKey];
5208
+ });
5209
+ }
5210
+ };
5211
+ ErrorBarSeries.prototype.toYData = function (point) {
5212
+ // return a plain array for speedy calculation
5213
+ return [point.low, point.high];
5214
+ };
5215
+ ErrorBarSeries.defaultOptions = merge(BoxPlotSeries.defaultOptions, ErrorBarSeriesDefaults);
5216
+ return ErrorBarSeries;
5217
+ }(BoxPlotSeries));
5218
+ addEvent(ErrorBarSeries, 'afterTranslate', function () {
5219
+ this.points.forEach(function (point) {
5220
+ point.plotLow = point.plotY;
5221
+ });
5222
+ }, { order: 0 });
5223
+ extend(ErrorBarSeries.prototype, {
5224
+ // pointClass: ErrorBarPoint, // just a declaration
5225
+ pointArrayMap: ['low', 'high'],
5226
+ pointValKey: 'high',
5227
+ doQuartiles: false
5228
+ });
5229
+ SeriesRegistry.registerSeriesType('errorbar', ErrorBarSeries);
5230
+ /* *
5231
+ *
5232
+ * Default Export
5233
+ *
5234
+ * */
5127
5235
 
5128
5236
  return ErrorBarSeries;
5129
5237
  });
@@ -6268,6 +6376,8 @@
6268
6376
  * @since 7.0.0
6269
6377
  * @requires highcharts-more
6270
6378
  * @optionparent plotOptions.packedbubble
6379
+ *
6380
+ * @private
6271
6381
  */
6272
6382
  var PackedBubbleSeriesDefaults = {
6273
6383
  /**
@@ -8424,6 +8534,7 @@
8424
8534
  * */
8425
8535
  PackedBubbleSeries.compose = function (AxisClass, ChartClass, LegendClass, SeriesClass) {
8426
8536
  BubbleSeries.compose(AxisClass, ChartClass, LegendClass, SeriesClass);
8537
+ DragNodesComposition.compose(ChartClass);
8427
8538
  PackedBubbleLayout.compose(ChartClass);
8428
8539
  };
8429
8540
  /* *
@@ -8691,20 +8802,11 @@
8691
8802
  * @private
8692
8803
  */
8693
8804
  PackedBubbleSeries.prototype.drawDataLabels = function () {
8694
- var textPath = this.options.dataLabels.textPath,
8695
- points = this.points;
8696
- // Render node labels:
8697
- seriesProto.drawDataLabels.apply(this, arguments);
8805
+ seriesProto.drawDataLabels.call(this, this.points);
8698
8806
  // Render parentNode labels:
8699
8807
  if (this.parentNode) {
8700
8808
  this.parentNode.formatPrefix = 'parentNode';
8701
- this.points = [this.parentNode];
8702
- this.options.dataLabels.textPath =
8703
- this.options.dataLabels.parentNodeTextPath;
8704
- seriesProto.drawDataLabels.apply(this, arguments);
8705
- // Restore nodes
8706
- this.points = points;
8707
- this.options.dataLabels.textPath = textPath;
8809
+ seriesProto.drawDataLabels.call(this, [this.parentNode]);
8708
8810
  }
8709
8811
  };
8710
8812
  /**
@@ -10601,7 +10703,7 @@
10601
10703
 
10602
10704
  return WaterfallSeries;
10603
10705
  });
10604
- _registerModule(_modules, 'Core/Axis/RadialAxis.js', [_modules['Core/Axis/AxisDefaults.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (AxisDefaults, D, H, U) {
10706
+ _registerModule(_modules, 'Core/Axis/RadialAxis.js', [_modules['Core/Axis/AxisDefaults.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (AxisDefaults, D, H, U) {
10605
10707
  /* *
10606
10708
  *
10607
10709
  * (c) 2010-2021 Torstein Honsi
@@ -11226,16 +11328,34 @@
11226
11328
  pane = this.pane,
11227
11329
  paneOptions = pane && pane.options;
11228
11330
  if (!isHidden && pane && (chart.angular || chart.polar)) {
11229
- // Start and end angle options are given in degrees relative to
11230
- // top, while internal computations are in radians relative to
11231
- // right (like SVG).
11331
+ var fullCircle = Math.PI * 2,
11332
+ // Start and end angle options are given in degrees relative to
11333
+ // top, while internal computations are in radians relative to
11334
+ // right (like SVG).
11335
+ start = (pick(paneOptions.startAngle, 0) - 90) * Math.PI / 180,
11336
+ end = (pick(paneOptions.endAngle,
11337
+ pick(paneOptions.startAngle, 0) + 360) - 90) * Math.PI / 180;
11232
11338
  // Y axis in polar charts
11233
11339
  this.angleRad = (options.angle || 0) * Math.PI / 180;
11234
11340
  // Gauges
11235
- this.startAngleRad =
11236
- (paneOptions.startAngle - 90) * Math.PI / 180;
11237
- this.endAngleRad = (pick(paneOptions.endAngle, paneOptions.startAngle + 360) - 90) * Math.PI / 180; // Gauges
11341
+ this.startAngleRad = start;
11342
+ this.endAngleRad = end;
11238
11343
  this.offset = options.offset || 0;
11344
+ // Normalize Start and End to <0, 2*PI> range
11345
+ // (in degrees: <0,360>)
11346
+ var normalizedStart = (start % fullCircle + fullCircle) %
11347
+ fullCircle,
11348
+ normalizedEnd = (end % fullCircle + fullCircle) % fullCircle;
11349
+ // Move normalized angles to <-PI, PI> range (<-180, 180>)
11350
+ // to match values returned by Math.atan2()
11351
+ if (normalizedStart > Math.PI) {
11352
+ normalizedStart -= fullCircle;
11353
+ }
11354
+ if (normalizedEnd > Math.PI) {
11355
+ normalizedEnd -= fullCircle;
11356
+ }
11357
+ this.normalizedStartAngleRad = normalizedStart;
11358
+ this.normalizedEndAngleRad = normalizedEnd;
11239
11359
  }
11240
11360
  }
11241
11361
  /**
@@ -11314,7 +11434,6 @@
11314
11434
  // Disable certain features on angular and polar axes
11315
11435
  if (angular || polar) {
11316
11436
  this.isRadial = true;
11317
- chartOptions.chart.zooming.type = null;
11318
11437
  if (!this.labelCollector) {
11319
11438
  this.labelCollector = this.createLabelCollector();
11320
11439
  }
@@ -11627,6 +11746,20 @@
11627
11746
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
11628
11747
  *
11629
11748
  * */
11749
+ var __spreadArray = (this && this.__spreadArray) || function (to,
11750
+ from,
11751
+ pack) {
11752
+ if (pack || arguments.length === 2) for (var i = 0,
11753
+ l = from.length,
11754
+ ar; i < l; i++) {
11755
+ if (ar || !(i in from)) {
11756
+ if (!ar) ar = Array.prototype.slice.call(from, 0,
11757
+ i);
11758
+ ar[i] = from[i];
11759
+ }
11760
+ }
11761
+ return to.concat(ar || Array.prototype.slice.call(from));
11762
+ };
11630
11763
  var animObject = A.animObject;
11631
11764
  var addEvent = U.addEvent,
11632
11765
  defined = U.defined,
@@ -11785,6 +11918,26 @@
11785
11918
  pane.render();
11786
11919
  });
11787
11920
  }
11921
+ /**
11922
+ * If polar has polygonal grid lines, force start and endOnTick on radial axis
11923
+ * @private
11924
+ */
11925
+ function onChartAfterInit(event) {
11926
+ var xAxis = event.args[0].xAxis,
11927
+ yAxis = event.args[0].yAxis,
11928
+ chart = event.args[0].chart;
11929
+ if (xAxis && yAxis) {
11930
+ if (yAxis.gridLineInterpolation === 'polygon') {
11931
+ xAxis.startOnTick = true;
11932
+ xAxis.endOnTick = true;
11933
+ }
11934
+ else if (xAxis.gridLineInterpolation === 'polygon' &&
11935
+ chart.inverted) {
11936
+ yAxis.startOnTick = true;
11937
+ yAxis.endOnTick = true;
11938
+ }
11939
+ }
11940
+ }
11788
11941
  function onChartGetAxes() {
11789
11942
  var _this = this;
11790
11943
  if (!this.pane) {
@@ -11796,6 +11949,194 @@
11796
11949
  paneOptions, _this);
11797
11950
  }, this);
11798
11951
  }
11952
+ /**
11953
+ * Get selection dimensions
11954
+ * @private
11955
+ */
11956
+ function onPointerGetSelectionBox(event) {
11957
+ var marker = event.args.marker,
11958
+ xAxis = this.chart.xAxis[0],
11959
+ yAxis = this.chart.yAxis[0],
11960
+ inverted = this.chart.inverted,
11961
+ radialAxis = inverted ? yAxis : xAxis,
11962
+ linearAxis = inverted ? xAxis : yAxis;
11963
+ if (this.chart.polar) {
11964
+ event.preventDefault();
11965
+ var start = (marker.attr ? marker.attr('start') : marker.start) - radialAxis.startAngleRad;
11966
+ var r = (marker.attr ? marker.attr('r') : marker.r);
11967
+ var end = (marker.attr ? marker.attr('end') : marker.end) - radialAxis.startAngleRad;
11968
+ var innerR = (marker.attr ? marker.attr('innerR') : marker.innerR);
11969
+ event.result.x = start + radialAxis.pos;
11970
+ event.result.width = end - start;
11971
+ // innerR goes from pane's center but toValue computes values from top
11972
+ event.result.y = linearAxis.len + linearAxis.pos - innerR;
11973
+ event.result.height = innerR - r;
11974
+ }
11975
+ }
11976
+ /**
11977
+ * Get attrs for Polar selection marker
11978
+ * @private
11979
+ */
11980
+ function onPointerGetSelectionMarkerAttrs(event) {
11981
+ var chart = this.chart;
11982
+ if (chart.polar && chart.hoverPane && chart.hoverPane.axis) {
11983
+ event.preventDefault();
11984
+ var center = chart.hoverPane.center,
11985
+ mouseDownX = (this.mouseDownX || 0),
11986
+ mouseDownY = (this.mouseDownY || 0),
11987
+ chartY = event.args.chartY,
11988
+ chartX = event.args.chartX,
11989
+ fullCircle = Math.PI * 2,
11990
+ startAngleRad = chart.hoverPane.axis.startAngleRad,
11991
+ endAngleRad = chart.hoverPane.axis.endAngleRad,
11992
+ linearAxis = chart.inverted ? chart.xAxis[0] : chart.yAxis[0],
11993
+ attrs = {};
11994
+ var shapeType = 'arc';
11995
+ attrs.x = center[0] + chart.plotLeft;
11996
+ attrs.y = center[1] + chart.plotTop;
11997
+ // Adjust the width of the selection marker
11998
+ if (this.zoomHor) {
11999
+ var paneRadRange = startAngleRad > 0 ?
12000
+ endAngleRad - startAngleRad :
12001
+ Math.abs(startAngleRad) + Math.abs(endAngleRad);
12002
+ var startAngle = Math.atan2(mouseDownY - chart.plotTop - center[1],
12003
+ mouseDownX - chart.plotLeft - center[0]) - startAngleRad,
12004
+ endAngle = Math.atan2(chartY - chart.plotTop - center[1],
12005
+ chartX - chart.plotLeft - center[0]) - startAngleRad;
12006
+ attrs.r = center[2] / 2;
12007
+ attrs.innerR = center[3] / 2;
12008
+ if (startAngle <= 0) {
12009
+ startAngle += fullCircle;
12010
+ }
12011
+ if (endAngle <= 0) {
12012
+ endAngle += fullCircle;
12013
+ }
12014
+ if (endAngle < startAngle) {
12015
+ // Swapping angles
12016
+ endAngle = [startAngle, startAngle = endAngle][0];
12017
+ }
12018
+ // If pane is not a full circle we need to let users zoom to the min
12019
+ // We do this by swapping angles after pointer crosses
12020
+ // middle angle (swapAngle) of the missing slice of the pane
12021
+ if (paneRadRange < fullCircle) {
12022
+ var swapAngle = endAngleRad + (fullCircle - paneRadRange) / 2;
12023
+ if (startAngleRad + endAngle > swapAngle) {
12024
+ endAngle = startAngle;
12025
+ startAngle = startAngleRad <= 0 ? startAngleRad : 0;
12026
+ }
12027
+ }
12028
+ var start = attrs.start =
12029
+ Math.max(startAngle + startAngleRad,
12030
+ startAngleRad),
12031
+ end = attrs.end =
12032
+ Math.min(endAngle + startAngleRad,
12033
+ endAngleRad);
12034
+ // Adjust the selection shape for polygon grid lines
12035
+ if (linearAxis.options.gridLineInterpolation === 'polygon') {
12036
+ var radialAxis = chart.hoverPane.axis,
12037
+ tickInterval = radialAxis.tickInterval,
12038
+ min = start - radialAxis.startAngleRad + radialAxis.pos,
12039
+ max = end - start;
12040
+ var path = linearAxis.getPlotLinePath({
12041
+ value: linearAxis.max
12042
+ }),
12043
+ pathStart = radialAxis.toValue(min),
12044
+ pathEnd = radialAxis.toValue(min + max);
12045
+ if (pathStart < radialAxis.getExtremes().min) {
12046
+ var _a = radialAxis.getExtremes(),
12047
+ min_1 = _a.min,
12048
+ max_1 = _a.max;
12049
+ pathStart = max_1 - (min_1 - pathStart);
12050
+ }
12051
+ if (pathEnd < radialAxis.getExtremes().min) {
12052
+ var _b = radialAxis.getExtremes(),
12053
+ min_2 = _b.min,
12054
+ max_2 = _b.max;
12055
+ pathEnd = max_2 - (min_2 - pathEnd);
12056
+ }
12057
+ if (pathEnd < pathStart) {
12058
+ // Swapping angles
12059
+ pathEnd = [pathStart, pathStart = pathEnd][0];
12060
+ }
12061
+ // Get trimmed path
12062
+ path = trimPath(path, pathStart, pathEnd, radialAxis);
12063
+ // Add center to the path
12064
+ path.push([
12065
+ 'L', center[0] + chart.plotLeft,
12066
+ chart.plotTop + center[1]
12067
+ ]);
12068
+ attrs.d = path;
12069
+ shapeType = 'path';
12070
+ }
12071
+ }
12072
+ // Adjust the height of the selection marker
12073
+ if (this.zoomVert) {
12074
+ var linearAxis_1 = chart.inverted ? chart.xAxis[0] : chart.yAxis[0];
12075
+ var innerR = Math.sqrt(Math.pow(mouseDownX - chart.plotLeft - center[0], 2) +
12076
+ Math.pow(mouseDownY - chart.plotTop - center[1], 2)),
12077
+ r = Math.sqrt(Math.pow(chartX - chart.plotLeft - center[0], 2) +
12078
+ Math.pow(chartY - chart.plotTop - center[1], 2));
12079
+ if (r < innerR) {
12080
+ // Swapping angles
12081
+ innerR = [r, r = innerR][0];
12082
+ }
12083
+ if (r > center[2] / 2) {
12084
+ r = center[2] / 2;
12085
+ }
12086
+ if (innerR < center[3] / 2) {
12087
+ innerR = center[3] / 2;
12088
+ }
12089
+ if (!this.zoomHor) {
12090
+ attrs.start = startAngleRad;
12091
+ attrs.end = endAngleRad;
12092
+ }
12093
+ attrs.r = r;
12094
+ attrs.innerR = innerR;
12095
+ if (linearAxis_1.options.gridLineInterpolation === 'polygon') {
12096
+ var end = linearAxis_1.toValue(linearAxis_1.len + linearAxis_1.pos - innerR),
12097
+ start = linearAxis_1.toValue(linearAxis_1.len + linearAxis_1.pos - r),
12098
+ path = linearAxis_1.getPlotLinePath({
12099
+ value: start
12100
+ }).concat(linearAxis_1.getPlotLinePath({
12101
+ value: end,
12102
+ reverse: true
12103
+ }));
12104
+ attrs.d = path;
12105
+ shapeType = 'path';
12106
+ }
12107
+ }
12108
+ if (this.zoomHor &&
12109
+ this.zoomVert &&
12110
+ linearAxis.options.gridLineInterpolation === 'polygon') {
12111
+ var radialAxis = chart.hoverPane.axis,
12112
+ start = attrs.start || 0,
12113
+ end = attrs.end || 0,
12114
+ min = start - radialAxis.startAngleRad + radialAxis.pos,
12115
+ max = end - start,
12116
+ pathStart = radialAxis.toValue(min),
12117
+ pathEnd = radialAxis.toValue(min + max);
12118
+ // Trim path
12119
+ if (attrs.d instanceof Array) {
12120
+ var innerPath = attrs.d.slice(0,
12121
+ attrs.d.length / 2),
12122
+ outerPath = attrs.d.slice(attrs.d.length / 2,
12123
+ attrs.d.length);
12124
+ outerPath = __spreadArray([], outerPath, true).reverse();
12125
+ var radialAxis_1 = chart.hoverPane.axis;
12126
+ innerPath = trimPath(innerPath, pathStart, pathEnd, radialAxis_1);
12127
+ outerPath = trimPath(outerPath, pathStart, pathEnd, radialAxis_1);
12128
+ if (outerPath) {
12129
+ (outerPath[0][0]) = 'L';
12130
+ }
12131
+ outerPath = __spreadArray([], outerPath, true).reverse();
12132
+ attrs.d = innerPath.concat(outerPath);
12133
+ shapeType = 'path';
12134
+ }
12135
+ }
12136
+ event.attrs = attrs;
12137
+ event.shapeType = shapeType;
12138
+ }
12139
+ }
11799
12140
  /**
11800
12141
  * @private
11801
12142
  */
@@ -11832,21 +12173,29 @@
11832
12173
  else {
11833
12174
  series.options.findNearestPointBy = 'xy';
11834
12175
  }
11835
- // Postprocess plot coordinates
11836
- if (!series.preventPostTranslate) {
11837
- var points = series.points;
11838
- var i = points.length,
11839
- point = void 0;
11840
- while (i--) {
11841
- point = points[i];
11842
- // Translate plotX, plotY from angle and radius to true plot
11843
- // coordinates
11844
- series.polar.toXY(point);
11845
- // Treat points below Y axis min as null (#10082)
11846
- if (!chart_1.hasParallelCoordinates &&
11847
- !series.yAxis.reversed &&
11848
- point.y < series.yAxis.min) {
11849
- point.isNull = true;
12176
+ var points = series.points;
12177
+ var i = points.length;
12178
+ while (i--) {
12179
+ // Translate plotX, plotY from angle and radius to true plot
12180
+ // coordinates
12181
+ if (!series.preventPostTranslate) {
12182
+ series.polar.toXY(points[i]);
12183
+ }
12184
+ // Treat points below Y axis min as null (#10082)
12185
+ if (!chart_1.hasParallelCoordinates &&
12186
+ !series.yAxis.reversed) {
12187
+ if (pick(points[i].y, Number.MIN_VALUE) < series.yAxis.min ||
12188
+ points[i].x < series.xAxis.min ||
12189
+ points[i].x > series.xAxis.max) {
12190
+ // Destroy markers
12191
+ points[i].isNull = true;
12192
+ // Destroy column's graphic
12193
+ points[i].plotY = NaN;
12194
+ }
12195
+ else {
12196
+ // Restore isNull flag
12197
+ points[i].isNull =
12198
+ points[i].isValid && !points[i].isValid();
11850
12199
  }
11851
12200
  }
11852
12201
  }
@@ -11892,6 +12241,33 @@
11892
12241
  clientX: 180 + (Math.atan2(plotX, plotY) * (-180 / Math.PI))
11893
12242
  });
11894
12243
  }
12244
+ /**
12245
+ * Trim polygonal path
12246
+ * @private
12247
+ */
12248
+ function trimPath(path, start, end, radialAxis) {
12249
+ var tickInterval = radialAxis.tickInterval,
12250
+ ticks = radialAxis.tickPositions;
12251
+ var lastTick = find(ticks,
12252
+ function (tick) { return tick >= end; }),
12253
+ firstTick = find(__spreadArray([],
12254
+ ticks,
12255
+ true).reverse(),
12256
+ function (tick) { return tick <= start; });
12257
+ if (!defined(lastTick)) {
12258
+ lastTick = ticks[ticks.length - 1];
12259
+ }
12260
+ if (!defined(firstTick)) {
12261
+ firstTick = ticks[0];
12262
+ lastTick += tickInterval;
12263
+ path[0][0] = 'L';
12264
+ // To do: figure out why -3 or -2
12265
+ path.unshift(path[path.length - 3]);
12266
+ }
12267
+ path = path.slice(ticks.indexOf(firstTick), ticks.indexOf(lastTick) + 1);
12268
+ path[0][0] = 'M';
12269
+ return path;
12270
+ }
11895
12271
  /**
11896
12272
  * Extend chart.get to also search in panes. Used internally in
11897
12273
  * responsiveness and chart.update.
@@ -11922,7 +12298,7 @@
11922
12298
  else { // Required corrections for data labels of inverted bars
11923
12299
  // The plotX and plotY are correctly set therefore they
11924
12300
  // don't need to be swapped (inverted argument is false)
11925
- this.forceDL = chart.isInsidePlot(point.plotX, Math.round(point.plotY));
12301
+ this.forceDL = chart.isInsidePlot(point.plotX, point.plotY);
11926
12302
  // Checks if labels should be positioned inside
11927
12303
  if (inside && point.shapeArgs) {
11928
12304
  shapeArgs = point.shapeArgs;
@@ -12236,6 +12612,16 @@
12236
12612
  }
12237
12613
  return ret;
12238
12614
  }
12615
+ /**
12616
+ * Prevent zooming on mobile devices
12617
+ * @private
12618
+ */
12619
+ function wrapPointerPinch(proceed, e) {
12620
+ if (this.chart.polar) {
12621
+ return;
12622
+ }
12623
+ proceed.call(this, e);
12624
+ }
12239
12625
  /**
12240
12626
  * Define the animate method for regular series
12241
12627
  * @private
@@ -12398,6 +12784,7 @@
12398
12784
  composedClasses.push(ChartClass);
12399
12785
  addEvent(ChartClass, 'afterDrawChartBox', onChartAfterDrawChartBox);
12400
12786
  addEvent(ChartClass, 'getAxes', onChartGetAxes);
12787
+ addEvent(ChartClass, 'init', onChartAfterInit);
12401
12788
  var chartProto = ChartClass.prototype;
12402
12789
  wrap(chartProto, 'get', wrapChartGet);
12403
12790
  }
@@ -12405,6 +12792,9 @@
12405
12792
  composedClasses.push(PointerClass);
12406
12793
  var pointerProto = PointerClass.prototype;
12407
12794
  wrap(pointerProto, 'getCoordinates', wrapPointerGetCoordinates);
12795
+ wrap(pointerProto, 'pinch', wrapPointerPinch);
12796
+ addEvent(PointerClass, 'getSelectionMarkerAttrs', onPointerGetSelectionMarkerAttrs);
12797
+ addEvent(PointerClass, 'getSelectionBox', onPointerGetSelectionBox);
12408
12798
  }
12409
12799
  if (composedClasses.indexOf(SeriesClass) === -1) {
12410
12800
  composedClasses.push(SeriesClass);