import { FormGroup } from '@angular/forms'; import { JsonSerializer } from '../utilities/JsonSerializer'; import { Serializable } from './interfaces/Serializable'; import { BaseModel } from './BaseModel'; import {Field} from './Field' export class CompositeField extends BaseModel implements Serializable { public fields:Array = new Array(); fromJSONObject(item:any):CompositeField{ this.fields = new JsonSerializer().fromJSONArray(item.fields,Field); return this; } buildForm():FormGroup{ let formGroup = this.formBuilder.group({}); let fieldsFormArray = new Array(); this.fields.forEach(item => { let form: FormGroup = item.buildForm(); fieldsFormArray.push(form) }) formGroup.addControl('fields', this.formBuilder.array(fieldsFormArray)); return formGroup; } }