import { Component, Input, ChangeDetectionStrategy } from '@angular/core'; import { Criterion, SearchQueryParams } from '../store/model'; import { Dataset, Attribute, Family, Category } from '../../metamodel/model'; import { printCriterion as print } from '../../shared/utils' @Component({ selector: 'app-summary', templateUrl: 'summary.component.html', styleUrls: ['summary.component.css'], changeDetection: ChangeDetectionStrategy.OnPush, }) export class SummaryComponent { @Input() datasetName: string; @Input() datasetList: Dataset[]; @Input() criteriaFamilyList: Family[]; @Input() criteriaList: Criterion[]; @Input() datasetAttributeList: Attribute[]; @Input() outputFamilyList: Family[]; @Input() categoryList: Category[]; @Input() outputList: number[]; @Input() queryParams: SearchQueryParams; @Input() outputListEmpty: boolean; getDataset(): Dataset { return this.datasetList.find(dataset => dataset.name === this.datasetName); } getAttribute(id: number): Attribute { return this.datasetAttributeList.find(attribute => attribute.id === id); } printCriterion(criterion: Criterion) { return print(criterion); } getCategoryByFamilySortedByDisplay(idFamily: number): Category[] { return this.categoryList .filter(category => category.id_output_family === idFamily) .sort((a, b) => a.display - b.display); } }