1 | import * as React from 'react';
|
2 | import '../../../src/browser/style/select-component.css';
|
3 | export 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 | }
|
13 | export interface SelectComponentProps {
|
14 | options: SelectOption[];
|
15 | defaultValue?: string | number;
|
16 | onChange?: (option: SelectOption, index: number) => void;
|
17 | onBlur?: () => void;
|
18 | onFocus?: () => void;
|
19 | }
|
20 | export interface SelectComponentState {
|
21 | dimensions?: DOMRect;
|
22 | selected: number;
|
23 | original: number;
|
24 | hover: number;
|
25 | }
|
26 | export declare const SELECT_COMPONENT_CONTAINER = "select-component-container";
|
27 | export 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 |