@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.
Files changed (55) hide show
  1. package/dist/core.js +24053 -22620
  2. package/dist/core.umd.cjs +164 -161
  3. package/dist/index.d.ts +10 -10
  4. package/package.json +41 -45
  5. package/src/Map/ClusteredLayers/index.tsx +1 -1
  6. package/src/Map/Layer/hooks.ts +2 -2
  7. package/src/Map/Layer/index.tsx +1 -1
  8. package/src/Map/Layers/hooks.ts +2 -2
  9. package/src/Map/Layers/index.tsx +1 -1
  10. package/src/Map/Sketch/hooks.ts +4 -4
  11. package/src/Map/Sketch/index.tsx +2 -2
  12. package/src/Map/Sketch/usePluginSketchLayer.ts +1 -1
  13. package/src/Map/Sketch/useSketch.ts +1 -1
  14. package/src/Map/Sketch/useSketchFeature.ts +1 -1
  15. package/src/Map/SpatialId/hooks.ts +2 -2
  16. package/src/Map/SpatialId/index.tsx +2 -2
  17. package/src/Map/index.tsx +1 -1
  18. package/src/Map/ref.ts +5 -5
  19. package/src/Map/types/index.ts +2 -2
  20. package/src/Map/useTimelineManager.ts +1 -1
  21. package/src/Map/utils.ts +1 -1
  22. package/src/Visualizer/context.tsx +5 -5
  23. package/src/Visualizer/hooks.ts +8 -8
  24. package/src/Visualizer/useViewport.ts +1 -1
  25. package/src/engines/Cesium/Feature/Box/hooks/box.ts +4 -4
  26. package/src/engines/Cesium/Feature/HeatMap/HeatmapMesh.tsx +1 -1
  27. package/src/engines/Cesium/Feature/PhotoOverlay/hooks.ts +1 -1
  28. package/src/engines/Cesium/Feature/PhotoOverlay/index.tsx +3 -1
  29. package/src/engines/Cesium/Feature/Tileset/hooks.ts +2 -2
  30. package/src/engines/Cesium/Feature/Tileset/index.tsx +1 -1
  31. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +2 -2
  32. package/src/engines/Cesium/Feature/index.tsx +1 -1
  33. package/src/engines/Cesium/core/Clock.tsx +1 -1
  34. package/src/engines/Cesium/core/Globe/index.tsx +1 -1
  35. package/src/engines/Cesium/core/Globe/useTerrainProviderPromise.ts +1 -1
  36. package/src/engines/Cesium/core/Indicator/Indicator.tsx +1 -1
  37. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +1 -1
  38. package/src/engines/Cesium/hooks/useCamera.ts +1 -1
  39. package/src/engines/Cesium/hooks/useCameraLimiter.ts +1 -1
  40. package/src/engines/Cesium/hooks/useEngineRef.ts +2 -2
  41. package/src/engines/Cesium/hooks/useExplicitRender.ts +2 -2
  42. package/src/engines/Cesium/hooks/useInstance.ts +1 -1
  43. package/src/engines/Cesium/hooks/useLayerDragDrop.ts +2 -2
  44. package/src/engines/Cesium/hooks/useLayerSelectWithRect.ts +1 -1
  45. package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +2 -2
  46. package/src/engines/Cesium/hooks/useViewerProperty.ts +1 -1
  47. package/src/engines/Cesium/hooks.ts +7 -6
  48. package/src/mantle/atoms/compute.ts +3 -2
  49. package/src/mantle/data/shapefile/parseZip.ts +1 -0
  50. package/src/mantle/types/appearance.ts +8 -8
  51. package/src/test/utils.tsx +1 -1
  52. package/src/utils/image.ts +1 -1
  53. package/src/utils/use-delayed-count.ts +1 -1
  54. package/src/utils/use-dnd/drop.ts +1 -1
  55. 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;
@@ -1,4 +1,4 @@
1
- import { memo, useMemo } from "react";
1
+ import { memo, useMemo, type JSX } from "react";
2
2
  import { Cesium3DTileset } from "resium";
3
3
 
4
4
  import type { Cesium3DTilesAppearance, ComputedLayer } from "../../..";
@@ -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";
@@ -1,4 +1,4 @@
1
- import { useEffect, useMemo, useRef } from "react";
1
+ import { useEffect, useMemo, useRef, type JSX } from "react";
2
2
  import { Globe as CesiumGlobe } from "resium";
3
3
 
4
4
  import type { ViewerProperty } from "../../..";
@@ -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;
@@ -9,7 +9,7 @@ export default ({
9
9
  cesium,
10
10
  property,
11
11
  }: {
12
- cesium: RefObject<CesiumComponentRef<Viewer>>;
12
+ cesium: RefObject<CesiumComponentRef<Viewer> | null>;
13
13
  property?: ViewerProperty;
14
14
  }) => {
15
15
  const sceneLight = useMemo(() => {
@@ -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: string; value: any }[]
801
- >((a, b) => [...a, { key: b, value: t.getProperty(b) }], []);
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(get =>
55
- get(computedResult)?.features?.map((f): ComputedFeature => merge({ ...f }, get(overrides))),
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);
@@ -3,6 +3,7 @@ import proj4 from "proj4";
3
3
 
4
4
  import { parseDbf } from "./parseDbf";
5
5
  import { parseShp } from "./parseShp";
6
+
6
7
  import { combine } from ".";
7
8
 
8
9
  export async function parseZip(buffer: ArrayBuffer): Promise<GeoJSON.GeoJSON | GeoJSON.GeoJSON[]> {
@@ -60,14 +60,14 @@ export type MarkerAppearance = {
60
60
  label?: boolean;
61
61
  labelText?: string;
62
62
  labelPosition?:
63
- | "left"
64
- | "right"
65
- | "top"
66
- | "bottom"
67
- | "lefttop"
68
- | "leftbottom"
69
- | "righttop"
70
- | "rightbottom";
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;
@@ -23,7 +23,7 @@ vitest.mock("react-inlinesvg", () => {
23
23
  });
24
24
 
25
25
  const render = (
26
- ui: React.ReactElement,
26
+ ui: React.ReactElement<any>,
27
27
  // queryMocks?: readonly MockedResponse<Record<string, any>>[],
28
28
  { ...renderOptions } = {},
29
29
  ) => {
@@ -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
  }