@map-colonies/react-components 3.12.2 → 3.12.3

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 (375) 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 +828 -819
  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 -8
  37. package/dist/cesium-map/index.js +20 -20
  38. package/dist/cesium-map/layers/3d.tileset.d.ts +7 -7
  39. package/dist/cesium-map/layers/3d.tileset.js +43 -43
  40. package/dist/cesium-map/layers/3d.tileset.with.update.d.ts +6 -6
  41. package/dist/cesium-map/layers/3d.tileset.with.update.js +115 -115
  42. package/dist/cesium-map/layers/geojson.layer.d.ts +5 -5
  43. package/dist/cesium-map/layers/geojson.layer.js +23 -23
  44. package/dist/cesium-map/layers/imagery.layer.d.ts +6 -6
  45. package/dist/cesium-map/layers/imagery.layer.js +68 -68
  46. package/dist/cesium-map/layers/index.d.ts +7 -7
  47. package/dist/cesium-map/layers/index.js +19 -19
  48. package/dist/cesium-map/layers/osm.layer.d.ts +9 -9
  49. package/dist/cesium-map/layers/osm.layer.js +36 -36
  50. package/dist/cesium-map/layers/wms.layer.d.ts +9 -9
  51. package/dist/cesium-map/layers/wms.layer.js +36 -36
  52. package/dist/cesium-map/layers/wmts.layer.d.ts +9 -9
  53. package/dist/cesium-map/layers/wmts.layer.js +36 -36
  54. package/dist/cesium-map/layers/xyz.layer.d.ts +9 -9
  55. package/dist/cesium-map/layers/xyz.layer.js +36 -36
  56. package/dist/cesium-map/layers-manager.d.ts +55 -55
  57. package/dist/cesium-map/layers-manager.js +246 -246
  58. package/dist/cesium-map/map-legend/MapLegend.css +135 -135
  59. package/dist/cesium-map/map-legend/MapLegend.d.ts +15 -15
  60. package/dist/cesium-map/map-legend/MapLegend.js +57 -57
  61. package/dist/cesium-map/map-legend/MapLegendList.d.ts +13 -13
  62. package/dist/cesium-map/map-legend/MapLegendList.js +43 -43
  63. package/dist/cesium-map/map-legend/MapLegendSidebar.d.ts +16 -16
  64. package/dist/cesium-map/map-legend/MapLegendSidebar.js +20 -20
  65. package/dist/cesium-map/map-legend/MapLegendToggle.d.ts +7 -7
  66. package/dist/cesium-map/map-legend/MapLegendToggle.js +20 -20
  67. package/dist/cesium-map/map-legend/index.d.ts +3 -3
  68. package/dist/cesium-map/map-legend/index.js +14 -14
  69. package/dist/cesium-map/map.css +59 -59
  70. package/dist/cesium-map/map.d.ts +59 -59
  71. package/dist/cesium-map/map.js +305 -305
  72. package/dist/cesium-map/map.types.d.ts +8 -8
  73. package/dist/cesium-map/map.types.js +12 -12
  74. package/dist/cesium-map/proxied.types.d.ts +30 -30
  75. package/dist/cesium-map/proxied.types.js +132 -132
  76. package/dist/cesium-map/settings/base-maps.css +37 -37
  77. package/dist/cesium-map/settings/base-maps.d.ts +7 -7
  78. package/dist/cesium-map/settings/base-maps.js +78 -78
  79. package/dist/cesium-map/settings/scene-modes.css +19 -19
  80. package/dist/cesium-map/settings/scene-modes.d.ts +7 -7
  81. package/dist/cesium-map/settings/scene-modes.js +65 -65
  82. package/dist/cesium-map/settings/settings.css +52 -52
  83. package/dist/cesium-map/settings/settings.d.ts +23 -23
  84. package/dist/cesium-map/settings/settings.js +79 -79
  85. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts +3 -3
  86. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js +245 -245
  87. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts +9 -9
  88. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js +202 -202
  89. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts +50 -50
  90. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js +136 -136
  91. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.d.ts +2 -2
  92. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.js +38 -38
  93. package/dist/cesium-map/tools/coordinates-tracker.tool.css +11 -11
  94. package/dist/cesium-map/tools/coordinates-tracker.tool.d.ts +7 -7
  95. package/dist/cesium-map/tools/coordinates-tracker.tool.js +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 -114
  116. package/dist/cssbaseline/cssbaseline.d.ts +5 -5
  117. package/dist/cssbaseline/cssbaseline.js +41 -41
  118. package/dist/cssbaseline/index.d.ts +1 -1
  119. package/dist/cssbaseline/index.js +6 -6
  120. package/dist/date-picker/date-picker.css +9 -9
  121. package/dist/date-picker/date-picker.d.ts +14 -14
  122. package/dist/date-picker/date-picker.js +78 -78
  123. package/dist/date-picker/index.d.ts +1 -1
  124. package/dist/date-picker/index.js +13 -13
  125. package/dist/date-range-picker/date-range-picker.css +9 -9
  126. package/dist/date-range-picker/date-range-picker.d.ts +26 -26
  127. package/dist/date-range-picker/date-range-picker.form-control.css +3 -3
  128. package/dist/date-range-picker/date-range-picker.form-control.d.ts +28 -28
  129. package/dist/date-range-picker/date-range-picker.form-control.js +95 -95
  130. package/dist/date-range-picker/date-range-picker.js +104 -104
  131. package/dist/date-range-picker/index.d.ts +2 -2
  132. package/dist/date-range-picker/index.js +14 -14
  133. package/dist/file-picker/file-picker.css +63 -63
  134. package/dist/file-picker/file-picker.d.ts +276 -276
  135. package/dist/file-picker/file-picker.js +151 -151
  136. package/dist/file-picker/fs-map.json +1556 -1556
  137. package/dist/file-picker/index.d.ts +2 -2
  138. package/dist/file-picker/index.js +14 -14
  139. package/dist/file-picker/localization.d.ts +11 -11
  140. package/dist/file-picker/localization.js +124 -124
  141. package/dist/index.d.ts +13 -13
  142. package/dist/index.js +25 -25
  143. package/dist/map-filter-container/container-map.css +5 -5
  144. package/dist/map-filter-container/container-map.d.ts +11 -11
  145. package/dist/map-filter-container/container-map.js +31 -31
  146. package/dist/map-filter-container/index.d.ts +1 -1
  147. package/dist/map-filter-container/index.js +13 -13
  148. package/dist/map-filter-container/map-filter-container.d.ts +9 -9
  149. package/dist/map-filter-container/map-filter-container.js +78 -78
  150. package/dist/map-filter-container/polygon-selection-ui.d.ts +12 -12
  151. package/dist/map-filter-container/polygon-selection-ui.js +62 -62
  152. package/dist/models/defaults.d.ts +28 -28
  153. package/dist/models/defaults.js +32 -32
  154. package/dist/models/enums.d.ts +14 -14
  155. package/dist/models/enums.js +20 -20
  156. package/dist/models/index.d.ts +1 -1
  157. package/dist/models/index.js +13 -13
  158. package/dist/ol-map/feature.d.ts +6 -6
  159. package/dist/ol-map/feature.js +20 -20
  160. package/dist/ol-map/index.d.ts +6 -6
  161. package/dist/ol-map/index.js +18 -18
  162. package/dist/ol-map/interactions/draw.d.ts +8 -8
  163. package/dist/ol-map/interactions/draw.js +44 -44
  164. package/dist/ol-map/interactions/index.d.ts +1 -1
  165. package/dist/ol-map/interactions/index.js +13 -13
  166. package/dist/ol-map/layers/index.d.ts +3 -3
  167. package/dist/ol-map/layers/index.js +15 -15
  168. package/dist/ol-map/layers/tile-layer.d.ts +9 -9
  169. package/dist/ol-map/layers/tile-layer.js +48 -48
  170. package/dist/ol-map/layers/vector-layer.d.ts +4 -4
  171. package/dist/ol-map/layers/vector-layer.js +48 -48
  172. package/dist/ol-map/layers/vector-tile-layer.d.ts +10 -10
  173. package/dist/ol-map/layers/vector-tile-layer.js +66 -66
  174. package/dist/ol-map/map.css +17 -17
  175. package/dist/ol-map/map.d.ts +14 -14
  176. package/dist/ol-map/map.js +117 -117
  177. package/dist/ol-map/source/index.d.ts +6 -6
  178. package/dist/ol-map/source/index.js +18 -18
  179. package/dist/ol-map/source/mvt.d.ts +11 -11
  180. package/dist/ol-map/source/mvt.js +37 -37
  181. package/dist/ol-map/source/osm.d.ts +2 -2
  182. package/dist/ol-map/source/osm.js +14 -14
  183. package/dist/ol-map/source/vector-source.d.ts +4 -4
  184. package/dist/ol-map/source/vector-source.js +45 -45
  185. package/dist/ol-map/source/wms.d.ts +17 -17
  186. package/dist/ol-map/source/wms.js +30 -30
  187. package/dist/ol-map/source/wmts.d.ts +21 -21
  188. package/dist/ol-map/source/wmts.js +59 -59
  189. package/dist/ol-map/source/xyz.d.ts +12 -12
  190. package/dist/ol-map/source/xyz.js +27 -27
  191. package/dist/ol-map/style.d.ts +4 -4
  192. package/dist/ol-map/style.js +22 -22
  193. package/dist/popover/index.d.ts +1 -1
  194. package/dist/popover/index.js +5 -5
  195. package/dist/popover/popover.d.ts +3 -3
  196. package/dist/popover/popover.js +35 -35
  197. package/dist/smart-table/__mock-data__/smartTableMocks.d.ts +7 -7
  198. package/dist/smart-table/__mock-data__/smartTableMocks.js +17 -17
  199. package/dist/smart-table/index.d.ts +2 -2
  200. package/dist/smart-table/index.js +14 -14
  201. package/dist/smart-table/smart-table-head.d.ts +11 -11
  202. package/dist/smart-table/smart-table-head.js +22 -22
  203. package/dist/smart-table/smart-table-row.d.ts +12 -12
  204. package/dist/smart-table/smart-table-row.js +46 -46
  205. package/dist/smart-table/smart-table-types.d.ts +9 -9
  206. package/dist/smart-table/smart-table-types.js +2 -2
  207. package/dist/smart-table/smart-table.d.ts +17 -17
  208. package/dist/smart-table/smart-table.js +51 -51
  209. package/dist/theme/index.d.ts +1 -1
  210. package/dist/theme/index.js +13 -13
  211. package/dist/theme/theme.d.ts +8 -8
  212. package/dist/theme/theme.js +124 -124
  213. package/dist/utils/map.d.ts +3 -3
  214. package/dist/utils/map.js +21 -21
  215. package/dist/utils/projections.d.ts +6 -6
  216. package/dist/utils/projections.js +10 -10
  217. package/dist/utils/story.d.ts +12 -12
  218. package/dist/utils/story.js +2 -2
  219. package/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 -204
  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 -8
  244. package/src/lib/cesium-map/layers/3d.tileset.stories.tsx +164 -164
  245. package/src/lib/cesium-map/layers/3d.tileset.tsx +51 -51
  246. package/src/lib/cesium-map/layers/3d.tileset.with.update.tsx +120 -120
  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 -37
  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 -354
  263. package/src/lib/cesium-map/map-legend/MapLegend.css +135 -135
  264. package/src/lib/cesium-map/map-legend/MapLegend.tsx +92 -92
  265. package/src/lib/cesium-map/map-legend/MapLegendList.tsx +47 -47
  266. package/src/lib/cesium-map/map-legend/MapLegendSidebar.tsx +55 -55
  267. package/src/lib/cesium-map/map-legend/MapLegendToggle.tsx +31 -31
  268. package/src/lib/cesium-map/map-legend/index.tsx +3 -3
  269. package/src/lib/cesium-map/map-legend/legends-sidebar.stories.tsx +201 -201
  270. package/src/lib/cesium-map/map.css +59 -59
  271. package/src/lib/cesium-map/map.stories.tsx +143 -143
  272. package/src/lib/cesium-map/map.tsx +446 -446
  273. package/src/lib/cesium-map/map.types.ts +11 -11
  274. package/src/lib/cesium-map/proxied.types.ts +54 -54
  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 -52
  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 -170
  286. package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +187 -187
  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 -171
  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
