@map-colonies/react-components 3.12.2 → 3.13.0

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 (376) hide show
  1. package/.eslintignore +1 -1
  2. package/.storybook/main.js +13 -13
  3. package/.storybook/manager.js +6 -6
  4. package/.storybook/preview-head.html +21 -21
  5. package/.storybook/preview.js +18 -18
  6. package/.storybook/theme.js +9 -9
  7. package/CHANGELOG.md +830 -810
  8. package/README.md +53 -53
  9. package/dist/autocomplete/autocomplete.css +25 -25
  10. package/dist/autocomplete/autocomplete.d.ts +33 -33
  11. package/dist/autocomplete/autocomplete.js +478 -478
  12. package/dist/autocomplete/index.d.ts +1 -1
  13. package/dist/autocomplete/index.js +5 -5
  14. package/dist/box/box.d.ts +3 -3
  15. package/dist/box/box.js +35 -35
  16. package/dist/box/index.d.ts +1 -1
  17. package/dist/box/index.js +5 -5
  18. package/dist/cesium-map/data-sources/custom.data-source.d.ts +5 -5
  19. package/dist/cesium-map/data-sources/custom.data-source.js +23 -23
  20. package/dist/cesium-map/data-sources/drawings.data-source.d.ts +34 -34
  21. package/dist/cesium-map/data-sources/drawings.data-source.js +193 -187
  22. package/dist/cesium-map/data-sources/index.d.ts +2 -2
  23. package/dist/cesium-map/data-sources/index.js +14 -14
  24. package/dist/cesium-map/entities/entity.d.ts +5 -5
  25. package/dist/cesium-map/entities/entity.description.d.ts +6 -6
  26. package/dist/cesium-map/entities/entity.description.js +27 -27
  27. package/dist/cesium-map/entities/entity.js +23 -23
  28. package/dist/cesium-map/entities/graphics/polygon.graphics.d.ts +5 -5
  29. package/dist/cesium-map/entities/graphics/polygon.graphics.js +23 -23
  30. package/dist/cesium-map/entities/graphics/polyline.graphics.d.ts +5 -5
  31. package/dist/cesium-map/entities/graphics/polyline.graphics.js +23 -23
  32. package/dist/cesium-map/entities/graphics/rectangle.graphics.d.ts +5 -5
  33. package/dist/cesium-map/entities/graphics/rectangle.graphics.js +23 -23
  34. package/dist/cesium-map/entities/index.d.ts +4 -4
  35. package/dist/cesium-map/entities/index.js +16 -16
  36. package/dist/cesium-map/index.d.ts +8 -8
  37. package/dist/cesium-map/index.js +20 -20
  38. package/dist/cesium-map/layers/3d.tileset.d.ts +7 -7
  39. package/dist/cesium-map/layers/3d.tileset.js +43 -43
  40. package/dist/cesium-map/layers/3d.tileset.with.update.d.ts +6 -6
  41. package/dist/cesium-map/layers/3d.tileset.with.update.js +115 -115
  42. package/dist/cesium-map/layers/geojson.layer.d.ts +5 -5
  43. package/dist/cesium-map/layers/geojson.layer.js +23 -23
  44. package/dist/cesium-map/layers/imagery.layer.d.ts +6 -6
  45. package/dist/cesium-map/layers/imagery.layer.js +68 -68
  46. package/dist/cesium-map/layers/index.d.ts +7 -7
  47. package/dist/cesium-map/layers/index.js +19 -19
  48. package/dist/cesium-map/layers/osm.layer.d.ts +9 -9
  49. package/dist/cesium-map/layers/osm.layer.js +36 -36
  50. package/dist/cesium-map/layers/wms.layer.d.ts +9 -9
  51. package/dist/cesium-map/layers/wms.layer.js +36 -36
  52. package/dist/cesium-map/layers/wmts.layer.d.ts +9 -9
  53. package/dist/cesium-map/layers/wmts.layer.js +36 -36
  54. package/dist/cesium-map/layers/xyz.layer.d.ts +9 -9
  55. package/dist/cesium-map/layers/xyz.layer.js +36 -36
  56. package/dist/cesium-map/layers-manager.d.ts +55 -55
  57. package/dist/cesium-map/layers-manager.js +246 -246
  58. package/dist/cesium-map/map-legend/MapLegend.css +136 -135
  59. package/dist/cesium-map/map-legend/MapLegend.d.ts +15 -15
  60. package/dist/cesium-map/map-legend/MapLegend.js +57 -57
  61. package/dist/cesium-map/map-legend/MapLegendList.d.ts +13 -13
  62. package/dist/cesium-map/map-legend/MapLegendList.js +43 -43
  63. package/dist/cesium-map/map-legend/MapLegendSidebar.d.ts +16 -16
  64. package/dist/cesium-map/map-legend/MapLegendSidebar.js +20 -20
  65. package/dist/cesium-map/map-legend/MapLegendToggle.d.ts +7 -7
  66. package/dist/cesium-map/map-legend/MapLegendToggle.js +20 -20
  67. package/dist/cesium-map/map-legend/index.d.ts +3 -3
  68. package/dist/cesium-map/map-legend/index.js +14 -14
  69. package/dist/cesium-map/map.css +59 -59
  70. package/dist/cesium-map/map.d.ts +63 -59
  71. package/dist/cesium-map/map.js +311 -305
  72. package/dist/cesium-map/map.types.d.ts +8 -8
  73. package/dist/cesium-map/map.types.js +12 -12
  74. package/dist/cesium-map/proxied.types.d.ts +30 -30
  75. package/dist/cesium-map/proxied.types.js +133 -132
  76. package/dist/cesium-map/settings/base-maps.css +37 -37
  77. package/dist/cesium-map/settings/base-maps.d.ts +7 -7
  78. package/dist/cesium-map/settings/base-maps.js +78 -78
  79. package/dist/cesium-map/settings/scene-modes.css +19 -19
  80. package/dist/cesium-map/settings/scene-modes.d.ts +7 -7
  81. package/dist/cesium-map/settings/scene-modes.js +65 -65
  82. package/dist/cesium-map/settings/settings.css +52 -52
  83. package/dist/cesium-map/settings/settings.d.ts +23 -23
  84. package/dist/cesium-map/settings/settings.js +79 -79
  85. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts +3 -3
  86. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js +245 -245
  87. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts +9 -9
  88. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js +202 -202
  89. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts +50 -50
  90. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js +136 -136
  91. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.d.ts +2 -2
  92. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.js +38 -38
  93. package/dist/cesium-map/tools/coordinates-tracker.tool.css +11 -11
  94. package/dist/cesium-map/tools/coordinates-tracker.tool.d.ts +7 -7
  95. package/dist/cesium-map/tools/coordinates-tracker.tool.js +86 -78
  96. package/dist/cesium-map/tools/draw/drawHelper.css +101 -101
  97. package/dist/cesium-map/tools/draw/drawHelper.d.ts +28 -28
  98. package/dist/cesium-map/tools/draw/drawHelper.js +1694 -1694
  99. package/dist/cesium-map/tools/geojson/geojson-to-primitive.d.ts +4 -4
  100. package/dist/cesium-map/tools/geojson/geojson-to-primitive.js +41 -41
  101. package/dist/cesium-map/tools/geojson/index.d.ts +2 -2
  102. package/dist/cesium-map/tools/geojson/index.js +14 -14
  103. package/dist/cesium-map/tools/geojson/point.geojson.d.ts +7 -3
  104. package/dist/cesium-map/tools/geojson/point.geojson.js +47 -21
  105. package/dist/cesium-map/tools/geojson/polygon.geojson.d.ts +3 -3
  106. package/dist/cesium-map/tools/geojson/polygon.geojson.js +24 -24
  107. package/dist/cesium-map/tools/geojson/rectangle.geojson.d.ts +3 -3
  108. package/dist/cesium-map/tools/geojson/rectangle.geojson.js +44 -44
  109. package/dist/cesium-map/tools/inspector.tool.d.ts +4 -4
  110. package/dist/cesium-map/tools/inspector.tool.js +33 -33
  111. package/dist/cesium-map/tools/scale-tracker.tool.css +16 -16
  112. package/dist/cesium-map/tools/scale-tracker.tool.d.ts +8 -8
  113. package/dist/cesium-map/tools/scale-tracker.tool.js +158 -158
  114. package/dist/cesium-map/tools/terranian-height.tool.d.ts +4 -4
  115. package/dist/cesium-map/tools/terranian-height.tool.js +114 -114
  116. package/dist/cssbaseline/cssbaseline.d.ts +5 -5
  117. package/dist/cssbaseline/cssbaseline.js +41 -41
  118. package/dist/cssbaseline/index.d.ts +1 -1
  119. package/dist/cssbaseline/index.js +6 -6
  120. package/dist/date-picker/date-picker.css +9 -9
  121. package/dist/date-picker/date-picker.d.ts +14 -14
  122. package/dist/date-picker/date-picker.js +78 -78
  123. package/dist/date-picker/index.d.ts +1 -1
  124. package/dist/date-picker/index.js +13 -13
  125. package/dist/date-range-picker/date-range-picker.css +9 -9
  126. package/dist/date-range-picker/date-range-picker.d.ts +26 -26
  127. package/dist/date-range-picker/date-range-picker.form-control.css +3 -3
  128. package/dist/date-range-picker/date-range-picker.form-control.d.ts +28 -28
  129. package/dist/date-range-picker/date-range-picker.form-control.js +95 -95
  130. package/dist/date-range-picker/date-range-picker.js +104 -104
  131. package/dist/date-range-picker/index.d.ts +2 -2
  132. package/dist/date-range-picker/index.js +14 -14
  133. package/dist/file-picker/file-picker.css +63 -63
  134. package/dist/file-picker/file-picker.d.ts +276 -276
  135. package/dist/file-picker/file-picker.js +151 -151
  136. package/dist/file-picker/fs-map.json +1556 -1556
  137. package/dist/file-picker/index.d.ts +2 -2
  138. package/dist/file-picker/index.js +14 -14
  139. package/dist/file-picker/localization.d.ts +11 -11
  140. package/dist/file-picker/localization.js +124 -124
  141. package/dist/index.d.ts +13 -13
  142. package/dist/index.js +25 -25
  143. package/dist/map-filter-container/container-map.css +5 -5
  144. package/dist/map-filter-container/container-map.d.ts +11 -11
  145. package/dist/map-filter-container/container-map.js +31 -31
  146. package/dist/map-filter-container/index.d.ts +1 -1
  147. package/dist/map-filter-container/index.js +13 -13
  148. package/dist/map-filter-container/map-filter-container.d.ts +9 -9
  149. package/dist/map-filter-container/map-filter-container.js +78 -78
  150. package/dist/map-filter-container/polygon-selection-ui.d.ts +12 -12
  151. package/dist/map-filter-container/polygon-selection-ui.js +62 -62
  152. package/dist/models/defaults.d.ts +28 -28
  153. package/dist/models/defaults.js +32 -32
  154. package/dist/models/enums.d.ts +14 -14
  155. package/dist/models/enums.js +20 -20
  156. package/dist/models/index.d.ts +1 -1
  157. package/dist/models/index.js +13 -13
  158. package/dist/ol-map/feature.d.ts +6 -6
  159. package/dist/ol-map/feature.js +20 -20
  160. package/dist/ol-map/index.d.ts +6 -6
  161. package/dist/ol-map/index.js +18 -18
  162. package/dist/ol-map/interactions/draw.d.ts +8 -8
  163. package/dist/ol-map/interactions/draw.js +44 -44
  164. package/dist/ol-map/interactions/index.d.ts +1 -1
  165. package/dist/ol-map/interactions/index.js +13 -13
  166. package/dist/ol-map/layers/index.d.ts +3 -3
  167. package/dist/ol-map/layers/index.js +15 -15
  168. package/dist/ol-map/layers/tile-layer.d.ts +9 -9
  169. package/dist/ol-map/layers/tile-layer.js +48 -48
  170. package/dist/ol-map/layers/vector-layer.d.ts +4 -4
  171. package/dist/ol-map/layers/vector-layer.js +48 -48
  172. package/dist/ol-map/layers/vector-tile-layer.d.ts +10 -10
  173. package/dist/ol-map/layers/vector-tile-layer.js +66 -66
  174. package/dist/ol-map/map.css +17 -17
  175. package/dist/ol-map/map.d.ts +14 -14
  176. package/dist/ol-map/map.js +117 -117
  177. package/dist/ol-map/source/index.d.ts +6 -6
  178. package/dist/ol-map/source/index.js +18 -18
  179. package/dist/ol-map/source/mvt.d.ts +11 -11
  180. package/dist/ol-map/source/mvt.js +37 -37
  181. package/dist/ol-map/source/osm.d.ts +2 -2
  182. package/dist/ol-map/source/osm.js +14 -14
  183. package/dist/ol-map/source/vector-source.d.ts +4 -4
  184. package/dist/ol-map/source/vector-source.js +45 -45
  185. package/dist/ol-map/source/wms.d.ts +17 -17
  186. package/dist/ol-map/source/wms.js +30 -30
  187. package/dist/ol-map/source/wmts.d.ts +21 -21
  188. package/dist/ol-map/source/wmts.js +59 -59
  189. package/dist/ol-map/source/xyz.d.ts +12 -12
  190. package/dist/ol-map/source/xyz.js +27 -27
  191. package/dist/ol-map/style.d.ts +4 -4
  192. package/dist/ol-map/style.js +22 -22
  193. package/dist/popover/index.d.ts +1 -1
  194. package/dist/popover/index.js +5 -5
  195. package/dist/popover/popover.d.ts +3 -3
  196. package/dist/popover/popover.js +35 -35
  197. package/dist/smart-table/__mock-data__/smartTableMocks.d.ts +7 -7
  198. package/dist/smart-table/__mock-data__/smartTableMocks.js +17 -17
  199. package/dist/smart-table/index.d.ts +2 -2
  200. package/dist/smart-table/index.js +14 -14
  201. package/dist/smart-table/smart-table-head.d.ts +11 -11
  202. package/dist/smart-table/smart-table-head.js +22 -22
  203. package/dist/smart-table/smart-table-row.d.ts +12 -12
  204. package/dist/smart-table/smart-table-row.js +46 -46
  205. package/dist/smart-table/smart-table-types.d.ts +9 -9
  206. package/dist/smart-table/smart-table-types.js +2 -2
  207. package/dist/smart-table/smart-table.d.ts +17 -17
  208. package/dist/smart-table/smart-table.js +51 -51
  209. package/dist/theme/index.d.ts +1 -1
  210. package/dist/theme/index.js +13 -13
  211. package/dist/theme/theme.d.ts +8 -8
  212. package/dist/theme/theme.js +124 -124
  213. package/dist/utils/map.d.ts +3 -3
  214. package/dist/utils/map.js +21 -21
  215. package/dist/utils/projections.d.ts +6 -6
  216. package/dist/utils/projections.js +10 -10
  217. package/dist/utils/story.d.ts +12 -12
  218. package/dist/utils/story.js +2 -2
  219. package/jest_html_reporters.html +78 -0
  220. package/package.json +3 -3
  221. package/public/index.html +43 -43
  222. package/public/manifest.json +25 -25
  223. package/public/robots.txt +3 -3
  224. package/src/index.tsx +9 -9
  225. package/src/lib/autocomplete/autocomplete.css +25 -25
  226. package/src/lib/autocomplete/autocomplete.stories.tsx +101 -101
  227. package/src/lib/autocomplete/autocomplete.tsx +681 -681
  228. package/src/lib/autocomplete/index.ts +1 -1
  229. package/src/lib/box/box.tsx +7 -7
  230. package/src/lib/box/index.ts +1 -1
  231. package/src/lib/cesium-map/context-menu.stories.tsx +444 -444
  232. package/src/lib/cesium-map/data-sources/custom.data-source.tsx +12 -12
  233. package/src/lib/cesium-map/data-sources/drawings.data-source.stories.tsx +161 -161
  234. package/src/lib/cesium-map/data-sources/drawings.data-source.tsx +213 -204
  235. package/src/lib/cesium-map/data-sources/index.ts +2 -2
  236. package/src/lib/cesium-map/entities/entity.description.tsx +19 -19
  237. package/src/lib/cesium-map/entities/entity.graphics.stories.tsx +48 -48
  238. package/src/lib/cesium-map/entities/entity.stories.tsx +146 -146
  239. package/src/lib/cesium-map/entities/entity.tsx +10 -10
  240. package/src/lib/cesium-map/entities/graphics/polygon.graphics.tsx +12 -12
  241. package/src/lib/cesium-map/entities/graphics/polyline.graphics.tsx +12 -12
  242. package/src/lib/cesium-map/entities/graphics/rectangle.graphics.tsx +12 -12
  243. package/src/lib/cesium-map/entities/index.ts +4 -4
  244. package/src/lib/cesium-map/index.ts +8 -8
  245. package/src/lib/cesium-map/layers/3d.tileset.stories.tsx +164 -164
  246. package/src/lib/cesium-map/layers/3d.tileset.tsx +51 -51
  247. package/src/lib/cesium-map/layers/3d.tileset.with.update.tsx +120 -120
  248. package/src/lib/cesium-map/layers/geojson.layer.stories.tsx +180 -119
  249. package/src/lib/cesium-map/layers/geojson.layer.tsx +12 -12
  250. package/src/lib/cesium-map/layers/imagery.layer.stories.tsx +39 -39
  251. package/src/lib/cesium-map/layers/imagery.layer.tsx +37 -37
  252. package/src/lib/cesium-map/layers/index.ts +7 -7
  253. package/src/lib/cesium-map/layers/layers.rect.stories.tsx +171 -171
  254. package/src/lib/cesium-map/layers/osm.layer.stories.tsx +40 -40
  255. package/src/lib/cesium-map/layers/osm.layer.tsx +22 -22
  256. package/src/lib/cesium-map/layers/wms.layer.stories.tsx +38 -38
  257. package/src/lib/cesium-map/layers/wms.layer.tsx +22 -22
  258. package/src/lib/cesium-map/layers/wmts.layer.stories.tsx +53 -53
  259. package/src/lib/cesium-map/layers/wmts.layer.tsx +22 -22
  260. package/src/lib/cesium-map/layers/xyz.layer.stories.tsx +37 -37
  261. package/src/lib/cesium-map/layers/xyz.layer.tsx +22 -22
  262. package/src/lib/cesium-map/layers-manager.stories.tsx +286 -286
  263. package/src/lib/cesium-map/layers-manager.ts +354 -354
  264. package/src/lib/cesium-map/map-legend/MapLegend.css +136 -135
  265. package/src/lib/cesium-map/map-legend/MapLegend.tsx +92 -92
  266. package/src/lib/cesium-map/map-legend/MapLegendList.tsx +47 -47
  267. package/src/lib/cesium-map/map-legend/MapLegendSidebar.tsx +55 -55
  268. package/src/lib/cesium-map/map-legend/MapLegendToggle.tsx +31 -31
  269. package/src/lib/cesium-map/map-legend/index.tsx +3 -3
  270. package/src/lib/cesium-map/map-legend/legends-sidebar.stories.tsx +201 -201
  271. package/src/lib/cesium-map/map.css +59 -59
  272. package/src/lib/cesium-map/map.stories.tsx +143 -143
  273. package/src/lib/cesium-map/map.tsx +459 -446
  274. package/src/lib/cesium-map/map.types.ts +11 -11
  275. package/src/lib/cesium-map/proxied.types.ts +58 -54
  276. package/src/lib/cesium-map/settings/base-maps.css +37 -37
  277. package/src/lib/cesium-map/settings/base-maps.tsx +94 -94
  278. package/src/lib/cesium-map/settings/scene-modes.css +19 -19
  279. package/src/lib/cesium-map/settings/scene-modes.tsx +100 -100
  280. package/src/lib/cesium-map/settings/settings.css +52 -52
  281. package/src/lib/cesium-map/settings/settings.stories.tsx +182 -182
  282. package/src/lib/cesium-map/settings/settings.tsx +141 -141
  283. package/src/lib/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.ts +243 -243
  284. package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-decoder.ts +321 -321
  285. package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.ts +237 -237
  286. package/src/lib/cesium-map/terrain-providers/terrain-provider-heights-tool.stories.tsx +170 -170
  287. package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +187 -187
  288. package/src/lib/cesium-map/tools/cesium/primitives-conversions.cesium.ts +15 -15
  289. package/src/lib/cesium-map/tools/coordinates-tracker.tool.css +11 -11
  290. package/src/lib/cesium-map/tools/coordinates-tracker.tool.tsx +81 -79
  291. package/src/lib/cesium-map/tools/draw/drawHelper.css +101 -101
  292. package/src/lib/cesium-map/tools/draw/drawHelper.ts +2116 -2116
  293. package/src/lib/cesium-map/tools/geojson/geojson-to-primitive.ts +54 -54
  294. package/src/lib/cesium-map/tools/geojson/index.ts +2 -2
  295. package/src/lib/cesium-map/tools/geojson/point.geojson.ts +63 -29
  296. package/src/lib/cesium-map/tools/geojson/polygon.geojson.ts +24 -24
  297. package/src/lib/cesium-map/tools/geojson/rectangle.geojson.ts +21 -21
  298. package/src/lib/cesium-map/tools/inspector.tool.tsx +15 -15
  299. package/src/lib/cesium-map/tools/scale-tracker.tool.css +16 -16
  300. package/src/lib/cesium-map/tools/scale-tracker.tool.tsx +192 -192
  301. package/src/lib/cesium-map/tools/terranian-height.tool.tsx +171 -171
  302. package/src/lib/cssbaseline/cssbaseline.tsx +19 -19
  303. package/src/lib/cssbaseline/index.ts +4 -4
  304. package/src/lib/date-picker/date-picker.css +9 -9
  305. package/src/lib/date-picker/date-picker.stories.tsx +130 -130
  306. package/src/lib/date-picker/date-picker.tsx +90 -90
  307. package/src/lib/date-picker/index.ts +1 -1
  308. package/src/lib/date-range-picker/date-range-picker.css +9 -9
  309. package/src/lib/date-range-picker/date-range-picker.form-control.css +3 -3
  310. package/src/lib/date-range-picker/date-range-picker.form-control.spec.tsx +58 -58
  311. package/src/lib/date-range-picker/date-range-picker.form-control.tsx +150 -150
  312. package/src/lib/date-range-picker/date-range-picker.stories.tsx +207 -207
  313. package/src/lib/date-range-picker/date-range-picker.tsx +156 -156
  314. package/src/lib/date-range-picker/index.ts +2 -2
  315. package/src/lib/file-picker/file-picker.css +63 -63
  316. package/src/lib/file-picker/file-picker.stories.tsx +447 -447
  317. package/src/lib/file-picker/file-picker.tsx +180 -180
  318. package/src/lib/file-picker/fs-map.json +1556 -1556
  319. package/src/lib/file-picker/index.ts +2 -2
  320. package/src/lib/file-picker/localization.ts +164 -164
  321. package/src/lib/index.ts +13 -13
  322. package/src/lib/map-filter-container/container-map.css +5 -5
  323. package/src/lib/map-filter-container/container-map.tsx +48 -48
  324. package/src/lib/map-filter-container/index.ts +1 -1
  325. package/src/lib/map-filter-container/map-filter-container.tsx +91 -91
  326. package/src/lib/map-filter-container/polygon-selection-ui.spec.tsx +119 -119
  327. package/src/lib/map-filter-container/polygon-selection-ui.tsx +111 -111
  328. package/src/lib/map-filter-container/stories/Map.stories.tsx +76 -76
  329. package/src/lib/models/defaults.ts +32 -32
  330. package/src/lib/models/enums.ts +16 -16
  331. package/src/lib/models/index.ts +1 -1
  332. package/src/lib/ol-map/feature.tsx +23 -23
  333. package/src/lib/ol-map/index.ts +6 -6
  334. package/src/lib/ol-map/interactions/draw.tsx +56 -56
  335. package/src/lib/ol-map/interactions/index.ts +1 -1
  336. package/src/lib/ol-map/layers/index.ts +3 -3
  337. package/src/lib/ol-map/layers/tile-layer.tsx +36 -36
  338. package/src/lib/ol-map/layers/vector-layer.tsx +32 -32
  339. package/src/lib/ol-map/layers/vector-tile-layer.tsx +56 -56
  340. package/src/lib/ol-map/map.css +17 -17
  341. package/src/lib/ol-map/map.tsx +137 -137
  342. package/src/lib/ol-map/source/index.ts +6 -6
  343. package/src/lib/ol-map/source/mvt.tsx +46 -46
  344. package/src/lib/ol-map/source/osm.tsx +13 -13
  345. package/src/lib/ol-map/source/stories/mvt.stories.tsx +68 -68
  346. package/src/lib/ol-map/source/stories/vector-source.stories.tsx +78 -78
  347. package/src/lib/ol-map/source/stories/wms.stories.tsx +51 -51
  348. package/src/lib/ol-map/source/stories/wmts.stories.tsx +72 -72
  349. package/src/lib/ol-map/source/stories/xyz.stories.tsx +53 -53
  350. package/src/lib/ol-map/source/vector-source.tsx +30 -30
  351. package/src/lib/ol-map/source/wms.tsx +40 -40
  352. package/src/lib/ol-map/source/wmts.tsx +82 -82
  353. package/src/lib/ol-map/source/xyz.tsx +33 -33
  354. package/src/lib/ol-map/stories/map.stories.tsx +60 -60
  355. package/src/lib/ol-map/style.ts +24 -24
  356. package/src/lib/popover/index.ts +1 -1
  357. package/src/lib/popover/popover.tsx +7 -7
  358. package/src/lib/smart-table/__mock-data__/smartTableMocks.ts +22 -22
  359. package/src/lib/smart-table/index.ts +2 -2
  360. package/src/lib/smart-table/smart-table-head.spec.tsx +116 -116
  361. package/src/lib/smart-table/smart-table-head.tsx +47 -47
  362. package/src/lib/smart-table/smart-table-row.spec.tsx +109 -109
  363. package/src/lib/smart-table/smart-table-row.tsx +78 -78
  364. package/src/lib/smart-table/smart-table-types.ts +10 -10
  365. package/src/lib/smart-table/smart-table.spec.tsx +116 -116
  366. package/src/lib/smart-table/smart-table.tsx +115 -115
  367. package/src/lib/smart-table/stories/SmartTable.stories.tsx +114 -114
  368. package/src/lib/theme/index.ts +1 -1
  369. package/src/lib/theme/theme.ts +123 -123
  370. package/src/lib/utils/map.ts +19 -19
  371. package/src/lib/utils/projections.ts +7 -7
  372. package/src/lib/utils/story.ts +11 -11
  373. package/src/react-app-env.d.ts +1 -1
  374. package/src/setupTests.ts +14 -14
  375. package/tsbuildconfig.json +37 -37
  376. package/tsconfig.json +26 -26
