UNPKG

@ng-flexy/form

Version:

Flexy components and tools to build Angular 8+ applications

39 lines (38 loc) 2.46 kB
import { AbstractControl, FormBuilder, FormGroup, ValidatorFn } from '@angular/forms'; import { FlexyFormFieldLayoutSchema, FlexyFormLayoutSchema } from '../models/layout-schema.model'; import { FlexyFormFieldLayoutJsonSchema, FlexyFormLayoutJson, FlexyFormLayoutJsonSchema } from '../models/layout-json-schema.model'; import { FlexyLayoutJsonMapperService } from '@ng-flexy/layout'; import { FlexyFormData } from '../models/form.data'; import { FlexyLoggerService } from '@ng-flexy/core'; import { FlexyForm } from '../models/form.model'; export interface FlexyFormValidatorsMap { [name: string]: (data?: any) => ValidatorFn; } export declare class FlexyFormJsonMapperService { private jsonLayoutMapper; private formBuilder; private logger; static controlCounter: number; get supportedValidators(): string[]; private _validatorsMap; constructor(validatorsMap: FlexyFormValidatorsMap, jsonLayoutMapper: FlexyLayoutJsonMapperService, formBuilder: FormBuilder, logger: FlexyLoggerService); createForm(json: FlexyFormLayoutJson, readonlyMode: boolean, formData: FlexyFormData): FlexyForm; createItemControl(itemsSchema: FlexyFormLayoutJsonSchema, readonlyMode: boolean, value: FlexyFormData): AbstractControl; createArrayItemSchema(control: AbstractControl, items: FlexyFormLayoutJsonSchema, itemKeyDef: string, parentName: string, readonlyMode: boolean, formData: FlexyFormData, value: FlexyFormData, index: number, parentSchema?: FlexyFormLayoutSchema): FlexyFormFieldLayoutSchema; createGroupItemSchema(control: AbstractControl, items: FlexyFormFieldLayoutJsonSchema, itemKeyDef: string, parentName: string, readonlyMode: boolean, formData: FlexyFormData, value: FlexyFormData, key: string, parentSchema?: FlexyFormLayoutSchema): FlexyFormFieldLayoutSchema; createSchema(json: FlexyFormLayoutJsonSchema[], readonlyMode: boolean, formData: FlexyFormData, parentFormGroup: FormGroup, parentControlGroupName: string, parentSchema?: FlexyFormLayoutSchema): FlexyFormLayoutSchema[]; private map; private createControl; private controlComplexName; private mapItem; private _jsonLayoutItemMap; private mapItemSetArrayControl; private mapItemSetGroupControl; private mapItemSetFieldControl; private createArrayItems; private populateComplexTypeIndexMarker; private createControlConfig; private createArrayControl; private unifyName; private mapValidators; }