import { Component, Input } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { FormArray, FormControl } from '@angular/forms'; import { FieldSet } from '../../models/datasetProfileAdmin/FieldSet'; import { Field } from '../../models/datasetProfileAdmin/Field'; @Component({ selector: 'compositefield-form', templateUrl: './compositefield-form.component.html', styleUrls: ['./compositefield-form.component.scss'] }) export class CompositeFieldFormComponent { @Input() form: FormGroup; @Input() dataModel: FieldSet; @Input() indexPath: string; isComposite: boolean = false; isMultiplicityEnabled: boolean = false; constructon() { } ngOnInit() { //this.addNewField(); if (this.form.get("multiplicity")) if (this.form.get("multiplicity").value.min > 1 || this.form.get("multiplicity").value.max > 1) this.isMultiplicityEnabled = true; this.isComposite = this.dataModel.fields.length > 1; } onIsCompositeChange(isComposite: boolean) { if (!isComposite && (this.form.get("fields")).length > 1) { for (let i = 0; i < (this.form.get("fields")).length - 1; i++) { (this.form.get("fields")).removeAt(1); } this.dataModel.fields.splice(1); } } onIsMultiplicityEnabledChange(isMultiplicityEnabled: boolean) { if (!isMultiplicityEnabled) { (this.form.get('multiplicity').get("min")).setValue(0); (this.form.get('multiplicity').get("max")).setValue(0); } } addNewField() { let field: Field = new Field(); this.dataModel.fields.push(field); (this.form.get("fields")).push(field.buildForm()); } DeleteField(index) { this.dataModel.fields.splice(index, 1); (this.form.get("fields")).removeAt(index); } }