@reearth/core 0.0.7-alpha.49 → 0.0.7-alpha.50
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/core.js +24053 -22620
- package/dist/core.umd.cjs +164 -161
- package/dist/index.d.ts +10 -10
- package/package.json +41 -45
- package/src/Map/ClusteredLayers/index.tsx +1 -1
- package/src/Map/Layer/hooks.ts +2 -2
- package/src/Map/Layer/index.tsx +1 -1
- package/src/Map/Layers/hooks.ts +2 -2
- package/src/Map/Layers/index.tsx +1 -1
- package/src/Map/Sketch/hooks.ts +4 -4
- package/src/Map/Sketch/index.tsx +2 -2
- package/src/Map/Sketch/usePluginSketchLayer.ts +1 -1
- package/src/Map/Sketch/useSketch.ts +1 -1
- package/src/Map/Sketch/useSketchFeature.ts +1 -1
- package/src/Map/SpatialId/hooks.ts +2 -2
- package/src/Map/SpatialId/index.tsx +2 -2
- package/src/Map/index.tsx +1 -1
- package/src/Map/ref.ts +5 -5
- package/src/Map/types/index.ts +2 -2
- package/src/Map/useTimelineManager.ts +1 -1
- package/src/Map/utils.ts +1 -1
- package/src/Visualizer/context.tsx +5 -5
- package/src/Visualizer/hooks.ts +8 -8
- package/src/Visualizer/useViewport.ts +1 -1
- package/src/engines/Cesium/Feature/Box/hooks/box.ts +4 -4
- package/src/engines/Cesium/Feature/HeatMap/HeatmapMesh.tsx +1 -1
- package/src/engines/Cesium/Feature/PhotoOverlay/hooks.ts +1 -1
- package/src/engines/Cesium/Feature/PhotoOverlay/index.tsx +3 -1
- package/src/engines/Cesium/Feature/Tileset/hooks.ts +2 -2
- package/src/engines/Cesium/Feature/Tileset/index.tsx +1 -1
- package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +2 -2
- package/src/engines/Cesium/Feature/index.tsx +1 -1
- package/src/engines/Cesium/core/Clock.tsx +1 -1
- package/src/engines/Cesium/core/Globe/index.tsx +1 -1
- package/src/engines/Cesium/core/Globe/useTerrainProviderPromise.ts +1 -1
- package/src/engines/Cesium/core/Indicator/Indicator.tsx +1 -1
- package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +1 -1
- package/src/engines/Cesium/hooks/useCamera.ts +1 -1
- package/src/engines/Cesium/hooks/useCameraLimiter.ts +1 -1
- package/src/engines/Cesium/hooks/useEngineRef.ts +2 -2
- package/src/engines/Cesium/hooks/useExplicitRender.ts +2 -2
- package/src/engines/Cesium/hooks/useInstance.ts +1 -1
- package/src/engines/Cesium/hooks/useLayerDragDrop.ts +2 -2
- package/src/engines/Cesium/hooks/useLayerSelectWithRect.ts +1 -1
- package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +2 -2
- package/src/engines/Cesium/hooks/useViewerProperty.ts +1 -1
- package/src/engines/Cesium/hooks.ts +7 -6
- package/src/mantle/atoms/compute.ts +3 -2
- package/src/mantle/data/shapefile/parseZip.ts +1 -0
- package/src/mantle/types/appearance.ts +8 -8
- package/src/test/utils.tsx +1 -1
- package/src/utils/image.ts +1 -1
- package/src/utils/use-delayed-count.ts +1 -1
- package/src/utils/use-dnd/drop.ts +1 -1
- package/src/utils/util.ts +1 -1
|
@@ -369,7 +369,7 @@ const useFeature = ({
|
|
|
369
369
|
|
|
370
370
|
// If styles are updated while features are calculating,
|
|
371
371
|
// we stop calculating features, and reassign styles.
|
|
372
|
-
const skippedComputingAt = useRef<number | null>();
|
|
372
|
+
const skippedComputingAt = useRef<number | null>(undefined);
|
|
373
373
|
useEffect(() => {
|
|
374
374
|
skippedComputingAt.current = Date.now();
|
|
375
375
|
}, [pickedAppearance, updateStyle]);
|
|
@@ -456,7 +456,7 @@ export const useHooks = ({
|
|
|
456
456
|
onLayerFetch?: (value: Partial<Pick<LayerSimple, "properties">>) => void;
|
|
457
457
|
}) => {
|
|
458
458
|
const { viewer } = useCesium();
|
|
459
|
-
const tilesetRef = useRef<Cesium3DTilesetType>();
|
|
459
|
+
const tilesetRef = useRef<Cesium3DTilesetType>(undefined);
|
|
460
460
|
const { onLayerLoad, updateCredits } = useContext();
|
|
461
461
|
const layerIdRef = useRef(layer?.id);
|
|
462
462
|
layerIdRef.current = layer?.id;
|
|
@@ -105,7 +105,7 @@ export const useClippingBox = ({
|
|
|
105
105
|
|
|
106
106
|
const isBoxClicked = useRef(false);
|
|
107
107
|
const isTopBottomSidePlaneClicked = useRef(false);
|
|
108
|
-
const currentCameraPosition = useRef<Camera | undefined>();
|
|
108
|
+
const currentCameraPosition = useRef<Camera | undefined>(undefined);
|
|
109
109
|
|
|
110
110
|
// Coordinates
|
|
111
111
|
const [coords, setCoords] = useState(coordinates);
|
|
@@ -349,7 +349,7 @@ export const useClippingBox = ({
|
|
|
349
349
|
[boxId, boxState.isEdgeClicked, boxState.isScalePointClicked, handleUpdateBoxState],
|
|
350
350
|
);
|
|
351
351
|
|
|
352
|
-
const hovered = useRef<any>();
|
|
352
|
+
const hovered = useRef<any>(undefined);
|
|
353
353
|
const handleRawMouseMove = useCallback(
|
|
354
354
|
(e: any) => {
|
|
355
355
|
const picked = viewer?.scene.pick(e.endPosition);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import LRUCache from "lru-cache";
|
|
2
|
-
import { useEffect, useMemo } from "react";
|
|
2
|
+
import { useEffect, useMemo, type JSX } from "react";
|
|
3
3
|
|
|
4
4
|
import type { AppearanceTypes, FeatureComponentProps, ComputedLayer } from "../..";
|
|
5
5
|
import { ComputedFeature, DataType, guessType } from "../../../mantle";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Clock as CesiumClock, ClockRange, ClockStep, JulianDate } from "cesium";
|
|
2
|
-
import { useCallback, useMemo } from "react";
|
|
2
|
+
import { useCallback, useMemo, type JSX } from "react";
|
|
3
3
|
import { Clock } from "resium";
|
|
4
4
|
|
|
5
5
|
import { TimelineManagerRef } from "../../../Map/useTimelineManager";
|
|
@@ -22,7 +22,7 @@ type ProviderOpts = Pick<TerrainProperty, "normal"> &
|
|
|
22
22
|
export default function useTerrainProviderPromise(opts: ProviderOpts) {
|
|
23
23
|
// Cache promises so we don’t recreate providers on every toggle
|
|
24
24
|
const cacheRef = useRef(new Map<string, Promise<TerrainProvider>>());
|
|
25
|
-
const ellipsoidRef = useRef<TerrainProvider>();
|
|
25
|
+
const ellipsoidRef = useRef<TerrainProvider>(undefined);
|
|
26
26
|
|
|
27
27
|
return useMemo<Promise<TerrainProvider>>(() => {
|
|
28
28
|
if (!opts.terrain) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="vite-plugin-svgr/client" />
|
|
2
2
|
import useTransition from "@rot1024/use-transition";
|
|
3
3
|
import { BoundingSphere, Cartesian3, SceneTransforms, Cartesian2, JulianDate } from "cesium";
|
|
4
|
-
import { useEffect, useState } from "react";
|
|
4
|
+
import { useEffect, useState, type JSX } from "react";
|
|
5
5
|
import { useCesium } from "resium";
|
|
6
6
|
|
|
7
7
|
import type { ViewerProperty } from "../../..";
|
|
@@ -233,7 +233,7 @@ export const JapanGSIOptimalBVmapLabelImagery: FC<JapanGSIOptimalBVmapLabelImage
|
|
|
233
233
|
);
|
|
234
234
|
}, [tile, imagery]);
|
|
235
235
|
|
|
236
|
-
const labelsRef = useRef<Array<[AnnotationFeature, Label]>>();
|
|
236
|
+
const labelsRef = useRef<Array<[AnnotationFeature, Label]>>(undefined);
|
|
237
237
|
const scene = cesiumContext?.scene;
|
|
238
238
|
|
|
239
239
|
const updateVisibility = useCallback(() => {
|
|
@@ -21,7 +21,7 @@ export default ({
|
|
|
21
21
|
cameraForceHorizontalRoll = false,
|
|
22
22
|
onCameraChange,
|
|
23
23
|
}: {
|
|
24
|
-
cesium: RefObject<CesiumComponentRef<Viewer
|
|
24
|
+
cesium: RefObject<CesiumComponentRef<Viewer> | null>;
|
|
25
25
|
property?: ViewerProperty;
|
|
26
26
|
engineAPI: EngineRef;
|
|
27
27
|
featureFlags: number;
|
|
@@ -20,7 +20,7 @@ const targetWidth = 1000000;
|
|
|
20
20
|
const targetLength = 1000000;
|
|
21
21
|
|
|
22
22
|
export function useCameraLimiter(
|
|
23
|
-
cesium: RefObject<CesiumComponentRef<CesiumViewer
|
|
23
|
+
cesium: RefObject<CesiumComponentRef<CesiumViewer> | null>,
|
|
24
24
|
camera: Camera | undefined,
|
|
25
25
|
property: CameraLimiterProperty | undefined,
|
|
26
26
|
) {
|
|
@@ -50,9 +50,9 @@ import {
|
|
|
50
50
|
|
|
51
51
|
export default function useEngineRef(
|
|
52
52
|
ref: Ref<EngineRef>,
|
|
53
|
-
cesium: RefObject<CesiumComponentRef<Cesium.Viewer
|
|
53
|
+
cesium: RefObject<CesiumComponentRef<Cesium.Viewer> | null>,
|
|
54
54
|
): EngineRef {
|
|
55
|
-
const cancelCameraFlight = useRef<() => void>();
|
|
55
|
+
const cancelCameraFlight = useRef<() => void>(undefined);
|
|
56
56
|
const mouseEventCallbacks = useRef<MouseEventCallbacks>({
|
|
57
57
|
click: [],
|
|
58
58
|
doubleClick: [],
|
|
@@ -12,7 +12,7 @@ export default ({
|
|
|
12
12
|
shouldRender,
|
|
13
13
|
property,
|
|
14
14
|
}: {
|
|
15
|
-
cesium: RefObject<CesiumComponentRef<Viewer
|
|
15
|
+
cesium: RefObject<CesiumComponentRef<Viewer> | null>;
|
|
16
16
|
requestingRenderMode?: MutableRefObject<RequestingRenderMode>;
|
|
17
17
|
isLayerDragging?: boolean;
|
|
18
18
|
shouldRender?: boolean;
|
|
@@ -28,7 +28,7 @@ export default ({
|
|
|
28
28
|
}
|
|
29
29
|
}, [cesium, requestingRenderMode]);
|
|
30
30
|
|
|
31
|
-
const explicitRenderRef = useRef<() => void>();
|
|
31
|
+
const explicitRenderRef = useRef<() => void>(undefined);
|
|
32
32
|
|
|
33
33
|
useEffect(() => {
|
|
34
34
|
explicitRenderRef.current = explicitRender;
|
|
@@ -70,7 +70,7 @@ export function useInstance<T, Keys extends unknown[], Owner>(
|
|
|
70
70
|
descriptor: InstanceDescriptor<T, () => DisallowPromise<T>, Keys, Owner>,
|
|
71
71
|
): T {
|
|
72
72
|
const [state, setState] = useState<T>();
|
|
73
|
-
const ref = useRef<T>();
|
|
73
|
+
const ref = useRef<T>(undefined);
|
|
74
74
|
if (ref.current == null) {
|
|
75
75
|
ref.current = descriptor.create();
|
|
76
76
|
}
|
|
@@ -14,7 +14,7 @@ export default ({
|
|
|
14
14
|
onLayerDrag,
|
|
15
15
|
onLayerDrop,
|
|
16
16
|
}: {
|
|
17
|
-
cesium: RefObject<CesiumComponentRef<Viewer
|
|
17
|
+
cesium: RefObject<CesiumComponentRef<Viewer> | null>;
|
|
18
18
|
isLayerDraggable?: boolean;
|
|
19
19
|
onLayerDrag?: (layerId: string, featureId: string | undefined, position: LatLng) => void;
|
|
20
20
|
onLayerDrop?: (
|
|
@@ -54,7 +54,7 @@ export default ({
|
|
|
54
54
|
[cesium, onLayerDrop],
|
|
55
55
|
);
|
|
56
56
|
|
|
57
|
-
const cesiumDnD = useRef<CesiumDnD>();
|
|
57
|
+
const cesiumDnD = useRef<CesiumDnD>(undefined);
|
|
58
58
|
useEffect(() => {
|
|
59
59
|
const viewer = cesium.current?.cesiumElement;
|
|
60
60
|
if (!viewer || viewer.isDestroyed()) return;
|
|
@@ -20,7 +20,7 @@ export const useLayerSelectWithRect = ({
|
|
|
20
20
|
onLayerSelectWithRectMove,
|
|
21
21
|
onLayerSelectWithRectEnd,
|
|
22
22
|
}: {
|
|
23
|
-
cesium: RefObject<CesiumComponentRef<Viewer
|
|
23
|
+
cesium: RefObject<CesiumComponentRef<Viewer> | null>;
|
|
24
24
|
engineAPI: EngineRef;
|
|
25
25
|
featureFlags: number;
|
|
26
26
|
onLayerSelectWithRectStart?: (e: LayerSelectWithRectStart) => void;
|
|
@@ -142,7 +142,7 @@ const useTerrainHeatmap = ({
|
|
|
142
142
|
cesium,
|
|
143
143
|
terrain,
|
|
144
144
|
}: {
|
|
145
|
-
cesium: RefObject<CesiumComponentRef<Viewer
|
|
145
|
+
cesium: RefObject<CesiumComponentRef<Viewer> | null>;
|
|
146
146
|
terrain: TerrainProperty | undefined;
|
|
147
147
|
}) => {
|
|
148
148
|
const {
|
|
@@ -223,7 +223,7 @@ export const useOverrideGlobeShader = ({
|
|
|
223
223
|
enableLighting,
|
|
224
224
|
terrain,
|
|
225
225
|
}: {
|
|
226
|
-
cesium: RefObject<CesiumComponentRef<Viewer
|
|
226
|
+
cesium: RefObject<CesiumComponentRef<Viewer> | null>;
|
|
227
227
|
sphericalHarmonicCoefficients?: Cartesian3[];
|
|
228
228
|
globeShadowDarkness?: number;
|
|
229
229
|
globeImageBasedLighting?: boolean;
|
|
@@ -99,7 +99,7 @@ export default ({
|
|
|
99
99
|
layerId?: string;
|
|
100
100
|
featureId?: string;
|
|
101
101
|
};
|
|
102
|
-
layersRef?: RefObject<LayersRef>;
|
|
102
|
+
layersRef?: RefObject<LayersRef | null>;
|
|
103
103
|
selectionReason?: LayerSelectionReason;
|
|
104
104
|
meta?: Record<string, unknown>;
|
|
105
105
|
featureFlags: number;
|
|
@@ -240,8 +240,8 @@ export default ({
|
|
|
240
240
|
| Primitive
|
|
241
241
|
| GroundPrimitive
|
|
242
242
|
| ImageryLayer
|
|
243
|
-
>();
|
|
244
|
-
const prevSelectedImageryFeatureId = useRef<string | undefined>();
|
|
243
|
+
>(undefined);
|
|
244
|
+
const prevSelectedImageryFeatureId = useRef<string | undefined>(undefined);
|
|
245
245
|
|
|
246
246
|
// manage layer selection
|
|
247
247
|
useEffect(() => {
|
|
@@ -796,9 +796,10 @@ function tileProperties(
|
|
|
796
796
|
): { key: string; value: any }[] {
|
|
797
797
|
return t
|
|
798
798
|
.getPropertyIds()
|
|
799
|
-
.reduce<
|
|
800
|
-
{ key:
|
|
801
|
-
|
|
799
|
+
.reduce<{ key: string; value: any }[]>(
|
|
800
|
+
(a, b) => [...a, { key: b, value: t.getProperty(b) }],
|
|
801
|
+
[],
|
|
802
|
+
);
|
|
802
803
|
}
|
|
803
804
|
|
|
804
805
|
function getLayerId(target: RootEventTarget): string | undefined {
|
|
@@ -51,8 +51,9 @@ export function computeAtom(cache?: typeof globalDataFeaturesCache) {
|
|
|
51
51
|
);
|
|
52
52
|
|
|
53
53
|
const computedResult = atom<EvalResult | undefined>(undefined);
|
|
54
|
-
const finalFeatures = atom(
|
|
55
|
-
get
|
|
54
|
+
const finalFeatures = atom(
|
|
55
|
+
get =>
|
|
56
|
+
get(computedResult)?.features?.map((f): ComputedFeature => merge({ ...f }, get(overrides))),
|
|
56
57
|
);
|
|
57
58
|
const layerStatus = atom<ComputedLayerStatus>("fetching");
|
|
58
59
|
const dataAtoms = dataAtom(cache);
|
|
@@ -60,14 +60,14 @@ export type MarkerAppearance = {
|
|
|
60
60
|
label?: boolean;
|
|
61
61
|
labelText?: string;
|
|
62
62
|
labelPosition?:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
| "left"
|
|
64
|
+
| "right"
|
|
65
|
+
| "top"
|
|
66
|
+
| "bottom"
|
|
67
|
+
| "lefttop"
|
|
68
|
+
| "leftbottom"
|
|
69
|
+
| "righttop"
|
|
70
|
+
| "rightbottom";
|
|
71
71
|
labelTypography?: Typography;
|
|
72
72
|
labelBackground?: boolean;
|
|
73
73
|
labelBackgroundColor?: string;
|
package/src/test/utils.tsx
CHANGED
package/src/utils/image.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState, useEffect, useRef } from "react";
|
|
2
2
|
|
|
3
3
|
export const useImage = (src?: string): HTMLImageElement | undefined => {
|
|
4
|
-
const imgRef = useRef<HTMLImageElement>();
|
|
4
|
+
const imgRef = useRef<HTMLImageElement>(undefined);
|
|
5
5
|
const [img, setImg] = useState<HTMLImageElement>();
|
|
6
6
|
|
|
7
7
|
useEffect(() => {
|
|
@@ -9,7 +9,7 @@ export const useDelayedCount = (durations: Durations = []) => {
|
|
|
9
9
|
const [mode, setMode] = useState(0);
|
|
10
10
|
const prevMode = usePreviousDistinct(mode);
|
|
11
11
|
const exit = useRef(false);
|
|
12
|
-
const timeout = useRef<number>();
|
|
12
|
+
const timeout = useRef<number>(undefined);
|
|
13
13
|
|
|
14
14
|
const advanceMode = useCallback(() => {
|
|
15
15
|
setMode(m => Math.max(0, Math.min(durations.length + 1, m + (exit.current ? -1 : 1))));
|
|
@@ -17,7 +17,7 @@ export type DropOptions<T extends ItemType = ItemType, E extends HTMLElement = H
|
|
|
17
17
|
drop?: (item: Item<T>, context: Context) => Dropper | undefined;
|
|
18
18
|
shallow?: boolean;
|
|
19
19
|
disabled?: boolean;
|
|
20
|
-
wrapperRef?: React.RefObject<E>;
|
|
20
|
+
wrapperRef?: React.RefObject<E | null>;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
export const useDrop = <T extends ItemType = ItemType, E extends HTMLElement = HTMLElement>({
|
package/src/utils/util.ts
CHANGED
|
@@ -73,7 +73,7 @@ export const isEmptyString = function (text: string): boolean {
|
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
export function useConstant<T>(callback: () => T): T {
|
|
76
|
-
const ref = useRef<{ value: T }>();
|
|
76
|
+
const ref = useRef<{ value: T }>(undefined);
|
|
77
77
|
if (ref.current == null) {
|
|
78
78
|
ref.current = { value: callback() };
|
|
79
79
|
}
|