umap-project 2.3.0__py3-none-any.whl → 2.4.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.

Potentially problematic release.


This version of umap-project might be problematic. Click here for more details.

Files changed (211) hide show
  1. umap/__init__.py +1 -1
  2. umap/locale/en/LC_MESSAGES/django.po +81 -31
  3. umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  4. umap/locale/fr/LC_MESSAGES/django.po +117 -66
  5. umap/locale/pl/LC_MESSAGES/django.mo +0 -0
  6. umap/locale/pl/LC_MESSAGES/django.po +83 -78
  7. umap/locale/pt/LC_MESSAGES/django.mo +0 -0
  8. umap/locale/pt/LC_MESSAGES/django.po +129 -123
  9. umap/management/commands/run_websocket_server.py +23 -0
  10. umap/models.py +6 -1
  11. umap/settings/base.py +11 -3
  12. umap/static/umap/base.css +68 -186
  13. umap/static/umap/content.css +3 -2
  14. umap/static/umap/css/dialog.css +18 -0
  15. umap/static/umap/css/icon.css +8 -0
  16. umap/static/umap/css/importers.css +51 -0
  17. umap/static/umap/css/panel.css +18 -57
  18. umap/static/umap/css/tooltip.css +59 -0
  19. umap/static/umap/css/window.css +35 -0
  20. umap/static/umap/img/16-white.svg +1 -3
  21. umap/static/umap/img/alert-icon-error.svg +8 -0
  22. umap/static/umap/img/alert-icon-info.svg +4 -0
  23. umap/static/umap/img/alert-icon-success.svg +3 -0
  24. umap/static/umap/img/icon-external-link.svg +3 -0
  25. umap/static/umap/img/importers/communesfr.svg +5 -0
  26. umap/static/umap/img/importers/datasets.svg +13 -0
  27. umap/static/umap/img/importers/geodatamine.svg +10 -0
  28. umap/static/umap/img/importers/overpass.svg +7 -0
  29. umap/static/umap/img/importers/random.svg +18 -0
  30. umap/static/umap/img/importers/random1.svg +4 -0
  31. umap/static/umap/img/importers/random2.svg +4 -0
  32. umap/static/umap/img/source/16-white.svg +2 -4
  33. umap/static/umap/js/components/alerts/alert.css +160 -0
  34. umap/static/umap/js/components/alerts/alert.js +169 -0
  35. umap/static/umap/js/components/base.js +54 -0
  36. umap/static/umap/js/modules/autocomplete.js +347 -0
  37. umap/static/umap/js/modules/browser.js +14 -21
  38. umap/static/umap/js/modules/caption.js +119 -0
  39. umap/static/umap/js/modules/global.js +37 -11
  40. umap/static/umap/js/modules/help.js +255 -0
  41. umap/static/umap/js/modules/importer.js +308 -0
  42. umap/static/umap/js/modules/importers/communesfr.js +44 -0
  43. umap/static/umap/js/modules/importers/datasets.js +42 -0
  44. umap/static/umap/js/modules/importers/geodatamine.js +95 -0
  45. umap/static/umap/js/modules/importers/overpass.js +84 -0
  46. umap/static/umap/js/modules/request.js +12 -14
  47. umap/static/umap/js/modules/rules.js +241 -0
  48. umap/static/umap/js/modules/schema.js +63 -14
  49. umap/static/umap/js/modules/sync/engine.js +93 -0
  50. umap/static/umap/js/modules/sync/updaters.js +109 -0
  51. umap/static/umap/js/modules/sync/websocket.js +25 -0
  52. umap/static/umap/js/modules/ui/dialog.js +52 -0
  53. umap/static/umap/js/modules/{panel.js → ui/panel.js} +37 -20
  54. umap/static/umap/js/modules/ui/tooltip.js +116 -0
  55. umap/static/umap/js/modules/utils.js +25 -18
  56. umap/static/umap/js/umap.controls.js +37 -112
  57. umap/static/umap/js/umap.core.js +1 -327
  58. umap/static/umap/js/umap.features.js +77 -29
  59. umap/static/umap/js/umap.forms.js +17 -19
  60. umap/static/umap/js/umap.js +265 -228
  61. umap/static/umap/js/umap.layer.js +154 -76
  62. umap/static/umap/js/umap.permissions.js +5 -9
  63. umap/static/umap/js/umap.popup.js +2 -1
  64. umap/static/umap/js/umap.tableeditor.js +8 -8
  65. umap/static/umap/locale/am_ET.js +51 -16
  66. umap/static/umap/locale/am_ET.json +51 -16
  67. umap/static/umap/locale/ar.js +51 -16
  68. umap/static/umap/locale/ar.json +51 -16
  69. umap/static/umap/locale/ast.js +51 -16
  70. umap/static/umap/locale/ast.json +51 -16
  71. umap/static/umap/locale/bg.js +51 -16
  72. umap/static/umap/locale/bg.json +51 -16
  73. umap/static/umap/locale/br.js +55 -20
  74. umap/static/umap/locale/br.json +55 -20
  75. umap/static/umap/locale/ca.js +51 -16
  76. umap/static/umap/locale/ca.json +51 -16
  77. umap/static/umap/locale/cs_CZ.js +93 -58
  78. umap/static/umap/locale/cs_CZ.json +93 -58
  79. umap/static/umap/locale/da.js +51 -16
  80. umap/static/umap/locale/da.json +51 -16
  81. umap/static/umap/locale/de.js +56 -21
  82. umap/static/umap/locale/de.json +56 -21
  83. umap/static/umap/locale/el.js +51 -16
  84. umap/static/umap/locale/el.json +51 -16
  85. umap/static/umap/locale/en.js +52 -16
  86. umap/static/umap/locale/en.json +52 -16
  87. umap/static/umap/locale/en_US.json +51 -16
  88. umap/static/umap/locale/es.js +51 -16
  89. umap/static/umap/locale/es.json +51 -16
  90. umap/static/umap/locale/et.js +51 -16
  91. umap/static/umap/locale/et.json +51 -16
  92. umap/static/umap/locale/eu.js +51 -16
  93. umap/static/umap/locale/eu.json +51 -16
  94. umap/static/umap/locale/fa_IR.js +51 -16
  95. umap/static/umap/locale/fa_IR.json +51 -16
  96. umap/static/umap/locale/fi.js +51 -16
  97. umap/static/umap/locale/fi.json +51 -16
  98. umap/static/umap/locale/fr.js +61 -25
  99. umap/static/umap/locale/fr.json +61 -25
  100. umap/static/umap/locale/gl.js +51 -16
  101. umap/static/umap/locale/gl.json +51 -16
  102. umap/static/umap/locale/he.js +51 -16
  103. umap/static/umap/locale/he.json +51 -16
  104. umap/static/umap/locale/hr.js +51 -16
  105. umap/static/umap/locale/hr.json +51 -16
  106. umap/static/umap/locale/hu.js +51 -16
  107. umap/static/umap/locale/hu.json +51 -16
  108. umap/static/umap/locale/id.js +51 -16
  109. umap/static/umap/locale/id.json +51 -16
  110. umap/static/umap/locale/is.js +51 -16
  111. umap/static/umap/locale/is.json +51 -16
  112. umap/static/umap/locale/it.js +51 -16
  113. umap/static/umap/locale/it.json +51 -16
  114. umap/static/umap/locale/ja.js +51 -16
  115. umap/static/umap/locale/ja.json +51 -16
  116. umap/static/umap/locale/ko.js +51 -16
  117. umap/static/umap/locale/ko.json +51 -16
  118. umap/static/umap/locale/lt.js +51 -16
  119. umap/static/umap/locale/lt.json +51 -16
  120. umap/static/umap/locale/ms.js +51 -16
  121. umap/static/umap/locale/ms.json +51 -16
  122. umap/static/umap/locale/nl.js +51 -16
  123. umap/static/umap/locale/nl.json +51 -16
  124. umap/static/umap/locale/no.js +51 -16
  125. umap/static/umap/locale/no.json +51 -16
  126. umap/static/umap/locale/pl.js +93 -58
  127. umap/static/umap/locale/pl.json +93 -58
  128. umap/static/umap/locale/pl_PL.json +51 -16
  129. umap/static/umap/locale/pt.js +215 -180
  130. umap/static/umap/locale/pt.json +215 -180
  131. umap/static/umap/locale/pt_BR.js +51 -16
  132. umap/static/umap/locale/pt_BR.json +51 -16
  133. umap/static/umap/locale/pt_PT.js +51 -16
  134. umap/static/umap/locale/pt_PT.json +51 -16
  135. umap/static/umap/locale/ro.js +51 -16
  136. umap/static/umap/locale/ro.json +51 -16
  137. umap/static/umap/locale/ru.js +51 -16
  138. umap/static/umap/locale/ru.json +51 -16
  139. umap/static/umap/locale/si.js +51 -16
  140. umap/static/umap/locale/si.json +51 -16
  141. umap/static/umap/locale/sk_SK.js +51 -16
  142. umap/static/umap/locale/sk_SK.json +51 -16
  143. umap/static/umap/locale/sl.js +51 -16
  144. umap/static/umap/locale/sl.json +51 -16
  145. umap/static/umap/locale/sr.js +51 -16
  146. umap/static/umap/locale/sr.json +51 -16
  147. umap/static/umap/locale/sv.js +51 -16
  148. umap/static/umap/locale/sv.json +51 -16
  149. umap/static/umap/locale/th_TH.js +51 -16
  150. umap/static/umap/locale/th_TH.json +51 -16
  151. umap/static/umap/locale/tr.js +51 -16
  152. umap/static/umap/locale/tr.json +51 -16
  153. umap/static/umap/locale/uk_UA.js +51 -16
  154. umap/static/umap/locale/uk_UA.json +51 -16
  155. umap/static/umap/locale/vi.js +51 -16
  156. umap/static/umap/locale/vi.json +51 -16
  157. umap/static/umap/locale/vi_VN.json +51 -16
  158. umap/static/umap/locale/zh.js +51 -16
  159. umap/static/umap/locale/zh.json +51 -16
  160. umap/static/umap/locale/zh_CN.json +51 -16
  161. umap/static/umap/locale/zh_TW.Big5.json +51 -16
  162. umap/static/umap/locale/zh_TW.js +51 -16
  163. umap/static/umap/locale/zh_TW.json +51 -16
  164. umap/static/umap/map.css +40 -53
  165. umap/static/umap/unittests/sync.js +105 -0
  166. umap/static/umap/unittests/utils.js +78 -36
  167. umap/static/umap/vars.css +19 -1
  168. umap/static/umap/vendors/dompurify/purify.es.js +50 -15
  169. umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
  170. umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +2 -2
  171. umap/templates/umap/components/alerts/alert.html +89 -0
  172. umap/templates/umap/content.html +4 -3
  173. umap/templates/umap/css.html +4 -0
  174. umap/templates/umap/home.html +3 -0
  175. umap/templates/umap/js.html +0 -3
  176. umap/templates/umap/map_init.html +2 -8
  177. umap/templates/umap/messages.html +9 -11
  178. umap/templates/umap/search.html +3 -0
  179. umap/tests/base.py +3 -0
  180. umap/tests/integration/conftest.py +30 -0
  181. umap/tests/integration/test_anonymous_owned_map.py +8 -13
  182. umap/tests/integration/test_browser.py +81 -6
  183. umap/tests/integration/test_caption.py +27 -0
  184. umap/tests/integration/test_conditional_rules.py +201 -0
  185. umap/tests/integration/test_dashboard.py +1 -1
  186. umap/tests/integration/test_datalayer.py +2 -3
  187. umap/tests/integration/test_edit_datalayer.py +32 -3
  188. umap/tests/integration/test_edit_map.py +1 -1
  189. umap/tests/integration/test_facets_browser.py +7 -4
  190. umap/tests/integration/test_import.py +185 -49
  191. umap/tests/integration/test_map.py +31 -17
  192. umap/tests/integration/{test_collaborative_editing.py → test_optimistic_merge.py} +7 -7
  193. umap/tests/integration/test_owned_map.py +1 -1
  194. umap/tests/integration/test_picto.py +2 -2
  195. umap/tests/integration/test_statics.py +1 -1
  196. umap/tests/integration/test_view_marker.py +19 -2
  197. umap/tests/integration/test_websocket_sync.py +283 -0
  198. umap/tests/settings.py +5 -0
  199. umap/tests/test_datalayer_views.py +0 -1
  200. umap/tests/test_views.py +53 -0
  201. umap/urls.py +5 -0
  202. umap/views.py +40 -11
  203. umap/websocket_server.py +92 -0
  204. {umap_project-2.3.0.dist-info → umap_project-2.4.0.dist-info}/METADATA +13 -11
  205. {umap_project-2.3.0.dist-info → umap_project-2.4.0.dist-info}/RECORD +208 -172
  206. umap/static/umap/js/umap.autocomplete.js +0 -341
  207. umap/static/umap/js/umap.importer.js +0 -187
  208. umap/static/umap/js/umap.ui.js +0 -190
  209. {umap_project-2.3.0.dist-info → umap_project-2.4.0.dist-info}/WHEEL +0 -0
  210. {umap_project-2.3.0.dist-info → umap_project-2.4.0.dist-info}/entry_points.txt +0 -0
  211. {umap_project-2.3.0.dist-info → umap_project-2.4.0.dist-info}/licenses/LICENSE +0 -0
