import { BooleanDecisionData } from '../DataField/BooleanDecisionData'; import { FreeTextData } from '../DataField/FreeTextData'; import { TextArea } from '../DataField/TextArea'; import { CheckBoxData } from '../DataField/CheckBoxData'; import { RadioBoxData } from '../DataField/RadioBoxData'; import { WordListData } from '../DataField/WordListData'; import { AutocompleteData } from '../DataField/AutocompleteData'; import { DataField } from '../DataField/DataField'; import { BaseModel } from '../BaseModel'; import { FormGroup, FormArray, FormControl } from '@angular/forms'; import { FormGenerator } from '../interfaces/FormGenerator'; import { JsonSerializer } from 'app/utilities/JsonSerializer'; import { Serializable } from '../interfaces/Serializable'; import { Rule } from './Rule'; import { Multiplicity } from './Multiplicity'; import { DefaultValue } from './DefaultValue'; import { ViewStyle } from './ViewStyle'; import { Visibility } from './Visibility'; import { ValidationTypes } from 'app/common/validationTypes'; export class Field extends BaseModel implements Serializable, FormGenerator{ public id: string; public title: string; public defaultValue: DefaultValue = new DefaultValue; public viewStyle: ViewStyle = new ViewStyle(); public page: number; //public multiplicity: Multiplicity = new Multiplicity(); public ordinal: number; public visible: Visibility = new Visibility(); public data: DataField; public validations: Array; fromJSONObject(item: any): Field { this.id = item.id; this.title = item.title; this.defaultValue = new JsonSerializer().fromJSONObject(item.defaultValue, DefaultValue); this.page = item.page; // this.multiplicity = new JsonSerializer().fromJSONObject(item.multiplicity, Multiplicity); this.ordinal = item.ordinal; this.validations = item.validations; this.viewStyle = new JsonSerializer().fromJSONObject(item.viewStyle, ViewStyle); this.visible = new JsonSerializer().fromJSONObject(item.visible, Visibility); if (item.data) { if (this.viewStyle.renderStyle === "combobox") { if (item.data.type === "autocomplete") this.data = new JsonSerializer().fromJSONObject(item.data, AutocompleteData); if (item.data.type === "wordlist") this.data = new JsonSerializer().fromJSONObject(item.data, WordListData); } else { if (this.viewStyle.renderStyle === "radiobox") this.data = new JsonSerializer().fromJSONObject(item.data, RadioBoxData); if (this.viewStyle.renderStyle === "checkBox") this.data = new JsonSerializer().fromJSONObject(item.data, CheckBoxData); if (this.viewStyle.renderStyle === "textarea") this.data = new JsonSerializer