Skip to content
Snippets Groups Projects
summary.component.ts 1.43 KiB
Newer Older
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
François Agneray's avatar
François Agneray committed

import { Criterion, SearchQueryParams } from '../store/model';
import { Dataset, Attribute, Family, Category } from '../../metamodel/model';
François Agneray's avatar
François Agneray committed
import { printCriterion as print } from '../../shared/utils'
François Agneray's avatar
François Agneray committed

@Component({
    selector: 'app-summary',
    templateUrl: 'summary.component.html',
François Agneray's avatar
François Agneray committed
    styleUrls: ['summary.component.css'],
Tifenn Guillas's avatar
Tifenn Guillas committed
    changeDetection: ChangeDetectionStrategy.OnPush,
François Agneray's avatar
François Agneray committed
})
export class SummaryComponent {
    @Input() datasetName: string;
    @Input() datasetList: Dataset[];
    @Input() criteriaFamilyList: Family[];
François Agneray's avatar
François Agneray committed
    @Input() criteriaList: Criterion[];
    @Input() datasetAttributeList: Attribute[];
    @Input() outputFamilyList: Family[];
    @Input() categoryList: Category[];
François Agneray's avatar
François Agneray committed
    @Input() outputList: number[];
    @Input() queryParams: SearchQueryParams;
    @Input() outputListEmpty: boolean;
François Agneray's avatar
François Agneray committed

François Agneray's avatar
François Agneray committed
    getDataset(): Dataset {
François Agneray's avatar
François Agneray committed
        return this.datasetList.find(dataset => dataset.name === this.datasetName);
    }

François Agneray's avatar
François Agneray committed
    getAttribute(id: number): Attribute {
François Agneray's avatar
François Agneray committed
        return this.datasetAttributeList.find(attribute => attribute.id === id);
    }
François Agneray's avatar
François Agneray committed

    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);
    }
François Agneray's avatar
François Agneray committed
}