@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,2 +1,2 @@
1
- export * from './file-picker';
2
- export * from './localization';
1
+ export * from './file-picker';
2
+ export * from './localization';
@@ -1,164 +1,164 @@
1
- /* eslint-disable */
2
- import {
3
- ChonkyActions,
4
- ChonkyFormatters,
5
- FileData,
6
- FileHelper,
7
- I18nConfig,
8
- } from 'chonky';
9
- import { IntlShape } from 'react-intl';
10
- import filesize from 'filesize';
11
- import { SupportedLocales } from '../models';
12
-
13
- export interface FilePickerFormatters extends ChonkyFormatters {
14
- formatFileSize: (
15
- intl: IntlShape | null,
16
- file: FileData | null
17
- ) => string | null;
18
- }
19
-
20
- interface IFileSize {
21
- value: number;
22
- symbol: string;
23
- exponent: number;
24
- unit: string;
25
- }
26
-
27
- export const defaultFormatters: FilePickerFormatters = {
28
- formatFileModDate: (
29
- intl: IntlShape,
30
- file: FileData | null
31
- ): string | null => {
32
- const safeModDate = FileHelper.getModDate(file);
33
- if (safeModDate) {
34
- return intl.formatDate(safeModDate, {
35
- dateStyle: 'short',
36
- timeStyle: 'short',
37
- });
38
- } else {
39
- return null;
40
- }
41
- },
42
- formatFileSize: (
43
- _intl: IntlShape | null,
44
- file: FileData | null
45
- ): string | null => {
46
- if (!file || typeof file.size !== 'number') return null;
47
-
48
- const size = file.size;
49
- const sizeData = (filesize(size, {
50
- bits: false,
51
- output: 'object',
52
- }) as unknown) as IFileSize;
53
- if (sizeData.symbol === 'B') {
54
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers
55
- return `${Math.round(sizeData.value / 10) / 100.0} KB`;
56
- } else if (sizeData.symbol === 'KB') {
57
- return `${Math.round(sizeData.value)} ${sizeData.symbol}`;
58
- }
59
- return `${sizeData.value} ${sizeData.symbol.toUpperCase()}`;
60
- },
61
- };
62
-
63
- interface ILocalization {
64
- [key: string]: I18nConfig;
65
- }
66
-
67
- const englishI18n: I18nConfig = {
68
- locale: SupportedLocales.EN,
69
- formatters: { ...defaultFormatters },
70
- };
71
-
72
- const russianI18n: I18nConfig = {
73
- locale: SupportedLocales.RU,
74
- formatters: { ...defaultFormatters },
75
- messages: {
76
- 'chonky.toolbar.searchPlaceholder': 'Поиск',
77
- 'chonky.toolbar.visibleFileCount': `{fileCount, plural,
78
- one {# файл}
79
- few {# файла}
80
- other {# файлов}
81
- }`,
82
- 'chonky.toolbar.selectedFileCount': `{fileCount, plural,
83
- =0 {}
84
- one {# выделен}
85
- other {# выделено}
86
- }`,
87
- 'chonky.toolbar.hiddenFileCount': `{fileCount, plural,
88
- =0 {}
89
- one {# скрыт}
90
- other {# скрыто}
91
- }`,
92
- 'chonky.fileList.nothingToShow': 'Здесь пусто!',
93
- 'chonky.contextMenu.browserMenuShortcut': 'Меню браузера: {shortcut}',
94
-
95
- // Actions
96
- [`chonky.actionGroups.Actions`]: 'Действия',
97
- [`chonky.actionGroups.Options`]: 'Опции',
98
- [`chonky.actions.${ChonkyActions.OpenParentFolder.id}.button.name`]: 'Открыть родительскую папку',
99
- [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.name`]: 'Новая папка',
100
- [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.tooltip`]: 'Создать новую папку',
101
- [`chonky.actions.${ChonkyActions.DeleteFiles.id}.button.name`]: 'Удалить файлы',
102
- [`chonky.actions.${ChonkyActions.OpenSelection.id}.button.name`]: 'Открыть выделение',
103
- [`chonky.actions.${ChonkyActions.SelectAllFiles.id}.button.name`]: 'Выделить все',
104
- [`chonky.actions.${ChonkyActions.ClearSelection.id}.button.name`]: 'Сбросить выделение',
105
- [`chonky.actions.${ChonkyActions.EnableListView.id}.button.name`]: 'Показать список',
106
- [`chonky.actions.${ChonkyActions.EnableGridView.id}.button.name`]: 'Показать иконки',
107
- [`chonky.actions.${ChonkyActions.SortFilesByName.id}.button.name`]: 'Сорт. по имени',
108
- [`chonky.actions.${ChonkyActions.SortFilesBySize.id}.button.name`]: 'Сорт. по размеру',
109
- [`chonky.actions.${ChonkyActions.SortFilesByDate.id}.button.name`]: 'Сорт. по дате',
110
- [`chonky.actions.${ChonkyActions.ToggleHiddenFiles.id}.button.name`]: 'Скрытые файлы',
111
- [`chonky.actions.${ChonkyActions.ToggleShowFoldersFirst.id}.button.name`]: 'Папки в начале',
112
- },
113
- };
114
-
115
- const hebrewI18n: I18nConfig = {
116
- locale: SupportedLocales.HE,
117
- formatters: { ...defaultFormatters },
118
- messages: {
119
- 'chonky.toolbar.searchPlaceholder': 'חיפוש',
120
- 'chonky.toolbar.visibleFileCount': `{fileCount, plural,
121
- one {פריט #}
122
- other {# פריטים}
123
- }`,
124
- 'chonky.toolbar.selectedFileCount': `{fileCount, plural,
125
- =0 {}
126
- one {# נבחר}
127
- other {# נבחרו}
128
- }`,
129
- 'chonky.toolbar.hiddenFileCount': `{fileCount, plural,
130
- =0 {}
131
- one {# נסתר}
132
- other {# נסתרים}
133
- }`,
134
- 'chonky.fileList.nothingToShow': 'ריק',
135
- 'chonky.contextMenu.browserMenuShortcut': 'תפריט דפדפן: {shortcut}',
136
-
137
- // Actions
138
- [`chonky.actionGroups.Actions`]: 'פעולות',
139
- [`chonky.actionGroups.Options`]: 'אפשרויות',
140
- [`chonky.actions.${ChonkyActions.OpenParentFolder.id}.button.name`]: 'פתח סיפריית אב',
141
- [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.name`]: 'סיפרייה חדשה',
142
- [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.tooltip`]: 'צור סיפרייה חדשה',
143
- [`chonky.actions.${ChonkyActions.DeleteFiles.id}.button.name`]: 'מחק',
144
- [`chonky.actions.${ChonkyActions.OpenSelection.id}.button.name`]: 'פתח את הבחירה',
145
- [`chonky.actions.${ChonkyActions.SelectAllFiles.id}.button.name`]: 'בחר הכל',
146
- [`chonky.actions.${ChonkyActions.ClearSelection.id}.button.name`]: 'אפס את הבחירה',
147
- [`chonky.actions.${ChonkyActions.EnableListView.id}.button.name`]: 'תצוגת רשימה',
148
- [`chonky.actions.${ChonkyActions.EnableGridView.id}.button.name`]: 'תצוגת גריד',
149
- [`chonky.actions.${ChonkyActions.SortFilesByName.id}.button.name`]: 'מיון לפי שם',
150
- [`chonky.actions.${ChonkyActions.SortFilesBySize.id}.button.name`]: 'מיון לפי גודל',
151
- [`chonky.actions.${ChonkyActions.SortFilesByDate.id}.button.name`]: 'מיון לפי תאריך',
152
- [`chonky.actions.${ChonkyActions.ToggleHiddenFiles.id}.button.name`]: 'קבצים נסתרים',
153
- [`chonky.actions.${ChonkyActions.ToggleShowFoldersFirst.id}.button.name`]: 'הצגת תיקיות בראש הרשימה',
154
- },
155
- };
156
-
157
- const localization: ILocalization = {
158
- [SupportedLocales.EN]: englishI18n,
159
- [SupportedLocales.RU]: russianI18n,
160
- [SupportedLocales.HE]: hebrewI18n,
161
- };
162
-
163
- export default localization;
164
- /* eslint-enable */
1
+ /* eslint-disable */
2
+ import {
3
+ ChonkyActions,
4
+ ChonkyFormatters,
5
+ FileData,
6
+ FileHelper,
7
+ I18nConfig,
8
+ } from 'chonky';
9
+ import { IntlShape } from 'react-intl';
10
+ import filesize from 'filesize';
11
+ import { SupportedLocales } from '../models';
12
+
13
+ export interface FilePickerFormatters extends ChonkyFormatters {
14
+ formatFileSize: (
15
+ intl: IntlShape | null,
16
+ file: FileData | null
17
+ ) => string | null;
18
+ }
19
+
20
+ interface IFileSize {
21
+ value: number;
22
+ symbol: string;
23
+ exponent: number;
24
+ unit: string;
25
+ }
26
+
27
+ export const defaultFormatters: FilePickerFormatters = {
28
+ formatFileModDate: (
29
+ intl: IntlShape,
30
+ file: FileData | null
31
+ ): string | null => {
32
+ const safeModDate = FileHelper.getModDate(file);
33
+ if (safeModDate) {
34
+ return intl.formatDate(safeModDate, {
35
+ dateStyle: 'short',
36
+ timeStyle: 'short',
37
+ });
38
+ } else {
39
+ return null;
40
+ }
41
+ },
42
+ formatFileSize: (
43
+ _intl: IntlShape | null,
44
+ file: FileData | null
45
+ ): string | null => {
46
+ if (!file || typeof file.size !== 'number') return null;
47
+
48
+ const size = file.size;
49
+ const sizeData = (filesize(size, {
50
+ bits: false,
51
+ output: 'object',
52
+ }) as unknown) as IFileSize;
53
+ if (sizeData.symbol === 'B') {
54
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
55
+ return `${Math.round(sizeData.value / 10) / 100.0} KB`;
56
+ } else if (sizeData.symbol === 'KB') {
57
+ return `${Math.round(sizeData.value)} ${sizeData.symbol}`;
58
+ }
59
+ return `${sizeData.value} ${sizeData.symbol.toUpperCase()}`;
60
+ },
61
+ };
62
+
63
+ interface ILocalization {
64
+ [key: string]: I18nConfig;
65
+ }
66
+
67
+ const englishI18n: I18nConfig = {
68
+ locale: SupportedLocales.EN,
69
+ formatters: { ...defaultFormatters },
70
+ };
71
+
72
+ const russianI18n: I18nConfig = {
73
+ locale: SupportedLocales.RU,
74
+ formatters: { ...defaultFormatters },
75
+ messages: {
76
+ 'chonky.toolbar.searchPlaceholder': 'Поиск',
77
+ 'chonky.toolbar.visibleFileCount': `{fileCount, plural,
78
+ one {# файл}
79
+ few {# файла}
80
+ other {# файлов}
81
+ }`,
82
+ 'chonky.toolbar.selectedFileCount': `{fileCount, plural,
83
+ =0 {}
84
+ one {# выделен}
85
+ other {# выделено}
86
+ }`,
87
+ 'chonky.toolbar.hiddenFileCount': `{fileCount, plural,
88
+ =0 {}
89
+ one {# скрыт}
90
+ other {# скрыто}
91
+ }`,
92
+ 'chonky.fileList.nothingToShow': 'Здесь пусто!',
93
+ 'chonky.contextMenu.browserMenuShortcut': 'Меню браузера: {shortcut}',
94
+
95
+ // Actions
96
+ [`chonky.actionGroups.Actions`]: 'Действия',
97
+ [`chonky.actionGroups.Options`]: 'Опции',
98
+ [`chonky.actions.${ChonkyActions.OpenParentFolder.id}.button.name`]: 'Открыть родительскую папку',
99
+ [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.name`]: 'Новая папка',
100
+ [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.tooltip`]: 'Создать новую папку',
101
+ [`chonky.actions.${ChonkyActions.DeleteFiles.id}.button.name`]: 'Удалить файлы',
102
+ [`chonky.actions.${ChonkyActions.OpenSelection.id}.button.name`]: 'Открыть выделение',
103
+ [`chonky.actions.${ChonkyActions.SelectAllFiles.id}.button.name`]: 'Выделить все',
104
+ [`chonky.actions.${ChonkyActions.ClearSelection.id}.button.name`]: 'Сбросить выделение',
105
+ [`chonky.actions.${ChonkyActions.EnableListView.id}.button.name`]: 'Показать список',
106
+ [`chonky.actions.${ChonkyActions.EnableGridView.id}.button.name`]: 'Показать иконки',
107
+ [`chonky.actions.${ChonkyActions.SortFilesByName.id}.button.name`]: 'Сорт. по имени',
108
+ [`chonky.actions.${ChonkyActions.SortFilesBySize.id}.button.name`]: 'Сорт. по размеру',
109
+ [`chonky.actions.${ChonkyActions.SortFilesByDate.id}.button.name`]: 'Сорт. по дате',
110
+ [`chonky.actions.${ChonkyActions.ToggleHiddenFiles.id}.button.name`]: 'Скрытые файлы',
111
+ [`chonky.actions.${ChonkyActions.ToggleShowFoldersFirst.id}.button.name`]: 'Папки в начале',
112
+ },
113
+ };
114
+
115
+ const hebrewI18n: I18nConfig = {
116
+ locale: SupportedLocales.HE,
117
+ formatters: { ...defaultFormatters },
118
+ messages: {
119
+ 'chonky.toolbar.searchPlaceholder': 'חיפוש',
120
+ 'chonky.toolbar.visibleFileCount': `{fileCount, plural,
121
+ one {פריט #}
122
+ other {# פריטים}
123
+ }`,
124
+ 'chonky.toolbar.selectedFileCount': `{fileCount, plural,
125
+ =0 {}
126
+ one {# נבחר}
127
+ other {# נבחרו}
128
+ }`,
129
+ 'chonky.toolbar.hiddenFileCount': `{fileCount, plural,
130
+ =0 {}
131
+ one {# נסתר}
132
+ other {# נסתרים}
133
+ }`,
134
+ 'chonky.fileList.nothingToShow': 'ריק',
135
+ 'chonky.contextMenu.browserMenuShortcut': 'תפריט דפדפן: {shortcut}',
136
+
137
+ // Actions
138
+ [`chonky.actionGroups.Actions`]: 'פעולות',
139
+ [`chonky.actionGroups.Options`]: 'אפשרויות',
140
+ [`chonky.actions.${ChonkyActions.OpenParentFolder.id}.button.name`]: 'פתח סיפריית אב',
141
+ [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.name`]: 'סיפרייה חדשה',
142
+ [`chonky.actions.${ChonkyActions.CreateFolder.id}.button.tooltip`]: 'צור סיפרייה חדשה',
143
+ [`chonky.actions.${ChonkyActions.DeleteFiles.id}.button.name`]: 'מחק',
144
+ [`chonky.actions.${ChonkyActions.OpenSelection.id}.button.name`]: 'פתח את הבחירה',
145
+ [`chonky.actions.${ChonkyActions.SelectAllFiles.id}.button.name`]: 'בחר הכל',
146
+ [`chonky.actions.${ChonkyActions.ClearSelection.id}.button.name`]: 'אפס את הבחירה',
147
+ [`chonky.actions.${ChonkyActions.EnableListView.id}.button.name`]: 'תצוגת רשימה',
148
+ [`chonky.actions.${ChonkyActions.EnableGridView.id}.button.name`]: 'תצוגת גריד',
149
+ [`chonky.actions.${ChonkyActions.SortFilesByName.id}.button.name`]: 'מיון לפי שם',
150
+ [`chonky.actions.${ChonkyActions.SortFilesBySize.id}.button.name`]: 'מיון לפי גודל',
151
+ [`chonky.actions.${ChonkyActions.SortFilesByDate.id}.button.name`]: 'מיון לפי תאריך',
152
+ [`chonky.actions.${ChonkyActions.ToggleHiddenFiles.id}.button.name`]: 'קבצים נסתרים',
153
+ [`chonky.actions.${ChonkyActions.ToggleShowFoldersFirst.id}.button.name`]: 'הצגת תיקיות בראש הרשימה',
154
+ },
155
+ };
156
+
157
+ const localization: ILocalization = {
158
+ [SupportedLocales.EN]: englishI18n,
159
+ [SupportedLocales.RU]: russianI18n,
160
+ [SupportedLocales.HE]: hebrewI18n,
161
+ };
162
+
163
+ export default localization;
164
+ /* eslint-enable */
package/src/lib/index.ts CHANGED
@@ -1,13 +1,13 @@
1
- export * from './date-range-picker';
2
- export * from './date-picker';
3
- export * from './map-filter-container';
4
- export * from './models';
5
- export * from './ol-map';
6
- export * from './smart-table';
7
- export * from './popover';
8
- export * from './box';
9
- export * from './cssbaseline';
10
- export * from './theme';
11
- export * from './cesium-map';
12
- export * from './autocomplete';
13
- export * from './file-picker';
1
+ export * from './date-range-picker';
2
+ export * from './date-picker';
3
+ export * from './map-filter-container';
4
+ export * from './models';
5
+ export * from './ol-map';
6
+ export * from './smart-table';
7
+ export * from './popover';
8
+ export * from './box';
9
+ export * from './cssbaseline';
10
+ export * from './theme';
11
+ export * from './cesium-map';
12
+ export * from './autocomplete';
13
+ export * from './file-picker';
@@ -1,5 +1,5 @@
1
- .ol-zoom {
2
- top: 2.5em;
3
- right: 0.5em;
4
- left: unset;
5
- }
1
+ .ol-zoom {
2
+ top: 2.5em;
3
+ right: 0.5em;
4
+ left: unset;
5
+ }
@@ -1,48 +1,48 @@
1
- import React from 'react';
2
- import { Geometry } from 'geojson';
3
- import rewind from '@turf/rewind';
4
- import { Polygon } from 'geojson';
5
- import { Map } from '../ol-map/map';
6
- import { TileLayer } from '../ol-map/layers/tile-layer';
7
- import { VectorSource } from '../ol-map/source/vector-source';
8
- import { GeoJSONFeature } from '../ol-map/feature';
9
- import { TileOsm } from '../ol-map/source/osm';
10
- import { VectorLayer } from '../ol-map/layers/vector-layer';
11
- import { DrawInteraction } from '../ol-map/interactions/draw';
12
- import { DrawType } from '../models/enums';
13
- import './container-map.css';
14
-
15
- interface ContainerMapProps {
16
- drawType?: DrawType;
17
- selectionPolygon?: Polygon;
18
- onPolygonSelection: (polygon: Polygon) => void;
19
- }
20
-
21
- export const ContainerMap: React.FC<ContainerMapProps> = (props) => {
22
- const handlePolygonSelected = (geometry: Geometry): void => {
23
- const rewindedPolygon = rewind(geometry as Polygon);
24
- props.onPolygonSelection(rewindedPolygon);
25
- };
26
-
27
- return (
28
- <Map allowFullScreen={true} showMousePosition={true}>
29
- <TileLayer>
30
- <TileOsm />
31
- </TileLayer>
32
- {props.selectionPolygon && (
33
- <VectorLayer>
34
- <VectorSource>
35
- <GeoJSONFeature geometry={props.selectionPolygon} />
36
- </VectorSource>
37
- </VectorLayer>
38
- )}
39
- {props.children}
40
- {props.drawType !== undefined && (
41
- <DrawInteraction
42
- drawType={props.drawType}
43
- onPolygonSelected={handlePolygonSelected}
44
- />
45
- )}
46
- </Map>
47
- );
48
- };
1
+ import React from 'react';
2
+ import { Geometry } from 'geojson';
3
+ import rewind from '@turf/rewind';
4
+ import { Polygon } from 'geojson';
5
+ import { Map } from '../ol-map/map';
6
+ import { TileLayer } from '../ol-map/layers/tile-layer';
7
+ import { VectorSource } from '../ol-map/source/vector-source';
8
+ import { GeoJSONFeature } from '../ol-map/feature';
9
+ import { TileOsm } from '../ol-map/source/osm';
10
+ import { VectorLayer } from '../ol-map/layers/vector-layer';
11
+ import { DrawInteraction } from '../ol-map/interactions/draw';
12
+ import { DrawType } from '../models/enums';
13
+ import './container-map.css';
14
+
15
+ interface ContainerMapProps {
16
+ drawType?: DrawType;
17
+ selectionPolygon?: Polygon;
18
+ onPolygonSelection: (polygon: Polygon) => void;
19
+ }
20
+
21
+ export const ContainerMap: React.FC<ContainerMapProps> = (props) => {
22
+ const handlePolygonSelected = (geometry: Geometry): void => {
23
+ const rewindedPolygon = rewind(geometry as Polygon);
24
+ props.onPolygonSelection(rewindedPolygon);
25
+ };
26
+
27
+ return (
28
+ <Map allowFullScreen={true} showMousePosition={true}>
29
+ <TileLayer>
30
+ <TileOsm />
31
+ </TileLayer>
32
+ {props.selectionPolygon && (
33
+ <VectorLayer>
34
+ <VectorSource>
35
+ <GeoJSONFeature geometry={props.selectionPolygon} />
36
+ </VectorSource>
37
+ </VectorLayer>
38
+ )}
39
+ {props.children}
40
+ {props.drawType !== undefined && (
41
+ <DrawInteraction
42
+ drawType={props.drawType}
43
+ onPolygonSelected={handlePolygonSelected}
44
+ />
45
+ )}
46
+ </Map>
47
+ );
48
+ };
@@ -1 +1 @@
1
- export * from './map-filter-container';
1
+ export * from './map-filter-container';
@@ -1,91 +1,91 @@
1
- import React, { useState } from 'react';
2
- import { createStyles, makeStyles, Theme } from '@material-ui/core/styles';
3
- import { Paper } from '@material-ui/core';
4
- import { Polygon } from 'geojson';
5
- import { DrawType } from '../models/enums';
6
- import { PolygonSelectionUi } from './polygon-selection-ui';
7
- import { ContainerMap } from './container-map';
8
-
9
- const PLACEMENT_SPACING_FACTOR = 1.5;
10
- const WIDTH_SPACING_FACTOR = 80;
11
- const useStyle = makeStyles((theme: Theme) =>
12
- createStyles({
13
- map: {
14
- height: '100%',
15
- width: '100%',
16
- position: 'absolute',
17
- },
18
- absolute: {
19
- position: 'absolute',
20
- zIndex: 1000,
21
- left: theme.spacing(PLACEMENT_SPACING_FACTOR),
22
- top: theme.spacing(PLACEMENT_SPACING_FACTOR),
23
- },
24
- contentContainer: {
25
- marginTop: theme.spacing(PLACEMENT_SPACING_FACTOR),
26
- width: theme.spacing(WIDTH_SPACING_FACTOR),
27
- },
28
- filtersContainer: {
29
- display: 'flex',
30
- padding: theme.spacing(1),
31
- },
32
- filtersMargin: {
33
- marginLeft: theme.spacing(1),
34
- },
35
- })
36
- );
37
-
38
- export interface MapFilterContainerProps {
39
- handlePolygonSelected: (polygon: Polygon) => void;
40
- handlePolygonReset: () => void;
41
- mapContent?: React.ReactNode;
42
- filters?: React.ReactNode[];
43
- }
44
-
45
- export const MapFilterContainer: React.FC<MapFilterContainerProps> = (
46
- props
47
- ) => {
48
- const [drawType, setDrawType] = useState<DrawType>();
49
- const [selectionPolygon, setSelectionPolygon] = useState<Polygon>();
50
- const classes = useStyle();
51
-
52
- const onPolygonSelection = (polygon: Polygon): void => {
53
- setSelectionPolygon(polygon);
54
- setDrawType(undefined);
55
- props.handlePolygonSelected(polygon);
56
- };
57
-
58
- const onReset = (): void => {
59
- setSelectionPolygon(undefined);
60
- props.handlePolygonReset();
61
- };
62
-
63
- return (
64
- <div className={classes.map}>
65
- <div className={`${classes.absolute}`}>
66
- <Paper className={classes.filtersContainer}>
67
- <PolygonSelectionUi
68
- onCancelDraw={(): void => setDrawType(undefined)}
69
- onReset={onReset}
70
- onStartDraw={setDrawType}
71
- isSelectionEnabled={drawType !== undefined}
72
- />
73
- {props.filters?.map((filter, index) => (
74
- <div key={index} className={classes.filtersMargin}>
75
- {filter}
76
- </div>
77
- ))}
78
- </Paper>
79
- <Paper color="red" className={`${classes.contentContainer}`}>
80
- {props.children}
81
- </Paper>
82
- </div>
83
- <ContainerMap
84
- children={props.mapContent}
85
- onPolygonSelection={onPolygonSelection}
86
- drawType={drawType}
87
- selectionPolygon={selectionPolygon}
88
- />
89
- </div>
90
- );
91
- };
1
+ import React, { useState } from 'react';
2
+ import { createStyles, makeStyles, Theme } from '@material-ui/core/styles';
3
+ import { Paper } from '@material-ui/core';
4
+ import { Polygon } from 'geojson';
5
+ import { DrawType } from '../models/enums';
6
+ import { PolygonSelectionUi } from './polygon-selection-ui';
7
+ import { ContainerMap } from './container-map';
8
+
9
+ const PLACEMENT_SPACING_FACTOR = 1.5;
10
+ const WIDTH_SPACING_FACTOR = 80;
11
+ const useStyle = makeStyles((theme: Theme) =>
12
+ createStyles({
13
+ map: {
14
+ height: '100%',
15
+ width: '100%',
16
+ position: 'absolute',
17
+ },
18
+ absolute: {
19
+ position: 'absolute',
20
+ zIndex: 1000,
21
+ left: theme.spacing(PLACEMENT_SPACING_FACTOR),
22
+ top: theme.spacing(PLACEMENT_SPACING_FACTOR),
23
+ },
24
+ contentContainer: {
25
+ marginTop: theme.spacing(PLACEMENT_SPACING_FACTOR),
26
+ width: theme.spacing(WIDTH_SPACING_FACTOR),
27
+ },
28
+ filtersContainer: {
29
+ display: 'flex',
30
+ padding: theme.spacing(1),
31
+ },
32
+ filtersMargin: {
33
+ marginLeft: theme.spacing(1),
34
+ },
35
+ })
36
+ );
37
+
38
+ export interface MapFilterContainerProps {
39
+ handlePolygonSelected: (polygon: Polygon) => void;
40
+ handlePolygonReset: () => void;
41
+ mapContent?: React.ReactNode;
42
+ filters?: React.ReactNode[];
43
+ }
44
+
45
+ export const MapFilterContainer: React.FC<MapFilterContainerProps> = (
46
+ props
47
+ ) => {
48
+ const [drawType, setDrawType] = useState<DrawType>();
49
+ const [selectionPolygon, setSelectionPolygon] = useState<Polygon>();
50
+ const classes = useStyle();
51
+
52
+ const onPolygonSelection = (polygon: Polygon): void => {
53
+ setSelectionPolygon(polygon);
54
+ setDrawType(undefined);
55
+ props.handlePolygonSelected(polygon);
56
+ };
57
+
58
+ const onReset = (): void => {
59
+ setSelectionPolygon(undefined);
60
+ props.handlePolygonReset();
61
+ };
62
+
63
+ return (
64
+ <div className={classes.map}>
65
+ <div className={`${classes.absolute}`}>
66
+ <Paper className={classes.filtersContainer}>
67
+ <PolygonSelectionUi
68
+ onCancelDraw={(): void => setDrawType(undefined)}
69
+ onReset={onReset}
70
+ onStartDraw={setDrawType}
71
+ isSelectionEnabled={drawType !== undefined}
72
+ />
73
+ {props.filters?.map((filter, index) => (
74
+ <div key={index} className={classes.filtersMargin}>
75
+ {filter}
76
+ </div>
77
+ ))}
78
+ </Paper>
79
+ <Paper color="red" className={`${classes.contentContainer}`}>
80
+ {props.children}
81
+ </Paper>
82
+ </div>
83
+ <ContainerMap
84
+ children={props.mapContent}
85
+ onPolygonSelection={onPolygonSelection}
86
+ drawType={drawType}
87
+ selectionPolygon={selectionPolygon}
88
+ />
89
+ </div>
90
+ );
91
+ };