@abgov/ui-components-common
Version:
Government of Alberta - UI Web components
48 lines (47 loc) • 1.91 kB
TypeScript
export type FieldValidator = (value: unknown) => string;
export type FieldsetState = Record<string, FieldsetItemState>;
export type FieldsetItemState = {
name: string;
label: string;
value: string;
};
export declare class FormValidator {
private readonly validators;
constructor(validators?: Record<string, FieldValidator[]>);
add(fieldName: string, ...validators: FieldValidator[]): void;
validate(data: Record<string, string>): Record<string, string>;
}
export declare function birthDayValidator(): FieldValidator[];
export declare function birthMonthValidator(): FieldValidator[];
export declare function birthYearValidator(): FieldValidator[];
export declare function requiredValidator(msg?: string): FieldValidator;
export declare function phoneNumberValidator(msg?: string): FieldValidator;
export declare function emailValidator(msg?: string): FieldValidator;
export declare function SINValidator(): FieldValidator;
export declare function postalCodeValidator(): FieldValidator;
export declare function regexValidator(regex: RegExp, msg: string): FieldValidator;
interface DateValidatorOptions {
invalidMsg?: string;
minMsg?: string;
maxMsg?: string;
min?: Date;
max?: Date;
}
export declare function dateValidator({ invalidMsg, minMsg, maxMsg, min, max, }?: DateValidatorOptions): FieldValidator;
interface NumericValidatorOptions {
invalidTypeMsg?: string;
minMsg?: string;
maxMsg?: string;
min?: number;
max?: number;
}
export declare function numericValidator({ invalidTypeMsg, minMsg, maxMsg, min, max, }?: NumericValidatorOptions): FieldValidator;
interface LengthValidatorOptions {
invalidTypeMsg?: string;
minMsg?: string;
maxMsg?: string;
max?: number;
min?: number;
}
export declare function lengthValidator({ invalidTypeMsg, minMsg, maxMsg, min, max, }: LengthValidatorOptions): FieldValidator;
export {};