@reearth/core 0.0.7-alpha.4 → 0.0.7-alpha.41

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 (452) hide show
  1. package/dist/core.js +44858 -39524
  2. package/dist/core.umd.cjs +3910 -3868
  3. package/dist/{index-DqatWUTw.js → index-DqGWVPtz.js} +0 -1
  4. package/dist/index.d.ts +141 -24
  5. package/package.json +29 -9
  6. package/src/Map/Geoid/index.tsx +68 -0
  7. package/src/Map/Geoid/types.ts +8 -0
  8. package/src/Map/Layer/hooks.ts +6 -3
  9. package/src/Map/Layer/index.tsx +2 -0
  10. package/src/Map/Layers/hooks.ts +27 -0
  11. package/src/Map/Layers/index.tsx +12 -1
  12. package/src/Map/Layers/keys.ts +1 -0
  13. package/src/Map/Sketch/hooks.ts +450 -407
  14. package/src/Map/Sketch/index.tsx +65 -18
  15. package/src/Map/Sketch/sketchMachine.ts +359 -4
  16. package/src/Map/Sketch/sketchMachine.typegen.ts +58 -1
  17. package/src/Map/Sketch/types.ts +10 -20
  18. package/src/Map/Sketch/usePluginSketchLayer.ts +105 -0
  19. package/src/Map/Sketch/useSketch.ts +559 -0
  20. package/src/Map/Sketch/useSketchFeature.ts +198 -0
  21. package/src/Map/SpatialId/constants.ts +21 -0
  22. package/src/Map/SpatialId/hooks.ts +448 -0
  23. package/src/Map/SpatialId/index.tsx +63 -0
  24. package/src/Map/SpatialId/types.ts +68 -0
  25. package/src/Map/SpatialId/utils.ts +65 -0
  26. package/src/Map/hooks.ts +54 -8
  27. package/src/Map/index.tsx +40 -7
  28. package/src/Map/ref.ts +30 -0
  29. package/src/Map/types/index.ts +37 -1
  30. package/src/Map/types/viewerProperty.ts +10 -0
  31. package/src/Visualizer/coreContext.tsx +2 -0
  32. package/src/Visualizer/hooks.ts +46 -12
  33. package/src/Visualizer/index.tsx +22 -3
  34. package/src/Visualizer/interactionMode.ts +2 -1
  35. package/src/engines/Cesium/Feature/Model/index.tsx +3 -3
  36. package/src/engines/Cesium/Feature/Polygon/index.tsx +6 -4
  37. package/src/engines/Cesium/Feature/Raster/mvt.ts +2 -1
  38. package/src/engines/Cesium/Feature/Resource/utils.ts +86 -91
  39. package/src/engines/Cesium/Feature/Tileset/hooks.ts +75 -35
  40. package/src/engines/Cesium/Feature/context.ts +1 -0
  41. package/src/engines/Cesium/Feature/index.tsx +6 -2
  42. package/src/engines/Cesium/Feature/utils.tsx +9 -5
  43. package/src/engines/Cesium/Shaders/OverriddenShaders/GlobeFS/IBL.glsl +6 -10
  44. package/src/engines/Cesium/Sketch/ControlPoint.tsx +128 -24
  45. package/src/engines/Cesium/Sketch/ExtrudedControlPoints.tsx +70 -25
  46. package/src/engines/Cesium/Sketch/ExtrudedMeasurement.tsx +3 -1
  47. package/src/engines/Cesium/Sketch/ExtrudedPolygonEntity.tsx +14 -14
  48. package/src/engines/Cesium/Sketch/PolylineEntity.tsx +7 -4
  49. package/src/engines/Cesium/Sketch/SurfaceAddingPoints.tsx +60 -0
  50. package/src/engines/Cesium/Sketch/SurfaceControlPoints.tsx +125 -35
  51. package/src/engines/Cesium/Sketch/constants.ts +5 -0
  52. package/src/engines/Cesium/Sketch/index.tsx +68 -29
  53. package/src/engines/Cesium/SpatialId/CoordinateIndicator.tsx +28 -0
  54. package/src/engines/Cesium/SpatialId/SpatialIdSpace.tsx +33 -0
  55. package/src/engines/Cesium/SpatialId/VerticalSpaceIndicator.tsx +32 -0
  56. package/src/engines/Cesium/SpatialId/index.ts +3 -0
  57. package/src/engines/Cesium/common.ts +52 -16
  58. package/src/engines/Cesium/core/Globe.tsx +11 -2
  59. package/src/engines/Cesium/core/Imagery.tsx +16 -3
  60. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +8 -1
  61. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapVectorMapLabel.tsx +14 -2
  62. package/src/engines/Cesium/core/labels/LabelImageryLayers.tsx +10 -1
  63. package/src/engines/Cesium/core/presets.ts +10 -27
  64. package/src/engines/Cesium/helpers/getGeometryFromEntity.ts +55 -0
  65. package/src/engines/Cesium/hooks/useEngineRef.ts +46 -1
  66. package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +1 -1
  67. package/src/engines/Cesium/hooks.ts +45 -4
  68. package/src/engines/Cesium/index.tsx +16 -3
  69. package/src/engines/Cesium/types.ts +1 -1
  70. package/src/mantle/atoms/compute.ts +5 -1
  71. package/src/mantle/data/geojson.ts +53 -22
  72. package/src/mantle/evaluator/simple/expression/expression.test.ts +72 -0
  73. package/src/mantle/evaluator/simple/expression/node.ts +10 -12
  74. package/src/mantle/types/appearance.ts +12 -10
  75. package/src/mantle/types/index.ts +3 -0
  76. package/src/utils/image.ts +1 -11
  77. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1
  78. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1
  79. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1
  80. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1
  81. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1
  82. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1
  83. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1
  84. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1
  85. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1
  86. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1
  87. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1
  88. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1
  89. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1
  90. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1
  91. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1
  92. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1
  93. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1
  94. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1
  95. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1
  96. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1
  97. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -1
  98. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1
  99. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1
  100. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1
  101. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1
  102. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1
  103. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1
  104. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1
  105. package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
  106. package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
  107. package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
  108. package/dist/cesium/Assets/Images/ion-credit.png +0 -0
  109. package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  110. package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  111. package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  112. package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  113. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  114. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  115. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  116. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  117. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  118. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  119. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  120. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  121. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  122. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  123. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  124. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  125. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  126. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  127. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  128. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  129. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  130. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  131. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  132. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  133. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  134. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  135. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  136. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  137. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  138. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  139. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  140. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  141. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  142. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  143. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  144. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  145. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  146. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  147. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  148. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  149. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  150. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  151. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  152. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  153. package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
  154. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  155. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  156. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  157. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  158. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  159. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  160. package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
  161. package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
  162. package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  163. package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
  164. package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  165. package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
  166. package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
  167. package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
  168. package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
  169. package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
  170. package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
  171. package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
  172. package/dist/cesium/Assets/Textures/maki/building.png +0 -0
  173. package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
  174. package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
  175. package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
  176. package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
  177. package/dist/cesium/Assets/Textures/maki/car.png +0 -0
  178. package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
  179. package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
  180. package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
  181. package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
  182. package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  183. package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
  184. package/dist/cesium/Assets/Textures/maki/city.png +0 -0
  185. package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  186. package/dist/cesium/Assets/Textures/maki/college.png +0 -0
  187. package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
  188. package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
  189. package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
  190. package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
  191. package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
  192. package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
  193. package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
  194. package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
  195. package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  196. package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
  197. package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
  198. package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
  199. package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
  200. package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
  201. package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
  202. package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
  203. package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
  204. package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
  205. package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
  206. package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  207. package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
  208. package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
  209. package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
  210. package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
  211. package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  212. package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
  213. package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
  214. package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
  215. package/dist/cesium/Assets/Textures/maki/library.png +0 -0
  216. package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  217. package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
  218. package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
  219. package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
  220. package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  221. package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
  222. package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
  223. package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  224. package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
  225. package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
  226. package/dist/cesium/Assets/Textures/maki/music.png +0 -0
  227. package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
  228. package/dist/cesium/Assets/Textures/maki/park.png +0 -0
  229. package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
  230. package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  231. package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
  232. package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  233. package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
  234. package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  235. package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
  236. package/dist/cesium/Assets/Textures/maki/police.png +0 -0
  237. package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
  238. package/dist/cesium/Assets/Textures/maki/post.png +0 -0
  239. package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
  240. package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
  241. package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
  242. package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  243. package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  244. package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
  245. package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  246. package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  247. package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  248. package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
  249. package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
  250. package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
  251. package/dist/cesium/Assets/Textures/maki/school.png +0 -0
  252. package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
  253. package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
  254. package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
  255. package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  256. package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
  257. package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  258. package/dist/cesium/Assets/Textures/maki/square.png +0 -0
  259. package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  260. package/dist/cesium/Assets/Textures/maki/star.png +0 -0
  261. package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
  262. package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
  263. package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
  264. package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
  265. package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
  266. package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
  267. package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
  268. package/dist/cesium/Assets/Textures/maki/town.png +0 -0
  269. package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  270. package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
  271. package/dist/cesium/Assets/Textures/maki/village.png +0 -0
  272. package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
  273. package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  274. package/dist/cesium/Assets/Textures/maki/water.png +0 -0
  275. package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
  276. package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
  277. package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
  278. package/dist/cesium/Assets/Textures/pin.svg +0 -1
  279. package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
  280. package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  281. package/dist/cesium/Assets/approximateTerrainHeights.json +0 -1
  282. package/dist/cesium/ThirdParty/Workers/package.json +0 -1
  283. package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +0 -1
  284. package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +0 -1
  285. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +0 -1
  286. package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  287. package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
  288. package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +0 -1
  289. package/dist/cesium/Widgets/Animation/Animation.css +0 -127
  290. package/dist/cesium/Widgets/Animation/lighter.css +0 -70
  291. package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -108
  292. package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +0 -22
  293. package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -102
  294. package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -113
  295. package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -124
  296. package/dist/cesium/Widgets/CesiumWidget/lighter.css +0 -14
  297. package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -8
  298. package/dist/cesium/Widgets/Geocoder/Geocoder.css +0 -70
  299. package/dist/cesium/Widgets/Geocoder/lighter.css +0 -17
  300. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
  301. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  302. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  303. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  304. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  305. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  306. package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  307. package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  308. package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  309. package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  310. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  311. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  312. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  313. package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  314. package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  315. package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  316. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  317. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  318. package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  319. package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  320. package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
  321. package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
  322. package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
  323. package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
  324. package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -120
  325. package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
  326. package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
  327. package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
  328. package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
  329. package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  330. package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  331. package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
  332. package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
  333. package/dist/cesium/Widgets/InfoBox/InfoBox.css +0 -92
  334. package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -178
  335. package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -93
  336. package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +0 -38
  337. package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
  338. package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -38
  339. package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -56
  340. package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -20
  341. package/dist/cesium/Widgets/Timeline/Timeline.css +0 -103
  342. package/dist/cesium/Widgets/Timeline/lighter.css +0 -23
  343. package/dist/cesium/Widgets/VRButton/VRButton.css +0 -8
  344. package/dist/cesium/Widgets/Viewer/Viewer.css +0 -107
  345. package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -16
  346. package/dist/cesium/Widgets/lighter.css +0 -237
  347. package/dist/cesium/Widgets/lighterShared.css +0 -46
  348. package/dist/cesium/Widgets/shared.css +0 -103
  349. package/dist/cesium/Widgets/widgets.css +0 -1346
  350. package/dist/cesium/Workers/chunk-2ED5WI77.js +0 -26
  351. package/dist/cesium/Workers/chunk-2MBPFWCP.js +0 -26
  352. package/dist/cesium/Workers/chunk-3C74MLG3.js +0 -26
  353. package/dist/cesium/Workers/chunk-45U7TTT3.js +0 -26
  354. package/dist/cesium/Workers/chunk-4N7SRDH5.js +0 -26
  355. package/dist/cesium/Workers/chunk-4T6AS6BZ.js +0 -26
  356. package/dist/cesium/Workers/chunk-5AG2MVRM.js +0 -26
  357. package/dist/cesium/Workers/chunk-5Z6L2FHX.js +0 -26
  358. package/dist/cesium/Workers/chunk-6AUUBDOF.js +0 -26
  359. package/dist/cesium/Workers/chunk-74N6MC2V.js +0 -26
  360. package/dist/cesium/Workers/chunk-7VJK3KHI.js +0 -26
  361. package/dist/cesium/Workers/chunk-7VZHIB6P.js +0 -26
  362. package/dist/cesium/Workers/chunk-7X2YQ6I4.js +0 -27
  363. package/dist/cesium/Workers/chunk-B2SKQ7LU.js +0 -26
  364. package/dist/cesium/Workers/chunk-B4TQDFIE.js +0 -26
  365. package/dist/cesium/Workers/chunk-B6TRTFAA.js +0 -26
  366. package/dist/cesium/Workers/chunk-BK3HCS7I.js +0 -26
  367. package/dist/cesium/Workers/chunk-BOPB43LN.js +0 -26
  368. package/dist/cesium/Workers/chunk-C6DMEJQ7.js +0 -26
  369. package/dist/cesium/Workers/chunk-CN7UN2OZ.js +0 -26
  370. package/dist/cesium/Workers/chunk-CSISXEG7.js +0 -26
  371. package/dist/cesium/Workers/chunk-CUOR5F7T.js +0 -28
  372. package/dist/cesium/Workers/chunk-DGCK3LD2.js +0 -30
  373. package/dist/cesium/Workers/chunk-DXEZYE3K.js +0 -62
  374. package/dist/cesium/Workers/chunk-EXBFEYPQ.js +0 -26
  375. package/dist/cesium/Workers/chunk-FK5KFB6H.js +0 -26
  376. package/dist/cesium/Workers/chunk-HPBHKP5S.js +0 -26
  377. package/dist/cesium/Workers/chunk-JCJ24DHF.js +0 -26
  378. package/dist/cesium/Workers/chunk-JEWHFDAA.js +0 -26
  379. package/dist/cesium/Workers/chunk-JZLZJJQD.js +0 -26
  380. package/dist/cesium/Workers/chunk-KRZBI2MU.js +0 -26
  381. package/dist/cesium/Workers/chunk-KTTUANTJ.js +0 -26
  382. package/dist/cesium/Workers/chunk-LDCAXLGS.js +0 -26
  383. package/dist/cesium/Workers/chunk-LOPN5R3I.js +0 -26
  384. package/dist/cesium/Workers/chunk-MDLPQIMP.js +0 -26
  385. package/dist/cesium/Workers/chunk-MRR3RGFO.js +0 -26
  386. package/dist/cesium/Workers/chunk-NPBZI5YA.js +0 -26
  387. package/dist/cesium/Workers/chunk-NUSW5B6A.js +0 -26
  388. package/dist/cesium/Workers/chunk-OUXRUXNB.js +0 -26
  389. package/dist/cesium/Workers/chunk-QPOPEH3M.js +0 -26
  390. package/dist/cesium/Workers/chunk-R2AN7EKC.js +0 -26
  391. package/dist/cesium/Workers/chunk-RURL6ZX2.js +0 -26
  392. package/dist/cesium/Workers/chunk-SUQM3OSW.js +0 -28
  393. package/dist/cesium/Workers/chunk-UBIRX2SP.js +0 -26
  394. package/dist/cesium/Workers/chunk-VAKC5J5C.js +0 -26
  395. package/dist/cesium/Workers/chunk-VHNZBQTR.js +0 -27
  396. package/dist/cesium/Workers/chunk-VKV642QV.js +0 -26
  397. package/dist/cesium/Workers/chunk-VMSXG4OA.js +0 -26
  398. package/dist/cesium/Workers/chunk-VQZSIOZW.js +0 -26
  399. package/dist/cesium/Workers/chunk-WZUWQMI7.js +0 -26
  400. package/dist/cesium/Workers/chunk-YBI55DLZ.js +0 -26
  401. package/dist/cesium/Workers/chunk-YEJWCH6C.js +0 -26
  402. package/dist/cesium/Workers/chunk-YPDO7SPO.js +0 -26
  403. package/dist/cesium/Workers/chunk-ZYWD6OQH.js +0 -26
  404. package/dist/cesium/Workers/combineGeometry.js +0 -26
  405. package/dist/cesium/Workers/createBoxGeometry.js +0 -26
  406. package/dist/cesium/Workers/createBoxOutlineGeometry.js +0 -26
  407. package/dist/cesium/Workers/createCircleGeometry.js +0 -26
  408. package/dist/cesium/Workers/createCircleOutlineGeometry.js +0 -26
  409. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +0 -26
  410. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +0 -26
  411. package/dist/cesium/Workers/createCorridorGeometry.js +0 -26
  412. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +0 -26
  413. package/dist/cesium/Workers/createCylinderGeometry.js +0 -26
  414. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +0 -26
  415. package/dist/cesium/Workers/createEllipseGeometry.js +0 -26
  416. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +0 -26
  417. package/dist/cesium/Workers/createEllipsoidGeometry.js +0 -26
  418. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +0 -26
  419. package/dist/cesium/Workers/createFrustumGeometry.js +0 -26
  420. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +0 -26
  421. package/dist/cesium/Workers/createGeometry.js +0 -26
  422. package/dist/cesium/Workers/createGroundPolylineGeometry.js +0 -26
  423. package/dist/cesium/Workers/createPlaneGeometry.js +0 -26
  424. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +0 -26
  425. package/dist/cesium/Workers/createPolygonGeometry.js +0 -26
  426. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +0 -26
  427. package/dist/cesium/Workers/createPolylineGeometry.js +0 -26
  428. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +0 -26
  429. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +0 -26
  430. package/dist/cesium/Workers/createRectangleGeometry.js +0 -26
  431. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +0 -26
  432. package/dist/cesium/Workers/createSimplePolylineGeometry.js +0 -26
  433. package/dist/cesium/Workers/createSphereGeometry.js +0 -26
  434. package/dist/cesium/Workers/createSphereOutlineGeometry.js +0 -26
  435. package/dist/cesium/Workers/createTaskProcessorWorker.js +0 -26
  436. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +0 -26
  437. package/dist/cesium/Workers/createVectorTileGeometries.js +0 -26
  438. package/dist/cesium/Workers/createVectorTilePoints.js +0 -26
  439. package/dist/cesium/Workers/createVectorTilePolygons.js +0 -26
  440. package/dist/cesium/Workers/createVectorTilePolylines.js +0 -26
  441. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -26
  442. package/dist/cesium/Workers/createVerticesFromHeightmap.js +0 -26
  443. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -26
  444. package/dist/cesium/Workers/createWallGeometry.js +0 -26
  445. package/dist/cesium/Workers/createWallOutlineGeometry.js +0 -26
  446. package/dist/cesium/Workers/decodeDraco.js +0 -26
  447. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +0 -26
  448. package/dist/cesium/Workers/decodeI3S.js +0 -26
  449. package/dist/cesium/Workers/transcodeKTX2.js +0 -56
  450. package/dist/cesium/Workers/transferTypedArrayTest.js +0 -26
  451. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +0 -26
  452. /package/src/{Map/Sketch/utils.ts → utils/use-window-event.ts} +0 -0
