umap-project 2.7.3__py3-none-any.whl → 2.8.0__py3-none-any.whl

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 (292) hide show
  1. umap/__init__.py +1 -1
  2. umap/forms.py +4 -14
  3. umap/locale/am_ET/LC_MESSAGES/django.mo +0 -0
  4. umap/locale/am_ET/LC_MESSAGES/django.po +278 -151
  5. umap/locale/ar/LC_MESSAGES/django.mo +0 -0
  6. umap/locale/ar/LC_MESSAGES/django.po +335 -141
  7. umap/locale/bg/LC_MESSAGES/django.mo +0 -0
  8. umap/locale/bg/LC_MESSAGES/django.po +279 -152
  9. umap/locale/br/LC_MESSAGES/django.mo +0 -0
  10. umap/locale/br/LC_MESSAGES/django.po +95 -79
  11. umap/locale/ca/LC_MESSAGES/django.mo +0 -0
  12. umap/locale/ca/LC_MESSAGES/django.po +85 -68
  13. umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  14. umap/locale/cs_CZ/LC_MESSAGES/django.po +78 -66
  15. umap/locale/da/LC_MESSAGES/django.mo +0 -0
  16. umap/locale/da/LC_MESSAGES/django.po +280 -153
  17. umap/locale/de/LC_MESSAGES/django.mo +0 -0
  18. umap/locale/de/LC_MESSAGES/django.po +80 -64
  19. umap/locale/el/LC_MESSAGES/django.mo +0 -0
  20. umap/locale/el/LC_MESSAGES/django.po +82 -66
  21. umap/locale/en/LC_MESSAGES/django.po +73 -61
  22. umap/locale/es/LC_MESSAGES/django.mo +0 -0
  23. umap/locale/es/LC_MESSAGES/django.po +75 -63
  24. umap/locale/et/LC_MESSAGES/django.mo +0 -0
  25. umap/locale/et/LC_MESSAGES/django.po +280 -153
  26. umap/locale/eu/LC_MESSAGES/django.mo +0 -0
  27. umap/locale/eu/LC_MESSAGES/django.po +82 -66
  28. umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
  29. umap/locale/fa_IR/LC_MESSAGES/django.po +80 -64
  30. umap/locale/fi/LC_MESSAGES/django.mo +0 -0
  31. umap/locale/fi/LC_MESSAGES/django.po +278 -151
  32. umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  33. umap/locale/fr/LC_MESSAGES/django.po +75 -63
  34. umap/locale/gl/LC_MESSAGES/django.mo +0 -0
  35. umap/locale/gl/LC_MESSAGES/django.po +280 -153
  36. umap/locale/he/LC_MESSAGES/django.mo +0 -0
  37. umap/locale/he/LC_MESSAGES/django.po +281 -154
  38. umap/locale/hu/LC_MESSAGES/django.mo +0 -0
  39. umap/locale/hu/LC_MESSAGES/django.po +80 -64
  40. umap/locale/is/LC_MESSAGES/django.mo +0 -0
  41. umap/locale/is/LC_MESSAGES/django.po +280 -153
  42. umap/locale/it/LC_MESSAGES/django.mo +0 -0
  43. umap/locale/it/LC_MESSAGES/django.po +82 -66
  44. umap/locale/ja/LC_MESSAGES/django.mo +0 -0
  45. umap/locale/ja/LC_MESSAGES/django.po +280 -153
  46. umap/locale/ko/LC_MESSAGES/django.mo +0 -0
  47. umap/locale/ko/LC_MESSAGES/django.po +280 -153
  48. umap/locale/lt/LC_MESSAGES/django.mo +0 -0
  49. umap/locale/lt/LC_MESSAGES/django.po +280 -153
  50. umap/locale/ms/LC_MESSAGES/django.mo +0 -0
  51. umap/locale/ms/LC_MESSAGES/django.po +82 -66
  52. umap/locale/nl/LC_MESSAGES/django.mo +0 -0
  53. umap/locale/nl/LC_MESSAGES/django.po +280 -153
  54. umap/locale/pl/LC_MESSAGES/django.mo +0 -0
  55. umap/locale/pl/LC_MESSAGES/django.po +82 -66
  56. umap/locale/pt/LC_MESSAGES/django.mo +0 -0
  57. umap/locale/pt/LC_MESSAGES/django.po +75 -63
  58. umap/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  59. umap/locale/pt_BR/LC_MESSAGES/django.po +280 -153
  60. umap/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  61. umap/locale/pt_PT/LC_MESSAGES/django.po +280 -153
  62. umap/locale/ru/LC_MESSAGES/django.mo +0 -0
  63. umap/locale/ru/LC_MESSAGES/django.po +280 -153
  64. umap/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  65. umap/locale/sk_SK/LC_MESSAGES/django.po +280 -153
  66. umap/locale/sl/LC_MESSAGES/django.mo +0 -0
  67. umap/locale/sl/LC_MESSAGES/django.po +280 -153
  68. umap/locale/sr/LC_MESSAGES/django.mo +0 -0
  69. umap/locale/sr/LC_MESSAGES/django.po +280 -153
  70. umap/locale/sv/LC_MESSAGES/django.mo +0 -0
  71. umap/locale/sv/LC_MESSAGES/django.po +81 -65
  72. umap/locale/th_TH/LC_MESSAGES/django.mo +0 -0
  73. umap/locale/th_TH/LC_MESSAGES/django.po +257 -185
  74. umap/locale/tr/LC_MESSAGES/django.mo +0 -0
  75. umap/locale/tr/LC_MESSAGES/django.po +280 -153
  76. umap/locale/uk_UA/LC_MESSAGES/django.mo +0 -0
  77. umap/locale/uk_UA/LC_MESSAGES/django.po +280 -153
  78. umap/locale/vi/LC_MESSAGES/django.mo +0 -0
  79. umap/locale/vi/LC_MESSAGES/django.po +278 -151
  80. umap/locale/zh/LC_MESSAGES/django.mo +0 -0
  81. umap/locale/zh/LC_MESSAGES/django.po +278 -151
  82. umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  83. umap/locale/zh_TW/LC_MESSAGES/django.po +97 -81
  84. umap/management/commands/empty_trash.py +35 -0
  85. umap/management/commands/migrate_to_S3.py +29 -0
  86. umap/migrations/0023_alter_datalayer_uuid.py +19 -0
  87. umap/migrations/0024_alter_map_share_status.py +30 -0
  88. umap/migrations/0025_alter_datalayer_geojson.py +24 -0
  89. umap/models.py +68 -116
  90. umap/settings/base.py +23 -3
  91. umap/settings/local_s3.py +45 -0
  92. umap/static/umap/base.css +3 -603
  93. umap/static/umap/content.css +5 -3
  94. umap/static/umap/css/bar.css +202 -0
  95. umap/static/umap/css/form.css +620 -0
  96. umap/static/umap/css/icon.css +21 -1
  97. umap/static/umap/css/popup.css +125 -0
  98. umap/static/umap/img/16-white.svg +16 -4
  99. umap/static/umap/img/16.svg +1 -1
  100. umap/static/umap/img/source/16-white.svg +46 -45
  101. umap/static/umap/img/source/16.svg +1 -753
  102. umap/static/umap/js/components/fragment.js +3 -1
  103. umap/static/umap/js/modules/browser.js +20 -19
  104. umap/static/umap/js/modules/caption.js +21 -22
  105. umap/static/umap/js/modules/data/features.js +120 -78
  106. umap/static/umap/js/modules/data/layer.js +195 -153
  107. umap/static/umap/js/modules/facets.js +9 -9
  108. umap/static/umap/js/modules/formatter.js +5 -5
  109. umap/static/umap/js/modules/global.js +4 -52
  110. umap/static/umap/js/modules/help.js +18 -21
  111. umap/static/umap/js/modules/importer.js +133 -56
  112. umap/static/umap/js/modules/importers/cadastrefr.js +4 -0
  113. umap/static/umap/js/modules/importers/geodatamine.js +3 -3
  114. umap/static/umap/js/modules/importers/overpass.js +5 -0
  115. umap/static/umap/js/modules/permissions.js +85 -87
  116. umap/static/umap/js/modules/rendering/icon.js +2 -1
  117. umap/static/umap/js/modules/rendering/layers/base.js +15 -15
  118. umap/static/umap/js/modules/rendering/layers/classified.js +1 -1
  119. umap/static/umap/js/modules/rendering/layers/cluster.js +1 -1
  120. umap/static/umap/js/modules/rendering/layers/heat.js +1 -1
  121. umap/static/umap/js/modules/rendering/map.js +390 -0
  122. umap/static/umap/js/modules/rendering/popup.js +19 -19
  123. umap/static/umap/js/modules/rendering/template.js +88 -21
  124. umap/static/umap/js/modules/rendering/ui.js +63 -14
  125. umap/static/umap/js/modules/request.js +2 -2
  126. umap/static/umap/js/modules/rules.js +22 -25
  127. umap/static/umap/js/modules/saving.js +47 -0
  128. umap/static/umap/js/modules/schema.js +6 -0
  129. umap/static/umap/js/modules/share.js +21 -24
  130. umap/static/umap/js/modules/slideshow.js +24 -20
  131. umap/static/umap/js/modules/sync/updaters.js +7 -9
  132. umap/static/umap/js/modules/tableeditor.js +20 -19
  133. umap/static/umap/js/modules/ui/bar.js +196 -0
  134. umap/static/umap/js/modules/ui/dialog.js +5 -0
  135. umap/static/umap/js/modules/ui/panel.js +10 -9
  136. umap/static/umap/js/modules/umap.js +1691 -0
  137. umap/static/umap/js/modules/urls.js +2 -2
  138. umap/static/umap/js/modules/utils.js +22 -6
  139. umap/static/umap/js/umap.controls.js +81 -305
  140. umap/static/umap/js/umap.core.js +29 -50
  141. umap/static/umap/js/umap.forms.js +78 -27
  142. umap/static/umap/keycloak.png +0 -0
  143. umap/static/umap/locale/am_ET.js +26 -10
  144. umap/static/umap/locale/am_ET.json +26 -10
  145. umap/static/umap/locale/ar.js +26 -10
  146. umap/static/umap/locale/ar.json +26 -10
  147. umap/static/umap/locale/ast.js +26 -10
  148. umap/static/umap/locale/ast.json +26 -10
  149. umap/static/umap/locale/bg.js +26 -10
  150. umap/static/umap/locale/bg.json +26 -10
  151. umap/static/umap/locale/br.js +27 -20
  152. umap/static/umap/locale/br.json +27 -20
  153. umap/static/umap/locale/ca.js +32 -29
  154. umap/static/umap/locale/ca.json +32 -29
  155. umap/static/umap/locale/cs_CZ.js +24 -17
  156. umap/static/umap/locale/cs_CZ.json +24 -17
  157. umap/static/umap/locale/da.js +26 -10
  158. umap/static/umap/locale/da.json +26 -10
  159. umap/static/umap/locale/de.js +21 -14
  160. umap/static/umap/locale/de.json +21 -14
  161. umap/static/umap/locale/el.js +28 -12
  162. umap/static/umap/locale/el.json +28 -12
  163. umap/static/umap/locale/en.js +14 -9
  164. umap/static/umap/locale/en.json +14 -9
  165. umap/static/umap/locale/en_US.json +26 -10
  166. umap/static/umap/locale/es.js +16 -13
  167. umap/static/umap/locale/es.json +16 -13
  168. umap/static/umap/locale/et.js +26 -10
  169. umap/static/umap/locale/et.json +26 -10
  170. umap/static/umap/locale/eu.js +16 -9
  171. umap/static/umap/locale/eu.json +16 -9
  172. umap/static/umap/locale/fa_IR.js +16 -9
  173. umap/static/umap/locale/fa_IR.json +16 -9
  174. umap/static/umap/locale/fi.js +26 -10
  175. umap/static/umap/locale/fi.json +26 -10
  176. umap/static/umap/locale/fr.js +14 -9
  177. umap/static/umap/locale/fr.json +14 -9
  178. umap/static/umap/locale/gl.js +26 -10
  179. umap/static/umap/locale/gl.json +26 -10
  180. umap/static/umap/locale/he.js +26 -10
  181. umap/static/umap/locale/he.json +26 -10
  182. umap/static/umap/locale/hr.js +26 -10
  183. umap/static/umap/locale/hr.json +26 -10
  184. umap/static/umap/locale/hu.js +16 -9
  185. umap/static/umap/locale/hu.json +16 -9
  186. umap/static/umap/locale/id.js +26 -10
  187. umap/static/umap/locale/id.json +26 -10
  188. umap/static/umap/locale/is.js +26 -10
  189. umap/static/umap/locale/is.json +26 -10
  190. umap/static/umap/locale/it.js +26 -10
  191. umap/static/umap/locale/it.json +26 -10
  192. umap/static/umap/locale/ja.js +26 -10
  193. umap/static/umap/locale/ja.json +26 -10
  194. umap/static/umap/locale/ko.js +26 -10
  195. umap/static/umap/locale/ko.json +26 -10
  196. umap/static/umap/locale/lt.js +26 -10
  197. umap/static/umap/locale/lt.json +26 -10
  198. umap/static/umap/locale/ms.js +28 -12
  199. umap/static/umap/locale/ms.json +28 -12
  200. umap/static/umap/locale/nl.js +28 -12
  201. umap/static/umap/locale/nl.json +28 -12
  202. umap/static/umap/locale/no.js +26 -10
  203. umap/static/umap/locale/no.json +26 -10
  204. umap/static/umap/locale/pl.js +28 -12
  205. umap/static/umap/locale/pl.json +28 -12
  206. umap/static/umap/locale/pl_PL.json +26 -10
  207. umap/static/umap/locale/pt.js +16 -9
  208. umap/static/umap/locale/pt.json +16 -9
  209. umap/static/umap/locale/pt_BR.js +26 -10
  210. umap/static/umap/locale/pt_BR.json +26 -10
  211. umap/static/umap/locale/pt_PT.js +16 -9
  212. umap/static/umap/locale/pt_PT.json +16 -9
  213. umap/static/umap/locale/ro.js +26 -10
  214. umap/static/umap/locale/ro.json +26 -10
  215. umap/static/umap/locale/ru.js +26 -10
  216. umap/static/umap/locale/ru.json +26 -10
  217. umap/static/umap/locale/si.js +7 -7
  218. umap/static/umap/locale/si.json +7 -7
  219. umap/static/umap/locale/sk_SK.js +26 -10
  220. umap/static/umap/locale/sk_SK.json +26 -10
  221. umap/static/umap/locale/sl.js +26 -10
  222. umap/static/umap/locale/sl.json +26 -10
  223. umap/static/umap/locale/sr.js +26 -10
  224. umap/static/umap/locale/sr.json +26 -10
  225. umap/static/umap/locale/sv.js +27 -11
  226. umap/static/umap/locale/sv.json +27 -11
  227. umap/static/umap/locale/th_TH.js +28 -12
  228. umap/static/umap/locale/th_TH.json +28 -12
  229. umap/static/umap/locale/tr.js +26 -10
  230. umap/static/umap/locale/tr.json +26 -10
  231. umap/static/umap/locale/uk_UA.js +26 -10
  232. umap/static/umap/locale/uk_UA.json +26 -10
  233. umap/static/umap/locale/vi.js +26 -10
  234. umap/static/umap/locale/vi.json +26 -10
  235. umap/static/umap/locale/vi_VN.json +26 -10
  236. umap/static/umap/locale/zh.js +26 -10
  237. umap/static/umap/locale/zh.json +26 -10
  238. umap/static/umap/locale/zh_CN.json +26 -10
  239. umap/static/umap/locale/zh_TW.Big5.json +26 -10
  240. umap/static/umap/locale/zh_TW.js +34 -27
  241. umap/static/umap/locale/zh_TW.json +34 -27
  242. umap/static/umap/map.css +39 -530
  243. umap/static/umap/unittests/URLs.js +15 -15
  244. umap/static/umap/unittests/utils.js +23 -1
  245. umap/static/umap/vars.css +2 -1
  246. umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +5 -1
  247. umap/storage/__init__.py +3 -0
  248. umap/storage/fs.py +101 -0
  249. umap/storage/s3.py +61 -0
  250. umap/templates/base.html +2 -0
  251. umap/templates/registration/login.html +7 -6
  252. umap/templates/umap/components/alerts/alert.html +4 -0
  253. umap/templates/umap/css.html +6 -0
  254. umap/templates/umap/js.html +3 -2
  255. umap/templates/umap/map_init.html +6 -5
  256. umap/templates/umap/user_dashboard.html +20 -19
  257. umap/tests/base.py +5 -1
  258. umap/tests/fixtures/test_upload_simple_marker.json +19 -0
  259. umap/tests/integration/conftest.py +2 -1
  260. umap/tests/integration/test_anonymous_owned_map.py +18 -10
  261. umap/tests/integration/test_browser.py +16 -1
  262. umap/tests/integration/test_dashboard.py +1 -1
  263. umap/tests/integration/test_edit_datalayer.py +29 -7
  264. umap/tests/integration/test_import.py +28 -6
  265. umap/tests/integration/test_optimistic_merge.py +31 -8
  266. umap/tests/integration/test_owned_map.py +22 -16
  267. umap/tests/integration/test_popup.py +44 -0
  268. umap/tests/integration/test_save.py +35 -0
  269. umap/tests/integration/test_view_marker.py +12 -0
  270. umap/tests/integration/test_view_polyline.py +257 -0
  271. umap/tests/integration/test_websocket_sync.py +81 -9
  272. umap/tests/test_dashboard.py +82 -0
  273. umap/tests/test_datalayer.py +6 -7
  274. umap/tests/test_datalayer_s3.py +135 -0
  275. umap/tests/test_datalayer_views.py +28 -10
  276. umap/tests/test_empty_trash.py +34 -0
  277. umap/tests/test_map.py +12 -3
  278. umap/tests/test_map_views.py +69 -37
  279. umap/tests/test_statics.py +1 -1
  280. umap/tests/test_team_views.py +35 -1
  281. umap/tests/test_views.py +31 -52
  282. umap/urls.py +3 -3
  283. umap/views.py +126 -90
  284. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/METADATA +16 -13
  285. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/RECORD +289 -269
  286. umap/management/commands/purge_purgatory.py +0 -28
  287. umap/static/umap/js/umap.js +0 -1903
  288. umap/tests/test_purge_purgatory.py +0 -25
  289. /umap/{storage.py → storage/staticfiles.py} +0 -0
  290. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/WHEEL +0 -0
  291. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/entry_points.txt +0 -0
  292. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/licenses/LICENSE +0 -0
