umap-project 2.8.2__py3-none-any.whl → 2.9.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/admin.py +15 -2
- umap/asgi.py +12 -7
- umap/context_processors.py +1 -0
- umap/locale/br/LC_MESSAGES/django.mo +0 -0
- umap/locale/br/LC_MESSAGES/django.po +111 -67
- umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- umap/locale/cs_CZ/LC_MESSAGES/django.po +110 -66
- umap/locale/el/LC_MESSAGES/django.mo +0 -0
- umap/locale/el/LC_MESSAGES/django.po +129 -85
- umap/locale/en/LC_MESSAGES/django.po +103 -60
- umap/locale/es/LC_MESSAGES/django.mo +0 -0
- umap/locale/es/LC_MESSAGES/django.po +114 -69
- umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- umap/locale/fr/LC_MESSAGES/django.po +105 -61
- umap/locale/gl/LC_MESSAGES/django.mo +0 -0
- umap/locale/gl/LC_MESSAGES/django.po +216 -171
- umap/locale/it/LC_MESSAGES/django.mo +0 -0
- umap/locale/it/LC_MESSAGES/django.po +142 -98
- umap/locale/nl/LC_MESSAGES/django.mo +0 -0
- umap/locale/nl/LC_MESSAGES/django.po +196 -151
- umap/locale/pt/LC_MESSAGES/django.mo +0 -0
- umap/locale/pt/LC_MESSAGES/django.po +115 -71
- umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- umap/locale/zh_TW/LC_MESSAGES/django.po +109 -65
- umap/management/commands/empty_trash.py +12 -1
- umap/migrations/0026_datalayer_modified_at_datalayer_share_status.py +26 -0
- umap/models.py +43 -13
- umap/settings/base.py +5 -2
- umap/static/umap/base.css +5 -2
- umap/static/umap/content.css +2 -22
- umap/static/umap/css/bar.css +39 -10
- umap/static/umap/css/contextmenu.css +14 -2
- umap/static/umap/css/form.css +33 -39
- umap/static/umap/css/icon.css +47 -5
- umap/static/umap/css/panel.css +20 -2
- umap/static/umap/css/popup.css +0 -1
- umap/static/umap/css/tooltip.css +33 -31
- umap/static/umap/img/16-white.svg +5 -3
- umap/static/umap/img/16.svg +1 -1
- umap/static/umap/img/24-white.svg +17 -16
- umap/static/umap/img/24.svg +29 -18
- umap/static/umap/img/providers/bitbucket.png +0 -0
- umap/static/umap/img/providers/github.png +0 -0
- umap/static/umap/img/providers/keycloak.png +0 -0
- umap/static/umap/img/providers/openstreetmap-oauth2.png +0 -0
- umap/static/umap/img/providers/twitter-oauth2.png +0 -0
- umap/static/umap/img/source/16-white.svg +6 -4
- umap/static/umap/img/source/16.svg +1 -1
- umap/static/umap/img/source/24-white.svg +20 -18
- umap/static/umap/img/source/24.svg +30 -19
- umap/static/umap/js/components/alerts/alert.js +4 -1
- umap/static/umap/js/modules/browser.js +8 -8
- umap/static/umap/js/modules/caption.js +30 -7
- umap/static/umap/js/modules/data/features.js +101 -56
- umap/static/umap/js/modules/data/layer.js +108 -83
- umap/static/umap/js/modules/form/builder.js +242 -0
- umap/static/umap/js/modules/form/fields.js +1346 -0
- umap/static/umap/js/modules/formatter.js +9 -8
- umap/static/umap/js/modules/help.js +20 -24
- umap/static/umap/js/modules/importer.js +6 -3
- umap/static/umap/js/modules/permissions.js +11 -6
- umap/static/umap/js/modules/rendering/icon.js +5 -1
- umap/static/umap/js/modules/rendering/layers/classified.js +12 -8
- umap/static/umap/js/modules/rendering/layers/cluster.js +11 -1
- umap/static/umap/js/modules/rendering/map.js +1 -23
- umap/static/umap/js/modules/rendering/ui.js +20 -38
- umap/static/umap/js/modules/rules.js +3 -2
- umap/static/umap/js/modules/saving.js +5 -0
- umap/static/umap/js/modules/schema.js +8 -6
- umap/static/umap/js/modules/share.js +3 -3
- umap/static/umap/js/modules/sync/engine.js +56 -26
- umap/static/umap/js/modules/sync/updaters.js +15 -6
- umap/static/umap/js/modules/sync/websocket.js +50 -37
- umap/static/umap/js/modules/tableeditor.js +3 -2
- umap/static/umap/js/modules/ui/bar.js +101 -9
- umap/static/umap/js/modules/ui/base.js +7 -24
- umap/static/umap/js/modules/ui/contextmenu.js +9 -2
- umap/static/umap/js/modules/ui/panel.js +5 -1
- umap/static/umap/js/modules/ui/tooltip.js +19 -11
- umap/static/umap/js/modules/umap.js +121 -68
- umap/static/umap/js/modules/utils.js +196 -12
- umap/static/umap/js/umap.controls.js +11 -353
- umap/static/umap/locale/am_ET.js +17 -5
- umap/static/umap/locale/am_ET.json +17 -5
- umap/static/umap/locale/ar.js +17 -5
- umap/static/umap/locale/ar.json +17 -5
- umap/static/umap/locale/ast.js +17 -5
- umap/static/umap/locale/ast.json +17 -5
- umap/static/umap/locale/bg.js +17 -5
- umap/static/umap/locale/bg.json +17 -5
- umap/static/umap/locale/br.js +33 -20
- umap/static/umap/locale/br.json +33 -20
- umap/static/umap/locale/ca.js +17 -5
- umap/static/umap/locale/ca.json +17 -5
- umap/static/umap/locale/cs_CZ.js +15 -5
- umap/static/umap/locale/cs_CZ.json +15 -5
- umap/static/umap/locale/da.js +17 -5
- umap/static/umap/locale/da.json +17 -5
- umap/static/umap/locale/de.js +17 -5
- umap/static/umap/locale/de.json +17 -5
- umap/static/umap/locale/el.js +63 -51
- umap/static/umap/locale/el.json +63 -51
- umap/static/umap/locale/en.js +15 -5
- umap/static/umap/locale/en.json +15 -5
- umap/static/umap/locale/en_US.json +17 -5
- umap/static/umap/locale/es.js +25 -13
- umap/static/umap/locale/es.json +25 -13
- umap/static/umap/locale/et.js +17 -5
- umap/static/umap/locale/et.json +17 -5
- umap/static/umap/locale/eu.js +17 -5
- umap/static/umap/locale/eu.json +17 -5
- umap/static/umap/locale/fa_IR.js +17 -5
- umap/static/umap/locale/fa_IR.json +17 -5
- umap/static/umap/locale/fi.js +17 -5
- umap/static/umap/locale/fi.json +17 -5
- umap/static/umap/locale/fr.js +16 -6
- umap/static/umap/locale/fr.json +16 -6
- umap/static/umap/locale/gl.js +357 -345
- umap/static/umap/locale/gl.json +357 -345
- umap/static/umap/locale/he.js +17 -5
- umap/static/umap/locale/he.json +17 -5
- umap/static/umap/locale/hr.js +17 -5
- umap/static/umap/locale/hr.json +17 -5
- umap/static/umap/locale/hu.js +14 -5
- umap/static/umap/locale/hu.json +14 -5
- umap/static/umap/locale/id.js +17 -5
- umap/static/umap/locale/id.json +17 -5
- umap/static/umap/locale/is.js +17 -5
- umap/static/umap/locale/is.json +17 -5
- umap/static/umap/locale/it.js +125 -113
- umap/static/umap/locale/it.json +125 -113
- umap/static/umap/locale/ja.js +17 -5
- umap/static/umap/locale/ja.json +17 -5
- umap/static/umap/locale/ko.js +17 -5
- umap/static/umap/locale/ko.json +17 -5
- umap/static/umap/locale/lt.js +17 -5
- umap/static/umap/locale/lt.json +17 -5
- umap/static/umap/locale/ms.js +17 -5
- umap/static/umap/locale/ms.json +17 -5
- umap/static/umap/locale/nl.js +132 -119
- umap/static/umap/locale/nl.json +132 -119
- umap/static/umap/locale/no.js +17 -5
- umap/static/umap/locale/no.json +17 -5
- umap/static/umap/locale/pl.js +17 -5
- umap/static/umap/locale/pl.json +17 -5
- umap/static/umap/locale/pl_PL.json +17 -5
- umap/static/umap/locale/pt.js +38 -25
- umap/static/umap/locale/pt.json +38 -25
- umap/static/umap/locale/pt_BR.js +17 -5
- umap/static/umap/locale/pt_BR.json +17 -5
- umap/static/umap/locale/pt_PT.js +17 -5
- umap/static/umap/locale/pt_PT.json +17 -5
- umap/static/umap/locale/ro.js +17 -5
- umap/static/umap/locale/ro.json +17 -5
- umap/static/umap/locale/ru.js +17 -5
- umap/static/umap/locale/ru.json +17 -5
- umap/static/umap/locale/sk_SK.js +17 -5
- umap/static/umap/locale/sk_SK.json +17 -5
- umap/static/umap/locale/sl.js +17 -5
- umap/static/umap/locale/sl.json +17 -5
- umap/static/umap/locale/sr.js +17 -5
- umap/static/umap/locale/sr.json +17 -5
- umap/static/umap/locale/sv.js +17 -5
- umap/static/umap/locale/sv.json +17 -5
- umap/static/umap/locale/th_TH.js +17 -5
- umap/static/umap/locale/th_TH.json +17 -5
- umap/static/umap/locale/tr.js +17 -5
- umap/static/umap/locale/tr.json +17 -5
- umap/static/umap/locale/uk_UA.js +17 -5
- umap/static/umap/locale/uk_UA.json +17 -5
- umap/static/umap/locale/vi.js +17 -5
- umap/static/umap/locale/vi.json +17 -5
- umap/static/umap/locale/vi_VN.json +17 -5
- umap/static/umap/locale/zh.js +17 -5
- umap/static/umap/locale/zh.json +17 -5
- umap/static/umap/locale/zh_CN.json +17 -5
- umap/static/umap/locale/zh_TW.Big5.json +17 -5
- umap/static/umap/locale/zh_TW.js +15 -5
- umap/static/umap/locale/zh_TW.json +15 -5
- umap/static/umap/map.css +29 -76
- umap/static/umap/nav.css +6 -3
- umap/static/umap/unittests/utils.js +14 -0
- umap/static/umap/vars.css +3 -0
- umap/static/umap/vendors/dompurify/purify.es.js +138 -354
- umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
- umap/static/umap/vendors/editable/Leaflet.Editable.js +1 -0
- umap/sync/__init__.py +0 -0
- umap/sync/app.py +187 -0
- umap/sync/payloads.py +56 -0
- umap/templates/auth/user_detail.html +4 -0
- umap/templates/auth/user_form.html +9 -6
- umap/templates/auth/user_stars.html +4 -0
- umap/templates/base.html +1 -1
- umap/templates/registration/login.html +2 -5
- umap/templates/umap/about.html +5 -0
- umap/templates/umap/about_summary.html +2 -2
- umap/templates/umap/components/provider.html +8 -0
- umap/templates/umap/content_footer.html +1 -1
- umap/templates/umap/css.html +0 -2
- umap/templates/umap/js.html +0 -4
- umap/templates/umap/map_detail.html +1 -1
- umap/templates/umap/password_change.html +4 -0
- umap/templates/umap/password_change_done.html +4 -0
- umap/templates/umap/search.html +4 -0
- umap/templates/umap/search_bar.html +1 -0
- umap/templates/umap/team_confirm_delete.html +4 -0
- umap/templates/umap/team_detail.html +4 -0
- umap/templates/umap/team_form.html +4 -0
- umap/templates/umap/user_dashboard.html +1 -1
- umap/templates/umap/user_teams.html +4 -0
- umap/tests/base.py +3 -1
- umap/tests/integration/conftest.py +16 -23
- umap/tests/integration/test_anonymous_owned_map.py +2 -2
- umap/tests/integration/test_basics.py +4 -7
- umap/tests/integration/test_caption.py +1 -0
- umap/tests/integration/test_categorized_layer.py +4 -8
- umap/tests/integration/test_choropleth.py +1 -1
- umap/tests/integration/test_conditional_rules.py +3 -3
- umap/tests/integration/test_draw_polygon.py +14 -22
- umap/tests/integration/test_draw_polyline.py +6 -14
- umap/tests/integration/test_edit_datalayer.py +11 -11
- umap/tests/integration/test_edit_map.py +30 -4
- umap/tests/integration/test_edit_marker.py +5 -5
- umap/tests/integration/test_edit_polygon.py +6 -6
- umap/tests/integration/test_features_id_generation.py +2 -6
- umap/tests/integration/test_import.py +115 -29
- umap/tests/integration/test_optimistic_merge.py +1 -0
- umap/tests/integration/test_owned_map.py +1 -1
- umap/tests/integration/test_picto.py +8 -8
- umap/tests/integration/test_save.py +3 -2
- umap/tests/integration/test_star.py +13 -9
- umap/tests/integration/test_tableeditor.py +8 -7
- umap/tests/integration/test_view_marker.py +10 -0
- umap/tests/integration/test_websocket_sync.py +239 -64
- umap/tests/settings.py +2 -0
- umap/tests/test_datalayer.py +2 -3
- umap/tests/test_datalayer_views.py +20 -1
- umap/tests/test_empty_trash.py +10 -3
- umap/tests/test_map_views.py +11 -0
- umap/utils.py +27 -11
- umap/views.py +37 -6
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/METADATA +22 -22
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/RECORD +247 -248
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/WHEEL +1 -1
- umap/management/commands/run_websocket_server.py +0 -23
- umap/settings/local_s3.py +0 -45
- umap/static/umap/bitbucket.png +0 -0
- umap/static/umap/github.png +0 -0
- umap/static/umap/js/umap.forms.js +0 -1242
- umap/static/umap/keycloak.png +0 -0
- umap/static/umap/openstreetmap.png +0 -0
- umap/static/umap/twitter.png +0 -0
- umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +0 -468
- umap/static/umap/vendors/toolbar/leaflet.toolbar.css +0 -1
- umap/static/umap/vendors/toolbar/leaflet.toolbar.js +0 -1
- umap/tests/test_websocket_server.py +0 -22
- umap/websocket_server.py +0 -202
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/entry_points.txt +0 -0
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
2
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
3
|
|
|
4
|
-
<svg width="
|
|
5
|
-
<sodipodi:namedview id="namedview6239" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:document-units="px" showgrid="true" showguides="true" inkscape:zoom="
|
|
4
|
+
<svg width="288" height="288" viewBox="0 0 76.199999 76.199999" version="1.1" id="svg6237" inkscape:version="1.4 (e7c3feb100, 2024-10-09)" sodipodi:docname="24.svg" inkscape:export-filename="../24.svg" inkscape:export-xdpi="7.52" inkscape:export-ydpi="7.52" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
|
5
|
+
<sodipodi:namedview id="namedview6239" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:document-units="px" showgrid="true" showguides="true" inkscape:zoom="22.223397" inkscape:cx="25.378659" inkscape:cy="18.269034" inkscape:window-width="1920" inkscape:window-height="1011" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer1">
|
|
6
6
|
<inkscape:grid type="xygrid" id="grid6358" empspacing="6" originx="0" originy="0" spacingy="0.26458333" spacingx="0.26458333" units="px" visible="true" />
|
|
7
7
|
<inkscape:grid id="grid1" units="px" originx="0" originy="0" spacingx="9.5249999" spacingy="9.5249999" empcolor="#3f3fff" empopacity="0.25098039" color="#ff0000" opacity="0.83529412" empspacing="0" dotted="false" gridanglex="30" gridanglez="30" visible="true" />
|
|
8
8
|
</sodipodi:namedview>
|
|
@@ -18,31 +18,31 @@
|
|
|
18
18
|
</mask>
|
|
19
19
|
</defs>
|
|
20
20
|
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
|
|
21
|
-
<path style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" d="m
|
|
21
|
+
<path style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" d="m 25.532291,20.902083 -0.529167,0.529167 1.058333,1.058333 0.529167,-0.529167 z m -0.79375,0.79375 -2.910417,2.910417 1.058333,1.058333 2.910417,-2.910417 z m -2.910417,2.910417 -0.79375,1.852083 1.852083,-0.79375 z" id="edit" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccc" class="sprite" />
|
|
22
22
|
<path style="fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.264583" d="m 51.858331,21.16666 v 0.529167 c -0.529167,0 -1.058333,0 -1.322917,0.529166 v 0.264584 h 3.704167 v -0.264584 c -0.264583,-0.529166 -0.79375,-0.529166 -1.322917,-0.529166 v -0.529167 z m -1.322917,1.5875 0.79375,3.704172 h 2.116667 l 0.79375,-3.704172 z" id="delete" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccc" inkscape:label="delete-30" class="sprite" />
|
|
23
23
|
<g id="measure" transform="matrix(0.26458333,0,0,0.26458333,-11.112499,-232.45291)" class="sprite">
|
|
24
24
|
<path sodipodi:nodetypes="ccccccccccccccccccccccccccccc" inkscape:connector-curvature="0" id="rect4452" d="m 47.999998,965.36218 h 3.000002 v 8 h 2 v -8 h 2 v 5 h 1 v -5 h 2 v 5 h 1 v -5 h 2 v 5 h 1 v -5 h 2 v 5 h 1 v -5 h 2 v 8 h 2 v -8 h 3 v 11 h -24 z" style="fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
|
25
25
|
<text id="text4455" y="964.36218" x="49.170559" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none" xml:space="preserve"><tspan style="font-weight:bold;font-size:8px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'Sans Bold';fill:#4d4d4d;fill-opacity:1" y="964.36218" x="49.170559" id="tspan4457" sodipodi:role="line">0</tspan></text>
|
|
26
26
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none" x="65.048965" y="964.36218" id="text4459"><tspan sodipodi:role="line" id="tspan4461" x="65.048965" y="964.36218" style="font-weight:bold;font-size:8px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'Sans Bold';fill:#4d4d4d;fill-opacity:1">1</tspan></text>
|
|
27
27
|
</g>
|
|
28
|
-
<g id="markers" transform="matrix(0.26458333,0,0,0.26458333,
|
|
28
|
+
<g id="markers" transform="matrix(0.26458333,0,0,0.26458333,42.862499,-225.92402)" class="sprite">
|
|
29
29
|
<path sodipodi:nodetypes="sccccsssccs" inkscape:connector-curvature="0" id="rect2985" d="m 105.25387,934.36268 c -3.17753,0 -6.346004,2.1278 -7.25387,6.3794 0,2.551 1.806672,7.6679 7.25387,13.6201 1.46368,-1.5994 2.66945,-3.1177 3.64397,-4.5613 -1.4505,-2.1639 -2.41497,-4.0873 -2.96285,-5.7095 -0.22599,0.041 -0.44225,0.063 -0.68112,0.063 -2.0056,0 -3.64396,-1.5346 -3.64396,-3.413 0,-1.8785 1.63836,-3.3811 3.64396,-3.3811 0.51205,0 0.98854,0.076 1.43034,0.2552 0.64347,-0.9222 1.4345,-1.6571 2.31579,-2.169 -1.14444,-0.7114 -2.44633,-1.0845 -3.74613,-1.0845 z" style="fill:#4d4d4d;fill-opacity:1;stroke:none" />
|
|
30
30
|
<path id="path3378" d="m 111,934.36218 c -3.0625,0 -6.125,2.1277 -7,6.383 0,2.5532 1.75,7.6596 7,13.617 5.25,-5.9574 7,-11.0638 7,-13.617 -0.875,-4.2553 -3.9375,-6.383 -7,-6.383 z m 0,2.9788 c 1.933,0 3.5,1.5241 3.5,3.4042 0,1.8801 -1.567,3.4043 -3.5,3.4043 -1.93299,0 -3.5,-1.5242 -3.5,-3.4043 0,-1.8801 1.56701,-3.4042 3.5,-3.4042 z" style="fill:#4d4d4d;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" />
|
|
31
31
|
</g>
|
|
32
|
-
<path inkscape:connector-curvature="0" style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" d="m
|
|
33
|
-
<path inkscape:connector-curvature="0" d="m
|
|
34
|
-
<path d="m
|
|
35
|
-
<g transform="matrix(0.06466922,0,0,0.06466922,
|
|
32
|
+
<path inkscape:connector-curvature="0" style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" d="m 71.437498,11.178646 c -0.926041,0 -1.852083,0.661458 -2.116666,1.984375 0,0.793749 0.529166,2.381249 2.116666,4.233333 1.5875,-1.852084 2.116667,-3.439584 2.116667,-4.233333 -0.264583,-1.322917 -1.190625,-1.984375 -2.116667,-1.984375 z m 0,0.926041 c 0.584502,0 1.058334,0.473832 1.058334,1.058334 0,0.584501 -0.473832,1.058333 -1.058334,1.058333 -0.584501,0 -1.058333,-0.473832 -1.058333,-1.058333 0,-0.584502 0.473832,-1.058334 1.058333,-1.058334 z" id="marker" class="sprite" />
|
|
33
|
+
<path inkscape:connector-curvature="0" d="m 69.056248,58.737493 v 0.132291 0.79375 0.132292 h 0.132293 0.79375 0.132292 v -0.132292 -0.09095 l 2.645833,1.058334 v 0.355533 0.115756 l -1.876888,2.926953 h -0.636654 -0.132291 v 0.132291 0.79375 0.132292 h 0.132291 0.79375 0.132292 v -0.132292 -0.79375 -0.09922 l 1.876888,-2.943489 h 0.636654 0.132291 v -0.132292 -0.79375 -0.132291 h -0.132291 -0.79375 -0.132292 v 0.132291 0.148828 l -2.645833,-1.058333 v -0.413411 -0.132292 h -0.132292 -0.79375 z m 0.264584,0.264583 h 0.529166 v 0.529167 h -0.529166 z m 3.704166,1.322917 h 0.529167 v 0.529166 h -0.529167 z m -2.645833,3.96875 h 0.529167 v 0.529166 h -0.529167 z" id="polyline" class="sprite" style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.264583" />
|
|
34
|
+
<path d="m 69.320832,39.952089 v 0.132292 0.793751 0.132291 h 0.132292 0.347265 l -0.421679,3.704167 h -0.454753 -0.132292 v 0.132292 0.79375 0.132291 h 0.132292 0.79375 0.132292 v -0.132291 -0.421667 l 2.645833,-0.181901 v 0.338984 0.132292 h 0.132292 0.79375 0.132291 v -0.132292 -0.79375 -0.132292 h -0.132291 -0.305925 l 0.363802,-2.116667 h 0.471289 0.132292 v -0.132291 -0.793751 -0.132291 h -0.132292 -0.79375 -0.132291 v 0.132291 0.214974 l -2.645834,-0.950833 v -0.587057 -0.132292 h -0.132291 -0.79375 z m 0.264583,0.264584 h 0.529167 v 0.529167 h -0.529167 z m 3.704167,1.322916 h 0.529167 v 0.529167 h -0.529167 z m -0.529167,3.175 h 0.529167 v 0.529167 h -0.529167 z m -3.704166,0.264583 c 0.529166,0 0,0 0.529166,0 v 0.529167 h -0.529166 z" id="polygon" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" class="sprite" style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.264583" />
|
|
35
|
+
<g transform="matrix(0.06466922,0,0,0.06466922,11.047119,39.63557)" id="settings" style="fill:#4d4d4d;fill-opacity:1;stroke:none" class="sprite">
|
|
36
36
|
<path inkscape:connector-curvature="0" d="m 98.762,43.652 c -0.186,-1.386 -1.481,-2.582 -2.876,-2.659 l -6.172,-0.337 c -1.395,-0.076 -2.899,-1.224 -3.341,-2.55 l -2.28,-5.518 c -0.629,-1.249 -0.379,-3.121 0.553,-4.161 l 4.122,-4.6 c 0.933,-1.042 0.962,-2.77 0.066,-3.842 l -8.813,-8.813 c -1.073,-0.897 -2.803,-0.867 -3.845,0.065 l -4.598,4.122 c -1.039,0.934 -2.915,1.182 -4.161,0.551 l -5.521,-2.279 c -1.324,-0.442 -2.472,-1.945 -2.549,-3.34 l -0.337,-6.17 c -0.077,-1.396 -1.272,-2.691 -2.659,-2.878 0,0 -3.252,-0.44 -6.248,-0.44 -2.991,0 -6.243,0.44 -6.243,0.44 -1.386,0.188 -2.582,1.483 -2.658,2.878 l -0.338,6.17 c -0.076,1.396 -1.224,2.898 -2.551,3.34 l -5.517,2.279 c -1.249,0.631 -3.122,0.382 -4.161,-0.551 l -4.601,-4.122 c -1.042,-0.932 -2.769,-0.962 -3.842,-0.065 l -8.813,8.813 c -0.897,1.073 -0.867,2.801 0.066,3.842 l 4.122,4.6 c 0.933,1.041 1.182,2.913 0.551,4.161 l -2.279,5.518 c -0.442,1.326 -1.946,2.474 -3.34,2.55 l -6.17,0.337 c -1.396,0.077 -2.691,1.272 -2.879,2.659 0,0 -0.439,3.253 -0.439,6.243 0,2.99 0.44,6.24 0.44,6.24 0.188,1.389 1.483,2.582 2.879,2.659 l 6.169,0.339 c 1.396,0.075 2.898,1.225 3.341,2.549 l 2.278,5.517 c 0.631,1.248 0.381,3.122 -0.551,4.163 l -4.122,4.598 c -0.933,1.042 -0.963,2.771 -0.066,3.845 l 8.814,8.813 c 1.073,0.896 2.801,0.866 3.842,-0.066 l 4.6,-4.122 c 1.041,-0.932 2.913,-1.182 4.161,-0.553 l 5.517,2.28 c 1.327,0.441 2.475,1.946 2.55,3.343 l 0.338,6.168 c 0.076,1.395 1.272,2.692 2.658,2.88 0,0 3.252,0.439 6.244,0.439 2.996,0 6.25,-0.439 6.25,-0.439 1.385,-0.188 2.58,-1.485 2.657,-2.88 l 0.337,-6.168 c 0.077,-1.396 1.225,-2.901 2.551,-3.343 l 5.517,-2.28 c 1.248,-0.629 3.122,-0.379 4.163,0.553 l 4.598,4.122 c 1.042,0.933 2.771,0.964 3.843,0.067 l 8.815,-8.814 c 0.896,-1.073 0.866,-2.803 -0.066,-3.845 l -4.122,-4.598 c -0.932,-1.041 -1.182,-2.915 -0.553,-4.163 l 2.28,-5.517 c 0.441,-1.324 1.946,-2.474 3.341,-2.549 l 6.172,-0.339 c 1.395,-0.077 2.692,-1.271 2.876,-2.659 0,0 0.441,-3.25 0.441,-6.24 0,-2.99 -0.441,-6.243 -0.441,-6.243 z m -48.658,18.709 c -6.886,0 -12.468,-5.585 -12.468,-12.467 0,-6.885 5.582,-12.467 12.468,-12.467 6.89,0 12.475,5.582 12.475,12.467 -10e-4,6.882 -5.586,12.467 -12.475,12.467 z" id="path27812" style="fill:#4d4d4d;fill-opacity:1;stroke:none" />
|
|
37
37
|
</g>
|
|
38
|
-
<path style="fill:#464646;fill-opacity:1;stroke:none;stroke-width:0.264583" d="m
|
|
38
|
+
<path style="fill:#464646;fill-opacity:1;stroke:none;stroke-width:0.264583" d="m 61.912499,39.687506 c -1.753504,0 -3.175,1.421495 -3.175,3.175 0,1.753504 1.421496,3.175 3.175,3.175 1.753505,0 3.175,-1.421496 3.175,-3.175 0,-1.753505 -1.421495,-3.175 -3.175,-3.175 z m 0,1.322916 1.852084,1.852084 h -1.322917 v 1.5875 h -1.058333 v -1.5875 h -1.322917 z" id="import" inkscape:connector-curvature="0" sodipodi:nodetypes="ssssscccccccc" class="sprite" />
|
|
39
39
|
<g id="set-zoom" class="sprite" transform="matrix(0.26458333,0,0,0.26458333,-0.52916667,-227.10832)">
|
|
40
|
-
<polygon points="
|
|
41
|
-
<polygon points="
|
|
40
|
+
<polygon points="9.297,62.644 37.37,62.644 37.37,90.703 28.965,82.305 11.27,100 0,88.737 17.702,71.042 " id="polygon3044" transform="matrix(0.24,0,0,0.24,8,900.36218)" style="fill:#4d4d4d;fill-opacity:1" />
|
|
41
|
+
<polygon points="88.743,0 71.042,17.708 62.644,9.31 62.644,37.357 90.71,37.37 82.298,28.958 100,11.263 " id="polygon3048" transform="matrix(0.24,0,0,0.24,8,900.36218)" style="fill:#4d4d4d;fill-opacity:1" />
|
|
42
42
|
<path inkscape:connector-curvature="0" d="m 20,909.43106 c -1.618801,0 -2.93112,1.31256 -2.93112,2.93112 0,1.62192 1.31256,2.93448 2.93112,2.93448 1.6188,0 2.9328,-1.31256 2.9328,-2.93448 0,-1.6188 -1.314,-2.93112 -2.9328,-2.93112 z" id="path3052" style="fill:#4d4d4d;fill-opacity:1" />
|
|
43
43
|
</g>
|
|
44
|
-
<path d="m
|
|
45
|
-
<polygon points="43.75,87.5 43.75,62.5 56.25,62.5 56.25,87.5 87.5,87.5 87.5,50 100,50 50,0 0,50
|
|
44
|
+
<path d="m 60.085221,50.800004 c -0.890121,-0.0021 -1.610321,0.711677 -1.612305,1.5875 0.002,0.877761 0.722184,1.586074 1.612305,1.5875 0.593513,-8.73e-4 1.110529,-0.321123 1.389062,-0.79375 h 0.65319 l 0.520899,-0.504362 0.396875,0.380339 0.380338,-0.37207 0.388607,0.380338 0.396875,-0.380338 0.388607,0.380338 0.677994,-0.65319 c 0.09761,-0.09927 0.100016,-0.174188 0,-0.272852 l -0.553971,-0.545703 h -3.241146 c -0.277124,-0.47713 -0.799763,-0.794983 -1.39733,-0.79375 z m -0.7028,1.157552 c 0.233962,-0.0011 0.419905,0.187463 0.42168,0.42168 -0.0017,0.230958 -0.187613,0.419542 -0.42168,0.42168 -0.237929,-0.0024 -0.43214,-0.190722 -0.429948,-0.42168 -0.0022,-0.234217 0.192019,-0.422799 0.429948,-0.42168 z" id="permissions" style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.264583" class="sprite" />
|
|
45
|
+
<polygon points="12.5,50 12.5,87.5 43.75,87.5 43.75,62.5 56.25,62.5 56.25,87.5 87.5,87.5 87.5,50 100,50 50,0 0,50 " id="home" transform="matrix(0.0635,0,0,0.0635,30.162499,20.902083)" style="fill:#4d4d4d;fill-opacity:1" class="sprite" />
|
|
46
46
|
<path inkscape:connector-curvature="0" d="m 7.937502,33.337505 c 0,-0.119238 -0.0078,-0.236713 -0.02082,-0.352777 h -0.356658 c -0.159103,-1.275998 -1.168753,-2.285648 -2.44475,-2.445102 v -0.356307 c -0.116064,-0.01304 -0.233539,-0.02082 -0.352778,-0.02082 -0.119239,0 -0.236714,0.0078 -0.352778,0.02082 v 0.356659 c -1.275997,0.159102 -2.285647,1.168752 -2.445103,2.44475 h -0.356305 c -0.01305,0.116064 -0.02081,0.233539 -0.02081,0.352777 0,0.119239 0.0078,0.236714 0.02081,0.352779 h 0.356658 c 0.159103,1.275996 1.168753,2.285659 2.44475,2.445123 v 0.356658 c 0.116064,0.0127 0.233539,0.02037 0.352778,0.02037 0.119239,0 0.236714,-0.0077 0.352778,-0.0209 v -0.356658 c 1.275644,-0.159438 2.285647,-1.168757 2.445102,-2.444753 h 0.356659 c 0.0127,-0.115712 0.02046,-0.233187 0.02046,-0.352779 z m -2.822223,2.084929 v -0.32104 c 0,-0.195085 -0.158044,-0.352777 -0.352777,-0.352777 -0.194734,0 -0.352778,0.157692 -0.352778,0.352777 v 0.32104 c -0.885472,-0.148883 -1.582914,-0.845973 -1.731786,-1.731798 l 0.320675,-2.65e-4 c 0.195086,0 0.352778,-0.158046 0.352778,-0.352779 0,-0.194733 -0.157692,-0.352777 -0.352778,-0.352777 h -0.321028 c 0.149225,-0.885473 0.846667,-1.582915 1.732139,-1.73214 v 0.32103 c 0,0.194733 0.158044,0.352777 0.352778,0.352777 0.194733,0 0.352777,-0.158044 0.352777,-0.352777 v -0.32103 c 0.885825,0.148873 1.583267,0.846315 1.732139,1.73214 h -0.321028 c -0.195086,0 -0.352777,0.158044 -0.352777,0.352777 0,0.194733 0.157691,0.352779 0.352777,0.352779 l 0.321028,2.65e-4 c -0.149225,0.885825 -0.846314,1.582915 -1.732139,1.731798 z" id="geolocation" style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.264583" class="sprite" />
|
|
47
47
|
<g id="share" class="sprite" transform="matrix(0.26458333,0,0,0.26458333,-2.6458336,-229.22505)">
|
|
48
48
|
<circle id="path4309" style="fill:none;stroke:#464646;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" cx="100" cy="992.3623" r="11" />
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
</g>
|
|
60
60
|
<path inkscape:export-ydpi="28.799999" inkscape:export-xdpi="28.799999" inkscape:export-filename="/home/ybon/Work/osmtouch64.png" d="m 36.286947,38.82145 c -0.457367,0.452579 -0.512559,0.504833 -0.938758,0.934524 l 1.311056,-0.309645 c 0.03951,-0.177773 0.08574,-0.397942 0.09827,-0.449622 -0.206968,-0.007 -0.324977,-0.0729 -0.470564,-0.175257 z m 1.416518,-0.515743 c -0.04859,0.578556 -0.300471,0.62169 -0.777745,0.697632 -0.034,0.152288 -0.05699,0.258181 -0.0969,0.437787 l 1.223994,0.303984 c 0.164208,-0.701576 0.296132,-1.269942 0.293248,-1.273096 -0.0043,-0.0046 -0.327631,-0.08748 -0.642597,-0.166307 z m -0.587772,-0.141586 c -0.0016,0.0027 -0.06999,0.304712 -0.158099,0.698899 0.559065,-0.08996 0.575972,-0.270987 0.592873,-0.594974 -0.229404,-0.05691 -0.432289,-0.106081 -0.434774,-0.103925 z m -0.164475,-0.0092 c -0.135978,0.01159 -0.204073,0.02561 -0.353171,0.06753 0.04792,0.09125 0.07023,0.278832 -0.200036,0.497924 0.141563,0.08791 0.265261,0.122014 0.390009,0.137353 0.114356,-0.532403 0.172961,-0.615354 0.163198,-0.702835 z m -2.677486,-0.0065 -0.237148,0.943143 0.805796,-0.798942 c -0.18084,-0.04602 -0.34599,-0.08797 -0.568648,-0.144201 z m 5.612522,-0.03249 c -0.750179,0.194829 -1.362065,0.355852 -1.364242,0.358548 -0.0019,0.0027 -0.137285,0.574647 -0.303451,1.280914 l 1.337469,-0.33256 z m -2.182789,-0.197471 v 0.211759 c 0.276503,0.0699 0.560065,0.139645 0.618371,0.140292 0,0 -0.03096,-0.126516 -0.06757,-0.283199 -7.93e-4,0 -0.0016,0 -0.0026,0 -0.238721,0.0062 -0.321882,-0.0081 -0.548246,-0.06885 z m -0.679572,-0.315683 -0.0026,0.0027 0.09817,0.38583 c 0.02307,-0.0027 0.214998,0.04675 0.430948,0.10131 2.4e-5,-0.0864 1.64e-4,-0.157114 0.0013,-0.219523 -0.185131,-0.06365 -0.363024,-0.153906 -0.527846,-0.270232 z m -2.866186,-0.12471 0.131326,0.50016 c 0,0 0.363977,0.08961 0.697421,0.171483 l 0.03825,-0.03769 c -0.494559,-0.17868 -0.501422,-0.552676 -0.866997,-0.633955 z m 5.579372,-0.111716 c -0.494358,0.418395 -0.758865,0.525016 -1.314519,0.614464 0.03396,0.138971 0.06369,0.258155 0.07268,0.285814 0.0076,0.02345 0.467328,-0.08354 1.388467,-0.320887 z m -3.207882,-0.254623 c -0.06109,-0.08511 -0.11524,-0.173667 -0.161925,-0.265029 -0.359863,0.0798 -0.952985,0.222488 -0.97027,0.237747 -0.0073,0.0065 0.04546,0.244648 0.118573,0.540437 0.178835,-0.168006 0.384271,-0.137731 0.520491,-0.04456 m 0.507283,0.496144 c 0.125,-0.04259 0.297064,-0.07581 0.406593,-0.08915 -0.01373,-0.100393 -0.0232,-0.163665 -0.06247,-0.267616 m -2.910811,-0.983419 0.131326,0.528737 c 0.662519,0.255998 0.711877,0.768478 1.067168,0.697631 l 0.228224,-0.226046 c -0.07081,-0.298943 -0.153485,-0.613683 -0.173397,-0.633956 -0.0046,-0.0046 -1.253321,-0.366366 -1.253321,-0.366366 z m 2.186615,-1.140587 -0.443699,0.111716 c -0.09333,0.398662 -0.219022,0.89726 -0.294523,1.192563 0.363871,-0.102631 0.462682,-0.124171 0.872095,-0.20785 -0.143711,-0.349112 -0.188886,-0.728445 -0.133873,-1.096429 z m -1.87424,-0.285813 -0.313648,1.249741 c 0.483029,0.139375 0.763559,0.218579 1.252043,0.335148 0.10314,-0.32458 0.219451,-0.683155 0.303448,-1.197766 -0.325758,-0.103251 -0.521049,-0.166792 -1.241843,-0.387123 z m 2.351088,-1.414701 -1.220169,0.30269 c 0.172125,0.761442 0.298183,1.305114 0.305999,1.313364 0.0075,0.0078 0.225253,-0.03952 0.473022,-0.09743 0.116554,-0.470022 0.217924,-0.632905 0.563546,-0.989889 -0.03709,-0.162128 -0.07823,-0.339596 -0.122398,-0.528737 z m 0.163197,-0.01698 c 0.05038,0.214994 0.05503,0.230495 0.09945,0.419609 0.140443,-0.115059 0.293208,-0.208632 0.452622,-0.281905 z m -2.852158,0 0.318746,1.249742 c 0.700001,0.21006 1.258697,0.375235 1.262245,0.371542 0.0038,-0.004 -0.123335,-0.586051 -0.283048,-1.309482 z m 5.60487,-0.01159 -0.493422,0.122095 c 0.227135,0.09573 0.440336,0.233245 0.628571,0.411818 z m -2.717445,2.334255 c 0.109487,0.68124 0.842335,1.193371 1.606491,1.108532 0.285036,-0.686201 0.484585,-0.652934 0.594535,-1.340268 0.0044,-0.611014 -0.784114,-0.234107 -1.142519,-0.214697 -0.615619,-0.01995 -0.584985,-0.758423 -0.651779,-0.867659 -0.190072,0.142368 -0.521817,0.587372 -0.406728,1.314092 z m 0.702955,-1.549601 c 0.200636,0.645656 0.243692,0.866311 0.883571,0.613171 0.481322,-0.142179 0.864986,0.05125 0.927298,0.283279 0.102087,0.345959 -0.06402,0.852913 -0.5091,1.641961 0.697153,-0.379441 0.91768,-1.209169 0.667258,-1.845956 -0.341146,-0.72645 -1.135436,-1.087828 -1.969027,-0.692455 z" style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" id="path5801" inkscape:connector-curvature="0" />
|
|
61
61
|
</g>
|
|
62
|
-
<g id="delete-marker" transform="matrix(0.26458333,0,0,0.26458333
|
|
62
|
+
<g id="delete-marker" transform="matrix(0.26458333,0,0,0.26458333,23.529017,-228.26118)" class="sprite">
|
|
63
63
|
<path id="path3378-6" d="m 178.57143,979.21934 c -3.0625,0 -6.125,2.1197 -7,6.375 0,2.5532 1.75,7.6676 7,13.625 3.4166,-3.877 5.31568,-7.3755 6.25,-10.0625 -1.31416,-0.1622 -2.497,-0.7235 -3.40625,-1.5938 -0.63462,0.8653 -1.6677,1.4375 -2.84375,1.4375 -1.933,0 -3.5,-1.5261 -3.5,-3.4062 0,-1.8801 1.567,-3.4063 3.5,-3.4063 0.36776,0 0.72951,0.085 1.0625,0.1875 0.14352,-1.0312 0.55799,-1.956 1.15625,-2.75 -0.72276,-0.259 -1.46314,-0.4062 -2.21875,-0.4062 z" style="fill:#4d4d4d;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" />
|
|
64
64
|
<path inkscape:connector-curvature="0" id="path6764" d="m 185.57143,978.21934 c -2.76142,0 -5,2.2386 -5,5 0,2.7615 2.23858,5 5,5 2.76142,0 5,-2.2385 5,-5 0,-2.7614 -2.23858,-5 -5,-5 z m -1.81818,2.2727 1.81818,1.8182 1.81818,-1.8182 0.90909,0.9091 -1.81818,1.8182 1.81818,1.8182 -0.90909,0.9091 -1.81818,-1.8182 -1.81818,1.8182 -0.90909,-0.9091 1.81818,-1.8182 -1.81818,-1.8182 z" style="fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
|
65
65
|
</g>
|
|
66
|
-
<g id="multipolygon" class="sprite" transform="matrix(0.26458333,0,0,0.26458333
|
|
66
|
+
<g id="multipolygon" class="sprite" transform="matrix(0.26458333,0,0,0.26458333,66.121027,-220.75833)">
|
|
67
67
|
<path style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" d="m 10.1875,1017.3622 v 0.5 3 0.5 h 0.5 1.3125 l -1.59375,14 h -1.71875 -0.5 v 0.5 3 0.5 h 0.5 3 0.5 v -0.5 -1.5938 c 0,0 13.716518,-10.9062 13.71875,-10.9062 h 1.78125 0.5 v -0.5 -3 -0.5 h -0.5 -3 -0.5 v 0.5 0.8125 l -10,-3.5938 v -2.2187 -0.5 h -0.5 -3 z m 1,1 h 2 v 2 h -2 z m 14,5 h 2 v 2 h -2 z m -16,13 h 2 v 2 h -2 z" id="rect4058-1-2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccc" />
|
|
68
68
|
<path style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" d="m 18,1043.3622 h -3.5 -0.5 v 0.5 3 0.5 h 0.5 3 0.5 v -0.5 -1.5937 l 10,-0.6875 v 1.2812 0.5 h 0.5 3 0.5 v -0.5 -3 -0.5 h -0.5 -1.15625 l -2.4375,-8 h 1.78125 0.5 v -0.5 -3 -0.5 h -0.5 -3 -0.6875 c 0,3 0,3 0,3 0,0 -7.8125,10 -8,10 z m 9.1875,-12 h 2 v 2 h -2 z m 1.8125,12 h 2 v 2 h -2 z m -14,1 c 2,0 0,0 2,0 v 2 h -2 z" id="rect4058-1-2-0" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccc" />
|
|
69
69
|
</g>
|
|
70
|
-
<g id="multiline" class="sprite" transform="matrix(0.26458333,0,0,0.26458333
|
|
70
|
+
<g id="multiline" class="sprite" transform="matrix(0.26458333,0,0,0.26458333,55.562499,-201.97278)">
|
|
71
71
|
<path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" id="rect4058-9" d="m 51,1020.3622 v 0.5 3 0.5 h 0.5 3 0.5 v -0.5 -0.3438 l 10,4 v 1.3438 0.4375 l 1.09375,0.062 h 2.40625 0.5 v -0.5 -3 -0.5 h -0.5 -3 -0.5 v 0.5 0.5625 l -10,-4 v -1.5625 -0.5 h -0.5 -3 z m 1,1 h 2 v 2 h -2 z m 14,5 h 2 v 2 h -2 z" style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" />
|
|
72
72
|
<path sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" id="rect4058-9-5" d="m 55.09375,1030.5184 v 1.3438 0.4375 l 7.09375,11.0625 h 2.40625 0.5 v 0.5 3 0.5 h -0.5 -3 -0.5 v -0.5 -3 -0.375 l -7.09375,-11.125 h -2.40625 -0.5 v -0.5 -3 -0.5 h 0.5 3 0.5 v 0.5 0.5625 z m -1,-1.1562 h -2 v 2 h 2 z m 10,15 h -2 v 2 h 2 z" style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1;marker:none;enable-background:accumulate" inkscape:connector-curvature="0" />
|
|
73
73
|
</g>
|
|
@@ -77,8 +77,8 @@
|
|
|
77
77
|
</g>
|
|
78
78
|
<path style="fill:#464646;fill-opacity:1;stroke:none;stroke-width:1.84551;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" inkscape:transform-center-x="-0.0017170804" inkscape:transform-center-y="-1.1593678" d="m 31.537126,45.771563 0.577355,-2.184903 -1.687401,-1.349931 h 2.154994 l 0.756436,-2.28465 0.754501,2.284227 h 2.154902 l -1.688682,1.351121 0.575368,2.185485 -1.798166,-1.252432 z" id="star" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccc" class="sprite" />
|
|
79
79
|
<path style="fill:none;fill-opacity:1;stroke:#464646;stroke-width:0.264583;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" inkscape:transform-center-x="-0.0017170804" inkscape:transform-center-y="-1.1593678" d="m 40.742193,45.771563 0.577355,-2.184903 -1.687401,-1.349931 h 2.154994 l 0.756436,-2.28465 0.754502,2.284227 h 2.154901 l -1.688682,1.351121 0.575368,2.185485 -1.798169,-1.252432 z" id="starred" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccc" class="sprite" />
|
|
80
|
-
<path d="m
|
|
81
|
-
<g id="tilelayers" transform="translate(
|
|
80
|
+
<path d="m 45.33157,52.032511 0.367177,0.21791 c 0.07232,0.04294 0.09577,0.135732 0.0524,0.207275 -0.01292,0.02122 -0.03092,0.03903 -0.0524,0.0518 l -2.836254,1.6832 -2.836235,-1.6832 c -0.07233,-0.04294 -0.09579,-0.135704 -0.05238,-0.207274 0.0129,-0.02125 0.03089,-0.03905 0.05238,-0.05181 l 0.367179,-0.21791 2.469056,1.465315 z m 0,1.419992 0.367177,0.217911 c 0.07232,0.04294 0.09577,0.135731 0.0524,0.207274 -0.01292,0.02125 -0.03092,0.03903 -0.0524,0.05181 l -2.679097,1.58996 c -0.09674,0.05739 -0.217576,0.05739 -0.314315,0 l -2.679077,-1.58996 c -0.07233,-0.04292 -0.09579,-0.135705 -0.05238,-0.207249 0.0129,-0.02127 0.03089,-0.03908 0.05238,-0.05183 l 0.367179,-0.217911 2.469056,1.465315 z m -2.31192,-4.196946 2.679097,1.589967 c 0.07232,0.04292 0.09577,0.135715 0.0524,0.207256 -0.01292,0.02126 -0.03092,0.03906 -0.0524,0.05182 l -2.836254,1.683221 -2.836235,-1.683221 c -0.07233,-0.04292 -0.09579,-0.135716 -0.05238,-0.207256 0.0129,-0.02126 0.03089,-0.03906 0.05238,-0.05182 l 2.679077,-1.589967 c 0.09674,-0.05741 0.217576,-0.05741 0.314315,0 z" fill="#4d4d4d" id="datalayers" style="stroke-width:0.264583" />
|
|
81
|
+
<g id="tilelayers" transform="translate(19.049999,56.885416)">
|
|
82
82
|
<path d="m 26.772659,3.4276506 h -4.243945 c -0.07035,0 -0.137814,0.027945 -0.187558,0.077687 -0.04974,0.049744 -0.07769,0.1172104 -0.07769,0.1875578 v 4.2439431 c 0,0.070353 0.02794,0.1378215 0.07769,0.1875631 0.04974,0.049742 0.11721,0.077682 0.187558,0.077682 h 4.243945 c 0.07035,0 0.137822,-0.02794 0.187563,-0.077682 0.04974,-0.049742 0.07768,-0.1172104 0.07768,-0.1875631 v -4.2439431 c 0,-0.070347 -0.02794,-0.1378135 -0.07768,-0.1875578 -0.04974,-0.049742 -0.11721,-0.077687 -0.187563,-0.077687 z m -0.265245,4.1590648 h -3.713453 v -3.546348 h 3.713453 z" fill="#464646" id="path2349" style="stroke-width:0.264583" />
|
|
83
83
|
<g mask="url(#mask0_181_11898)" id="g2376" transform="matrix(0.26458333,0,0,0.26458333,20.637501,1.8520833)">
|
|
84
84
|
<path d="m 16.0401,2.3158 h -14.0351 v 14.0351 h 14.0351 z" fill="#d5ecbe" id="path2354" />
|
|
@@ -95,9 +95,20 @@
|
|
|
95
95
|
</g>
|
|
96
96
|
<path d="m 25.146689,1.8520833 h -4.243941 c -0.07035,0 -0.137815,0.027946 -0.187558,0.077689 -0.04974,0.049744 -0.07769,0.1172099 -0.07769,0.1875586 v 4.2439405 c 0,0.070353 0.02795,0.1378215 0.07769,0.1875632 0.04974,0.049742 0.11721,0.077682 0.187558,0.077682 h 4.243941 c 0.07035,0 0.137821,-0.02794 0.187563,-0.077682 0.04974,-0.049742 0.07768,-0.1172105 0.07768,-0.1875632 v -4.2439405 c 0,-0.070349 -0.02794,-0.1378151 -0.07768,-0.1875586 -0.04974,-0.049743 -0.11721,-0.077689 -0.187563,-0.077689 z m -0.265245,4.1590648 h -3.713451 v -3.5463453 h 3.713451 z" fill="#464646" id="path2378" style="stroke-width:0.264583" />
|
|
97
97
|
</g>
|
|
98
|
-
<g id="info" transform="matrix(0.33072916,0,0,0.33072916
|
|
98
|
+
<g id="info" transform="matrix(0.33072916,0,0,0.33072916,7.1437494,-265.62915)" style="fill:#4d4d4d;fill-opacity:1;stroke-width:0.8">
|
|
99
99
|
<path id="path3762" style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.8" d="m 108,838.36217 a 8,8 0 0 0 -8,8 8,8 0 0 0 8,8 8,8 0 0 0 8,-8 8,8 0 0 0 -8,-8 z m 0,2.5 a 1.5,1.5 0 0 1 1.5,1.5 1.5,1.5 0 0 1 -1.5,1.5 1.5,1.5 0 0 1 -1.5,-1.5 1.5,1.5 0 0 1 1.5,-1.5 z m -1,4.5 h 2 v 6 h -2 z" />
|
|
100
100
|
</g>
|
|
101
101
|
<path d="m 5.6444435,59.43432 v 1.034991 h 1.0541546 z m 1.1759257,1.612262 h -1.1759257 c -0.3247228,0 -0.5879626,-0.258453 -0.5879626,-0.577271 v -1.154545 h -2.3518514 v 5.195451 h 4.1157397 z m -4.1157397,-2.309089 h 3.0615854 l 1.6421175,1.612259 v 4.160465 c 0,0.318822 -0.2632403,0.577275 -0.5879632,0.577275 h -4.1157397 c -0.3247231,0 -0.5879631,-0.258453 -0.5879631,-0.577275 v -5.195451 c 0,-0.31882 0.26324,-0.577273 0.5879631,-0.577273 z m 1.7638882,3.92135 v -1.323625 h 0.5879632 v 1.323625 l 0.3800861,-0.373177 0.415753,0.408196 -1.0898206,1.070004 -1.0898208,-1.070004 0.4157526,-0.408196 z" fill-rule="evenodd" id="downloadfile" style="fill:#464646;fill-opacity:1;stroke-width:0.192424" />
|
|
102
|
+
<g id="set-zoom-6" class="sprite" transform="translate(37.659368,8.069823)" style="fill:#4d4d4d;fill-opacity:1">
|
|
103
|
+
<polygon points="37.37,62.644 37.37,90.703 28.965,82.305 11.27,100 0,88.737 17.702,71.042 9.297,62.644 " id="polygon3044-7" transform="matrix(0.0635,0,0,0.0635,2.2709793,12.435385)" style="fill:#4d4d4d;fill-opacity:1;stroke:#999999;stroke-width:1.04167;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
104
|
+
<polygon points="71.042,17.708 62.644,9.31 62.644,37.357 90.71,37.37 82.298,28.958 100,11.263 88.743,0 " id="polygon3048-5" transform="matrix(0.0635,0,0,0.0635,2.2709793,12.435385)" style="fill:#4d4d4d;fill-opacity:1;stroke:#999999;stroke-width:1.04167;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
105
|
+
<path inkscape:connector-curvature="0" d="m 5.4459792,14.83486 c -0.428308,0 -0.775525,0.347281 -0.775525,0.775525 0,0.429133 0.347281,0.776415 0.775525,0.776415 0.428308,0 0.77597,-0.347282 0.77597,-0.776415 0,-0.428307 -0.347662,-0.775525 -0.77597,-0.775525 z" id="path3052-3" style="fill:#4d4d4d;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
106
|
+
</g>
|
|
107
|
+
<g id="help" transform="matrix(0.35277776,0,0,0.35277776,-7.6749272,-328.17103)" style="stroke-width:0.75">
|
|
108
|
+
<circle transform="matrix(1.0714286,0,0,1.0714286,26.684272,934.10579)" id="path3014" style="fill:none;stroke:#4d4d4d;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" cx="8" cy="9" r="7" />
|
|
109
|
+
<g id="text3784" style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.75" transform="translate(27.255701,-100.61365)">
|
|
110
|
+
<path inkscape:connector-curvature="0" id="path3789" style="font-weight:bold;font-size:12px;-inkscape-font-specification:'Sans Bold';fill:#4d4d4d;stroke-width:0.75" d="m 9,1046.0464 h -2.3698034 v -0.3223 c 0,-0.3596 0.072207,-0.6775 0.2166302,-0.9539 0.1444174,-0.2807 0.4485749,-0.636 0.9124728,-1.0658 l 0.4201314,-0.3816 c 0.249449,-0.228 0.4310681,-0.4429 0.5448577,-0.6446 0.1181576,-0.2019 0.1772384,-0.4036 0.177243,-0.6053 -4.6e-6,-0.3071 -0.1050376,-0.5462 -0.3150985,-0.7171 -0.2100697,-0.1756 -0.5032861,-0.2632 -0.87965,-0.2632 -0.3544889,0 -0.7374207,0.075 -1.1487968,0.2237 -0.4113804,0.1446 -0.840264,0.3618 -1.2866522,0.6513 v -2.0659 c 0.5295391,-0.184 1.0131273,-0.32 1.4507661,-0.4077 0.437634,-0.088 0.8599531,-0.1317 1.2669587,-0.1317 1.0678292,0 1.8818328,0.2194 2.442012,0.6579 0.560169,0.4341 0.840256,1.0702 0.840263,1.9078 -7e-6,0.4298 -0.08535,0.8159 -0.256017,1.158 -0.170685,0.3377 -0.461713,0.7017 -0.873085,1.092 l -0.4201313,0.375 c -0.297598,0.272 -0.4923463,0.4913 -0.5842451,0.658 -0.091909,0.1622 -0.1378603,0.342 -0.1378556,0.5394 v 0.296 m -2.3698034,0.9739 h 2.3698034 v 2.342 h -2.3698034 v -2.342" sodipodi:nodetypes="ccsccccccsccccsccccccccccccc" />
|
|
111
|
+
</g>
|
|
112
|
+
</g>
|
|
102
113
|
</g>
|
|
103
114
|
</svg>
|
|
@@ -57,8 +57,11 @@ class uMapAlert extends uMapElement {
|
|
|
57
57
|
this.container.dataset.duration = duration
|
|
58
58
|
this.element.textContent = message
|
|
59
59
|
this.setAttribute('open', 'open')
|
|
60
|
+
if (this._timeoutId) {
|
|
61
|
+
clearTimeout(this._timeoutId)
|
|
62
|
+
}
|
|
60
63
|
if (Number.isFinite(duration)) {
|
|
61
|
-
setTimeout(() => {
|
|
64
|
+
this._timeoutId = setTimeout(() => {
|
|
62
65
|
this._hide()
|
|
63
66
|
}, duration)
|
|
64
67
|
}
|
|
@@ -4,6 +4,7 @@ import * as Icon from './rendering/icon.js'
|
|
|
4
4
|
import * as Utils from './utils.js'
|
|
5
5
|
import { EXPORT_FORMATS } from './formatter.js'
|
|
6
6
|
import ContextMenu from './ui/contextmenu.js'
|
|
7
|
+
import { Form } from './form/builder.js'
|
|
7
8
|
|
|
8
9
|
export default class Browser {
|
|
9
10
|
constructor(umap, leafletMap) {
|
|
@@ -45,7 +46,7 @@ export default class Browser {
|
|
|
45
46
|
const symbol = feature._getIconUrl
|
|
46
47
|
? Icon.formatUrl(feature._getIconUrl(), feature)
|
|
47
48
|
: null
|
|
48
|
-
title.textContent = feature.getDisplayName() || '—'
|
|
49
|
+
title.textContent = title.title = feature.getDisplayName() || '—'
|
|
49
50
|
const bgcolor = feature.getPreviewColor()
|
|
50
51
|
colorBox.style.backgroundColor = bgcolor
|
|
51
52
|
if (symbol && symbol !== U.SCHEMA.iconUrl.default) {
|
|
@@ -96,7 +97,7 @@ export default class Browser {
|
|
|
96
97
|
DomEvent.on(toggle, 'click', toggleList)
|
|
97
98
|
datalayer.renderToolbox(headline)
|
|
98
99
|
const name = DomUtil.create('span', 'datalayer-name', headline)
|
|
99
|
-
name.textContent = datalayer.options.name
|
|
100
|
+
name.textContent = name.title = datalayer.options.name
|
|
100
101
|
DomEvent.on(name, 'click', toggleList)
|
|
101
102
|
container.innerHTML = ''
|
|
102
103
|
datalayer.eachFeature((feature) => this.addFeature(feature, container))
|
|
@@ -179,9 +180,8 @@ export default class Browser {
|
|
|
179
180
|
],
|
|
180
181
|
['options.inBbox', { handler: 'Switch', label: translate('Current map view') }],
|
|
181
182
|
]
|
|
182
|
-
const builder = new
|
|
183
|
-
|
|
184
|
-
})
|
|
183
|
+
const builder = new Form(this, fields)
|
|
184
|
+
builder.on('set', () => this.onFormChange())
|
|
185
185
|
let filtersBuilder
|
|
186
186
|
this.formContainer.appendChild(builder.build())
|
|
187
187
|
DomEvent.on(builder.form, 'reset', () => {
|
|
@@ -189,9 +189,8 @@ export default class Browser {
|
|
|
189
189
|
})
|
|
190
190
|
if (this._umap.properties.facetKey) {
|
|
191
191
|
fields = this._umap.facets.build()
|
|
192
|
-
filtersBuilder = new
|
|
193
|
-
|
|
194
|
-
})
|
|
192
|
+
filtersBuilder = new Form(this._umap.facets, fields)
|
|
193
|
+
filtersBuilder.on('set', () => this.onFormChange())
|
|
195
194
|
DomEvent.on(filtersBuilder.form, 'reset', () => {
|
|
196
195
|
window.setTimeout(filtersBuilder.syncAll.bind(filtersBuilder))
|
|
197
196
|
})
|
|
@@ -255,6 +254,7 @@ export default class Browser {
|
|
|
255
254
|
if (datalayer.isVisible()) allHidden = false
|
|
256
255
|
})
|
|
257
256
|
this._umap.eachBrowsableDataLayer((datalayer) => {
|
|
257
|
+
datalayer._forcedVisibility = true
|
|
258
258
|
if (allHidden) {
|
|
259
259
|
datalayer.show()
|
|
260
260
|
} else {
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { translate } from './i18n.js'
|
|
2
2
|
import * as Utils from './utils.js'
|
|
3
|
+
import { uMapAlert as Alert } from '../components/alerts/alert.js'
|
|
3
4
|
|
|
4
5
|
const TEMPLATE = `
|
|
5
6
|
<div class="umap-caption">
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
<span class="map-name" data-ref="name"></span>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
<div class="header">
|
|
8
|
+
<i class="icon icon-16 icon-caption icon-block"></i>
|
|
9
|
+
<hgroup>
|
|
10
|
+
<h3><span class="map-name" data-ref="name"></span></h3>
|
|
11
|
+
<p data-ref="author"></p>
|
|
12
|
+
<p class="dates" data-ref="dates"></p>
|
|
13
|
+
<p><button type="button" class="round small" data-ref="star" title="${translate('Star this map')}"><i class="icon icon-16 icon-star map-star"></i><span class="map-stars"></span></button></p>
|
|
14
|
+
</hgroup>
|
|
15
|
+
</div>
|
|
13
16
|
<div class="umap-map-description text" data-ref="description"></div>
|
|
14
17
|
<div class="datalayer-container" data-ref="datalayersContainer"></div>
|
|
15
18
|
<div class="credits-container">
|
|
@@ -34,6 +37,14 @@ export default class Caption extends Utils.WithTemplate {
|
|
|
34
37
|
this._umap = umap
|
|
35
38
|
this._leafletMap = leafletMap
|
|
36
39
|
this.loadTemplate(TEMPLATE)
|
|
40
|
+
this.elements.star.addEventListener('click', async () => {
|
|
41
|
+
if (this._umap.properties.user?.id) {
|
|
42
|
+
await this._umap.star()
|
|
43
|
+
this.refresh()
|
|
44
|
+
} else {
|
|
45
|
+
Alert.error(translate('You must be logged in'))
|
|
46
|
+
}
|
|
47
|
+
})
|
|
37
48
|
}
|
|
38
49
|
|
|
39
50
|
isOpen() {
|
|
@@ -61,9 +72,21 @@ export default class Caption extends Utils.WithTemplate {
|
|
|
61
72
|
this.addDataLayer(datalayer, this.elements.datalayersContainer)
|
|
62
73
|
)
|
|
63
74
|
this.addCredits()
|
|
75
|
+
if (this._umap.properties.created_at) {
|
|
76
|
+
const created_at = translate('created at {date}', {
|
|
77
|
+
date: new Date(this._umap.properties.created_at).toLocaleDateString(),
|
|
78
|
+
})
|
|
79
|
+
const modified_at = translate('modified at {date}', {
|
|
80
|
+
date: new Date(this._umap.properties.modified_at).toLocaleDateString(),
|
|
81
|
+
})
|
|
82
|
+
this.elements.dates.innerHTML = `${created_at} - ${modified_at}`
|
|
83
|
+
} else {
|
|
84
|
+
this.elements.dates.hidden = true
|
|
85
|
+
}
|
|
64
86
|
this._umap.panel.open({ content: this.element }).then(() => {
|
|
65
87
|
// Create the legend when the panel is actually on the DOM
|
|
66
88
|
this._umap.eachDataLayerReverse((datalayer) => datalayer.renderLegend())
|
|
89
|
+
this._umap.propagate()
|
|
67
90
|
})
|
|
68
91
|
}
|
|
69
92
|
|
|
@@ -16,12 +16,12 @@ import {
|
|
|
16
16
|
MaskPolygon,
|
|
17
17
|
} from '../rendering/ui.js'
|
|
18
18
|
import loadPopup from '../rendering/popup.js'
|
|
19
|
+
import { MutatingForm } from '../form/builder.js'
|
|
19
20
|
|
|
20
21
|
class Feature {
|
|
21
22
|
constructor(umap, datalayer, geojson = {}, id = null) {
|
|
22
23
|
this._umap = umap
|
|
23
24
|
this.sync = umap.syncEngine.proxy(this)
|
|
24
|
-
this._marked_for_deletion = false
|
|
25
25
|
this._isDirty = false
|
|
26
26
|
this._ui = null
|
|
27
27
|
|
|
@@ -146,17 +146,6 @@ class Feature {
|
|
|
146
146
|
// When the layer is a remote layer, we don't want to sync the creation of the
|
|
147
147
|
// points via the websocket, as the other peers will get them themselves.
|
|
148
148
|
if (this.datalayer?.isRemoteLayer()) return
|
|
149
|
-
|
|
150
|
-
// The "endEdit" event is triggered at the end of an edition,
|
|
151
|
-
// and will trigger the sync.
|
|
152
|
-
// In the case of a deletion (or a change of layer), we don't want this
|
|
153
|
-
// event triggered to cause a sync event, as it would reintroduce
|
|
154
|
-
// deleted features.
|
|
155
|
-
// The `._marked_for_deletion` private property is here to track this status.
|
|
156
|
-
if (this._marked_for_deletion === true) {
|
|
157
|
-
this._marked_for_deletion = false
|
|
158
|
-
return
|
|
159
|
-
}
|
|
160
149
|
this.sync.upsert(this.toGeoJSON())
|
|
161
150
|
}
|
|
162
151
|
|
|
@@ -212,6 +201,7 @@ class Feature {
|
|
|
212
201
|
if (this._umap.currentFeature === this) {
|
|
213
202
|
this.view()
|
|
214
203
|
}
|
|
204
|
+
this.datalayer.indexProperties(this)
|
|
215
205
|
}
|
|
216
206
|
this.redraw()
|
|
217
207
|
}
|
|
@@ -225,20 +215,16 @@ class Feature {
|
|
|
225
215
|
`icon-${this.getClassName()}`
|
|
226
216
|
)
|
|
227
217
|
|
|
228
|
-
let builder = new
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
this.edit(event)
|
|
234
|
-
}, // removeLayer step will close the edit panel, let's reopen it
|
|
235
|
-
}
|
|
236
|
-
)
|
|
218
|
+
let builder = new MutatingForm(this, [
|
|
219
|
+
['datalayer', { handler: 'DataLayerSwitcher' }],
|
|
220
|
+
])
|
|
221
|
+
// removeLayer step will close the edit panel, let's reopen it
|
|
222
|
+
builder.on('set', () => this.edit(event))
|
|
237
223
|
container.appendChild(builder.build())
|
|
238
224
|
|
|
239
225
|
const properties = []
|
|
240
226
|
let labelKeyFound = undefined
|
|
241
|
-
for (const property of this.datalayer.
|
|
227
|
+
for (const property of this.datalayer.allProperties()) {
|
|
242
228
|
if (!labelKeyFound && U.LABEL_KEYS.includes(property)) {
|
|
243
229
|
labelKeyFound = property
|
|
244
230
|
continue
|
|
@@ -254,7 +240,7 @@ class Feature {
|
|
|
254
240
|
labelKeyFound = U.DEFAULT_LABEL_KEY
|
|
255
241
|
}
|
|
256
242
|
properties.unshift([`properties.${labelKeyFound}`, { label: labelKeyFound }])
|
|
257
|
-
builder = new
|
|
243
|
+
builder = new MutatingForm(this, properties, {
|
|
258
244
|
id: 'umap-feature-properties',
|
|
259
245
|
})
|
|
260
246
|
container.appendChild(builder.build())
|
|
@@ -272,6 +258,10 @@ class Feature {
|
|
|
272
258
|
if (!this.ui.isOnScreen(this._umap._leafletMap.getBounds())) this.zoomTo(event)
|
|
273
259
|
}
|
|
274
260
|
|
|
261
|
+
toggleEditing() {
|
|
262
|
+
this.edit()
|
|
263
|
+
}
|
|
264
|
+
|
|
275
265
|
getAdvancedEditActions(container) {
|
|
276
266
|
const button = Utils.loadTemplate(`
|
|
277
267
|
<button class="button" type="button">
|
|
@@ -285,7 +275,7 @@ class Feature {
|
|
|
285
275
|
|
|
286
276
|
appendEditFieldsets(container) {
|
|
287
277
|
const optionsFields = this.getShapeOptions()
|
|
288
|
-
let builder = new
|
|
278
|
+
let builder = new MutatingForm(this, optionsFields, {
|
|
289
279
|
id: 'umap-feature-shape-properties',
|
|
290
280
|
})
|
|
291
281
|
const shapeProperties = DomUtil.createFieldset(
|
|
@@ -295,7 +285,7 @@ class Feature {
|
|
|
295
285
|
shapeProperties.appendChild(builder.build())
|
|
296
286
|
|
|
297
287
|
const advancedOptions = this.getAdvancedOptions()
|
|
298
|
-
builder = new
|
|
288
|
+
builder = new MutatingForm(this, advancedOptions, {
|
|
299
289
|
id: 'umap-feature-advanced-properties',
|
|
300
290
|
})
|
|
301
291
|
const advancedProperties = DomUtil.createFieldset(
|
|
@@ -305,7 +295,7 @@ class Feature {
|
|
|
305
295
|
advancedProperties.appendChild(builder.build())
|
|
306
296
|
|
|
307
297
|
const interactionOptions = this.getInteractionOptions()
|
|
308
|
-
builder = new
|
|
298
|
+
builder = new MutatingForm(this, interactionOptions)
|
|
309
299
|
const popupFieldset = DomUtil.createFieldset(
|
|
310
300
|
container,
|
|
311
301
|
translate('Interaction options')
|
|
@@ -333,15 +323,15 @@ class Feature {
|
|
|
333
323
|
// Variables mode.
|
|
334
324
|
if (labelKey) {
|
|
335
325
|
if (Utils.hasVar(labelKey)) {
|
|
336
|
-
return Utils.greedyTemplate(labelKey, this.extendedProperties())
|
|
326
|
+
return Utils.greedyTemplate(labelKey, this.extendedProperties()).trim()
|
|
337
327
|
}
|
|
338
328
|
keys.unshift(labelKey)
|
|
339
329
|
}
|
|
340
330
|
for (const key of keys) {
|
|
341
331
|
const value = this.properties[key]
|
|
342
|
-
if (value) return value
|
|
332
|
+
if (value) return value.trim()
|
|
343
333
|
}
|
|
344
|
-
return this.datalayer.getName()
|
|
334
|
+
return this.datalayer.getName().trim()
|
|
345
335
|
}
|
|
346
336
|
|
|
347
337
|
hasPopupFooter() {
|
|
@@ -510,8 +500,19 @@ class Feature {
|
|
|
510
500
|
})
|
|
511
501
|
}
|
|
512
502
|
|
|
513
|
-
|
|
514
|
-
return [
|
|
503
|
+
getInplaceEditMenu() {
|
|
504
|
+
return [
|
|
505
|
+
{
|
|
506
|
+
action: () => this.toggleEditing(),
|
|
507
|
+
title: translate('Toggle edit mode (⇧+Click)'),
|
|
508
|
+
icon: 'icon-edit',
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
action: () => this.confirmDelete(),
|
|
512
|
+
title: translate('Delete this feature'),
|
|
513
|
+
icon: 'icon-delete',
|
|
514
|
+
},
|
|
515
|
+
]
|
|
515
516
|
}
|
|
516
517
|
|
|
517
518
|
isFiltered() {
|
|
@@ -566,6 +567,10 @@ class Feature {
|
|
|
566
567
|
return false
|
|
567
568
|
}
|
|
568
569
|
|
|
570
|
+
isEmpty() {
|
|
571
|
+
return !this.coordinates.length
|
|
572
|
+
}
|
|
573
|
+
|
|
569
574
|
clone() {
|
|
570
575
|
const geojson = this.toGeoJSON()
|
|
571
576
|
delete geojson.id
|
|
@@ -623,6 +628,12 @@ class Feature {
|
|
|
623
628
|
window.open(permalink)
|
|
624
629
|
},
|
|
625
630
|
})
|
|
631
|
+
items.push({
|
|
632
|
+
label: translate('Layer permalink'),
|
|
633
|
+
action: () => {
|
|
634
|
+
window.open(this.datalayer.getPermalink())
|
|
635
|
+
},
|
|
636
|
+
})
|
|
626
637
|
}
|
|
627
638
|
items.push({
|
|
628
639
|
label: translate('Copy as GeoJSON'),
|
|
@@ -733,16 +744,15 @@ export class Point extends Feature {
|
|
|
733
744
|
['ui._latlng.lat', { handler: 'FloatInput', label: translate('Latitude') }],
|
|
734
745
|
['ui._latlng.lng', { handler: 'FloatInput', label: translate('Longitude') }],
|
|
735
746
|
]
|
|
736
|
-
const builder = new
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
},
|
|
747
|
+
const builder = new MutatingForm(this, coordinatesOptions)
|
|
748
|
+
builder.on('set', () => {
|
|
749
|
+
if (!this.ui._latlng.isValid()) {
|
|
750
|
+
Alert.error(translate('Invalid latitude or longitude'))
|
|
751
|
+
builder.restoreField('ui._latlng.lat')
|
|
752
|
+
builder.restoreField('ui._latlng.lng')
|
|
753
|
+
}
|
|
754
|
+
this.pullGeometry()
|
|
755
|
+
this.zoomTo({ easing: false })
|
|
746
756
|
})
|
|
747
757
|
const fieldset = DomUtil.createFieldset(container, translate('Coordinates'))
|
|
748
758
|
fieldset.appendChild(builder.build())
|
|
@@ -784,17 +794,15 @@ class Path extends Feature {
|
|
|
784
794
|
}
|
|
785
795
|
}
|
|
786
796
|
|
|
787
|
-
|
|
797
|
+
toggleEditing() {
|
|
788
798
|
if (this._umap.editEnabled) {
|
|
789
799
|
if (this.ui.editEnabled()) {
|
|
790
800
|
this.endEdit()
|
|
791
801
|
this._umap.editPanel.close()
|
|
792
802
|
} else {
|
|
793
|
-
this.edit(
|
|
803
|
+
this.edit()
|
|
794
804
|
}
|
|
795
805
|
}
|
|
796
|
-
// FIXME: disable when disabling global edit
|
|
797
|
-
L.DomEvent.stop(event)
|
|
798
806
|
}
|
|
799
807
|
|
|
800
808
|
getShapeOptions() {
|
|
@@ -845,15 +853,33 @@ class Path extends Feature {
|
|
|
845
853
|
return other
|
|
846
854
|
}
|
|
847
855
|
|
|
848
|
-
|
|
849
|
-
const items = super.
|
|
856
|
+
getInplaceEditMenu(event) {
|
|
857
|
+
const items = super.getInplaceEditMenu()
|
|
850
858
|
if (this.isMulti()) {
|
|
851
|
-
items.push(
|
|
852
|
-
|
|
859
|
+
items.push({
|
|
860
|
+
action: () => this.ui.enableEdit().deleteShapeAt(event.latlng),
|
|
861
|
+
title: translate('Delete this shape'),
|
|
862
|
+
icon: 'icon-delete-shape',
|
|
863
|
+
})
|
|
864
|
+
items.push({
|
|
865
|
+
action: () => this.ui.isolateShape(event.latlng),
|
|
866
|
+
title: translate('Extract shape to separate feature'),
|
|
867
|
+
icon: 'icon-extract-shape',
|
|
868
|
+
})
|
|
853
869
|
}
|
|
854
870
|
return items
|
|
855
871
|
}
|
|
856
872
|
|
|
873
|
+
getInplaceEditVertexMenu(event) {
|
|
874
|
+
return [
|
|
875
|
+
{
|
|
876
|
+
action: () => event.vertex.delete(),
|
|
877
|
+
title: translate('Delete this vertex (Alt+Click)'),
|
|
878
|
+
icon: 'icon-delete-vertex',
|
|
879
|
+
},
|
|
880
|
+
]
|
|
881
|
+
}
|
|
882
|
+
|
|
857
883
|
zoomTo({ easing, callback }) {
|
|
858
884
|
// Use bounds instead of centroid for paths.
|
|
859
885
|
easing = easing || this._umap.getProperty('easing')
|
|
@@ -954,10 +980,6 @@ export class LineString extends Path {
|
|
|
954
980
|
return { coordinates, type }
|
|
955
981
|
}
|
|
956
982
|
|
|
957
|
-
isEmpty() {
|
|
958
|
-
return !this.coordinates.length
|
|
959
|
-
}
|
|
960
|
-
|
|
961
983
|
getUIClass() {
|
|
962
984
|
return super.getUIClass() || LeafletPolyline
|
|
963
985
|
}
|
|
@@ -1080,6 +1102,25 @@ export class LineString extends Path {
|
|
|
1080
1102
|
const [gain, loss] = this.ui.getElevation()
|
|
1081
1103
|
return Object.assign({ gain, loss }, super.extendedProperties())
|
|
1082
1104
|
}
|
|
1105
|
+
|
|
1106
|
+
getInplaceEditVertexMenu(event) {
|
|
1107
|
+
const items = super.getInplaceEditVertexMenu(event)
|
|
1108
|
+
const index = event.vertex.getIndex()
|
|
1109
|
+
if (index === 0 || index === event.vertex.getLastIndex()) {
|
|
1110
|
+
items.push({
|
|
1111
|
+
action: () => event.vertex.continue(),
|
|
1112
|
+
title: translate('Continue line'),
|
|
1113
|
+
icon: 'icon-continue-line',
|
|
1114
|
+
})
|
|
1115
|
+
} else {
|
|
1116
|
+
items.push({
|
|
1117
|
+
action: () => event.vertex.split(),
|
|
1118
|
+
title: translate('Split line'),
|
|
1119
|
+
icon: 'icon-split-line',
|
|
1120
|
+
})
|
|
1121
|
+
}
|
|
1122
|
+
return items
|
|
1123
|
+
}
|
|
1083
1124
|
}
|
|
1084
1125
|
|
|
1085
1126
|
export class Polygon extends Path {
|
|
@@ -1185,9 +1226,13 @@ export class Polygon extends Path {
|
|
|
1185
1226
|
)
|
|
1186
1227
|
}
|
|
1187
1228
|
|
|
1188
|
-
|
|
1189
|
-
const items = super.
|
|
1190
|
-
items.push(
|
|
1229
|
+
getInplaceEditMenu(event) {
|
|
1230
|
+
const items = super.getInplaceEditMenu()
|
|
1231
|
+
items.push({
|
|
1232
|
+
action: () => this.ui.startHole(event),
|
|
1233
|
+
title: translate('Start a hole here'),
|
|
1234
|
+
icon: 'icon-hole',
|
|
1235
|
+
})
|
|
1191
1236
|
return items
|
|
1192
1237
|
}
|
|
1193
1238
|
|