54 lines
1.8 KiB
TypeScript
54 lines
1.8 KiB
TypeScript
|
|
|||
|
import { Component, Input, OnInit } from '@angular/core';
|
|||
|
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
|||
|
import { ValidationType } from '../../../../../../core/common/enum/validation-type';
|
|||
|
import { EnumUtils } from '../../../../../../core/services/utilities/enum-utils.service';
|
|||
|
import { RuleEditorModel } from '../../../admin/rule-editor-model';
|
|||
|
import { DatasetProfileFieldViewStyle } from '../../../../../../core/common/enum/dataset-profile-field-view-style';
|
|||
|
|
|||
|
@Component({
|
|||
|
selector: 'app-dataset-profile-editor-field-component',
|
|||
|
templateUrl: './dataset-profile-editor-field.component.html',
|
|||
|
styleUrls: ['./dataset-profile-editor-field.component.scss']
|
|||
|
})
|
|||
|
export class DatasetProfileEditorFieldComponent implements OnInit {
|
|||
|
|
|||
|
@Input() form: FormGroup;
|
|||
|
@Input() showMultiplicity = true;
|
|||
|
@Input() showOrdinal = true;
|
|||
|
@Input() indexPath: string;
|
|||
|
validationsOptions: ValidationType[] = this.enumUtils.getEnumValues(ValidationType);
|
|||
|
viewStyleEnum = DatasetProfileFieldViewStyle;
|
|||
|
isFieldMultiplicityEnabled = false;
|
|||
|
|
|||
|
constructor(
|
|||
|
public enumUtils: EnumUtils
|
|||
|
) {
|
|||
|
}
|
|||
|
|
|||
|
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.addNewRule();
|
|||
|
}
|
|||
|
|
|||
|
onIsFieldMultiplicityEnabledChange(isFieldMultiplicityEnabled: boolean) {
|
|||
|
if (!isFieldMultiplicityEnabled) {
|
|||
|
(<FormControl>this.form.get('multiplicity').get('min')).setValue(0);
|
|||
|
(<FormControl>this.form.get('multiplicity').get('max')).setValue(0);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
addNewRule() {
|
|||
|
const rule: RuleEditorModel = new RuleEditorModel();
|
|||
|
(<FormArray>this.form.get('visible').get('rules')).push(rule.buildForm());
|
|||
|
}
|
|||
|
|
|||
|
onchangeCombo() {
|
|||
|
if (this.form.get('data')) { this.form.removeControl('data'); }
|
|||
|
}
|
|||
|
}
|