param-field-line.component.ts 4.99 KiB
import { Component, Input, Output, DoCheck, EventEmitter } from "@angular/core";
import { ComputeNodeType, Interval } from "jalhyd";
import { InternationalisationService } from "../../services/internationalisation/internationalisation.service";
import { NgParameter, ParamRadioConfig } from "../../formulaire/ngparam";
@Component({
    selector: "param-field-line",
    templateUrl: "./param-field-line.component.html"
export class ParamFieldLineComponent {
    @Input("param")
    private _param: NgParameter;
    constructor(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");
    /**
     * Parameter symbol (Q, Ks, B, ...) input attribute
    private get symbol(): string {
        return this._param.symbol;
    /**
     * 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;
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
} /** * 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é" */ 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"; }
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
/* * 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); if (option == "var") { let v = this._param.getValue(); let i = new Interval(v / 2, v * 2); let i2 = i.intersect(this._param.interval) this._param.minValue = i2.min; this._param.maxValue = i2.max; this._param.stepValue = (this._param.maxValue - this._param.minValue) / 19; } 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; } }