@@ -1,90 +1,90 @@
1
- import React, { useState } from 'react';
2
- import { he, enUS } from 'date-fns/locale';
3
- import {
4
- MuiPickersUtilsProvider,
5
- KeyboardDateTimePicker,
6
- KeyboardDatePicker,
7
- KeyboardDatePickerProps,
8
- } from '@material-ui/pickers';
9
- import { ParsableDate } from '@material-ui/pickers/constants/prop-types';
10
- import { WrapperVariant } from '@material-ui/pickers/wrappers/Wrapper';
11
- import DateFnsUtils from '@date-io/date-fns';
12
- import { ThemeProvider } from '@material-ui/core';
13
-
14
- import { useTheme } from '@map-colonies/react-core';
15
- import { SupportedLocales } from '../models/enums';
16
- import DEFAULTS from '../models/defaults';
17
- import { useMappedMuiTheme } from '../theme';
18
-
19
- import '@map-colonies/react-core/dist/button/styles';
20
- import './date-picker.css';
21
-
22
- interface DatePickerProps extends KeyboardDatePickerProps {
23
- local?: {
24
- placeHolderText?: string;
25
- calendarLocale?: SupportedLocales;
26
- };
27
- showTime?: boolean;
28
- }
29
-
30
- export const DateTimePicker: React.FC<DatePickerProps> = (props) => {
31
- const theme: { [key: string]: string } = useTheme();
32
- const themeMui = useMappedMuiTheme(theme);
33
-
34
- const [value, setValue] = useState<ParsableDate>(props.value);
35
-
36
- const {
37
- format = DEFAULTS.DATE_PICKER.dateFormat,
38
- variant = DEFAULTS.DATE_PICKER.variant,
39
- disableFuture = DEFAULTS.DATE_PICKER.disableFuture,
40
- local,
41
- onChange,
42
- showTime = DEFAULTS.DATE_PICKER.showTime,
43
- value: propValue,
44
- ...resProps
45
- } = props;
46
-
47
- const {
48
- placeHolderText = DEFAULTS.DATE_PICKER.local.placeHolderText,
49
- calendarLocale,
50
- } = local ?? {
51
- placeHolderText: DEFAULTS.DATE_PICKER.local.placeHolderText,
52
- calendarLocale: SupportedLocales.EN,
53
- };
54
-
55
- const locale = calendarLocale === SupportedLocales.HE ? he : enUS;
56
-
57
- const handleOnChange = (e: any): void => {
58
- setValue(e);
59
- onChange(e as Date);
60
- };
61
-
62
- return (
63
- <ThemeProvider theme={themeMui}>
64
- <MuiPickersUtilsProvider utils={DateFnsUtils} locale={locale}>
65
- {showTime && (
66
- <KeyboardDateTimePicker
67
- variant={variant as WrapperVariant}
68
- placeholder={placeHolderText}
69
- onChange={handleOnChange}
70
- value={value}
71
- disableFuture={disableFuture}
72
- format={format}
73
- {...resProps}
74
- />
75
- )}
76
- {!showTime && (
77
- <KeyboardDatePicker
78
- variant={variant as WrapperVariant}
79
- placeholder={placeHolderText}
80
- onChange={handleOnChange}
81
- value={value}
82
- disableFuture={disableFuture}
83
- format={format}
84
- {...resProps}
85
- />
86
- )}
87
- </MuiPickersUtilsProvider>
88
- </ThemeProvider>
89
- );
90
- };
1
+ import React, { useState } from 'react';
2
+ import { he, enUS } from 'date-fns/locale';
3
+ import {
4
+ MuiPickersUtilsProvider,
5
+ KeyboardDateTimePicker,
6
+ KeyboardDatePicker,
7
+ KeyboardDatePickerProps,
8
+ } from '@material-ui/pickers';
9
+ import { ParsableDate } from '@material-ui/pickers/constants/prop-types';
10
+ import { WrapperVariant } from '@material-ui/pickers/wrappers/Wrapper';
11
+ import DateFnsUtils from '@date-io/date-fns';
12
+ import { ThemeProvider } from '@material-ui/core';
13
+
14
+ import { useTheme } from '@map-colonies/react-core';
15
+ import { SupportedLocales } from '../models/enums';
16
+ import DEFAULTS from '../models/defaults';
17
+ import { useMappedMuiTheme } from '../theme';
18
+
19
+ import '@map-colonies/react-core/dist/button/styles';
20
+ import './date-picker.css';
21
+
22
+ interface DatePickerProps extends KeyboardDatePickerProps {
23
+ local?: {
24
+ placeHolderText?: string;
25
+ calendarLocale?: SupportedLocales;
26
+ };
27
+ showTime?: boolean;
28
+ }
29
+
30
+ export const DateTimePicker: React.FC<DatePickerProps> = (props) => {
31
+ const theme: { [key: string]: string } = useTheme();
32
+ const themeMui = useMappedMuiTheme(theme);
33
+
34
+ const [value, setValue] = useState<ParsableDate>(props.value);
35
+
36
+ const {
37
+ format = DEFAULTS.DATE_PICKER.dateFormat,
38
+ variant = DEFAULTS.DATE_PICKER.variant,
39
+ disableFuture = DEFAULTS.DATE_PICKER.disableFuture,
40
+ local,
41
+ onChange,
42
+ showTime = DEFAULTS.DATE_PICKER.showTime,
43
+ value: propValue,
44
+ ...resProps
45
+ } = props;
46
+
47
+ const {
48
+ placeHolderText = DEFAULTS.DATE_PICKER.local.placeHolderText,
49
+ calendarLocale,
50
+ } = local ?? {
51
+ placeHolderText: DEFAULTS.DATE_PICKER.local.placeHolderText,
52
+ calendarLocale: SupportedLocales.EN,
53
+ };
54
+
55
+ const locale = calendarLocale === SupportedLocales.HE ? he : enUS;
56
+
57
+ const handleOnChange = (e: any): void => {
58
+ setValue(e);
59
+ onChange(e as Date);
60
+ };
61
+
62
+ return (
63
+ <ThemeProvider theme={themeMui}>
64
+ <MuiPickersUtilsProvider utils={DateFnsUtils} locale={locale}>
65
+ {showTime && (
66
+ <KeyboardDateTimePicker
67
+ variant={variant as WrapperVariant}
68
+ placeholder={placeHolderText}
69
+ onChange={handleOnChange}
70
+ value={value}
71
+ disableFuture={disableFuture}
72
+ format={format}
73
+ {...resProps}
74
+ />
75
+ )}
76
+ {!showTime && (
77
+ <KeyboardDatePicker
78
+ variant={variant as WrapperVariant}
79
+ placeholder={placeHolderText}
80
+ onChange={handleOnChange}
81
+ value={value}
82
+ disableFuture={disableFuture}
83
+ format={format}
84
+ {...resProps}
85
+ />
86
+ )}
87
+ </MuiPickersUtilsProvider>
88
+ </ThemeProvider>
89
+ );
90
+ };
@@ -1 +1 @@
1
- export * from './date-picker';
1
+ export * from './date-picker';
@@ -1,9 +1,9 @@
1
- body[dir='rtl'] .drpContainer .MuiInputLabel-formControl {
2
- right: 0px;
3
- left: unset;
4
- }
5
-
6
- body[dir='rtl'] .drpContainer .MuiInputBase-input {
7
- direction: ltr;
8
- text-align: end;
9
- }
1
+ body[dir='rtl'] .drpContainer .MuiInputLabel-formControl {
2
+ right: 0px;
3
+ left: unset;
4
+ }
5
+
6
+ body[dir='rtl'] .drpContainer .MuiInputBase-input {
7
+ direction: ltr;
8
+ text-align: end;
9
+ }
@@ -1,3 +1,3 @@
1
- body[dir='rtl'] .drpOpener .mdc-text-field {
2
- direction: ltr;
3
- }
1
+ body[dir='rtl'] .drpOpener .mdc-text-field {
2
+ direction: ltr;
3
+ }
@@ -1,58 +1,58 @@
1
- import React from 'react';
2
- import { mount } from 'enzyme';
3
- import { KeyboardDateTimePicker } from '@material-ui/pickers';
4
- import { Button } from '@map-colonies/react-core';
5
- import { DateTimeRangePickerFormControl } from './date-range-picker.form-control';
6
-
7
- const date = new Date(1990, 1, 1);
8
-
9
- it('set the values of to and from to the props of the date pickers when changed', () => {
10
- const wrapper = mount(
11
- <DateTimeRangePickerFormControl
12
- onChange={() => {
13
- // do nothing for linitng
14
- }}
15
- />
16
- );
17
- wrapper.setProps({ from: date, to: date });
18
- // eslint-disable-next-line
19
- wrapper.find(Button).first().simulate('click', { currentTarget: {} });
20
-
21
- wrapper.update();
22
- const pickers = wrapper.find(KeyboardDateTimePicker);
23
- const fromRangePicker = pickers.first();
24
- const toRangePicker = pickers.at(1);
25
-
26
- expect(fromRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
27
- expect(toRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
28
- });
29
-
30
- it('calls on change with right argumnets when inner set button is clicked', () => {
31
- const onChangeMock = jest.fn();
32
- const wrapper = mount(
33
- <DateTimeRangePickerFormControl
34
- from={date}
35
- to={date}
36
- onChange={onChangeMock}
37
- />
38
- );
39
-
40
- // eslint-disable-next-line
41
- wrapper.find(Button).at(1).props().onClick?.();
42
-
43
- expect(onChangeMock).toHaveBeenCalledWith({ from: date, to: date });
44
-
45
- wrapper.setProps({ to: null });
46
- wrapper.update();
47
-
48
- // eslint-disable-next-line
49
- wrapper.find(Button).at(1).props().onClick?.();
50
- expect(onChangeMock).toHaveBeenCalledWith({ from: date });
51
-
52
- wrapper.setProps({ to: date, from: null });
53
- wrapper.update();
54
-
55
- // eslint-disable-next-line
56
- wrapper.find(Button).at(1).props().onClick?.();
57
- expect(onChangeMock).toHaveBeenCalledWith({ to: date });
58
- });
1
+ import React from 'react';
2
+ import { mount } from 'enzyme';
3
+ import { KeyboardDateTimePicker } from '@material-ui/pickers';
4
+ import { Button } from '@map-colonies/react-core';
5
+ import { DateTimeRangePickerFormControl } from './date-range-picker.form-control';
6
+
7
+ const date = new Date(1990, 1, 1);
8
+
9
+ it('set the values of to and from to the props of the date pickers when changed', () => {
10
+ const wrapper = mount(
11
+ <DateTimeRangePickerFormControl
12
+ onChange={() => {
13
+ // do nothing for linitng
14
+ }}
15
+ />
16
+ );
17
+ wrapper.setProps({ from: date, to: date });
18
+ // eslint-disable-next-line
19
+ wrapper.find(Button).first().simulate('click', { currentTarget: {} });
20
+
21
+ wrapper.update();
22
+ const pickers = wrapper.find(KeyboardDateTimePicker);
23
+ const fromRangePicker = pickers.first();
24
+ const toRangePicker = pickers.at(1);
25
+
26
+ expect(fromRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
27
+ expect(toRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
28
+ });
29
+
30
+ it('calls on change with right argumnets when inner set button is clicked', () => {
31
+ const onChangeMock = jest.fn();
32
+ const wrapper = mount(
33
+ <DateTimeRangePickerFormControl
34
+ from={date}
35
+ to={date}
36
+ onChange={onChangeMock}
37
+ />
38
+ );
39
+
40
+ // eslint-disable-next-line
41
+ wrapper.find(Button).at(1).props().onClick?.();
42
+
43
+ expect(onChangeMock).toHaveBeenCalledWith({ from: date, to: date });
44
+
45
+ wrapper.setProps({ to: null });
46
+ wrapper.update();
47
+
48
+ // eslint-disable-next-line
49
+ wrapper.find(Button).at(1).props().onClick?.();
50
+ expect(onChangeMock).toHaveBeenCalledWith({ from: date });
51
+
52
+ wrapper.setProps({ to: date, from: null });
53
+ wrapper.update();
54
+
55
+ // eslint-disable-next-line
56
+ wrapper.find(Button).at(1).props().onClick?.();
57
+ expect(onChangeMock).toHaveBeenCalledWith({ to: date });
58
+ });
@@ -1,150 +1,150 @@
1
- import React, { useState, useEffect, useMemo } from 'react';
2
- import { format as formatDateFns } from 'date-fns';
3
- import { Button, TextField } from '@map-colonies/react-core';
4
- import '@map-colonies/react-core/dist/textfield/styles';
5
-
6
- import { SupportedLocales } from '../models/enums';
7
- import DEFAULTS from '../models/defaults';
8
- import { Popover } from '../popover';
9
- import { DateTimeRangePicker } from './date-range-picker';
10
- import './date-range-picker.form-control.css';
11
-
12
- interface DateRangePickerProps {
13
- onChange: (dateRange: { from?: Date; to?: Date }) => void;
14
- from?: Date;
15
- to?: Date;
16
- dateFormat?: string;
17
- renderAsButton?: boolean;
18
- width?: string | number;
19
- controlsLayout?: 'column' | 'row';
20
- offset?: number;
21
- disableFuture?: boolean;
22
- maxDate?: string | number | Date | null | undefined;
23
- minDate?: string | number | Date | null | undefined;
24
- local?: {
25
- setText?: string;
26
- startPlaceHolderText?: string;
27
- endPlaceHolderText?: string;
28
- calendarLocale?: SupportedLocales;
29
- };
30
- }
31
- export const DateTimeRangePickerFormControl: React.FC<DateRangePickerProps> = (
32
- props
33
- ) => {
34
- const [from, setFrom] = useState<Date | null>(null);
35
- const [to, setTo] = useState<Date | null>(null);
36
- const [dateFormat, setDateFormat] = useState<string>(
37
- DEFAULTS.DATE_RANGE_PICKER.dateFormat
38
- );
39
- const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(
40
- null
41
- );
42
- const handleClick = (event: React.MouseEvent<HTMLButtonElement>): void => {
43
- setAnchorEl(event.currentTarget);
44
- };
45
- const handleClickInput = (
46
- event: React.MouseEvent<HTMLInputElement>
47
- ): void => {
48
- if (event.currentTarget.tagName === 'I')
49
- setAnchorEl(
50
- event.currentTarget.previousElementSibling as HTMLButtonElement
51
- );
52
- else setAnchorEl(event.currentTarget as HTMLButtonElement);
53
- };
54
- const handleClose = (): void => {
55
- setAnchorEl(null);
56
- };
57
- const open = Boolean(anchorEl);
58
- const controlsLayout = props.controlsLayout ?? 'column';
59
-
60
- useEffect(() => {
61
- setFrom(props.from ?? null);
62
- }, [props.from]);
63
-
64
- useEffect(() => {
65
- setTo(props.to ?? null);
66
- }, [props.to]);
67
-
68
- useEffect(() => {
69
- setDateFormat(props.dateFormat ?? DEFAULTS.DATE_RANGE_PICKER.dateFormat);
70
- }, [props.dateFormat]);
71
-
72
- const startPlaceHolderText =
73
- props.local?.startPlaceHolderText ??
74
- DEFAULTS.DATE_RANGE_PICKER.local.startPlaceHolderText;
75
- const endPlaceHolderText =
76
- props.local?.endPlaceHolderText ??
77
- DEFAULTS.DATE_RANGE_PICKER.local.endPlaceHolderText;
78
- const renderAsButton =
79
- props.renderAsButton === undefined
80
- ? DEFAULTS.DATE_RANGE_PICKER.renderAsButton
81
- : props.renderAsButton;
82
- const offset =
83
- props.offset === undefined
84
- ? DEFAULTS.DATE_RANGE_PICKER.offset
85
- : props.offset;
86
- const disableFuture =
87
- props.disableFuture === undefined
88
- ? DEFAULTS.DATE_RANGE_PICKER.disableFuture
89
- : props.disableFuture;
90
-
91
- const controlText = useMemo(() => {
92
- return `${
93
- from ? formatDateFns(from, dateFormat) : startPlaceHolderText
94
- } - ${to ? formatDateFns(to, dateFormat) : endPlaceHolderText}`;
95
- }, [from, to, dateFormat, startPlaceHolderText, endPlaceHolderText]);
96
-
97
- return (
98
- <>
99
- {renderAsButton ? (
100
- <Button
101
- style={{ width: props.width }}
102
- raised
103
- onClick={handleClick}
104
- className="drpOpener"
105
- >
106
- {controlText}
107
- </Button>
108
- ) : (
109
- <TextField
110
- className="drpOpener"
111
- readOnly
112
- style={{ width: props.width }}
113
- value={controlText}
114
- onClick={handleClickInput}
115
- trailingIcon={{
116
- icon: 'date_range',
117
- tabIndex: 0,
118
- onClick: handleClickInput,
119
- }}
120
- />
121
- )}
122
-
123
- <Popover
124
- open={open}
125
- anchorEl={anchorEl}
126
- onClose={handleClose}
127
- anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}
128
- keepMounted
129
- >
130
- <DateTimeRangePicker
131
- controlsLayout={controlsLayout}
132
- contentWidth={(anchorEl?.clientWidth ?? 0) - offset}
133
- dateFormat={dateFormat}
134
- disableFuture={disableFuture}
135
- minDate={props.minDate}
136
- maxDate={props.maxDate}
137
- local={props.local}
138
- from={from ?? undefined}
139
- to={to ?? undefined}
140
- onChange={({ from, to }): void => {
141
- setFrom(from ?? null);
142
- setTo(to ?? null);
143
- props.onChange({ from, to });
144
- handleClose();
145
- }}
146
- />
147
- </Popover>
148
- </>
149
- );
150
- };
1
+ import React, { useState, useEffect, useMemo } from 'react';
2
+ import { format as formatDateFns } from 'date-fns';
3
+ import { Button, TextField } from '@map-colonies/react-core';
4
+ import '@map-colonies/react-core/dist/textfield/styles';
5
+
6
+ import { SupportedLocales } from '../models/enums';
7
+ import DEFAULTS from '../models/defaults';
8
+ import { Popover } from '../popover';
9
+ import { DateTimeRangePicker } from './date-range-picker';
10
+ import './date-range-picker.form-control.css';
11
+
12
+ interface DateRangePickerProps {
13
+ onChange: (dateRange: { from?: Date; to?: Date }) => void;
14
+ from?: Date;
15
+ to?: Date;
16
+ dateFormat?: string;
17
+ renderAsButton?: boolean;
18
+ width?: string | number;
19
+ controlsLayout?: 'column' | 'row';
20
+ offset?: number;
21
+ disableFuture?: boolean;
22
+ maxDate?: string | number | Date | null | undefined;
23
+ minDate?: string | number | Date | null | undefined;
24
+ local?: {
25
+ setText?: string;
26
+ startPlaceHolderText?: string;
27
+ endPlaceHolderText?: string;
28
+ calendarLocale?: SupportedLocales;
29
+ };
30
+ }
31
+ export const DateTimeRangePickerFormControl: React.FC<DateRangePickerProps> = (
32
+ props
33
+ ) => {
34
+ const [from, setFrom] = useState<Date | null>(null);
35
+ const [to, setTo] = useState<Date | null>(null);
36
+ const [dateFormat, setDateFormat] = useState<string>(
37
+ DEFAULTS.DATE_RANGE_PICKER.dateFormat
38
+ );
39
+ const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(
40
+ null
41
+ );
42
+ const handleClick = (event: React.MouseEvent<HTMLButtonElement>): void => {
43
+ setAnchorEl(event.currentTarget);
44
+ };
45
+ const handleClickInput = (
46
+ event: React.MouseEvent<HTMLInputElement>
47
+ ): void => {
48
+ if (event.currentTarget.tagName === 'I')
49
+ setAnchorEl(
50
+ event.currentTarget.previousElementSibling as HTMLButtonElement
51
+ );
52
+ else setAnchorEl(event.currentTarget as HTMLButtonElement);
53
+ };
54
+ const handleClose = (): void => {
55
+ setAnchorEl(null);
56
+ };
57
+ const open = Boolean(anchorEl);
58
+ const controlsLayout = props.controlsLayout ?? 'column';
59
+
60
+ useEffect(() => {
61
+ setFrom(props.from ?? null);
62
+ }, [props.from]);
63
+
64
+ useEffect(() => {
65
+ setTo(props.to ?? null);
66
+ }, [props.to]);
67
+
68
+ useEffect(() => {
69
+ setDateFormat(props.dateFormat ?? DEFAULTS.DATE_RANGE_PICKER.dateFormat);
70
+ }, [props.dateFormat]);
71
+
72
+ const startPlaceHolderText =
73
+ props.local?.startPlaceHolderText ??
74
+ DEFAULTS.DATE_RANGE_PICKER.local.startPlaceHolderText;
75
+ const endPlaceHolderText =
76
+ props.local?.endPlaceHolderText ??
77
+ DEFAULTS.DATE_RANGE_PICKER.local.endPlaceHolderText;
78
+ const renderAsButton =
79
+ props.renderAsButton === undefined
80
+ ? DEFAULTS.DATE_RANGE_PICKER.renderAsButton
81
+ : props.renderAsButton;
82
+ const offset =
83
+ props.offset === undefined
84
+ ? DEFAULTS.DATE_RANGE_PICKER.offset
85
+ : props.offset;
86
+ const disableFuture =
87
+ props.disableFuture === undefined
88
+ ? DEFAULTS.DATE_RANGE_PICKER.disableFuture
89
+ : props.disableFuture;
90
+
91
+ const controlText = useMemo(() => {
92
+ return `${
93
+ from ? formatDateFns(from, dateFormat) : startPlaceHolderText
94
+ } - ${to ? formatDateFns(to, dateFormat) : endPlaceHolderText}`;
95
+ }, [from, to, dateFormat, startPlaceHolderText, endPlaceHolderText]);
96
+
97
+ return (
98
+ <>
99
+ {renderAsButton ? (
100
+ <Button
101
+ style={{ width: props.width }}
102
+ raised
103
+ onClick={handleClick}
104
+ className="drpOpener"
105
+ >
106
+ {controlText}
107
+ </Button>
108
+ ) : (
109
+ <TextField
110
+ className="drpOpener"
111
+ readOnly
112
+ style={{ width: props.width }}
113
+ value={controlText}
114
+ onClick={handleClickInput}
115
+ trailingIcon={{
116
+ icon: 'date_range',
117
+ tabIndex: 0,
118
+ onClick: handleClickInput,
119
+ }}
120
+ />
121
+ )}
122
+
123
+ <Popover
124
+ open={open}
125
+ anchorEl={anchorEl}
126
+ onClose={handleClose}
127
+ anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}
128
+ keepMounted
129
+ >
130
+ <DateTimeRangePicker
131
+ controlsLayout={controlsLayout}
132
+ contentWidth={(anchorEl?.clientWidth ?? 0) - offset}
133
+ dateFormat={dateFormat}
134
+ disableFuture={disableFuture}
135
+ minDate={props.minDate}
136
+ maxDate={props.maxDate}
137
+ local={props.local}
138
+ from={from ?? undefined}
139
+ to={to ?? undefined}
140
+ onChange={({ from, to }): void => {
141
+ setFrom(from ?? null);
142
+ setTo(to ?? null);
143
+ props.onChange({ from, to });
144
+ handleClose();
145
+ }}
146
+ />
147
+ </Popover>
148
+ </>
149
+ );
150
+ };