From 5778ee5da57b337d6ae23d6730329e56cc746c10 Mon Sep 17 00:00:00 2001
From: David Dorchies <david.dorchies@irstea.fr>
Date: Wed, 18 Jul 2018 14:39:01 +0200
Subject: [PATCH] lint

---
 installation FontAwesome.md                   |  15 ---
 package.json                                  |   2 +-
 src/app/app.component.spec.ts                 |  14 +--
 src/app/app.module.ts                         | 112 +++++++++---------
 .../log-entry/log-entry.component.ts          |  10 +-
 .../vertical-result-element.component.html    |   8 +-
 .../vertical-result-element.component.ts      |  20 ++--
 .../form-iterator/deep-node-iterator.ts       |   2 +-
 .../internationalisation.service.ts           |   8 +-
 src/app/util.ts                               |   7 +-
 src/main.ts                                   |   8 +-
 src/polyfills.ts                              |   4 +-
 src/test.ts                                   |  18 +--
 13 files changed, 109 insertions(+), 119 deletions(-)
 delete mode 100644 installation FontAwesome.md

diff --git a/installation FontAwesome.md b/installation FontAwesome.md
deleted file mode 100644
index ad34a20e9..000000000
--- a/installation FontAwesome.md	
+++ /dev/null
@@ -1,15 +0,0 @@
-# Installation des icônes FontAwesome
-
-Télécharger l'archive ici :
-
-http://fontawesome.io/get-started/#modal-download
-
-Désarchiver dans src/assets. On obtient par exemple un répertoire _font-awesome-4.7.0_
-
-Dans _index.html_, ajouter dans _&lt;head&gt;_ :
-
-    <link rel="stylesheet" href="assets/font-awesome-4.7.0/css/font-awesome.css">
-
-Utiliser les icônes avec :
-
-    <i class="fa fa-ellipsis-v" aria-hidden="true"></i>
diff --git a/package.json b/package.json
index 0150ba4a3..f60580ba3 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
 {
-  "name": "ngHyd",
+  "name": "nghyd",
   "version": "1.1.0",
   "license": "MIT",
   "scripts": {
diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts
index bcbdf36b3..3a0464f0d 100644
--- a/src/app/app.component.spec.ts
+++ b/src/app/app.component.spec.ts
@@ -1,6 +1,6 @@
-import { TestBed, async } from '@angular/core/testing';
-import { AppComponent } from './app.component';
-describe('AppComponent', () => {
+import { TestBed, async } from "@angular/core/testing";
+import { AppComponent } from "./app.component";
+describe("AppComponent", () => {
   beforeEach(async(() => {
     TestBed.configureTestingModule({
       declarations: [
@@ -8,7 +8,7 @@ describe('AppComponent', () => {
       ],
     }).compileComponents();
   }));
-  it('should create the app', async(() => {
+  it("should create the app", async(() => {
     const fixture = TestBed.createComponent(AppComponent);
     const app = fixture.debugElement.componentInstance;
     expect(app).toBeTruthy();
@@ -16,12 +16,12 @@ describe('AppComponent', () => {
   it(`should have as title 'app'`, async(() => {
     const fixture = TestBed.createComponent(AppComponent);
     const app = fixture.debugElement.componentInstance;
-    expect(app.title).toEqual('app');
+    expect(app.title).toEqual("app");
   }));
-  it('should render title in a h1 tag', async(() => {
+  it("should render title in a h1 tag", async(() => {
     const fixture = TestBed.createComponent(AppComponent);
     fixture.detectChanges();
     const compiled = fixture.debugElement.nativeElement;
-    expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!');
+    expect(compiled.querySelector("h1").textContent).toContain("Welcome to app!");
   }));
 });
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 19bf8205c..e321e272c 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,74 +1,74 @@
-import { BrowserModule } from '@angular/platform-browser';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
-import { MDBBootstrapModule } from 'angular-bootstrap-md';
-import { HttpModule } from '@angular/http';
-import { FormsModule } from '@angular/forms'; // <-- NgModel lives here
-//import { MdInputModule, MdDialogModule } from '@angular/material';
-import { ChartModule } from 'angular2-chartjs';
-import { RouterModule, Routes } from '@angular/router';
-import { MarkdownModule } from 'ngx-md';
+import { BrowserModule } from "@angular/platform-browser";
+import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
+import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
+import { MDBBootstrapModule } from "angular-bootstrap-md";
+import { HttpModule } from "@angular/http";
+import { FormsModule } from "@angular/forms"; // <-- NgModel lives here
+// import { MdInputModule, MdDialogModule } from '@angular/material';
+import { ChartModule } from "angular2-chartjs";
+import { RouterModule, Routes } from "@angular/router";
+import { MarkdownModule } from "ngx-md";
 
 import { FormulaireService } from "./services/formulaire/formulaire.service";
 import { ParamService } from "./services/param/param.service";
 import { InternationalisationService } from "./services/internationalisation/internationalisation.service";
 import { HttpService } from "./services/http/http.service";
 import { ApplicationSetupService } from "./services/app-setup/app-setup.service";
-import { AppComponent } from './app.component';
-import { NgParamInputComponent } from './components/ngparam-input/ngparam-input.component';
-import { FieldSetComponent } from './components/field-set/field-set.component';
-import { FieldsetContainerComponent } from './components/fieldset-container/fieldset-container.component';
-import { ParamFieldLineComponent } from './components/param-field-line/param-field-line.component';
-import { NgParamMinComponent } from './components/param-values/ngparam-min.component';
-import { NgParamMaxComponent } from './components/param-values/ngparam-max.component';
-import { NgParamStepComponent } from './components/param-values/ngparam-step.component';
-import { ParamValuesComponent } from './components/param-values/param-values.component';
-import { ValueListComponent } from './components/param-values/value-list.component';
-import { SelectFieldLineComponent } from './components/select-field-line/select-field-line.component';
-import { CheckFieldLineComponent } from './components/check-field-line/check-field-line.component';
+import { AppComponent } from "./app.component";
+import { NgParamInputComponent } from "./components/ngparam-input/ngparam-input.component";
+import { FieldSetComponent } from "./components/field-set/field-set.component";
+import { FieldsetContainerComponent } from "./components/fieldset-container/fieldset-container.component";
+import { ParamFieldLineComponent } from "./components/param-field-line/param-field-line.component";
+import { NgParamMinComponent } from "./components/param-values/ngparam-min.component";
+import { NgParamMaxComponent } from "./components/param-values/ngparam-max.component";
+import { NgParamStepComponent } from "./components/param-values/ngparam-step.component";
+import { ParamValuesComponent } from "./components/param-values/param-values.component";
+import { ValueListComponent } from "./components/param-values/value-list.component";
+import { SelectFieldLineComponent } from "./components/select-field-line/select-field-line.component";
+import { CheckFieldLineComponent } from "./components/check-field-line/check-field-line.component";
 // import { AlertDialog } from './components/alert-dialog/alert-dialog.component';
-import { AppErrorModule } from './error.module';
-import { CalculatorResultsComponent } from './components/calculator-results/calculator-results.component';
-import { FixedVarResultsComponent } from './components/fixedvar-results/fixedvar-results.component';
-import { SectionResultsComponent } from './components/section-results/section-results.component';
-import { GenericCalculatorComponent } from './components/generic-calculator/calculator.component';
-import { CalculatorNameComponent } from './components/generic-calculator/calc-name.component';
-import { CalcCanvasComponent } from './components/canvas/canvas.component';
-import { SectionCanvasComponent } from './components/section-canvas/section-canvas.component';
-import { RemousResultsComponent } from './components/remous-results/remous-results.component';
-import { ResultsGraphComponent } from './components/results-graph/results-graph.component';
-import { GraphTypeSelectComponent } from './components/results-graph/graph-type.component';
-import { LogComponent } from './components/log/log.component';
-import { CalculatorListComponent } from './components/calculator-list/calculator-list.component';
-import { ApplicationSetupComponent } from './components/app-setup/app-setup.component';
-import { BaseParamInputComponent } from './components/base-param-input/base-param-input.component';
-import { FixedResultsComponent } from './components/fixedvar-results/fixed-results.component';
-import { VarResultsComponent } from './components/fixedvar-results/var-results.component';
-import { ResultElementBaseComponent } from './components/result-element/result-element-base.component';
-import { HorizontalResultElementComponent } from './components/result-element/horizontal-result-element.component'
-import { VerticalResultElementComponent } from './components/result-element/vertical-result-element.component';
-import { LogEntryComponent } from './components/log-entry/log-entry.component';
-import { HelpService } from './services/help/help.service';
-import { HelpComponent } from './components/help/help.component';
-import { LoadCalculatorComponent } from './components/load-calculator/load-calculator.component';
-import { LoadCalcDialogAnchorDirective } from './components/load-calculator/load-calculator-anchor.directive';
-import { SaveCalculatorComponent } from './components/save-calculator/save-calculator.component';
-import { SaveCalcDialogAnchorDirective } from './components/save-calculator/save-calculator-anchor.directive';
-import { ParamLinkComponent } from './components/param-link/param-link.component';
+import { AppErrorModule } from "./error.module";
+import { CalculatorResultsComponent } from "./components/calculator-results/calculator-results.component";
+import { FixedVarResultsComponent } from "./components/fixedvar-results/fixedvar-results.component";
+import { SectionResultsComponent } from "./components/section-results/section-results.component";
+import { GenericCalculatorComponent } from "./components/generic-calculator/calculator.component";
+import { CalculatorNameComponent } from "./components/generic-calculator/calc-name.component";
+import { CalcCanvasComponent } from "./components/canvas/canvas.component";
+import { SectionCanvasComponent } from "./components/section-canvas/section-canvas.component";
+import { RemousResultsComponent } from "./components/remous-results/remous-results.component";
+import { ResultsGraphComponent } from "./components/results-graph/results-graph.component";
+import { GraphTypeSelectComponent } from "./components/results-graph/graph-type.component";
+import { LogComponent } from "./components/log/log.component";
+import { CalculatorListComponent } from "./components/calculator-list/calculator-list.component";
+import { ApplicationSetupComponent } from "./components/app-setup/app-setup.component";
+import { BaseParamInputComponent } from "./components/base-param-input/base-param-input.component";
+import { FixedResultsComponent } from "./components/fixedvar-results/fixed-results.component";
+import { VarResultsComponent } from "./components/fixedvar-results/var-results.component";
+import { ResultElementBaseComponent } from "./components/result-element/result-element-base.component";
+import { HorizontalResultElementComponent } from "./components/result-element/horizontal-result-element.component";
+import { VerticalResultElementComponent } from "./components/result-element/vertical-result-element.component";
+import { LogEntryComponent } from "./components/log-entry/log-entry.component";
+import { HelpService } from "./services/help/help.service";
+import { HelpComponent } from "./components/help/help.component";
+import { LoadCalculatorComponent } from "./components/load-calculator/load-calculator.component";
+import { LoadCalcDialogAnchorDirective } from "./components/load-calculator/load-calculator-anchor.directive";
+import { SaveCalculatorComponent } from "./components/save-calculator/save-calculator.component";
+import { SaveCalcDialogAnchorDirective } from "./components/save-calculator/save-calculator-anchor.directive";
+import { ParamLinkComponent } from "./components/param-link/param-link.component";
 
 const appRoutes: Routes = [
-  { path: 'list', component: CalculatorListComponent },
-  { path: 'calculator/:uid', component: GenericCalculatorComponent },
-  { path: 'setup', component: ApplicationSetupComponent },
-  { path: 'help', component: HelpComponent },
-  { path: '**', component: CalculatorListComponent }
+  { path: "list", component: CalculatorListComponent },
+  { path: "calculator/:uid", component: GenericCalculatorComponent },
+  { path: "setup", component: ApplicationSetupComponent },
+  { path: "help", component: HelpComponent },
+  { path: "**", component: CalculatorListComponent }
 ];
 
 @NgModule({
   imports: [
     RouterModule.forRoot(
       appRoutes,
-      //{ enableTracing: true } // <-- debugging purposes only
+      // { enableTracing: true } // <-- debugging purposes only
       { enableTracing: false }
     ),
     BrowserModule,
diff --git a/src/app/components/log-entry/log-entry.component.ts b/src/app/components/log-entry/log-entry.component.ts
index effa2e57a..0f0fc28f7 100644
--- a/src/app/components/log-entry/log-entry.component.ts
+++ b/src/app/components/log-entry/log-entry.component.ts
@@ -1,9 +1,9 @@
 import { Component, Input, OnChanges } from "@angular/core";
 
-import { Message, MessageSeverity } from 'jalhyd';
+import { Message, MessageSeverity } from "jalhyd";
 
 import { InternationalisationService } from "../../services/internationalisation/internationalisation.service";
-import { ApplicationSetupService } from '../../services/app-setup/app-setup.service';
+import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
 
 @Component({
     selector: "log-entry",
@@ -49,14 +49,14 @@ export class LogEntryComponent implements OnChanges {
     }
 
     private get levelInfo(): boolean {
-        return this._message.getSeverity() == MessageSeverity.INFO;
+        return this._message.getSeverity() === MessageSeverity.INFO;
     }
 
     private get levelWarning(): boolean {
-        return this._message.getSeverity() == MessageSeverity.WARNING;
+        return this._message.getSeverity() === MessageSeverity.WARNING;
     }
 
     private get levelError(): boolean {
-        return this._message.getSeverity() == MessageSeverity.ERROR;
+        return this._message.getSeverity() === MessageSeverity.ERROR;
     }
 }
diff --git a/src/app/components/result-element/vertical-result-element.component.html b/src/app/components/result-element/vertical-result-element.component.html
index d71f374c6..38226ca26 100644
--- a/src/app/components/result-element/vertical-result-element.component.html
+++ b/src/app/components/result-element/vertical-result-element.component.html
@@ -4,7 +4,7 @@
 </ng-template>
 
 <td *ngIf="hasValue" class="label2">
-    {{resultLabel}}
+    {{ resultLabel }}
 </td>
 
 <td *ngIf="hasValue||hasError" [mdbTooltip]="popTemplate" [isDisabled]="tooltipDisabled" class="value2">
@@ -13,7 +13,7 @@
 
     <!-- valeur  -->
     <span *ngIf="hasValue">
-        {{resultValue}}
+        {{ resultValue }}
     </span>
 </td>
 
@@ -22,10 +22,10 @@
     <!-- résultats complémentaires -->
     <tr>
         <td class={{c.label_class}}>
-            {{r.label}}
+            {{ r.label }}
         </td>
         <td class={{c.value_class}}>
-            {{r.value}}
+            {{ r.value }}
         </td>
     </tr>
 </ng-template>
\ No newline at end of file
diff --git a/src/app/components/result-element/vertical-result-element.component.ts b/src/app/components/result-element/vertical-result-element.component.ts
index ae8f7c09c..91da58811 100644
--- a/src/app/components/result-element/vertical-result-element.component.ts
+++ b/src/app/components/result-element/vertical-result-element.component.ts
@@ -1,6 +1,6 @@
 import { Component, Input, ViewChild, TemplateRef, ViewContainerRef } from "@angular/core";
 
-import { ResultElement } from 'jalhyd';
+import { ResultElement } from "jalhyd";
 
 import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
 import { InternationalisationService } from "../../services/internationalisation/internationalisation.service";
@@ -50,14 +50,16 @@ export class VerticalResultElementComponent extends ResultElementBaseComponent {
         if (this._resultElement) {
             let i = 0;
             for (const k in this._resultElement.extraResults) {
-                const er: number = this._resultElement.extraResults[k];
-                const lblClass = (i % 2) == 0 ? "label1" : "label2";
-                const valueClass = (i % 2) == 0 ? "value1" : "value2";
-                this.vcRef.createEmbeddedView(this.trTemplate, {
-                    extraRes: { "label": this.intlService.getExtraResLabel(k), "value": this.intlService.formatResult(k, er) },
-                    classes: { "label_class": lblClass, "value_class": valueClass }
-                });
-                i++;
+                if (this._resultElement.extraResults.hasOwnProperty(k)) {
+                    const er: number = this._resultElement.extraResults[k];
+                    const lblClass = (i % 2) === 0 ? "label1" : "label2";
+                    const valueClass = (i % 2) === 0 ? "value1" : "value2";
+                    this.vcRef.createEmbeddedView(this.trTemplate, {
+                        extraRes: { "label": this.intlService.getExtraResLabel(k), "value": this.intlService.formatResult(k, er) },
+                        classes: { "label_class": lblClass, "value_class": valueClass }
+                    });
+                    i++;
+                }
             }
         }
     }
diff --git a/src/app/formulaire/form-iterator/deep-node-iterator.ts b/src/app/formulaire/form-iterator/deep-node-iterator.ts
index ad3aa95e0..cca6046a1 100644
--- a/src/app/formulaire/form-iterator/deep-node-iterator.ts
+++ b/src/app/formulaire/form-iterator/deep-node-iterator.ts
@@ -7,4 +7,4 @@ export class DeepFormulaireNodeIterator extends AbstractFormulaireNodeIterator<F
     [Symbol.iterator](): IterableIterator<FormulaireNode> {
         return this;
     }
-}
\ No newline at end of file
+}
diff --git a/src/app/services/internationalisation/internationalisation.service.ts b/src/app/services/internationalisation/internationalisation.service.ts
index de6f8f30d..c3a168c48 100644
--- a/src/app/services/internationalisation/internationalisation.service.ts
+++ b/src/app/services/internationalisation/internationalisation.service.ts
@@ -90,8 +90,10 @@ export class InternationalisationService extends Observable {
     }
 
     public setLocale(lng: string | LanguageCode) {
-        if (this._currLang !== undefined)
-            var oldLang: LanguageCode = this._currLang.code;
+        let oldLang;
+        if (this._currLang !== undefined) {
+            oldLang = this._currLang.code;
+        }
 
         if (typeof lng === "string") {
             const t: string = lng.substr(0, 2).toLowerCase();
@@ -107,7 +109,7 @@ export class InternationalisationService extends Observable {
             const is: InternationalisationService = this;
             prom.then((res) => {
                 is.notifyObservers(undefined);
-            })
+            });
         }
     }
 
diff --git a/src/app/util.ts b/src/app/util.ts
index cab3a40aa..b40e36cfe 100644
--- a/src/app/util.ts
+++ b/src/app/util.ts
@@ -1,11 +1,12 @@
 export function logObject(obj: {}, m?: string) {
     // évite le message "Value below was evaluated just now" dans le debugger de Chrome
-    if (m == undefined)
+    if (m === undefined) {
         console.log(JSON.stringify(obj));
-    else
+    } else {
         console.log(m + " " + JSON.stringify(obj));
+    }
 }
 
 export function isNumber(s: string): boolean {
-    return Number(s) != NaN;
+    return Number(s) !== NaN;
 }
diff --git a/src/main.ts b/src/main.ts
index 91ec6da5f..6373f498c 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,8 +1,8 @@
-import { enableProdMode } from '@angular/core';
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+import { enableProdMode } from "@angular/core";
+import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
 
-import { AppModule } from './app/app.module';
-import { environment } from './environments/environment';
+import { AppModule } from "./app/app.module";
+import { environment } from "./environments/environment";
 
 if (environment.production) {
   enableProdMode();
diff --git a/src/polyfills.ts b/src/polyfills.ts
index 20d40751a..42f9262d7 100644
--- a/src/polyfills.ts
+++ b/src/polyfills.ts
@@ -43,7 +43,7 @@
 
 /** Evergreen browsers require these. **/
 // Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
-import 'core-js/es7/reflect';
+import "core-js/es7/reflect";
 
 
 /**
@@ -57,7 +57,7 @@ import 'core-js/es7/reflect';
 /***************************************************************************************************
  * Zone JS is required by Angular itself.
  */
-import 'zone.js/dist/zone';  // Included with Angular CLI.
+import "zone.js/dist/zone";  // Included with Angular CLI.
 
 
 
diff --git a/src/test.ts b/src/test.ts
index cd612eeb0..71dc90df1 100644
--- a/src/test.ts
+++ b/src/test.ts
@@ -1,16 +1,16 @@
 // This file is required by karma.conf.js and loads recursively all the .spec and framework files
 
-import 'zone.js/dist/long-stack-trace-zone';
-import 'zone.js/dist/proxy.js';
-import 'zone.js/dist/sync-test';
-import 'zone.js/dist/jasmine-patch';
-import 'zone.js/dist/async-test';
-import 'zone.js/dist/fake-async-test';
-import { getTestBed } from '@angular/core/testing';
+import "zone.js/dist/long-stack-trace-zone";
+import "zone.js/dist/proxy.js";
+import "zone.js/dist/sync-test";
+import "zone.js/dist/jasmine-patch";
+import "zone.js/dist/async-test";
+import "zone.js/dist/fake-async-test";
+import { getTestBed } from "@angular/core/testing";
 import {
   BrowserDynamicTestingModule,
   platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
+} from "@angular/platform-browser-dynamic/testing";
 
 // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
 declare const __karma__: any;
@@ -25,7 +25,7 @@ getTestBed().initTestEnvironment(
   platformBrowserDynamicTesting()
 );
 // Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
+const context = require.context("./", true, /\.spec\.ts$/);
 // And load the modules.
 context.keys().map(context);
 // Finally, start Karma to run the tests.
-- 
GitLab