react-simple-maps 3.0.0-beta.3 → 3.0.0-beta.6
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.
- package/README.md +26 -17
- package/dist/index.es.js +37 -37
- package/dist/index.js +213 -174
- package/dist/index.umd.js +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
1
|
<img src="https://img.shields.io/bundlephobia/minzip/react-simple-maps?color=%2328cb95&label=gzip" />
|
|
3
2
|
|
|
4
3
|
# react-simple-maps
|
|
4
|
+
|
|
5
5
|
Create beautiful SVG maps in react with d3-geo and topojson using a declarative api.
|
|
6
6
|
|
|
7
7
|
Read the [docs](https://www.react-simple-maps.io/docs/getting-started/), or check out the [examples](https://www.react-simple-maps.io/examples/).
|
|
@@ -28,38 +28,36 @@ $ yarn add react-simple-maps
|
|
|
28
28
|
|
|
29
29
|
### Usage
|
|
30
30
|
|
|
31
|
-
`React-simple-maps` exposes a set of components that can be combined to create svg maps with markers and annotations. In order to render a map you have to provide a reference to a valid topojson file. You can find example topojson files
|
|
31
|
+
`React-simple-maps` exposes a set of components that can be combined to create svg maps with markers and annotations. In order to render a map you have to provide a reference to a valid topojson file. You can find example topojson files on [here](https://github.com/topojson/world-atlas) or [here](https://github.com/deldersveld/topojson). To learn how to make your own topojson maps from shapefiles, please read ["How to convert and prepare TopoJSON files for interactive mapping with d3"](https://hackernoon.com/how-to-convert-and-prepare-topojson-files-for-interactive-mapping-with-d3-499cf0ced5f) on medium.
|
|
32
32
|
|
|
33
33
|
```jsx
|
|
34
|
-
import React from "react"
|
|
35
|
-
import ReactDOM from "react-dom"
|
|
36
|
-
import {
|
|
37
|
-
ComposableMap,
|
|
38
|
-
Geographies,
|
|
39
|
-
Geography,
|
|
40
|
-
} from "react-simple-maps"
|
|
34
|
+
import React from "react";
|
|
35
|
+
import ReactDOM from "react-dom";
|
|
36
|
+
import { ComposableMap, Geographies, Geography } from "react-simple-maps";
|
|
41
37
|
|
|
42
38
|
// url to a valid topojson file
|
|
43
39
|
const geoUrl =
|
|
44
|
-
"https://raw.githubusercontent.com/
|
|
40
|
+
"https://raw.githubusercontent.com/deldersveld/topojson/master/world-countries.json";
|
|
45
41
|
|
|
46
42
|
const App = () => {
|
|
47
43
|
return (
|
|
48
44
|
<div>
|
|
49
45
|
<ComposableMap>
|
|
50
46
|
<Geographies geography={geoUrl}>
|
|
51
|
-
{({geographies}) =>
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
{({ geographies }) =>
|
|
48
|
+
geographies.map((geo) => (
|
|
49
|
+
<Geography key={geo.rsmKey} geography={geo} />
|
|
50
|
+
))
|
|
51
|
+
}
|
|
54
52
|
</Geographies>
|
|
55
53
|
</ComposableMap>
|
|
56
54
|
</div>
|
|
57
|
-
)
|
|
58
|
-
}
|
|
55
|
+
);
|
|
56
|
+
};
|
|
59
57
|
|
|
60
58
|
document.addEventListener("DOMContentLoaded", () => {
|
|
61
|
-
ReactDOM.render(<App />, document.getElementById("app"))
|
|
62
|
-
})
|
|
59
|
+
ReactDOM.render(<App />, document.getElementById("app"));
|
|
60
|
+
});
|
|
63
61
|
```
|
|
64
62
|
|
|
65
63
|
Check out the [live example](https://codesandbox.io/s/basic-map-wvlol)
|
|
@@ -68,5 +66,16 @@ The above will render a world map using the [equal earth projection](https://obs
|
|
|
68
66
|
|
|
69
67
|
For other examples and components, check out the [documentation](https://www.react-simple-maps.io/docs/getting-started).
|
|
70
68
|
|
|
69
|
+
### Map files
|
|
70
|
+
|
|
71
|
+
React-simple-maps does not restrict you to one specific map and relies on custom map files that you can modify in any way necessary for the project. This means that you can visualise countries, regions, and continents in various resolutions, as long as they can be represented using geojson/topojson.
|
|
72
|
+
|
|
73
|
+
In order for this to work properly, you will however need to provide these valid map files to react-simple-maps yourself. Luckily, there are decent sources for map files on github and elsewhere. Here are some you can check out:
|
|
74
|
+
|
|
75
|
+
* [Natural Earth](https://github.com/nvkelso/natural-earth-vector)
|
|
76
|
+
* [Topojson maps by @deldersveld](https://github.com/deldersveld/topojson)
|
|
77
|
+
* [Topojson world atlas](https://github.com/topojson/world-atlas)
|
|
78
|
+
|
|
71
79
|
### License
|
|
80
|
+
|
|
72
81
|
MIT licensed. Copyright (c) Richard Zimerman 2017. See [LICENSE.md](https://github.com/zcreativelabs/react-simple-maps/blob/master/LICENSE) for more details.
|
package/dist/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { createContext, useMemo, useCallback, useContext, useState, useEffect, memo, useRef, Fragment } from 'react';
|
|
1
|
+
import React, { createContext, useMemo, useCallback, forwardRef, useContext, useState, useEffect, memo, useRef, Fragment } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import * as d3Geo from 'd3-geo';
|
|
4
4
|
import { geoGraticule } from 'd3-geo';
|
|
@@ -255,8 +255,7 @@ MapProvider.propTypes = {
|
|
|
255
255
|
};
|
|
256
256
|
|
|
257
257
|
var _excluded$8 = ["width", "height", "projection", "projectionConfig", "className"];
|
|
258
|
-
|
|
259
|
-
var ComposableMap = function ComposableMap(_ref) {
|
|
258
|
+
var ComposableMap = forwardRef(function (_ref, ref) {
|
|
260
259
|
var _ref$width = _ref.width,
|
|
261
260
|
width = _ref$width === void 0 ? 800 : _ref$width,
|
|
262
261
|
_ref$height = _ref.height,
|
|
@@ -275,11 +274,12 @@ var ComposableMap = function ComposableMap(_ref) {
|
|
|
275
274
|
projection: projection,
|
|
276
275
|
projectionConfig: projectionConfig
|
|
277
276
|
}, /*#__PURE__*/React.createElement("svg", _extends({
|
|
277
|
+
ref: ref,
|
|
278
278
|
viewBox: "0 0 ".concat(width, " ").concat(height),
|
|
279
279
|
className: "rsm-svg ".concat(className)
|
|
280
280
|
}, restProps)));
|
|
281
|
-
};
|
|
282
|
-
|
|
281
|
+
});
|
|
282
|
+
ComposableMap.displayName = "ComposableMap";
|
|
283
283
|
ComposableMap.propTypes = {
|
|
284
284
|
width: PropTypes.number,
|
|
285
285
|
height: PropTypes.number,
|
|
@@ -415,8 +415,7 @@ function useGeographies(_ref) {
|
|
|
415
415
|
}
|
|
416
416
|
|
|
417
417
|
var _excluded$7 = ["geography", "children", "parseGeographies", "className"];
|
|
418
|
-
|
|
419
|
-
var Geographies = function Geographies(_ref) {
|
|
418
|
+
var Geographies = forwardRef(function (_ref, ref) {
|
|
420
419
|
var geography = _ref.geography,
|
|
421
420
|
children = _ref.children,
|
|
422
421
|
parseGeographies = _ref.parseGeographies,
|
|
@@ -437,6 +436,7 @@ var Geographies = function Geographies(_ref) {
|
|
|
437
436
|
borders = _useGeographies.borders;
|
|
438
437
|
|
|
439
438
|
return /*#__PURE__*/React.createElement("g", _extends({
|
|
439
|
+
ref: ref,
|
|
440
440
|
className: "rsm-geographies ".concat(className)
|
|
441
441
|
}, restProps), geographies && geographies.length > 0 && children({
|
|
442
442
|
geographies: geographies,
|
|
@@ -445,8 +445,8 @@ var Geographies = function Geographies(_ref) {
|
|
|
445
445
|
path: path,
|
|
446
446
|
projection: projection
|
|
447
447
|
}));
|
|
448
|
-
};
|
|
449
|
-
|
|
448
|
+
});
|
|
449
|
+
Geographies.displayName = "Geographies";
|
|
450
450
|
Geographies.propTypes = {
|
|
451
451
|
geography: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array]),
|
|
452
452
|
children: PropTypes.func,
|
|
@@ -455,8 +455,7 @@ Geographies.propTypes = {
|
|
|
455
455
|
};
|
|
456
456
|
|
|
457
457
|
var _excluded$6 = ["geography", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
458
|
-
|
|
459
|
-
var Geography = function Geography(_ref) {
|
|
458
|
+
var Geography = forwardRef(function (_ref, ref) {
|
|
460
459
|
var geography = _ref.geography,
|
|
461
460
|
onMouseEnter = _ref.onMouseEnter,
|
|
462
461
|
onMouseLeave = _ref.onMouseLeave,
|
|
@@ -513,6 +512,7 @@ var Geography = function Geography(_ref) {
|
|
|
513
512
|
}
|
|
514
513
|
|
|
515
514
|
return /*#__PURE__*/React.createElement("path", _extends({
|
|
515
|
+
ref: ref,
|
|
516
516
|
tabIndex: "0",
|
|
517
517
|
className: "rsm-geography ".concat(className),
|
|
518
518
|
d: geography.svgPath,
|
|
@@ -524,8 +524,8 @@ var Geography = function Geography(_ref) {
|
|
|
524
524
|
onMouseUp: handleMouseUp,
|
|
525
525
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
526
526
|
}, restProps));
|
|
527
|
-
};
|
|
528
|
-
|
|
527
|
+
});
|
|
528
|
+
Geography.displayName = "Geography";
|
|
529
529
|
Geography.propTypes = {
|
|
530
530
|
geography: PropTypes.object,
|
|
531
531
|
onMouseEnter: PropTypes.func,
|
|
@@ -540,8 +540,7 @@ Geography.propTypes = {
|
|
|
540
540
|
var Geography$1 = memo(Geography);
|
|
541
541
|
|
|
542
542
|
var _excluded$5 = ["fill", "stroke", "step", "className"];
|
|
543
|
-
|
|
544
|
-
var Graticule = function Graticule(_ref) {
|
|
543
|
+
var Graticule = forwardRef(function (_ref, ref) {
|
|
545
544
|
var _ref$fill = _ref.fill,
|
|
546
545
|
fill = _ref$fill === void 0 ? "transparent" : _ref$fill,
|
|
547
546
|
_ref$stroke = _ref.stroke,
|
|
@@ -556,13 +555,14 @@ var Graticule = function Graticule(_ref) {
|
|
|
556
555
|
path = _useContext.path;
|
|
557
556
|
|
|
558
557
|
return /*#__PURE__*/React.createElement("path", _extends({
|
|
558
|
+
ref: ref,
|
|
559
559
|
d: path(geoGraticule().step(step)()),
|
|
560
560
|
fill: fill,
|
|
561
561
|
stroke: stroke,
|
|
562
562
|
className: "rsm-graticule ".concat(className)
|
|
563
563
|
}, restProps));
|
|
564
|
-
};
|
|
565
|
-
|
|
564
|
+
});
|
|
565
|
+
Graticule.displayName = "Graticule";
|
|
566
566
|
Graticule.propTypes = {
|
|
567
567
|
fill: PropTypes.string,
|
|
568
568
|
stroke: PropTypes.string,
|
|
@@ -719,8 +719,7 @@ function useZoomPan(_ref) {
|
|
|
719
719
|
}
|
|
720
720
|
|
|
721
721
|
var _excluded$4 = ["center", "zoom", "minZoom", "maxZoom", "translateExtent", "filterZoomEvent", "onMoveStart", "onMove", "onMoveEnd", "className"];
|
|
722
|
-
|
|
723
|
-
var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
722
|
+
var ZoomableGroup = forwardRef(function (_ref, ref) {
|
|
724
723
|
var _ref$center = _ref.center,
|
|
725
724
|
center = _ref$center === void 0 ? [0, 0] : _ref$center,
|
|
726
725
|
_ref$zoom = _ref.zoom,
|
|
@@ -761,11 +760,12 @@ var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
|
761
760
|
height: height,
|
|
762
761
|
fill: "transparent"
|
|
763
762
|
}), /*#__PURE__*/React.createElement("g", _extends({
|
|
763
|
+
ref: ref,
|
|
764
764
|
transform: transformString,
|
|
765
765
|
className: "rsm-zoomable-group ".concat(className)
|
|
766
766
|
}, restProps)));
|
|
767
|
-
};
|
|
768
|
-
|
|
767
|
+
});
|
|
768
|
+
ZoomableGroup.displayName = "ZoomableGroup";
|
|
769
769
|
ZoomableGroup.propTypes = {
|
|
770
770
|
center: PropTypes.array,
|
|
771
771
|
zoom: PropTypes.number,
|
|
@@ -779,8 +779,7 @@ ZoomableGroup.propTypes = {
|
|
|
779
779
|
};
|
|
780
780
|
|
|
781
781
|
var _excluded$3 = ["id", "fill", "stroke", "strokeWidth", "className"];
|
|
782
|
-
|
|
783
|
-
var Sphere = function Sphere(_ref) {
|
|
782
|
+
var Sphere = forwardRef(function (_ref, ref) {
|
|
784
783
|
var _ref$id = _ref.id,
|
|
785
784
|
id = _ref$id === void 0 ? "rsm-sphere" : _ref$id,
|
|
786
785
|
_ref$fill = _ref.fill,
|
|
@@ -806,6 +805,7 @@ var Sphere = function Sphere(_ref) {
|
|
|
806
805
|
}, /*#__PURE__*/React.createElement("path", {
|
|
807
806
|
d: spherePath
|
|
808
807
|
}))), /*#__PURE__*/React.createElement("path", _extends({
|
|
808
|
+
ref: ref,
|
|
809
809
|
d: spherePath,
|
|
810
810
|
fill: fill,
|
|
811
811
|
stroke: stroke,
|
|
@@ -815,8 +815,8 @@ var Sphere = function Sphere(_ref) {
|
|
|
815
815
|
},
|
|
816
816
|
className: "rsm-sphere ".concat(className)
|
|
817
817
|
}, restProps)));
|
|
818
|
-
};
|
|
819
|
-
|
|
818
|
+
});
|
|
819
|
+
Sphere.displayName = "Sphere";
|
|
820
820
|
Sphere.propTypes = {
|
|
821
821
|
id: PropTypes.string,
|
|
822
822
|
fill: PropTypes.string,
|
|
@@ -827,8 +827,7 @@ Sphere.propTypes = {
|
|
|
827
827
|
var Sphere$1 = memo(Sphere);
|
|
828
828
|
|
|
829
829
|
var _excluded$2 = ["coordinates", "children", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
830
|
-
|
|
831
|
-
var Marker = function Marker(_ref) {
|
|
830
|
+
var Marker = forwardRef(function (_ref, ref) {
|
|
832
831
|
var coordinates = _ref.coordinates,
|
|
833
832
|
children = _ref.children,
|
|
834
833
|
onMouseEnter = _ref.onMouseEnter,
|
|
@@ -894,6 +893,7 @@ var Marker = function Marker(_ref) {
|
|
|
894
893
|
}
|
|
895
894
|
|
|
896
895
|
return /*#__PURE__*/React.createElement("g", _extends({
|
|
896
|
+
ref: ref,
|
|
897
897
|
transform: "translate(".concat(x, ", ").concat(y, ")"),
|
|
898
898
|
className: "rsm-marker ".concat(className),
|
|
899
899
|
onMouseEnter: handleMouseEnter,
|
|
@@ -904,8 +904,8 @@ var Marker = function Marker(_ref) {
|
|
|
904
904
|
onMouseUp: handleMouseUp,
|
|
905
905
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
906
906
|
}, restProps), children);
|
|
907
|
-
};
|
|
908
|
-
|
|
907
|
+
});
|
|
908
|
+
Marker.displayName = "Marker";
|
|
909
909
|
Marker.propTypes = {
|
|
910
910
|
coordinates: PropTypes.array,
|
|
911
911
|
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
|
@@ -920,8 +920,7 @@ Marker.propTypes = {
|
|
|
920
920
|
};
|
|
921
921
|
|
|
922
922
|
var _excluded$1 = ["from", "to", "coordinates", "stroke", "strokeWidth", "fill", "className"];
|
|
923
|
-
|
|
924
|
-
var Line = function Line(_ref) {
|
|
923
|
+
var Line = forwardRef(function (_ref, ref) {
|
|
925
924
|
var _ref$from = _ref.from,
|
|
926
925
|
from = _ref$from === void 0 ? [0, 0] : _ref$from,
|
|
927
926
|
_ref$to = _ref.to,
|
|
@@ -945,14 +944,15 @@ var Line = function Line(_ref) {
|
|
|
945
944
|
coordinates: coordinates || [from, to]
|
|
946
945
|
};
|
|
947
946
|
return /*#__PURE__*/React.createElement("path", _extends({
|
|
947
|
+
ref: ref,
|
|
948
948
|
d: path(lineData),
|
|
949
949
|
className: "rsm-line ".concat(className),
|
|
950
950
|
stroke: stroke,
|
|
951
951
|
strokeWidth: strokeWidth,
|
|
952
952
|
fill: fill
|
|
953
953
|
}, restProps));
|
|
954
|
-
};
|
|
955
|
-
|
|
954
|
+
});
|
|
955
|
+
Line.displayName = "Line";
|
|
956
956
|
Line.propTypes = {
|
|
957
957
|
from: PropTypes.array,
|
|
958
958
|
to: PropTypes.array,
|
|
@@ -964,8 +964,7 @@ Line.propTypes = {
|
|
|
964
964
|
};
|
|
965
965
|
|
|
966
966
|
var _excluded = ["subject", "children", "connectorProps", "dx", "dy", "curve", "className"];
|
|
967
|
-
|
|
968
|
-
var Annotation = function Annotation(_ref) {
|
|
967
|
+
var Annotation = forwardRef(function (_ref, ref) {
|
|
969
968
|
var subject = _ref.subject,
|
|
970
969
|
children = _ref.children,
|
|
971
970
|
connectorProps = _ref.connectorProps,
|
|
@@ -989,6 +988,7 @@ var Annotation = function Annotation(_ref) {
|
|
|
989
988
|
|
|
990
989
|
var connectorPath = createConnectorPath(dx, dy, curve);
|
|
991
990
|
return /*#__PURE__*/React.createElement("g", _extends({
|
|
991
|
+
ref: ref,
|
|
992
992
|
transform: "translate(".concat(x + dx, ", ").concat(y + dy, ")"),
|
|
993
993
|
className: "rsm-annotation ".concat(className)
|
|
994
994
|
}, restProps), /*#__PURE__*/React.createElement("path", _extends({
|
|
@@ -996,8 +996,8 @@ var Annotation = function Annotation(_ref) {
|
|
|
996
996
|
fill: "transparent",
|
|
997
997
|
stroke: "#000"
|
|
998
998
|
}, connectorProps)), children);
|
|
999
|
-
};
|
|
1000
|
-
|
|
999
|
+
});
|
|
1000
|
+
Annotation.displayName = "Annotation";
|
|
1001
1001
|
Annotation.propTypes = {
|
|
1002
1002
|
subject: PropTypes.array,
|
|
1003
1003
|
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var PropTypes = require('prop-types');
|
|
7
|
+
var d3Geo = require('d3-geo');
|
|
8
|
+
var topojsonClient = require('topojson-client');
|
|
9
|
+
var d3Zoom = require('d3-zoom');
|
|
10
|
+
var d3Selection = require('d3-selection');
|
|
11
|
+
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
function _interopNamespace(e) {
|
|
15
|
+
if (e && e.__esModule) return e;
|
|
16
|
+
var n = Object.create(null);
|
|
17
|
+
if (e) {
|
|
18
|
+
Object.keys(e).forEach(function (k) {
|
|
19
|
+
if (k !== 'default') {
|
|
20
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
21
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return e[k]; }
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
n["default"] = e;
|
|
29
|
+
return Object.freeze(n);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
33
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
34
|
+
var d3Geo__namespace = /*#__PURE__*/_interopNamespace(d3Geo);
|
|
8
35
|
|
|
9
36
|
function ownKeys(object, enumerableOnly) {
|
|
10
37
|
var keys = Object.keys(object);
|
|
@@ -171,10 +198,10 @@ function _nonIterableRest() {
|
|
|
171
198
|
|
|
172
199
|
var _excluded$9 = ["width", "height", "projection", "projectionConfig"];
|
|
173
200
|
|
|
174
|
-
var geoPath =
|
|
175
|
-
projections = _objectWithoutProperties(
|
|
201
|
+
var geoPath = d3Geo__namespace.geoPath,
|
|
202
|
+
projections = _objectWithoutProperties(d3Geo__namespace, ["geoPath"]);
|
|
176
203
|
|
|
177
|
-
var MapContext = createContext();
|
|
204
|
+
var MapContext = React.createContext();
|
|
178
205
|
|
|
179
206
|
var makeProjection = function makeProjection(_ref) {
|
|
180
207
|
var _ref$projectionConfig = _ref.projectionConfig,
|
|
@@ -220,7 +247,7 @@ var MapProvider = function MapProvider(_ref2) {
|
|
|
220
247
|
p2 = _ref8[1];
|
|
221
248
|
|
|
222
249
|
var s = projectionConfig.scale || null;
|
|
223
|
-
var projMemo = useMemo(function () {
|
|
250
|
+
var projMemo = React.useMemo(function () {
|
|
224
251
|
return makeProjection({
|
|
225
252
|
projectionConfig: {
|
|
226
253
|
center: cx || cx === 0 || cy || cy === 0 ? [cx, cy] : null,
|
|
@@ -233,8 +260,8 @@ var MapProvider = function MapProvider(_ref2) {
|
|
|
233
260
|
height: height
|
|
234
261
|
});
|
|
235
262
|
}, [width, height, projection, cx, cy, rx, ry, rz, p1, p2, s]);
|
|
236
|
-
var proj = useCallback(projMemo, [projMemo]);
|
|
237
|
-
var value = useMemo(function () {
|
|
263
|
+
var proj = React.useCallback(projMemo, [projMemo]);
|
|
264
|
+
var value = React.useMemo(function () {
|
|
238
265
|
return {
|
|
239
266
|
width: width,
|
|
240
267
|
height: height,
|
|
@@ -242,21 +269,20 @@ var MapProvider = function MapProvider(_ref2) {
|
|
|
242
269
|
path: geoPath().projection(proj)
|
|
243
270
|
};
|
|
244
271
|
}, [width, height, proj]);
|
|
245
|
-
return /*#__PURE__*/
|
|
272
|
+
return /*#__PURE__*/React__default["default"].createElement(MapContext.Provider, _extends({
|
|
246
273
|
value: value
|
|
247
274
|
}, restProps));
|
|
248
275
|
};
|
|
249
276
|
|
|
250
277
|
MapProvider.propTypes = {
|
|
251
|
-
width:
|
|
252
|
-
height:
|
|
253
|
-
projection:
|
|
254
|
-
projectionConfig:
|
|
278
|
+
width: PropTypes__default["default"].number,
|
|
279
|
+
height: PropTypes__default["default"].number,
|
|
280
|
+
projection: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].func]),
|
|
281
|
+
projectionConfig: PropTypes__default["default"].object
|
|
255
282
|
};
|
|
256
283
|
|
|
257
284
|
var _excluded$8 = ["width", "height", "projection", "projectionConfig", "className"];
|
|
258
|
-
|
|
259
|
-
var ComposableMap = function ComposableMap(_ref) {
|
|
285
|
+
var ComposableMap = React.forwardRef(function (_ref, ref) {
|
|
260
286
|
var _ref$width = _ref.width,
|
|
261
287
|
width = _ref$width === void 0 ? 800 : _ref$width,
|
|
262
288
|
_ref$height = _ref.height,
|
|
@@ -269,23 +295,24 @@ var ComposableMap = function ComposableMap(_ref) {
|
|
|
269
295
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
270
296
|
restProps = _objectWithoutProperties(_ref, _excluded$8);
|
|
271
297
|
|
|
272
|
-
return /*#__PURE__*/
|
|
298
|
+
return /*#__PURE__*/React__default["default"].createElement(MapProvider, {
|
|
273
299
|
width: width,
|
|
274
300
|
height: height,
|
|
275
301
|
projection: projection,
|
|
276
302
|
projectionConfig: projectionConfig
|
|
277
|
-
}, /*#__PURE__*/
|
|
303
|
+
}, /*#__PURE__*/React__default["default"].createElement("svg", _extends({
|
|
304
|
+
ref: ref,
|
|
278
305
|
viewBox: "0 0 ".concat(width, " ").concat(height),
|
|
279
306
|
className: "rsm-svg ".concat(className)
|
|
280
307
|
}, restProps)));
|
|
281
|
-
};
|
|
282
|
-
|
|
308
|
+
});
|
|
309
|
+
ComposableMap.displayName = "ComposableMap";
|
|
283
310
|
ComposableMap.propTypes = {
|
|
284
|
-
width:
|
|
285
|
-
height:
|
|
286
|
-
projection:
|
|
287
|
-
projectionConfig:
|
|
288
|
-
className:
|
|
311
|
+
width: PropTypes__default["default"].number,
|
|
312
|
+
height: PropTypes__default["default"].number,
|
|
313
|
+
projection: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].func]),
|
|
314
|
+
projectionConfig: PropTypes__default["default"].object,
|
|
315
|
+
className: PropTypes__default["default"].string
|
|
289
316
|
};
|
|
290
317
|
|
|
291
318
|
function getCoords(w, h, t) {
|
|
@@ -311,16 +338,16 @@ function getFeatures(geographies, parseGeographies) {
|
|
|
311
338
|
return parseGeographies ? parseGeographies(geographies.features || geographies) : geographies.features || geographies;
|
|
312
339
|
}
|
|
313
340
|
|
|
314
|
-
var feats = feature(geographies, geographies.objects[Object.keys(geographies.objects)[0]]).features;
|
|
341
|
+
var feats = topojsonClient.feature(geographies, geographies.objects[Object.keys(geographies.objects)[0]]).features;
|
|
315
342
|
return parseGeographies ? parseGeographies(feats) : feats;
|
|
316
343
|
}
|
|
317
344
|
function getMesh(geographies) {
|
|
318
345
|
var isTopojson = geographies.type === "Topology";
|
|
319
346
|
if (!isTopojson) return null;
|
|
320
|
-
var outline = mesh(geographies, geographies.objects[Object.keys(geographies.objects)[0]], function (a, b) {
|
|
347
|
+
var outline = topojsonClient.mesh(geographies, geographies.objects[Object.keys(geographies.objects)[0]], function (a, b) {
|
|
321
348
|
return a === b;
|
|
322
349
|
});
|
|
323
|
-
var borders = mesh(geographies, geographies.objects[Object.keys(geographies.objects)[0]], function (a, b) {
|
|
350
|
+
var borders = topojsonClient.mesh(geographies, geographies.objects[Object.keys(geographies.objects)[0]], function (a, b) {
|
|
324
351
|
return a !== b;
|
|
325
352
|
});
|
|
326
353
|
return {
|
|
@@ -365,15 +392,15 @@ function useGeographies(_ref) {
|
|
|
365
392
|
var geography = _ref.geography,
|
|
366
393
|
parseGeographies = _ref.parseGeographies;
|
|
367
394
|
|
|
368
|
-
var _useContext = useContext(MapContext),
|
|
395
|
+
var _useContext = React.useContext(MapContext),
|
|
369
396
|
path = _useContext.path;
|
|
370
397
|
|
|
371
|
-
var _useState = useState({}),
|
|
398
|
+
var _useState = React.useState({}),
|
|
372
399
|
_useState2 = _slicedToArray(_useState, 2),
|
|
373
400
|
output = _useState2[0],
|
|
374
401
|
setOutput = _useState2[1];
|
|
375
402
|
|
|
376
|
-
useEffect(function () {
|
|
403
|
+
React.useEffect(function () {
|
|
377
404
|
if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === "undefined") return;
|
|
378
405
|
if (!geography) return;
|
|
379
406
|
|
|
@@ -394,7 +421,7 @@ function useGeographies(_ref) {
|
|
|
394
421
|
}
|
|
395
422
|
}, [geography, parseGeographies]);
|
|
396
423
|
|
|
397
|
-
var _useMemo = useMemo(function () {
|
|
424
|
+
var _useMemo = React.useMemo(function () {
|
|
398
425
|
var mesh = output.mesh || {};
|
|
399
426
|
var preparedMesh = prepareMesh(mesh.outline, mesh.borders, path);
|
|
400
427
|
return {
|
|
@@ -415,8 +442,7 @@ function useGeographies(_ref) {
|
|
|
415
442
|
}
|
|
416
443
|
|
|
417
444
|
var _excluded$7 = ["geography", "children", "parseGeographies", "className"];
|
|
418
|
-
|
|
419
|
-
var Geographies = function Geographies(_ref) {
|
|
445
|
+
var Geographies = React.forwardRef(function (_ref, ref) {
|
|
420
446
|
var geography = _ref.geography,
|
|
421
447
|
children = _ref.children,
|
|
422
448
|
parseGeographies = _ref.parseGeographies,
|
|
@@ -424,7 +450,7 @@ var Geographies = function Geographies(_ref) {
|
|
|
424
450
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
425
451
|
restProps = _objectWithoutProperties(_ref, _excluded$7);
|
|
426
452
|
|
|
427
|
-
var _useContext = useContext(MapContext),
|
|
453
|
+
var _useContext = React.useContext(MapContext),
|
|
428
454
|
path = _useContext.path,
|
|
429
455
|
projection = _useContext.projection;
|
|
430
456
|
|
|
@@ -436,7 +462,8 @@ var Geographies = function Geographies(_ref) {
|
|
|
436
462
|
outline = _useGeographies.outline,
|
|
437
463
|
borders = _useGeographies.borders;
|
|
438
464
|
|
|
439
|
-
return /*#__PURE__*/
|
|
465
|
+
return /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
466
|
+
ref: ref,
|
|
440
467
|
className: "rsm-geographies ".concat(className)
|
|
441
468
|
}, restProps), geographies && geographies.length > 0 && children({
|
|
442
469
|
geographies: geographies,
|
|
@@ -445,18 +472,17 @@ var Geographies = function Geographies(_ref) {
|
|
|
445
472
|
path: path,
|
|
446
473
|
projection: projection
|
|
447
474
|
}));
|
|
448
|
-
};
|
|
449
|
-
|
|
475
|
+
});
|
|
476
|
+
Geographies.displayName = "Geographies";
|
|
450
477
|
Geographies.propTypes = {
|
|
451
|
-
geography:
|
|
452
|
-
children:
|
|
453
|
-
parseGeographies:
|
|
454
|
-
className:
|
|
478
|
+
geography: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object, PropTypes__default["default"].array]),
|
|
479
|
+
children: PropTypes__default["default"].func,
|
|
480
|
+
parseGeographies: PropTypes__default["default"].func,
|
|
481
|
+
className: PropTypes__default["default"].string
|
|
455
482
|
};
|
|
456
483
|
|
|
457
484
|
var _excluded$6 = ["geography", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
458
|
-
|
|
459
|
-
var Geography = function Geography(_ref) {
|
|
485
|
+
var Geography = React.forwardRef(function (_ref, ref) {
|
|
460
486
|
var geography = _ref.geography,
|
|
461
487
|
onMouseEnter = _ref.onMouseEnter,
|
|
462
488
|
onMouseLeave = _ref.onMouseLeave,
|
|
@@ -470,12 +496,12 @@ var Geography = function Geography(_ref) {
|
|
|
470
496
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
471
497
|
restProps = _objectWithoutProperties(_ref, _excluded$6);
|
|
472
498
|
|
|
473
|
-
var _useState = useState(false),
|
|
499
|
+
var _useState = React.useState(false),
|
|
474
500
|
_useState2 = _slicedToArray(_useState, 2),
|
|
475
501
|
isPressed = _useState2[0],
|
|
476
502
|
setPressed = _useState2[1];
|
|
477
503
|
|
|
478
|
-
var _useState3 = useState(false),
|
|
504
|
+
var _useState3 = React.useState(false),
|
|
479
505
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
480
506
|
isFocused = _useState4[0],
|
|
481
507
|
setFocus = _useState4[1];
|
|
@@ -512,7 +538,8 @@ var Geography = function Geography(_ref) {
|
|
|
512
538
|
if (onMouseUp) onMouseUp(evt);
|
|
513
539
|
}
|
|
514
540
|
|
|
515
|
-
return /*#__PURE__*/
|
|
541
|
+
return /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
542
|
+
ref: ref,
|
|
516
543
|
tabIndex: "0",
|
|
517
544
|
className: "rsm-geography ".concat(className),
|
|
518
545
|
d: geography.svgPath,
|
|
@@ -524,24 +551,23 @@ var Geography = function Geography(_ref) {
|
|
|
524
551
|
onMouseUp: handleMouseUp,
|
|
525
552
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
526
553
|
}, restProps));
|
|
527
|
-
};
|
|
528
|
-
|
|
554
|
+
});
|
|
555
|
+
Geography.displayName = "Geography";
|
|
529
556
|
Geography.propTypes = {
|
|
530
|
-
geography:
|
|
531
|
-
onMouseEnter:
|
|
532
|
-
onMouseLeave:
|
|
533
|
-
onMouseDown:
|
|
534
|
-
onMouseUp:
|
|
535
|
-
onFocus:
|
|
536
|
-
onBlur:
|
|
537
|
-
style:
|
|
538
|
-
className:
|
|
557
|
+
geography: PropTypes__default["default"].object,
|
|
558
|
+
onMouseEnter: PropTypes__default["default"].func,
|
|
559
|
+
onMouseLeave: PropTypes__default["default"].func,
|
|
560
|
+
onMouseDown: PropTypes__default["default"].func,
|
|
561
|
+
onMouseUp: PropTypes__default["default"].func,
|
|
562
|
+
onFocus: PropTypes__default["default"].func,
|
|
563
|
+
onBlur: PropTypes__default["default"].func,
|
|
564
|
+
style: PropTypes__default["default"].object,
|
|
565
|
+
className: PropTypes__default["default"].string
|
|
539
566
|
};
|
|
540
|
-
var Geography$1 = memo(Geography);
|
|
567
|
+
var Geography$1 = React.memo(Geography);
|
|
541
568
|
|
|
542
569
|
var _excluded$5 = ["fill", "stroke", "step", "className"];
|
|
543
|
-
|
|
544
|
-
var Graticule = function Graticule(_ref) {
|
|
570
|
+
var Graticule = React.forwardRef(function (_ref, ref) {
|
|
545
571
|
var _ref$fill = _ref.fill,
|
|
546
572
|
fill = _ref$fill === void 0 ? "transparent" : _ref$fill,
|
|
547
573
|
_ref$stroke = _ref.stroke,
|
|
@@ -552,24 +578,25 @@ var Graticule = function Graticule(_ref) {
|
|
|
552
578
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
553
579
|
restProps = _objectWithoutProperties(_ref, _excluded$5);
|
|
554
580
|
|
|
555
|
-
var _useContext = useContext(MapContext),
|
|
581
|
+
var _useContext = React.useContext(MapContext),
|
|
556
582
|
path = _useContext.path;
|
|
557
583
|
|
|
558
|
-
return /*#__PURE__*/
|
|
559
|
-
|
|
584
|
+
return /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
585
|
+
ref: ref,
|
|
586
|
+
d: path(d3Geo.geoGraticule().step(step)()),
|
|
560
587
|
fill: fill,
|
|
561
588
|
stroke: stroke,
|
|
562
589
|
className: "rsm-graticule ".concat(className)
|
|
563
590
|
}, restProps));
|
|
564
|
-
};
|
|
565
|
-
|
|
591
|
+
});
|
|
592
|
+
Graticule.displayName = "Graticule";
|
|
566
593
|
Graticule.propTypes = {
|
|
567
|
-
fill:
|
|
568
|
-
stroke:
|
|
569
|
-
step:
|
|
570
|
-
className:
|
|
594
|
+
fill: PropTypes__default["default"].string,
|
|
595
|
+
stroke: PropTypes__default["default"].string,
|
|
596
|
+
step: PropTypes__default["default"].array,
|
|
597
|
+
className: PropTypes__default["default"].string
|
|
571
598
|
};
|
|
572
|
-
var Graticule$1 = memo(Graticule);
|
|
599
|
+
var Graticule$1 = React.memo(Graticule);
|
|
573
600
|
|
|
574
601
|
function useZoomPan(_ref) {
|
|
575
602
|
var center = _ref.center,
|
|
@@ -582,9 +609,9 @@ function useZoomPan(_ref) {
|
|
|
582
609
|
_ref$scaleExtent = _ref.scaleExtent,
|
|
583
610
|
scaleExtent = _ref$scaleExtent === void 0 ? [1, 8] : _ref$scaleExtent,
|
|
584
611
|
_ref$zoom = _ref.zoom,
|
|
585
|
-
zoom
|
|
612
|
+
zoom = _ref$zoom === void 0 ? 1 : _ref$zoom;
|
|
586
613
|
|
|
587
|
-
var _useContext = useContext(MapContext),
|
|
614
|
+
var _useContext = React.useContext(MapContext),
|
|
588
615
|
width = _useContext.width,
|
|
589
616
|
height = _useContext.height,
|
|
590
617
|
projection = _useContext.projection;
|
|
@@ -593,7 +620,7 @@ function useZoomPan(_ref) {
|
|
|
593
620
|
lon = _center[0],
|
|
594
621
|
lat = _center[1];
|
|
595
622
|
|
|
596
|
-
var _useState = useState({
|
|
623
|
+
var _useState = React.useState({
|
|
597
624
|
x: 0,
|
|
598
625
|
y: 0,
|
|
599
626
|
k: 1
|
|
@@ -602,14 +629,14 @@ function useZoomPan(_ref) {
|
|
|
602
629
|
position = _useState2[0],
|
|
603
630
|
setPosition = _useState2[1];
|
|
604
631
|
|
|
605
|
-
var lastPosition = useRef({
|
|
632
|
+
var lastPosition = React.useRef({
|
|
606
633
|
x: 0,
|
|
607
634
|
y: 0,
|
|
608
635
|
k: 1
|
|
609
636
|
});
|
|
610
|
-
var mapRef = useRef();
|
|
611
|
-
var zoomRef = useRef();
|
|
612
|
-
var bypassEvents = useRef(false);
|
|
637
|
+
var mapRef = React.useRef();
|
|
638
|
+
var zoomRef = React.useRef();
|
|
639
|
+
var bypassEvents = React.useRef(false);
|
|
613
640
|
|
|
614
641
|
var _translateExtent = _slicedToArray(translateExtent, 2),
|
|
615
642
|
a = _translateExtent[0],
|
|
@@ -627,8 +654,8 @@ function useZoomPan(_ref) {
|
|
|
627
654
|
minZoom = _scaleExtent[0],
|
|
628
655
|
maxZoom = _scaleExtent[1];
|
|
629
656
|
|
|
630
|
-
useEffect(function () {
|
|
631
|
-
var svg = select(mapRef.current);
|
|
657
|
+
React.useEffect(function () {
|
|
658
|
+
var svg = d3Selection.select(mapRef.current);
|
|
632
659
|
|
|
633
660
|
function handleZoomStart(d3Event) {
|
|
634
661
|
if (!onMoveStart || bypassEvents.current) return;
|
|
@@ -688,29 +715,29 @@ function useZoomPan(_ref) {
|
|
|
688
715
|
return d3Event ? !d3Event.ctrlKey && !d3Event.button : false;
|
|
689
716
|
}
|
|
690
717
|
|
|
691
|
-
var zoom
|
|
692
|
-
zoomRef.current = zoom
|
|
693
|
-
svg.call(zoom
|
|
718
|
+
var zoom = d3Zoom.zoom().filter(filterFunc).scaleExtent([minZoom, maxZoom]).translateExtent([[a1, a2], [b1, b2]]).on("start", handleZoomStart).on("zoom", handleZoom).on("end", handleZoomEnd);
|
|
719
|
+
zoomRef.current = zoom;
|
|
720
|
+
svg.call(zoom);
|
|
694
721
|
}, [width, height, a1, a2, b1, b2, minZoom, maxZoom, projection, onMoveStart, onMove, onMoveEnd, filterZoomEvent]);
|
|
695
|
-
useEffect(function () {
|
|
696
|
-
if (lon === lastPosition.current.x && lat === lastPosition.current.y && zoom
|
|
722
|
+
React.useEffect(function () {
|
|
723
|
+
if (lon === lastPosition.current.x && lat === lastPosition.current.y && zoom === lastPosition.current.k) return;
|
|
697
724
|
var coords = projection([lon, lat]);
|
|
698
|
-
var x = coords[0] * zoom
|
|
699
|
-
var y = coords[1] * zoom
|
|
700
|
-
var svg = select(mapRef.current);
|
|
725
|
+
var x = coords[0] * zoom;
|
|
726
|
+
var y = coords[1] * zoom;
|
|
727
|
+
var svg = d3Selection.select(mapRef.current);
|
|
701
728
|
bypassEvents.current = true;
|
|
702
|
-
svg.call(zoomRef.current.transform, zoomIdentity.translate(width / 2 - x, height / 2 - y).scale(zoom
|
|
729
|
+
svg.call(zoomRef.current.transform, d3Zoom.zoomIdentity.translate(width / 2 - x, height / 2 - y).scale(zoom));
|
|
703
730
|
setPosition({
|
|
704
731
|
x: width / 2 - x,
|
|
705
732
|
y: height / 2 - y,
|
|
706
|
-
k: zoom
|
|
733
|
+
k: zoom
|
|
707
734
|
});
|
|
708
735
|
lastPosition.current = {
|
|
709
736
|
x: lon,
|
|
710
737
|
y: lat,
|
|
711
|
-
k: zoom
|
|
738
|
+
k: zoom
|
|
712
739
|
};
|
|
713
|
-
}, [lon, lat, zoom
|
|
740
|
+
}, [lon, lat, zoom, width, height, projection]);
|
|
714
741
|
return {
|
|
715
742
|
mapRef: mapRef,
|
|
716
743
|
position: position,
|
|
@@ -719,8 +746,7 @@ function useZoomPan(_ref) {
|
|
|
719
746
|
}
|
|
720
747
|
|
|
721
748
|
var _excluded$4 = ["center", "zoom", "minZoom", "maxZoom", "translateExtent", "filterZoomEvent", "onMoveStart", "onMove", "onMoveEnd", "className"];
|
|
722
|
-
|
|
723
|
-
var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
749
|
+
var ZoomableGroup = React.forwardRef(function (_ref, ref) {
|
|
724
750
|
var _ref$center = _ref.center,
|
|
725
751
|
center = _ref$center === void 0 ? [0, 0] : _ref$center,
|
|
726
752
|
_ref$zoom = _ref.zoom,
|
|
@@ -737,7 +763,7 @@ var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
|
737
763
|
className = _ref.className,
|
|
738
764
|
restProps = _objectWithoutProperties(_ref, _excluded$4);
|
|
739
765
|
|
|
740
|
-
var _useContext = useContext(MapContext),
|
|
766
|
+
var _useContext = React.useContext(MapContext),
|
|
741
767
|
width = _useContext.width,
|
|
742
768
|
height = _useContext.height;
|
|
743
769
|
|
|
@@ -754,33 +780,33 @@ var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
|
754
780
|
mapRef = _useZoomPan.mapRef,
|
|
755
781
|
transformString = _useZoomPan.transformString;
|
|
756
782
|
|
|
757
|
-
return /*#__PURE__*/
|
|
783
|
+
return /*#__PURE__*/React__default["default"].createElement("g", {
|
|
758
784
|
ref: mapRef
|
|
759
|
-
}, /*#__PURE__*/
|
|
785
|
+
}, /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
760
786
|
width: width,
|
|
761
787
|
height: height,
|
|
762
788
|
fill: "transparent"
|
|
763
|
-
}), /*#__PURE__*/
|
|
789
|
+
}), /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
790
|
+
ref: ref,
|
|
764
791
|
transform: transformString,
|
|
765
792
|
className: "rsm-zoomable-group ".concat(className)
|
|
766
793
|
}, restProps)));
|
|
767
|
-
};
|
|
768
|
-
|
|
794
|
+
});
|
|
795
|
+
ZoomableGroup.displayName = "ZoomableGroup";
|
|
769
796
|
ZoomableGroup.propTypes = {
|
|
770
|
-
center:
|
|
771
|
-
zoom:
|
|
772
|
-
minZoom:
|
|
773
|
-
maxZoom:
|
|
774
|
-
translateExtent:
|
|
775
|
-
onMoveStart:
|
|
776
|
-
onMove:
|
|
777
|
-
onMoveEnd:
|
|
778
|
-
className:
|
|
797
|
+
center: PropTypes__default["default"].array,
|
|
798
|
+
zoom: PropTypes__default["default"].number,
|
|
799
|
+
minZoom: PropTypes__default["default"].number,
|
|
800
|
+
maxZoom: PropTypes__default["default"].number,
|
|
801
|
+
translateExtent: PropTypes__default["default"].arrayOf(PropTypes__default["default"].array),
|
|
802
|
+
onMoveStart: PropTypes__default["default"].func,
|
|
803
|
+
onMove: PropTypes__default["default"].func,
|
|
804
|
+
onMoveEnd: PropTypes__default["default"].func,
|
|
805
|
+
className: PropTypes__default["default"].string
|
|
779
806
|
};
|
|
780
807
|
|
|
781
808
|
var _excluded$3 = ["id", "fill", "stroke", "strokeWidth", "className"];
|
|
782
|
-
|
|
783
|
-
var Sphere = function Sphere(_ref) {
|
|
809
|
+
var Sphere = React.forwardRef(function (_ref, ref) {
|
|
784
810
|
var _ref$id = _ref.id,
|
|
785
811
|
id = _ref$id === void 0 ? "rsm-sphere" : _ref$id,
|
|
786
812
|
_ref$fill = _ref.fill,
|
|
@@ -793,19 +819,20 @@ var Sphere = function Sphere(_ref) {
|
|
|
793
819
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
794
820
|
restProps = _objectWithoutProperties(_ref, _excluded$3);
|
|
795
821
|
|
|
796
|
-
var _useContext = useContext(MapContext),
|
|
822
|
+
var _useContext = React.useContext(MapContext),
|
|
797
823
|
path = _useContext.path;
|
|
798
824
|
|
|
799
|
-
var spherePath = useMemo(function () {
|
|
825
|
+
var spherePath = React.useMemo(function () {
|
|
800
826
|
return path({
|
|
801
827
|
type: "Sphere"
|
|
802
828
|
});
|
|
803
829
|
}, [path]);
|
|
804
|
-
return /*#__PURE__*/
|
|
830
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("defs", null, /*#__PURE__*/React__default["default"].createElement("clipPath", {
|
|
805
831
|
id: id
|
|
806
|
-
}, /*#__PURE__*/
|
|
832
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
807
833
|
d: spherePath
|
|
808
|
-
}))), /*#__PURE__*/
|
|
834
|
+
}))), /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
835
|
+
ref: ref,
|
|
809
836
|
d: spherePath,
|
|
810
837
|
fill: fill,
|
|
811
838
|
stroke: stroke,
|
|
@@ -815,20 +842,19 @@ var Sphere = function Sphere(_ref) {
|
|
|
815
842
|
},
|
|
816
843
|
className: "rsm-sphere ".concat(className)
|
|
817
844
|
}, restProps)));
|
|
818
|
-
};
|
|
819
|
-
|
|
845
|
+
});
|
|
846
|
+
Sphere.displayName = "Sphere";
|
|
820
847
|
Sphere.propTypes = {
|
|
821
|
-
id:
|
|
822
|
-
fill:
|
|
823
|
-
stroke:
|
|
824
|
-
strokeWidth:
|
|
825
|
-
className:
|
|
848
|
+
id: PropTypes__default["default"].string,
|
|
849
|
+
fill: PropTypes__default["default"].string,
|
|
850
|
+
stroke: PropTypes__default["default"].string,
|
|
851
|
+
strokeWidth: PropTypes__default["default"].number,
|
|
852
|
+
className: PropTypes__default["default"].string
|
|
826
853
|
};
|
|
827
|
-
var Sphere$1 = memo(Sphere);
|
|
854
|
+
var Sphere$1 = React.memo(Sphere);
|
|
828
855
|
|
|
829
856
|
var _excluded$2 = ["coordinates", "children", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
830
|
-
|
|
831
|
-
var Marker = function Marker(_ref) {
|
|
857
|
+
var Marker = React.forwardRef(function (_ref, ref) {
|
|
832
858
|
var coordinates = _ref.coordinates,
|
|
833
859
|
children = _ref.children,
|
|
834
860
|
onMouseEnter = _ref.onMouseEnter,
|
|
@@ -843,15 +869,15 @@ var Marker = function Marker(_ref) {
|
|
|
843
869
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
844
870
|
restProps = _objectWithoutProperties(_ref, _excluded$2);
|
|
845
871
|
|
|
846
|
-
var _useContext = useContext(MapContext),
|
|
872
|
+
var _useContext = React.useContext(MapContext),
|
|
847
873
|
projection = _useContext.projection;
|
|
848
874
|
|
|
849
|
-
var _useState = useState(false),
|
|
875
|
+
var _useState = React.useState(false),
|
|
850
876
|
_useState2 = _slicedToArray(_useState, 2),
|
|
851
877
|
isPressed = _useState2[0],
|
|
852
878
|
setPressed = _useState2[1];
|
|
853
879
|
|
|
854
|
-
var _useState3 = useState(false),
|
|
880
|
+
var _useState3 = React.useState(false),
|
|
855
881
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
856
882
|
isFocused = _useState4[0],
|
|
857
883
|
setFocus = _useState4[1];
|
|
@@ -893,7 +919,8 @@ var Marker = function Marker(_ref) {
|
|
|
893
919
|
if (onMouseUp) onMouseUp(evt);
|
|
894
920
|
}
|
|
895
921
|
|
|
896
|
-
return /*#__PURE__*/
|
|
922
|
+
return /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
923
|
+
ref: ref,
|
|
897
924
|
transform: "translate(".concat(x, ", ").concat(y, ")"),
|
|
898
925
|
className: "rsm-marker ".concat(className),
|
|
899
926
|
onMouseEnter: handleMouseEnter,
|
|
@@ -904,24 +931,23 @@ var Marker = function Marker(_ref) {
|
|
|
904
931
|
onMouseUp: handleMouseUp,
|
|
905
932
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
906
933
|
}, restProps), children);
|
|
907
|
-
};
|
|
908
|
-
|
|
934
|
+
});
|
|
935
|
+
Marker.displayName = "Marker";
|
|
909
936
|
Marker.propTypes = {
|
|
910
|
-
coordinates:
|
|
911
|
-
children:
|
|
912
|
-
onMouseEnter:
|
|
913
|
-
onMouseLeave:
|
|
914
|
-
onMouseDown:
|
|
915
|
-
onMouseUp:
|
|
916
|
-
onFocus:
|
|
917
|
-
onBlur:
|
|
918
|
-
style:
|
|
919
|
-
className:
|
|
937
|
+
coordinates: PropTypes__default["default"].array,
|
|
938
|
+
children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].node, PropTypes__default["default"].arrayOf(PropTypes__default["default"].node)]),
|
|
939
|
+
onMouseEnter: PropTypes__default["default"].func,
|
|
940
|
+
onMouseLeave: PropTypes__default["default"].func,
|
|
941
|
+
onMouseDown: PropTypes__default["default"].func,
|
|
942
|
+
onMouseUp: PropTypes__default["default"].func,
|
|
943
|
+
onFocus: PropTypes__default["default"].func,
|
|
944
|
+
onBlur: PropTypes__default["default"].func,
|
|
945
|
+
style: PropTypes__default["default"].object,
|
|
946
|
+
className: PropTypes__default["default"].string
|
|
920
947
|
};
|
|
921
948
|
|
|
922
949
|
var _excluded$1 = ["from", "to", "coordinates", "stroke", "strokeWidth", "fill", "className"];
|
|
923
|
-
|
|
924
|
-
var Line = function Line(_ref) {
|
|
950
|
+
var Line = React.forwardRef(function (_ref, ref) {
|
|
925
951
|
var _ref$from = _ref.from,
|
|
926
952
|
from = _ref$from === void 0 ? [0, 0] : _ref$from,
|
|
927
953
|
_ref$to = _ref.to,
|
|
@@ -937,35 +963,35 @@ var Line = function Line(_ref) {
|
|
|
937
963
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
938
964
|
restProps = _objectWithoutProperties(_ref, _excluded$1);
|
|
939
965
|
|
|
940
|
-
var _useContext = useContext(MapContext),
|
|
966
|
+
var _useContext = React.useContext(MapContext),
|
|
941
967
|
path = _useContext.path;
|
|
942
968
|
|
|
943
969
|
var lineData = {
|
|
944
970
|
type: "LineString",
|
|
945
971
|
coordinates: coordinates || [from, to]
|
|
946
972
|
};
|
|
947
|
-
return /*#__PURE__*/
|
|
973
|
+
return /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
974
|
+
ref: ref,
|
|
948
975
|
d: path(lineData),
|
|
949
976
|
className: "rsm-line ".concat(className),
|
|
950
977
|
stroke: stroke,
|
|
951
978
|
strokeWidth: strokeWidth,
|
|
952
979
|
fill: fill
|
|
953
980
|
}, restProps));
|
|
954
|
-
};
|
|
955
|
-
|
|
981
|
+
});
|
|
982
|
+
Line.displayName = "Line";
|
|
956
983
|
Line.propTypes = {
|
|
957
|
-
from:
|
|
958
|
-
to:
|
|
959
|
-
coordinates:
|
|
960
|
-
stroke:
|
|
961
|
-
strokeWidth:
|
|
962
|
-
fill:
|
|
963
|
-
className:
|
|
984
|
+
from: PropTypes__default["default"].array,
|
|
985
|
+
to: PropTypes__default["default"].array,
|
|
986
|
+
coordinates: PropTypes__default["default"].array,
|
|
987
|
+
stroke: PropTypes__default["default"].string,
|
|
988
|
+
strokeWidth: PropTypes__default["default"].number,
|
|
989
|
+
fill: PropTypes__default["default"].string,
|
|
990
|
+
className: PropTypes__default["default"].string
|
|
964
991
|
};
|
|
965
992
|
|
|
966
993
|
var _excluded = ["subject", "children", "connectorProps", "dx", "dy", "curve", "className"];
|
|
967
|
-
|
|
968
|
-
var Annotation = function Annotation(_ref) {
|
|
994
|
+
var Annotation = React.forwardRef(function (_ref, ref) {
|
|
969
995
|
var subject = _ref.subject,
|
|
970
996
|
children = _ref.children,
|
|
971
997
|
connectorProps = _ref.connectorProps,
|
|
@@ -979,7 +1005,7 @@ var Annotation = function Annotation(_ref) {
|
|
|
979
1005
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
980
1006
|
restProps = _objectWithoutProperties(_ref, _excluded);
|
|
981
1007
|
|
|
982
|
-
var _useContext = useContext(MapContext),
|
|
1008
|
+
var _useContext = React.useContext(MapContext),
|
|
983
1009
|
projection = _useContext.projection;
|
|
984
1010
|
|
|
985
1011
|
var _projection = projection(subject),
|
|
@@ -988,24 +1014,37 @@ var Annotation = function Annotation(_ref) {
|
|
|
988
1014
|
y = _projection2[1];
|
|
989
1015
|
|
|
990
1016
|
var connectorPath = createConnectorPath(dx, dy, curve);
|
|
991
|
-
return /*#__PURE__*/
|
|
1017
|
+
return /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
1018
|
+
ref: ref,
|
|
992
1019
|
transform: "translate(".concat(x + dx, ", ").concat(y + dy, ")"),
|
|
993
1020
|
className: "rsm-annotation ".concat(className)
|
|
994
|
-
}, restProps), /*#__PURE__*/
|
|
1021
|
+
}, restProps), /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
995
1022
|
d: connectorPath,
|
|
996
1023
|
fill: "transparent",
|
|
997
1024
|
stroke: "#000"
|
|
998
1025
|
}, connectorProps)), children);
|
|
999
|
-
};
|
|
1000
|
-
|
|
1026
|
+
});
|
|
1027
|
+
Annotation.displayName = "Annotation";
|
|
1001
1028
|
Annotation.propTypes = {
|
|
1002
|
-
subject:
|
|
1003
|
-
children:
|
|
1004
|
-
dx:
|
|
1005
|
-
dy:
|
|
1006
|
-
curve:
|
|
1007
|
-
connectorProps:
|
|
1008
|
-
className:
|
|
1029
|
+
subject: PropTypes__default["default"].array,
|
|
1030
|
+
children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].node, PropTypes__default["default"].arrayOf(PropTypes__default["default"].node)]),
|
|
1031
|
+
dx: PropTypes__default["default"].number,
|
|
1032
|
+
dy: PropTypes__default["default"].number,
|
|
1033
|
+
curve: PropTypes__default["default"].number,
|
|
1034
|
+
connectorProps: PropTypes__default["default"].object,
|
|
1035
|
+
className: PropTypes__default["default"].string
|
|
1009
1036
|
};
|
|
1010
1037
|
|
|
1011
|
-
|
|
1038
|
+
exports.Annotation = Annotation;
|
|
1039
|
+
exports.ComposableMap = ComposableMap;
|
|
1040
|
+
exports.Geographies = Geographies;
|
|
1041
|
+
exports.Geography = Geography$1;
|
|
1042
|
+
exports.Graticule = Graticule$1;
|
|
1043
|
+
exports.Line = Line;
|
|
1044
|
+
exports.MapContext = MapContext;
|
|
1045
|
+
exports.MapProvider = MapProvider;
|
|
1046
|
+
exports.Marker = Marker;
|
|
1047
|
+
exports.Sphere = Sphere$1;
|
|
1048
|
+
exports.ZoomableGroup = ZoomableGroup;
|
|
1049
|
+
exports.useGeographies = useGeographies;
|
|
1050
|
+
exports.useZoomPan = useZoomPan;
|
package/dist/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("d3-geo"),require("topojson-client"),require("d3-zoom"),require("d3-selection")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","d3-geo","topojson-client","d3-zoom","d3-selection"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).reactSimpleMaps=e.reactSimpleMaps||{},e.React,e.PropTypes,e.d3,e.topojson,e.d3,e.d3)}(this,(function(e,t,o,r,n,a,u){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:function(){return e[o]}})}})),t.default=e,Object.freeze(t)}var l=s(t),i=s(o),f=c(r);function d(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function p(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?d(Object(o),!0).forEach((function(t){g(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):d(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function g(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},h.apply(this,arguments)}function v(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},a=Object.keys(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)o=a[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==o)return;var r,n,a=[],u=!0,s=!1;try{for(o=o.call(e);!(u=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);u=!0);}catch(e){s=!0,n=e}finally{try{u||null==o.return||o.return()}finally{if(s)throw n}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return b(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);"Object"===o&&e.constructor&&(o=e.constructor.name);if("Map"===o||"Set"===o)return Array.from(e);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return b(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=new Array(t);o<t;o++)r[o]=e[o];return r}var j=["width","height","projection","projectionConfig"],M=f.geoPath,E=v(f,["geoPath"]),O=t.createContext(),k=function(e){var o=e.width,r=e.height,n=e.projection,a=e.projectionConfig,u=v(e,j),s=y(a.center||[],2),c=s[0],i=s[1],f=y(a.rotate||[],3),d=f[0],p=f[1],m=f[2],g=y(a.parallels||[],2),b=g[0],k=g[1],x=a.scale||null,w=t.useMemo((function(){return function(e){var t=e.projectionConfig,o=void 0===t?{}:t,r=e.projection,n=void 0===r?"geoEqualEarth":r,a=e.width,u=void 0===a?800:a,s=e.height,c=void 0===s?600:s;if("function"==typeof n)return n;var l=E[n]().translate([u/2,c/2]);return[l.center?"center":null,l.rotate?"rotate":null,l.scale?"scale":null,l.parallels?"parallels":null].forEach((function(e){e&&(l=l[e](o[e]||l[e]()))})),l}({projectionConfig:{center:c||0===c||i||0===i?[c,i]:null,rotate:d||0===d||p||0===p?[d,p,m]:null,parallels:b||0===b||k||0===k?[b,k]:null,scale:x},projection:n,width:o,height:r})}),[o,r,n,c,i,d,p,m,b,k,x]),N=t.useCallback(w,[w]),S=t.useMemo((function(){return{width:o,height:r,projection:N,path:M().projection(N)}}),[o,r,N]);return l.default.createElement(O.Provider,h({value:S},u))};k.propTypes={width:i.default.number,height:i.default.number,projection:i.default.oneOfType([i.default.string,i.default.func]),projectionConfig:i.default.object};var x=["width","height","projection","projectionConfig","className"],w=function(e){var t=e.width,o=void 0===t?800:t,r=e.height,n=void 0===r?600:r,a=e.projection,u=void 0===a?"geoEqualEarth":a,s=e.projectionConfig,c=void 0===s?{}:s,i=e.className,f=void 0===i?"":i,d=v(e,x);return l.default.createElement(k,{width:o,height:n,projection:u,projectionConfig:c},l.default.createElement("svg",h({viewBox:"0 0 ".concat(o," ").concat(n),className:"rsm-svg ".concat(f)},d)))};function N(e,t,o){var r=(e*o.k-e)/2,n=(t*o.k-t)/2;return[e/2-(r+o.x)/o.k,t/2-(n+o.y)/o.k]}function S(e,t){if(!("Topology"===e.type))return t?t(e.features||e):e.features||e;var o=n.feature(e,e.objects[Object.keys(e.objects)[0]]).features;return t?t(o):o}function P(e){return"Topology"===e.type?{outline:n.mesh(e,e.objects[Object.keys(e.objects)[0]],(function(e,t){return e===t})),borders:n.mesh(e,e.objects[Object.keys(e.objects)[0]],(function(e,t){return e!==t}))}:null}function C(e,t){return e?e.map((function(e,o){return p(p({},e),{},{rsmKey:"geo-".concat(o),svgPath:t(e)})})):[]}function T(e){var o=e.geography,r=e.parseGeographies,n=t.useContext(O).path,a=y(t.useState({}),2),u=a[0],s=a[1];t.useEffect((function(){var e;"undefined"!==("undefined"==typeof window?"undefined":m(window))&&(o&&("string"==typeof o?(e=o,fetch(e).then((function(e){if(!e.ok)throw Error(e.statusText);return e.json()})).catch((function(e){console.log("There was a problem when fetching the data: ",e)}))).then((function(e){e&&s({geographies:S(e,r),mesh:P(e)})})):s({geographies:S(o,r),mesh:P(o)})))}),[o,r]);var c=t.useMemo((function(){var e=u.mesh||{},t=function(e,t,o){return e&&t?{outline:p(p({},e),{},{rsmKey:"outline",svgPath:o(e)}),borders:p(p({},t),{},{rsmKey:"borders",svgPath:o(t)})}:{}}(e.outline,e.borders,n);return{geographies:C(u.geographies,n),outline:t.outline,borders:t.borders}}),[u,n]);return{geographies:c.geographies,outline:c.outline,borders:c.borders}}w.propTypes={width:i.default.number,height:i.default.number,projection:i.default.oneOfType([i.default.string,i.default.func]),projectionConfig:i.default.object,className:i.default.string};var z=["geography","children","parseGeographies","className"],D=function(e){var o=e.geography,r=e.children,n=e.parseGeographies,a=e.className,u=void 0===a?"":a,s=v(e,z),c=t.useContext(O),i=c.path,f=c.projection,d=T({geography:o,parseGeographies:n}),p=d.geographies,m=d.outline,g=d.borders;return l.default.createElement("g",h({className:"rsm-geographies ".concat(u)},s),p&&p.length>0&&r({geographies:p,outline:m,borders:g,path:i,projection:f}))};D.propTypes={geography:i.default.oneOfType([i.default.string,i.default.object,i.default.array]),children:i.default.func,parseGeographies:i.default.func,className:i.default.string};var Z=["geography","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className"],G=function(e){var o=e.geography,r=e.onMouseEnter,n=e.onMouseLeave,a=e.onMouseDown,u=e.onMouseUp,s=e.onFocus,c=e.onBlur,i=e.style,f=void 0===i?{}:i,d=e.className,p=void 0===d?"":d,m=v(e,Z),g=y(t.useState(!1),2),b=g[0],j=g[1],M=y(t.useState(!1),2),E=M[0],O=M[1];return l.default.createElement("path",h({tabIndex:"0",className:"rsm-geography ".concat(p),d:o.svgPath,onMouseEnter:function(e){O(!0),r&&r(e)},onMouseLeave:function(e){O(!1),b&&j(!1),n&&n(e)},onFocus:function(e){O(!0),s&&s(e)},onBlur:function(e){O(!1),b&&j(!1),c&&c(e)},onMouseDown:function(e){j(!0),a&&a(e)},onMouseUp:function(e){j(!1),u&&u(e)},style:f[b||E?b?"pressed":"hover":"default"]},m))};G.propTypes={geography:i.default.object,onMouseEnter:i.default.func,onMouseLeave:i.default.func,onMouseDown:i.default.func,onMouseUp:i.default.func,onFocus:i.default.func,onBlur:i.default.func,style:i.default.object,className:i.default.string};var L=t.memo(G),A=["fill","stroke","step","className"],B=function(e){var o=e.fill,n=void 0===o?"transparent":o,a=e.stroke,u=void 0===a?"currentcolor":a,s=e.step,c=void 0===s?[10,10]:s,i=e.className,f=void 0===i?"":i,d=v(e,A),p=t.useContext(O).path;return l.default.createElement("path",h({d:p(r.geoGraticule().step(c)()),fill:n,stroke:u,className:"rsm-graticule ".concat(f)},d))};B.propTypes={fill:i.default.string,stroke:i.default.string,step:i.default.array,className:i.default.string};var F=t.memo(B);function U(e){var o=e.center,r=e.filterZoomEvent,n=e.onMoveStart,s=e.onMoveEnd,c=e.onMove,l=e.translateExtent,i=void 0===l?[[-1/0,-1/0],[1/0,1/0]]:l,f=e.scaleExtent,d=void 0===f?[1,8]:f,p=e.zoom,m=void 0===p?1:p,g=t.useContext(O),h=g.width,v=g.height,b=g.projection,j=y(o,2),M=j[0],E=j[1],k=y(t.useState({x:0,y:0,k:1}),2),x=k[0],w=k[1],S=t.useRef({x:0,y:0,k:1}),P=t.useRef(),C=t.useRef(),T=t.useRef(!1),z=y(i,2),D=z[0],Z=z[1],G=y(D,2),L=G[0],A=G[1],B=y(Z,2),F=B[0],U=B[1],q=y(d,2),W=q[0],R=q[1];return t.useEffect((function(){var e=u.select(P.current);var t=a.zoom().filter((function(e){return r?r(e):!!e&&(!e.ctrlKey&&!e.button)})).scaleExtent([W,R]).translateExtent([[L,A],[F,U]]).on("start",(function(e){n&&!T.current&&n({coordinates:b.invert(N(h,v,e.transform)),zoom:e.transform.k},e)})).on("zoom",(function(e){if(!T.current){var t=e.transform,o=e.sourceEvent;w({x:t.x,y:t.y,k:t.k,dragging:o}),c&&c({x:t.x,y:t.y,zoom:t.k,dragging:o},e)}})).on("end",(function(e){if(T.current)T.current=!1;else{var t=y(b.invert(N(h,v,e.transform)),2),o=t[0],r=t[1];S.current={x:o,y:r,k:e.transform.k},s&&s({coordinates:[o,r],zoom:e.transform.k},e)}}));C.current=t,e.call(t)}),[h,v,L,A,F,U,W,R,b,n,c,s,r]),t.useEffect((function(){if(M!==S.current.x||E!==S.current.y||m!==S.current.k){var e=b([M,E]),t=e[0]*m,o=e[1]*m,r=u.select(P.current);T.current=!0,r.call(C.current.transform,a.zoomIdentity.translate(h/2-t,v/2-o).scale(m)),w({x:h/2-t,y:v/2-o,k:m}),S.current={x:M,y:E,k:m}}}),[M,E,m,h,v,b]),{mapRef:P,position:x,transformString:"translate(".concat(x.x," ").concat(x.y,") scale(").concat(x.k,")")}}var q=["center","zoom","minZoom","maxZoom","translateExtent","filterZoomEvent","onMoveStart","onMove","onMoveEnd","className"],W=function(e){var o=e.center,r=void 0===o?[0,0]:o,n=e.zoom,a=void 0===n?1:n,u=e.minZoom,s=void 0===u?1:u,c=e.maxZoom,i=void 0===c?8:c,f=e.translateExtent,d=e.filterZoomEvent,p=e.onMoveStart,m=e.onMove,g=e.onMoveEnd,y=e.className,b=v(e,q),j=t.useContext(O),M=j.width,E=j.height,k=U({center:r,filterZoomEvent:d,onMoveStart:p,onMove:m,onMoveEnd:g,scaleExtent:[s,i],translateExtent:f,zoom:a}),x=k.mapRef,w=k.transformString;return l.default.createElement("g",{ref:x},l.default.createElement("rect",{width:M,height:E,fill:"transparent"}),l.default.createElement("g",h({transform:w,className:"rsm-zoomable-group ".concat(y)},b)))};W.propTypes={center:i.default.array,zoom:i.default.number,minZoom:i.default.number,maxZoom:i.default.number,translateExtent:i.default.arrayOf(i.default.array),onMoveStart:i.default.func,onMove:i.default.func,onMoveEnd:i.default.func,className:i.default.string};var R=["id","fill","stroke","strokeWidth","className"],I=function(e){var o=e.id,r=void 0===o?"rsm-sphere":o,n=e.fill,a=void 0===n?"transparent":n,u=e.stroke,s=void 0===u?"currentcolor":u,c=e.strokeWidth,i=void 0===c?.5:c,f=e.className,d=void 0===f?"":f,p=v(e,R),m=t.useContext(O).path,g=t.useMemo((function(){return m({type:"Sphere"})}),[m]);return l.default.createElement(t.Fragment,null,l.default.createElement("defs",null,l.default.createElement("clipPath",{id:r},l.default.createElement("path",{d:g}))),l.default.createElement("path",h({d:g,fill:a,stroke:s,strokeWidth:i,style:{pointerEvents:"none"},className:"rsm-sphere ".concat(d)},p)))};I.propTypes={id:i.default.string,fill:i.default.string,stroke:i.default.string,strokeWidth:i.default.number,className:i.default.string};var K=t.memo(I),_=["coordinates","children","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className"],Q=function(e){var o=e.coordinates,r=e.children,n=e.onMouseEnter,a=e.onMouseLeave,u=e.onMouseDown,s=e.onMouseUp,c=e.onFocus,i=e.onBlur,f=e.style,d=void 0===f?{}:f,p=e.className,m=void 0===p?"":p,g=v(e,_),b=t.useContext(O).projection,j=y(t.useState(!1),2),M=j[0],E=j[1],k=y(t.useState(!1),2),x=k[0],w=k[1],N=y(b(o),2),S=N[0],P=N[1];return l.default.createElement("g",h({transform:"translate(".concat(S,", ").concat(P,")"),className:"rsm-marker ".concat(m),onMouseEnter:function(e){w(!0),n&&n(e)},onMouseLeave:function(e){w(!1),M&&E(!1),a&&a(e)},onFocus:function(e){w(!0),c&&c(e)},onBlur:function(e){w(!1),M&&E(!1),i&&i(e)},onMouseDown:function(e){E(!0),u&&u(e)},onMouseUp:function(e){E(!1),s&&s(e)},style:d[M||x?M?"pressed":"hover":"default"]},g),r)};Q.propTypes={coordinates:i.default.array,children:i.default.oneOfType([i.default.node,i.default.arrayOf(i.default.node)]),onMouseEnter:i.default.func,onMouseLeave:i.default.func,onMouseDown:i.default.func,onMouseUp:i.default.func,onFocus:i.default.func,onBlur:i.default.func,style:i.default.object,className:i.default.string};var $=["from","to","coordinates","stroke","strokeWidth","fill","className"],H=function(e){var o=e.from,r=void 0===o?[0,0]:o,n=e.to,a=void 0===n?[0,0]:n,u=e.coordinates,s=e.stroke,c=void 0===s?"currentcolor":s,i=e.strokeWidth,f=void 0===i?3:i,d=e.fill,p=void 0===d?"transparent":d,m=e.className,g=void 0===m?"":m,y=v(e,$),b=t.useContext(O).path,j={type:"LineString",coordinates:u||[r,a]};return l.default.createElement("path",h({d:b(j),className:"rsm-line ".concat(g),stroke:c,strokeWidth:f,fill:p},y))};H.propTypes={from:i.default.array,to:i.default.array,coordinates:i.default.array,stroke:i.default.string,strokeWidth:i.default.number,fill:i.default.string,className:i.default.string};var J=["subject","children","connectorProps","dx","dy","curve","className"],V=function(e){var o=e.subject,r=e.children,n=e.connectorProps,a=e.dx,u=void 0===a?30:a,s=e.dy,c=void 0===s?30:s,i=e.curve,f=void 0===i?0:i,d=e.className,p=void 0===d?"":d,m=v(e,J),g=y((0,t.useContext(O).projection)(o),2),b=g[0],j=g[1],M=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:30,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.5,r=Array.isArray(o)?o:[o,o],n=e/2*r[0],a=t/2*r[1];return"M".concat(0,",",0," Q",-e/2-n,",").concat(-t/2+a," ").concat(-e,",").concat(-t)}(u,c,f);return l.default.createElement("g",h({transform:"translate(".concat(b+u,", ").concat(j+c,")"),className:"rsm-annotation ".concat(p)},m),l.default.createElement("path",h({d:M,fill:"transparent",stroke:"#000"},n)),r)};V.propTypes={subject:i.default.array,children:i.default.oneOfType([i.default.node,i.default.arrayOf(i.default.node)]),dx:i.default.number,dy:i.default.number,curve:i.default.number,connectorProps:i.default.object,className:i.default.string},e.Annotation=V,e.ComposableMap=w,e.Geographies=D,e.Geography=L,e.Graticule=F,e.Line=H,e.MapContext=O,e.MapProvider=k,e.Marker=Q,e.Sphere=K,e.ZoomableGroup=W,e.useGeographies=T,e.useZoomPan=U,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("d3-geo"),require("topojson-client"),require("d3-zoom"),require("d3-selection")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","d3-geo","topojson-client","d3-zoom","d3-selection"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).reactSimpleMaps=e.reactSimpleMaps||{},e.React,e.PropTypes,e.d3,e.topojson,e.d3,e.d3)}(this,(function(e,t,r,o,n,a,u){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=s(t),i=s(r),f=l(o);function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},y.apply(this,arguments)}function g(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var o,n,a=[],u=!0,s=!1;try{for(r=r.call(e);!(u=(o=r.next()).done)&&(a.push(o.value),!t||a.length!==t);u=!0);}catch(e){s=!0,n=e}finally{try{u||null==r.return||r.return()}finally{if(s)throw n}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return b(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return b(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}var j=["width","height","projection","projectionConfig"],M=f.geoPath,E=g(f,["geoPath"]),w=t.createContext(),O=function(e){var r=e.width,o=e.height,n=e.projection,a=e.projectionConfig,u=g(e,j),s=v(a.center||[],2),l=s[0],i=s[1],f=v(a.rotate||[],3),d=f[0],p=f[1],m=f[2],h=v(a.parallels||[],2),b=h[0],O=h[1],k=a.scale||null,x=t.useMemo((function(){return function(e){var t=e.projectionConfig,r=void 0===t?{}:t,o=e.projection,n=void 0===o?"geoEqualEarth":o,a=e.width,u=void 0===a?800:a,s=e.height,l=void 0===s?600:s;if("function"==typeof n)return n;var c=E[n]().translate([u/2,l/2]);return[c.center?"center":null,c.rotate?"rotate":null,c.scale?"scale":null,c.parallels?"parallels":null].forEach((function(e){e&&(c=c[e](r[e]||c[e]()))})),c}({projectionConfig:{center:l||0===l||i||0===i?[l,i]:null,rotate:d||0===d||p||0===p?[d,p,m]:null,parallels:b||0===b||O||0===O?[b,O]:null,scale:k},projection:n,width:r,height:o})}),[r,o,n,l,i,d,p,m,b,O,k]),N=t.useCallback(x,[x]),S=t.useMemo((function(){return{width:r,height:o,projection:N,path:M().projection(N)}}),[r,o,N]);return c.default.createElement(w.Provider,y({value:S},u))};O.propTypes={width:i.default.number,height:i.default.number,projection:i.default.oneOfType([i.default.string,i.default.func]),projectionConfig:i.default.object};var k=["width","height","projection","projectionConfig","className"],x=t.forwardRef((function(e,t){var r=e.width,o=void 0===r?800:r,n=e.height,a=void 0===n?600:n,u=e.projection,s=void 0===u?"geoEqualEarth":u,l=e.projectionConfig,i=void 0===l?{}:l,f=e.className,d=void 0===f?"":f,p=g(e,k);return c.default.createElement(O,{width:o,height:a,projection:s,projectionConfig:i},c.default.createElement("svg",y({ref:t,viewBox:"0 0 ".concat(o," ").concat(a),className:"rsm-svg ".concat(d)},p)))}));function N(e,t,r){var o=(e*r.k-e)/2,n=(t*r.k-t)/2;return[e/2-(o+r.x)/r.k,t/2-(n+r.y)/r.k]}function S(e,t){if(!("Topology"===e.type))return t?t(e.features||e):e.features||e;var r=n.feature(e,e.objects[Object.keys(e.objects)[0]]).features;return t?t(r):r}function P(e){return"Topology"===e.type?{outline:n.mesh(e,e.objects[Object.keys(e.objects)[0]],(function(e,t){return e===t})),borders:n.mesh(e,e.objects[Object.keys(e.objects)[0]],(function(e,t){return e!==t}))}:null}function C(e,t){return e?e.map((function(e,r){return p(p({},e),{},{rsmKey:"geo-".concat(r),svgPath:t(e)})})):[]}function T(e){var r=e.geography,o=e.parseGeographies,n=t.useContext(w).path,a=v(t.useState({}),2),u=a[0],s=a[1];t.useEffect((function(){var e;"undefined"!==("undefined"==typeof window?"undefined":m(window))&&(r&&("string"==typeof r?(e=r,fetch(e).then((function(e){if(!e.ok)throw Error(e.statusText);return e.json()})).catch((function(e){console.log("There was a problem when fetching the data: ",e)}))).then((function(e){e&&s({geographies:S(e,o),mesh:P(e)})})):s({geographies:S(r,o),mesh:P(r)})))}),[r,o]);var l=t.useMemo((function(){var e=u.mesh||{},t=function(e,t,r){return e&&t?{outline:p(p({},e),{},{rsmKey:"outline",svgPath:r(e)}),borders:p(p({},t),{},{rsmKey:"borders",svgPath:r(t)})}:{}}(e.outline,e.borders,n);return{geographies:C(u.geographies,n),outline:t.outline,borders:t.borders}}),[u,n]);return{geographies:l.geographies,outline:l.outline,borders:l.borders}}x.displayName="ComposableMap",x.propTypes={width:i.default.number,height:i.default.number,projection:i.default.oneOfType([i.default.string,i.default.func]),projectionConfig:i.default.object,className:i.default.string};var R=["geography","children","parseGeographies","className"],z=t.forwardRef((function(e,r){var o=e.geography,n=e.children,a=e.parseGeographies,u=e.className,s=void 0===u?"":u,l=g(e,R),i=t.useContext(w),f=i.path,d=i.projection,p=T({geography:o,parseGeographies:a}),m=p.geographies,h=p.outline,v=p.borders;return c.default.createElement("g",y({ref:r,className:"rsm-geographies ".concat(s)},l),m&&m.length>0&&n({geographies:m,outline:h,borders:v,path:f,projection:d}))}));z.displayName="Geographies",z.propTypes={geography:i.default.oneOfType([i.default.string,i.default.object,i.default.array]),children:i.default.func,parseGeographies:i.default.func,className:i.default.string};var G=["geography","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className"],D=t.forwardRef((function(e,r){var o=e.geography,n=e.onMouseEnter,a=e.onMouseLeave,u=e.onMouseDown,s=e.onMouseUp,l=e.onFocus,i=e.onBlur,f=e.style,d=void 0===f?{}:f,p=e.className,m=void 0===p?"":p,h=g(e,G),b=v(t.useState(!1),2),j=b[0],M=b[1],E=v(t.useState(!1),2),w=E[0],O=E[1];return c.default.createElement("path",y({ref:r,tabIndex:"0",className:"rsm-geography ".concat(m),d:o.svgPath,onMouseEnter:function(e){O(!0),n&&n(e)},onMouseLeave:function(e){O(!1),j&&M(!1),a&&a(e)},onFocus:function(e){O(!0),l&&l(e)},onBlur:function(e){O(!1),j&&M(!1),i&&i(e)},onMouseDown:function(e){M(!0),u&&u(e)},onMouseUp:function(e){M(!1),s&&s(e)},style:d[j||w?j?"pressed":"hover":"default"]},h))}));D.displayName="Geography",D.propTypes={geography:i.default.object,onMouseEnter:i.default.func,onMouseLeave:i.default.func,onMouseDown:i.default.func,onMouseUp:i.default.func,onFocus:i.default.func,onBlur:i.default.func,style:i.default.object,className:i.default.string};var Z=t.memo(D),L=["fill","stroke","step","className"],A=t.forwardRef((function(e,r){var n=e.fill,a=void 0===n?"transparent":n,u=e.stroke,s=void 0===u?"currentcolor":u,l=e.step,i=void 0===l?[10,10]:l,f=e.className,d=void 0===f?"":f,p=g(e,L),m=t.useContext(w).path;return c.default.createElement("path",y({ref:r,d:m(o.geoGraticule().step(i)()),fill:a,stroke:s,className:"rsm-graticule ".concat(d)},p))}));A.displayName="Graticule",A.propTypes={fill:i.default.string,stroke:i.default.string,step:i.default.array,className:i.default.string};var B=t.memo(A);function F(e){var r=e.center,o=e.filterZoomEvent,n=e.onMoveStart,s=e.onMoveEnd,l=e.onMove,c=e.translateExtent,i=void 0===c?[[-1/0,-1/0],[1/0,1/0]]:c,f=e.scaleExtent,d=void 0===f?[1,8]:f,p=e.zoom,m=void 0===p?1:p,h=t.useContext(w),y=h.width,g=h.height,b=h.projection,j=v(r,2),M=j[0],E=j[1],O=v(t.useState({x:0,y:0,k:1}),2),k=O[0],x=O[1],S=t.useRef({x:0,y:0,k:1}),P=t.useRef(),C=t.useRef(),T=t.useRef(!1),R=v(i,2),z=R[0],G=R[1],D=v(z,2),Z=D[0],L=D[1],A=v(G,2),B=A[0],F=A[1],U=v(d,2),q=U[0],W=U[1];return t.useEffect((function(){var e=u.select(P.current);var t=a.zoom().filter((function(e){return o?o(e):!!e&&(!e.ctrlKey&&!e.button)})).scaleExtent([q,W]).translateExtent([[Z,L],[B,F]]).on("start",(function(e){n&&!T.current&&n({coordinates:b.invert(N(y,g,e.transform)),zoom:e.transform.k},e)})).on("zoom",(function(e){if(!T.current){var t=e.transform,r=e.sourceEvent;x({x:t.x,y:t.y,k:t.k,dragging:r}),l&&l({x:t.x,y:t.y,zoom:t.k,dragging:r},e)}})).on("end",(function(e){if(T.current)T.current=!1;else{var t=v(b.invert(N(y,g,e.transform)),2),r=t[0],o=t[1];S.current={x:r,y:o,k:e.transform.k},s&&s({coordinates:[r,o],zoom:e.transform.k},e)}}));C.current=t,e.call(t)}),[y,g,Z,L,B,F,q,W,b,n,l,s,o]),t.useEffect((function(){if(M!==S.current.x||E!==S.current.y||m!==S.current.k){var e=b([M,E]),t=e[0]*m,r=e[1]*m,o=u.select(P.current);T.current=!0,o.call(C.current.transform,a.zoomIdentity.translate(y/2-t,g/2-r).scale(m)),x({x:y/2-t,y:g/2-r,k:m}),S.current={x:M,y:E,k:m}}}),[M,E,m,y,g,b]),{mapRef:P,position:k,transformString:"translate(".concat(k.x," ").concat(k.y,") scale(").concat(k.k,")")}}var U=["center","zoom","minZoom","maxZoom","translateExtent","filterZoomEvent","onMoveStart","onMove","onMoveEnd","className"],q=t.forwardRef((function(e,r){var o=e.center,n=void 0===o?[0,0]:o,a=e.zoom,u=void 0===a?1:a,s=e.minZoom,l=void 0===s?1:s,i=e.maxZoom,f=void 0===i?8:i,d=e.translateExtent,p=e.filterZoomEvent,m=e.onMoveStart,h=e.onMove,v=e.onMoveEnd,b=e.className,j=g(e,U),M=t.useContext(w),E=M.width,O=M.height,k=F({center:n,filterZoomEvent:p,onMoveStart:m,onMove:h,onMoveEnd:v,scaleExtent:[l,f],translateExtent:d,zoom:u}),x=k.mapRef,N=k.transformString;return c.default.createElement("g",{ref:x},c.default.createElement("rect",{width:E,height:O,fill:"transparent"}),c.default.createElement("g",y({ref:r,transform:N,className:"rsm-zoomable-group ".concat(b)},j)))}));q.displayName="ZoomableGroup",q.propTypes={center:i.default.array,zoom:i.default.number,minZoom:i.default.number,maxZoom:i.default.number,translateExtent:i.default.arrayOf(i.default.array),onMoveStart:i.default.func,onMove:i.default.func,onMoveEnd:i.default.func,className:i.default.string};var W=["id","fill","stroke","strokeWidth","className"],I=t.forwardRef((function(e,r){var o=e.id,n=void 0===o?"rsm-sphere":o,a=e.fill,u=void 0===a?"transparent":a,s=e.stroke,l=void 0===s?"currentcolor":s,i=e.strokeWidth,f=void 0===i?.5:i,d=e.className,p=void 0===d?"":d,m=g(e,W),h=t.useContext(w).path,v=t.useMemo((function(){return h({type:"Sphere"})}),[h]);return c.default.createElement(t.Fragment,null,c.default.createElement("defs",null,c.default.createElement("clipPath",{id:n},c.default.createElement("path",{d:v}))),c.default.createElement("path",y({ref:r,d:v,fill:u,stroke:l,strokeWidth:f,style:{pointerEvents:"none"},className:"rsm-sphere ".concat(p)},m)))}));I.displayName="Sphere",I.propTypes={id:i.default.string,fill:i.default.string,stroke:i.default.string,strokeWidth:i.default.number,className:i.default.string};var K=t.memo(I),_=["coordinates","children","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className"],Q=t.forwardRef((function(e,r){var o=e.coordinates,n=e.children,a=e.onMouseEnter,u=e.onMouseLeave,s=e.onMouseDown,l=e.onMouseUp,i=e.onFocus,f=e.onBlur,d=e.style,p=void 0===d?{}:d,m=e.className,h=void 0===m?"":m,b=g(e,_),j=t.useContext(w).projection,M=v(t.useState(!1),2),E=M[0],O=M[1],k=v(t.useState(!1),2),x=k[0],N=k[1],S=v(j(o),2),P=S[0],C=S[1];return c.default.createElement("g",y({ref:r,transform:"translate(".concat(P,", ").concat(C,")"),className:"rsm-marker ".concat(h),onMouseEnter:function(e){N(!0),a&&a(e)},onMouseLeave:function(e){N(!1),E&&O(!1),u&&u(e)},onFocus:function(e){N(!0),i&&i(e)},onBlur:function(e){N(!1),E&&O(!1),f&&f(e)},onMouseDown:function(e){O(!0),s&&s(e)},onMouseUp:function(e){O(!1),l&&l(e)},style:p[E||x?E?"pressed":"hover":"default"]},b),n)}));Q.displayName="Marker",Q.propTypes={coordinates:i.default.array,children:i.default.oneOfType([i.default.node,i.default.arrayOf(i.default.node)]),onMouseEnter:i.default.func,onMouseLeave:i.default.func,onMouseDown:i.default.func,onMouseUp:i.default.func,onFocus:i.default.func,onBlur:i.default.func,style:i.default.object,className:i.default.string};var $=["from","to","coordinates","stroke","strokeWidth","fill","className"],H=t.forwardRef((function(e,r){var o=e.from,n=void 0===o?[0,0]:o,a=e.to,u=void 0===a?[0,0]:a,s=e.coordinates,l=e.stroke,i=void 0===l?"currentcolor":l,f=e.strokeWidth,d=void 0===f?3:f,p=e.fill,m=void 0===p?"transparent":p,h=e.className,v=void 0===h?"":h,b=g(e,$),j=t.useContext(w).path,M={type:"LineString",coordinates:s||[n,u]};return c.default.createElement("path",y({ref:r,d:j(M),className:"rsm-line ".concat(v),stroke:i,strokeWidth:d,fill:m},b))}));H.displayName="Line",H.propTypes={from:i.default.array,to:i.default.array,coordinates:i.default.array,stroke:i.default.string,strokeWidth:i.default.number,fill:i.default.string,className:i.default.string};var J=["subject","children","connectorProps","dx","dy","curve","className"],V=t.forwardRef((function(e,r){var o=e.subject,n=e.children,a=e.connectorProps,u=e.dx,s=void 0===u?30:u,l=e.dy,i=void 0===l?30:l,f=e.curve,d=void 0===f?0:f,p=e.className,m=void 0===p?"":p,h=g(e,J),b=v((0,t.useContext(w).projection)(o),2),j=b[0],M=b[1],E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:30,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.5,o=Array.isArray(r)?r:[r,r],n=e/2*o[0],a=t/2*o[1];return"M".concat(0,",",0," Q",-e/2-n,",").concat(-t/2+a," ").concat(-e,",").concat(-t)}(s,i,d);return c.default.createElement("g",y({ref:r,transform:"translate(".concat(j+s,", ").concat(M+i,")"),className:"rsm-annotation ".concat(m)},h),c.default.createElement("path",y({d:E,fill:"transparent",stroke:"#000"},a)),n)}));V.displayName="Annotation",V.propTypes={subject:i.default.array,children:i.default.oneOfType([i.default.node,i.default.arrayOf(i.default.node)]),dx:i.default.number,dy:i.default.number,curve:i.default.number,connectorProps:i.default.object,className:i.default.string},e.Annotation=V,e.ComposableMap=x,e.Geographies=z,e.Geography=Z,e.Graticule=B,e.Line=H,e.MapContext=w,e.MapProvider=O,e.Marker=Q,e.Sphere=K,e.ZoomableGroup=q,e.useGeographies=T,e.useZoomPan=F,Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-simple-maps",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.6",
|
|
4
4
|
"description": "An svg map chart component built with and for React",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.es.js",
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"react-dom": "^16.8.0 || 17.x || 18.x"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"d3-geo": "^
|
|
60
|
-
"d3-selection": "^
|
|
61
|
-
"d3-zoom": "^
|
|
59
|
+
"d3-geo": "^2.0.2",
|
|
60
|
+
"d3-selection": "^2.0.0",
|
|
61
|
+
"d3-zoom": "^2.0.0",
|
|
62
62
|
"topojson-client": "^3.1.0"
|
|
63
63
|
}
|
|
64
64
|
}
|