param-field-line.component.ts 5.47 KiB
import { Component, Input, Output, DoCheck, EventEmitter } from '@angular/core';
import { ComputeNodeType } from 'jalhyd';
import { ParamService } from '../../services/param/param.service';
import { InternationalisationService } from '../../services/internationalisation/internationalisation.service';
import { NgParameter, ParamRadioConfig } from '../../calculators/generic/ngparam';
@Component({
    selector: "param-field-line",
    templateUrl: "./param-field-line.component.html"
export class ParamFieldLineComponent {
    private _param: NgParameter;
    constructor(private paramService: ParamService, private intlService: InternationalisationService) {
    private get title(): string {
        let t = "";
        if (this._param.label != undefined)
            t = this._param.label;
        if (this._param.unit != undefined && this._param.unit != "")
            t = t + " (" + this._param.unit + ")";
        return t;
    private get uitextParamFixe() {
        return this.intlService.localizeText("INFO_PARAMFIELD_PARAMFIXE");
    private get uitextParamVarier() {
        return this.intlService.localizeText("INFO_PARAMFIELD_PARAMVARIER");
    private get uitextValeurMini() {
        return this.intlService.localizeText("INFO_PARAMFIELD_VALEURMINI");
    private get uitextValeurMaxi() {
        return this.intlService.localizeText("INFO_PARAMFIELD_VALEURMAXI");
    private get uitextPasVariation() {
        return this.intlService.localizeText("INFO_PARAMFIELD_PASVARIATION");
    private get uitextParamCalculer() {
        return this.intlService.localizeText("INFO_PARAMFIELD_PARAMCALCULER");
    /**
     * type de noeud de calcul
    private _computeNode: ComputeNodeType;
    private get nodeType(): ComputeNodeType {
        return this._computeNode;
    @Input()
    private set computeNodeType(t: ComputeNodeType) {
        this._computeNode = t;
    /**
     * Parameter symbol (Q, Ks, B, ...) input attribute
    private get symbol(): string {
        return this._param.symbol;
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
} @Input() private set symbol(s: string) { this._param = this.paramService.getParameter(this._computeNode, s); if (this._param == undefined) throw "symbole de paramètre '" + s + "' incorrect"; } /** * form id input attribute */ private _formId: number; private get formId(): number { return this._formId; } @Input() private set formId(id: number) { this._formId = id; // this.updateField(); } /** * calcule la présence du radio "paramètre fixé" */ private hasRadioFix(): boolean { // switch (this._option) { switch (this._param.radioConfig) { case ParamRadioConfig.FIX: return false; default: return true; } } /** * calcule la présence du radio "paramètre à varier" */ private hasRadioVar(): boolean { // switch (this._option) { switch (this._param.radioConfig) { case ParamRadioConfig.VAR: case ParamRadioConfig.CAL: return true; default: return false; } } /** * calcule la présence du radio "paramètre à calculer" */ private hasRadioCal(): boolean { // switch (this._option) { switch (this._param.radioConfig) { case ParamRadioConfig.CAL: return true; default: return false; } } /** * calcule l'état du radio "paramètre fixé" */
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
private get radioFixCheck(): string { if (this._param.radioState == ParamRadioConfig.FIX) return "checked"; return undefined; } /** * calcule l'état du radio "paramètre à varier" */ private get radioVarCheck(): string { // console.log(this._param.symbol + " " + ParamRadioConfig[this._param.radioState]); if (this._param.radioState == ParamRadioConfig.VAR) return "checked"; return undefined; } /** * calcule l'état du radio "paramètre à calculer" */ private get radioCalCheck(): string { if (this._param.radioState == ParamRadioConfig.CAL) return "checked"; return undefined; } /** * retourne l'état du radio "paramètre à varier" sous forme booléenne */ private get isRadioVarChecked(): boolean { return this._param.radioState == ParamRadioConfig.VAR; } private get isVarRadio(): string { return this.isRadioVarChecked ? "block" : "none"; } /* * gestion des événements clic sur les radios : * envoi d'un message au composant parent * cf. https://angular.io/guide/component-interaction#parent-listens-for-child-event */ @Output() private onRadio = new EventEmitter<string>(); private onRadioClick(symbol: string, option: string) { // console.log("ParamFieldLineComponent " + symbol + " " + option); this.onRadio.emit(symbol + "_" + option); } /** * désactivation de tous les boutons radio si paramètre par défaut à "CAL" */ private get isDisabled(): boolean { return this._param.isDefault && this._param.radioState == ParamRadioConfig.CAL; } /** * désactivation du champ de saisie */ private get isInputDisabled(): boolean { return this._param.radioState != ParamRadioConfig.FIX; } }