highcharts 8.1.0 → 8.2.2

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 (854) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +12 -0
  3. package/css/highcharts.scss +12 -0
  4. package/css/themes/dark-unica.css +12 -0
  5. package/css/themes/grid-light.css +12 -0
  6. package/css/themes/sand-signika.css +12 -0
  7. package/es-modules/{modules/accessibility/a11y-i18n.js → Accessibility/A11yI18n.js} +2 -2
  8. package/es-modules/{modules/accessibility/accessibility.js → Accessibility/Accessibility.js} +24 -21
  9. package/es-modules/{modules/accessibility → Accessibility}/AccessibilityComponent.js +73 -17
  10. package/es-modules/{modules/accessibility/components → Accessibility/Components}/AnnotationsA11y.js +2 -4
  11. package/es-modules/{modules/accessibility/components → Accessibility/Components}/ContainerComponent.js +8 -9
  12. package/es-modules/{modules/accessibility/components → Accessibility/Components}/InfoRegionsComponent.js +9 -12
  13. package/es-modules/{modules/accessibility/components → Accessibility/Components}/LegendComponent.js +60 -22
  14. package/es-modules/{modules/accessibility/components → Accessibility/Components}/MenuComponent.js +4 -11
  15. package/es-modules/{modules/accessibility/components → Accessibility/Components}/RangeSelectorComponent.js +8 -7
  16. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +171 -0
  17. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/NewDataAnnouncer.js +8 -7
  18. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/SeriesComponent.js +5 -5
  19. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/SeriesDescriber.js +6 -6
  20. package/es-modules/{modules/accessibility/components → Accessibility/Components}/SeriesComponent/SeriesKeyboardNavigation.js +22 -20
  21. package/es-modules/{modules/accessibility/components → Accessibility/Components}/ZoomComponent.js +9 -8
  22. package/es-modules/{modules/accessibility/focusBorder.js → Accessibility/FocusBorder.js} +13 -10
  23. package/es-modules/{modules/accessibility/high-contrast-mode.js → Accessibility/HighContrastMode.js} +3 -2
  24. package/es-modules/{modules/accessibility/high-contrast-theme.js → Accessibility/HighContrastTheme.js} +0 -0
  25. package/es-modules/{modules/accessibility → Accessibility}/KeyboardNavigation.js +35 -22
  26. package/es-modules/{modules/accessibility → Accessibility}/KeyboardNavigationHandler.js +1 -1
  27. package/es-modules/{modules/accessibility/options/deprecatedOptions.js → Accessibility/Options/DeprecatedOptions.js} +10 -20
  28. package/es-modules/{modules/accessibility/options/langOptions.js → Accessibility/Options/LangOptions.js} +1 -1
  29. package/es-modules/{modules/accessibility/options/options.js → Accessibility/Options/Options.js} +1 -2
  30. package/es-modules/{modules/accessibility/utils → Accessibility/Utils}/Announcer.js +2 -2
  31. package/es-modules/{modules/accessibility/utils/chartUtilities.js → Accessibility/Utils/ChartUtilities.js} +8 -9
  32. package/es-modules/{modules/accessibility/utils → Accessibility/Utils}/DOMElementProvider.js +5 -5
  33. package/es-modules/{modules/accessibility/utils → Accessibility/Utils}/EventProvider.js +2 -2
  34. package/es-modules/{modules/accessibility/utils/htmlUtilities.js → Accessibility/Utils/HTMLUtilities.js} +3 -4
  35. package/es-modules/Core/Animation/AnimationUtilities.js +193 -0
  36. package/es-modules/Core/Animation/Fx.js +378 -0
  37. package/es-modules/{parts → Core/Axis}/Axis.js +153 -89
  38. package/es-modules/{parts-3d → Core/Axis}/Axis3D.js +12 -7
  39. package/es-modules/{modules/broken-axis.src.js → Core/Axis/BrokenAxis.js} +6 -8
  40. package/es-modules/{parts-map → Core/Axis}/ColorAxis.js +28 -31
  41. package/es-modules/{parts → Core/Axis}/DateTimeAxis.js +1 -1
  42. package/es-modules/{parts-gantt → Core/Axis}/GridAxis.js +136 -39
  43. package/es-modules/{parts-more → Core/Axis}/HiddenAxis.js +0 -0
  44. package/es-modules/{parts → Core/Axis}/LogarithmicAxis.js +1 -1
  45. package/es-modules/{parts-map → Core/Axis}/MapAxis.js +2 -2
  46. package/es-modules/{parts → Core/Axis}/NavigatorAxis.js +2 -2
  47. package/es-modules/{parts → Core/Axis}/OrdinalAxis.js +241 -224
  48. package/es-modules/{parts → Core/Axis}/PlotLineOrBand.js +24 -15
  49. package/es-modules/{parts-more → Core/Axis}/RadialAxis.js +34 -27
  50. package/es-modules/{parts → Core/Axis}/ScrollbarAxis.js +2 -2
  51. package/es-modules/{parts → Core/Axis}/StackingAxis.js +11 -2
  52. package/es-modules/{parts → Core/Axis}/Tick.js +14 -14
  53. package/es-modules/{parts-3d → Core/Axis}/Tick3D.js +1 -1
  54. package/es-modules/{parts-gantt → Core/Axis}/TreeGridAxis.js +81 -15
  55. package/es-modules/{parts-gantt → Core/Axis}/TreeGridTick.js +1 -1
  56. package/es-modules/{parts-3d → Core/Axis}/ZAxis.js +2 -2
  57. package/es-modules/{parts → Core/Chart}/Chart.js +225 -227
  58. package/es-modules/Core/Chart/Chart3D.js +1674 -0
  59. package/es-modules/{parts-gantt → Core/Chart}/GanttChart.js +13 -12
  60. package/es-modules/{parts → Core/Chart}/StockChart.js +26 -25
  61. package/es-modules/Core/Color/Color.js +419 -0
  62. package/es-modules/Core/Color/ColorType.js +9 -0
  63. package/es-modules/{parts → Core}/Color.js +1 -1
  64. package/es-modules/{parts → Core}/Dynamics.js +91 -61
  65. package/es-modules/{parts → Core}/Globals.js +9 -1
  66. package/es-modules/{parts → Core}/Interaction.js +27 -20
  67. package/es-modules/{parts → Core}/Legend.js +26 -11
  68. package/es-modules/{parts → Core}/MSPointer.js +2 -2
  69. package/es-modules/{parts → Core}/Navigator.js +24 -14
  70. package/es-modules/{parts → Core}/Options.js +157 -69
  71. package/es-modules/{parts → Core}/Pointer.js +50 -27
  72. package/es-modules/Core/Renderer/DOMElementType.js +9 -0
  73. package/es-modules/Core/Renderer/HTML/HTMLElement.js +220 -0
  74. package/es-modules/{parts/Html.js → Core/Renderer/HTML/HTMLRenderer.js} +16 -207
  75. package/es-modules/{parts → Core/Renderer/SVG}/SVGElement.js +186 -32
  76. package/es-modules/Core/Renderer/SVG/SVGLabel.js +410 -0
  77. package/es-modules/{parts/SvgRenderer.js → Core/Renderer/SVG/SVGRenderer.js} +426 -886
  78. package/es-modules/{parts-3d/SVGRenderer.js → Core/Renderer/SVG/SVGRenderer3D.js} +31 -23
  79. package/es-modules/{parts → Core}/Responsive.js +24 -14
  80. package/es-modules/{parts → Core}/Scrollbar.js +5 -4
  81. package/es-modules/Core/Series/BaseSeries.js +157 -0
  82. package/es-modules/{parts/Series.js → Core/Series/CartesianSeries.js} +119 -55
  83. package/es-modules/{parts → Core/Series}/DataLabels.js +40 -36
  84. package/es-modules/{parts → Core/Series}/Point.js +8 -10
  85. package/es-modules/Core/Series/Series.js +158 -0
  86. package/es-modules/{parts-3d/Series.js → Core/Series/Series3D.js} +5 -3
  87. package/es-modules/{parts → Core}/Time.js +11 -133
  88. package/es-modules/{parts → Core}/Tooltip.js +30 -27
  89. package/es-modules/{parts → Core}/Utilities.js +103 -562
  90. package/es-modules/{mixins/ajax.js → Extensions/Ajax.js} +9 -4
  91. package/es-modules/{annotations/annotations.src.js → Extensions/Annotations/Annotations.js} +901 -709
  92. package/es-modules/{annotations → Extensions/Annotations}/ControlPoint.js +2 -2
  93. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +117 -0
  94. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +111 -0
  95. package/es-modules/{annotations/controllable → Extensions/Annotations/Controllables}/ControllableLabel.js +186 -146
  96. package/es-modules/{annotations/controllable → Extensions/Annotations/Controllables}/ControllablePath.js +81 -42
  97. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +121 -0
  98. package/es-modules/{annotations/controllable/controllableMixin.js → Extensions/Annotations/Mixins/ControllableMixin.js} +8 -9
  99. package/es-modules/{annotations/eventEmitterMixin.js → Extensions/Annotations/Mixins/EventEmitterMixin.js} +7 -7
  100. package/es-modules/{annotations/controllable/markerMixin.js → Extensions/Annotations/Mixins/MarkerMixin.js} +10 -8
  101. package/es-modules/{annotations → Extensions/Annotations}/MockPoint.js +6 -6
  102. package/es-modules/{annotations/navigationBindings.js → Extensions/Annotations/NavigationBindings.js} +27 -16
  103. package/es-modules/{annotations/popup.js → Extensions/Annotations/Popup.js} +9 -9
  104. package/es-modules/{annotations/types → Extensions/Annotations/Types}/BasicAnnotation.js +68 -20
  105. package/es-modules/{annotations/types → Extensions/Annotations/Types}/CrookedLine.js +46 -19
  106. package/es-modules/{annotations/types → Extensions/Annotations/Types}/ElliottWave.js +33 -12
  107. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Fibonacci.js +54 -22
  108. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +147 -0
  109. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Measure.js +82 -52
  110. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Pitchfork.js +69 -32
  111. package/es-modules/{annotations/types → Extensions/Annotations/Types}/Tunnel.js +58 -30
  112. package/es-modules/{annotations/types → Extensions/Annotations/Types}/VerticalLine.js +64 -33
  113. package/es-modules/{parts-gantt → Extensions}/ArrowSymbols.js +9 -11
  114. package/es-modules/{modules/boost/boost.js → Extensions/Boost/Boost.js} +8 -8
  115. package/es-modules/{modules/boost/boost-attach.js → Extensions/Boost/BoostAttach.js} +10 -8
  116. package/es-modules/{modules/boost/boost-init.js → Extensions/Boost/BoostInit.js} +7 -6
  117. package/es-modules/{modules/boost/boost-options.js → Extensions/Boost/BoostOptions.js} +1 -1
  118. package/es-modules/{modules/boost/boost-overrides.js → Extensions/Boost/BoostOverrides.js} +14 -11
  119. package/es-modules/{modules/boost/boost-utils.js → Extensions/Boost/BoostUtils.js} +6 -6
  120. package/es-modules/{modules/boost/boostable-map.js → Extensions/Boost/BoostableMap.js} +1 -1
  121. package/es-modules/{modules/boost/boostables.js → Extensions/Boost/Boostables.js} +0 -0
  122. package/es-modules/{modules/boost/named-colors.js → Extensions/Boost/NamedColors.js} +1 -1
  123. package/es-modules/{modules/boost/wgl-renderer.js → Extensions/Boost/WGLRenderer.js} +9 -9
  124. package/es-modules/{modules/boost/wgl-shader.js → Extensions/Boost/WGLShader.js} +3 -4
  125. package/es-modules/{modules/boost/wgl-vbuffer.js → Extensions/Boost/WGLVBuffer.js} +0 -0
  126. package/es-modules/{modules/boost-canvas.src.js → Extensions/BoostCanvas.js} +13 -9
  127. package/es-modules/{parts-gantt/CurrentDateIndicator.js → Extensions/CurrentDateIndication.js} +5 -7
  128. package/es-modules/{modules/data.src.js → Extensions/Data.js} +14 -16
  129. package/es-modules/{parts → Extensions}/DataGrouping.js +12 -9
  130. package/es-modules/{modules/debugger.src.js → Extensions/Debugger.js} +6 -6
  131. package/es-modules/{mixins/download-url.js → Extensions/DownloadURL.js} +15 -7
  132. package/es-modules/{modules/drag-panes.src.js → Extensions/DragPanes.js} +6 -6
  133. package/es-modules/{modules/draggable-points.src.js → Extensions/DraggablePoints.js} +21 -32
  134. package/es-modules/{modules/drilldown.src.js → Extensions/Drilldown.js} +64 -43
  135. package/es-modules/{modules/export-data.src.js → Extensions/ExportData.js} +126 -26
  136. package/es-modules/{modules/exporting.src.js → Extensions/Exporting.js} +26 -12
  137. package/es-modules/{modules/full-screen.src.js → Extensions/FullScreen.js} +5 -3
  138. package/es-modules/{parts-map → Extensions}/GeoJSON.js +112 -7
  139. package/es-modules/{modules/marker-clusters.src.js → Extensions/MarkerClusters.js} +29 -39
  140. package/es-modules/{parts-3d/Math.js → Extensions/Math3D.js} +17 -9
  141. package/es-modules/{modules/no-data-to-display.src.js → Extensions/NoDataToDisplay.js} +14 -15
  142. package/es-modules/{modules/offline-exporting.src.js → Extensions/OfflineExporting.js} +39 -35
  143. package/es-modules/{modules/oldie.src.js → Extensions/Oldie/Oldie.js} +19 -12
  144. package/es-modules/{parts-3d → Extensions/Oldie}/VMLAxis3D.js +1 -1
  145. package/es-modules/Extensions/Oldie/VMLRenderer3D.js +46 -0
  146. package/es-modules/{modules/oldie-polyfills.src.js → Extensions/OldiePolyfills.js} +5 -0
  147. package/es-modules/{modules/overlapping-datalabels.src.js → Extensions/OverlappingDataLabels.js} +14 -13
  148. package/es-modules/{parts-more → Extensions}/Pane.js +13 -12
  149. package/es-modules/{modules/parallel-coordinates.src.js → Extensions/ParallelCoordinates.js} +140 -138
  150. package/es-modules/{modules/pattern-fill.src.js → Extensions/PatternFill.js} +23 -15
  151. package/es-modules/{parts-more → Extensions}/Polar.js +15 -12
  152. package/es-modules/{modules/price-indicator.src.js → Extensions/PriceIndication.js} +5 -3
  153. package/es-modules/{parts → Extensions}/RangeSelector.js +112 -79
  154. package/es-modules/{parts → Extensions}/ScrollablePlotArea.js +19 -9
  155. package/es-modules/{modules/series-label.src.js → Extensions/SeriesLabel.js} +14 -10
  156. package/es-modules/{modules/sonification/chartSonify.js → Extensions/Sonification/ChartSonify.js} +212 -41
  157. package/es-modules/{modules/sonification → Extensions/Sonification}/Earcon.js +3 -7
  158. package/es-modules/{modules/sonification → Extensions/Sonification}/Instrument.js +35 -11
  159. package/es-modules/{modules/sonification/instrumentDefinitions.js → Extensions/Sonification/InstrumentDefinitions.js} +1 -1
  160. package/es-modules/{modules/sonification/musicalFrequencies.js → Extensions/Sonification/MusicalFrequencies.js} +0 -0
  161. package/es-modules/Extensions/Sonification/Options.js +34 -0
  162. package/es-modules/{modules/sonification/pointSonify.js → Extensions/Sonification/PointSonify.js} +43 -28
  163. package/es-modules/{modules/sonification/sonification.js → Extensions/Sonification/Sonification.js} +16 -12
  164. package/es-modules/{modules/sonification → Extensions/Sonification}/Timeline.js +25 -6
  165. package/es-modules/{modules/sonification/utilities.js → Extensions/Sonification/Utilities.js} +8 -5
  166. package/es-modules/{parts → Extensions}/Stacking.js +57 -18
  167. package/es-modules/{modules/static-scale.src.js → Extensions/StaticScale.js} +4 -4
  168. package/es-modules/{themes/avocado.js → Extensions/Themes/Avocado.js} +5 -4
  169. package/es-modules/{themes/dark-blue.js → Extensions/Themes/DarkBlue.js} +4 -2
  170. package/es-modules/{themes/dark-green.js → Extensions/Themes/DarkGreen.js} +4 -2
  171. package/es-modules/{themes/dark-unica.js → Extensions/Themes/DarkUnica.js} +6 -6
  172. package/es-modules/{themes/gray.js → Extensions/Themes/Gray.js} +5 -4
  173. package/es-modules/{themes/grid.js → Extensions/Themes/Grid.js} +4 -2
  174. package/es-modules/{themes/grid-light.js → Extensions/Themes/GridLight.js} +4 -2
  175. package/es-modules/{themes/high-contrast-dark.js → Extensions/Themes/HighContrastDark.js} +5 -4
  176. package/es-modules/{themes/high-contrast-light.js → Extensions/Themes/HighContrastLight.js} +4 -2
  177. package/es-modules/{themes/sand-signika.js → Extensions/Themes/SandSignika.js} +4 -2
  178. package/es-modules/{themes/skies.js → Extensions/Themes/Skies.js} +5 -3
  179. package/es-modules/{themes/sunset.js → Extensions/Themes/Sunset.js} +5 -4
  180. package/es-modules/{parts-gantt/Pathfinder.js → Gantt/Connection.js} +41 -284
  181. package/es-modules/Gantt/Pathfinder.js +816 -0
  182. package/es-modules/Gantt/PathfinderAlgorithms.js +659 -0
  183. package/es-modules/{parts-gantt → Gantt}/Tree.js +1 -1
  184. package/es-modules/{parts-map → Maps}/Map.js +24 -15
  185. package/es-modules/{parts-map → Maps}/MapNavigation.js +4 -5
  186. package/es-modules/{parts-map → Maps}/MapPointer.js +2 -4
  187. package/es-modules/{mixins/centered-series.js → Mixins/CenteredSeries.js} +7 -5
  188. package/es-modules/{parts-map/ColorMapSeriesMixin.js → Mixins/ColorMapSeries.js} +10 -6
  189. package/es-modules/{parts-map/ColorSeriesMixin.js → Mixins/ColorSeries.js} +12 -4
  190. package/es-modules/{mixins/derived-series.js → Mixins/DerivedSeries.js} +3 -3
  191. package/es-modules/{mixins/draw-point.js → Mixins/DrawPoint.js} +6 -1
  192. package/es-modules/{mixins/geometry.js → Mixins/Geometry.js} +0 -0
  193. package/es-modules/{mixins/geometry-circles.js → Mixins/GeometryCircles.js} +2 -2
  194. package/es-modules/{mixins/indicator-required.js → Mixins/IndicatorRequired.js} +1 -1
  195. package/es-modules/{mixins/legend-symbol.js → Mixins/LegendSymbol.js} +6 -10
  196. package/es-modules/{mixins/multipe-lines.js → Mixins/MultipleLines.js} +2 -2
  197. package/es-modules/{mixins/navigation.js → Mixins/Navigation.js} +0 -0
  198. package/es-modules/{mixins/nelder-mead.js → Mixins/NelderMead.js} +2 -2
  199. package/es-modules/{mixins/nodes.js → Mixins/Nodes.js} +7 -5
  200. package/es-modules/{mixins/on-series.js → Mixins/OnSeries.js} +3 -2
  201. package/es-modules/{mixins/polygon.js → Mixins/Polygon.js} +2 -2
  202. package/es-modules/{mixins/reduce-array.js → Mixins/ReduceArray.js} +1 -1
  203. package/es-modules/{mixins/tree-series.js → Mixins/TreeSeries.js} +2 -2
  204. package/es-modules/{parts-more → Series}/AreaRangeSeries.js +75 -38
  205. package/es-modules/{parts → Series}/AreaSeries.js +43 -25
  206. package/es-modules/{parts-more → Series}/AreaSplineRangeSeries.js +47 -10
  207. package/es-modules/{parts → Series}/AreaSplineSeries.js +49 -10
  208. package/es-modules/{parts → Series}/BarSeries.js +2 -5
  209. package/es-modules/{modules/bellcurve.src.js → Series/BellcurveSeries.js} +47 -7
  210. package/es-modules/{parts-more → Series}/BoxPlotSeries.js +18 -13
  211. package/es-modules/{parts-more → Series/Bubble}/BubbleLegend.js +11 -9
  212. package/es-modules/{parts-more → Series/Bubble}/BubbleSeries.js +25 -27
  213. package/es-modules/{modules/bullet.src.js → Series/BulletSeries.js} +9 -8
  214. package/es-modules/{parts → Series}/CandlestickSeries.js +11 -8
  215. package/es-modules/{parts-3d/Column.js → Series/Column3DSeries.js} +108 -28
  216. package/es-modules/{parts-more → Series}/ColumnPyramidSeries.js +9 -9
  217. package/es-modules/{parts-more → Series}/ColumnRangeSeries.js +21 -18
  218. package/es-modules/{parts → Series}/ColumnSeries.js +119 -41
  219. package/es-modules/{modules/cylinder.src.js → Series/CylinderSeries.js} +14 -14
  220. package/es-modules/{modules/dependency-wheel.src.js → Series/DependencyWheelSeries.js} +14 -12
  221. package/es-modules/{modules/dotplot.src.js → Series/DotplotSeries.js} +7 -15
  222. package/es-modules/{modules/dumbbell.src.js → Series/DumbbellSeries.js} +16 -10
  223. package/es-modules/{parts-more → Series}/ErrorBarSeries.js +8 -8
  224. package/es-modules/{parts → Series}/FlagsSeries.js +18 -12
  225. package/es-modules/{modules/funnel3d.src.js → Series/Funnel3DSeries.js} +14 -16
  226. package/es-modules/{modules/funnel.src.js → Series/FunnelSeries.js} +16 -14
  227. package/es-modules/{parts-gantt → Series}/GanttSeries.js +21 -20
  228. package/es-modules/{parts-more → Series}/GaugeSeries.js +14 -12
  229. package/es-modules/{parts-map → Series}/HeatmapSeries.js +23 -16
  230. package/es-modules/{modules/histogram.src.js → Series/HistogramSeries.js} +13 -9
  231. package/es-modules/{modules/item-series.src.js → Series/ItemSeries.js} +22 -14
  232. package/es-modules/Series/LineSeries.js +13 -0
  233. package/es-modules/{modules/lollipop.src.js → Series/LollipopSeries.js} +34 -10
  234. package/es-modules/{parts-map → Series}/MapBubbleSeries.js +8 -9
  235. package/es-modules/{parts-map → Series}/MapLineSeries.js +5 -7
  236. package/es-modules/{parts-map → Series}/MapPointSeries.js +9 -8
  237. package/es-modules/{parts-map → Series}/MapSeries.js +22 -18
  238. package/es-modules/{modules/networkgraph/draggable-nodes.js → Series/Networkgraph/DraggableNodes.js} +15 -30
  239. package/es-modules/{modules/networkgraph/integrations.js → Series/Networkgraph/Integrations.js} +1 -1
  240. package/es-modules/{modules/networkgraph/layouts.js → Series/Networkgraph/Layouts.js} +43 -13
  241. package/es-modules/{modules/networkgraph/networkgraph.src.js → Series/Networkgraph/Networkgraph.js} +29 -23
  242. package/es-modules/{modules/networkgraph → Series/Networkgraph}/QuadTree.js +2 -2
  243. package/es-modules/{parts → Series}/OHLCSeries.js +5 -7
  244. package/es-modules/{modules/organization.src.js → Series/OrganizationSeries.js} +10 -7
  245. package/es-modules/{parts-more → Series}/PackedBubbleSeries.js +104 -28
  246. package/es-modules/{modules/pareto.src.js → Series/ParetoSeries.js} +10 -9
  247. package/es-modules/{parts-3d/Pie.js → Series/Pie3DSeries.js} +5 -4
  248. package/es-modules/{parts → Series}/PieSeries.js +66 -31
  249. package/es-modules/{parts-more → Series}/PolygonSeries.js +13 -13
  250. package/es-modules/{modules/pyramid3d.src.js → Series/Pyramid3DSeries.js} +5 -7
  251. package/es-modules/{modules/sankey.src.js → Series/SankeySeries.js} +23 -21
  252. package/es-modules/{parts-3d/Scatter.js → Series/Scatter3DSeries.js} +10 -9
  253. package/es-modules/{parts → Series}/ScatterSeries.js +15 -10
  254. package/es-modules/{modules/solid-gauge.src.js → Series/SolidGaugeSeries.js} +112 -78
  255. package/es-modules/{parts → Series}/SplineSeries.js +9 -7
  256. package/es-modules/{modules/streamgraph.src.js → Series/StreamgraphSeries.js} +42 -6
  257. package/es-modules/{modules/sunburst.src.js → Series/SunburstSeries.js} +20 -13
  258. package/es-modules/{modules/tilemap.src.js → Series/TilemapSeries.js} +12 -9
  259. package/es-modules/{modules/timeline.src.js → Series/TimelineSeries.js} +16 -11
  260. package/es-modules/{modules/treemap.src.js → Series/TreemapSeries.js} +47 -40
  261. package/es-modules/{modules/variable-pie.src.js → Series/VariablePieSeries.js} +11 -8
  262. package/es-modules/{modules/variwide.src.js → Series/VariwideSeries.js} +12 -10
  263. package/es-modules/{modules/vector.src.js → Series/VectorSeries.js} +11 -7
  264. package/es-modules/{modules/venn.src.js → Series/VennSeries.js} +29 -20
  265. package/es-modules/{parts-more → Series}/WaterfallSeries.js +145 -66
  266. package/es-modules/{modules/windbarb.src.js → Series/WindbarbSeries.js} +13 -9
  267. package/es-modules/{modules/wordcloud.src.js → Series/WordcloudSeries.js} +17 -13
  268. package/es-modules/{modules/xrange.src.js → Series/XRangeSeries.js} +16 -12
  269. package/es-modules/{indicators/acceleration-bands.src.js → Stock/Indicators/ABIndicator.js} +8 -8
  270. package/es-modules/{indicators/accumulation-distribution.src.js → Stock/Indicators/ADIndicator.js} +5 -4
  271. package/es-modules/{indicators/ao.src.js → Stock/Indicators/AOIndicator.js} +6 -5
  272. package/es-modules/{indicators/apo.src.js → Stock/Indicators/APOIndicator.js} +8 -8
  273. package/es-modules/{indicators/atr.src.js → Stock/Indicators/ATRIndicator.js} +6 -6
  274. package/es-modules/{indicators/aroon.src.js → Stock/Indicators/AroonIndicator.js} +7 -6
  275. package/es-modules/{indicators/aroon-oscillator.src.js → Stock/Indicators/AroonOscillatorIndicator.js} +8 -8
  276. package/es-modules/{indicators/bollinger-bands.src.js → Stock/Indicators/BBIndicator.js} +8 -8
  277. package/es-modules/{indicators/cci.src.js → Stock/Indicators/CCIIndicator.js} +5 -4
  278. package/es-modules/{indicators/cmf.src.js → Stock/Indicators/CMFIndicator.js} +3 -4
  279. package/es-modules/{indicators/chaikin.src.js → Stock/Indicators/ChaikinIndicator.js} +10 -9
  280. package/es-modules/{indicators/dema.src.js → Stock/Indicators/DEMAIndicator.js} +8 -8
  281. package/es-modules/{indicators/dpo.src.js → Stock/Indicators/DPOIndicator.js} +5 -4
  282. package/es-modules/{indicators/ema.src.js → Stock/Indicators/EMAIndicator.js} +4 -4
  283. package/es-modules/{indicators/ichimoku-kinko-hyo.src.js → Stock/Indicators/IKHIndicator.js} +23 -20
  284. package/es-modules/{indicators/keltner-channels.src.js → Stock/Indicators/KeltnerChannelsIndicator.js} +11 -8
  285. package/es-modules/{indicators/macd.src.js → Stock/Indicators/MACDIndicator.js} +9 -6
  286. package/es-modules/{indicators/mfi.src.js → Stock/Indicators/MFIIndicator.js} +5 -4
  287. package/es-modules/{indicators/momentum.src.js → Stock/Indicators/MomentumIndicator.js} +5 -4
  288. package/es-modules/{indicators/natr.src.js → Stock/Indicators/NATRIndicator.js} +4 -6
  289. package/es-modules/{indicators/price-channel.src.js → Stock/Indicators/PCIndicator.js} +9 -8
  290. package/es-modules/{indicators/ppo.src.js → Stock/Indicators/PPOIndicator.js} +8 -8
  291. package/es-modules/{indicators/psar.src.js → Stock/Indicators/PSARIndicator.js} +3 -4
  292. package/es-modules/{indicators/pivot-points.src.js → Stock/Indicators/PivotPointsIndicator.js} +6 -6
  293. package/es-modules/{indicators/price-envelopes.src.js → Stock/Indicators/PriceEnvelopesIndicator.js} +6 -6
  294. package/es-modules/{indicators/roc.src.js → Stock/Indicators/ROCIndicator.js} +5 -4
  295. package/es-modules/{indicators/rsi.src.js → Stock/Indicators/RSIIndicator.js} +5 -4
  296. package/es-modules/{indicators/regressions.src.js → Stock/Indicators/RegressionIndicators.js} +8 -7
  297. package/es-modules/{indicators/indicators.src.js → Stock/Indicators/SMAIndicator.js} +12 -8
  298. package/es-modules/{indicators/slow-stochastic.src.js → Stock/Indicators/SlowStochasticIndicator.js} +6 -8
  299. package/es-modules/{indicators/stochastic.src.js → Stock/Indicators/StochasticIndicator.js} +9 -9
  300. package/es-modules/{indicators/supertrend.src.js → Stock/Indicators/SupertrendIndicator.js} +8 -7
  301. package/es-modules/{indicators/tema.src.js → Stock/Indicators/TEMAIndicator.js} +8 -8
  302. package/es-modules/{indicators/trix.src.js → Stock/Indicators/TRIXIndicator.js} +8 -8
  303. package/es-modules/{indicators/trendline.src.js → Stock/Indicators/TrendLineIndicator.js} +5 -4
  304. package/es-modules/{indicators/volume-by-price.src.js → Stock/Indicators/VBPIndicator.js} +10 -7
  305. package/es-modules/{indicators/vwap.src.js → Stock/Indicators/VWAPIndicator.js} +5 -4
  306. package/es-modules/{indicators/wma.src.js → Stock/Indicators/WMAIndicator.js} +5 -4
  307. package/es-modules/{indicators/williams-r.src.js → Stock/Indicators/WilliamsRIndicator.js} +7 -6
  308. package/es-modules/{indicators/zigzag.src.js → Stock/Indicators/ZigzagIndicator.js} +5 -7
  309. package/es-modules/{modules/stock-tools-bindings.js → Stock/StockToolsBindings.js} +22 -7
  310. package/es-modules/{modules/stock-tools-gui.js → Stock/StockToolsGui.js} +17 -17
  311. package/es-modules/error-messages.js +7 -2
  312. package/es-modules/highcharts.src.js +19853 -0
  313. package/es-modules/masters/highcharts-3d.src.js +11 -12
  314. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  315. package/es-modules/masters/highcharts-more.src.js +15 -15
  316. package/es-modules/masters/highcharts.src.js +28 -27
  317. package/es-modules/masters/highmaps.src.js +1 -1
  318. package/es-modules/masters/highstock.src.js +1 -1
  319. package/es-modules/masters/indicators/acceleration-bands.src.js +2 -2
  320. package/es-modules/masters/indicators/accumulation-distribution.src.js +2 -2
  321. package/es-modules/masters/indicators/ao.src.js +2 -2
  322. package/es-modules/masters/indicators/apo.src.js +2 -2
  323. package/es-modules/masters/indicators/aroon-oscillator.src.js +2 -2
  324. package/es-modules/masters/indicators/aroon.src.js +2 -2
  325. package/es-modules/masters/indicators/atr.src.js +2 -2
  326. package/es-modules/masters/indicators/bollinger-bands.src.js +2 -2
  327. package/es-modules/masters/indicators/cci.src.js +2 -2
  328. package/es-modules/masters/indicators/chaikin.src.js +2 -2
  329. package/es-modules/masters/indicators/cmf.src.js +2 -2
  330. package/es-modules/masters/indicators/dema.src.js +2 -2
  331. package/es-modules/masters/indicators/dpo.src.js +2 -2
  332. package/es-modules/masters/indicators/ema.src.js +2 -2
  333. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +2 -2
  334. package/es-modules/masters/indicators/indicators-all.src.js +41 -41
  335. package/es-modules/masters/indicators/indicators.src.js +2 -2
  336. package/es-modules/masters/indicators/keltner-channels.src.js +2 -2
  337. package/es-modules/masters/indicators/macd.src.js +2 -2
  338. package/es-modules/masters/indicators/mfi.src.js +2 -2
  339. package/es-modules/masters/indicators/momentum.src.js +2 -2
  340. package/es-modules/masters/indicators/natr.src.js +2 -2
  341. package/es-modules/masters/indicators/pivot-points.src.js +2 -2
  342. package/es-modules/masters/indicators/ppo.src.js +2 -2
  343. package/es-modules/masters/indicators/price-channel.src.js +2 -2
  344. package/es-modules/masters/indicators/price-envelopes.src.js +2 -2
  345. package/es-modules/masters/indicators/psar.src.js +2 -2
  346. package/es-modules/masters/indicators/regressions.src.js +2 -2
  347. package/es-modules/masters/indicators/roc.src.js +2 -2
  348. package/es-modules/masters/indicators/rsi.src.js +2 -2
  349. package/es-modules/masters/indicators/slow-stochastic.src.js +2 -2
  350. package/es-modules/masters/indicators/stochastic.src.js +2 -2
  351. package/es-modules/masters/indicators/supertrend.src.js +2 -2
  352. package/es-modules/masters/indicators/tema.src.js +2 -2
  353. package/es-modules/masters/indicators/trendline.src.js +2 -2
  354. package/es-modules/masters/indicators/trix.src.js +2 -2
  355. package/es-modules/masters/indicators/volume-by-price.src.js +2 -2
  356. package/es-modules/masters/indicators/vwap.src.js +2 -2
  357. package/es-modules/masters/indicators/williams-r.src.js +2 -2
  358. package/es-modules/masters/indicators/wma.src.js +2 -2
  359. package/es-modules/masters/indicators/zigzag.src.js +2 -2
  360. package/es-modules/masters/modules/accessibility.src.js +2 -2
  361. package/es-modules/masters/modules/annotations-advanced.src.js +13 -13
  362. package/es-modules/masters/modules/annotations.src.js +4 -4
  363. package/es-modules/masters/modules/arrow-symbols.src.js +2 -2
  364. package/es-modules/masters/modules/boost-canvas.src.js +2 -2
  365. package/es-modules/masters/modules/boost.src.js +2 -2
  366. package/es-modules/masters/modules/broken-axis.src.js +2 -2
  367. package/es-modules/masters/modules/bullet.src.js +2 -2
  368. package/es-modules/masters/modules/coloraxis.src.js +2 -2
  369. package/es-modules/masters/modules/current-date-indicator.src.js +2 -2
  370. package/es-modules/masters/modules/cylinder.src.js +2 -2
  371. package/es-modules/masters/modules/data.src.js +2 -2
  372. package/es-modules/masters/modules/datagrouping.src.js +2 -2
  373. package/es-modules/masters/modules/debugger.src.js +2 -2
  374. package/es-modules/masters/modules/dependency-wheel.src.js +2 -2
  375. package/es-modules/masters/modules/dotplot.src.js +2 -2
  376. package/es-modules/masters/modules/drag-panes.src.js +2 -2
  377. package/es-modules/masters/modules/draggable-points.src.js +2 -2
  378. package/es-modules/masters/modules/drilldown.src.js +2 -2
  379. package/es-modules/masters/modules/dumbbell.src.js +2 -2
  380. package/es-modules/masters/modules/export-data.src.js +2 -2
  381. package/es-modules/masters/modules/exporting.src.js +3 -3
  382. package/es-modules/masters/modules/full-screen.src.js +2 -2
  383. package/es-modules/masters/modules/funnel.src.js +2 -2
  384. package/es-modules/masters/modules/funnel3d.src.js +2 -2
  385. package/es-modules/masters/modules/gantt.src.js +6 -6
  386. package/es-modules/masters/modules/grid-axis.src.js +2 -2
  387. package/es-modules/masters/modules/heatmap.src.js +4 -4
  388. package/es-modules/masters/modules/histogram-bellcurve.src.js +3 -3
  389. package/es-modules/masters/modules/item-series.src.js +2 -2
  390. package/es-modules/masters/modules/lollipop.src.js +2 -2
  391. package/es-modules/masters/modules/map.src.js +13 -13
  392. package/es-modules/masters/modules/marker-clusters.src.js +2 -2
  393. package/es-modules/masters/modules/networkgraph.src.js +2 -2
  394. package/es-modules/masters/modules/no-data-to-display.src.js +2 -2
  395. package/es-modules/masters/modules/offline-exporting.src.js +2 -2
  396. package/es-modules/masters/modules/oldie-polyfills.src.js +2 -2
  397. package/es-modules/masters/modules/oldie.src.js +2 -2
  398. package/es-modules/masters/modules/organization.src.js +2 -2
  399. package/es-modules/masters/modules/overlapping-datalabels.src.js +2 -2
  400. package/es-modules/masters/modules/parallel-coordinates.src.js +2 -2
  401. package/es-modules/masters/modules/pareto.src.js +2 -2
  402. package/es-modules/masters/modules/pathfinder.src.js +2 -2
  403. package/es-modules/masters/modules/pattern-fill.src.js +2 -2
  404. package/es-modules/masters/modules/price-indicator.src.js +2 -2
  405. package/es-modules/masters/modules/pyramid3d.src.js +2 -2
  406. package/es-modules/masters/modules/sankey.src.js +2 -2
  407. package/es-modules/masters/modules/series-label.src.js +2 -2
  408. package/es-modules/masters/modules/solid-gauge.src.js +2 -2
  409. package/es-modules/masters/modules/sonification.src.js +2 -2
  410. package/es-modules/masters/modules/static-scale.src.js +2 -2
  411. package/es-modules/masters/modules/stock-tools.src.js +3 -3
  412. package/es-modules/masters/modules/stock.src.js +10 -10
  413. package/es-modules/masters/modules/streamgraph.src.js +2 -2
  414. package/es-modules/masters/modules/sunburst.src.js +2 -2
  415. package/es-modules/masters/modules/tilemap.src.js +2 -2
  416. package/es-modules/masters/modules/timeline.src.js +2 -2
  417. package/es-modules/masters/modules/treegrid.src.js +2 -2
  418. package/es-modules/masters/modules/treemap.src.js +2 -2
  419. package/es-modules/masters/modules/variable-pie.src.js +2 -2
  420. package/es-modules/masters/modules/variwide.src.js +2 -2
  421. package/es-modules/masters/modules/vector.src.js +2 -2
  422. package/es-modules/masters/modules/venn.src.js +2 -2
  423. package/es-modules/masters/modules/windbarb.src.js +2 -2
  424. package/es-modules/masters/modules/wordcloud.src.js +2 -2
  425. package/es-modules/masters/modules/xrange.src.js +2 -2
  426. package/es-modules/masters/themes/avocado.src.js +2 -2
  427. package/es-modules/masters/themes/dark-blue.src.js +2 -2
  428. package/es-modules/masters/themes/dark-green.src.js +2 -2
  429. package/es-modules/masters/themes/dark-unica.src.js +2 -2
  430. package/es-modules/masters/themes/gray.src.js +2 -2
  431. package/es-modules/masters/themes/grid-light.src.js +2 -2
  432. package/es-modules/masters/themes/grid.src.js +2 -2
  433. package/es-modules/masters/themes/high-contrast-dark.src.js +2 -2
  434. package/es-modules/masters/themes/high-contrast-light.src.js +2 -2
  435. package/es-modules/masters/themes/sand-signika.src.js +2 -2
  436. package/es-modules/masters/themes/skies.src.js +2 -2
  437. package/es-modules/masters/themes/sunset.src.js +2 -2
  438. package/highcharts-3d.js +86 -88
  439. package/highcharts-3d.js.map +1 -1
  440. package/highcharts-3d.src.js +1713 -1615
  441. package/highcharts-gantt.js +730 -697
  442. package/highcharts-gantt.js.map +1 -1
  443. package/highcharts-gantt.src.js +11747 -10110
  444. package/highcharts-more.js +164 -161
  445. package/highcharts-more.js.map +1 -1
  446. package/highcharts-more.src.js +766 -523
  447. package/highcharts.d.ts +7728 -1337
  448. package/highcharts.js +538 -515
  449. package/highcharts.js.map +1 -1
  450. package/highcharts.src.d.ts +7728 -1337
  451. package/highcharts.src.js +8517 -7691
  452. package/highmaps.js +636 -612
  453. package/highmaps.js.map +1 -1
  454. package/highmaps.src.js +9151 -8209
  455. package/highstock.js +697 -671
  456. package/highstock.js.map +1 -1
  457. package/highstock.src.js +8919 -8049
  458. package/indicators/acceleration-bands.js +8 -8
  459. package/indicators/acceleration-bands.js.map +1 -1
  460. package/indicators/acceleration-bands.src.js +8 -8
  461. package/indicators/accumulation-distribution.js +4 -4
  462. package/indicators/accumulation-distribution.js.map +1 -1
  463. package/indicators/accumulation-distribution.src.js +5 -5
  464. package/indicators/ao.js +5 -5
  465. package/indicators/ao.js.map +1 -1
  466. package/indicators/ao.src.js +6 -6
  467. package/indicators/apo.js +5 -5
  468. package/indicators/apo.js.map +1 -1
  469. package/indicators/apo.src.js +8 -9
  470. package/indicators/aroon-oscillator.js +8 -8
  471. package/indicators/aroon-oscillator.js.map +1 -1
  472. package/indicators/aroon-oscillator.src.js +8 -9
  473. package/indicators/aroon.js +7 -7
  474. package/indicators/aroon.js.map +1 -1
  475. package/indicators/aroon.src.js +7 -7
  476. package/indicators/atr.js +4 -4
  477. package/indicators/atr.js.map +1 -1
  478. package/indicators/atr.src.js +6 -14
  479. package/indicators/bollinger-bands.js +8 -8
  480. package/indicators/bollinger-bands.js.map +1 -1
  481. package/indicators/bollinger-bands.src.js +8 -8
  482. package/indicators/cci.js +4 -4
  483. package/indicators/cci.js.map +1 -1
  484. package/indicators/cci.src.js +5 -5
  485. package/indicators/chaikin.js +6 -6
  486. package/indicators/chaikin.js.map +1 -1
  487. package/indicators/chaikin.src.js +75 -75
  488. package/indicators/cmf.js +4 -4
  489. package/indicators/cmf.js.map +1 -1
  490. package/indicators/cmf.src.js +4 -4
  491. package/indicators/dema.js +5 -5
  492. package/indicators/dema.js.map +1 -1
  493. package/indicators/dema.src.js +8 -9
  494. package/indicators/dpo.js +4 -4
  495. package/indicators/dpo.js.map +1 -1
  496. package/indicators/dpo.src.js +5 -5
  497. package/indicators/ema.js +4 -4
  498. package/indicators/ema.js.map +1 -1
  499. package/indicators/ema.src.js +4 -5
  500. package/indicators/ichimoku-kinko-hyo.js +13 -13
  501. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  502. package/indicators/ichimoku-kinko-hyo.src.js +21 -20
  503. package/indicators/indicators-all.js +119 -118
  504. package/indicators/indicators-all.js.map +1 -1
  505. package/indicators/indicators-all.src.js +231 -240
  506. package/indicators/indicators.js +9 -9
  507. package/indicators/indicators.js.map +1 -1
  508. package/indicators/indicators.src.js +9 -9
  509. package/indicators/keltner-channels.js +8 -8
  510. package/indicators/keltner-channels.js.map +1 -1
  511. package/indicators/keltner-channels.src.js +13 -10
  512. package/indicators/macd.js +10 -10
  513. package/indicators/macd.js.map +1 -1
  514. package/indicators/macd.src.js +8 -7
  515. package/indicators/mfi.js +4 -4
  516. package/indicators/mfi.js.map +1 -1
  517. package/indicators/mfi.src.js +5 -5
  518. package/indicators/momentum.js +4 -4
  519. package/indicators/momentum.js.map +1 -1
  520. package/indicators/momentum.src.js +5 -5
  521. package/indicators/natr.js +3 -3
  522. package/indicators/natr.js.map +1 -1
  523. package/indicators/natr.src.js +5 -5
  524. package/indicators/pivot-points.js +8 -8
  525. package/indicators/pivot-points.js.map +1 -1
  526. package/indicators/pivot-points.src.js +6 -6
  527. package/indicators/ppo.js +5 -5
  528. package/indicators/ppo.js.map +1 -1
  529. package/indicators/ppo.src.js +8 -9
  530. package/indicators/price-channel.js +8 -8
  531. package/indicators/price-channel.js.map +1 -1
  532. package/indicators/price-channel.src.js +66 -66
  533. package/indicators/price-envelopes.js +6 -6
  534. package/indicators/price-envelopes.js.map +1 -1
  535. package/indicators/price-envelopes.src.js +6 -6
  536. package/indicators/psar.js +3 -3
  537. package/indicators/psar.js.map +1 -1
  538. package/indicators/psar.src.js +4 -4
  539. package/indicators/regressions.js +6 -6
  540. package/indicators/regressions.js.map +1 -1
  541. package/indicators/regressions.src.js +8 -8
  542. package/indicators/roc.js +3 -3
  543. package/indicators/roc.js.map +1 -1
  544. package/indicators/roc.src.js +5 -5
  545. package/indicators/rsi.js +4 -4
  546. package/indicators/rsi.js.map +1 -1
  547. package/indicators/rsi.src.js +5 -5
  548. package/indicators/slow-stochastic.js +5 -5
  549. package/indicators/slow-stochastic.js.map +1 -1
  550. package/indicators/slow-stochastic.src.js +7 -7
  551. package/indicators/stochastic.js +9 -9
  552. package/indicators/stochastic.js.map +1 -1
  553. package/indicators/stochastic.src.js +67 -67
  554. package/indicators/supertrend.js +9 -9
  555. package/indicators/supertrend.js.map +1 -1
  556. package/indicators/supertrend.src.js +9 -7
  557. package/indicators/tema.js +6 -6
  558. package/indicators/tema.js.map +1 -1
  559. package/indicators/tema.src.js +8 -9
  560. package/indicators/trendline.js +3 -3
  561. package/indicators/trendline.js.map +1 -1
  562. package/indicators/trendline.src.js +5 -5
  563. package/indicators/trix.js +4 -4
  564. package/indicators/trix.js.map +1 -1
  565. package/indicators/trix.src.js +8 -8
  566. package/indicators/volume-by-price.js +13 -13
  567. package/indicators/volume-by-price.js.map +1 -1
  568. package/indicators/volume-by-price.src.js +7 -8
  569. package/indicators/vwap.js +4 -4
  570. package/indicators/vwap.js.map +1 -1
  571. package/indicators/vwap.src.js +5 -5
  572. package/indicators/williams-r.js +4 -4
  573. package/indicators/williams-r.js.map +1 -1
  574. package/indicators/williams-r.src.js +7 -7
  575. package/indicators/wma.js +4 -4
  576. package/indicators/wma.js.map +1 -1
  577. package/indicators/wma.src.js +5 -5
  578. package/indicators/zigzag.js +4 -4
  579. package/indicators/zigzag.js.map +1 -1
  580. package/indicators/zigzag.src.js +6 -7
  581. package/modules/accessibility.d.ts +0 -35
  582. package/modules/accessibility.js +171 -168
  583. package/modules/accessibility.js.map +1 -1
  584. package/modules/accessibility.src.d.ts +0 -35
  585. package/modules/accessibility.src.js +369 -252
  586. package/modules/annotations-advanced.js +158 -136
  587. package/modules/annotations-advanced.js.map +1 -1
  588. package/modules/annotations-advanced.src.js +1929 -1263
  589. package/modules/annotations.js +105 -94
  590. package/modules/annotations.js.map +1 -1
  591. package/modules/annotations.src.js +1485 -1101
  592. package/modules/arrow-symbols.js +4 -4
  593. package/modules/arrow-symbols.js.map +1 -1
  594. package/modules/arrow-symbols.src.js +10 -12
  595. package/modules/boost-canvas.js +15 -15
  596. package/modules/boost-canvas.js.map +1 -1
  597. package/modules/boost-canvas.src.js +17 -17
  598. package/modules/boost.d.ts +4 -0
  599. package/modules/boost.js +77 -64
  600. package/modules/boost.js.map +1 -1
  601. package/modules/boost.src.d.ts +4 -0
  602. package/modules/boost.src.js +581 -33
  603. package/modules/broken-axis.js +10 -10
  604. package/modules/broken-axis.js.map +1 -1
  605. package/modules/broken-axis.src.js +4 -5
  606. package/modules/bullet.js +6 -6
  607. package/modules/bullet.js.map +1 -1
  608. package/modules/bullet.src.js +8 -8
  609. package/modules/coloraxis.js +22 -21
  610. package/modules/coloraxis.js.map +1 -1
  611. package/modules/coloraxis.src.js +67 -59
  612. package/modules/current-date-indicator.js +3 -3
  613. package/modules/current-date-indicator.js.map +1 -1
  614. package/modules/current-date-indicator.src.js +4 -5
  615. package/modules/cylinder.js +8 -8
  616. package/modules/cylinder.js.map +1 -1
  617. package/modules/cylinder.src.js +21 -23
  618. package/modules/data.d.ts +2 -2
  619. package/modules/data.js +32 -32
  620. package/modules/data.js.map +1 -1
  621. package/modules/data.src.d.ts +2 -2
  622. package/modules/data.src.js +26 -25
  623. package/modules/datagrouping.js +17 -17
  624. package/modules/datagrouping.js.map +1 -1
  625. package/modules/datagrouping.src.js +6 -7
  626. package/modules/debugger.js +5 -5
  627. package/modules/debugger.js.map +1 -1
  628. package/modules/debugger.src.js +13 -8
  629. package/modules/dependency-wheel.js +8 -8
  630. package/modules/dependency-wheel.js.map +1 -1
  631. package/modules/dependency-wheel.src.js +10 -10
  632. package/modules/dotplot.js +5 -5
  633. package/modules/dotplot.js.map +1 -1
  634. package/modules/dotplot.src.js +6 -14
  635. package/modules/drag-panes.js +10 -10
  636. package/modules/drag-panes.js.map +1 -1
  637. package/modules/drag-panes.src.js +4 -6
  638. package/modules/draggable-points.js +33 -33
  639. package/modules/draggable-points.js.map +1 -1
  640. package/modules/draggable-points.src.js +22 -35
  641. package/modules/drilldown.d.ts +1 -1
  642. package/modules/drilldown.js +23 -22
  643. package/modules/drilldown.js.map +1 -1
  644. package/modules/drilldown.src.d.ts +1 -1
  645. package/modules/drilldown.src.js +66 -53
  646. package/modules/dumbbell.d.ts +4 -0
  647. package/modules/dumbbell.js +24 -9
  648. package/modules/dumbbell.js.map +1 -1
  649. package/modules/dumbbell.src.d.ts +4 -0
  650. package/modules/dumbbell.src.js +1029 -104
  651. package/modules/export-data.d.ts +4 -29
  652. package/modules/export-data.js +21 -21
  653. package/modules/export-data.js.map +1 -1
  654. package/modules/export-data.src.d.ts +4 -29
  655. package/modules/export-data.src.js +155 -189
  656. package/modules/exporting.d.ts +2 -0
  657. package/modules/exporting.js +33 -33
  658. package/modules/exporting.js.map +1 -1
  659. package/modules/exporting.src.d.ts +2 -0
  660. package/modules/exporting.src.js +40 -30
  661. package/modules/full-screen.js +7 -7
  662. package/modules/full-screen.js.map +1 -1
  663. package/modules/full-screen.src.js +4 -3
  664. package/modules/funnel.js +9 -9
  665. package/modules/funnel.js.map +1 -1
  666. package/modules/funnel.src.js +14 -15
  667. package/modules/funnel3d.js +17 -17
  668. package/modules/funnel3d.js.map +1 -1
  669. package/modules/funnel3d.src.js +12 -14
  670. package/modules/gantt.js +194 -183
  671. package/modules/gantt.js.map +1 -1
  672. package/modules/gantt.src.js +2071 -1260
  673. package/modules/grid-axis.js +22 -19
  674. package/modules/grid-axis.js.map +1 -1
  675. package/modules/grid-axis.src.js +149 -43
  676. package/modules/heatmap.js +33 -32
  677. package/modules/heatmap.js.map +1 -1
  678. package/modules/heatmap.src.js +130 -114
  679. package/modules/histogram-bellcurve.js +10 -10
  680. package/modules/histogram-bellcurve.js.map +1 -1
  681. package/modules/histogram-bellcurve.src.js +57 -16
  682. package/modules/item-series.js +9 -9
  683. package/modules/item-series.js.map +1 -1
  684. package/modules/item-series.src.js +20 -13
  685. package/modules/lollipop.d.ts +20 -1
  686. package/modules/lollipop.js +26 -4
  687. package/modules/lollipop.js.map +1 -1
  688. package/modules/lollipop.src.d.ts +20 -1
  689. package/modules/lollipop.src.js +1452 -10
  690. package/modules/map.d.ts +2 -2
  691. package/modules/map.js +99 -98
  692. package/modules/map.js.map +1 -1
  693. package/modules/map.src.d.ts +2 -2
  694. package/modules/map.src.js +1442 -1326
  695. package/modules/marker-clusters.js +35 -36
  696. package/modules/marker-clusters.js.map +1 -1
  697. package/modules/marker-clusters.src.js +31 -51
  698. package/modules/networkgraph.js +47 -46
  699. package/modules/networkgraph.js.map +1 -1
  700. package/modules/networkgraph.src.js +98 -81
  701. package/modules/no-data-to-display.js +4 -4
  702. package/modules/no-data-to-display.js.map +1 -1
  703. package/modules/no-data-to-display.src.js +17 -13
  704. package/modules/offline-exporting.js +15 -15
  705. package/modules/offline-exporting.js.map +1 -1
  706. package/modules/offline-exporting.src.js +63 -46
  707. package/modules/oldie-polyfills.js +6 -6
  708. package/modules/oldie-polyfills.js.map +1 -1
  709. package/modules/oldie-polyfills.src.js +7 -2
  710. package/modules/oldie.js +52 -26
  711. package/modules/oldie.js.map +1 -1
  712. package/modules/oldie.src.js +1411 -34
  713. package/modules/organization.js +11 -11
  714. package/modules/organization.js.map +1 -1
  715. package/modules/organization.src.js +7 -6
  716. package/modules/overlapping-datalabels.js +1 -1
  717. package/modules/overlapping-datalabels.src.js +1 -1
  718. package/modules/parallel-coordinates.js +11 -11
  719. package/modules/parallel-coordinates.js.map +1 -1
  720. package/modules/parallel-coordinates.src.js +144 -136
  721. package/modules/pareto.js +5 -5
  722. package/modules/pareto.js.map +1 -1
  723. package/modules/pareto.src.js +8 -9
  724. package/modules/pathfinder.js +31 -27
  725. package/modules/pathfinder.js.map +1 -1
  726. package/modules/pathfinder.src.js +1589 -985
  727. package/modules/pattern-fill.js +13 -13
  728. package/modules/pattern-fill.js.map +1 -1
  729. package/modules/pattern-fill.src.js +25 -21
  730. package/modules/price-indicator.js +4 -4
  731. package/modules/price-indicator.js.map +1 -1
  732. package/modules/price-indicator.src.js +5 -3
  733. package/modules/pyramid3d.js +3 -3
  734. package/modules/pyramid3d.js.map +1 -1
  735. package/modules/pyramid3d.src.js +4 -5
  736. package/modules/sankey.js +25 -26
  737. package/modules/sankey.js.map +1 -1
  738. package/modules/sankey.src.js +39 -36
  739. package/modules/series-label.js +17 -17
  740. package/modules/series-label.js.map +1 -1
  741. package/modules/series-label.src.js +17 -17
  742. package/modules/solid-gauge.js +8 -8
  743. package/modules/solid-gauge.js.map +1 -1
  744. package/modules/solid-gauge.src.js +123 -91
  745. package/modules/sonification.d.ts +33 -16
  746. package/modules/sonification.js +55 -49
  747. package/modules/sonification.js.map +1 -1
  748. package/modules/sonification.src.d.ts +33 -16
  749. package/modules/sonification.src.js +361 -115
  750. package/modules/static-scale.js +4 -4
  751. package/modules/static-scale.js.map +1 -1
  752. package/modules/static-scale.src.js +3 -4
  753. package/modules/stock-tools.d.ts +23 -1
  754. package/modules/stock-tools.js +150 -84
  755. package/modules/stock-tools.js.map +1 -1
  756. package/modules/stock-tools.src.d.ts +23 -1
  757. package/modules/stock-tools.src.js +3792 -44
  758. package/modules/stock.js +161 -158
  759. package/modules/stock.js.map +1 -1
  760. package/modules/stock.src.js +456 -412
  761. package/modules/streamgraph.js +2 -2
  762. package/modules/streamgraph.js.map +1 -1
  763. package/modules/streamgraph.src.js +42 -5
  764. package/modules/sunburst.js +51 -49
  765. package/modules/sunburst.js.map +1 -1
  766. package/modules/sunburst.src.js +152 -52
  767. package/modules/tilemap.js +14 -14
  768. package/modules/tilemap.js.map +1 -1
  769. package/modules/tilemap.src.js +12 -11
  770. package/modules/timeline.js +14 -14
  771. package/modules/timeline.js.map +1 -1
  772. package/modules/timeline.src.js +19 -18
  773. package/modules/treegrid.js +57 -52
  774. package/modules/treegrid.js.map +1 -1
  775. package/modules/treegrid.src.js +236 -60
  776. package/modules/treemap.js +35 -34
  777. package/modules/treemap.js.map +1 -1
  778. package/modules/treemap.src.js +213 -118
  779. package/modules/variable-pie.js +8 -8
  780. package/modules/variable-pie.js.map +1 -1
  781. package/modules/variable-pie.src.js +12 -10
  782. package/modules/variwide.js +8 -8
  783. package/modules/variwide.js.map +1 -1
  784. package/modules/variwide.src.js +8 -8
  785. package/modules/vector.js +6 -6
  786. package/modules/vector.js.map +1 -1
  787. package/modules/vector.src.js +9 -9
  788. package/modules/venn.js +26 -26
  789. package/modules/venn.js.map +1 -1
  790. package/modules/venn.src.js +49 -37
  791. package/modules/windbarb.js +11 -11
  792. package/modules/windbarb.js.map +1 -1
  793. package/modules/windbarb.src.js +11 -12
  794. package/modules/wordcloud.js +19 -19
  795. package/modules/wordcloud.js.map +1 -1
  796. package/modules/wordcloud.src.js +26 -18
  797. package/modules/xrange.js +12 -12
  798. package/modules/xrange.js.map +1 -1
  799. package/modules/xrange.src.js +19 -20
  800. package/package.json +1 -1
  801. package/themes/avocado.js +3 -3
  802. package/themes/avocado.js.map +1 -1
  803. package/themes/avocado.src.js +5 -4
  804. package/themes/dark-blue.js +3 -3
  805. package/themes/dark-blue.js.map +1 -1
  806. package/themes/dark-blue.src.js +4 -3
  807. package/themes/dark-green.js +3 -3
  808. package/themes/dark-green.js.map +1 -1
  809. package/themes/dark-green.src.js +4 -3
  810. package/themes/dark-unica.js +7 -7
  811. package/themes/dark-unica.js.map +1 -1
  812. package/themes/dark-unica.src.js +6 -6
  813. package/themes/gray.js +3 -3
  814. package/themes/gray.js.map +1 -1
  815. package/themes/gray.src.js +5 -4
  816. package/themes/grid-light.js +4 -4
  817. package/themes/grid-light.js.map +1 -1
  818. package/themes/grid-light.src.js +4 -3
  819. package/themes/grid.js +3 -3
  820. package/themes/grid.js.map +1 -1
  821. package/themes/grid.src.js +4 -3
  822. package/themes/high-contrast-dark.js +6 -6
  823. package/themes/high-contrast-dark.js.map +1 -1
  824. package/themes/high-contrast-dark.src.js +5 -4
  825. package/themes/high-contrast-light.js +3 -3
  826. package/themes/high-contrast-light.js.map +1 -1
  827. package/themes/high-contrast-light.src.js +4 -3
  828. package/themes/sand-signika.js +5 -5
  829. package/themes/sand-signika.js.map +1 -1
  830. package/themes/sand-signika.src.js +4 -3
  831. package/themes/skies.js +4 -4
  832. package/themes/skies.js.map +1 -1
  833. package/themes/skies.src.js +5 -4
  834. package/themes/sunset.js +3 -3
  835. package/themes/sunset.js.map +1 -1
  836. package/themes/sunset.src.js +5 -4
  837. package/es-modules/annotations/controllable/ControllableCircle.js +0 -79
  838. package/es-modules/annotations/controllable/ControllableImage.js +0 -79
  839. package/es-modules/annotations/controllable/ControllableRect.js +0 -82
  840. package/es-modules/annotations/types/InfinityLine.js +0 -110
  841. package/es-modules/masters/modules/map-parser.src.js +0 -12
  842. package/es-modules/modules/accessibility/components/InfoRegionsComponent/AnnotationsA11y.js +0 -80
  843. package/es-modules/modules/accessibility/components/InfoRegionsComponent/InfoRegionsComponent.js +0 -499
  844. package/es-modules/modules/accessibility/components/SeriesComponent/forcedMarkers.js +0 -147
  845. package/es-modules/modules/map-parser.src.js +0 -365
  846. package/es-modules/modules/sonification/options.js +0 -36
  847. package/es-modules/parts-3d/Chart.js +0 -1577
  848. package/es-modules/parts-3d/VMLRenderer.js +0 -35
  849. package/es-modules/parts-gantt/PathfinderAlgorithms.js +0 -656
  850. package/modules/map-parser.d.ts +0 -17
  851. package/modules/map-parser.js +0 -17
  852. package/modules/map-parser.js.map +0 -1
  853. package/modules/map-parser.src.d.ts +0 -17
  854. package/modules/map-parser.src.js +0 -421
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highmaps JS v8.1.0 (2020-05-05)
2
+ * @license Highmaps JS v8.2.2 (2020-10-22)
3
3
  *
