UNPKG

jamis

Version:

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

77 lines (76 loc) 3.3 kB
import React from 'react'; import type { GetItemPropsOptions, StateChangeOptions } from 'downshift'; import type { ListenerAction, Option } from 'jamis-core'; import type { InputTextProps } from '../types'; interface TextState { isOpen?: boolean; inputValue?: string; isFocused?: boolean; revealPassword?: boolean; } export default class TextControl extends React.PureComponent<InputTextProps, TextState> { static defaultProps: Partial<InputTextProps>; input?: HTMLInputElement; highlightedIndex?: any; unHook: Function; /** * 发出了change事件的value值, 用于避免重复发出 */ valueEmitedChangeEvent: any; handleNormalInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void; constructor(props: InputTextProps); componentDidMount(): void; componentDidUpdate(prevProps: InputTextProps): void; componentWillUnmount(): void; dispatchChangeEvent: (moreData: Record<string, any>) => Promise<void | import("jamis-core").RendererEvent<any, any>>; inputRef(ref: any): void; doAction(action: ListenerAction, args: any): void; focus: () => void; clearValue: () => Promise<void>; removeItem(index: number): void; handleClick: () => Promise<void>; handleFocus: (e: any) => Promise<void>; handleBlur: (e: any) => Promise<void>; handleInputChange: (evt: React.ChangeEvent<HTMLInputElement>) => Promise<void>; /** * 创建新的option */ createNewOption: () => Promise<void>; handleKeyDown: (evt: React.KeyboardEvent<HTMLInputElement>) => Promise<void>; handleChange: (value: any) => Promise<void>; handleStateChange: (changes: StateChangeOptions<any>) => void; /** 同时支持防抖和不防抖设置的change事件通知函数 */ handleNormalInputChangeWrap: (emitChangeDelay: InputTextProps["emitChangeDelay"]) => ((e: React.ChangeEvent<HTMLInputElement>) => Promise<void>) | import("lodash").DebouncedFunc<(e: React.ChangeEvent<HTMLInputElement>) => Promise<void>>; normalizeValue(value: Option[] | Option | undefined | null): any; transformValue(value: string): string; loadAutoComplete(): void; reload(): void; valueToString(value: any): string; toggleRevealPassword: () => void; makeTextInputClass: () => import("jamis-core").ClassValue[]; renderSugItem: (option: Option, { getItemProps, indices, highlightedIndex }: { getItemProps: (options: GetItemPropsOptions<any>) => any; indices: any; highlightedIndex: number | null; }) => JSX.Element; renderSugestMode: () => JSX.Element; renderNormal: () => JSX.Element; renderAddOn: () => JSX.Element | null; render(): JSX.Element; } export declare function mapItemIndex(items: Array<any>, values: Array<any>, valueField?: string): any; export declare class TextControlRenderer extends TextControl { } export declare class PasswordControlRenderer extends TextControl { } export declare class EmailControlRenderer extends TextControl { } export declare class UrlControlRenderer extends TextControl { } export declare class NativeDateControlRenderer extends TextControl { } export declare class NativeTimeControlRenderer extends TextControl { } export declare class NativeNumberControlRenderer extends TextControl { } export {};