@oslokommune/punkt-elements
Version:
Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo
49 lines (48 loc) • 1.84 kB
TypeScript
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;
}