choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
245 lines (244 loc) • 7.87 kB
TypeScript
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;
};
}