import { DynamicFieldDependency } from './DynamicFieldDependency'; import { Serializable } from '../Serializable'; import { JsonSerializer } from '../../utilities/JsonSerializer'; import { FormGroup, FormBuilder } from '@angular/forms'; import { FormGenerator } from '../interfaces/FormGenerator'; export class DynamicField implements Serializable, FormGenerator { public id: string; public name: string; public required: boolean; public queryProperty; public value: string; public dependencies: Array; fromJSONObject(item: any): DynamicField { this.id = item.id; this.name = item.name; this.required = item.required; this.value = item.value; this.queryProperty = item.queryProperty; this.dependencies = JsonSerializer.fromJSONArray(item.dependencies, DynamicFieldDependency); return this; } buildForm(): FormGroup { const builder = new FormBuilder(); const formGroup = builder.group({ id: [this.id], name: [this.name], required: [this.required], value: [this.value], queryProperty: [this.queryProperty], dependencies: [this.dependencies] }); return formGroup; } }