37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
|
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<Visibility>, FormGenerator<FormGroup>{
|
|||
|
public rules: Array<Rule> = new Array<Rule>();
|
|||
|
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<FormGroup>();
|
|||
|
if (this.rules){
|
|||
|
this.rules.forEach(rule =>{
|
|||
|
let form:FormGroup = rule.buildForm();
|
|||
|
rulesFormArray.push(form);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
formGroup.addControl("rules", this.formBuilder.array(rulesFormArray));
|
|||
|
|
|||
|
return formGroup;
|
|||
|
}
|
|||
|
|
|||
|
}
|