zent
Version:
一套前端设计语言和基于React的实现
91 lines (78 loc) • 2.77 kB
TypeScript
/// <reference types="react" />
declare module 'zent/lib/form' {
interface IFormProps {
className?: string
prefix?: string
horizontal?: boolean
inline?: boolean
onSubmit?: Function
style?: React.CSSProperties
}
class Form extends React.Component<IFormProps, any> {}
namespace Form {
interface IConnectedFormProps {
onChange?: (value: any) => void
onSubmitSuccess?: (result: any) => void
onSubmitFail?: (error?: any) => void
}
interface IZentForm {
getFormValues: () => any
getFieldError: (name: string) => any
setFormPristine: (value: boolean) => void
setFieldExternalErrors: (error: { key: string, value: string }) => void
resetFieldsValue: (data: any) => void
isValid: () => boolean
isSubmitting: () => boolean
isValidating: () => boolean
isFieldTouched: (name: string) => boolean
isFieldValidating: (name: string) => boolean
}
interface IWrappedComponentProps {
zentForm: IZentForm,
handleSubmit: (submit: (values: any, zentForm: IZentForm) => any) => any
}
function createForm(config?: { formValidations?: any }): (component: React.Component<IWrappedComponentProps|any ,any>) => React.Component<IConnectedFormProps, any>
interface IValidation {
required?: boolean
isExisty?: boolean
matchRegex?: RegExp
isUndefined?: boolean
isEmptyString?: boolean
isEmail?: boolean
isUrl?: boolean
isTrue?: boolean
isFalse?: boolean
isNumeric?: boolean
isInt?: boolean
isFloat?: boolean
isLength?: boolean
equals?: any
equalsField?: string
maxLength?: number
minLength?: number
}
interface IFieldProps {
ref?: (ref: any) => void
name: string
component: string|React.Component<any, any>
normalize?: (value: any, previousValue: any, nextValues: any, previousValues: any) => void
format?: (value: any, previousValue: any, nextValues: any, previousValues: any) => void
onChange?: (value: any, previousValue: any, nextValues: any, previousValues: any) => void
onBlur?: (value: any, previousValue: any, nextValues: any, previousValues: any) => void
onFocus?: React.FocusEventHandler<any>
validations?: IValidation
validationErrors?: any
asyncValidation?: (values: Object, value: any) => Promise<any>
value: any
}
class Field extends React.Component<IFieldProps, any> {}
interface IContolGroupProps {
label?: string
className?: string
helpDesc?: string
required?: boolean
}
function getControlGroup(component: React.Component<any, any>): React.Component<any, any>
}
export default Form
}