UNPKG

@fluent-form/core

Version:

An Angular dynamic forms library powered by Fluent API and JSON.

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