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