office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
60 lines (59 loc) • 2.94 kB
TypeScript
/// <reference types="react" />
import * as React from 'react';
import { BaseComponent } from '../../Utilities';
import { Autofill } from '../../Autofill';
import { IBaseExtendedPickerProps, IBaseExtendedPicker } from './BaseExtendedPicker.types';
import { IBaseFloatingPickerProps, BaseFloatingPicker } from '../../FloatingPicker';
import { BaseSelectedItemsList, IBaseSelectedItemsListProps } from '../../SelectedItemsList';
import { Selection } from '../../Selection';
export interface IBaseExtendedPickerState<T> {
selectedItems: T[] | null;
suggestionItems: T[] | null;
}
export declare class BaseExtendedPicker<T, P extends IBaseExtendedPickerProps<T>> extends BaseComponent<P, IBaseExtendedPickerState<T>> implements IBaseExtendedPicker<T> {
floatingPicker: {
(component: BaseFloatingPicker<T, IBaseFloatingPickerProps<T>> | null): void;
current: BaseFloatingPicker<T, IBaseFloatingPickerProps<T>> | null;
value: BaseFloatingPicker<T, IBaseFloatingPickerProps<T>> | null;
};
selectedItemsList: {
(component: BaseSelectedItemsList<T, IBaseSelectedItemsListProps<T>> | null): void;
current: BaseSelectedItemsList<T, IBaseSelectedItemsListProps<T>> | null;
value: BaseSelectedItemsList<T, IBaseSelectedItemsListProps<T>> | null;
};
protected root: {
(component: HTMLDivElement | null): void;
current: HTMLDivElement | null;
value: HTMLDivElement | null;
};
protected input: {
(component: Autofill | null): void;
current: Autofill | null;
value: Autofill | null;
};
protected selection: Selection;
protected floatingPickerProps: IBaseFloatingPickerProps<T>;
protected selectedItemsListProps: IBaseSelectedItemsListProps<T>;
constructor(basePickerProps: P);
readonly items: any;
componentDidMount(): void;
componentWillReceiveProps(newProps: P): void;
focus(): void;
clearInput(): void;
readonly inputElement: HTMLInputElement | null;
readonly highlightedItems: T[];
render(): JSX.Element;
protected onSelectionChange: () => void;
protected canAddItems(): boolean;
protected renderSuggestions(): JSX.Element;
protected renderSelectedItemsList(): JSX.Element;
protected onInputChange: (value: string) => void;
protected onInputFocus: (ev: React.FocusEvent<HTMLInputElement | Autofill>) => void;
protected onInputClick: (ev: React.MouseEvent<HTMLInputElement | Autofill>) => void;
protected onBackspace: (ev: React.KeyboardEvent<HTMLElement>) => void;
protected onCopy: (ev: React.ClipboardEvent<HTMLElement>) => void;
protected onPaste: (ev: React.ClipboardEvent<HTMLInputElement | Autofill>) => void;
protected _onSuggestionSelected: (item: T) => void;
protected _onSelectedItemsChanged: () => void;
private _addProcessedItem(newItem);
}