import { Component, Input, OnInit } from '@angular/core'; import { FormGroup, FormControl, FormArray } from '@angular/forms'; import { ValidationTypes } from '../../models/common/ValidationTypes'; import { Field } from '../../models/datasetProfileAdmin/Field'; import { Rule } from '../../models/datasetProfileAdmin/Rule'; @Component({ selector: 'app-field-form', templateUrl: './field-form.component.html', styleUrls: ['./field-form.component.scss'] }) export class FieldFormComponent implements OnInit { @Input() form: FormGroup; @Input() dataModel: Field; @Input() showMultiplicity = true; @Input() indexPath: string; validationsOptions: Array; isFieldMultiplicityEnabled = false; constructon() { } ngOnInit() { if (this.form.get('multiplicity')) { if (this.form.get('multiplicity').value.min > 1 || this.form.get('multiplicity').value.max > 1) { this.isFieldMultiplicityEnabled = true; } } this.validationsOptions = [{ key: 0, value: ValidationTypes[0] }, { key: 1, value: ValidationTypes[1] }]; // this.addNewRule(); } onIsFieldMultiplicityEnabledChange(isFieldMultiplicityEnabled: boolean) { if (!isFieldMultiplicityEnabled) { (this.form.get('multiplicity').get('min')).setValue(0); (this.form.get('multiplicity').get('max')).setValue(0); } } addNewRule() { const rule: Rule = new Rule(); this.dataModel.visible.rules.push(rule); (this.form.get('visible').get('rules')).push(rule.buildForm()); } DeleteRule(index) { this.dataModel.visible.rules.splice(index, 1); (this.form.get('visible').get('rules')).removeAt(index); } onchangeCombo() { if (this.form.get('data')) { this.form.removeControl('data'); } } }