@map-colonies/react-components 3.10.5 → 3.12.2

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 (384) 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 +619 -538
  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 +187 -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 -7
  37. package/dist/cesium-map/index.js +20 -19
  38. package/dist/cesium-map/layers/3d.tileset.d.ts +7 -7
  39. package/dist/cesium-map/layers/3d.tileset.js +43 -39
  40. package/dist/cesium-map/layers/3d.tileset.with.update.d.ts +6 -0
  41. package/dist/cesium-map/layers/3d.tileset.with.update.js +115 -0
  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 -64
  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 -47
  57. package/dist/cesium-map/layers-manager.js +246 -228
  58. package/dist/cesium-map/map-legend/MapLegend.css +135 -0
  59. package/dist/cesium-map/map-legend/MapLegend.d.ts +15 -0
  60. package/dist/cesium-map/map-legend/MapLegend.js +57 -0
  61. package/dist/cesium-map/map-legend/MapLegendList.d.ts +13 -0
  62. package/dist/cesium-map/map-legend/MapLegendList.js +43 -0
  63. package/dist/cesium-map/map-legend/MapLegendSidebar.d.ts +16 -0
  64. package/dist/cesium-map/map-legend/MapLegendSidebar.js +20 -0
  65. package/dist/cesium-map/map-legend/MapLegendToggle.d.ts +7 -0
  66. package/dist/cesium-map/map-legend/MapLegendToggle.js +20 -0
  67. package/dist/cesium-map/map-legend/index.d.ts +3 -0
  68. package/dist/cesium-map/map-legend/index.js +14 -0
  69. package/dist/cesium-map/map.css +59 -54
  70. package/dist/cesium-map/map.d.ts +59 -46
  71. package/dist/cesium-map/map.js +305 -273
  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 -22
  75. package/dist/cesium-map/proxied.types.js +132 -100
  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 -49
  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 +78 -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 +3 -3
  104. package/dist/cesium-map/tools/geojson/point.geojson.js +21 -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 -113
  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/package.json +3 -3
  220. package/public/index.html +43 -43
  221. package/public/manifest.json +25 -25
  222. package/public/robots.txt +3 -3
  223. package/src/index.tsx +9 -9
  224. package/src/lib/autocomplete/autocomplete.css +25 -25
  225. package/src/lib/autocomplete/autocomplete.stories.tsx +101 -101
  226. package/src/lib/autocomplete/autocomplete.tsx +681 -681
  227. package/src/lib/autocomplete/index.ts +1 -1
  228. package/src/lib/box/box.tsx +7 -7
  229. package/src/lib/box/index.ts +1 -1
  230. package/src/lib/cesium-map/context-menu.stories.tsx +444 -444
  231. package/src/lib/cesium-map/data-sources/custom.data-source.tsx +12 -12
  232. package/src/lib/cesium-map/data-sources/drawings.data-source.stories.tsx +161 -161
  233. package/src/lib/cesium-map/data-sources/drawings.data-source.tsx +204 -205
  234. package/src/lib/cesium-map/data-sources/index.ts +2 -2
  235. package/src/lib/cesium-map/entities/entity.description.tsx +19 -19
  236. package/src/lib/cesium-map/entities/entity.graphics.stories.tsx +48 -48
  237. package/src/lib/cesium-map/entities/entity.stories.tsx +146 -146
  238. package/src/lib/cesium-map/entities/entity.tsx +10 -10
  239. package/src/lib/cesium-map/entities/graphics/polygon.graphics.tsx +12 -12
  240. package/src/lib/cesium-map/entities/graphics/polyline.graphics.tsx +12 -12
  241. package/src/lib/cesium-map/entities/graphics/rectangle.graphics.tsx +12 -12
  242. package/src/lib/cesium-map/entities/index.ts +4 -4
  243. package/src/lib/cesium-map/index.ts +8 -7
  244. package/src/lib/cesium-map/layers/3d.tileset.stories.tsx +164 -110
  245. package/src/lib/cesium-map/layers/3d.tileset.tsx +51 -47
  246. package/src/lib/cesium-map/layers/3d.tileset.with.update.tsx +120 -0
  247. package/src/lib/cesium-map/layers/geojson.layer.stories.tsx +119 -119
  248. package/src/lib/cesium-map/layers/geojson.layer.tsx +12 -12
  249. package/src/lib/cesium-map/layers/imagery.layer.stories.tsx +39 -39
  250. package/src/lib/cesium-map/layers/imagery.layer.tsx +37 -32
  251. package/src/lib/cesium-map/layers/index.ts +7 -7
  252. package/src/lib/cesium-map/layers/layers.rect.stories.tsx +171 -171
  253. package/src/lib/cesium-map/layers/osm.layer.stories.tsx +40 -40
  254. package/src/lib/cesium-map/layers/osm.layer.tsx +22 -22
  255. package/src/lib/cesium-map/layers/wms.layer.stories.tsx +38 -38
  256. package/src/lib/cesium-map/layers/wms.layer.tsx +22 -22
  257. package/src/lib/cesium-map/layers/wmts.layer.stories.tsx +53 -53
  258. package/src/lib/cesium-map/layers/wmts.layer.tsx +22 -22
  259. package/src/lib/cesium-map/layers/xyz.layer.stories.tsx +37 -37
  260. package/src/lib/cesium-map/layers/xyz.layer.tsx +22 -22
  261. package/src/lib/cesium-map/layers-manager.stories.tsx +286 -286
  262. package/src/lib/cesium-map/layers-manager.ts +354 -325
  263. package/src/lib/cesium-map/map-legend/MapLegend.css +135 -0
  264. package/src/lib/cesium-map/map-legend/MapLegend.tsx +92 -0
  265. package/src/lib/cesium-map/map-legend/MapLegendList.tsx +47 -0
  266. package/src/lib/cesium-map/map-legend/MapLegendSidebar.tsx +55 -0
  267. package/src/lib/cesium-map/map-legend/MapLegendToggle.tsx +31 -0
  268. package/src/lib/cesium-map/map-legend/index.tsx +3 -0
  269. package/src/lib/cesium-map/map-legend/legends-sidebar.stories.tsx +201 -0
  270. package/src/lib/cesium-map/map.css +59 -54
  271. package/src/lib/cesium-map/map.stories.tsx +143 -143
  272. package/src/lib/cesium-map/map.tsx +446 -381
  273. package/src/lib/cesium-map/map.types.ts +11 -11
  274. package/src/lib/cesium-map/proxied.types.ts +54 -42
  275. package/src/lib/cesium-map/settings/base-maps.css +37 -37
  276. package/src/lib/cesium-map/settings/base-maps.tsx +94 -94
  277. package/src/lib/cesium-map/settings/scene-modes.css +19 -19
  278. package/src/lib/cesium-map/settings/scene-modes.tsx +100 -100
  279. package/src/lib/cesium-map/settings/settings.css +52 -49
  280. package/src/lib/cesium-map/settings/settings.stories.tsx +182 -182
  281. package/src/lib/cesium-map/settings/settings.tsx +141 -141
  282. package/src/lib/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.ts +243 -243
  283. package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-decoder.ts +321 -321
  284. package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.ts +237 -237
  285. package/src/lib/cesium-map/terrain-providers/terrain-provider-heights-tool.stories.tsx +170 -155
  286. package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +187 -185
  287. package/src/lib/cesium-map/tools/cesium/primitives-conversions.cesium.ts +15 -15
  288. package/src/lib/cesium-map/tools/coordinates-tracker.tool.css +11 -11
  289. package/src/lib/cesium-map/tools/coordinates-tracker.tool.tsx +79 -79
  290. package/src/lib/cesium-map/tools/draw/drawHelper.css +101 -101
  291. package/src/lib/cesium-map/tools/draw/drawHelper.ts +2116 -2116
  292. package/src/lib/cesium-map/tools/geojson/geojson-to-primitive.ts +54 -54
  293. package/src/lib/cesium-map/tools/geojson/index.ts +2 -2
  294. package/src/lib/cesium-map/tools/geojson/point.geojson.ts +29 -29
  295. package/src/lib/cesium-map/tools/geojson/polygon.geojson.ts +24 -24
  296. package/src/lib/cesium-map/tools/geojson/rectangle.geojson.ts +21 -21
  297. package/src/lib/cesium-map/tools/inspector.tool.tsx +15 -15
  298. package/src/lib/cesium-map/tools/scale-tracker.tool.css +16 -16
  299. package/src/lib/cesium-map/tools/scale-tracker.tool.tsx +192 -192
  300. package/src/lib/cesium-map/tools/terranian-height.tool.tsx +171 -167
  301. package/src/lib/cssbaseline/cssbaseline.tsx +19 -19
  302. package/src/lib/cssbaseline/index.ts +4 -4
  303. package/src/lib/date-picker/date-picker.css +9 -9
  304. package/src/lib/date-picker/date-picker.stories.tsx +130 -130
  305. package/src/lib/date-picker/date-picker.tsx +90 -90
  306. package/src/lib/date-picker/index.ts +1 -1
  307. package/src/lib/date-range-picker/date-range-picker.css +9 -9
  308. package/src/lib/date-range-picker/date-range-picker.form-control.css +3 -3
  309. package/src/lib/date-range-picker/date-range-picker.form-control.spec.tsx +58 -58
  310. package/src/lib/date-range-picker/date-range-picker.form-control.tsx +150 -150
  311. package/src/lib/date-range-picker/date-range-picker.stories.tsx +207 -207
  312. package/src/lib/date-range-picker/date-range-picker.tsx +156 -156
  313. package/src/lib/date-range-picker/index.ts +2 -2
  314. package/src/lib/file-picker/file-picker.css +63 -63
  315. package/src/lib/file-picker/file-picker.stories.tsx +447 -447
  316. package/src/lib/file-picker/file-picker.tsx +180 -180
  317. package/src/lib/file-picker/fs-map.json +1556 -1556
  318. package/src/lib/file-picker/index.ts +2 -2
  319. package/src/lib/file-picker/localization.ts +164 -164
  320. package/src/lib/index.ts +13 -13
  321. package/src/lib/map-filter-container/container-map.css +5 -5
  322. package/src/lib/map-filter-container/container-map.tsx +48 -48
  323. package/src/lib/map-filter-container/index.ts +1 -1
  324. package/src/lib/map-filter-container/map-filter-container.tsx +91 -91
  325. package/src/lib/map-filter-container/polygon-selection-ui.spec.tsx +119 -119
  326. package/src/lib/map-filter-container/polygon-selection-ui.tsx +111 -111
  327. package/src/lib/map-filter-container/stories/Map.stories.tsx +76 -76
  328. package/src/lib/models/defaults.ts +32 -32
  329. package/src/lib/models/enums.ts +16 -16
  330. package/src/lib/models/index.ts +1 -1
  331. package/src/lib/ol-map/feature.tsx +23 -23
  332. package/src/lib/ol-map/index.ts +6 -6
  333. package/src/lib/ol-map/interactions/draw.tsx +56 -56
  334. package/src/lib/ol-map/interactions/index.ts +1 -1
  335. package/src/lib/ol-map/layers/index.ts +3 -3
  336. package/src/lib/ol-map/layers/tile-layer.tsx +36 -36
  337. package/src/lib/ol-map/layers/vector-layer.tsx +32 -32
  338. package/src/lib/ol-map/layers/vector-tile-layer.tsx +56 -56
  339. package/src/lib/ol-map/map.css +17 -17
  340. package/src/lib/ol-map/map.tsx +137 -137
  341. package/src/lib/ol-map/source/index.ts +6 -6
  342. package/src/lib/ol-map/source/mvt.tsx +46 -46
  343. package/src/lib/ol-map/source/osm.tsx +13 -13
  344. package/src/lib/ol-map/source/stories/mvt.stories.tsx +68 -68
  345. package/src/lib/ol-map/source/stories/vector-source.stories.tsx +78 -78
  346. package/src/lib/ol-map/source/stories/wms.stories.tsx +51 -51
  347. package/src/lib/ol-map/source/stories/wmts.stories.tsx +72 -72
  348. package/src/lib/ol-map/source/stories/xyz.stories.tsx +53 -53
  349. package/src/lib/ol-map/source/vector-source.tsx +30 -30
  350. package/src/lib/ol-map/source/wms.tsx +40 -40
  351. package/src/lib/ol-map/source/wmts.tsx +82 -82
  352. package/src/lib/ol-map/source/xyz.tsx +33 -33
  353. package/src/lib/ol-map/stories/map.stories.tsx +60 -60
  354. package/src/lib/ol-map/style.ts +24 -24
  355. package/src/lib/popover/index.ts +1 -1
  356. package/src/lib/popover/popover.tsx +7 -7
  357. package/src/lib/smart-table/__mock-data__/smartTableMocks.ts +22 -22
  358. package/src/lib/smart-table/index.ts +2 -2
  359. package/src/lib/smart-table/smart-table-head.spec.tsx +116 -116
  360. package/src/lib/smart-table/smart-table-head.tsx +47 -47
  361. package/src/lib/smart-table/smart-table-row.spec.tsx +109 -109
  362. package/src/lib/smart-table/smart-table-row.tsx +78 -78
  363. package/src/lib/smart-table/smart-table-types.ts +10 -10
  364. package/src/lib/smart-table/smart-table.spec.tsx +116 -116
  365. package/src/lib/smart-table/smart-table.tsx +115 -115
  366. package/src/lib/smart-table/stories/SmartTable.stories.tsx +114 -114
  367. package/src/lib/theme/index.ts +1 -1
  368. package/src/lib/theme/theme.ts +123 -123
  369. package/src/lib/utils/map.ts +19 -19
  370. package/src/lib/utils/projections.ts +7 -7
  371. package/src/lib/utils/story.ts +11 -11
  372. package/src/react-app-env.d.ts +1 -1
  373. package/src/setupTests.ts +14 -14
  374. package/tsbuildconfig.json +37 -37
  375. package/tsconfig.json +26 -26
  376. package/dist/cesium-map/layers/3d.tileset.update.d.ts +0 -1
  377. package/dist/cesium-map/layers/3d.tileset.update.js +0 -5
  378. package/src/lib/cesium-map/layers/3d.tileset.update.ts +0 -72
  379. package/storybook-static/mock/tileset_1/ll.b3dm +0 -0
  380. package/storybook-static/mock/tileset_1/lr.b3dm +0 -0
  381. package/storybook-static/mock/tileset_1/parent.b3dm +0 -0
  382. package/storybook-static/mock/tileset_1/tileset.json +0 -124
  383. package/storybook-static/mock/tileset_1/ul.b3dm +0 -0
  384. package/storybook-static/mock/tileset_1/ur.b3dm +0 -0
