react-three-map 0.8.0 → 0.8.1
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/CHANGELOG.md +7 -0
- package/README.md +18 -3
- package/dist/cjs/main.js +35 -18
- package/dist/es/main.mjs +5 -3
- package/dist/es/main.mjs.map +1 -1
- package/dist/es/main10.mjs +8 -33
- package/dist/es/main10.mjs.map +1 -1
- package/dist/es/main11.mjs +33 -11
- package/dist/es/main11.mjs.map +1 -1
- package/dist/es/main12.mjs +11 -22
- package/dist/es/main12.mjs.map +1 -1
- package/dist/es/main13.mjs +17 -24
- package/dist/es/main13.mjs.map +1 -1
- package/dist/es/main14.mjs +2 -23
- package/dist/es/main14.mjs.map +1 -1
- package/dist/es/main15.mjs +28 -93
- package/dist/es/main15.mjs.map +1 -1
- package/dist/es/main16.mjs +21 -61
- package/dist/es/main16.mjs.map +1 -1
- package/dist/es/main17.mjs +94 -19
- package/dist/es/main17.mjs.map +1 -1
- package/dist/es/main18.mjs +62 -23
- package/dist/es/main18.mjs.map +1 -1
- package/dist/es/main19.mjs +17 -13
- package/dist/es/main19.mjs.map +1 -1
- package/dist/es/main20.mjs +23 -68
- package/dist/es/main20.mjs.map +1 -1
- package/dist/es/main21.mjs +19 -0
- package/dist/es/main21.mjs.map +1 -0
- package/dist/es/main22.mjs +83 -0
- package/dist/es/main22.mjs.map +1 -0
- package/dist/es/main3.mjs +3 -3
- package/dist/es/main3.mjs.map +1 -1
- package/dist/es/main4.mjs +3 -3
- package/dist/es/main5.mjs +12 -19
- package/dist/es/main5.mjs.map +1 -1
- package/dist/es/main6.mjs +19 -15
- package/dist/es/main6.mjs.map +1 -1
- package/dist/es/main7.mjs +10 -22
- package/dist/es/main7.mjs.map +1 -1
- package/dist/es/main8.mjs +22 -26
- package/dist/es/main8.mjs.map +1 -1
- package/dist/es/main9.mjs +26 -8
- package/dist/es/main9.mjs.map +1 -1
- package/dist/maplibre/cjs/main.js +35 -18
- package/dist/maplibre/es/main.mjs +5 -3
- package/dist/maplibre/es/main.mjs.map +1 -1
- package/dist/maplibre/es/main10.mjs +8 -33
- package/dist/maplibre/es/main10.mjs.map +1 -1
- package/dist/maplibre/es/main11.mjs +33 -11
- package/dist/maplibre/es/main11.mjs.map +1 -1
- package/dist/maplibre/es/main12.mjs +11 -22
- package/dist/maplibre/es/main12.mjs.map +1 -1
- package/dist/maplibre/es/main13.mjs +17 -24
- package/dist/maplibre/es/main13.mjs.map +1 -1
- package/dist/maplibre/es/main14.mjs +2 -23
- package/dist/maplibre/es/main14.mjs.map +1 -1
- package/dist/maplibre/es/main15.mjs +28 -93
- package/dist/maplibre/es/main15.mjs.map +1 -1
- package/dist/maplibre/es/main16.mjs +21 -61
- package/dist/maplibre/es/main16.mjs.map +1 -1
- package/dist/maplibre/es/main17.mjs +94 -19
- package/dist/maplibre/es/main17.mjs.map +1 -1
- package/dist/maplibre/es/main18.mjs +62 -23
- package/dist/maplibre/es/main18.mjs.map +1 -1
- package/dist/maplibre/es/main19.mjs +17 -13
- package/dist/maplibre/es/main19.mjs.map +1 -1
- package/dist/maplibre/es/main20.mjs +23 -68
- package/dist/maplibre/es/main20.mjs.map +1 -1
- package/dist/maplibre/es/main21.mjs +19 -0
- package/dist/maplibre/es/main21.mjs.map +1 -0
- package/dist/maplibre/es/main22.mjs +83 -0
- package/dist/maplibre/es/main22.mjs.map +1 -0
- package/dist/maplibre/es/main3.mjs +3 -3
- package/dist/maplibre/es/main3.mjs.map +1 -1
- package/dist/maplibre/es/main4.mjs +3 -3
- package/dist/maplibre/es/main5.mjs +12 -19
- package/dist/maplibre/es/main5.mjs.map +1 -1
- package/dist/maplibre/es/main6.mjs +19 -15
- package/dist/maplibre/es/main6.mjs.map +1 -1
- package/dist/maplibre/es/main7.mjs +10 -22
- package/dist/maplibre/es/main7.mjs.map +1 -1
- package/dist/maplibre/es/main8.mjs +22 -26
- package/dist/maplibre/es/main8.mjs.map +1 -1
- package/dist/maplibre/es/main9.mjs +26 -8
- package/dist/maplibre/es/main9.mjs.map +1 -1
- package/dist/maplibre/types/api/coords-to-vector-3.d.ts +2 -3
- package/dist/maplibre/types/api/index.d.ts +2 -1
- package/dist/maplibre/types/api/vector-3-to-coords.d.ts +3 -0
- package/dist/maplibre/types/core/canvas-overlay/sync-camera-fc.d.ts +2 -1
- package/dist/maplibre/types/core/earth-radius.d.ts +1 -0
- package/dist/types/api/coords-to-vector-3.d.ts +2 -3
- package/dist/types/api/index.d.ts +2 -1
- package/dist/types/api/vector-3-to-coords.d.ts +3 -0
- package/dist/types/core/canvas-overlay/sync-camera-fc.d.ts +2 -1
- package/dist/types/core/earth-radius.d.ts +1 -0
- package/package.json +6 -9
- package/stories/package.json +4 -4
- package/stories/yarn.lock +1931 -1085
- package/vitest.config.ts +1 -5
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
el2.style.bottom = "0";
|
|
12
|
-
el2.style.left = "0";
|
|
13
|
-
el2.style.right = "0";
|
|
14
|
-
el2.style.pointerEvents = "none";
|
|
15
|
-
return el2;
|
|
1
|
+
import { useCoordsToMatrix } from "./main12.mjs";
|
|
2
|
+
import { useRender } from "./main16.mjs";
|
|
3
|
+
import { useRoot } from "./main17.mjs";
|
|
4
|
+
function useCanvasInLayer(props, fromLngLat, map) {
|
|
5
|
+
const { latitude, longitude, altitude, frameloop } = props;
|
|
6
|
+
const origin = useCoordsToMatrix({
|
|
7
|
+
latitude,
|
|
8
|
+
longitude,
|
|
9
|
+
altitude,
|
|
10
|
+
fromLngLat
|
|
16
11
|
});
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
12
|
+
const { onRemove, useThree, r3m } = useRoot(fromLngLat, map, props);
|
|
13
|
+
const render = useRender({ origin, frameloop, useThree, map, r3m });
|
|
14
|
+
return {
|
|
15
|
+
id: props.id,
|
|
16
|
+
beforeId: props.beforeId,
|
|
17
|
+
onRemove,
|
|
18
|
+
render,
|
|
19
|
+
type: "custom",
|
|
20
|
+
renderingMode: "3d"
|
|
21
|
+
};
|
|
22
|
+
}
|
|
27
23
|
export {
|
|
28
|
-
|
|
24
|
+
useCanvasInLayer
|
|
29
25
|
};
|
|
30
26
|
//# sourceMappingURL=main8.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main8.mjs","sources":["../../../src/core/canvas-
|
|
1
|
+
{"version":3,"file":"main8.mjs","sources":["../../../src/core/canvas-in-layer/use-canvas-in-layer.tsx"],"sourcesContent":["import { CanvasProps } from \"../../api/canvas-props\";\nimport { FromLngLat, MapInstance } from \"../generic-map\";\nimport { useCoordsToMatrix } from \"../use-coords-to-matrix\";\nimport { useRender } from \"./use-render\";\nimport { useRoot } from \"./use-root\";\n\n/** get all the properties that you need to render as a map `<Layer>` */\nexport function useCanvasInLayer(props: CanvasProps,fromLngLat: FromLngLat, map: MapInstance) {\n\n const {latitude, longitude, altitude, frameloop } = props;\n\n const origin = useCoordsToMatrix({\n latitude, longitude, altitude, fromLngLat,\n });\n\n const { onRemove, useThree, r3m } = useRoot(fromLngLat, map, props);\n \n const render = useRender({origin, frameloop, useThree, map, r3m});\n \n return {\n id: props.id,\n beforeId: props.beforeId,\n onRemove,\n render,\n type: 'custom',\n renderingMode: '3d'\n } as const\n\n}"],"names":[],"mappings":";;;AAOgB,SAAA,iBAAiB,OAAmB,YAAwB,KAAkB;AAE5F,QAAM,EAAC,UAAU,WAAW,UAAU,cAAc;AAElD,QAAM,SAAS,kBAAkB;AAAA,IAC/B;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,EAAA,CAChC;AAEK,QAAA,EAAE,UAAU,UAAU,IAAA,IAAQ,QAAQ,YAAY,KAAK,KAAK;AAE5D,QAAA,SAAS,UAAU,EAAC,QAAQ,WAAW,UAAU,KAAK,KAAI;AAEzD,SAAA;AAAA,IACL,IAAI,MAAM;AAAA,IACV,UAAU,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,eAAe;AAAA,EAAA;AAGrB;"}
|
|
@@ -1,12 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useState, useEffect } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { CanvasPortal } from "./main18.mjs";
|
|
5
|
+
const InitCanvasFC = memo((props) => {
|
|
6
|
+
const canvas = props.map.getCanvas();
|
|
7
|
+
const [el] = useState(() => {
|
|
8
|
+
const el2 = document.createElement("div");
|
|
9
|
+
el2.style.position = "absolute";
|
|
10
|
+
el2.style.top = "0";
|
|
11
|
+
el2.style.bottom = "0";
|
|
12
|
+
el2.style.left = "0";
|
|
13
|
+
el2.style.right = "0";
|
|
14
|
+
el2.style.pointerEvents = "none";
|
|
15
|
+
return el2;
|
|
16
|
+
});
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const parent = canvas.parentElement;
|
|
19
|
+
parent.appendChild(el);
|
|
20
|
+
return () => {
|
|
21
|
+
parent.removeChild(el);
|
|
22
|
+
};
|
|
7
23
|
}, []);
|
|
8
|
-
};
|
|
24
|
+
return /* @__PURE__ */ jsx(Fragment, { children: createPortal(/* @__PURE__ */ jsx(CanvasPortal, { ...props }), el) });
|
|
25
|
+
});
|
|
26
|
+
InitCanvasFC.displayName = "InitCanvasFC";
|
|
9
27
|
export {
|
|
10
|
-
|
|
28
|
+
InitCanvasFC
|
|
11
29
|
};
|
|
12
30
|
//# sourceMappingURL=main9.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main9.mjs","sources":["../../../src/core/
|
|
1
|
+
{"version":3,"file":"main9.mjs","sources":["../../../src/core/canvas-overlay/init-canvas-fc.tsx"],"sourcesContent":["import { memo, useEffect, useState } from \"react\";\nimport { createPortal } from 'react-dom';\nimport { Matrix4Tuple } from \"three\";\nimport { CanvasProps } from \"../../api/canvas-props\";\nimport { FromLngLat, MapInstance } from \"../generic-map\";\nimport { CanvasPortal } from \"./canvas-portal\";\n\ninterface InitCanvasFCProps extends CanvasProps {\n map: MapInstance,\n setOnRender: (callback: () => (mx: Matrix4Tuple) => void) => void,\n frameloop?: 'always' | 'demand',\n fromLngLat: FromLngLat,\n}\nexport const InitCanvasFC = memo<InitCanvasFCProps>((props) => {\n const canvas = props.map.getCanvas() // eslint-disable-line @typescript-eslint/no-non-null-assertion\n\n const [el] = useState(() => {\n const el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0';\n el.style.bottom = '0';\n el.style.left = '0';\n el.style.right = '0';\n el.style.pointerEvents = 'none';\n return el\n })\n\n useEffect(() => {\n const parent = canvas.parentElement!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\n parent.appendChild(el);\n return () => {\n parent.removeChild(el);\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n return <>\n {createPortal((\n <CanvasPortal {...props} />\n ), el)}\n </>\n})\nInitCanvasFC.displayName = 'InitCanvasFC';\n"],"names":["el"],"mappings":";;;;AAaa,MAAA,eAAe,KAAwB,CAAC,UAAU;AACvD,QAAA,SAAS,MAAM,IAAI,UAAU;AAEnC,QAAM,CAAC,EAAE,IAAI,SAAS,MAAM;AACpBA,UAAAA,MAAK,SAAS,cAAc,KAAK;AACvCA,QAAG,MAAM,WAAW;AACpBA,QAAG,MAAM,MAAM;AACfA,QAAG,MAAM,SAAS;AAClBA,QAAG,MAAM,OAAO;AAChBA,QAAG,MAAM,QAAQ;AACjBA,QAAG,MAAM,gBAAgB;AAClBA,WAAAA;AAAAA,EAAA,CACR;AAED,YAAU,MAAM;AACd,UAAM,SAAS,OAAO;AACtB,WAAO,YAAY,EAAE;AACrB,WAAO,MAAM;AACX,aAAO,YAAY,EAAE;AAAA,IAAA;AAAA,EAEzB,GAAG,CAAE,CAAA;AACE,SAAA,oBAAA,UAAA,EACJ,uBACE,oBAAA,cAAA,EAAc,GAAG,MAAO,CAAA,GACxB,EAAE,EACP,CAAA;AACF,CAAC;AACD,aAAa,cAAc;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Vector3Tuple } from
|
|
2
|
-
import { Coords } from
|
|
3
|
-
/** converts geo coordinates `point` to a `Vector3Tuple` (represented in meters) using `origin` as the origin. */
|
|
1
|
+
import { Vector3Tuple } from 'three';
|
|
2
|
+
import { Coords } from './coords';
|
|
4
3
|
export declare function coordsToVector3(point: Coords, origin: Coords): Vector3Tuple;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Matrix4Tuple } from "three";
|
|
3
3
|
import { Coords } from "../../api/coords";
|
|
4
|
+
import { MapInstance } from "../generic-map";
|
|
4
5
|
interface SyncCameraFCProps extends Coords {
|
|
5
6
|
setOnRender?: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
6
7
|
/** on `useFrame` it will manually render (used by `<Coordinates>`) */
|
|
7
8
|
manualRender?: boolean;
|
|
8
9
|
onReady?: () => void;
|
|
9
|
-
|
|
10
|
+
map: MapInstance;
|
|
10
11
|
}
|
|
11
12
|
/** React Component (FC) to sync the Three camera with the map provider */
|
|
12
13
|
export declare const SyncCameraFC: import("react").NamedExoticComponent<SyncCameraFCProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const earthRadius = 6378137;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Vector3Tuple } from
|
|
2
|
-
import { Coords } from
|
|
3
|
-
/** converts geo coordinates `point` to a `Vector3Tuple` (represented in meters) using `origin` as the origin. */
|
|
1
|
+
import { Vector3Tuple } from 'three';
|
|
2
|
+
import { Coords } from './coords';
|
|
4
3
|
export declare function coordsToVector3(point: Coords, origin: Coords): Vector3Tuple;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Matrix4Tuple } from "three";
|
|
3
3
|
import { Coords } from "../../api/coords";
|
|
4
|
+
import { MapInstance } from "../generic-map";
|
|
4
5
|
interface SyncCameraFCProps extends Coords {
|
|
5
6
|
setOnRender?: (callback: () => (mx: Matrix4Tuple) => void) => void;
|
|
6
7
|
/** on `useFrame` it will manually render (used by `<Coordinates>`) */
|
|
7
8
|
manualRender?: boolean;
|
|
8
9
|
onReady?: () => void;
|
|
9
|
-
|
|
10
|
+
map: MapInstance;
|
|
10
11
|
}
|
|
11
12
|
/** React Component (FC) to sync the Three camera with the map provider */
|
|
12
13
|
export declare const SyncCameraFC: import("react").NamedExoticComponent<SyncCameraFCProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const earthRadius = 6378137;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-three-map",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Use react-three-fiber inside MapLibre and Mapbox",
|
|
5
5
|
"main": "dist/cjs/main.js",
|
|
6
6
|
"module": "dist/es/main.mjs",
|
|
@@ -29,13 +29,11 @@
|
|
|
29
29
|
"build:stories": "yarn ladle build",
|
|
30
30
|
"test": "yarn vitest"
|
|
31
31
|
},
|
|
32
|
-
"dependencies": {
|
|
33
|
-
"@turf/turf": "^7.0.0-alpha.2"
|
|
34
|
-
},
|
|
32
|
+
"dependencies": {},
|
|
35
33
|
"devDependencies": {
|
|
36
34
|
"@changesets/cli": "^2.26.1",
|
|
37
|
-
"@ladle/react": "^
|
|
38
|
-
"@react-three/drei": "^9.
|
|
35
|
+
"@ladle/react": "^4.0.2",
|
|
36
|
+
"@react-three/drei": "^9.97.6",
|
|
39
37
|
"@react-three/fiber": "^8.15.12",
|
|
40
38
|
"@react-three/postprocessing": "^2.15.11",
|
|
41
39
|
"@types/luxon": "^3.3.1",
|
|
@@ -48,7 +46,6 @@
|
|
|
48
46
|
"@typescript-eslint/eslint-plugin": "^5.59.11",
|
|
49
47
|
"@typescript-eslint/parser": "^5.59.11",
|
|
50
48
|
"@vitejs/plugin-react": "^4.0.0",
|
|
51
|
-
"@vitest/coverage-v8": "^0.33.0",
|
|
52
49
|
"cross-env": "^7.0.3",
|
|
53
50
|
"eslint": "^8.38.0",
|
|
54
51
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
@@ -56,11 +53,11 @@
|
|
|
56
53
|
"happy-dom": "^10.5.2",
|
|
57
54
|
"leva": "^0.9.35",
|
|
58
55
|
"luxon": "^3.3.0",
|
|
59
|
-
"mapbox-gl": "^
|
|
56
|
+
"mapbox-gl": "^3.1.2",
|
|
60
57
|
"maplibre-gl": "^3.2.0",
|
|
61
58
|
"react": "^18.2.0",
|
|
62
59
|
"react-dom": "^18.2.0",
|
|
63
|
-
"react-map-gl": "^7.1.
|
|
60
|
+
"react-map-gl": "^7.1.7",
|
|
64
61
|
"suncalc": "^1.9.0",
|
|
65
62
|
"suspend-react": "^0.1.3",
|
|
66
63
|
"three": "^0.159.0",
|
package/stories/package.json
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"dev": "yarn ladle serve"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@ladle/react": "^
|
|
10
|
-
"@react-three/drei": "^9.
|
|
9
|
+
"@ladle/react": "^4.0.2",
|
|
10
|
+
"@react-three/drei": "^9.97.6",
|
|
11
11
|
"@react-three/fiber": "^8.15.12",
|
|
12
12
|
"@react-three/postprocessing": "^2.15.11",
|
|
13
13
|
"@types/luxon": "^3.3.7",
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"@types/tz-lookup": "^6.1.2",
|
|
16
16
|
"leva": "^0.9.35",
|
|
17
17
|
"luxon": "^3.4.4",
|
|
18
|
-
"mapbox-gl": "^
|
|
18
|
+
"mapbox-gl": "^3.1.2",
|
|
19
19
|
"maplibre-gl": "^3.2.0",
|
|
20
20
|
"react": "^18.2.0",
|
|
21
21
|
"react-dom": "^18.2.0",
|
|
22
|
-
"react-map-gl": "^7.1.
|
|
22
|
+
"react-map-gl": "^7.1.7",
|
|
23
23
|
"react-three-map": "^0.6.1",
|
|
24
24
|
"suncalc": "^1.9.0",
|
|
25
25
|
"three": "^0.159.0",
|