UNPKG

2.1 kBTypeScriptView Raw
1import * as React from 'react';
2import '../../../src/browser/style/select-component.css';
3export interface SelectOption {
4 value?: string;
5 label?: string;
6 separator?: boolean;
7 disabled?: boolean;
8 detail?: string;
9 description?: string;
10 markdown?: boolean;
11 userData?: string;
12}
13export interface SelectComponentProps {
14 options: SelectOption[];
15 defaultValue?: string | number;
16 onChange?: (option: SelectOption, index: number) => void;
17 onBlur?: () => void;
18 onFocus?: () => void;
19}
20export interface SelectComponentState {
21 dimensions?: DOMRect;
22 selected: number;
23 original: number;
24 hover: number;
25}
26export declare const SELECT_COMPONENT_CONTAINER = "select-component-container";
27export declare class SelectComponent extends React.Component<SelectComponentProps, SelectComponentState> {
28 protected dropdownElement: HTMLElement;
29 protected fieldRef: React.RefObject<HTMLDivElement>;
30 protected dropdownRef: React.RefObject<HTMLDivElement>;
31 protected mountedListeners: Map<string, EventListenerOrEventListenerObject>;
32 protected optimalWidth: number;
33 protected optimalHeight: number;
34 constructor(props: SelectComponentProps);
35 get options(): SelectOption[];
36 get value(): string | number | undefined;
37 set value(value: string | number | undefined);
38 protected getOptimalWidth(): number;
39 protected getOptimalHeight(maxWidth?: number): number;
40 protected attachListeners(): void;
41 componentWillUnmount(): void;
42 render(): React.ReactNode;
43 protected nextNotSeparator(direction: 'forwards' | 'backwards'): number;
44 protected handleKeypress(ev: React.KeyboardEvent<HTMLDivElement>): void;
45 protected handleClickEvent(event: React.MouseEvent<HTMLElement>): void;
46 protected toggleVisibility(): void;
47 protected hide(index?: number): void;
48 protected renderDropdown(): React.ReactNode;
49 protected renderOption(index: number, option: SelectOption): React.ReactNode;
50 protected selectOption(index: number, option: SelectOption): void;
51}
52//# sourceMappingURL=select-component.d.ts.map
\No newline at end of file