highcharts 9.3.2 → 10.1.0

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 (700) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +19 -2
  3. package/css/highcharts.scss +17 -2
  4. package/css/themes/dark-unica.css +19 -2
  5. package/css/themes/grid-light.css +19 -2
  6. package/css/themes/sand-signika.css +19 -2
  7. package/es-modules/Accessibility/A11yI18n.js +4 -4
  8. package/es-modules/Accessibility/Accessibility.js +1 -1
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +8 -9
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +14 -9
  11. package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
  12. package/es-modules/Accessibility/Components/MenuComponent.js +15 -5
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
  14. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  15. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
  17. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
  18. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +84 -33
  19. package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
  20. package/es-modules/Accessibility/FocusBorder.js +6 -5
  21. package/es-modules/Accessibility/HighContrastMode.js +2 -2
  22. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  23. package/es-modules/Accessibility/Options/LangOptions.js +36 -31
  24. package/es-modules/Accessibility/Options/Options.js +66 -3
  25. package/es-modules/Accessibility/ProxyElement.js +14 -6
  26. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  27. package/es-modules/Accessibility/Utils/ChartUtilities.js +9 -4
  28. package/es-modules/Core/Axis/Axis.js +180 -73
  29. package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
  30. package/es-modules/Core/Axis/GridAxis.js +15 -11
  31. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  32. package/es-modules/Core/Axis/OrdinalAxis.js +3 -2
  33. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  34. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  35. package/es-modules/Core/Axis/Tick.js +2 -2
  36. package/es-modules/Core/Axis/TreeGridTick.js +11 -0
  37. package/es-modules/Core/Chart/Chart.js +21 -3
  38. package/es-modules/Core/Chart/Chart3D.js +1 -11
  39. package/es-modules/Core/Chart/ChartDefaults.js +43 -11
  40. package/es-modules/Core/Chart/MapChart.js +1 -6
  41. package/es-modules/Core/Chart/StockChart.js +1 -1
  42. package/es-modules/Core/DefaultOptions.js +8 -4
  43. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  44. package/es-modules/Core/Globals.js +4 -18
  45. package/es-modules/Core/HttpUtilities.js +13 -8
  46. package/es-modules/Core/Legend/Legend.js +11 -9
  47. package/es-modules/Core/Navigator.js +10 -7
  48. package/es-modules/Core/Pointer.js +15 -11
  49. package/es-modules/Core/Renderer/HTML/AST.js +68 -8
  50. package/es-modules/Core/Renderer/SVG/SVGElement.js +47 -63
  51. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  52. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +31 -28
  53. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  54. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  55. package/es-modules/Core/Scrollbar.js +9 -5
  56. package/es-modules/Core/Series/DataLabel.js +65 -36
  57. package/es-modules/Core/Series/Point.js +2 -2
  58. package/es-modules/Core/Series/Series.js +52 -22
  59. package/es-modules/Core/Series/SeriesDefaults.js +4 -1
  60. package/es-modules/Core/Tooltip.js +14 -31
  61. package/es-modules/Core/Utilities.js +29 -29
  62. package/es-modules/Extensions/Annotations/Annotations.js +9 -2
  63. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  64. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  65. package/es-modules/Extensions/Annotations/NavigationBindings.js +9 -1
  66. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  67. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  68. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  69. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  70. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  71. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  72. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  73. package/es-modules/Extensions/Breadcrumbs.js +873 -0
  74. package/es-modules/Extensions/Data.js +26 -14
  75. package/es-modules/Extensions/DataGrouping.js +8 -3
  76. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  77. package/es-modules/Extensions/DraggablePoints.js +9 -7
  78. package/es-modules/Extensions/Drilldown.js +150 -95
  79. package/es-modules/Extensions/ExportData.js +1 -2
  80. package/es-modules/Extensions/Exporting/Exporting.js +31 -20
  81. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  82. package/es-modules/Extensions/FullScreen.js +121 -54
  83. package/es-modules/Extensions/GeoJSON.js +151 -125
  84. package/es-modules/Extensions/MarkerClusters.js +34 -20
  85. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  86. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  87. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  88. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  89. package/es-modules/Extensions/Polar.js +4 -1
  90. package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
  91. package/es-modules/Extensions/Stacking.js +4 -3
  92. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  93. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  94. package/es-modules/Maps/MapNavigation.js +50 -13
  95. package/es-modules/Maps/MapPointer.js +16 -0
  96. package/es-modules/Maps/MapUtilities.js +56 -0
  97. package/es-modules/Maps/MapView.js +611 -136
  98. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  99. package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
  100. package/es-modules/Maps/Projection.js +169 -77
  101. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  102. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  103. package/es-modules/Maps/Projections/Miller.js +23 -10
  104. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  105. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  106. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  107. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +589 -0
  108. package/es-modules/Series/CenteredUtilities.js +6 -1
  109. package/es-modules/Series/Column/ColumnSeries.js +4 -3
  110. package/es-modules/Series/DataModifyComposition.js +1 -0
  111. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
  112. package/es-modules/Series/DrawPointComposition.js +7 -4
  113. package/es-modules/Series/Flags/FlagsSeries.js +7 -12
  114. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  115. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -20
  116. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  117. package/es-modules/Series/Map/MapPoint.js +24 -1
  118. package/es-modules/Series/Map/MapSeries.js +206 -169
  119. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  120. package/es-modules/Series/MapBubble/MapBubbleSeries.js +58 -1
  121. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  122. package/es-modules/Series/MapPoint/MapPointSeries.js +40 -14
  123. package/es-modules/Series/NodesComposition.js +60 -13
  124. package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
  125. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  126. package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
  127. package/es-modules/Series/Pie/PieDataLabel.js +3 -1
  128. package/es-modules/Series/Pie/PiePoint.js +12 -5
  129. package/es-modules/Series/Pie/PieSeries.js +12 -1
  130. package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
  131. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  132. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  133. package/es-modules/Series/Sankey/SankeySeries.js +13 -128
  134. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  135. package/es-modules/Series/Sunburst/SunburstSeries.js +14 -3
  136. package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
  137. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
  138. package/es-modules/Series/Wordcloud/WordcloudSeries.js +4 -4
  139. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
  140. package/es-modules/Stock/StockToolsBindings.js +31 -24
  141. package/es-modules/Stock/StockToolsGui.js +1 -1
  142. package/es-modules/masters/highcharts-3d.src.js +1 -1
  143. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  144. package/es-modules/masters/highcharts-more.src.js +1 -1
  145. package/es-modules/masters/highcharts.src.js +1 -1
  146. package/es-modules/masters/highmaps.src.js +1 -1
  147. package/es-modules/masters/highstock.src.js +1 -1
  148. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  149. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  150. package/es-modules/masters/indicators/ao.src.js +1 -1
  151. package/es-modules/masters/indicators/apo.src.js +1 -1
  152. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  153. package/es-modules/masters/indicators/aroon.src.js +1 -1
  154. package/es-modules/masters/indicators/atr.src.js +1 -1
  155. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  156. package/es-modules/masters/indicators/cci.src.js +1 -1
  157. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  158. package/es-modules/masters/indicators/cmf.src.js +1 -1
  159. package/es-modules/masters/indicators/cmo.src.js +1 -1
  160. package/es-modules/masters/indicators/dema.src.js +1 -1
  161. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  162. package/es-modules/masters/indicators/dmi.src.js +1 -1
  163. package/es-modules/masters/indicators/dpo.src.js +1 -1
  164. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  165. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  166. package/es-modules/masters/indicators/indicators.src.js +1 -1
  167. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  168. package/es-modules/masters/indicators/klinger.src.js +1 -1
  169. package/es-modules/masters/indicators/macd.src.js +1 -1
  170. package/es-modules/masters/indicators/mfi.src.js +1 -1
  171. package/es-modules/masters/indicators/momentum.src.js +1 -1
  172. package/es-modules/masters/indicators/natr.src.js +1 -1
  173. package/es-modules/masters/indicators/obv.src.js +1 -1
  174. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  175. package/es-modules/masters/indicators/ppo.src.js +1 -1
  176. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  177. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  178. package/es-modules/masters/indicators/psar.src.js +1 -1
  179. package/es-modules/masters/indicators/regressions.src.js +1 -1
  180. package/es-modules/masters/indicators/roc.src.js +1 -1
  181. package/es-modules/masters/indicators/rsi.src.js +1 -1
  182. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  183. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  184. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  185. package/es-modules/masters/indicators/tema.src.js +1 -1
  186. package/es-modules/masters/indicators/trendline.src.js +1 -1
  187. package/es-modules/masters/indicators/trix.src.js +1 -1
  188. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  189. package/es-modules/masters/indicators/vwap.src.js +1 -1
  190. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  191. package/es-modules/masters/indicators/wma.src.js +1 -1
  192. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  193. package/es-modules/masters/modules/accessibility.src.js +1 -1
  194. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  195. package/es-modules/masters/modules/annotations.src.js +1 -1
  196. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  197. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  198. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  199. package/es-modules/masters/modules/boost.src.js +1 -1
  200. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  201. package/es-modules/masters/modules/bullet.src.js +1 -1
  202. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  203. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  204. package/es-modules/masters/modules/cylinder.src.js +1 -1
  205. package/es-modules/masters/modules/data.src.js +1 -1
  206. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  207. package/es-modules/masters/modules/debugger.src.js +1 -1
  208. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  209. package/es-modules/masters/modules/dotplot.src.js +1 -1
  210. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  211. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  212. package/es-modules/masters/modules/drilldown.src.js +2 -1
  213. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  214. package/es-modules/masters/modules/export-data.src.js +1 -1
  215. package/es-modules/masters/modules/exporting.src.js +1 -1
  216. package/es-modules/masters/modules/full-screen.src.js +1 -1
  217. package/es-modules/masters/modules/funnel.src.js +1 -1
  218. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  219. package/es-modules/masters/modules/gantt.src.js +1 -1
  220. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  221. package/es-modules/masters/modules/heatmap.src.js +1 -1
  222. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  223. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  224. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  225. package/es-modules/masters/modules/item-series.src.js +1 -1
  226. package/es-modules/masters/modules/lollipop.src.js +1 -1
  227. package/es-modules/masters/modules/map.src.js +5 -1
  228. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  229. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  230. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  231. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  232. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  233. package/es-modules/masters/modules/oldie.src.js +1 -1
  234. package/es-modules/masters/modules/organization.src.js +1 -1
  235. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  236. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  237. package/es-modules/masters/modules/pareto.src.js +1 -1
  238. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  239. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  240. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  241. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  242. package/es-modules/masters/modules/sankey.src.js +1 -1
  243. package/es-modules/masters/modules/series-label.src.js +1 -1
  244. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  245. package/es-modules/masters/modules/sonification.src.js +1 -1
  246. package/es-modules/masters/modules/static-scale.src.js +1 -1
  247. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  248. package/es-modules/masters/modules/stock.src.js +1 -1
  249. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  250. package/es-modules/masters/modules/sunburst.src.js +1 -1
  251. package/es-modules/masters/modules/tilemap.src.js +1 -1
  252. package/es-modules/masters/modules/timeline.src.js +1 -1
  253. package/es-modules/masters/modules/treegrid.src.js +1 -1
  254. package/es-modules/masters/modules/treemap.src.js +5 -1
  255. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  256. package/es-modules/masters/modules/variwide.src.js +1 -1
  257. package/es-modules/masters/modules/vector.src.js +1 -1
  258. package/es-modules/masters/modules/venn.src.js +1 -1
  259. package/es-modules/masters/modules/windbarb.src.js +1 -1
  260. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  261. package/es-modules/masters/modules/xrange.src.js +1 -1
  262. package/es-modules/masters/themes/avocado.src.js +1 -1
  263. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  264. package/es-modules/masters/themes/brand-light.src.js +1 -1
  265. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  266. package/es-modules/masters/themes/dark-green.src.js +1 -1
  267. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  268. package/es-modules/masters/themes/gray.src.js +1 -1
  269. package/es-modules/masters/themes/grid-light.src.js +1 -1
  270. package/es-modules/masters/themes/grid.src.js +1 -1
  271. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  272. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  273. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  274. package/es-modules/masters/themes/skies.src.js +1 -1
  275. package/es-modules/masters/themes/sunset.src.js +1 -1
  276. package/highcharts-3d.js +99 -98
  277. package/highcharts-3d.js.map +1 -1
  278. package/highcharts-3d.src.js +51 -21
  279. package/highcharts-gantt.js +808 -800
  280. package/highcharts-gantt.js.map +1 -1
  281. package/highcharts-gantt.src.js +781 -426
  282. package/highcharts-more.js +195 -194
  283. package/highcharts-more.js.map +1 -1
  284. package/highcharts-more.src.js +18 -4
  285. package/highcharts.d.ts +3224 -542
  286. package/highcharts.js +592 -584
  287. package/highcharts.js.map +1 -1
  288. package/highcharts.src.d.ts +3224 -542
  289. package/highcharts.src.js +732 -400
  290. package/highmaps.js +760 -728
  291. package/highmaps.js.map +1 -1
  292. package/highmaps.src.js +3840 -2189
  293. package/highstock.js +793 -786
  294. package/highstock.js.map +1 -1
  295. package/highstock.src.js +783 -432
  296. package/indicators/acceleration-bands.js +12 -11
  297. package/indicators/acceleration-bands.js.map +1 -1
  298. package/indicators/acceleration-bands.src.js +11 -2
  299. package/indicators/accumulation-distribution.js +5 -5
  300. package/indicators/accumulation-distribution.js.map +1 -1
  301. package/indicators/accumulation-distribution.src.js +11 -2
  302. package/indicators/ao.js +6 -6
  303. package/indicators/ao.js.map +1 -1
  304. package/indicators/ao.src.js +11 -2
  305. package/indicators/apo.js +5 -5
  306. package/indicators/apo.js.map +1 -1
  307. package/indicators/apo.src.js +11 -2
  308. package/indicators/aroon-oscillator.js +10 -10
  309. package/indicators/aroon-oscillator.js.map +1 -1
  310. package/indicators/aroon-oscillator.src.js +11 -2
  311. package/indicators/aroon.js +11 -11
  312. package/indicators/aroon.js.map +1 -1
  313. package/indicators/aroon.src.js +11 -2
  314. package/indicators/atr.js +5 -5
  315. package/indicators/atr.js.map +1 -1
  316. package/indicators/atr.src.js +11 -2
  317. package/indicators/bollinger-bands.js +12 -12
  318. package/indicators/bollinger-bands.js.map +1 -1
  319. package/indicators/bollinger-bands.src.js +11 -2
  320. package/indicators/cci.js +5 -5
  321. package/indicators/cci.js.map +1 -1
  322. package/indicators/cci.src.js +11 -2
  323. package/indicators/chaikin.js +8 -8
  324. package/indicators/chaikin.js.map +1 -1
  325. package/indicators/chaikin.src.js +11 -2
  326. package/indicators/cmf.js +6 -6
  327. package/indicators/cmf.js.map +1 -1
  328. package/indicators/cmf.src.js +11 -2
  329. package/indicators/cmo.js +5 -5
  330. package/indicators/cmo.js.map +1 -1
  331. package/indicators/cmo.src.js +11 -2
  332. package/indicators/dema.js +5 -5
  333. package/indicators/dema.js.map +1 -1
  334. package/indicators/dema.src.js +11 -2
  335. package/indicators/disparity-index.js +6 -6
  336. package/indicators/disparity-index.js.map +1 -1
  337. package/indicators/disparity-index.src.js +11 -2
  338. package/indicators/dmi.js +12 -12
  339. package/indicators/dmi.js.map +1 -1
  340. package/indicators/dmi.src.js +11 -2
  341. package/indicators/dpo.js +5 -5
  342. package/indicators/dpo.js.map +1 -1
  343. package/indicators/dpo.src.js +11 -2
  344. package/indicators/ema.js +2 -1
  345. package/indicators/ema.js.map +1 -1
  346. package/indicators/ema.src.js +10 -1
  347. package/indicators/ichimoku-kinko-hyo.js +16 -16
  348. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  349. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  350. package/indicators/indicators-all.js +195 -194
  351. package/indicators/indicators-all.js.map +1 -1
  352. package/indicators/indicators-all.src.js +21 -5
  353. package/indicators/indicators.js +13 -12
  354. package/indicators/indicators.js.map +1 -1
  355. package/indicators/indicators.src.js +21 -5
  356. package/indicators/keltner-channels.js +12 -11
  357. package/indicators/keltner-channels.js.map +1 -1
  358. package/indicators/keltner-channels.src.js +11 -2
  359. package/indicators/klinger.js +13 -13
  360. package/indicators/klinger.js.map +1 -1
  361. package/indicators/klinger.src.js +11 -2
  362. package/indicators/macd.js +12 -11
  363. package/indicators/macd.js.map +1 -1
  364. package/indicators/macd.src.js +11 -2
  365. package/indicators/mfi.js +6 -6
  366. package/indicators/mfi.js.map +1 -1
  367. package/indicators/mfi.src.js +11 -2
  368. package/indicators/momentum.js +5 -5
  369. package/indicators/momentum.js.map +1 -1
  370. package/indicators/momentum.src.js +11 -2
  371. package/indicators/natr.js +5 -4
  372. package/indicators/natr.js.map +1 -1
  373. package/indicators/natr.src.js +11 -2
  374. package/indicators/obv.js +5 -5
  375. package/indicators/obv.js.map +1 -1
  376. package/indicators/obv.src.js +11 -2
  377. package/indicators/pivot-points.js +11 -11
  378. package/indicators/pivot-points.js.map +1 -1
  379. package/indicators/pivot-points.src.js +11 -2
  380. package/indicators/ppo.js +5 -5
  381. package/indicators/ppo.js.map +1 -1
  382. package/indicators/ppo.src.js +11 -2
  383. package/indicators/price-channel.js +11 -11
  384. package/indicators/price-channel.js.map +1 -1
  385. package/indicators/price-channel.src.js +11 -2
  386. package/indicators/price-envelopes.js +8 -8
  387. package/indicators/price-envelopes.js.map +1 -1
  388. package/indicators/price-envelopes.src.js +11 -2
  389. package/indicators/psar.js +7 -6
  390. package/indicators/psar.js.map +1 -1
  391. package/indicators/psar.src.js +11 -2
  392. package/indicators/regressions.js +12 -12
  393. package/indicators/regressions.js.map +1 -1
  394. package/indicators/regressions.src.js +11 -2
  395. package/indicators/roc.js +5 -5
  396. package/indicators/roc.js.map +1 -1
  397. package/indicators/roc.src.js +11 -2
  398. package/indicators/rsi.js +6 -5
  399. package/indicators/rsi.js.map +1 -1
  400. package/indicators/rsi.src.js +11 -2
  401. package/indicators/slow-stochastic.js +5 -5
  402. package/indicators/slow-stochastic.js.map +1 -1
  403. package/indicators/slow-stochastic.src.js +11 -2
  404. package/indicators/stochastic.js +12 -12
  405. package/indicators/stochastic.js.map +1 -1
  406. package/indicators/stochastic.src.js +11 -2
  407. package/indicators/supertrend.js +10 -10
  408. package/indicators/supertrend.js.map +1 -1
  409. package/indicators/supertrend.src.js +11 -2
  410. package/indicators/tema.js +6 -6
  411. package/indicators/tema.js.map +1 -1
  412. package/indicators/tema.src.js +11 -2
  413. package/indicators/trendline.js +5 -5
  414. package/indicators/trendline.js.map +1 -1
  415. package/indicators/trendline.src.js +11 -2
  416. package/indicators/trix.js +4 -4
  417. package/indicators/trix.js.map +1 -1
  418. package/indicators/trix.src.js +11 -2
  419. package/indicators/volume-by-price.js +17 -17
  420. package/indicators/volume-by-price.js.map +1 -1
  421. package/indicators/volume-by-price.src.js +11 -2
  422. package/indicators/vwap.js +5 -5
  423. package/indicators/vwap.js.map +1 -1
  424. package/indicators/vwap.src.js +11 -2
  425. package/indicators/williams-r.js +6 -5
  426. package/indicators/williams-r.js.map +1 -1
  427. package/indicators/williams-r.src.js +11 -2
  428. package/indicators/wma.js +5 -5
  429. package/indicators/wma.js.map +1 -1
  430. package/indicators/wma.src.js +11 -2
  431. package/indicators/zigzag.js +6 -6
  432. package/indicators/zigzag.js.map +1 -1
  433. package/indicators/zigzag.src.js +11 -2
  434. package/lib/jspdf.js +299 -184
  435. package/lib/jspdf.src.js +25266 -18067
  436. package/lib/svg2pdf.js +35 -31
  437. package/lib/svg2pdf.src.js +5721 -4179
  438. package/modules/accessibility.js +245 -240
  439. package/modules/accessibility.js.map +1 -1
  440. package/modules/accessibility.src.js +510 -283
  441. package/modules/annotations-advanced.js +144 -144
  442. package/modules/annotations-advanced.js.map +1 -1
  443. package/modules/annotations-advanced.src.js +37 -11
  444. package/modules/annotations.js +79 -79
  445. package/modules/annotations.js.map +1 -1
  446. package/modules/annotations.src.js +32 -8
  447. package/modules/arc-diagram.js +25 -0
  448. package/modules/arc-diagram.js.map +1 -0
  449. package/modules/arc-diagram.src.js +778 -0
  450. package/modules/arrow-symbols.js +4 -3
  451. package/modules/arrow-symbols.js.map +1 -1
  452. package/modules/arrow-symbols.src.js +11 -2
  453. package/modules/boost-canvas.js +15 -15
  454. package/modules/boost-canvas.js.map +1 -1
  455. package/modules/boost-canvas.src.js +11 -2
  456. package/modules/boost.js +80 -79
  457. package/modules/boost.js.map +1 -1
  458. package/modules/boost.src.js +71 -43
  459. package/modules/broken-axis.js +13 -13
  460. package/modules/broken-axis.js.map +1 -1
  461. package/modules/broken-axis.src.js +11 -2
  462. package/modules/bullet.js +9 -9
  463. package/modules/bullet.js.map +1 -1
  464. package/modules/bullet.src.js +11 -2
  465. package/modules/coloraxis.js +24 -24
  466. package/modules/coloraxis.js.map +1 -1
  467. package/modules/coloraxis.src.js +33 -7
  468. package/modules/current-date-indicator.js +5 -4
  469. package/modules/current-date-indicator.js.map +1 -1
  470. package/modules/current-date-indicator.src.js +11 -2
  471. package/modules/cylinder.js +11 -11
  472. package/modules/cylinder.js.map +1 -1
  473. package/modules/cylinder.src.js +11 -2
  474. package/modules/data.js +34 -33
  475. package/modules/data.js.map +1 -1
  476. package/modules/data.src.js +59 -32
  477. package/modules/datagrouping.js +21 -20
  478. package/modules/datagrouping.js.map +1 -1
  479. package/modules/datagrouping.src.js +19 -5
  480. package/modules/debugger.js +8 -7
  481. package/modules/debugger.js.map +1 -1
  482. package/modules/debugger.src.js +15 -2
  483. package/modules/dependency-wheel.js +12 -11
  484. package/modules/dependency-wheel.js.map +1 -1
  485. package/modules/dependency-wheel.src.js +14 -5
  486. package/modules/dotplot.js +6 -6
  487. package/modules/dotplot.js.map +1 -1
  488. package/modules/dotplot.src.js +11 -2
  489. package/modules/drag-panes.js +10 -10
  490. package/modules/drag-panes.js.map +1 -1
  491. package/modules/drag-panes.src.js +11 -2
  492. package/modules/draggable-points.js +35 -34
  493. package/modules/draggable-points.js.map +1 -1
  494. package/modules/draggable-points.src.js +20 -9
  495. package/modules/drilldown.d.ts +19 -0
  496. package/modules/drilldown.js +36 -25
  497. package/modules/drilldown.js.map +1 -1
  498. package/modules/drilldown.src.d.ts +19 -0
  499. package/modules/drilldown.src.js +1091 -106
  500. package/modules/dumbbell.js +17 -17
  501. package/modules/dumbbell.js.map +1 -1
  502. package/modules/dumbbell.src.js +11 -2
  503. package/modules/export-data.js +21 -20
  504. package/modules/export-data.js.map +1 -1
  505. package/modules/export-data.src.js +12 -4
  506. package/modules/exporting.js +39 -39
  507. package/modules/exporting.js.map +1 -1
  508. package/modules/exporting.src.js +227 -92
  509. package/modules/full-screen.js +8 -7
  510. package/modules/full-screen.js.map +1 -1
  511. package/modules/full-screen.src.js +135 -58
  512. package/modules/funnel.js +12 -12
  513. package/modules/funnel.js.map +1 -1
  514. package/modules/funnel.src.js +11 -2
  515. package/modules/funnel3d.js +21 -21
  516. package/modules/funnel3d.js.map +1 -1
  517. package/modules/funnel3d.src.js +11 -2
  518. package/modules/gantt.js +216 -215
  519. package/modules/gantt.js.map +1 -1
  520. package/modules/gantt.src.js +60 -28
  521. package/modules/grid-axis.js +23 -23
  522. package/modules/grid-axis.js.map +1 -1
  523. package/modules/grid-axis.src.js +27 -13
  524. package/modules/heatmap.js +40 -39
  525. package/modules/heatmap.js.map +1 -1
  526. package/modules/heatmap.src.js +46 -27
  527. package/modules/heikinashi.js +8 -8
  528. package/modules/heikinashi.js.map +1 -1
  529. package/modules/heikinashi.src.js +11 -2
  530. package/modules/histogram-bellcurve.js +13 -13
  531. package/modules/histogram-bellcurve.js.map +1 -1
  532. package/modules/histogram-bellcurve.src.js +11 -2
  533. package/modules/hollowcandlestick.js +9 -9
  534. package/modules/hollowcandlestick.js.map +1 -1
  535. package/modules/hollowcandlestick.src.js +11 -2
  536. package/modules/item-series.js +12 -12
  537. package/modules/item-series.js.map +1 -1
  538. package/modules/item-series.src.js +11 -2
  539. package/modules/lollipop.js +7 -7
  540. package/modules/lollipop.js.map +1 -1
  541. package/modules/lollipop.src.js +12 -3
  542. package/modules/map.d.ts +80 -43
  543. package/modules/map.js +169 -144
  544. package/modules/map.js.map +1 -1
  545. package/modules/map.src.d.ts +80 -43
  546. package/modules/map.src.js +8024 -6696
  547. package/modules/marker-clusters.js +36 -36
  548. package/modules/marker-clusters.js.map +1 -1
  549. package/modules/marker-clusters.src.js +47 -23
  550. package/modules/networkgraph.d.ts +5 -0
  551. package/modules/networkgraph.js +49 -48
  552. package/modules/networkgraph.js.map +1 -1
  553. package/modules/networkgraph.src.d.ts +5 -0
  554. package/modules/networkgraph.src.js +77 -15
  555. package/modules/no-data-to-display.js +5 -5
  556. package/modules/no-data-to-display.js.map +1 -1
  557. package/modules/no-data-to-display.src.js +11 -2
  558. package/modules/offline-exporting.js +20 -18
  559. package/modules/offline-exporting.js.map +1 -1
  560. package/modules/offline-exporting.src.js +126 -25
  561. package/modules/oldie-polyfills.js +7 -7
  562. package/modules/oldie-polyfills.js.map +1 -1
  563. package/modules/oldie-polyfills.src.js +11 -2
  564. package/modules/oldie.js +30 -30
  565. package/modules/oldie.js.map +1 -1
  566. package/modules/oldie.src.js +12 -3
  567. package/modules/organization.js +16 -14
  568. package/modules/organization.js.map +1 -1
  569. package/modules/organization.src.js +166 -32
  570. package/modules/overlapping-datalabels.js +3 -2
  571. package/modules/overlapping-datalabels.js.map +1 -1
  572. package/modules/overlapping-datalabels.src.js +11 -2
  573. package/modules/parallel-coordinates.js +11 -11
  574. package/modules/parallel-coordinates.js.map +1 -1
  575. package/modules/parallel-coordinates.src.js +11 -2
  576. package/modules/pareto.js +7 -7
  577. package/modules/pareto.js.map +1 -1
  578. package/modules/pareto.src.js +11 -2
  579. package/modules/pathfinder.js +31 -31
  580. package/modules/pathfinder.js.map +1 -1
  581. package/modules/pathfinder.src.js +11 -2
  582. package/modules/pattern-fill.js +14 -14
  583. package/modules/pattern-fill.js.map +1 -1
  584. package/modules/pattern-fill.src.js +11 -2
  585. package/modules/price-indicator.js +5 -5
  586. package/modules/price-indicator.js.map +1 -1
  587. package/modules/price-indicator.src.js +11 -2
  588. package/modules/pyramid3d.js +4 -4
  589. package/modules/pyramid3d.js.map +1 -1
  590. package/modules/pyramid3d.src.js +11 -2
  591. package/modules/sankey.d.ts +5 -0
  592. package/modules/sankey.js +32 -29
  593. package/modules/sankey.js.map +1 -1
  594. package/modules/sankey.src.d.ts +5 -0
  595. package/modules/sankey.src.js +341 -157
  596. package/modules/series-label.js +18 -17
  597. package/modules/series-label.js.map +1 -1
  598. package/modules/series-label.src.js +11 -2
  599. package/modules/solid-gauge.js +10 -10
  600. package/modules/solid-gauge.js.map +1 -1
  601. package/modules/solid-gauge.src.js +11 -2
  602. package/modules/sonification.js +59 -59
  603. package/modules/sonification.js.map +1 -1
  604. package/modules/sonification.src.js +11 -2
  605. package/modules/static-scale.js +5 -4
  606. package/modules/static-scale.js.map +1 -1
  607. package/modules/static-scale.src.js +11 -2
  608. package/modules/stock-tools.js +145 -145
  609. package/modules/stock-tools.js.map +1 -1
  610. package/modules/stock-tools.src.js +64 -32
  611. package/modules/stock.js +204 -204
  612. package/modules/stock.js.map +1 -1
  613. package/modules/stock.src.js +62 -34
  614. package/modules/streamgraph.js +5 -4
  615. package/modules/streamgraph.js.map +1 -1
  616. package/modules/streamgraph.src.js +11 -2
  617. package/modules/sunburst.d.ts +3 -0
  618. package/modules/sunburst.js +73 -60
  619. package/modules/sunburst.js.map +1 -1
  620. package/modules/sunburst.src.d.ts +3 -0
  621. package/modules/sunburst.src.js +1048 -97
  622. package/modules/tilemap.js +17 -17
  623. package/modules/tilemap.js.map +1 -1
  624. package/modules/tilemap.src.js +11 -2
  625. package/modules/timeline.js +18 -18
  626. package/modules/timeline.js.map +1 -1
  627. package/modules/timeline.src.js +11 -2
  628. package/modules/treegrid.js +57 -56
  629. package/modules/treegrid.js.map +1 -1
  630. package/modules/treegrid.src.js +38 -13
  631. package/modules/treemap.d.ts +3 -0
  632. package/modules/treemap.js +53 -41
  633. package/modules/treemap.js.map +1 -1
  634. package/modules/treemap.src.d.ts +3 -0
  635. package/modules/treemap.src.js +1037 -95
  636. package/modules/variable-pie.js +9 -9
  637. package/modules/variable-pie.js.map +1 -1
  638. package/modules/variable-pie.src.js +11 -2
  639. package/modules/variwide.js +12 -12
  640. package/modules/variwide.js.map +1 -1
  641. package/modules/variwide.src.js +11 -2
  642. package/modules/vector.js +8 -7
  643. package/modules/vector.js.map +1 -1
  644. package/modules/vector.src.js +11 -2
  645. package/modules/venn.js +31 -31
  646. package/modules/venn.js.map +1 -1
  647. package/modules/venn.src.js +18 -6
  648. package/modules/windbarb.js +15 -15
  649. package/modules/windbarb.js.map +1 -1
  650. package/modules/windbarb.src.js +11 -2
  651. package/modules/wordcloud.js +24 -23
  652. package/modules/wordcloud.js.map +1 -1
  653. package/modules/wordcloud.src.js +22 -10
  654. package/modules/xrange.js +16 -16
  655. package/modules/xrange.js.map +1 -1
  656. package/modules/xrange.src.js +11 -2
  657. package/package.json +1 -1
  658. package/themes/avocado.js +4 -3
  659. package/themes/avocado.js.map +1 -1
  660. package/themes/avocado.src.js +11 -2
  661. package/themes/brand-dark.js +9 -8
  662. package/themes/brand-dark.js.map +1 -1
  663. package/themes/brand-dark.src.js +11 -2
  664. package/themes/brand-light.js +8 -8
  665. package/themes/brand-light.js.map +1 -1
  666. package/themes/brand-light.src.js +11 -2
  667. package/themes/dark-blue.js +9 -8
  668. package/themes/dark-blue.js.map +1 -1
  669. package/themes/dark-blue.src.js +11 -2
  670. package/themes/dark-green.js +9 -8
  671. package/themes/dark-green.js.map +1 -1
  672. package/themes/dark-green.src.js +11 -2
  673. package/themes/dark-unica.js +8 -7
  674. package/themes/dark-unica.js.map +1 -1
  675. package/themes/dark-unica.src.js +11 -2
  676. package/themes/gray.js +9 -8
  677. package/themes/gray.js.map +1 -1
  678. package/themes/gray.src.js +11 -2
  679. package/themes/grid-light.js +5 -4
  680. package/themes/grid-light.js.map +1 -1
  681. package/themes/grid-light.src.js +11 -2
  682. package/themes/grid.js +5 -5
  683. package/themes/grid.js.map +1 -1
  684. package/themes/grid.src.js +11 -2
  685. package/themes/high-contrast-dark.js +7 -7
  686. package/themes/high-contrast-dark.js.map +1 -1
  687. package/themes/high-contrast-dark.src.js +21 -12
  688. package/themes/high-contrast-light.js +3 -3
  689. package/themes/high-contrast-light.js.map +1 -1
  690. package/themes/high-contrast-light.src.js +21 -12
  691. package/themes/sand-signika.js +5 -5
  692. package/themes/sand-signika.js.map +1 -1
  693. package/themes/sand-signika.src.js +11 -2
  694. package/themes/skies.js +5 -5
  695. package/themes/skies.js.map +1 -1
  696. package/themes/skies.src.js +11 -2
  697. package/themes/sunset.js +3 -3
  698. package/themes/sunset.js.map +1 -1
  699. package/themes/sunset.src.js +11 -2
  700. package/es-modules/Maps/ProjectionDefinition.js +0 -9
