<script lang="ts"> import { getSelectionContext } from '$lib/Selection'; export let id: number; export let index: number; export let edit: ((id: number) => void) | undefined = undefined; const selection = getSelectionContext(); $: selected = $selection.contains(id); const handle = (event: MouseEvent) => { if ($selection.active) { $selection = $selection.update(index, event.shiftKey); event.preventDefault(); } else if (edit) { edit(id); event.preventDefault(); } }; </script> <slot {handle} {selected} />