Files
lucent-laravel/front/js/svelte/autocomplete/Autocomplete.svelte
T

45 lines
1.1 KiB
Svelte
Raw Normal View History

<script>
import Selectlist from "./Selectlist.svelte";
2026-01-08 23:23:48 +02:00
import Icon from "../../common/Icon.svelte";
let searchEl;
let search;
export let value;
export let field;
2026-01-08 23:23:48 +02:00
function handleSelect() {
searchEl.focus();
2026-01-08 23:23:48 +02:00
searchEl.blur();
}
</script>
<div class="autocomplete">
<input
2026-01-08 23:23:48 +02:00
type="search"
bind:value={search}
bind:this={searchEl}
placeholder="Search for options"
autocomplete="off"
/>
<div class="autocomplete-results">
2026-01-08 23:23:48 +02:00
<Selectlist {field} bind:value bind:search on:selected={handleSelect} />
</div>
</div>
{#if value}
2026-01-08 23:23:48 +02:00
<div class="autocomplete-selected-value">
{#if Array.isArray(field.selectOptions)}
{value}
{:else}
{field.selectOptions[value]}
{/if}
<button
2026-01-08 23:23:48 +02:00
on:click|preventDefault={(e) => (value = "")}
type="button"
class="button-text"
aria-label="Close"
>
<Icon width={12} height={12} icon="close"></Icon>
</button>
</div>
2026-01-08 23:23:48 +02:00
{/if}