Forked from HYCAR-Hydro / airGR
Source project has a limited visibility.
calculator-list.component.ts 1.82 KiB
import { Component, OnInit } from "@angular/core";
import { Router } from '@angular/router';
import { EnumEx } from "jalhyd";
import { CalculatorType, FormulaireDefinition } from "../../formulaire/formulaire-definition";
import { FormulaireService } from "../../services/formulaire/formulaire.service";
import { InternationalisationService } from '../../services/internationalisation/internationalisation.service';
class ListElement {
    private _label: string;
    constructor(private _type: CalculatorType, formulaireService: FormulaireService) {
        this._label = formulaireService.getLocalisedTitleFromCalculatorType(_type);
    public get label() { return this._label }
    public get type() { return this._type }
@Component({
    selector: "list",
    templateUrl: "./calculator-list.component.html",
    styleUrls: ["./calculator-list.component.css"]
export class CalculatorListComponent implements OnInit {
    private _items: ListElement[];
    constructor(
        private formulaireService: FormulaireService,
        private router: Router,
        private intlService: InternationalisationService,
    ) {
        this.intlService.addObserver(this);
    private updateLocale() {
        this._items = [];
        for (let t of EnumEx.getValues(CalculatorType))
            this._items.push(new ListElement(t, this.formulaireService));
    private create(t: CalculatorType) {
        const p: Promise<FormulaireDefinition> = this.formulaireService.createFormulaire(t);
        p.then(f => {
            this.router.navigate(['/calculator', f.uid]);
        });
    // interface Observer
    update(sender: any, data: any): void {
        if (sender instanceof InternationalisationService) {
            this.updateLocale();
    // OnInit
    ngOnInit() {
        this.updateLocale();