@reearth/core 0.0.7-alpha.7 → 0.0.7-alpha.70

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 (516) hide show
  1. package/LICENSE +177 -0
  2. package/dist/core.js +71433 -61051
  3. package/dist/core.umd.cjs +666 -680
  4. package/dist/{index-DqatWUTw.js → index-CUJ6HGQn.js} +1021 -908
  5. package/dist/index.d.ts +195 -73
  6. package/package.json +88 -74
  7. package/src/Map/ClusteredLayers/index.tsx +1 -1
  8. package/src/Map/Geoid/index.tsx +68 -0
  9. package/src/Map/Geoid/types.ts +8 -0
  10. package/src/Map/Layer/hooks.ts +7 -4
  11. package/src/Map/Layer/index.tsx +3 -1
  12. package/src/Map/Layers/hooks.ts +45 -12
  13. package/src/Map/Layers/index.tsx +13 -2
  14. package/src/Map/Layers/keys.ts +1 -0
  15. package/src/Map/Sketch/hooks.ts +454 -411
  16. package/src/Map/Sketch/index.tsx +68 -21
  17. package/src/Map/Sketch/sketchMachine.ts +640 -237
  18. package/src/Map/Sketch/sketchMachine.typegen.ts +58 -1
  19. package/src/Map/Sketch/types.ts +10 -20
  20. package/src/Map/Sketch/usePluginSketchLayer.ts +105 -0
  21. package/src/Map/Sketch/useSketch.ts +558 -0
  22. package/src/Map/Sketch/useSketchFeature.ts +198 -0
  23. package/src/Map/SpatialId/constants.ts +21 -0
  24. package/src/Map/SpatialId/hooks.ts +448 -0
  25. package/src/Map/SpatialId/index.tsx +63 -0
  26. package/src/Map/SpatialId/types.ts +68 -0
  27. package/src/Map/SpatialId/utils.ts +65 -0
  28. package/src/Map/hooks.ts +54 -8
  29. package/src/Map/index.tsx +42 -9
  30. package/src/Map/ref.ts +32 -3
  31. package/src/Map/types/customProvider.ts +32 -0
  32. package/src/Map/types/index.ts +42 -3
  33. package/src/Map/types/viewerProperty.ts +12 -1
  34. package/src/Map/useTimelineManager.ts +4 -10
  35. package/src/Map/utils.ts +1 -1
  36. package/src/Visualizer/Error.tsx +4 -1
  37. package/src/Visualizer/context.tsx +5 -5
  38. package/src/Visualizer/coreContext.tsx +3 -1
  39. package/src/Visualizer/hooks.ts +56 -22
  40. package/src/Visualizer/index.stories.tsx +15 -0
  41. package/src/Visualizer/index.tsx +29 -6
  42. package/src/Visualizer/useViewport.ts +1 -1
  43. package/src/engines/Cesium/Feature/Box/hooks/box.ts +4 -4
  44. package/src/engines/Cesium/Feature/Box/hooks/edge.ts +1 -1
  45. package/src/engines/Cesium/Feature/Box/hooks/side.ts +1 -1
  46. package/src/engines/Cesium/Feature/Box/utils.ts +6 -0
  47. package/src/engines/Cesium/Feature/Ellipse/index.stories.tsx +0 -1
  48. package/src/engines/Cesium/Feature/Frustum/getFieldOfView.ts +2 -0
  49. package/src/engines/Cesium/Feature/Frustum/index.stories.tsx +0 -1
  50. package/src/engines/Cesium/Feature/HeatMap/HeatmapMesh.tsx +1 -1
  51. package/src/engines/Cesium/Feature/Marker/index.tsx +1 -1
  52. package/src/engines/Cesium/Feature/Model/index.stories.tsx +1 -2
  53. package/src/engines/Cesium/Feature/Model/index.tsx +3 -3
  54. package/src/engines/Cesium/Feature/PhotoOverlay/hooks.ts +2 -2
  55. package/src/engines/Cesium/Feature/PhotoOverlay/index.tsx +3 -1
  56. package/src/engines/Cesium/Feature/Polygon/index.stories.tsx +0 -1
  57. package/src/engines/Cesium/Feature/Polygon/index.tsx +6 -4
  58. package/src/engines/Cesium/Feature/Raster/index.stories.tsx +0 -1
  59. package/src/engines/Cesium/Feature/Raster/mvt.ts +2 -1
  60. package/src/engines/Cesium/Feature/Resource/index.stories.tsx +0 -1
  61. package/src/engines/Cesium/Feature/Resource/index.tsx +1 -27
  62. package/src/engines/Cesium/Feature/Resource/utils.ts +86 -91
  63. package/src/engines/Cesium/Feature/Tileset/hooks.ts +273 -87
  64. package/src/engines/Cesium/Feature/Tileset/index.stories.tsx +0 -1
  65. package/src/engines/Cesium/Feature/Tileset/index.tsx +7 -14
  66. package/src/engines/Cesium/Feature/Tileset/useClippingBox.ts +2 -2
  67. package/src/engines/Cesium/Feature/Tileset/useDrawClipping.ts +2 -2
  68. package/src/engines/Cesium/Feature/context.ts +3 -0
  69. package/src/engines/Cesium/Feature/index.tsx +27 -10
  70. package/src/engines/Cesium/Feature/utils.tsx +20 -12
  71. package/src/engines/Cesium/PostProcesses/hbao/AmbientOcclusion.tsx +7 -4
  72. package/src/engines/Cesium/Sketch/ControlPoint.tsx +128 -24
  73. package/src/engines/Cesium/Sketch/ExtrudedControlPoints.tsx +70 -25
  74. package/src/engines/Cesium/Sketch/ExtrudedMeasurement.tsx +3 -1
  75. package/src/engines/Cesium/Sketch/ExtrudedPolygonEntity.tsx +14 -14
  76. package/src/engines/Cesium/Sketch/PolylineEntity.tsx +7 -4
  77. package/src/engines/Cesium/Sketch/SurfaceAddingPoints.tsx +60 -0
  78. package/src/engines/Cesium/Sketch/SurfaceControlPoints.tsx +126 -35
  79. package/src/engines/Cesium/Sketch/constants.ts +5 -0
  80. package/src/engines/Cesium/Sketch/index.tsx +68 -29
  81. package/src/engines/Cesium/SpatialId/CoordinateIndicator.tsx +28 -0
  82. package/src/engines/Cesium/SpatialId/SpatialIdSpace.tsx +33 -0
  83. package/src/engines/Cesium/SpatialId/VerticalSpaceIndicator.tsx +32 -0
  84. package/src/engines/Cesium/SpatialId/index.ts +3 -0
  85. package/src/engines/Cesium/common.ts +55 -18
  86. package/src/engines/Cesium/core/Clock.tsx +1 -1
  87. package/src/engines/Cesium/core/Globe/index.tsx +69 -0
  88. package/src/engines/Cesium/core/Globe/useTerrainProviderPromise.ts +81 -0
  89. package/src/engines/Cesium/core/Imagery.test.ts +299 -42
  90. package/src/engines/Cesium/core/Imagery.tsx +282 -54
  91. package/src/engines/Cesium/core/Indicator/Indicator.tsx +2 -2
  92. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImagery.tsx +13 -6
  93. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryLayer.tsx +2 -1
  94. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapLabelImageryProvider.ts +3 -4
  95. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/JapanGSIOptimalBVmapVectorMapLabel.tsx +14 -2
  96. package/src/engines/Cesium/core/labels/JapanGSIOptimalBVmapVectorMapLabel/helpers.ts +1 -1
  97. package/src/engines/Cesium/core/labels/LabelImageryLayers.tsx +10 -1
  98. package/src/engines/Cesium/core/presets.ts +122 -48
  99. package/src/engines/Cesium/helpers/getGeometryFromEntity.ts +55 -0
  100. package/src/engines/Cesium/hooks/useCamera.ts +2 -2
  101. package/src/engines/Cesium/hooks/useCameraLimiter.ts +1 -1
  102. package/src/engines/Cesium/hooks/useEngineRef.ts +52 -5
  103. package/src/engines/Cesium/hooks/useExplicitRender.ts +2 -2
  104. package/src/engines/Cesium/hooks/useInstance.ts +1 -1
  105. package/src/engines/Cesium/hooks/useLayerDragDrop.ts +3 -3
  106. package/src/engines/Cesium/hooks/useLayerSelectWithRect.ts +2 -2
  107. package/src/engines/Cesium/hooks/useOverrideGlobeShader/useOverrideGlobeShader.ts +115 -67
  108. package/src/engines/Cesium/hooks/useViewerProperty.ts +1 -1
  109. package/src/engines/Cesium/hooks.ts +68 -17
  110. package/src/engines/Cesium/index.stories.tsx +0 -1
  111. package/src/engines/Cesium/index.tsx +38 -8
  112. package/src/engines/Cesium/pickMany.ts +2 -0
  113. package/src/engines/Cesium/types.ts +1 -1
  114. package/src/engines/Cesium/utils/mouse.ts +1 -1
  115. package/src/engines/Cesium/utils/utils.ts +1 -1
  116. package/src/mantle/atoms/compute.test.ts +4 -4
  117. package/src/mantle/atoms/compute.ts +8 -4
  118. package/src/mantle/compat/forward.ts +1 -1
  119. package/src/mantle/data/geojson.ts +49 -26
  120. package/src/mantle/data/georss.ts +2 -2
  121. package/src/mantle/data/gml.ts +2 -2
  122. package/src/mantle/data/gpx.ts +2 -2
  123. package/src/mantle/data/shapefile/parseZip.ts +1 -0
  124. package/src/mantle/evaluator/simple/expression/README.md +392 -0
  125. package/src/mantle/evaluator/simple/expression/expression.test.ts +137 -0
  126. package/src/mantle/evaluator/simple/expression/node.ts +10 -12
  127. package/src/mantle/evaluator/simple/expression/variableReplacer.test.ts +178 -0
  128. package/src/mantle/evaluator/simple/expression/variableReplacer.ts +24 -11
  129. package/src/mantle/types/appearance.ts +4 -2
  130. package/src/mantle/types/index.ts +5 -0
  131. package/src/{Visualizer → shared}/interactionMode.ts +3 -2
  132. package/src/test/setup.ts +1 -1
  133. package/src/test/utils.tsx +1 -1
  134. package/src/types/modules.d.ts +96 -0
  135. package/src/utils/StringMatcher.ts +1 -1
  136. package/src/utils/image.ts +2 -12
  137. package/src/utils/use-delayed-count.ts +1 -1
  138. package/src/utils/use-dnd/drop.ts +1 -1
  139. package/src/utils/util.ts +1 -1
  140. package/src/utils/value.ts +2 -2
  141. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1
  142. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1
  143. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1
  144. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1
  145. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1
  146. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1
  147. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1
  148. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1
  149. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1
  150. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1
  151. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1
  152. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1
  153. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1
  154. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1
  155. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1
  156. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1
  157. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1
  158. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1
  159. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1
  160. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1
  161. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -1
  162. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1
  163. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1
  164. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1
  165. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1
  166. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1
  167. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1
  168. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1
  169. package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
  170. package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
  171. package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
  172. package/dist/cesium/Assets/Images/ion-credit.png +0 -0
  173. package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  174. package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  175. package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  176. package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  177. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  178. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  179. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  180. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  181. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  182. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  183. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  184. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  185. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  186. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  187. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  188. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  189. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  190. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  191. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  192. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  193. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  194. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  195. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  196. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  197. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  198. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  199. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  200. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  201. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  202. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  203. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  204. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  205. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  206. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  207. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  208. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  209. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  210. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  211. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  212. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  213. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  214. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  215. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  216. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  217. package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
  218. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  219. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  220. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  221. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  222. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  223. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  224. package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
  225. package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
  226. package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  227. package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
  228. package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  229. package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
  230. package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
  231. package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
  232. package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
  233. package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
  234. package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
  235. package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
  236. package/dist/cesium/Assets/Textures/maki/building.png +0 -0
  237. package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
  238. package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
  239. package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
  240. package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
  241. package/dist/cesium/Assets/Textures/maki/car.png +0 -0
  242. package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
  243. package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
  244. package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
  245. package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
  246. package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  247. package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
  248. package/dist/cesium/Assets/Textures/maki/city.png +0 -0
  249. package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  250. package/dist/cesium/Assets/Textures/maki/college.png +0 -0
  251. package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
  252. package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
  253. package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
  254. package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
  255. package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
  256. package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
  257. package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
  258. package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
  259. package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  260. package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
  261. package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
  262. package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
  263. package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
  264. package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
  265. package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
  266. package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
  267. package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
  268. package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
  269. package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
  270. package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  271. package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
  272. package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
  273. package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
  274. package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
  275. package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  276. package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
  277. package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
  278. package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
  279. package/dist/cesium/Assets/Textures/maki/library.png +0 -0
  280. package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  281. package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
  282. package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
  283. package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
  284. package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  285. package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
  286. package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
  287. package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  288. package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
  289. package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
  290. package/dist/cesium/Assets/Textures/maki/music.png +0 -0
  291. package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
  292. package/dist/cesium/Assets/Textures/maki/park.png +0 -0
  293. package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
  294. package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  295. package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
  296. package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  297. package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
  298. package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  299. package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
  300. package/dist/cesium/Assets/Textures/maki/police.png +0 -0
  301. package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
  302. package/dist/cesium/Assets/Textures/maki/post.png +0 -0
  303. package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
  304. package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
  305. package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
  306. package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  307. package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  308. package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
  309. package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  310. package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  311. package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  312. package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
  313. package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
  314. package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
  315. package/dist/cesium/Assets/Textures/maki/school.png +0 -0
  316. package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
  317. package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
  318. package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
  319. package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  320. package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
  321. package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  322. package/dist/cesium/Assets/Textures/maki/square.png +0 -0
  323. package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  324. package/dist/cesium/Assets/Textures/maki/star.png +0 -0
  325. package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
  326. package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
  327. package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
  328. package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
  329. package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
  330. package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
  331. package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
  332. package/dist/cesium/Assets/Textures/maki/town.png +0 -0
  333. package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  334. package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
  335. package/dist/cesium/Assets/Textures/maki/village.png +0 -0
  336. package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
  337. package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  338. package/dist/cesium/Assets/Textures/maki/water.png +0 -0
  339. package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
  340. package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
  341. package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
  342. package/dist/cesium/Assets/Textures/pin.svg +0 -1
  343. package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
  344. package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  345. package/dist/cesium/Assets/approximateTerrainHeights.json +0 -1
  346. package/dist/cesium/ThirdParty/Workers/package.json +0 -1
  347. package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +0 -1
  348. package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +0 -1
  349. package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +0 -1
  350. package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  351. package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
  352. package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +0 -1
  353. package/dist/cesium/Widgets/Animation/Animation.css +0 -127
  354. package/dist/cesium/Widgets/Animation/lighter.css +0 -70
  355. package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -108
  356. package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +0 -22
  357. package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -102
  358. package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -113
  359. package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -124
  360. package/dist/cesium/Widgets/CesiumWidget/lighter.css +0 -14
  361. package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -8
  362. package/dist/cesium/Widgets/Geocoder/Geocoder.css +0 -70
  363. package/dist/cesium/Widgets/Geocoder/lighter.css +0 -17
  364. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
  365. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  366. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  367. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  368. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  369. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  370. package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  371. package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  372. package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  373. package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  374. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  375. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  376. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  377. package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  378. package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  379. package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  380. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  381. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  382. package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  383. package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  384. package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
  385. package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
  386. package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
  387. package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
  388. package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -120
  389. package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
  390. package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
  391. package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
  392. package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
  393. package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  394. package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  395. package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
  396. package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
  397. package/dist/cesium/Widgets/InfoBox/InfoBox.css +0 -92
  398. package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -178
  399. package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -93
  400. package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +0 -38
  401. package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
  402. package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -38
  403. package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -56
  404. package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -20
  405. package/dist/cesium/Widgets/Timeline/Timeline.css +0 -103
  406. package/dist/cesium/Widgets/Timeline/lighter.css +0 -23
  407. package/dist/cesium/Widgets/VRButton/VRButton.css +0 -8
  408. package/dist/cesium/Widgets/Viewer/Viewer.css +0 -107
  409. package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -16
  410. package/dist/cesium/Widgets/lighter.css +0 -237
  411. package/dist/cesium/Widgets/lighterShared.css +0 -46
  412. package/dist/cesium/Widgets/shared.css +0 -103
  413. package/dist/cesium/Widgets/widgets.css +0 -1346
  414. package/dist/cesium/Workers/chunk-2YD5QWGR.js +0 -28
  415. package/dist/cesium/Workers/chunk-3T4KR75X.js +0 -26
  416. package/dist/cesium/Workers/chunk-46KFVW24.js +0 -26
  417. package/dist/cesium/Workers/chunk-4EI6PP43.js +0 -28
  418. package/dist/cesium/Workers/chunk-4RS52VIY.js +0 -26
  419. package/dist/cesium/Workers/chunk-4YLYA3DC.js +0 -26
  420. package/dist/cesium/Workers/chunk-5ENAGXBI.js +0 -26
  421. package/dist/cesium/Workers/chunk-5VIB3TI5.js +0 -26
  422. package/dist/cesium/Workers/chunk-6NGZLDFZ.js +0 -26
  423. package/dist/cesium/Workers/chunk-6RGNWVZ2.js +0 -27
  424. package/dist/cesium/Workers/chunk-7AZZVJ52.js +0 -26
  425. package/dist/cesium/Workers/chunk-AMXAQQEL.js +0 -26
  426. package/dist/cesium/Workers/chunk-AQW44ZPC.js +0 -26
  427. package/dist/cesium/Workers/chunk-CPCMDW6Z.js +0 -26
  428. package/dist/cesium/Workers/chunk-DNL2WDRL.js +0 -26
  429. package/dist/cesium/Workers/chunk-ERW7V247.js +0 -26
  430. package/dist/cesium/Workers/chunk-EYRIA4TP.js +0 -26
  431. package/dist/cesium/Workers/chunk-F7RQIJML.js +0 -26
  432. package/dist/cesium/Workers/chunk-FPZMU6QP.js +0 -26
  433. package/dist/cesium/Workers/chunk-FZDVQW7A.js +0 -26
  434. package/dist/cesium/Workers/chunk-GAZ2U4FO.js +0 -26
  435. package/dist/cesium/Workers/chunk-I44IOOT4.js +0 -26
  436. package/dist/cesium/Workers/chunk-IALXUAD4.js +0 -26
  437. package/dist/cesium/Workers/chunk-IXBUEUZL.js +0 -26
  438. package/dist/cesium/Workers/chunk-J3GCYV5K.js +0 -26
  439. package/dist/cesium/Workers/chunk-KGSZTFHZ.js +0 -26
  440. package/dist/cesium/Workers/chunk-KKKPU2CI.js +0 -26
  441. package/dist/cesium/Workers/chunk-KTEJE5KE.js +0 -26
  442. package/dist/cesium/Workers/chunk-KYZ3DYY6.js +0 -26
  443. package/dist/cesium/Workers/chunk-L2QG4MRI.js +0 -26
  444. package/dist/cesium/Workers/chunk-MCE3KFYN.js +0 -26
  445. package/dist/cesium/Workers/chunk-MMLDGXML.js +0 -26
  446. package/dist/cesium/Workers/chunk-MTBRPBDQ.js +0 -26
  447. package/dist/cesium/Workers/chunk-OKT6VBRK.js +0 -26
  448. package/dist/cesium/Workers/chunk-PHYDKLSY.js +0 -26
  449. package/dist/cesium/Workers/chunk-PWPX3224.js +0 -26
  450. package/dist/cesium/Workers/chunk-QHOVE6WG.js +0 -26
  451. package/dist/cesium/Workers/chunk-QJ6MBL22.js +0 -26
  452. package/dist/cesium/Workers/chunk-QKO6VIG2.js +0 -26
  453. package/dist/cesium/Workers/chunk-QVEE4QL2.js +0 -26
  454. package/dist/cesium/Workers/chunk-RXQOQZ7S.js +0 -26
  455. package/dist/cesium/Workers/chunk-S3ZKQKMM.js +0 -26
  456. package/dist/cesium/Workers/chunk-SFEUMZSK.js +0 -26
  457. package/dist/cesium/Workers/chunk-T75MW4X3.js +0 -26
  458. package/dist/cesium/Workers/chunk-TVO2A75R.js +0 -66
  459. package/dist/cesium/Workers/chunk-UHR36K45.js +0 -27
  460. package/dist/cesium/Workers/chunk-UKJCDZOR.js +0 -26
  461. package/dist/cesium/Workers/chunk-VKVIYER6.js +0 -26
  462. package/dist/cesium/Workers/chunk-VPIQWTRZ.js +0 -26
  463. package/dist/cesium/Workers/chunk-XSX5HRFC.js +0 -26
  464. package/dist/cesium/Workers/chunk-Z5WQQHSL.js +0 -26
  465. package/dist/cesium/Workers/chunk-Z7B2VEL5.js +0 -26
  466. package/dist/cesium/Workers/combineGeometry.js +0 -26
  467. package/dist/cesium/Workers/createBoxGeometry.js +0 -26
  468. package/dist/cesium/Workers/createBoxOutlineGeometry.js +0 -26
  469. package/dist/cesium/Workers/createCircleGeometry.js +0 -26
  470. package/dist/cesium/Workers/createCircleOutlineGeometry.js +0 -26
  471. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +0 -26
  472. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +0 -26
  473. package/dist/cesium/Workers/createCorridorGeometry.js +0 -26
  474. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +0 -26
  475. package/dist/cesium/Workers/createCylinderGeometry.js +0 -26
  476. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +0 -26
  477. package/dist/cesium/Workers/createEllipseGeometry.js +0 -26
  478. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +0 -26
  479. package/dist/cesium/Workers/createEllipsoidGeometry.js +0 -26
  480. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +0 -26
  481. package/dist/cesium/Workers/createFrustumGeometry.js +0 -26
  482. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +0 -26
  483. package/dist/cesium/Workers/createGeometry.js +0 -26
  484. package/dist/cesium/Workers/createGroundPolylineGeometry.js +0 -26
  485. package/dist/cesium/Workers/createPlaneGeometry.js +0 -26
  486. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +0 -26
  487. package/dist/cesium/Workers/createPolygonGeometry.js +0 -26
  488. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +0 -26
  489. package/dist/cesium/Workers/createPolylineGeometry.js +0 -26
  490. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +0 -26
  491. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +0 -26
  492. package/dist/cesium/Workers/createRectangleGeometry.js +0 -26
  493. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +0 -26
  494. package/dist/cesium/Workers/createSimplePolylineGeometry.js +0 -26
  495. package/dist/cesium/Workers/createSphereGeometry.js +0 -26
  496. package/dist/cesium/Workers/createSphereOutlineGeometry.js +0 -26
  497. package/dist/cesium/Workers/createTaskProcessorWorker.js +0 -26
  498. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +0 -26
  499. package/dist/cesium/Workers/createVectorTileGeometries.js +0 -26
  500. package/dist/cesium/Workers/createVectorTilePoints.js +0 -26
  501. package/dist/cesium/Workers/createVectorTilePolygons.js +0 -26
  502. package/dist/cesium/Workers/createVectorTilePolylines.js +0 -26
  503. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -26
  504. package/dist/cesium/Workers/createVerticesFromHeightmap.js +0 -26
  505. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -26
  506. package/dist/cesium/Workers/createWallGeometry.js +0 -26
  507. package/dist/cesium/Workers/createWallOutlineGeometry.js +0 -26
  508. package/dist/cesium/Workers/decodeDraco.js +0 -26
  509. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +0 -26
  510. package/dist/cesium/Workers/decodeI3S.js +0 -26
  511. package/dist/cesium/Workers/transcodeKTX2.js +0 -56
  512. package/dist/cesium/Workers/transferTypedArrayTest.js +0 -26
  513. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +0 -26
  514. package/src/engines/Cesium/core/Globe.tsx +0 -104
  515. /package/src/{Visualizer → shared}/featureFlags.ts +0 -0
  516. /package/src/{Map/Sketch/utils.ts → utils/use-window-event.ts} +0 -0
