import { VisibilityRulesService } from '../../utilities/visibility-rules/visibility-rules.service'; import { FieldGroup } from '../../models/FieldGroup'; import { Component, Input, OnInit, ViewEncapsulation, ChangeDetectionStrategy } 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 form: FormGroup; @Input() pathName: string; @Input() path: string; trackByFn = (index, item) => item ? item["id"] : null constructor(public visibilityRulesService: VisibilityRulesService) { } ngOnInit() { if (this.group) { this.form = this.visibilityRulesService.getFormGroup(this.group.id) } } 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() { } }