adwaita-web
Version:
A GTK inspired toolkit designed to build awesome web apps
73 lines (72 loc) • 2.44 kB
TypeScript
import React from "react";
export declare type DropdownOption<T> = {
value: T;
label: React.ReactNode;
data?: any;
};
export declare type DropdownProps<T> = {
id?: string;
className?: string;
triggerClassName?: string;
placeholder?: string;
size?: "mini" | "small" | "medium" | "large" | "huge" | "mega" | "mega";
align?: "left" | "right";
label?: React.ReactNode;
value?: T;
options?: Array<DropdownOption<T>>;
disabled?: boolean;
loading?: boolean;
open?: boolean;
allowClear?: boolean;
input?: boolean;
filterKey?: string;
filter?: (option: any, filter?: string) => boolean;
onClose?: () => void;
onOpen?: () => void;
onChange?: (value: T | undefined) => void;
};
/** A input element that allows the user to select one of the multiple pre-defined options. */
export declare class Dropdown<T extends string | number | boolean> extends React.Component<DropdownProps<T>> {
static defaultProps: {
size: string;
align: string;
disabled: boolean;
options: never[];
};
static getDerivedStateFromProps(props: DropdownProps<any>): {
open: boolean | undefined;
} | null;
domNode: HTMLDivElement;
trigger?: HTMLButtonElement | HTMLDivElement;
lastValue: T | undefined;
lastOption: DropdownOption<T> | undefined;
lastOptions: Array<DropdownOption<T>> | undefined;
lastRenderedOptions: Array<DropdownOption<T>> | undefined;
lastRenderedOptionsArgs: Array<string | ((option: any, filter?: string | undefined) => boolean) | DropdownOption<T>[] | undefined>;
state: {
value: T | undefined;
selectedOption: DropdownOption<T> | undefined;
open: boolean;
position: {
top: number;
left: number;
};
inputValue: string;
previousInputValue: string;
};
constructor(props: DropdownProps<T>);
componentWillUnmount(): void;
onInputBlur: () => void;
onInputChange: (inputValue: string) => void;
onInputAccept: () => void;
onToggle: () => void;
open: () => void;
close: () => void;
isOpen: () => boolean | undefined;
isControlled: () => boolean;
select: (option: DropdownOption<T> | null) => void;
getValue(): T | undefined;
getRenderedOptions(): DropdownOption<T>[];
getSelectedOption(): DropdownOption<T> | undefined;
render(): JSX.Element;
}