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
@@ -0,0 +1,620 @@
1
+ .umap-form-inline {
2
+ display: inline;
3
+ }
4
+ input[type="text"], input[type="password"], input[type="date"],
5
+ input[type="datetime-local"], input[type="email"], input[type="number"],
6
+ input[type="search"], input[type="tel"], input[type="time"], input[type="file"],
7
+ input[type="url"], textarea {
8
+ background-color: white;
9
+ border: 1px solid #CCCCCC;
10
+ border-radius: 2px 2px 2px 2px;
11
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;
12
+ color: rgba(0, 0, 0, 0.75);
13
+ display: block;
14
+ font-family: inherit;
15
+ margin: 0;
16
+ margin-bottom: var(--box-margin);
17
+ padding: 7px;
18
+ width: 100%;
19
+ }
20
+ input[type="range"] {
21
+ margin-top: 10px;
22
+ margin-bottom: 5px;
23
+ width: 100%;
24
+ }
25
+ input[type="radio"] {
26
+ margin-inline-end: var(--text-margin);
27
+ }
28
+ input[type="checkbox"] {
29
+ margin: 0 var(--text-margin);
30
+ vertical-align: middle;
31
+ appearance: none;
32
+ }
33
+ input[type="checkbox"]:after {
34
+ display: inline-block;
35
+ content: ' ';
36
+ width: 12px;
37
+ height: 12px;
38
+ border: 1px solid var(--color-lightGray);
39
+ cursor: pointer;
40
+ text-align: center;
41
+ font-size: 1rem;
42
+ line-height: 0.8rem;
43
+ }
44
+ input[type=checkbox]:checked:after {
45
+ background-color: var(--color-lightCyan);
46
+ content: '✓';
47
+ color: var(--color-darkGray);
48
+ }
49
+
50
+ input[data-modified=true] {
51
+ background-color: var(--color-lightCyan);
52
+ border: 1px solid var(--color-darkGray);
53
+ }
54
+ textarea {
55
+ height: inherit;
56
+ padding: 7px;
57
+ min-height: 15rem;
58
+ min-height: 6rlh;
59
+ }
60
+ select {
61
+ border: 1px solid #222;
62
+ width: 100%;
63
+ height: 28px;
64
+ line-height: 28px;
65
+ margin-top: 5px;
66
+ margin-bottom: var(--box-margin);
67
+ }
68
+ .dark select {
69
+ color: #efefef;
70
+ background-color: #393F3F;
71
+ }
72
+ select[multiple="multiple"] {
73
+ height: auto;
74
+ }
75
+ .button,
76
+ [type="button"],
77
+ input[type="submit"] {
78
+ display: block;
79
+ margin-bottom: 14px;
80
+ text-align: center;
81
+ border-radius: 2px;
82
+ font-weight: normal;
83
+ cursor: pointer;
84
+ padding: 7px 14px;
85
+ min-height: 32px;
86
+ line-height: 32px;
87
+ border: none;
88
+ text-decoration: none;
89
+ background-color: white;
90
+ }
91
+ .dark .button,
92
+ .dark [type="button"] {
93
+ background-color: var(--color-darkerGray);
94
+ color: var(--text-color);
95
+ border: 1px solid #1b1f20;
96
+ }
97
+ .dark .button.primary:not([disabled]),
98
+ .dark [type="button"].primary:not([disabled]) {
99
+ background-color: var(--color-brightCyan);
100
+ color: var(--color-dark);
101
+ border: 1px solid #1b1f20;
102
+ }
103
+ .dark .button:hover,
104
+ .dark [type="button"]:hover,
105
+ .dark input[type="submit"]:hover {
106
+ background-color: #2e3436;
107
+ }
108
+ .dark a {
109
+ color: var(--text-color);
110
+ }
111
+ .dark [type="button"][disabled],
112
+ .dark input[type="submit"][disabled] {
113
+ background-color: var(--color-mediumGray);
114
+ cursor: not-allowed;
115
+ }
116
+ button.flat,
117
+ [type="button"].flat,
118
+ .dark [type="button"].flat {
119
+ border: none;
120
+ background-color: inherit;
121
+ padding: 0;
122
+ text-align: start;
123
+ min-height: inherit;
124
+ width: initial;
125
+ display: initial;
126
+ line-height: inherit;
127
+ color: var(--text-color);
128
+ }
129
+ button.flat:hover,
130
+ [type="button"].flat:hover,
131
+ .dark [type="button"].flat:hover {
132
+ text-decoration: underline;
133
+ }
134
+ .help-text, .helptext {
135
+ display: block;
136
+ padding: 7px 7px;
137
+ margin-bottom: 14px;
138
+ background: #393F3F;
139
+ color: var(--color-lightGray);
140
+ font-size: 10px;
141
+ border-radius: 0 2px;
142
+ }
143
+ .content .helptext {
144
+ background-color: #eee;
145
+ color: #000;
146
+ }
147
+ input + .help-text {
148
+ margin-top: -14px;
149
+ }
150
+ .formbox {
151
+ min-height: 36px;
152
+ margin-bottom: 14px;
153
+ }
154
+ .formbox.with-switch {
155
+ padding-top: 2px;
156
+ }
157
+ fieldset.formbox {
158
+ border: none;
159
+ border-top: 1px solid var(--color-lightGray);
160
+ }
161
+ label {
162
+ display: block;
163
+ font-size: 12px;
164
+ line-height: 21px;
165
+ width: 100%;
166
+ }
167
+ label + label {
168
+ margin-top: var(--box-margin);
169
+ }
170
+ .content label {
171
+ font-weight: bold;
172
+ }
173
+ input[type="checkbox"] + label {
174
+ display: inline;
175
+ padding: 0 14px;
176
+ }
177
+ select + .error,
178
+ input + .error {
179
+ display: block;
180
+ padding: 7px 7px;
181
+ margin-top: -14px;
182
+ margin-bottom: 14px;
183
+ background: var(--color-lightGray);
184
+ color: #fff;
185
+ background-color: #cc0000;
186
+ font-size: 11px;
187
+ border-radius: 0 2px;
188
+ }
189
+ input[type="file"] + .error {
190
+ margin-top: 0;
191
+ }
192
+ input[value]:invalid {
193
+ border-color: red;
194
+ background-color: darkred;
195
+ }
196
+ .dark input, .dark textarea {
197
+ background-color: #232729;
198
+ border-color: #1b1f20;
199
+ color: #efefef;
200
+ }
201
+ details {
202
+ margin-bottom: 5px;
203
+ border-start-start-radius: 4px;
204
+ border-start-end-radius: 4px;
205
+ }
206
+ .dark details {
207
+ border: 1px solid #222;
208
+ }
209
+ details fieldset {
210
+ overflow: hidden;
211
+ border: 1px solid var(--color-lightGray);
212
+ margin: 0;
213
+ padding-top: 10px;
214
+ }
215
+ details summary {
216
+ cursor: pointer;
217
+ background-color: var(--color-lightGray);
218
+ line-height: 30px;
219
+ font-size: 1.2em;
220
+ padding: 0 5px;
221
+ }
222
+ .dark details summary {
223
+ background-color: #232729;
224
+ color: #fff;
225
+ }
226
+ .dark details fieldset {
227
+ border: 1px solid var(--color-darkGray);
228
+ }
229
+ fieldset legend {
230
+ font-size: .9rem;
231
+ padding: 0 5px;
232
+ }
233
+ fieldset.separator {
234
+ border: none;
235
+ border-top: 1px solid var(--color-lightGray);
236
+ }
237
+
238
+ [data-badge] {
239
+ position: relative;
240
+ }
241
+ [data-badge]:after {
242
+ position: absolute;
243
+ inset-inline-end: -6px;
244
+ top: -6px;
245
+ min-width: 8px;
246
+ min-height: 8px;
247
+ line-height: 8px;
248
+ padding: 2px;
249
+ font-weight: bold;
250
+ background-color: var(--color-accent);
251
+ color: var(--color-darkBlue);
252
+ text-align: center;
253
+ font-size: .75rem;
254
+ border-radius: 50%;
255
+ content: attr(data-badge);
256
+ }
257
+ [hidden] {
258
+ display: none!important;
259
+ }
260
+
261
+ /* Switch */
262
+ input.switch:empty {
263
+ display: none;
264
+ }
265
+ input.switch:empty ~ label {
266
+ white-space: nowrap;
267
+ position: relative;
268
+ float: inline-start;
269
+ line-height: 2em;
270
+ height: 2em;
271
+ text-indent: 6em;
272
+ margin: 0.2em 0;
273
+ cursor: pointer;
274
+ -webkit-user-select: none;
275
+ -moz-user-select: none;
276
+ -ms-user-select: none;
277
+ user-select: none;
278
+ text-shadow: 0 1px rgba(0, 0, 0, 0.1);
279
+ width: 80px;
280
+ }
281
+ input.switch:empty ~ label:before,
282
+ input.switch:empty ~ label:after {
283
+ position: absolute;
284
+ display: block;
285
+ top: 0;
286
+ bottom: 0;
287
+ inset-inline-start: 0;
288
+ content: ' ';
289
+ width: 6em;
290
+ -webkit-transition: all 100ms ease-in;
291
+ transition: all 100ms ease-in;
292
+ color: #c9c9c7;
293
+ font-weight: bold;
294
+ background-color: #ededed;
295
+ }
296
+ .dark input.switch:empty ~ label:before,
297
+ .dark input.switch:empty ~ label:after {
298
+ background-color: #272c2e;
299
+ }
300
+ input.switch:empty ~ label:after {
301
+ width: 3em;
302
+ margin-inline-start: 0.1em;
303
+ background-color: #ededed;
304
+ content: "OFF";
305
+ text-indent: 3.5em;
306
+ border: 1px solid #374E75;
307
+ font-weight: bold;
308
+ }
309
+ .dark input.switch:empty ~ label:after {
310
+ border: 1px solid #202425;
311
+ background-color: #2c3233;
312
+ }
313
+ input.switch:checked:empty ~ label:after {
314
+ content: ' ';
315
+ }
316
+ .dark input.switch:checked ~ label:before,
317
+ input.switch:checked ~ label:before {
318
+ background-color: var(--color-lightCyan);
319
+ border: 1px solid var(--color-lightGray);
320
+ color: var(--color-darkGray);
321
+ content: "ON";
322
+ text-indent: 0.7em;
323
+ text-align: start;
324
+ font-weight: bold;
325
+ }
326
+ .dark input.switch:checked ~ label:before {
327
+ border: none;
328
+ background-color: var(--color-accent);
329
+ }
330
+ input.switch:checked ~ label:after {
331
+ margin-inline-start: 3em;
332
+ }
333
+ .button-bar, .umap-multiplechoice {
334
+ margin-top: 5px;
335
+ text-align: center;
336
+ display: grid;
337
+ width: 100%
338
+ }
339
+ .button-bar {
340
+ grid-gap: 7px;
341
+ }
342
+ .umap-multiplechoice.by2,
343
+ .button-bar.half {
344
+ grid-template-columns: 1fr 1fr;
345
+ }
346
+ .button-bar.by3,
347
+ .button-bar.by5,
348
+ .button-bar.by6,
349
+ .umap-multiplechoice.by3,
350
+ .umap-multiplechoice.by5,
351
+ .umap-multiplechoice.by6 {
352
+ grid-template-columns: 1fr 1fr 1fr;
353
+ }
354
+ .button-bar.by4,
355
+ .umap-multiplechoice.by4 {
356
+ grid-template-columns: 1fr 1fr 1fr 1fr;
357
+ }
358
+ .button-bar .button,
359
+ .button-bar [type="button"] {
360
+ display: inline-block;
361
+ }
362
+ .umap-multiplechoice input[type='radio'] {
363
+ display: none;
364
+ }
365
+ .umap-multiplechoice label {
366
+ border: 1px solid #374E75;
367
+ cursor: pointer;
368
+ background-color: #c9c9c7;
369
+ min-height: 30px;
370
+ line-height: 30px;
371
+ text-align: center;
372
+ width: 100%;
373
+ display: inline-block;
374
+ }
375
+ .dark .umap-multiplechoice label {
376
+ border: 1px solid black;
377
+ background-color: #2c3233;
378
+ }
379
+ .umap-multiplechoice input[type='radio']:checked + label {
380
+ background-color: var(--color-accent);
381
+ box-shadow: inset 0 0 6px 0px #2c3233;
382
+ color: var(--color-darkGray);
383
+ }
384
+ .inheritable .header,
385
+ .inheritable {
386
+ clear: both;
387
+ overflow: hidden;
388
+ }
389
+ .inheritable .header {
390
+ margin-bottom: 5px;
391
+ }
392
+ .inheritable .header label {
393
+ padding-top: 6px;
394
+ }
395
+ .inheritable + .inheritable {
396
+ border-top: 1px solid #222;
397
+ padding-top: 5px;
398
+ margin-top: 5px;
399
+ }
400
+ .umap-field-iconUrl .action-button,
401
+ .inheritable .define,
402
+ .inheritable .undefine {
403
+ float: inline-end;
404
+ width: initial;
405
+ min-height: 18px;
406
+ line-height: 18px;
407
+ margin-bottom: 0;
408
+ }
409
+ .inheritable .quick-actions {
410
+ float: inline-end;
411
+ }
412
+ .inheritable .quick-actions .formbox {
413
+ margin-bottom: 0;
414
+ }
415
+ .inheritable .quick-actions input {
416
+ width: 100px;
417
+ margin-inline-end: 5px;
418
+ }
419
+ .inheritable .define,
420
+ .inheritable.undefined .undefine,
421
+ .inheritable.undefined .show-on-defined {
422
+ display: none;
423
+ }
424
+ .inheritable.undefined .define {
425
+ display: block;
426
+ }
427
+
428
+ i.info {
429
+ background-repeat: no-repeat;
430
+ background-image: url('../img/16.svg');
431
+ background-position: -170px -50px;
432
+ display: inline-block;
433
+ margin-inline-start: 5px;
434
+ vertical-align: middle;
435
+ width: 16px;
436
+ height: 18px;
437
+ }
438
+ .dark i.info {
439
+ background-image: url('../img/16-white.svg');
440
+ }
441
+ .with-transition {
442
+ transition: all .7s;
443
+ }
444
+ .umap-empty:before, .umap-to-polygon:before,
445
+ .umap-clone:before, .umap-edit:before, .umap-download:before,
446
+ .umap-to-polyline:before {
447
+ background-repeat: no-repeat;
448
+ text-indent: 36px;
449
+ height: 24px;
450
+ line-height: 24px;
451
+ display: inline-block;
452
+ background-image: url('../img/24.svg');
453
+ vertical-align: bottom;
454
+ content: " ";
455
+ }
456
+ .dark .umap-empty:before,
457
+ .dark .umap-to-polygon:before,
458
+ .dark .umap-clone:before,
459
+ .dark .umap-edit:before, .dark .umap-download:before,
460
+ .dark .umap-to-polyline:before {
461
+ background-image: url('../img/24-white.svg');
462
+ vertical-align: middle;
463
+ }
464
+ .umap-to-polygon:before {
465
+ background-position: -72px -42px;
466
+ }
467
+ .umap-to-polyline:before {
468
+ background-position: -106px -42px;
469
+ }
470
+ .umap-clone:before {
471
+ background-position: -144px -78px;
472
+ }
473
+ .umap-empty:before {
474
+ background-position: -108px -78px;
475
+ }
476
+ .umap-download:before {
477
+ background-position: -72px -78px;
478
+ }
479
+ .permissions-panel,
480
+ .umap-upload,
481
+ .umap-share,
482
+ .umap-datalayer-container,
483
+ .umap-layer-properties-container,
484
+ .umap-browse-data,
485
+ .umap-tilelayer-switcher-container {
486
+ padding: 0 10px;
487
+ }
488
+ .umap-field-datalist {
489
+ display: flex;
490
+ justify-content: space-between;
491
+ font-size: 9px;
492
+ margin-top: -8px;
493
+ padding: 0 5px;
494
+ }
495
+ .flat-tabs {
496
+ display: flex;
497
+ justify-content: space-around;
498
+ font-size: 1.2em;
499
+ margin-bottom: 20px;
500
+ border-bottom: 1px solid #bebebe;
501
+ }
502
+ .flat-tabs button {
503
+ padding: 10px;
504
+ text-decoration: none;
505
+ cursor: pointer;
506
+ border-bottom: 1px solid transparent;
507
+ }
508
+ .flat-tabs button:hover,
509
+ .flat-tabs .on {
510
+ font-weight: bold;
511
+ border-bottom: 1px solid #444;
512
+ }
513
+ .dark .flat-tabs button {
514
+ color: #fff;
515
+ }
516
+ .dark .flat-tabs button:hover,
517
+ .dark .flat-tabs .on {
518
+ border-bottom: 1px solid #fff;
519
+ }
520
+ .umap-pictogram-category h6 {
521
+ font-size: 1.3em;
522
+ }
523
+ .umap-pictogram-grid {
524
+ display: grid;
525
+ grid-template-columns: repeat(auto-fill, 30px);
526
+ justify-content: space-between;
527
+ grid-gap: 5px;
528
+ }
529
+ .umap-pictogram-choice {
530
+ width: 30px;
531
+ height: 30px;
532
+ line-height: 30px;
533
+ cursor: pointer;
534
+ background-color: #999;
535
+ text-align: center;
536
+ margin-bottom: 5px;
537
+ display: block;
538
+ color: black;
539
+ font-weight: bold;
540
+ }
541
+ .umap-pictogram-choice img {
542
+ vertical-align: middle;
543
+ max-width: 24px;
544
+ }
545
+ .umap-pictogram-choice:hover,
546
+ .umap-color-picker span:hover {
547
+ background-color: #bebebe;
548
+ }
549
+ .umap-pictogram-choice.selected {
550
+ box-shadow: inset 0 0 0 1px #e9e9e9;
551
+ }
552
+
553
+ .umap-pictogram-choice .leaflet-marker-icon {
554
+ bottom: 0;
555
+ inset-inline-start: 30px;
556
+ position: absolute;
557
+ }
558
+ .umap-color-picker {
559
+ clear: both;
560
+ margin-bottom: 20px;
561
+ overflow: hidden;
562
+ display: none;
563
+ }
564
+ .umap-color-picker span {
565
+ width: 20px;
566
+ height: 20px;
567
+ display: block;
568
+ padding: 0;
569
+ margin: 0;
570
+ cursor: pointer;
571
+ float: inline-start;
572
+ }
573
+ input.blur {
574
+ width: calc(100% - 40px);
575
+ display: inline-block;
576
+ vertical-align: middle;
577
+ border-start-end-radius: 0;
578
+ border-end-end-radius: 0;
579
+ }
580
+ .blur + .button:before,
581
+ .blur + [type="button"]:before {
582
+ content: '✔';
583
+ }
584
+ .blur + .button,
585
+ .blur + [type="button"] {
586
+ width: 40px;
587
+ height: 18px;
588
+ display: inline-block;
589
+ vertical-align: middle;
590
+ line-height: 18px;
591
+ border-start-start-radius: 0;
592
+ border-end-start-radius: 0;
593
+ box-sizing: border-box;
594
+ }
595
+ input[type=hidden].blur + .button,
596
+ input[type=hidden].blur + [type="button"] {
597
+ display: none;
598
+ }
599
+ .copiable-input {
600
+ display: flex;
601
+ align-items: end;
602
+ }
603
+ .copiable-input input {
604
+ border-radius: initial;
605
+ }
606
+ .copiable-input button {
607
+ background-position: -46px -92px;
608
+ display: inline;
609
+ padding: 0 10px;
610
+ height: 32px;
611
+ width: 32px;
612
+ border: 1px solid #202425;
613
+ border-radius: initial;
614
+ }
615
+ input.highlightable:not(:placeholder-shown) {
616
+ border: 1px solid var(--color-brightCyan);
617
+ }
618
+ .umap-upload [type=url] {
619
+ margin-bottom: 0;
620
+ }
@@ -8,7 +8,6 @@
8
8
  background-color: initial;