umap/static/umap/base.css CHANGED
@@ -60,6 +60,27 @@ kbd {
60
60
  display: inline-block;
61
61
  white-space: nowrap;
62
62
  }
63
+ h3 {
64
+ font-size: 1rem;
65
+ }
66
+ h4 {
67
+ font-size: 0.9rem;
68
+ }
69
+ h5 {
70
+ font-size: 0.8rem;
71
+ }
72
+ h6 {
73
+ font-size: 0.7rem;
74
+ }
75
+ hgroup > * {
76
+ margin-bottom: 0;
77
+ }
78
+ hgroup {
79
+ margin-bottom: var(--box-margin);
80
+ }
81
+ hgroup > :not(:first-child):last-child {
82
+ font-weight: normal;
83
+ }
63
84
 
64
85
  /*
65
86
  * List
@@ -69,6 +90,9 @@ ul {
69
90
  list-style-position:inside;
70
91
  list-style-type:none;
71
92
  }
93
+ dt {
94
+ font-weight: bold;
95
+ }
72
96
 
73
97
  /* ************************************************* */
74
98
  /* *********************** GRID ******************** */
@@ -129,14 +153,20 @@ ul {
129
153
  margin-right: auto;
130
154
  float: none;
131
155
  }
132
-
156
+ .grid-container {
157
+ display: grid;
158
+ grid-template-columns: repeat(3, minmax(0, 1fr));
159
+ }
160
+ .grid-container > * {
161
+ text-align: center;
162
+ }
133
163
 
