diff --git a/src/app/components/param-link/param-link.component.ts b/src/app/components/param-link/param-link.component.ts index e3efcd9acb9c0664f69e1272ca554fc03c1836a4..ab78d4d8553ea4845c5ba2382f74595db39e56ea 100644 --- a/src/app/components/param-link/param-link.component.ts +++ b/src/app/components/param-link/param-link.component.ts @@ -29,7 +29,17 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy { /** * liste des paramètres liables sous la forme - * {"value":<valeur liable>, "nub":<Nub d'origine du paramètre>, "formTitle":<nom de la calculette liée au nub>} + * {"name":<étiquette>, "value":<valeur liable>, "nub":<Nub d'origine du paramètre>, "formTitle":<nom de la calculette liée au nub>} + * + * l'étiquette "name" est de la forme <n|N1>[.[N2]] + * n : indice de de l'ouvrage dans le cas des ouvrages parallèles + * N1 : un nom de paramètre/résultat (dans le cas d'un résultat, il est suivi d'un point) + * N2 : nom de résultat complémentaire (optionnel) + * ex : + * Q, Z1 (paramètres) + * J. (résultat) + * .Yf (résultat complémentaire du résultat courant) + * Q.Yf (résultat complémentaire du résultat nommé "Q") */ private _linkableParams: any[]; @@ -94,9 +104,32 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy { * attribut "label" d'une entrée du select des paramètres */ private selectItemLabel(i: any) { - const s = i.value.name; - const c = i.formTitle; - return `${s} (${c})`; + const s = i.name; // nom associé au paramètre/à la valeur + const c = i.formTitle; // nom de la calculette + + const re1 = /([^\.]+)\.$/; // forme xxx. (résultat) + const match1 = re1.exec(s); + if (match1 !== null) + return `${match1[1]} (résultat de ${c})`; + + const re4 = /(\d+)\.(.+)/; // forme <nombre>.xxx (ouvrage) + const match4 = re4.exec(s); + if (match4 !== null) { + const n = +match4[1] + 1 + return `${match4[2]} (${c}, ouvrage n°${n})`; + } + + const re2 = /([^\.]+)\.(.+)/; // forme xxx.yyy (résultat complémentaire) + const match2 = re2.exec(s); + if (match2 !== null) + return `${match2[2]} (${c}, résultat complémentaire de ${match2[1]})`; + + const re3 = /^\.(.+)/; // forme .xxx (résultat complémentaire) + const match3 = re3.exec(s); + if (match3 !== null) + return `${match3[1]} (${c}, résultat complémentaire)`; + + return `${s} (${c})`; // forme simple (paramètre) } /**