@@ -1,187 +1,187 @@
1
- import React, { ChangeEvent, useState } from 'react';
2
- import {
3
- ArcGISTiledElevationTerrainProvider,
4
- EllipsoidTerrainProvider,
5
- TerrainProvider,
6
- VRTheWorldTerrainProvider,
7
- WebMercatorProjection,
8
- CesiumTerrainProvider,
9
- Resource,
10
- WebMercatorTilingScheme,
11
- } from 'cesium';
12
- import { Story, Meta } from '@storybook/react/types-6-0';
13
- import { CesiumMap, useCesiumMap } from '../map';
14
- import { CesiumSceneMode } from '../map.types';
15
- import { Cesium3DTileset } from '../layers';
16
- import { LayerType } from '../layers-manager';
17
- import { InspectorTool } from '../tools/inspector.tool';
18
- import QuantizedMeshTerrainProvider from './custom/quantized-mesh-terrain-provider';
19
-
20
- export default {
21
- title: 'Cesium Map/QuantizedMesh',
22
- component: CesiumMap,
23
- parameters: {
24
- layout: 'fullscreen',
25
- },
26
- } as Meta;
27
-
28
- const mapDivStyle = {
29
- height: '90%',
30
- width: '100%',
31
- position: 'absolute' as const,
32
- };
33
-
34
- const BASE_MAPS = {
35
- maps: [
36
- {
37
- id: '1st',
38
- title: '1st Map Title',
39
- isCurrent: true,
40
- thumbnail:
41
- 'https://nsw.digitaltwin.terria.io/build/efa2f6c408eb790753a9b5fb2f3dc678.png',
42
- baseRasteLayers: [
43
- {
44
- id: 'GOOGLE_TERRAIN',
45
- type: 'XYZ_LAYER' as LayerType,
46
- opacity: 1,
47
- zIndex: 0,
48
- options: {
49
- url: 'https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}',
50
- layers: '',
51
- credit: 'GOOGLE',
52
- },
53
- },
54
- ],
55
- baseVectorLayers: [],
56
- },
57
- ],
58
- };
59
-
60
- const EllipsoidProvider = new EllipsoidTerrainProvider({});
61
-
62
- const CesiumProvider = new CesiumTerrainProvider({
63
- url: new Resource({
64
- url: 'https://my-assets.cesium.com/1',
65
- headers: {
66
- authorization: 'Bearer <my-access-token>',
67
- },
68
- }),
69
- });
70
-
71
- const VRTheWorldProvider = new VRTheWorldTerrainProvider({
72
- url: 'http://www.vr-theworld.com/vr-theworld/tiles1.0.0/73/',
73
- });
74
-
75
- const ArcGisProvider = new ArcGISTiledElevationTerrainProvider({
76
- url:
77
- 'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',
78
- });
79
-
80
- const QuantizedMeshProvider = new QuantizedMeshTerrainProvider({
81
- getUrl: (x: number, y: number, level: number): string => {
82
- const tilingScheme = new WebMercatorTilingScheme();
83
- const column = x;
84
- const row = tilingScheme.getNumberOfYTilesAtLevel(level) - y - 1;
85
-
86
- return `/mock/terrain_example_tiles/${level}/${column}/${row}.terrain`;
87
- },
88
- credit: `Mapcolonies`,
89
- });
90
-
91
- const terrainProviderList = [
92
- {
93
- id: 'NONE',
94
- value: EllipsoidProvider,
95
- },
96
- {
97
- id: 'Cesium Terrain Provider',
98
- value: CesiumProvider,
99
- },
100
- {
101
- id: 'V R The World Terrain Provider (Hight Map)',
102
- value: VRTheWorldProvider,
103
- },
104
- {
105
- id: 'Arc Gis Terrain Provider',
106
- value: ArcGisProvider,
107
- },
108
- {
109
- id: 'Custom Terrain Provider',
110
- value: QuantizedMeshProvider,
111
- },
112
- ];
113
-
114
- interface ITerrainProviderItem {
115
- id: string;
116
- value: TerrainProvider | undefined;
117
- }
118
-
119
- interface ITerrainProviderSelectorProps {
120
- terrainProviderList: ITerrainProviderItem[];
121
- }
122
-
123
- const TerrainProviderSelector: React.FC<ITerrainProviderSelectorProps> = ({
124
- terrainProviderList,
125
- }) => {
126
- const [depthTest, setDepthTest] = useState<boolean>(false);
127
- const mapViewer = useCesiumMap();
128
-
129
- const scene = mapViewer.scene;
130
-
131
- const handleDepthTestChange = (e: ChangeEvent<HTMLInputElement>): void => {
132
- setDepthTest(e.target.checked);
133
- scene.globe.depthTestAgainstTerrain = !depthTest;
134
- };
135
-
136
- return (
137
- <>
138
- <select
139
- defaultValue={terrainProviderList[0].id}
140
- onChange={(evt): void => {
141
- const selected = terrainProviderList.find(
142
- (item) => item.id === evt.target.value
143
- );
144
- mapViewer.terrainProvider = (selected as ITerrainProviderItem)
145
- .value as TerrainProvider;
146
- }}
147
- >
148
- {terrainProviderList.map((provider) => {
149
- return <option key={provider.id}>{provider.id}</option>;
150
- })}
151
- </select>
152
- <br />
153
- <input
154
- type="checkbox"
155
- id="input"
156
- checked={depthTest}
157
- onChange={handleDepthTestChange}
158
- />
159
- <label htmlFor="input">depthTestAgainstTerrain</label>
160
- </>
161
- );
162
- };
163
-
164
- export const QuantizedMeshProviders: Story = () => {
165
- // const [center] = useState<[number, number]>([24, -200]);
166
- const [center] = useState<[number, number]>([-122, 43]);
167
- return (
168
- <div style={mapDivStyle}>
169
- <CesiumMap
170
- center={center}
171
- zoom={5}
172
- imageryProvider={false}
173
- sceneModes={[CesiumSceneMode.SCENE3D, CesiumSceneMode.COLUMBUS_VIEW]}
174
- baseMaps={BASE_MAPS}
175
- mapProjection={new WebMercatorProjection()}
176
- >
177
- <Cesium3DTileset
178
- isZoomTo={true}
179
- url="/mock/tileset_2/L16_31023/L16_31023.json"
180
- />
181
- <TerrainProviderSelector terrainProviderList={terrainProviderList} />
182
- <InspectorTool />
183
- </CesiumMap>
184
- </div>
185
- );
186
- };
187
- QuantizedMeshProviders.storyName = 'Providers';
1
+ import React, { ChangeEvent, useState } from 'react';
2
+ import {
3
+ ArcGISTiledElevationTerrainProvider,
4
+ EllipsoidTerrainProvider,
5
+ TerrainProvider,
6
+ VRTheWorldTerrainProvider,
7
+ WebMercatorProjection,
8
+ CesiumTerrainProvider,
9
+ Resource,
10
+ WebMercatorTilingScheme,
11
+ } from 'cesium';
12
+ import { Story, Meta } from '@storybook/react/types-6-0';
13
+ import { CesiumMap, useCesiumMap } from '../map';
14
+ import { CesiumSceneMode } from '../map.types';
15
+ import { Cesium3DTileset } from '../layers';
16
+ import { LayerType } from '../layers-manager';
17
+ import { InspectorTool } from '../tools/inspector.tool';
18
+ import QuantizedMeshTerrainProvider from './custom/quantized-mesh-terrain-provider';
19
+
20
+ export default {
21
+ title: 'Cesium Map/QuantizedMesh',
22
+ component: CesiumMap,
23
+ parameters: {
24
+ layout: 'fullscreen',
25
+ },
26
+ } as Meta;
27
+
28
+ const mapDivStyle = {
29
+ height: '90%',
30
+ width: '100%',
31
+ position: 'absolute' as const,
32
+ };
33
+
34
+ const BASE_MAPS = {
35
+ maps: [
36
+ {
37
+ id: '1st',
38
+ title: '1st Map Title',
39
+ isCurrent: true,
40
+ thumbnail:
41
+ 'https://nsw.digitaltwin.terria.io/build/efa2f6c408eb790753a9b5fb2f3dc678.png',
42
+ baseRasteLayers: [
43
+ {
44
+ id: 'GOOGLE_TERRAIN',
45
+ type: 'XYZ_LAYER' as LayerType,
46
+ opacity: 1,
47
+ zIndex: 0,
48
+ options: {
49
+ url: 'https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}',
50
+ layers: '',
51
+ credit: 'GOOGLE',
52
+ },
53
+ },
54
+ ],
55
+ baseVectorLayers: [],
56
+ },
57
+ ],
58
+ };
59
+
60
+ const EllipsoidProvider = new EllipsoidTerrainProvider({});
61
+
62
+ const CesiumProvider = new CesiumTerrainProvider({
63
+ url: new Resource({
64
+ url: 'https://my-assets.cesium.com/1',
65
+ headers: {
66
+ authorization: 'Bearer <my-access-token>',
67
+ },
68
+ }),
69
+ });
70
+
71
+ const VRTheWorldProvider = new VRTheWorldTerrainProvider({
72
+ url: 'http://www.vr-theworld.com/vr-theworld/tiles1.0.0/73/',
73
+ });
74
+
75
+ const ArcGisProvider = new ArcGISTiledElevationTerrainProvider({
76
+ url:
77
+ 'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',
78
+ });
79
+
80
+ const QuantizedMeshProvider = new QuantizedMeshTerrainProvider({
81
+ getUrl: (x: number, y: number, level: number): string => {
82
+ const tilingScheme = new WebMercatorTilingScheme();
83
+ const column = x;
84
+ const row = tilingScheme.getNumberOfYTilesAtLevel(level) - y - 1;
85
+
86
+ return `/mock/terrain_example_tiles/${level}/${column}/${row}.terrain`;
87
+ },
88
+ credit: `Mapcolonies`,
89
+ });
90
+
91
+ const terrainProviderList = [
92
+ {
93
+ id: 'NONE',
94
+ value: EllipsoidProvider,
95
+ },
96
+ {
97
+ id: 'Cesium Terrain Provider',
98
+ value: CesiumProvider,
99
+ },
100
+ {
101
+ id: 'V R The World Terrain Provider (Hight Map)',
102
+ value: VRTheWorldProvider,
103
+ },
104
+ {
105
+ id: 'Arc Gis Terrain Provider',
106
+ value: ArcGisProvider,
107
+ },
108
+ {
109
+ id: 'Custom Terrain Provider',
110
+ value: QuantizedMeshProvider,
111
+ },
112
+ ];
113
+
114
+ interface ITerrainProviderItem {
115
+ id: string;
116
+ value: TerrainProvider | undefined;
117
+ }
118
+
119
+ interface ITerrainProviderSelectorProps {
120
+ terrainProviderList: ITerrainProviderItem[];
121
+ }
122
+
123
+ const TerrainProviderSelector: React.FC<ITerrainProviderSelectorProps> = ({
124
+ terrainProviderList,
125
+ }) => {
126
+ const [depthTest, setDepthTest] = useState<boolean>(false);
127
+ const mapViewer = useCesiumMap();
128
+
129
+ const scene = mapViewer.scene;
130
+
131
+ const handleDepthTestChange = (e: ChangeEvent<HTMLInputElement>): void => {
132
+ setDepthTest(e.target.checked);
133
+ scene.globe.depthTestAgainstTerrain = !depthTest;
134
+ };
135
+
136
+ return (
137
+ <>
138
+ <select
139
+ defaultValue={terrainProviderList[0].id}
140
+ onChange={(evt): void => {
141
+ const selected = terrainProviderList.find(
142
+ (item) => item.id === evt.target.value
143
+ );
144
+ mapViewer.terrainProvider = (selected as ITerrainProviderItem)
145
+ .value as TerrainProvider;
146
+ }}
147
+ >
148
+ {terrainProviderList.map((provider) => {
149
+ return <option key={provider.id}>{provider.id}</option>;
150
+ })}
151
+ </select>
152
+ <br />
153
+ <input
154
+ type="checkbox"
155
+ id="input"
156
+ checked={depthTest}
157
+ onChange={handleDepthTestChange}
158
+ />
159
+ <label htmlFor="input">depthTestAgainstTerrain</label>
160
+ </>
161
+ );
162
+ };
163
+
164
+ export const QuantizedMeshProviders: Story = () => {
165
+ // const [center] = useState<[number, number]>([24, -200]);
166
+ const [center] = useState<[number, number]>([-122, 43]);
167
+ return (
168
+ <div style={mapDivStyle}>
169
+ <CesiumMap
170
+ center={center}
171
+ zoom={5}
172
+ imageryProvider={false}
173
+ sceneModes={[CesiumSceneMode.SCENE3D, CesiumSceneMode.COLUMBUS_VIEW]}
174
+ baseMaps={BASE_MAPS}
175
+ mapProjection={new WebMercatorProjection()}
176
+ >
177
+ <Cesium3DTileset
178
+ isZoomTo={true}
179
+ url="/mock/tileset_2/L16_31023/L16_31023.json"
180
+ />
181
+ <TerrainProviderSelector terrainProviderList={terrainProviderList} />
182
+ <InspectorTool />
183
+ </CesiumMap>
184
+ </div>
185
+ );
186
+ };
187
+ QuantizedMeshProviders.storyName = 'Providers';
@@ -1,15 +1,15 @@
1
- import { Rectangle, Cartesian3 } from 'cesium';
2
- import * as turf from '@turf/helpers';
3
- import bbox from '@turf/bbox';
4
- import bboxPolygon from '@turf/bbox-polygon';
5
-
6
- export const rectangleToPositions = (positions: Rectangle): Cartesian3[] => {
7
- const line = turf.lineString([
8
- [positions.west, positions.south],
9
- [positions.east, positions.north],
10
- ]);
11
- const polygon = bboxPolygon(bbox(line));
12
- return polygon.geometry.coordinates[0].map(
13
- (coord) => Cartesian3.fromRadiansArray(coord)[0]
14
- );
15
- };
1
+ import { Rectangle, Cartesian3 } from 'cesium';
2
+ import * as turf from '@turf/helpers';
3
+ import bbox from '@turf/bbox';
4
+ import bboxPolygon from '@turf/bbox-polygon';
5
+
6
+ export const rectangleToPositions = (positions: Rectangle): Cartesian3[] => {
7
+ const line = turf.lineString([
8
+ [positions.west, positions.south],
9
+ [positions.east, positions.north],
10
+ ]);
11
+ const polygon = bboxPolygon(bbox(line));
12
+ return polygon.geometry.coordinates[0].map(
13
+ (coord) => Cartesian3.fromRadiansArray(coord)[0]
14
+ );
15
+ };
@@ -1,11 +1,11 @@
1
- .trackerPosition {
2
- background-color: var(--mdc-theme-surface);
3
- z-index: 2000;
4
- padding: 2px 2px;
5
- border-radius: 2px;
6
- font-size: 12px;
7
- height: 24px;
8
- text-align: center;
9
- line-height: 20px;
10
- white-space: nowrap;
11
- }
1
+ .trackerPosition {
2
+ background-color: var(--mdc-theme-surface);
3
+ z-index: 2000;
4
+ padding: 2px 2px;
5
+ border-radius: 2px;
6
+ font-size: 12px;
7
+ height: 24px;
8
+ text-align: center;
9
+ line-height: 20px;
10
+ white-space: nowrap;
11
+ }
@@ -1,79 +1,81 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import { Cartesian3, Math as CesiumMath, WebMercatorProjection } from 'cesium';
3
- import { CesiumViewer, useCesiumMap } from '../map';
4
-
5
- import './coordinates-tracker.tool.css';
6
- import {
7
- Proj,
8
- COORDINATES_WGS_FRACTION_DIGITS,
9
- COORDINATES_MERCATOR_FRACTION_DIGITS,
10
- } from '../../utils/projections';
11
-
12
- export interface RCoordinatesTrackerToolProps {
13
- projection?: Proj;
14
- }
15
-
16
- export const CoordinatesTrackerTool: React.FC<RCoordinatesTrackerToolProps> = (
17
- props
18
- ) => {
19
- const mapViewer: CesiumViewer = useCesiumMap();
20
- const ref = useRef<HTMLDivElement>(null);
21
- const [position, setPosition] = useState({ x: 0, y: 0 });
22
-
23
- useEffect(() => {
24
- const setFromEvent = (e: MouseEvent): void =>
25
- setPosition({ x: e.clientX, y: e.clientY });
26
- mapViewer.scene.canvas.addEventListener('mousemove', setFromEvent);
27
-
28
- return (): void => {
29
- try {
30
- mapViewer.scene.canvas.removeEventListener('mousemove', setFromEvent);
31
- } catch (e) {
32
- console.log('CESIUM canvas "mousemove" remove listener failed', e);
33
- }
34
- };
35
- }, [ref, mapViewer]);
36
-
37
- useEffect(() => {
38
- const ellipsoid = mapViewer.scene.globe.ellipsoid;
39
- // Mouse over the globe to see the cartographic position
40
- const cartesian = mapViewer.camera.pickEllipsoid(
41
- new Cartesian3(position.x, position.y),
42
- ellipsoid
43
- );
44
- if (cartesian) {
45
- const cartographic = ellipsoid.cartesianToCartographic(cartesian);
46
- if (ref.current) {
47
- let coordinatesText = '';
48
- switch (props.projection) {
49
- case Proj.WEB_MERCATOR: {
50
- const wmProjection = new WebMercatorProjection(ellipsoid);
51
- const res = wmProjection.project(cartographic);
52
- coordinatesText = `Mercator: ${res.y.toFixed(
53
- COORDINATES_MERCATOR_FRACTION_DIGITS
54
- )}m, ${res.x.toFixed(COORDINATES_MERCATOR_FRACTION_DIGITS)}m`;
55
- ref.current.style.width = '220px';
56
- break;
57
- }
58
- case Proj.WGS84: {
59
- const longitudeString = CesiumMath.toDegrees(
60
- cartographic.longitude
61
- ).toFixed(COORDINATES_WGS_FRACTION_DIGITS);
62
- const latitudeString = CesiumMath.toDegrees(
63
- cartographic.latitude
64
- ).toFixed(COORDINATES_WGS_FRACTION_DIGITS);
65
-
66
- coordinatesText = `WGS84: ${latitudeString}°N ${longitudeString}°E`;
67
- ref.current.style.width = '200px';
68
- break;
69
- }
70
- default:
71
- break;
72
- }
73
- ref.current.innerHTML = coordinatesText;
74
- }
75
- }
76
- }, [position, ref, mapViewer, props.projection]);
77
-
78
- return <div className="trackerPosition" ref={ref}></div>;
79
- };
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { Cartesian3, Math as CesiumMath, WebMercatorProjection } from 'cesium';
3
+ import ScreenSpaceEventType from 'cesium/Source/Core/ScreenSpaceEventType';
4
+ import { CesiumViewer, useCesiumMap } from '../map';
5
+
6
+ import './coordinates-tracker.tool.css';
7
+ import {
8
+ Proj,
9
+ COORDINATES_WGS_FRACTION_DIGITS,
10
+ COORDINATES_MERCATOR_FRACTION_DIGITS,
11
+ } from '../../utils/projections';
12
+
13
+ export interface RCoordinatesTrackerToolProps {
14
+ projection?: Proj;
15
+ }
16
+
17
+ export const CoordinatesTrackerTool: React.FC<RCoordinatesTrackerToolProps> = (
18
+ props
19
+ ) => {
20
+ const mapViewer: CesiumViewer = useCesiumMap();
21
+ const ref = useRef<HTMLDivElement>(null);
22
+ const [position, setPosition] = useState({ x: 0, y: 0 });
23
+
24
+ useEffect(() => {
25
+ mapViewer.screenSpaceEventHandler.setInputAction(
26
+ (evt?: Record<string, unknown>) => {
27
+ if (evt?.endPosition) {
28
+ setPosition({ ...(evt.endPosition as { x: number; y: number }) } as {
29
+ x: number;
30
+ y: number;
31
+ });
32
+ }
33
+ },
34
+ ScreenSpaceEventType.MOUSE_MOVE
35
+ );
36
+ }, [ref, mapViewer]);
37
+
38
+ useEffect(() => {
39
+ const ellipsoid = mapViewer.scene.globe.ellipsoid;
40
+ // Mouse over the globe to see the cartographic position
41
+ const cartesian = mapViewer.camera.pickEllipsoid(
42
+ new Cartesian3(position.x, position.y),
43
+ ellipsoid
44
+ );
45
+
46
+ if (cartesian) {
47
+ const cartographic = ellipsoid.cartesianToCartographic(cartesian);
48
+ if (ref.current) {
49
+ let coordinatesText = '';
50
+ switch (props.projection) {
51
+ case Proj.WEB_MERCATOR: {
52
+ const wmProjection = new WebMercatorProjection(ellipsoid);
53
+ const res = wmProjection.project(cartographic);
54
+ coordinatesText = `Mercator: ${res.y.toFixed(
55
+ COORDINATES_MERCATOR_FRACTION_DIGITS
56
+ )}m, ${res.x.toFixed(COORDINATES_MERCATOR_FRACTION_DIGITS)}m`;
57
+ ref.current.style.width = '220px';
58
+ break;
59
+ }
60
+ case Proj.WGS84: {
61
+ const longitudeString = CesiumMath.toDegrees(
62
+ cartographic.longitude
63
+ ).toFixed(COORDINATES_WGS_FRACTION_DIGITS);
64
+ const latitudeString = CesiumMath.toDegrees(
65
+ cartographic.latitude
66
+ ).toFixed(COORDINATES_WGS_FRACTION_DIGITS);
67
+
68
+ coordinatesText = `WGS84: ${latitudeString}°N ${longitudeString}°E`;
69
+ ref.current.style.width = '200px';
70
+ break;
71
+ }
72
+ default:
73
+ break;
74
+ }
75
+ ref.current.innerHTML = coordinatesText;
76
+ }
77
+ }
78
+ }, [position, ref, mapViewer, props.projection]);
79
+
80
+ return <div className="trackerPosition" ref={ref}></div>;
81
+ };