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 } 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