An error occurred while loading the file. Please try again.
-
Grand Francois authored
paramètre à varier : proposition automatique de valeurs min/max basées sur la valeur fixée (/2 et *2) et d'un pas donnant une vingtaine de points
24a7aeb5
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;
}
}