import { BaseModel } from '../BaseModel'; import { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms'; import { FormGenerator } from '../interfaces/FormGenerator'; import { Section } from './Section'; import { Serializable } from '../interfaces/Serializable'; import { Page } from "./Page"; import { JsonSerializer } from '../../utilities/JsonSerializer'; export class DatasetProfileModelAdmin extends BaseModel implements Serializable,FormGenerator{ public sections: Array
= new Array
(); public pages: Array = new Array(); public label: string; fromJSONObject(item:any):DatasetProfileModelAdmin{ this.sections = JsonSerializer.fromJSONArray(item.sections, Section); this.pages = JsonSerializer.fromJSONArray(item.pages, Page); this.label = item.label; return this; } buildForm():FormGroup{ let formGroup: FormGroup = new FormBuilder().group({}); let sectionsFormArray = new Array(); this.sections.forEach(item => { let form: FormGroup = item.buildForm(); sectionsFormArray.push(form) }) formGroup.addControl('sections', this.formBuilder.array(sectionsFormArray)); let pagesFormArray = new Array(); this.pages.forEach(item => { let form: FormGroup = item.buildForm(); pagesFormArray.push(form) }) formGroup.addControl('pages', this.formBuilder.array(pagesFormArray)); formGroup.addControl('label', new FormControl(this.label, Validators.required)); return formGroup; } }