An error occurred while loading the file. Please try again.
-
Mathias Chouet authored63b8715c
import { Component, ViewChild, Input, Output, EventEmitter, OnChanges } from "@angular/core";
import { I18nService } from "../../services/internationalisation/internationalisation.service";
import { NgParameter, ParamRadioConfig } from "../../formulaire/ngparam";
import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component";
import { ServiceFactory } from "../../services/service-factory";
import { ParamValueMode, CalculatorType, ParallelStructure } from "jalhyd";
import { FormulaireService } from "../../services/formulaire/formulaire.service";
import { ParamLinkComponent } from "../param-link/param-link.component";
import { ParamComputedComponent } from "../param-computed/param-computed.component";
import { ParamValuesComponent } from "../param-values/param-values.component";
/**
* Sélecteur de mode pour chaque paramètre: fixé, varier, calculer, lié
*/
@Component({
selector: "param-field-line",
templateUrl: "./param-field-line.component.html",
styleUrls: [
"./param-field-line.component.scss"
]
})
export class ParamFieldLineComponent implements OnChanges {
constructor() {
this.intlService = ServiceFactory.instance.i18nService;
this._formService = ServiceFactory.instance.formulaireService;
this.valid = new EventEmitter();
this.inputChange = new EventEmitter();
}
private get uitextParamFixe() {
return this.intlService.localizeText("INFO_PARAMFIELD_PARAMFIXE");
}
private get uitextParamVarier() {
return this.intlService.localizeText("INFO_PARAMFIELD_PARAMVARIER");
}
private get uitextParamCalculer() {
return this.intlService.localizeText("INFO_PARAMFIELD_PARAMCALCULER");
}
private get uitextParamLie() {
return this.intlService.localizeText("INFO_PARAMFIELD_PARAMLIE");
}
/**
* Parameter symbol (Q, Ks, B, ...) input attribute
*/
private get symbol(): string {
return this.param.symbol;
}
// états des boutons pour l'interface
private get radioFixCheck(): string {
return this.isRadioFixChecked ? "checked" : undefined;
}
private get radioVarCheck(): string {
return this.isRadioVarChecked ? "checked" : undefined;
}
private get radioCalCheck(): string {
return this.isRadioCalChecked ? "checked" : undefined;
}
private get radioLinkCheck(): string {
return this.isRadioLinkChecked ? "checked" : undefined;
}
// états booléens des boutons
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
public get isRadioFixChecked(): boolean {
return this.param.radioState === ParamRadioConfig.FIX;
}
public get isRadioVarChecked(): boolean {
return this.param.radioState === ParamRadioConfig.VAR;
}
public get isRadioCalChecked(): boolean {
return this.param.radioState === ParamRadioConfig.CAL;
}
public get isRadioLinkChecked(): boolean {
return this.param.radioState === ParamRadioConfig.LINK;
}
/**
* validité des saisies du composant
*/
public get isValid(): boolean {
switch (this.param.radioState) {
case ParamRadioConfig.FIX:
return this._isInputValid;
case ParamRadioConfig.VAR:
return this._isRangeValid;
case ParamRadioConfig.LINK:
// at first this._paramLinkComponent is undefined until view is refreshed
return this._paramLinkComponent ? this._paramLinkComponent.isValid : true;
default:
return true;
}
}
public get formHasResults(): boolean {
return ServiceFactory.instance.formulaireService.currentFormHasResults;
}
@Input()
public param: NgParameter;
@ViewChild(NgParamInputComponent)
private _ngParamInputComponent: NgParamInputComponent;
@ViewChild(ParamComputedComponent)
private _paramComputedComponent: ParamComputedComponent;
@ViewChild(ParamValuesComponent)
private _paramValuesComponent: ParamValuesComponent;
@ViewChild(ParamLinkComponent)
private _paramLinkComponent: ParamLinkComponent;
@Output()
private valid: EventEmitter<void>;
@Output()
private inputChange: EventEmitter<void>;
/** true si la valeur saisie est valide */
private _isInputValid = false;
/** true si le min-max/liste est valide */
private _isRangeValid = true;
private intlService: I18nService;
private _formService: FormulaireService;
/*