-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathlc-form-validation.d.ts
67 lines (54 loc) · 1.91 KB
/
lc-form-validation.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
export class FieldValidationResult {
key?: string;
type: string;
succeeded: boolean;
errorMessage: string;
}
export class FormValidationResult {
succeeded: boolean;
fieldErrors: { [key: string]: FieldValidationResult };
formGlobalErrors: Array<FieldValidationResult>;
}
export interface ValidationEventsFilter {
[key: string]: boolean;
}
interface FormValidation {
validateField(vm: any, key: string, value: any, eventsFilter?: ValidationEventsFilter): Promise<FieldValidationResult>;
validateForm(vm: any): Promise<FormValidationResult>;
isValidationInProgress(): boolean;
isFormDirty(): boolean;
isFormPristine(): boolean;
}
export type ValidationResult = FieldValidationResult | Promise<FieldValidationResult>;
export interface FormValidationFunction {
(vm: any): ValidationResult;
}
export interface FieldValidationFunction {
(value: any, vm: any, customParams: any): ValidationResult;
}
export interface FieldValidationConstraint {
validator: FieldValidationFunction;
eventsFilter?: ValidationEventsFilter;
customParams?: any;
}
export interface ValidationConstraints {
global?: FormValidationFunction[];
fields?: { [key: string]: FieldValidationConstraint[] }
}
export function createFormValidation(validationCredentials: ValidationConstraints): FormValidation;
export interface LengthParams {
length: number;
}
export interface PatternParams {
pattern: string | RegExp;
}
export interface RequiredParams {
trim: boolean;
}
export namespace Validators {
function required(value: any, vm: any, customParams: RequiredParams): FieldValidationResult;
function minLength(value: any, vm: any, customParams: LengthParams): FieldValidationResult;
function maxLength(value: any, vm: any, customParams: LengthParams): FieldValidationResult;
function email(value: any, vm: any): FieldValidationResult;
function pattern(value: any, vm: any, customParams: PatternParams): FieldValidationResult;
}