import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; import { FieldGroup } from '../../models/FieldGroup'; import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; import { FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; import { NgForm } from '@angular/forms'; import { CompositeField } from '../../models/CompositeField'; @Component({ selector: 'df-group', templateUrl: './dynamic-form-group.component.html', styleUrls: ['./dynamic-form-group.component.css'], encapsulation: ViewEncapsulation.None, }) export class DynamicFormGroupComponent implements OnInit { @Input() group: FieldGroup @Input() form: FormGroup; @Input() pathName: string; @Input() path: string; constructor(public visibilityRulesService: VisibilityRulesService) { } ngOnInit() { //let st = this.group.style == "any" ? "" : this.group.style; //this.classFromJson = this.group.class == "" ? "" : this.group.class; /* this.customStyle = {}; if (st != "") { st.replace(/"/g, '\\"'); var attributes = st.split(';'); for (var i = 0; i < attributes.length; i++) { var entry = attributes[i].split(':'); entry[1].replace(/["]/g, " "); //this.customStyle[entry[0]] = '2px solid #c1baba'; var a = entry[0]; this.customStyle[a] = entry[1]; } */ } addMultipleField(fieldsetIndex: number) { let compositeField: CompositeField = this.group.compositeFields[fieldsetIndex].cloneForMultiplicity(fieldsetIndex); this.group.compositeFields[fieldsetIndex].multiplicityItems.push(compositeField); ((this.form.get("compositeFields").get('' + fieldsetIndex).get('multiplicityItems'))).push(compositeField.buildForm()); } addFieldSet() { /* debugger; let subgroup: any = {}; this.group.compositeFields.groupFields.forEach((field, i) => { debugger; this.form.addControl(field.key + "_" + i, new FormControl("")) if (field.controlType == "textbox") { let newfield: FieldBase; let rule = new Rule(); newfield = new TextboxField({ label: field.label + "_" + i, key: field.key + "_" + i, value: "", order: field.order, rules: field.rules, visible: field.visible, group: field.group, description: field.description }); this.group.compositeFields.groupFields.push(newfield) } }); */ } }