import { Component, Input, OnInit } 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: 'app-compositefield-form', templateUrl: './compositefield-form.component.html', styleUrls: ['./compositefield-form.component.scss'] }) export class CompositeFieldFormComponent implements OnInit { @Input() form: FormGroup; @Input() dataModel: FieldSet; @Input() indexPath: string; isComposite = false; isMultiplicityEnabled = 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() { const 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); } }