83 lines
2.2 KiB
TypeScript
83 lines
2.2 KiB
TypeScript
|
import { ElementUIComponent, ElementUIComponentSize } from './component'
|
||
|
|
||
|
export type FormItemLabelPosition = 'left' | 'right' | 'top'
|
||
|
|
||
|
export interface ValidateCallback {
|
||
|
/**
|
||
|
* The callback to tell the validation result
|
||
|
*
|
||
|
* @param isValid Whether the form is valid
|
||
|
* @param invalidFields fields that fail validation
|
||
|
*/
|
||
|
(isValid: boolean, invalidFields: object): void
|
||
|
}
|
||
|
|
||
|
export interface ValidateFieldCallback {
|
||
|
/**
|
||
|
* The callback to tell the field validation result
|
||
|
*
|
||
|
* @param errorMessage The error message. It will be empty if there is no error
|
||
|
*/
|
||
|
(errorMessage: string): void
|
||
|
}
|
||
|
|
||
|
/** Form Component */
|
||
|
export declare class ElForm extends ElementUIComponent {
|
||
|
/** Data of form component */
|
||
|
model: object
|
||
|
|
||
|
/** Validation rules of form */
|
||
|
rules: object
|
||
|
|
||
|
/** Whether the form is inline */
|
||
|
inline: boolean
|
||
|
|
||
|
/** Whether the form is disabled */
|
||
|
disabled: boolean
|
||
|
|
||
|
/** Position of label */
|
||
|
labelPosition: FormItemLabelPosition
|
||
|
|
||
|
/** Width of label, and all form items will inherit from Form */
|
||
|
labelWidth: string
|
||
|
|
||
|
/** Suffix of the label */
|
||
|
labelSuffix: string
|
||
|
|
||
|
/** Whether to show the error message */
|
||
|
showMessage: boolean
|
||
|
|
||
|
/** Whether to display the error message inline with the form item */
|
||
|
inlineMessage: boolean
|
||
|
|
||
|
/** Whether to display an icon indicating the validation result */
|
||
|
statusIcon: boolean
|
||
|
|
||
|
/** Whether to trigger validation when the `rules` prop is changed */
|
||
|
validateOnRuleChange: boolean
|
||
|
|
||
|
/** Controls the size of components in this form */
|
||
|
size: ElementUIComponentSize
|
||
|
|
||
|
/**
|
||
|
* Validate the whole form
|
||
|
*
|
||
|
* @param callback A callback to tell the validation result
|
||
|
*/
|
||
|
validate (callback: ValidateCallback): void
|
||
|
validate (): Promise<boolean>
|
||
|
/**
|
||
|
* Validate certain form items
|
||
|
*
|
||
|
* @param props The property of `model` or array of prop which is going to validate
|
||
|
* @param callback A callback to tell the field validation result
|
||
|
*/
|
||
|
validateField (props: string | string[], callback?: ValidateFieldCallback): void
|
||
|
|
||
|
/** reset all the fields and remove validation result */
|
||
|
resetFields (): void
|
||
|
|
||
|
/** clear validation message for certain fields */
|
||
|
clearValidate (props?: string | string[]): void
|
||
|
}
|