UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

245 lines (244 loc) 7.87 kB
import { CSSProperties, DetailedHTMLProps, HTMLAttributes, Key, ReactNode } from 'react'; import { DebouncedFunc } from 'lodash'; import { Tooltip as TextTooltip, WaitType } from '../core/enum'; import { FormField, FormFieldProps } from '../field/FormField'; import { GroupItemCategory, ValueChangeAction } from './enum'; import { ShowHelp } from '../field/enum'; import Record from '../data-set/Record'; import { RenderedTextProps } from './RenderedText'; import { TooltipProps } from '../tooltip/Tooltip'; export declare function isPlaceHolderSupport(): boolean; export interface TextFieldProps<V = any> extends FormFieldProps<V> { /** * 占位词 */ placeholder?: string | string[]; /** * 最小长度 */ minLength?: number; /** * 最大长度 */ maxLength?: number; /** * 正则校验 */ pattern?: string | RegExp; /** * 自动完成 */ autoComplete?: string; /** * 前缀 */ prefix?: ReactNode; /** * 后缀 */ suffix?: ReactNode; /** * 是否显示清除按钮 */ clearButton?: boolean; /** * 前置标签 */ addonBefore?: ReactNode; /** * 前置标签样式 */ addonBeforeStyle?: CSSProperties; /** * 后置标签 */ addonAfter?: ReactNode; /** * 后置标签样式 */ addonAfterStyle?: CSSProperties; /** * 限制可输入的字符 */ restrict?: string | RegExp; /** * 是否是筛选条 flat 模式 */ isFlat?: boolean; /** * 触发值变更的动作, default: blur */ valueChangeAction?: ValueChangeAction; /** * 值变更间隔时间,只有在valueChangeAction为input时起作用 */ wait?: number; /** * 值变更间隔类型,可选值:throttle | debounce * @default throttle */ waitType?: WaitType; groupClassName?: string; /** * 是否显示长度信息 */ showLengthInfo?: boolean; /** * 是否显示边框 * @default true */ border?: boolean; /** * 用tooltip显示输入框内容(禁用模式下生效) * 可选值:`none` `always` `overflow` 或自定义 tooltip * 配置自定义tooltip属性:tooltip={['always', { theme: 'light', ... }]} */ tooltip?: TextTooltip | [TextTooltip, TooltipProps]; } export declare class TextField<T extends TextFieldProps> extends FormField<T> { static displayName: string; static defaultProps: { suffixCls: string; clearButton: boolean; multiple: boolean; border: boolean; valueChangeAction: ValueChangeAction; waitType: WaitType; readOnly: boolean; disabled: boolean; noValidate: boolean; trim: import("../data-set/enum").FieldTrim; }; text?: string; type: string; renderedValue: ReactNode; tagContainer: HTMLUListElement | null; handleChangeWait: DebouncedFunc<(...value: any[]) => void>; addonAfterRef?: HTMLDivElement | null; addonBeforeRef?: HTMLDivElement | null; suffixRef?: HTMLDivElement | null; renderedText?: { text: string; width: number; } | undefined; renderedStartText?: { text: string; width: number; } | undefined; renderedEndText?: { text: string; width: number; } | undefined; prefixWidth?: number; lengthElement?: ReactNode; lengthInfoWidth?: number; suffixWidth?: number; isSuffixClick?: boolean; lastAnimationRecord?: Record; get clearButton(): boolean; /** * 是否显示长度信息 */ get showLengthInfo(): boolean | undefined; get showHelp(): ShowHelp; get border(): boolean | undefined; constructor(props: any, context: any); handleRenderedValueChange(text: string, width: number, rangeTarget?: 0 | 1): void; clearRenderedText(rangeTarget?: 0 | 1): void; componentWillReceiveProps(nextProps: any, nextContext: any): void; componentWillUnmount(): void; saveTagContainer(node: any): void; saveAddonAfterRef(node: any): void; saveAddonBeforeRef(node: any): void; saveSuffixRef(node: any): any; measureTextWidth(text: string): number; getEditorTextInfo(rangeTarget?: 0 | 1): { text: string; width: number; placeholder?: string; }; isRenderEmpty(): boolean; isEmpty(): boolean; getOmitPropsKeys(): string[]; getOtherProps(): any; forceBlur(e: any): void; handleAddonBeforeKeyDown(e: any): void; handleAddonAfterKeyDown(e: any): void; handleMultipleMouseEnter(e: any): void; handleMultipleMouseLeave(): void; handleHelpMouseEnter(e: any): void; handleHelpMouseLeave(): void; getWrapperClassNames(...args: any[]): string; renderWrapper(): ReactNode; getRenderedValue(): ReactNode; showTooltip(e: any): boolean; renderInputElement(): ReactNode; renderGroup(): ReactNode; renderTooltipHelp(): ReactNode; renderLengthInfo(maxLength?: number, inputLength?: number): ReactNode; getPlaceholders(): string[]; wrapGroupItem(node: ReactNode, category: GroupItemCategory, props?: DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, childrenProps?: any): ReactNode; setRangeTarget(target: any): void; renderRangeEditor(props: any): JSX.Element; getRangeInputValue(startText: string, endText: string): string; getInputClassString(className: string): string; renderMultipleEditor(props: T): JSX.Element; getWrappedEditor(renderedValue?: ReactNode): ReactNode; getClassName(...props: any[]): string | undefined; /** * 处理 flat 多选tooltip text */ getMultipleText(): string; getEditor(wrap: (node: ReactNode) => ReactNode, renderedValue?: ReactNode): ReactNode; getSuffixWidth(): number | undefined; setInputStylePadding(otherProps: any): void; renderLengthElement(): void; getSuffix(): ReactNode; getDefaultSuffix(): ReactNode; wrapperSuffix(children: ReactNode, props?: any): ReactNode; getPrefix(): ReactNode; wrapperPrefix(children: ReactNode): ReactNode; renderMultipleHolder(): JSX.Element | undefined; getOtherPrevNode(): ReactNode; getOtherNextNode(): ReactNode; renderPlaceHolder(): ReactNode; renderRenderedValue(value: any | undefined, props: RenderedTextProps & { key?: Key; }): ReactNode; getPlaceHolderNode(): ReactNode; getInnerSpanButton(): ReactNode; wrapperInnerSpanButton(children: ReactNode, props?: any): ReactNode; handleTagAnimateEnd(): void; handleTagAnimateEnter(): void; handleRangeStart(event: any): void; handleRangeEnd(event: any): void; handleKeyDown(e: any): void; handleMouseDown(e: any): void; handleClearButtonClick(e: any): void; handleFocus(e: any): void; handleBlur(e: any): void; handleInnerButtonMouseDown(e: any): void; setValue(value: any, noVaidate?: boolean, reserveParam?: boolean): void; getTextNode(value?: any): {} | null | undefined; setText(text?: string): void; select(): void; getHandleChange(props: any): DebouncedFunc<(...value: any[]) => void>; handleChange(e: any): void; restrictInput(value: string): string; toValueString(value: any): string | undefined; isValidInput(_input: string): boolean; } export default class ObserverTextField extends TextField<TextFieldProps> { static defaultProps: { suffixCls: string; clearButton: boolean; multiple: boolean; border: boolean; valueChangeAction: ValueChangeAction; waitType: WaitType; readOnly: boolean; disabled: boolean; noValidate: boolean; trim: import("../data-set/enum").FieldTrim; }; }