Merge pull request #1687 from umap-project/browser-revamp

feat: merge "datalayer browser" and "data browser"
This commit is contained in:
Yohan Boniface 2024-04-16 10:38:28 +02:00 committed by GitHub
commit 05fd33deb7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
149 changed files with 2049 additions and 2302 deletions

View file

@ -21,6 +21,9 @@ a {
text-decoration: none; text-decoration: none;
color: SeaGreen; color: SeaGreen;
} }
button {
cursor: pointer;
}
hr { hr {
clear: both; clear: both;
width: 100%; width: 100%;
@ -160,6 +163,8 @@ input[type="checkbox"] {
textarea { textarea {
height: inherit; height: inherit;
padding: 7px; padding: 7px;
min-height: 15rem;
min-height: 6rlh;
} }
select { select {
border: 1px solid #222; border: 1px solid #222;
@ -273,12 +278,23 @@ input + .error {
input[type="file"] + .error { input[type="file"] + .error {
margin-top: 0; margin-top: 0;
} }
input:invalid {
border-color: red;
background-color: darkred;
}
.dark input, .dark textarea {
background-color: #232729;
border-color: #1b1f20;
color: #efefef;
}
.fieldset { .fieldset {
border: 1px solid #222;
margin-bottom: 5px; margin-bottom: 5px;
border-top-left-radius: 4px; border-top-left-radius: 4px;
border-top-right-radius: 4px; border-top-right-radius: 4px;
} }
.dark .fieldset {
border: 1px solid #222;
}
.fieldset .fields { .fieldset .fields {
visibility: hidden; visibility: hidden;
opacity: 0; opacity: 0;
@ -296,7 +312,7 @@ input[type="file"] + .error {
text-align: left; text-align: left;
display: block; display: block;
cursor: pointer; cursor: pointer;
background-color: #eee; background-color: var(--color-lightGray);
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
margin: 0; margin: 0;
@ -528,7 +544,7 @@ i.info {
background-position: -150px -78px; background-position: -150px -78px;
} }
.umap-delete:before { .umap-delete:before {
background-position: -40px -8px; background-position: -32px -8px;
} }
.umap-edit:before { .umap-edit:before {
background-position: -6px -6px; background-position: -6px -6px;
@ -542,12 +558,10 @@ i.info {
.permissions-panel, .permissions-panel,
.umap-upload, .umap-upload,
.umap-share, .umap-share,
.umap-edit-container,
.umap-datalayer-container, .umap-datalayer-container,
.umap-layer-properties-container, .umap-layer-properties-container,
.umap-browse-data, .umap-browse-data,
.umap-facet-search, .umap-facet-search,
.umap-browse-datalayers,
.umap-tilelayer-switcher-container { .umap-tilelayer-switcher-container {
padding: 0 10px; padding: 0 10px;
} }
@ -663,7 +677,7 @@ input[type=hidden].blur + [type="button"] {
.copiable-input button { .copiable-input button {
background-repeat: no-repeat; background-repeat: no-repeat;
background-image: url('./img/16.svg'); background-image: url('./img/16.svg');
background-position: -45px -140px; background-position: -141px -140px;
display: inline; display: inline;
padding: 0 10px; padding: 0 10px;
height: 32px; height: 32px;
@ -678,105 +692,10 @@ input[type=hidden].blur + [type="button"] {
.leaflet-ui-container { .leaflet-ui-container {
overflow-x: hidden; overflow-x: hidden;
} }
#umap-ui-container {
/* Added for playwright to consider the element as non visible */
/* as being out of the visible viewport is not enough */
visibility: hidden;
position: absolute;
bottom: 0;
padding: 0 10px;
border-left: 1px solid var(--color-lightGray);
overflow-x: auto;
z-index: 1010;
background-color: #fff;
opacity: 0.98;
cursor: initial;
}
#umap-ui-container.login-panel {
position: fixed; /* Should not scroll when used in content pages (like home page) */
z-index: 1011; /* Above a map panel if any */
}
#umap-ui-container.dark {
border-left: 1px solid #222;
background-color: var(--color-darkGray);
color: #efefef;
}
#umap-ui-container.fullwidth {
width: 100%;
right: -100%;
z-index: 10000;
padding-left: 0;
padding-right: 0;
}
.umap-caption-bar-enabled #umap-ui-container {
bottom: 46px;
}
.leaflet-top, .leaflet-top,
.leaflet-right { .leaflet-right {
transition: all .7s; transition: all .7s;
} }
.umap-ui .leaflet-right {
right: 400px;
}
#umap-ui-container,
#umap-alert-container,
#umap-tooltip-container {
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
box-sizing: border-box;
}
#umap-ui-container .umap-popup-content img {
/* See https://github.com/Leaflet/Leaflet/commit/61d746818b99d362108545c151a27f09d60960ee#commitcomment-6061847 */
max-width: 99% !important;
}
#umap-ui-container .umap-popup-content {
max-height: inherit;
}
#umap-ui-container .body {
clear: both;
height: calc(100% - 54px); /* Minus size of toolbox */
}
#umap-ui-container .toolbox {
padding: 5px 10px;
overflow: hidden;
display: flex;
flex-direction: row-reverse;
font-size: 10px;
justify-content: flex-start;
gap: 5px;
}
#umap-ui-container .toolbox li {
color: #2e3436;
line-height: 32px;
cursor: pointer;
float: right;
display: inline;
padding: 0 7px;
border: 1px solid #b6b6b3;
border-radius: 2px;
}
#umap-ui-container.dark .toolbox li {
color: #d3dfeb;
border: 1px solid #202425;
}
#umap-ui-container .toolbox li:hover {
color: #2e3436;
background-color: #d4d4d2;
}
#umap-ui-container.dark .toolbox li:hover {
color: #eeeeec;
background-color: #353c3e;
}
.dark input, .dark textarea {
background-color: #232729;
border-color: #1b1f20;
/*box-shadow: inset 0 0 0 1px #215d9c;*/
color: #efefef;
}
input:invalid {
border-color: red;
background-color: darkred;
}
/* *********** */ /* *********** */
@ -897,27 +816,6 @@ input:invalid {
/* *********** */ /* *********** */
/* Close link */ /* Close link */
/* *********** */ /* *********** */
.umap-close-icon {
background-repeat: no-repeat;
background-image: url('./img/16.svg');
background-position: -28px -6px;
display: inline;
padding: 0 10px;
vertical-align: middle;
}
.dark .umap-close-icon {
background-image: url('./img/16-white.svg');
}
.dark .umap-close-link {
border: 1px solid #202425;
color: #eeeeec;
padding: 0 7px;
line-height: 32px;
background-color: var(--color-darkGray);
}
.dark .umap-close-link:hover {
background-color: #2e3436;
}
#umap-alert-container .umap-close-link { #umap-alert-container .umap-close-link {
color: #fff; color: #fff;
float: right; float: right;
@ -962,35 +860,7 @@ input:invalid {
/* *********** */ /* *********** */
/* Mobile */ /* Mobile */
/* *********** */ /* *********** */
@media all and (orientation:landscape) {
.umap-edit-enabled #umap-ui-container {
top: 46px;
}
#umap-ui-container {
width: 400px;
right: -400px;
top: 0;
}
.umap-ui #umap-ui-container {
right: 0;
visibility: visible;
}
}
@media all and (orientation:portrait) { @media all and (orientation:portrait) {
#umap-ui-container {
height: 50%;
max-height: 400px;
width: 100%;
bottom: 0;
right: -100%;
}
.umap-ui #umap-ui-container {
right: 0;
visibility: visible;
}
.umap-ui .leaflet-right {
right: 0;
}
#umap-alert-container { #umap-alert-container {
width: 100%; width: 100%;
left: 0; left: 0;

View file

