UNPKG

choerodon-ui

Version:

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

370 lines (369 loc) 13.3 kB
import { CSSProperties, DetailedHTMLProps, HTMLAttributes, Key, ReactNode } from 'react'; import { Cancelable } from 'lodash'; import PropTypes from 'prop-types'; import { 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'; 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; } export declare class TextField<T extends TextFieldProps> extends FormField<T> { static displayName: string; static propTypes: { id: PropTypes.Requireable<string>; size: PropTypes.Requireable<import("../core/enum").Size>; suffixCls: PropTypes.Requireable<string>; prefixCls: PropTypes.Requireable<string>; title: PropTypes.Requireable<PropTypes.ReactNodeLike>; disabled: PropTypes.Requireable<boolean>; hidden: PropTypes.Requireable<boolean>; autoFocus: PropTypes.Requireable<boolean>; accessKey: PropTypes.Requireable<string | boolean>; dir: PropTypes.Requireable<string>; contentEditable: PropTypes.Requireable<string | boolean>; draggable: PropTypes.Requireable<string | boolean>; style: PropTypes.Requireable<object>; className: PropTypes.Requireable<string>; tabIndex: PropTypes.Requireable<number>; lang: PropTypes.Requireable<string>; spellCheck: PropTypes.Requireable<boolean>; onFocus: PropTypes.Requireable<(...args: any[]) => any>; onBlur: PropTypes.Requireable<(...args: any[]) => any>; onClick: PropTypes.Requireable<(...args: any[]) => any>; onDoubleClick: PropTypes.Requireable<(...args: any[]) => any>; onMouseUp: PropTypes.Requireable<(...args: any[]) => any>; onMouseDown: PropTypes.Requireable<(...args: any[]) => any>; onMouseMove: PropTypes.Requireable<(...args: any[]) => any>; onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>; onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>; onMouseOver: PropTypes.Requireable<(...args: any[]) => any>; onMouseOut: PropTypes.Requireable<(...args: any[]) => any>; onContextMenu: PropTypes.Requireable<(...args: any[]) => any>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; onKeyUp: PropTypes.Requireable<(...args: any[]) => any>; onKeyPress: PropTypes.Requireable<(...args: any[]) => any>; dataSet: PropTypes.Requireable<object>; _inTable: PropTypes.Requireable<boolean>; type: PropTypes.Requireable<string>; name: PropTypes.Requireable<string>; value: PropTypes.Requireable<any>; defaultValue: PropTypes.Requireable<any>; required: PropTypes.Requireable<boolean>; readOnly: PropTypes.Requireable<boolean>; form: PropTypes.Requireable<string>; dataIndex: PropTypes.Requireable<number>; multiple: PropTypes.Requireable<boolean>; range: PropTypes.Requireable<boolean | (string | null | undefined)[]>; rowSpan: PropTypes.Requireable<number>; newLine: PropTypes.Requireable<boolean>; colSpan: PropTypes.Requireable<number>; validator: PropTypes.Requireable<(...args: any[]) => any>; onInvalid: PropTypes.Requireable<(...args: any[]) => any>; help: PropTypes.Requireable<string>; showHelp: PropTypes.Requireable<ShowHelp>; renderer: PropTypes.Requireable<(...args: any[]) => any>; validationRenderer: PropTypes.Requireable<(...args: any[]) => any>; maxTagPlaceholder: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>; maxTagCount: PropTypes.Requireable<number>; maxTagTextLength: PropTypes.Requireable<number>; pristine: PropTypes.Requireable<boolean>; trim: PropTypes.Requireable<import("../data-set/enum").FieldTrim>; onBeforeChange: PropTypes.Requireable<(...args: any[]) => any>; onChange: PropTypes.Requireable<(...args: any[]) => any>; onInput: PropTypes.Requireable<(...args: any[]) => any>; onEnterDown: PropTypes.Requireable<(...args: any[]) => any>; fieldClassName: PropTypes.Requireable<string>; highlight: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>; highlightRenderer: PropTypes.Requireable<(...args: any[]) => any>; useColon: PropTypes.Requireable<boolean>; showValidation: PropTypes.Requireable<string>; /** * 占位词 */ placeholder: PropTypes.Requireable<string | (string | null | undefined)[]>; /** * 最小长度 */ minLength: PropTypes.Requireable<number>; /** * 最大长度 */ maxLength: PropTypes.Requireable<number>; /** * 正则校验 */ pattern: PropTypes.Requireable<string | object>; /** * 自动完成 */ autoComplete: PropTypes.Requireable<string>; /** * 前缀 */ prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * 后缀 */ suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * 是否显示清除按钮 */ clearButton: PropTypes.Requireable<boolean>; /** * 前置标签 */ addonBefore: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * 前置标签样式 */ addonBeforeStyle: PropTypes.Requireable<object>; /** * 后置标签 */ addonAfter: PropTypes.Requireable<PropTypes.ReactNodeLike>; /** * 后置标签样式 */ addonAfterStyle: PropTypes.Requireable<object>; /** * 限制可输入的字符 */ restrict: PropTypes.Requireable<string | object>; /** * 是否是筛选条 flat 模式 */ isFlat: PropTypes.Requireable<boolean>; /** * 触发值变更的动作, default: blur */ valueChangeAction: PropTypes.Requireable<ValueChangeAction>; /** * 值变更间隔时间,只有在valueChangeAction为input时起作用 */ wait: PropTypes.Requireable<number>; /** * 值变更间隔类型,可选值:throttle | debounce * @default throttle */ waitType: PropTypes.Requireable<WaitType>; groupClassName: PropTypes.Requireable<string>; showLengthInfo: PropTypes.Requireable<boolean>; border: PropTypes.Requireable<boolean>; }; 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; tagContainer: HTMLUListElement | null; handleChangeWait: Function & Cancelable; addonAfterRef?: HTMLDivElement | null; addonBeforeRef?: HTMLDivElement | null; renderedText?: { text: string; width: number; } | undefined; renderedStartText?: { text: string; width: number; } | undefined; renderedEndText?: { text: string; width: number; } | undefined; lengthElement?: ReactNode; lengthInfoWidth?: number; suffixWidth?: number; isSuffixClick?: boolean; lastAnimationRecord?: Record; get clearButton(): boolean; /** * 是否显示长度信息 */ get showLengthInfo(): boolean | undefined; get showHelp(): ShowHelp; 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; 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; 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[]; getLabel(): any; wrapGroupItem(node: ReactNode, category: GroupItemCategory, props?: DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, childrenProps?: any): ReactNode; setRangeTarget(target: any): void; renderRangeEditor(props: any): JSX.Element; 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; 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; removeLastValue(): void; 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): void; getTextNode(value?: any): {} | null | undefined; setText(text?: string): void; select(): void; getHandleChange(props: any): Function & Cancelable; handleChange(e: any): void; restrictInput(value: string): string; toValueString(value: any): string | undefined; } 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; }; }