@fluent-form/core
Version:
An Angular dynamic forms library powered by Fluent API and JSON.
48 lines (47 loc) • 2.27 kB
TypeScript
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import type { AnyArray, AnyObject } from '@ngify/core';
import type { AbstractControlSchema, AbstractFormArraySchema, AbstractFormGroupSchema, AbstractSchema, SchemaKey } from '../schemas';
import type { Indexable } from '../types';
import * as i0 from "@angular/core";
export declare class FormUtil {
private readonly schemaUtil;
private readonly valueUtil;
private readonly valueTransformer;
createFormControl(schema: AbstractControlSchema, model: AnyObject): FormControl;
createFormGroup(schema: AbstractFormGroupSchema, model: AnyObject): FormGroup;
createFormGroup(schemas: Indexable<AbstractSchema>[], model: AnyObject): FormGroup;
createFormGroup(schemaOrSchemas: AbstractFormGroupSchema | Indexable<AbstractSchema>[], model: AnyObject): FormGroup;
private createControlMap;
createFormArray(schema: AbstractFormArraySchema, model: AnyArray): FormArray;
createFormArrayElements(schemas: Indexable<AbstractSchema>[], model: AnyArray): AbstractControl<any, any>[];
createAnyControl(schema: AbstractControlSchema, model: AnyObject | AnyArray): AbstractControl;
/**
* Update the form state, currently includes:
* - Updating validators
* - Updating status - enabled / disabled
* - Updating value
* @param form
* @param model
* @param schemas
*/
updateForm(form: FormGroup, model: AnyObject, schemas: AbstractSchema[]): void;
updateForm(form: FormArray, model: AnyArray, schemas: AbstractSchema[]): void;
/**
* Assign value from form to model
* @param model
* @param form
* @param schemas
*/
updateModel(model: AnyObject, form: FormGroup, schemas: AbstractSchema[]): AnyObject;
updateModel(model: AnyArray, form: FormArray, schemas: AbstractSchema[]): AnyArray;
static ɵfac: i0.ɵɵFactoryDeclaration<FormUtil, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<FormUtil>;
}
/**
* Automatically choose to use `.get()` or `.at()` to get a child control
* based on the type of the form.
* @param form
* @param key
* @returns
*/
export declare function getChildControl(form: FormGroup | FormArray, key: SchemaKey): AbstractControl | null;