national-metadata 0.1.4 → 0.1.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/dist/mapping/index.d.ts +26 -0
- package/dist/mapping/index.d.ts.map +1 -0
- package/dist/mapping/index.js +16 -0
- package/dist/mapping/index.js.map +1 -0
- package/dist/mapping/src/components/Annotation.d.ts +13 -0
- package/dist/mapping/src/components/Annotation.d.ts.map +1 -0
- package/dist/mapping/src/components/Annotation.js +15 -0
- package/dist/mapping/src/components/Annotation.js.map +1 -0
- package/dist/mapping/src/components/ComposableMap.d.ts +13 -0
- package/dist/mapping/src/components/ComposableMap.d.ts.map +1 -0
- package/dist/mapping/src/components/ComposableMap.js +9 -0
- package/dist/mapping/src/components/ComposableMap.js.map +1 -0
- package/dist/mapping/src/components/Geographies.d.ts +20 -0
- package/dist/mapping/src/components/Geographies.d.ts.map +1 -0
- package/dist/mapping/src/components/Geographies.js +16 -0
- package/dist/mapping/src/components/Geographies.js.map +1 -0
- package/dist/mapping/src/components/Geography.d.ts +21 -0
- package/dist/mapping/src/components/Geography.d.ts.map +1 -0
- package/dist/mapping/src/components/Geography.js +44 -0
- package/dist/mapping/src/components/Geography.js.map +1 -0
- package/dist/mapping/src/components/Graticule.d.ts +10 -0
- package/dist/mapping/src/components/Graticule.d.ts.map +1 -0
- package/dist/mapping/src/components/Graticule.js +10 -0
- package/dist/mapping/src/components/Graticule.js.map +1 -0
- package/dist/mapping/src/components/Line.d.ts +13 -0
- package/dist/mapping/src/components/Line.d.ts.map +1 -0
- package/dist/mapping/src/components/Line.js +13 -0
- package/dist/mapping/src/components/Line.js.map +1 -0
- package/dist/mapping/src/components/MapProvider.d.ts +26 -0
- package/dist/mapping/src/components/MapProvider.d.ts.map +1 -0
- package/dist/mapping/src/components/MapProvider.js +62 -0
- package/dist/mapping/src/components/MapProvider.js.map +1 -0
- package/dist/mapping/src/components/Marker.d.ts +21 -0
- package/dist/mapping/src/components/Marker.d.ts.map +1 -0
- package/dist/mapping/src/components/Marker.js +48 -0
- package/dist/mapping/src/components/Marker.js.map +1 -0
- package/dist/mapping/src/components/Sphere.d.ts +11 -0
- package/dist/mapping/src/components/Sphere.d.ts.map +1 -0
- package/dist/mapping/src/components/Sphere.js +14 -0
- package/dist/mapping/src/components/Sphere.js.map +1 -0
- package/dist/mapping/src/components/ZoomPanProvider.d.ts +14 -0
- package/dist/mapping/src/components/ZoomPanProvider.d.ts.map +1 -0
- package/dist/mapping/src/components/ZoomPanProvider.js +16 -0
- package/dist/mapping/src/components/ZoomPanProvider.js.map +1 -0
- package/dist/mapping/src/components/ZoomableGroup.d.ts +30 -0
- package/dist/mapping/src/components/ZoomableGroup.d.ts.map +1 -0
- package/dist/mapping/src/components/ZoomableGroup.js +24 -0
- package/dist/mapping/src/components/ZoomableGroup.js.map +1 -0
- package/dist/mapping/src/components/useGeographies.d.ts +13 -0
- package/dist/mapping/src/components/useGeographies.d.ts.map +1 -0
- package/dist/mapping/src/components/useGeographies.js +41 -0
- package/dist/mapping/src/components/useGeographies.js.map +1 -0
- package/dist/mapping/src/components/useZoomPan.d.ts +36 -0
- package/dist/mapping/src/components/useZoomPan.d.ts.map +1 -0
- package/dist/mapping/src/components/useZoomPan.js +129 -0
- package/dist/mapping/src/components/useZoomPan.js.map +1 -0
- package/dist/mapping/src/index.d.ts +14 -0
- package/dist/mapping/src/index.d.ts.map +1 -0
- package/dist/mapping/src/index.js +14 -0
- package/dist/mapping/src/index.js.map +1 -0
- package/dist/mapping/src/utils.d.ts +38 -0
- package/dist/mapping/src/utils.d.ts.map +1 -0
- package/dist/mapping/src/utils.js +84 -0
- package/dist/mapping/src/utils.js.map +1 -0
- package/dist/react-simple-maps/index.d.ts +14 -0
- package/dist/react-simple-maps/index.d.ts.map +1 -0
- package/dist/react-simple-maps/index.js +16 -0
- package/dist/react-simple-maps/index.js.map +1 -0
- package/dist/react-simple-maps/src/components/Annotation.d.ts +3 -0
- package/dist/react-simple-maps/src/components/Annotation.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/Annotation.js +27 -0
- package/dist/react-simple-maps/src/components/Annotation.js.map +1 -0
- package/dist/react-simple-maps/src/components/ComposableMap.d.ts +3 -0
- package/dist/react-simple-maps/src/components/ComposableMap.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/ComposableMap.js +17 -0
- package/dist/react-simple-maps/src/components/ComposableMap.js.map +1 -0
- package/dist/react-simple-maps/src/components/Geographies.d.ts +3 -0
- package/dist/react-simple-maps/src/components/Geographies.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/Geographies.js +27 -0
- package/dist/react-simple-maps/src/components/Geographies.js.map +1 -0
- package/dist/react-simple-maps/src/components/Geography.d.ts +3 -0
- package/dist/react-simple-maps/src/components/Geography.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/Geography.js +59 -0
- package/dist/react-simple-maps/src/components/Geography.js.map +1 -0
- package/dist/react-simple-maps/src/components/Graticule.d.ts +3 -0
- package/dist/react-simple-maps/src/components/Graticule.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/Graticule.js +17 -0
- package/dist/react-simple-maps/src/components/Graticule.js.map +1 -0
- package/dist/react-simple-maps/src/components/Line.d.ts +3 -0
- package/dist/react-simple-maps/src/components/Line.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/Line.js +23 -0
- package/dist/react-simple-maps/src/components/Line.js.map +1 -0
- package/dist/react-simple-maps/src/components/MapProvider.d.ts +18 -0
- package/dist/react-simple-maps/src/components/MapProvider.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/MapProvider.js +63 -0
- package/dist/react-simple-maps/src/components/MapProvider.js.map +1 -0
- package/dist/react-simple-maps/src/components/Marker.d.ts +3 -0
- package/dist/react-simple-maps/src/components/Marker.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/Marker.js +66 -0
- package/dist/react-simple-maps/src/components/Marker.js.map +1 -0
- package/dist/react-simple-maps/src/components/Sphere.d.ts +3 -0
- package/dist/react-simple-maps/src/components/Sphere.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/Sphere.js +22 -0
- package/dist/react-simple-maps/src/components/Sphere.js.map +1 -0
- package/dist/react-simple-maps/src/components/ZoomPanProvider.d.ts +20 -0
- package/dist/react-simple-maps/src/components/ZoomPanProvider.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/ZoomPanProvider.js +23 -0
- package/dist/react-simple-maps/src/components/ZoomPanProvider.js.map +1 -0
- package/dist/react-simple-maps/src/components/ZoomableGroup.d.ts +3 -0
- package/dist/react-simple-maps/src/components/ZoomableGroup.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/ZoomableGroup.js +36 -0
- package/dist/react-simple-maps/src/components/ZoomableGroup.js.map +1 -0
- package/dist/react-simple-maps/src/components/useGeographies.d.ts +9 -0
- package/dist/react-simple-maps/src/components/useGeographies.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/useGeographies.js +40 -0
- package/dist/react-simple-maps/src/components/useGeographies.js.map +1 -0
- package/dist/react-simple-maps/src/components/useZoomPan.d.ts +15 -0
- package/dist/react-simple-maps/src/components/useZoomPan.d.ts.map +1 -0
- package/dist/react-simple-maps/src/components/useZoomPan.js +114 -0
- package/dist/react-simple-maps/src/components/useZoomPan.js.map +1 -0
- package/dist/react-simple-maps/src/index.d.ts +14 -0
- package/dist/react-simple-maps/src/index.d.ts.map +1 -0
- package/dist/react-simple-maps/src/index.js +14 -0
- package/dist/react-simple-maps/src/index.js.map +1 -0
- package/dist/react-simple-maps/src/utils.d.ts +18 -0
- package/dist/react-simple-maps/src/utils.d.ts.map +1 -0
- package/dist/react-simple-maps/src/utils.js +65 -0
- package/dist/react-simple-maps/src/utils.js.map +1 -0
- package/package.json +36 -2
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
export interface ZoomableGroupProps extends React.SVGProps<SVGGElement> {
|
|
3
|
+
center?: [number, number];
|
|
4
|
+
zoom?: number;
|
|
5
|
+
minZoom?: number;
|
|
6
|
+
maxZoom?: number;
|
|
7
|
+
translateExtent?: [[number, number], [number, number]];
|
|
8
|
+
filterZoomEvent?: (event: any) => boolean;
|
|
9
|
+
onMoveStart?: (position: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
k: number;
|
|
13
|
+
dragging?: boolean;
|
|
14
|
+
}, event?: any) => void;
|
|
15
|
+
onMove?: (position: {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
zoom: number;
|
|
19
|
+
dragging?: boolean;
|
|
20
|
+
}, event?: any) => void;
|
|
21
|
+
onMoveEnd?: (position: {
|
|
22
|
+
coordinates?: [number, number];
|
|
23
|
+
zoom?: number;
|
|
24
|
+
}, event?: any) => void;
|
|
25
|
+
className?: string;
|
|
26
|
+
children?: ReactNode;
|
|
27
|
+
}
|
|
28
|
+
declare const ZoomableGroup: React.ForwardRefExoticComponent<Omit<ZoomableGroupProps, "ref"> & React.RefAttributes<SVGGElement>>;
|
|
29
|
+
export default ZoomableGroup;
|
|
30
|
+
//# sourceMappingURL=ZoomableGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomableGroup.d.ts","sourceRoot":"","sources":["../../../../src/mapping/src/components/ZoomableGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA0B,SAAS,EAAE,MAAM,OAAO,CAAC;AAKjE,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;IACrE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvG,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACrG,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,aAAa,qGAiDlB,CAAC;AAIF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { useContext, forwardRef } from "react";
|
|
2
|
+
import { MapContext } from "./MapProvider";
|
|
3
|
+
import { ZoomPanProvider } from "./ZoomPanProvider";
|
|
4
|
+
import useZoomPan from "./useZoomPan";
|
|
5
|
+
const ZoomableGroup = forwardRef(({ center = [0, 0], zoom = 1, minZoom = 1, maxZoom = 8, translateExtent, filterZoomEvent, onMoveStart, onMove, onMoveEnd, className = "", children, ...restProps }, ref) => {
|
|
6
|
+
const { width, height } = useContext(MapContext);
|
|
7
|
+
const { mapRef, transformString, position } = useZoomPan({
|
|
8
|
+
center,
|
|
9
|
+
filterZoomEvent,
|
|
10
|
+
onMoveStart,
|
|
11
|
+
onMove,
|
|
12
|
+
onMoveEnd,
|
|
13
|
+
scaleExtent: [minZoom, maxZoom],
|
|
14
|
+
translateExtent,
|
|
15
|
+
zoom,
|
|
16
|
+
});
|
|
17
|
+
return (React.createElement(ZoomPanProvider, { value: { x: position.x, y: position.y, k: position.k, transformString } },
|
|
18
|
+
React.createElement("g", { ref: mapRef },
|
|
19
|
+
React.createElement("rect", { width: width, height: height, fill: "transparent" }),
|
|
20
|
+
React.createElement("g", { ref: ref, transform: transformString, className: `rsm-zoomable-group ${className}`, ...restProps }, children))));
|
|
21
|
+
});
|
|
22
|
+
ZoomableGroup.displayName = "ZoomableGroup";
|
|
23
|
+
export default ZoomableGroup;
|
|
24
|
+
//# sourceMappingURL=ZoomableGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomableGroup.js","sourceRoot":"","sources":["../../../../src/mapping/src/components/ZoomableGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,UAAU,MAAM,cAAc,CAAC;AAgBtC,MAAM,aAAa,GAAG,UAAU,CAC9B,CACE,EACE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACf,IAAI,GAAG,CAAC,EACR,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,MAAM,EACN,SAAS,EACT,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,SAAS,EACb,EACD,GAAG,EACH,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEjD,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;QACvD,MAAM;QACN,eAAe;QACf,WAAW;QACX,MAAM;QACN,SAAS;QACT,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC/B,eAAe;QACf,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,eAAe,IACd,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,eAAe,EAAE;QAEvE,2BAAG,GAAG,EAAE,MAAM;YACZ,8BAAM,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC,aAAa,GAAG;YACzD,2BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,sBAAsB,SAAS,EAAE,KACxC,SAAS,IAEZ,QAAQ,CACP,CACF,CACY,CACnB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAE5C,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Feature } from "geojson";
|
|
2
|
+
import { Geography, PreparedFeature } from "../utils";
|
|
3
|
+
interface UseGeographiesOptions {
|
|
4
|
+
geography: string | Geography | Feature[];
|
|
5
|
+
parseGeographies?: (features: Feature[]) => Feature[];
|
|
6
|
+
}
|
|
7
|
+
export default function useGeographies({ geography, parseGeographies, }: UseGeographiesOptions): {
|
|
8
|
+
geographies: PreparedFeature[];
|
|
9
|
+
outline: PreparedFeature | undefined;
|
|
10
|
+
borders: PreparedFeature | undefined;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=useGeographies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGeographies.d.ts","sourceRoot":"","sources":["../../../../src/mapping/src/components/useGeographies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAOL,SAAS,EACT,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;IAC1C,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;CACvD;AAOD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAS,EACT,gBAAgB,GACjB,EAAE,qBAAqB,GAAG;IACzB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC;CACtC,CAsCA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useMemo, useState, useEffect, useContext } from "react";
|
|
2
|
+
import { MapContext } from "./MapProvider";
|
|
3
|
+
import { fetchGeographies, getFeatures, getMesh, prepareFeatures, isString, prepareMesh, } from "../utils";
|
|
4
|
+
export default function useGeographies({ geography, parseGeographies, }) {
|
|
5
|
+
const { path } = useContext(MapContext);
|
|
6
|
+
const [output, setOutput] = useState({});
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (typeof window === `undefined`)
|
|
9
|
+
return;
|
|
10
|
+
if (!geography)
|
|
11
|
+
return;
|
|
12
|
+
if (isString(geography)) {
|
|
13
|
+
fetchGeographies(geography).then((geos) => {
|
|
14
|
+
if (geos) {
|
|
15
|
+
setOutput({
|
|
16
|
+
geographies: getFeatures(geos, parseGeographies),
|
|
17
|
+
mesh: getMesh(geos),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const geographyData = geography;
|
|
24
|
+
setOutput({
|
|
25
|
+
geographies: getFeatures(geographyData, parseGeographies),
|
|
26
|
+
mesh: getMesh(geographyData),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}, [geography, parseGeographies]);
|
|
30
|
+
const { geographies, outline, borders } = useMemo(() => {
|
|
31
|
+
const mesh = output.mesh || { outline: undefined, borders: undefined };
|
|
32
|
+
const preparedMesh = prepareMesh(mesh.outline, mesh.borders, path);
|
|
33
|
+
return {
|
|
34
|
+
geographies: prepareFeatures(output.geographies, path),
|
|
35
|
+
outline: preparedMesh.outline,
|
|
36
|
+
borders: preparedMesh.borders,
|
|
37
|
+
};
|
|
38
|
+
}, [output, path]);
|
|
39
|
+
return { geographies, outline, borders };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=useGeographies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGeographies.js","sourceRoot":"","sources":["../../../../src/mapping/src/components/useGeographies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,eAAe,EACf,QAAQ,EACR,WAAW,GAGZ,MAAM,UAAU,CAAC;AAYlB,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAS,EACT,gBAAgB,GACM;IAKtB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxC,IAAI,IAAI,EAAE,CAAC;oBACT,SAAS,CAAC;wBACR,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC;wBAChD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,SAAsB,CAAC;YAC7C,SAAS,CAAC;gBACR,WAAW,EAAE,WAAW,CAAC,aAAa,EAAE,gBAAgB,CAAC;gBACzD,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAElC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACvE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,OAAO;YACL,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;YACtD,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;SAC9B,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
interface Position {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
k: number;
|
|
5
|
+
dragging?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface UseZoomPanOptions {
|
|
8
|
+
center: [number, number];
|
|
9
|
+
filterZoomEvent?: (event: any) => boolean;
|
|
10
|
+
onMoveStart?: (position: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
k: number;
|
|
14
|
+
dragging?: boolean;
|
|
15
|
+
}, event?: any) => void;
|
|
16
|
+
onMoveEnd?: (position: {
|
|
17
|
+
coordinates?: [number, number];
|
|
18
|
+
zoom?: number;
|
|
19
|
+
}, event?: any) => void;
|
|
20
|
+
onMove?: (position: {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
zoom: number;
|
|
24
|
+
dragging?: boolean;
|
|
25
|
+
}, event?: any) => void;
|
|
26
|
+
translateExtent?: [[number, number], [number, number]];
|
|
27
|
+
scaleExtent?: [number, number];
|
|
28
|
+
zoom?: number;
|
|
29
|
+
}
|
|
30
|
+
export default function useZoomPan({ center, filterZoomEvent, onMoveStart, onMoveEnd, onMove, translateExtent, scaleExtent, zoom, }: UseZoomPanOptions): {
|
|
31
|
+
mapRef: React.RefObject<SVGGElement | null>;
|
|
32
|
+
position: Position;
|
|
33
|
+
transformString: string;
|
|
34
|
+
};
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=useZoomPan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useZoomPan.d.ts","sourceRoot":"","sources":["../../../../src/mapping/src/components/useZoomPan.ts"],"names":[],"mappings":"AAWA,UAAU,QAAQ;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvG,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/F,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACrG,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,MAAM,EACN,eAAe,EACf,WAAW,EACX,SAAS,EACT,MAAM,EACN,eAGC,EACD,WAAoB,EACpB,IAAQ,GACT,EAAE,iBAAiB,GAAG;IACrB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC5C,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,CA2IA"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { useEffect, useRef, useState, useContext } from "react";
|
|
2
|
+
import { zoom as d3Zoom, zoomIdentity as d3ZoomIdentity, } from "d3-zoom";
|
|
3
|
+
import { select as d3Select } from "d3-selection";
|
|
4
|
+
import { MapContext } from "./MapProvider";
|
|
5
|
+
import { getCoords } from "../utils";
|
|
6
|
+
export default function useZoomPan({ center, filterZoomEvent, onMoveStart, onMoveEnd, onMove, translateExtent = [
|
|
7
|
+
[-Infinity, -Infinity],
|
|
8
|
+
[Infinity, Infinity],
|
|
9
|
+
], scaleExtent = [1, 8], zoom = 1, }) {
|
|
10
|
+
const { width, height, projection } = useContext(MapContext);
|
|
11
|
+
const [lon, lat] = center;
|
|
12
|
+
const [position, setPosition] = useState({ x: 0, y: 0, k: 1 });
|
|
13
|
+
const lastPosition = useRef({ x: 0, y: 0, k: 1 });
|
|
14
|
+
const mapRef = useRef(null);
|
|
15
|
+
const zoomRef = useRef(undefined);
|
|
16
|
+
const bypassEvents = useRef(false);
|
|
17
|
+
const [a, b] = translateExtent;
|
|
18
|
+
const [a1, a2] = a;
|
|
19
|
+
const [b1, b2] = b;
|
|
20
|
+
const [minZoom, maxZoom] = scaleExtent;
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (!mapRef.current)
|
|
23
|
+
return;
|
|
24
|
+
const svg = d3Select(mapRef.current);
|
|
25
|
+
function handleZoomStart(d3Event) {
|
|
26
|
+
if (!onMoveStart || bypassEvents.current)
|
|
27
|
+
return;
|
|
28
|
+
const inverter = projection.invert;
|
|
29
|
+
if (!inverter)
|
|
30
|
+
return;
|
|
31
|
+
const coords = inverter(getCoords(width, height, d3Event.transform));
|
|
32
|
+
onMoveStart({
|
|
33
|
+
x: coords ? coords[0] : 0,
|
|
34
|
+
y: coords ? coords[1] : 0,
|
|
35
|
+
k: d3Event.transform.k,
|
|
36
|
+
}, d3Event);
|
|
37
|
+
}
|
|
38
|
+
function handleZoom(d3Event) {
|
|
39
|
+
if (bypassEvents.current)
|
|
40
|
+
return;
|
|
41
|
+
const { transform, sourceEvent } = d3Event;
|
|
42
|
+
setPosition({
|
|
43
|
+
x: transform.x,
|
|
44
|
+
y: transform.y,
|
|
45
|
+
k: transform.k,
|
|
46
|
+
dragging: !!sourceEvent,
|
|
47
|
+
});
|
|
48
|
+
if (!onMove)
|
|
49
|
+
return;
|
|
50
|
+
onMove({
|
|
51
|
+
x: transform.x,
|
|
52
|
+
y: transform.y,
|
|
53
|
+
zoom: transform.k,
|
|
54
|
+
dragging: !!sourceEvent,
|
|
55
|
+
}, d3Event);
|
|
56
|
+
}
|
|
57
|
+
function handleZoomEnd(d3Event) {
|
|
58
|
+
if (bypassEvents.current) {
|
|
59
|
+
bypassEvents.current = false;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const inverter = projection.invert;
|
|
63
|
+
if (!inverter)
|
|
64
|
+
return;
|
|
65
|
+
const coords = inverter(getCoords(width, height, d3Event.transform));
|
|
66
|
+
const [x, y] = coords || [0, 0];
|
|
67
|
+
lastPosition.current = { x, y, k: d3Event.transform.k };
|
|
68
|
+
if (!onMoveEnd)
|
|
69
|
+
return;
|
|
70
|
+
onMoveEnd({ coordinates: [x, y], zoom: d3Event.transform.k }, d3Event);
|
|
71
|
+
}
|
|
72
|
+
function filterFunc(d3Event) {
|
|
73
|
+
if (filterZoomEvent) {
|
|
74
|
+
return filterZoomEvent(d3Event);
|
|
75
|
+
}
|
|
76
|
+
return d3Event ? !d3Event.ctrlKey && !d3Event.button : false;
|
|
77
|
+
}
|
|
78
|
+
const zoom = d3Zoom()
|
|
79
|
+
.filter(filterFunc)
|
|
80
|
+
.scaleExtent([minZoom, maxZoom])
|
|
81
|
+
.translateExtent([
|
|
82
|
+
[a1, a2],
|
|
83
|
+
[b1, b2],
|
|
84
|
+
])
|
|
85
|
+
.on("start", handleZoomStart)
|
|
86
|
+
.on("zoom", handleZoom)
|
|
87
|
+
.on("end", handleZoomEnd);
|
|
88
|
+
zoomRef.current = zoom;
|
|
89
|
+
svg.call(zoom);
|
|
90
|
+
}, [
|
|
91
|
+
width,
|
|
92
|
+
height,
|
|
93
|
+
a1,
|
|
94
|
+
a2,
|
|
95
|
+
b1,
|
|
96
|
+
b2,
|
|
97
|
+
minZoom,
|
|
98
|
+
maxZoom,
|
|
99
|
+
projection,
|
|
100
|
+
onMoveStart,
|
|
101
|
+
onMove,
|
|
102
|
+
onMoveEnd,
|
|
103
|
+
filterZoomEvent,
|
|
104
|
+
]);
|
|
105
|
+
useEffect(() => {
|
|
106
|
+
if (lon === lastPosition.current.x &&
|
|
107
|
+
lat === lastPosition.current.y &&
|
|
108
|
+
zoom === lastPosition.current.k)
|
|
109
|
+
return;
|
|
110
|
+
if (!mapRef.current || !zoomRef.current)
|
|
111
|
+
return;
|
|
112
|
+
const coords = projection([lon, lat]);
|
|
113
|
+
if (!coords || coords.length < 2)
|
|
114
|
+
return;
|
|
115
|
+
const x = coords[0] * zoom;
|
|
116
|
+
const y = coords[1] * zoom;
|
|
117
|
+
const svg = d3Select(mapRef.current);
|
|
118
|
+
bypassEvents.current = true;
|
|
119
|
+
svg.call(zoomRef.current.transform, d3ZoomIdentity.translate(width / 2 - x, height / 2 - y).scale(zoom));
|
|
120
|
+
setPosition({ x: width / 2 - x, y: height / 2 - y, k: zoom });
|
|
121
|
+
lastPosition.current = { x: lon, y: lat, k: zoom };
|
|
122
|
+
}, [lon, lat, zoom, width, height, projection]);
|
|
123
|
+
return {
|
|
124
|
+
mapRef,
|
|
125
|
+
position,
|
|
126
|
+
transformString: `translate(${position.x} ${position.y}) scale(${position.k})`,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=useZoomPan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useZoomPan.js","sourceRoot":"","sources":["../../../../src/mapping/src/components/useZoomPan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { default as ComposableMap } from "./components/ComposableMap";
|
|
2
|
+
export { default as Geographies } from "./components/Geographies";
|
|
3
|
+
export { default as Geography } from "./components/Geography";
|
|
4
|
+
export { default as Graticule } from "./components/Graticule";
|
|
5
|
+
export { default as ZoomableGroup } from "./components/ZoomableGroup";
|
|
6
|
+
export { default as Sphere } from "./components/Sphere";
|
|
7
|
+
export { default as Marker } from "./components/Marker";
|
|
8
|
+
export { default as Line } from "./components/Line";
|
|
9
|
+
export { default as Annotation } from "./components/Annotation";
|
|
10
|
+
export { MapProvider, MapContext, useMapContext, } from "./components/MapProvider";
|
|
11
|
+
export { ZoomPanProvider, ZoomPanContext, useZoomPanContext, } from "./components/ZoomPanProvider";
|
|
12
|
+
export { default as useGeographies } from "./components/useGeographies";
|
|
13
|
+
export { default as useZoomPan } from "./components/useZoomPan";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mapping/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { default as ComposableMap } from "./components/ComposableMap";
|
|
2
|
+
export { default as Geographies } from "./components/Geographies";
|
|
3
|
+
export { default as Geography } from "./components/Geography";
|
|
4
|
+
export { default as Graticule } from "./components/Graticule";
|
|
5
|
+
export { default as ZoomableGroup } from "./components/ZoomableGroup";
|
|
6
|
+
export { default as Sphere } from "./components/Sphere";
|
|
7
|
+
export { default as Marker } from "./components/Marker";
|
|
8
|
+
export { default as Line } from "./components/Line";
|
|
9
|
+
export { default as Annotation } from "./components/Annotation";
|
|
10
|
+
export { MapProvider, MapContext, useMapContext, } from "./components/MapProvider";
|
|
11
|
+
export { ZoomPanProvider, ZoomPanContext, useZoomPanContext, } from "./components/ZoomPanProvider";
|
|
12
|
+
export { default as useGeographies } from "./components/useGeographies";
|
|
13
|
+
export { default as useZoomPan } from "./components/useZoomPan";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mapping/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Topology } from "topojson-specification";
|
|
2
|
+
import type { Feature, FeatureCollection } from "geojson";
|
|
3
|
+
export type Point = [number, number] | {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
7
|
+
export interface Transform {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
k: number;
|
|
11
|
+
}
|
|
12
|
+
export interface PreparedFeature extends Omit<Feature, "id" | "properties"> {
|
|
13
|
+
id: string;
|
|
14
|
+
properties: {
|
|
15
|
+
name: string;
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
};
|
|
18
|
+
rsmKey: string;
|
|
19
|
+
svgPath: string;
|
|
20
|
+
}
|
|
21
|
+
export interface PreparedMesh {
|
|
22
|
+
outline?: PreparedFeature;
|
|
23
|
+
borders?: PreparedFeature;
|
|
24
|
+
}
|
|
25
|
+
export type Geography = Topology | FeatureCollection;
|
|
26
|
+
export type PathGenerator = (geo: any) => string | null;
|
|
27
|
+
export declare function getCoords(w: number, h: number, t: Transform): [number, number];
|
|
28
|
+
export declare function fetchGeographies(url: string): Promise<Geography | undefined>;
|
|
29
|
+
export declare function getFeatures(geographies: Geography, parseGeographies?: (features: Feature[]) => Feature[]): Feature[];
|
|
30
|
+
export declare function getMesh(geographies: Geography): {
|
|
31
|
+
outline: any;
|
|
32
|
+
borders: any;
|
|
33
|
+
} | null;
|
|
34
|
+
export declare function prepareMesh(outline: any, borders: any, path: PathGenerator): PreparedMesh;
|
|
35
|
+
export declare function prepareFeatures(geographies: Feature[] | null | undefined, path: PathGenerator): PreparedFeature[];
|
|
36
|
+
export declare function createConnectorPath(dx?: number, dy?: number, curve?: number | [number, number]): string;
|
|
37
|
+
export declare function isString(geo: any): geo is string;
|
|
38
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/mapping/src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAID,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAGD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAGrD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;AAExD,wBAAgB,SAAS,CACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,SAAS,GACX,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAY5E;AAED,wBAAgB,WAAW,CACzB,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,GACpD,OAAO,EAAE,CAiBX;AAED,wBAAgB,OAAO,CACrB,WAAW,EAAE,SAAS,GACrB;IAAE,OAAO,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG,IAAI,CAcvC;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,aAAa,GAClB,YAAY,CAed;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,EACzC,IAAI,EAAE,aAAa,GAClB,eAAe,EAAE,CAenB;AAED,wBAAgB,mBAAmB,CACjC,EAAE,GAAE,MAAW,EACf,EAAE,GAAE,MAAW,EACf,KAAK,GAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAO,GACrC,MAAM,CAKR;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,CAEhD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { feature, mesh } from "topojson-client";
|
|
2
|
+
export function getCoords(w, h, t) {
|
|
3
|
+
const xOffset = (w * t.k - w) / 2;
|
|
4
|
+
const yOffset = (h * t.k - h) / 2;
|
|
5
|
+
return [w / 2 - (xOffset + t.x) / t.k, h / 2 - (yOffset + t.y) / t.k];
|
|
6
|
+
}
|
|
7
|
+
export function fetchGeographies(url) {
|
|
8
|
+
return fetch(url)
|
|
9
|
+
.then((res) => {
|
|
10
|
+
if (!res.ok) {
|
|
11
|
+
throw Error(res.statusText);
|
|
12
|
+
}
|
|
13
|
+
return res.json();
|
|
14
|
+
})
|
|
15
|
+
.catch((error) => {
|
|
16
|
+
console.log("There was a problem when fetching the data: ", error);
|
|
17
|
+
return undefined;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function getFeatures(geographies, parseGeographies) {
|
|
21
|
+
const isTopojson = geographies.type === "Topology";
|
|
22
|
+
if (!isTopojson) {
|
|
23
|
+
const geoCollection = geographies;
|
|
24
|
+
const features = geoCollection.features || geographies;
|
|
25
|
+
return parseGeographies ? parseGeographies(features) : features;
|
|
26
|
+
}
|
|
27
|
+
const topology = geographies;
|
|
28
|
+
const firstObjectKey = Object.keys(topology.objects)[0];
|
|
29
|
+
const feats = feature(topology, topology.objects[firstObjectKey]).features;
|
|
30
|
+
return parseGeographies ? parseGeographies(feats) : feats;
|
|
31
|
+
}
|
|
32
|
+
export function getMesh(geographies) {
|
|
33
|
+
const isTopojson = geographies.type === "Topology";
|
|
34
|
+
if (!isTopojson)
|
|
35
|
+
return null;
|
|
36
|
+
const topology = geographies;
|
|
37
|
+
const firstObjectKey = Object.keys(topology.objects)[0];
|
|
38
|
+
const geometryCollection = topology.objects[firstObjectKey];
|
|
39
|
+
const outline = mesh(topology, geometryCollection, (a, b) => a === b);
|
|
40
|
+
const borders = mesh(topology, geometryCollection, (a, b) => a !== b);
|
|
41
|
+
return { outline, borders };
|
|
42
|
+
}
|
|
43
|
+
export function prepareMesh(outline, borders, path) {
|
|
44
|
+
return outline && borders
|
|
45
|
+
? {
|
|
46
|
+
outline: {
|
|
47
|
+
...outline,
|
|
48
|
+
rsmKey: "outline",
|
|
49
|
+
svgPath: path(outline) || "",
|
|
50
|
+
},
|
|
51
|
+
borders: {
|
|
52
|
+
...borders,
|
|
53
|
+
rsmKey: "borders",
|
|
54
|
+
svgPath: path(borders) || "",
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
: {};
|
|
58
|
+
}
|
|
59
|
+
export function prepareFeatures(geographies, path) {
|
|
60
|
+
return geographies
|
|
61
|
+
? geographies.map((d, i) => {
|
|
62
|
+
return {
|
|
63
|
+
...d,
|
|
64
|
+
id: d.id !== undefined ? String(d.id) : `geo-${i}`,
|
|
65
|
+
properties: {
|
|
66
|
+
name: d.properties?.name || "",
|
|
67
|
+
...(d.properties || {}),
|
|
68
|
+
},
|
|
69
|
+
rsmKey: `geo-${i}`,
|
|
70
|
+
svgPath: path(d) || "",
|
|
71
|
+
};
|
|
72
|
+
})
|
|
73
|
+
: [];
|
|
74
|
+
}
|
|
75
|
+
export function createConnectorPath(dx = 30, dy = 30, curve = 0.5) {
|
|
76
|
+
const curvature = Array.isArray(curve) ? curve : [curve, curve];
|
|
77
|
+
const curveX = (dx / 2) * curvature[0];
|
|
78
|
+
const curveY = (dy / 2) * curvature[1];
|
|
79
|
+
return `M${0},${0} Q${-dx / 2 - curveX},${-dy / 2 + curveY} ${-dx},${-dy}`;
|
|
80
|
+
}
|
|
81
|
+
export function isString(geo) {
|
|
82
|
+
return typeof geo === "string";
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mapping/src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { default as ComposableMap } from "./src/components/ComposableMap";
|
|
2
|
+
export { default as Geographies } from "./src/components/Geographies";
|
|
3
|
+
export { default as Geography } from "./src/components/Geography";
|
|
4
|
+
export { default as Graticule } from "./src/components/Graticule";
|
|
5
|
+
export { default as ZoomableGroup } from "./src/components/ZoomableGroup";
|
|
6
|
+
export { default as Sphere } from "./src/components/Sphere";
|
|
7
|
+
export { default as Marker } from "./src/components/Marker";
|
|
8
|
+
export { default as Line } from "./src/components/Line";
|
|
9
|
+
export { default as Annotation } from "./src/components/Annotation";
|
|
10
|
+
export { default as useGeographies } from "./src/components/useGeographies";
|
|
11
|
+
export { default as useZoomPan } from "./src/components/useZoomPan";
|
|
12
|
+
export { MapProvider, MapContext, useMapContext } from "./src/components/MapProvider";
|
|
13
|
+
export { ZoomPanProvider, ZoomPanContext, useZoomPanContext } from "./src/components/ZoomPanProvider";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-simple-maps/index.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Main export file for react-simple-maps integration
|
|
2
|
+
// This re-exports all components, hooks, and providers from the source
|
|
3
|
+
export { default as ComposableMap } from "./src/components/ComposableMap";
|
|
4
|
+
export { default as Geographies } from "./src/components/Geographies";
|
|
5
|
+
export { default as Geography } from "./src/components/Geography";
|
|
6
|
+
export { default as Graticule } from "./src/components/Graticule";
|
|
7
|
+
export { default as ZoomableGroup } from "./src/components/ZoomableGroup";
|
|
8
|
+
export { default as Sphere } from "./src/components/Sphere";
|
|
9
|
+
export { default as Marker } from "./src/components/Marker";
|
|
10
|
+
export { default as Line } from "./src/components/Line";
|
|
11
|
+
export { default as Annotation } from "./src/components/Annotation";
|
|
12
|
+
export { MapProvider, MapContext, useMapContext, } from "./src/components/MapProvider";
|
|
13
|
+
export { ZoomPanProvider, ZoomPanContext, useZoomPanContext, } from "./src/components/ZoomPanProvider";
|
|
14
|
+
export { default as useGeographies } from "./src/components/useGeographies";
|
|
15
|
+
export { default as useZoomPan } from "./src/components/useZoomPan";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react-simple-maps/index.js"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,uEAAuE;AACvE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,6BAA6B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Annotation.d.ts","sourceRoot":"","sources":["../../../../src/react-simple-maps/src/components/Annotation.js"],"names":[],"mappings":";AAMA,8BAmCC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React, { useContext, forwardRef } from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { MapContext } from "./MapProvider";
|
|
4
|
+
import { createConnectorPath } from "../utils";
|
|
5
|
+
const Annotation = forwardRef(({ subject, children, connectorProps, dx = 30, dy = 30, curve = 0, className = "", ...restProps }, ref) => {
|
|
6
|
+
const { projection } = useContext(MapContext);
|
|
7
|
+
const [x, y] = projection(subject);
|
|
8
|
+
const connectorPath = createConnectorPath(dx, dy, curve);
|
|
9
|
+
return (React.createElement("g", { ref: ref, transform: `translate(${x + dx}, ${y + dy})`, className: `rsm-annotation ${className}`, ...restProps },
|
|
10
|
+
React.createElement("path", { d: connectorPath, fill: "transparent", stroke: "#000", ...connectorProps }),
|
|
11
|
+
children));
|
|
12
|
+
});
|
|
13
|
+
Annotation.displayName = "Annotation";
|
|
14
|
+
Annotation.propTypes = {
|
|
15
|
+
subject: PropTypes.array,
|
|
16
|
+
children: PropTypes.oneOfType([
|
|
17
|
+
PropTypes.node,
|
|
18
|
+
PropTypes.arrayOf(PropTypes.node),
|
|
19
|
+
]),
|
|
20
|
+
dx: PropTypes.number,
|
|
21
|
+
dy: PropTypes.number,
|
|
22
|
+
curve: PropTypes.number,
|
|
23
|
+
connectorProps: PropTypes.object,
|
|
24
|
+
className: PropTypes.string,
|
|
25
|
+
};
|
|
26
|
+
export default Annotation;
|
|
27
|
+
//# sourceMappingURL=Annotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Annotation.js","sourceRoot":"","sources":["../../../../src/react-simple-maps/src/components/Annotation.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACrD,OAAO,SAAS,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,MAAM,UAAU,GAAG,UAAU,CAC3B,CACE,EACE,OAAO,EACP,QAAQ,EACR,cAAc,EACd,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE,EACP,KAAK,GAAG,CAAC,EACT,SAAS,GAAG,EAAE,EACd,GAAG,SAAS,EACb,EACD,GAAG,EACH,EAAE;IACF,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAC7C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;IAExD,OAAO,CACL,2BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAC5C,SAAS,EAAE,kBAAkB,SAAS,EAAE,KACpC,SAAS;QAEb,8BACE,CAAC,EAAE,aAAa,EAChB,IAAI,EAAC,aAAa,EAClB,MAAM,EAAC,MAAM,KACT,cAAc,GAClB;QACD,QAAQ,CACP,CACL,CAAA;AACH,CAAC,CACF,CAAA;AAED,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,UAAU,CAAC,SAAS,GAAG;IACrB,OAAO,EAAE,SAAS,CAAC,KAAK;IACxB,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC;QAC5B,SAAS,CAAC,IAAI;QACd,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;KAClC,CAAC;IACF,EAAE,EAAE,SAAS,CAAC,MAAM;IACpB,EAAE,EAAE,SAAS,CAAC,MAAM;IACpB,KAAK,EAAE,SAAS,CAAC,MAAM;IACvB,cAAc,EAAE,SAAS,CAAC,MAAM;IAChC,SAAS,EAAE,SAAS,CAAC,MAAM;CAC5B,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComposableMap.d.ts","sourceRoot":"","sources":["../../../../src/react-simple-maps/src/components/ComposableMap.js"],"names":[],"mappings":";AAKA,iCA4BC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { MapProvider } from "./MapProvider";
|
|
4
|
+
const ComposableMap = forwardRef(({ width = 800, height = 600, projection = "geoEqualEarth", projectionConfig = {}, className = "", ...restProps }, ref) => {
|
|
5
|
+
return (React.createElement(MapProvider, { width: width, height: height, projection: projection, projectionConfig: projectionConfig },
|
|
6
|
+
React.createElement("svg", { ref: ref, viewBox: `0 0 ${width} ${height}`, className: `rsm-svg ${className}`, ...restProps })));
|
|
7
|
+
});
|
|
8
|
+
ComposableMap.displayName = "ComposableMap";
|
|
9
|
+
ComposableMap.propTypes = {
|
|
10
|
+
width: PropTypes.number,
|
|
11
|
+
height: PropTypes.number,
|
|
12
|
+
projection: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),
|
|
13
|
+
projectionConfig: PropTypes.object,
|
|
14
|
+
className: PropTypes.string,
|
|
15
|
+
};
|
|
16
|
+
export default ComposableMap;
|
|
17
|
+
//# sourceMappingURL=ComposableMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComposableMap.js","sourceRoot":"","sources":["../../../../src/react-simple-maps/src/components/ComposableMap.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,SAAS,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,aAAa,GAAG,UAAU,CAC9B,CACE,EACE,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,GAAG,EACZ,UAAU,GAAG,eAAe,EAC5B,gBAAgB,GAAG,EAAE,EACrB,SAAS,GAAG,EAAE,EACd,GAAG,SAAS,EACb,EACD,GAAG,EACH,EAAE;IACF,OAAO,CACL,oBAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB;QAElC,6BACE,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,KAAK,IAAI,MAAM,EAAE,EACjC,SAAS,EAAE,WAAW,SAAS,EAAE,KAC7B,SAAS,GACb,CACU,CACf,CAAA;AACH,CAAC,CACF,CAAA;AAED,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAE3C,aAAa,CAAC,SAAS,GAAG;IACxB,KAAK,EAAE,SAAS,CAAC,MAAM;IACvB,MAAM,EAAE,SAAS,CAAC,MAAM;IACxB,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACnE,gBAAgB,EAAE,SAAS,CAAC,MAAM;IAClC,SAAS,EAAE,SAAS,CAAC,MAAM;CAC5B,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Geographies.d.ts","sourceRoot":"","sources":["../../../../src/react-simple-maps/src/components/Geographies.js"],"names":[],"mappings":";AAMA,+BAmBC"}
|