| Navn | Type | Verdi | 
|---|---|---|
| string |  | |
| boolean |  | |
| boolean |  | |
| boolean |  | |
| boolean |  | |
| boolean |  | |
| boolean |  | 
Attributter
Merknader: må*, bør, husk, ekstra.
| Attributt | Tillatte verdier | Default | Beskrivelse | 
|---|---|---|---|
| guid | string | "" | <input>sinid=og<label>sinfor= | 
| label | string | "" | <label>sin tekst | 
| placeholder | string | "" | <input>sin placeholder | 
| input-name | string | "" | <input>sinname= | 
| hasSuggestions | boolean | false | Gjør det mulig å legge til forslag under live søk | 
| searchButton | boolean | "" | Om søket skal ha en knapp på siden | 
| searchButtonText | string | "" | Setter teksten på søkeknappen | 
| noResultText | string | "Ingen resultat funnet" | Tekst som dukker opp hvis live søket er tomt | 
Metoder
Merk at alle metoder er asynkrone. Ref. Stenciljs.com
| Metode | Parameter | Retur | Beskrivelse | 
|---|---|---|---|
| setFocus | () | void | Kaller .focus()på<input> | 
| setSuggestions | Array<string>, Array<[string, string]> | void | <Label, value> array med søke forslag. Lager en liste med forslag til søkeresultater | 
| getValue | () | string | Henter value internt i komponenten | 
| setValue | string | [string, string] | void | 
| getDisplayedValue | () | string | Henter ut verdien som vist til bruker | 
SetSuggestions()
SetSuggestions tar inn en string array eller Array med to verdier [string, string] 
Hvis du bruker en Array med to verdier så blir strukturen Array[value, displayedValue]. Først element blir brukt i getValue() og andre verdi det som vises til bruker getDisplayedValue().
Eventer
Ref. Stenciljs.com
| Dispatch Event | Beskrivelse | 
|---|---|
| selectsuggestion | Click Event på Elementet som blir trykket på. Se event.detail for verdien | 
| Listen Event | Beskrivelse | 
|---|---|
| focusin | Åpner søkeforslag | 
| focusout | Lukker søkeforslag | 
| keydown | Piltaster for å navigere i søkeforslag | 
Change event *
Det er lagt på en change event når feltet blir tømt intern knapp. Denne går oppover i dom strukturen så kan lyttes til eventet på lk-search.
Eksempler
<form id="searchForm" action="#">
    <lk-search guid="searchTest" id="searchTest" label="Søk med forslag" has-suggestions="true"></lk-search>
</form>
<script>
    (async () => {
        await customElements.whenDefined('lk-search');
        
        const search = document.getElementById("searchTest");
        let timeout;
        search.addEventListener("input", event => {
            const searchText = event.target.value;
            clearTimeout(timeout);
            search.setAttribute('loading', "true");
            timeout = setTimeout(async () => {
                await fetch(`/data/search.json?q=${searchText}`)
                .catch(error => {
                    console.log(error);
                })
                .then(data => data.json())
                .then(result => {
                    if (searchText) {
                        search.setSuggestions(result);
                    }
                })
                .finally(() => {
                    search.removeAttribute('loading');
                });
            }, 750);
        })
    })();
</script>