4
4
  * Highmaps as a plugin for Highcharts or Highstock.
5
5
  *
@@ -28,7 +28,7 @@
28
28
  obj[path] = fn.apply(null, args);
29
29
  }
30
30
  }
31
- _registerModule(_modules, 'parts-map/MapAxis.js', [_modules['parts/Axis.js'], _modules['parts/Utilities.js']], function (Axis, U) {
31
+ _registerModule(_modules, 'Core/Axis/MapAxis.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Utilities.js']], function (Axis, U) {
32
32
  /* *
33
33
  *
34
34
  * (c) 2010-2020 Torstein Honsi
@@ -193,7 +193,7 @@
193
193
 
194
194
  return MapAxis;
195
195
  });
196
- _registerModule(_modules, 'parts-map/ColorSeriesMixin.js', [_modules['parts/Globals.js']], function (H) {
196
+ _registerModule(_modules, 'Mixins/ColorSeries.js', [], function () {
197
197
  /* *
198
198
  *
199
199
  * (c) 2010-2020 Torstein Honsi
@@ -209,18 +209,18 @@
209
209
  * @private
210
210
  * @mixin Highcharts.colorPointMixin
211
211
  */
212
- H.colorPointMixin = {
213
- /* eslint-disable valid-jsdoc */
214
- /**
215
- * Set the visibility of a single point
216
- * @private
217
- * @function Highcharts.colorPointMixin.setVisible
218
- * @param {boolean} visible
219
- * @return {void}
220
- */
221
- setVisible: function (vis) {
222
- var point = this,
223
- method = vis ? 'show' : 'hide';
212
+ var colorPointMixin = {
213
+ /* eslint-disable valid-jsdoc */
214
+ /**
215
+ * Set the visibility of a single point
216
+ * @private
217
+ * @function Highcharts.colorPointMixin.setVisible
218
+ * @param {boolean} visible
219
+ * @return {void}
220
+ */
221
+ setVisible: function (vis) {
222
+ var point = this,
223
+ method = vis ? 'show' : 'hide';
224
224
  point.visible = point.options.visible = Boolean(vis);
225
225
  // Show and hide associated elements
226
226
  ['graphic', 'dataLabel'].forEach(function (key) {
@@ -228,6 +228,7 @@
228
228
  point[key][method]();
229
229
  }
230
230
  });
231
+ this.series.buildKDTree(); // rebuild kdtree #13195
231
232
  }
232
233
  /* eslint-enable valid-jsdoc */
233
234
  };
@@ -235,23 +236,25 @@
235
236
  * @private
236
237
  * @mixin Highcharts.colorSeriesMixin
237
238
  */
238
- H.colorSeriesMixin = {
239
- optionalAxis: 'colorAxis',
240
- colorAxis: 0,
241
- /* eslint-disable valid-jsdoc */
242
- /**
243
- * In choropleth maps, the color is a result of the value, so this needs
244
- * translation too
245
- * @private
246
- * @function Highcharts.colorSeriesMixin.translateColors
247
- * @return {void}
248
- */
249
- translateColors: function () {
250
- var series = this,
251
- points = this.data.length ? this.data : this.points,
252
- nullColor = this.options.nullColor,
253
- colorAxis = this.colorAxis,
254
- colorKey = this.colorKey;
239
+ var colorSeriesMixin = {
240
+ optionalAxis: 'colorAxis',
241
+ colorAxis: 0,
242
+ /* eslint-disable valid-jsdoc */
243
+ /**
244
+ * In choropleth maps,
245
+ the color is a result of the value,
246
+ so this needs
247
+ * translation too
248
+ * @private
249
+ * @function Highcharts.colorSeriesMixin.translateColors
250
+ * @return {void}
251
+ */
252
+ translateColors: function () {
253
+ var series = this,
254
+ points = this.data.length ? this.data : this.points,
255
+ nullColor = this.options.nullColor,
256
+ colorAxis = this.colorAxis,
257
+ colorKey = this.colorKey;
255
258
  points.forEach(function (point) {
256
259
  var value = point.getNestedProperty(colorKey),
257
260
  color;
@@ -261,16 +264,24 @@
261
264
  (colorAxis && typeof value !== 'undefined') ?
262
265
  colorAxis.toColor(value, point) :
263
266
  point.color || series.color);
264
- if (color) {
267
+ if (color && point.color !== color) {
265
268
  point.color = color;
269
+ if (series.options.legendType === 'point' && point.legendItem) {
270
+ series.chart.legend.colorizeItem(point, point.visible);
271
+ }
266
272
  }
267
273
  });
268
274
  }
269
275
  /* eslint-enable valid-jsdoc */
270
276
  };
277
+ var exports = {
278
+ colorPointMixin: colorPointMixin,
279
+ colorSeriesMixin: colorSeriesMixin
280
+ };
271
281
 
282
+ return exports;
272
283
  });
273
- _registerModule(_modules, 'parts-map/ColorAxis.js', [_modules['parts/Axis.js'], _modules['parts/Color.js'], _modules['parts/Globals.js'], _modules['parts/Legend.js'], _modules['mixins/legend-symbol.js'], _modules['parts/Point.js'], _modules['parts/Utilities.js']], function (Axis, Color, H, Legend, LegendSymbolMixin, Point, U) {
284
+ _registerModule(_modules, 'Core/Axis/ColorAxis.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Color/Color.js'], _modules['Mixins/ColorSeries.js'], _modules['Core/Animation/Fx.js'], _modules['Core/Globals.js'], _modules['Core/Legend.js'], _modules['Mixins/LegendSymbol.js'], _modules['Series/LineSeries.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (Axis, Chart, Color, ColorSeriesModule, Fx, H, Legend, LegendSymbolMixin, LineSeries, Point, U) {
274
285
  /* *
275
286
  *
276
287
  * (c) 2010-2020 Torstein Honsi
@@ -297,10 +308,12 @@
297
308
  };
298
309
  })();
299
310
  var color = Color.parse;
311
+ var colorPointMixin = ColorSeriesModule.colorPointMixin,
312
+ colorSeriesMixin = ColorSeriesModule.colorSeriesMixin;
313
+ var noop = H.noop;
300
314
  var addEvent = U.addEvent,
301
315
  erase = U.erase,
302
316
  extend = U.extend,
303
- Fx = U.Fx,
304
317
  isNumber = U.isNumber,
305
318
  merge = U.merge,
306
319
  pick = U.pick,
@@ -311,12 +324,7 @@
311
324
  * @typedef {"linear"|"logarithmic"} Highcharts.ColorAxisTypeValue
312
325
  */
313
326
  ''; // detach doclet above
314
- var Chart = H.Chart,
315
- Series = H.Series,
316
- colorPointMixin = H.colorPointMixin,
317
- colorSeriesMixin = H.colorSeriesMixin,
318
- noop = H.noop;
319
- extend(Series.prototype, colorSeriesMixin);
327
+ extend(LineSeries.prototype, colorSeriesMixin);
320
328
  extend(Point.prototype, colorPointMixin);
321
329
  Chart.prototype.collectionsWithUpdate.push('colorAxis');
322
330
  Chart.prototype.collectionsWithInit.colorAxis = [Chart.prototype.addColorAxis];
@@ -725,7 +733,7 @@
725
733
  cSeries.maxColorValue = cSeries[colorKey + 'Max'];
726
734
  }
727
735
  else {
728
- var cExtremes = Series.prototype.getExtremes.call(cSeries,
736
+ var cExtremes = LineSeries.prototype.getExtremes.call(cSeries,
729
737
  colorValArray);
730
738
  cSeries.minColorValue = cExtremes.dataMin;
731
739
  cSeries.maxColorValue = cExtremes.dataMax;
@@ -737,7 +745,7 @@
737
745
  Math.max(this.dataMax, cSeries.maxColorValue);
738
746
  }
739
747
  if (!calculatedExtremes) {
740
- Series.prototype.applyExtremes.call(cSeries);
748
+ LineSeries.prototype.applyExtremes.call(cSeries);
741
749
  }
742
750
  }
743
751
  };
@@ -796,21 +804,21 @@
796
804
  * @private
797
805
  */
798
806
  ColorAxis.prototype.getPlotLinePath = function (options) {
799
- var axis = this;
800
- var left = axis.left;
801
- var pos = options.translatedValue;
802
- var top = axis.top;
807
+ var axis = this,
808
+ left = axis.left,
809
+ pos = options.translatedValue,
810
+ top = axis.top;
803
811
  // crosshairs only
804
812
  return isNumber(pos) ? // pos can be 0 (#3969)
805
813
  (axis.horiz ? [
806
- ['M', pos - 4, this.top - 6],
807
- ['L', pos + 4, this.top - 6],
808
- ['L', pos, this.top],
814
+ ['M', pos - 4, top - 6],
815
+ ['L', pos + 4, top - 6],
816
+ ['L', pos, top],
809
817
  ['Z']
810
818
  ] : [
811
- ['M', this.left, pos],
812
- ['L', this.left - 6, pos + 6],
813
- ['L', this.left - 6, pos - 6],
819
+ ['M', left, pos],
820
+ ['L', left - 6, pos + 6],
821
+ ['L', left - 6, pos - 6],
814
822
  ['Z']
815
823
  ]) :
816
824
  _super.prototype.getPlotLinePath.call(this, options);
@@ -832,10 +840,10 @@
832
840
  * and call {@link Highcharts.Chart#redraw} after.
833
841
  */
834
842
  ColorAxis.prototype.update = function (newOptions, redraw) {
835
- var axis = this;
836
- var chart = axis.chart;
837
- var legend = chart.legend;
838
- var updatedOptions = ColorAxis.buildOptions(chart, {},
843
+ var axis = this,
844
+ chart = axis.chart,
845
+ legend = chart.legend,
846
+ updatedOptions = ColorAxis.buildOptions(chart, {},
839
847
  newOptions);
840
848
  this.series.forEach(function (series) {
841
849
  // Needed for Axis.update when choropleth colors change
@@ -1221,7 +1229,7 @@
1221
1229
  * Animation for the marker as it moves between values. Set to
1222
1230
  * `false` to disable animation. Defaults to `{ duration: 50 }`.
1223
1231
  *
1224
- * @type {boolean|Highcharts.AnimationOptionsObject}
1232
+ * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
1225
1233
  * @product highcharts highstock highmaps
1226
1234
  */
1227
1235
  animation: {
@@ -1410,7 +1418,7 @@
1410
1418
  }
1411
1419
  });
1412
1420
  // Add colorAxis to series axisTypes
1413
- addEvent(Series, 'bindAxes', function () {
1421
+ addEvent(LineSeries, 'bindAxes', function () {
1414
1422
  var axisTypes = this.axisTypes;
1415
1423
  if (!axisTypes) {
1416
1424
  this.axisTypes = ['colorAxis'];
@@ -1476,7 +1484,7 @@
1476
1484
  }
1477
1485
  });
1478
1486
  // Calculate and set colors for points
1479
- addEvent(Series, 'afterTranslate', function () {
1487
+ addEvent(LineSeries, 'afterTranslate', function () {
1480
1488
  if (this.chart.colorAxis &&
1481
1489
  this.chart.colorAxis.length ||
1482
1490
  this.colorAttribs) {
@@ -1486,7 +1494,7 @@
1486
1494
 
1487
1495
  return ColorAxis;
1488
1496
  });
1489
- _registerModule(_modules, 'parts-map/ColorMapSeriesMixin.js', [_modules['parts/Globals.js'], _modules['parts/Point.js'], _modules['parts/Utilities.js']], function (H, Point, U) {
1497
+ _registerModule(_modules, 'Mixins/ColorMapSeries.js', [_modules['Core/Globals.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (H, Point, U) {
1490
1498
  /* *
1491
1499
  *
1492
1500
  * (c) 2010-2020 Torstein Honsi
@@ -1505,21 +1513,21 @@
1505
1513
  * @private
1506
1514
  * @mixin Highcharts.colorMapPointMixin
1507
1515
  */
1508
- H.colorMapPointMixin = {
1509
- dataLabelOnNull: true,
1510
- /* eslint-disable valid-jsdoc */
1511
- /**
1512
- * Color points have a value option that determines whether or not it is
1513
- * a null point
1514
- * @private
1515
- * @function Highcharts.colorMapPointMixin.isValid
1516
- * @return {boolean}
1517
- */
1518
- isValid: function () {
1519
- // undefined is allowed
1520
- return (this.value !== null &&
1521
- this.value !== Infinity &&
1522
- this.value !== -Infinity);
1516
+ var colorMapPointMixin = {
1517
+ dataLabelOnNull: true,
1518
+ /* eslint-disable valid-jsdoc */
1519
+ /**
1520
+ * Color points have a value option that determines whether or not it is
1521
+ * a null point
1522
+ * @private
1523
+ * @function Highcharts.colorMapPointMixin.isValid
1524
+ * @return {boolean}
1525
+ */
1526
+ isValid: function () {
1527
+ // undefined is allowed
1528
+ return (this.value !== null &&
1529
+ this.value !== Infinity &&
1530
+ this.value !== -Infinity);
1523
1531
  },
1524
1532
  /**
1525
1533
  * @private
@@ -1541,33 +1549,38 @@
1541
1549
  * @private
1542
1550
  * @mixin Highcharts.colorMapSeriesMixin
1543
1551
  */
1544
- H.colorMapSeriesMixin = {
1545
- pointArrayMap: ['value'],
1546
- axisTypes: ['xAxis', 'yAxis', 'colorAxis'],
1547
- trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
1548
- getSymbol: noop,
1549
- parallelArrays: ['x', 'y', 'value'],
1550
- colorKey: 'value',
1551
- pointAttribs: seriesTypes.column.prototype.pointAttribs,
1552
- /* eslint-disable valid-jsdoc */
1553
- /**
1554
- * Get the color attibutes to apply on the graphic
1555
- * @private
1556
- * @function Highcharts.colorMapSeriesMixin.colorAttribs
1557
- * @param {Highcharts.Point} point
1558
- * @return {Highcharts.SVGAttributes}
1559
- */
1560
- colorAttribs: function (point) {
1561
- var ret = {};
1552
+ var colorMapSeriesMixin = {
1553
+ pointArrayMap: ['value'],
1554
+ axisTypes: ['xAxis', 'yAxis', 'colorAxis'],
1555
+ trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
1556
+ getSymbol: noop,
1557
+ parallelArrays: ['x', 'y', 'value'],
1558
+ colorKey: 'value',
1559
+ pointAttribs: seriesTypes.column.prototype.pointAttribs,
1560
+ /* eslint-disable valid-jsdoc */
1561
+ /**
1562
+ * Get the color attibutes to apply on the graphic
1563
+ * @private
1564
+ * @function Highcharts.colorMapSeriesMixin.colorAttribs
1565
+ * @param {Highcharts.Point} point
1566
+ * @return {Highcharts.SVGAttributes}
1567
+ */
1568
+ colorAttribs: function (point) {
1569
+ var ret = {};
1562
1570
  if (defined(point.color)) {
1563
1571
  ret[this.colorProp || 'fill'] = point.color;
1564
1572
  }
1565
1573
  return ret;
1566
1574
  }
1567
1575
  };
1576
+ var exports = {
1577
+ colorMapPointMixin: colorMapPointMixin,
1578
+ colorMapSeriesMixin: colorMapSeriesMixin
1579
+ };
1568
1580
 
1581
+ return exports;
1569
1582
  });
1570
- _registerModule(_modules, 'parts-map/MapNavigation.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js']], function (H, U) {
1583
+ _registerModule(_modules, 'Maps/MapNavigation.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (Chart, H, U) {
1571
1584
  /* *
1572
1585
  *
1573
1586
  * (c) 2010-2020 Torstein Honsi
@@ -1577,13 +1590,12 @@
1577
1590
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
1578
1591
  *
1579
1592
  * */
1593
+ var doc = H.doc;
1580
1594
  var addEvent = U.addEvent,
1581
1595
  extend = U.extend,
1582
1596
  merge = U.merge,
1583
1597
  objectEach = U.objectEach,
1584
1598
  pick = U.pick;
1585
- var Chart = H.Chart,
1586
- doc = H.doc;
1587
1599
  /* eslint-disable no-invalid-this, valid-jsdoc */
1588
1600
  /**
1589
1601
  * @private
@@ -1900,7 +1912,7 @@
1900
1912
  H.MapNavigation = MapNavigation;
1901
1913
 
1902
1914
  });
1903
- _registerModule(_modules, 'parts-map/MapPointer.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js']], function (H, U) {
1915
+ _registerModule(_modules, 'Maps/MapPointer.js', [_modules['Core/Pointer.js'], _modules['Core/Utilities.js']], function (Pointer, U) {
1904
1916
  /* *
1905
1917
  *
1906
1918
  * (c) 2010-2020 Torstein Honsi
@@ -1913,7 +1925,6 @@
1913
1925
  var extend = U.extend,
1914
1926
  pick = U.pick,
1915
1927
  wrap = U.wrap;
1916
- var Pointer = H.Pointer;
1917
1928
  /* eslint-disable no-invalid-this */
1918
1929
  // Extend the Pointer
1919
1930
  extend(Pointer.prototype, {
@@ -1964,7 +1975,7 @@
1964
1975
  });
1965
1976
 
1966
1977
  });
1967
- _registerModule(_modules, 'parts-map/MapSeries.js', [_modules['parts/Globals.js'], _modules['mixins/legend-symbol.js'], _modules['parts/Point.js'], _modules['parts/Utilities.js']], function (H, LegendSymbolMixin, Point, U) {
1978
+ _registerModule(_modules, 'Maps/Map.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Globals.js'], _modules['Core/Options.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (Chart, H, O, SVGRenderer, U) {
1968
1979
  /* *
1969
1980
  *
1970
1981
  * (c) 2010-2020 Torstein Honsi
@@ -1974,278 +1985,705 @@
1974
1985
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
1975
1986
  *
1976
1987
  * */
1988
+ var defaultOptions = O.defaultOptions;
1977
1989
  var extend = U.extend,
1978
- fireEvent = U.fireEvent,
1979
- getNestedProperty = U.getNestedProperty,
1980
- isArray = U.isArray,
1981
- isNumber = U.isNumber,
1990
+ getOptions = U.getOptions,
1982
1991
  merge = U.merge,
1983
- objectEach = U.objectEach,
1984
- pick = U.pick,
1985
- seriesType = U.seriesType,
1986
- splat = U.splat;
1987
- var colorMapPointMixin = H.colorMapPointMixin,
1988
- colorMapSeriesMixin = H.colorMapSeriesMixin,
1989
- noop = H.noop,
1990
- Series = H.Series,
1991
- seriesTypes = H.seriesTypes;
1992
- /**
1993
- * @private
1994
- * @class
1995
- * @name Highcharts.seriesTypes.map
1996
- *
1997
- * @augments Highcharts.Series
1998
- */
1999
- seriesType('map', 'scatter',
1992
+ pick = U.pick;
1993
+ var Renderer = H.Renderer,
1994
+ VMLRenderer = H.VMLRenderer;
1995
+ // Add language
1996
+ extend(defaultOptions.lang, {
1997
+ zoomIn: 'Zoom in',
1998
+ zoomOut: 'Zoom out'
1999
+ });
2000
+ // Set the default map navigation options
2000
2001
  /**
2001
- * The map series is used for basic choropleth maps, where each map area has
2002
- * a color based on its value.
2003
- *
2004
- * @sample maps/demo/all-maps/
2005
- * Choropleth map
2006
- *
2007
- * @extends plotOptions.scatter
2008
- * @excluding marker, cluster
2009
2002
  * @product highmaps
2010
- * @optionparent plotOptions.map
2003
+ * @optionparent mapNavigation
2011
2004
  */
2012
- {
2013
- animation: false,
2014
- dataLabels: {
2015
- crop: false,
2016
- formatter: function () {
2017
- return this.point.value;
2005
+ defaultOptions.mapNavigation = {
2006
+ /**
2007
+ * General options for the map navigation buttons. Individual options
2008
+ * can be given from the [mapNavigation.buttons](#mapNavigation.buttons)
2009
+ * option set.
2010
+ *
2011
+ * @sample {highmaps} maps/mapnavigation/button-theme/
2012
+ * Theming the navigation buttons
2013
+ */
2014
+ buttonOptions: {
2015
+ /**
2016
+ * What box to align the buttons to. Possible values are `plotBox`
2017
+ * and `spacingBox`.
2018
+ *
2019
+ * @type {Highcharts.ButtonRelativeToValue}
2020
+ */
2021
+ alignTo: 'plotBox',
2022
+ /**
2023
+ * The alignment of the navigation buttons.
2024
+ *
2025
+ * @type {Highcharts.AlignValue}
2026
+ */
2027
+ align: 'left',
2028
+ /**
2029
+ * The vertical alignment of the buttons. Individual alignment can
2030
+ * be adjusted by each button's `y` offset.
2031
+ *
2032
+ * @type {Highcharts.VerticalAlignValue}
2033
+ */
2034
+ verticalAlign: 'top',
2035
+ /**
2036
+ * The X offset of the buttons relative to its `align` setting.
2037
+ */
2038
+ x: 0,
2039
+ /**
2040
+ * The width of the map navigation buttons.
2041
+ */
2042
+ width: 18,
2043
+ /**
2044
+ * The pixel height of the map navigation buttons.
2045
+ */
2046
+ height: 18,
2047
+ /**
2048
+ * Padding for the navigation buttons.
2049
+ *
2050
+ * @since 5.0.0
2051
+ */
2052
+ padding: 5,
2053
+ /**
2054
+ * Text styles for the map navigation buttons.
2055
+ *
2056
+ * @type {Highcharts.CSSObject}
2057
+ * @default {"fontSize": "15px", "fontWeight": "bold"}
2058
+ */
2059
+ style: {
2060
+ /** @ignore */
2061
+ fontSize: '15px',
2062
+ /** @ignore */
2063
+ fontWeight: 'bold'
2018
2064
  },
2019
- inside: true,
2020
- overflow: false,
2021
- padding: 0,
2022
- verticalAlign: 'middle'
2065
+ /**
2066
+ * A configuration object for the button theme. The object accepts
2067
+ * SVG properties like `stroke-width`, `stroke` and `fill`. Tri-state
2068
+ * button styles are supported by the `states.hover` and `states.select`
2069
+ * objects.
2070
+ *
2071
+ * @sample {highmaps} maps/mapnavigation/button-theme/
2072
+ * Themed navigation buttons
2073
+ *
2074
+ * @type {Highcharts.SVGAttributes}
2075
+ * @default {"stroke-width": 1, "text-align": "center"}
2076
+ */
2077
+ theme: {
2078
+ /** @ignore */
2079
+ 'stroke-width': 1,
2080
+ /** @ignore */
2081
+ 'text-align': 'center'
2082
+ }
2023
2083
  },
2024
2084
  /**
2025
- * @ignore-option
2085
+ * The individual buttons for the map navigation. This usually includes
2086
+ * the zoom in and zoom out buttons. Properties for each button is
2087
+ * inherited from
2088
+ * [mapNavigation.buttonOptions](#mapNavigation.buttonOptions), while
2089
+ * individual options can be overridden. But default, the `onclick`, `text`
2090
+ * and `y` options are individual.
2091
+ */
2092
+ buttons: {
2093
+ /**
2094
+ * Options for the zoom in button. Properties for the zoom in and zoom
2095
+ * out buttons are inherited from
2096
+ * [mapNavigation.buttonOptions](#mapNavigation.buttonOptions), while
2097
+ * individual options can be overridden. By default, the `onclick`,
2098
+ * `text` and `y` options are individual.
2099
+ *
2100
+ * @extends mapNavigation.buttonOptions
2101
+ */
2102
+ zoomIn: {
2103
+ // eslint-disable-next-line valid-jsdoc
2104
+ /**
2105
+ * Click handler for the button.
2106
+ *
2107
+ * @type {Function}
2108
+ * @default function () { this.mapZoom(0.5); }
2109
+ */
2110
+ onclick: function () {
2111
+ this.mapZoom(0.5);
2112
+ },
2113
+ /**
2114
+ * The text for the button. The tooltip (title) is a language option
2115
+ * given by [lang.zoomIn](#lang.zoomIn).
2116
+ */
2117
+ text: '+',
2118
+ /**
2119
+ * The position of the zoomIn button relative to the vertical
2120
+ * alignment.
2121
+ */
2122
+ y: 0
2123
+ },
2124
+ /**
2125
+ * Options for the zoom out button. Properties for the zoom in and
2126
+ * zoom out buttons are inherited from
2127
+ * [mapNavigation.buttonOptions](#mapNavigation.buttonOptions), while
2128
+ * individual options can be overridden. By default, the `onclick`,
2129
+ * `text` and `y` options are individual.
2130
+ *
2131
+ * @extends mapNavigation.buttonOptions
2132
+ */
2133
+ zoomOut: {
2134
+ // eslint-disable-next-line valid-jsdoc
2135
+ /**
2136
+ * Click handler for the button.
2137
+ *
2138
+ * @type {Function}
2139
+ * @default function () { this.mapZoom(2); }
2140
+ */
2141
+ onclick: function () {
2142
+ this.mapZoom(2);
2143
+ },
2144
+ /**
2145
+ * The text for the button. The tooltip (title) is a language option
2146
+ * given by [lang.zoomOut](#lang.zoomIn).
2147
+ */
2148
+ text: '-',
2149
+ /**
2150
+ * The position of the zoomOut button relative to the vertical
2151
+ * alignment.
2152
+ */
2153
+ y: 28
2154
+ }
2155
+ },
2156
+ /**
2157
+ * Whether to enable navigation buttons. By default it inherits the
2158
+ * [enabled](#mapNavigation.enabled) setting.
2026
2159
  *
2027
- * @private
2160
+ * @type {boolean}
2161
+ * @apioption mapNavigation.enableButtons
2028
2162
  */
2029
- marker: null,
2030
2163
  /**
2031
- * The color to apply to null points.
2164
+ * Whether to enable map navigation. The default is not to enable
2165
+ * navigation, as many choropleth maps are simple and don't need it.
2166
+ * Additionally, when touch zoom and mousewheel zoom is enabled, it breaks
2167
+ * the default behaviour of these interactions in the website, and the
2168
+ * implementer should be aware of this.
2032
2169
  *
2033
- * In styled mode, the null point fill is set in the
2034
- * `.highcharts-null-point` class.
2035
- *
2036
- * @sample maps/demo/all-areas-as-null/
2037
- * Null color
2038
- *
2039
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2040
- *
2041
- * @private
2042
- */
2043
- nullColor: '#f7f7f7',
2044
- /**
2045
- * Whether to allow pointer interaction like tooltips and mouse events
2046
- * on null points.
2170
+ * Individual interactions can be enabled separately, namely buttons,
2171
+ * multitouch zoom, double click zoom, double click zoom to element and
2172
+ * mousewheel zoom.
2047
2173
  *
2048
2174
  * @type {boolean}
2049
- * @since 4.2.7
2050
- * @apioption plotOptions.map.nullInteraction
2051
- *
2052
- * @private
2053
- */
2054
- stickyTracking: false,
2055
- tooltip: {
2056
- followPointer: true,
2057
- pointFormat: '{point.name}: {point.value}<br/>'
2058
- },
2059
- /**
2060
- * @ignore-option
2061
- *
2062
- * @private
2175
+ * @default false
2176
+ * @apioption mapNavigation.enabled
2063
2177
  */
2064
- turboThreshold: 0,
2065
2178
  /**
2066
- * Whether all areas of the map defined in `mapData` should be rendered.
2067
- * If `true`, areas which don't correspond to a data point, are rendered
2068
- * as `null` points. If `false`, those areas are skipped.
2069
- *
2070
- * @sample maps/plotoptions/series-allareas-false/
2071
- * All areas set to false
2179
+ * Enables zooming in on an area on double clicking in the map. By default
2180
+ * it inherits the [enabled](#mapNavigation.enabled) setting.
2072
2181
  *
2073
2182
  * @type {boolean}
2074
- * @default true
2075
- * @product highmaps
2076
- * @apioption plotOptions.series.allAreas
2077
- *
2078
- * @private
2079
- */
2080
- allAreas: true,
2081
- /**
2082
- * The border color of the map areas.
2083
- *
2084
- * In styled mode, the border stroke is given in the `.highcharts-point`
2085
- * class.
2086
- *
2087
- * @sample {highmaps} maps/plotoptions/series-border/
2088
- * Borders demo
2089
- *
2090
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2091
- * @default '#cccccc'
2092
- * @product highmaps
2093
- * @apioption plotOptions.series.borderColor
2094
- *
2095
- * @private
2183
+ * @apioption mapNavigation.enableDoubleClickZoom
2096
2184
  */
2097
- borderColor: '#cccccc',
2098
2185
  /**
2099
- * The border width of each map area.
2100
- *
2101
- * In styled mode, the border stroke width is given in the
2102
- * `.highcharts-point` class.
2103
- *
2104
- * @sample maps/plotoptions/series-border/
2105
- * Borders demo
2186
+ * Whether to zoom in on an area when that area is double clicked.
2106
2187
  *
2107
- * @type {number}
2108
- * @default 1
2109
- * @product highmaps
2110
- * @apioption plotOptions.series.borderWidth
2188
+ * @sample {highmaps} maps/mapnavigation/doubleclickzoomto/
2189
+ * Enable double click zoom to
2111
2190
  *
2112
- * @private
2113
- */
2114
- borderWidth: 1,
2115
- /**
2116
- * @default value
2117
- * @apioption plotOptions.map.colorKey
2191
+ * @type {boolean}
2192
+ * @default false
2193
+ * @apioption mapNavigation.enableDoubleClickZoomTo
2118
2194
  */
2119
2195
  /**
2120
- * What property to join the `mapData` to the value data. For example,
2121
- * if joinBy is "code", the mapData items with a specific code is merged
2122
- * into the data with the same code. For maps loaded from GeoJSON, the
2123
- * keys may be held in each point's `properties` object.
2124
- *
2125
- * The joinBy option can also be an array of two values, where the first
2126
- * points to a key in the `mapData`, and the second points to another
2127
- * key in the `data`.
2128
- *
2129
- * When joinBy is `null`, the map items are joined by their position in
2130
- * the array, which performs much better in maps with many data points.
2131
- * This is the recommended option if you are printing more than a
2132
- * thousand data points and have a backend that can preprocess the data
2133
- * into a parallel array of the mapData.
2134
- *
2135
- * @sample maps/plotoptions/series-border/
2136
- * Joined by "code"
2137
- * @sample maps/demo/geojson/
2138
- * GeoJSON joined by an array
2139
- * @sample maps/series/joinby-null/
2140
- * Simple data joined by null
2141
- *
2142
- * @type {string|Array<string>}
2143
- * @default hc-key
2144
- * @product highmaps
2145
- * @apioption plotOptions.series.joinBy
2196
+ * Enables zooming by mouse wheel. By default it inherits the [enabled](
2197
+ * #mapNavigation.enabled) setting.
2146
2198
  *
2147
- * @private
2199
+ * @type {boolean}
2200
+ * @apioption mapNavigation.enableMouseWheelZoom
2148
2201
  */
2149
- joinBy: 'hc-key',
2150
2202
  /**
2151
- * Define the z index of the series.
2203
+ * Whether to enable multitouch zooming. Note that if the chart covers the
2204
+ * viewport, this prevents the user from using multitouch and touchdrag on
2205
+ * the web page, so you should make sure the user is not trapped inside the
2206
+ * chart. By default it inherits the [enabled](#mapNavigation.enabled)
2207
+ * setting.
2152
2208
  *
2153
- * @type {number}
2154
- * @product highmaps
2155
- * @apioption plotOptions.series.zIndex
2209
+ * @type {boolean}
2210
+ * @apioption mapNavigation.enableTouchZoom
2156
2211
  */
2157
2212
  /**
2158
- * @apioption plotOptions.series.states
2213
+ * Sensitivity of mouse wheel or trackpad scrolling. 1 is no sensitivity,
2214
+ * while with 2, one mousewheel delta will zoom in 50%.
2159
2215
  *
2160
- * @private
2216
+ * @since 4.2.4
2161
2217
  */
2162
- states: {
2163
- /**
2164
- * @apioption plotOptions.series.states.hover
2165
- */
2166
- hover: {
2167
- /** @ignore-option */
2168
- halo: null,
2169
- /**
2170
- * The color of the shape in this state.
2171
- *
2172
- * @sample maps/plotoptions/series-states-hover/
2173
- * Hover options
2174
- *
2175
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2176
- * @product highmaps
2177
- * @apioption plotOptions.series.states.hover.color
2178
- */
2179
- /**
2180
- * The border color of the point in this state.
2181
- *
2182
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2183
- * @product highmaps
2184
- * @apioption plotOptions.series.states.hover.borderColor
2185
- */
2186
- /**
2187
- * The border width of the point in this state
2188
- *
2189
- * @type {number}
2190
- * @product highmaps
2191
- * @apioption plotOptions.series.states.hover.borderWidth
2192
- */
2193
- /**
2194
- * The relative brightness of the point when hovered, relative
2195
- * to the normal point color.
2196
- *
2197
- * @type {number}
2198
- * @product highmaps
2199
- * @default 0.2
2200
- * @apioption plotOptions.series.states.hover.brightness
2201
- */
2202
- brightness: 0.2
2203
- },
2204
- /**
2205
- * @apioption plotOptions.series.states.normal
2206
- */
2207
- normal: {
2208
- /**
2209
- * @productdesc {highmaps}
2210
- * The animation adds some latency in order to reduce the effect
2211
- * of flickering when hovering in and out of for example an
2212
- * uneven coastline.
2213
- *
2214
- * @sample {highmaps} maps/plotoptions/series-states-animation-false/
2215
- * No animation of fill color
2216
- *
2217
- * @apioption plotOptions.series.states.normal.animation
2218
- */
2219
- animation: true
2220
- },
2221
- /**
2222
- * @apioption plotOptions.series.states.select
2223
- */
2224
- select: {
2225
- /**
2226
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2227
- * @default #cccccc
2228
- * @product highmaps
2229
- * @apioption plotOptions.series.states.select.color
2230
- */
2231
- color: '#cccccc'
2232
- },
2233
- inactive: {
2234
- opacity: 1
2235
- }
2218
+ mouseWheelSensitivity: 1.1
2219
+ // enabled: false,
2220
+ // enableButtons: null, // inherit from enabled
2221
+ // enableTouchZoom: null, // inherit from enabled
2222
+ // enableDoubleClickZoom: null, // inherit from enabled
2223
+ // enableDoubleClickZoomTo: false
2224
+ // enableMouseWheelZoom: null, // inherit from enabled
2225
+ };
2226
+ /* eslint-disable valid-jsdoc */
2227
+ /**
2228
+ * Utility for reading SVG paths directly.
2229
+ *
2230
+ * @requires modules/map
2231
+ *
2232
+ * @function Highcharts.splitPath
2233
+ *
2234
+ * @param {string|Array<string|number>} path
2235
+ *
2236
+ * @return {Highcharts.SVGPathArray}
2237
+ */
2238
+ var splitPath = H.splitPath = function (path) {
2239
+ var arr;
2240
+ if (typeof path === 'string') {
2241
+ path = path
2242
+ // Move letters apart
2243
+ .replace(/([A-Za-z])/g, ' $1 ')
2244
+ // Trim
2245
+ .replace(/^\s*/, '').replace(/\s*$/, '');
2246
+ // Split on spaces and commas. The semicolon is bogus, designed to
2247
+ // circumvent string replacement in the pre-v7 assembler that built
2248
+ // specific styled mode files.
2249
+ var split = path.split(/[ ,;]+/);
2250
+ arr = split.map(function (item) {
2251
+ if (!/[A-za-z]/.test(item)) {
2252
+ return parseFloat(item);
2253
+ }
2254
+ return item;
2255
+ });
2236
2256
  }
2237
- // Prototype members
2238
- }, merge(colorMapSeriesMixin, {
2239
- type: 'map',
2240
- getExtremesFromAll: true,
2241
- useMapGeometry: true,
2242
- forceDL: true,
2243
- searchPoint: noop,
2244
- // When tooltip is not shared, this series (and derivatives) requires
2245
- // direct touch/hover. KD-tree does not apply.
2246
- directTouch: true,
2247
- // X axis and Y axis must have same translation slope
2248
- preserveAspectRatio: true,
2257
+ else {
2258
+ arr = path;
2259
+ }
2260
+ return SVGRenderer.prototype.pathToSegments(arr);
2261
+ };
2262
+ /**
2263
+ * Contains all loaded map data for Highmaps.
2264
+ *
2265
+ * @requires modules/map
2266
+ *
2267
+ * @name Highcharts.maps
2268
+ * @type {Record<string,*>}
2269
+ */
2270
+ H.maps = {};
2271
+ /**
2272
+ * Create symbols for the zoom buttons
2273
+ * @private
2274
+ */
2275
+ function selectiveRoundedRect(x, y, w, h, rTopLeft, rTopRight, rBottomRight, rBottomLeft) {
2276
+ return [
2277
+ ['M', x + rTopLeft, y],
2278
+ // top side
2279
+ ['L', x + w - rTopRight, y],
2280
+ // top right corner
2281
+ ['C', x + w - rTopRight / 2, y, x + w, y + rTopRight / 2, x + w, y + rTopRight],
2282
+ // right side
2283
+ ['L', x + w, y + h - rBottomRight],
2284
+ // bottom right corner
2285
+ ['C', x + w, y + h - rBottomRight / 2, x + w - rBottomRight / 2, y + h, x + w - rBottomRight, y + h],
2286
+ // bottom side
2287
+ ['L', x + rBottomLeft, y + h],
2288
+ // bottom left corner
2289
+ ['C', x + rBottomLeft / 2, y + h, x, y + h - rBottomLeft / 2, x, y + h - rBottomLeft],
2290
+ // left side
2291
+ ['L', x, y + rTopLeft],
2292
+ // top left corner
2293
+ ['C', x, y + rTopLeft / 2, x + rTopLeft / 2, y, x + rTopLeft, y],
2294
+ ['Z']
2295
+ ];
2296
+ }
2297
+ SVGRenderer.prototype.symbols.topbutton = function (x, y, w, h, options) {
2298
+ var r = (options && options.r) || 0;
2299
+ return selectiveRoundedRect(x - 1, y - 1, w, h, r, r, 0, 0);
2300
+ };
2301
+ SVGRenderer.prototype.symbols.bottombutton = function (x, y, w, h, options) {
2302
+ var r = (options && options.r) || 0;
2303
+ return selectiveRoundedRect(x - 1, y - 1, w, h, 0, 0, r, r);
2304
+ };
2305
+ // The symbol callbacks are generated on the SVGRenderer object in all browsers.
2306
+ // Even VML browsers need this in order to generate shapes in export. Now share
2307
+ // them with the VMLRenderer.
2308
+ if (Renderer === VMLRenderer) {
2309
+ ['topbutton', 'bottombutton'].forEach(function (shape) {
2310
+ VMLRenderer.prototype.symbols[shape] =
2311
+ SVGRenderer.prototype.symbols[shape];
2312
+ });
2313
+ }
2314
+ /**
2315
+ * The factory function for creating new map charts. Creates a new {@link
2316
+ * Highcharts.Chart|Chart} object with different default options than the basic
2317
+ * Chart.
2318
+ *
2319
+ * @requires modules/map
2320
+ *
2321
+ * @function Highcharts.mapChart
2322
+ *
2323
+ * @param {string|Highcharts.HTMLDOMElement} [renderTo]
2324
+ * The DOM element to render to, or its id.
2325
+ *
2326
+ * @param {Highcharts.Options} options
2327
+ * The chart options structure as described in the
2328
+ * [options reference](https://api.highcharts.com/highstock).
2329
+ *
2330
+ * @param {Highcharts.ChartCallbackFunction} [callback]
2331
+ * A function to execute when the chart object is finished loading and
2332
+ * rendering. In most cases the chart is built in one thread, but in
2333
+ * Internet Explorer version 8 or less the chart is sometimes
2334
+ * initialized before the document is ready, and in these cases the
2335
+ * chart object will not be finished synchronously. As a consequence,
2336
+ * code that relies on the newly built Chart object should always run in
2337
+ * the callback. Defining a
2338
+ * [chart.events.load](https://api.highcharts.com/highstock/chart.events.load)
2339
+ * handler is equivalent.
2340
+ *
2341
+ * @return {Highcharts.Chart}
2342
+ * The chart object.
2343
+ */
2344
+ var mapChart = H.Map /* fake class for jQuery */ = H.mapChart = function (a,
2345
+ b,
2346
+ c) {
2347
+ var hasRenderToArg = typeof a === 'string' || a.nodeName,
2348
+ options = arguments[hasRenderToArg ? 1 : 0],
2349
+ userOptions = options,
2350
+ hiddenAxis = {
2351
+ endOnTick: false,
2352
+ visible: false,
2353
+ minPadding: 0,
2354
+ maxPadding: 0,
2355
+ startOnTick: false
2356
+ },
2357
+ seriesOptions,
2358
+ defaultCreditsOptions = getOptions().credits;
2359
+ /* For visual testing
2360
+ hiddenAxis.gridLineWidth = 1;
2361
+ hiddenAxis.gridZIndex = 10;
2362
+ hiddenAxis.tickPositions = undefined;
2363
+ // */
2364
+ // Don't merge the data
2365
+ seriesOptions = options.series;
2366
+ options.series = null;
2367
+ options = merge({
2368
+ chart: {
2369
+ panning: {
2370
+ enabled: true,
2371
+ type: 'xy'
2372
+ },
2373
+ type: 'map'
2374
+ },
2375
+ credits: {
2376
+ mapText: pick(defaultCreditsOptions.mapText, ' \u00a9 <a href="{geojson.copyrightUrl}">' +
2377
+ '{geojson.copyrightShort}</a>'),
2378
+ mapTextFull: pick(defaultCreditsOptions.mapTextFull, '{geojson.copyright}')
2379
+ },
2380
+ tooltip: {
2381
+ followTouchMove: false
2382
+ },
2383
+ xAxis: hiddenAxis,
2384
+ yAxis: merge(hiddenAxis, { reversed: true })
2385
+ }, options, // user's options
2386
+ {
2387
+ chart: {
2388
+ inverted: false,
2389
+ alignTicks: false
2390
+ }
2391
+ });
2392
+ options.series = userOptions.series = seriesOptions;
2393
+ return hasRenderToArg ?
2394
+ new Chart(a, options, c) :
2395
+ new Chart(options, b);
2396
+ };
2397
+ var mapModule = {
2398
+ mapChart: mapChart,
2399
+ maps: H.maps,
2400
+ splitPath: splitPath
2401
+ };
2402
+
2403
+ return mapModule;
2404
+ });
2405
+ _registerModule(_modules, 'Series/MapSeries.js', [_modules['Core/Series/Series.js'], _modules['Mixins/ColorMapSeries.js'], _modules['Core/Globals.js'], _modules['Mixins/LegendSymbol.js'], _modules['Maps/Map.js'], _modules['Core/Series/Point.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (BaseSeries, ColorMapMixin, H, LegendSymbolMixin, mapModule, Point, SVGRenderer, U) {
2406
+ /* *
2407
+ *
2408
+ * (c) 2010-2020 Torstein Honsi
2409
+ *
2410
+ * License: www.highcharts.com/license
2411
+ *
2412
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
2413
+ *
2414
+ * */
2415
+ var colorMapPointMixin = ColorMapMixin.colorMapPointMixin,
2416
+ colorMapSeriesMixin = ColorMapMixin.colorMapSeriesMixin;
2417
+ var noop = H.noop;
2418
+ var maps = mapModule.maps,
2419
+ splitPath = mapModule.splitPath;
2420
+ var extend = U.extend,
2421
+ fireEvent = U.fireEvent,
2422
+ getNestedProperty = U.getNestedProperty,
2423
+ isArray = U.isArray,
2424
+ isNumber = U.isNumber,
2425
+ merge = U.merge,
2426
+ objectEach = U.objectEach,
2427
+ pick = U.pick,
2428
+ splat = U.splat;
2429
+ var Series = H.Series,
2430
+ seriesTypes = BaseSeries.seriesTypes;
2431
+ /**
2432
+ * @private
2433
+ * @class
2434
+ * @name Highcharts.seriesTypes.map
2435
+ *
2436
+ * @augments Highcharts.Series
2437
+ */
2438
+ BaseSeries.seriesType('map', 'scatter',
2439
+ /**
2440
+ * The map series is used for basic choropleth maps, where each map area has
2441
+ * a color based on its value.
2442
+ *
2443
+ * @sample maps/demo/all-maps/
2444
+ * Choropleth map
2445
+ *
2446
+ * @extends plotOptions.scatter
2447
+ * @excluding marker, cluster
2448
+ * @product highmaps
2449
+ * @optionparent plotOptions.map
2450
+ */
2451
+ {
2452
+ animation: false,
2453
+ dataLabels: {
2454
+ crop: false,
2455
+ formatter: function () {
2456
+ return this.point.value;
2457
+ },
2458
+ inside: true,
2459
+ overflow: false,
2460
+ padding: 0,
2461
+ verticalAlign: 'middle'
2462
+ },
2463
+ /**
2464
+ * @ignore-option
2465
+ *
2466
+ * @private
2467
+ */
2468
+ marker: null,
2469
+ /**
2470
+ * The color to apply to null points.
2471
+ *
2472
+ * In styled mode, the null point fill is set in the
2473
+ * `.highcharts-null-point` class.
2474
+ *
2475
+ * @sample maps/demo/all-areas-as-null/
2476
+ * Null color
2477
+ *
2478
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2479
+ *
2480
+ * @private
2481
+ */
2482
+ nullColor: '#f7f7f7',
2483
+ /**
2484
+ * Whether to allow pointer interaction like tooltips and mouse events
2485
+ * on null points.
2486
+ *
2487
+ * @type {boolean}
2488
+ * @since 4.2.7
2489
+ * @apioption plotOptions.map.nullInteraction
2490
+ *
2491
+ * @private
2492
+ */
2493
+ stickyTracking: false,
2494
+ tooltip: {
2495
+ followPointer: true,
2496
+ pointFormat: '{point.name}: {point.value}<br/>'
2497
+ },
2498
+ /**
2499
+ * @ignore-option
2500
+ *
2501
+ * @private
2502
+ */
2503
+ turboThreshold: 0,
2504
+ /**
2505
+ * Whether all areas of the map defined in `mapData` should be rendered.
2506
+ * If `true`, areas which don't correspond to a data point, are rendered
2507
+ * as `null` points. If `false`, those areas are skipped.
2508
+ *
2509
+ * @sample maps/plotoptions/series-allareas-false/
2510
+ * All areas set to false
2511
+ *
2512
+ * @type {boolean}
2513
+ * @default true
2514
+ * @product highmaps
2515
+ * @apioption plotOptions.series.allAreas
2516
+ *
2517
+ * @private
2518
+ */
2519
+ allAreas: true,
2520
+ /**
2521
+ * The border color of the map areas.
2522
+ *
2523
+ * In styled mode, the border stroke is given in the `.highcharts-point`
2524
+ * class.
2525
+ *
2526
+ * @sample {highmaps} maps/plotoptions/series-border/
2527
+ * Borders demo
2528
+ *
2529
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2530
+ * @default #cccccc
2531
+ * @product highmaps
2532
+ * @apioption plotOptions.series.borderColor
2533
+ *
2534
+ * @private
2535
+ */
2536
+ borderColor: '#cccccc',
2537
+ /**
2538
+ * The border width of each map area.
2539
+ *
2540
+ * In styled mode, the border stroke width is given in the
2541
+ * `.highcharts-point` class.
2542
+ *
2543
+ * @sample maps/plotoptions/series-border/
2544
+ * Borders demo
2545
+ *
2546
+ * @type {number}
2547
+ * @default 1
2548
+ * @product highmaps
2549
+ * @apioption plotOptions.series.borderWidth
2550
+ *
2551
+ * @private
2552
+ */
2553
+ borderWidth: 1,
2554
+ /**
2555
+ * @type {string}
2556
+ * @default value
2557
+ * @apioption plotOptions.map.colorKey
2558
+ */
2559
+ /**
2560
+ * What property to join the `mapData` to the value data. For example,
2561
+ * if joinBy is "code", the mapData items with a specific code is merged
2562
+ * into the data with the same code. For maps loaded from GeoJSON, the
2563
+ * keys may be held in each point's `properties` object.
2564
+ *
2565
+ * The joinBy option can also be an array of two values, where the first
2566
+ * points to a key in the `mapData`, and the second points to another
2567
+ * key in the `data`.
2568
+ *
2569
+ * When joinBy is `null`, the map items are joined by their position in
2570
+ * the array, which performs much better in maps with many data points.
2571
+ * This is the recommended option if you are printing more than a
2572
+ * thousand data points and have a backend that can preprocess the data
2573
+ * into a parallel array of the mapData.
2574
+ *
2575
+ * @sample maps/plotoptions/series-border/
2576
+ * Joined by "code"
2577
+ * @sample maps/demo/geojson/
2578
+ * GeoJSON joined by an array
2579
+ * @sample maps/series/joinby-null/
2580
+ * Simple data joined by null
2581
+ *
2582
+ * @type {string|Array<string>}
2583
+ * @default hc-key
2584
+ * @product highmaps
2585
+ * @apioption plotOptions.series.joinBy
2586
+ */
2587
+ joinBy: 'hc-key',
2588
+ /**
2589
+ * Define the z index of the series.
2590
+ *
2591
+ * @type {number}
2592
+ * @product highmaps
2593
+ * @apioption plotOptions.series.zIndex
2594
+ */
2595
+ /**
2596
+ * @apioption plotOptions.series.states
2597
+ *
2598
+ * @private
2599
+ */
2600
+ states: {
2601
+ /**
2602
+ * @apioption plotOptions.series.states.hover
2603
+ */
2604
+ hover: {
2605
+ /** @ignore-option */
2606
+ halo: null,
2607
+ /**
2608
+ * The color of the shape in this state.
2609
+ *
2610
+ * @sample maps/plotoptions/series-states-hover/
2611
+ * Hover options
2612
+ *
2613
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2614
+ * @product highmaps
2615
+ * @apioption plotOptions.series.states.hover.color
2616
+ */
2617
+ /**
2618
+ * The border color of the point in this state.
2619
+ *
2620
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2621
+ * @product highmaps
2622
+ * @apioption plotOptions.series.states.hover.borderColor
2623
+ */
2624
+ /**
2625
+ * The border width of the point in this state
2626
+ *
2627
+ * @type {number}
2628
+ * @product highmaps
2629
+ * @apioption plotOptions.series.states.hover.borderWidth
2630
+ */
2631
+ /**
2632
+ * The relative brightness of the point when hovered, relative
2633
+ * to the normal point color.
2634
+ *
2635
+ * @type {number}
2636
+ * @product highmaps
2637
+ * @default 0.2
2638
+ * @apioption plotOptions.series.states.hover.brightness
2639
+ */
2640
+ brightness: 0.2
2641
+ },
2642
+ /**
2643
+ * @apioption plotOptions.series.states.normal
2644
+ */
2645
+ normal: {
2646
+ /**
2647
+ * @productdesc {highmaps}
2648
+ * The animation adds some latency in order to reduce the effect
2649
+ * of flickering when hovering in and out of for example an
2650
+ * uneven coastline.
2651
+ *
2652
+ * @sample {highmaps} maps/plotoptions/series-states-animation-false/
2653
+ * No animation of fill color
2654
+ *
2655
+ * @apioption plotOptions.series.states.normal.animation
2656
+ */
2657
+ animation: true
2658
+ },
2659
+ /**
2660
+ * @apioption plotOptions.series.states.select
2661
+ */
2662
+ select: {
2663
+ /**
2664
+ * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
2665
+ * @default #cccccc
2666
+ * @product highmaps
2667
+ * @apioption plotOptions.series.states.select.color
2668
+ */
2669
+ color: '#cccccc'
2670
+ },
2671
+ inactive: {
2672
+ opacity: 1
2673
+ }
2674
+ }
2675
+ // Prototype members
2676
+ }, merge(colorMapSeriesMixin, {
2677
+ type: 'map',
2678
+ getExtremesFromAll: true,
2679
+ useMapGeometry: true,
2680
+ forceDL: true,
2681
+ searchPoint: noop,
2682
+ // When tooltip is not shared, this series (and derivatives) requires
2683
+ // direct touch/hover. KD-tree does not apply.
2684
+ directTouch: true,
2685
+ // X axis and Y axis must have same translation slope
2686
+ preserveAspectRatio: true,
2249
2687
  pointArrayMap: ['value'],
2250
2688
  // Extend setOptions by picking up the joinBy option and applying it
2251
2689
  // to a series property
@@ -2278,11 +2716,11 @@
2278
2716
  (paths || []).forEach(function (point) {
2279
2717
  if (point.path) {
2280
2718
  if (typeof point.path === 'string') {
2281
- point.path = H.splitPath(point.path);
2719
+ point.path = splitPath(point.path);
2282
2720
  // Legacy one-dimensional array
2283
2721
  }
2284
2722
  else if (point.path[0] === 'M') {
2285
- point.path = H.SVGRenderer.prototype.pathToSegments(point.path);
2723
+ point.path = SVGRenderer.prototype.pathToSegments(point.path);
2286
2724
  }
2287
2725
  var path = point.path || [],
2288
2726
  pointMaxX = -MAX_VALUE,
@@ -2439,7 +2877,7 @@
2439
2877
  // Collect mapData from chart options if not defined on series
2440
2878
  if (!mapData && globalMapData) {
2441
2879
  mapData = typeof globalMapData === 'string' ?
2442
- H.maps[globalMapData] :
2880
+ maps[globalMapData] :
2443
2881
  globalMapData;
2444
2882
  }
2445
2883
  // Pick up numeric values, add index
@@ -3119,7 +3557,7 @@
3119
3557
  ''; // adds doclets above to the transpiled file
3120
3558
 
3121
3559
  });
3122
- _registerModule(_modules, 'parts-map/MapLineSeries.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js']], function (H, U) {
3560
+ _registerModule(_modules, 'Series/MapLineSeries.js', [_modules['Core/Series/Series.js']], function (BaseSeries) {
3123
3561
  /* *
3124
3562
  *
3125
3563
  * (c) 2010-2020 Torstein Honsi
@@ -3129,8 +3567,7 @@
3129
3567
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3130
3568
  *
3131
3569
  * */
3132
- var seriesType = U.seriesType;
3133
- var seriesTypes = H.seriesTypes;
3570
+ var seriesTypes = BaseSeries.seriesTypes;
3134
3571
  /**
3135
3572
  * @private
3136
3573
  * @class
@@ -3138,7 +3575,7 @@
3138
3575
  *
3139
3576
  * @augments Highcharts.Series
3140
3577
  */
3141
- seriesType('mapline', 'map',
3578
+ BaseSeries.seriesType('mapline', 'map',
3142
3579
  /**
3143
3580
  * A mapline series is a special case of the map series where the value
3144
3581
  * colors are applied to the strokes rather than the fills. It can also be
@@ -3247,7 +3684,7 @@
3247
3684
  ''; // adds doclets above to transpiled file
3248
3685
 
3249
3686
  });
3250
- _registerModule(_modules, 'parts-map/MapPointSeries.js', [_modules['parts/Globals.js']], function (H) {
3687
+ _registerModule(_modules, 'Series/MapPointSeries.js', [_modules['Core/Series/Series.js'], _modules['Core/Globals.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (BaseSeries, H, Point, U) {
3251
3688
  /* *
3252
3689
  *
3253
3690
  * (c) 2010-2020 Torstein Honsi
@@ -3257,10 +3694,8 @@
3257
3694
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3258
3695
  *
3259
3696
  * */
3260
- var merge = H.merge,
3261
- Point = H.Point,
3262
- Series = H.Series,
3263
- seriesType = H.seriesType;
3697
+ var merge = U.merge;
3698
+ var Series = H.Series;
3264
3699
  /**
3265
3700
  * @private
3266
3701
  * @class
@@ -3268,7 +3703,7 @@
3268
3703
  *
3269
3704
  * @augments Highcharts.Series
3270
3705
  */
3271
- seriesType('mappoint', 'scatter',
3706
+ BaseSeries.seriesType('mappoint', 'scatter',
3272
3707
  /**
3273
3708
  * A mappoint series is a special form of scatter series where the points
3274
3709
  * can be laid out in map coordinates on top of a map.
@@ -3422,7 +3857,7 @@
3422
3857
  ''; // adds doclets above to transpiled file
3423
3858
 
3424
3859
  });
3425
- _registerModule(_modules, 'parts-more/BubbleLegend.js', [_modules['parts/Globals.js'], _modules['parts/Color.js'], _modules['parts/Legend.js'], _modules['parts/Utilities.js']], function (H, Color, Legend, U) {
3860
+ _registerModule(_modules, 'Series/Bubble/BubbleLegend.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Legend.js'], _modules['Core/Utilities.js']], function (Chart, Color, H, Legend, U) {
3426
3861
  /* *
3427
3862
  *
3428
3863
  * (c) 2010-2020 Highsoft AS
@@ -3434,6 +3869,17 @@
3434
3869
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3435
3870
  *
3436
3871
  * */
3872
+ var color = Color.parse;
3873
+ var addEvent = U.addEvent,
3874
+ arrayMax = U.arrayMax,
3875
+ arrayMin = U.arrayMin,
3876
+ isNumber = U.isNumber,
3877
+ merge = U.merge,
3878
+ objectEach = U.objectEach,
3879
+ pick = U.pick,
3880
+ setOptions = U.setOptions,
3881
+ stableSort = U.stableSort,
3882
+ wrap = U.wrap;
3437
3883
  /**
3438
3884
  * @interface Highcharts.BubbleLegendFormatterContextObject
3439
3885
  */ /**
@@ -3450,20 +3896,8 @@
3450
3896
  * @type {number}
3451
3897
  */
3452
3898
  ''; // detach doclets above
3453
- var color = Color.parse;
3454
- var addEvent = U.addEvent,
3455
- arrayMax = U.arrayMax,
3456
- arrayMin = U.arrayMin,
3457
- isNumber = U.isNumber,
3458
- merge = U.merge,
3459
- objectEach = U.objectEach,
3460
- pick = U.pick,
3461
- stableSort = U.stableSort,
3462
- wrap = U.wrap;
3463
3899
  var Series = H.Series,
3464
- Chart = H.Chart,
3465
- noop = H.noop,
3466
- setOptions = H.setOptions;
3900
+ noop = H.noop;
3467
3901
  setOptions({
3468
3902
  legend: {
3469
3903
  /**
@@ -3484,7 +3918,7 @@
3484
3918
  * individual range.
3485
3919
  *
3486
3920
  * @sample highcharts/bubble-legend/similartoseries/
3487
- * Similat look to the bubble series
3921
+ * Similar look to the bubble series
3488
3922
  * @sample highcharts/bubble-legend/bordercolor/
3489
3923
  * Individual bubble border color
3490
3924
  *
@@ -3512,7 +3946,7 @@
3512
3946
  * individual color is not defined.
3513
3947
  *
3514
3948
  * @sample highcharts/bubble-legend/similartoseries/
3515
- * Similat look to the bubble series
3949
+ * Similar look to the bubble series
3516
3950
  * @sample highcharts/bubble-legend/color/
3517
3951
  * Individual bubble color
3518
3952
  *
@@ -4439,7 +4873,7 @@
4439
4873
 
4440
4874
  return H.BubbleLegend;
4441
4875
  });
4442
- _registerModule(_modules, 'parts-more/BubbleSeries.js', [_modules['parts/Globals.js'], _modules['parts/Color.js'], _modules['parts/Point.js'], _modules['parts/Utilities.js']], function (H, Color, Point, U) {
4876
+ _registerModule(_modules, 'Series/Bubble/BubbleSeries.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Series/Series.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (Axis, BaseSeries, Color, H, Point, U) {
4443
4877
  /* *
4444
4878
  *
4445
4879
  * (c) 2010-2020 Torstein Honsi
@@ -4449,22 +4883,21 @@
4449
4883
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
4450
4884
  *
4451
4885
  * */
4452
- /**
4453
- * @typedef {"area"|"width"} Highcharts.BubbleSizeByValue
4454
- */
4455
4886
  var color = Color.parse;
4887
+ var noop = H.noop;
4456
4888
  var arrayMax = U.arrayMax,
4457
4889
  arrayMin = U.arrayMin,
4458
4890
  clamp = U.clamp,
4459
4891
  extend = U.extend,
4460
4892
  isNumber = U.isNumber,
4461
4893
  pick = U.pick,
4462
- pInt = U.pInt,
4463
- seriesType = U.seriesType;
4464
- var Axis = H.Axis,
4465
- noop = H.noop,
4466
- Series = H.Series,
4467
- seriesTypes = H.seriesTypes;
4894
+ pInt = U.pInt;
4895
+ var Series = H.Series,
4896
+ seriesTypes = BaseSeries.seriesTypes;
4897
+ /**
4898
+ * @typedef {"area"|"width"} Highcharts.BubbleSizeByValue
4899
+ */
4900
+ ''; // detach doclets above
4468
4901
  /**
4469
4902
  * A bubble series is a three dimensional series type where each point renders
4470
4903
  * an X, Y and Z value. Each points is drawn as a bubble where the position
@@ -4480,7 +4913,7 @@
4480
4913
  * @requires highcharts-more
4481
4914
  * @optionparent plotOptions.bubble
4482
4915
  */
4483
- seriesType('bubble', 'scatter', {
4916
+ BaseSeries.seriesType('bubble', 'scatter', {
4484
4917
  dataLabels: {
4485
4918
  formatter: function () {
4486
4919
  return this.point.z;
@@ -4790,24 +5223,19 @@
4790
5223
  this.points.length < this.options.animationLimit // #8099
4791
5224
  ) {
4792
5225
  this.points.forEach(function (point) {
4793
- var graphic = point.graphic,
4794
- animationTarget;
5226
+ var graphic = point.graphic;
4795
5227
  if (graphic && graphic.width) { // URL symbols don't have width
4796
- animationTarget = {
4797
- x: graphic.x,
4798
- y: graphic.y,
4799
- width: graphic.width,
4800
- height: graphic.height
4801
- };
4802
5228
  // Start values
4803
- graphic.attr({
4804
- x: point.plotX,
4805
- y: point.plotY,
4806
- width: 1,
4807
- height: 1
4808
- });
5229
+ if (!this.hasRendered) {
5230
+ graphic.attr({
5231
+ x: point.plotX,
5232
+ y: point.plotY,
5233
+ width: 1,
5234
+ height: 1
5235
+ });
5236
+ }
4809
5237
  // Run animation
4810
- graphic.animate(animationTarget, this.options.animation);
5238
+ graphic.animate(this.markerAttribs(point), this.options.animation);
4811
5239
  }
4812
5240
  }, this);
4813
5241
  }
@@ -5049,7 +5477,7 @@
5049
5477
  ''; // adds doclets above to transpiled file
5050
5478
 
5051
5479
  });
5052
- _registerModule(_modules, 'parts-map/MapBubbleSeries.js', [_modules['parts/Globals.js'], _modules['parts/Point.js'], _modules['parts/Utilities.js']], function (H, Point, U) {
5480
+ _registerModule(_modules, 'Series/MapBubbleSeries.js', [_modules['Core/Series/Series.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (BaseSeries, Point, U) {
5053
5481
  /* *
5054
5482
  *
5055
5483
  * (c) 2010-2020 Torstein Honsi
@@ -5059,9 +5487,8 @@
5059
5487
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
5060
5488
  *
5061
5489
  * */
5062
- var merge = U.merge,
5063
- seriesType = U.seriesType;
5064
- var seriesTypes = H.seriesTypes;
5490
+ var merge = U.merge;
5491
+ var seriesTypes = BaseSeries.seriesTypes;
5065
5492
  // The mapbubble series type
5066
5493
  if (seriesTypes.bubble) {
5067
5494
  /**
@@ -5071,7 +5498,7 @@
5071
5498
  *
5072
5499
  * @augments Highcharts.Series
5073
5500
  */
5074
- seriesType('mapbubble', 'bubble'
5501
+ BaseSeries.seriesType('mapbubble', 'bubble'
5075
5502
  /**
5076
5503
  * A map bubble series is a bubble series laid out on top of a map
5077
5504
  * series, where each bubble is tied to a specific map area.
@@ -5291,7 +5718,7 @@
5291
5718
  ''; // adds doclets above to transpiled file
5292
5719
 
5293
5720
  });
5294
- _registerModule(_modules, 'parts-map/HeatmapSeries.js', [_modules['parts/Globals.js'], _modules['mixins/legend-symbol.js'], _modules['parts/Utilities.js']], function (H, LegendSymbolMixin, U) {
5721
+ _registerModule(_modules, 'Series/HeatmapSeries.js', [_modules['Core/Series/Series.js'], _modules['Mixins/ColorMapSeries.js'], _modules['Core/Globals.js'], _modules['Mixins/LegendSymbol.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (BaseSeries, ColorMapMixin, H, LegendSymbolMixin, SVGRenderer, U) {
5295
5722
  /* *
5296
5723
  *
5297
5724
  * (c) 2010-2020 Torstein Honsi
@@ -5301,6 +5728,18 @@
5301
5728
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
5302
5729
  *
5303
5730
  * */
5731
+ var colorMapPointMixin = ColorMapMixin.colorMapPointMixin,
5732
+ colorMapSeriesMixin = ColorMapMixin.colorMapSeriesMixin;
5733
+ var noop = H.noop;
5734
+ var clamp = U.clamp,
5735
+ extend = U.extend,
5736
+ fireEvent = U.fireEvent,
5737
+ isNumber = U.isNumber,
5738
+ merge = U.merge,
5739
+ pick = U.pick;
5740
+ var Series = H.Series,
5741
+ seriesTypes = BaseSeries.seriesTypes,
5742
+ symbols = SVGRenderer.prototype.symbols;
5304
5743
  /* *
5305
5744
  * @interface Highcharts.PointOptionsObject in parts/Point.ts
5306
5745
  */ /**
@@ -5313,19 +5752,7 @@
5313
5752
  * @name Highcharts.PointOptionsObject#value
5314
5753
  * @type {number|null|undefined}
5315
5754
  */
5316
- var clamp = U.clamp,
5317
- extend = U.extend,
5318
- fireEvent = U.fireEvent,
5319
- isNumber = U.isNumber,
5320
- merge = U.merge,
5321
- pick = U.pick,
5322
- seriesType = U.seriesType;
5323
- var colorMapPointMixin = H.colorMapPointMixin,
5324
- colorMapSeriesMixin = H.colorMapSeriesMixin,
5325
- noop = H.noop,
5326
- Series = H.Series,
5327
- seriesTypes = H.seriesTypes,
5328
- symbols = H.SVGRenderer.prototype.symbols;
5755
+ ''; // detach doclets above
5329
5756
  /**
5330
5757
  * @private
5331
5758
  * @class
@@ -5333,7 +5760,7 @@
5333
5760
  *
5334
5761
  * @augments Highcharts.Series
5335
5762
  */
5336
- seriesType('heatmap', 'scatter',
5763
+ BaseSeries.seriesType('heatmap', 'scatter',
5337
5764
  /**
5338
5765
  * A heatmap is a graphical representation of data where the individual
5339
5766
  * values contained in a matrix are represented as colors.
@@ -5347,11 +5774,11 @@
5347
5774
  * Heavy heatmap
5348
5775
  *
5349
5776
  * @extends plotOptions.scatter
5350
- * @excluding animationLimit, connectEnds, connectNulls, dashStyle,
5351
- * findNearestPointBy, getExtremesFromAll, jitter, linecap,
5352
- * lineWidth, pointInterval, pointIntervalUnit, pointRange,
5353
- * pointStart, shadow, softThreshold, stacking, step,
5354
- * threshold, cluster
5777
+ * @excluding animationLimit, connectEnds, connectNulls, cropThreshold,
5778
+ * dashStyle, findNearestPointBy, getExtremesFromAll, jitter,
5779
+ * linecap, lineWidth, pointInterval, pointIntervalUnit,
5780
+ * pointRange, pointStart, shadow, softThreshold, stacking,
5781
+ * step, threshold, cluster
5355
5782
  * @product highcharts highmaps
5356
5783
  * @optionparent plotOptions.heatmap
5357
5784
  */
@@ -5435,6 +5862,7 @@
5435
5862
  },
5436
5863
  /**
5437
5864
  * @excluding radius, enabledThreshold
5865
+ * @since 8.1
5438
5866
  */
5439
5867
  marker: {
5440
5868
  /**
@@ -5988,7 +6416,7 @@
5988
6416
  * Requires `modules/heatmap`.
5989
6417
  *
5990
6418
  * @extends series,plotOptions.heatmap
5991
- * @excluding dataParser, dataURL, pointRange, stack,
6419
+ * @excluding cropThreshold, dataParser, dataURL, pointRange, stack,
5992
6420
  * @product highcharts highmaps
5993
6421
  * @apioption series.heatmap
5994
6422
  */
@@ -6094,11 +6522,13 @@
6094
6522
  /**
6095
6523
  * @excluding radius, enabledThreshold
6096
6524
  * @product highcharts highmaps
6525
+ * @since 8.1
6097
6526
  * @apioption series.heatmap.data.marker
6098
6527
  */
6099
6528
  /**
6100
6529
  * @excluding radius, enabledThreshold
6101
6530
  * @product highcharts highmaps
6531
+ * @since 8.1
6102
6532
  * @apioption series.heatmap.marker
6103
6533
  */
6104
6534
  /**
@@ -6109,158 +6539,31 @@
6109
6539
  /**
6110
6540
  * @excluding radius
6111
6541
  * @product highcharts highmaps
6112
- * @apioption series.heatmap.marker.states.select
6113
- */
6114
- /**
6115
- * @excluding radius, radiusPlus
6116
- * @product highcharts highmaps
6117
- * @apioption series.heatmap.data.marker.states.hover
6118
- */
6119
- /**
6120
- * @excluding radius
6121
- * @product highcharts highmaps
6122
- * @apioption series.heatmap.data.marker.states.select
6123
- */
6124
- /**
6125
- * Set the marker's fixed width on hover state.
6126
- *
6127
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-linewidthplus
6128
- * 5 pixels wider lineWidth on hover
6129
- *
6130
- * @type {number|undefined}
6131
- * @default 0
6132
- * @product highcharts highmaps
6133
- * @apioption series.heatmap.marker.states.hover.lineWidthPlus
6134
- */
6135
- /**
6136
- * Set the marker's fixed width on hover state.
6137
- *
6138
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6139
- * 70px fixed marker's width and height on hover
6140
- *
6141
- * @type {number|undefined}
6142
- * @default undefined
6143
- * @product highcharts highmaps
6144
- * @apioption series.heatmap.marker.states.hover.width
6145
- */
6146
- /**
6147
- * Set the marker's fixed height on hover state.
6148
- *
6149
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6150
- * 70px fixed marker's width and height on hover
6151
- *
6152
- * @type {number|undefined}
6153
- * @default undefined
6154
- * @product highcharts highmaps
6155
- * @apioption series.heatmap.marker.states.hover.height
6156
- */
6157
- /**
6158
- * The number of pixels to increase the width of the
6159
- * hovered point.
6160
- *
6161
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6162
- * One day
6163
- *
6164
- * @type {number|undefined}
6165
- * @default undefined
6166
- * @product highcharts highmaps
6167
- * @apioption series.heatmap.marker.states.hover.widthPlus
6168
- */
6169
- /**
6170
- * The number of pixels to increase the height of the
6171
- * hovered point.
6172
- *
6173
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6174
- * One day
6175
- *
6176
- * @type {number|undefined}
6177
- * @default undefined
6178
- * @product highcharts highmaps
6179
- * @apioption series.heatmap.marker.states.hover.heightPlus
6180
- */
6181
- /**
6182
- * The number of pixels to increase the width of the
6183
- * hovered point.
6184
- *
6185
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6186
- * One day
6187
- *
6188
- * @type {number|undefined}
6189
- * @default undefined
6190
- * @product highcharts highmaps
6191
- * @apioption series.heatmap.marker.states.select.widthPlus
6192
- */
6193
- /**
6194
- * The number of pixels to increase the height of the
6195
- * hovered point.
6196
- *
6197
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6198
- * One day
6199
- *
6200
- * @type {number|undefined}
6201
- * @default undefined
6202
- * @product highcharts highmaps
6203
- * @apioption series.heatmap.marker.states.select.heightPlus
6204
- */
6205
- /**
6206
- * Set the marker's fixed width on hover state.
6207
- *
6208
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-linewidthplus
6209
- * 5 pixels wider lineWidth on hover
6210
- *
6211
- * @type {number|undefined}
6212
- * @default 0
6213
- * @product highcharts highmaps
6214
- * @apioption series.heatmap.data.marker.states.hover.lineWidthPlus
6215
- */
6216
- /**
6217
- * Set the marker's fixed width on hover state.
6218
- *
6219
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6220
- * 70px fixed marker's width and height on hover
6221
- *
6222
- * @type {number|undefined}
6223
- * @default undefined
6224
- * @product highcharts highmaps
6225
- * @apioption series.heatmap.data.marker.states.hover.width
6226
- */
6227
- /**
6228
- * Set the marker's fixed height on hover state.
6229
- *
6230
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6231
- * 70px fixed marker's width and height on hover
6232
- *
6233
- * @type {number|undefined}
6234
- * @default undefined
6235
- * @product highcharts highmaps
6236
- * @apioption series.heatmap.data.marker.states.hover.height
6542
+ * @apioption series.heatmap.marker.states.select
6237
6543
  */
6238
6544
  /**
6239
- * The number of pixels to increase the width of the
6240
- * hovered point.
6241
- *
6242
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6243
- * One day
6244
- *
6245
- * @type {number|undefined}
6246
- * @default undefined
6247
- * @product highcharts highstock
6248
- * @apioption series.heatmap.data.marker.states.hover.widthPlus
6545
+ * @excluding radius, radiusPlus
6546
+ * @product highcharts highmaps
6547
+ * @apioption series.heatmap.data.marker.states.hover
6249
6548
  */
6250
6549
  /**
6251
- * The number of pixels to increase the height of the
6252
- * hovered point.
6253
- *
6254
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6255
- * One day
6256
- *
6257
- * @type {number|undefined}
6258
- * @default undefined
6259
- * @product highcharts highstock
6260
- * @apioption series.heatmap.data.marker.states.hover.heightPlus
6550
+ * @excluding radius
6551
+ * @product highcharts highmaps
6552
+ * @apioption series.heatmap.data.marker.states.select
6261
6553
  */
6262
6554
  /**
6263
- * Set the marker's fixed width on select state.
6555
+ * Set the marker's fixed width on hover state.
6556
+ *
6557
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-linewidthplus
6558
+ * 5 pixels wider lineWidth on hover
6559
+ *
6560
+ * @type {number|undefined}
6561
+ * @default 0
6562
+ * @product highcharts highmaps
6563
+ * @apioption series.heatmap.marker.states.hover.lineWidthPlus
6564
+ */
6565
+ /**
6566
+ * Set the marker's fixed width on hover state.
6264
6567
  *
6265
6568
  * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6266
6569
  * 70px fixed marker's width and height on hover
@@ -6268,10 +6571,10 @@
6268
6571
  * @type {number|undefined}
6269
6572
  * @default undefined
6270
6573
  * @product highcharts highmaps
6271
- * @apioption series.heatmap.data.marker.states.select.width
6574
+ * @apioption series.heatmap.marker.states.hover.width
6272
6575
  */
6273
6576
  /**
6274
- * Set the marker's fixed height on select state.
6577
+ * Set the marker's fixed height on hover state.
6275
6578
  *
6276
6579
  * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6277
6580
  * 70px fixed marker's width and height on hover
@@ -6279,417 +6582,163 @@
6279
6582
  * @type {number|undefined}
6280
6583
  * @default undefined
6281
6584
  * @product highcharts highmaps
6282
- * @apioption series.heatmap.data.marker.states.select.height
6283
- */
6284
- /**
6285
- * The number of pixels to increase the width of the
6286
- * hovered point.
6287
- *
6288
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6289
- * One day
6290
- *
6291
- * @type {number|undefined}
6292
- * @default undefined
6293
- * @product highcharts highstock
6294
- * @apioption series.heatmap.data.marker.states.select.widthPlus
6295
- */
6296
- /**
6297
- * The number of pixels to increase the height of the
6298
- * hovered point.
6299
- *
6300
- * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6301
- * One day
6302
- *
6303
- * @type {number|undefined}
6304
- * @default undefined
6305
- * @product highcharts highstock
6306
- * @apioption series.heatmap.data.marker.states.select.heightPlus
6307
- */
6308
- ''; // adds doclets above to transpiled file
6309
-
6310
- });
6311
- _registerModule(_modules, 'parts-map/GeoJSON.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js']], function (H, U) {
6312
- /* *
6313
- *
6314
- * (c) 2010-2020 Torstein Honsi
6315
- *
6316
- * License: www.highcharts.com/license
6317
- *
6318
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
6319
- *
6320
- * */
6321
- /**
6322
- * Result object of a map transformation.
6323
- *
6324
- * @interface Highcharts.MapCoordinateObject
6325
- */ /**
6326
- * X coordinate on the map.
6327
- * @name Highcharts.MapCoordinateObject#x
6328
- * @type {number}
6329
- */ /**
6330
- * Y coordinate on the map.
6331
- * @name Highcharts.MapCoordinateObject#y
6332
- * @type {number|null}
6333
- */
6334
- /**
6335
- * A latitude/longitude object.
6336
- *
6337
- * @interface Highcharts.MapLatLonObject
6338
- */ /**
6339
- * The latitude.
6340
- * @name Highcharts.MapLatLonObject#lat
6341
- * @type {number}
6342
- */ /**
6343
- * The longitude.
6344
- * @name Highcharts.MapLatLonObject#lon
6345
- * @type {number}
6346
- */
6347
- var error = U.error,
6348
- extend = U.extend,
6349
- format = U.format,
6350
- merge = U.merge,
6351
- wrap = U.wrap;
6352
- var Chart = H.Chart,
6353
- win = H.win;
6354
- /* eslint-disable no-invalid-this, valid-jsdoc */
6355
- /**
6356
- * Test for point in polygon. Polygon defined as array of [x,y] points.
6357
- * @private
6358
- */
6359
- function pointInPolygon(point, polygon) {
6360
- var i,
6361
- j,
6362
- rel1,
6363
- rel2,
6364
- c = false,
6365
- x = point.x,
6366
- y = point.y;
6367
- for (i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
6368
- rel1 = polygon[i][1] > y;
6369
- rel2 = polygon[j][1] > y;
6370
- if (rel1 !== rel2 &&
6371
- (x < (polygon[j][0] -
6372
- polygon[i][0]) * (y - polygon[i][1]) /
6373
- (polygon[j][1] - polygon[i][1]) +
6374
- polygon[i][0])) {
6375
- c = !c;
6376
- }
6377
- }
6378
- return c;
6379
- }
6380
- /**
6381
- * Highmaps only. Get point from latitude and longitude using specified
6382
- * transform definition.
6383
- *
6384
- * @requires modules/map
6385
- *
6386
- * @sample maps/series/latlon-transform/
6387
- * Use specific transformation for lat/lon
6388
- *
6389
- * @function Highcharts.Chart#transformFromLatLon
6390
- *
6391
- * @param {Highcharts.MapLatLonObject} latLon
6392
- * A latitude/longitude object.
6393
- *
6394
- * @param {*} transform
6395
- * The transform definition to use as explained in the
6396
- * {@link https://www.highcharts.com/docs/maps/latlon|documentation}.
6397
- *
6398
- * @return {Highcharts.MapCoordinateObject}
6399
- * An object with `x` and `y` properties.
6585
+ * @apioption series.heatmap.marker.states.hover.height
6400
6586
  */
6401
- Chart.prototype.transformFromLatLon = function (latLon, transform) {
6402
- /**
6403
- * Allows to manually load the proj4 library from Highcharts options
6404
- * instead of the `window`.
6405
- * In case of loading the library from a `script` tag,
6406
- * this option is not needed, it will be loaded from there by default.
6407
- *
6408
- * @type {function}
6409
- * @product highmaps
6410
- * @apioption chart.proj4
6411
- */
6412
- var _a;
6413
- var proj4 = (((_a = this.userOptions.chart) === null || _a === void 0 ? void 0 : _a.proj4) || win.proj4);
6414
- if (!proj4) {
6415
- error(21, false, this);
6416
- return {
6417
- x: 0,
6418
- y: null
6419
- };
6420
- }
6421
- var projected = proj4(transform.crs,
6422
- [latLon.lon,
6423
- latLon.lat]),
6424
- cosAngle = transform.cosAngle ||
6425
- (transform.rotation && Math.cos(transform.rotation)),
6426
- sinAngle = transform.sinAngle ||
6427
- (transform.rotation && Math.sin(transform.rotation)),
6428
- rotated = transform.rotation ? [
6429
- projected[0] * cosAngle + projected[1] * sinAngle,
6430
- -projected[0] * sinAngle + projected[1] * cosAngle
6431
- ] : projected;
6432
- return {
6433
- x: ((rotated[0] - (transform.xoffset || 0)) * (transform.scale || 1) +
6434
- (transform.xpan || 0)) * (transform.jsonres || 1) +
6435
- (transform.jsonmarginX || 0),
6436
- y: (((transform.yoffset || 0) - rotated[1]) * (transform.scale || 1) +
6437
- (transform.ypan || 0)) * (transform.jsonres || 1) -
6438
- (transform.jsonmarginY || 0)
6439
- };
6440
- };
6441
6587
  /**
6442
- * Highmaps only. Get latLon from point using specified transform definition.
6443
- * The method returns an object with the numeric properties `lat` and `lon`.
6444
- *
6445
- * @requires modules/map
6446
- *
6447
- * @sample maps/series/latlon-transform/
6448
- * Use specific transformation for lat/lon
6449
- *
6450
- * @function Highcharts.Chart#transformToLatLon
6451
- *
6452
- * @param {Highcharts.Point|Highcharts.MapCoordinateObject} point
6453
- * A `Point` instance, or any object containing the properties `x` and
6454
- * `y` with numeric values.
6455
- *
6456
- * @param {*} transform
6457
- * The transform definition to use as explained in the
6458
- * {@link https://www.highcharts.com/docs/maps/latlon|documentation}.
6459
- *
6460
- * @return {Highcharts.MapLatLonObject|undefined}
6461
- * An object with `lat` and `lon` properties.
6462
- */
6463
- Chart.prototype.transformToLatLon = function (point, transform) {
6464
- if (typeof win.proj4 === 'undefined') {
6465
- error(21, false, this);
6466
- return;
6467
- }
6468
- var normalized = {
6469
- x: ((point.x -
6470
- (transform.jsonmarginX || 0)) / (transform.jsonres || 1) -
6471
- (transform.xpan || 0)) / (transform.scale || 1) +
6472
- (transform.xoffset || 0),
6473
- y: ((-point.y - (transform.jsonmarginY || 0)) / (transform.jsonres || 1) +
6474
- (transform.ypan || 0)) / (transform.scale || 1) +
6475
- (transform.yoffset || 0)
6476
- },
6477
- cosAngle = transform.cosAngle ||
6478
- (transform.rotation && Math.cos(transform.rotation)),
6479
- sinAngle = transform.sinAngle ||
6480
- (transform.rotation && Math.sin(transform.rotation)),
6481
- // Note: Inverted sinAngle to reverse rotation direction
6482
- projected = win.proj4(transform.crs, 'WGS84',
6483
- transform.rotation ? {
6484
- x: normalized.x * cosAngle + normalized.y * -sinAngle,
6485
- y: normalized.x * sinAngle + normalized.y * cosAngle
6486
- } : normalized);
6487
- return { lat: projected.y, lon: projected.x };
6488
- };
6588
+ * The number of pixels to increase the width of the
6589
+ * hovered point.
6590
+ *
6591
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6592
+ * One day
6593
+ *
6594
+ * @type {number|undefined}
6595
+ * @default undefined
6596
+ * @product highcharts highmaps
6597
+ * @apioption series.heatmap.marker.states.hover.widthPlus
6598
+ */
6489
6599
  /**
6490
- * Highmaps only. Calculate latitude/longitude values for a point. Returns an
6491
- * object with the numeric properties `lat` and `lon`.
6492
- *
6493
- * @requires modules/map
6600
+ * The number of pixels to increase the height of the
6601
+ * hovered point.
6494
6602
  *
6495
- * @sample maps/demo/latlon-advanced/
6496
- * Advanced lat/lon demo
6603
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6604
+ * One day
6497
6605
  *
6498
- * @function Highcharts.Chart#fromPointToLatLon
6606
+ * @type {number|undefined}
6607
+ * @default undefined
6608
+ * @product highcharts highmaps
6609
+ * @apioption series.heatmap.marker.states.hover.heightPlus
6610
+ */
6611
+ /**
6612
+ * The number of pixels to increase the width of the
6613
+ * hovered point.
6499
6614
  *
6500
- * @param {Highcharts.Point|Highcharts.MapCoordinateObject} point
6501
- * A `Point` instance or anything containing `x` and `y` properties with
6502
- * numeric values.
6615
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6616
+ * One day
6503
6617
  *
6504
- * @return {Highcharts.MapLatLonObject|undefined}
6505
- * An object with `lat` and `lon` properties.
6618
+ * @type {number|undefined}
6619
+ * @default undefined
6620
+ * @product highcharts highmaps
6621
+ * @apioption series.heatmap.marker.states.select.widthPlus
6506
6622
  */
6507
- Chart.prototype.fromPointToLatLon = function (point) {
6508
- var transforms = this.mapTransforms,
6509
- transform;
6510
- if (!transforms) {
6511
- error(22, false, this);
6512
- return;
6513
- }
6514
- for (transform in transforms) {
6515
- if (Object.hasOwnProperty.call(transforms, transform) &&
6516
- transforms[transform].hitZone &&
6517
- pointInPolygon({ x: point.x, y: -point.y }, transforms[transform].hitZone.coordinates[0])) {
6518
- return this.transformToLatLon(point, transforms[transform]);
6519
- }
6520
- }
6521
- return this.transformToLatLon(point, transforms['default'] // eslint-disable-line dot-notation
6522
- );
6523
- };
6524
6623
  /**
6525
- * Highmaps only. Get chart coordinates from latitude/longitude. Returns an
6526
- * object with x and y values corresponding to the `xAxis` and `yAxis`.
6527
- *
6528
- * @requires modules/map
6624
+ * The number of pixels to increase the height of the
6625
+ * hovered point.
6529
6626
  *
6530
- * @sample maps/series/latlon-to-point/
6531
- * Find a point from lat/lon
6627
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6628
+ * One day
6532
6629
  *
6533
- * @function Highcharts.Chart#fromLatLonToPoint
6630
+ * @type {number|undefined}
6631
+ * @default undefined
6632
+ * @product highcharts highmaps
6633
+ * @apioption series.heatmap.marker.states.select.heightPlus
6634
+ */
6635
+ /**
6636
+ * Set the marker's fixed width on hover state.
6637
+ *
6638
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-linewidthplus
6639
+ * 5 pixels wider lineWidth on hover
6640
+ *
6641
+ * @type {number|undefined}
6642
+ * @default 0
6643
+ * @product highcharts highmaps
6644
+ * @apioption series.heatmap.data.marker.states.hover.lineWidthPlus
6645
+ */
6646
+ /**
6647
+ * Set the marker's fixed width on hover state.
6534
6648
  *
6535
- * @param {Highcharts.MapLatLonObject} latLon
6536
- * Coordinates.
6649
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6650
+ * 70px fixed marker's width and height on hover
6537
6651
  *
6538
- * @return {Highcharts.MapCoordinateObject}
6539
- * X and Y coordinates in terms of chart axis values.
6652
+ * @type {number|undefined}
6653
+ * @default undefined
6654
+ * @product highcharts highmaps
6655
+ * @apioption series.heatmap.data.marker.states.hover.width
6540
6656
  */
6541
- Chart.prototype.fromLatLonToPoint = function (latLon) {
6542
- var transforms = this.mapTransforms,
6543
- transform,
6544
- coords;
6545
- if (!transforms) {
6546
- error(22, false, this);
6547
- return {
6548
- x: 0,
6549
- y: null
6550
- };
6551
- }
6552
- for (transform in transforms) {
6553
- if (Object.hasOwnProperty.call(transforms, transform) &&
6554
- transforms[transform].hitZone) {
6555
- coords = this.transformFromLatLon(latLon, transforms[transform]);
6556
- if (pointInPolygon({ x: coords.x, y: -coords.y }, transforms[transform].hitZone.coordinates[0])) {
6557
- return coords;
6558
- }
6559
- }
6560
- }
6561
- return this.transformFromLatLon(latLon, transforms['default'] // eslint-disable-line dot-notation
6562
- );
6563
- };
6564
6657
  /**
6565
- * Highmaps only. Restructure a GeoJSON object in preparation to be read
6566
- * directly by the
6567
- * {@link https://api.highcharts.com/highmaps/plotOptions.series.mapData|series.mapData}
6568
- * option. The GeoJSON will be broken down to fit a specific Highcharts type,
6569
- * either `map`, `mapline` or `mappoint`. Meta data in GeoJSON's properties
6570
- * object will be copied directly over to {@link Point.properties} in Highmaps.
6658
+ * Set the marker's fixed height on hover state.
6571
6659
  *
6572
- * @requires modules/map
6660
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6661
+ * 70px fixed marker's width and height on hover
6573
6662
  *
6574
- * @sample maps/demo/geojson/
6575
- * Simple areas
6576
- * @sample maps/demo/geojson-multiple-types/
6577
- * Multiple types
6663
+ * @type {number|undefined}
6664
+ * @default undefined
6665
+ * @product highcharts highmaps
6666
+ * @apioption series.heatmap.data.marker.states.hover.height
6667
+ */
6668
+ /**
6669
+ * The number of pixels to increase the width of the
6670
+ * hovered point.
6578
6671
  *
6579
- * @function Highcharts.geojson
6672
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6673
+ * One day
6580
6674
  *
6581
- * @param {*} geojson
6582
- * The GeoJSON structure to parse, represented as a JavaScript object
6583
- * rather than a JSON string.
6675
+ * @type {number|undefined}
6676
+ * @default undefined
6677
+ * @product highcharts highstock
6678
+ * @apioption series.heatmap.data.marker.states.hover.widthPlus
6679
+ */
6680
+ /**
6681
+ * The number of pixels to increase the height of the
6682
+ * hovered point.
6584
6683
  *
6585
- * @param {string} [hType=map]
6586
- * The Highmaps series type to prepare for. Setting "map" will return
6587
- * GeoJSON polygons and multipolygons. Setting "mapline" will return
6588
- * GeoJSON linestrings and multilinestrings. Setting "mappoint" will
6589
- * return GeoJSON points and multipoints.
6684
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6685
+ * One day
6590
6686
  *
6591
- * @return {Array<*>}
6592
- * An object ready for the `mapData` option.
6687
+ * @type {number|undefined}
6688
+ * @default undefined
6689
+ * @product highcharts highstock
6690
+ * @apioption series.heatmap.data.marker.states.hover.heightPlus
6593
6691
  */
6594
- H.geojson = function (geojson, hType, series) {
6595
- var mapData = [],
6596
- path = [],
6597
- polygonToPath = function (polygon) {
6598
- polygon.forEach(function (point,
6599
- i) {
6600
- if (i === 0) {
6601
- path.push(['M',
6602
- point[0], -point[1]]);
6603
- }
6604
- else {
6605
- path.push(['L', point[0], -point[1]]);
6606
- }
6607
- });
6608
- };
6609
- hType = hType || 'map';
6610
- geojson.features.forEach(function (feature) {
6611
- var geometry = feature.geometry,
6612
- type = geometry.type,
6613
- coordinates = geometry.coordinates,
6614
- properties = feature.properties,
6615
- point;
6616
- path = [];
6617
- if (hType === 'map' || hType === 'mapbubble') {
6618
- if (type === 'Polygon') {
6619
- coordinates.forEach(polygonToPath);
6620
- path.push(['Z']);
6621
- }
6622
- else if (type === 'MultiPolygon') {
6623
- coordinates.forEach(function (items) {
6624
- items.forEach(polygonToPath);
6625
- });
6626
- path.push(['Z']);
6627
- }
6628
- if (path.length) {
6629
- point = { path: path };
6630
- }
6631
- }
6632
- else if (hType === 'mapline') {
6633
- if (type === 'LineString') {
6634
- polygonToPath(coordinates);
6635
- }
6636
- else if (type === 'MultiLineString') {
6637
- coordinates.forEach(polygonToPath);
6638
- }
6639
- if (path.length) {
6640
- point = { path: path };
6641
- }
6642
- }
6643
- else if (hType === 'mappoint') {
6644
- if (type === 'Point') {
6645
- point = {
6646
- x: coordinates[0],
6647
- y: -coordinates[1]
6648
- };
6649
- }
6650
- }
6651
- if (point) {
6652
- mapData.push(extend(point, {
6653
- name: properties.name || properties.NAME,
6654
- /**
6655
- * In Highmaps, when data is loaded from GeoJSON, the GeoJSON
6656
- * item's properies are copied over here.
6657
- *
6658
- * @requires modules/map
6659
- * @name Highcharts.Point#properties
6660
- * @type {*}
6661
- */
6662
- properties: properties
6663
- }));
6664
- }
6665
- });
6666
- // Create a credits text that includes map source, to be picked up in
6667
- // Chart.addCredits
6668
- if (series && geojson.copyrightShort) {
6669
- series.chart.mapCredits = format(series.chart.options.credits.mapText, { geojson: geojson });
6670
- series.chart.mapCreditsFull = format(series.chart.options.credits.mapTextFull, { geojson: geojson });
6671
- }
6672
- return mapData;
6673
- };
6674
- // Override addCredits to include map source by default
6675
- wrap(Chart.prototype, 'addCredits', function (proceed, credits) {
6676
- credits = merge(true, this.options.credits, credits);
6677
- // Disable credits link if map credits enabled. This to allow for in-text
6678
- // anchors.
6679
- if (this.mapCredits) {
6680
- credits.href = null;
6681
- }
6682
- proceed.call(this, credits);
6683
- // Add full map credits to hover
6684
- if (this.credits && this.mapCreditsFull) {
6685
- this.credits.attr({
6686
- title: this.mapCreditsFull
6687
- });
6688
- }
6689
- });
6692
+ /**
6693
+ * Set the marker's fixed width on select state.
6694
+ *
6695
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6696
+ * 70px fixed marker's width and height on hover
6697
+ *
6698
+ * @type {number|undefined}
6699
+ * @default undefined
6700
+ * @product highcharts highmaps
6701
+ * @apioption series.heatmap.data.marker.states.select.width
6702
+ */
6703
+ /**
6704
+ * Set the marker's fixed height on select state.
6705
+ *
6706
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width
6707
+ * 70px fixed marker's width and height on hover
6708
+ *
6709
+ * @type {number|undefined}
6710
+ * @default undefined
6711
+ * @product highcharts highmaps
6712
+ * @apioption series.heatmap.data.marker.states.select.height
6713
+ */
6714
+ /**
6715
+ * The number of pixels to increase the width of the
6716
+ * hovered point.
6717
+ *
6718
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6719
+ * One day
6720
+ *
6721
+ * @type {number|undefined}
6722
+ * @default undefined
6723
+ * @product highcharts highstock
6724
+ * @apioption series.heatmap.data.marker.states.select.widthPlus
6725
+ */
6726
+ /**
6727
+ * The number of pixels to increase the height of the
6728
+ * hovered point.
6729
+ *
6730
+ * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus
6731
+ * One day
6732
+ *
6733
+ * @type {number|undefined}
6734
+ * @default undefined
6735
+ * @product highcharts highstock
6736
+ * @apioption series.heatmap.data.marker.states.select.heightPlus
6737
+ */
6738
+ ''; // adds doclets above to transpiled file
6690
6739
 
6691
6740
  });
6692
- _registerModule(_modules, 'parts-map/Map.js', [_modules['parts/Globals.js'], _modules['parts/Utilities.js']], function (H, U) {
6741
+ _registerModule(_modules, 'Extensions/GeoJSON.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (Chart, H, U) {
6693
6742
  /* *
6694
6743
  *
6695
6744
  * (c) 2010-2020 Torstein Honsi
@@ -6699,412 +6748,479 @@
6699
6748
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
6700
6749
  *
6701
6750
  * */
6702
- var extend = U.extend,
6751
+ var win = H.win;
6752
+ var error = U.error,
6753
+ extend = U.extend,
6754
+ format = U.format,
6703
6755
  merge = U.merge,
6704
- pick = U.pick;
6705
- var Chart = H.Chart,
6706
- defaultOptions = H.defaultOptions,
6707
- Renderer = H.Renderer,
6708
- SVGRenderer = H.SVGRenderer,
6709
- VMLRenderer = H.VMLRenderer;
6710
- // Add language
6711
- extend(defaultOptions.lang, {
6712
- zoomIn: 'Zoom in',
6713
- zoomOut: 'Zoom out'
6714
- });
6715
- // Set the default map navigation options
6756
+ wrap = U.wrap;
6716
6757
  /**
6717
- * @product highmaps
6718
- * @optionparent mapNavigation
6719
- */
6720
- defaultOptions.mapNavigation = {
6721
- /**
6722
- * General options for the map navigation buttons. Individual options
6723
- * can be given from the [mapNavigation.buttons](#mapNavigation.buttons)
6724
- * option set.
6725
- *
6726
- * @sample {highmaps} maps/mapnavigation/button-theme/
6727
- * Theming the navigation buttons
6728
- */
6729
- buttonOptions: {
6730
- /**
6731
- * What box to align the buttons to. Possible values are `plotBox`
6732
- * and `spacingBox`.
6733
- *
6734
- * @type {Highcharts.ButtonRelativeToValue}
6735
- */
6736
- alignTo: 'plotBox',
6737
- /**
6738
- * The alignment of the navigation buttons.
6739
- *
6740
- * @type {Highcharts.AlignValue}
6741
- */
6742
- align: 'left',
6743
- /**
6744
- * The vertical alignment of the buttons. Individual alignment can
6745
- * be adjusted by each button's `y` offset.
6746
- *
6747
- * @type {Highcharts.VerticalAlignValue}
6748
- */
6749
- verticalAlign: 'top',
6750
- /**
6751
- * The X offset of the buttons relative to its `align` setting.
6752
- */
6753
- x: 0,
6754
- /**
6755
- * The width of the map navigation buttons.
6756
- */
6757
- width: 18,
6758
- /**
6759
- * The pixel height of the map navigation buttons.
6760
- */
6761
- height: 18,
6762
- /**
6763
- * Padding for the navigation buttons.
6764
- *
6765
- * @since 5.0.0
6766
- */
6767
- padding: 5,
6768
- /**
6769
- * Text styles for the map navigation buttons.
6770
- *
6771
- * @type {Highcharts.CSSObject}
6772
- * @default {"fontSize": "15px", "fontWeight": "bold"}
6773
- */
6774
- style: {
6775
- /** @ignore */
6776
- fontSize: '15px',
6777
- /** @ignore */
6778
- fontWeight: 'bold'
6779
- },
6780
- /**
6781
- * A configuration object for the button theme. The object accepts
6782
- * SVG properties like `stroke-width`, `stroke` and `fill`. Tri-state
6783
- * button styles are supported by the `states.hover` and `states.select`
6784
- * objects.
6785
- *
6786
- * @sample {highmaps} maps/mapnavigation/button-theme/
6787
- * Themed navigation buttons
6788
- *
6789
- * @type {Highcharts.SVGAttributes}
6790
- * @default {"stroke-width": 1, "text-align": "center"}
6791
- */
6792
- theme: {
6793
- /** @ignore */
6794
- 'stroke-width': 1,
6795
- /** @ignore */
6796
- 'text-align': 'center'
6797
- }
6798
- },
6799
- /**
6800
- * The individual buttons for the map navigation. This usually includes
6801
- * the zoom in and zoom out buttons. Properties for each button is
6802
- * inherited from
6803
- * [mapNavigation.buttonOptions](#mapNavigation.buttonOptions), while
6804
- * individual options can be overridden. But default, the `onclick`, `text`
6805
- * and `y` options are individual.
6806
- */
6807
- buttons: {
6808
- /**
6809
- * Options for the zoom in button. Properties for the zoom in and zoom
6810
- * out buttons are inherited from
6811
- * [mapNavigation.buttonOptions](#mapNavigation.buttonOptions), while
6812
- * individual options can be overridden. By default, the `onclick`,
6813
- * `text` and `y` options are individual.
6814
- *
6815
- * @extends mapNavigation.buttonOptions
6816
- */
6817
- zoomIn: {
6818
- // eslint-disable-next-line valid-jsdoc
6819
- /**
6820
- * Click handler for the button.
6821
- *
6822
- * @type {Function}
6823
- * @default function () { this.mapZoom(0.5); }
6824
- */
6825
- onclick: function () {
6826
- this.mapZoom(0.5);
6827
- },
6828
- /**
6829
- * The text for the button. The tooltip (title) is a language option
6830
- * given by [lang.zoomIn](#lang.zoomIn).
6831
- */
6832
- text: '+',
6833
- /**
6834
- * The position of the zoomIn button relative to the vertical
6835
- * alignment.
6836
- */
6837
- y: 0
6838
- },
6839
- /**
6840
- * Options for the zoom out button. Properties for the zoom in and
6841
- * zoom out buttons are inherited from
6842
- * [mapNavigation.buttonOptions](#mapNavigation.buttonOptions), while
6843
- * individual options can be overridden. By default, the `onclick`,
6844
- * `text` and `y` options are individual.
6845
- *
6846
- * @extends mapNavigation.buttonOptions
6847
- */
6848
- zoomOut: {
6849
- // eslint-disable-next-line valid-jsdoc
6850
- /**
6851
- * Click handler for the button.
6852
- *
6853
- * @type {Function}
6854
- * @default function () { this.mapZoom(2); }
6855
- */
6856
- onclick: function () {
6857
- this.mapZoom(2);
6858
- },
6859
- /**
6860
- * The text for the button. The tooltip (title) is a language option
6861
- * given by [lang.zoomOut](#lang.zoomIn).
6862
- */
6863
- text: '-',
6864
- /**
6865
- * The position of the zoomOut button relative to the vertical
6866
- * alignment.
6867
- */
6868
- y: 28
6758
+ * Represents the loose structure of a geographic JSON file.
6759
+ *
6760
+ * @interface Highcharts.GeoJSON
6761
+ */ /**
6762
+ * Full copyright note of the geographic data.
6763
+ * @name Highcharts.GeoJSON#copyright
6764
+ * @type {string|undefined}
6765
+ */ /**
6766
+ * Short copyright note of the geographic data suitable for watermarks.
6767
+ * @name Highcharts.GeoJSON#copyrightShort
6768
+ * @type {string|undefined}
6769
+ */ /**
6770
+ * Additional meta information based on the coordinate reference system.
6771
+ * @name Highcharts.GeoJSON#crs
6772
+ * @type {Highcharts.Dictionary<any>|undefined}
6773
+ */ /**
6774
+ * Data sets of geographic features.
6775
+ * @name Highcharts.GeoJSON#features
6776
+ * @type {Array<Highcharts.GeoJSONFeature>}
6777
+ */ /**
6778
+ * Map projections and transformations to be used when calculating between
6779
+ * lat/lon and chart values. Required for lat/lon support on maps. Allows
6780
+ * resizing, rotating, and moving portions of a map within its projected
6781
+ * coordinate system while still retaining lat/lon support. If using lat/lon
6782
+ * on a portion of the map that does not match a `hitZone`, the definition with
6783
+ * the key `default` is used.
6784
+ * @name Highcharts.GeoJSON#hc-transform
6785
+ * @type {Highcharts.Dictionary<Highcharts.GeoJSONTranslation>|undefined}
6786
+ */ /**
6787
+ * Title of the geographic data.
6788
+ * @name Highcharts.GeoJSON#title
6789
+ * @type {string|undefined}
6790
+ */ /**
6791
+ * Type of the geographic data. Type of an optimized map collection is
6792
+ * `FeatureCollection`.
6793
+ * @name Highcharts.GeoJSON#type
6794
+ * @type {string|undefined}
6795
+ */ /**
6796
+ * Version of the geographic data.
6797
+ * @name Highcharts.GeoJSON#version
6798
+ * @type {string|undefined}
6799
+ */
6800
+ /**
6801
+ * Data set of a geographic feature.
6802
+ * @interface Highcharts.GeoJSONFeature
6803
+ * @extends Highcharts.Dictionary<*>
6804
+ */ /**
6805
+ * Data type of the geographic feature.
6806
+ * @name Highcharts.GeoJSONFeature#type
6807
+ * @type {string}
6808
+ */
6809
+ /**
6810
+ * Describes the map projection and transformations applied to a portion of
6811
+ * a map.
6812
+ * @interface Highcharts.GeoJSONTranslation
6813
+ */ /**
6814
+ * The coordinate reference system used to generate this portion of the map.
6815
+ * @name Highcharts.GeoJSONTranslation#crs
6816
+ * @type {string}
6817
+ */ /**
6818
+ * Define the portion of the map that this defintion applies to. Defined as a
6819
+ * GeoJSON polygon feature object, with `type` and `coordinates` properties.
6820
+ * @name Highcharts.GeoJSONTranslation#hitZone
6821
+ * @type {Highcharts.Dictionary<*>|undefined}
6822
+ */ /**
6823
+ * Property for internal use for maps generated by Highsoft.
6824
+ * @name Highcharts.GeoJSONTranslation#jsonmarginX
6825
+ * @type {number|undefined}
6826
+ */ /**
6827
+ * Property for internal use for maps generated by Highsoft.
6828
+ * @name Highcharts.GeoJSONTranslation#jsonmarginY
6829
+ * @type {number|undefined}
6830
+ */ /**
6831
+ * Property for internal use for maps generated by Highsoft.
6832
+ * @name Highcharts.GeoJSONTranslation#jsonres
6833
+ * @type {number|undefined}
6834
+ */ /**
6835
+ * Specifies clockwise rotation of the coordinates after the projection, but
6836
+ * before scaling and panning. Defined in radians, relative to the coordinate
6837
+ * system origin.
6838
+ * @name Highcharts.GeoJSONTranslation#rotation
6839
+ * @type {number|undefined}
6840
+ */ /**
6841
+ * The scaling factor applied to the projected coordinates.
6842
+ * @name Highcharts.GeoJSONTranslation#scale
6843
+ * @type {number|undefined}
6844
+ */ /**
6845
+ * Property for internal use for maps generated by Highsoft.
6846
+ * @name Highcharts.GeoJSONTranslation#xoffset
6847
+ * @type {number|undefined}
6848
+ */ /**
6849
+ * X offset of projected coordinates after scaling.
6850
+ * @name Highcharts.GeoJSONTranslation#xpan
6851
+ * @type {number|undefined}
6852
+ */ /**
6853
+ * Property for internal use for maps generated by Highsoft.
6854
+ * @name Highcharts.GeoJSONTranslation#yoffset
6855
+ * @type {number|undefined}
6856
+ */ /**
6857
+ * Y offset of projected coordinates after scaling.
6858
+ * @name Highcharts.GeoJSONTranslation#ypan
6859
+ * @type {number|undefined}
6860
+ */
6861
+ /**
6862
+ * Result object of a map transformation.
6863
+ *
6864
+ * @interface Highcharts.MapCoordinateObject
6865
+ */ /**
6866
+ * X coordinate on the map.
6867
+ * @name Highcharts.MapCoordinateObject#x
6868
+ * @type {number}
6869
+ */ /**
6870
+ * Y coordinate on the map.
6871
+ * @name Highcharts.MapCoordinateObject#y
6872
+ * @type {number|null}
6873
+ */
6874
+ /**
6875
+ * A latitude/longitude object.
6876
+ *
6877
+ * @interface Highcharts.MapLatLonObject
6878
+ */ /**
6879
+ * The latitude.
6880
+ * @name Highcharts.MapLatLonObject#lat
6881
+ * @type {number}
6882
+ */ /**
6883
+ * The longitude.
6884
+ * @name Highcharts.MapLatLonObject#lon
6885
+ * @type {number}
6886
+ */
6887
+ ''; // detach doclets above
6888
+ /* eslint-disable no-invalid-this, valid-jsdoc */
6889
+ /**
6890
+ * Test for point in polygon. Polygon defined as array of [x,y] points.
6891
+ * @private
6892
+ */
6893
+ function pointInPolygon(point, polygon) {
6894
+ var i,
6895
+ j,
6896
+ rel1,
6897
+ rel2,
6898
+ c = false,
6899
+ x = point.x,
6900
+ y = point.y;
6901
+ for (i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
6902
+ rel1 = polygon[i][1] > y;
6903
+ rel2 = polygon[j][1] > y;
6904
+ if (rel1 !== rel2 &&
6905
+ (x < (polygon[j][0] -
6906
+ polygon[i][0]) * (y - polygon[i][1]) /
6907
+ (polygon[j][1] - polygon[i][1]) +
6908
+ polygon[i][0])) {
6909
+ c = !c;
6869
6910
  }
6870
- },
6871
- /**
6872
- * Whether to enable navigation buttons. By default it inherits the
6873
- * [enabled](#mapNavigation.enabled) setting.
6874
- *
6875
- * @type {boolean}
6876
- * @apioption mapNavigation.enableButtons
6877
- */
6878
- /**
6879
- * Whether to enable map navigation. The default is not to enable
6880
- * navigation, as many choropleth maps are simple and don't need it.
6881
- * Additionally, when touch zoom and mousewheel zoom is enabled, it breaks
6882
- * the default behaviour of these interactions in the website, and the
6883
- * implementer should be aware of this.
6884
- *
6885
- * Individual interactions can be enabled separately, namely buttons,
6886
- * multitouch zoom, double click zoom, double click zoom to element and
6887
- * mousewheel zoom.
6888
- *
6889
- * @type {boolean}
6890
- * @default false
6891
- * @apioption mapNavigation.enabled
6892
- */
6893
- /**
6894
- * Enables zooming in on an area on double clicking in the map. By default
6895
- * it inherits the [enabled](#mapNavigation.enabled) setting.
6896
- *
6897
- * @type {boolean}
6898
- * @apioption mapNavigation.enableDoubleClickZoom
6899
- */
6900
- /**
6901
- * Whether to zoom in on an area when that area is double clicked.
6902
- *
6903
- * @sample {highmaps} maps/mapnavigation/doubleclickzoomto/
6904
- * Enable double click zoom to
6905
- *
6906
- * @type {boolean}
6907
- * @default false
6908
- * @apioption mapNavigation.enableDoubleClickZoomTo
6909
- */
6910
- /**
6911
- * Enables zooming by mouse wheel. By default it inherits the [enabled](
6912
- * #mapNavigation.enabled) setting.
6913
- *
6914
- * @type {boolean}
6915
- * @apioption mapNavigation.enableMouseWheelZoom
6916
- */
6917
- /**
6918
- * Whether to enable multitouch zooming. Note that if the chart covers the
6919
- * viewport, this prevents the user from using multitouch and touchdrag on
6920
- * the web page, so you should make sure the user is not trapped inside the
6921
- * chart. By default it inherits the [enabled](#mapNavigation.enabled)
6922
- * setting.
6923
- *
6924
- * @type {boolean}
6925
- * @apioption mapNavigation.enableTouchZoom
6926
- */
6911
+ }
6912
+ return c;
6913
+ }
6914
+ /**
6915
+ * Highmaps only. Get point from latitude and longitude using specified
6916
+ * transform definition.
6917
+ *
6918
+ * @requires modules/map
6919
+ *
6920
+ * @sample maps/series/latlon-transform/
6921
+ * Use specific transformation for lat/lon
6922
+ *
6923
+ * @function Highcharts.Chart#transformFromLatLon
6924
+ *
6925
+ * @param {Highcharts.MapLatLonObject} latLon
6926
+ * A latitude/longitude object.
6927
+ *
6928
+ * @param {*} transform
6929
+ * The transform definition to use as explained in the
6930
+ * {@link https://www.highcharts.com/docs/maps/latlon|documentation}.
6931
+ *
6932
+ * @return {Highcharts.MapCoordinateObject}
6933
+ * An object with `x` and `y` properties.
6934
+ */
6935
+ Chart.prototype.transformFromLatLon = function (latLon, transform) {
6927
6936
  /**
6928
- * Sensitivity of mouse wheel or trackpad scrolling. 1 is no sensitivity,
6929
- * while with 2, one mousewheel delta will zoom in 50%.
6937
+ * Allows to manually load the proj4 library from Highcharts options
6938
+ * instead of the `window`.
6939
+ * In case of loading the library from a `script` tag,
6940
+ * this option is not needed, it will be loaded from there by default.
6930
6941
  *
6931
- * @since 4.2.4
6942
+ * @type {function}
6943
+ * @product highmaps
6944
+ * @apioption chart.proj4
6932
6945
  */
6933
- mouseWheelSensitivity: 1.1
6934
- // enabled: false,
6935
- // enableButtons: null, // inherit from enabled
6936
- // enableTouchZoom: null, // inherit from enabled
6937
- // enableDoubleClickZoom: null, // inherit from enabled
6938
- // enableDoubleClickZoomTo: false
6939
- // enableMouseWheelZoom: null, // inherit from enabled
6946
+ var _a;
6947
+ var proj4 = (((_a = this.userOptions.chart) === null || _a === void 0 ? void 0 : _a.proj4) || win.proj4);
6948
+ if (!proj4) {
6949
+ error(21, false, this);
6950
+ return {
6951
+ x: 0,
6952
+ y: null
6953
+ };
6954
+ }
6955
+ var projected = proj4(transform.crs,
6956
+ [latLon.lon,
6957
+ latLon.lat]),
6958
+ cosAngle = transform.cosAngle ||
6959
+ (transform.rotation && Math.cos(transform.rotation)),
6960
+ sinAngle = transform.sinAngle ||
6961
+ (transform.rotation && Math.sin(transform.rotation)),
6962
+ rotated = transform.rotation ? [
6963
+ projected[0] * cosAngle + projected[1] * sinAngle,
6964
+ -projected[0] * sinAngle + projected[1] * cosAngle
6965
+ ] : projected;
6966
+ return {
6967
+ x: ((rotated[0] - (transform.xoffset || 0)) * (transform.scale || 1) +
6968
+ (transform.xpan || 0)) * (transform.jsonres || 1) +
6969
+ (transform.jsonmarginX || 0),
6970
+ y: (((transform.yoffset || 0) - rotated[1]) * (transform.scale || 1) +
6971
+ (transform.ypan || 0)) * (transform.jsonres || 1) -
6972
+ (transform.jsonmarginY || 0)
6973
+ };
6940
6974
  };
6941
- /* eslint-disable valid-jsdoc */
6942
6975
  /**
6943
- * Utility for reading SVG paths directly.
6976
+ * Highmaps only. Get latLon from point using specified transform definition.
6977
+ * The method returns an object with the numeric properties `lat` and `lon`.
6944
6978
  *
6945
6979
  * @requires modules/map
6946
6980
  *
6947
- * @function Highcharts.splitPath
6981
+ * @sample maps/series/latlon-transform/
6982
+ * Use specific transformation for lat/lon
6948
6983
  *
6949
- * @param {string|Array<string|number>} path
6984
+ * @function Highcharts.Chart#transformToLatLon
6950
6985
  *
6951
- * @return {Highcharts.SVGPathArray}
6986
+ * @param {Highcharts.Point|Highcharts.MapCoordinateObject} point
6987
+ * A `Point` instance, or any object containing the properties `x` and
6988
+ * `y` with numeric values.
6989
+ *
6990
+ * @param {*} transform
6991
+ * The transform definition to use as explained in the
6992
+ * {@link https://www.highcharts.com/docs/maps/latlon|documentation}.
6993
+ *
6994
+ * @return {Highcharts.MapLatLonObject|undefined}
6995
+ * An object with `lat` and `lon` properties.
6952
6996
  */
6953
- H.splitPath = function (path) {
6954
- var arr;
6955
- if (typeof path === 'string') {
6956
- path = path
6957
- // Move letters apart
6958
- .replace(/([A-Za-z])/g, ' $1 ')
6959
- // Trim
6960
- .replace(/^\s*/, '').replace(/\s*$/, '');
6961
- // Split on spaces and commas. The semicolon is bogus, designed to
6962
- // circumvent string replacement in the pre-v7 assembler that built
6963
- // specific styled mode files.
6964
- var split = path.split(/[ ,;]+/);
6965
- arr = split.map(function (item) {
6966
- if (!/[A-za-z]/.test(item)) {
6967
- return parseFloat(item);
6968
- }
6969
- return item;
6970
- });
6997
+ Chart.prototype.transformToLatLon = function (point, transform) {
6998
+ if (typeof win.proj4 === 'undefined') {
6999
+ error(21, false, this);
7000
+ return;
6971
7001
  }
6972
- else {
6973
- arr = path;
7002
+ var normalized = {
7003
+ x: ((point.x -
7004
+ (transform.jsonmarginX || 0)) / (transform.jsonres || 1) -
7005
+ (transform.xpan || 0)) / (transform.scale || 1) +
7006
+ (transform.xoffset || 0),
7007
+ y: ((-point.y - (transform.jsonmarginY || 0)) / (transform.jsonres || 1) +
7008
+ (transform.ypan || 0)) / (transform.scale || 1) +
7009
+ (transform.yoffset || 0)
7010
+ },
7011
+ cosAngle = transform.cosAngle ||
7012
+ (transform.rotation && Math.cos(transform.rotation)),
7013
+ sinAngle = transform.sinAngle ||
7014
+ (transform.rotation && Math.sin(transform.rotation)),
7015
+ // Note: Inverted sinAngle to reverse rotation direction
7016
+ projected = win.proj4(transform.crs, 'WGS84',
7017
+ transform.rotation ? {
7018
+ x: normalized.x * cosAngle + normalized.y * -sinAngle,
7019
+ y: normalized.x * sinAngle + normalized.y * cosAngle
7020
+ } : normalized);
7021
+ return { lat: projected.y, lon: projected.x };
7022
+ };
7023
+ /**
7024
+ * Highmaps only. Calculate latitude/longitude values for a point. Returns an
7025
+ * object with the numeric properties `lat` and `lon`.
7026
+ *
7027
+ * @requires modules/map
7028
+ *
7029
+ * @sample maps/demo/latlon-advanced/
7030
+ * Advanced lat/lon demo
7031
+ *
7032
+ * @function Highcharts.Chart#fromPointToLatLon
7033
+ *
7034
+ * @param {Highcharts.Point|Highcharts.MapCoordinateObject} point
7035
+ * A `Point` instance or anything containing `x` and `y` properties with
7036
+ * numeric values.
7037
+ *
7038
+ * @return {Highcharts.MapLatLonObject|undefined}
7039
+ * An object with `lat` and `lon` properties.
7040
+ */
7041
+ Chart.prototype.fromPointToLatLon = function (point) {
7042
+ var transforms = this.mapTransforms,
7043
+ transform;
7044
+ if (!transforms) {
7045
+ error(22, false, this);
7046
+ return;
7047
+ }
7048
+ for (transform in transforms) {
7049
+ if (Object.hasOwnProperty.call(transforms, transform) &&
7050
+ transforms[transform].hitZone &&
7051
+ pointInPolygon({ x: point.x, y: -point.y }, transforms[transform].hitZone.coordinates[0])) {
7052
+ return this.transformToLatLon(point, transforms[transform]);
7053
+ }
6974
7054
  }
6975
- return SVGRenderer.prototype.pathToSegments(arr);
7055
+ return this.transformToLatLon(point, transforms['default'] // eslint-disable-line dot-notation
7056
+ );
6976
7057
  };
6977
7058
  /**
6978
- * Contains all loaded map data for Highmaps.
7059
+ * Highmaps only. Get chart coordinates from latitude/longitude. Returns an
7060
+ * object with x and y values corresponding to the `xAxis` and `yAxis`.
6979
7061
  *
6980
7062
  * @requires modules/map
6981
7063
  *
6982
- * @name Highcharts.maps
6983
- * @type {Highcharts.Dictionary<*>}
6984
- */
6985
- H.maps = {};
6986
- /**
6987
- * Create symbols for the zoom buttons
6988
- * @private
7064
+ * @sample maps/series/latlon-to-point/
7065
+ * Find a point from lat/lon
7066
+ *
7067
+ * @function Highcharts.Chart#fromLatLonToPoint
7068
+ *
7069
+ * @param {Highcharts.MapLatLonObject} latLon
7070
+ * Coordinates.
7071
+ *
7072
+ * @return {Highcharts.MapCoordinateObject}
7073
+ * X and Y coordinates in terms of chart axis values.
6989
7074
  */
6990
- function selectiveRoundedRect(x, y, w, h, rTopLeft, rTopRight, rBottomRight, rBottomLeft) {
6991
- return [
6992
- ['M', x + rTopLeft, y],
6993
- // top side
6994
- ['L', x + w - rTopRight, y],
6995
- // top right corner
6996
- ['C', x + w - rTopRight / 2, y, x + w, y + rTopRight / 2, x + w, y + rTopRight],
6997
- // right side
6998
- ['L', x + w, y + h - rBottomRight],
6999
- // bottom right corner
7000
- ['C', x + w, y + h - rBottomRight / 2, x + w - rBottomRight / 2, y + h, x + w - rBottomRight, y + h],
7001
- // bottom side
7002
- ['L', x + rBottomLeft, y + h],
7003
- // bottom left corner
7004
- ['C', x + rBottomLeft / 2, y + h, x, y + h - rBottomLeft / 2, x, y + h - rBottomLeft],
7005
- // left side
7006
- ['L', x, y + rTopLeft],
7007
- // top left corner
7008
- ['C', x, y + rTopLeft / 2, x + rTopLeft / 2, y, x + rTopLeft, y],
7009
- ['Z']
7010
- ];
7011
- }
7012
- SVGRenderer.prototype.symbols.topbutton = function (x, y, w, h, attr) {
7013
- return selectiveRoundedRect(x - 1, y - 1, w, h, attr.r, attr.r, 0, 0);
7014
- };
7015
- SVGRenderer.prototype.symbols.bottombutton = function (x, y, w, h, attr) {
7016
- return selectiveRoundedRect(x - 1, y - 1, w, h, 0, 0, attr.r, attr.r);
7075
+ Chart.prototype.fromLatLonToPoint = function (latLon) {
7076
+ var transforms = this.mapTransforms,
7077
+ transform,
7078
+ coords;
7079
+ if (!transforms) {
7080
+ error(22, false, this);
7081
+ return {
7082
+ x: 0,
7083
+ y: null
7084
+ };
7085
+ }
7086
+ for (transform in transforms) {
7087
+ if (Object.hasOwnProperty.call(transforms, transform) &&
7088
+ transforms[transform].hitZone) {
7089
+ coords = this.transformFromLatLon(latLon, transforms[transform]);
7090
+ if (pointInPolygon({ x: coords.x, y: -coords.y }, transforms[transform].hitZone.coordinates[0])) {
7091
+ return coords;
7092
+ }
7093
+ }
7094
+ }
7095
+ return this.transformFromLatLon(latLon, transforms['default'] // eslint-disable-line dot-notation
7096
+ );
7017
7097
  };
7018
- // The symbol callbacks are generated on the SVGRenderer object in all browsers.
7019
- // Even VML browsers need this in order to generate shapes in export. Now share
7020
- // them with the VMLRenderer.
7021
- if (Renderer === VMLRenderer) {
7022
- ['topbutton', 'bottombutton'].forEach(function (shape) {
7023
- VMLRenderer.prototype.symbols[shape] =
7024
- SVGRenderer.prototype.symbols[shape];
7025
- });
7026
- }
7027
7098
  /**
7028
- * The factory function for creating new map charts. Creates a new {@link
7029
- * Highcharts.Chart|Chart} object with different default options than the basic
7030
- * Chart.
7099
+ * Highmaps only. Restructure a GeoJSON object in preparation to be read
7100
+ * directly by the
7101
+ * {@link https://api.highcharts.com/highmaps/plotOptions.series.mapData|series.mapData}
7102
+ * option. The GeoJSON will be broken down to fit a specific Highcharts type,
7103
+ * either `map`, `mapline` or `mappoint`. Meta data in GeoJSON's properties
7104
+ * object will be copied directly over to {@link Point.properties} in Highmaps.
7031
7105
  *
7032
7106
  * @requires modules/map
7033
7107
  *
7034
- * @function Highcharts.mapChart
7108
+ * @sample maps/demo/geojson/
7109
+ * Simple areas
7110
+ * @sample maps/demo/geojson-multiple-types/
7111
+ * Multiple types
7035
7112
  *
7036
- * @param {string|Highcharts.HTMLDOMElement} [renderTo]
7037
- * The DOM element to render to, or its id.
7113
+ * @function Highcharts.geojson
7038
7114
  *
7039
- * @param {Highcharts.Options} options
7040
- * The chart options structure as described in the
7041
- * [options reference](https://api.highcharts.com/highstock).
7115
+ * @param {Highcharts.GeoJSON} geojson
7116
+ * The GeoJSON structure to parse, represented as a JavaScript object
7117
+ * rather than a JSON string.
7042
7118
  *
7043
- * @param {Highcharts.ChartCallbackFunction} [callback]
7044
- * A function to execute when the chart object is finished loading and
7045
- * rendering. In most cases the chart is built in one thread, but in
7046
- * Internet Explorer version 8 or less the chart is sometimes
7047
- * initialized before the document is ready, and in these cases the
7048
- * chart object will not be finished synchronously. As a consequence,
7049
- * code that relies on the newly built Chart object should always run in
7050
- * the callback. Defining a
7051
- * [chart.events.load](https://api.highcharts.com/highstock/chart.events.load)
7052
- * handler is equivalent.
7119
+ * @param {string} [hType=map]
7120
+ * The Highmaps series type to prepare for. Setting "map" will return
7121
+ * GeoJSON polygons and multipolygons. Setting "mapline" will return
7122
+ * GeoJSON linestrings and multilinestrings. Setting "mappoint" will
7123
+ * return GeoJSON points and multipoints.
7053
7124
  *
7054
- * @return {Highcharts.Chart}
7055
- * The chart object.
7125
+ * @return {Array<*>}
7126
+ * An object ready for the `mapData` option.
7056
7127
  */
7057
- H.Map = H.mapChart = function (a, b, c) {
7058
- var hasRenderToArg = typeof a === 'string' || a.nodeName,
7059
- options = arguments[hasRenderToArg ? 1 : 0],
7060
- userOptions = options,
7061
- hiddenAxis = {
7062
- endOnTick: false,
7063
- visible: false,
7064
- minPadding: 0,
7065
- maxPadding: 0,
7066
- startOnTick: false
7067
- },
7068
- seriesOptions,
7069
- defaultCreditsOptions = H.getOptions().credits;
7070
- /* For visual testing
7071
- hiddenAxis.gridLineWidth = 1;
7072
- hiddenAxis.gridZIndex = 10;
7073
- hiddenAxis.tickPositions = undefined;
7074
- // */
7075
- // Don't merge the data
7076
- seriesOptions = options.series;
7077
- options.series = null;
7078
- options = merge({
7079
- chart: {
7080
- panning: {
7081
- enabled: true,
7082
- type: 'xy'
7083
- },
7084
- type: 'map'
7085
- },
7086
- credits: {
7087
- mapText: pick(defaultCreditsOptions.mapText, ' \u00a9 <a href="{geojson.copyrightUrl}">' +
7088
- '{geojson.copyrightShort}</a>'),
7089
- mapTextFull: pick(defaultCreditsOptions.mapTextFull, '{geojson.copyright}')
7090
- },
7091
- tooltip: {
7092
- followTouchMove: false
7093
- },
7094
- xAxis: hiddenAxis,
7095
- yAxis: merge(hiddenAxis, { reversed: true })
7096
- }, options, // user's options
7097
- {
7098
- chart: {
7099
- inverted: false,
7100
- alignTicks: false
7128
+ H.geojson = function (geojson, hType, series) {
7129
+ var mapData = [],
7130
+ path = [],
7131
+ polygonToPath = function (polygon) {
7132
+ polygon.forEach(function (point,
7133
+ i) {
7134
+ if (i === 0) {
7135
+ path.push(['M',
7136
+ point[0], -point[1]]);
7137
+ }
7138
+ else {
7139
+ path.push(['L', point[0], -point[1]]);
7140
+ }
7141
+ });
7142
+ };
7143
+ hType = hType || 'map';
7144
+ geojson.features.forEach(function (feature) {
7145
+ var geometry = feature.geometry,
7146
+ type = geometry.type,
7147
+ coordinates = geometry.coordinates,
7148
+ properties = feature.properties,
7149
+ point;
7150
+ path = [];
7151
+ if (hType === 'map' || hType === 'mapbubble') {
7152
+ if (type === 'Polygon') {
7153
+ coordinates.forEach(polygonToPath);
7154
+ path.push(['Z']);
7155
+ }
7156
+ else if (type === 'MultiPolygon') {
7157
+ coordinates.forEach(function (items) {
7158
+ items.forEach(polygonToPath);
7159
+ });
7160
+ path.push(['Z']);
7161
+ }
7162
+ if (path.length) {
7163
+ point = { path: path };
7164
+ }
7165
+ }
7166
+ else if (hType === 'mapline') {
7167
+ if (type === 'LineString') {
7168
+ polygonToPath(coordinates);
7169
+ }
7170
+ else if (type === 'MultiLineString') {
7171
+ coordinates.forEach(polygonToPath);
7172
+ }
7173
+ if (path.length) {
7174
+ point = { path: path };
7175
+ }
7176
+ }
7177
+ else if (hType === 'mappoint') {
7178
+ if (type === 'Point') {
7179
+ point = {
7180
+ x: coordinates[0],
7181
+ y: -coordinates[1]
7182
+ };
7183
+ }
7184
+ }
7185
+ if (point) {
7186
+ mapData.push(extend(point, {
7187
+ name: properties.name || properties.NAME,
7188
+ /**
7189
+ * In Highmaps, when data is loaded from GeoJSON, the GeoJSON
7190
+ * item's properies are copied over here.
7191
+ *
7192
+ * @requires modules/map
7193
+ * @name Highcharts.Point#properties
7194
+ * @type {*}
7195
+ */
7196
+ properties: properties
7197
+ }));
7101
7198
  }
7102
7199
  });
7103
- options.series = userOptions.series = seriesOptions;
7104
- return hasRenderToArg ?
7105
- new Chart(a, options, c) :
7106
- new Chart(options, b);
7200
+ // Create a credits text that includes map source, to be picked up in
7201
+ // Chart.addCredits
7202
+ if (series && geojson.copyrightShort) {
7203
+ series.chart.mapCredits = format(series.chart.options.credits.mapText, { geojson: geojson });
7204
+ series.chart.mapCreditsFull = format(series.chart.options.credits.mapTextFull, { geojson: geojson });
7205
+ }
7206
+ return mapData;
7107
7207
  };
7208
+ // Override addCredits to include map source by default
7209
+ wrap(Chart.prototype, 'addCredits', function (proceed, credits) {
7210
+ credits = merge(true, this.options.credits, credits);
7211
+ // Disable credits link if map credits enabled. This to allow for in-text
7212
+ // anchors.
7213
+ if (this.mapCredits) {
7214
+ credits.href = null;
7215
+ }
7216
+ proceed.call(this, credits);
7217
+ // Add full map credits to hover
7218
+ if (this.credits && this.mapCreditsFull) {
7219
+ this.credits.attr({
7220
+ title: this.mapCreditsFull
7221
+ });
7222
+ }
7223
+ });
7108
7224
 
7109
7225
  });
7110
7226
  _registerModule(_modules, 'masters/modules/map.src.js', [], function () {