UNPKG

@abgov/ui-components-common

Version:

Government of Alberta - UI Web components

48 lines (47 loc) 1.91 kB
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 {};