signal-template-forms
Version:
A powerful, type-safe Angular forms library built with signals, providing reactive form management with excellent developer experience and performance.
52 lines (51 loc) • 1.99 kB
TypeScript
import { type SignalFormContainer, type SignalFormField, type ValidationTrigger } from '../models/signal-form.model';
import * as i0 from "@angular/core";
export declare class ValidationService {
private readonly injector;
private readonly validatedFields;
private readonly blurRefresh;
constructor();
/**
* Trigger blur validation for a specific field
* This creates a refresh signal that triggers validation
*/
triggerBlurValidation(fieldPath: string): void;
private setupSyncValidationEffect;
private setupBlurValidationEffect;
/**
* Register a field for validation
*/
setupFieldValidation<TModel, K extends keyof TModel>(field: SignalFormField<TModel, K>, form: SignalFormContainer<TModel>): void;
/**
* Get the effective validation configuration for a field
*/
private getValidationConfig;
/**
* Run synchronous validation
*/
private runSyncValidation;
/**
* Run asynchronous validation
*/
private runAsyncValidation;
/**
* Manually trigger validation for a field
*/
triggerValidation<TModel, K extends keyof TModel>(field: SignalFormField<TModel, K>, trigger?: ValidationTrigger): void;
/**
* Get the combined error for a field (sync + async)
*/
getCombinedError<TModel, K extends keyof TModel>(field: SignalFormField<TModel, K>): string | null;
/**
* Check if a field is currently validating or has any errors
*/
isFieldInvalid<TModel, K extends keyof TModel>(field: SignalFormField<TModel, K>): boolean;
/**
* Validate all fields for submit trigger and return if form is valid
*/
validateFormForSubmit<TModel>(fields: SignalFormField<TModel>[], form: SignalFormContainer<TModel>): boolean;
private isFieldWithForm;
private isRepeatableField;
static ɵfac: i0.ɵɵFactoryDeclaration<ValidationService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ValidationService>;
}