File size: 701 Bytes
0ad74ed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<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>