import { BaseModel } from '../BaseModel'; import { Rule } from "./Rule"; import { FormGenerator } from "../interfaces/FormGenerator"; import { FormGroup } from '@angular/forms'; import { Serializable } from '../interfaces/Serializable'; import { JsonSerializer } from 'app/utilities/JsonSerializer'; export class Visibility extends BaseModel implements Serializable, FormGenerator{ public rules: Array = new Array(); public style:string; fromJSONObject(item:any):Visibility{ this.rules = JsonSerializer.fromJSONArray(item.rules, Rule); this.style = item.style; return this; } buildForm():FormGroup{ let formGroup = this.formBuilder.group({ style:[this.style] }) let rulesFormArray = new Array(); if (this.rules){ this.rules.forEach(rule =>{ let form:FormGroup = rule.buildForm(); rulesFormArray.push(form); }); } formGroup.addControl("rules", this.formBuilder.array(rulesFormArray)); return formGroup; } }