An error occurred while loading the file. Please try again.
-
Guillaume Perréal authoredb6fbac68
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;
}
}