@@ -1,4 +1,3 @@
1
- window.CESIUM_BASE_URL = "/cesium/";
2
1
  var oe = typeof global < "u" ? global : typeof self < "u" ? self : typeof window < "u" ? window : {}, P = [], M = [], Qt = typeof Uint8Array < "u" ? Uint8Array : Array, je = !1;
3
2
  function at() {
4
3
  je = !0;
package/dist/index.d.ts CHANGED
@@ -17,7 +17,6 @@ import { PropsWithoutRef } from 'react';
17
17
  import { ReactNode } from 'react';
18
18
  import { RefAttributes } from 'react';
19
19
  import { RefObject } from 'react';
20
- import { RequireExactlyOne } from 'type-fest';
21
20
  import { WritableAtom } from 'jotai';
22
21
 
23
22
  export declare type AmbientOcclusionProperty = {
@@ -161,16 +160,16 @@ export declare type CameraProperty = {
161
160
 
162
161
  export declare type Cesium3DTilesAppearance = {
163
162
  show?: boolean;
163
+ height?: number;
164
164
  color?: string;
165
165
  styleUrl?: string;
166
166
  shadows?: "disabled" | "enabled" | "cast_only" | "receive_only";
167
- colorBlendMode?: "highlight" | "replace" | "mix" | "default";
167
+ colorBlendMode?: "highlight" | "replace" | "mix";
168
168
  edgeWidth?: number;
169
169
  edgeColor?: string;
170
170
  selectedFeatureColor?: string;
171
171
  disableIndexingFeature?: boolean;
172
172
  tileset?: string;
173
- apiKey?: string;
174
173
  experimental_clipping?: EXPERIMENTAL_clipping;
175
174
  pointSize?: number;
176
175
  meta?: unknown;
@@ -278,6 +277,7 @@ declare type CommonProps = {
278
277
  isHidden?: boolean;
279
278
  isSelected?: boolean;
280
279
  meta?: Record<string, unknown>;
280
+ sketchEditingFeature?: SketchEditingFeature;
281
281
  };
282
282
 
283
283
  export declare function computeAtom(cache?: typeof globalDataFeaturesCache): WritableAtom<ComputedLayer | undefined, Command, void>;
@@ -299,6 +299,8 @@ export declare type ConditionsExpression = {
299
299
  conditions: [string, string][];
300
300
  };
301
301
 
302
+ declare type ControlPointMouseEventHandler = (index: number, isExtrudedPoint: boolean, type: "mousedown" | "click") => void;
303
+
302
304
  export declare function convertLayer(l: Layer): LegacyLayer | undefined;
303
305
 
304
306
  export declare function convertLegacyCluster(clusters: LegacyCluster[]): Cluster[];
@@ -320,6 +322,8 @@ declare type CoreContext = {
320
322
  handleCameraForceHorizontalRollChange?: (enable?: boolean) => void;
321
323
  handleInteractionModeChange?: (mode?: InteractionModeType | undefined) => void;
322
324
  onSketchPluginFeatureCreate?: (cb: SketchEventCallback) => void;
325
+ onSketchPluginFeatureUpdate?: (cb: SketchEventCallback) => void;
326
+ onSketchPluginFeatureDelete?: (cb: SketchEventCallback) => void;
323
327
  onSketchTypeChange?: (cb: (type: SketchType | undefined) => void) => void;
324
328
  onLayerVisibility?: (cb: (e: LayerVisibilityEvent) => void) => void;
325
329
  onLayerLoad?: (cb: (e: LayerLoadEvent) => void) => void;
@@ -352,6 +356,7 @@ export declare type CoreVisualizerProps = {
352
356
  ready?: boolean;
353
357
  hiddenLayers?: string[];
354
358
  zoomedLayerId?: string;
359
+ displayCredits?: boolean;
355
360
  onCameraChange?: (camera: Camera) => void;
356
361
  onLayerDrop?: (layerId: string, propertyKey: string, position: LatLng | undefined) => void;
357
362
  onLayerSelect?: (layerId: string | undefined, layer: (() => Promise<ComputedLayer | undefined>) | undefined, feature: ComputedFeature | undefined, reason: LayerSelectionReason | undefined) => void;
@@ -359,12 +364,26 @@ export declare type CoreVisualizerProps = {
359
364
  onMount?: () => void;
360
365
  onSketchTypeChangeProp?: (type: SketchType | undefined) => void;
361
366
  onSketchFeatureCreate?: (feature: SketchFeature | null) => void;
367
+ onSketchFeatureUpdate?: (feature: SketchFeature | null) => void;
368
+ onSketchFeatureDelete?: (layerId: string, featureId: string) => void;
362
369
  onInteractionModeChange?: (mode: InteractionModeType) => void;
370
+ onAPIReady?: () => void;
371
+ onCreditsUpdate?: (credits?: Credits) => void;
372
+ };
373
+
374
+ export declare type CreditItem = {
375
+ html?: string;
363
376
  };
364
377
 
365
- export declare type CursorType = "auto" | "grab" | "crosshair";
378
+ export declare type Credits = {
379
+ engine: {
380
+ cesium?: CreditItem;
381
+ };
382
+ lightbox: CreditItem[];
383
+ screen: CreditItem[];
384
+ };
366
385
 
367
- declare type CursorType_2 = "default" | "auto" | "help" | "pointer" | "grab" | "crosshair";
386
+ declare type CursorType = "default" | "auto" | "help" | "pointer" | "grab" | "crosshair" | "wait";
368
387
 
369
388
  export declare type Data = {
370
389
  type: DataType;
@@ -376,6 +395,9 @@ export declare type Data = {
376
395
  updateInterval?: number;
377
396
  parameters?: Record<string, any>;
378
397
  idProperty?: string;
398
+ serviceTokens?: {
399
+ googleMapApiKey?: string;
400
+ };
379
401
  time?: {
380
402
  property?: string;
381
403
  interval?: number;
@@ -489,6 +511,7 @@ export declare type EngineProps = {
489
511
  isLayerDragging?: boolean;
490
512
  shouldRender?: boolean;
491
513
  meta?: Record<string, unknown>;
514
+ displayCredits?: boolean;
492
515
  layersRef?: RefObject<LayersRef>;
493
516
  requestingRenderMode?: MutableRefObject<RequestingRenderMode>;
494
517
  timelineManagerRef?: TimelineManagerRef;
@@ -503,6 +526,7 @@ export declare type EngineProps = {
503
526
  onLayerSelectWithRectStart?: (e: LayerSelectWithRectStart) => void;
504
527
  onLayerSelectWithRectMove?: (e: LayerSelectWithRectMove) => void;
505
528
  onLayerSelectWithRectEnd?: (e: LayerSelectWithRectEnd) => void;
529
+ onCreditsUpdate?: (credits?: Credits) => void;
506
530
  };
507
531
 
508
532
  export declare type EngineRef = {
@@ -531,7 +555,8 @@ export declare type EngineRef = {
531
555
  isPositionVisible: (position: [x: number, y: number, z: number]) => boolean;
532
556
  setView: (camera: CameraPosition) => void;
533
557
  toWindowPosition: (position: [x: number, y: number, z: number]) => [x: number, y: number] | undefined;
534
- getExtrudedHeight: (position: [x: number, y: number, z: number], windowPosition: [x: number, y: number]) => number | undefined;
558
+ getExtrudedHeight: (position: [x: number, y: number, z: number], windowPosition: [x: number, y: number], allowNegative?: boolean) => number | undefined;
559
+ getExtrudedPoint: (position: [x: number, y: number, z: number], extrutedHeight: number) => Position3d | undefined;
535
560
  getSurfaceDistance: (point1: Cartesian3, point2: Cartesian3) => number | undefined;
536
561
  equalsEpsilon2d: (point1: Position2d, point2: Position2d, relativeEpsilon: number | undefined, absoluteEpsilon: number | undefined) => boolean;
537
562
  equalsEpsilon3d: (point1: Position3d, point2: Position3d, relativeEpsilon: number | undefined, absoluteEpsilon: number | undefined) => boolean;
@@ -539,7 +564,7 @@ export declare type EngineRef = {
539
564
  type: SketchType;
540
565
  controlPoints: Position3d[];
541
566
  }) => LineString | Polygon_2 | MultiPolygon | Point | undefined;
542
- setCursor: (cursor: CursorType_2) => void;
567
+ setCursor: (cursor: CursorType) => void;
543
568
  flyTo: FlyTo;
544
569
  flyToBBox: (bbox: [number, number, number, number], options?: CameraOptions & {
545
570
  heading?: number;
@@ -589,6 +614,8 @@ export declare type EngineRef = {
589
614
  selectFeatures: (layerId: string, featureId: string[]) => void;
590
615
  unselectFeatures: (layerId: string, featureId: string[]) => void;
591
616
  pickManyFromViewport: (windowPosition: [x: number, y: number], windowWidth: number, windowHeight: number, condition?: (f: PickedFeature) => boolean) => PickedFeature[] | undefined;
617
+ calcRectangleControlPoint: (p1: Position3d, p2: Position3d, p3: Position3d) => [p1: Position3d, p2: Position3d, p3: Position3d];
618
+ getCredits: () => Credits | undefined;
592
619
  } & MouseEventHandles;
593
620
 
594
621
  export declare const engines: {
@@ -745,13 +772,19 @@ export declare type FrustumAppearance = {
745
772
  length?: number;
746
773
  };
747
774
 
748
- export declare type Geometry = Point | LineString | Polygon_2 | MultiPoint | MultiLineString | MultiPolygon;
775
+ export declare type GeoidProperty = {
776
+ server: {
777
+ url: string;
778
+ geoidProperty: string;
779
+ };
780
+ };
749
781
 
750
- declare type GeometryOptions = {
751
- type: SketchType;
752
- controlPoints: readonly Position3d[];
782
+ declare type GeoidRef = {
783
+ getGeoidHeight: (lat?: number, lng?: number) => Promise<number | undefined>;
753
784
  };
754
785
 
786
+ export declare type Geometry = Point | LineString | Polygon_2 | MultiPoint | MultiLineString | MultiPolygon;
787
+
755
788
  export declare type GeometryOptionsXYZ = {
756
789
  type: SketchType;
757
790
  controlPoints: Position3d[];
@@ -844,7 +877,7 @@ declare type InfoboxProperty = {
844
877
 
845
878
  export declare const INTERACTION_MODES: Record<InteractionModeType, number>;
846
879
 
847
- export declare type InteractionModeType = "default" | "move" | "selection" | "sketch";
880
+ export declare type InteractionModeType = "default" | "move" | "selection" | "sketch" | "spatialId";
848
881
 
849
882
  export declare function isSketchType(value: unknown): value is SketchType;
850
883
 
@@ -954,6 +987,8 @@ export declare type LayersRef = {
954
987
  }) | null) => void;
955
988
  deleteLayer: (...ids: string[]) => void;
956
989
  isLayer: (obj: any) => obj is LazyLayer;
990
+ isComputedLayer: (obj: any) => obj is ComputedLayer;
991
+ isTempLayer: (layerId?: string) => boolean;
957
992
  layers: () => LazyLayer[];
958
993
  walk: <T>(fn: (layer: LazyLayer, index: number, parents: LazyLayer[]) => T | void) => T | undefined;
959
994
  find: (fn: (layer: LazyLayer, index: number, parents: LazyLayer[]) => boolean) => LazyLayer | undefined;
@@ -984,6 +1019,7 @@ export declare type LayerVisibilityEvent = {
984
1019
  */
985
1020
  export declare type LazyLayer = Readonly<Layer> & {
986
1021
  computed?: Readonly<ComputedLayer>;
1022
+ isTempLayer?: boolean;
987
1023
  pluginId?: string;
988
1024
  extensionId?: string;
989
1025
  property?: any;
@@ -1074,15 +1110,16 @@ export declare type LUT = readonly ColorTuple[];
1074
1110
  declare const Map_2: ForwardRefExoticComponent< {
1075
1111
  engines?: Record<string, Engine> | undefined;
1076
1112
  engine?: string | undefined;
1077
- } & Omit<Props_2, "Feature" | "viewerProperty" | "selectionReason" | "delegatedDataTypes" | "clusterComponent" | "selectedLayerId"> & Omit<EngineProps, "onLayerSelect" | "selectedLayerId" | "layerSelectionReason"> & Omit<SketchProps, "engineRef" | "layersRef" | "SketchComponent"> & {
1078
- cursor?: CursorType | undefined;
1079
- } & RefAttributes<MapRef>>;
1113
+ onAPIReady?: (() => void) | undefined;
1114
+ } & Omit<Props_2, "Feature" | "viewerProperty" | "selectionReason" | "delegatedDataTypes" | "clusterComponent" | "selectedLayerId"> & Omit<EngineProps, "onLayerSelect" | "selectedLayerId" | "layerSelectionReason"> & Omit<SketchProps, "engineRef" | "SketchComponent" | "layersRef"> & RefAttributes<MapRef>>;
1080
1115
  export { Map_2 as Map }
1081
1116
 
1082
1117
  export declare type MapRef = {
1083
1118
  engine: WrappedRef<EngineRef>;
1084
1119
  layers: WrappedRef<LayersRef>;
1085
1120
  sketch: WrappedRef<SketchRef>;
1121
+ spatialId?: WrappedRef<SpatialIdRef>;
1122
+ geoid: WrappedRef<GeoidRef>;
1086
1123
  timeline?: TimelineManagerRef;
1087
1124
  };
1088
1125
 
@@ -1135,6 +1172,7 @@ export declare type ModelAppearance = {
1135
1172
  model?: string;
1136
1173
  url?: string;
1137
1174
  heightReference?: "none" | "clamp" | "relative";
1175
+ height?: number;
1138
1176
  heading?: number;
1139
1177
  pitch?: number;
1140
1178
  roll?: number;
@@ -1272,6 +1310,7 @@ export declare type PolygonAppearance = {
1272
1310
  stroke?: boolean;
1273
1311
  strokeColor?: string;
1274
1312
  strokeWidth?: number;
1313
+ height?: number;
1275
1314
  heightReference?: "none" | "clamp" | "relative";
1276
1315
  shadows?: "disabled" | "enabled" | "cast_only" | "receive_only";
1277
1316
  lineJoin?: CanvasLineJoin;
@@ -1316,9 +1355,8 @@ declare type PropertyItem<T> = {
1316
1355
  export declare type Props = {
1317
1356
  engines?: Record<string, Engine>;
1318
1357
  engine?: string;
1319
- } & Omit<Props_2, "Feature" | "clusterComponent" | "selectionReason" | "delegatedDataTypes" | "selectedLayerId" | "viewerProperty"> & Omit<EngineProps, "onLayerSelect" | "layerSelectionReason" | "selectedLayerId"> & Omit<SketchProps, "layersRef" | "engineRef" | "SketchComponent"> & {
1320
- cursor?: CursorType;
1321
- };
1358
+ onAPIReady?: () => void;
1359
+ } & Omit<Props_2, "Feature" | "clusterComponent" | "selectionReason" | "delegatedDataTypes" | "selectedLayerId" | "viewerProperty"> & Omit<EngineProps, "onLayerSelect" | "layerSelectionReason" | "selectedLayerId"> & Omit<SketchProps, "layersRef" | "engineRef" | "SketchComponent">;
1322
1360
 
1323
1361
  declare type Props_2 = Omit<Props_3, "atomMap" | "isHidden" | "selectedLayerId"> & {
1324
1362
  selectedLayer?: {
@@ -1331,6 +1369,7 @@ declare type Props_2 = Omit<Props_3, "atomMap" | "isHidden" | "selectedLayerId">
1331
1369
  requestingRenderMode?: MutableRefObject<RequestingRenderMode>;
1332
1370
  engineRef?: RefObject<EngineRef>;
1333
1371
  onLayerSelect?: (layerId: string | undefined, featureId: string | undefined, layer: (() => Promise<ComputedLayer | undefined>) | undefined, reason: LayerSelectionReason | undefined, info: SelectedFeatureInfo | undefined) => void;
1372
+ onMount?: () => void;
1334
1373
  };
1335
1374
 
1336
1375
  declare type Props_3 = {
@@ -1458,17 +1497,34 @@ export declare type ShadowProperty = {
1458
1497
 
1459
1498
  export declare type SketchAppearance = Partial<LayerAppearanceTypes>;
1460
1499
 
1461
- declare type SketchComponentProps = RequireExactlyOne<{
1462
- geometry?: LineString | Polygon_2 | MultiPolygon | null;
1463
- geometryOptions?: GeometryOptions | null;
1500
+ declare type SketchComponentProps = {
1501
+ geometryOptions?: {
1502
+ type: SketchType;
1503
+ controlPoints: readonly Position3d[];
1504
+ } | null;
1464
1505
  extrudedHeight?: number;
1506
+ extrudedPoint?: Position3d;
1507
+ centroidBasePoint?: Position3d;
1508
+ centroidExtrudedPoint?: Position3d;
1465
1509
  disableShadow?: boolean;
1466
- enableRelativeHeight?: boolean;
1467
1510
  color?: string;
1468
- }, "geometry" | "geometryOptions">;
1511
+ isEditing?: boolean;
1512
+ catchedControlPointIndex?: number;
1513
+ catchedExtrudedPoint?: boolean;
1514
+ selectedControlPointIndex?: number;
1515
+ handleControlPointMouseEvent?: ControlPointMouseEventHandler;
1516
+ handleAddControlPoint?: (position: Position3d, index: number) => void;
1517
+ };
1469
1518
 
1470
1519
  export declare type SketchComponentType = ComponentType<SketchComponentProps>;
1471
1520
 
1521
+ export declare type SketchEditFeatureChangeCb = (feature: SketchEditingFeature | undefined) => void;
1522
+
1523
+ export declare type SketchEditingFeature = {
1524
+ layerId: string;
1525
+ feature: ComputedFeature;
1526
+ };
1527
+
1472
1528
  export declare type SketchEventCallback = (event: SketchEventProps) => void;
1473
1529
 
1474
1530
  export declare type SketchEventProps = {
@@ -1489,9 +1545,9 @@ export declare type SketchOptions = {
1489
1545
  appearance?: SketchAppearance;
1490
1546
  dataOnly?: boolean;
1491
1547
  disableShadow?: boolean;
1492
- enableRelativeHeight?: boolean;
1493
1548
  rightClickToAbort?: boolean;
1494
1549
  autoResetInteractionMode?: boolean;
1550
+ useCentroidExtrudedHeight?: boolean;
1495
1551
  };
1496
1552
 
1497
1553
  export declare type SketchProps = {
@@ -1504,7 +1560,17 @@ export declare type SketchProps = {
1504
1560
  onSketchTypeChange?: (type: SketchType | undefined, from?: "editor" | "plugin") => void;
1505
1561
  onSketchFeatureCreate?: (feature: SketchFeature | null) => void;
1506
1562
  onSketchPluginFeatureCreate?: (props: SketchEventProps) => void;
1563
+ onSketchFeatureUpdate?: (feature: SketchFeature | null) => void;
1564
+ onSketchPluginFeatureUpdate?: (props: SketchEventProps) => void;
1565
+ onSketchFeatureDelete?: (layerId: string, featureId: string) => void;
1566
+ onSketchPluginFeatureDelete?: (props: {
1567
+ layerId: string;
1568
+ featureId: string;
1569
+ }) => void;
1507
1570
  onLayerSelect?: OnLayerSelectType;
1571
+ sketchEditingFeature?: SketchEditingFeature;
1572
+ onSketchEditFeature?: (feature: SketchEditingFeature | undefined) => void;
1573
+ onMount?: () => void;
1508
1574
  };
1509
1575
 
1510
1576
  export declare type SketchRef = {
@@ -1512,6 +1578,11 @@ export declare type SketchRef = {
1512
1578
  setType: (type: SketchType | undefined, from?: "editor" | "plugin") => void;
1513
1579
  getOptions: () => SketchOptions;
1514
1580
  overrideOptions: (options: SketchOptions) => void;
1581
+ editFeature: (feature: SketchEditingFeature | undefined) => void;
1582
+ cancelEdit: (ignoreAutoReSelect?: boolean) => void;
1583
+ applyEdit: () => void;
1584
+ deleteFeature: (layerId: string, featureId: string) => void;
1585
+ onEditFeatureChange: (cb: SketchEditFeatureChangeCb) => void;
1515
1586
  };
1516
1587
 
1517
1588
  export declare type SketchType = "marker" | "polyline" | "circle" | "rectangle" | "polygon" | "extrudedCircle" | "extrudedRectangle" | "extrudedPolygon";
@@ -1542,6 +1613,49 @@ export declare type Spacing = {
1542
1613
  top: number;
1543
1614
  };
1544
1615
 
1616
+ declare type SpatialIdPickSpaceOptions = {
1617
+ zoom?: number;
1618
+ maxHeight?: number;
1619
+ minHeight?: number;
1620
+ dataOnly?: boolean;
1621
+ rightClickToExit?: boolean;
1622
+ color?: string;
1623
+ outlineColor?: string;
1624
+ groundIndicatorColor?: string;
1625
+ selectorColor?: string;
1626
+ selectorOutlineColor?: string;
1627
+ verticalSpaceIndicatorColor?: string;
1628
+ verticalSpaceIndicatorOutlineColor?: string;
1629
+ };
1630
+
1631
+ declare type SpatialIdRef = {
1632
+ pickSpace: (options?: SpatialIdPickSpaceOptions) => void;
1633
+ exitPickSpace: () => void;
1634
+ onSpacePick: (cb: (space: SpatialIdSpaceData) => void) => void;
1635
+ };
1636
+
1637
+ declare type SpatialIdSpaceData = {
1638
+ id: string;
1639
+ center: {
1640
+ lat: number;
1641
+ lng: number;
1642
+ alt?: number;
1643
+ };
1644
+ alt: number;
1645
+ zoom: number;
1646
+ zfxy: {
1647
+ z: number;
1648
+ f: number;
1649
+ x: number;
1650
+ y: number;
1651
+ };
1652
+ zfxyStr: string;
1653
+ tilehash: string;
1654
+ hilbertTilehash: string;
1655
+ hilbertIndex: string;
1656
+ vertices: [number, number, number][];
1657
+ };
1658
+
1545
1659
  export declare type StyleExpression = ConditionsExpression | string;
1546
1660
 
1547
1661
  export declare type SunProperty = {
@@ -1580,6 +1694,8 @@ export declare type TileLabelProperty = {
1580
1694
  id: string;
1581
1695
  labelType: "japan_gsi_optimal_bvmap";
1582
1696
  style: Record<string, any>;
1697
+ near?: number;
1698
+ far?: number;
1583
1699
  };
1584
1700
 
1585
1701
  export declare type TileProperty = {
@@ -1700,6 +1816,7 @@ export declare type ValueTypes = {
1700
1816
 
1701
1817
  export declare type ViewerProperty = {
1702
1818
  globe?: GlobeProperty;
1819
+ geoid?: GeoidProperty;
1703
1820
  terrain?: TerrainProperty;
1704
1821
  scene?: SceneProperty;
1705
1822
  tiles?: TileProperty[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reearth/core",
3
- "version": "0.0.7-alpha.4",
3
+ "version": "0.0.7-alpha.41",
4
4
  "author": "Re:Earth contributors <community@reearth.io>",
5
5
  "license": "Apache-2.0",
6
6
  "description": "A library that abstracts a map engine as one common API.",
@@ -21,18 +21,29 @@
21
21
  "storybook": "storybook dev -p 6007",
22
22
  "build-storybook": "storybook build",
23
23
  "preversion": "yarn test run",
24
- "version": "yarn build"
24
+ "version": "yarn build",
25
+ "sketch-typegen": "xstate typegen src/**/sketchMachine.ts"
25
26
  },
26
27
  "engines": {
27
28
  "node": ">=20"
28
29
  },
29
30
  "peerDependencies": {
30
- "cesium": "1.x",
31
+ "cesium": "1.118.x",
31
32
  "react": "^18.2.0",
32
33
  "react-dom": "^18.2.0"
33
34
  },
34
35
  "dependencies": {
35
- "@reearth/cesium-mvt-imagery-provider": "1.5.4",
36
+ "@radix-ui/react-checkbox": "1.1.1",
37
+ "@radix-ui/react-dialog": "1.1.1",
38
+ "@radix-ui/react-icons": "1.3.0",
39
+ "@radix-ui/react-select": "2.1.1",
40
+ "@radix-ui/react-separator": "1.1.0",
41
+ "@radix-ui/react-slider": "1.2.2",
42
+ "@radix-ui/react-slot": "1.1.0",
43
+ "@radix-ui/react-switch": "1.1.0",
44
+ "@radix-ui/react-toggle": "1.1.0",
45
+ "@reearth/cesium-mvt-imagery-provider": "1.6.0",
46
+ "@reearth/spatial-id-sdk": "0.0.0",
36
47
  "@rot1024/use-transition": "1.0.0",
37
48
  "@seznam/compose-react-refs": "1.0.6",
38
49
  "@turf/invariant": "6.5.0",
@@ -61,8 +72,11 @@
61
72
  "react-error-boundary": "4.0.11",
62
73
  "react-nl2br": "1.0.4",
63
74
  "react-use": "17.5.0",
64
- "resium": "^1.18.0",
75
+ "resium": "1.18.2",
65
76
  "suspend-react": "0.1.3",
77
+ "tailwind-merge": "2.5.2",
78
+ "tailwindcss": "3.4.10",
79
+ "tailwindcss-animate": "1.0.7",
66
80
  "tiny-invariant": "1.3.3",
67
81
  "use-callback-ref": "1.3.2",
68
82
  "use-custom-compare": "1.4.0",
@@ -89,26 +103,32 @@
89
103
  "@types/lodash-es": "4.17.12",
90
104
  "@types/node": "20.12.7",
91
105
  "@types/pbf": "3.0.5",
92
- "@types/react": "18.2.6",
93
- "@types/react-dom": "18.2.6",
106
+ "@types/react": "18.3.0",
107
+ "@types/react-dom": "18.3.0",
108
+ "@types/scheduler": "0.23.0",
94
109
  "@types/uuid": "9.0.8",
95
110
  "@typescript-eslint/eslint-plugin": "7.2.0",
96
111
  "@typescript-eslint/parser": "7.2.0",
97
112
  "@vitejs/plugin-react": "4.2.1",
98
- "cesium": "1.116.0",
113
+ "@xstate/cli": "0.5.17",
114
+ "autoprefixer": "10.4.20",
115
+ "cesium": "1.118.0",
116
+ "class-variance-authority": "0.7.0",
117
+ "clsx": "2.1.1",
99
118
  "eslint": "8.57.0",
100
119
  "eslint-config-reearth": "0.3.0",
101
120
  "eslint-plugin-react-hooks": "4.6.0",
102
121
  "eslint-plugin-react-refresh": "0.4.6",
103
122
  "eslint-plugin-storybook": "0.8.0",
104
123
  "jsdom": "22.1.0",
124
+ "postcss": "8.4.41",
105
125
  "prettier": "3.2.5",
106
126
  "react": "18.2.0",
107
127
  "react-dom": "18.2.0",
108
128
  "storybook": "8.0.8",
109
129
  "typescript": "5.2.2",
110
130
  "vite": "5.0.8",
111
- "vite-plugin-cesium": "1.2.22",
131
+ "vite-plugin-cesium": "1.2.23",
112
132
  "vite-plugin-dts": "3.8.1",
113
133
  "vite-plugin-svgr": "4.2.0",
114
134
  "vite-tsconfig-paths": "^4.3.2",
@@ -0,0 +1,68 @@
1
+ import {
2
+ forwardRef,
3
+ ForwardRefRenderFunction,
4
+ useCallback,
5
+ useImperativeHandle,
6
+ useRef,
7
+ } from "react";
8
+
9
+ import { GeoidServer, GeoidRef } from "./types";
10
+
11
+ export type GeoidProps = {
12
+ geoidServer?: GeoidServer;
13
+ };
14
+
15
+ const MAX_GEOID_CACHE_SIZE = 1000;
16
+
17
+ const Geoid: ForwardRefRenderFunction<GeoidRef, GeoidProps> = ({ geoidServer }, ref) => {
18
+ const geoidCache = useRef<Map<string, number>>(new Map());
19
+
20
+ const getGeoidHeight = useCallback(
21
+ async (lng?: number, lat?: number): Promise<number | undefined> => {
22
+ if (!geoidServer?.url || !geoidServer?.geoidProperty) {
23
+ console.error("Geoid: Server is not set properly");
24
+ return Promise.resolve(undefined);
25
+ }
26
+
27
+ if (lat === undefined || lng === undefined) {
28
+ console.error("Geoid: Invalid lat or lng");
29
+ return Promise.resolve(undefined);
30
+ }
31
+
32
+ const cache = geoidCache.current.get(`${lng},${lat}`);
33
+ if (cache) return Promise.resolve(cache);
34
+
35
+ return fetch(
36
+ geoidServer.url.replace("${lng}", lng.toString()).replace("${lat}", lat.toString()),
37
+ )
38
+ .then(res => {
39
+ return res.json().then((result: any) => {
40
+ if (!result) return undefined;
41
+ const geoid = Number(result[geoidServer?.geoidProperty]);
42
+ if (!isNaN(geoid)) {
43
+ const cache = geoidCache.current;
44
+ if (cache.size > MAX_GEOID_CACHE_SIZE) {
45
+ const firstKey = cache.keys().next().value;
46
+ if (firstKey) cache.delete(firstKey);
47
+ }
48
+ cache.set(`${lng},${lat}`, geoid);
49
+ return geoid;
50
+ }
51
+ return undefined;
52
+ });
53
+ })
54
+ .catch(e => {
55
+ console.error("Failed to fetch geoid height", e);
56
+ return undefined;
57
+ });
58
+ },
59
+ [geoidServer?.url, geoidServer?.geoidProperty],
60
+ );
61
+
62
+ useImperativeHandle(ref, () => ({
63
+ getGeoidHeight,
64
+ }));
65
+ return null;
66
+ };
67
+
68
+ export default forwardRef(Geoid);
@@ -0,0 +1,8 @@
1
+ export type GeoidServer = {
2
+ url: string; // URL of the geoid server. use ${lat} ${lng} for lat/lng placeholders. Example: "https://mock.com/api/altitude?lat=${lat}&lng=${lng}"
3
+ geoidProperty: string; // TODO: support json path
4
+ };
5
+
6
+ export type GeoidRef = {
7
+ getGeoidHeight: (lat?: number, lng?: number) => Promise<number | undefined>;
8
+ };
@@ -107,12 +107,15 @@ export default function useHooks({
107
107
  };
108
108
  }, [layer, forceUpdateFeatures]);
109
109
 
110
- const prevForceUpdatableData = useRef<Pick<Data, "csv" | "jsonProperties">>();
110
+ const prevForceUpdatableData = useRef<Pick<Data, "csv" | "jsonProperties" | "value">>();
111
111
  useLayoutEffect(() => {
112
112
  const data = layer?.type === "simple" ? layer.data : undefined;
113
- const forceUpdatableData = pick(data, "csv", "jsonProperties");
113
+ const forceUpdatableData = pick(data, "csv", "jsonProperties", "value");
114
114
 
115
- if (isEqual(forceUpdatableData, prevForceUpdatableData.current) || !data?.url) {
115
+ if (
116
+ isEqual(forceUpdatableData, prevForceUpdatableData.current) ||
117
+ (!data?.url && !data?.value)
118
+ ) {
116
119
  return;
117
120
  }
118
121
 
@@ -9,6 +9,7 @@ import type {
9
9
  ComputedFeature,
10
10
  LayerSimple,
11
11
  } from "../../mantle";
12
+ import { SketchEditingFeature } from "../Sketch";
12
13
  import { ViewerProperty } from "../types";
13
14
 
14
15
  import useHooks, { type Atom, type EvalFeature } from "./hooks";
@@ -25,6 +26,7 @@ export type CommonProps = {
25
26
  isHidden?: boolean;
26
27
  isSelected?: boolean;
27
28
  meta?: Record<string, unknown>;
29
+ sketchEditingFeature?: SketchEditingFeature;
28
30
  };
29
31
 
30
32
  export type FeatureComponentProps = {
@@ -35,6 +35,7 @@ export type { Layer, NaiveLayer } from "../../mantle";
35
35
  */
36
36
  export type LazyLayer = Readonly<Layer> & {
37
37
  computed?: Readonly<ComputedLayer>;
38
+ isTempLayer?: boolean;
38
39
  // compat
39
40
  pluginId?: string;
40
41
  extensionId?: string;
@@ -52,6 +53,8 @@ export type Ref = {
52
53
  override: (id: string, layer?: (Partial<Layer> & { property?: any }) | null) => void;
53
54
  deleteLayer: (...ids: string[]) => void;
54
55
  isLayer: (obj: any) => obj is LazyLayer;
56
+ isComputedLayer: (obj: any) => obj is ComputedLayer;
57
+ isTempLayer: (layerId?: string) => boolean;
55
58
  layers: () => LazyLayer[];
56
59
  walk: <T>(
57
60
  fn: (layer: LazyLayer, index: number, parents: LazyLayer[]) => T | void,
@@ -118,6 +121,7 @@ export default function useHooks({
118
121
  requestingRenderMode,
119
122
  onLayerSelect,
120
123
  engineRef,
124
+ onMount,
121
125
  }: {
122
126
  layers?: Layer[];
123
127
  ref?: ForwardedRef<Ref>;
@@ -136,6 +140,7 @@ export default function useHooks({
136
140
  info: SelectedFeatureInfo | undefined,
137
141
  ) => void;
138
142
  engineRef?: RefObject<EngineRef>;
143
+ onMount?: () => void;
139
144
  }) {
140
145
  const layerMap = useMemo(() => new Map<string, Layer>(), []);
141
146
  const [overriddenLayers, setOverridenLayers] = useState<OverriddenLayer[]>([]);
@@ -455,6 +460,20 @@ export default function useHooks({
455
460
  [lazyLayerPrototype],
456
461
  );
457
462
 
463
+ const isTempLayer = useCallback(
464
+ (layerId?: string) => {
465
+ return tempLayersRef.current.some(l => l.id === layerId);
466
+ },
467
+ [tempLayersRef],
468
+ );
469
+
470
+ const isComputedLayer = useCallback(
471
+ (obj: any): obj is ComputedLayer => {
472
+ return typeof obj === "object" && Object.getPrototypeOf(obj) === lazyComputedLayerPrototype;
473
+ },
474
+ [lazyComputedLayerPrototype],
475
+ );
476
+
458
477
  const rootLayers = useCallback(() => {
459
478
  return [...(layersRef() ?? []), ...tempLayersRef.current]
460
479
  .map(l => findById(l.id))
@@ -551,6 +570,8 @@ export default function useHooks({
551
570
  deleteLayer,
552
571
  findByIds,
553
572
  isLayer,
573
+ isComputedLayer,
574
+ isTempLayer,
554
575
  layers: rootLayers,
555
576
  walk,
556
577
  find,
@@ -575,6 +596,8 @@ export default function useHooks({
575
596
  deleteLayer,
576
597
  findByIds,
577
598
  isLayer,
599
+ isComputedLayer,
600
+ isTempLayer,
578
601
  rootLayers,
579
602
  walk,
580
603
  find,
@@ -592,6 +615,10 @@ export default function useHooks({
592
615
  ],
593
616
  );
594
617
 
618
+ useEffect(() => {
619
+ onMount?.();
620
+ }, [onMount]);
621
+
595
622
  const prevLayers = useRef<Layer[] | undefined>([]);
596
623
  useLayoutEffect(() => {
597
624
  const ids = new Set<string>();