UNPKG

jamis

Version:

一种支持通过JSON配置方式生成页面的组件库

73 lines (72 loc) 2.85 kB
import React from 'react'; import type { ActionObject, Option } from 'jamis-core'; import type { ISelectEvent, RenderMenuParams, SelectProps } from '../types'; export default class SelectControl extends React.Component<SelectProps, any> { static defaultProps: Partial<SelectProps>; input: any; unHook: Function; lazyloadRemote: import("lodash").DebouncedFunc<any>; lastTerm: string; /** 是否加载过一次 */ autoCompleteLoadOnce: boolean; /** 默认的options */ defaultOptions: Option[]; /** * 已经发出过`change`事件的value */ valueEmitedChangeEvent: any; hasFocused: boolean; constructor(props: SelectProps); componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps: SelectProps): void; inputRef(ref: any): void; foucs(): void; dispatchEvent: (eventName: ISelectEvent, eventData?: any) => Promise<import("jamis-core").RendererEvent<any, any>>; dispatchEventChange: (value: Option | Array<Option> | string | void, prevValue: Option | Array<Option> | string | void, valueFmt: string | Option | Array<Option> | void) => Promise<import("jamis-core").RendererEvent<any, any>>; changeValue: (value: Option | Array<Option> | string | void, restParam?: { isOpen?: boolean; }) => Promise<void>; loadRemote(input: string, from?: string): Promise<void | (() => void)>; /** * 处理一次搜索多个值的情况 */ handleSearchMultiValues: (input: string, combinedOptions: Option[]) => void; mergeOptions(options: Array<object>): Option[]; renderMenu: (option: Option, params: RenderMenuParams) => JSX.Element; reload(): void; option2value(): void; renderOtherMode(): JSX.Element; doAction(action: ActionObject, data: object, throwErrors: boolean): any; handleActionSetOptions: (data: { /** * 新的options */ options?: Option[]; /** * 更新options的函数, 参数是旧的options, 要求返回新的options */ optionsProvider?: string | string[] | ((options: Option[]) => Option[]); /** * 是否跳过options的格式化 */ skipNormalize?: boolean; }, throwErrors: boolean) => void; /** * 处理popover隐藏时, 要考虑默认值重置的问题 */ handleChangeIsOpen(isOpen: boolean): void; handleAdd: (args: any) => Promise<void>; handleDelete: (item: any) => Promise<void>; handleEdit: (item: any) => Promise<void>; handleFocus: (e: any) => Promise<void>; handleClose: () => void; render(): JSX.Element; } export declare class SelectControlRenderer extends SelectControl { } export declare class MultiSelectControlRenderer extends SelectControl { static defaultProps: { multiple: boolean; }; }