umap/static/umap/base.css CHANGED
@@ -157,613 +157,13 @@ dt {
157
157
  display: grid;
158
158
  grid-template-columns: repeat(3, minmax(0, 1fr));
159
159
  }
160
- .grid-container > * {
161
- text-align: center;
162
- }
163
-
164
- /* *********** */
165
- /* forms */
166
- /* *********** */
167
- input[type="text"], input[type="password"], input[type="date"],
168
- input[type="datetime-local"], input[type="email"], input[type="number"],
169
- input[type="search"], input[type="tel"], input[type="time"], input[type="file"],
170
- input[type="url"], textarea {
171
- background-color: white;
172
- border: 1px solid #CCCCCC;
173
- border-radius: 2px 2px 2px 2px;
174
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;
175
- color: rgba(0, 0, 0, 0.75);
176
- display: block;
177
- font-family: inherit;
178
- margin: 0;
179
- margin-bottom: var(--box-margin);
180
- padding: 7px;
181
- width: 100%;
182
- }
183
- input[type="range"] {
184
- margin-top: 10px;
185
- margin-bottom: 5px;
186
- width: 100%;
187
- }
188
- input[type="radio"] {
189
- margin-inline-end: var(--text-margin);
190
- }
191
- input[type="checkbox"] {
192
- margin: 0 var(--text-margin);
193
- vertical-align: middle;
194
- appearance: none;
195
- }
196
- input[type="checkbox"]:after {
197
- display: inline-block;
198
- content: ' ';
199
- width: 12px;
200
- height: 12px;
201
- border: 1px solid var(--color-lightGray);
202
- cursor: pointer;
203
- text-align: center;
204
- font-size: 1rem;
205
- line-height: 0.8rem;
206
- }
207
- input[type=checkbox]:checked:after {
208
- background-color: var(--color-lightCyan);
209
- content: '✓';
210
- color: var(--color-darkGray);
211
- }
212
-
213
- input[data-modified=true] {
214
- background-color: var(--color-lightCyan);
215
- border: 1px solid var(--color-darkGray);
216
- }
217
- textarea {
218
- height: inherit;
219
- padding: 7px;
220
- min-height: 15rem;
221
- min-height: 6rlh;
222
- }
223
- select {
224
- border: 1px solid #222;
225
- width: 100%;
226
- height: 28px;
227
- line-height: 28px;
228
- margin-top: 5px;
229
- margin-bottom: var(--box-margin);
230
- }
231
- .dark select {
232
- color: #efefef;
233
- background-color: #393F3F;
234
- }
235
- select[multiple="multiple"] {
236
- height: auto;
237
- }
238
- .button,
239
- [type="button"],
240
- input[type="submit"] {
241
- display: block;
242
- margin-bottom: 14px;
243
- text-align: center;
244
- border-radius: 2px;
245
- font-weight: normal;
246
- cursor: pointer;
247
- padding: 7px;
248
- width: 100%;
249
- min-height: 32px;
250
- line-height: 32px;
251
- border: none;
252
- text-decoration: none;
253
- background-color: white;
254
- }
255
- .dark .button,
256
- .dark [type="button"] {
257
- background-color: #2a2e30;
258
- color: #eeeeec;
259
- border: 1px solid #1b1f20;
260
- }
261
- .dark .button:hover,
262
- .dark [type="button"]:hover,
263
- .dark input[type="submit"]:hover {
264
- background-color: #2e3436;
265
- }
266
- .dark a {
267
- color: #eeeeec;
268
- }
269
- button.flat,
270
- [type="button"].flat,
271
- .dark [type="button"].flat {
272
- border: none;
273
- background-color: inherit;
274
- padding: 0;
275
- text-align: start;
276
- min-height: inherit;
277
- width: initial;
278
- display: initial;
279
- line-height: inherit;
280
- color: var(--text-color);
281
- }
282
- button.flat:hover,
283
- [type="button"].flat:hover,
284
- .dark [type="button"].flat:hover {
285
- text-decoration: underline;
286
- }
287
- .help-text, .helptext {
288
- display: block;
289
- padding: 7px 7px;
290
- margin-bottom: 14px;
291
- background: #393F3F;
292
- color: var(--color-lightGray);
293
- font-size: 10px;
294
- border-radius: 0 2px;
295
- }
296
- .content .helptext {
297
- background-color: #eee;
298
- color: #000;
299
- }
300
- input + .help-text {
301
- margin-top: -14px;
302
- }
303
- .formbox {
304
- min-height: 36px;
305
- margin-bottom: 14px;
306
- }
307
- .formbox.with-switch {
308
- padding-top: 2px;
309
- }
310
- fieldset.formbox {
311
- border: none;
312
- border-top: 1px solid var(--color-lightGray);
313
- }
314
- label {
315
- display: block;
316
- font-size: 12px;
317
- line-height: 21px;
318
- width: 100%;
319
- }
320
- label + label {
321
- margin-top: var(--box-margin);
322
- }
323
- .content label {
324
- font-weight: bold;
325
- }
326
- input[type="checkbox"] + label {
327
- display: inline;
328
- padding: 0 14px;
329
- }
330
- select + .error,
331
- input + .error {
332
- display: block;
333
- padding: 7px 7px;
334
- margin-top: -14px;
335
- margin-bottom: 14px;
336
- background: var(--color-lightGray);
337
- color: #fff;
338
- background-color: #cc0000;
339
- font-size: 11px;
340
- border-radius: 0 2px;
341
- }
342
- input[type="file"] + .error {
343
- margin-top: 0;
344
- }
345
- input[value]:invalid {
346
- border-color: red;
347
- background-color: darkred;
348
- }
349
- .dark input, .dark textarea {
350
- background-color: #232729;
351
- border-color: #1b1f20;
352
- color: #efefef;
353
- }
354
- details {
355
- margin-bottom: 5px;
356
- border-start-start-radius: 4px;
357
- border-start-end-radius: 4px;
358
- }
359
- .dark details {
360
- border: 1px solid #222;
160
+ .grid-container.by4 {
161
+ grid-template-columns: repeat(4, minmax(0, 1fr));
361
162
  }
362
- details fieldset {
363
- overflow: hidden;
364
- border: 1px solid var(--color-lightGray);
365
- margin: 0;
366
- padding-top: 10px;
367
- }
368
- details summary {
369
- cursor: pointer;
370
- background-color: var(--color-lightGray);
371
- line-height: 30px;
372
- font-size: 1.2em;
373
- padding: 0 5px;
374
- }
375
- .dark details summary {
376
- background-color: #232729;
377
- color: #fff;
378
- }
379
- .dark details fieldset {
380
- border: 1px solid var(--color-darkGray);
381
- }
382
- fieldset legend {
383
- font-size: .9rem;
384
- padding: 0 5px;
385
- }
386
- fieldset.separator {
387
- border: none;
388
- border-top: 1px solid var(--color-lightGray);
389
- }
390
-
391
- [data-badge] {
392
- position: relative;
393
- }
394
- [data-badge]:after {
395
- position: absolute;
396
- inset-inline-end: -6px;
397
- top: -6px;
398
- min-width: 8px;
399
- min-height: 8px;
400
- line-height: 8px;
401
- padding: 2px;
402
- font-weight: bold;
403
- background-color: var(--color-accent);
404
- color: var(--color-darkBlue);
405
- text-align: center;
406
- font-size: .75rem;
407
- border-radius: 50%;
408
- content: attr(data-badge);
409
- }
410
- [hidden] {
411
- display: none!important;
412
- }
413
-
414
- /* Switch */
415
- input.switch:empty {
416
- display: none;
417
- }
418
- input.switch:empty ~ label {
419
- white-space: nowrap;
420
- position: relative;
421
- float: inline-start;
422
- line-height: 2em;
423
- height: 2em;
424
- text-indent: 6em;
425
- margin: 0.2em 0;
426
- cursor: pointer;
427
- -webkit-user-select: none;
428
- -moz-user-select: none;
429
- -ms-user-select: none;
430
- user-select: none;
431
- text-shadow: 0 1px rgba(0, 0, 0, 0.1);
432
- width: 80px;
433
- }
434
- input.switch:empty ~ label:before,
435
- input.switch:empty ~ label:after {
436
- position: absolute;
437
- display: block;
438
- top: 0;
439
- bottom: 0;
440
- inset-inline-start: 0;
441
- content: ' ';
442
- width: 6em;
443
- -webkit-transition: all 100ms ease-in;
444
- transition: all 100ms ease-in;
445
- color: #c9c9c7;
446
- font-weight: bold;
447
- background-color: #ededed;
448
- }
449
- .dark input.switch:empty ~ label:before,
450
- .dark input.switch:empty ~ label:after {
451
- background-color: #272c2e;
452
- }
453
- input.switch:empty ~ label:after {
454
- width: 3em;
455
- margin-inline-start: 0.1em;
456
- background-color: #ededed;
457
- content: "OFF";
458
- text-indent: 3.5em;
459
- border: 1px solid #374E75;
460
- font-weight: bold;
461
- }
462
- .dark input.switch:empty ~ label:after {
463
- border: 1px solid #202425;
464
- background-color: #2c3233;
465
- }
466
- input.switch:checked:empty ~ label:after {
467
- content: ' ';
468
- }
469
- .dark input.switch:checked ~ label:before,
470
- input.switch:checked ~ label:before {
471
- background-color: var(--color-lightCyan);
472
- border: 1px solid var(--color-lightGray);
473
- color: var(--color-darkGray);
474
- content: "ON";
475
- text-indent: 0.7em;
476
- text-align: start;
477
- font-weight: bold;
478
- }
479
- .dark input.switch:checked ~ label:before {
480
- border: none;
481
- background-color: var(--color-accent);
482
- }
483
- input.switch:checked ~ label:after {
484
- margin-inline-start: 3em;
485
- }
486
- .button-bar, .umap-multiplechoice {
487
- margin-top: 5px;
488
- text-align: center;
489
- display: grid;
490
- width: 100%
491
- }
492
- .button-bar {
493
- grid-gap: 7px;
494
- }
495
- .umap-multiplechoice.by2,
496
- .button-bar.half {
497
- grid-template-columns: 1fr 1fr;
498
- }
499
- .button-bar.by3,
500
- .button-bar.by5,
501
- .button-bar.by6,
502
- .umap-multiplechoice.by3,
503
- .umap-multiplechoice.by5,
504
- .umap-multiplechoice.by6 {
505
- grid-template-columns: 1fr 1fr 1fr;
506
- }
507
- .button-bar.by4,
508
- .umap-multiplechoice.by4 {
509
- grid-template-columns: 1fr 1fr 1fr 1fr;
510
- }
511
- .button-bar .button,
512
- .button-bar [type="button"] {
513
- display: inline-block;
514
- }
515
- .umap-multiplechoice input[type='radio'] {
516
- display: none;
517
- }
518
- .umap-multiplechoice label {
519
- border: 1px solid #374E75;
520
- cursor: pointer;
521
- background-color: #c9c9c7;
522
- min-height: 30px;
523
- line-height: 30px;
524
- text-align: center;
525
- width: 100%;
526
- display: inline-block;
527
- }
528
- .dark .umap-multiplechoice label {
529
- border: 1px solid black;
530
- background-color: #2c3233;
531
- }
532
- .umap-multiplechoice input[type='radio']:checked + label {
533
- background-color: var(--color-accent);
534
- box-shadow: inset 0 0 6px 0px #2c3233;
535
- color: var(--color-darkGray);
536
- }
537
- .inheritable .header,
538
- .inheritable {
539
- clear: both;
540
- overflow: hidden;
541
- }
542
- .inheritable .header {
543
- margin-bottom: 5px;
544
- }
545
- .inheritable .header label {
546
- padding-top: 6px;
547
- }
548
- .inheritable + .inheritable {
549
- border-top: 1px solid #222;
550
- padding-top: 5px;
551
- margin-top: 5px;
552
- }
553
- .umap-field-iconUrl .action-button,
554
- .inheritable .define,
555
- .inheritable .undefine {
556
- float: inline-end;
557
- width: initial;
558
- min-height: 18px;
559
- line-height: 18px;
560
- margin-bottom: 0;
561
- }
562
- .inheritable .quick-actions {
563
- float: inline-end;
564
- }
565
- .inheritable .quick-actions .formbox {
566
- margin-bottom: 0;
567
- }
568
- .inheritable .quick-actions input {
569
- width: 100px;
570
- margin-inline-end: 5px;
571
- }
572
- .inheritable .define,
573
- .inheritable.undefined .undefine,
574
- .inheritable.undefined .show-on-defined {
575
- display: none;
576
- }
577
- .inheritable.undefined .define {
578
- display: block;
579
- }
580
- i.info {
581
- background-repeat: no-repeat;
582
- background-image: url('./img/16.svg');
583
- background-position: -170px -50px;
584
- display: inline-block;
585
- margin-inline-start: 5px;
586
- vertical-align: middle;
587
- width: 16px;
588
- height: 18px;
589
- }
590
- .dark i.info {
591
- background-image: url('./img/16-white.svg');
592
- }
593
- .with-transition {
594
- transition: all .7s;
595
- }
596
- .umap-empty:before, .umap-to-polygon:before,
597
- .umap-clone:before, .umap-edit:before, .umap-download:before,
598
- .umap-to-polyline:before {
599
- background-repeat: no-repeat;
600
- text-indent: 36px;
601
- height: 24px;
602
- line-height: 24px;
603
- display: inline-block;
604
- background-image: url('./img/24.svg');
605
- vertical-align: bottom;
606
- content: " ";
607
- }
608
- .dark .umap-empty:before,
609
- .dark .umap-to-polygon:before,
610
- .dark .umap-clone:before,
611
- .dark .umap-edit:before, .dark .umap-download:before,
612
- .dark .umap-to-polyline:before {
613
- background-image: url('./img/24-white.svg');
614
- vertical-align: middle;
615
- }
616
- .umap-to-polygon:before {
617
- background-position: -72px -42px;
618
- }
619
- .umap-to-polyline:before {
620
- background-position: -106px -42px;
621
- }
622
- .umap-clone:before {
623
- background-position: -144px -78px;
624
- }
625
- .umap-empty:before {
626
- background-position: -108px -78px;
627
- }
628
- .umap-download:before {
629
- background-position: -72px -78px;
630
- }
631
- .permissions-panel,
632
- .umap-upload,
633
- .umap-share,
634
- .umap-datalayer-container,
635
- .umap-layer-properties-container,
636
- .umap-browse-data,
637
- .umap-tilelayer-switcher-container {
638
- padding: 0 10px;
639
- }
640
- .umap-field-datalist {
641
- display: flex;
642
- justify-content: space-between;
643
- font-size: 9px;
644
- margin-top: -8px;
645
- padding: 0 5px;
646
- }
647
- .flat-tabs {
648
- display: flex;
649
- justify-content: space-around;
650
- font-size: 1.2em;
651
- margin-bottom: 20px;
652
- border-bottom: 1px solid #bebebe;
653
- }
654
- .flat-tabs button {
655
- padding: 10px;
656
- text-decoration: none;
657
- cursor: pointer;
658
- border-bottom: 1px solid transparent;
659
- }
660
- .flat-tabs button:hover,
661
- .flat-tabs .on {
662
- font-weight: bold;
663
- border-bottom: 1px solid #444;
664
- }
665
- .dark .flat-tabs button {
666
- color: #fff;
667
- }
668
- .dark .flat-tabs button:hover,
669
- .dark .flat-tabs .on {
670
- border-bottom: 1px solid #fff;
671
- }
672
- .umap-pictogram-category h6 {
673
- font-size: 1.3em;
674
- }
675
- .umap-pictogram-grid {
676
- display: grid;
677
- grid-template-columns: repeat(auto-fill, 30px);
678
- justify-content: space-between;
679
- grid-gap: 5px;
680
- }
681
- .umap-pictogram-choice {
682
- width: 30px;
683
- height: 30px;
684
- line-height: 30px;
685
- cursor: pointer;
686
- background-color: #999;
163
+ .grid-container > * {
687
164
  text-align: center;
688
- margin-bottom: 5px;
689
- display: block;
690
- color: black;
691
- font-weight: bold;
692
- }
693
- .umap-pictogram-choice img {
694
- vertical-align: middle;
695
- max-width: 24px;
696
- }
697
- .umap-pictogram-choice:hover,
698
- .umap-color-picker span:hover {
699
- background-color: #bebebe;
700
- }
701
- .umap-pictogram-choice.selected {
702
- box-shadow: inset 0 0 0 1px #e9e9e9;
703
165
  }
704
166
 
705
- .umap-pictogram-choice .leaflet-marker-icon {
706
- bottom: 0;
707
- inset-inline-start: 30px;
708
- position: absolute;
709
- }
710
- .umap-color-picker {
711
- clear: both;
712
- margin-bottom: 20px;
713
- overflow: hidden;
714
- display: none;
715
- }
716
- .umap-color-picker span {
717
- width: 20px;
718
- height: 20px;
719
- display: block;
720
- padding: 0;
721
- margin: 0;
722
- cursor: pointer;
723
- float: inline-start;
724
- }
725
- input.blur {
726
- width: calc(100% - 40px);
727
- display: inline-block;
728
- vertical-align: middle;
729
- border-start-end-radius: 0;
730
- border-end-end-radius: 0;
731
- }
732
- .blur + .button:before,
733
- .blur + [type="button"]:before {
734
- content: '✔';
735
- }
736
- .blur + .button,
737
- .blur + [type="button"] {
738
- width: 40px;
739
- height: 18px;
740
- display: inline-block;
741
- vertical-align: middle;
742
- line-height: 18px;
743
- border-start-start-radius: 0;
744
- border-end-start-radius: 0;
745
- box-sizing: border-box;
746
- }
747
- input[type=hidden].blur + .button,
748
- input[type=hidden].blur + [type="button"] {
749
- display: none;
750
- }
751
- .copiable-input {
752
- display: flex;
753
- align-items: end;
754
- }
755
- .copiable-input input {
756
- border-radius: initial;
757
- }
758
- .copiable-input button {
759
- background-position: -46px -92px;
760
- display: inline;
761
- padding: 0 10px;
762
- height: 32px;
763
- width: 32px;
764
- border: 1px solid #202425;
765
- border-radius: initial;
766
- }
767
167
 
768
168
  /* *********** */
769
169
  /* Panel */
@@ -24,11 +24,11 @@ input:-moz-placeholder, :-moz-placeholder {
24
24
  body.login {
25
25
  width: 320px;
26
26
  margin: auto;
27
- text-align: center;
27
+ background-color: var(--color-lighterGray);
28
+ color: var(--color-darkerGray);
28
29
  }
29
30
  body.login header {
30
31
  display: flex;
31
- justify-content: center;
32
32
  }
33
33
  .login-grid {
34
34
  display: grid;
@@ -65,7 +65,9 @@ body.login header {
65
65
  .login-grid .login-openstreetmap-oauth2 {
66
66
  background-image: url("./openstreetmap.png");
67
67
  }
68
-
68
+ .login-grid .login-keycloak {
69
+ background-image: url("./keycloak.png");
70
+ }
69
71
 
70
72
  /* **************************** */
71
73
  /* home */