diff --git a/assets/layers/icons/icons.json b/assets/layers/icons/icons.json index 54ebd45d5..93e9e91ec 100644 --- a/assets/layers/icons/icons.json +++ b/assets/layers/icons/icons.json @@ -430,10 +430,10 @@ } }, { - "id": "favourite_icon", + "condition": "_favourite=yes", "description": "Only for rendering", "icon": "circle:white;heart:red", - "condition": "_favourite=yes", + "id": "favourite_icon", "metacondition": "__showTimeSensitiveIcons!=no" }, { diff --git a/assets/layers/last_click/last_click.json b/assets/layers/last_click/last_click.json index 3185c513f..6aaa19115 100644 --- a/assets/layers/last_click/last_click.json +++ b/assets/layers/last_click/last_click.json @@ -217,8 +217,8 @@ }, { "id": "debug", - "render": "{all_tags()}", - "metacondition": "__featureSwitchIsDebugging=true" + "metacondition": "__featureSwitchIsDebugging=true", + "render": "{all_tags()}" } ], "filter": [ diff --git a/assets/layers/note/note.json b/assets/layers/note/note.json index b1dd36f32..eedef08c6 100644 --- a/assets/layers/note/note.json +++ b/assets/layers/note/note.json @@ -114,9 +114,9 @@ "lineRendering": [], "tagRenderings": [ { + "classes": "p-0", "id": "conversation", - "render": "{visualize_note_comments()}", - "classes": "p-0" + "render": "{visualize_note_comments()}" }, { "id": "add_image", diff --git a/assets/layers/osm_community_index/osm_community_index.json b/assets/layers/osm_community_index/osm_community_index.json index 1c605ca38..150fc6ecd 100644 --- a/assets/layers/osm_community_index/osm_community_index.json +++ b/assets/layers/osm_community_index/osm_community_index.json @@ -66,16 +66,16 @@ ], "tagRenderings": [ { - "id": "country_name", + "condition": "level=country", "description": "The name of the country", - "render": "{nameEn} {emojiFlag}", - "condition": "level=country" + "id": "country_name", + "render": "{nameEn} {emojiFlag}" }, { - "id": "community_links", + "condition": "_community_links~*", "description": "Community Links (Discord, meetups, Slack groups, IRC channels, mailing lists etc...)", - "render": "{_community_links}", - "condition": "_community_links~*" + "id": "community_links", + "render": "{_community_links}" } ], "filter": [ diff --git a/langs/fr.json b/langs/fr.json index 4d7221117..7e05eb4b1 100644 --- a/langs/fr.json +++ b/langs/fr.json @@ -888,4 +888,4 @@ "feedback": "Ceci n'est pas une adresse web valide" } } -} +} \ No newline at end of file diff --git a/public/assets/SocialImageTemplate.svg b/public/assets/SocialImageTemplate.svg index 89e336c45..6a9eb5c58 100644 --- a/public/assets/SocialImageTemplate.svg +++ b/public/assets/SocialImageTemplate.svg @@ -8,7 +8,7 @@ version="1.1" id="svg8" sodipodi:docname="SocialImageTemplate.svg" - inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" @@ -26,16 +26,18 @@ inkscape:pageopacity="0" inkscape:pagecheckerboard="0" showgrid="false" - inkscape:zoom="1.092271" - inkscape:cx="713.19299" - inkscape:cy="1052.3945" - inkscape:current-layer="g2047" + inkscape:zoom="0.3867548" + inkscape:cx="398.18511" + inkscape:cy="660.62529" + inkscape:current-layer="svg8" inkscape:snap-global="false" inkscape:window-width="1920" - inkscape:window-height="995" + inkscape:window-height="1005" inkscape:window-x="0" inkscape:window-y="0" - inkscape:window-maximized="1" /> + inkscape:window-maximized="1" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="g2153" + transform="matrix(0.92478505,0,0,0.92478505,9.250948,129.78895)"> - - + transform="translate(-9,67.985325)" + style="display:inline" + id="layer4" /> - - - - - - - - - - - - - - - - - - - - - - - - + transform="translate(-9,67.985325)" + style="display:inline" + id="layer3-0" /> - - - - - - + transform="translate(-9,67.985325)" + style="display:inline" + id="layer7" /> - - - - - - - - - - - - - - - - - - + transform="translate(-9,67.985325)" + style="display:inline" + id="layer5-9"> - - - + transform="translate(40.704551,-34.050923)" + id="g1809"> + transform="translate(0,182)" + id="g4808" + style="display:inline;opacity:0.269566"> + + + + + + + + + + + + + + + + + + + + + + clip-path="url(#clipPath5466-2-3-6)" + id="g5438-0"> + + + + + + + + + + + + + + + + + + + + + + id="path3834-4-9-9" /> + id="path3834-7-2-4-9-8" /> + id="path3834-7-26-9-7-4" /> + id="path3834-4-9-6-2" /> + id="path3834-7-26-0-0-9-5" /> + id="path3834-7-2-4-3-7" /> + id="path3834-7-26-9-85-2" /> + id="path3834-7-26-0-0-3-7" /> + style="display:inline;opacity:0.0434783" + id="g4818-4" + transform="translate(0,192)"> + id="path3834-4-9-1-4" /> + id="path3834-7-26-0-0-7-0" /> + id="path3834-7-2-4-6-5" /> + id="path3834-7-26-9-8-6" /> + id="path3834-4-9-2-0" /> + id="path3834-7-26-0-0-0-0" /> + id="path3834-7-26-9-9-4" /> + id="path3834-7-2-4-5-0" /> + + + + + + + + + + + + + + + + + + + + transform="translate(0,-10)" + clip-path="url(#clipPath5426-2)" + id="g5400" + style="display:inline"> - - - + style="fill:none;stroke:#d38484;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 57.75,20 -8.5,28.25 18,6.25 L 75,90.75 54,113 l 9,10.5 -12,11.5 0.5,4.5 20.25,24.5 14,-6.75 20.5,18.5 -10.5,28.25 10.25,8.5 -2.75,13" + id="path5387" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + style="fill:none;stroke:#d38484;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 105.75,212.25 12.5,-27.75 11,-7 27.5,15.75 20.5,-3.75 -0.25,-15.75 -10.25,-6 12.75,-26.25 5.75,-3.75 38.75,-10" + id="path5389" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + +   -   - + + + - - - - - + style="fill:none" + transform="matrix(2.155193,-2.155193,2.155193,2.155193,-466.30656,-496.64007)" + id="layer1-3"> + + @@ -2707,29 +2708,6 @@ - - - - - - @@ -2911,4 +2889,32 @@ id="body" /> + + + + + + + + + diff --git a/scripts/generateTaginfoProjectFiles.ts b/scripts/generateTaginfoProjectFiles.ts index 56dbb3a5f..0d82a3e60 100644 --- a/scripts/generateTaginfoProjectFiles.ts +++ b/scripts/generateTaginfoProjectFiles.ts @@ -6,6 +6,7 @@ import ThemeConfig from "../src/Models/ThemeConfig/ThemeConfig" import LayerConfig from "../src/Models/ThemeConfig/LayerConfig" import { Utils } from "../src/Utils" import { Lists } from "../src/Utils/Lists" +import { Strings } from "../src/Utils/Strings" /** * Generates all the files in "Docs/TagInfo". These are picked up by the taginfo project, showing a link to the mapcomplete theme if the key is used @@ -107,8 +108,8 @@ function generateLayerUsage(layer: LayerConfig): TagInfoPrototype[] { layerName, shownText: descr, layer, - icon: !Utils.isEmoji(tr.renderIcon) ? tr.renderIcon : undefined, - emoji: Utils.isEmoji(tr.renderIcon) ? tr.renderIcon : undefined, + icon: !Strings.isEmoji(tr.renderIcon) ? tr.renderIcon : undefined, + emoji: Strings.isEmoji(tr.renderIcon) ? tr.renderIcon : undefined, trid: tr.id, }) } @@ -123,8 +124,8 @@ function generateLayerUsage(layer: LayerConfig): TagInfoPrototype[] { shownText: `${mapping.if.asHumanString()} is displayed as "${ mapping.then.txt }"`, - icon: !Utils.isEmoji(mapping.icon) ? mapping.icon : undefined, - emoji: Utils.isEmoji(mapping.icon) ? mapping.icon : undefined, + icon: !Strings.isEmoji(mapping.icon) ? mapping.icon : undefined, + emoji: Strings.isEmoji(mapping.icon) ? mapping.icon : undefined, trid: tr.id, }) } diff --git a/src/Logic/Osm/ChangesetHandler.ts b/src/Logic/Osm/ChangesetHandler.ts index b085119f5..0bf984a4e 100644 --- a/src/Logic/Osm/ChangesetHandler.ts +++ b/src/Logic/Osm/ChangesetHandler.ts @@ -159,7 +159,7 @@ export class ChangesetHandler { extraMetaTags = [...extraMetaTags, ...this.defaultChangesetTags()] extraMetaTags = ChangesetHandler.removeDuplicateMetaTags(extraMetaTags) - if (this.userDetails.data.csCount == 0) { + if (this.userDetails.data?.csCount == 0) { // The user became a contributor! this.userDetails.data.csCount = 1 this.userDetails.ping() diff --git a/src/Logic/Search/FilterSearch.ts b/src/Logic/Search/FilterSearch.ts index 251a53e93..6dbf346f2 100644 --- a/src/Logic/Search/FilterSearch.ts +++ b/src/Logic/Search/FilterSearch.ts @@ -5,6 +5,7 @@ import LayerConfig from "../../Models/ThemeConfig/LayerConfig" import LayerState from "../State/LayerState" import ThemeConfig from "../../Models/ThemeConfig/ThemeConfig" import { Lists } from "../../Utils/Lists" +import { Strings } from "../../Utils/Strings" export type FilterSearchResult = { option: FilterConfigOption @@ -30,7 +31,7 @@ export default class FilterSearch { const queries = query .split(" ") .map((query) => { - if (!Utils.isEmoji(query)) { + if (!Strings.isEmoji(query)) { return Utils.simplifyStringForSearch(query) } return query diff --git a/src/Logic/State/GeoLocationState.ts b/src/Logic/State/GeoLocationState.ts index aba2907b4..6e7f9cd1e 100644 --- a/src/Logic/State/GeoLocationState.ts +++ b/src/Logic/State/GeoLocationState.ts @@ -107,9 +107,10 @@ export class GeoLocationState { this.requestPermission() } + const hasLocation: Store = this.currentGPSLocation.map(l => l !== undefined) this.gpsStateExplanation = this.gpsAvailable.map( (available) => { - if (this.currentGPSLocation.data !== undefined) { + if (hasLocation.data) { if (!this.allowMoving.data) { return Translations.t.general.visualFeedback.islocked } @@ -131,7 +132,7 @@ export class GeoLocationState { } return Translations.t.general.waitingForLocation }, - [this.allowMoving, this.permission, this.currentGPSLocation] + [this.allowMoving, this.permission, hasLocation] ) } diff --git a/src/Models/ThemeConfig/Conversion/ExpandFilter.ts b/src/Models/ThemeConfig/Conversion/ExpandFilter.ts index b4e742362..298acd8c2 100644 --- a/src/Models/ThemeConfig/Conversion/ExpandFilter.ts +++ b/src/Models/ThemeConfig/Conversion/ExpandFilter.ts @@ -15,6 +15,7 @@ import { FlatTag, OptimizedTag, TagsFilterClosed } from "../../../Logic/Tags/Tag import { TagsFilter } from "../../../Logic/Tags/TagsFilter" import { Translation } from "../../../UI/i18n/Translation" import { Lists } from "../../../Utils/Lists" +import { Strings } from "../../../Utils/Strings" export class PruneFilters extends DesugaringStep { constructor() { @@ -158,7 +159,7 @@ export class ExpandFilter extends DesugaringStep { const options = qtr.mappings.map((mapping) => { let icon: string = mapping.icon?.["path"] ?? mapping.icon let emoji: string = undefined - if (Utils.isEmoji(icon)) { + if (Strings.isEmoji(icon)) { emoji = icon icon = undefined } diff --git a/src/Models/ThemeConfig/Conversion/Validation.ts b/src/Models/ThemeConfig/Conversion/Validation.ts index 0ed4a0083..2b87c97b6 100644 --- a/src/Models/ThemeConfig/Conversion/Validation.ts +++ b/src/Models/ThemeConfig/Conversion/Validation.ts @@ -23,6 +23,7 @@ import { PrevalidateLayer } from "./PrevalidateLayer" import { AvailableRasterLayers } from "../../RasterLayers" import { eliCategory } from "../../RasterLayerProperties" import licenses from "../../../assets/generated/license_info.json" +import { Strings } from "../../../Utils/Strings" export class ValidateLanguageCompleteness extends DesugaringStep { private readonly _languages: string[] @@ -105,7 +106,7 @@ export class DoesImageExist extends DesugaringStep { return image } - if (Utils.isEmoji(image)) { + if (Strings.isEmoji(image)) { return image } diff --git a/src/UI/BigComponents/CompassWidget.svelte b/src/UI/BigComponents/CompassWidget.svelte index c29a85081..30ea2b391 100644 --- a/src/UI/BigComponents/CompassWidget.svelte +++ b/src/UI/BigComponents/CompassWidget.svelte @@ -1,13 +1,11 @@