param-computed.component.ts 1.67 KiB
import { Component, Input } from "@angular/core";
import { MatDialog } from "@angular/material";
import { NgParameter } from "../../formulaire/ngparam";
import { ParamCalculability, Structure } from "jalhyd";
import { DialogEditParamComputedComponent } from "../dialog-edit-param-computed/dialog-edit-param-computed.component";
@Component({
    selector: "param-computed",
    templateUrl: "./param-computed.component.html",
    styleUrls: [
        "./param-computed.component.scss"
export class ParamComputedComponent {
    @Input()
    public param: NgParameter;
    @Input()
    public title: string;
    /**
     * id de l'input, utilisé notamment pour les tests
    public get inputId() {
        let id = "calc_" + this.param.symbol;
        // if inside a nested Structure, prefix with Structure position
        // to disambiguate
        const nub = this.param.paramDefinition.parentNub;
        if (nub && nub instanceof Structure) {
            id = nub.findPositionInParent() + "_" + id;
        return id;
    constructor(
        private editInitialValueDialog: MatDialog
    ) { }
    public get isDicho() {
        return this.param.paramDefinition.calculability === ParamCalculability.DICHO;
    public get infoText() {
        return NgParameter.preview(this.param.paramDefinition);
    public openDialog() {
        // modification de la valeur initiale, sans avoir à remettre le mode de
        // paramètre sur "fixé"
        this.editInitialValueDialog.open(
            DialogEditParamComputedComponent,
                data: {
                    param: this.param