umap-project 2.9.2__py3-none-any.whl → 3.0.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.
- umap/__init__.py +1 -1
- umap/context_processors.py +1 -0
- umap/forms.py +1 -2
- umap/locale/de/LC_MESSAGES/django.mo +0 -0
- umap/locale/de/LC_MESSAGES/django.po +218 -96
- umap/locale/en/LC_MESSAGES/django.po +131 -55
- umap/locale/et/LC_MESSAGES/django.mo +0 -0
- umap/locale/et/LC_MESSAGES/django.po +175 -130
- umap/locale/eu/LC_MESSAGES/django.mo +0 -0
- umap/locale/eu/LC_MESSAGES/django.po +117 -72
- umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- umap/locale/fr/LC_MESSAGES/django.po +132 -56
- umap/locale/hu/LC_MESSAGES/django.mo +0 -0
- umap/locale/hu/LC_MESSAGES/django.po +209 -88
- umap/locale/is/LC_MESSAGES/django.mo +0 -0
- umap/locale/is/LC_MESSAGES/django.po +296 -175
- umap/middleware.py +2 -1
- umap/migrations/0027_map_tags.py +23 -0
- umap/models.py +13 -2
- umap/settings/base.py +23 -5
- umap/static/umap/base.css +41 -8
- umap/static/umap/content.css +72 -37
- umap/static/umap/css/bar.css +43 -21
- umap/static/umap/css/dialog.css +4 -1
- umap/static/umap/css/form.css +40 -27
- umap/static/umap/css/icon.css +11 -1
- umap/static/umap/css/importers.css +7 -0
- umap/static/umap/img/16-white.svg +23 -2
- umap/static/umap/img/16.svg +1 -1
- umap/static/umap/img/24.svg +4 -4
- umap/static/umap/img/home.svg +7 -0
- umap/static/umap/img/importers/banfr.svg +1 -0
- umap/static/umap/img/marker.svg +2 -5
- umap/static/umap/img/source/16-white.svg +24 -3
- umap/static/umap/img/source/16.svg +1 -1
- umap/static/umap/img/source/24.svg +5 -5
- umap/static/umap/img/target.svg +1 -0
- umap/static/umap/js/components/alerts/alert.js +0 -1
- umap/static/umap/js/modules/browser.js +4 -4
- umap/static/umap/js/modules/caption.js +1 -1
- umap/static/umap/js/modules/data/features.js +25 -25
- umap/static/umap/js/modules/data/layer.js +91 -97
- umap/static/umap/js/modules/facets.js +9 -5
- umap/static/umap/js/modules/form/builder.js +21 -29
- umap/static/umap/js/modules/form/fields.js +40 -14
- umap/static/umap/js/modules/formatter.js +1 -1
- umap/static/umap/js/modules/global.js +9 -5
- umap/static/umap/js/modules/help.js +18 -5
- umap/static/umap/js/modules/importer.js +5 -2
- umap/static/umap/js/modules/importers/banfr.js +93 -0
- umap/static/umap/js/modules/importers/cadastrefr.js +2 -2
- umap/static/umap/js/modules/importers/communesfr.js +1 -1
- umap/static/umap/js/modules/permissions.js +20 -10
- umap/static/umap/js/modules/rendering/icon.js +15 -2
- umap/static/umap/js/modules/rendering/layers/classified.js +7 -7
- umap/static/umap/js/modules/rendering/layers/cluster.js +2 -2
- umap/static/umap/js/modules/rendering/layers/heat.js +4 -4
- umap/static/umap/js/modules/rendering/map.js +14 -6
- umap/static/umap/js/modules/rendering/popup.js +2 -2
- umap/static/umap/js/modules/rendering/template.js +3 -3
- umap/static/umap/js/modules/rendering/ui.js +17 -11
- umap/static/umap/js/modules/rules.js +13 -16
- umap/static/umap/js/modules/schema.js +23 -1
- umap/static/umap/js/modules/share.js +1 -1
- umap/static/umap/js/modules/slideshow.js +1 -0
- umap/static/umap/js/modules/sync/engine.js +141 -19
- umap/static/umap/js/modules/sync/undo.js +101 -0
- umap/static/umap/js/modules/sync/updaters.js +51 -28
- umap/static/umap/js/modules/tableeditor.js +1 -1
- umap/static/umap/js/modules/ui/bar.js +61 -21
- umap/static/umap/js/modules/ui/tooltip.js +1 -1
- umap/static/umap/js/modules/umap.js +190 -176
- umap/static/umap/js/modules/utils.js +30 -4
- umap/static/umap/js/umap.controls.js +82 -38
- umap/static/umap/locale/am_ET.js +13 -7
- umap/static/umap/locale/am_ET.json +13 -7
- umap/static/umap/locale/ar.js +13 -7
- umap/static/umap/locale/ar.json +13 -7
- umap/static/umap/locale/ast.js +13 -7
- umap/static/umap/locale/ast.json +13 -7
- umap/static/umap/locale/bg.js +13 -7
- umap/static/umap/locale/bg.json +13 -7
- umap/static/umap/locale/br.js +13 -8
- umap/static/umap/locale/br.json +13 -8
- umap/static/umap/locale/ca.js +13 -7
- umap/static/umap/locale/ca.json +13 -7
- umap/static/umap/locale/cs_CZ.js +26 -20
- umap/static/umap/locale/cs_CZ.json +26 -20
- umap/static/umap/locale/da.js +13 -7
- umap/static/umap/locale/da.json +13 -7
- umap/static/umap/locale/de.js +47 -41
- umap/static/umap/locale/de.json +47 -41
- umap/static/umap/locale/el.js +13 -7
- umap/static/umap/locale/el.json +13 -7
- umap/static/umap/locale/en.js +12 -7
- umap/static/umap/locale/en.json +12 -7
- umap/static/umap/locale/en_US.json +13 -7
- umap/static/umap/locale/es.js +19 -13
- umap/static/umap/locale/es.json +19 -13
- umap/static/umap/locale/et.js +13 -7
- umap/static/umap/locale/et.json +13 -7
- umap/static/umap/locale/eu.js +43 -37
- umap/static/umap/locale/eu.json +43 -37
- umap/static/umap/locale/fa_IR.js +13 -7
- umap/static/umap/locale/fa_IR.json +13 -7
- umap/static/umap/locale/fi.js +13 -7
- umap/static/umap/locale/fi.json +13 -7
- umap/static/umap/locale/fr.js +12 -7
- umap/static/umap/locale/fr.json +12 -7
- umap/static/umap/locale/gl.js +19 -13
- umap/static/umap/locale/gl.json +19 -13
- umap/static/umap/locale/he.js +13 -7
- umap/static/umap/locale/he.json +13 -7
- umap/static/umap/locale/hr.js +13 -7
- umap/static/umap/locale/hr.json +13 -7
- umap/static/umap/locale/hu.js +25 -19
- umap/static/umap/locale/hu.json +25 -19
- umap/static/umap/locale/id.js +13 -7
- umap/static/umap/locale/id.json +13 -7
- umap/static/umap/locale/is.js +151 -145
- umap/static/umap/locale/is.json +151 -145
- umap/static/umap/locale/it.js +13 -7
- umap/static/umap/locale/it.json +13 -7
- umap/static/umap/locale/ja.js +13 -7
- umap/static/umap/locale/ja.json +13 -7
- umap/static/umap/locale/ko.js +13 -7
- umap/static/umap/locale/ko.json +13 -7
- umap/static/umap/locale/lt.js +13 -7
- umap/static/umap/locale/lt.json +13 -7
- umap/static/umap/locale/ms.js +13 -7
- umap/static/umap/locale/ms.json +13 -7
- umap/static/umap/locale/nl.js +12 -7
- umap/static/umap/locale/nl.json +12 -7
- umap/static/umap/locale/no.js +13 -7
- umap/static/umap/locale/no.json +13 -7
- umap/static/umap/locale/pl.js +13 -7
- umap/static/umap/locale/pl.json +13 -7
- umap/static/umap/locale/pl_PL.json +13 -7
- umap/static/umap/locale/pt.js +12 -7
- umap/static/umap/locale/pt.json +12 -7
- umap/static/umap/locale/pt_BR.js +13 -7
- umap/static/umap/locale/pt_BR.json +13 -7
- umap/static/umap/locale/pt_PT.js +13 -7
- umap/static/umap/locale/pt_PT.json +13 -7
- umap/static/umap/locale/ro.js +13 -7
- umap/static/umap/locale/ro.json +13 -7
- umap/static/umap/locale/ru.js +13 -7
- umap/static/umap/locale/ru.json +13 -7
- umap/static/umap/locale/sk_SK.js +13 -7
- umap/static/umap/locale/sk_SK.json +13 -7
- umap/static/umap/locale/sl.js +13 -7
- umap/static/umap/locale/sl.json +13 -7
- umap/static/umap/locale/sr.js +13 -7
- umap/static/umap/locale/sr.json +13 -7
- umap/static/umap/locale/sv.js +13 -7
- umap/static/umap/locale/sv.json +13 -7
- umap/static/umap/locale/th_TH.js +13 -7
- umap/static/umap/locale/th_TH.json +13 -7
- umap/static/umap/locale/tr.js +13 -7
- umap/static/umap/locale/tr.json +13 -7
- umap/static/umap/locale/uk_UA.js +13 -7
- umap/static/umap/locale/uk_UA.json +13 -7
- umap/static/umap/locale/vi.js +13 -7
- umap/static/umap/locale/vi.json +13 -7
- umap/static/umap/locale/vi_VN.json +13 -7
- umap/static/umap/locale/zh.js +13 -7
- umap/static/umap/locale/zh.json +13 -7
- umap/static/umap/locale/zh_CN.json +13 -7
- umap/static/umap/locale/zh_TW.Big5.json +13 -7
- umap/static/umap/locale/zh_TW.js +19 -13
- umap/static/umap/locale/zh_TW.json +19 -13
- umap/static/umap/map.css +58 -28
- umap/static/umap/unittests/sync.js +0 -57
- umap/static/umap/unittests/utils.js +47 -0
- umap/static/umap/vars.css +5 -2
- umap/static/umap/vendors/photon/leaflet.photon.js +3 -0
- umap/sync/payloads.py +3 -2
- umap/templates/auth/user_detail.html +1 -1
- umap/templates/auth/user_stars.html +1 -1
- umap/templates/umap/content.html +17 -12
- umap/templates/umap/home.html +7 -5
- umap/templates/umap/map_fragment.html +1 -1
- umap/templates/umap/map_list.html +20 -13
- umap/templates/umap/search.html +7 -3
- umap/templates/umap/search_bar.html +13 -11
- umap/templates/umap/team_detail.html +1 -1
- umap/tests/base.py +2 -1
- umap/tests/fixtures/remote_data.umap +55 -0
- umap/tests/fixtures/test_upload_data_with_iconurl.umap +122 -0
- umap/tests/integration/test_browser.py +1 -3
- umap/tests/integration/test_conditional_rules.py +3 -0
- umap/tests/integration/test_edit_datalayer.py +2 -7
- umap/tests/integration/test_edit_map.py +15 -0
- umap/tests/integration/test_edit_polygon.py +1 -2
- umap/tests/integration/test_import.py +59 -2
- umap/tests/integration/test_optimistic_merge.py +4 -3
- umap/tests/integration/test_owned_map.py +0 -1
- umap/tests/integration/test_save.py +2 -4
- umap/tests/integration/test_undo_redo.py +267 -0
- umap/tests/integration/test_websocket_sync.py +78 -11
- umap/tests/settings.py +1 -3
- umap/tests/test_datalayer_s3.py +1 -0
- umap/tests/test_map_views.py +1 -0
- umap/tests/test_views.py +34 -0
- umap/utils.py +1 -1
- umap/views.py +23 -2
- {umap_project-2.9.2.dist-info → umap_project-3.0.0.dist-info}/METADATA +13 -12
- {umap_project-2.9.2.dist-info → umap_project-3.0.0.dist-info}/RECORD +211 -213
- umap/static/umap/js/modules/saving.js +0 -52
- umap/static/umap/test/.eslintrc +0 -21
- umap/static/umap/test/DataLayer.js +0 -463
- umap/static/umap/test/Feature.js +0 -131
- umap/static/umap/test/Map.js +0 -37
- umap/static/umap/test/Marker.js +0 -126
- umap/static/umap/test/Polygon.js +0 -111
- umap/static/umap/test/Polyline.js +0 -286
- umap/static/umap/test/Util.js +0 -28
- umap/static/umap/test/_pre.js +0 -455
- umap/static/umap/test/index.html +0 -139
- {umap_project-2.9.2.dist-info → umap_project-3.0.0.dist-info}/WHEEL +0 -0
- {umap_project-2.9.2.dist-info → umap_project-3.0.0.dist-info}/entry_points.txt +0 -0
- {umap_project-2.9.2.dist-info → umap_project-3.0.0.dist-info}/licenses/LICENSE +0 -0
umap/middleware.py
CHANGED
|
@@ -34,7 +34,8 @@ def deprecated_auth_backend(get_response):
|
|
|
34
34
|
"Using “%(name)s” to authenticate is deprecated and will be "
|
|
35
35
|
"removed soon. "
|
|
36
36
|
"Please configure another provider below before losing access "
|
|
37
|
-
"to your account and maps."
|
|
37
|
+
"to your account and maps. Then, please logout and login "
|
|
38
|
+
"again with the new provider."
|
|
38
39
|
)
|
|
39
40
|
% {"name": name},
|
|
40
41
|
)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated by Django 5.1.6 on 2025-02-26 16:18
|
|
2
|
+
|
|
3
|
+
import django.contrib.postgres.fields
|
|
4
|
+
from django.db import migrations, models
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
dependencies = [
|
|
9
|
+
("umap", "0026_datalayer_modified_at_datalayer_share_status"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddField(
|
|
14
|
+
model_name="map",
|
|
15
|
+
name="tags",
|
|
16
|
+
field=django.contrib.postgres.fields.ArrayField(
|
|
17
|
+
base_field=models.CharField(max_length=200),
|
|
18
|
+
blank=True,
|
|
19
|
+
default=list,
|
|
20
|
+
size=None,
|
|
21
|
+
),
|
|
22
|
+
),
|
|
23
|
+
]
|
umap/models.py
CHANGED
|
@@ -4,6 +4,7 @@ import uuid
|
|
|
4
4
|
from django.conf import settings
|
|
5
5
|
from django.contrib.auth.models import User
|
|
6
6
|
from django.contrib.gis.db import models
|
|
7
|
+
from django.contrib.postgres.fields import ArrayField
|
|
7
8
|
from django.core.files.base import File
|
|
8
9
|
from django.core.files.storage import storages
|
|
9
10
|
from django.core.signing import Signer
|
|
@@ -236,6 +237,7 @@ class Map(NamedModel):
|
|
|
236
237
|
settings = models.JSONField(
|
|
237
238
|
blank=True, null=True, verbose_name=_("settings"), default=dict
|
|
238
239
|
)
|
|
240
|
+
tags = ArrayField(models.CharField(max_length=200), blank=True, default=list)
|
|
239
241
|
|
|
240
242
|
objects = models.Manager()
|
|
241
243
|
public = PublicManager()
|
|
@@ -296,6 +298,7 @@ class Map(NamedModel):
|
|
|
296
298
|
with datalayer.geojson.open("rb") as f:
|
|
297
299
|
layer = json.loads(f.read())
|
|
298
300
|
if datalayer.settings:
|
|
301
|
+
datalayer.settings.pop("id", None)
|
|
299
302
|
layer["_umap_options"] = datalayer.settings
|
|
300
303
|
datalayers.append(layer)
|
|
301
304
|
umapjson["layers"] = datalayers
|
|
@@ -415,12 +418,17 @@ class Map(NamedModel):
|
|
|
415
418
|
datalayer.clone(map_inst=new)
|
|
416
419
|
return new
|
|
417
420
|
|
|
421
|
+
def get_tags_display(self):
|
|
422
|
+
labels = dict(settings.UMAP_TAGS)
|
|
423
|
+
return [(t, labels.get(t, t)) for t in self.tags]
|
|
424
|
+
|
|
418
425
|
@classproperty
|
|
419
426
|
def extra_schema(self):
|
|
420
427
|
return {
|
|
421
428
|
"iconUrl": {
|
|
422
429
|
"default": "%sumap/img/marker.svg" % settings.STATIC_URL,
|
|
423
|
-
}
|
|
430
|
+
},
|
|
431
|
+
"tags": {"choices": sorted(settings.UMAP_TAGS, key=lambda i: i[0])},
|
|
424
432
|
}
|
|
425
433
|
|
|
426
434
|
|
|
@@ -526,7 +534,10 @@ class DataLayer(NamedModel):
|
|
|
526
534
|
metadata = self.settings
|
|
527
535
|
if not metadata:
|
|
528
536
|
# Fallback to file for old datalayers.
|
|
529
|
-
|
|
537
|
+
try:
|
|
538
|
+
data = json.loads(self.geojson.read().decode())
|
|
539
|
+
except FileNotFoundError:
|
|
540
|
+
data = {}
|
|
530
541
|
metadata = data.get("_umap_options")
|
|
531
542
|
if not metadata:
|
|
532
543
|
metadata = {
|
umap/settings/base.py
CHANGED
|
@@ -6,6 +6,7 @@ from email.utils import parseaddr
|
|
|
6
6
|
|
|
7
7
|
import environ
|
|
8
8
|
from django.conf.locale import LANG_INFO
|
|
9
|
+
from django.utils.translation import gettext_lazy as _
|
|
9
10
|
|
|
10
11
|
import umap as project_module
|
|
11
12
|
|
|
@@ -290,6 +291,25 @@ UMAP_HOME_FEED = "latest"
|
|
|
290
291
|
UMAP_IMPORTERS = {}
|
|
291
292
|
UMAP_HOST_INFOS = {}
|
|
292
293
|
UMAP_LABEL_KEYS = ["name", "title"]
|
|
294
|
+
UMAP_TAGS = (
|
|
295
|
+
("arts", _("Art and Culture")),
|
|
296
|
+
("cycling", _("Cycling")),
|
|
297
|
+
("business", _("Business")),
|
|
298
|
+
("environment", _("Environment")),
|
|
299
|
+
("education", _("Education")),
|
|
300
|
+
("food", _("Food and Agriculture")),
|
|
301
|
+
("geopolitics", _("Geopolitics")),
|
|
302
|
+
("health", _("Health")),
|
|
303
|
+
("hiking", _("Hiking")),
|
|
304
|
+
("history", _("History")),
|
|
305
|
+
("public", _("Public sector")),
|
|
306
|
+
("science", _("Science")),
|
|
307
|
+
("shopping", _("Shopping")),
|
|
308
|
+
("sport", _("Sport and Leisure")),
|
|
309
|
+
("travel", _("Travel")),
|
|
310
|
+
("transports", _("Transports")),
|
|
311
|
+
("tourism", _("Tourism")),
|
|
312
|
+
)
|
|
293
313
|
|
|
294
314
|
UMAP_READONLY = env("UMAP_READONLY", default=False)
|
|
295
315
|
UMAP_GZIP = True
|
|
@@ -340,10 +360,8 @@ LOGGING = {
|
|
|
340
360
|
},
|
|
341
361
|
}
|
|
342
362
|
|
|
343
|
-
#
|
|
363
|
+
# Real-time editing configuration
|
|
344
364
|
|
|
345
|
-
|
|
346
|
-
WEBSOCKET_BACK_HOST = env("WEBSOCKET_BACK_HOST", default="localhost")
|
|
347
|
-
WEBSOCKET_BACK_PORT = env.int("WEBSOCKET_BACK_PORT", default=8001)
|
|
365
|
+
REALTIME_ENABLED = env.bool("REALTIME_ENABLED", default=False)
|
|
348
366
|
|
|
349
|
-
REDIS_URL = "redis://localhost:6379"
|
|
367
|
+
REDIS_URL = env("REDIS_URL", default="redis://localhost:6379")
|
umap/static/umap/base.css
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
body, div, ul, ol, li, a, section, nav,
|
|
5
5
|
h1, h2, h3, h4, h5, h6, label,
|
|
6
|
-
hr, input, textarea {
|
|
7
|
-
-moz-box-sizing:border-box;
|
|
8
|
-
-webkit-box-sizing:border-box;
|
|
6
|
+
hr, input, textarea, select {
|
|
9
7
|
box-sizing: border-box;
|
|
10
8
|
margin: 0;
|
|
11
9
|
padding: 0;
|
|
@@ -19,7 +17,11 @@ h1, h2, h3, h4, h5, h6, label, hr {
|
|
|
19
17
|
}
|
|
20
18
|
a {
|
|
21
19
|
text-decoration: none;
|
|
22
|
-
color:
|
|
20
|
+
color: var(--link-color);
|
|
21
|
+
}
|
|
22
|
+
a.main {
|
|
23
|
+
font-weight: bold;
|
|
24
|
+
text-decoration: underline;
|
|
23
25
|
}
|
|
24
26
|
a[href^="http"]:not(nav.umap-nav a) {
|
|
25
27
|
text-decoration: underline;
|
|
@@ -81,10 +83,12 @@ hgroup > * {
|
|
|
81
83
|
hgroup {
|
|
82
84
|
margin-bottom: var(--box-margin);
|
|
83
85
|
}
|
|
84
|
-
hgroup
|
|
85
|
-
|
|
86
|
+
hgroup p,
|
|
87
|
+
hgroup button {
|
|
88
|
+
margin: 0;
|
|
86
89
|
}
|
|
87
90
|
|
|
91
|
+
|
|
88
92
|
/*
|
|
89
93
|
* List
|
|
90
94
|
*/
|
|
@@ -158,10 +162,23 @@ dt {
|
|
|
158
162
|
}
|
|
159
163
|
.grid-container {
|
|
160
164
|
display: grid;
|
|
161
|
-
grid-
|
|
165
|
+
--grid-layout-gap: calc(var(--gutter) * 2);
|
|
166
|
+
--grid-column-count: 3;
|
|
167
|
+
--grid-item--min-width: 300px;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Calculated values.
|
|
171
|
+
*/
|
|
172
|
+
--gap-count: calc(var(--grid-column-count) - 1);
|
|
173
|
+
--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));
|
|
174
|
+
--grid-item--max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));
|
|
175
|
+
|
|
176
|
+
grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item--min-width), var(--grid-item--max-width)), 1fr));
|
|
177
|
+
grid-gap: var(--grid-layout-gap);
|
|
162
178
|
}
|
|
163
179
|
.grid-container.by4 {
|
|
164
|
-
grid-
|
|
180
|
+
--grid-column-count: 4;
|
|
181
|
+
--grid-item--min-width: 60px;
|
|
165
182
|
}
|
|
166
183
|
.grid-container > * {
|
|
167
184
|
text-align: center;
|
|
@@ -184,6 +201,10 @@ dt {
|
|
|
184
201
|
/* Various */
|
|
185
202
|
/* *********** */
|
|
186
203
|
|
|
204
|
+
.nobr {
|
|
205
|
+
white-space: nowrap;
|
|
206
|
+
}
|
|
207
|
+
|
|
187
208
|
.text {
|
|
188
209
|
word-break: break-word;
|
|
189
210
|
white-space: pre-line;
|
|
@@ -202,3 +223,15 @@ dt {
|
|
|
202
223
|
height: 100vh;
|
|
203
224
|
opacity: 0.5;
|
|
204
225
|
}
|
|
226
|
+
.table-scrollable {
|
|
227
|
+
background-image: linear-gradient(to right, var(--background-color), var(--background-color)),
|
|
228
|
+
linear-gradient(to right, var(--background-color), var(--background-color)),
|
|
229
|
+
linear-gradient(to right, rgba(0, 0, 20, .50), rgba(255, 255, 255, 0)),
|
|
230
|
+
linear-gradient(to left, rgba(0, 0, 20, .50), rgba(255, 255, 255, 0));
|
|
231
|
+
background-position: left center, right center, left center, right center;
|
|
232
|
+
background-repeat: no-repeat;
|
|
233
|
+
background-size: 20px 100%, 20px 100%, 10px 100%, 10px 100%;
|
|
234
|
+
background-attachment: local, local, scroll, scroll;
|
|
235
|
+
display: block;
|
|
236
|
+
overflow-x: auto;
|
|
237
|
+
}
|
umap/static/umap/content.css
CHANGED
|
@@ -16,6 +16,21 @@ input::-webkit-input-placeholder, ::-webkit-input-placeholder {
|
|
|
16
16
|
input:-moz-placeholder, :-moz-placeholder {
|
|
17
17
|
color: #a5a5a5;
|
|
18
18
|
}
|
|
19
|
+
.search-form {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: baseline;
|
|
22
|
+
max-width: 800px;
|
|
23
|
+
margin: 0 auto;
|
|
24
|
+
}
|
|
25
|
+
.search-form select {
|
|
26
|
+
max-width: 200px;
|
|
27
|
+
}
|
|
28
|
+
.search-form input[type=submit] {
|
|
29
|
+
min-width: 200px;
|
|
30
|
+
}
|
|
31
|
+
.flex-break {
|
|
32
|
+
justify-content: center;
|
|
33
|
+
}
|
|
19
34
|
|
|
20
35
|
|
|
21
36
|
/* **************** */
|
|
@@ -56,30 +71,12 @@ body.login header {
|
|
|
56
71
|
.map_fragment {
|
|
57
72
|
width: 100%;
|
|
58
73
|
}
|
|
59
|
-
.
|
|
74
|
+
.map_fragment,
|
|
60
75
|
.demo_map .map_fragment {
|
|
61
|
-
height:
|
|
62
|
-
}
|
|
63
|
-
.map_list .legend {
|
|
64
|
-
padding-top: 7px;
|
|
65
|
-
margin-bottom: 28px;
|
|
66
|
-
text-align: center;
|
|
67
|
-
font-size: 1.2em;
|
|
68
|
-
}
|
|
69
|
-
.map_list .legend a {
|
|
70
|
-
color: #222;
|
|
71
|
-
font-weight: bold;
|
|
72
|
-
}
|
|
73
|
-
.map_list .legend em,
|
|
74
|
-
.map_list .legend em a {
|
|
75
|
-
color: #444;
|
|
76
|
-
font-weight: normal;
|
|
76
|
+
height: var(--map-fragment-height);
|
|
77
77
|
}
|
|
78
|
-
.
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
.map_list .wide + hr {
|
|
82
|
-
display: block;
|
|
78
|
+
.grid-container hgroup {
|
|
79
|
+
text-align: left;
|
|
83
80
|
}
|
|
84
81
|
.umap-features-list ul {
|
|
85
82
|
margin-top: 14px;
|
|
@@ -164,13 +161,59 @@ h2.tabs a:hover {
|
|
|
164
161
|
color: #efefef;
|
|
165
162
|
text-decoration: underline;
|
|
166
163
|
}
|
|
167
|
-
|
|
164
|
+
.more_button {
|
|
165
|
+
min-height: var(--map-fragment-height);
|
|
166
|
+
}
|
|
167
|
+
.tag-list {
|
|
168
|
+
margin-top: var(--text-margin);
|
|
169
|
+
margin-bottom: var(--text-margin);
|
|
170
|
+
display: flex;
|
|
171
|
+
flex-wrap: wrap;
|
|
172
|
+
gap: calc(var(--gutter) / 2 );
|
|
173
|
+
}
|
|
174
|
+
.tag-list li {
|
|
175
|
+
border: 1px solid var(--color-darkBlue);
|
|
176
|
+
border-radius: 3vmin;
|
|
177
|
+
display: inline-block;
|
|
178
|
+
padding: var(--button-padding-small);
|
|
179
|
+
}
|
|
180
|
+
.tag-list li a {
|
|
181
|
+
color: var(--color-darkBlue);
|
|
182
|
+
max-width: 125px;
|
|
183
|
+
display: inline-block;
|
|
184
|
+
overflow: hidden;
|
|
185
|
+
white-space: nowrap;
|
|
186
|
+
text-overflow: ellipsis;
|
|
187
|
+
vertical-align: middle;
|
|
188
|
+
font-size: small;
|
|
189
|
+
padding: 0 3px;
|
|
190
|
+
}
|
|
191
|
+
.card {
|
|
192
|
+
border: 1px solid var(--color-lightGray);
|
|
193
|
+
border-radius: var(--border-radius);
|
|
194
|
+
padding: var(--box-padding);
|
|
195
|
+
display: flex;
|
|
196
|
+
flex-direction: column;
|
|
197
|
+
}
|
|
198
|
+
.card .button {
|
|
199
|
+
margin-bottom: 0;
|
|
200
|
+
}
|
|
201
|
+
.card hgroup {
|
|
202
|
+
display: flex;
|
|
203
|
+
flex-direction: column;
|
|
204
|
+
justify-content: space-between;
|
|
205
|
+
margin-bottom: 0;
|
|
206
|
+
flex-grow: 1;
|
|
207
|
+
gap: var(--gutter);
|
|
208
|
+
}
|
|
209
|
+
.card h3 {
|
|
210
|
+
margin-bottom: 0;
|
|
211
|
+
}
|
|
168
212
|
|
|
169
213
|
/* **************************** */
|
|
170
214
|
/* colors */
|
|
171
215
|
/* **************************** */
|
|
172
216
|
|
|
173
|
-
input[type="submit"],
|
|
174
217
|
.button {
|
|
175
218
|
background-color: var(--button-primary-background);
|
|
176
219
|
color: var(--button-primary-color);
|
|
@@ -362,22 +405,9 @@ html[dir="rtl"] .content .icon-delete {
|
|
|
362
405
|
align-items: center;
|
|
363
406
|
}
|
|
364
407
|
}
|
|
365
|
-
.table-header form input {
|
|
366
|
-
border: 2px solid var(--color-darkBlue);
|
|
367
|
-
border-radius: 0;
|
|
368
|
-
padding: .5rem 1rem;
|
|
369
|
-
margin-bottom: 0;
|
|
370
|
-
line-height: inherit;
|
|
371
|
-
height: 40px;
|
|
372
|
-
}
|
|
373
408
|
.table-header form input[type="search"] {
|
|
374
409
|
width: 30ch;
|
|
375
410
|
}
|
|
376
|
-
.table-header form input[type="submit"] {
|
|
377
|
-
background-color: var(--color-darkBlue);
|
|
378
|
-
color: white;
|
|
379
|
-
font-weight: bold;
|
|
380
|
-
}
|
|
381
411
|
|
|
382
412
|
.table-header .button-download {
|
|
383
413
|
width: inherit;
|
|
@@ -538,4 +568,9 @@ dialog::backdrop {
|
|
|
538
568
|
.mhide {
|
|
539
569
|
display: none;
|
|
540
570
|
}
|
|
571
|
+
.flex-break {
|
|
572
|
+
flex-direction: column;
|
|
573
|
+
align-items: center;
|
|
574
|
+
}
|
|
575
|
+
|
|
541
576
|
}
|
umap/static/umap/css/bar.css
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
background-color: var(--color-darkGray);
|
|
5
5
|
width: auto;
|
|
6
6
|
margin-bottom: 0;
|
|
7
|
+
min-height: initial;
|
|
7
8
|
}
|
|
8
9
|
.umap-main-edit-toolbox [type=button]:hover {
|
|
9
10
|
text-decoration: underline;
|
|
@@ -13,12 +14,18 @@
|
|
|
13
14
|
padding: 0 var(--text-margin);
|
|
14
15
|
background-color: inherit;
|
|
15
16
|
}
|
|
17
|
+
.leaflet-container .edit-undo {
|
|
18
|
+
margin-left: var(--box-margin);
|
|
19
|
+
}
|
|
20
|
+
.leaflet-container .edit-undo[disabled],
|
|
21
|
+
.leaflet-container .edit-redo[disabled] {
|
|
22
|
+
filter: invert(.5);
|
|
23
|
+
}
|
|
16
24
|
.leaflet-container .edit-save,
|
|
17
|
-
.leaflet-container .edit-cancel,
|
|
18
25
|
.leaflet-container .edit-disable,
|
|
19
26
|
.leaflet-container .connected-peers
|
|
20
27
|
{
|
|
21
|
-
display: block;
|
|
28
|
+
display: inline-block;
|
|
22
29
|
height: 32px;
|
|
23
30
|
line-height: 30px;
|
|
24
31
|
padding: 0 20px;
|
|
@@ -39,7 +46,6 @@
|
|
|
39
46
|
color: var(--color-darkGray);
|
|
40
47
|
}
|
|
41
48
|
|
|
42
|
-
.leaflet-container .edit-cancel:hover,
|
|
43
49
|
.leaflet-container .edit-disable:hover {
|
|
44
50
|
border: 0.5px solid rgba(153, 153, 153, 0.80);
|
|
45
51
|
text-decoration: none;
|
|
@@ -76,19 +82,13 @@
|
|
|
76
82
|
background: rgba(66, 236, 230, 0.10);
|
|
77
83
|
}
|
|
78
84
|
.leaflet-container .edit-save,
|
|
79
|
-
.leaflet-container .edit-cancel,
|
|
80
|
-
.leaflet-container .edit-disable,
|
|
81
85
|
.umap-edit-enabled .edit-enable {
|
|
82
86
|
display: none;
|
|
83
87
|
}
|
|
84
88
|
.umap-edit-enabled .edit-save,
|
|
85
|
-
.umap-edit-enabled .edit-disable
|
|
86
|
-
.umap-edit-enabled.umap-is-dirty .edit-cancel {
|
|
89
|
+
.umap-edit-enabled .edit-disable {
|
|
87
90
|
display: inline-block;
|
|
88
91
|
}
|
|
89
|
-
.umap-is-dirty .edit-disable {
|
|
90
|
-
display: none;
|
|
91
|
-
}
|
|
92
92
|
.umap-caption-bar {
|
|
93
93
|
display: none;
|
|
94
94
|
}
|
|
@@ -115,8 +115,6 @@
|
|
|
115
115
|
.umap-right-edit-toolbox {
|
|
116
116
|
display: flex;
|
|
117
117
|
column-gap: 10px;
|
|
118
|
-
}
|
|
119
|
-
.umap-right-edit-toolbox {
|
|
120
118
|
align-items: center;
|
|
121
119
|
}
|
|
122
120
|
|
|
@@ -135,17 +133,20 @@
|
|
|
135
133
|
text-indent: -9999px;
|
|
136
134
|
}
|
|
137
135
|
.umap-main-edit-toolbox .map-name {
|
|
138
|
-
|
|
136
|
+
font-weight: bold;
|
|
137
|
+
text-align: start;
|
|
138
|
+
}
|
|
139
|
+
.truncate {
|
|
140
|
+
display: inline-flex;
|
|
139
141
|
overflow: hidden;
|
|
140
142
|
white-space: nowrap;
|
|
141
143
|
text-overflow: ellipsis;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
}
|
|
145
|
+
.umap-main-edit-toolbox .username {
|
|
146
|
+
max-width: 100px;
|
|
144
147
|
}
|
|
145
148
|
.umap-main-edit-toolbox .share-status {
|
|
146
149
|
font-style: italic;
|
|
147
|
-
overflow: hidden;
|
|
148
|
-
text-overflow: ellipsis;
|
|
149
150
|
}
|
|
150
151
|
.map-name:after {
|
|
151
152
|
content: '\00a0';
|
|
@@ -163,11 +164,13 @@
|
|
|
163
164
|
.umap-main-edit-toolbox h3 {
|
|
164
165
|
display: inline;
|
|
165
166
|
}
|
|
166
|
-
.umap-caption-bar
|
|
167
|
-
margin-inline-
|
|
167
|
+
.umap-caption-bar .umap-map-author {
|
|
168
|
+
margin-inline-end: 10px;
|
|
168
169
|
}
|
|
169
|
-
.umap-caption-bar button + button:
|
|
170
|
+
.umap-caption-bar > button + button:after,
|
|
171
|
+
.umap-caption-bar > button + button:before {
|
|
170
172
|
content: '|';
|
|
173
|
+
padding-inline-start: 10px;
|
|
171
174
|
padding-inline-end: 10px;
|
|
172
175
|
}
|
|
173
176
|
.umap-main-edit-toolbox .umap-user:hover {
|
|
@@ -196,7 +199,15 @@
|
|
|
196
199
|
z-index: var(--zindex-panels);
|
|
197
200
|
}
|
|
198
201
|
.umap-caption-bar-enabled .umap-caption-bar {
|
|
199
|
-
display:
|
|
202
|
+
display: flex;
|
|
203
|
+
align-items: baseline;
|
|
204
|
+
}
|
|
205
|
+
.umap-caption-bar select {
|
|
206
|
+
margin-top: 0;
|
|
207
|
+
line-height: initial;
|
|
208
|
+
height: initial;
|
|
209
|
+
width: auto;
|
|
210
|
+
padding: 0 var(--text-margin);
|
|
200
211
|
}
|
|
201
212
|
.umap-caption-bar-enabled {
|
|
202
213
|
--current-footer-height: var(--footer-height);
|
|
@@ -233,3 +244,14 @@
|
|
|
233
244
|
padding: 0;
|
|
234
245
|
margin: 0;
|
|
235
246
|
}
|
|
247
|
+
@media all and (max-width: 980px) {
|
|
248
|
+
.umap-main-edit-toolbox button span {
|
|
249
|
+
display: none;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
@media all and (max-width: 770px) {
|
|
253
|
+
.umap-main-edit-toolbox .umap-help-link,
|
|
254
|
+
.umap-main-edit-toolbox .share-status {
|
|
255
|
+
display: none !important;
|
|
256
|
+
}
|
|
257
|
+
}
|
umap/static/umap/css/dialog.css
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
z-index: var(--zindex-dialog);
|
|
3
3
|
margin: auto;
|
|
4
4
|
margin-top: 100px;
|
|
5
|
-
width:
|
|
5
|
+
width: var(--dialog-width);
|
|
6
6
|
max-width: 100vw;
|
|
7
7
|
max-height: 50vh;
|
|
8
8
|
padding: 20px;
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
height: fit-content;
|
|
15
15
|
max-height: 90vh;
|
|
16
16
|
}
|
|
17
|
+
.umap-dialog ul + h4 {
|
|
18
|
+
margin-top: var(--box-margin);
|
|
19
|
+
}
|
|
17
20
|
:where([data-component="no-dialog"]:not([hidden])) {
|
|
18
21
|
display: block;
|
|
19
22
|
position: relative;
|
umap/static/umap/css/form.css
CHANGED
|
@@ -7,16 +7,15 @@ input[type="datetime-local"], input[type="email"], input[type="number"],
|
|
|
7
7
|
input[type="search"], input[type="tel"], input[type="time"], input[type="file"],
|
|
8
8
|
input[type="url"], textarea {
|
|
9
9
|
background-color: white;
|
|
10
|
-
border:
|
|
11
|
-
|
|
12
|
-
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;
|
|
13
|
-
color: rgba(0, 0, 0, 0.75);
|
|
10
|
+
border: 2px solid var(--color-darkBlue);
|
|
11
|
+
color: var(--text-color);
|
|
14
12
|
display: block;
|
|
15
13
|
font-family: inherit;
|
|
16
14
|
margin: 0;
|
|
17
|
-
|
|
18
|
-
padding: 7px;
|
|
15
|
+
padding: .5rem 1rem;
|
|
19
16
|
width: 100%;
|
|
17
|
+
line-height: inherit;
|
|
18
|
+
min-height: 40px;
|
|
20
19
|
}
|
|
21
20
|
input[type="range"] {
|
|
22
21
|
margin-top: 10px;
|
|
@@ -47,11 +46,15 @@ input[type=checkbox]:checked:after {
|
|
|
47
46
|
content: '✓';
|
|
48
47
|
color: var(--color-darkGray);
|
|
49
48
|
}
|
|
50
|
-
|
|
51
49
|
input[data-modified=true] {
|
|
52
50
|
background-color: var(--color-lightCyan);
|
|
53
51
|
border: 1px solid var(--color-darkGray);
|
|
54
52
|
}
|
|
53
|
+
input + select,
|
|
54
|
+
select + input,
|
|
55
|
+
input + input {
|
|
56
|
+
border-left: none;
|
|
57
|
+
}
|
|
55
58
|
textarea {
|
|
56
59
|
height: inherit;
|
|
57
60
|
padding: 7px;
|
|
@@ -59,16 +62,18 @@ textarea {
|
|
|
59
62
|
min-height: 6rlh;
|
|
60
63
|
}
|
|
61
64
|
select {
|
|
62
|
-
border:
|
|
65
|
+
border: 2px solid var(--color-darkBlue);
|
|
63
66
|
width: 100%;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
padding: var(--button-padding);
|
|
68
|
+
background-color: var(--background-color);
|
|
69
|
+
color: var(--text-color);
|
|
70
|
+
min-height: 40px;
|
|
68
71
|
}
|
|
69
72
|
.dark select {
|
|
70
|
-
color:
|
|
71
|
-
background-color:
|
|
73
|
+
color: var(--text-color);
|
|
74
|
+
background-color: var(--color-darkGray);
|
|
75
|
+
border-color: var(--color-dark);
|
|
76
|
+
border-width: 1px;
|
|
72
77
|
}
|
|
73
78
|
select[multiple="multiple"] {
|
|
74
79
|
height: auto;
|
|
@@ -78,16 +83,16 @@ select[multiple="multiple"] {
|
|
|
78
83
|
input[type="submit"] {
|
|
79
84
|
display: flex;
|
|
80
85
|
align-items: center;
|
|
81
|
-
margin-bottom: 14px;
|
|
82
86
|
text-align: center;
|
|
83
|
-
border-radius: 2px;
|
|
84
|
-
font-weight: normal;
|
|
85
87
|
cursor: pointer;
|
|
86
88
|
padding: var(--button-padding);
|
|
87
89
|
border: none;
|
|
88
90
|
text-decoration: none;
|
|
89
|
-
background-color: white;
|
|
90
91
|
justify-content: center;
|
|
92
|
+
background-color: var(--color-darkBlue);
|
|
93
|
+
color: white;
|
|
94
|
+
font-weight: normal;
|
|
95
|
+
min-height: 40px;
|
|
91
96
|
}
|
|
92
97
|
.dark .button,
|
|
93
98
|
.dark [type="button"] {
|
|
@@ -95,6 +100,9 @@ input[type="submit"] {
|
|
|
95
100
|
color: var(--text-color);
|
|
96
101
|
border: 1px solid #1b1f20;
|
|
97
102
|
}
|
|
103
|
+
.button.primary {
|
|
104
|
+
font-weight: bold;
|
|
105
|
+
}
|
|
98
106
|
.dark .button.primary:not([disabled]),
|
|
99
107
|
.dark [type="button"].primary:not([disabled]) {
|
|
100
108
|
background-color: var(--color-brightCyan);
|
|
@@ -163,6 +171,14 @@ input + .help-text {
|
|
|
163
171
|
.formbox.with-switch {
|
|
164
172
|
padding-top: 2px;
|
|
165
173
|
}
|
|
174
|
+
.with-switch {
|
|
175
|
+
overflow: hidden;
|
|
176
|
+
}
|
|
177
|
+
.formbox select,
|
|
178
|
+
.formbox textarea,
|
|
179
|
+
.formbox input {
|
|
180
|
+
margin-bottom: var(--text-margin);
|
|
181
|
+
}
|
|
166
182
|
fieldset.formbox {
|
|
167
183
|
border: none;
|
|
168
184
|
border-top: 1px solid var(--color-lightGray);
|
|
@@ -203,8 +219,9 @@ input[value]:invalid {
|
|
|
203
219
|
background-color: darkred;
|
|
204
220
|
}
|
|
205
221
|
.dark input, .dark textarea {
|
|
206
|
-
background-color:
|
|
207
|
-
border-color:
|
|
222
|
+
background-color: var(--color-darkerGray);
|
|
223
|
+
border-color: var(--color-dark);
|
|
224
|
+
border-width: 1px;
|
|
208
225
|
color: #efefef;
|
|
209
226
|
}
|
|
210
227
|
details {
|
|
@@ -280,9 +297,6 @@ input.switch:empty ~ label {
|
|
|
280
297
|
text-indent: 6em;
|
|
281
298
|
margin: 0.2em 0;
|
|
282
299
|
cursor: pointer;
|
|
283
|
-
-webkit-user-select: none;
|
|
284
|
-
-moz-user-select: none;
|
|
285
|
-
-ms-user-select: none;
|
|
286
300
|
user-select: none;
|
|
287
301
|
text-shadow: 0 1px rgba(0, 0, 0, 0.1);
|
|
288
302
|
width: 80px;
|
|
@@ -487,15 +501,12 @@ i.info {
|
|
|
487
501
|
padding: 0 5px;
|
|
488
502
|
}
|
|
489
503
|
.flat-tabs {
|
|
490
|
-
display:
|
|
504
|
+
display: flex;
|
|
491
505
|
justify-content: space-around;
|
|
492
506
|
font-size: 1.2em;
|
|
493
507
|
margin-bottom: 20px;
|
|
494
508
|
border-bottom: 1px solid #bebebe;
|
|
495
509
|
}
|
|
496
|
-
.flat-tabs:has(.flat) {
|
|
497
|
-
display: flex;
|
|
498
|
-
}
|
|
499
510
|
.flat-tabs button {
|
|
500
511
|
padding: 10px;
|
|
501
512
|
text-decoration: none;
|
|
@@ -534,6 +545,7 @@ i.info {
|
|
|
534
545
|
display: inline-block;
|
|
535
546
|
color: black;
|
|
536
547
|
font-weight: bold;
|
|
548
|
+
overflow: hidden;
|
|
537
549
|
}
|
|
538
550
|
.umap-pictogram-choice img {
|
|
539
551
|
vertical-align: middle;
|
|
@@ -572,6 +584,7 @@ input.blur {
|
|
|
572
584
|
vertical-align: middle;
|
|
573
585
|
border-start-end-radius: 0;
|
|
574
586
|
border-end-end-radius: 0;
|
|
587
|
+
margin-bottom: 0;
|
|
575
588
|
}
|
|
576
589
|
.blur + .button,
|
|
577
590
|
.blur + [type="button"] {
|