1 | import React, { Component, ComponentClass, CSSProperties, FormEventHandler, ReactNode, SFC } from 'react';
|
2 | import PropTypes from 'prop-types';
|
3 | import FormItem from './FormItem';
|
4 | import { FormLayout } from './enum';
|
5 | export interface FormCreateOption<T> {
|
6 | onFieldsChange?: (props: T, fields: Array<any>) => void;
|
7 | onValuesChange?: (props: T, values: any) => void;
|
8 | mapPropsToFields?: (props: T) => void;
|
9 | withRef?: boolean;
|
10 | }
|
11 | export interface FormProps {
|
12 | layout?: FormLayout;
|
13 | form?: WrappedFormUtils;
|
14 | onSubmit?: FormEventHandler<any>;
|
15 | style?: CSSProperties;
|
16 | className?: string;
|
17 | prefixCls?: string;
|
18 | hideRequiredMark?: boolean;
|
19 | }
|
20 | export declare type ValidationRule = {
|
21 |
|
22 | message?: string;
|
23 |
|
24 | type?: string;
|
25 |
|
26 | required?: boolean;
|
27 |
|
28 | whitespace?: boolean;
|
29 |
|
30 | len?: number;
|
31 |
|
32 | min?: number;
|
33 |
|
34 | max?: number;
|
35 |
|
36 | enum?: string | string[];
|
37 |
|
38 | pattern?: RegExp;
|
39 |
|
40 | transform?: (value: any) => any;
|
41 |
|
42 | validator?: (rule: any, value: any, callback: any, source?: any, options?: any) => any;
|
43 | };
|
44 | export declare type ValidateCallback = (errors: any, values: any, modify?: boolean) => void;
|
45 | export declare type GetFieldDecoratorOptions = {
|
46 |
|
47 | valuePropName?: string;
|
48 |
|
49 | initialValue?: any;
|
50 |
|
51 | trigger?: string;
|
52 |
|
53 | getValueFromEvent?: (...args: any[]) => any;
|
54 |
|
55 | validateTrigger?: string | string[];
|
56 |
|
57 | rules?: ValidationRule[];
|
58 |
|
59 | exclusive?: boolean;
|
60 |
|
61 | normalize?: (value: any, prevValue: any, allValues: any) => any;
|
62 |
|
63 | validateFirst?: boolean;
|
64 | };
|
65 | export declare type WrappedFormUtils = {
|
66 |
|
67 | getFieldsValue(fieldNames?: Array<string>): Object;
|
68 |
|
69 | getFieldValue(fieldName: string): any;
|
70 |
|
71 | setFieldsValue(obj: Object): void;
|
72 |
|
73 | setFields(obj: Object): void;
|
74 |
|
75 | validateFields(fieldNames: Array<string>, options: Object, callback: ValidateCallback): void;
|
76 | validateFields(fieldNames: Array<string>, callback: ValidateCallback): void;
|
77 | validateFields(options: Object, callback: ValidateCallback): void;
|
78 | validateFields(callback: ValidateCallback): void;
|
79 | validateFields(): void;
|
80 |
|
81 | validateFieldsAndScroll(fieldNames?: Array<string>, options?: Object, callback?: ValidateCallback): void;
|
82 | validateFieldsAndScroll(fieldNames?: Array<string>, callback?: ValidateCallback): void;
|
83 | validateFieldsAndScroll(options?: Object, callback?: ValidateCallback): void;
|
84 | validateFieldsAndScroll(callback?: ValidateCallback): void;
|
85 | validateFieldsAndScroll(): void;
|
86 |
|
87 | getFieldError(name: string): Object[];
|
88 | getFieldsError(names?: Array<string>): Object;
|
89 |
|
90 | isFieldValidating(name: string): boolean;
|
91 | isFieldTouched(name: string): boolean;
|
92 | isFieldsTouched(names?: Array<string>): boolean;
|
93 |
|
94 | resetFields(names?: Array<string>): void;
|
95 | isModifiedFields(names?: Array<string>): boolean;
|
96 | isModifiedField(name: string): boolean;
|
97 | getFieldDecorator(id: string, options?: GetFieldDecoratorOptions): (node: ReactNode) => ReactNode;
|
98 | };
|
99 | export interface FormComponentProps {
|
100 | form: WrappedFormUtils;
|
101 | }
|
102 | export interface ComponentDecorator {
|
103 | <P extends FormComponentProps>(component: ComponentClass<P> | SFC<P>): ComponentClass<Omit<P, keyof FormComponentProps>>;
|
104 | }
|
105 | export default class Form extends Component<FormProps, any> {
|
106 | static displayName: string;
|
107 | static defaultProps: {
|
108 | layout: FormLayout;
|
109 | hideRequiredMark: boolean;
|
110 | onSubmit(e: React.FormEvent<HTMLFormElement>): void;
|
111 | };
|
112 | static propTypes: {
|
113 | prefixCls: PropTypes.Requireable<string>;
|
114 | layout: PropTypes.Requireable<FormLayout>;
|
115 | children: PropTypes.Requireable<any>;
|
116 | onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
|
117 | hideRequiredMark: PropTypes.Requireable<boolean>;
|
118 | };
|
119 | static childContextTypes: {
|
120 | vertical: PropTypes.Requireable<boolean>;
|
121 | };
|
122 | static Item: typeof FormItem;
|
123 | static createFormField: any;
|
124 | static create: <TOwnProps>(options?: FormCreateOption<TOwnProps>) => ComponentDecorator;
|
125 | constructor(props: FormProps);
|
126 | shouldComponentUpdate(...args: any[]): any;
|
127 | getChildContext(): {
|
128 | vertical: boolean;
|
129 | };
|
130 | render(): JSX.Element;
|
131 | }
|