134
164
  /* *********** */
135
165
  /* forms */
136
166
  /* *********** */
137
167
  input[type="text"], input[type="password"], input[type="date"],
138
168
  input[type="datetime-local"], input[type="email"], input[type="number"],
139
- input[type="search"], input[type="tel"], input[type="time"],
169
+ input[type="search"], input[type="tel"], input[type="time"], input[type="file"],
140
170
  input[type="url"], textarea {
141
171
  background-color: white;
142
172
  border: 1px solid #CCCCCC;
@@ -145,9 +175,8 @@ input[type="url"], textarea {
145
175
  color: rgba(0, 0, 0, 0.75);
146
176
  display: block;
147
177
  font-family: inherit;
148
- font-size: 14px;
149
- height: 32px;
150
- margin: 0 0 14px;
178
+ margin: 0;
179
+ margin-bottom: var(--box-margin);
151
180
  padding: 7px;
152
181
  width: 100%;
153
182
  }
@@ -156,8 +185,11 @@ input[type="range"] {
156
185
  margin-bottom: 5px;
157
186
  width: 100%;
158
187
  }
188
+ input[type="radio"] {
189
+ margin-right: var(--text-margin);
190
+ }
159
191
  input[type="checkbox"] {
160
- margin: 0 5px;
192
+ margin: 0 var(--text-margin);
161
193
  vertical-align: middle;
162
194
  appearance: none;
163
195
  }
@@ -169,35 +201,12 @@ input[type="checkbox"]:after {
169
201
  border: 1px solid var(--color-lightGray);
170
202
  cursor: pointer;
171
203
  text-align: center;
172
- font-size: 1.3rem;
173
- line-height: 1rem;
204
+ font-size: 1rem;
205
+ line-height: 0.8rem;
174
206
  }
175
207
  input[type=checkbox]:checked:after {
176
208
  background-color: var(--color-lightCyan);
177
209
  content: '✓';
178
- }
179
- label input[type="radio"] {
180
- appearance: none;
181
- margin-right: 10px;
182
- }
183
- input[type="radio"]:after {
184
- display: inline-block;
185
- content: ' ';
186
- width: 12px;
187
- height: 12px;
188
- border-radius: 50%;
189
- border: 1px solid var(--color-lightGray);
190
- cursor: pointer;
191
- text-align: center;
192
- font-size: 1.3rem;
193
- line-height: 1rem;
194
- vertical-align: bottom;
195
- }
196
- label input[type="radio"]:checked:after {
197
- background-color: var(--color-lightCyan);
198
- content: '•';
199
- font-size: 3rem;
200
- line-height: 1.1rem;
201
210
  color: var(--color-darkGray);
202
211
  }
203
212
 
@@ -217,6 +226,7 @@ select {
217
226
  height: 28px;
218
227
  line-height: 28px;
219
228
  margin-top: 5px;
229
+ margin-bottom: var(--box-margin);
220
230
  }
221
231
  .dark select {
222
232
  color: #efefef;
@@ -266,6 +276,11 @@ button.flat,
266
276
  min-height: inherit;
267
277
  width: initial;
268
278
  display: initial;
279
+ line-height: inherit;
280
+ }
281
+ button.flat:hover,
282
+ [type="button"].flat:hover,
283
+ .dark [type="button"].flat:hover {
269
284
  text-decoration: underline;
270
285
  }
271
286
  .help-text, .helptext {
@@ -286,7 +301,6 @@ input + .help-text {
286
301
  }
287
302
  .formbox {
288
303
  min-height: 36px;
289
- line-height: 28px;
290
304
  margin-bottom: 14px;
291
305
  }
292
306
  .formbox.with-switch {
@@ -295,12 +309,19 @@ input + .help-text {
295
309
  .formbox select {
296
310
  width: calc(100% - 14px);
297
311
  }
312
+ fieldset.formbox {
313
+ border: none;
314
+ border-top: 1px solid var(--color-lightGray);
315
+ }
298
316
  label {
299
317
  display: block;
300
318
  font-size: 12px;
301
319
  line-height: 21px;
302
320
  width: 100%;
303
321
  }
322
+ label + label {
323
+ margin-top: var(--box-margin);
324
+ }
304
325
  .content label {
305
326
  font-weight: bold;
306
327
  }
@@ -361,7 +382,7 @@ details summary {
361
382
  border: 1px solid var(--color-darkGray);
362
383
  }
363
384
  fieldset legend {
364
- font-size: 1.1rem;
385
+ font-size: .9rem;
365
386
  padding: 0 5px;
366
387
  }
367
388
 
@@ -384,6 +405,9 @@ fieldset legend {
384
405
  border-radius: 50%;
385
406
  content: attr(data-badge);
386
407
  }
408
+ [hidden] {
409
+ display: none!important;
410
+ }
387
411
 
388
412
  /* Switch */
389
413
  input.switch:empty {
@@ -449,9 +473,10 @@ input.switch:checked ~ label:before {
449
473
  text-indent: 0.7em;
450
474
  text-align: left;
451
475
  font-weight: bold;
476
+ }
452
477
  .dark input.switch:checked ~ label:before {
453
478
  border: none;
454
- }
479
+ background-color: var(--color-accent);
455
480
  }
456
481
  input.switch:checked ~ label:after {
457
482
  margin-left: 3em;
@@ -465,13 +490,17 @@ input.switch:checked ~ label:after {
465
490
  .button-bar {
466
491
  grid-gap: 7px;
467
492
  }
493
+ .umap-multiplechoice.by2,
468
494
  .button-bar.half {
469
495
  grid-template-columns: 1fr 1fr;
470
496
  }
497
+ .button-bar.by3,
498
+ .button-bar.by5,
471
499
  .umap-multiplechoice.by3,
472
500
  .umap-multiplechoice.by5 {
473
501
  grid-template-columns: 1fr 1fr 1fr;
474
502
  }
503
+ .button-bar.by4,
475
504
  .umap-multiplechoice.by4 {
476
505
  grid-template-columns: 1fr 1fr 1fr 1fr;
477
506
  }
@@ -497,7 +526,7 @@ input.switch:checked ~ label:after {
497
526
  background-color: #2c3233;
498
527
  }
499
528
  .umap-multiplechoice input[type='radio']:checked + label {
500
- background-color: var(--color-lightCyan);
529
+ background-color: var(--color-accent);
501
530
  box-shadow: inset 0 0 6px 0px #2c3233;
502
531
  color: var(--color-darkGray);
503
532
  }
@@ -755,149 +784,14 @@ input[type=hidden].blur + [type="button"] {
755
784
 
756
785
 
757
786
  /* *********** */
758
- /* Alerts */
759
- /* *********** */
760
- #umap-alert-container {
761
- min-height: 46px;
762
- line-height: 46px;
763
- padding-left: 10px;
764
- width: calc(100% - 500px);
765
- position: absolute;
766
- top: -46px;
767
- left: 250px; /* Keep save/cancel button accessible. */
768
- right: 250px;
769
- box-shadow: 0 1px 7px #999999;
770
- visibility: hidden;
771
- background: none repeat scroll 0 0 rgba(20, 22, 23, 0.8);
772
- font-weight: bold;
773
- color: #fff;
774
- font-size: 0.8em;
775
- z-index: 1012;
776
- border-radius: 2px;
777
- }
778
- #umap-alert-container.error {
779
- background-color: #c60f13;
780
- }
781
- .umap-alert #umap-alert-container {
782
- visibility: visible;
783
- top: 23px;
784
- }
785
- .umap-alert-container .umap-action {
786
- margin-left: 10px;
787
- background-color: #fff;
788
- color: #000;
789
- padding: 5px;
790
- border-radius: 4px;
791
- }
792
- .umap-alert-container .umap-action:hover {
793
- color: #000;
794
- }
795
- .umap-alert-container .error .umap-action {
796
- background-color: #666;
797
- color: #eee;
798
- }
799
- .umap-alert-container .error .umap-action:hover {
800
- color: #fff;
801
- }
802
- .umap-alert-container input {
803
- padding: 5px;
804
- border-radius: 4px;
805
- width: 100%;
806
- }
807
-
808
- /* *********** */
809
- /* Tooltip */
787
+ /* Various */
810
788
  /* *********** */
811
- #umap-tooltip-container {
812
- line-height: 20px;
813
- padding: 5px 10px;
814
- width: auto;
815
- position: absolute;
816
- box-shadow: 0 1px 7px #999999;
817
- display: none;
818
- background-color: rgba(40, 40, 40, 0.8);
819
- color: #eeeeec;
820
- font-size: 0.8em;
821
- border-radius: 2px;
822
- z-index: 1011;
823
- font-weight: normal;
824
- max-width: 300px;
825
- }
826
- .umap-tooltip #umap-tooltip-container {
827
- display: block;
828
- }
829
- #umap-tooltip-container.tooltip-top:after {
830
- top: 100%;
831
- left: calc(50% - 11px);
832
- border: solid transparent;
833
- content: " ";
834
- height: 0;
835
- width: 0;
836
- position: absolute;
837
- pointer-events: none;
838
- border-top-color: rgba(30, 30, 30, 0.8);
839
- border-width: 11px;
840
- margin-left: calc(-50% + 21px);
841
- }
842
- #umap-tooltip-container.tooltip-bottom:before {
843
- top: -22px;
844
- left: calc(50% - 11px);
845
- border: solid transparent;
846
- content: " ";
847
- height: 0;
848
- width: 0;
849
- position: absolute;
850
- pointer-events: none;
851
- border-top-color: rgba(30, 30, 30, 0.7);
852
- border-width: 11px;
853
- transform: rotate(180deg);
854
- }
855
- #umap-tooltip-container.tooltip.tooltip-left:after {
856
- left: 100%;
857
- top: 50%;
858
- border: solid transparent;
859
- content: " ";
860
- height: 0;
861
- width: 0;
862
- position: absolute;
863
- pointer-events: none;
864
- border-color: rgba(136, 183, 213, 0);
865
- border-left-color: #333;
866
- border-width: 11px;
867
- margin-top: -10px;
868
- }
869
789
 
