<script lang="ts"> import type { Feature } from "geojson"; import { Store, UIEventSource } from "../../Logic/UIEventSource"; import LayerConfig from "../../Models/ThemeConfig/LayerConfig"; import type { SpecialVisualizationState } from "../SpecialVisualization"; import TagRenderingAnswer from "../Popup/TagRendering/TagRenderingAnswer.svelte"; import Translations from "../i18n/Translations"; import Tr from "../Base/Tr.svelte"; import { XCircleIcon } from "@rgossiaux/svelte-heroicons/solid"; export let state: SpecialVisualizationState; export let layer: LayerConfig; export let selectedElement: Feature; let tags: UIEventSource<Record<string, string>> = state.featureProperties.getStore(selectedElement.properties.id); $: { tags = state.featureProperties.getStore(selectedElement.properties.id); } let metatags: Store<Record<string, string>> = state.userRelatedState.preferencesAsTags; </script> {#if $tags._deleted === "yes"} <Tr t={Translations.t.delete.isDeleted} /> {:else} <div class="low-interaction flex items-center justify-between border-b-2 border-black px-3 drop-shadow-md" > <div class="flex flex-col"> <!-- Title element--> <h3> <TagRenderingAnswer config={layer.title} {selectedElement} {state} {tags} {layer} /> </h3> <div class="no-weblate title-icons links-as-button mr-2 flex flex-row flex-wrap items-center gap-x-0.5 p-1 pt-0.5 sm:pt-1" > {#each layer.titleIcons as titleIconConfig} {#if (titleIconConfig.condition?.matchesProperties($tags) ?? true) && (titleIconConfig.metacondition?.matchesProperties({ ...$metatags, ...$tags }) ?? true) && titleIconConfig.IsKnown($tags)} <div class={titleIconConfig.renderIconClass ?? "flex h-8 w-8 items-center"}> <TagRenderingAnswer config={titleIconConfig} {tags} {selectedElement} {state} {layer} extraClasses="h-full justify-center" /> </div> {/if} {/each} </div> </div> <button on:click={() => state.selectedElement.setData(undefined)} class="border-none p-0"> <XCircleIcon class="h-8 w-8" /> </button> </div> {/if} <style> :global(.title-icons a) { display: block !important; } </style>