@ng-flexy/form
Version:
Flexy components and tools to build Angular 8+ applications
39 lines (38 loc) • 2.46 kB
TypeScript
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;
}