<script lang="ts"> export let value: string | string[] | null; export let type: "gallery" | "table"; export let selected = false; export let choices: [string, string | number][]; let value_array = value ? (Array.isArray(value) ? value : [value]) : []; let names = value_array .map( (val) => ( choices.find((pair) => pair[1] === val) as | [string, string | number] | undefined )?.[0] ) .filter((name) => name !== undefined); let names_string = names.join(", "); </script> <div class:table={type === "table"} class:gallery={type === "gallery"} class:selected > {names_string} </div> <style> .gallery { padding: var(--size-1) var(--size-2); } </style>