From 334f51ac92cd0f171ccab83426b24ebbe09af714 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Fri, 17 Jul 2020 14:18:33 +0200
Subject: [PATCH] Use TypeScript's "Optional Chaining" syntax

---
 .../fieldset-container/fieldset-container.component.ts    | 2 +-
 .../fixedvar-results/fixedvar-results.component.ts        | 2 +-
 src/app/components/jet-results/jet-results.component.ts   | 4 ++--
 src/app/components/log/log.component.ts                   | 4 ++--
 src/app/components/pab-table/pab-table.component.ts       | 8 ++++----
 src/app/components/pb-schema/pb-schema.component.ts       | 4 ++--
 .../components/remous-results/remous-results.component.ts | 6 +++---
 src/app/formulaire/definition/form-definition.ts          | 2 +-
 src/app/formulaire/definition/form-section-parametree.ts  | 6 +++---
 src/app/formulaire/elements/select-field.ts               | 4 ++--
 10 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/src/app/components/fieldset-container/fieldset-container.component.ts b/src/app/components/fieldset-container/fieldset-container.component.ts
index 65bdb84eb..45b87262e 100644
--- a/src/app/components/fieldset-container/fieldset-container.component.ts
+++ b/src/app/components/fieldset-container/fieldset-container.component.ts
@@ -126,7 +126,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
     private updateValidity() {
         this._isValid = false;
 
-        if (this._fieldsetComponents !== undefined && this._fieldsetComponents.length > 0) {
+        if (this._fieldsetComponents?.length > 0) {
             this._isValid = this._fieldsetComponents.reduce(
                 // callback
                 (
diff --git a/src/app/components/fixedvar-results/fixedvar-results.component.ts b/src/app/components/fixedvar-results/fixedvar-results.component.ts
index eb491d2d9..04136deb5 100644
--- a/src/app/components/fixedvar-results/fixedvar-results.component.ts
+++ b/src/app/components/fixedvar-results/fixedvar-results.component.ts
@@ -192,6 +192,6 @@ export class FixedVarResultsComponent extends ResultsComponentDirective implemen
     }
 
     public get hasResults(): boolean {
-        return this._fixedResults !== undefined && this._fixedResults.hasResults;
+        return this._fixedResults?.hasResults;
     }
 }
diff --git a/src/app/components/jet-results/jet-results.component.ts b/src/app/components/jet-results/jet-results.component.ts
index 0e5c86aa3..04e068fb0 100644
--- a/src/app/components/jet-results/jet-results.component.ts
+++ b/src/app/components/jet-results/jet-results.component.ts
@@ -18,9 +18,9 @@ export class JetResultsComponent extends FixedVarResultsComponent {
 
     public get hasResults(): boolean {
         return (
-            (this._fixedResults !== undefined && this._fixedResults.hasResults)
+            (this._fixedResults?.hasResults)
             ||
-            (this._varResults !== undefined && this._varResults.hasResults)
+            (this._varResults?.hasResults)
         );
     }
 
diff --git a/src/app/components/log/log.component.ts b/src/app/components/log/log.component.ts
index 622fdd914..350e544fe 100644
--- a/src/app/components/log/log.component.ts
+++ b/src/app/components/log/log.component.ts
@@ -34,11 +34,11 @@ export class LogComponent {
     }
 
     public get hasEntries(): boolean {
-        return this._log !== undefined && this._log.messages.length !== 0;
+        return this._log?.messages?.length > 0;
     }
 
     public get messages(): Message[] {
-        return this._log.messages;
+        return this._log?.messages;
     }
 
     public set log(log: cLog) {
diff --git a/src/app/components/pab-table/pab-table.component.ts b/src/app/components/pab-table/pab-table.component.ts
index 012f8773e..b3c8934ec 100644
--- a/src/app/components/pab-table/pab-table.component.ts
+++ b/src/app/components/pab-table/pab-table.component.ts
@@ -96,7 +96,7 @@ export class PabTableComponent implements AfterViewInit, OnInit {
 
     /** returns true if the cell has an underlying model (ie. is editable) */
     public hasModel(cell: any): boolean {
-        return (cell !== undefined && cell.model !== undefined);
+        return (cell?.model !== undefined);
     }
 
     /** returns true if the cell is an editable number */
@@ -124,7 +124,7 @@ export class PabTableComponent implements AfterViewInit, OnInit {
 
     /** "title" tooltip to display in a cell */
     public cellTitle(cell: any) {
-        if (cell !== undefined && cell.title !== undefined) {
+        if (cell?.title !== undefined) {
             return cell.title;
         } else {
             return "";
@@ -132,14 +132,14 @@ export class PabTableComponent implements AfterViewInit, OnInit {
     }
 
     public rowSpan(cell: any) {
-        if (cell !== undefined && cell.rowspan) {
+        if (cell?.rowspan) {
             return cell.rowspan;
         }
         return undefined;
     }
 
     public colSpan(cell: any) {
-        if (cell !== undefined && cell.colspan) {
+        if (cell?.colspan) {
             return cell.colspan;
         }
         return undefined;
diff --git a/src/app/components/pb-schema/pb-schema.component.ts b/src/app/components/pb-schema/pb-schema.component.ts
index 735e7dea7..7a9ed20fe 100644
--- a/src/app/components/pb-schema/pb-schema.component.ts
+++ b/src/app/components/pb-schema/pb-schema.component.ts
@@ -326,11 +326,11 @@ export class PbSchemaComponent implements AfterViewInit, AfterContentInit, OnIni
         // automatic child addition when clearing children)
         if (this._selectedItem instanceof PbCloison) {
             // if no downstream connections remain, connect to river downstream
-            if (this._selectedItem.bassinAmont !== undefined && this._selectedItem.bassinAmont.cloisonsAval.length === 0) {
+            if (this._selectedItem.bassinAmont?.cloisonsAval.length === 0) {
                 this.model.addChild(new PbCloison(this._selectedItem.bassinAmont, undefined));
             }
             // if no upstream connections remain, connect to river upstream
-            if (this._selectedItem.bassinAval !== undefined && this._selectedItem.bassinAval.cloisonsAmont.length === 0) {
+            if (this._selectedItem.bassinAval?.cloisonsAmont.length === 0) {
                 this.model.addChild(new PbCloison(undefined, this._selectedItem.bassinAval));
             }
         }
diff --git a/src/app/components/remous-results/remous-results.component.ts b/src/app/components/remous-results/remous-results.component.ts
index db14a54ce..ecf98435a 100644
--- a/src/app/components/remous-results/remous-results.component.ts
+++ b/src/app/components/remous-results/remous-results.component.ts
@@ -142,7 +142,7 @@ export class RemousResultsComponent extends ResultsComponentDirective implements
     }
 
     public get hasResults(): boolean {
-        return this._remousResults !== undefined && this._remousResults.hasResults;
+        return this._remousResults?.hasResults;
     }
 
     public get hasData(): boolean {
@@ -315,7 +315,7 @@ export class RemousResultsComponent extends ResultsComponentDirective implements
         }
 
         // hauteur normale
-        if (this._remousResults.hautNormale !== undefined && this._remousResults.hautNormale.ok) {
+        if (this._remousResults.hautNormale?.ok) {
             const Yn = this._remousResults.hautNormale.vCalc;
             gr1.drawSimpleLine(Yn + ZF1, Yn + ZF2,
                 5, "#A4C537", this.uitextTirantNormal
@@ -323,7 +323,7 @@ export class RemousResultsComponent extends ResultsComponentDirective implements
         }
 
         // hauteur critique
-        if (this._remousResults.hautCritique !== undefined && this._remousResults.hautCritique.ok) {
+        if (this._remousResults.hautCritique?.ok) {
             const Yc = this._remousResults.hautCritique.vCalc;
             gr1.drawSimpleLine(Yc + ZF1, Yc + ZF2,
                 6, "#FF0000", this.uitextTirantCritique
diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts
index e70898a3a..f378eba70 100644
--- a/src/app/formulaire/definition/form-definition.ts
+++ b/src/app/formulaire/definition/form-definition.ts
@@ -379,7 +379,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs
 
     public isDisplayed(id: string) {
         const fe = <FormulaireElement>this.getFormulaireNodeById(id);
-        return fe !== undefined && fe.isDisplayed;
+        return fe?.isDisplayed;
     }
 
     /**
diff --git a/src/app/formulaire/definition/form-section-parametree.ts b/src/app/formulaire/definition/form-section-parametree.ts
index b1d6dcf4a..743880b5d 100644
--- a/src/app/formulaire/definition/form-section-parametree.ts
+++ b/src/app/formulaire/definition/form-section-parametree.ts
@@ -55,9 +55,9 @@ export class FormulaireSectionParametree extends FormulaireSection {
     }
 
     public get hasResults(): boolean {
-        return (this._fixedResults !== undefined && this._fixedResults.hasResults)
-            || (this._varResults !== undefined && this._varResults.hasResults)
-            || (this._sectionResults !== undefined && this._sectionResults.hasResults);
+        return (this._fixedResults?.hasResults)
+            || (this._varResults?.hasResults)
+            || (this._sectionResults?.hasResults);
     }
 
     public get results(): CalculatorResults[] {
diff --git a/src/app/formulaire/elements/select-field.ts b/src/app/formulaire/elements/select-field.ts
index 0cd055aea..6a0183d22 100644
--- a/src/app/formulaire/elements/select-field.ts
+++ b/src/app/formulaire/elements/select-field.ts
@@ -192,11 +192,11 @@ export class SelectField extends Field {
                 // @WARNING for localisation, @see hack in this.updateLocalisation()
                 // 1. calculated param
                 const ntc = (nub as Solveur).nubToCalculate;
-                if (ntc !== undefined && ntc.calculatedParam !== undefined) { // some nubs have no calculatedParam, for ex. SectionParam
+                if (ntc?.calculatedParam !== undefined) { // some nubs have no calculatedParam, for ex. SectionParam
                     this.addEntry(new SelectEntry(this._entriesBaseId + "none", ""));
                 }
                 // 2. extra results
-                if (ntc !== undefined && ntc.resultsFamilies !== undefined) {
+                if (ntc?.resultsFamilies !== undefined) {
                     for (const er of Object.keys(ntc.resultsFamilies)) {
                         const e: SelectEntry = new SelectEntry(this._entriesBaseId + er, er);
                         this.addEntry(e);
-- 
GitLab