UNPKG

@oslokommune/punkt-elements

Version:

Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo

49 lines (48 loc) 1.84 kB
import { PropertyValues } from 'lit'; import { Ref } from 'lit/directives/ref.js'; import { PktOptionsInputElement } from '../../base-elements/options-input-element'; export type TSelectOption = { value: string; label: string; selected?: boolean; disabled?: boolean; hidden?: boolean; }; export interface IPktSelect { options: TSelectOption[]; value: string; } /** * Pkt Select is a wrapper for the native select element using the pkt-input-wrapper component. * * The component will prioritize options passed as a prop over options passed as children if both are provided. * This is to allow for dynamic options that might change in the case of both children/slot and props are provided. * * @slot (default) - Options to be rendered as children * @prop {TSelectOption[]} options - Options to be rendered as children * * */ declare global { interface HTMLElementTagNameMap { 'pkt-select': PktSelect & HTMLSelectElement; } } export declare class PktSelect extends PktOptionsInputElement<{}, TSelectOption> implements IPktSelect { inputRef: Ref<HTMLSelectElement>; value: string; selectedIndex: number | null; selectedOptions: HTMLCollectionOf<HTMLOptionElement> | undefined; constructor(); connectedCallback(): void; add(item: HTMLOptionElement, before?: HTMLOptionElement | number): void; remove(item?: number): void; item(index: number): HTMLOptionElement | null | undefined; namedItem(name: string): HTMLOptionElement | null | undefined; showPicker(): void; attributeChangedCallback(name: string, _old: string, value: string): void; update(changedProperties: PropertyValues): void; protected firstUpdated(_changedProperties: PropertyValues): void; render(): import('lit-html').TemplateResult<1>; private returnNumberOrNull; }