@@ -37,6 +37,7 @@ export type SceneMode = "3d" | "2d" | "columbus";
37
37
 
38
38
  export type ViewerProperty = {
39
39
  globe?: GlobeProperty;
40
+ geoid?: GeoidProperty;
40
41
  terrain?: TerrainProperty;
41
42
  scene?: SceneProperty;
42
43
  tiles?: TileProperty[];
@@ -56,6 +57,13 @@ export type GlobeProperty = {
56
57
  depthTestAgainstTerrain?: boolean;
57
58
  };
58
59
 
60
+ export type GeoidProperty = {
61
+ server: {
62
+ url: string;
63
+ geoidProperty: string;
64
+ };
65
+ };
66
+
59
67
  export type GlobeAtmosphereProperty = {
60
68
  enabled?: boolean;
61
69
  lightIntensity?: number;
@@ -66,7 +74,7 @@ export type GlobeAtmosphereProperty = {
66
74
 
67
75
  export type TerrainProperty = {
68
76
  enabled?: boolean;
69
- type?: "cesium" | "arcgis" | "cesiumion";
77
+ type?: "cesium" | "cesiumion" | "reearth_terrain";
70
78
  url?: string;
71
79
  normal?: boolean;
72
80
  elevationHeatMap?: ElevationHeatMapProperty;
@@ -122,6 +130,7 @@ export type TileProperty = {
122
130
  id: string;
123
131
  type?: string;
124
132
  url?: string;
133
+ cesiumIonAssetId?: number;
125
134
  opacity?: number;
126
135
  zoomLevel?: number[];
127
136
  zoomLevelForURL?: number[];
@@ -132,6 +141,8 @@ export type TileLabelProperty = {
132
141
  id: string;
133
142
  labelType: "japan_gsi_optimal_bvmap";
134
143
  style: Record<string, any>;
144
+ near?: number;
145
+ far?: number;
135
146
  };
136
147
 
137
148
  export type SkyProperty = {
@@ -61,13 +61,7 @@ export type TimelineCommit = (PlayCommand | PauseCommand | SetTimeCommand | SetO
61
61
  };
62
62
 
63
63
  export type TimelineCommitter = {
64
- source:
65
- | "widgetContext"
66
- | "pluginAPI"
67
- | "featureResource"
68
- | "storyTimelineBlock"
69
- | "storyPage"
70
- | "initialize";
64
+ source: string;
71
65
  id?: string;
72
66
  };
73
67
 
@@ -87,7 +81,7 @@ type Props = {
87
81
  multiplier?: number;
88
82
  rangeType?: "unbounded" | "clamped" | "bounced";
89
83
  };
90
- engineRef?: RefObject<EngineRef>;
84
+ engineRef?: RefObject<EngineRef | null>;
91
85
  timelineManagerRef?: TimelineManagerRef;
92
86
  };
93
87
 
@@ -101,7 +95,7 @@ export default ({ init, engineRef, timelineManagerRef }: Props) => {
101
95
  const [options, setOptions] = useState<TimelineOptions>({
102
96
  animation: init?.animation ?? false,
103
97
  stepType: init?.stepType ?? "rate",
104
- multiplier: init?.stepType === "fixed" ? init?.step ?? 1 : init?.multiplier ?? 1,
98
+ multiplier: init?.stepType === "fixed" ? (init?.step ?? 1) : (init?.multiplier ?? 1),
105
99
  rangeType: init?.rangeType ?? "unbounded",
106
100
  });
107
101
 
@@ -112,7 +106,7 @@ export default ({ init, engineRef, timelineManagerRef }: Props) => {
112
106
  const currentTime = current.getTime();
113
107
 
114
108
  const convertedStartTime = startTime > currentTime ? currentTime : startTime;
115
- const convertedStopTime = stopTime <= currentTime ? currentTime + DEFAULT_RANGE : stopTime;
109
+ const convertedStopTime = stopTime < currentTime ? currentTime + DEFAULT_RANGE : stopTime;
116
110
 
117
111
  return {
118
112
  start: new Date(convertedStartTime),
package/src/Map/utils.ts CHANGED
@@ -6,7 +6,7 @@ export function useGet<T>(value: T): () => T {
6
6
  return useCallback(() => ref.current, []);
7
7
  }
8
8
 
9
- export function wrapRef<T>(ref: RefObject<T>, keys: FunctionKeys<T>): WrappedRef<T> {
9
+ export function wrapRef<T>(ref: RefObject<T | null>, keys: FunctionKeys<T>): WrappedRef<T> {
10
10
  return Object.fromEntries(
11
11
  (Object.keys(keys) as (keyof T)[]).map(k => {
12
12
  return [k, (...args: any[]) => (ref.current?.[k] as any)?.(...args)];
@@ -1,10 +1,13 @@
1
1
  import type { FallbackProps } from "react-error-boundary";
2
2
 
3
3
  export default function Error({ error, resetErrorBoundary }: FallbackProps) {
4
+ const err = error as Error;
5
+ const errorMessage = err?.message ?? String(error);
6
+
4
7
  return (
5
8
  <div>
6
9
  <h1>Oops! An Error Occurred</h1>
7
- <p>{error.message}</p>
10
+ <p>{errorMessage}</p>
8
11
  <p>
9
12
  <button style={{ color: "#fff" }} onClick={resetErrorBoundary}>
10
13
  Retry
@@ -2,11 +2,11 @@ import { FC, PropsWithChildren, RefObject, createContext, useContext, useMemo }
2
2
 
3
3
  import { MapRef } from "../Map";
4
4
 
5
- const context = createContext<RefObject<MapRef> | undefined>(undefined);
5
+ const context = createContext<RefObject<MapRef | null> | undefined>(undefined);
6
6
 
7
- export type Context = RefObject<MapRef>;
7
+ export type Context = RefObject<MapRef | null>;
8
8
 
9
- export const useVisualizer = (): RefObject<MapRef> => {
9
+ export const useVisualizer = (): RefObject<MapRef | null> => {
10
10
  const value = useContext(context);
11
11
  if (!value) {
12
12
  throw new Error("Visualizer is not declared. You have to use this hook inside of Visualizer");
@@ -14,11 +14,11 @@ export const useVisualizer = (): RefObject<MapRef> => {
14
14
  return value;
15
15
  };
16
16
 
17
- const filterMapRefToContext = (mapRef: RefObject<MapRef>): Context => {
17
+ const filterMapRefToContext = (mapRef: RefObject<MapRef | null>): Context => {
18
18
  return mapRef as Context;
19
19
  };
20
20
 
21
- export const VisualizerProvider: FC<PropsWithChildren<{ mapRef: RefObject<MapRef> }>> = ({
21
+ export const VisualizerProvider: FC<PropsWithChildren<{ mapRef: RefObject<MapRef | null> }>> = ({
22
22
  mapRef,
23
23
  children,
24
24
  }) => {
@@ -9,8 +9,8 @@ import {
9
9
  LayerSelectWithRectStart,
10
10
  } from "../Map";
11
11
  import { SketchEventCallback, SketchType } from "../Map/Sketch/types";
12
+ import { InteractionModeType } from "../shared/interactionMode";
12
13
 
13
- import { InteractionModeType } from "./interactionMode";
14
14
  import { Viewport } from "./useViewport";
15
15
 
16
16
  type CoreContext = {
@@ -26,6 +26,8 @@ type CoreContext = {
26
26
  handleCameraForceHorizontalRollChange?: (enable?: boolean) => void;
27
27
  handleInteractionModeChange?: (mode?: InteractionModeType | undefined) => void;
28
28
  onSketchPluginFeatureCreate?: (cb: SketchEventCallback) => void;
29
+ onSketchPluginFeatureUpdate?: (cb: SketchEventCallback) => void;
30
+ onSketchPluginFeatureDelete?: (cb: SketchEventCallback) => void;
29
31
  onSketchTypeChange?: (cb: (type: SketchType | undefined) => void) => void;
30
32
  onLayerVisibility?: (cb: (e: LayerVisibilityEvent) => void) => void;
31
33
  onLayerLoad?: (cb: (e: LayerLoadEvent) => void) => void;
@@ -7,7 +7,6 @@ import type {
7
7
  Camera,
8
8
  ComputedLayer,
9
9
  LayerEditEvent,
10
- CursorType,
11
10
  LayerVisibilityEvent,
12
11
  LayerLoadEvent,
13
12
  LayerSelectWithRectStart,
@@ -17,9 +16,9 @@ import type {
17
16
  } from "../Map";
18
17
  import { SketchEventCallback, SketchEventProps, SketchType } from "../Map/Sketch/types";
19
18
  import { TimelineManagerRef } from "../Map/useTimelineManager";
19
+ import type { InteractionModeType } from "../shared/interactionMode";
20
+ import { INTERACTION_MODES } from "../shared/interactionMode";
20
21
 
21
- import type { InteractionModeType } from "./interactionMode";
22
- import { INTERACTION_MODES } from "./interactionMode";
23
22
  import useCoreAPI from "./useCoreAPI";
24
23
  import useViewport from "./useViewport";
25
24
 
@@ -56,7 +55,7 @@ export default function useHooks(
56
55
  ) {
57
56
  const mapRef = useRef<MapRef>(null);
58
57
 
59
- useImperativeHandle(ref, () => mapRef.current, []);
58
+ useImperativeHandle(ref, () => mapRef.current as MapRef, []);
60
59
 
61
60
  const wrapperRef = useRef<HTMLDivElement>(null);
62
61
 
@@ -82,12 +81,24 @@ export default function useHooks(
82
81
  reason: LayerSelectionReason | undefined,
83
82
  info: SelectedFeatureInfo | undefined,
84
83
  ) => {
85
- if (selectedLayer.layerId === layerId && selectedLayer.featureId === featureId) return;
84
+ const isSketchLayer =
85
+ selectedLayer.layer?.layer?.type === "simple" &&
86
+ selectedLayer.layer?.layer?.data?.isSketchLayer;
87
+ // Sketch layer feature has a fixed featureId, we need to exclude it from the skip condition
88
+ if (
89
+ selectedLayer.layerId === layerId &&
90
+ selectedLayer.featureId === featureId &&
91
+ !isSketchLayer
92
+ )
93
+ return;
86
94
 
87
95
  const computedLayer = await layer?.();
88
96
  const computedFeature =
89
97
  layerId && featureId
90
- ? mapRef.current?.engine.findComputedFeatureById?.(layerId, featureId) ?? info?.feature
98
+ ? ((isSketchLayer
99
+ ? computedLayer?.features?.find(f => f.id === featureId)
100
+ : mapRef.current?.engine.findComputedFeatureById?.(layerId, featureId)) ??
101
+ info?.feature)
91
102
  : undefined;
92
103
 
93
104
  selectFeature(
@@ -108,7 +119,7 @@ export default function useHooks(
108
119
  [selectedLayer, onLayerSelect],
109
120
  );
110
121
 
111
- const timelineManagerRef: TimelineManagerRef = useRef();
122
+ const timelineManagerRef: TimelineManagerRef = useRef(undefined);
112
123
 
113
124
  // camera
114
125
  const [camera, changeCamera] = useValue(initialCamera, onCameraChange);
@@ -119,24 +130,22 @@ export default function useHooks(
119
130
  }, []);
120
131
 
121
132
  // interaction mode
122
- const [_interactionMode, changeInteractionMode] = useValue(
123
- initialInteractionMode,
133
+ const [interactionMode, changeInteractionMode] = useValue(
134
+ initialInteractionMode || "default",
124
135
  onInteractionModeChange,
125
136
  );
126
- const interactionMode = _interactionMode || "default";
127
137
 
128
- const [cursor, setCursor] = useState<CursorType>("auto");
129
138
  useEffect(() => {
130
- setCursor(
131
- interactionMode === "sketch" ? "crosshair" : interactionMode === "move" ? "grab" : "auto",
132
- );
139
+ if (interactionMode === "default") {
140
+ mapRef?.current?.engine?.setCursor("auto");
141
+ }
133
142
  }, [interactionMode]);
134
143
 
135
144
  // feature flags
136
- const featureFlags = INTERACTION_MODES[interactionMode];
145
+ const featureFlags = INTERACTION_MODES[interactionMode ?? "default"];
137
146
 
138
147
  // layer edit
139
- const onLayerEditRef = useRef<(e: LayerEditEvent) => void>();
148
+ const onLayerEditRef = useRef<(e: LayerEditEvent) => void>(undefined);
140
149
  const onLayerEdit = useCallback((cb: (e: LayerEditEvent) => void) => {
141
150
  onLayerEditRef.current = cb;
142
151
  }, []);
@@ -145,7 +154,7 @@ export default function useHooks(
145
154
  }, []);
146
155
 
147
156
  // layer visiblity
148
- const onLayerVisibilityRef = useRef<(e: LayerVisibilityEvent) => void>();
157
+ const onLayerVisibilityRef = useRef<(e: LayerVisibilityEvent) => void>(undefined);
149
158
  const onLayerVisibility = useCallback((cb: (e: LayerVisibilityEvent) => void) => {
150
159
  onLayerVisibilityRef.current = cb;
151
160
  }, []);
@@ -154,7 +163,7 @@ export default function useHooks(
154
163
  }, []);
155
164
 
156
165
  // layer load
157
- const onLayerLoadRef = useRef<(e: LayerLoadEvent) => void>();
166
+ const onLayerLoadRef = useRef<(e: LayerLoadEvent) => void>(undefined);
158
167
  const onLayerLoad = useCallback((cb: (e: LayerLoadEvent) => void) => {
159
168
  onLayerLoadRef.current = cb;
160
169
  }, []);
@@ -163,21 +172,21 @@ export default function useHooks(
163
172
  }, []);
164
173
 
165
174
  // multiple feature selection
166
- const onLayerSelectWithRectStartRef = useRef<(e: LayerSelectWithRectStart) => void>();
175
+ const onLayerSelectWithRectStartRef = useRef<(e: LayerSelectWithRectStart) => void>(undefined);
167
176
  const onLayerSelectWithRectStart = useCallback((cb: (e: LayerSelectWithRectStart) => void) => {
168
177
  onLayerSelectWithRectStartRef.current = cb;
169
178
  }, []);
170
179
  const handleLayerSelectWithRectStart = useCallback((e: LayerSelectWithRectStart) => {
171
180
  onLayerSelectWithRectStartRef.current?.(e);
172
181
  }, []);
173
- const onLayerSelectWithRectMoveRef = useRef<(e: LayerSelectWithRectMove) => void>();
182
+ const onLayerSelectWithRectMoveRef = useRef<(e: LayerSelectWithRectMove) => void>(undefined);
174
183
  const onLayerSelectWithRectMove = useCallback((cb: (e: LayerSelectWithRectMove) => void) => {
175
184
  onLayerSelectWithRectMoveRef.current = cb;
176
185
  }, []);
177
186
  const handleLayerSelectWithRectMove = useCallback((e: LayerSelectWithRectMove) => {
178
187
  onLayerSelectWithRectMoveRef.current?.(e);
179
188
  }, []);
180
- const onLayerSelectWithRectEndRef = useRef<(e: LayerSelectWithRectEnd) => void>();
189
+ const onLayerSelectWithRectEndRef = useRef<(e: LayerSelectWithRectEnd) => void>(undefined);
181
190
  const onLayerSelectWithRectEnd = useCallback((cb: (e: LayerSelectWithRectEnd) => void) => {
182
191
  onLayerSelectWithRectEndRef.current = cb;
183
192
  }, []);
@@ -194,6 +203,25 @@ export default function useHooks(
194
203
  onSketchPluginFeatureCreateCallbacksRef.current.forEach(fn => fn(props));
195
204
  }, []);
196
205
 
206
+ const onSketchPluginFeatureUpdateCallbacksRef = useRef<SketchEventCallback[]>([]);
207
+ const onSketchPluginFeatureUpdate = useCallback((cb: SketchEventCallback) => {
208
+ onSketchPluginFeatureUpdateCallbacksRef.current.push(cb);
209
+ }, []);
210
+ const handleSketchPluginFeatureUpdate = useCallback((props: SketchEventProps) => {
211
+ onSketchPluginFeatureUpdateCallbacksRef.current.forEach(fn => fn(props));
212
+ }, []);
213
+
214
+ const onSketchPluginFeatureDeleteCallbacksRef = useRef<SketchEventCallback[]>([]);
215
+ const onSketchPluginFeatureDelete = useCallback((cb: SketchEventCallback) => {
216
+ onSketchPluginFeatureDeleteCallbacksRef.current.push(cb);
217
+ }, []);
218
+ const handleSketchPluginFeatureDelete = useCallback(
219
+ (props: { layerId: string; featureId: string }) => {
220
+ onSketchPluginFeatureDeleteCallbacksRef.current.forEach(fn => fn(props));
221
+ },
222
+ [],
223
+ );
224
+
197
225
  const onSketchTypeChangeCallbacksRef = useRef<((type: SketchType | undefined) => void)[]>([]);
198
226
  const onSketchTypeChange = useCallback((cb: (type: SketchType | undefined) => void) => {
199
227
  onSketchTypeChangeCallbacksRef.current.push(cb);
@@ -244,6 +272,8 @@ export default function useHooks(
244
272
  handleCameraForceHorizontalRollChange,
245
273
  handleInteractionModeChange: changeInteractionMode,
246
274
  onSketchPluginFeatureCreate,
275
+ onSketchPluginFeatureUpdate,
276
+ onSketchPluginFeatureDelete,
247
277
  onSketchTypeChange,
248
278
  onLayerVisibility,
249
279
  onLayerLoad,
@@ -261,6 +291,8 @@ export default function useHooks(
261
291
  handleCameraForceHorizontalRollChange,
262
292
  onLayerEdit,
263
293
  onSketchPluginFeatureCreate,
294
+ onSketchPluginFeatureUpdate,
295
+ onSketchPluginFeatureDelete,
264
296
  onSketchTypeChange,
265
297
  onLayerVisibility,
266
298
  onLayerLoad,
@@ -290,10 +322,10 @@ export default function useHooks(
290
322
  featureFlags,
291
323
  isLayerDragging,
292
324
  timelineManagerRef,
293
- cursor,
294
325
  cameraForceHorizontalRoll,
295
326
  coreContextValue,
296
327
  containerStyle,
328
+ overriddenInteractionMode: interactionMode,
297
329
  handleLayerSelect,
298
330
  handleLayerDrag,
299
331
  handleLayerDrop,
@@ -301,6 +333,8 @@ export default function useHooks(
301
333
  handleCameraChange: changeCamera,
302
334
  handleInteractionModeChange: changeInteractionMode,
303
335
  handleSketchPluginFeatureCreate,
336
+ handleSketchPluginFeatureUpdate,
337
+ handleSketchPluginFeatureDelete,
304
338
  handleSketchTypeChange,
305
339
  handleLayerVisibility,
306
340
  handleLayerLoad,
@@ -1,5 +1,6 @@
1
1
  import { Meta, StoryObj } from "@storybook/react";
2
2
  import { ComponentProps, FC, useEffect, useState } from "react";
3
+ import { fn } from "storybook/test";
3
4
 
4
5
  import { useVisualizer } from "./context";
5
6
 
@@ -7,6 +8,20 @@ import { CoreVisualizer } from ".";
7
8
 
8
9
  export default {
9
10
  component: CoreVisualizer,
11
+ args: {
12
+ // Explicit action handlers for callback props
13
+ onMount: fn(),
14
+ onLayerSelect: fn(),
15
+ onCameraChange: fn(),
16
+ onLayerDrag: fn(),
17
+ onLayerDrop: fn(),
18
+ onLayerEdit: fn(),
19
+ onLayerSelectWithRectStart: fn(),
20
+ onLayerSelectWithRectMove: fn(),
21
+ onLayerSelectWithRectEnd: fn(),
22
+ onLayerVisibility: fn(),
23
+ onLayerLoad: fn(),
24
+ },
10
25
  } as Meta;
11
26
 
12
27
  type Story = StoryObj<typeof CoreVisualizer>;
@@ -12,22 +12,24 @@ import {
12
12
  type LatLng,
13
13
  type Cluster,
14
14
  type ComputedLayer,
15
+ type Credits,
16
+ type CustomProviderConfig,
15
17
  } from "../Map";
16
18
  import { SketchFeature, SketchType } from "../Map/Sketch/types";
19
+ import type { InteractionModeType } from "../shared/interactionMode";
17
20
 
18
21
  import { VisualizerProvider } from "./context";
19
22
  import { coreContext } from "./coreContext";
20
23
  import { engines, type EngineType } from "./engines";
21
24
  import Err from "./Error";
22
25
  import useHooks from "./hooks";
23
- import type { InteractionModeType } from "./interactionMode";
24
26
 
25
27
  export { useVisualizer, type Context as VisualizerContext } from "./context";
26
28
  export * from "./engines";
27
29
  export * from "./useViewport";
28
30
  export * from "./coreContext";
29
- export * from "./featureFlags";
30
- export * from "./interactionMode";
31
+ export * from "../shared/featureFlags";
32
+ export * from "../shared/interactionMode";
31
33
 
32
34
  export type CoreVisualizerProps = {
33
35
  engine?: EngineType;
@@ -41,11 +43,13 @@ export type CoreVisualizerProps = {
41
43
  interactionMode?: InteractionModeType;
42
44
  shouldRender?: boolean;
43
45
  meta?: Record<string, unknown>;
46
+ customProvider?: CustomProviderConfig;
44
47
  style?: CSSProperties;
45
48
  small?: boolean;
46
49
  ready?: boolean;
47
50
  hiddenLayers?: string[];
48
51
  zoomedLayerId?: string;
52
+ displayCredits?: boolean;
49
53
  onCameraChange?: (camera: Camera) => void;
50
54
  onLayerDrop?: (layerId: string, propertyKey: string, position: LatLng | undefined) => void;
51
55
  onLayerSelect?: (
@@ -58,7 +62,11 @@ export type CoreVisualizerProps = {
58
62
  onMount?: () => void;
59
63
  onSketchTypeChangeProp?: (type: SketchType | undefined) => void;
60
64
  onSketchFeatureCreate?: (feature: SketchFeature | null) => void;
65
+ onSketchFeatureUpdate?: (feature: SketchFeature | null) => void;
66
+ onSketchFeatureDelete?: (layerId: string, featureId: string) => void;
61
67
  onInteractionModeChange?: (mode: InteractionModeType) => void;
68
+ onAPIReady?: () => void;
69
+ onCreditsUpdate?: (credits?: Credits) => void;
62
70
  };
63
71
 
64
72
  export const CoreVisualizer = memo(
@@ -79,6 +87,8 @@ export const CoreVisualizer = memo(
79
87
  interactionMode,
80
88
  shouldRender,
81
89
  meta,
90
+ customProvider,
91
+ displayCredits = true,
82
92
  style,
83
93
  zoomedLayerId,
84
94
  children,
@@ -90,6 +100,10 @@ export const CoreVisualizer = memo(
90
100
  onMount,
91
101
  onSketchTypeChangeProp,
92
102
  onSketchFeatureCreate,
103
+ onSketchFeatureUpdate,
104
+ onSketchFeatureDelete,
105
+ onAPIReady,
106
+ onCreditsUpdate,
93
107
  },
94
108
  ref: Ref<MapRef | null>,
95
109
  ) => {
@@ -101,10 +115,10 @@ export const CoreVisualizer = memo(
101
115
  featureFlags,
102
116
  isLayerDragging,
103
117
  timelineManagerRef,
104
- cursor,
105
118
  cameraForceHorizontalRoll,
106
119
  coreContextValue,
107
120
  containerStyle,
121
+ overriddenInteractionMode,
108
122
  handleLayerSelect,
109
123
  handleLayerDrag,
110
124
  handleLayerDrop,
@@ -112,6 +126,8 @@ export const CoreVisualizer = memo(
112
126
  handleCameraChange,
113
127
  handleInteractionModeChange,
114
128
  handleSketchPluginFeatureCreate,
129
+ handleSketchPluginFeatureUpdate,
130
+ handleSketchPluginFeatureDelete,
115
131
  handleSketchTypeChange,
116
132
  handleLayerVisibility,
117
133
  handleLayerLoad,
@@ -152,6 +168,8 @@ export const CoreVisualizer = memo(
152
168
  isLayerDragging={isLayerDragging}
153
169
  isLayerDraggable={isEditable}
154
170
  meta={meta}
171
+ customProvider={customProvider}
172
+ displayCredits={displayCredits}
155
173
  style={style}
156
174
  featureFlags={featureFlags}
157
175
  shouldRender={shouldRender}
@@ -160,9 +178,8 @@ export const CoreVisualizer = memo(
160
178
  small={small}
161
179
  ready={ready}
162
180
  timelineManagerRef={timelineManagerRef}
163
- interactionMode={interactionMode}
181
+ interactionMode={overriddenInteractionMode}
164
182
  selectedFeature={selectedFeature}
165
- cursor={cursor}
166
183
  onCameraChange={handleCameraChange}
167
184
  onLayerDrag={handleLayerDrag}
168
185
  onLayerDrop={handleLayerDrop}
@@ -171,6 +188,10 @@ export const CoreVisualizer = memo(
171
188
  overrideInteractionMode={handleInteractionModeChange}
172
189
  onSketchFeatureCreate={onSketchFeatureCreate}
173
190
  onSketchPluginFeatureCreate={handleSketchPluginFeatureCreate}
191
+ onSketchFeatureUpdate={onSketchFeatureUpdate}
192
+ onSketchPluginFeatureUpdate={handleSketchPluginFeatureUpdate}
193
+ onSketchFeatureDelete={onSketchFeatureDelete}
194
+ onSketchPluginFeatureDelete={handleSketchPluginFeatureDelete}
174
195
  onSketchTypeChange={handleSketchTypeChange}
175
196
  onMount={onMount}
176
197
  onLayerVisibility={handleLayerVisibility}
@@ -178,6 +199,8 @@ export const CoreVisualizer = memo(
178
199
  onLayerSelectWithRectStart={handleLayerSelectWithRectStart}
179
200
  onLayerSelectWithRectMove={handleLayerSelectWithRectMove}
180
201
  onLayerSelectWithRectEnd={handleLayerSelectWithRectEnd}
202
+ onAPIReady={onAPIReady}
203
+ onCreditsUpdate={onCreditsUpdate}
181
204
  />
182
205
  <coreContext.Provider value={coreContextValue}>{children}</coreContext.Provider>
183
206
  </div>
@@ -10,7 +10,7 @@ export type Viewport = {
10
10
  };
11
11
 
12
12
  type Props = {
13
- wrapperRef: RefObject<HTMLDivElement>;
13
+ wrapperRef: RefObject<HTMLDivElement | null>;
14
14
  };
15
15
 
16
16
  export default ({ wrapperRef }: Props) => {
@@ -127,7 +127,7 @@ export const useHooks = ({
127
127
  );
128
128
 
129
129
  // ScalePoint event handlers
130
- const currentPointIndex = useRef<number>();
130
+ const currentPointIndex = useRef<number>(undefined);
131
131
  const handlePointMouseDown: PointEventCallback = useCallback(
132
132
  (_, { index }) => {
133
133
  if (!viewer) {
@@ -138,7 +138,7 @@ export const useHooks = ({
138
138
  },
139
139
  [viewer],
140
140
  );
141
- const prevMousePosition2dForPoint = useRef<Cartesian2>();
141
+ const prevMousePosition2dForPoint = useRef<Cartesian2>(undefined);
142
142
  const handlePointMouseMove: PointEventCallback = useCallback(
143
143
  (e, { position, oppositePosition, pointLocal, index, layerId }) => {
144
144
  if (
@@ -282,7 +282,7 @@ export const useHooks = ({
282
282
  }, [viewer]);
283
283
 
284
284
  // Edge event handlers
285
- const currentEdgeIndex = useRef<number>();
285
+ const currentEdgeIndex = useRef<number>(undefined);
286
286
  const handleEdgeMouseDown: EdgeEventCallback = useCallback(
287
287
  (_, { index }) => {
288
288
  if (!viewer) {
@@ -293,7 +293,7 @@ export const useHooks = ({
293
293
  },
294
294
  [viewer],
295
295
  );
296
- const prevMouseXAxisForEdge = useRef<number>();
296
+ const prevMouseXAxisForEdge = useRef<number>(undefined);
297
297
  const handleEdgeMouseMove: EdgeEventCallback = useCallback(
298
298
  (e, { index, layerId }) => {
299
299
  if (currentEdgeIndex.current !== index) {
@@ -59,7 +59,7 @@ export const useHooks = ({
59
59
  () =>
60
60
  new ColorMaterialProperty(
61
61
  new CallbackProperty(
62
- () => (isEdgeHovered.current ? hoverColor ?? fillColor : fillColor),
62
+ () => (isEdgeHovered.current ? (hoverColor ?? fillColor) : fillColor),
63
63
  false,
64
64
  ),
65
65
  ),
@@ -54,7 +54,7 @@ export const useHooks = ({
54
54
  const [outlineColorCb] = useState(
55
55
  () =>
56
56
  new CallbackProperty(
57
- () => (isActiveRef.current ? activeOutlineColor ?? outlineColor : outlineColor),
57
+ () => (isActiveRef.current ? (activeOutlineColor ?? outlineColor) : outlineColor),
58
58
  false,
59
59
  ),
60
60
  );
@@ -68,11 +68,17 @@ function screenProjectVector(
68
68
  ray.origin = position;
69
69
  ray.direction = direction;
70
70
  const nearPoint2d = scene.cartesianToCanvasCoordinates(Ray.getPoint(ray, 0), new Cartesian2());
71
+ if (!nearPoint2d) {
72
+ return result;
73
+ }
71
74
 
72
75
  const farPoint2d = scene.cartesianToCanvasCoordinates(
73
76
  Ray.getPoint(ray, length),
74
77
  new Cartesian2(),
75
78
  );
79
+ if (!farPoint2d) {
80
+ return result;
81
+ }
76
82
  const screenVector2d = Cartesian2.subtract(farPoint2d, nearPoint2d, result);
77
83
  return screenVector2d;
78
84
  }
@@ -5,7 +5,6 @@ import { Map, Props } from "../../../../Map";
5
5
 
6
6
  export default {
7
7
  component: Map,
8
- parameters: { actions: { argTypesRegex: "^on.*" } },
9
8
  } as Meta;
10
9
 
11
10
  const Template: StoryFn<Props> = args => <Map {...args} />;
@@ -7,6 +7,7 @@ export function getFieldOfView(camera: Camera, zoom: number): number {
7
7
  const fov = getFieldOfViewSeparate(camera, zoom, cartesianScratch);
8
8
  const frustum = camera.frustum;
9
9
  invariant(frustum instanceof PerspectiveFrustum);
10
+ invariant(frustum.aspectRatio !== undefined);
10
11
  return frustum.aspectRatio > 1 ? fov.x : fov.y;
11
12
  }
12
13
 
@@ -17,6 +18,7 @@ export function getFieldOfViewSeparate(
17
18
  ): Cartesian2 {
18
19
  const frustum = camera.frustum;
19
20
  invariant(frustum instanceof PerspectiveFrustum);
21
+ invariant(frustum.aspectRatio !== undefined);
20
22
  result.x = Math.atan(Math.pow(2, 1 - zoom)) * 2;
21
23
  result.y = 2 * Math.atan(frustum.aspectRatio * Math.tan(result.x / 2));
22
24
  return result;
@@ -5,7 +5,6 @@ import { Map, Props } from "../../../../Map";
5
5
 
6
6
  export default {
7
7
  component: Map,
8
- parameters: { actions: { argTypesRegex: "^on.*" } },
9
8
  } as Meta;
10
9
 
11
10
  const Template: StoryFn<Props> = args => <Map {...args} />;
@@ -62,7 +62,7 @@ export const HeatmapMesh = memo(
62
62
  ) => {
63
63
  const { scene } = useCesium();
64
64
  const groundPrimitives = scene?.groundPrimitives;
65
- const primitiveRef = useRef<GroundPrimitive>();
65
+ const primitiveRef = useRef<GroundPrimitive>(undefined);
66
66
 
67
67
  const material = useConstant(() =>
68
68
  createHeatmapMeshMaterial({
@@ -228,7 +228,7 @@ export default function Marker({ property, id, isVisible, geometry, layer, featu
228
228
  position={
229
229
  useTransition
230
230
  ? (translateCallbackProperty as unknown as PositionProperty)
231
- : translatedCoords ?? pos
231
+ : (translatedCoords ?? pos)
232
232
  }
233
233
  layerId={layer?.id}
234
234
  featureId={feature?.id}