forked from MapComplete/MapComplete
Usersettings: use a collapsable dropdown, introduce dropdown special visualisation
This commit is contained in:
parent
2e06bf407b
commit
85094fe3ee
14 changed files with 319 additions and 257 deletions
|
@ -17,31 +17,44 @@
|
|||
export let highlightedRendering: UIEventSource<string> = undefined
|
||||
|
||||
export let tags: UIEventSource<Record<string, string>> = state?.featureProperties?.getStore(
|
||||
selectedElement.properties.id
|
||||
selectedElement.properties.id,
|
||||
)
|
||||
|
||||
let isAddNew = tags.mapD(
|
||||
(t) => t?.id?.startsWith(LastClickFeatureSource.newPointElementId) ?? false
|
||||
(t) => t?.id?.startsWith(LastClickFeatureSource.newPointElementId) ?? false,
|
||||
)
|
||||
|
||||
export let layer: LayerConfig
|
||||
|
||||
export let mustMatchLabels: Set<string> | undefined = undefined
|
||||
export let dontMatchLabels: Set<string> | undefined = new Set(["hidden"])
|
||||
let _metatags: Record<string, string>
|
||||
if (state?.userRelatedState?.preferencesAsTags) {
|
||||
onDestroy(
|
||||
state.userRelatedState.preferencesAsTags.addCallbackAndRun((tags) => {
|
||||
_metatags = tags
|
||||
})
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
let knownTagRenderings: Store<TagRenderingConfig[]> = tags.mapD((tgs) =>
|
||||
layer?.tagRenderings?.filter(
|
||||
(config) =>
|
||||
(config.condition?.matchesProperties(tgs) ?? true) &&
|
||||
(config.metacondition?.matchesProperties({ ...tgs, ..._metatags }) ?? true) &&
|
||||
config.IsKnown(tgs)
|
||||
)
|
||||
(config) => {
|
||||
if (mustMatchLabels !== undefined) {
|
||||
if (!mustMatchLabels.has(config.id) && !config?.labels?.some(l => mustMatchLabels.has(l))) {
|
||||
return false
|
||||
}
|
||||
} else if (dontMatchLabels) {
|
||||
if (dontMatchLabels.has(config.id) || config?.labels?.some(l => dontMatchLabels.has(l))) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
if (!config.IsKnown(tgs)) {
|
||||
return false
|
||||
}
|
||||
return (config.condition?.matchesProperties(tgs) ?? true) &&
|
||||
(config.metacondition?.matchesProperties({ ...tgs, ..._metatags }) ?? true)
|
||||
},
|
||||
),
|
||||
)
|
||||
</script>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue