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 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); } }