UNPKG

2.2 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: readonly SelectOption[];
15 defaultValue?: string | number;
16 onChange?: (option: SelectOption, index: number) => void;
17 onBlur?: () => void;
18 onFocus?: () => void;
19 alignment?: 'left' | 'right';
20}
21export interface SelectComponentState {
22 dimensions?: DOMRect;
23 selected: number;
24 original: number;
25 hover: number;
26}
27export declare const SELECT_COMPONENT_CONTAINER = "select-component-container";
28export declare class SelectComponent extends React.Component<SelectComponentProps, SelectComponentState> {
29 protected dropdownElement: HTMLElement;
30 protected fieldRef: React.RefObject<HTMLDivElement>;
31 protected dropdownRef: React.RefObject<HTMLDivElement>;
32 protected mountedListeners: Map<string, EventListenerOrEventListenerObject>;
33 protected optimalWidth: number;
34 protected optimalHeight: number;
35 constructor(props: SelectComponentProps);
36 get options(): readonly SelectOption[];
37 get value(): string | number | undefined;
38 set value(value: string | number | undefined);
39 protected get alignLeft(): boolean;
40 protected getOptimalWidth(): number;
41 protected getOptimalHeight(maxWidth?: number): number;
42 protected attachListeners(): void;
43 componentWillUnmount(): void;
44 render(): React.ReactNode;
45 protected nextNotSeparator(direction: 'forwards' | 'backwards'): number;
46 protected handleKeypress(ev: React.KeyboardEvent<HTMLDivElement>): void;
47 protected handleClickEvent(event: React.MouseEvent<HTMLElement>): void;
48 protected toggleVisibility(): void;
49 protected hide(index?: number): void;
50 protected renderDropdown(): React.ReactNode;
51 protected renderOption(index: number, option: SelectOption): React.ReactNode;
52 protected selectOption(index: number, option: SelectOption): void;
53}
54//# sourceMappingURL=select-component.d.ts.map
\No newline at end of file