@@ -0,0 +1,148 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2021 Torstein Honsi
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * */
10
+ 'use strict';
11
+ /**
12
+ * Generic options for the placement and appearance of map insets like
13
+ * non-contiguous territories.
14
+ *
15
+ * @since 10.0.0
16
+ * @product highmaps
17
+ * @optionparent mapView.insetOptions
18
+ */
19
+ var defaultOptions = {
20
+ /**
21
+ * The border color of the insets.
22
+ *
23
+ * @sample maps/mapview/insetoptions-border
24
+ * Inset border options
25
+ * @type {Highcharts.ColorType}
26
+ */
27
+ borderColor: "#cccccc" /* neutralColor20 */,
28
+ /**
29
+ * The pixel border width of the insets.
30
+ *
31
+ * @sample maps/mapview/insetoptions-border
32
+ * Inset border options
33
+ */
34
+ borderWidth: 1,
35
+ /**
36
+ * @ignore-option
37
+ */
38
+ center: [0, 0],
39
+ /**
40
+ * The padding of the insets. Can be either a number of pixels, a percentage
41
+ * string, or an array of either. If an array is given, it sets the top,
42
+ * right, bottom, left paddings respectively.
43
+ *
44
+ * @type {number|string|Array<number|string>}
45
+ */
46
+ padding: '10%',
47
+ /**
48
+ * What coordinate system the `field` and `borderPath` should relate to. If
49
+ * `plotBox`, they will be fixed to the plot box and responsively move in
50
+ * relation to the main map. If `mapBoundingBox`, they will be fixed to the
51
+ * map bounding box, which is constant and centered in different chart sizes
52
+ * and ratios.
53
+ *
54
+ * @validvalue ["plotBox", "mapBoundingBox"]
55
+ */
56
+ relativeTo: 'mapBoundingBox',
57
+ /**
58
+ * What units to use for the `field` and `borderPath` geometries. If
59
+ * `percent` (default), they relate to the box given in `relativeTo`. If
60
+ * `pixels`, they are absolute values.
61
+ *
62
+ * @validvalue ["percent", "pixels"]
63
+ */
64
+ units: 'percent'
65
+ };
66
+ /**
67
+ * The individual MapView insets, typically used for non-contiguous areas of a
68
+ * country. Each item inherits from the generic `insetOptions`.
69
+ *
70
+ * Some of the TopoJSON files of the [Highcharts Map
71
+ * Collection](https://code.highcharts.com/mapdata/) include a property called
72
+ * `hc-recommended-mapview`, and some of these include insets. In order to
73
+ * override the recommended inset options, an inset option with a matching id
74
+ * can be applied, and it will be merged into the embedded settings.
75
+ *
76
+ * @sample maps/mapview/insets-extended
77
+ * Extending the embedded insets
78
+ * @sample maps/mapview/insets-complete
79
+ * Complete inset config from scratch
80
+ *
81
+ * @extends mapView.insetOptions
82
+ * @type Array<Object>
83
+ * @product highmaps
84
+ * @apioption mapView.insets
85
+ */
86
+ /**
87
+ * A geometry object of type `MultiLineString` defining the border path of the
88
+ * inset in terms of `units`. If undefined, a border is rendered around the
89
+ * `field` geometry. It is recommended that the `borderPath` partly follows the
90
+ * outline of the `field` in order to make pointer positioning consistent.
91
+ *
92
+ * @sample maps/mapview/insets-complete
93
+ * Complete inset config with `borderPath`
94
+ *
95
+ * @product highmaps
96
+ * @type {Object|undefined}
97
+ * @apioption mapView.insets.borderPath
98
+ */
99
+ /**
100
+ * A geometry object of type `Polygon` defining where in the chart the inset
101
+ * should be rendered, in terms of `units` and relative to the `relativeTo`
102
+ * setting. If a `borderPath` is omitted, a border is rendered around the field.
103
+ * If undefined, the inset is rendered in the full plot area.
104
+ *
105
+ * @sample maps/mapview/insets-extended
106
+ * Border path emitted, field is rendered
107
+ *
108
+ * @product highmaps
109
+ * @type {Object|undefined}
110
+ * @apioption mapView.insets.field
111
+ */
112
+ /**
113
+ * A geometry object of type `Polygon` encircling the shapes that should be
114
+ * rendered in the inset, in terms of geographic coordinates. Geometries within
115
+ * this geometry are removed from the default map view and rendered in the
116
+ * inset.
117
+ *
118
+ * @sample maps/mapview/insets-complete
119
+ * Complete inset config with `geoBounds`
120
+ *
121
+ * @product highmaps
122
+ * @type {Object}
123
+ * @apioption mapView.insets.geoBounds
124
+ */
125
+ /**
126
+ * The id of the inset, used for internal reference.
127
+ *
128
+ * @sample maps/mapview/insets-extended
129
+ * Extending recommended insets by id
130
+ *
131
+ * @product highmaps
132
+ * @type {string}
133
+ * @apioption mapView.insets.id
134
+ */
135
+ /**
136
+ * The projection options for the inset.
137
+ *
138
+ * @product highmaps
139
+ * @type {Object}
140
+ * @extends mapView.projection
141
+ * @apioption mapView.insets.projection
142
+ */
143
+ /* *
144
+ *
145
+ * Default Export
146
+ *
147
+ * */
148
+ export default defaultOptions;
@@ -22,16 +22,15 @@
22
22
  var defaultOptions = {
23
23
  /**
24
24
  * The center of the map in terms of longitude and latitude. For
25
- * preprojected maps (like in Map Collection v1.x), the units are projected
26
- * x and y units.
25
+ * preprojected maps (like the GeoJSON files in Map Collection v1.x), the
26
+ * units are projected x and y units.
27
27
  *
28
28
  * @default [0, 0]
29
29
  * @type {Highcharts.LonLatArray}
30
30
  *
31
- * @sample {highmaps} maps/mapview/center-zoom
32
- * Custom view of a world map
33
- * @sample {highmaps} maps/mapview/get-view
34
- * Report the current view of a preprojected map
31
+ * @sample {highmaps} maps/mapview/center-zoom Custom view of a world map
32
+ * @sample {highmaps} maps/mapview/get-view Report the current view of a
33
+ * preprojected map
35
34
  */
36
35
  center: [0, 0],
37
36
  /**
@@ -51,27 +50,68 @@ var defaultOptions = {
51
50
  *
52
51
  * @sample {highmaps} maps/chart/plotbackgroundcolor-color
53
52
  * Visible plot area and percentage padding
53
+ * @type {number|string|Array<number|string>}
54
54
  */
55
55
  padding: 0,
56
56
  /**
57
- * Beta feature in v9.3. The projection options allow applying client side
58
- * projection to a map given in coordinates, typically from TopoJSON or
59
- * GeoJSON.
60
- *
61
- * Sub-options are:
62
- * * `name`, which as of v9.3 can be `EqualEarth`,
63
- * `LambertConformalConic`, `Miller`, `Orthographic` or `WebMercator`.
64
- * * `parallels`, the standard parallels for the LambertConformalConic
65
- * projection.
66
- * * `rotation`, a three-axis rotation of the globe prior to projection,
67
- * which in practice can be used for example to render a world map with the
68
- * Americas centered (`[90, 0]`), or to rotate an orthographic projection.
57
+ * The projection options allow applying client side projection to a map
58
+ * given in geographic coordinates, typically from TopoJSON or GeoJSON.
69
59
  *
70
60
  * @type {Object}
71
- * @sample {highmaps} maps/demo/topojson-projection
61
+ *
62
+ * @sample maps/mapview/projection-explorer
63
+ * Projection explorer
64
+ * @sample maps/demo/topojson-projection
72
65
  * Orthographic projection
66
+ * @sample maps/mapview/projection-custom-proj4js
67
+ * Custom UTM projection definition
68
+ * @sample maps/mapview/projection-custom-d3geo
69
+ * Custom Robinson projection definition
73
70
  */
74
- projection: void 0,
71
+ projection: {
72
+ /**
73
+ * Projection name. Built-in projections are `EqualEarth`,
74
+ * `LambertConformalConic`, `Miller`, `Orthographic` and `WebMercator`.
75
+ *
76
+ * @type {string}
77
+ * @sample maps/mapview/projection-explorer
78
+ * Projection explorer
79
+ * @sample maps/mapview/projection-custom-proj4js
80
+ * Custom UTM projection definition
81
+ * @sample maps/mapview/projection-custom-d3geo
82
+ * Custom Robinson projection definition
83
+ * @sample maps/demo/topojson-projection
84
+ * Orthographic projection
85
+ */
86
+ name: void 0,
87
+ /**
88
+ * The two standard parallels that define the map layout in conic
89
+ * projections, like the LambertConformalConic projection. If only one
90
+ * number is given, the second parallel will be the same as the first.
91
+ *
92
+ * @sample maps/mapview/projection-parallels
93
+ * LCC projection with parallels
94
+ * @sample maps/mapview/projection-explorer
95
+ * Projection explorer
96
+ * @type {Array<number>}
97
+ */
98
+ parallels: void 0,
99
+ /**
100
+ * Rotation of the projection in terms of degrees `[lambda, phi,
101
+ * gamma]`. When given, a three-axis spherical rotation is be applied
102
+ * to the globe prior to the projection.
103
+ *
104
+ * * `lambda` shifts the longitudes by the given value.
105
+ * * `phi` shifts the latitudes by the given value. Can be omitted.
106
+ * * `gamma` applies a _roll_. Can be omitted.
107
+ *
108
+ * @sample maps/mapview/projection-explorer
109
+ * Projection explorer
110
+ * @sample maps/mapview/projection-america-centric
111
+ * America-centric world map
112
+ */
113
+ rotation: void 0
114
+ },
75
115
  /**
76
116
  * The zoom level of a map. Higher zoom levels means more zoomed in. An
77
117
  * increase of 1 zooms in to a quarter of the viewed area (half the width
@@ -15,9 +15,11 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
15
15
  r[k] = a[j];
16
16
  return r;
17
17
  };
18
+ import PC from '../Core/Geometry/PolygonClip.js';
19
+ var clipLineString = PC.clipLineString, clipPolygon = PC.clipPolygon;
18
20
  import registry from './Projections/ProjectionRegistry.js';
19
21
  import U from '../Core/Utilities.js';
20
- var erase = U.erase;
22
+ var clamp = U.clamp, erase = U.erase;
21
23
  var deg2rad = Math.PI * 2 / 360;
22
24
  // Safe padding on either side of the antimeridian to avoid points being
23
25
  // projected to the wrong side of the plane
@@ -47,35 +49,37 @@ var Projection = /** @class */ (function () {
47
49
  this.hasGeoProjection = false;
48
50
  this.maxLatitude = 90;
49
51
  this.options = options;
50
- var name = options.name, rotation = options.rotation;
52
+ var name = options.name, projectedBounds = options.projectedBounds, rotation = options.rotation;
51
53
  this.rotator = rotation ? this.getRotator(rotation) : void 0;
52
- this.def = name ? Projection.registry[name] : void 0;
54
+ var ProjectionDefinition = name ? Projection.registry[name] : void 0;
55
+ if (ProjectionDefinition) {
56
+ this.def = new ProjectionDefinition(options);
57
+ }
53
58
  var _a = this, def = _a.def, rotator = _a.rotator;
54
59
  if (def) {
55
- if (def.init) {
56
- def.init(options);
57
- }
58
60
  this.maxLatitude = def.maxLatitude || 90;
59
61
  this.hasGeoProjection = true;
60
62
  }
61
63
  if (rotator && def) {
62
64
  this.forward = function (lonLat) {
63
- lonLat = rotator.forward(lonLat);
64
- return def.forward(lonLat);
65
+ return def.forward(rotator.forward(lonLat));
65
66
  };
66
67
  this.inverse = function (xy) {
67
- var lonLat = def.inverse(xy);
68
- return rotator.inverse(lonLat);
68
+ return rotator.inverse(def.inverse(xy));
69
69
  };
70
70
  }
71
71
  else if (def) {
72
- this.forward = def.forward;
73
- this.inverse = def.inverse;
72
+ this.forward = function (lonLat) { return def.forward(lonLat); };
73
+ this.inverse = function (xy) { return def.inverse(xy); };
74
74
  }
75
75
  else if (rotator) {
76
76
  this.forward = rotator.forward;
77
77
  this.inverse = rotator.inverse;
78
78
  }
79
+ // Projected bounds/clipping
80
+ this.bounds = projectedBounds === 'world' ?
81
+ def && def.bounds :
82
+ projectedBounds;
79
83
  }
80
84
  // Add a projection definition to the registry, accessible by its `name`.
81
85
  Projection.add = function (name, definition) {
@@ -136,6 +140,37 @@ var Projection = /** @class */ (function () {
136
140
  var _a = options || {}, name = _a.name, rotation = _a.rotation;
137
141
  return [name, rotation && rotation.join(',')].join(';');
138
142
  };
143
+ Projection.prototype.lineIntersectsBounds = function (line) {
144
+ var _a = this.bounds || {}, x1 = _a.x1, x2 = _a.x2, y1 = _a.y1, y2 = _a.y2;
145
+ var getIntersect = function (line, dim, val) {
146
+ var p1 = line[0], p2 = line[1], otherDim = dim ? 0 : 1;
147
+ // Check if points are on either side of the line
148
+ if (typeof val === 'number' && p1[dim] >= val !== p2[dim] >= val) {
149
+ var fraction = ((val - p1[dim]) / (p2[dim] - p1[dim])), crossingVal = p1[otherDim] +
150
+ fraction * (p2[otherDim] - p1[otherDim]);
151
+ return dim ? [crossingVal, val] : [val, crossingVal];
152
+ }
153
+ };
154
+ var intersection, ret = line[0];
155
+ if ((intersection = getIntersect(line, 0, x1))) {
156
+ ret = intersection;
157
+ // Assuming line[1] was originally outside, replace it with the
158
+ // intersection point so that the horizontal intersection will
159
+ // be correct.
160
+ line[1] = intersection;
161
+ }
162
+ else if ((intersection = getIntersect(line, 0, x2))) {
163
+ ret = intersection;
164
+ line[1] = intersection;
165
+ }
166
+ if ((intersection = getIntersect(line, 1, y1))) {
167
+ ret = intersection;
168
+ }
169
+ else if ((intersection = getIntersect(line, 1, y2))) {
170
+ ret = intersection;
171
+ }
172
+ return ret;
173
+ };
139
174
  /*
140
175
  * Take the rotation options and return the appropriate projection functions
141
176
  */
@@ -174,12 +209,12 @@ var Projection = /** @class */ (function () {
174
209
  Projection.prototype.forward = function (lonLat) {
175
210
  return lonLat;
176
211
  };
177
- // Project an xy chart coordinate position to lonlat. Dynamically overridden
178
- // when projection is set.
212
+ // Unproject an xy chart coordinate position to lonlat. Dynamically
213
+ // overridden when projection is set.
179
214
  Projection.prototype.inverse = function (xy) {
180
215
  return xy;
181
216
  };
182
- Projection.prototype.clipOnAntimeridian = function (poly, isPolygon) {
217
+ Projection.prototype.cutOnAntimeridian = function (poly, isPolygon) {
183
218
  var antimeridian = 180;
184
219
  var intersections = [];
185
220
  var polygons = [poly];
@@ -201,10 +236,9 @@ var Projection = /** @class */ (function () {
201
236
  // ... and on either side of the plane
202
237
  (lon1 > 0) !== (lon2 > 0)) {
203
238
  // Interpolate to the intersection latitude
204
- var fraction = (antimeridian - previousLonLat[0]) /
205
- (lonLat[0] - previousLonLat[0]);
206
- var lat = previousLonLat[1] +
207
- fraction * (lonLat[1] - previousLonLat[1]);
239
+ var fraction = clamp((antimeridian - (lon1 + 360) % 360) /
240
+ ((lon2 + 360) % 360 - (lon1 + 360) % 360), 0, 1), lat = (previousLonLat[1] +
241
+ fraction * (lonLat[1] - previousLonLat[1]));
208
242
  intersections.push({
209
243
  i: i,
210
244
  lat: lat,
@@ -244,16 +278,23 @@ var Projection = /** @class */ (function () {
244
278
  // Insert dummy points close to the pole
245
279
  if (polarIntersection) {
246
280
  for (var i_1 = 0; i_1 < polygons.length; i_1++) {
247
- var poly_1 = polygons[i_1];
248
- var indexOf = poly_1.indexOf(polarIntersection.lonLat);
281
+ var direction = polarIntersection.direction, lat = polarIntersection.lat, poly_1 = polygons[i_1], indexOf = poly_1.indexOf(polarIntersection.lonLat);
249
282
  if (indexOf > -1) {
250
- var polarLatitude = (polarIntersection.lat < 0 ? -1 : 1) *
283
+ var polarLatitude = (lat < 0 ? -1 : 1) *
251
284
  this.maxLatitude;
252
285
  var lon1 = wrapLon(antimeridian +
253
- polarIntersection.direction * floatCorrection);
286
+ direction * floatCorrection);
254
287
  var lon2 = wrapLon(antimeridian -
255
- polarIntersection.direction * floatCorrection);
256
- var polarSegment = Projection.greatCircle([lon1, polarIntersection.lat], [lon1, polarLatitude], true).concat(Projection.greatCircle([lon2, polarLatitude], [lon2, polarIntersection.lat], true));
288
+ direction * floatCorrection);
289
+ var polarSegment = Projection.greatCircle([lon1, lat], [lon1, polarLatitude], true);
290
+ // Circle around the pole point in order to make
291
+ // polygon clipping right. Without this, Antarctica
292
+ // would wrap the wrong way in an LLC projection
293
+ // with parallels [30, 40].
294
+ for (var lon = lon1 + 120 * direction; lon > -180 && lon < 180; lon += 120 * direction) {
295
+ polarSegment.push([lon, polarLatitude]);
296
+ }
297
+ polarSegment.push.apply(polarSegment, Projection.greatCircle([lon2, polarLatitude], [lon2, polarIntersection.lat], true));
257
298
  poly_1.splice.apply(poly_1, __spreadArrays([indexOf,
258
299
  0], polarSegment));
259
300
  break;
@@ -283,18 +324,12 @@ var Projection = /** @class */ (function () {
283
324
  }
284
325
  }
285
326
  }
286
- // Insert great circles along the cuts
287
- /*
288
- if (isPolygon && polygons.length > 1 || polarIntersection) {
289
- polygons.forEach(Projection.insertGreatCircles);
290
- }
291
- */
292
327
  return polygons;
293
328
  };
294
329
  // Take a GeoJSON geometry and return a translated SVGPath
295
330
  Projection.prototype.path = function (geometry) {
296
331
  var _this = this;
297
- var _a = this, def = _a.def, rotator = _a.rotator;
332
+ var _a = this, bounds = _a.bounds, def = _a.def, rotator = _a.rotator;
298
333
  var antimeridian = 180;
299
334
  var path = [];
300
335
  var isPolygon = geometry.type === 'Polygon' ||
@@ -303,12 +338,23 @@ var Projection = /** @class */ (function () {
303
338
  // positive. It depends on whether the coordinates are
304
339
  // pre-projected.
305
340
  var hasGeoProjection = this.hasGeoProjection;
306
- // @todo better test for when to do this
307
- var projectingToPlane = this.options.name !== 'Orthographic';
341
+ // Detect whether we need to do antimeridian cutting and clipping to
342
+ // bounds. The alternative (currently for Orthographic) is to apply a
343
+ // clip angle.
344
+ var projectingToPlane = !def || def.antimeridianCutting !== false;
308
345
  // We need to rotate in a separate step before applying antimeridian
309
- // clipping
346
+ // cutting
310
347
  var preclip = projectingToPlane ? rotator : void 0;
311
348
  var postclip = projectingToPlane ? (def || this) : this;
349
+ var boundsPolygon;
350
+ if (bounds) {
351
+ boundsPolygon = [
352
+ [bounds.x1, bounds.y1],
353
+ [bounds.x2, bounds.y1],
354
+ [bounds.x2, bounds.y2],
355
+ [bounds.x1, bounds.y2]
356
+ ];
357
+ }
312
358
  var addToPath = function (polygon) {
313
359
  // Create a copy of the original coordinates. The copy applies a
314
360
  // correction of points close to the antimeridian in order to
@@ -338,7 +384,7 @@ var Projection = /** @class */ (function () {
338
384
  // Insert great circles into long straight lines
339
385
  Projection.insertGreatCircles(poly);
340
386
  if (projectingToPlane) {
341
- polygons = _this.clipOnAntimeridian(poly, isPolygon);
387
+ polygons = _this.cutOnAntimeridian(poly, isPolygon);
342
388
  }
343
389
  }
344
390
  polygons.forEach(function (poly) {
@@ -358,52 +404,98 @@ var Projection = /** @class */ (function () {
358
404
  path.push(['L', point[0], point[1]]);
359
405
  }
360
406
  };
361
- for (var i = 0; i < poly.length; i++) {
362
- var lonLat = poly[i];
363
- var point = postclip.forward(lonLat);
364
- var valid = (!isNaN(point[0]) &&
365
- !isNaN(point[1]) &&
366
- (!hasGeoProjection ||
367
- // Limited projections like Web Mercator
368
- (lonLat[1] <= _this.maxLatitude &&
369
- lonLat[1] >= -_this.maxLatitude)));
370
- if (valid) {
371
- // In order to be able to interpolate if the first or
372
- // last point is invalid (on the far side of the globe
373
- // in an orthographic projection), we need to push the
374
- // first valid point to the end of the polygon.
375
- if (isPolygon && !firstValidLonLat) {
376
- firstValidLonLat = lonLat;
377
- poly.push(lonLat);
407
+ var someOutside = false, someInside = false;
408
+ var points = poly.map(function (lonLat) {
409
+ var xy = postclip.forward(lonLat);
410
+ if (xy.outside) {
411
+ someOutside = true;
412
+ }
413
+ else {
414
+ someInside = true;
415
+ }
416
+ // Mercator projects pole points to Infinity, and
417
+ // clipPolygon is not able to handle it.
418
+ if (xy[1] === Infinity) {
419
+ xy[1] = 10e9;
420
+ }
421
+ else if (xy[1] === -Infinity) {
422
+ xy[1] = -10e9;
423
+ }
424
+ return xy;
425
+ });
426
+ if (projectingToPlane) {
427
+ // Wrap around in order for pointInPolygon to work
428
+ if (isPolygon) {
429
+ points.push(points[0]);
430
+ }
431
+ if (someOutside) {
432
+ // All points are outside
433
+ if (!someInside) {
434
+ return;
378
435
  }
379
- // When entering the first valid point after a gap of
380
- // invalid points, typically on the far side of the
381
- // globe in an orthographic projection.
382
- if (gap && lastValidLonLat) {
383
- // For areas, in an orthographic projection, the
384
- // great circle between two visible points will be
385
- // close to the horizon. A possible exception may be
386
- // when the two points are on opposite sides of the
387
- // globe. It that poses a problem, we may have to
388
- // rewrite this to use the small circle related to
389
- // the current lon0 and lat0.
390
- if (isPolygon && hasGeoProjection) {
391
- var greatCircle = Projection.greatCircle(lastValidLonLat, lonLat);
392
- greatCircle.forEach(function (lonLat) {
393
- return pushToPath(postclip.forward(lonLat));
394
- });
395
- // For lines, just jump over the gap
436
+ // Some inside, some outside. Clip to the bounds.
437
+ if (boundsPolygon) {
438
+ // Polygons
439
+ if (isPolygon) {
440
+ points = clipPolygon(points, boundsPolygon);
441
+ // Linestrings
396
442
  }
397
- else {
398
- movedTo = false;
443
+ else if (bounds) {
444
+ clipLineString(points, boundsPolygon)
445
+ .forEach(function (points) {
446
+ movedTo = false;
447
+ points.forEach(pushToPath);
448
+ });
449
+ return;
399
450
  }
400
451
  }
401
- pushToPath(point);
402
- lastValidLonLat = lonLat;
403
- gap = false;
404
452
  }
405
- else {
406
- gap = true;
453
+ points.forEach(pushToPath);
454
+ // For orthographic projection, or when a clipAngle applies
455
+ }
456
+ else {
457
+ for (var i = 0; i < points.length; i++) {
458
+ var lonLat = poly[i], point = points[i];
459
+ if (!point.outside) {
460
+ // In order to be able to interpolate if the first
461
+ // or last point is invalid (on the far side of the
462
+ // globe in an orthographic projection), we need to
463
+ // push the first valid point to the end of the
464
+ // polygon.
465
+ if (isPolygon && !firstValidLonLat) {
466
+ firstValidLonLat = lonLat;
467
+ poly.push(lonLat);
468
+ points.push(point);
469
+ }
470
+ // When entering the first valid point after a gap
471
+ // of invalid points, typically on the far side of
472
+ // the globe in an orthographic projection.
473
+ if (gap && lastValidLonLat) {
474
+ // For areas, in an orthographic projection, the
475
+ // great circle between two visible points will
476
+ // be close to the horizon. A possible exception
477
+ // may be when the two points are on opposite
478
+ // sides of the globe. It that poses a problem,
479
+ // we may have to rewrite this to use the small
480
+ // circle related to the current lon0 and lat0.
481
+ if (isPolygon && hasGeoProjection) {
482
+ var greatCircle = Projection.greatCircle(lastValidLonLat, lonLat);
483
+ greatCircle.forEach(function (lonLat) {
484
+ return pushToPath(postclip.forward(lonLat));
485
+ });
486
+ // For lines, just jump over the gap
487
+ }
488
+ else {
489
+ movedTo = false;
490
+ }
491
+ }
492
+ pushToPath(point);
493
+ lastValidLonLat = lonLat;
494
+ gap = false;
495
+ }
496
+ else {
497
+ gap = true;
498
+ }
407
499
  }
408
500
  }
409
501
  });
@@ -9,8 +9,16 @@
9
9
  * */
10
10
  'use strict';
11
11
  var A1 = 1.340264, A2 = -0.081106, A3 = 0.000893, A4 = 0.003796, M = Math.sqrt(3) / 2.0, scale = 74.03120656864502;
12
- var EqualEarth = {
13
- forward: function (lonLat) {
12
+ var EqualEarth = /** @class */ (function () {
13
+ function EqualEarth() {
14
+ this.bounds = {
15
+ x1: -200.37508342789243,
16
+ x2: 200.37508342789243,
17
+ y1: -97.52595454902263,
18
+ y2: 97.52595454902263
19
+ };
20
+ }
21
+ EqualEarth.prototype.forward = function (lonLat) {
14
22
  var d = Math.PI / 180, paramLat = Math.asin(M * Math.sin(lonLat[1] * d)), paramLatSq = paramLat * paramLat, paramLatPow6 = paramLatSq * paramLatSq * paramLatSq;
15
23
  var x = lonLat[0] * d * Math.cos(paramLat) * scale / (M *
16
24
  (A1 +
@@ -18,8 +26,8 @@ var EqualEarth = {
18
26
  paramLatPow6 * (7 * A3 + 9 * A4 * paramLatSq)));
19
27
  var y = paramLat * scale * (A1 + A2 * paramLatSq + paramLatPow6 * (A3 + A4 * paramLatSq));
20
28
  return [x, y];
21
- },
22
- inverse: function (xy) {
29
+ };
30
+ EqualEarth.prototype.inverse = function (xy) {
23
31
  var x = xy[0] / scale, y = xy[1] / scale, d = 180 / Math.PI, epsilon = 1e-9, iterations = 12;
24
32
  var paramLat = y, paramLatSq, paramLatPow6, fy, fpy, dlat, i;
25
33
  for (i = 0; i < iterations; ++i) {
@@ -37,6 +45,7 @@ var EqualEarth = {
37
45
  var lon = d * M * x * (A1 + 3 * A2 * paramLatSq + paramLatPow6 * (7 * A3 + 9 * A4 * paramLatSq)) / Math.cos(paramLat);
38
46
  var lat = d * Math.asin(Math.sin(paramLat) / M);
39
47
  return [lon, lat];
40
- }
41
- };
48
+ };
49
+ return EqualEarth;
50
+ }());
42
51
  export default EqualEarth;