870
-
871
-
872
- /* *********** */
873
- /* Close link */
874
- /* *********** */
875
- #umap-alert-container .umap-close-link {
876
- color: #fff;
877
- float: right;
878
- padding-right: 10px;
879
- width: 100px;
880
- line-height: 1;
881
- margin: .5rem;
882
- background-color: #202425;
883
- font-size: .7rem;
884
- }
885
- #umap-alert-container .umap-close-icon {
886
- background-position: -74px -55px;
887
- }
888
- #umap-alert-container .umap-alert-actions {
889
- display: flex;
890
- margin: 1rem;
891
- }
892
- #umap-alert-container .umap-alert-actions .umap-action {
893
- margin-bottom: 0;
790
+ .text {
791
+ word-break: break-word;
792
+ white-space: pre-line;
894
793
  }
895
794
 
896
-
897
- /* *********** */
898
- /* Various */
899
- /* *********** */
900
-
901
795
  .umap-dragover:before {
902
796
  content: ' ';
903
797
  background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="arcs">%3Cpath d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"/>%3C/svg>');
@@ -911,15 +805,3 @@ input[type=hidden].blur + [type="button"] {
911
805
  height: 100vh;
912
806
  opacity: 0.5;
913
807
  }
914
-
915
-
916
- /* *********** */
917
- /* Mobile */
918
- /* *********** */
919
- @media all and (orientation:portrait) {
920
- #umap-alert-container {
921
- width: 100%;
922
- left: 0;
923
- right: 0;
924
- }
925
- }
@@ -248,7 +248,7 @@ input[type="submit"],
248
248
  ul.umap-autocomplete {
249
249
  position: absolute;
250
250
  background-color: white;
251
- z-index: 1010;
251
+ z-index: 10100;
252
252
  box-shadow: 0 4px 9px #999999;
253
253
  }
