()
@@ -49,6 +49,7 @@ class TranslationPart {
if (!translations.hasOwnProperty(translationsKey)) {
continue
}
+
const v = translations[translationsKey]
if (typeof v != "string") {
console.error(
@@ -106,6 +107,9 @@ class TranslationPart {
if (!object.hasOwnProperty(key)) {
continue
}
+ if (ignoreTerms.indexOf(key) >= 0) {
+ continue
+ }
if (dontTranslateKeys?.indexOf(key) >= 0) {
continue
diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts
index 5fc9c1ec746..ae56d267bb3 100644
--- a/src/Logic/ImageProviders/AllImageProviders.ts
+++ b/src/Logic/ImageProviders/AllImageProviders.ts
@@ -10,6 +10,8 @@ import { WikidataImageProvider } from "./WikidataImageProvider"
* A generic 'from the interwebz' image picker, without attribution
*/
export default class AllImageProviders {
+ private static dontLoadFromPrefixes = ["https://photos.app.goo.gl/"]
+
public static ImageAttributionSource: ImageProvider[] = [
Imgur.singleton,
Mapillary.singleton,
@@ -19,7 +21,8 @@ export default class AllImageProviders {
[].concat(
...Imgur.defaultValuePrefix,
...WikimediaImageProvider.commonsPrefixes,
- ...Mapillary.valuePrefixes
+ ...Mapillary.valuePrefixes,
+ ...AllImageProviders.dontLoadFromPrefixes
)
),
]
diff --git a/src/Models/ThemeConfig/Conversion/Conversion.ts b/src/Models/ThemeConfig/Conversion/Conversion.ts
index 7603e56850d..d9c4eeececf 100644
--- a/src/Models/ThemeConfig/Conversion/Conversion.ts
+++ b/src/Models/ThemeConfig/Conversion/Conversion.ts
@@ -156,7 +156,7 @@ export class On extends DesugaringStep {
convert(json: T, context: ConversionContext): T {
const key = this.key
- const value: P = json[key]
+ const value: P = json?.[key]
if (value === undefined || value === null) {
return json
}
diff --git a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts
index 0eccdcf14bc..92585607d7d 100644
--- a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts
+++ b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts
@@ -366,7 +366,7 @@ class AddDependencyLayersToTheme extends DesugaringStep {
themeId: string
): { config: LayerConfigJson; reason: string }[] {
const dependenciesToAdd: { config: LayerConfigJson; reason: string }[] = []
- const loadedLayerIds: Set = new Set(alreadyLoaded.map((l) => l.id))
+ const loadedLayerIds: Set = new Set(alreadyLoaded.map((l) => l?.id))
// Verify cross-dependencies
let unmetDependencies: {
diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts
index 8e255228278..911c4700d84 100644
--- a/src/Models/ThemeViewState.ts
+++ b/src/Models/ThemeViewState.ts
@@ -111,7 +111,6 @@ export default class ThemeViewState implements SpecialVisualizationState {
readonly perLayerFiltered: ReadonlyMap
readonly availableLayers: Store
- readonly selectedLayer: UIEventSource
readonly userRelatedState: UserRelatedState
readonly geolocation: GeoLocationHandler
readonly geolocationControl: GeolocationControlState
@@ -732,7 +731,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
doShowLayer: flayer.isDisplayed,
layer: flayer.layerDef,
metaTags: this.userRelatedState.preferencesAsTags,
- selectedElement: this.selectedElement
+ selectedElement: this.selectedElement,
})
})
}
diff --git a/src/UI/Base/Checkbox.svelte b/src/UI/Base/Checkbox.svelte
index b2efcb57863..6580aeeb169 100644
--- a/src/UI/Base/Checkbox.svelte
+++ b/src/UI/Base/Checkbox.svelte
@@ -6,10 +6,14 @@
*/
export let selected: UIEventSource
let _c: boolean = selected.data ?? true
+ let id = `checkbox-input-${Math.round(Math.random()*100000000)}`
$: selected.set(_c)
+ selected.addCallbackD(s => {
+ _c = s
+ })
diff --git a/src/UI/BigComponents/FilterPanel.svelte b/src/UI/BigComponents/FilterPanel.svelte
index 456fcc2a56b..336297d591f 100644
--- a/src/UI/BigComponents/FilterPanel.svelte
+++ b/src/UI/BigComponents/FilterPanel.svelte
@@ -1,17 +1,49 @@
@@ -27,6 +59,15 @@
highlightedLayer={state.guistate.highlightedLayerInFilters}
/>
{/each}
+
+