slim-select
Version:
Slim advanced select dropdown
42 lines (41 loc) • 1.61 kB
TypeScript
import { Optgroup, Option } from './store';
export default class Select {
select: HTMLSelectElement;
onValueChange?: (value: Option[]) => void;
onClassChange?: (classes: string[]) => void;
onDisabledChange?: (disabled: boolean) => void;
onOptionsChange?: (data: (Option | Optgroup)[]) => void;
onLabelClick?: () => void;
private listen;
private observer;
private isUpdating;
private pendingOptionsChange;
private preventNativeSelect;
private preventNativeSelectMousedown;
private preventNativeSelectFocus;
private restoreAriaHiddenOnBlur;
constructor(select: HTMLSelectElement);
enable(): void;
disable(): void;
hideUI(): void;
showUI(): void;
changeListen(listen: boolean): void;
valueChange(ev: Event): boolean;
private observeCall;
getData(): (Option | Optgroup)[];
getDataFromOptgroup(optgroup: HTMLOptGroupElement): Optgroup;
getDataFromOption(option: HTMLOptionElement): Option;
getSelectedOptions(): Option[];
getSelectedValues(): string[];
/** True when every value has a matching native <option> (empty list is vacuously true). */
hasOptionValues(values: string[]): boolean;
setSelected(ids: string[]): void;
setSelectedByValue(values: string[]): void;
updateSelect(id?: string, style?: string, classes?: string[]): void;
updateOptions(data: (Option | Optgroup)[]): void;
createOptgroup(optgroup: Optgroup): HTMLOptGroupElement;
createOption(info: Option): HTMLOptionElement;
setupLabelHandlers(): void;
removeLabelHandlers(): void;
destroy(): void;
}