@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,158 +1,158 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.ScaleTrackerTool = void 0;
23
- var react_1 = __importStar(require("react"));
24
- var cesium_1 = require("cesium");
25
- var lodash_1 = require("lodash");
26
- var map_1 = require("../map");
27
- require("./scale-tracker.tool.css");
28
- /* eslint-disable @typescript-eslint/no-magic-numbers */
29
- var distances = [
30
- 1,
31
- 2,
32
- 3,
33
- 5,
34
- 10,
35
- 20,
36
- 30,
37
- 50,
38
- 100,
39
- 200,
40
- 300,
41
- 500,
42
- 1000,
43
- 2000,
44
- 3000,
45
- 5000,
46
- 10000,
47
- 20000,
48
- 30000,
49
- 50000,
50
- 100000,
51
- 200000,
52
- 300000,
53
- 500000,
54
- 1000000,
55
- 2000000,
56
- 3000000,
57
- 5000000,
58
- 10000000,
59
- 20000000,
60
- 30000000,
61
- 50000000,
62
- ];
63
- var updateDistanceLegendCesium = function (mapViewer, prevScaleData, setScaleData, locale) {
64
- var _a, _b;
65
- var metersUnit = (_a = lodash_1.get(locale, 'METERS_UNIT')) !== null && _a !== void 0 ? _a : 'm';
66
- var kiloMetersUnit = (_b = lodash_1.get(locale, 'KILOMETERS_UNIT')) !== null && _b !== void 0 ? _b : 'km';
67
- var scale = {
68
- barWidth: undefined,
69
- distanceLabel: undefined,
70
- lastLegendUpdate: prevScaleData.lastLegendUpdate,
71
- };
72
- var geodesic = new cesium_1.EllipsoidGeodesic();
73
- var now = new Date().getTime();
74
- if (now < scale.lastLegendUpdate + 250) {
75
- return;
76
- }
77
- scale.lastLegendUpdate = now;
78
- // Find the distance between two pixels at the bottom center of the screen.
79
- var width = mapViewer.scene.canvas.clientWidth;
80
- var height = mapViewer.scene.canvas.clientHeight;
81
- var left = mapViewer.scene.camera.getPickRay(new cesium_1.Cartesian2((width / 2) | 0, height - 1));
82
- var right = mapViewer.scene.camera.getPickRay(new cesium_1.Cartesian2((1 + width / 2) | 0, height - 1));
83
- var globe = mapViewer.scene.globe;
84
- var leftPosition = globe.pick(left, mapViewer.scene);
85
- var rightPosition = globe.pick(right, mapViewer.scene);
86
- if (!leftPosition || !rightPosition) {
87
- return;
88
- }
89
- var leftCartographic = globe.ellipsoid.cartesianToCartographic(leftPosition);
90
- var rightCartographic = globe.ellipsoid.cartesianToCartographic(rightPosition);
91
- geodesic.setEndPoints(leftCartographic, rightCartographic);
92
- var pixelDistance = geodesic.surfaceDistance;
93
- // Find the first distance that makes the scale bar less than 100 pixels.
94
- var maxBarWidth = 100;
95
- var distance;
96
- for (var i = distances.length - 1; !lodash_1.isNumber(distance) && i >= 0; --i) {
97
- if (distances[i] / pixelDistance < maxBarWidth) {
98
- distance = distances[i];
99
- }
100
- }
101
- if (lodash_1.isNumber(distance)) {
102
- var label = '';
103
- if (distance >= 1000) {
104
- label = (distance / 1000).toString() + " " + kiloMetersUnit;
105
- }
106
- else {
107
- label = distance.toString() + " " + metersUnit;
108
- }
109
- scale.barWidth = (distance / pixelDistance) | 0;
110
- scale.distanceLabel = label;
111
- }
112
- setScaleData(scale);
113
- };
114
- /* eslint-enable @typescript-eslint/no-magic-numbers */
115
- var ScaleTrackerTool = function (props) {
116
- var mapViewer = map_1.useCesiumMap();
117
- var _a = react_1.useState({
118
- barWidth: undefined,
119
- distanceLabel: undefined,
120
- lastLegendUpdate: -1,
121
- }), scaleData = _a[0], setScaleData = _a[1];
122
- react_1.useEffect(function () {
123
- var setFromEvent = function (e) {
124
- updateDistanceLegendCesium(mapViewer, scaleData, setScaleData, props.locale);
125
- };
126
- var helper = new cesium_1.EventHelper();
127
- var tileLoadHandler = function (event) {
128
- if (mapViewer.scene.globe.tilesLoaded) {
129
- setFromEvent(new MouseEvent('mouse'));
130
- helper.removeAll();
131
- }
132
- };
133
- // Register tiles loader handler for initial load because globe.pick returning undefined
134
- // see here https://community.cesium.com/t/globe-pick-returning-undefined/6616
135
- helper.add(mapViewer.scene.globe.tileLoadProgressEvent, tileLoadHandler);
136
- mapViewer.camera.moveEnd.addEventListener(setFromEvent);
137
- return function () {
138
- try {
139
- mapViewer.camera.moveEnd.removeEventListener(setFromEvent);
140
- }
141
- catch (e) {
142
- console.log('CESIUM camera "moveEnd" remove listener failed', e);
143
- }
144
- };
145
- }, [mapViewer, props.locale, scaleData]);
146
- var calcLeft = function (width) {
147
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers
148
- return 5 + (125 - width) / 2;
149
- };
150
- return (react_1.default.createElement("div", { className: "scalePosition" }, lodash_1.isNumber(scaleData.barWidth) && (react_1.default.createElement(react_1.default.Fragment, null,
151
- react_1.default.createElement("div", { className: "distance-legend-label" }, scaleData.distanceLabel),
152
- react_1.default.createElement("div", { className: "distance-legend-scale-bar", style: {
153
- height: '2px',
154
- width: scaleData.barWidth.toString() + "px",
155
- left: calcLeft(scaleData.barWidth).toString() + "px",
156
- } })))));
157
- };
158
- exports.ScaleTrackerTool = ScaleTrackerTool;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ScaleTrackerTool = void 0;
23
+ var react_1 = __importStar(require("react"));
24
+ var cesium_1 = require("cesium");
25
+ var lodash_1 = require("lodash");
26
+ var map_1 = require("../map");
27
+ require("./scale-tracker.tool.css");
28
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
29
+ var distances = [
30
+ 1,
31
+ 2,
32
+ 3,
33
+ 5,
34
+ 10,
35
+ 20,
36
+ 30,
37
+ 50,
38
+ 100,
39
+ 200,
40
+ 300,
41
+ 500,
42
+ 1000,
43
+ 2000,
44
+ 3000,
45
+ 5000,
46
+ 10000,
47
+ 20000,
48
+ 30000,
49
+ 50000,
50
+ 100000,
51
+ 200000,
52
+ 300000,
53
+ 500000,
54
+ 1000000,
55
+ 2000000,
56
+ 3000000,
57
+ 5000000,
58
+ 10000000,
59
+ 20000000,
60
+ 30000000,
61
+ 50000000,
62
+ ];
63
+ var updateDistanceLegendCesium = function (mapViewer, prevScaleData, setScaleData, locale) {
64
+ var _a, _b;
65
+ var metersUnit = (_a = lodash_1.get(locale, 'METERS_UNIT')) !== null && _a !== void 0 ? _a : 'm';
66
+ var kiloMetersUnit = (_b = lodash_1.get(locale, 'KILOMETERS_UNIT')) !== null && _b !== void 0 ? _b : 'km';
67
+ var scale = {
68
+ barWidth: undefined,
69
+ distanceLabel: undefined,
70
+ lastLegendUpdate: prevScaleData.lastLegendUpdate,
71
+ };
72
+ var geodesic = new cesium_1.EllipsoidGeodesic();
73
+ var now = new Date().getTime();
74
+ if (now < scale.lastLegendUpdate + 250) {
75
+ return;
76
+ }
77
+ scale.lastLegendUpdate = now;
78
+ // Find the distance between two pixels at the bottom center of the screen.
79
+ var width = mapViewer.scene.canvas.clientWidth;
80
+ var height = mapViewer.scene.canvas.clientHeight;
81
+ var left = mapViewer.scene.camera.getPickRay(new cesium_1.Cartesian2((width / 2) | 0, height - 1));
82
+ var right = mapViewer.scene.camera.getPickRay(new cesium_1.Cartesian2((1 + width / 2) | 0, height - 1));
83
+ var globe = mapViewer.scene.globe;
84
+ var leftPosition = globe.pick(left, mapViewer.scene);
85
+ var rightPosition = globe.pick(right, mapViewer.scene);
86
+ if (!leftPosition || !rightPosition) {
87
+ return;
88
+ }
89
+ var leftCartographic = globe.ellipsoid.cartesianToCartographic(leftPosition);
90
+ var rightCartographic = globe.ellipsoid.cartesianToCartographic(rightPosition);
91
+ geodesic.setEndPoints(leftCartographic, rightCartographic);
92
+ var pixelDistance = geodesic.surfaceDistance;
93
+ // Find the first distance that makes the scale bar less than 100 pixels.
94
+ var maxBarWidth = 100;
95
+ var distance;
96
+ for (var i = distances.length - 1; !lodash_1.isNumber(distance) && i >= 0; --i) {
97
+ if (distances[i] / pixelDistance < maxBarWidth) {
98
+ distance = distances[i];
99
+ }
100
+ }
101
+ if (lodash_1.isNumber(distance)) {
102
+ var label = '';
103
+ if (distance >= 1000) {
104
+ label = (distance / 1000).toString() + " " + kiloMetersUnit;
105
+ }
106
+ else {
107
+ label = distance.toString() + " " + metersUnit;
108
+ }
109
+ scale.barWidth = (distance / pixelDistance) | 0;
110
+ scale.distanceLabel = label;
111
+ }
112
+ setScaleData(scale);
113
+ };
114
+ /* eslint-enable @typescript-eslint/no-magic-numbers */
115
+ var ScaleTrackerTool = function (props) {
116
+ var mapViewer = map_1.useCesiumMap();
117
+ var _a = react_1.useState({
118
+ barWidth: undefined,
119
+ distanceLabel: undefined,
120
+ lastLegendUpdate: -1,
121
+ }), scaleData = _a[0], setScaleData = _a[1];
122
+ react_1.useEffect(function () {
123
+ var setFromEvent = function (e) {
124
+ updateDistanceLegendCesium(mapViewer, scaleData, setScaleData, props.locale);
125
+ };
126
+ var helper = new cesium_1.EventHelper();
127
+ var tileLoadHandler = function (event) {
128
+ if (mapViewer.scene.globe.tilesLoaded) {
129
+ setFromEvent(new MouseEvent('mouse'));
130
+ helper.removeAll();
131
+ }
132
+ };
133
+ // Register tiles loader handler for initial load because globe.pick returning undefined
134
+ // see here https://community.cesium.com/t/globe-pick-returning-undefined/6616
135
+ helper.add(mapViewer.scene.globe.tileLoadProgressEvent, tileLoadHandler);
136
+ mapViewer.camera.moveEnd.addEventListener(setFromEvent);
137
+ return function () {
138
+ try {
139
+ mapViewer.camera.moveEnd.removeEventListener(setFromEvent);
140
+ }
141
+ catch (e) {
142
+ console.log('CESIUM camera "moveEnd" remove listener failed', e);
143
+ }
144
+ };
145
+ }, [mapViewer, props.locale, scaleData]);
146
+ var calcLeft = function (width) {
147
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
148
+ return 5 + (125 - width) / 2;
149
+ };
150
+ return (react_1.default.createElement("div", { className: "scalePosition" }, lodash_1.isNumber(scaleData.barWidth) && (react_1.default.createElement(react_1.default.Fragment, null,
151
+ react_1.default.createElement("div", { className: "distance-legend-label" }, scaleData.distanceLabel),
152
+ react_1.default.createElement("div", { className: "distance-legend-scale-bar", style: {
153
+ height: '2px',
154
+ width: scaleData.barWidth.toString() + "px",
155
+ left: calcLeft(scaleData.barWidth).toString() + "px",
156
+ } })))));
157
+ };
158
+ exports.ScaleTrackerTool = ScaleTrackerTool;
@@ -1,4 +1,4 @@
1
- import React from 'react';
2
- export interface TerrainianHeightProps {
3
- }
4
- export declare const TerrainianHeightTool: React.FC<TerrainianHeightProps>;
1
+ import React from 'react';
2
+ export interface TerrainianHeightProps {
3
+ }
4
+ export declare const TerrainianHeightTool: React.FC<TerrainianHeightProps>;
@@ -1,113 +1,114 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TerrainianHeightTool = void 0;
7
- var react_1 = __importDefault(require("react"));
8
- var cesium_1 = require("cesium");
9
- var map_1 = require("../map");
10
- var LABEL_PIXEL_OFFSET = -25;
11
- var FIRST_DATA_ROW_IDX = 2;
12
- var TerrainianHeightTool = function (props) {
13
- var mapViewer = map_1.useCesiumMap();
14
- var csvToArray = function (str, delimiter) {
15
- if (delimiter === void 0) { delimiter = ','; }
16
- // const headers = str.slice(0, str.indexOf('\n')).split(delimiter);
17
- var rows = str.slice(str.indexOf('\n') + 1).split('\n');
18
- var arr = rows.map(function (row) {
19
- var values = row.split(delimiter);
20
- var el = cesium_1.Cartographic.fromDegrees(parseFloat(values[0]), parseFloat(values[1]));
21
- // const el = headers.reduce((object: Record<string, number>, header, index) => {
22
- // const trimmedHeader = header.trim();
23
- // object[trimmedHeader] = parseFloat(values[index]);
24
- // return object;
25
- // }, {});
26
- //return el;
27
- return {
28
- cartographic: el,
29
- cartesian: new cesium_1.Cartesian2(parseFloat(values[0]), parseFloat(values[1])),
30
- };
31
- });
32
- return arr;
33
- };
34
- var loadCSV = function (evt) {
35
- var _a;
36
- evt.preventDefault();
37
- evt.persist();
38
- var reader = new FileReader();
39
- reader.onload = function (e) {
40
- var _a;
41
- var text = (_a = e.target) === null || _a === void 0 ? void 0 : _a.result;
42
- var parsed = csvToArray(text);
43
- var ellipsoid = cesium_1.Ellipsoid.WGS84;
44
- console.log('Loaded CSV content:\n', text);
45
- void cesium_1.sampleTerrainMostDetailed(mapViewer.terrainProvider, parsed.map(function (item) { return item.cartographic; })).then(function (updatedPositions) {
46
- console.log(updatedPositions);
47
- mapViewer.scene.globe.depthTestAgainstTerrain = true;
48
- mapViewer.entities.suspendEvents();
49
- mapViewer.entities.removeAll();
50
- updatedPositions.forEach(function (position, idx) {
51
- mapViewer.entities.add({
52
- name: (idx + FIRST_DATA_ROW_IDX).toString(),
53
- position: ellipsoid.cartographicToCartesian(position),
54
- billboard: {
55
- verticalOrigin: cesium_1.VerticalOrigin.BOTTOM,
56
- scale: 0.7,
57
- image: 'assets/img/map-marker.gif',
58
- },
59
- label: {
60
- text: (idx + FIRST_DATA_ROW_IDX).toString(),
61
- font: '14pt monospace',
62
- fillColor: cesium_1.Color.BLACK,
63
- style: cesium_1.LabelStyle.FILL_AND_OUTLINE,
64
- outlineWidth: 4,
65
- outlineColor: cesium_1.Color.BLACK,
66
- verticalOrigin: cesium_1.VerticalOrigin.BOTTOM,
67
- pixelOffset: new cesium_1.Cartesian2(0, LABEL_PIXEL_OFFSET),
68
- },
69
- description: "\n Long: " + parsed[idx].cartesian.x + " </br>\n Lat: " + parsed[idx].cartesian.y + " </br>\n Height(m): <span style=\"font-weight: 500\">" + position.height + "</span>\n ",
70
- });
71
- });
72
- mapViewer.entities.resumeEvents();
73
- if (evt.target.files !== null) {
74
- exportToCsv("terranian_heights_" + evt.target.files[0].name, parsed);
75
- evt.target.value = '';
76
- }
77
- console.log('Pinned point count is ', mapViewer.entities.values.length);
78
- }, function (err) {
79
- console.error('ERROR while sampleTerrainMostDetailed:', err);
80
- });
81
- };
82
- if ((_a = evt.target.files) === null || _a === void 0 ? void 0 : _a[0]) {
83
- reader.readAsText(evt.target.files[0]);
84
- }
85
- };
86
- var exportToCsv = function (filename, rows) {
87
- var processRow = function (row) {
88
- var finalVal = '';
89
- finalVal += row.cartesian.x.toString() + ',';
90
- finalVal += row.cartesian.y.toString() + ',';
91
- finalVal += row.cartographic.height.toString();
92
- return finalVal + '\n';
93
- };
94
- var csvFile = 'long,lat,height\n';
95
- rows.forEach(function (row) {
96
- csvFile += processRow(row);
97
- });
98
- var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });
99
- var link = document.createElement('a');
100
- var url = URL.createObjectURL(blob);
101
- link.setAttribute('href', url);
102
- link.setAttribute('download', filename);
103
- link.style.visibility = 'hidden';
104
- document.body.appendChild(link);
105
- link.click();
106
- document.body.removeChild(link);
107
- };
108
- return (react_1.default.createElement(react_1.default.Fragment, null,
109
- react_1.default.createElement("input", { type: "file", id: "csvFile", accept: ".csv", onChange: function (e) {
110
- loadCSV(e);
111
- } })));
112
- };
113
- exports.TerrainianHeightTool = TerrainianHeightTool;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TerrainianHeightTool = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var cesium_1 = require("cesium");
9
+ var map_1 = require("../map");
10
+ var LABEL_PIXEL_OFFSET = -25;
11
+ var FIRST_DATA_ROW_IDX = 2;
12
+ var TerrainianHeightTool = function (props) {
13
+ var mapViewer = map_1.useCesiumMap();
14
+ var csvToArray = function (str, delimiter) {
15
+ if (delimiter === void 0) { delimiter = ','; }
16
+ // const headers = str.slice(0, str.indexOf('\n')).split(delimiter);
17
+ var rows = str.slice(str.indexOf('\n') + 1).split('\n');
18
+ var arr = rows.map(function (row) {
19
+ var values = row.split(delimiter);
20
+ var el = cesium_1.Cartographic.fromDegrees(parseFloat(values[0]), parseFloat(values[1]));
21
+ // const el = headers.reduce((object: Record<string, number>, header, index) => {
22
+ // const trimmedHeader = header.trim();
23
+ // object[trimmedHeader] = parseFloat(values[index]);
24
+ // return object;
25
+ // }, {});
26
+ //return el;
27
+ return {
28
+ cartographic: el,
29
+ cartesian: new cesium_1.Cartesian2(parseFloat(values[0]), parseFloat(values[1])),
30
+ };
31
+ });
32
+ return arr;
33
+ };
34
+ var loadCSV = function (evt) {
35
+ var _a;
36
+ evt.preventDefault();
37
+ evt.persist();
38
+ var reader = new FileReader();
39
+ reader.onload = function (e) {
40
+ var _a;
41
+ var text = (_a = e.target) === null || _a === void 0 ? void 0 : _a.result;
42
+ var parsed = csvToArray(text);
43
+ var ellipsoid = cesium_1.Ellipsoid.WGS84;
44
+ console.log('Loaded CSV content:\n', text);
45
+ void cesium_1.sampleTerrainMostDetailed(mapViewer.terrainProvider, parsed.map(function (item) { return item.cartographic; })).then(function (updatedPositions) {
46
+ console.log(updatedPositions);
47
+ updatedPositions = updatedPositions.slice(0, updatedPositions.length - 1); // UNIX brake line
48
+ mapViewer.scene.globe.depthTestAgainstTerrain = true;
49
+ mapViewer.entities.suspendEvents();
50
+ mapViewer.entities.removeAll();
51
+ updatedPositions.forEach(function (position, idx) {
52
+ mapViewer.entities.add({
53
+ name: (idx + FIRST_DATA_ROW_IDX).toString(),
54
+ position: ellipsoid.cartographicToCartesian(position),
55
+ billboard: {
56
+ verticalOrigin: cesium_1.VerticalOrigin.BOTTOM,
57
+ scale: 0.7,
58
+ image: 'assets/img/map-marker.gif',
59
+ },
60
+ label: {
61
+ text: (idx + FIRST_DATA_ROW_IDX).toString(),
62
+ font: '14pt monospace',
63
+ fillColor: cesium_1.Color.BLACK,
64
+ style: cesium_1.LabelStyle.FILL_AND_OUTLINE,
65
+ outlineWidth: 4,
66
+ outlineColor: cesium_1.Color.BLACK,
67
+ verticalOrigin: cesium_1.VerticalOrigin.BOTTOM,
68
+ pixelOffset: new cesium_1.Cartesian2(0, LABEL_PIXEL_OFFSET),
69
+ },
70
+ description: "\n Long: " + parsed[idx].cartesian.x + " </br>\n Lat: " + parsed[idx].cartesian.y + " </br>\n Height(m): <span style=\"font-weight: 500\">" + position.height + "</span>\n ",
71
+ });
72
+ });
73
+ mapViewer.entities.resumeEvents();
74
+ if (evt.target.files !== null) {
75
+ exportToCsv("terranian_heights_" + evt.target.files[0].name, parsed);
76
+ evt.target.value = '';
77
+ }
78
+ console.log('Pinned point count is ', mapViewer.entities.values.length);
79
+ }, function (err) {
80
+ console.error('ERROR while sampleTerrainMostDetailed:', err);
81
+ });
82
+ };
83
+ if ((_a = evt.target.files) === null || _a === void 0 ? void 0 : _a[0]) {
84
+ reader.readAsText(evt.target.files[0]);
85
+ }
86
+ };
87
+ var exportToCsv = function (filename, rows) {
88
+ var processRow = function (row) {
89
+ var finalVal = '';
90
+ finalVal += row.cartesian.x.toString() + ',';
91
+ finalVal += row.cartesian.y.toString() + ',';
92
+ finalVal += row.cartographic.height.toString();
93
+ return finalVal + '\n';
94
+ };
95
+ var csvFile = 'long,lat,height\n';
96
+ rows.forEach(function (row) {
97
+ csvFile += processRow(row);
98
+ });
99
+ var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });
100
+ var link = document.createElement('a');
101
+ var url = URL.createObjectURL(blob);
102
+ link.setAttribute('href', url);
103
+ link.setAttribute('download', filename);
104
+ link.style.visibility = 'hidden';
105
+ document.body.appendChild(link);
106
+ link.click();
107
+ document.body.removeChild(link);
108
+ };
109
+ return (react_1.default.createElement(react_1.default.Fragment, null,
110
+ react_1.default.createElement("input", { type: "file", id: "csvFile", accept: ".csv", onChange: function (e) {
111
+ loadCSV(e);
112
+ } })));
113
+ };
114
+ exports.TerrainianHeightTool = TerrainianHeightTool;
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { CssBaselineProps } from '@material-ui/core/CssBaseline';
3
- import { ScopedCssBaselineProps } from '@material-ui/core/ScopedCssBaseline';
4
- export declare const McCssBaseline: React.FC<CssBaselineProps>;
5
- export declare const McScopedCssBaseline: React.FC<ScopedCssBaselineProps>;
1
+ import React from 'react';
2
+ import { CssBaselineProps } from '@material-ui/core/CssBaseline';
3
+ import { ScopedCssBaselineProps } from '@material-ui/core/ScopedCssBaseline';
4
+ export declare const McCssBaseline: React.FC<CssBaselineProps>;
5
+ export declare const McScopedCssBaseline: React.FC<ScopedCssBaselineProps>;