254
254
  .umap-autocomplete li {
@@ -262,6 +262,7 @@ ul.umap-autocomplete {
262
262
  }
263
263
  .umap-singleresult {
264
264
  margin-bottom: 10px;
265
+ clear: both;
265
266
  }
266
267
  .umap-singleresult div,
267
268
  .umap-multiresult li {
@@ -300,7 +301,7 @@ ul.umap-autocomplete {
300
301
  }
301
302
 
302
303
  .messages .error {
303
- background-color: #c60f13;
304
+ background-color: var(--color-red);
304
305
  }
305
306
 
306
307
 
@@ -0,0 +1,18 @@
1
+ .umap-dialog {
2
+ z-index: 10001;
3
+ margin: auto;
4
+ margin-top: 100px;
5
+ width: 40vw;
6
+ max-width: 100vw;
7
+ max-height: 50vh;
8
+ padding: 20px;
9
+ border: 1px solid #222;
10
+ background-color: var(--background-color);
11
+ color: var(--text-color);
12
+ border-radius: 5px;
13
+ overflow-y: auto;
14
+ }
15
+ .umap-dialog .umap-close-link {
16
+ float: right;
17
+ width: 100px;
18
+ }
@@ -16,6 +16,14 @@
16
16
  .icon + span {
17
17
  margin-left: 10px;
18
18
  }
19
+ .icon-block {
20
+ display: block;
21
+ float: left;
22
+ margin-right: 10px;
23
+ }
24
+ .icon-block + span {
25
+ margin-left: 0;
26
+ }
19
27
  .dark .icon-16 {
20
28
  background-image: url('../img/16-white.svg');
21
29
  }
@@ -0,0 +1,51 @@
1
+ .importers h3 {
2
+ font-size: 1rem;
3
+ }
4
+ .importers h4 {
5
+ font-size: .9rem;
6
+ }
7
+
8
+ .importers ul [type=button] {
9
+ background: none;
10
+ font-size: 0.75rem;
11
+ border: none;
12
+ width: initial;
13
+ display: inline-block;
14
+ }
15
+ .importer h3:before {
16
+ background-image: url(../img/importers/random.svg);
17
+ background-repeat: no-repeat;
18
+ background-position: center;
19
+ content: '';
20
+ width: 36px;
21
+ height: 36px;
22
+ display: inline-block;
23
+ margin-right: 10px;
24
+ background-size: 100%;
25
+ vertical-align: -10px;
26
+ }
27
+ .importers ul [type=button]:before {
28
+ background-image: url(../img/importers/random.svg);
29
+ background-repeat: no-repeat;
30
+ background-position: center;
31
+ content: '';
32
+ width: 100%;
33
+ height: 50px;
34
+ display: block;
35
+ }
36
+ .importer.geodatamine h3:before,
37
+ .importers ul .geodatamine:before {
38
+ background-image: url(../img/importers/geodatamine.svg);
39
+ }
40
+ .importer.communesfr h3:before,
41
+ .importers ul .communesfr:before {
42
+ background-image: url(../img/importers/communesfr.svg);
43
+ }
44
+ .importer.overpass h3:before,
45
+ .importers ul .overpass:before {
46
+ background-image: url(../img/importers/overpass.svg);
47
+ }
48
+ .importer.datasets h3:before,
49
+ .importers ul .datasets:before {
50
+ background-image: url(../img/importers/datasets.svg);
51
+ }
@@ -7,14 +7,17 @@
7
7
  overflow-x: auto;
8
8
  z-index: 1010;
9
9
  background-color: var(--background-color);
10
+ color: var(--text-color);
10
11
  opacity: 0.98;
11
12
  cursor: initial;
12
13
  border-radius: 5px;
13
14
  border: 1px solid var(--color-lightGray);
15
+ bottom: calc(var(--current-footer-height) + var(--panel-bottom));
16
+ box-sizing: border-box;
17
+ counter-reset: step;
14
18
  }
15
19
  .panel.dark {
16
20
  border: 1px solid #222;
17
- color: #efefef;
18
21
  }
19
22
  .panel.full {
20
23
  width: initial;
@@ -23,18 +26,11 @@
23
26
  }
24
27
  .panel.full.on {
25
28
  visibility: visible;
26
- right: var(--panel-gutter);
29
+ right: calc(var(--panel-gutter) * 2 + var(--control-size));
27
30
  left: var(--panel-gutter);
28
- top: var(--header-height);
29
31
  height: initial;
30
32
  max-height: initial;
31
33
  }
32
- .umap-caption-bar-enabled .panel {
33
- bottom: calc(var(--footer-height) + var(--panel-bottom));
34
- }
35
- .panel {
36
- box-sizing: border-box;
37
- }
38
34
  .panel .umap-popup-content img {
39
35
  /* See https://github.com/Leaflet/Leaflet/commit/61d746818b99d362108545c151a27f09d60960ee#commitcomment-6061847 */
40
36
  max-width: 99% !important;
@@ -46,53 +42,26 @@
46
42
  height: calc(100% - var(--panel-header-height)); /* Minus size of toolbox */
47
43
  padding: var(--panel-gutter);
48
44
  }
49
- .panel .toolbox {
50
- padding: 5px 10px;
51
- overflow: hidden;
52
- display: flex;
53
- flex-direction: row-reverse;
54
- font-size: 10px;
55
- justify-content: flex-start;
56
- gap: 5px;
57
- line-height: 2.2em;
58
- background-color: #fff;
59
- position: sticky;
60
- top: 0;
61
- height: var(--panel-header-height);
62
- }
63
- .panel.dark .toolbox {
64
- background-color: var(--color-darkGray);
65
- }
66
- .panel .toolbox li {
67
- cursor: pointer;
68
- display: inline;
69
- padding: 0 2px;
70
- border: 1px solid #b6b6b3;
71
- border-radius: 2px;
72
- }
73
- .panel.dark .toolbox
74
- .panel.dark .toolbox li {
75
- color: #d3dfeb;
76
- border: 1px solid #202425;
77
- }
78
- .panel .toolbox li:hover {
79
- background-color: #d4d4d2;
45
+ .panel h3 {
46
+ line-height: 120%;
80
47
  }
81
- .panel.dark .toolbox li:hover {
82
- background-color: #353c3e;
48
+ .panel .counter::before {
49
+ counter-increment: step;
50
+ content: counter(step) ". ";
83
51
  }
84
- .panel h3 {
85
- line-height: 3;
52
+ .panel .counter {
53
+ display: block;
54
+ margin-top: var(--panel-gutter);
86
55
  }
87
56
  @media all and (orientation:landscape) {
88
57
  .panel {
89
- top: 0;
58
+ top: var(--current-header-height);
90
59
  margin-top: var(--panel-gutter);
91
60
  width: var(--panel-width);
92
61
  max-width: calc(100% - var(--panel-gutter) * 2 - var(--control-size))
93
62
  }
94
63
  .panel.condensed {
95
- max-height: 500px;
64
+ max-height: calc(min(500px, 100% - var(--current-header-height) - var(--current-footer-height) - var(--panel-gutter) * 2));
96
65
  bottom: initial;
97
66
  }
98
67
  .panel.right {
@@ -109,16 +78,13 @@
109
78
  right: calc(var(--panel-gutter) * 2 + var(--control-size));
110
79
  visibility: visible;
111
80
  }
112
- .umap-edit-enabled .panel {
113
- top: var(--header-height);
114
- }
115
81
  }
116
82
  @media all and (orientation:portrait) {
117
83
  .panel {
118
84
  height: 50%;
119
85
  max-height: 400px;
120
86
  width: 100%;
121
- bottom: 0;
87
+ bottom: var(--current-footer-height);
122
88
  right: -100%;
123
89
  }
124
90
  .panel.left {
@@ -130,16 +96,11 @@
130
96
  visibility: visible;
131
97
  }
132
98
  .panel.expanded {
133
- height: 100%;
134
- max-height: 100%;
99
+ height: calc(100% - var(--current-footer-height));
100
+ max-height: calc(100% - var(--current-footer-height));
135
101
  }
136
102
  .umap-caption-bar-enabled .panel {
137
- bottom: var(--footer-height);
138
103
  border-bottom-left-radius: 0;
139
104
  border-bottom-right-radius: 0;
140
105
  }
141
- .umap-caption-bar-enabled .panel.expanded {
142
- height: calc(100% - var(--footer-height));
143
- max-height: calc(100% - var(--footer-height));
144
- }
145
106
  }
@@ -0,0 +1,59 @@
1
+ #umap-tooltip-container {
2
+ line-height: 20px;
3
+ padding: 5px 10px;
4
+ width: auto;
5
+ position: absolute;
6
+ box-shadow: 0 1px 7px #999999;
7
+ display: none;
8
+ background-color: rgba(40, 40, 40, 0.8);
9
+ color: #eeeeec;
10
+ font-size: 0.8em;
11
+ border-radius: 2px;
12
+ z-index: 1011;
13
+ font-weight: normal;
14
+ max-width: 300px;
15
+ }
16
+ .umap-tooltip #umap-tooltip-container {
17
+ display: block;
18
+ }
19
+ #umap-tooltip-container.tooltip-top:after {
20
+ top: 100%;
21
+ left: calc(50% - 11px);
22
+ border: solid transparent;
23
+ content: " ";
24
+ height: 0;
25
+ width: 0;
26
+ position: absolute;
27
+ pointer-events: none;
28
+ border-top-color: rgba(30, 30, 30, 0.8);
29
+ border-width: 11px;
30
+ margin-left: calc(-50% + 21px);
31
+ }
32
+ #umap-tooltip-container.tooltip-bottom:before {
33
+ top: -22px;
34
+ left: calc(50% - 11px);
35
+ border: solid transparent;
36
+ content: " ";
37
+ height: 0;
38
+ width: 0;
39
+ position: absolute;
40
+ pointer-events: none;
41
+ border-top-color: rgba(30, 30, 30, 0.7);
42
+ border-width: 11px;
43
+ transform: rotate(180deg);
44
+ }
45
+ #umap-tooltip-container.tooltip.tooltip-left:after {
46
+ left: 100%;
47
+ top: 50%;
48
+ border: solid transparent;
49
+ content: " ";
50
+ height: 0;
51
+ width: 0;
52
+ position: absolute;
53
+ pointer-events: none;
54
+ border-color: rgba(136, 183, 213, 0);
55
+ border-left-color: #333;
56
+ border-width: 11px;
57
+ margin-top: -10px;
58
+ }
59
+