Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
import { Criterion } from '../store/model';
import { Family, Attribute } from '../../metamodel/model';
@Component({
selector: 'app-criteria-by-family',
templateUrl: 'criteria-by-family.component.html',
styleUrls: ['criteria-by-family.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class CriteriaByFamilyComponent {
@Input() criteriaFamily: Family;
@Input() datasetAttributeList: Attribute[];
@Input() criteriaList: Criterion[];
@Output() addCriterion: EventEmitter<Criterion> = new EventEmitter();
@Output() deleteCriterion: EventEmitter<number> = new EventEmitter();
getAttributeByFamily(idFamily) {
return this.datasetAttributeList
.filter(attribute => attribute.id_criteria_family === idFamily)
.sort((a, b) => a.criteria_display - b.criteria_display);
}
getOptions(idAttribute) {
return JSON.parse(this.datasetAttributeList.find(attribute => attribute.id === idAttribute).options);
}
getCriterion(id: number): Criterion {
return this.criteriaList.find(criterion => criterion.id === id);
}
add(criterion: Criterion): void {
this.addCriterion.emit(criterion);
}
delete(id: number): void {
this.deleteCriterion.emit(id);
}
}