9
9
  }
10
10
  .icon-16 {
11
- background-image: url('../img/16.svg');
12
11
  height: 24px;
13
12
  line-height: 24px;
14
13
  width: 24px;
@@ -43,6 +42,14 @@ html[dir="rtl"] .icon {
43
42
  .dark .icon-24 {
44
43
  background-image: url('../img/24-white.svg');
45
44
  }
45
+ .icon-16.icon-black,
46
+ .icon-16 {
47
+ background-image: url('../img/16.svg');
48
+ }
49
+ .icon-24.icon-black,
50
+ .icon-24 {
51
+ background-image: url('../img/24.svg');
52
+ }
46
53
  .icon-add {
47
54
  background-position: var(--tile) var(--tile);
48
55
  }
@@ -103,9 +110,15 @@ html[dir="rtl"] .icon {
103
110
  .icon-list {
104
111
  background-position: var(--tile) calc(var(--tile) * 4);
105
112
  }
113
+ .icon-magic {
114
+ background-position: calc(var(--tile) * 7) 0;
115
+ }
106
116
  .icon-marker {
107
117
  background-position: calc(var(--tile) * 3) calc(var(--tile) * 5);
108
118
  }
119
+ .icon-peers {
120
+ background-position: calc(var(--tile) * 3) calc(var(--tile) * 2);
121
+ }
109
122
  .icon-polygon {
110
123
  background-position: var(--tile) calc(var(--tile) * 3);
111
124
  }
@@ -124,6 +137,13 @@ html[dir="rtl"] .icon {
124
137
  .expanded .icon-resize {
125
138
  background-position: calc(var(--tile) * 2) calc(var(--tile) * 6);
126
139
  }
140
+ .icon-save {
141
+ background-position: calc(var(--tile) * 6) var(--tile);
142
+ }
143
+ /* FIXME move to a 16-disabled.svg sprite ? */
144
+ .icon-save-disabled {
145
+ background-position: calc(var(--tile) * 6) 0;
146
+ }
127
147
  .icon-search {
128
148
  background-position: var(--tile) calc(var(--tile) * 5);
129
149
  }