signal-template-forms
Version:
A powerful, type-safe Angular forms library built with signals, providing reactive form management with excellent developer experience and performance.
21 lines (20 loc) • 1.73 kB
TypeScript
import { WritableSignal } from '@angular/core';
import { FormStatus } from '../../enums/form-status.enum';
import { type DeepPartial, type ErrorMessage, type InferFieldType, type SignalFormContainer, type SignalFormField } from '../../models/signal-form.model';
import { ValidationService } from '../../services/validation.service';
export declare class FormEngine {
static validateForm<TModel>(fields: SignalFormField<TModel>[], form: SignalFormContainer<TModel>, validationService?: ValidationService): () => boolean;
static resetForm<TModel>(fields: SignalFormField<TModel>[], initialModel: TModel): () => void;
static patchForm<TModel>(fields: SignalFormField<TModel>[]): (patch: DeepPartial<TModel>) => void;
static setFormValue<TModel>(fields: SignalFormField<TModel>[]): (value: TModel) => void;
static getErrors<TModel>(fields: SignalFormField<TModel>[]): () => ErrorMessage<TModel>[];
static getValueFromFields<TModel>(fields: SignalFormField<TModel>[], form: SignalFormContainer<TModel>): TModel;
static getFieldOutputValue<TModel>(field: SignalFormField<TModel>): unknown;
static getValue<TModel>(fields: SignalFormField<TModel>[]): () => TModel;
static getField<TModel>(fields: SignalFormField<TModel>[]): <K extends keyof TModel>(key: K) => InferFieldType<TModel, K>;
static getRawValue<TModel>(fields: SignalFormField<TModel>[]): import("@angular/core").Signal<TModel>;
static runSaveHandler<TModel>(fields: SignalFormField<TModel>[], status: WritableSignal<FormStatus>, form: SignalFormContainer<TModel>, onSave?: (value: TModel) => void): () => void;
private static isFieldWithForm;
private static isRepeatableField;
private static isCheckboxGroupField;
}