react-simple-maps 3.0.0-beta.4 → 3.0.0-beta.7
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 +93 -51
- package/dist/index.js +95 -49
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
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, useContext, forwardRef, 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';
|
|
@@ -169,7 +169,7 @@ function _nonIterableRest() {
|
|
|
169
169
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
var _excluded$
|
|
172
|
+
var _excluded$a = ["width", "height", "projection", "projectionConfig"];
|
|
173
173
|
|
|
174
174
|
var geoPath = d3Geo.geoPath,
|
|
175
175
|
projections = _objectWithoutProperties(d3Geo, ["geoPath"]);
|
|
@@ -201,7 +201,7 @@ var MapProvider = function MapProvider(_ref2) {
|
|
|
201
201
|
height = _ref2.height,
|
|
202
202
|
projection = _ref2.projection,
|
|
203
203
|
projectionConfig = _ref2.projectionConfig,
|
|
204
|
-
restProps = _objectWithoutProperties(_ref2, _excluded$
|
|
204
|
+
restProps = _objectWithoutProperties(_ref2, _excluded$a);
|
|
205
205
|
|
|
206
206
|
var _ref3 = projectionConfig.center || [],
|
|
207
207
|
_ref4 = _slicedToArray(_ref3, 2),
|
|
@@ -254,9 +254,12 @@ MapProvider.propTypes = {
|
|
|
254
254
|
projectionConfig: PropTypes.object
|
|
255
255
|
};
|
|
256
256
|
|
|
257
|
-
var
|
|
257
|
+
var useMapContext = function useMapContext() {
|
|
258
|
+
return useContext(MapContext);
|
|
259
|
+
};
|
|
258
260
|
|
|
259
|
-
var
|
|
261
|
+
var _excluded$9 = ["width", "height", "projection", "projectionConfig", "className"];
|
|
262
|
+
var ComposableMap = forwardRef(function (_ref, ref) {
|
|
260
263
|
var _ref$width = _ref.width,
|
|
261
264
|
width = _ref$width === void 0 ? 800 : _ref$width,
|
|
262
265
|
_ref$height = _ref.height,
|
|
@@ -267,7 +270,7 @@ var ComposableMap = function ComposableMap(_ref) {
|
|
|
267
270
|
projectionConfig = _ref$projectionConfig === void 0 ? {} : _ref$projectionConfig,
|
|
268
271
|
_ref$className = _ref.className,
|
|
269
272
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
270
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
273
|
+
restProps = _objectWithoutProperties(_ref, _excluded$9);
|
|
271
274
|
|
|
272
275
|
return /*#__PURE__*/React.createElement(MapProvider, {
|
|
273
276
|
width: width,
|
|
@@ -275,11 +278,12 @@ var ComposableMap = function ComposableMap(_ref) {
|
|
|
275
278
|
projection: projection,
|
|
276
279
|
projectionConfig: projectionConfig
|
|
277
280
|
}, /*#__PURE__*/React.createElement("svg", _extends({
|
|
281
|
+
ref: ref,
|
|
278
282
|
viewBox: "0 0 ".concat(width, " ").concat(height),
|
|
279
283
|
className: "rsm-svg ".concat(className)
|
|
280
284
|
}, restProps)));
|
|
281
|
-
};
|
|
282
|
-
|
|
285
|
+
});
|
|
286
|
+
ComposableMap.displayName = "ComposableMap";
|
|
283
287
|
ComposableMap.propTypes = {
|
|
284
288
|
width: PropTypes.number,
|
|
285
289
|
height: PropTypes.number,
|
|
@@ -414,15 +418,14 @@ function useGeographies(_ref) {
|
|
|
414
418
|
};
|
|
415
419
|
}
|
|
416
420
|
|
|
417
|
-
var _excluded$
|
|
418
|
-
|
|
419
|
-
var Geographies = function Geographies(_ref) {
|
|
421
|
+
var _excluded$8 = ["geography", "children", "parseGeographies", "className"];
|
|
422
|
+
var Geographies = forwardRef(function (_ref, ref) {
|
|
420
423
|
var geography = _ref.geography,
|
|
421
424
|
children = _ref.children,
|
|
422
425
|
parseGeographies = _ref.parseGeographies,
|
|
423
426
|
_ref$className = _ref.className,
|
|
424
427
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
425
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
428
|
+
restProps = _objectWithoutProperties(_ref, _excluded$8);
|
|
426
429
|
|
|
427
430
|
var _useContext = useContext(MapContext),
|
|
428
431
|
path = _useContext.path,
|
|
@@ -437,6 +440,7 @@ var Geographies = function Geographies(_ref) {
|
|
|
437
440
|
borders = _useGeographies.borders;
|
|
438
441
|
|
|
439
442
|
return /*#__PURE__*/React.createElement("g", _extends({
|
|
443
|
+
ref: ref,
|
|
440
444
|
className: "rsm-geographies ".concat(className)
|
|
441
445
|
}, restProps), geographies && geographies.length > 0 && children({
|
|
442
446
|
geographies: geographies,
|
|
@@ -445,8 +449,8 @@ var Geographies = function Geographies(_ref) {
|
|
|
445
449
|
path: path,
|
|
446
450
|
projection: projection
|
|
447
451
|
}));
|
|
448
|
-
};
|
|
449
|
-
|
|
452
|
+
});
|
|
453
|
+
Geographies.displayName = "Geographies";
|
|
450
454
|
Geographies.propTypes = {
|
|
451
455
|
geography: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.array]),
|
|
452
456
|
children: PropTypes.func,
|
|
@@ -454,9 +458,8 @@ Geographies.propTypes = {
|
|
|
454
458
|
className: PropTypes.string
|
|
455
459
|
};
|
|
456
460
|
|
|
457
|
-
var _excluded$
|
|
458
|
-
|
|
459
|
-
var Geography = function Geography(_ref) {
|
|
461
|
+
var _excluded$7 = ["geography", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
462
|
+
var Geography = forwardRef(function (_ref, ref) {
|
|
460
463
|
var geography = _ref.geography,
|
|
461
464
|
onMouseEnter = _ref.onMouseEnter,
|
|
462
465
|
onMouseLeave = _ref.onMouseLeave,
|
|
@@ -468,7 +471,7 @@ var Geography = function Geography(_ref) {
|
|
|
468
471
|
style = _ref$style === void 0 ? {} : _ref$style,
|
|
469
472
|
_ref$className = _ref.className,
|
|
470
473
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
471
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
474
|
+
restProps = _objectWithoutProperties(_ref, _excluded$7);
|
|
472
475
|
|
|
473
476
|
var _useState = useState(false),
|
|
474
477
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -513,6 +516,7 @@ var Geography = function Geography(_ref) {
|
|
|
513
516
|
}
|
|
514
517
|
|
|
515
518
|
return /*#__PURE__*/React.createElement("path", _extends({
|
|
519
|
+
ref: ref,
|
|
516
520
|
tabIndex: "0",
|
|
517
521
|
className: "rsm-geography ".concat(className),
|
|
518
522
|
d: geography.svgPath,
|
|
@@ -524,8 +528,8 @@ var Geography = function Geography(_ref) {
|
|
|
524
528
|
onMouseUp: handleMouseUp,
|
|
525
529
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
526
530
|
}, restProps));
|
|
527
|
-
};
|
|
528
|
-
|
|
531
|
+
});
|
|
532
|
+
Geography.displayName = "Geography";
|
|
529
533
|
Geography.propTypes = {
|
|
530
534
|
geography: PropTypes.object,
|
|
531
535
|
onMouseEnter: PropTypes.func,
|
|
@@ -539,9 +543,8 @@ Geography.propTypes = {
|
|
|
539
543
|
};
|
|
540
544
|
var Geography$1 = memo(Geography);
|
|
541
545
|
|
|
542
|
-
var _excluded$
|
|
543
|
-
|
|
544
|
-
var Graticule = function Graticule(_ref) {
|
|
546
|
+
var _excluded$6 = ["fill", "stroke", "step", "className"];
|
|
547
|
+
var Graticule = forwardRef(function (_ref, ref) {
|
|
545
548
|
var _ref$fill = _ref.fill,
|
|
546
549
|
fill = _ref$fill === void 0 ? "transparent" : _ref$fill,
|
|
547
550
|
_ref$stroke = _ref.stroke,
|
|
@@ -550,19 +553,20 @@ var Graticule = function Graticule(_ref) {
|
|
|
550
553
|
step = _ref$step === void 0 ? [10, 10] : _ref$step,
|
|
551
554
|
_ref$className = _ref.className,
|
|
552
555
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
553
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
556
|
+
restProps = _objectWithoutProperties(_ref, _excluded$6);
|
|
554
557
|
|
|
555
558
|
var _useContext = useContext(MapContext),
|
|
556
559
|
path = _useContext.path;
|
|
557
560
|
|
|
558
561
|
return /*#__PURE__*/React.createElement("path", _extends({
|
|
562
|
+
ref: ref,
|
|
559
563
|
d: path(geoGraticule().step(step)()),
|
|
560
564
|
fill: fill,
|
|
561
565
|
stroke: stroke,
|
|
562
566
|
className: "rsm-graticule ".concat(className)
|
|
563
567
|
}, restProps));
|
|
564
|
-
};
|
|
565
|
-
|
|
568
|
+
});
|
|
569
|
+
Graticule.displayName = "Graticule";
|
|
566
570
|
Graticule.propTypes = {
|
|
567
571
|
fill: PropTypes.string,
|
|
568
572
|
stroke: PropTypes.string,
|
|
@@ -571,6 +575,36 @@ Graticule.propTypes = {
|
|
|
571
575
|
};
|
|
572
576
|
var Graticule$1 = memo(Graticule);
|
|
573
577
|
|
|
578
|
+
var _excluded$5 = ["value"];
|
|
579
|
+
var ZoomContext = createContext();
|
|
580
|
+
var defaultValue = {
|
|
581
|
+
x: 0,
|
|
582
|
+
y: 0,
|
|
583
|
+
k: 1,
|
|
584
|
+
transformString: "translate(0 0) scale(1)"
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
var ZoomProvider = function ZoomProvider(_ref) {
|
|
588
|
+
var _ref$value = _ref.value,
|
|
589
|
+
value = _ref$value === void 0 ? defaultValue : _ref$value,
|
|
590
|
+
restProps = _objectWithoutProperties(_ref, _excluded$5);
|
|
591
|
+
|
|
592
|
+
return /*#__PURE__*/React.createElement(ZoomContext.Provider, _extends({
|
|
593
|
+
value: value
|
|
594
|
+
}, restProps));
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
ZoomProvider.propTypes = {
|
|
598
|
+
x: PropTypes.number,
|
|
599
|
+
y: PropTypes.number,
|
|
600
|
+
k: PropTypes.number,
|
|
601
|
+
transformString: PropTypes.string
|
|
602
|
+
};
|
|
603
|
+
|
|
604
|
+
var useZoomPanContext = function useZoomPanContext() {
|
|
605
|
+
return useContext(ZoomContext);
|
|
606
|
+
};
|
|
607
|
+
|
|
574
608
|
function useZoomPan(_ref) {
|
|
575
609
|
var center = _ref.center,
|
|
576
610
|
filterZoomEvent = _ref.filterZoomEvent,
|
|
@@ -719,8 +753,7 @@ function useZoomPan(_ref) {
|
|
|
719
753
|
}
|
|
720
754
|
|
|
721
755
|
var _excluded$4 = ["center", "zoom", "minZoom", "maxZoom", "translateExtent", "filterZoomEvent", "onMoveStart", "onMove", "onMoveEnd", "className"];
|
|
722
|
-
|
|
723
|
-
var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
756
|
+
var ZoomableGroup = forwardRef(function (_ref, ref) {
|
|
724
757
|
var _ref$center = _ref.center,
|
|
725
758
|
center = _ref$center === void 0 ? [0, 0] : _ref$center,
|
|
726
759
|
_ref$zoom = _ref.zoom,
|
|
@@ -752,20 +785,29 @@ var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
|
752
785
|
zoom: zoom
|
|
753
786
|
}),
|
|
754
787
|
mapRef = _useZoomPan.mapRef,
|
|
755
|
-
transformString = _useZoomPan.transformString
|
|
756
|
-
|
|
757
|
-
|
|
788
|
+
transformString = _useZoomPan.transformString,
|
|
789
|
+
position = _useZoomPan.position;
|
|
790
|
+
|
|
791
|
+
return /*#__PURE__*/React.createElement(ZoomProvider, {
|
|
792
|
+
value: {
|
|
793
|
+
x: position.x,
|
|
794
|
+
y: position.y,
|
|
795
|
+
k: position.k,
|
|
796
|
+
transformString: transformString
|
|
797
|
+
}
|
|
798
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
758
799
|
ref: mapRef
|
|
759
800
|
}, /*#__PURE__*/React.createElement("rect", {
|
|
760
801
|
width: width,
|
|
761
802
|
height: height,
|
|
762
803
|
fill: "transparent"
|
|
763
804
|
}), /*#__PURE__*/React.createElement("g", _extends({
|
|
805
|
+
ref: ref,
|
|
764
806
|
transform: transformString,
|
|
765
807
|
className: "rsm-zoomable-group ".concat(className)
|
|
766
|
-
}, restProps)));
|
|
767
|
-
};
|
|
768
|
-
|
|
808
|
+
}, restProps))));
|
|
809
|
+
});
|
|
810
|
+
ZoomableGroup.displayName = "ZoomableGroup";
|
|
769
811
|
ZoomableGroup.propTypes = {
|
|
770
812
|
center: PropTypes.array,
|
|
771
813
|
zoom: PropTypes.number,
|
|
@@ -779,8 +821,7 @@ ZoomableGroup.propTypes = {
|
|
|
779
821
|
};
|
|
780
822
|
|
|
781
823
|
var _excluded$3 = ["id", "fill", "stroke", "strokeWidth", "className"];
|
|
782
|
-
|
|
783
|
-
var Sphere = function Sphere(_ref) {
|
|
824
|
+
var Sphere = forwardRef(function (_ref, ref) {
|
|
784
825
|
var _ref$id = _ref.id,
|
|
785
826
|
id = _ref$id === void 0 ? "rsm-sphere" : _ref$id,
|
|
786
827
|
_ref$fill = _ref.fill,
|
|
@@ -806,6 +847,7 @@ var Sphere = function Sphere(_ref) {
|
|
|
806
847
|
}, /*#__PURE__*/React.createElement("path", {
|
|
807
848
|
d: spherePath
|
|
808
849
|
}))), /*#__PURE__*/React.createElement("path", _extends({
|
|
850
|
+
ref: ref,
|
|
809
851
|
d: spherePath,
|
|
810
852
|
fill: fill,
|
|
811
853
|
stroke: stroke,
|
|
@@ -815,8 +857,8 @@ var Sphere = function Sphere(_ref) {
|
|
|
815
857
|
},
|
|
816
858
|
className: "rsm-sphere ".concat(className)
|
|
817
859
|
}, restProps)));
|
|
818
|
-
};
|
|
819
|
-
|
|
860
|
+
});
|
|
861
|
+
Sphere.displayName = "Sphere";
|
|
820
862
|
Sphere.propTypes = {
|
|
821
863
|
id: PropTypes.string,
|
|
822
864
|
fill: PropTypes.string,
|
|
@@ -827,8 +869,7 @@ Sphere.propTypes = {
|
|
|
827
869
|
var Sphere$1 = memo(Sphere);
|
|
828
870
|
|
|
829
871
|
var _excluded$2 = ["coordinates", "children", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
830
|
-
|
|
831
|
-
var Marker = function Marker(_ref) {
|
|
872
|
+
var Marker = forwardRef(function (_ref, ref) {
|
|
832
873
|
var coordinates = _ref.coordinates,
|
|
833
874
|
children = _ref.children,
|
|
834
875
|
onMouseEnter = _ref.onMouseEnter,
|
|
@@ -894,6 +935,7 @@ var Marker = function Marker(_ref) {
|
|
|
894
935
|
}
|
|
895
936
|
|
|
896
937
|
return /*#__PURE__*/React.createElement("g", _extends({
|
|
938
|
+
ref: ref,
|
|
897
939
|
transform: "translate(".concat(x, ", ").concat(y, ")"),
|
|
898
940
|
className: "rsm-marker ".concat(className),
|
|
899
941
|
onMouseEnter: handleMouseEnter,
|
|
@@ -904,8 +946,8 @@ var Marker = function Marker(_ref) {
|
|
|
904
946
|
onMouseUp: handleMouseUp,
|
|
905
947
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
906
948
|
}, restProps), children);
|
|
907
|
-
};
|
|
908
|
-
|
|
949
|
+
});
|
|
950
|
+
Marker.displayName = "Marker";
|
|
909
951
|
Marker.propTypes = {
|
|
910
952
|
coordinates: PropTypes.array,
|
|
911
953
|
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
|
@@ -920,8 +962,7 @@ Marker.propTypes = {
|
|
|
920
962
|
};
|
|
921
963
|
|
|
922
964
|
var _excluded$1 = ["from", "to", "coordinates", "stroke", "strokeWidth", "fill", "className"];
|
|
923
|
-
|
|
924
|
-
var Line = function Line(_ref) {
|
|
965
|
+
var Line = forwardRef(function (_ref, ref) {
|
|
925
966
|
var _ref$from = _ref.from,
|
|
926
967
|
from = _ref$from === void 0 ? [0, 0] : _ref$from,
|
|
927
968
|
_ref$to = _ref.to,
|
|
@@ -945,14 +986,15 @@ var Line = function Line(_ref) {
|
|
|
945
986
|
coordinates: coordinates || [from, to]
|
|
946
987
|
};
|
|
947
988
|
return /*#__PURE__*/React.createElement("path", _extends({
|
|
989
|
+
ref: ref,
|
|
948
990
|
d: path(lineData),
|
|
949
991
|
className: "rsm-line ".concat(className),
|
|
950
992
|
stroke: stroke,
|
|
951
993
|
strokeWidth: strokeWidth,
|
|
952
994
|
fill: fill
|
|
953
995
|
}, restProps));
|
|
954
|
-
};
|
|
955
|
-
|
|
996
|
+
});
|
|
997
|
+
Line.displayName = "Line";
|
|
956
998
|
Line.propTypes = {
|
|
957
999
|
from: PropTypes.array,
|
|
958
1000
|
to: PropTypes.array,
|
|
@@ -964,8 +1006,7 @@ Line.propTypes = {
|
|
|
964
1006
|
};
|
|
965
1007
|
|
|
966
1008
|
var _excluded = ["subject", "children", "connectorProps", "dx", "dy", "curve", "className"];
|
|
967
|
-
|
|
968
|
-
var Annotation = function Annotation(_ref) {
|
|
1009
|
+
var Annotation = forwardRef(function (_ref, ref) {
|
|
969
1010
|
var subject = _ref.subject,
|
|
970
1011
|
children = _ref.children,
|
|
971
1012
|
connectorProps = _ref.connectorProps,
|
|
@@ -989,6 +1030,7 @@ var Annotation = function Annotation(_ref) {
|
|
|
989
1030
|
|
|
990
1031
|
var connectorPath = createConnectorPath(dx, dy, curve);
|
|
991
1032
|
return /*#__PURE__*/React.createElement("g", _extends({
|
|
1033
|
+
ref: ref,
|
|
992
1034
|
transform: "translate(".concat(x + dx, ", ").concat(y + dy, ")"),
|
|
993
1035
|
className: "rsm-annotation ".concat(className)
|
|
994
1036
|
}, restProps), /*#__PURE__*/React.createElement("path", _extends({
|
|
@@ -996,8 +1038,8 @@ var Annotation = function Annotation(_ref) {
|
|
|
996
1038
|
fill: "transparent",
|
|
997
1039
|
stroke: "#000"
|
|
998
1040
|
}, connectorProps)), children);
|
|
999
|
-
};
|
|
1000
|
-
|
|
1041
|
+
});
|
|
1042
|
+
Annotation.displayName = "Annotation";
|
|
1001
1043
|
Annotation.propTypes = {
|
|
1002
1044
|
subject: PropTypes.array,
|
|
1003
1045
|
children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
|
|
@@ -1008,4 +1050,4 @@ Annotation.propTypes = {
|
|
|
1008
1050
|
className: PropTypes.string
|
|
1009
1051
|
};
|
|
1010
1052
|
|
|
1011
|
-
export { Annotation, ComposableMap, Geographies, Geography$1 as Geography, Graticule$1 as Graticule, Line, MapContext, MapProvider, Marker, Sphere$1 as Sphere, ZoomableGroup, useGeographies, useZoomPan };
|
|
1053
|
+
export { Annotation, ComposableMap, Geographies, Geography$1 as Geography, Graticule$1 as Graticule, Line, MapContext, MapProvider, Marker, Sphere$1 as Sphere, ZoomContext, ZoomProvider, ZoomableGroup, useGeographies, useMapContext, useZoomPan, useZoomPanContext };
|
package/dist/index.js
CHANGED
|
@@ -196,7 +196,7 @@ function _nonIterableRest() {
|
|
|
196
196
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
var _excluded$
|
|
199
|
+
var _excluded$a = ["width", "height", "projection", "projectionConfig"];
|
|
200
200
|
|
|
201
201
|
var geoPath = d3Geo__namespace.geoPath,
|
|
202
202
|
projections = _objectWithoutProperties(d3Geo__namespace, ["geoPath"]);
|
|
@@ -228,7 +228,7 @@ var MapProvider = function MapProvider(_ref2) {
|
|
|
228
228
|
height = _ref2.height,
|
|
229
229
|
projection = _ref2.projection,
|
|
230
230
|
projectionConfig = _ref2.projectionConfig,
|
|
231
|
-
restProps = _objectWithoutProperties(_ref2, _excluded$
|
|
231
|
+
restProps = _objectWithoutProperties(_ref2, _excluded$a);
|
|
232
232
|
|
|
233
233
|
var _ref3 = projectionConfig.center || [],
|
|
234
234
|
_ref4 = _slicedToArray(_ref3, 2),
|
|
@@ -281,9 +281,12 @@ MapProvider.propTypes = {
|
|
|
281
281
|
projectionConfig: PropTypes__default["default"].object
|
|
282
282
|
};
|
|
283
283
|
|
|
284
|
-
var
|
|
284
|
+
var useMapContext = function useMapContext() {
|
|
285
|
+
return React.useContext(MapContext);
|
|
286
|
+
};
|
|
285
287
|
|
|
286
|
-
var
|
|
288
|
+
var _excluded$9 = ["width", "height", "projection", "projectionConfig", "className"];
|
|
289
|
+
var ComposableMap = React.forwardRef(function (_ref, ref) {
|
|
287
290
|
var _ref$width = _ref.width,
|
|
288
291
|
width = _ref$width === void 0 ? 800 : _ref$width,
|
|
289
292
|
_ref$height = _ref.height,
|
|
@@ -294,7 +297,7 @@ var ComposableMap = function ComposableMap(_ref) {
|
|
|
294
297
|
projectionConfig = _ref$projectionConfig === void 0 ? {} : _ref$projectionConfig,
|
|
295
298
|
_ref$className = _ref.className,
|
|
296
299
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
297
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
300
|
+
restProps = _objectWithoutProperties(_ref, _excluded$9);
|
|
298
301
|
|
|
299
302
|
return /*#__PURE__*/React__default["default"].createElement(MapProvider, {
|
|
300
303
|
width: width,
|
|
@@ -302,11 +305,12 @@ var ComposableMap = function ComposableMap(_ref) {
|
|
|
302
305
|
projection: projection,
|
|
303
306
|
projectionConfig: projectionConfig
|
|
304
307
|
}, /*#__PURE__*/React__default["default"].createElement("svg", _extends({
|
|
308
|
+
ref: ref,
|
|
305
309
|
viewBox: "0 0 ".concat(width, " ").concat(height),
|
|
306
310
|
className: "rsm-svg ".concat(className)
|
|
307
311
|
}, restProps)));
|
|
308
|
-
};
|
|
309
|
-
|
|
312
|
+
});
|
|
313
|
+
ComposableMap.displayName = "ComposableMap";
|
|
310
314
|
ComposableMap.propTypes = {
|
|
311
315
|
width: PropTypes__default["default"].number,
|
|
312
316
|
height: PropTypes__default["default"].number,
|
|
@@ -441,15 +445,14 @@ function useGeographies(_ref) {
|
|
|
441
445
|
};
|
|
442
446
|
}
|
|
443
447
|
|
|
444
|
-
var _excluded$
|
|
445
|
-
|
|
446
|
-
var Geographies = function Geographies(_ref) {
|
|
448
|
+
var _excluded$8 = ["geography", "children", "parseGeographies", "className"];
|
|
449
|
+
var Geographies = React.forwardRef(function (_ref, ref) {
|
|
447
450
|
var geography = _ref.geography,
|
|
448
451
|
children = _ref.children,
|
|
449
452
|
parseGeographies = _ref.parseGeographies,
|
|
450
453
|
_ref$className = _ref.className,
|
|
451
454
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
452
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
455
|
+
restProps = _objectWithoutProperties(_ref, _excluded$8);
|
|
453
456
|
|
|
454
457
|
var _useContext = React.useContext(MapContext),
|
|
455
458
|
path = _useContext.path,
|
|
@@ -464,6 +467,7 @@ var Geographies = function Geographies(_ref) {
|
|
|
464
467
|
borders = _useGeographies.borders;
|
|
465
468
|
|
|
466
469
|
return /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
470
|
+
ref: ref,
|
|
467
471
|
className: "rsm-geographies ".concat(className)
|
|
468
472
|
}, restProps), geographies && geographies.length > 0 && children({
|
|
469
473
|
geographies: geographies,
|
|
@@ -472,8 +476,8 @@ var Geographies = function Geographies(_ref) {
|
|
|
472
476
|
path: path,
|
|
473
477
|
projection: projection
|
|
474
478
|
}));
|
|
475
|
-
};
|
|
476
|
-
|
|
479
|
+
});
|
|
480
|
+
Geographies.displayName = "Geographies";
|
|
477
481
|
Geographies.propTypes = {
|
|
478
482
|
geography: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object, PropTypes__default["default"].array]),
|
|
479
483
|
children: PropTypes__default["default"].func,
|
|
@@ -481,9 +485,8 @@ Geographies.propTypes = {
|
|
|
481
485
|
className: PropTypes__default["default"].string
|
|
482
486
|
};
|
|
483
487
|
|
|
484
|
-
var _excluded$
|
|
485
|
-
|
|
486
|
-
var Geography = function Geography(_ref) {
|
|
488
|
+
var _excluded$7 = ["geography", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
489
|
+
var Geography = React.forwardRef(function (_ref, ref) {
|
|
487
490
|
var geography = _ref.geography,
|
|
488
491
|
onMouseEnter = _ref.onMouseEnter,
|
|
489
492
|
onMouseLeave = _ref.onMouseLeave,
|
|
@@ -495,7 +498,7 @@ var Geography = function Geography(_ref) {
|
|
|
495
498
|
style = _ref$style === void 0 ? {} : _ref$style,
|
|
496
499
|
_ref$className = _ref.className,
|
|
497
500
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
498
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
501
|
+
restProps = _objectWithoutProperties(_ref, _excluded$7);
|
|
499
502
|
|
|
500
503
|
var _useState = React.useState(false),
|
|
501
504
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -540,6 +543,7 @@ var Geography = function Geography(_ref) {
|
|
|
540
543
|
}
|
|
541
544
|
|
|
542
545
|
return /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
546
|
+
ref: ref,
|
|
543
547
|
tabIndex: "0",
|
|
544
548
|
className: "rsm-geography ".concat(className),
|
|
545
549
|
d: geography.svgPath,
|
|
@@ -551,8 +555,8 @@ var Geography = function Geography(_ref) {
|
|
|
551
555
|
onMouseUp: handleMouseUp,
|
|
552
556
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
553
557
|
}, restProps));
|
|
554
|
-
};
|
|
555
|
-
|
|
558
|
+
});
|
|
559
|
+
Geography.displayName = "Geography";
|
|
556
560
|
Geography.propTypes = {
|
|
557
561
|
geography: PropTypes__default["default"].object,
|
|
558
562
|
onMouseEnter: PropTypes__default["default"].func,
|
|
@@ -566,9 +570,8 @@ Geography.propTypes = {
|
|
|
566
570
|
};
|
|
567
571
|
var Geography$1 = React.memo(Geography);
|
|
568
572
|
|
|
569
|
-
var _excluded$
|
|
570
|
-
|
|
571
|
-
var Graticule = function Graticule(_ref) {
|
|
573
|
+
var _excluded$6 = ["fill", "stroke", "step", "className"];
|
|
574
|
+
var Graticule = React.forwardRef(function (_ref, ref) {
|
|
572
575
|
var _ref$fill = _ref.fill,
|
|
573
576
|
fill = _ref$fill === void 0 ? "transparent" : _ref$fill,
|
|
574
577
|
_ref$stroke = _ref.stroke,
|
|
@@ -577,19 +580,20 @@ var Graticule = function Graticule(_ref) {
|
|
|
577
580
|
step = _ref$step === void 0 ? [10, 10] : _ref$step,
|
|
578
581
|
_ref$className = _ref.className,
|
|
579
582
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
580
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
583
|
+
restProps = _objectWithoutProperties(_ref, _excluded$6);
|
|
581
584
|
|
|
582
585
|
var _useContext = React.useContext(MapContext),
|
|
583
586
|
path = _useContext.path;
|
|
584
587
|
|
|
585
588
|
return /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
589
|
+
ref: ref,
|
|
586
590
|
d: path(d3Geo.geoGraticule().step(step)()),
|
|
587
591
|
fill: fill,
|
|
588
592
|
stroke: stroke,
|
|
589
593
|
className: "rsm-graticule ".concat(className)
|
|
590
594
|
}, restProps));
|
|
591
|
-
};
|
|
592
|
-
|
|
595
|
+
});
|
|
596
|
+
Graticule.displayName = "Graticule";
|
|
593
597
|
Graticule.propTypes = {
|
|
594
598
|
fill: PropTypes__default["default"].string,
|
|
595
599
|
stroke: PropTypes__default["default"].string,
|
|
@@ -598,6 +602,36 @@ Graticule.propTypes = {
|
|
|
598
602
|
};
|
|
599
603
|
var Graticule$1 = React.memo(Graticule);
|
|
600
604
|
|
|
605
|
+
var _excluded$5 = ["value"];
|
|
606
|
+
var ZoomContext = React.createContext();
|
|
607
|
+
var defaultValue = {
|
|
608
|
+
x: 0,
|
|
609
|
+
y: 0,
|
|
610
|
+
k: 1,
|
|
611
|
+
transformString: "translate(0 0) scale(1)"
|
|
612
|
+
};
|
|
613
|
+
|
|
614
|
+
var ZoomProvider = function ZoomProvider(_ref) {
|
|
615
|
+
var _ref$value = _ref.value,
|
|
616
|
+
value = _ref$value === void 0 ? defaultValue : _ref$value,
|
|
617
|
+
restProps = _objectWithoutProperties(_ref, _excluded$5);
|
|
618
|
+
|
|
619
|
+
return /*#__PURE__*/React__default["default"].createElement(ZoomContext.Provider, _extends({
|
|
620
|
+
value: value
|
|
621
|
+
}, restProps));
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
ZoomProvider.propTypes = {
|
|
625
|
+
x: PropTypes__default["default"].number,
|
|
626
|
+
y: PropTypes__default["default"].number,
|
|
627
|
+
k: PropTypes__default["default"].number,
|
|
628
|
+
transformString: PropTypes__default["default"].string
|
|
629
|
+
};
|
|
630
|
+
|
|
631
|
+
var useZoomPanContext = function useZoomPanContext() {
|
|
632
|
+
return React.useContext(ZoomContext);
|
|
633
|
+
};
|
|
634
|
+
|
|
601
635
|
function useZoomPan(_ref) {
|
|
602
636
|
var center = _ref.center,
|
|
603
637
|
filterZoomEvent = _ref.filterZoomEvent,
|
|
@@ -746,8 +780,7 @@ function useZoomPan(_ref) {
|
|
|
746
780
|
}
|
|
747
781
|
|
|
748
782
|
var _excluded$4 = ["center", "zoom", "minZoom", "maxZoom", "translateExtent", "filterZoomEvent", "onMoveStart", "onMove", "onMoveEnd", "className"];
|
|
749
|
-
|
|
750
|
-
var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
783
|
+
var ZoomableGroup = React.forwardRef(function (_ref, ref) {
|
|
751
784
|
var _ref$center = _ref.center,
|
|
752
785
|
center = _ref$center === void 0 ? [0, 0] : _ref$center,
|
|
753
786
|
_ref$zoom = _ref.zoom,
|
|
@@ -779,20 +812,29 @@ var ZoomableGroup = function ZoomableGroup(_ref) {
|
|
|
779
812
|
zoom: zoom
|
|
780
813
|
}),
|
|
781
814
|
mapRef = _useZoomPan.mapRef,
|
|
782
|
-
transformString = _useZoomPan.transformString
|
|
783
|
-
|
|
784
|
-
|
|
815
|
+
transformString = _useZoomPan.transformString,
|
|
816
|
+
position = _useZoomPan.position;
|
|
817
|
+
|
|
818
|
+
return /*#__PURE__*/React__default["default"].createElement(ZoomProvider, {
|
|
819
|
+
value: {
|
|
820
|
+
x: position.x,
|
|
821
|
+
y: position.y,
|
|
822
|
+
k: position.k,
|
|
823
|
+
transformString: transformString
|
|
824
|
+
}
|
|
825
|
+
}, /*#__PURE__*/React__default["default"].createElement("g", {
|
|
785
826
|
ref: mapRef
|
|
786
827
|
}, /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
787
828
|
width: width,
|
|
788
829
|
height: height,
|
|
789
830
|
fill: "transparent"
|
|
790
831
|
}), /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
832
|
+
ref: ref,
|
|
791
833
|
transform: transformString,
|
|
792
834
|
className: "rsm-zoomable-group ".concat(className)
|
|
793
|
-
}, restProps)));
|
|
794
|
-
};
|
|
795
|
-
|
|
835
|
+
}, restProps))));
|
|
836
|
+
});
|
|
837
|
+
ZoomableGroup.displayName = "ZoomableGroup";
|
|
796
838
|
ZoomableGroup.propTypes = {
|
|
797
839
|
center: PropTypes__default["default"].array,
|
|
798
840
|
zoom: PropTypes__default["default"].number,
|
|
@@ -806,8 +848,7 @@ ZoomableGroup.propTypes = {
|
|
|
806
848
|
};
|
|
807
849
|
|
|
808
850
|
var _excluded$3 = ["id", "fill", "stroke", "strokeWidth", "className"];
|
|
809
|
-
|
|
810
|
-
var Sphere = function Sphere(_ref) {
|
|
851
|
+
var Sphere = React.forwardRef(function (_ref, ref) {
|
|
811
852
|
var _ref$id = _ref.id,
|
|
812
853
|
id = _ref$id === void 0 ? "rsm-sphere" : _ref$id,
|
|
813
854
|
_ref$fill = _ref.fill,
|
|
@@ -833,6 +874,7 @@ var Sphere = function Sphere(_ref) {
|
|
|
833
874
|
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
834
875
|
d: spherePath
|
|
835
876
|
}))), /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
877
|
+
ref: ref,
|
|
836
878
|
d: spherePath,
|
|
837
879
|
fill: fill,
|
|
838
880
|
stroke: stroke,
|
|
@@ -842,8 +884,8 @@ var Sphere = function Sphere(_ref) {
|
|
|
842
884
|
},
|
|
843
885
|
className: "rsm-sphere ".concat(className)
|
|
844
886
|
}, restProps)));
|
|
845
|
-
};
|
|
846
|
-
|
|
887
|
+
});
|
|
888
|
+
Sphere.displayName = "Sphere";
|
|
847
889
|
Sphere.propTypes = {
|
|
848
890
|
id: PropTypes__default["default"].string,
|
|
849
891
|
fill: PropTypes__default["default"].string,
|
|
@@ -854,8 +896,7 @@ Sphere.propTypes = {
|
|
|
854
896
|
var Sphere$1 = React.memo(Sphere);
|
|
855
897
|
|
|
856
898
|
var _excluded$2 = ["coordinates", "children", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "style", "className"];
|
|
857
|
-
|
|
858
|
-
var Marker = function Marker(_ref) {
|
|
899
|
+
var Marker = React.forwardRef(function (_ref, ref) {
|
|
859
900
|
var coordinates = _ref.coordinates,
|
|
860
901
|
children = _ref.children,
|
|
861
902
|
onMouseEnter = _ref.onMouseEnter,
|
|
@@ -921,6 +962,7 @@ var Marker = function Marker(_ref) {
|
|
|
921
962
|
}
|
|
922
963
|
|
|
923
964
|
return /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
965
|
+
ref: ref,
|
|
924
966
|
transform: "translate(".concat(x, ", ").concat(y, ")"),
|
|
925
967
|
className: "rsm-marker ".concat(className),
|
|
926
968
|
onMouseEnter: handleMouseEnter,
|
|
@@ -931,8 +973,8 @@ var Marker = function Marker(_ref) {
|
|
|
931
973
|
onMouseUp: handleMouseUp,
|
|
932
974
|
style: style[isPressed || isFocused ? isPressed ? "pressed" : "hover" : "default"]
|
|
933
975
|
}, restProps), children);
|
|
934
|
-
};
|
|
935
|
-
|
|
976
|
+
});
|
|
977
|
+
Marker.displayName = "Marker";
|
|
936
978
|
Marker.propTypes = {
|
|
937
979
|
coordinates: PropTypes__default["default"].array,
|
|
938
980
|
children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].node, PropTypes__default["default"].arrayOf(PropTypes__default["default"].node)]),
|
|
@@ -947,8 +989,7 @@ Marker.propTypes = {
|
|
|
947
989
|
};
|
|
948
990
|
|
|
949
991
|
var _excluded$1 = ["from", "to", "coordinates", "stroke", "strokeWidth", "fill", "className"];
|
|
950
|
-
|
|
951
|
-
var Line = function Line(_ref) {
|
|
992
|
+
var Line = React.forwardRef(function (_ref, ref) {
|
|
952
993
|
var _ref$from = _ref.from,
|
|
953
994
|
from = _ref$from === void 0 ? [0, 0] : _ref$from,
|
|
954
995
|
_ref$to = _ref.to,
|
|
@@ -972,14 +1013,15 @@ var Line = function Line(_ref) {
|
|
|
972
1013
|
coordinates: coordinates || [from, to]
|
|
973
1014
|
};
|
|
974
1015
|
return /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
1016
|
+
ref: ref,
|
|
975
1017
|
d: path(lineData),
|
|
976
1018
|
className: "rsm-line ".concat(className),
|
|
977
1019
|
stroke: stroke,
|
|
978
1020
|
strokeWidth: strokeWidth,
|
|
979
1021
|
fill: fill
|
|
980
1022
|
}, restProps));
|
|
981
|
-
};
|
|
982
|
-
|
|
1023
|
+
});
|
|
1024
|
+
Line.displayName = "Line";
|
|
983
1025
|
Line.propTypes = {
|
|
984
1026
|
from: PropTypes__default["default"].array,
|
|
985
1027
|
to: PropTypes__default["default"].array,
|
|
@@ -991,8 +1033,7 @@ Line.propTypes = {
|
|
|
991
1033
|
};
|
|
992
1034
|
|
|
993
1035
|
var _excluded = ["subject", "children", "connectorProps", "dx", "dy", "curve", "className"];
|
|
994
|
-
|
|
995
|
-
var Annotation = function Annotation(_ref) {
|
|
1036
|
+
var Annotation = React.forwardRef(function (_ref, ref) {
|
|
996
1037
|
var subject = _ref.subject,
|
|
997
1038
|
children = _ref.children,
|
|
998
1039
|
connectorProps = _ref.connectorProps,
|
|
@@ -1016,6 +1057,7 @@ var Annotation = function Annotation(_ref) {
|
|
|
1016
1057
|
|
|
1017
1058
|
var connectorPath = createConnectorPath(dx, dy, curve);
|
|
1018
1059
|
return /*#__PURE__*/React__default["default"].createElement("g", _extends({
|
|
1060
|
+
ref: ref,
|
|
1019
1061
|
transform: "translate(".concat(x + dx, ", ").concat(y + dy, ")"),
|
|
1020
1062
|
className: "rsm-annotation ".concat(className)
|
|
1021
1063
|
}, restProps), /*#__PURE__*/React__default["default"].createElement("path", _extends({
|
|
@@ -1023,8 +1065,8 @@ var Annotation = function Annotation(_ref) {
|
|
|
1023
1065
|
fill: "transparent",
|
|
1024
1066
|
stroke: "#000"
|
|
1025
1067
|
}, connectorProps)), children);
|
|
1026
|
-
};
|
|
1027
|
-
|
|
1068
|
+
});
|
|
1069
|
+
Annotation.displayName = "Annotation";
|
|
1028
1070
|
Annotation.propTypes = {
|
|
1029
1071
|
subject: PropTypes__default["default"].array,
|
|
1030
1072
|
children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].node, PropTypes__default["default"].arrayOf(PropTypes__default["default"].node)]),
|
|
@@ -1045,6 +1087,10 @@ exports.MapContext = MapContext;
|
|
|
1045
1087
|
exports.MapProvider = MapProvider;
|
|
1046
1088
|
exports.Marker = Marker;
|
|
1047
1089
|
exports.Sphere = Sphere$1;
|
|
1090
|
+
exports.ZoomContext = ZoomContext;
|
|
1091
|
+
exports.ZoomProvider = ZoomProvider;
|
|
1048
1092
|
exports.ZoomableGroup = ZoomableGroup;
|
|
1049
1093
|
exports.useGeographies = useGeographies;
|
|
1094
|
+
exports.useMapContext = useMapContext;
|
|
1050
1095
|
exports.useZoomPan = useZoomPan;
|
|
1096
|
+
exports.useZoomPanContext = useZoomPanContext;
|
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 i=s(t),c=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){y(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 y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(){return g=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},g.apply(this,arguments)}function v(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 h(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=v(f,["geoPath"]),x=t.createContext(),k=function(e){var r=e.width,o=e.height,n=e.projection,a=e.projectionConfig,u=v(e,j),s=h(a.center||[],2),l=s[0],c=s[1],f=h(a.rotate||[],3),d=f[0],p=f[1],m=f[2],y=h(a.parallels||[],2),b=y[0],k=y[1],w=a.scale||null,O=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 i=E[n]().translate([u/2,l/2]);return[i.center?"center":null,i.rotate?"rotate":null,i.scale?"scale":null,i.parallels?"parallels":null].forEach((function(e){e&&(i=i[e](r[e]||i[e]()))})),i}({projectionConfig:{center:l||0===l||c||0===c?[l,c]:null,rotate:d||0===d||p||0===p?[d,p,m]:null,parallels:b||0===b||k||0===k?[b,k]:null,scale:w},projection:n,width:r,height:o})}),[r,o,n,l,c,d,p,m,b,k,w]),N=t.useCallback(O,[O]),S=t.useMemo((function(){return{width:r,height:o,projection:N,path:M().projection(N)}}),[r,o,N]);return i.default.createElement(x.Provider,g({value:S},u))};k.propTypes={width:c.default.number,height:c.default.number,projection:c.default.oneOfType([c.default.string,c.default.func]),projectionConfig:c.default.object};var w=["width","height","projection","projectionConfig","className"],O=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,c=void 0===l?{}:l,f=e.className,d=void 0===f?"":f,p=v(e,w);return i.default.createElement(k,{width:o,height:a,projection:s,projectionConfig:c},i.default.createElement("svg",g({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(x).path,a=h(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}}O.displayName="ComposableMap",O.propTypes={width:c.default.number,height:c.default.number,projection:c.default.oneOfType([c.default.string,c.default.func]),projectionConfig:c.default.object,className:c.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=v(e,R),c=t.useContext(x),f=c.path,d=c.projection,p=T({geography:o,parseGeographies:a}),m=p.geographies,y=p.outline,h=p.borders;return i.default.createElement("g",g({ref:r,className:"rsm-geographies ".concat(s)},l),m&&m.length>0&&n({geographies:m,outline:y,borders:h,path:f,projection:d}))}));Z.displayName="Geographies",Z.propTypes={geography:c.default.oneOfType([c.default.string,c.default.object,c.default.array]),children:c.default.func,parseGeographies:c.default.func,className:c.default.string};var z=["geography","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className"],G=t.forwardRef((function(e,r){var o=e.geography,n=e.onMouseEnter,a=e.onMouseLeave,u=e.onMouseDown,s=e.onMouseUp,l=e.onFocus,c=e.onBlur,f=e.style,d=void 0===f?{}:f,p=e.className,m=void 0===p?"":p,y=v(e,z),b=h(t.useState(!1),2),j=b[0],M=b[1],E=h(t.useState(!1),2),x=E[0],k=E[1];return i.default.createElement("path",g({ref:r,tabIndex:"0",className:"rsm-geography ".concat(m),d:o.svgPath,onMouseEnter:function(e){k(!0),n&&n(e)},onMouseLeave:function(e){k(!1),j&&M(!1),a&&a(e)},onFocus:function(e){k(!0),l&&l(e)},onBlur:function(e){k(!1),j&&M(!1),c&&c(e)},onMouseDown:function(e){M(!0),u&&u(e)},onMouseUp:function(e){M(!1),s&&s(e)},style:d[j||x?j?"pressed":"hover":"default"]},y))}));G.displayName="Geography",G.propTypes={geography:c.default.object,onMouseEnter:c.default.func,onMouseLeave:c.default.func,onMouseDown:c.default.func,onMouseUp:c.default.func,onFocus:c.default.func,onBlur:c.default.func,style:c.default.object,className:c.default.string};var D=t.memo(G),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,c=void 0===l?[10,10]:l,f=e.className,d=void 0===f?"":f,p=v(e,L),m=t.useContext(x).path;return i.default.createElement("path",g({ref:r,d:m(o.geoGraticule().step(c)()),fill:a,stroke:s,className:"rsm-graticule ".concat(d)},p))}));A.displayName="Graticule",A.propTypes={fill:c.default.string,stroke:c.default.string,step:c.default.array,className:c.default.string};var B=t.memo(A),F=["value"],U=t.createContext(),q={x:0,y:0,k:1,transformString:"translate(0 0) scale(1)"},W=function(e){var t=e.value,r=void 0===t?q:t,o=v(e,F);return i.default.createElement(U.Provider,g({value:r},o))};W.propTypes={x:c.default.number,y:c.default.number,k:c.default.number,transformString:c.default.string};function I(e){var r=e.center,o=e.filterZoomEvent,n=e.onMoveStart,s=e.onMoveEnd,l=e.onMove,i=e.translateExtent,c=void 0===i?[[-1/0,-1/0],[1/0,1/0]]:i,f=e.scaleExtent,d=void 0===f?[1,8]:f,p=e.zoom,m=void 0===p?1:p,y=t.useContext(x),g=y.width,v=y.height,b=y.projection,j=h(r,2),M=j[0],E=j[1],k=h(t.useState({x:0,y:0,k:1}),2),w=k[0],O=k[1],S=t.useRef({x:0,y:0,k:1}),P=t.useRef(),C=t.useRef(),T=t.useRef(!1),R=h(c,2),Z=R[0],z=R[1],G=h(Z,2),D=G[0],L=G[1],A=h(z,2),B=A[0],F=A[1],U=h(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([[D,L],[B,F]]).on("start",(function(e){n&&!T.current&&n({coordinates:b.invert(N(g,v,e.transform)),zoom:e.transform.k},e)})).on("zoom",(function(e){if(!T.current){var t=e.transform,r=e.sourceEvent;O({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=h(b.invert(N(g,v,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)}),[g,v,D,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(g/2-t,v/2-r).scale(m)),O({x:g/2-t,y:v/2-r,k:m}),S.current={x:M,y:E,k:m}}}),[M,E,m,g,v,b]),{mapRef:P,position:w,transformString:"translate(".concat(w.x," ").concat(w.y,") scale(").concat(w.k,")")}}var K=["center","zoom","minZoom","maxZoom","translateExtent","filterZoomEvent","onMoveStart","onMove","onMoveEnd","className"],_=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,c=e.maxZoom,f=void 0===c?8:c,d=e.translateExtent,p=e.filterZoomEvent,m=e.onMoveStart,y=e.onMove,h=e.onMoveEnd,b=e.className,j=v(e,K),M=t.useContext(x),E=M.width,k=M.height,w=I({center:n,filterZoomEvent:p,onMoveStart:m,onMove:y,onMoveEnd:h,scaleExtent:[l,f],translateExtent:d,zoom:u}),O=w.mapRef,N=w.transformString,S=w.position;return i.default.createElement(W,{value:{x:S.x,y:S.y,k:S.k,transformString:N}},i.default.createElement("g",{ref:O},i.default.createElement("rect",{width:E,height:k,fill:"transparent"}),i.default.createElement("g",g({ref:r,transform:N,className:"rsm-zoomable-group ".concat(b)},j))))}));_.displayName="ZoomableGroup",_.propTypes={center:c.default.array,zoom:c.default.number,minZoom:c.default.number,maxZoom:c.default.number,translateExtent:c.default.arrayOf(c.default.array),onMoveStart:c.default.func,onMove:c.default.func,onMoveEnd:c.default.func,className:c.default.string};var Q=["id","fill","stroke","strokeWidth","className"],$=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,c=e.strokeWidth,f=void 0===c?.5:c,d=e.className,p=void 0===d?"":d,m=v(e,Q),y=t.useContext(x).path,h=t.useMemo((function(){return y({type:"Sphere"})}),[y]);return i.default.createElement(t.Fragment,null,i.default.createElement("defs",null,i.default.createElement("clipPath",{id:n},i.default.createElement("path",{d:h}))),i.default.createElement("path",g({ref:r,d:h,fill:u,stroke:l,strokeWidth:f,style:{pointerEvents:"none"},className:"rsm-sphere ".concat(p)},m)))}));$.displayName="Sphere",$.propTypes={id:c.default.string,fill:c.default.string,stroke:c.default.string,strokeWidth:c.default.number,className:c.default.string};var H=t.memo($),J=["coordinates","children","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","style","className"],V=t.forwardRef((function(e,r){var o=e.coordinates,n=e.children,a=e.onMouseEnter,u=e.onMouseLeave,s=e.onMouseDown,l=e.onMouseUp,c=e.onFocus,f=e.onBlur,d=e.style,p=void 0===d?{}:d,m=e.className,y=void 0===m?"":m,b=v(e,J),j=t.useContext(x).projection,M=h(t.useState(!1),2),E=M[0],k=M[1],w=h(t.useState(!1),2),O=w[0],N=w[1],S=h(j(o),2),P=S[0],C=S[1];return i.default.createElement("g",g({ref:r,transform:"translate(".concat(P,", ").concat(C,")"),className:"rsm-marker ".concat(y),onMouseEnter:function(e){N(!0),a&&a(e)},onMouseLeave:function(e){N(!1),E&&k(!1),u&&u(e)},onFocus:function(e){N(!0),c&&c(e)},onBlur:function(e){N(!1),E&&k(!1),f&&f(e)},onMouseDown:function(e){k(!0),s&&s(e)},onMouseUp:function(e){k(!1),l&&l(e)},style:p[E||O?E?"pressed":"hover":"default"]},b),n)}));V.displayName="Marker",V.propTypes={coordinates:c.default.array,children:c.default.oneOfType([c.default.node,c.default.arrayOf(c.default.node)]),onMouseEnter:c.default.func,onMouseLeave:c.default.func,onMouseDown:c.default.func,onMouseUp:c.default.func,onFocus:c.default.func,onBlur:c.default.func,style:c.default.object,className:c.default.string};var X=["from","to","coordinates","stroke","strokeWidth","fill","className"],Y=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,c=void 0===l?"currentcolor":l,f=e.strokeWidth,d=void 0===f?3:f,p=e.fill,m=void 0===p?"transparent":p,y=e.className,h=void 0===y?"":y,b=v(e,X),j=t.useContext(x).path,M={type:"LineString",coordinates:s||[n,u]};return i.default.createElement("path",g({ref:r,d:j(M),className:"rsm-line ".concat(h),stroke:c,strokeWidth:d,fill:m},b))}));Y.displayName="Line",Y.propTypes={from:c.default.array,to:c.default.array,coordinates:c.default.array,stroke:c.default.string,strokeWidth:c.default.number,fill:c.default.string,className:c.default.string};var ee=["subject","children","connectorProps","dx","dy","curve","className"],te=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,c=void 0===l?30:l,f=e.curve,d=void 0===f?0:f,p=e.className,m=void 0===p?"":p,y=v(e,ee),b=h((0,t.useContext(x).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,c,d);return i.default.createElement("g",g({ref:r,transform:"translate(".concat(j+s,", ").concat(M+c,")"),className:"rsm-annotation ".concat(m)},y),i.default.createElement("path",g({d:E,fill:"transparent",stroke:"#000"},a)),n)}));te.displayName="Annotation",te.propTypes={subject:c.default.array,children:c.default.oneOfType([c.default.node,c.default.arrayOf(c.default.node)]),dx:c.default.number,dy:c.default.number,curve:c.default.number,connectorProps:c.default.object,className:c.default.string},e.Annotation=te,e.ComposableMap=O,e.Geographies=Z,e.Geography=D,e.Graticule=B,e.Line=Y,e.MapContext=x,e.MapProvider=k,e.Marker=V,e.Sphere=H,e.ZoomContext=U,e.ZoomProvider=W,e.ZoomableGroup=_,e.useGeographies=T,e.useMapContext=function(){return t.useContext(x)},e.useZoomPan=I,e.useZoomPanContext=function(){return t.useContext(U)},Object.defineProperty(e,"__esModule",{value:!0})}));
|