@funidata/ngx-fudis
Version:
Funidata Design System.
83 lines (82 loc) • 2.63 kB
TypeScript
import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
import { Observable } from 'rxjs';
export type FudisValidatorMessage = Observable<string> | string;
export interface FudisValidationErrors extends ValidationErrors {
[key: string]: {
message: FudisValidatorMessage;
value?: unknown;
} | null;
}
export interface FudisValidatorFn extends ValidatorFn {
(control: AbstractControl): FudisValidationErrors | null;
}
export interface FudisValidatorsDatepickerSettings {
value: Date;
message: FudisValidatorMessage;
}
/**
* Form Control Validators
*/
export declare const FudisValidators: {
required: typeof required;
email: typeof email;
maxLength: typeof maxLength;
minLength: typeof minLength;
max: typeof max;
min: typeof min;
pattern: typeof pattern;
datepickerMin: typeof datepickerMin;
datepickerMax: typeof datepickerMax;
};
/**
* Fudis version of Validators.required
*/
declare function required(message: FudisValidatorMessage): FudisValidatorFn;
/**
* Fudis version of Validators.email
*/
declare function email(message: FudisValidatorMessage): FudisValidatorFn;
/**
* Fudis version of Validators.maxLength
*/
declare function maxLength(length: number, message: FudisValidatorMessage): FudisValidatorFn;
/**
* Fudis version of Validators.minLength
*
* @param length
* @param message
* @param valueRequired By default this validator does not require, that control value cannot be
* empty. If set true, validator returns error, if control value is falsy.
*/
declare function minLength(length: number, message: FudisValidatorMessage, valueRequired?: boolean): FudisValidatorFn;
/**
* Fudis version of Validators.min
*/
declare function min(minValue: number, message: FudisValidatorMessage): FudisValidatorFn;
/**
* Fudis version of Validators.max
*/
declare function max(maxValue: number, message: FudisValidatorMessage): FudisValidatorFn;
/**
* Fudis version of Validators.pattern
*/
declare function pattern(regex: string | RegExp, message: FudisValidatorMessage): FudisValidatorFn;
/**
* Min date validator for Datepicker
*/
declare function datepickerMin(settings: FudisValidatorsDatepickerSettings): (control: AbstractControl) => {
datepickerMin: {
message: FudisValidatorMessage;
value: Date;
};
} | null;
/**
* Max date validator for Datepicker
*/
declare function datepickerMax(settings: FudisValidatorsDatepickerSettings): (control: AbstractControl) => {
datepickerMax: {
message: FudisValidatorMessage;
value: Date;
};
} | null;
export {};