@@ -1,192 +1,192 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { Cartesian2, EllipsoidGeodesic, EventHelper } from 'cesium';
3
- import { isNumber, get } from 'lodash';
4
- import { CesiumViewer, useCesiumMap } from '../map';
5
-
6
- import './scale-tracker.tool.css';
7
-
8
- export interface RScaleTrackerToolProps {
9
- locale?: { [key: string]: string };
10
- }
11
-
12
- interface IScaleData {
13
- barWidth?: number;
14
- distanceLabel?: string;
15
- lastLegendUpdate: number;
16
- }
17
-
18
- /* eslint-disable @typescript-eslint/no-magic-numbers */
19
- const distances = [
20
- 1,
21
- 2,
22
- 3,
23
- 5,
24
- 10,
25
- 20,
26
- 30,
27
- 50,
28
- 100,
29
- 200,
30
- 300,
31
- 500,
32
- 1000,
33
- 2000,
34
- 3000,
35
- 5000,
36
- 10000,
37
- 20000,
38
- 30000,
39
- 50000,
40
- 100000,
41
- 200000,
42
- 300000,
43
- 500000,
44
- 1000000,
45
- 2000000,
46
- 3000000,
47
- 5000000,
48
- 10000000,
49
- 20000000,
50
- 30000000,
51
- 50000000,
52
- ];
53
-
54
- const updateDistanceLegendCesium = (
55
- mapViewer: CesiumViewer,
56
- prevScaleData: IScaleData,
57
- setScaleData: React.Dispatch<React.SetStateAction<IScaleData>>,
58
- locale?: { [key: string]: string }
59
- ): void => {
60
- const metersUnit = get(locale, 'METERS_UNIT') ?? 'm';
61
- const kiloMetersUnit = get(locale, 'KILOMETERS_UNIT') ?? 'km';
62
- const scale: IScaleData = {
63
- barWidth: undefined,
64
- distanceLabel: undefined,
65
- lastLegendUpdate: prevScaleData.lastLegendUpdate,
66
- };
67
- const geodesic = new EllipsoidGeodesic();
68
-
69
- const now = new Date().getTime();
70
- if (now < scale.lastLegendUpdate + 250) {
71
- return;
72
- }
73
-
74
- scale.lastLegendUpdate = now;
75
-
76
- // Find the distance between two pixels at the bottom center of the screen.
77
- const width = mapViewer.scene.canvas.clientWidth;
78
- const height = mapViewer.scene.canvas.clientHeight;
79
-
80
- const left = mapViewer.scene.camera.getPickRay(
81
- new Cartesian2((width / 2) | 0, height - 1)
82
- );
83
- const right = mapViewer.scene.camera.getPickRay(
84
- new Cartesian2((1 + width / 2) | 0, height - 1)
85
- );
86
-
87
- const globe = mapViewer.scene.globe;
88
- const leftPosition = globe.pick(left, mapViewer.scene);
89
- const rightPosition = globe.pick(right, mapViewer.scene);
90
-
91
- if (!leftPosition || !rightPosition) {
92
- return;
93
- }
94
-
95
- const leftCartographic = globe.ellipsoid.cartesianToCartographic(
96
- leftPosition
97
- );
98
- const rightCartographic = globe.ellipsoid.cartesianToCartographic(
99
- rightPosition
100
- );
101
-
102
- geodesic.setEndPoints(leftCartographic, rightCartographic);
103
- const pixelDistance = geodesic.surfaceDistance;
104
-
105
- // Find the first distance that makes the scale bar less than 100 pixels.
106
- const maxBarWidth = 100;
107
- let distance;
108
- for (let i = distances.length - 1; !isNumber(distance) && i >= 0; --i) {
109
- if (distances[i] / pixelDistance < maxBarWidth) {
110
- distance = distances[i];
111
- }
112
- }
113
-
114
- if (isNumber(distance)) {
115
- let label = '';
116
- if (distance >= 1000) {
117
- label = `${(distance / 1000).toString()} ${kiloMetersUnit}`;
118
- } else {
119
- label = `${distance.toString()} ${metersUnit}`;
120
- }
121
-
122
- scale.barWidth = (distance / pixelDistance) | 0;
123
- scale.distanceLabel = label;
124
- }
125
-
126
- setScaleData(scale);
127
- };
128
- /* eslint-enable @typescript-eslint/no-magic-numbers */
129
-
130
- export const ScaleTrackerTool: React.FC<RScaleTrackerToolProps> = (props) => {
131
- const mapViewer: CesiumViewer = useCesiumMap();
132
- const [scaleData, setScaleData] = useState<IScaleData>({
133
- barWidth: undefined,
134
- distanceLabel: undefined,
135
- lastLegendUpdate: -1,
136
- });
137
-
138
- useEffect(() => {
139
- const setFromEvent = (e: MouseEvent): void => {
140
- updateDistanceLegendCesium(
141
- mapViewer,
142
- scaleData,
143
- setScaleData,
144
- props.locale
145
- );
146
- };
147
-
148
- const helper = new EventHelper();
149
- const tileLoadHandler = (event: number): void => {
150
- if (mapViewer.scene.globe.tilesLoaded) {
151
- setFromEvent(new MouseEvent('mouse'));
152
- helper.removeAll();
153
- }
154
- };
155
- // Register tiles loader handler for initial load because globe.pick returning undefined
156
- // see here https://community.cesium.com/t/globe-pick-returning-undefined/6616
157
- helper.add(mapViewer.scene.globe.tileLoadProgressEvent, tileLoadHandler);
158
-
159
- mapViewer.camera.moveEnd.addEventListener(setFromEvent);
160
-
161
- return (): void => {
162
- try {
163
- mapViewer.camera.moveEnd.removeEventListener(setFromEvent);
164
- } catch (e) {
165
- console.log('CESIUM camera "moveEnd" remove listener failed', e);
166
- }
167
- };
168
- }, [mapViewer, props.locale, scaleData]);
169
-
170
- const calcLeft = (width: number): number => {
171
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers
172
- return 5 + (125 - width) / 2;
173
- };
174
-
175
- return (
176
- <div className="scalePosition">
177
- {isNumber(scaleData.barWidth) && (
178
- <>
179
- <div className="distance-legend-label">{scaleData.distanceLabel}</div>
180
- <div
181
- className="distance-legend-scale-bar"
182
- style={{
183
- height: '2px',
184
- width: `${scaleData.barWidth.toString()}px`,
185
- left: `${calcLeft(scaleData.barWidth).toString()}px`,
186
- }}
187
- />
188
- </>
189
- )}
190
- </div>
191
- );
192
- };
1
+ import React, { useEffect, useState } from 'react';
2
+ import { Cartesian2, EllipsoidGeodesic, EventHelper } from 'cesium';
3
+ import { isNumber, get } from 'lodash';
4
+ import { CesiumViewer, useCesiumMap } from '../map';
5
+
6
+ import './scale-tracker.tool.css';
7
+
8
+ export interface RScaleTrackerToolProps {
9
+ locale?: { [key: string]: string };
10
+ }
11
+
12
+ interface IScaleData {
13
+ barWidth?: number;
14
+ distanceLabel?: string;
15
+ lastLegendUpdate: number;
16
+ }
17
+
18
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
19
+ const distances = [
20
+ 1,
21
+ 2,
22
+ 3,
23
+ 5,
24
+ 10,
25
+ 20,
26
+ 30,
27
+ 50,
28
+ 100,
29
+ 200,
30
+ 300,
31
+ 500,
32
+ 1000,
33
+ 2000,
34
+ 3000,
35
+ 5000,
36
+ 10000,
37
+ 20000,
38
+ 30000,
39
+ 50000,
40
+ 100000,
41
+ 200000,
42
+ 300000,
43
+ 500000,
44
+ 1000000,
45
+ 2000000,
46
+ 3000000,
47
+ 5000000,
48
+ 10000000,
49
+ 20000000,
50
+ 30000000,
51
+ 50000000,
52
+ ];
53
+
54
+ const updateDistanceLegendCesium = (
55
+ mapViewer: CesiumViewer,
56
+ prevScaleData: IScaleData,
57
+ setScaleData: React.Dispatch<React.SetStateAction<IScaleData>>,
58
+ locale?: { [key: string]: string }
59
+ ): void => {
60
+ const metersUnit = get(locale, 'METERS_UNIT') ?? 'm';
61
+ const kiloMetersUnit = get(locale, 'KILOMETERS_UNIT') ?? 'km';
62
+ const scale: IScaleData = {
63
+ barWidth: undefined,
64
+ distanceLabel: undefined,
65
+ lastLegendUpdate: prevScaleData.lastLegendUpdate,
66
+ };
67
+ const geodesic = new EllipsoidGeodesic();
68
+
69
+ const now = new Date().getTime();
70
+ if (now < scale.lastLegendUpdate + 250) {
71
+ return;
72
+ }
73
+
74
+ scale.lastLegendUpdate = now;
75
+
76
+ // Find the distance between two pixels at the bottom center of the screen.
77
+ const width = mapViewer.scene.canvas.clientWidth;
78
+ const height = mapViewer.scene.canvas.clientHeight;
79
+
80
+ const left = mapViewer.scene.camera.getPickRay(
81
+ new Cartesian2((width / 2) | 0, height - 1)
82
+ );
83
+ const right = mapViewer.scene.camera.getPickRay(
84
+ new Cartesian2((1 + width / 2) | 0, height - 1)
85
+ );
86
+
87
+ const globe = mapViewer.scene.globe;
88
+ const leftPosition = globe.pick(left, mapViewer.scene);
89
+ const rightPosition = globe.pick(right, mapViewer.scene);
90
+
91
+ if (!leftPosition || !rightPosition) {
92
+ return;
93
+ }
94
+
95
+ const leftCartographic = globe.ellipsoid.cartesianToCartographic(
96
+ leftPosition
97
+ );
98
+ const rightCartographic = globe.ellipsoid.cartesianToCartographic(
99
+ rightPosition
100
+ );
101
+
102
+ geodesic.setEndPoints(leftCartographic, rightCartographic);
103
+ const pixelDistance = geodesic.surfaceDistance;
104
+
105
+ // Find the first distance that makes the scale bar less than 100 pixels.
106
+ const maxBarWidth = 100;
107
+ let distance;
108
+ for (let i = distances.length - 1; !isNumber(distance) && i >= 0; --i) {
109
+ if (distances[i] / pixelDistance < maxBarWidth) {
110
+ distance = distances[i];
111
+ }
112
+ }
113
+
114
+ if (isNumber(distance)) {
115
+ let label = '';
116
+ if (distance >= 1000) {
117
+ label = `${(distance / 1000).toString()} ${kiloMetersUnit}`;
118
+ } else {
119
+ label = `${distance.toString()} ${metersUnit}`;
120
+ }
121
+
122
+ scale.barWidth = (distance / pixelDistance) | 0;
123
+ scale.distanceLabel = label;
124
+ }
125
+
126
+ setScaleData(scale);
127
+ };
128
+ /* eslint-enable @typescript-eslint/no-magic-numbers */
129
+
130
+ export const ScaleTrackerTool: React.FC<RScaleTrackerToolProps> = (props) => {
131
+ const mapViewer: CesiumViewer = useCesiumMap();
132
+ const [scaleData, setScaleData] = useState<IScaleData>({
133
+ barWidth: undefined,
134
+ distanceLabel: undefined,
135
+ lastLegendUpdate: -1,
136
+ });
137
+
138
+ useEffect(() => {
139
+ const setFromEvent = (e: MouseEvent): void => {
140
+ updateDistanceLegendCesium(
141
+ mapViewer,
142
+ scaleData,
143
+ setScaleData,
144
+ props.locale
145
+ );
146
+ };
147
+
148
+ const helper = new EventHelper();
149
+ const tileLoadHandler = (event: number): void => {
150
+ if (mapViewer.scene.globe.tilesLoaded) {
151
+ setFromEvent(new MouseEvent('mouse'));
152
+ helper.removeAll();
153
+ }
154
+ };
155
+ // Register tiles loader handler for initial load because globe.pick returning undefined
156
+ // see here https://community.cesium.com/t/globe-pick-returning-undefined/6616
157
+ helper.add(mapViewer.scene.globe.tileLoadProgressEvent, tileLoadHandler);
158
+
159
+ mapViewer.camera.moveEnd.addEventListener(setFromEvent);
160
+
161
+ return (): void => {
162
+ try {
163
+ mapViewer.camera.moveEnd.removeEventListener(setFromEvent);
164
+ } catch (e) {
165
+ console.log('CESIUM camera "moveEnd" remove listener failed', e);
166
+ }
167
+ };
168
+ }, [mapViewer, props.locale, scaleData]);
169
+
170
+ const calcLeft = (width: number): number => {
171
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
172
+ return 5 + (125 - width) / 2;
173
+ };
174
+
175
+ return (
176
+ <div className="scalePosition">
177
+ {isNumber(scaleData.barWidth) && (
178
+ <>
179
+ <div className="distance-legend-label">{scaleData.distanceLabel}</div>
180
+ <div
181
+ className="distance-legend-scale-bar"
182
+ style={{
183
+ height: '2px',
184
+ width: `${scaleData.barWidth.toString()}px`,
185
+ left: `${calcLeft(scaleData.barWidth).toString()}px`,
186
+ }}
187
+ />
188
+ </>
189
+ )}
190
+ </div>
191
+ );
192
+ };