2023-10-24 22:01:10 +02:00
|
|
|
<script lang="ts">
|
|
|
|
import Marker from "../Map/Marker.svelte";
|
|
|
|
import NextButton from "../Base/NextButton.svelte";
|
|
|
|
import { createEventDispatcher } from "svelte";
|
|
|
|
import { AllSharedLayers } from "../../Customizations/AllSharedLayers";
|
2023-10-26 13:58:45 +02:00
|
|
|
import { AllKnownLayouts, AllKnownLayoutsLazy } from "../../Customizations/AllKnownLayouts";
|
2023-10-24 22:01:10 +02:00
|
|
|
|
2023-10-26 13:58:45 +02:00
|
|
|
export let layerIds: { id: string }[];
|
|
|
|
export let category: "layers" | "themes" = "layers";
|
|
|
|
const dispatch = createEventDispatcher<{ layerSelected: string }>();
|
2023-10-24 22:01:10 +02:00
|
|
|
|
|
|
|
function fetchIconDescription(layerId): any {
|
2023-10-26 13:58:45 +02:00
|
|
|
if(category === "themes"){
|
|
|
|
return AllKnownLayouts.allKnownLayouts.get(layerId).icon
|
|
|
|
}
|
2023-10-24 22:01:10 +02:00
|
|
|
return AllSharedLayers.getSharedLayersConfigs().get(layerId)?._layerIcon;
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
{#if layerIds.length > 0}
|
2023-10-26 13:58:45 +02:00
|
|
|
<slot name="title" />
|
|
|
|
<div class="flex flex-wrap">
|
|
|
|
{#each Array.from(layerIds) as layer}
|
|
|
|
<NextButton clss="small" on:click={() => dispatch("layerSelected", layer.id)}>
|
|
|
|
<div class="w-4 h-4 mr-1">
|
|
|
|
<Marker icons={fetchIconDescription(layer.id)} />
|
|
|
|
</div>
|
|
|
|
{layer.id}
|
|
|
|
</NextButton>
|
|
|
|
{/each}
|
|
|
|
</div>
|
|
|
|
{/if}
|