@ -17,22 +17,6 @@ input:-moz-placeholder, :-moz-placeholder {
color: #a5a5a5; color: #a5a5a5;
} }
#umap-ui-container textarea {
height: 100px;
margin-bottom: 14px;
}
#umap-ui-container select {
margin-bottom: 10px;
}
#umap-ui-container.warning .button {
background-color: #c60f13;
border: 1px solid #7f0a0c;
}
#umap-ui-container.warning .button:hover {
background-color: #970b0e;
}
/* **************** */ /* **************** */
/* Login icons */ /* Login icons */
@ -194,9 +178,6 @@ h2.tabs a:hover {
color: #efefef; color: #efefef;
text-decoration: underline; text-decoration: underline;
} }
body.content #umap-ui-container {
background-color: #fff;
}
/* **************************** */ /* **************************** */
@ -356,23 +337,24 @@ ul.umap-autocomplete {
height: 36px; height: 36px;
width: 36px; width: 36px;
margin: 3px; margin: 3px;
background-position: initial;
} }
.icon-view { .content .icon-view {
background-image: url('./img/icon-view.svg'); background-image: url('./img/icon-view.svg');
} }
.icon-share { .content .icon-share {
background-image: url('./img/icon-share.svg'); background-image: url('./img/icon-share.svg');
} }
.icon-edit { .content .icon-edit {
background-image: url('./img/icon-edit.svg'); background-image: url('./img/icon-edit.svg');
} }
.icon-download { .content .icon-download {
background-image: url('./img/icon-download.svg'); background-image: url('./img/icon-download.svg');
} }
.icon-duplicate { .content .icon-duplicate {
background-image: url('./img/icon-duplicate.svg'); background-image: url('./img/icon-duplicate.svg');
} }
.icon-delete { .content .icon-delete {
background-image: url('./img/icon-delete.svg'); background-image: url('./img/icon-delete.svg');
} }
.table-header { .table-header {

View file

@ -0,0 +1,112 @@
/* Applied on i and button elements */
.icon {
background-repeat: no-repeat;
display: inline-block;
padding: 0 10px;
vertical-align: middle;
/* Reste default style, in case we apply this class on a button element */
border: none;
background-color: initial;
}
.icon-16 {
background-image: url('../img/16.svg');
height: 24px;
line-height: 24px;
}
.icon + span {
margin-left: 10px;
}
.dark .icon-16 {
background-image: url('../img/16-white.svg');
}
.icon-add {
background-position: -26px -24px;
}
.icon-back {
background-position: -122px -144px;
}
.icon-caption {
background-position: -98px -24px;
}
.icon-close {
background-position: -26px 0px;
}
.icon-delete {
background-position: -121px -49px;
}
.readonly .icon-delete,
.off .icon-delete {
background-position: -121px -122px;
}
.icon-drag {
background-position: -72px -73px;
cursor: move;
float: right;
}
.icon-eye {
background-position: -49px -26px;
}
.off .icon-eye {
background-position: -73px -26px;
}
.icon-edit {
background-position: -51px -49px;
}
.off .icon-edit {
background-position: -51px -73px;
}
.icon-key {
background-position: -144px -121px;
}
.icon-layers {
background-position: -96px -120px;
}
.icon-list {
background-position: -28px -99px;
}
.icon-marker {
background-position: -72px -120px;
}
.icon-polygon {
background-position: -24px -119px;
}
.icon-polyline {
background-position: 0 -119px;
}
.icon-resize {
background-position: -74px -144px;
}
.expanded .icon-resize {
background-position: -50px -144px;
}
.icon-search {
background-position: -27px -120px;
}
.icon-settings {
background-position: -23px -97px;
}
.icon-share {
background-position: 0px -120px;
}
.icon-table {
background-position: -50px -1px;
}
.readonly .icon-table,
.off .icon-table {
background-position: -74px -1px;
}
.remotelayer .icon-table {
display: none !important;
}
.icon-tilelayer {
background-position: -98px -141px;
}
.icon-upload {
background-position: -144px -97px;
}
.icon-zoom {
background-position: -1px -49px;
}
.off .icon-zoom {
background-position: -25px -49px;
}

View file

@ -0,0 +1,140 @@
.panel {
/* Added for playwright to consider the element as non visible */
/* as being out of the visible viewport is not enough */
visibility: hidden;
position: absolute;
bottom: var(--panel-bottom);
overflow-x: auto;
z-index: 1010;
background-color: #fff;
opacity: 0.98;
cursor: initial;
border-radius: 5px;
border: 1px solid var(--color-lightGray);
}
.panel.dark {
border: 1px solid #222;
background-color: var(--color-darkGray);
color: #efefef;
}
.panel.full {
width: initial;
right: -100%;
z-index: 1030;
}
.panel.full.on {
visibility: visible;
right: var(--panel-gutter);
left: var(--panel-gutter);
top: var(--header-height);
height: initial;
max-height: initial;
}
.umap-caption-bar-enabled .panel {
bottom: calc(var(--footer-height) + var(--panel-bottom));
}
.panel {
box-sizing: border-box;
}
.panel .umap-popup-content img {
/* See https://github.com/Leaflet/Leaflet/commit/61d746818b99d362108545c151a27f09d60960ee#commitcomment-6061847 */
max-width: 99% !important;
}
.panel .umap-popup-content {
max-height: inherit;
}
.panel .body {
height: calc(100% - var(--panel-header-height)); /* Minus size of toolbox */
padding: var(--panel-gutter);
}
.panel .toolbox {
padding: 5px 10px;
overflow: hidden;
display: flex;
flex-direction: row-reverse;
font-size: 10px;
justify-content: flex-start;
gap: 5px;
line-height: 2.2em;
background-color: #fff;
position: sticky;
top: 0;
height: var(--panel-header-height);
}
.panel.dark .toolbox {
background-color: var(--color-darkGray);
}
.panel .toolbox li {
cursor: pointer;
display: inline;
padding: 0 2px;
border: 1px solid #b6b6b3;
border-radius: 2px;
}
.panel.dark .toolbox
.panel.dark .toolbox li {
color: #d3dfeb;
border: 1px solid #202425;
}
.panel .toolbox li:hover {
background-color: #d4d4d2;
}
.panel.dark .toolbox li:hover {
background-color: #353c3e;
}
.panel h3 {
line-height: 3;
}
@media all and (orientation:landscape) {
.panel {
top: 0;
margin-top: var(--panel-gutter);
width: var(--panel-width);
}
.panel.condensed {
max-height: 500px;
bottom: initial;
}
.panel.right {
right: calc(0px - var(--panel-width));
}
.panel.left {
left: calc(0px - var(--panel-width));
}
.panel.left.on {
left: calc(var(--panel-gutter) * 2 + var(--control-size));
visibility: visible;
}
.panel.right.on {
right: calc(var(--panel-gutter) * 2 + var(--control-size));
visibility: visible;
}
.umap-edit-enabled .panel {
top: var(--header-height);
}
}
@media all and (orientation:portrait) {
.panel {
height: 50%;
max-height: 400px;
width: 100%;
bottom: 0;
right: -100%;
}
.panel.left {
left: -100%;
}
.panel.on {
right: 0;
left: 0;
visibility: visible;
}
.panel li.umap-resize-link {
display: none;
}
.umap-caption-bar-enabled .panel {
bottom: var(--footer-height);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
}

View file

@ -150,7 +150,7 @@
<path id="path438" d="m9 849.94v4.05c0 0.20708 0.1679 0.375 0.375 0.375h5.25c0.20708 0 0.375-0.16792 0.375-0.375v-4.05c0-0.20708-0.16792-0.375-0.375-0.375h-5.25c-0.2071 0-0.375 0.16792-0.375 0.375z"/> <path id="path438" d="m9 849.94v4.05c0 0.20708 0.1679 0.375 0.375 0.375h5.25c0.20708 0 0.375-0.16792 0.375-0.375v-4.05c0-0.20708-0.16792-0.375-0.375-0.375h-5.25c-0.2071 0-0.375 0.16792-0.375 0.375z"/>
<path id="save" d="m15.213 842.36h-8.8376c-0.2071 0-0.375 0.1679-0.375 0.37499v11.25c0 0.20708 0.1679 0.375 0.375 0.375h11.25c0.20708 0 0.375-0.16792 0.375-0.375v-8.6766c0-0.0953-0.0363-0.18697-0.1014-0.25648l-2.4124-2.5733c-0.07095-0.0756-0.16995-0.11853-0.2736-0.11853z"/> <path id="save" d="m15.213 842.36h-8.8376c-0.2071 0-0.375 0.1679-0.375 0.37499v11.25c0 0.20708 0.1679 0.375 0.375 0.375h11.25c0.20708 0 0.375-0.16792 0.375-0.375v-8.6766c0-0.0953-0.0363-0.18697-0.1014-0.25648l-2.4124-2.5733c-0.07095-0.0756-0.16995-0.11853-0.2736-0.11853z"/>
</g> </g>
<path id="close" d="m32.354 820.01-0.70703 0.70704 3.6465 3.6465-3.6465 3.6465 0.70703 0.70704 3.6465-3.6465 3.6465 3.6465 0.70703-0.70704-3.6465-3.6465 3.6465-3.6465-0.70703-0.70704-3.6465 3.6465z" color="#000000" fill="#f2f2f2" fill-rule="evenodd" stroke="#999" stroke-width=".18898"/> <path id="close" d="m32.354 820.01-0.70703 0.70704 3.6465 3.6465-3.6465 3.6465 0.70703 0.70704 3.6465-3.6465 3.6465 3.6465 0.70703-0.70704-3.6465-3.6465 3.6465-3.6465-0.70703-0.70704-3.6465 3.6465z" color="#000000" fill="#f2f2f2" fill-rule="evenodd"/>
<g id="eye" transform="translate(51 843.33)" clip-path="url(#clip0_576_2753)" fill="#f2f2f2"> <g id="eye" transform="translate(51 843.33)" clip-path="url(#clip0_576_2753)" fill="#f2f2f2">
<path id="path1" d="m9 1c3.06 0 6.26 2.74 7.6 4.03-1.34 1.3-4.54 4.03-7.6 4.03s-6.26-2.73-7.6-4.03c1.34-1.29 4.53-4.03 7.6-4.03zm0-1c-4.5 0-9 5.03-9 5.03s4.5 5.03 9 5.03 9-5.03 9-5.03-4.5-5.03-9-5.03z"/> <path id="path1" d="m9 1c3.06 0 6.26 2.74 7.6 4.03-1.34 1.3-4.54 4.03-7.6 4.03s-6.26-2.73-7.6-4.03c1.34-1.29 4.53-4.03 7.6-4.03zm0-1c-4.5 0-9 5.03-9 5.03s4.5 5.03 9 5.03 9-5.03 9-5.03-4.5-5.03-9-5.03z"/>
<path id="path2" d="m9 3.64c0.77 0 1.39 0.63 1.39 1.39s-0.63001 1.39-1.39 1.39-1.39-0.63-1.39-1.39 0.63-1.39 1.39-1.39zm0-1c-1.32 0-2.39 1.07-2.39 2.39s1.07 2.39 2.39 2.39c1.32 0 2.39-1.07 2.39-2.39s-1.07-2.39-2.39-2.39z"/> <path id="path2" d="m9 3.64c0.77 0 1.39 0.63 1.39 1.39s-0.63001 1.39-1.39 1.39-1.39-0.63-1.39-1.39 0.63-1.39 1.39-1.39zm0-1c-1.32 0-2.39 1.07-2.39 2.39s1.07 2.39 2.39 2.39c1.32 0 2.39-1.07 2.39-2.39s-1.07-2.39-2.39-2.39z"/>
@ -186,5 +186,9 @@
</g> </g>
<path id="path1286" d="m24.352 6.3088h0.03307v-3.6125h-3.7796v3.6125h0.03307zm-3.9787-4.1591h4.2439c0.06157 0 0.12062 0.024461 0.16417 0.068002s0.068 0.1026 0.068 0.16417v4.2439c0 0.061569-0.02445 0.12062-0.068 0.16417-0.04355 0.04355-0.1026 0.067998-0.16417 0.067998h-4.2439c-0.06158 0-0.12063-0.024447-0.16417-0.067998-0.04354-0.04355-0.068-0.10261-0.068-0.16417v-4.2439c0-0.061577 0.02446-0.12063 0.068-0.16417 0.04354-0.043541 0.1026-0.068002 0.16417-0.068002z" fill="#f2f2f2" stroke="#999" stroke-width=".065719"/> <path id="path1286" d="m24.352 6.3088h0.03307v-3.6125h-3.7796v3.6125h0.03307zm-3.9787-4.1591h4.2439c0.06157 0 0.12062 0.024461 0.16417 0.068002s0.068 0.1026 0.068 0.16417v4.2439c0 0.061569-0.02445 0.12062-0.068 0.16417-0.04355 0.04355-0.1026 0.067998-0.16417 0.067998h-4.2439c-0.06158 0-0.12063-0.024447-0.16417-0.067998-0.04354-0.04355-0.068-0.10261-0.068-0.16417v-4.2439c0-0.061577 0.02446-0.12063 0.068-0.16417 0.04354-0.043541 0.1026-0.068002 0.16417-0.068002z" fill="#f2f2f2" stroke="#999" stroke-width=".065719"/>
</g> </g>
<path id="path1-67" d="m133.73 963.36-4.7344 4.7344 5.0508 4.6836 1.3594-1.4668-3.5274-3.2695 3.2656-3.2656z" color="#000000" fill="#f2f2f2" fill-rule="evenodd" stroke="#999" stroke-width=".25"/>
<path id="path1-675" d="m87.167 966.62-3.1666-2.9964-3.1666 2.9964-0.83338-0.78858 3.4333-3.2487c0.31298-0.29613 0.82041-0.29613 1.1334 0l3.4332 3.2487zm-6.3333 3.4812 3.1666 2.9964 3.1666-2.9964 0.83336 0.78859-3.4333 3.2487c-0.31297 0.29608-0.82041 0.29608-1.1334 0l-3.4333-3.2487z" clip-rule="evenodd" fill="#efefef" fill-rule="evenodd"/>
<path id="path5" d="m63.167 974.36-3.1666-2.9964-3.1666 2.9964-0.83336-0.78859 3.4333-3.2487c0.31297-0.29608 0.82041-0.29608 1.1334 0l3.4333 3.2487z" fill="#efefef"/>
<path id="path1-675-2" d="m56 963.15 3.4332 3.2487c0.31298 0.29613 0.82041 0.29613 1.1334 0l3.4333-3.2487-0.83338-0.78858-3.1666 2.9964-3.1666-2.9964z" fill="#efefef"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View file

@ -35,9 +35,7 @@
<path id="path5338" d="m12 903.36c3.866 0 7-3.134 7-7 0-3.866-3.134-7-7-7s-7 3.134-7 7c0 3.866 3.134 7 7 7zm0.15625-2.9687a1.0001 1.0001 0 0 1-0.09375 0 1.0001 1.0001 0 0 1-0.65625-1.8125l1.625-1.2188h-5.0312a1.0001 1.0001 0 1 1 0-2h5l-1.5938-1.1875a1.0001 1.0001 0 1 1 1.1875-1.5937l3.7188 2.7812a1.0044 1.0044 0 0 1 0.15625 1.9063l-3.875 2.9062a1.0001 1.0001 0 0 1-0.4375 0.2188z" fill="#f2f2f2"/> <path id="path5338" d="m12 903.36c3.866 0 7-3.134 7-7 0-3.866-3.134-7-7-7s-7 3.134-7 7c0 3.866 3.134 7 7 7zm0.15625-2.9687a1.0001 1.0001 0 0 1-0.09375 0 1.0001 1.0001 0 0 1-0.65625-1.8125l1.625-1.2188h-5.0312a1.0001 1.0001 0 1 1 0-2h5l-1.5938-1.1875a1.0001 1.0001 0 1 1 1.1875-1.5937l3.7188 2.7812a1.0044 1.0044 0 0 1 0.15625 1.9063l-3.875 2.9062a1.0001 1.0001 0 0 1-0.4375 0.2188z" fill="#f2f2f2"/>
<path id="path5340" d="m12 913.36c-3.866 0-7 3.134-7 7 0 3.8661 3.134 7.0001 7 7.0001s7-3.134 7-7.0001c0-3.866-3.134-7-7-7zm-0.15625 1.7187a1.2501 1.2501 0 0 1 0.125 0 1.2501 1.2501 0 0 1 1.2812 1.2813v2.75h2.75a1.2501 1.2501 0 1 1 0 2.5h-2.75v2.7501a1.2501 1.2501 0 1 1-2.5 0v-2.7501h-2.75a1.2516 1.2516 0 0 1-0.125-2.5 1.2501 1.2501 0 0 1 0.125 0h2.75v-2.75a1.2501 1.2501 0 0 1 1.0938-1.2813z" fill="#f2f2f2"/> <path id="path5340" d="m12 913.36c-3.866 0-7 3.134-7 7 0 3.8661 3.134 7.0001 7 7.0001s7-3.134 7-7.0001c0-3.866-3.134-7-7-7zm-0.15625 1.7187a1.2501 1.2501 0 0 1 0.125 0 1.2501 1.2501 0 0 1 1.2812 1.2813v2.75h2.75a1.2501 1.2501 0 1 1 0 2.5h-2.75v2.7501a1.2501 1.2501 0 1 1-2.5 0v-2.7501h-2.75a1.2516 1.2516 0 0 1-0.125-2.5 1.2501 1.2501 0 0 1 0.125 0h2.75v-2.75a1.2501 1.2501 0 0 1 1.0938-1.2813z" fill="#f2f2f2"/>
<path id="table" d="m54 819.36v2h12v-2zm0 3v1h4v-1zm5 0v1h7v-1zm-5 2v1h4v-1zm5 0v1h7v-1zm-5 2v1h4v-1zm5 0v1h7v-1zm-5 2v1h4v-1zm5 0v1h7v-1z" fill="#464646"/> <path id="table" d="m54 819.36v2h12v-2zm0 3v1h4v-1zm5 0v1h7v-1zm-5 2v1h4v-1zm5 0v1h7v-1zm-5 2v1h4v-1zm5 0v1h7v-1zm-5 2v1h4v-1zm5 0v1h7v-1z" fill="#464646"/>
<g id="close" transform="translate(-4 -172)" fill="#4d4d4d"> <path id="close-9" d="m32.353 820.01-0.70703 0.70704 3.6465 3.6465-3.6465 3.6465 0.70703 0.70704 3.6465-3.6465 3.6465 3.6465 0.70703-0.70704-3.6465-3.6465 3.6465-3.6465-0.70703-0.70704-3.6465 3.6465z" color="#000000" fill="#4d4d4d" fill-rule="evenodd"/>
<path id="path4384" d="m35.742 999.44 3.0762-3.0762-3.0664-3.0664 1.1914-1.1914 3.0664 3.0664 3.0566-3.0566 1.1719 1.1816-3.0469 3.0566 3.0664 3.0664-1.1914 1.1914-3.0664-3.0664-3.0762 3.0762-1.1816-1.1816" fill="#4d4d4d"/>
</g>
<path id="add" d="m11.192 853.36 2e-6 -4.1999-4.1923 1e-5 -3e-6 -1.6267h4.1923v-4.1733l1.6088 7e-3 0.0067 4.1666h4.1923l-3.9e-5 1.6266-4.1922 4e-5 -1.5e-5 4.1999h-1.6155" fill="#4d4d4d"/> <path id="add" d="m11.192 853.36 2e-6 -4.1999-4.1923 1e-5 -3e-6 -1.6267h4.1923v-4.1733l1.6088 7e-3 0.0067 4.1666h4.1923l-3.9e-5 1.6266-4.1922 4e-5 -1.5e-5 4.1999h-1.6155" fill="#4d4d4d"/>
<path id="edit" d="m63.714 866.36-1.1428 1.1429 2.2857 2.2857 1.1428-1.1429zm-1.7143 1.7143-6.2857 6.2857 2.2857 2.2857 6.2857-6.2857zm-6.2857 6.2857-1.7143 4 4-1.7143z" fill="#4d4d4d"/> <path id="edit" d="m63.714 866.36-1.1428 1.1429 2.2857 2.2857 1.1428-1.1429zm-1.7143 1.7143-6.2857 6.2857 2.2857 2.2857 6.2857-6.2857zm-6.2857 6.2857-1.7143 4 4-1.7143z" fill="#4d4d4d"/>
<text id="text4457-6" x="39.647079" y="918.79706" fill="#000000" font-family="sans-serif" letter-spacing="0px" word-spacing="0px" style="line-height:0%" xml:space="preserve"><tspan id="tspan4459-6" x="39.647079" y="918.79706" font-family="sans-serif" font-size="30.476px" style="line-height:1.25"> </tspan></text> <text id="text4457-6" x="39.647079" y="918.79706" fill="#000000" font-family="sans-serif" letter-spacing="0px" word-spacing="0px" style="line-height:0%" xml:space="preserve"><tspan id="tspan4459-6" x="39.647079" y="918.79706" font-family="sans-serif" font-size="30.476px" style="line-height:1.25"> </tspan></text>
@ -177,6 +175,11 @@
<path id="path8303-6" d="m42.545 974.91c0 0.80333-0.65122 1.4546-1.4545 1.4546h-10.182c-0.80332 0-1.4545-0.65122-1.4545-1.4546h13.091z" fill="#464646" stroke-width=".72727"/> <path id="path8303-6" d="m42.545 974.91c0 0.80333-0.65122 1.4546-1.4545 1.4546h-10.182c-0.80332 0-1.4545-0.65122-1.4545-1.4546h13.091z" fill="#464646" stroke-width=".72727"/>
<path id="path16669" d="m36 963.88v8.3163" fill="none" marker-end="url(#Arrow1)" stroke="#464646" stroke-width="1.5"/> <path id="path16669" d="m36 963.88v8.3163" fill="none" marker-end="url(#Arrow1)" stroke="#464646" stroke-width="1.5"/>
</g> </g>
<path id="copy" d="m58.25 962.61v3.5h4v4h3.5v-7.5zm-4 4v7.5h7.5v-7.5z" fill="#4d4d4d" style="paint-order:fill markers stroke"/> <path id="copy" d="m154.25 962.61v3.5h4v4h3.5v-7.5zm-4 4v7.5h7.5v-7.5z" fill="#4d4d4d" style="paint-order:fill markers stroke"/>
<path id="path1" d="m134 964.36-4 4 4.2888 3.9769" fill="none" stroke="#4d4d4d" stroke-width="2"/>
<path id="path437" d="m113.38 943.56 0.9072 0.5491c0.1786 0.10817 0.2366 0.34196 0.1294 0.52223-0.0319 0.0535-0.0764 0.0983-0.1294 0.13055l-7.0072 4.2412-7.0071-4.2412c-0.17869-0.10817-0.23664-0.34196-0.12942-0.52222 0.0319-0.0536 0.0763-0.0984 0.12942-0.13056l0.90714-0.5491 6.0999 3.6922zm0 3.578 0.9072 0.5491c0.1786 0.1081 0.2366 0.3419 0.1294 0.5222-0.0319 0.0535-0.0764 0.0983-0.1294 0.1306l-6.6189 4.0061c-0.239 0.1447-0.53753 0.1447-0.77652 0l-6.6188-4.0061c-0.17869-0.1082-0.23664-0.342-0.12942-0.5223 0.0319-0.0536 0.0763-0.0984 0.12942-0.1305l0.90714-0.5491 6.0999 3.6921zm-5.7117-10.575 6.6189 4.0062c0.1786 0.10815 0.2366 0.34196 0.1294 0.52222-0.0319 0.0536-0.0764 0.0984-0.1294 0.13056l-7.0072 4.2412-7.0071-4.2412c-0.17869-0.10815-0.23664-0.34196-0.12942-0.52222 0.0319-0.0536 0.0763-0.0984 0.12942-0.13056l6.6188-4.0062c0.23899-0.14465 0.53752-0.14465 0.77652 0z" fill="#4d4d4d"/>
<path id="path1-675" d="m87.167 966.62-3.1666-2.9964-3.1666 2.9964-0.83338-0.78858 3.4333-3.2487c0.31298-0.29613 0.82041-0.29613 1.1334 0l3.4332 3.2487zm-6.3333 3.4812 3.1666 2.9964 3.1666-2.9964 0.83336 0.78859-3.4333 3.2487c-0.31297 0.29608-0.82041 0.29608-1.1334 0l-3.4333-3.2487z" clip-rule="evenodd" fill="#464646" fill-rule="evenodd"/>
<path id="path5" d="m63.167 974.36-3.1666-2.9964-3.1666 2.9964-0.83336-0.78859 3.4333-3.2487c0.31297-0.29608 0.82041-0.29608 1.1334 0l3.4333 3.2487z" fill="#464646"/>
<path id="path1-675-2" d="m56 963.15 3.4332 3.2487c0.31298 0.29613 0.82041 0.29613 1.1334 0l3.4333-3.2487-0.83338-0.78858-3.1666 2.9964-3.1666-2.9964z" fill="#464646"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View file

@ -33,7 +33,6 @@
<path id="rect4058-1-2" d="m2.8498 33.337v0.13229 0.79375 0.13229h0.13229 0.34727l-0.42168 3.7042h-0.45475-0.13229v0.13229 0.79375 0.13229h0.13229 0.79375 0.13229v-0.13229-0.42169s3.6292-2.8856 3.6298-2.8856h0.47129 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.79375-0.13229v0.13229 0.21497l-2.6458-0.95086v-0.58703-0.13229h-0.13229-0.79375zm0.26458 0.26458h0.52917v0.52917h-0.52917zm3.7042 1.3229h0.52917v0.52917h-0.52917zm-4.2333 3.4396h0.52917v0.52917h-0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/> <path id="rect4058-1-2" d="m2.8498 33.337v0.13229 0.79375 0.13229h0.13229 0.34727l-0.42168 3.7042h-0.45475-0.13229v0.13229 0.79375 0.13229h0.13229 0.79375 0.13229v-0.13229-0.42169s3.6292-2.8856 3.6298-2.8856h0.47129 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.79375-0.13229v0.13229 0.21497l-2.6458-0.95086v-0.58703-0.13229h-0.13229-0.79375zm0.26458 0.26458h0.52917v0.52917h-0.52917zm3.7042 1.3229h0.52917v0.52917h-0.52917zm-4.2333 3.4396h0.52917v0.52917h-0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/>
<path id="rect4058-1-2-0" d="m4.9168 40.217h-0.92604-0.13229v0.13229 0.79375 0.13229h0.13229 0.79375 0.13229v-0.13229-0.42167l2.6458-0.1819v0.33898 0.13229h0.13229 0.79375 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.30592l-0.64492-2.1167h0.47129 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.79375-0.1819v0.79375s-2.0671 2.6458-2.1167 2.6458zm2.4309-3.175h0.52917v0.52917h-0.52917zm0.47956 3.175h0.52917v0.52917h-0.52917zm-3.7042 0.26458h0.52917v0.52917h-0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/> <path id="rect4058-1-2-0" d="m4.9168 40.217h-0.92604-0.13229v0.13229 0.79375 0.13229h0.13229 0.79375 0.13229v-0.13229-0.42167l2.6458-0.1819v0.33898 0.13229h0.13229 0.79375 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.30592l-0.64492-2.1167h0.47129 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.79375-0.1819v0.79375s-2.0671 2.6458-2.1167 2.6458zm2.4309-3.175h0.52917v0.52917h-0.52917zm0.47956 3.175h0.52917v0.52917h-0.52917zm-3.7042 0.26458h0.52917v0.52917h-0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/>
</g> </g>
<path id="download" class="sprite" d="m23.812 26.987c1.7535 0 3.175-1.4215 3.175-3.175 0-1.7535-1.4215-3.175-3.175-3.175-1.7535 0-3.175 1.4215-3.175 3.175 0 1.7535 1.4215 3.175 3.175 3.175zm0-1.3229-1.8521-1.8521h1.3229v-1.5875h1.0583v1.5875h1.3229z" fill="#f2f2f2" stroke="#999" stroke-width=".066146"/>
<g id="multiline" fill="#f2f2f2" stroke="#999" stroke-width=".066146"> <g id="multiline" fill="#f2f2f2" stroke="#999" stroke-width=".066146">
<path id="rect4058-9" d="m11.906 29.898v0.13229 0.79375 0.13229h0.13229 0.79375 0.13229v-0.13229-0.09096l2.6458 1.0583v0.35555 0.11576l0.28939 0.0164h0.63665 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.79375-0.13229v0.13229 0.14883l-2.6458-1.0583v-0.41341-0.13229h-0.13229-0.79375zm0.26458 0.26458h0.52917v0.52917h-0.52917zm3.7042 1.3229h0.52917v0.52917h-0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/> <path id="rect4058-9" d="m11.906 29.898v0.13229 0.79375 0.13229h0.13229 0.79375 0.13229v-0.13229-0.09096l2.6458 1.0583v0.35555 0.11576l0.28939 0.0164h0.63665 0.13229v-0.13229-0.79375-0.13229h-0.13229-0.79375-0.13229v0.13229 0.14883l-2.6458-1.0583v-0.41341-0.13229h-0.13229-0.79375zm0.26458 0.26458h0.52917v0.52917h-0.52917zm3.7042 1.3229h0.52917v0.52917h-0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/>
<path id="rect4058-9-5" d="m12.989 32.32v0.35555 0.11576l1.8769 2.927h0.63665 0.13229v0.13229 0.79375 0.13229h-0.13229-0.79375-0.13229v-0.13229-0.79375-0.09922l-1.8769-2.9435h-0.63665-0.13229v-0.13229-0.79375-0.13229h0.13229 0.79375 0.13229v0.13229 0.14883zm-0.26458-0.30591h-0.52917v0.52917h0.52917zm2.6458 3.9688h-0.52917v0.52917h0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/> <path id="rect4058-9-5" d="m12.989 32.32v0.35555 0.11576l1.8769 2.927h0.63665 0.13229v0.13229 0.79375 0.13229h-0.13229-0.79375-0.13229v-0.13229-0.79375-0.09922l-1.8769-2.9435h-0.63665-0.13229v-0.13229-0.79375-0.13229h0.13229 0.79375 0.13229v0.13229 0.14883zm-0.26458-0.30591h-0.52917v0.52917h0.52917zm2.6458 3.9688h-0.52917v0.52917h0.52917z" color="#000000" style="text-decoration-line:none;text-indent:0;text-transform:none"/>
@ -58,5 +57,8 @@
</g> </g>
<path id="path1286" d="m24.352 6.3088h0.03307v-3.6125h-3.7796v3.6125h0.03307zm-3.9787-4.1591h4.2439c0.06157 0 0.12062 0.024461 0.16417 0.068002s0.068 0.1026 0.068 0.16417v4.2439c0 0.061569-0.02445 0.12062-0.068 0.16417-0.04355 0.04355-0.1026 0.067998-0.16417 0.067998h-4.2439c-0.06158 0-0.12063-0.024447-0.16417-0.067998-0.04354-0.04355-0.068-0.10261-0.068-0.16417v-4.2439c0-0.061577 0.02446-0.12063 0.068-0.16417 0.04354-0.043541 0.1026-0.068002 0.16417-0.068002z" fill="#f2f2f2" stroke="#999" stroke-width=".065719"/> <path id="path1286" d="m24.352 6.3088h0.03307v-3.6125h-3.7796v3.6125h0.03307zm-3.9787-4.1591h4.2439c0.06157 0 0.12062 0.024461 0.16417 0.068002s0.068 0.1026 0.068 0.16417v4.2439c0 0.061569-0.02445 0.12062-0.068 0.16417-0.04355 0.04355-0.1026 0.067998-0.16417 0.067998h-4.2439c-0.06158 0-0.12063-0.024447-0.16417-0.067998-0.04354-0.04355-0.068-0.10261-0.068-0.16417v-4.2439c0-0.061577 0.02446-0.12063 0.068-0.16417 0.04354-0.043541 0.1026-0.068002 0.16417-0.068002z" fill="#f2f2f2" stroke="#999" stroke-width=".065719"/>
</g> </g>
<g id="info" transform="matrix(.33073 0 0 .33073 -11.906 -256.1)" stroke-width=".8">
<path id="path3762" d="m108 838.36a8 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-8zm0 2.5a1.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.5zm-1 4.5h2v6h-2z" fill="#f2f2f2" stroke="#999" stroke-width=".2"/>
</g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -12,10 +12,6 @@
<text id="text4455" x="49.170559" y="964.36218" font-family="sans-serif" letter-spacing="0px" word-spacing="0px" style="line-height:0%" xml:space="preserve"><tspan id="tspan4457" x="49.170559" y="964.36218" fill="#4d4d4d" font-family="sans-serif" font-size="8px" font-weight="bold" style="line-height:1.25">0</tspan></text> <text id="text4455" x="49.170559" y="964.36218" font-family="sans-serif" letter-spacing="0px" word-spacing="0px" style="line-height:0%" xml:space="preserve"><tspan id="tspan4457" x="49.170559" y="964.36218" fill="#4d4d4d" font-family="sans-serif" font-size="8px" font-weight="bold" style="line-height:1.25">0</tspan></text>
<text id="text4459" x="65.048965" y="964.36218" font-family="sans-serif" letter-spacing="0px" word-spacing="0px" style="line-height:0%" xml:space="preserve"><tspan id="tspan4461" x="65.048965" y="964.36218" fill="#4d4d4d" font-family="sans-serif" font-size="8px" font-weight="bold" style="line-height:1.25">1</tspan></text> <text id="text4459" x="65.048965" y="964.36218" font-family="sans-serif" letter-spacing="0px" word-spacing="0px" style="line-height:0%" xml:space="preserve"><tspan id="tspan4461" x="65.048965" y="964.36218" fill="#4d4d4d" font-family="sans-serif" font-size="8px" font-weight="bold" style="line-height:1.25">1</tspan></text>
</g> </g>
<g id="copyleft" class="sprite" transform="matrix(.26458 0 0 .26458 1.5821 -226.06)">
<circle id="circle3841" transform="matrix(.020408 0 0 .020408 74 934.36)" cx="490" cy="490" r="440" fill="none" stroke="#4d4d4d" stroke-width="100"/>
<path id="path3843" d="m83.918 938.75c-2.6531 0-4.8775 1.8572-5.449 4.3469h2.6735c0.48979-1.0612 1.551-1.7959 2.7755-1.7959 1.6939 0 3.0612 1.3673 3.0612 3.0612 0 1.6938-1.3674 3.0612-3.0612 3.0612-1.2245 0-2.2857-0.73467-2.7755-1.7755h-2.6735c0.57142 2.4694 2.7959 4.3266 5.449 4.3266 3.102 0 5.6122-2.5102 5.6122-5.6122 0-3.1021-2.5102-5.6122-5.6122-5.6122z" fill="#4d4d4d"/>
</g>
<g id="markers" class="sprite" transform="matrix(.26458 0 0 .26458 14.287 -226.05)" fill="#4d4d4d"> <g id="markers" class="sprite" transform="matrix(.26458 0 0 .26458 14.287 -226.05)" fill="#4d4d4d">
<path id="rect2985" d="m105.25 934.36c-3.1775 0-6.346 2.1278-7.2539 6.3794 0 2.551 1.8067 7.6679 7.2539 13.62 1.4637-1.5994 2.6694-3.1177 3.644-4.5613-1.4505-2.1639-2.415-4.0873-2.9628-5.7095-0.22599 0.041-0.44225 0.063-0.68112 0.063-2.0056 0-3.644-1.5346-3.644-3.413 0-1.8785 1.6384-3.3811 3.644-3.3811 0.51205 0 0.98854 0.076 1.4303 0.2552 0.64347-0.9222 1.4345-1.6571 2.3158-2.169-1.1444-0.7114-2.4463-1.0845-3.7461-1.0845z"/> <path id="rect2985" d="m105.25 934.36c-3.1775 0-6.346 2.1278-7.2539 6.3794 0 2.551 1.8067 7.6679 7.2539 13.62 1.4637-1.5994 2.6694-3.1177 3.644-4.5613-1.4505-2.1639-2.415-4.0873-2.9628-5.7095-0.22599 0.041-0.44225 0.063-0.68112 0.063-2.0056 0-3.644-1.5346-3.644-3.413 0-1.8785 1.6384-3.3811 3.644-3.3811 0.51205 0 0.98854 0.076 1.4303 0.2552 0.64347-0.9222 1.4345-1.6571 2.3158-2.169-1.1444-0.7114-2.4463-1.0845-3.7461-1.0845z"/>
<path id="path3378" d="m111 934.36c-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.064 7-13.617-0.875-4.2553-3.9375-6.383-7-6.383zm0 2.9788c1.933 0 3.5 1.5241 3.5 3.4042s-1.567 3.4043-3.5 3.4043c-1.933 0-3.5-1.5242-3.5-3.4043s1.567-3.4042 3.5-3.4042z"/> <path id="path3378" d="m111 934.36c-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.064 7-13.617-0.875-4.2553-3.9375-6.383-7-6.383zm0 2.9788c1.933 0 3.5 1.5241 3.5 3.4042s-1.567 3.4043-3.5 3.4043c-1.933 0-3.5-1.5242-3.5-3.4043s1.567-3.4042 3.5-3.4042z"/>
@ -86,5 +82,8 @@
</g> </g>
<path id="path2378" d="m25.147 1.8521h-4.2439c-0.07035 0-0.13782 0.027946-0.18756 0.077689-0.04974 0.049744-0.07769 0.11721-0.07769 0.18756v4.2439c0 0.070353 0.02795 0.13782 0.07769 0.18756 0.04974 0.049742 0.11721 0.077682 0.18756 0.077682h4.2439c0.07035 0 0.13782-0.02794 0.18756-0.077682 0.04974-0.049742 0.07768-0.11721 0.07768-0.18756v-4.2439c0-0.070349-0.02794-0.13782-0.07768-0.18756-0.04974-0.049743-0.11721-0.077689-0.18756-0.077689zm-0.26524 4.1591h-3.7135v-3.5463h3.7135z" fill="#464646" stroke-width=".26458"/> <path id="path2378" d="m25.147 1.8521h-4.2439c-0.07035 0-0.13782 0.027946-0.18756 0.077689-0.04974 0.049744-0.07769 0.11721-0.07769 0.18756v4.2439c0 0.070353 0.02795 0.13782 0.07769 0.18756 0.04974 0.049742 0.11721 0.077682 0.18756 0.077682h4.2439c0.07035 0 0.13782-0.02794 0.18756-0.077682 0.04974-0.049742 0.07768-0.11721 0.07768-0.18756v-4.2439c0-0.070349-0.02794-0.13782-0.07768-0.18756-0.04974-0.049743-0.11721-0.077689-0.18756-0.077689zm-0.26524 4.1591h-3.7135v-3.5463h3.7135z" fill="#464646" stroke-width=".26458"/>
</g> </g>
<g id="info" transform="matrix(.33073 0 0 .33073 -11.906 -256.1)" fill="#4d4d4d" stroke-width=".8">
<path id="path3762" d="m108 838.36a8 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-8zm0 2.5a1.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.5zm-1 4.5h2v6h-2v-6z" fill="#4d4d4d"/>
</g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View file

@ -10,7 +10,7 @@
<path d="M 16.0401,2.3158 H 2.005 v 14.0351 h 14.0351 z" fill="#ffffff" id="path2351" /> <path d="M 16.0401,2.3158 H 2.005 v 14.0351 h 14.0351 z" fill="#ffffff" id="path2351" />
</mask> </mask>
</defs> </defs>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="17.305658" inkscape:cx="54.779771" inkscape:cy="162.69245" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" inkscape:window-height="1011" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" showguides="true" inkscape:guide-bbox="true" inkscape:snap-grids="true" inkscape:snap-to-guides="true" inkscape:showpageshadow="2" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1"> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="21.380532" inkscape:cx="34.119824" inkscape:cy="18.264279" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" inkscape:window-height="1011" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" showguides="true" inkscape:guide-bbox="true" inkscape:snap-grids="true" inkscape:snap-to-guides="true" inkscape:showpageshadow="2" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1">
<inkscape:grid type="xygrid" id="grid3004" empspacing="4" visible="true" enabled="true" snapvisiblegridlinesonly="true" originx="0" originy="0" spacingy="1" spacingx="1" units="px" /> <inkscape:grid type="xygrid" id="grid3004" empspacing="4" visible="true" enabled="true" snapvisiblegridlinesonly="true" originx="0" originy="0" spacingy="1" spacingx="1" units="px" />
<sodipodi:guide orientation="-1,0" position="24,168" id="guide3084" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" /> <sodipodi:guide orientation="-1,0" position="24,168" id="guide3084" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" />
<sodipodi:guide orientation="0,1" position="0,120" id="guide3086" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" /> <sodipodi:guide orientation="0,1" position="0,120" id="guide3086" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" />
@ -54,9 +54,7 @@
<path inkscape:connector-curvature="0" style="fill:#f2f2f2;fill-opacity:1;stroke:none" d="m 12,913.36213 c -3.865993,0 -7,3.134 -7,7 0,3.8661 3.134007,7.0001 7,7.0001 3.865993,0 7,-3.134 7,-7.0001 0,-3.866 -3.134007,-7 -7,-7 z m -0.15625,1.7187 a 1.250125,1.250125 0 0 1 0.125,0 1.250125,1.250125 0 0 1 1.28125,1.2813 v 2.75 H 16 a 1.250125,1.250125 0 1 1 0,2.5 h -2.75 v 2.7501 a 1.250125,1.250125 0 1 1 -2.5,0 v -2.7501 H 8 a 1.2515615,1.2515615 0 0 1 -0.125,-2.5 1.250125,1.250125 0 0 1 0.125,0 h 2.75 v -2.75 a 1.250125,1.250125 0 0 1 1.09375,-1.2813 z" id="path5340" inkscape:export-filename="/home/ybon/Code/js/leaflet-storage/src/img/zoom-grey-16.png" inkscape:export-xdpi="89.996864" inkscape:export-ydpi="89.996864" /> <path inkscape:connector-curvature="0" style="fill:#f2f2f2;fill-opacity:1;stroke:none" d="m 12,913.36213 c -3.865993,0 -7,3.134 -7,7 0,3.8661 3.134007,7.0001 7,7.0001 3.865993,0 7,-3.134 7,-7.0001 0,-3.866 -3.134007,-7 -7,-7 z m -0.15625,1.7187 a 1.250125,1.250125 0 0 1 0.125,0 1.250125,1.250125 0 0 1 1.28125,1.2813 v 2.75 H 16 a 1.250125,1.250125 0 1 1 0,2.5 h -2.75 v 2.7501 a 1.250125,1.250125 0 1 1 -2.5,0 v -2.7501 H 8 a 1.2515615,1.2515615 0 0 1 -0.125,-2.5 1.250125,1.250125 0 0 1 0.125,0 h 2.75 v -2.75 a 1.250125,1.250125 0 0 1 1.09375,-1.2813 z" id="path5340" inkscape:export-filename="/home/ybon/Code/js/leaflet-storage/src/img/zoom-grey-16.png" inkscape:export-xdpi="89.996864" inkscape:export-ydpi="89.996864" />
<path style="fill:#464646;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 54,819.36218 v 2 h 12 v -2 z m 0,3 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z m -5,2 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z m -5,2 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z m -5,2 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z" id="table" inkscape:connector-curvature="0" inkscape:label="" inkscape:export-filename="/home/ybon/Code/js/leaflet-storage/src/img/browse-data.png" inkscape:export-xdpi="89.996864" inkscape:export-ydpi="89.996864" /> <path style="fill:#464646;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 54,819.36218 v 2 h 12 v -2 z m 0,3 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z m -5,2 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z m -5,2 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z m -5,2 v 1 h 4 v -1 z m 5,0 v 1 h 7 v -1 z" id="table" inkscape:connector-curvature="0" inkscape:label="" inkscape:export-filename="/home/ybon/Code/js/leaflet-storage/src/img/browse-data.png" inkscape:export-xdpi="89.996864" inkscape:export-ydpi="89.996864" />
<g transform="translate(32,-54.000118)" 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" id="text3784-6" /> <g transform="translate(32,-54.000118)" 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" id="text3784-6" />
<g id="close" 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" transform="translate(-3.9999995,-172)"> <path id="close-9" style="color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.188976;stroke-dasharray:none;stroke-opacity:1" d="m 32.353032,820.00818 -0.707032,0.70704 3.646485,3.64648 -3.646485,3.64648 0.707032,0.70704 3.646484,-3.64649 3.646484,3.64649 0.707032,-0.70704 -3.646485,-3.64648 3.646485,-3.64648 -0.707032,-0.70704 -3.646484,3.64649 z" />
<path inkscape:connector-curvature="0" id="path4384" style="font-variant:normal;font-stretch:normal;font-size:20px;font-family:Arial;-inkscape-font-specification:Arial;fill:#4d4d4d" d="m 35.742187,999.43835 3.076172,-3.07617 -3.066406,-3.0664 1.191406,-1.19141 3.066407,3.06641 3.05664,-3.05664 1.171875,1.18164 -3.046875,3.05664 3.066406,3.0664 -1.191406,1.19138 L 40,997.54382 36.923828,1000.62 35.742187,999.43835" />
</g>
<path inkscape:connector-curvature="0" d="m 11.192241,853.36196 2e-6,-4.19993 -4.192255,1e-5 -3e-6,-1.62667 h 4.192263 v -4.17331 l 1.608812,0.007 0.0067,4.16664 h 4.192255 l -3.9e-5,1.62662 -4.19222,4e-5 -1.5e-5,4.19994 h -1.615475" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none" id="add" /> <path inkscape:connector-curvature="0" d="m 11.192241,853.36196 2e-6,-4.19993 -4.192255,1e-5 -3e-6,-1.62667 h 4.192263 v -4.17331 l 1.608812,0.007 0.0067,4.16664 h 4.192255 l -3.9e-5,1.62662 -4.19222,4e-5 -1.5e-5,4.19994 h -1.615475" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none" id="add" />
<path style="fill:#4d4d4d;fill-opacity:1;stroke:none" d="m 63.71429,866.36218 -1.14285,1.14286 2.28571,2.28572 L 66,868.6479 Z M 62,868.07646 l -6.285714,6.28574 2.285715,2.2857 6.285719,-6.28572 z M 55.714286,874.3622 54,878.36219 58.000001,876.6479 Z" id="edit" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccc" /> <path style="fill:#4d4d4d;fill-opacity:1;stroke:none" d="m 63.71429,866.36218 -1.14285,1.14286 2.28571,2.28572 L 66,868.6479 Z M 62,868.07646 l -6.285714,6.28574 2.285715,2.2857 6.285719,-6.28572 z M 55.714286,874.3622 54,878.36219 58.000001,876.6479 Z" id="edit" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccc" />
<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:#000000;fill-opacity:1;stroke:none" x="39.647079" y="918.79706" id="text4457-6"><tspan y="918.79706" x="39.647079" sodipodi:role="line" id="tspan4459-6" style="font-size:30.4762px;line-height:1.25;font-family:sans-serif"> </tspan></text> <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:#000000;fill-opacity:1;stroke:none" x="39.647079" y="918.79706" id="text4457-6"><tspan y="918.79706" x="39.647079" sodipodi:role="line" id="tspan4459-6" style="font-size:30.4762px;line-height:1.25;font-family:sans-serif"> </tspan></text>
@ -196,6 +194,11 @@
<path style="fill:#464646;fill-opacity:1;stroke-width:0.727273" d="m 42.545455,974.90763 c 0,0.80333 -0.651223,1.45455 -1.454546,1.45455 H 30.909091 c -0.803323,0 -1.454546,-0.65122 -1.454546,-1.45455 2.557093,0 9.805435,0 13.09091,0 z" id="path8303-6" /> <path style="fill:#464646;fill-opacity:1;stroke-width:0.727273" d="m 42.545455,974.90763 c 0,0.80333 -0.651223,1.45455 -1.454546,1.45455 H 30.909091 c -0.803323,0 -1.454546,-0.65122 -1.454546,-1.45455 2.557093,0 9.805435,0 13.09091,0 z" id="path8303-6" />
<path style="fill:none;fill-rule:evenodd;stroke:#464646;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1)" d="m 36,963.87832 v 8.3163" id="path16669" sodipodi:nodetypes="cc" /> <path style="fill:none;fill-rule:evenodd;stroke:#464646;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1)" d="m 36,963.87832 v 8.3163" id="path16669" sodipodi:nodetypes="cc" />
</g> </g>
<path id="copy" style="fill:#4d4d4d;paint-order:fill markers stroke" d="m 58.25,962.61218 v 3.5 h 4 v 4 h 3.5 v -7.5 z m -4,4 v 7.5 h 7.5 v -7.5 z" /> <path id="copy" style="fill:#4d4d4d;paint-order:fill markers stroke" d="m 154.25,962.61218 v 3.5 h 4 v 4 h 3.5 v -7.5 z m -4,4 v 7.5 h 7.5 v -7.5 z" />
<path style="fill:none;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none" d="m 134,964.36218 -4,4 4.28879,3.97691" id="path1" sodipodi:nodetypes="ccc" />
<path d="m 113.37897,943.55658 0.9072,0.5491 c 0.1786,0.10817 0.2366,0.34196 0.1294,0.52223 -0.0319,0.0535 -0.0764,0.0983 -0.1294,0.13055 l -7.00717,4.24121 -7.00708,-4.24121 c -0.17869,-0.10817 -0.23664,-0.34196 -0.12942,-0.52222 0.0319,-0.0536 0.0763,-0.0984 0.12942,-0.13056 l 0.90714,-0.5491 6.09994,3.69219 z m 0,3.57799 0.9072,0.5491 c 0.1786,0.1081 0.2366,0.3419 0.1294,0.5222 -0.0319,0.0535 -0.0764,0.0983 -0.1294,0.1306 l -6.61891,4.0061 c -0.239,0.1447 -0.53753,0.1447 -0.77652,0 l -6.61882,-4.0061 c -0.17869,-0.1082 -0.23664,-0.342 -0.12942,-0.5223 0.0319,-0.0536 0.0763,-0.0984 0.12942,-0.1305 l 0.90714,-0.5491 6.09994,3.6921 z m -5.71171,-10.57501 6.61891,4.00621 c 0.1786,0.10815 0.2366,0.34196 0.1294,0.52222 -0.0319,0.0536 -0.0764,0.0984 -0.1294,0.13056 l -7.00717,4.24119 -7.00708,-4.24119 c -0.17869,-0.10815 -0.23664,-0.34196 -0.12942,-0.52222 0.0319,-0.0536 0.0763,-0.0984 0.12942,-0.13056 l 6.61882,-4.00621 c 0.23899,-0.14465 0.53752,-0.14465 0.77652,0 z" fill="#4d4d4d" id="path437" style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.178;stroke-dasharray:none;stroke-opacity:1" />
<path fill-rule="evenodd" clip-rule="evenodd" d="m 87.166638,966.62162 -3.166579,-2.99638 -3.166613,2.99638 -0.833375,-0.78858 3.4333,-3.24873 c 0.312979,-0.29613 0.82041,-0.29613 1.133389,0 l 3.43324,3.24873 z m -6.333275,3.48122 3.166626,2.99639 3.166649,-2.99639 0.833362,0.78859 -3.433322,3.24872 c -0.312968,0.29608 -0.820411,0.29608 -1.133378,0 l -3.4333,-3.24872 z" fill="#efefef" id="path1-675" style="stroke-width:0.999996;fill:#464646;fill-opacity:1" />
<path style="fill:#464646;fill-opacity:1;stroke-width:0.999996" d="m 63.166637,974.36218 -3.166626,-2.99639 -3.166649,2.99639 -0.833362,-0.78859 3.433322,-3.24872 c 0.312968,-0.29608 0.820411,-0.29608 1.133378,0 l 3.4333,3.24872 z" id="path5" />
<path style="fill:#464646;fill-opacity:1;stroke-width:0.999996" d="m 56.000071,963.15076 3.43324,3.24873 c 0.312979,0.29613 0.82041,0.29613 1.133389,0 l 3.4333,-3.24873 -0.833375,-0.78858 -3.166613,2.99638 -3.166579,-2.99638 z" id="path1-675-2" />
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="180" height="180" viewBox="0 0 47.624994 47.624994" version="1.1" id="svg2876" inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" sodipodi:docname="24-white.svg" inkscape:export-filename="../24-white.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"> <svg width="180" height="180" viewBox="0 0 47.624994 47.624994" version="1.1" id="svg2876" inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" sodipodi:docname="24-white.svg" inkscape:export-filename="../24-white.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">
<sodipodi:namedview id="namedview2878" 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="8.6832784" inkscape:cx="145.10648" inkscape:cy="121.84338" inkscape:window-width="1920" inkscape:window-height="1019" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer1"> <sodipodi:namedview id="namedview2878" 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="8.2673128" inkscape:cx="89.569612" inkscape:cy="93.077402" inkscape:window-width="1920" inkscape:window-height="1011" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer1">
<inkscape:grid type="xygrid" id="grid2997" empspacing="4" originx="0" originy="0" spacingy="0.2645833" spacingx="0.2645833" units="px" visible="true" /> <inkscape:grid type="xygrid" id="grid2997" empspacing="4" originx="0" originy="0" spacingy="0.2645833" spacingx="0.2645833" units="px" visible="true" />
<sodipodi:guide position="9.525,47.625" orientation="-1,0" id="guide3404" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" /> <sodipodi:guide position="9.525,47.625" orientation="-1,0" id="guide3404" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" />
<sodipodi:guide position="0,38.099995" orientation="0,1" id="guide3408" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" /> <sodipodi:guide position="0,38.099995" orientation="0,1" id="guide3408" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" />
@ -54,7 +54,6 @@
<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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 2.8497553,33.337461 v 0.132292 0.79375 0.132292 h 0.132292 0.347266 l -0.42168,3.704166 h -0.454753 -0.132291 v 0.132292 0.79375 0.132292 h 0.132291 0.79375 0.132292 v -0.132292 -0.421693 c 0,0 3.6291619,-2.885599 3.6297519,-2.885599 h 0.47129 0.132291 v -0.132291 -0.79375 -0.132292 h -0.132291 -0.79375 -0.132292 v 0.132292 0.214974 l -2.645833,-0.95086 v -0.587031 -0.132292 h -0.132292 -0.7937499 z m 0.264584,0.264584 h 0.5291659 v 0.529166 h -0.5291659 z m 3.7041659,1.322916 h 0.529167 v 0.529167 h -0.529167 z m -4.2333329,3.439584 h 0.529167 v 0.529166 h -0.529167 z" id="rect4058-1-2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccc" /> <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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 2.8497553,33.337461 v 0.132292 0.79375 0.132292 h 0.132292 0.347266 l -0.42168,3.704166 h -0.454753 -0.132291 v 0.132292 0.79375 0.132292 h 0.132291 0.79375 0.132292 v -0.132292 -0.421693 c 0,0 3.6291619,-2.885599 3.6297519,-2.885599 h 0.47129 0.132291 v -0.132291 -0.79375 -0.132292 h -0.132291 -0.79375 -0.132292 v 0.132292 0.214974 l -2.645833,-0.95086 v -0.587031 -0.132292 h -0.132292 -0.7937499 z m 0.264584,0.264584 h 0.5291659 v 0.529166 h -0.5291659 z m 3.7041659,1.322916 h 0.529167 v 0.529167 h -0.529167 z m -4.2333329,3.439584 h 0.529167 v 0.529166 h -0.529167 z" id="rect4058-1-2" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccc" />
<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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 4.9168132,40.216628 h -0.926042 -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.793749 0.132292 v -0.132292 -0.79375 -0.132291 h -0.132292 -0.305924 l -0.644922,-2.116667 h 0.471289 0.132292 v -0.132292 -0.79375 -0.132291 h -0.132292 -0.79375 -0.181901 c 0,0.79375 0,0.79375 0,0.79375 0,0 -2.067057,2.645833 -2.116666,2.645833 z m 2.430859,-3.175 h 0.529167 v 0.529167 h -0.529167 z m 0.479557,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="rect4058-1-2-0" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccc" /> <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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 4.9168132,40.216628 h -0.926042 -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.793749 0.132292 v -0.132292 -0.79375 -0.132291 h -0.132292 -0.305924 l -0.644922,-2.116667 h 0.471289 0.132292 v -0.132292 -0.79375 -0.132291 h -0.132292 -0.79375 -0.181901 c 0,0.79375 0,0.79375 0,0.79375 0,0 -2.067057,2.645833 -2.116666,2.645833 z m 2.430859,-3.175 h 0.529167 v 0.529167 h -0.529167 z m 0.479557,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="rect4058-1-2-0" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccc" />
</g> </g>
<path style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 23.812498,26.987496 c 1.753504,0 3.175,-1.4215 3.175,-3.175 0,-1.753499 -1.421496,-3.174999 -3.175,-3.174999 -1.753505,0 -3.175,1.4215 -3.175,3.174999 0,1.7535 1.421495,3.175 3.175,3.175 z m 0,-1.322916 -1.852083,-1.852084 h 1.322916 v -1.587499 h 1.058333 v 1.587499 h 1.322917 z" id="download" class="sprite" />
<g id="multiline"> <g id="multiline">
<path inkscape:connector-curvature="0" 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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 11.906249,29.898045 v 0.132292 0.79375 0.132292 h 0.132291 0.79375 0.132292 v -0.132292 -0.09096 l 2.645832,1.058334 v 0.355547 0.115755 l 0.289388,0.0164 h 0.636654 0.132292 v -0.132292 -0.79375 -0.132291 h -0.132292 -0.79375 -0.132292 v 0.132291 0.148829 l -2.645832,-1.058334 v -0.413411 -0.132292 h -0.132292 -0.79375 z m 0.264583,0.264584 h 0.529167 v 0.529166 h -0.529167 z m 3.704166,1.322916 h 0.529166 v 0.529167 h -0.529166 z" id="rect4058-9" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" /> <path inkscape:connector-curvature="0" 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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 11.906249,29.898045 v 0.132292 0.79375 0.132292 h 0.132291 0.79375 0.132292 v -0.132292 -0.09096 l 2.645832,1.058334 v 0.355547 0.115755 l 0.289388,0.0164 h 0.636654 0.132292 v -0.132292 -0.79375 -0.132291 h -0.132292 -0.79375 -0.132292 v 0.132291 0.148829 l -2.645832,-1.058334 v -0.413411 -0.132292 h -0.132292 -0.79375 z m 0.264583,0.264584 h 0.529167 v 0.529166 h -0.529167 z m 3.704166,1.322916 h 0.529166 v 0.529167 h -0.529166 z" id="rect4058-9" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc" />
<path inkscape:connector-curvature="0" 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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 12.989387,32.320492 v 0.355547 0.115755 l 1.876888,2.926953 h 0.636653 0.132292 v 0.132292 0.79375 0.132291 h -0.132292 -0.79375 -0.132291 v -0.132291 -0.79375 -0.09922 l -1.876888,-2.94349 h -0.636654 -0.132292 v -0.132291 -0.79375 -0.132292 h 0.132292 0.79375 0.132292 v 0.132292 0.148828 z m -0.264584,-0.305912 h -0.529166 v 0.529167 h 0.529166 z m 2.645834,3.96875 h -0.529167 v 0.529167 h 0.529167 z" id="rect4058-9-5" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" /> <path inkscape:connector-curvature="0" 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:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.0661458;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" d="m 12.989387,32.320492 v 0.355547 0.115755 l 1.876888,2.926953 h 0.636653 0.132292 v 0.132292 0.79375 0.132291 h -0.132292 -0.79375 -0.132291 v -0.132291 -0.79375 -0.09922 l -1.876888,-2.94349 h -0.636654 -0.132292 v -0.132291 -0.79375 -0.132292 h 0.132292 0.79375 0.132292 v 0.132292 0.148828 z m -0.264584,-0.305912 h -0.529166 v 0.529167 h 0.529166 z m 2.645834,3.96875 h -0.529167 v 0.529167 h 0.529167 z" id="rect4058-9-5" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc" />
@ -79,5 +78,8 @@
</g> </g>
<path d="m 24.352274,6.3088036 h 0.03307 v -0.033073 -3.5463449 -0.033073 h -0.03307 -3.713451 -0.03307 v 0.033073 3.5463449 0.033073 h 0.03307 z m -3.978696,-4.1590643 h 4.24394 c 0.06157,0 0.120624,0.024461 0.164174,0.068002 0.04355,0.043541 0.068,0.102595 0.068,0.1641723 v 4.2439399 c 0,0.061569 -0.02445,0.1206236 -0.068,0.164174 -0.04355,0.04355 -0.102605,0.067998 -0.164174,0.067998 h -4.24394 c -0.06158,0 -0.120631,-0.024447 -0.164172,-0.067998 -0.04354,-0.04355 -0.068,-0.1026054 -0.068,-0.164174 v -4.2439399 c 0,-0.061577 0.02446,-0.1206315 0.068,-0.1641723 0.04354,-0.043541 0.102595,-0.068002 0.164172,-0.068002 z" fill="#f2f2f2" stroke="#999999" stroke-width="0.0657188" id="path1286" /> <path d="m 24.352274,6.3088036 h 0.03307 v -0.033073 -3.5463449 -0.033073 h -0.03307 -3.713451 -0.03307 v 0.033073 3.5463449 0.033073 h 0.03307 z m -3.978696,-4.1590643 h 4.24394 c 0.06157,0 0.120624,0.024461 0.164174,0.068002 0.04355,0.043541 0.068,0.102595 0.068,0.1641723 v 4.2439399 c 0,0.061569 -0.02445,0.1206236 -0.068,0.164174 -0.04355,0.04355 -0.102605,0.067998 -0.164174,0.067998 h -4.24394 c -0.06158,0 -0.120631,-0.024447 -0.164172,-0.067998 -0.04354,-0.04355 -0.068,-0.1026054 -0.068,-0.164174 v -4.2439399 c 0,-0.061577 0.02446,-0.1206315 0.068,-0.1641723 0.04354,-0.043541 0.102595,-0.068002 0.164172,-0.068002 z" fill="#f2f2f2" stroke="#999999" stroke-width="0.0657188" id="path1286" />
</g> </g>
<g id="info" transform="matrix(0.33072916,0,0,0.33072916,-11.906249,-256.10415)" style="stroke-width:0.8">
<path id="path3762" style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:0.2;stroke-dasharray:none;stroke-opacity:1" d="m 107.99999,838.36217 a 8,8 0 0 0 -7.999998,8 8,8 0 0 0 7.999998,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" />
</g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="180" height="180" viewBox="0 0 47.624999 47.624999" version="1.1" id="svg6237" inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" 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"> <svg width="180" height="180" viewBox="0 0 47.624999 47.624999" version="1.1" id="svg6237" inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" 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">
<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="17.994316" inkscape:cx="76.551951" inkscape:cy="18.089045" inkscape:window-width="1920" inkscape:window-height="1019" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer1"> <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="11.97607" inkscape:cx="98.404568" inkscape:cy="77.696607" inkscape:window-width="1920" inkscape:window-height="1011" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer1">
<inkscape:grid type="xygrid" id="grid6358" empspacing="4" originx="0" originy="0" /> <inkscape:grid type="xygrid" id="grid6358" empspacing="4" originx="0" originy="0" spacingy="1" spacingx="1" units="px" visible="true" />
<sodipodi:guide position="9.5249999,47.624999" orientation="-1,0" id="guide6360" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" /> <sodipodi:guide position="9.5249999,47.624999" orientation="-1,0" id="guide6360" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" />
<sodipodi:guide position="19.05,47.625" orientation="-1,0" id="guide6362" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" /> <sodipodi:guide position="19.05,47.625" orientation="-1,0" id="guide6362" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" />
<sodipodi:guide position="28.574999,47.625" orientation="-1,0" id="guide6364" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" /> <sodipodi:guide position="28.574999,47.625" orientation="-1,0" id="guide6364" inkscape:locked="false" inkscape:label="" inkscape:color="rgb(0,134,229)" />
@ -32,10 +32,6 @@
<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> <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>
<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> <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>
</g> </g>
<g id="copyleft" transform="matrix(0.26458333,0,0,0.26458333,1.5821002,-226.05539)" class="sprite">
<circle transform="matrix(0.02040816,0,0,0.02040816,74,934.36218)" id="circle3841" r="440" cy="490" cx="490" style="fill:none;stroke:#4d4d4d;stroke-width:100;stroke-opacity:1" />
<path style="fill:#4d4d4d;fill-opacity:1" id="path3843" d="m 83.918365,938.74993 c -2.653058,0 -4.877549,1.85717 -5.448974,4.34692 h 2.673466 c 0.489792,-1.06125 1.551017,-1.79592 2.775508,-1.79592 1.693875,0 3.061225,1.36734 3.061225,3.06125 0,1.69384 -1.36735,3.06117 -3.061225,3.06117 -1.224491,0 -2.285716,-0.73467 -2.775508,-1.7755 h -2.673466 c 0.571425,2.46942 2.795916,4.32658 5.448974,4.32658 3.102041,0 5.612241,-2.51025 5.612241,-5.61225 0,-3.10208 -2.5102,-5.61225 -5.612241,-5.61225 z" inkscape:connector-curvature="0" />
</g>
<g id="markers" transform="matrix(0.26458333,0,0,0.26458333,14.287499,-226.04994)" class="sprite"> <g id="markers" transform="matrix(0.26458333,0,0,0.26458333,14.287499,-226.04994)" class="sprite">
<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" /> <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" />
<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" /> <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" />
@ -106,5 +102,8 @@
</g> </g>
<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" /> <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" />
</g> </g>
<g id="info" transform="matrix(0.33072916,0,0,0.33072916,-11.90625,-256.10415)" style="stroke-width:0.8;fill:#4d4d4d;fill-opacity:1">
<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 100 846.36217 A 8 8 0 0 0 108 854.36217 A 8 8 0 0 0 116 846.36217 A 8 8 0 0 0 108 838.36217 z M 108 840.86217 A 1.5 1.5 0 0 1 109.5 842.36217 A 1.5 1.5 0 0 1 108 843.86217 A 1.5 1.5 0 0 1 106.5 842.36217 A 1.5 1.5 0 0 1 108 840.86217 z M 107 845.36217 L 109 845.36217 L 109 851.36217 L 107 851.36217 L 107 845.36217 z " />
</g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View file

@ -1,5 +1,5 @@
// Uses `L._`` from Leaflet.i18n which we cannot import as a module yet import { DomUtil, DomEvent, stamp } from '../../vendors/leaflet/leaflet-src.esm.js'
import { DomUtil, DomEvent } from '../../vendors/leaflet/leaflet-src.esm.js' import { translate } from './i18n.js'
export default class Browser { export default class Browser {
constructor(map) { constructor(map) {
@ -15,18 +15,27 @@ export default class Browser {
const filter = this.options.filter const filter = this.options.filter
if (filter && !feature.matchFilter(filter, this.filterKeys)) return if (filter && !feature.matchFilter(filter, this.filterKeys)) return
if (this.options.inBbox && !feature.isOnScreen(this.bounds)) return if (this.options.inBbox && !feature.isOnScreen(this.bounds)) return
const feature_li = DomUtil.create('li', `${feature.getClassName()} feature`), const row = DomUtil.create('li', `${feature.getClassName()} feature`)
zoom_to = DomUtil.create('i', 'feature-zoom_to', feature_li), const zoom_to = DomUtil.createButtonIcon(
edit = DomUtil.create('i', 'show-on-edit feature-edit', feature_li), row,
del = DomUtil.create('i', 'show-on-edit feature-delete', feature_li), 'icon-zoom',
colorBox = DomUtil.create('i', 'feature-color', feature_li), translate('Bring feature to center')
title = DomUtil.create('span', 'feature-title', feature_li), )
symbol = feature._getIconUrl const edit = DomUtil.createButtonIcon(
row,
'show-on-edit icon-edit',
translate('Edit this feature')
)
const del = DomUtil.createButtonIcon(
row,
'show-on-edit icon-delete',
translate('Delete this feature')
)
const colorBox = DomUtil.create('i', 'icon icon-16 feature-color', row)
const title = DomUtil.create('span', 'feature-title', row)
const symbol = feature._getIconUrl
? U.Icon.prototype.formatUrl(feature._getIconUrl(), feature) ? U.Icon.prototype.formatUrl(feature._getIconUrl(), feature)
: null : null
zoom_to.title = L._('Bring feature to center')
edit.title = L._('Edit this feature')
del.title = L._('Delete this feature')
title.textContent = feature.getDisplayName() || '—' title.textContent = feature.getDisplayName() || '—'
const bgcolor = feature.getDynamicOption('color') const bgcolor = feature.getDynamicOption('color')
colorBox.style.backgroundColor = bgcolor colorBox.style.backgroundColor = bgcolor
@ -34,53 +43,31 @@ export default class Browser {
const icon = U.Icon.makeIconElement(symbol, colorBox) const icon = U.Icon.makeIconElement(symbol, colorBox)
U.Icon.setIconContrast(icon, colorBox, symbol, bgcolor) U.Icon.setIconContrast(icon, colorBox, symbol, bgcolor)
} }
DomEvent.on( const viewFeature = (e) => {
zoom_to, feature.zoomTo({...e, callback: feature.view})
'click', }
function (e) { DomEvent.on(zoom_to, 'click', viewFeature)
e.callback = L.bind(this.view, this) DomEvent.on(title, 'click', viewFeature)
this.zoomTo(e)
},
feature
)
DomEvent.on(
title,
'click',
function (e) {
e.callback = L.bind(this.view, this)
this.zoomTo(e)
},
feature
)
DomEvent.on(edit, 'click', feature.edit, feature) DomEvent.on(edit, 'click', feature.edit, feature)
DomEvent.on(del, 'click', feature.confirmDelete, feature) DomEvent.on(del, 'click', feature.confirmDelete, feature)
// HOTFIX. Remove when this is released: // HOTFIX. Remove when this is released:
// https://github.com/Leaflet/Leaflet/pull/9052 // https://github.com/Leaflet/Leaflet/pull/9052
DomEvent.disableClickPropagation(feature_li) DomEvent.disableClickPropagation(row)
parent.appendChild(feature_li) parent.appendChild(row)
} }
datalayerId(datalayer) { datalayerId(datalayer) {
return `browse_data_datalayer_${L.stamp(datalayer)}` return `browse_data_datalayer_${stamp(datalayer)}`
}
onDataLayerChanged(e) {
this.updateDatalayer(e.target)
} }
addDataLayer(datalayer, parent) { addDataLayer(datalayer, parent) {
const container = DomUtil.create('div', datalayer.getHidableClass(), parent), let className = `datalayer ${datalayer.getHidableClass()}`
headline = DomUtil.create('h5', '', container), if (this.map.panel.mode !== 'condensed') className += ' show-list'
counter = DomUtil.create('span', 'datalayer-counter', headline) const container = DomUtil.create('div', className, parent),
headline = DomUtil.create('h5', '', container)
container.id = this.datalayerId(datalayer) container.id = this.datalayerId(datalayer)
datalayer.renderToolbox(headline)
DomUtil.add('span', '', headline, datalayer.options.name)
const ul = DomUtil.create('ul', '', container) const ul = DomUtil.create('ul', '', container)
this.updateDatalayer(datalayer) this.updateDatalayer(datalayer)
datalayer.on('datachanged', this.onDataLayerChanged, this)
this.map.ui.once('panel:closed', () => {
datalayer.off('datachanged', this.onDataLayerChanged, this)
})
} }
updateDatalayer(datalayer) { updateDatalayer(datalayer) {
@ -90,16 +77,25 @@ export default class Browser {
// Panel is not open // Panel is not open
if (!parent) return if (!parent) return
DomUtil.classIf(parent, 'off', !datalayer.isVisible()) DomUtil.classIf(parent, 'off', !datalayer.isVisible())
const container = parent.querySelector('ul'), const container = parent.querySelector('ul')
counter = parent.querySelector('.datalayer-counter') const headline = parent.querySelector('h5')
const toggleList = () => parent.classList.toggle('show-list')
headline.innerHTML = ''
const toggle = DomUtil.create('i', 'icon icon-16 datalayer-toggle-list', headline)
DomEvent.on(toggle, 'click', toggleList)
datalayer.renderToolbox(headline)
const name = DomUtil.create('span', 'datalayer-name', headline)
name.textContent = datalayer.options.name
DomEvent.on(name, 'click', toggleList)
container.innerHTML = '' container.innerHTML = ''
datalayer.eachFeature((feature) => this.addFeature(feature, container)) datalayer.eachFeature((feature) => this.addFeature(feature, container))
let total = datalayer.count(), let total = datalayer.count(),
current = container.querySelectorAll('li').length, current = container.querySelectorAll('li').length,
count = total == current ? total : `${current}/${total}` count = total == current ? total : `${current}/${total}`
counter.textContent = count const counter = DomUtil.create('span', 'datalayer-counter', headline)
counter.title = L._('Features in this layer: {count}', { count: count }) counter.textContent = `(${count})`
counter.title = translate(`Features in this layer: ${count}`)
} }
onFormChange() { onFormChange() {
@ -109,9 +105,12 @@ export default class Browser {
}) })
} }
isOpen() {
return !!document.querySelector('.umap-browser')
}
onMoveEnd() { onMoveEnd() {
const isBrowserOpen = !!document.querySelector('.umap-browse-data') if (!this.isOpen()) return
if (!isBrowserOpen) return
const isListDynamic = this.options.inBbox const isListDynamic = this.options.inBbox
this.map.eachBrowsableDataLayer((datalayer) => { this.map.eachBrowsableDataLayer((datalayer) => {
if (!isListDynamic && !datalayer.hasDynamicData()) return if (!isListDynamic && !datalayer.hasDynamicData()) return
@ -119,27 +118,29 @@ export default class Browser {
}) })
} }
update() {
if (!this.isOpen()) return
this.dataContainer.innerHTML = ''
this.map.eachBrowsableDataLayer((datalayer) => {
this.addDataLayer(datalayer, this.dataContainer)
})
}
open() { open() {
// Get once but use it for each feature later // Get once but use it for each feature later
this.filterKeys = this.map.getFilterKeys() this.filterKeys = this.map.getFilterKeys()
const container = DomUtil.create('div', 'umap-browse-data') const container = DomUtil.create('div')
// HOTFIX. Remove when this is released: // HOTFIX. Remove when this is released:
// https://github.com/Leaflet/Leaflet/pull/9052 // https://github.com/Leaflet/Leaflet/pull/9052
DomEvent.disableClickPropagation(container) DomEvent.disableClickPropagation(container)
const title = DomUtil.add( DomUtil.createTitle(container, translate('Browse data'), 'icon-layers')
'h3',
'umap-browse-title',
container,
this.map.getOption('name')
)
const formContainer = DomUtil.create('div', '', container) const formContainer = DomUtil.create('div', '', container)
const dataContainer = DomUtil.create('div', 'umap-browse-features', container) this.dataContainer = DomUtil.create('div', '', container)
const fields = [ const fields = [
['options.filter', { handler: 'Input', placeholder: L._('Filter') }], ['options.filter', { handler: 'Input', placeholder: translate('Filter') }],
['options.inBbox', { handler: 'Switch', label: L._('Current map view') }], ['options.inBbox', { handler: 'Switch', label: translate('Current map view') }],
] ]
const builder = new U.FormBuilder(this, fields, { const builder = new U.FormBuilder(this, fields, {
makeDirty: false, makeDirty: false,
@ -147,13 +148,22 @@ export default class Browser {
}) })
formContainer.appendChild(builder.build()) formContainer.appendChild(builder.build())
this.map.ui.openPanel({ this.map.panel.open({
data: { html: container }, data: { html: container },
actions: [this.map._aboutLink()], className: 'umap-browser',
}) })
this.map.eachBrowsableDataLayer((datalayer) => { this.update()
this.addDataLayer(datalayer, dataContainer) }
})
static backButton(map) {
const button = DomUtil.create('li', '')
DomUtil.create('i', 'icon icon-16 icon-back', button)
button.title = translate('Back to browser')
// Fixme: remove me when this is merged and released
// https://github.com/Leaflet/Leaflet/pull/9052
DomEvent.disableClickPropagation(button)
DomEvent.on(button, 'click', map.openBrowser, map)
return button
} }
} }

View file

@ -1,8 +1,10 @@
import URLs from './urls.js' import URLs from './urls.js'
import Browser from './browser.js' import Browser from './browser.js'
import { Panel, EditPanel, FullPanel } from './panel.js'
import * as Utils from './utils.js' import * as Utils from './utils.js'
import { SCHEMA } from './schema.js' import { SCHEMA } from './schema.js'
import { Request, ServerRequest, RequestError, HTTPError, NOKError } from './request.js' import { Request, ServerRequest, RequestError, HTTPError, NOKError } from './request.js'
import Orderable from './orderable.js'
// Import modules and export them to the global scope. // Import modules and export them to the global scope.
// For the not yet module-compatible JS out there. // For the not yet module-compatible JS out there.
@ -15,6 +17,10 @@ window.U = {
HTTPError, HTTPError,
NOKError, NOKError,
Browser, Browser,
Panel,
EditPanel,
FullPanel,
Utils, Utils,
SCHEMA, SCHEMA,
Orderable,
} }

View file

@ -0,0 +1,84 @@
import { DomEvent } from '../../vendors/leaflet/leaflet-src.esm.js'
export default class Orderable {
constructor(parent, onDrop, selector = '.orderable') {
this.parent = parent
this.onCommit = onDrop
this.src = null
this.dst = null
this.els = this.parent.querySelectorAll(selector)
for (let i = 0; i < this.els.length; i++) this.makeDraggable(this.els[i])
}
makeDraggable(node) {
node.draggable = true
DomEvent.on(node, 'dragstart', this.onDragStart, this)
DomEvent.on(node, 'dragenter', this.onDragEnter, this)
DomEvent.on(node, 'dragover', this.onDragOver, this)
DomEvent.on(node, 'dragleave', this.onDragLeave, this)
DomEvent.on(node, 'drop', this.onDrop, this)
DomEvent.on(node, 'dragend', this.onDragEnd, this)
}
nodeIndex(node) {
return Array.prototype.indexOf.call(this.parent.children, node)
}
findTarget(node) {
while (node) {
if (this.nodeIndex(node) !== -1) return node
node = node.parentNode
}
}
onDragStart(e) {
// e.target is the source node.
const realSrc = document.elementFromPoint(e.clientX, e.clientY);
// Only allow drag from the handle
if (!realSrc.classList.contains('icon-drag')) {
e.preventDefault()
return
}
this.src = e.target
this.initialIndex = this.nodeIndex(this.src)
this.src.classList.add('ordering')
e.dataTransfer.effectAllowed = 'move'
e.dataTransfer.setData('text/html', this.src.innerHTML)
}
onDragOver(e) {
DomEvent.stop(e)
if (e.preventDefault) e.preventDefault() // Necessary. Allows us to drop.
e.dataTransfer.dropEffect = 'move'
return false
}
onDragEnter(e) {
DomEvent.stop(e)
// e.target is the current hover target.
const dst = this.findTarget(e.target)
if (!dst || dst === this.src) return
this.dst = dst
const targetIndex = this.nodeIndex(this.dst),
srcIndex = this.nodeIndex(this.src)
if (targetIndex > srcIndex) this.parent.insertBefore(this.dst, this.src)
else this.parent.insertBefore(this.src, this.dst)
}
onDragLeave(e) {
// e.target is previous target element.
}
onDrop(e) {
// e.target is current target element.
if (e.stopPropagation) e.stopPropagation() // Stops the browser from redirecting.
if (!this.dst) return
this.onCommit(this.src, this.dst, this.initialIndex, this.nodeIndex(this.src))
return false
}
onDragEnd(e) {
// e.target is the source node.
this.src.classList.remove('ordering')
}
}

View file

@ -0,0 +1,80 @@
import { DomUtil, DomEvent } from '../../vendors/leaflet/leaflet-src.esm.js'
import { translate } from './i18n.js'
export class Panel {
constructor(map) {
this.parent = map._controlContainer
this.map = map
this.container = DomUtil.create('div', '', this.parent)
this.mode = 'condensed'
this.classname = 'left'
DomEvent.disableClickPropagation(this.container)
DomEvent.on(this.container, 'contextmenu', DomEvent.stopPropagation) // Do not activate our custom context menu.
DomEvent.on(this.container, 'wheel', DomEvent.stopPropagation)
DomEvent.on(this.container, 'MozMousePixelScroll', DomEvent.stopPropagation)
}
open(e) {
this.container.className = `with-transition panel ${this.classname} ${this.mode}`
this.container.innerHTML = ''
const actionsContainer = DomUtil.create('ul', 'toolbox', this.container)
const body = DomUtil.create('div', 'body', this.container)
if (e.data.html.nodeType && e.data.html.nodeType === 1)
body.appendChild(e.data.html)
else body.innerHTML = e.data.html
const closeLink = DomUtil.create('li', 'umap-close-link', actionsContainer)
DomUtil.add('i', 'icon icon-16 icon-close', closeLink)
closeLink.title = translate('Close')
const resizeLink = DomUtil.create('li', 'umap-resize-link', actionsContainer)
DomUtil.add('i', 'icon icon-16 icon-resize', resizeLink)
resizeLink.title = translate('Toggle size')
if (e.actions) {
for (let i = 0; i < e.actions.length; i++) {
actionsContainer.appendChild(e.actions[i])
}
}
if (e.className) DomUtil.addClass(body, e.className)
const promise = new Promise((resolve, reject) => {
DomUtil.addClass(this.container, 'on')
resolve()
})
DomEvent.on(closeLink, 'click', this.close, this)
DomEvent.on(resizeLink, 'click', this.resize, this)
return promise
}
resize() {
if (this.mode === 'expanded') {
this.mode = 'condensed'
this.container.classList.remove('expanded')
this.container.classList.add('condensed')
} else {
this.mode = 'expanded'
this.container.classList.remove('condensed')
this.container.classList.add('expanded')
}
}
close() {
if (DomUtil.hasClass(this.container, 'on')) {
DomUtil.removeClass(this.container, 'on')
this.map.invalidateSize({ pan: false })
this.map.editedFeature = null
}
}
}
export class EditPanel extends Panel {
constructor(map) {
super(map)
this.classname = 'right dark'
}
}
export class FullPanel extends Panel {
constructor(map) {
super(map)
this.classname = 'full dark'
this.mode = 'expanded'
}
}

View file

@ -128,7 +128,6 @@ export class ServerRequest extends Request {
const data = await response.json() const data = await response.json()
if (data.info) { if (data.info) {
this.ui.alert({ content: data.info, level: 'info' }) this.ui.alert({ content: data.info, level: 'info' })
this.ui.closePanel()
} else if (data.error) { } else if (data.error) {
this.ui.alert({ content: data.error, level: 'error' }) this.ui.alert({ content: data.error, level: 'error' })
return this._onError(new Error(data.error)) return this._onError(new Error(data.error))

View file

@ -273,6 +273,7 @@ export const SCHEMA = {
['none', translate('None')], ['none', translate('None')],
['caption', translate('Caption')], ['caption', translate('Caption')],
['databrowser', translate('Data browser')], ['databrowser', translate('Data browser')],
['datalayers', translate('Layers')],
['facet', translate('Facet search')], ['facet', translate('Facet search')],
], ],
default: 'none', default: 'none',
@ -372,6 +373,12 @@ export const SCHEMA = {
impacts: ['ui'], impacts: ['ui'],
label: translate('Allow scroll wheel zoom?'), label: translate('Allow scroll wheel zoom?'),
}, },
captionControl: {
type: Boolean,
nullable: true,
label: translate('Display the caption control'),
default: true,
},
searchControl: { searchControl: {
type: Boolean, type: Boolean,
impacts: ['ui'], impacts: ['ui'],

View file

@ -29,11 +29,35 @@ U.ImportAction = U.BaseAction.extend({
}, },
}) })
U.EditLayersAction = U.BaseAction.extend({
options: {
helpMenu: true,
className: 'umap-control-browse dark',
tooltip: L._('Manage layers'),
},
addHooks: function () {
this.map.editDatalayers()
},
})
U.EditCaptionAction = U.BaseAction.extend({
options: {
helpMenu: true,
className: 'umap-control-caption dark',
tooltip: L._('Edit map name and caption'),
},
addHooks: function () {
this.map.editCaption()
},
})
U.EditPropertiesAction = U.BaseAction.extend({ U.EditPropertiesAction = U.BaseAction.extend({
options: { options: {
helpMenu: true, helpMenu: true,
className: 'update-map-settings dark', className: 'update-map-settings dark',
tooltip: L._('Edit map properties'), tooltip: L._('Map advanced properties'),
}, },
addHooks: function () { addHooks: function () {
@ -53,17 +77,6 @@ U.ChangeTileLayerAction = U.BaseAction.extend({
}, },
}) })
U.ManageDatalayersAction = U.BaseAction.extend({
options: {
className: 'dark manage-datalayers',
tooltip: L._('Manage layers'),
},
addHooks: function () {
this.map.manageDatalayers()
},
})
U.UpdateExtentAction = U.BaseAction.extend({ U.UpdateExtentAction = U.BaseAction.extend({
options: { options: {
className: 'update-map-extent dark', className: 'update-map-extent dark',
@ -279,12 +292,7 @@ U.ContinueLineAction = U.BaseVertexAction.extend({
}) })
// Leaflet.Toolbar doesn't allow twice same toolbar class… // Leaflet.Toolbar doesn't allow twice same toolbar class…
U.SettingsToolbar = L.Toolbar.Control.extend({ U.SettingsToolbar = L.Toolbar.Control.extend({})
addTo: function (map) {
if (map.options.editMode !== 'advanced') return
L.Toolbar.Control.prototype.addTo.call(this, map)
},
})
U.DrawToolbar = L.Toolbar.Control.extend({ U.DrawToolbar = L.Toolbar.Control.extend({
initialize: function (options) { initialize: function (options) {
L.Toolbar.Control.prototype.initialize.call(this, options) L.Toolbar.Control.prototype.initialize.call(this, options)
@ -398,26 +406,6 @@ U.EditControl = L.Control.extend({
}, },
}) })
/* Share control */
L.Control.Embed = L.Control.extend({
options: {
position: 'topleft',
},
onAdd: function (map) {
const container = L.DomUtil.create('div', 'leaflet-control-embed umap-control')
const shareButton = L.DomUtil.createButton(
'',
container,
L._('Share and download'),
map.share.open,
map.share
)
L.DomEvent.on(shareButton, 'dblclick', L.DomEvent.stopPropagation)
return container
},
})
U.MoreControls = L.Control.extend({ U.MoreControls = L.Control.extend({
options: { options: {
position: 'topleft', position: 'topleft',
@ -488,174 +476,79 @@ U.PermanentCreditsControl = L.Control.extend({
}, },
}) })
U.DataLayersControl = L.Control.extend({ L.Control.Button = L.Control.extend({
options: {
position: 'topleft',
},
labels: {
zoomToLayer: L._('Zoom to layer extent'),
toggleLayer: L._('Show/hide layer'),
editLayer: L._('Edit'),
},
initialize: function (map, options) { initialize: function (map, options) {
this.map = map this.map = map
L.Control.prototype.initialize.call(this, options) L.Control.prototype.initialize.call(this, options)
}, },
_initLayout: function (map) { getClassName: function () {
const container = (this._container = L.DomUtil.create( return this.options.className
'div',
'leaflet-control-browse umap-control'
)),
actions = L.DomUtil.create('div', 'umap-browse-actions', container)
this._datalayers_container = L.DomUtil.create(
'ul',
'umap-browse-datalayers',
actions
)
L.DomUtil.createButton(
'umap-browse-link',
actions,
L._('Browse data'),
map.openBrowser,
map
)
const toggleButton = L.DomUtil.createButton(
'umap-browse-toggle',
container,
L._('See data layers')
)
L.DomEvent.on(toggleButton, 'click', L.DomEvent.stop)
map.whenReady(function () {
this.update()
}, this)
if (L.Browser.pointer) {
L.DomEvent.disableClickPropagation(container)
L.DomEvent.on(container, 'wheel', L.DomEvent.stopPropagation)
L.DomEvent.on(container, 'MozMousePixelScroll', L.DomEvent.stopPropagation)
}
if (!L.Browser.touch) {
L.DomEvent.on(
container,
{
mouseenter: this.expand,
mouseleave: this.collapse,
},
this
)
} else {
L.DomEvent.on(container, 'click', L.DomEvent.stopPropagation)
L.DomEvent.on(toggleButton, 'click', L.DomEvent.stop).on(
toggleButton,
'click',
this.expand,
this
)
map.on('click', this.collapse, this)
}
return container
}, },
onAdd: function (map) { onAdd: function (map) {
if (!this._container) this._initLayout(map) const container = L.DomUtil.create('div', `${this.getClassName()} umap-control`)
if (map.options.datalayersControl === 'expanded') this.expand() const button = L.DomUtil.createButton(
return this._container '',
}, container,
this.options.title,
onRemove: function (map) { this.onClick,
this.collapse()
},
update: function () {
if (this._datalayers_container && this._map) {
this._datalayers_container.innerHTML = ''
this.map.eachDataLayerReverse(function (datalayer) {
this.addDataLayer(this._datalayers_container, datalayer)
}, this)
}
},
expand: function () {
L.DomUtil.addClass(this._container, 'expanded')
},
collapse: function () {
if (this.map.options.datalayersControl === 'expanded') return
L.DomUtil.removeClass(this._container, 'expanded')
},
addDataLayer: function (container, datalayer, draggable) {
const datalayerLi = L.DomUtil.create('li', '', container)
if (draggable)
L.DomUtil.element(
'i',
{ className: 'drag-handle', title: L._('Drag to reorder') },
datalayerLi
)
datalayer.renderToolbox(datalayerLi)
const title = L.DomUtil.add(
'span',
'layer-title',
datalayerLi,
datalayer.options.name
)
datalayerLi.id = `browse_data_toggle_${L.stamp(datalayer)}`
L.DomUtil.classIf(datalayerLi, 'off', !datalayer.isVisible())
title.textContent = datalayer.options.name
},
newDataLayer: function () {
const datalayer = this.map.createDataLayer({})
datalayer.edit()
},
openPanel: function () {
if (!this.map.editEnabled) return
const container = L.DomUtil.create('ul', 'umap-browse-datalayers')
const title = L.DomUtil.create('h3', '', container)
title.textContent = L._('Manage layers')
this.map.eachDataLayerReverse(function (datalayer) {
this.addDataLayer(container, datalayer, true)
}, this)
const orderable = new U.Orderable(container)
orderable.on(
'drop',
function (e) {
const layer = this.map.datalayers[e.src.dataset.id],
other = this.map.datalayers[e.dst.dataset.id],
minIndex = Math.min(layer.getRank(), other.getRank()),
maxIndex = Math.max(layer.getRank(), other.getRank())
if (e.finalIndex === 0) layer.bringToTop()
else if (e.finalIndex > e.initialIndex) layer.insertBefore(other)
else layer.insertAfter(other)
this.map.eachDataLayerReverse((datalayer) => {
if (datalayer.getRank() >= minIndex && datalayer.getRank() <= maxIndex)
datalayer.isDirty = true
})
this.map.indexDatalayers()
},
this this
) )
L.DomEvent.on(button, 'dblclick', L.DomEvent.stopPropagation)
return container
},
})
const bar = L.DomUtil.create('div', 'button-bar', container) U.DataLayersControl = L.Control.Button.extend({
L.DomUtil.createButton( options: {
'show-on-edit block add-datalayer button', position: 'topleft',
bar, className: 'umap-control-browse',
L._('Add a layer'), title: L._('See layers'),
this.newDataLayer, },
this
)
this.map.ui.openPanel({ data: { html: container }, className: 'dark' }) onClick: function () {
this.map.openBrowser()
},
})
U.CaptionControl = L.Control.Button.extend({
options: {
position: 'topleft',
className: 'umap-control-caption',
title: L._('About'),
},
onClick: function () {
this.map.displayCaption()
},
})
U.StarControl = L.Control.Button.extend({
options: {
position: 'topleft',
title: L._('Star this map'),
},
getClassName: function () {
const status = this.map.options.starred ? ' starred' : ''
return `leaflet-control-star umap-control${status}`
},
onClick: function () {
this.map.star()
},
})
L.Control.Embed = L.Control.Button.extend({
options: {
position: 'topleft',
title: L._('Share and download'),
className: 'leaflet-control-embed umap-control',
},
onClick: function () {
this.map.share.open()
}, },
}) })
@ -667,16 +560,31 @@ U.DataLayer.include({
}, },
renderToolbox: function (container) { renderToolbox: function (container) {
const toggle = L.DomUtil.create('i', 'layer-toggle', container), const toggle = L.DomUtil.createButtonIcon(
zoomTo = L.DomUtil.create('i', 'layer-zoom_to', container), container,
edit = L.DomUtil.create('i', 'layer-edit show-on-edit', container), 'icon-eye',
table = L.DomUtil.create('i', 'layer-table-edit show-on-edit', container), L._('Show/hide layer')
remove = L.DomUtil.create('i', 'layer-delete show-on-edit', container) )
zoomTo.title = L._('Zoom to layer extent') const zoomTo = L.DomUtil.createButtonIcon(
toggle.title = L._('Show/hide layer') container,
edit.title = L._('Edit') 'icon-zoom',
table.title = L._('Edit properties in a table') L._('Zoom to layer extent')
remove.title = L._('Delete layer') )
const edit = L.DomUtil.createButtonIcon(
container,
'icon-edit show-on-edit',
L._('Edit')
)
const table = L.DomUtil.createButtonIcon(
container,
'icon-table show-on-edit',
L._('Edit properties in a table')
)
const remove = L.DomUtil.createButtonIcon(
container,
'icon-delete show-on-edit',
L._('Delete layer')
)
if (this.isReadOnly()) { if (this.isReadOnly()) {
L.DomUtil.addClass(container, 'readonly') L.DomUtil.addClass(container, 'readonly')
} else { } else {
@ -689,7 +597,7 @@ U.DataLayer.include({
if (!this.isVisible()) return if (!this.isVisible()) return
if (!confirm(L._('Are you sure you want to delete this layer?'))) return if (!confirm(L._('Are you sure you want to delete this layer?'))) return
this._delete() this._delete()
this.map.ui.closePanel() this.map.editPanel.close()
}, },
this this
) )
@ -698,7 +606,6 @@ U.DataLayer.include({
L.DomEvent.on(zoomTo, 'click', this.zoomTo, this) L.DomEvent.on(zoomTo, 'click', this.zoomTo, this)
L.DomUtil.addClass(container, this.getHidableClass()) L.DomUtil.addClass(container, this.getHidableClass())
L.DomUtil.classIf(container, 'off', !this.isVisible()) L.DomUtil.classIf(container, 'off', !this.isVisible())
container.dataset.id = L.stamp(this)
}, },
getHidableElements: function () { getHidableElements: function () {
@ -745,10 +652,11 @@ const ControlsMixin = {
'search', 'search',
'fullscreen', 'fullscreen',
'embed', 'embed',
'datalayers',
'caption',
'locate', 'locate',
'measure', 'measure',
'editinosm', 'editinosm',
'datalayers',
'star', 'star',
'tilelayers', 'tilelayers',
], ],
@ -801,22 +709,12 @@ const ControlsMixin = {
}) })
container.appendChild(builder.build()) container.appendChild(builder.build())
this.ui.openPanel({ data: { html: container }, actions: [this._aboutLink()] }) this.panel.open({ data: { html: container } })
},
_aboutLink: function () {
const link = L.DomUtil.create('li', '')
L.DomUtil.create('i', 'umap-icon-16 umap-caption', link)
const label = L.DomUtil.create('span', '', link)
label.textContent = label.title = L._('About')
L.DomEvent.on(link, 'click', this.displayCaption, this)
return link
}, },
displayCaption: function () { displayCaption: function () {
const container = L.DomUtil.create('div', 'umap-caption') const container = L.DomUtil.create('div', 'umap-caption')
let title = L.DomUtil.create('h3', '', container) L.DomUtil.createTitle(container, this.options.name, 'icon-caption')
title.textContent = this.options.name
this.permissions.addOwnerLink('h5', container) this.permissions.addOwnerLink('h5', container)
if (this.options.description) { if (this.options.description) {
const description = L.DomUtil.create('div', 'umap-map-description', container) const description = L.DomUtil.create('div', 'umap-map-description', container)
@ -891,21 +789,7 @@ const ControlsMixin = {
`, `,
urls urls
) )
const browser = L.DomUtil.create('li', '') this.panel.open({ data: { html: container } })
L.DomUtil.create('i', 'umap-icon-16 umap-list', browser)
const labelBrowser = L.DomUtil.create('span', '', browser)
labelBrowser.textContent = labelBrowser.title = L._('Browse data')
L.DomEvent.on(browser, 'click', this.openBrowser, this)
const actions = [browser]
if (this.options.facetKey) {
const filter = L.DomUtil.create('li', '')
L.DomUtil.create('i', 'umap-icon-16 umap-add', filter)
const labelFilter = L.DomUtil.create('span', '', filter)
labelFilter.textContent = labelFilter.title = L._('Facet search')
L.DomEvent.on(filter, 'click', this.openFacet, this)
actions.push(filter)
}
this.ui.openPanel({ data: { html: container }, actions: actions })
}, },
renderEditToolbar: function () { renderEditToolbar: function () {
@ -1013,10 +897,7 @@ const ControlsMixin = {
'leaflet-control-edit-disable', 'leaflet-control-edit-disable',
rightContainer, rightContainer,
L.DomUtil.add('span', '', null, L._('View')), L.DomUtil.add('span', '', null, L._('View')),
function (e) { this.disableEdit,
this.disableEdit(e)
this.ui.closePanel()
},
this this
) )
L.DomEvent.on( L.DomEvent.on(
@ -1055,6 +936,48 @@ const ControlsMixin = {
this this
) )
}, },
editDatalayers: function () {
if (!this.editEnabled) return
const container = L.DomUtil.create('div')
L.DomUtil.createTitle(container, L._('Manage layers'), 'icon-layers')
const ul = L.DomUtil.create('ul', '', container)
this.eachDataLayerReverse((datalayer) => {
const row = L.DomUtil.create('li', 'orderable', ul)
L.DomUtil.createIcon(row, 'icon-drag', L._('Drag to reorder'))
datalayer.renderToolbox(row)
const title = L.DomUtil.add('span', '', row, datalayer.options.name)
L.DomUtil.classIf(row, 'off', !datalayer.isVisible())
title.textContent = datalayer.options.name
row.dataset.id = L.stamp(datalayer)
})
const onReorder = (src, dst, initialIndex, finalIndex) => {
const layer = this.datalayers[src.dataset.id],
other = this.datalayers[dst.dataset.id],
minIndex = Math.min(layer.getRank(), other.getRank()),
maxIndex = Math.max(layer.getRank(), other.getRank())
if (finalIndex === 0) layer.bringToTop()
else if (finalIndex > initialIndex) layer.insertBefore(other)
else layer.insertAfter(other)
this.eachDataLayerReverse((datalayer) => {
if (datalayer.getRank() >= minIndex && datalayer.getRank() <= maxIndex)
datalayer.isDirty = true
})
this.indexDatalayers()
}
const orderable = new U.Orderable(ul, onReorder)
const bar = L.DomUtil.create('div', 'button-bar', container)
L.DomUtil.createButton(
'show-on-edit block add-datalayer button',
bar,
L._('Add a layer'),
this.newDataLayer,
this
)
this.editPanel.open({ data: { html: container } })
},
} }
/* Used in view mode to define the current tilelayer */ /* Used in view mode to define the current tilelayer */
@ -1124,11 +1047,10 @@ U.TileLayerChooser = L.Control.extend({
openSwitcher: function (options) { openSwitcher: function (options) {
const container = L.DomUtil.create('div', 'umap-tilelayer-switcher-container') const container = L.DomUtil.create('div', 'umap-tilelayer-switcher-container')
const title = L.DomUtil.create('h3', '', container) L.DomUtil.createTitle(container, L._('Change tilelayers'), 'icon-tilelayer')
title.textContent = L._('Change tilelayers')
this._tilelayers_container = L.DomUtil.create('ul', '', container) this._tilelayers_container = L.DomUtil.create('ul', '', container)
this.buildList(options) this.buildList(options)
this.map.ui.openPanel({ this.map.editPanel.open({
data: { html: container }, data: { html: container },
className: options.className, className: options.className,
}) })
@ -1211,29 +1133,6 @@ U.AttributionControl = L.Control.Attribution.extend({
}, },
}) })
U.StarControl = L.Control.extend({
options: {
position: 'topleft',
},
onAdd: function (map) {
const status = map.options.starred ? ' starred' : ''
const container = L.DomUtil.create(
'div',
`leaflet-control-star umap-control${status}`
)
const starMapButton = L.DomUtil.createButton(
'',
container,
L._('Star this map'),
map.star,
map
)
L.DomEvent.on(starMapButton, 'dblclick', L.DomEvent.stopPropagation)
return container
},
})
/* /*
* Take control over L.Control.Locate to be able to * Take control over L.Control.Locate to be able to
* call start() before adding the control (and thus the button) to the map. * call start() before adding the control (and thus the button) to the map.
@ -1316,21 +1215,26 @@ U.Search = L.PhotonSearch.extend({
}, },
formatResult: function (feature, el) { formatResult: function (feature, el) {
const self = this const tools = L.DomUtil.create('span', 'search-result-tools', el)
const tools = L.DomUtil.create('span', 'search-result-tools', el), const zoom = L.DomUtil.createButtonIcon(
zoom = L.DomUtil.create('i', 'feature-zoom_to', tools), tools,
edit = L.DomUtil.create('i', 'feature-edit show-on-edit', tools) 'icon-zoom',
zoom.title = L._('Zoom to this place') L._('Zoom to this place')
edit.title = L._('Save this location as new feature') )
const edit = L.DomUtil.createButtonIcon(
tools,
'icon-edit',
L._('Save this location as new feature')
)
// We need to use "mousedown" because Leaflet.Photon listen to mousedown // We need to use "mousedown" because Leaflet.Photon listen to mousedown
// on el. // on el.
L.DomEvent.on(zoom, 'mousedown', (e) => { L.DomEvent.on(zoom, 'mousedown', (e) => {
L.DomEvent.stop(e) L.DomEvent.stop(e)
self.zoomToFeature(feature) this.zoomToFeature(feature)
}) })
L.DomEvent.on(edit, 'mousedown', (e) => { L.DomEvent.on(edit, 'mousedown', (e) => {
L.DomEvent.stop(e) L.DomEvent.stop(e)
const datalayer = self.map.defaultEditDataLayer() const datalayer = this.map.defaultEditDataLayer()
const layer = datalayer.geojsonToFeatures(feature) const layer = datalayer.geojsonToFeatures(feature)
layer.isDirty = true layer.isDirty = true
layer.edit() layer.edit()
@ -1348,7 +1252,7 @@ U.Search = L.PhotonSearch.extend({
onSelected: function (feature) { onSelected: function (feature) {
this.zoomToFeature(feature) this.zoomToFeature(feature)
this.map.ui.closePanel() this.map.panel.close()
}, },
}) })
@ -1358,6 +1262,7 @@ U.SearchControl = L.Control.extend({
}, },
onAdd: function (map) { onAdd: function (map) {
this.map = map
const container = L.DomUtil.create('div', 'leaflet-control-search umap-control') const container = L.DomUtil.create('div', 'leaflet-control-search umap-control')
L.DomEvent.disableClickPropagation(container) L.DomEvent.disableClickPropagation(container)
L.DomUtil.createButton( L.DomUtil.createButton(
@ -1366,38 +1271,34 @@ U.SearchControl = L.Control.extend({
L._('Search location'), L._('Search location'),
(e) => { (e) => {
L.DomEvent.stop(e) L.DomEvent.stop(e)
this.openPanel(map) this.open()
}, },
this this
) )
return container return container
}, },
openPanel: function (map) { open: function () {
const options = { const options = {
limit: 10, limit: 10,
noResultLabel: L._('No results'), noResultLabel: L._('No results'),
} }
if (map.options.photonUrl) options.url = map.options.photonUrl if (this.map.options.photonUrl) options.url = this.map.options.photonUrl
const container = L.DomUtil.create('div', 'umap-search') const container = L.DomUtil.create('div', '')
const title = L.DomUtil.create('h3', '', container) L.DomUtil.createTitle(container, L._('Search location'), 'icon-search')
title.textContent = L._('Search location')
const input = L.DomUtil.create('input', 'photon-input', container) const input = L.DomUtil.create('input', 'photon-input', container)
const resultsContainer = L.DomUtil.create('div', 'photon-autocomplete', container) const resultsContainer = L.DomUtil.create('div', 'photon-autocomplete', container)
this.search = new U.Search(map, input, options) this.search = new U.Search(this.map, input, options)
const id = Math.random() const id = Math.random()
this.search.on('ajax:send', () => { this.search.on('ajax:send', () => {
map.fire('dataloading', { id: id }) this.map.fire('dataloading', { id: id })
}) })
this.search.on('ajax:return', () => { this.search.on('ajax:return', () => {
map.fire('dataload', { id: id }) this.map.fire('dataload', { id: id })
}) })
this.search.resultsContainer = resultsContainer this.search.resultsContainer = resultsContainer
map.ui.once('panel:ready', () => { this.map.panel.open({ data: { html: container } }).then(input.focus)
input.focus()
})
map.ui.openPanel({ data: { html: container } })
}, },
}) })

View file

@ -117,6 +117,29 @@ L.DomUtil.createLink = (className, container, content, url, target, title) => {
return el return el
} }
L.DomUtil.createIcon = (parent, className, title, size = 16) => {
return L.DomUtil.element(
'i',
{ className: `icon icon-${size} ${className}`, title: title || '' },
parent
)
}
L.DomUtil.createButtonIcon = (parent, className, title, size = 16) => {
return L.DomUtil.element(
'button',
{ className: `icon icon-${size} ${className}`, title: title || '' },
parent
)
}
L.DomUtil.createTitle = (parent, text, className, tag = 'h3') => {
const title = L.DomUtil.create(tag, '', parent)
L.DomUtil.createIcon(title, className)
L.DomUtil.add('span', '', title, text)
return title
}
L.DomUtil.createCopiableInput = (parent, label, value) => { L.DomUtil.createCopiableInput = (parent, label, value) => {
const wrapper = L.DomUtil.add('div', 'copiable-input', parent) const wrapper = L.DomUtil.add('div', 'copiable-input', parent)
const labelEl = L.DomUtil.add('label', '', wrapper, label) const labelEl = L.DomUtil.add('label', '', wrapper, label)
@ -531,94 +554,6 @@ U.Help = L.Class.extend({
), ),
}) })
U.Orderable = L.Evented.extend({
options: {
selector: 'li',
color: '#374E75',
},
initialize: function (parent, options) {
L.Util.setOptions(this, options)
this.parent = parent
this.src = null
this.dst = null
this.els = this.parent.querySelectorAll(this.options.selector)
for (let i = 0; i < this.els.length; i++) this.makeDraggable(this.els[i])
},
makeDraggable: function (node) {
node.draggable = true
L.DomEvent.on(node, 'dragstart', this.onDragStart, this)
L.DomEvent.on(node, 'dragenter', this.onDragEnter, this)
L.DomEvent.on(node, 'dragover', this.onDragOver, this)
L.DomEvent.on(node, 'dragleave', this.onDragLeave, this)
L.DomEvent.on(node, 'drop', this.onDrop, this)
L.DomEvent.on(node, 'dragend', this.onDragEnd, this)
},
nodeIndex: function (node) {
return Array.prototype.indexOf.call(this.parent.children, node)
},
findTarget: function (node) {
while (node) {
if (this.nodeIndex(node) !== -1) return node
node = node.parentNode
}
},
onDragStart: function (e) {
// e.target is the source node.
this.src = e.target
this.initialIndex = this.nodeIndex(this.src)
this.srcBackgroundColor = this.src.style.backgroundColor
this.src.style.backgroundColor = this.options.color
e.dataTransfer.effectAllowed = 'move'
e.dataTransfer.setData('text/html', this.src.innerHTML)
},
onDragOver: function (e) {
L.DomEvent.stop(e)
if (e.preventDefault) e.preventDefault() // Necessary. Allows us to drop.
e.dataTransfer.dropEffect = 'move'
return false
},
onDragEnter: function (e) {
L.DomEvent.stop(e)
// e.target is the current hover target.
const dst = this.findTarget(e.target)
if (!dst || dst === this.src) return
this.dst = dst
const targetIndex = this.nodeIndex(this.dst),
srcIndex = this.nodeIndex(this.src)
if (targetIndex > srcIndex) this.parent.insertBefore(this.dst, this.src)
else this.parent.insertBefore(this.src, this.dst)
},
onDragLeave: function (e) {
// e.target is previous target element.
},
onDrop: function (e) {
// e.target is current target element.
if (e.stopPropagation) e.stopPropagation() // Stops the browser from redirecting.
if (!this.dst) return
this.fire('drop', {
src: this.src,
initialIndex: this.initialIndex,
finalIndex: this.nodeIndex(this.src),
dst: this.dst,
})
return false
},
onDragEnd: function (e) {
// e.target is the source node.
this.src.style.backgroundColor = this.srcBackgroundColor
},
})
L.LatLng.prototype.isValid = function () { L.LatLng.prototype.isValid = function () {
return ( return (
isFinite(this.lat) && isFinite(this.lat) &&

View file

@ -96,12 +96,7 @@ U.FeatureMixin = {
edit: function (e) { edit: function (e) {
if (!this.map.editEnabled || this.isReadOnly()) return if (!this.map.editEnabled || this.isReadOnly()) return
const container = L.DomUtil.create('div', 'umap-feature-container') const container = L.DomUtil.create('div', 'umap-feature-container')
L.DomUtil.add( L.DomUtil.createTitle(container, L._('Feature properties'), this.getClassName())
'h3',
`umap-feature-properties ${this.getClassName()}`,
container,
L._('Feature properties')
)
let builder = new U.FormBuilder( let builder = new U.FormBuilder(
this, this,
@ -131,13 +126,13 @@ U.FeatureMixin = {
callback: this._redraw, // In case we have dynamic options… callback: this._redraw, // In case we have dynamic options…
}) })
container.appendChild(builder.build()) container.appendChild(builder.build())
this.map.ui.once('panel:ready', () => {
builder.helpers['properties.name'].input.focus()
})
this.appendEditFieldsets(container) this.appendEditFieldsets(container)
const advancedActions = L.DomUtil.createFieldset(container, L._('Advanced actions')) const advancedActions = L.DomUtil.createFieldset(container, L._('Advanced actions'))
this.getAdvancedEditActions(advancedActions) this.getAdvancedEditActions(advancedActions)
this.map.ui.openPanel({ data: { html: container }, className: 'dark' }) const onLoad = this.map.editPanel.open({ data: { html: container } })
onLoad.then(() => {
builder.helpers['properties.name'].input.focus()
})
this.map.editedFeature = this this.map.editedFeature = this
if (!this.isOnScreen()) this.zoomTo(e) if (!this.isOnScreen()) this.zoomTo(e)
}, },
@ -149,7 +144,7 @@ U.FeatureMixin = {
L._('Delete'), L._('Delete'),
function (e) { function (e) {
L.DomEvent.stop(e) L.DomEvent.stop(e)
if (this.confirmDelete()) this.map.ui.closePanel() if (this.confirmDelete()) this.map.editPanel.close()
}, },
this this
) )
@ -467,7 +462,7 @@ U.FeatureMixin = {
this.parentClass.prototype.onRemove.call(this, map) this.parentClass.prototype.onRemove.call(this, map)
if (this.map.editedFeature === this) { if (this.map.editedFeature === this) {
this.endEdit() this.endEdit()
this.map.ui.closePanel() this.map.editPanel.close()
} }
}, },
@ -759,7 +754,7 @@ U.PathMixin = {
if (this.map.editEnabled) { if (this.map.editEnabled) {
if (this.editEnabled()) { if (this.editEnabled()) {
this.endEdit() this.endEdit()
this.map.ui.closePanel() this.map.editPanel.close()
} else { } else {
this.edit(e) this.edit(e)
} }

View file

@ -1009,9 +1009,6 @@ U.FormBuilder = L.FormBuilder.extend({
case 'iconUrl': case 'iconUrl':
schema.handler = 'IconUrl' schema.handler = 'IconUrl'
break break
case 'datalayersControl':
schema.handler = 'DataLayersControl'
break
case 'licence': case 'licence':
schema.handler = 'LicenceChooser' schema.handler = 'LicenceChooser'
break break
@ -1039,6 +1036,6 @@ U.FormBuilder = L.FormBuilder.extend({
}, },
finish: function () { finish: function () {
this.map.ui.closePanel() this.map.editPanel.close()
}, },
}) })

View file

@ -7,7 +7,11 @@ U.Importer = L.Class.extend({
build: function () { build: function () {
this.container = L.DomUtil.create('div', 'umap-upload') this.container = L.DomUtil.create('div', 'umap-upload')
this.title = L.DomUtil.add('h3', '', this.container, L._('Import data')) this.title = L.DomUtil.createTitle(
this.container,
L._('Import data'),
'icon-upload'
)
this.presetBox = L.DomUtil.create('div', 'formbox', this.container) this.presetBox = L.DomUtil.create('div', 'formbox', this.container)
this.presetSelect = L.DomUtil.create('select', '', this.presetBox) this.presetSelect = L.DomUtil.create('select', '', this.presetBox)
this.fileBox = L.DomUtil.create('div', 'formbox', this.container) this.fileBox = L.DomUtil.create('div', 'formbox', this.container)
@ -16,7 +20,6 @@ U.Importer = L.Class.extend({
{ type: 'file', multiple: 'multiple', autofocus: true }, { type: 'file', multiple: 'multiple', autofocus: true },
this.fileBox this.fileBox
) )
this.map.ui.once('panel:closed', () => (this.fileInput.value = null))
this.urlInput = L.DomUtil.element( this.urlInput = L.DomUtil.element(
'input', 'input',
{ type: 'text', placeholder: L._('Provide an URL here') }, { type: 'text', placeholder: L._('Provide an URL here') },
@ -117,7 +120,10 @@ U.Importer = L.Class.extend({
open: function () { open: function () {
if (!this.container) this.build() if (!this.container) this.build()
this.map.ui.openPanel({ data: { html: this.container }, className: 'dark' }) const onLoad = this.map.editPanel.open({ data: { html: this.container } })
onLoad.then(() => {
this.fileInput.value = null
})
}, },
openFiles: function () { openFiles: function () {

View file

@ -56,6 +56,11 @@ U.Map = L.Map.extend({
if (geojson.geometry) this.options.center = this.latLng(geojson.geometry) if (geojson.geometry) this.options.center = this.latLng(geojson.geometry)
this.urls = new U.URLs(this.options.urls) this.urls = new U.URLs(this.options.urls)
this.panel = new U.Panel(this)
if (this.hasEditMode()) {
this.editPanel = new U.EditPanel(this)
this.fullPanel = new U.FullPanel(this)
}
this.ui = new U.UI(this._container) this.ui = new U.UI(this._container)
this.ui.on('dataloading', (e) => this.fire('dataloading', e)) this.ui.on('dataloading', (e) => this.fire('dataloading', e))
this.ui.on('dataload', (e) => this.fire('dataload', e)) this.ui.on('dataload', (e) => this.fire('dataload', e))
@ -140,14 +145,9 @@ U.Map = L.Map.extend({
} }
delete this.options.displayDataBrowserOnLoad delete this.options.displayDataBrowserOnLoad
} }
if (this.options.datalayersControl === 'expanded') {
this.ui.on( this.options.onLoadPanel = 'datalayers'
'panel:closed', }
function () {
this.invalidateSize({ pan: false })
},
this
)
let isDirty = false // self status let isDirty = false // self status
try { try {
@ -200,25 +200,24 @@ U.Map = L.Map.extend({
this.initCaptionBar() this.initCaptionBar()
if (this.hasEditMode()) { if (this.hasEditMode()) {
this.editTools = new U.Editable(this) this.editTools = new U.Editable(this)
this.ui.on(
'panel:closed panel:open',
function () {
this.editedFeature = null
},
this
)
this.renderEditToolbar() this.renderEditToolbar()
} }
this.initShortcuts() this.initShortcuts()
this.onceDataLoaded(function () { this.onceDataLoaded(function () {
if (L.Util.queryString('share')) this.share.open() if (L.Util.queryString('share')) {
else if (this.options.onLoadPanel === 'databrowser') this.openBrowser() this.share.open()
else if (this.options.onLoadPanel === 'caption') this.displayCaption() } else if (this.options.onLoadPanel === 'databrowser') {
else if ( this.panel.mode = 'expanded'
this.options.onLoadPanel === 'facet' || this.openBrowser()
this.options.onLoadPanel === 'datafilters' } else if (this.options.onLoadPanel === 'datalayers') {
) this.panel.mode = 'condensed'
this.openBrowser()
} else if (this.options.onLoadPanel === 'caption') {
this.panel.mode = 'condensed'
this.displayCaption()
} else if (['facet', 'datafilters'].includes(this.options.onLoadPanel)) {
this.openFacet() this.openFacet()
}
const slug = L.Util.queryString('feature') const slug = L.Util.queryString('feature')
if (slug && this.features_index[slug]) this.features_index[slug].view() if (slug && this.features_index[slug]) this.features_index[slug].view()
if (L.Util.queryString('edit')) { if (L.Util.queryString('edit')) {
@ -271,6 +270,7 @@ U.Map = L.Map.extend({
reindexDataLayers: function () { reindexDataLayers: function () {
this.eachDataLayer((datalayer) => datalayer.reindex()) this.eachDataLayer((datalayer) => datalayer.reindex())
this.onDataLayersChanged()
}, },
redrawVisibleDataLayers: function () { redrawVisibleDataLayers: function () {
@ -302,7 +302,7 @@ U.Map = L.Map.extend({
// Specific case for datalayersControl // Specific case for datalayersControl
// which accepts "expanded" value, on top of true/false/null // which accepts "expanded" value, on top of true/false/null
if (L.Util.queryString('datalayersControl') === 'expanded') { if (L.Util.queryString('datalayersControl') === 'expanded') {
L.Util.setFromQueryString(options, 'datalayersControl') options.onLoadPanel = 'datalayers'
} }
}, },
@ -322,22 +322,26 @@ U.Map = L.Map.extend({
new U.EditControl(this).addTo(this) new U.EditControl(this).addTo(this)
new U.DrawToolbar({ map: this }).addTo(this) new U.DrawToolbar({ map: this }).addTo(this)
const editActions = [ const editActions = [
U.ImportAction, U.EditCaptionAction,
U.EditPropertiesAction, U.EditPropertiesAction,
U.ManageDatalayersAction, U.EditLayersAction,
U.ChangeTileLayerAction, U.ChangeTileLayerAction,
U.UpdateExtentAction, U.UpdateExtentAction,
U.UpdatePermsAction, U.UpdatePermsAction,
U.ImportAction,
] ]
if (this.options.editMode === 'advanced') {
new U.SettingsToolbar({ actions: editActions }).addTo(this) new U.SettingsToolbar({ actions: editActions }).addTo(this)
} }
}
this._controls.zoom = new L.Control.Zoom({ this._controls.zoom = new L.Control.Zoom({
zoomInTitle: L._('Zoom in'), zoomInTitle: L._('Zoom in'),
zoomOutTitle: L._('Zoom out'), zoomOutTitle: L._('Zoom out'),
}) })
this._controls.datalayers = new U.DataLayersControl(this) this._controls.datalayers = new U.DataLayersControl(this)
this._controls.caption = new U.CaptionControl(this)
this._controls.locate = new U.Locate(this, { this._controls.locate = new U.Locate(this, {
strings: { strings: {
title: L._('Center map on your location'), title: L._('Center map on your location'),
@ -460,7 +464,11 @@ U.Map = L.Map.extend({
if (!pane.dataset || !pane.dataset.id) continue if (!pane.dataset || !pane.dataset.id) continue
this.datalayers_index.push(this.datalayers[pane.dataset.id]) this.datalayers_index.push(this.datalayers[pane.dataset.id])
} }
this.updateDatalayersControl() this.onDataLayersChanged()
},
onDataLayersChanged: function () {
if (this.browser) this.browser.update()
}, },
ensurePanesOrder: function () { ensurePanesOrder: function () {
@ -489,10 +497,6 @@ U.Map = L.Map.extend({
return this return this
}, },
updateDatalayersControl: function () {
if (this._controls.datalayers) this._controls.datalayers.update()
},
backupOptions: function () { backupOptions: function () {
this._backupOptions = L.extend({}, this.options) this._backupOptions = L.extend({}, this.options)
this._backupOptions.tilelayer = L.extend({}, this.options.tilelayer) this._backupOptions.tilelayer = L.extend({}, this.options.tilelayer)
@ -516,8 +520,13 @@ U.Map = L.Map.extend({
L.DomEvent.stop(e) L.DomEvent.stop(e)
this.search() this.search()
} else if (e.keyCode === U.Keys.ESC) { } else if (e.keyCode === U.Keys.ESC) {
if (this.help.visible()) this.help.hide() if (this.help.visible()) {
else this.ui.closePanel() this.help.hide()
} else {
this.panel.close()
this.editPanel.close()
this.fullPanel.close()
}
} }
if (!this.hasEditMode()) return if (!this.hasEditMode()) return
@ -529,7 +538,6 @@ U.Map = L.Map.extend({
} else if (key === U.Keys.E && modifierKey && this.editEnabled && !this.isDirty) { } else if (key === U.Keys.E && modifierKey && this.editEnabled && !this.isDirty) {
L.DomEvent.stop(e) L.DomEvent.stop(e)
this.disableEdit() this.disableEdit()
this.ui.closePanel()
} }
if (key === U.Keys.S && modifierKey) { if (key === U.Keys.S && modifierKey) {
L.DomEvent.stop(e) L.DomEvent.stop(e)
@ -767,6 +775,11 @@ U.Map = L.Map.extend({
return new U.DataLayer(this, datalayer) return new U.DataLayer(this, datalayer)
}, },
newDataLayer: function () {
const datalayer = this.createDataLayer({})
datalayer.edit()
},
getDefaultOption: function (option) { getDefaultOption: function (option) {
return U.SCHEMA[option] && U.SCHEMA[option].default return U.SCHEMA[option] && U.SCHEMA[option].default
}, },
@ -804,10 +817,6 @@ U.Map = L.Map.extend({
}) })
}, },
manageDatalayers: function () {
if (this._controls.datalayers) this._controls.datalayers.openPanel()
},
toGeoJSON: function () { toGeoJSON: function () {
let features = [] let features = []
this.eachDataLayer((datalayer) => { this.eachDataLayer((datalayer) => {
@ -951,9 +960,9 @@ U.Map = L.Map.extend({
}) })
this.ensurePanesOrder() this.ensurePanesOrder()
this.dirty_datalayers = [] this.dirty_datalayers = []
this.updateDatalayersControl()
this.initTileLayers() this.initTileLayers()
this.isDirty = false this.isDirty = false
this.onDataLayersChanged()
}, },
checkDirty: function () { checkDirty: function () {
@ -1054,7 +1063,7 @@ U.Map = L.Map.extend({
else window.location = data.url else window.location = data.url
alert.content = data.info || alert.content alert.content = data.info || alert.content
this.once('saved', () => this.ui.alert(alert)) this.once('saved', () => this.ui.alert(alert))
this.ui.closePanel() this.editPanel.close()
this.permissions.save() this.permissions.save()
} }
}, },
@ -1459,19 +1468,6 @@ U.Map = L.Map.extend({
slideshow.appendChild(slideshowBuilder.build()) slideshow.appendChild(slideshowBuilder.build())
}, },
_editCredits: function (container) {
const credits = L.DomUtil.createFieldset(container, L._('Credits'))
const creditsFields = [
'options.licence',
'options.shortCredit',
'options.longCredit',
'options.permanentCredit',
'options.permanentCreditBackground',
]
const creditsBuilder = new U.FormBuilder(this, creditsFields)
credits.appendChild(creditsBuilder.build())
},
_advancedActions: function (container) { _advancedActions: function (container) {
const advancedActions = L.DomUtil.createFieldset(container, L._('Advanced actions')) const advancedActions = L.DomUtil.createFieldset(container, L._('Advanced actions'))
const advancedButtons = L.DomUtil.create('div', 'button-bar half', advancedActions) const advancedButtons = L.DomUtil.create('div', 'button-bar half', advancedActions)
@ -1514,18 +1510,37 @@ U.Map = L.Map.extend({
) )
}, },
edit: function () { editCaption: function () {
if (!this.editEnabled) return if (!this.editEnabled) return
if (this.options.editMode !== 'advanced') return if (this.options.editMode !== 'advanced') return
const container = L.DomUtil.create('div', 'umap-edit-container'), const container = L.DomUtil.create('div', 'umap-edit-container'),
metadataFields = ['options.name', 'options.description'], metadataFields = ['options.name', 'options.description'],
title = L.DomUtil.create('h3', '', container) title = L.DomUtil.create('h3', '', container)
title.textContent = L._('Edit map properties') title.textContent = L._('Edit map details')
const builder = new U.FormBuilder(this, metadataFields, { const builder = new U.FormBuilder(this, metadataFields, {
className: 'map-metadata', className: 'map-metadata',
}) })
const form = builder.build() const form = builder.build()
container.appendChild(form) container.appendChild(form)
const credits = L.DomUtil.createFieldset(container, L._('Credits'))
const creditsFields = [
'options.licence',
'options.shortCredit',
'options.longCredit',
'options.permanentCredit',
'options.permanentCreditBackground',
]
const creditsBuilder = new U.FormBuilder(this, creditsFields)
credits.appendChild(creditsBuilder.build())
this.editPanel.open({ data: { html: container } })
},
edit: function () {
if (!this.editEnabled) return
if (this.options.editMode !== 'advanced') return
const container = L.DomUtil.create('div')
L.DomUtil.createTitle(container, L._('Map advanced properties'), 'icon-settings')
this._editControls(container) this._editControls(container)
this._editShapeProperties(container) this._editShapeProperties(container)
this._editDefaultProperties(container) this._editDefaultProperties(container)
@ -1534,10 +1549,9 @@ U.Map = L.Map.extend({
this._editOverlay(container) this._editOverlay(container)
this._editBounds(container) this._editBounds(container)
this._editSlideshow(container) this._editSlideshow(container)
this._editCredits(container)
this._advancedActions(container) this._advancedActions(container)
this.ui.openPanel({ data: { html: container }, className: 'dark' }) this.editPanel.open({ data: { html: container }, className: 'dark' })
}, },
enableEdit: function () { enableEdit: function () {
@ -1554,6 +1568,8 @@ U.Map = L.Map.extend({
this.editedFeature = null this.editedFeature = null
this.editEnabled = false this.editEnabled = false
this.fire('edit:disabled') this.fire('edit:disabled')
this.editPanel.close()
this.fullPanel.close()
}, },
hasEditMode: function () { hasEditMode: function () {
@ -1611,8 +1627,7 @@ U.Map = L.Map.extend({
askForReset: function (e) { askForReset: function (e) {
if (!confirm(L._('Are you sure you want to cancel your changes?'))) return if (!confirm(L._('Are you sure you want to cancel your changes?'))) return
this.reset() this.reset()
this.disableEdit(e) this.disableEdit()
this.ui.closePanel()
}, },
startMarker: function () { startMarker: function () {
@ -1809,7 +1824,7 @@ U.Map = L.Map.extend({
}, },
search: function () { search: function () {
if (this._controls.search) this._controls.search.openPanel(this) if (this._controls.search) this._controls.search.open()
}, },
getFilterKeys: function () { getFilterKeys: function () {

View file

@ -594,6 +594,7 @@ U.DataLayer = L.Evented.extend({
// Automatically, others will be shown manually, and thus will // Automatically, others will be shown manually, and thus will
// be in the "forced visibility" mode // be in the "forced visibility" mode
if (this.autoLoaded()) this.map.on('zoomend', this.onZoomEnd, this) if (this.autoLoaded()) this.map.on('zoomend', this.onZoomEnd, this)
this.on('datachanged', this.map.onDataLayersChanged, this.map)
}, },
render: function (fields, builder) { render: function (fields, builder) {
@ -602,7 +603,7 @@ U.DataLayer = L.Evented.extend({
for (let impact of impacts) { for (let impact of impacts) {
switch (impact) { switch (impact) {
case 'ui': case 'ui':
this.map.updateDatalayersControl() this.map.onDataLayersChanged()
break break
case 'data': case 'data':
if (fields.includes('options.type')) { if (fields.includes('options.type')) {
@ -845,7 +846,7 @@ U.DataLayer = L.Evented.extend({
if (L.Util.indexOf(this.map.datalayers_index, this) === -1) if (L.Util.indexOf(this.map.datalayers_index, this) === -1)
this.map.datalayers_index.push(this) this.map.datalayers_index.push(this)
} }
this.map.updateDatalayersControl() this.map.onDataLayersChanged()
}, },
_dataUrl: function () { _dataUrl: function () {
@ -1153,7 +1154,8 @@ U.DataLayer = L.Evented.extend({
delete this.map.datalayers[L.stamp(this)] delete this.map.datalayers[L.stamp(this)]
this.map.datalayers_index.splice(this.getRank(), 1) this.map.datalayers_index.splice(this.getRank(), 1)
this.parentPane.removeChild(this.pane) this.parentPane.removeChild(this.pane)
this.map.updateDatalayersControl() this.map.onDataLayersChanged()
this.off('datachanged', this.map.onDataLayersChanged, this.map)
this.fire('erase') this.fire('erase')
this._leaflet_events_bk = this._leaflet_events this._leaflet_events_bk = this._leaflet_events
this.map.off('moveend', this.onMoveEnd, this) this.map.off('moveend', this.onMoveEnd, this)
@ -1213,9 +1215,10 @@ U.DataLayer = L.Evented.extend({
}, },
], ],
] ]
const title = L.DomUtil.add('h3', '', container, L._('Layer properties')) L.DomUtil.createTitle(container, L._('Layer properties'), 'icon-layers')
let builder = new U.FormBuilder(this, metadataFields, { let builder = new U.FormBuilder(this, metadataFields, {
callback: function (e) { callback: function (e) {
this.map.onDataLayersChanged()
if (e.helper.field === 'options.type') { if (e.helper.field === 'options.type') {
this.edit() this.edit()
} }
@ -1349,7 +1352,7 @@ U.DataLayer = L.Evented.extend({
L._('Delete'), L._('Delete'),
function () { function () {
this._delete() this._delete()
this.map.ui.closePanel() this.map.editPanel.close()
}, },
this this
) )
@ -1381,7 +1384,10 @@ U.DataLayer = L.Evented.extend({
'_blank' '_blank'
) )
} }
this.map.ui.openPanel({ data: { html: container }, className: 'dark' }) this.map.editPanel.open({
data: { html: container },
actions: [U.Browser.backButton(this.map)],
})
}, },
getOwnOption: function (option) { getOwnOption: function (option) {

View file

@ -57,9 +57,9 @@ U.MapPermissions = L.Class.extend({
content: L._('Please save the map first'), content: L._('Please save the map first'),
level: 'info', level: 'info',
}) })
const container = L.DomUtil.create('div', 'permissions-panel'), const container = L.DomUtil.create('div', 'permissions-panel')
fields = [], const fields = []
title = L.DomUtil.create('h3', '', container) L.DomUtil.createTitle(container, L._('Update permissions'), 'icon-key')
if (this.isAnonymousMap()) { if (this.isAnonymousMap()) {
if (this.options.anonymous_edit_url) { if (this.options.anonymous_edit_url) {
const helpText = `${L._('Secret edit link:')}<br>${this.options.anonymous_edit_url const helpText = `${L._('Secret edit link:')}<br>${this.options.anonymous_edit_url
@ -103,7 +103,6 @@ U.MapPermissions = L.Class.extend({
{ handler: 'ManageEditors', label: L._("Map's editors") }, { handler: 'ManageEditors', label: L._("Map's editors") },
]) ])
} }
title.textContent = L._('Update permissions')
const builder = new U.FormBuilder(this, fields) const builder = new U.FormBuilder(this, fields)
const form = builder.build() const form = builder.build()
container.appendChild(form) container.appendChild(form)
@ -127,7 +126,7 @@ U.MapPermissions = L.Class.extend({
this.map.eachDataLayer((datalayer) => { this.map.eachDataLayer((datalayer) => {
datalayer.permissions.edit(container) datalayer.permissions.edit(container)
}) })
this.map.ui.openPanel({ data: { html: container }, className: 'dark' }) this.map.editPanel.open({ data: { html: container }, className: 'dark' })
}, },
attach: async function () { attach: async function () {
@ -138,7 +137,7 @@ U.MapPermissions = L.Class.extend({
content: L._('Map has been attached to your account'), content: L._('Map has been attached to your account'),
level: 'info', level: 'info',
}) })
this.map.ui.closePanel() this.map.editPanel.close()
} }
}, },

View file

@ -54,22 +54,10 @@ U.Popup.Panel = U.Popup.extend({
zoomAnimation: false, zoomAnimation: false,
}, },
allButton: function () {
const button = L.DomUtil.create('li', '')
L.DomUtil.create('i', 'umap-icon-16 umap-list', button)
const label = L.DomUtil.create('span', '', button)
label.textContent = label.title = L._('See all')
// Fixme: remove me when this is merged and released
// https://github.com/Leaflet/Leaflet/pull/9052
L.DomEvent.disableClickPropagation(button)
L.DomEvent.on(button, 'click', this.feature.map.openBrowser, this.feature.map)
return button
},
onAdd: function (map) { onAdd: function (map) {
map.ui.openPanel({ map.panel.open({
data: { html: this._content }, data: { html: this._content },
actions: [this.allButton()], actions: [U.Browser.backButton(map)],
}) })
// fire events as in base class Popup.js:onAdd // fire events as in base class Popup.js:onAdd
@ -83,7 +71,7 @@ U.Popup.Panel = U.Popup.extend({
}, },
onRemove: function (map) { onRemove: function (map) {
map.ui.closePanel() map.panel.close()
// fire events as in base class Popup.js:onRemove // fire events as in base class Popup.js:onRemove
map.fire('popupclose', { popup: this }) map.fire('popupclose', { popup: this })

View file

@ -44,9 +44,12 @@ U.Share = L.Class.extend({
}, },
build: function () { build: function () {
this.container = L.DomUtil.create('div', 'umap-share') this.container = L.DomUtil.create('div', '')
this.title = L.DomUtil.create('h3', '', this.container) this.title = L.DomUtil.createTitle(
this.title.textContent = L._('Share and download') this.container,
L._('Share and download'),
'icon-share'
)
L.DomUtil.createCopiableInput( L.DomUtil.createCopiableInput(
this.container, this.container,
@ -156,7 +159,7 @@ U.Share = L.Class.extend({
open: function () { open: function () {
if (!this.container) this.build() if (!this.container) this.build()
this.map.ui.openPanel({ data: { html: this.container } }) this.map.panel.open({ data: { html: this.container } })
}, },
format: function (mode) { format: function (mode) {

View file

@ -94,13 +94,12 @@ U.TableEditor = L.Class.extend({
edit: function () { edit: function () {
const id = 'tableeditor:edit' const id = 'tableeditor:edit'
this.datalayer.map.fire('dataloading', { id: id })
this.compileProperties() this.compileProperties()
this.renderHeaders() this.renderHeaders()
this.body.innerHTML = '' this.body.innerHTML = ''
this.datalayer.eachLayer(this.renderRow, this) this.datalayer.eachLayer(this.renderRow, this)
const addButton = L.DomUtil.create('li', 'add-property') const addButton = L.DomUtil.create('li', 'add-property')
L.DomUtil.create('i', 'umap-icon-16 umap-add', addButton) L.DomUtil.createIcon(addButton, 'icon-add')
const label = L.DomUtil.create('span', '', addButton) const label = L.DomUtil.create('span', '', addButton)
label.textContent = label.title = L._('Add a new property') label.textContent = label.title = L._('Add a new property')
const addProperty = function () { const addProperty = function () {
@ -110,11 +109,10 @@ U.TableEditor = L.Class.extend({
this.edit() this.edit()
} }
L.DomEvent.on(addButton, 'click', addProperty, this) L.DomEvent.on(addButton, 'click', addProperty, this)
this.datalayer.map.ui.openPanel({ this.datalayer.map.fullPanel.open({
data: { html: this.table }, data: { html: this.table },
className: 'umap-table-editor fullwidth dark', className: 'umap-table-editor',
actions: [addButton], actions: [addButton],
}) })
this.datalayer.map.fire('dataload', { id: id })
}, },
}) })

View file

@ -13,63 +13,12 @@ U.UI = L.Evented.extend({
L.DomEvent.on(this.container, 'contextmenu', L.DomEvent.stopPropagation) // Do not activate our custom context menu. L.DomEvent.on(this.container, 'contextmenu', L.DomEvent.stopPropagation) // Do not activate our custom context menu.
L.DomEvent.on(this.container, 'wheel', L.DomEvent.stopPropagation) L.DomEvent.on(this.container, 'wheel', L.DomEvent.stopPropagation)
L.DomEvent.on(this.container, 'MozMousePixelScroll', L.DomEvent.stopPropagation) L.DomEvent.on(this.container, 'MozMousePixelScroll', L.DomEvent.stopPropagation)
this._panel = L.DomUtil.create('div', '', this.container)
this._panel.id = 'umap-ui-container'
this._alert = L.DomUtil.create('div', 'with-transition', this.container) this._alert = L.DomUtil.create('div', 'with-transition', this.container)
this._alert.id = 'umap-alert-container' this._alert.id = 'umap-alert-container'
this._tooltip = L.DomUtil.create('div', '', this.container) this._tooltip = L.DomUtil.create('div', '', this.container)
this._tooltip.id = 'umap-tooltip-container' this._tooltip.id = 'umap-tooltip-container'
}, },
resetPanelClassName: function () {
this._panel.className = 'with-transition'
},
openPanel: function (e) {
this.fire('panel:open')
// We reset all because we can't know which class has been added
// by previous ui processes...
this.resetPanelClassName()
this._panel.innerHTML = ''
const actionsContainer = L.DomUtil.create('ul', 'toolbox', this._panel)
const body = L.DomUtil.create('div', 'body', this._panel)
if (e.data.html.nodeType && e.data.html.nodeType === 1)
body.appendChild(e.data.html)
else body.innerHTML = e.data.html
const closeLink = L.DomUtil.create('li', 'umap-close-link', actionsContainer)
L.DomUtil.add('i', 'umap-close-icon', closeLink)
const label = L.DomUtil.create('span', '', closeLink)
label.title = label.textContent = L._('Close')
if (e.actions) {
for (let i = 0; i < e.actions.length; i++) {
actionsContainer.appendChild(e.actions[i])
}
}
if (e.className) L.DomUtil.addClass(this._panel, e.className)
if (L.DomUtil.hasClass(this.parent, 'umap-ui')) {
// Already open.
this.fire('panel:ready')
} else {
L.DomEvent.once(
this._panel,
'transitionend',
function (e) {
this.fire('panel:ready')
},
this
)
L.DomUtil.addClass(this.parent, 'umap-ui')
}
L.DomEvent.on(closeLink, 'click', this.closePanel, this)
},
closePanel: function () {
if (L.DomUtil.hasClass(this.parent, 'umap-ui')) {
L.DomUtil.removeClass(this.parent, 'umap-ui')
this.fire('panel:closed')
}
},
alert: function (e) { alert: function (e) {
if (L.DomUtil.hasClass(this.parent, 'umap-alert')) this.ALERTS.push(e) if (L.DomUtil.hasClass(this.parent, 'umap-alert')) this.ALERTS.push(e)
else this.popAlert(e) else this.popAlert(e)

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "ሁሉንም ተመልከት", "See all": "ሁሉንም ተመልከት",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "ሙሉውን ስክሪን ተመልከት", "See full screen": "ሙሉውን ስክሪን ተመልከት",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "ሁሉንም ተመልከት", "See all": "ሁሉንም ተመልከት",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "ሙሉውን ስክሪን ተመልከት", "See full screen": "ሙሉውን ስክሪን ተመልከት",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "Виж на цял екран", "See full screen": "Виж на цял екран",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "Виж на цял екран", "See full screen": "Виж на цял екран",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Enrollañ al lec'h-mañ evel un elfenn nevez", "Save this location as new feature": "Enrollañ al lec'h-mañ evel un elfenn nevez",
"Search location": "Klask ul lec'h", "Search location": "Klask ul lec'h",
"See all": "Gwelet pep tra", "See all": "Gwelet pep tra",
"See data layers": "Diskouez ar gwiskadoù", "See layers": "Diskouez ar gwiskadoù",
"See full screen": "Gwelet e skramm a-bezh", "See full screen": "Gwelet e skramm a-bezh",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Diweredekaat evit kuzhat ar gwiskad-mañ ouzh an diaporama, ar merdeer roadennoù...", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Diweredekaat evit kuzhat ar gwiskad-mañ ouzh an diaporama, ar merdeer roadennoù...",
"Shape properties": "Perzhioù ar furm", "Shape properties": "Perzhioù ar furm",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Liamm aozañ kuzh eilet er golver!", "Secret edit link copied to clipboard!": "Liamm aozañ kuzh eilet er golver!",
"Secret edit link:": "Liamm aozañ kuzh:", "Secret edit link:": "Liamm aozañ kuzh:",
"See all": "Gwelet pep tra", "See all": "Gwelet pep tra",
"See data layers": "Diskouez ar gwiskadoù", "See layers": "Diskouez ar gwiskadoù",
"See full screen": "Gwelet e skramm a-bezh", "See full screen": "Gwelet e skramm a-bezh",
"See on OpenStreetMap": "Gwelet war OpenStreetMap", "See on OpenStreetMap": "Gwelet war OpenStreetMap",
"Select data": "Diuzañ ar roadennoù", "Select data": "Diuzañ ar roadennoù",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "Mostra les capes de dades", "See layers": "Mostra les capes de dades",
"See full screen": "Mostra-ho a pantalla completa", "See full screen": "Mostra-ho a pantalla completa",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "L'enllaç secret s'ha copiat al porta-retalls!", "Secret edit link copied to clipboard!": "L'enllaç secret s'ha copiat al porta-retalls!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "Mostra les capes de dades", "See layers": "Mostra les capes de dades",
"See full screen": "Mostra-ho a pantalla completa", "See full screen": "Mostra-ho a pantalla completa",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Uložit tuto pozici jako nový objekt", "Save this location as new feature": "Uložit tuto pozici jako nový objekt",
"Search location": "Vyhledat místo na mapě", "Search location": "Vyhledat místo na mapě",
"See all": "Zobraz vše", "See all": "Zobraz vše",
"See data layers": "Zobrazit datové vrstvy", "See layers": "Zobrazit datové vrstvy",
"See full screen": "Na celou obrazovku", "See full screen": "Na celou obrazovku",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Nastavte na false pro ukrytí této vrstvy z prezentace, prohlížeče dat, vyskakovací navigace...", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Nastavte na false pro ukrytí této vrstvy z prezentace, prohlížeče dat, vyskakovací navigace...",
"Shape properties": "Vlastností tvaru", "Shape properties": "Vlastností tvaru",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Tajný odkaz na úpravy do schránky!", "Secret edit link copied to clipboard!": "Tajný odkaz na úpravy do schránky!",
"Secret edit link:": "Tajný odkaz na úpravy:", "Secret edit link:": "Tajný odkaz na úpravy:",
"See all": "Zobraz vše", "See all": "Zobraz vše",
"See data layers": "Zobrazit datové vrstvy", "See layers": "Zobrazit datové vrstvy",
"See full screen": "Na celou obrazovku", "See full screen": "Na celou obrazovku",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Gem denne placering som et nyt objekt", "Save this location as new feature": "Gem denne placering som et nyt objekt",
"Search location": "Søg efter placering", "Search location": "Søg efter placering",
"See all": "Se alle", "See all": "Se alle",
"See data layers": "Se datalag", "See layers": "Se datalag",
"See full screen": "Se i fuld skærm", "See full screen": "Se i fuld skærm",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Sæt den til false, for at skjule dette lag fra slideshowet, databrowseren, popupnavigeringen…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Sæt den til false, for at skjule dette lag fra slideshowet, databrowseren, popupnavigeringen…",
"Shape properties": "Figuregenskaber", "Shape properties": "Figuregenskaber",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Se alle", "See all": "Se alle",
"See data layers": "Se datalag", "See layers": "Se datalag",
"See full screen": "Se i fuld skærm", "See full screen": "Se i fuld skærm",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Diesen Ort als neues Element speichern", "Save this location as new feature": "Diesen Ort als neues Element speichern",
"Search location": "Ort suchen", "Search location": "Ort suchen",
"See all": "Alle anzeigen", "See all": "Alle anzeigen",
"See data layers": "Datenebenen ansehen", "See layers": "Datenebenen ansehen",
"See full screen": "Vollbildanzeige", "See full screen": "Vollbildanzeige",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Setze es auf Nein, um diese Ebene in der Diashow, im Datenbrowser, in der Popup-Navigation,... auszublenden.", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Setze es auf Nein, um diese Ebene in der Diashow, im Datenbrowser, in der Popup-Navigation,... auszublenden.",
"Shape properties": "Formeigenschaften", "Shape properties": "Formeigenschaften",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Geheimer Link zum Bearbeiten der Karte in die Zwischenablage kopiert!", "Secret edit link copied to clipboard!": "Geheimer Link zum Bearbeiten der Karte in die Zwischenablage kopiert!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Alle anzeigen", "See all": "Alle anzeigen",
"See data layers": "Datenebenen ansehen", "See layers": "Datenebenen ansehen",
"See full screen": "Vollbildanzeige", "See full screen": "Vollbildanzeige",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Wähle Daten aus", "Select data": "Wähle Daten aus",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Αποθήκευση αυτής της τοποθεσίας ως νέο στοιχείο", "Save this location as new feature": "Αποθήκευση αυτής της τοποθεσίας ως νέο στοιχείο",
"Search location": "Αναζήτηση τοποθεσίας", "Search location": "Αναζήτηση τοποθεσίας",
"See all": "Εμφάνιση όλων", "See all": "Εμφάνιση όλων",
"See data layers": "Εμφάνιση επιπέδων δεδομένων", "See layers": "Εμφάνιση επιπέδων δεδομένων",
"See full screen": "Εμφάνιση πλήρους οθόνης", "See full screen": "Εμφάνιση πλήρους οθόνης",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Απενεργοποίηση εάν επιθυμείτε την απόκρυψη του επιπέδου κατά την προβολή των διαφανειών, την περιήγηση δεδομένων, την αναδυόμενη πλοήγηση...", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Απενεργοποίηση εάν επιθυμείτε την απόκρυψη του επιπέδου κατά την προβολή των διαφανειών, την περιήγηση δεδομένων, την αναδυόμενη πλοήγηση...",
"Shape properties": "Ιδιότητες σχήματος", "Shape properties": "Ιδιότητες σχήματος",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Ο μυστικός σύνδεσμος επεξεργασίας αντιγράφηκε στο πρόχειρο!", "Secret edit link copied to clipboard!": "Ο μυστικός σύνδεσμος επεξεργασίας αντιγράφηκε στο πρόχειρο!",
"Secret edit link:": "Μυστικός σύνδεσμος επεξεργασίας:", "Secret edit link:": "Μυστικός σύνδεσμος επεξεργασίας:",
"See all": "Εμφάνιση όλων", "See all": "Εμφάνιση όλων",
"See data layers": "Εμφάνιση επιπέδων δεδομένων", "See layers": "Εμφάνιση επιπέδων δεδομένων",
"See full screen": "Εμφάνιση πλήρους οθόνης", "See full screen": "Εμφάνιση πλήρους οθόνης",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Επιλογή δεδομένων", "Select data": "Επιλογή δεδομένων",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Guardar esta ubicación como nuevo elemento", "Save this location as new feature": "Guardar esta ubicación como nuevo elemento",
"Search location": "Buscar ubicación", "Search location": "Buscar ubicación",
"See all": "Ver todo", "See all": "Ver todo",
"See data layers": "Ver capas de datos", "See layers": "Ver capas de datos",
"See full screen": "Ver pantalla completa", "See full screen": "Ver pantalla completa",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Establecer en falso para ocultar esta capa de la presentación de diapositivas, el navegador de datos, la navegación emergente...", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Establecer en falso para ocultar esta capa de la presentación de diapositivas, el navegador de datos, la navegación emergente...",
"Shape properties": "Propiedades de la figura", "Shape properties": "Propiedades de la figura",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Enlace de edición secreto copiado en el portapapeles", "Secret edit link copied to clipboard!": "Enlace de edición secreto copiado en el portapapeles",
"Secret edit link:": "Enlace secreto de edición:", "Secret edit link:": "Enlace secreto de edición:",
"See all": "Ver todo", "See all": "Ver todo",
"See data layers": "Ver capas de datos", "See layers": "Ver capas de datos",
"See full screen": "Ver pantalla completa", "See full screen": "Ver pantalla completa",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Salvesta see asukoht uue elemendina", "Save this location as new feature": "Salvesta see asukoht uue elemendina",
"Search location": "Asukoha otsing", "Search location": "Asukoha otsing",
"See all": "Näita kõiki", "See all": "Näita kõiki",
"See data layers": "Näita andmekihte", "See layers": "Näita andmekihte",
"See full screen": "Täisekraanvaade", "See full screen": "Täisekraanvaade",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Kujundi omadused", "Shape properties": "Kujundi omadused",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Näita kõiki", "See all": "Näita kõiki",
"See data layers": "Näita andmekihte", "See layers": "Näita andmekihte",
"See full screen": "Täisekraanvaade", "See full screen": "Täisekraanvaade",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -250,7 +250,7 @@ const locale = {
"Search location": "Search location", "Search location": "Search location",
"Secret edit link is:<br>{link}": "Secret edit link is:<br>{link}", "Secret edit link is:<br>{link}": "Secret edit link is:<br>{link}",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "این مکان را به عنوان ویژگی جدید ذخیره کنید", "Save this location as new feature": "این مکان را به عنوان ویژگی جدید ذخیره کنید",
"Search location": "مکان را جستجو کنید", "Search location": "مکان را جستجو کنید",
"See all": "همه را ببین", "See all": "همه را ببین",
"See data layers": "لایه های داده را مشاهده کنید", "See layers": "لایه های داده را مشاهده کنید",
"See full screen": "تمام صفحه را مشاهده کنید", "See full screen": "تمام صفحه را مشاهده کنید",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "آن را روی غلط/false تنظیم کنید تا این لایه از نمایش اسلاید، مرورگر داده، ناوبری بازشو پنهان شود…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "آن را روی غلط/false تنظیم کنید تا این لایه از نمایش اسلاید، مرورگر داده، ناوبری بازشو پنهان شود…",
"Shape properties": "ویژگی های شکل", "Shape properties": "ویژگی های شکل",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "همه را ببین", "See all": "همه را ببین",
"See data layers": "لایه های داده را مشاهده کنید", "See layers": "لایه های داده را مشاهده کنید",
"See full screen": "تمام صفحه را مشاهده کنید", "See full screen": "تمام صفحه را مشاهده کنید",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "داده‌ها را انتخاب کنید", "Select data": "داده‌ها را انتخاب کنید",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "Näytä kaikki", "See all": "Näytä kaikki",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "Katso koko näytöllä", "See full screen": "Katso koko näytöllä",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Piirteen ominaisuudet", "Shape properties": "Piirteen ominaisuudet",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Näytä kaikki", "See all": "Näytä kaikki",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "Katso koko näytöllä", "See full screen": "Katso koko näytöllä",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Enregistrer ce lieu comme élément de la carte", "Save this location as new feature": "Enregistrer ce lieu comme élément de la carte",
"Search location": "Chercher un lieu", "Search location": "Chercher un lieu",
"See all": "Tout voir", "See all": "Tout voir",
"See data layers": "Voir les calques", "See layers": "Voir les calques",
"See full screen": "Voir en plein écran", "See full screen": "Voir en plein écran",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Désactiver pour masquer ce calque du diaporama, du navigateur de données…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Désactiver pour masquer ce calque du diaporama, du navigateur de données…",
"Shape properties": "Propriétés de la forme", "Shape properties": "Propriétés de la forme",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Lien d'édition secret copié dans le presse-papier!", "Secret edit link copied to clipboard!": "Lien d'édition secret copié dans le presse-papier!",
"Secret edit link:": "Lien d'édition secret :", "Secret edit link:": "Lien d'édition secret :",
"See all": "Tout voir", "See all": "Tout voir",
"See data layers": "Voir les calques", "See layers": "Voir les calques",
"See full screen": "Voir en plein écran", "See full screen": "Voir en plein écran",
"See on OpenStreetMap": "Voir sur OpenStreetMap", "See on OpenStreetMap": "Voir sur OpenStreetMap",
"Select data": "Sélectionner les données", "Select data": "Sélectionner les données",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Gardar esta ubicación coma novo elemento", "Save this location as new feature": "Gardar esta ubicación coma novo elemento",
"Search location": "Procurar localización", "Search location": "Procurar localización",
"See all": "Ollar todo", "See all": "Ollar todo",
"See data layers": "Ollar capas de datos", "See layers": "Ollar capas de datos",
"See full screen": "Ollar pantalla completa", "See full screen": "Ollar pantalla completa",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Axústeo a falso para agochar esta capa da presentación ('slideshow'), o navegador de datos, a navegación da xanela emerxente...", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Axústeo a falso para agochar esta capa da presentación ('slideshow'), o navegador de datos, a navegación da xanela emerxente...",
"Shape properties": "Propiedades da forma", "Shape properties": "Propiedades da forma",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Ollar todo", "See all": "Ollar todo",
"See data layers": "Ollar capas de datos", "See layers": "Ollar capas de datos",
"See full screen": "Ollar pantalla completa", "See full screen": "Ollar pantalla completa",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "לשמור את המיקום הזה כתכונה חדשה", "Save this location as new feature": "לשמור את המיקום הזה כתכונה חדשה",
"Search location": "חיפוש מיקום", "Search location": "חיפוש מיקום",
"See all": "להציג הכול", "See all": "להציג הכול",
"See data layers": "להציג שכבות נתונים", "See layers": "להציג שכבות נתונים",
"See full screen": "הצגת מסך מלא", "See full screen": "הצגת מסך מלא",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "יש להגדיר לשקר כדי להסתיר את השכבה הזאת מהמצגת, דפדפן הנתונים, הניווט המוקפץ…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "יש להגדיר לשקר כדי להסתיר את השכבה הזאת מהמצגת, דפדפן הנתונים, הניווט המוקפץ…",
"Shape properties": "מאפייני צורה", "Shape properties": "מאפייני צורה",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "להציג הכול", "See all": "להציג הכול",
"See data layers": "להציג שכבות נתונים", "See layers": "להציג שכבות נתונים",
"See full screen": "הצגת מסך מלא", "See full screen": "הצגת מסך מלא",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "Prikaži unesene podatke", "See layers": "Prikaži unesene podatke",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "Prikaži unesene podatke", "See layers": "Prikaži unesene podatke",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "E hely mentése új objektumként", "Save this location as new feature": "E hely mentése új objektumként",
"Search location": "Hely keresése", "Search location": "Hely keresése",
"See all": "Összes megtekintése", "See all": "Összes megtekintése",
"See data layers": "Adatrétegek megtekintése", "See layers": "Adatrétegek megtekintése",
"See full screen": "Teljes képernyős nézet megtekintése", "See full screen": "Teljes képernyős nézet megtekintése",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Állítsa hamisra, hogy elrejtse ezt a réteget a diavetítésből, az adatböngészőből, az előugró navigációból stb.", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Állítsa hamisra, hogy elrejtse ezt a réteget a diavetítésből, az adatböngészőből, az előugró navigációból stb.",
"Shape properties": "Alakzat tulajdonságai", "Shape properties": "Alakzat tulajdonságai",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Titkos szerkesztési link a vágólapra másolva.", "Secret edit link copied to clipboard!": "Titkos szerkesztési link a vágólapra másolva.",
"Secret edit link:": "Titkos szerkesztési link:", "Secret edit link:": "Titkos szerkesztési link:",
"See all": "Összes megtekintése", "See all": "Összes megtekintése",
"See data layers": "Adatrétegek megtekintése", "See layers": "Adatrétegek megtekintése",
"See full screen": "Teljes képernyős nézet megtekintése", "See full screen": "Teljes képernyős nézet megtekintése",
"See on OpenStreetMap": "Megtekintés az OpenStreetMapen", "See on OpenStreetMap": "Megtekintés az OpenStreetMapen",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Vista þessa staðsetningu sem nýja fitju", "Save this location as new feature": "Vista þessa staðsetningu sem nýja fitju",
"Search location": "Leita að staðsetningu", "Search location": "Leita að staðsetningu",
"See all": "Sjá allt", "See all": "Sjá allt",
"See data layers": "Skoða gagnalög", "See layers": "Skoða gagnalög",
"See full screen": "Fylla skjáinn", "See full screen": "Fylla skjáinn",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Settu þetta sem ósatt til að fela þetta lag úr skyggnusýningu, gagnavafranum, sprettleiðsögn…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Settu þetta sem ósatt til að fela þetta lag úr skyggnusýningu, gagnavafranum, sprettleiðsögn…",
"Shape properties": "Eiginleikar lögunar", "Shape properties": "Eiginleikar lögunar",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Sjá allt", "See all": "Sjá allt",
"See data layers": "Skoða gagnalög", "See layers": "Skoða gagnalög",
"See full screen": "Fylla skjáinn", "See full screen": "Fylla skjáinn",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Salva questa posizione come nuovo oggetto", "Save this location as new feature": "Salva questa posizione come nuovo oggetto",
"Search location": "Cerca un luogo", "Search location": "Cerca un luogo",
"See all": "Vedi tutto", "See all": "Vedi tutto",
"See data layers": "Vedi i layer di dati", "See layers": "Vedi i layer di dati",
"See full screen": "Visualizza a schermo intero", "See full screen": "Visualizza a schermo intero",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Impostalo su false per nascondere questo layer dalla presentazione, dal browser dati, dalla navigazione popup...", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Impostalo su false per nascondere questo layer dalla presentazione, dal browser dati, dalla navigazione popup...",
"Shape properties": "Proprietà della geometria", "Shape properties": "Proprietà della geometria",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Link della modifica segreta copiato in memoria!", "Secret edit link copied to clipboard!": "Link della modifica segreta copiato in memoria!",
"Secret edit link:": "Link segreto per editare:", "Secret edit link:": "Link segreto per editare:",
"See all": "Vedi tutto", "See all": "Vedi tutto",
"See data layers": "Vedi i layer di dati", "See layers": "Vedi i layer di dati",
"See full screen": "Visualizza a schermo intero", "See full screen": "Visualizza a schermo intero",
"See on OpenStreetMap": "Vedi su OpenStreetMap", "See on OpenStreetMap": "Vedi su OpenStreetMap",
"Select data": "Seleziona i dati", "Select data": "Seleziona i dati",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "この場所を新しい地物として保存", "Save this location as new feature": "この場所を新しい地物として保存",
"Search location": "地名で検索", "Search location": "地名で検索",
"See all": "すべて表示", "See all": "すべて表示",
"See data layers": "データレイヤを見る", "See layers": "データレイヤを見る",
"See full screen": "フルスクリーン表示", "See full screen": "フルスクリーン表示",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "シェイプ表示プロパティ", "Shape properties": "シェイプ表示プロパティ",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "すべて表示", "See all": "すべて表示",
"See data layers": "データレイヤを見る", "See layers": "データレイヤを見る",
"See full screen": "フルスクリーン表示", "See full screen": "フルスクリーン表示",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "Išsaugoti viską", "See all": "Išsaugoti viską",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "Peržiūrėti per visą ekraną", "See full screen": "Peržiūrėti per visą ekraną",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Išsaugoti viską", "See all": "Išsaugoti viską",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "Peržiūrėti per visą ekraną", "See full screen": "Peržiūrėti per visą ekraną",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Simpan kedudukan ini sebagai sifat baharu", "Save this location as new feature": "Simpan kedudukan ini sebagai sifat baharu",
"Search location": "Kedudukan carian", "Search location": "Kedudukan carian",
"See all": "Lihat semua", "See all": "Lihat semua",
"See data layers": "Lihat lapisan data", "See layers": "Lihat lapisan data",
"See full screen": "Lihat skrin penuh", "See full screen": "Lihat skrin penuh",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Tetapkan ke 'false' untuk menyembunyikan lapisan ini daripada persembahan slaid, pelayar data, navigasi timbul…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Tetapkan ke 'false' untuk menyembunyikan lapisan ini daripada persembahan slaid, pelayar data, navigasi timbul…",
"Shape properties": "Ciri-ciri bentuk", "Shape properties": "Ciri-ciri bentuk",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Pautan suntingan rahsia telah disalin ke papan keratan!", "Secret edit link copied to clipboard!": "Pautan suntingan rahsia telah disalin ke papan keratan!",
"Secret edit link:": "Pautan suntingan rahsia:", "Secret edit link:": "Pautan suntingan rahsia:",
"See all": "Lihat semua", "See all": "Lihat semua",
"See data layers": "Lihat lapisan data", "See layers": "Lihat lapisan data",
"See full screen": "Lihat skrin penuh", "See full screen": "Lihat skrin penuh",
"See on OpenStreetMap": "Lihat di OpenStreetMap", "See on OpenStreetMap": "Lihat di OpenStreetMap",
"Select data": "Pilih data", "Select data": "Pilih data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Sla deze locatie op als nieuw object", "Save this location as new feature": "Sla deze locatie op als nieuw object",
"Search location": "Zoek locatie", "Search location": "Zoek locatie",
"See all": "Toon alles", "See all": "Toon alles",
"See data layers": "Bekijk datalagen", "See layers": "Bekijk datalagen",
"See full screen": "Op volledig scherm weergeven", "See full screen": "Op volledig scherm weergeven",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Zet op onwaar ('false') om deze laag te verbergen in de slideshow, data verkenner, popup navigatie, ...", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Zet op onwaar ('false') om deze laag te verbergen in de slideshow, data verkenner, popup navigatie, ...",
"Shape properties": "Eigenschappen van de vorm", "Shape properties": "Eigenschappen van de vorm",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Geheime editeer-link is gekopieerd naar het klembord!", "Secret edit link copied to clipboard!": "Geheime editeer-link is gekopieerd naar het klembord!",
"Secret edit link:": "Geheime editeer-link", "Secret edit link:": "Geheime editeer-link",
"See all": "Toon alles", "See all": "Toon alles",
"See data layers": "Bekijk datalagen", "See layers": "Bekijk datalagen",
"See full screen": "Op volledig scherm weergeven", "See full screen": "Op volledig scherm weergeven",
"See on OpenStreetMap": "Bekijk op OpenStreetMap", "See on OpenStreetMap": "Bekijk op OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Save this location as new feature", "Save this location as new feature": "Save this location as new feature",
"Search location": "Search location", "Search location": "Search location",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
"Shape properties": "Shape properties", "Shape properties": "Shape properties",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Zapisz to miejsce jako nowy obiekt", "Save this location as new feature": "Zapisz to miejsce jako nowy obiekt",
"Search location": "Znajdź miejsce", "Search location": "Znajdź miejsce",
"See all": "Pokaż wszystko", "See all": "Pokaż wszystko",
"See data layers": "Zobacz wszystkie warstwy danych", "See layers": "Zobacz wszystkie warstwy danych",
"See full screen": "Pełny ekran", "See full screen": "Pełny ekran",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Ustaw „OFF”, żeby ukryć tę warstwę z pokazu slajdów, przeglądarki danych i okienek nawigacji.", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Ustaw „OFF”, żeby ukryć tę warstwę z pokazu slajdów, przeglądarki danych i okienek nawigacji.",
"Shape properties": "Właściwości kształtu", "Shape properties": "Właściwości kształtu",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Tajny odnośnik do edycji skopiowany do schowka!", "Secret edit link copied to clipboard!": "Tajny odnośnik do edycji skopiowany do schowka!",
"Secret edit link:": "Sekretny odnośnik edycji:", "Secret edit link:": "Sekretny odnośnik edycji:",
"See all": "Pokaż wszystko", "See all": "Pokaż wszystko",
"See data layers": "Zobacz wszystkie warstwy danych", "See layers": "Zobacz wszystkie warstwy danych",
"See full screen": "Pełny ekran", "See full screen": "Pełny ekran",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "See all", "See all": "See all",
"See data layers": "See data layers", "See layers": "See layers",
"See full screen": "See full screen", "See full screen": "See full screen",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Gravar esta localização como novo elemento", "Save this location as new feature": "Gravar esta localização como novo elemento",
"Search location": "Procurar localização", "Search location": "Procurar localização",
"See all": "Ver tudo", "See all": "Ver tudo",
"See data layers": "Ver camadas de dados", "See layers": "Ver camadas de dados",
"See full screen": "Ver em ecrã total", "See full screen": "Ver em ecrã total",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Defina como falso para ocultar esta camada da apresentação de slides, o navegador de dados e da navegação do popup…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Defina como falso para ocultar esta camada da apresentação de slides, o navegador de dados e da navegação do popup…",
"Shape properties": "Propriedades de formas geométricas", "Shape properties": "Propriedades de formas geométricas",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Ver tudo", "See all": "Ver tudo",
"See data layers": "Ver camadas de dados", "See layers": "Ver camadas de dados",
"See full screen": "Ver em ecrã total", "See full screen": "Ver em ecrã total",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Gravar esta localização como novo elemento", "Save this location as new feature": "Gravar esta localização como novo elemento",
"Search location": "Procurar localização", "Search location": "Procurar localização",
"See all": "Ver tudo", "See all": "Ver tudo",
"See data layers": "Ver camadas de dados", "See layers": "Ver camadas de dados",
"See full screen": "Ver em ecrã total", "See full screen": "Ver em ecrã total",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Defina como falso para ocultar esta camada da apresentação de slides, o navegador de dados e da navegação do popup…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Defina como falso para ocultar esta camada da apresentação de slides, o navegador de dados e da navegação do popup…",
"Shape properties": "Propriedades de formas geométricas", "Shape properties": "Propriedades de formas geométricas",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Ver tudo", "See all": "Ver tudo",
"See data layers": "Ver camadas de dados", "See layers": "Ver camadas de dados",
"See full screen": "Ver em ecrã total", "See full screen": "Ver em ecrã total",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

View file

@ -230,7 +230,7 @@ const locale = {
"Save this location as new feature": "Gravar esta localização como novo elemento", "Save this location as new feature": "Gravar esta localização como novo elemento",
"Search location": "Procurar localização", "Search location": "Procurar localização",
"See all": "Ver tudo", "See all": "Ver tudo",
"See data layers": "Ver camadas de dados", "See layers": "Ver camadas de dados",
"See full screen": "Ver em ecrã total", "See full screen": "Ver em ecrã total",
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Defina como falso para ocultar esta camada da apresentação de slides, o navegador de dados e da navegação do popup…", "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Defina como falso para ocultar esta camada da apresentação de slides, o navegador de dados e da navegação do popup…",
"Shape properties": "Propriedades de formas geométricas", "Shape properties": "Propriedades de formas geométricas",

View file

@ -335,7 +335,7 @@
"Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!", "Secret edit link copied to clipboard!": "Secret edit link copied to clipboard!",
"Secret edit link:": "Secret edit link:", "Secret edit link:": "Secret edit link:",
"See all": "Ver tudo", "See all": "Ver tudo",
"See data layers": "Ver camadas de dados", "See layers": "Ver camadas de dados",
"See full screen": "Ver em ecrã total", "See full screen": "Ver em ecrã total",
"See on OpenStreetMap": "See on OpenStreetMap", "See on OpenStreetMap": "See on OpenStreetMap",
"Select data": "Select data", "Select data": "Select data",

Some files were not shown because too many files have changed in this diff Show more