import React from 'react'; export interface FormControlControlProps { /** * 表单控件的名称 */ name: string; /** * 是否必填 */ required?: boolean; /** * 验证状态 */ validateState?: 'error' | 'warning' | 'validating' | 'success'; } export interface FormControlLabelProps { /** * 表单控件名称 */ name: string; /** * 是否为行内显示 */ inline?: boolean; /** * 标签对齐方式 */ align?: 'left' | 'right' | 'center' | 'justify'; /** * 标签类名 */ className?: string; /** * 标签样式 */ style?: React.CSSProperties; /** * 标签后是否添加冒号。 */ colon?: boolean; /** * 是否必填 */ required?: boolean; /** * 标签宽度 */ width?: number | string; /** * 验证状态 */ validateState?: 'error' | 'warning' | 'validating' | 'success'; /** * 是否垂直布局标签和表单控件。默认为false,表示水平排列标签和表单控件。 */ vertical?: boolean; /** * 是否处于警告状态 */ warning?: boolean; /** * 是否处于错误状态 */ error?: boolean; } /** * 表单控件组件属性 * * * @export * @interface FormControlProps */ export interface FormControlProps { /** * 表单控件的名称 */ name: string; /** * 表单控件的标签。可以是文本,或者是函数。如果需要自定义标签的渲染,可以使用函数的方式。 */ label: React.ReactNode | ((props: FormControlLabelProps) => React.ReactNode); /** * 标签后是否添加冒号。 */ colon?: boolean; /** * 是否必填 */ required?: boolean; /** * 标签样式 */ labelStyle?: React.CSSProperties; /** * 标签类名 */ labelClassName?: string; /** * 标签宽度 */ labelWidth?: number | string; /** * 标签对齐方式 */ labelAlign?: 'left' | 'right' | 'center' | 'justify'; /** * 是否为行内显示 */ inline?: boolean; /** * 是否垂直布局标签和表单控件。默认为false,表示水平排列标签和表单控件。 */ vertical?: boolean; /** * 表单控件。可以是React组件元素,也可以是函数。 */ control: React.ReactElement | ((props: FormControlControlProps) => React.ReactNode); /** * 帮助性文本。 */ helpText?: React.ReactNode; /** * 验证文本 */ validateText?: string; /** * 验证状态 */ validateState?: 'error' | 'warning' | 'validating' | 'success'; /** * 是否可用。 */ disabled?: boolean; readOnly?: boolean; } export interface FormControlState { focused: boolean; } /** * 表单控件 * * @ReactComponent * * @export * @class FormControl * @extends {React.Component} */ export default class FormControl extends React.Component { constructor(props: FormControlProps); onFocus(): void; onBlur(): void; render(): JSX.Element; }