@alifd/next
Version:
A configurable component library for web built on React.
242 lines (241 loc) • 15 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import { type SearchProps } from './types';
import { type AutoCompleteProps } from '../select';
declare const AutoComplete: import("../config-provider/types").ConfiguredComponentClass<AutoCompleteProps & import("../config-provider/types").ComponentCommonProps, {
isInputing: boolean;
componentDidUpdate(prevProps: AutoCompleteProps): void;
shouldControlPopup(props: (Readonly<AutoCompleteProps> & Readonly<{
children?: React.ReactNode;
}>) | undefined, type: import("../select").VisibleChangeType): void;
handleMenuSelect(keys: string[]): void;
handleItemClick(): void;
handleSelectEvent(key: string, item: import("../select").ObjectItem, triggerType: import("../select").VisibleChangeType): void;
handleChange: (value: string, proxy: import("../select").VisibleChangeType | React.ChangeEvent<HTMLElement>, item?: import("../select").ObjectItem | undefined) => false | undefined;
handleVisibleChange(visible: boolean, type: import("../select").VisibleChangeType): void;
beforeClose(): void;
handleTriggerKeyDown(e: React.KeyboardEvent<HTMLElement>): void;
chooseHighlightItem(): false | undefined;
hasClear(): boolean | "" | undefined;
renderSelect(props?: Readonly<AutoCompleteProps> & Readonly<{
children?: React.ReactNode;
}>): React.JSX.Element;
render(): React.JSX.Element;
dataStore: import("../select/data-store").default;
selectDOM: HTMLElement;
width: string | number;
popupRef: HTMLDivElement;
resizeTimeout: number;
highlightTimer: number | undefined;
menuRef: import("../config-provider/types").ConfiguredComponent<import("../menu").MenuProps & import("../config-provider/types").ComponentCommonProps, import("../menu/view/menu").Menu> | null;
isAutoComplete: boolean;
inputRef: import("../input/input").default<import("../input").InputProps>;
valueDataSource: {
value?: string | number | boolean | (string | number | boolean | null | undefined)[] | null | undefined;
valueDS?: import("../select").ObjectItem | import("../select").ObjectItem[] | undefined;
mapValueDS?: Record<string, import("../select").ObjectItem> | undefined;
};
componentDidMount(): void;
componentWillUnmount(): void;
syncWidth(): void;
handleResize(): void;
setDataSource(props: AutoCompleteProps): import("../select/types").NormalizedObjectItem[];
setVisible(visible: boolean, type?: import("../select").VisibleChangeType | undefined): void;
setFirstHightLightKeyForMenu(searchValue?: unknown): void;
handleMenuBodyClick(): void;
toggleHighlightItem(dir: number): false | import("../select/types").NormalizedObjectItem | undefined;
scrollMenuIntoView(): void;
renderMenuHeader(): React.ReactNode;
handleSelect(): void;
handleMouseDown: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
useDetailValue(): boolean;
renderMenu(): React.JSX.Element;
renderMenuItem(dataSource: import("../select/types").NormalizedObjectItem[]): React.ReactElement<any, string | React.JSXElementConstructor<any>>[];
saveSelectRef: (ref: HTMLElement | null) => void;
saveInputRef: (ref: import("../config-provider/types").ConfiguredComponent<import("../input").InputProps & import("../config-provider/types").ComponentCommonProps, import("../input/input").default<import("../input").InputProps>> & Pick<import("../input/input").default<import("../input").InputProps>, "focus" | "getInputNode">) => void;
focusInput(): void;
focus(start?: number | undefined, end?: number | undefined, preventScroll?: boolean): void;
beforeOpen(): void;
afterClose(): void;
savePopupRef: (ref: HTMLDivElement) => void;
shouldAutoWidth(): boolean | undefined;
context: any;
setState<K extends keyof import("../select/auto-complete").AutoCompleteState>(state: import("../select/auto-complete").AutoCompleteState | ((prevState: Readonly<import("../select/auto-complete").AutoCompleteState>, props: Readonly<AutoCompleteProps>) => import("../select/auto-complete").AutoCompleteState | Pick<import("../select/auto-complete").AutoCompleteState, K> | null) | Pick<import("../select/auto-complete").AutoCompleteState, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly<AutoCompleteProps> & Readonly<{
children?: React.ReactNode;
}>;
state: Readonly<import("../select/auto-complete").AutoCompleteState>;
refs: {
[key: string]: React.ReactInstance;
};
shouldComponentUpdate?(nextProps: Readonly<AutoCompleteProps>, nextState: Readonly<import("../select/auto-complete").AutoCompleteState>, nextContext: any): boolean;
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly<AutoCompleteProps>, prevState: Readonly<import("../select/auto-complete").AutoCompleteState>): any;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly<AutoCompleteProps>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<AutoCompleteProps>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly<AutoCompleteProps>, nextState: Readonly<import("../select/auto-complete").AutoCompleteState>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly<AutoCompleteProps>, nextState: Readonly<import("../select/auto-complete").AutoCompleteState>, nextContext: any): void;
}, {}>;
export interface SearchState {
value: string | number;
filterValue: string | undefined;
ifFocus: boolean;
}
/**
* Search
* 输入框部分继承 Select.AutoComplete 的能力,可以直接用 AutoComplete 的 api
*/
declare class Search extends React.Component<SearchProps, SearchState> {
static propTypes: {
prefix: PropTypes.Requireable<string>;
shape: PropTypes.Requireable<string>;
type: PropTypes.Requireable<string>;
size: PropTypes.Requireable<string>;
defaultValue: PropTypes.Requireable<string>;
value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onSearch: PropTypes.Requireable<(...args: any[]) => any>;
defaultFilterValue: PropTypes.Requireable<string>;
fillProps: PropTypes.Requireable<string>;
filter: PropTypes.Requireable<any[]>;
filterValue: PropTypes.Requireable<string>;
onFilterChange: PropTypes.Requireable<(...args: any[]) => any>;
dataSource: PropTypes.Requireable<any[]>;
placeholder: PropTypes.Requireable<string>;
searchText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
style: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
filterProps: PropTypes.Requireable<object>;
buttonProps: PropTypes.Requireable<object>;
popupContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
followTrigger: PropTypes.Requireable<boolean>;
visible: PropTypes.Requireable<boolean>;
hasClear: PropTypes.Requireable<boolean>;
hasIcon: PropTypes.Requireable<boolean>;
disabled: PropTypes.Requireable<boolean>;
locale: PropTypes.Requireable<object>;
rtl: PropTypes.Requireable<boolean>;
icons: PropTypes.Requireable<object>;
autoHighlightFirstItem: PropTypes.Requireable<boolean>;
onToggleHighlightItem: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
prefix: string;
shape: string;
type: string;
size: string;
hasIcon: boolean;
filter: never[];
locale: Partial<{
buttonText: string;
}> & {
momentLocale?: string | undefined;
};
buttonProps: {};
onChange: () => void;
onSearch: () => void;
onFilterChange: () => void;
onToggleHighlightItem: () => void;
hasClear: boolean;
disabled: boolean;
icons: {};
autoHighlightFirstItem: boolean;
};
static displayName: string;
static getDerivedStateFromProps(nextProps: SearchProps, prevState: SearchState): Partial<SearchState> | null;
highlightKey: unknown;
inputRef: ReturnType<InstanceType<typeof AutoComplete>['getInstance']> | null;
constructor(props: SearchProps);
onChange: NonNullable<AutoCompleteProps['onChange']>;
onPressEnter: () => void;
onSearch: () => void;
onFilterChange: (filterValue: string) => void;
onToggleHighlightItem: NonNullable<AutoCompleteProps['onToggleHighlightItem']>;
onKeyDown: (e: React.KeyboardEvent) => void;
saveInputRef: (ref: import("../config-provider/types").ConfiguredComponent<AutoCompleteProps & import("../config-provider/types").ComponentCommonProps, {
isInputing: boolean;
componentDidUpdate(prevProps: AutoCompleteProps): void;
shouldControlPopup(props: (Readonly<AutoCompleteProps> & Readonly<{
children?: React.ReactNode;
}>) | undefined, type: import("../select").VisibleChangeType): void;
handleMenuSelect(keys: string[]): void;
handleItemClick(): void;
handleSelectEvent(key: string, item: import("../select").ObjectItem, triggerType: import("../select").VisibleChangeType): void;
handleChange: (value: string, proxy: import("../select").VisibleChangeType | React.ChangeEvent<HTMLElement>, item?: import("../select").ObjectItem | undefined) => false | undefined;
handleVisibleChange(visible: boolean, type: import("../select").VisibleChangeType): void;
beforeClose(): void;
handleTriggerKeyDown(e: React.KeyboardEvent<HTMLElement>): void;
chooseHighlightItem(): false | undefined;
hasClear(): boolean | "" | undefined;
renderSelect(props?: Readonly<AutoCompleteProps> & Readonly<{
children?: React.ReactNode;
}>): React.JSX.Element;
render(): React.JSX.Element;
dataStore: import("../select/data-store").default;
selectDOM: HTMLElement;
width: string | number;
popupRef: HTMLDivElement;
resizeTimeout: number;
highlightTimer: number | undefined;
menuRef: import("../config-provider/types").ConfiguredComponent<import("../menu").MenuProps & import("../config-provider/types").ComponentCommonProps, import("../menu/view/menu").Menu> | null;
isAutoComplete: boolean;
inputRef: import("../input/input").default<import("../input").InputProps>;
valueDataSource: {
value?: string | number | boolean | (string | number | boolean | null | undefined)[] | null | undefined;
valueDS?: import("../select").ObjectItem | import("../select").ObjectItem[] | undefined;
mapValueDS?: Record<string, import("../select").ObjectItem> | undefined;
};
componentDidMount(): void;
componentWillUnmount(): void;
syncWidth(): void;
handleResize(): void;
setDataSource(props: AutoCompleteProps): import("../select/types").NormalizedObjectItem[];
setVisible(visible: boolean, type?: import("../select").VisibleChangeType | undefined): void;
setFirstHightLightKeyForMenu(searchValue?: unknown): void;
handleMenuBodyClick(): void;
toggleHighlightItem(dir: number): false | import("../select/types").NormalizedObjectItem | undefined;
scrollMenuIntoView(): void;
renderMenuHeader(): React.ReactNode;
handleSelect(): void;
handleMouseDown: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
useDetailValue(): boolean;
renderMenu(): React.JSX.Element;
renderMenuItem(dataSource: import("../select/types").NormalizedObjectItem[]): React.ReactElement<any, string | React.JSXElementConstructor<any>>[];
saveSelectRef: (ref: HTMLElement | null) => void;
saveInputRef: (ref: import("../config-provider/types").ConfiguredComponent<import("../input").InputProps & import("../config-provider/types").ComponentCommonProps, import("../input/input").default<import("../input").InputProps>> & Pick<import("../input/input").default<import("../input").InputProps>, "focus" | "getInputNode">) => void;
focusInput(): void;
focus(start?: number | undefined, end?: number | undefined, preventScroll?: boolean): void;
beforeOpen(): void;
afterClose(): void;
savePopupRef: (ref: HTMLDivElement) => void;
shouldAutoWidth(): boolean | undefined;
context: any;
setState<K extends keyof import("../select/auto-complete").AutoCompleteState>(state: import("../select/auto-complete").AutoCompleteState | ((prevState: Readonly<import("../select/auto-complete").AutoCompleteState>, props: Readonly<AutoCompleteProps>) => import("../select/auto-complete").AutoCompleteState | Pick<import("../select/auto-complete").AutoCompleteState, K> | null) | Pick<import("../select/auto-complete").AutoCompleteState, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly<AutoCompleteProps> & Readonly<{
children?: React.ReactNode;
}>;
state: Readonly<import("../select/auto-complete").AutoCompleteState>;
refs: {
[key: string]: React.ReactInstance;
};
shouldComponentUpdate?(nextProps: Readonly<AutoCompleteProps>, nextState: Readonly<import("../select/auto-complete").AutoCompleteState>, nextContext: any): boolean;
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly<AutoCompleteProps>, prevState: Readonly<import("../select/auto-complete").AutoCompleteState>): any;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly<AutoCompleteProps>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<AutoCompleteProps>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly<AutoCompleteProps>, nextState: Readonly<import("../select/auto-complete").AutoCompleteState>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly<AutoCompleteProps>, nextState: Readonly<import("../select/auto-complete").AutoCompleteState>, nextContext: any): void;
}>) => void;
focus: (start?: number, end?: number, preventScroll?: boolean) => void;
handleFocus(...args: [React.FocusEvent<HTMLInputElement>]): void;
handleBlur(...args: [React.FocusEvent<HTMLInputElement>]): void;
render(): React.JSX.Element;
}
declare const _default: typeof Search;
export default _default;