From 02d348ae6134fff5c081469de56c3d18d263991f Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Tue, 11 Feb 2020 15:24:42 +0100
Subject: [PATCH] Updated dependencies for angular 9

had to disable Ivy because of ngx-konami (issue filed)
---
 package-lock.json                             | 399 ++++++++++--------
 package.json                                  |  42 +-
 src/app/app.component.spec.ts                 |  27 --
 src/app/app.module.ts                         |   3 +-
 .../base-param-input.component.ts             |   4 +-
 .../dialog-edit-param-values.component.ts     |   6 +-
 .../fixed-results.component.ts                |   4 +-
 .../fixedvar-results.component.ts             |   4 +-
 .../fixedvar-results/results.component.ts     |   2 +-
 .../fixedvar-results/var-results.component.ts |   4 +-
 .../generic-calculator/calc-name.component.ts |   4 +-
 .../generic-input/generic-input.component.ts  |   2 +-
 .../jet-trajectory-chart.component.ts         |  10 +-
 ...rorugo-compound-results-table.component.ts |   4 +-
 .../ngparam-input/ngparam-input.component.ts  |   4 +-
 .../pab-profile-chart.component.ts            |  12 +-
 .../pab-results-table.component.ts            |   4 +-
 .../param-link/param-link.component.ts        |   2 +-
 .../remous-results.component.ts               |   8 +-
 .../results-chart/results-chart.component.ts  |  16 +-
 .../section-results.component.ts              |   4 +-
 src/tsconfig.app.json                         |   3 +
 22 files changed, 301 insertions(+), 267 deletions(-)
 delete mode 100644 src/app/app.component.spec.ts

diff --git a/package-lock.json b/package-lock.json
index bdbe4cda4..9a89f55eb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,12 +11,12 @@
       "dev": true
     },
     "@angular-devkit/architect": {
-      "version": "0.900.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.900.1.tgz",
-      "integrity": "sha512-zzB3J0fXFoYeJpgF5tsmZ7byygzjJn1IPiXBdnbNqcMbil1OPOhq+KdD4ZFPyXNwBQ3w02kOwPdNqB++jbPmlQ==",
+      "version": "0.900.2",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.900.2.tgz",
+      "integrity": "sha512-uClqp4QEY/m6CB7SsNZGdVNTEgMzkI1Fkt0TOdE9huN1iCi/0+h3nQb+NZ1vBqD2afg9EqDwIPu2KCU0p1BR2A==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.1",
+        "@angular-devkit/core": "9.0.2",
         "rxjs": "6.5.3"
       },
       "dependencies": {
@@ -32,19 +32,19 @@
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.900.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.900.1.tgz",
-      "integrity": "sha512-e1/EiNI9UAKJxI9+7KA59A15Rkx2QA86evb9iUuwxWGvIsTsN/sg/oXUZA//nTUQTAht+qWJp3I2amd/nyQZLQ==",
+      "version": "0.900.2",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.900.2.tgz",
+      "integrity": "sha512-w1FHd+Ub0YO1/Xlz+SrSxbFWbJVW0jmR++fABWreh04XHGtC8kqsqP6VY8DUYBO9PcD5JyB5uG9TBxVLVR/G/w==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.900.1",
-        "@angular-devkit/build-optimizer": "0.900.1",
-        "@angular-devkit/build-webpack": "0.900.1",
-        "@angular-devkit/core": "9.0.1",
+        "@angular-devkit/architect": "0.900.2",
+        "@angular-devkit/build-optimizer": "0.900.2",
+        "@angular-devkit/build-webpack": "0.900.2",
+        "@angular-devkit/core": "9.0.2",
         "@babel/core": "7.7.7",
         "@babel/generator": "7.7.7",
         "@babel/preset-env": "7.7.7",
-        "@ngtools/webpack": "9.0.1",
+        "@ngtools/webpack": "9.0.2",
         "ajv": "6.10.2",
         "autoprefixer": "9.7.1",
         "babel-loader": "8.0.6",
@@ -1341,9 +1341,9 @@
           }
         },
         "electron-to-chromium": {
-          "version": "1.3.348",
-          "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.348.tgz",
-          "integrity": "sha512-6O0IInybavGdYtcbI4ryF/9e3Qi8/soi6C68ELRseJuTwQPKq39uGgVVeQHG28t69Sgsky09nXBRhUiFXsZyFQ==",
+          "version": "1.3.353",
+          "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.353.tgz",
+          "integrity": "sha512-CkG24biyy9qQTQs8U2vGQaiyWSFDxAXP/UGHBveXZ1TGoWOAw+eYZXryrX0UeIMKnQjcaHx33hzYuydv98kqGQ==",
           "dev": true
         },
         "glob": {
@@ -1388,9 +1388,9 @@
           "dev": true
         },
         "node-releases": {
-          "version": "1.1.48",
-          "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz",
-          "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==",
+          "version": "1.1.49",
+          "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.49.tgz",
+          "integrity": "sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==",
           "dev": true,
           "requires": {
             "semver": "^6.3.0"
@@ -1528,9 +1528,9 @@
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.900.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.900.1.tgz",
-      "integrity": "sha512-EnIU+ogiJrUPf8+fuPE5xQ+j/qUZDZ/SmLs8XAOmvoOBpZ0vPNedrHBHCxmV+ACbCxHGmIKQ/ZL29XUYVasteg==",
+      "version": "0.900.2",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.900.2.tgz",
+      "integrity": "sha512-4jcjYKjGvUj1Q4vqQSUU0JT1LXOh7qC7vWCK+bbAsW77wAavtbKFt2mDjB2DMIRFzt9lSULi0Z+JVOD9KUzk2g==",
       "dev": true,
       "requires": {
         "loader-utils": "1.2.3",
@@ -1549,13 +1549,13 @@
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.900.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.900.1.tgz",
-      "integrity": "sha512-GwV+jht42S2XZZbvy07mXqZ5us9ppbIi/gCL5SiUh+xtSdZGbfE6RoFZXmeOuxBn9FY0vUMTFtKCK5Mx8O3WYg==",
+      "version": "0.900.2",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.900.2.tgz",
+      "integrity": "sha512-DiHUSO352NV9OcXB8cZY8gLijrUg0SIbPwrKUTjx1prZMJKa+MqWDpwhleVsM1VRyUH3qMTzhaUFmw+hqdR0BQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.900.1",
-        "@angular-devkit/core": "9.0.1",
+        "@angular-devkit/architect": "0.900.2",
+        "@angular-devkit/core": "9.0.2",
         "rxjs": "6.5.3"
       },
       "dependencies": {
@@ -1571,9 +1571,9 @@
       }
     },
     "@angular-devkit/core": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.0.1.tgz",
-      "integrity": "sha512-HboJI/x+SJD9clSOAMjHRv0eXAGRAdEaqJGmjDfdFMP2wznfsBiC6cgcHC17oM4jRWFhmWMR8Omc7CjLZJawJg==",
+      "version": "9.0.2",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.0.2.tgz",
+      "integrity": "sha512-lEmfYs7+oHmXEQ3y97QGm73zs7i6chpx+ZSaBUvMM9oCKj/lytcn+diVG+t4hMavH6TK0lai7DO1rAbYkbmdrA==",
       "dev": true,
       "requires": {
         "ajv": "6.10.2",
@@ -1607,12 +1607,12 @@
       }
     },
     "@angular-devkit/schematics": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.0.1.tgz",
-      "integrity": "sha512-Cuub9eJm1TWygKTOowRbxMASA8QWeHWzNEU2V3TqUF1Tqy/iPf4cpuMijkFysXjTn2bi2HA9t26AwQkwymbliA==",
+      "version": "9.0.2",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.0.2.tgz",
+      "integrity": "sha512-+MiSBWErz8hxcbyHioCQtTnFpbqaoCEQEknK0vCb15fFEY2Hi3u2TXK59QNKsqn8w+Mye5dHYhwmpsAC8Wcgtw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.1",
+        "@angular-devkit/core": "9.0.2",
         "ora": "4.0.2",
         "rxjs": "6.5.3"
       },
@@ -1629,9 +1629,9 @@
       }
     },
     "@angular/animations": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.0.0.tgz",
-      "integrity": "sha512-jB8+SC3vMztW5zt5UYVmtVwqIWE33UyEjbP5JPba3I3bLRK5E059LcJmN1rSdJHItgIAdG9Y1I0WJ6aiSFyp4Q=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.0.1.tgz",
+      "integrity": "sha512-R0FLhAfylFIiRArhtLOUokOAVtWCH20ocRXo6E8HHOc3fbaUS9ci3rIbFZQkaAv9RgZfKewrcV6Wa3TY905w5g=="
     },
     "@angular/cdk": {
       "version": "9.0.0",
@@ -1650,16 +1650,16 @@
       }
     },
     "@angular/cli": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.0.1.tgz",
-      "integrity": "sha512-/nykTIqZq1plxaXVoMzAqjnExGhkYoSoq88AE4Mb31d6n/SW2DFh62C3hze+atI6YLqeFaPhYuA5zG+z3oOXbQ==",
+      "version": "9.0.2",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.0.2.tgz",
+      "integrity": "sha512-ih3bnvav94MXI9YpwJ4AaETfUGwzc+S2jg4vkfYMuBeWO8kJ7Ma4f2ZriIwWyfHWHlBLHDF6OjAVdisBKPpQag==",
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.900.1",
-        "@angular-devkit/core": "9.0.1",
-        "@angular-devkit/schematics": "9.0.1",
-        "@schematics/angular": "9.0.1",
-        "@schematics/update": "0.900.1",
+        "@angular-devkit/architect": "0.900.2",
+        "@angular-devkit/core": "9.0.2",
+        "@angular-devkit/schematics": "9.0.2",
+        "@schematics/angular": "9.0.2",
+        "@schematics/update": "0.900.2",
         "@yarnpkg/lockfile": "1.1.0",
         "ansi-colors": "4.1.1",
         "debug": "^4.1.1",
@@ -1717,9 +1717,9 @@
           }
         },
         "figures": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
-          "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+          "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
           "dev": true,
           "requires": {
             "escape-string-regexp": "^1.0.5"
@@ -1866,19 +1866,19 @@
       }
     },
     "@angular/common": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.0.0.tgz",
-      "integrity": "sha512-ZMmEClGtUNJwV5CBlqcSHPIsNyz6WU/GvKWFzJ5VZc68oeg1e7lqfNMNIC47TjyolNJ7VSpNlyrKjzfdBlmqVw=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.0.1.tgz",
+      "integrity": "sha512-40jbKdCb4xi6NTzLt1kE0V/X7JxCLLo8eUEr3Z34Z9Ljnd4LC+/CkuThPdQJ3HW1Z8r5SWXj+rES+sn75YNVmA=="
     },
     "@angular/compiler": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz",
-      "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.1.tgz",
+      "integrity": "sha512-ldamsPzIx+FLT/IYBqwsFL6qbP3BDgvPQa4Y3F/gFXDsoe+VTY5qwJfhr2iLbtF+fYomwOgY2kSL42BVQL873Q=="
     },
     "@angular/compiler-cli": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.0.0.tgz",
-      "integrity": "sha512-6L3swd3Z2ceAapmioml6z7yu3bYC2aVm3/rgK7eCoZtPcevuvTpGnXcFSVvNgByV51GntgInThPbMx0xY23Rvw==",
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.0.1.tgz",
+      "integrity": "sha512-HxJAXr1TWoqVzR7pRe89UjWnu3ESJzo+gjWWtv1NtDMwUKQ2JHWmC3yp/U0URprA03Ii8lXlrZWBjps04ZIlAg==",
       "dev": true,
       "requires": {
         "canonical-path": "1.0.0",
@@ -2113,27 +2113,24 @@
       }
     },
     "@angular/core": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz",
-      "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.1.tgz",
+      "integrity": "sha512-q/3VLGM98euB/ZluSuMqvWyQb563iabRcVkC/DrHqCQMadV1ZpvuOgf8Gm092d8GY/iC4CGlTsN0wiVapMxplQ=="
     },
     "@angular/flex-layout": {
-      "version": "8.0.0-beta.27",
-      "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-8.0.0-beta.27.tgz",
-      "integrity": "sha512-qmpvQPesU4ZQ56IscwgmVRpK2UnyV+gwvXUql7TMv0QV215hLcHczjGsrKkLfW2By5E7XEyDat9br72uVXcPMw==",
-      "requires": {
-        "tslib": "^1.7.1"
-      }
+      "version": "9.0.0-beta.29",
+      "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-9.0.0-beta.29.tgz",
+      "integrity": "sha512-93sxR+kYfYMOdnlWL0Q77FZ428gg8XnBu0YZm6GsCdkw/vLggIT/G1ZAqHlCPIODt6pxmCJ5KXh4ShvniIYDsA=="
     },
     "@angular/forms": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.0.0.tgz",
-      "integrity": "sha512-SIYJc0Rgaihow1t+iiwSFGEvvRgssgUuxwIYbMfCp1Sx513K+JX9nVFXqU+dcGj/eF1u5wwYwbvlVyuMQLzmXg=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.0.1.tgz",
+      "integrity": "sha512-yzzlCslWp7IiFSYjSGNqexPmnKn9xhpT8FKzxNT0qEpQ+SieQ7apsjvMfR3TCip0Nnfus2qTh3kz1ZCaawAcjQ=="
     },
     "@angular/language-service": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.0.0.tgz",
-      "integrity": "sha512-tOMtXY8DFpTWMF77BOTXZmMMtqvdy6fbyOkJSccn6VatcPrNXOs5rKur+KNwdSlK+djjss6Y+LA8fQAvjNvUqw==",
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.0.1.tgz",
+      "integrity": "sha512-e/8CGATX7C0ElwBk6QjCfWk7A6lwikrBR1cesNu1kNwneZkiIeIel1jklbDUT0NFr4C2/FdBu2Z3GbvDeCO8Vw==",
       "dev": true
     },
     "@angular/material": {
@@ -2142,19 +2139,19 @@
       "integrity": "sha512-QxN2rmR5mvg2YE1NoIGWLpbnmcJq0iFidzy6odzvN17+XkoCJBZ65IdYsHrJgfwGpoIy6bywuixrDHHcSh9I5w=="
     },
     "@angular/platform-browser": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.0.0.tgz",
-      "integrity": "sha512-2PR/o57HjZvKEnAF8ODeqxmeC90oth9dLTMrJNoI5MET0IeErKeI/9Sl5cLQuXC+lSVN5rOMCvDb74VWSno5yw=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.0.1.tgz",
+      "integrity": "sha512-0o2aRxbQ3xZ/ZeLXajDqhrRK6vcICzdJ7GKvPgZxdohnnJ7JN1qp8U7J4aEotPqfSAde/aD2JvoDDtKZ0XIDWg=="
     },
     "@angular/platform-browser-dynamic": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.0.0.tgz",
-      "integrity": "sha512-F1kbEpmDottTemRPEOAz2Te5ABVJ7wypfzBllxqXbdxPHvYLfL8db2dXyiGqABQ3ZFHPLNilrkUTy0sbuuU4OA=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.0.1.tgz",
+      "integrity": "sha512-DslT339T+TBt4jUlXMblPR4IghXtykB+jQctm02G4AJUlvMa4b798N1oM6sD5F8NmBMa6beZ2dcRJ07f75LVBA=="
     },
     "@angular/router": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.0.0.tgz",
-      "integrity": "sha512-yyOcStpgN5t8wGRNO85mo0jplXkntP+v2tmSxNx45pahqmofSFm+QCEFa2zHQuMr7NoiGERhd0Tae7NDCCjtjA=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.0.1.tgz",
+      "integrity": "sha512-pHLDooNvXEUtjYANWtJ7fMxG9l2mDJgPphOi/S6c27U5yNf0NVk+Qh3kuuNi2hQQ5RaR4jdRyCQePD2H4g2+/g=="
     },
     "@babel/code-frame": {
       "version": "7.5.5",
@@ -2345,9 +2342,9 @@
           "dev": true
         },
         "regjsparser": {
-          "version": "0.6.2",
-          "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz",
-          "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==",
+          "version": "0.6.3",
+          "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz",
+          "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==",
           "dev": true,
           "requires": {
             "jsesc": "~0.5.0"
@@ -3783,9 +3780,9 @@
       }
     },
     "@electron/get": {
-      "version": "1.7.2",
-      "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.2.tgz",
-      "integrity": "sha512-LSE4LZGMjGS9TloDx0yO44D2UTbaeKRk+QjlhWLiQlikV6J4spgDCjb6z4YIcqmPAwNzlNCnWF4dubytwI+ATA==",
+      "version": "1.7.6",
+      "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.6.tgz",
+      "integrity": "sha512-zlNikt6ziVLNcm4lly1L4y62fJd/eYpEBjF5DiV/VAQq2vdPjH4sbUphXt9upmHz86lAhAj8g9lTnWrxJ/KBZw==",
       "dev": true,
       "requires": {
         "debug": "^4.1.1",
@@ -3838,12 +3835,12 @@
       }
     },
     "@ngtools/webpack": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.0.1.tgz",
-      "integrity": "sha512-SG1MDVSC7pIuaX1QYTh94k/YJa6w2OR2RNbghkDXToDzDv6bKnTQYoJPyXk+gwfDTVD4V5z2dKSNbxFzWleFpg==",
+      "version": "9.0.2",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.0.2.tgz",
+      "integrity": "sha512-RR18eMe4/k7y3KZ5Y3GTVQNOnJ8Jbe0Xs0q8IMNcGqldbUR878MmIl9PCc6J79stE/7WiNFQtq1L68RQi3i9/A==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.1",
+        "@angular-devkit/core": "9.0.2",
         "enhanced-resolve": "4.1.1",
         "rxjs": "6.5.3",
         "webpack-sources": "1.4.3"
@@ -3867,23 +3864,23 @@
       "dev": true
     },
     "@schematics/angular": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.0.1.tgz",
-      "integrity": "sha512-lQ8Qc697ef2jvEf1+tElAUsbOnbUAMo3dnOUVw9RlYO90pHeG3/OdWBMH1kjn3jbjuKuvCVZH3voJUUcLDx6eg==",
+      "version": "9.0.2",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.0.2.tgz",
+      "integrity": "sha512-H6ZyxLYoIN68bbNKnUjBCPtB0fcwnpIyTkqXQHa3B4HITcU3uee4PLAl3xCkTS2NGv8m/0eWND9zt5wryGf8PQ==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.1",
-        "@angular-devkit/schematics": "9.0.1"
+        "@angular-devkit/core": "9.0.2",
+        "@angular-devkit/schematics": "9.0.2"
       }
     },
     "@schematics/update": {
-      "version": "0.900.1",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.900.1.tgz",
-      "integrity": "sha512-p2xfctTtT5kMAaCTBENxi69m5IhsvdTwwwokb9zVHJYAC6D1K//q1bl30mTe6U2YE3hSPWND2S14ahXw8PyN8g==",
+      "version": "0.900.2",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.900.2.tgz",
+      "integrity": "sha512-CRDb2pax8DtSyO32b2D5uKlQZ+s5h9feD4oEMvm2zU7z/4wcoTNC0T9ols20aHYeNhKYD9FuMI3KQWlgMTPgbw==",
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "9.0.1",
-        "@angular-devkit/schematics": "9.0.1",
+        "@angular-devkit/core": "9.0.2",
+        "@angular-devkit/schematics": "9.0.2",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
         "npm-package-arg": "^7.0.0",
@@ -4011,9 +4008,9 @@
       }
     },
     "@types/jasmine": {
-      "version": "3.5.3",
-      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.3.tgz",
-      "integrity": "sha512-LRJ21f/BO4QNZ3YDaMP0OEurOfE77x8mi8MfEnUsei5IKfmZL0GKl7juhABMdUIJHhVS9OCLotKHfsFNAuJ+DA==",
+      "version": "3.5.4",
+      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.4.tgz",
+      "integrity": "sha512-Uc/obv/lRh1t6RMOV6wkiAfYSZ0AOSTJqVl0Th8bHFcDhw4rQ0L60sxVnmOJj+RXbVboAE1Fd/mBclQWARRAsQ==",
       "dev": true
     },
     "@types/jasminewd2": {
@@ -4042,9 +4039,9 @@
       "integrity": "sha512-13gmo3M2qVvjQrWNseqM3+cR6S2Ss3grbR2NZltgMq94wOwqJYQdgn8qzwDshzgXqMlSUtyPZjysImmktu22ew=="
     },
     "@types/node": {
-      "version": "12.12.26",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.26.tgz",
-      "integrity": "sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA==",
+      "version": "13.7.1",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.1.tgz",
+      "integrity": "sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==",
       "dev": true
     },
     "@types/pako": {
@@ -4992,14 +4989,14 @@
       },
       "dependencies": {
         "browserslist": {
-          "version": "4.8.6",
-          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz",
-          "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==",
+          "version": "4.8.7",
+          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz",
+          "integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==",
           "dev": true,
           "requires": {
-            "caniuse-lite": "^1.0.30001023",
-            "electron-to-chromium": "^1.3.341",
-            "node-releases": "^1.1.47"
+            "caniuse-lite": "^1.0.30001027",
+            "electron-to-chromium": "^1.3.349",
+            "node-releases": "^1.1.49"
           }
         },
         "caniuse-lite": {
@@ -5009,15 +5006,15 @@
           "dev": true
         },
         "electron-to-chromium": {
-          "version": "1.3.348",
-          "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.348.tgz",
-          "integrity": "sha512-6O0IInybavGdYtcbI4ryF/9e3Qi8/soi6C68ELRseJuTwQPKq39uGgVVeQHG28t69Sgsky09nXBRhUiFXsZyFQ==",
+          "version": "1.3.353",
+          "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.353.tgz",
+          "integrity": "sha512-CkG24biyy9qQTQs8U2vGQaiyWSFDxAXP/UGHBveXZ1TGoWOAw+eYZXryrX0UeIMKnQjcaHx33hzYuydv98kqGQ==",
           "dev": true
         },
         "node-releases": {
-          "version": "1.1.48",
-          "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz",
-          "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==",
+          "version": "1.1.49",
+          "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.49.tgz",
+          "integrity": "sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==",
           "dev": true,
           "requires": {
             "semver": "^6.3.0"
@@ -5422,9 +5419,9 @@
       "dev": true
     },
     "boolean": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz",
-      "integrity": "sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz",
+      "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==",
       "dev": true,
       "optional": true
     },
@@ -6305,9 +6302,9 @@
       }
     },
     "chownr": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
-      "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+      "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
       "dev": true
     },
     "chrome-trace-event": {
@@ -9132,14 +9129,22 @@
       "dev": true
     },
     "electron": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-8.0.0.tgz",
-      "integrity": "sha512-vBXUKRqTUq0jv1upvISdvScDDH3uCPwXj4eA5BeR3UDbJp2hOhq7eJxwjIQbfLQql98aYz4X6pSlzBnhfyQqHA==",
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-8.0.1.tgz",
+      "integrity": "sha512-kLZAQkbrAFNjQVpcHJUnjRYQNafuuWKnsdxzag5do1ewMqN0J4Pi/hPE27+5/1YAFMcbvCrPqhWIpcMsi8mKXQ==",
       "dev": true,
       "requires": {
         "@electron/get": "^1.0.1",
         "@types/node": "^12.0.12",
         "extract-zip": "^1.0.3"
+      },
+      "dependencies": {
+        "@types/node": {
+          "version": "12.12.27",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.27.tgz",
+          "integrity": "sha512-odQFl/+B9idbdS0e8IxDl2ia/LP8KZLXhV3BUeI98TrZp0uoIzQPhGd+5EtzHmT0SMOIaPd7jfz6pOHLWTtl7A==",
+          "dev": true
+        }
       }
     },
     "electron-builder": {
@@ -10510,9 +10515,9 @@
           }
         },
         "make-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
-          "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
+          "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
@@ -11458,9 +11463,9 @@
       },
       "dependencies": {
         "semver": {
-          "version": "7.1.2",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.2.tgz",
-          "integrity": "sha512-BJs9T/H8sEVHbeigqzIEo57Iu/3DG6c4QoqTfbQB3BPA4zgzAomh/Fk9E7QtjWQ8mx2dgA9YCfSF4y9k9bHNpQ==",
+          "version": "7.1.3",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
+          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
           "dev": true,
           "optional": true
         }
@@ -13621,9 +13626,9 @@
       }
     },
     "karma-jasmine": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.1.0.tgz",
-      "integrity": "sha512-IVGbC8gap5x5NNCEOsAE77ic8rZtHDt6wmO0fFC5yT5FeB8qKnGTeud2mtKyQ41xl7vZkZ7ZxKr4wMGR6tWN+A==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.1.1.tgz",
+      "integrity": "sha512-pxBmv5K7IkBRLsFSTOpgiK/HzicQT3mfFF+oHAC7nxMfYKhaYFgxOa5qjnHW4sL5rUnmdkSajoudOnnOdPyW4Q==",
       "dev": true,
       "requires": {
         "jasmine-core": "^3.5.0"
@@ -14223,7 +14228,8 @@
     "marked": {
       "version": "0.7.0",
       "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz",
-      "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg=="
+      "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==",
+      "dev": true
     },
     "matcher": {
       "version": "2.1.0",
@@ -14892,21 +14898,27 @@
       "integrity": "sha512-no/NocDjFnGw5XlNlj6LavP2YA3NxEg3eIHylU9dblkl5JgcfIEw3YntRs9/3OUSnVZGhZSNZkO35sY2AGtkoA=="
     },
     "ngx-markdown": {
-      "version": "8.2.2",
-      "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-8.2.2.tgz",
-      "integrity": "sha512-wo2M2LIiLsuLqvmpeKwk8CDiT0qkxMdyNyCeypwJRcrfkzb6qjWEycA8i9VBBXwFze+8rS2BZn1YXrdezGi/3w==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-9.0.0.tgz",
+      "integrity": "sha512-wcXMxA4Skgk9SzhfDRjihap/Kjq17jmMQiE/Ccp0bNibGaDgS5DbZiPBlMNLkp669UvjY9wVuxE4NuDtmQHS9w==",
       "requires": {
-        "@types/marked": "^0.7.0",
+        "@types/marked": "^0.7.2",
         "katex": "^0.11.0",
-        "marked": "^0.7.0",
-        "prismjs": "^1.16.0",
-        "tslib": "^1.9.0"
+        "marked": "^0.8.0",
+        "prismjs": "^1.16.0"
+      },
+      "dependencies": {
+        "marked": {
+          "version": "0.8.0",
+          "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz",
+          "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ=="
+        }
       }
     },
     "ngx-material-file-input": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ngx-material-file-input/-/ngx-material-file-input-1.1.1.tgz",
-      "integrity": "sha512-rYhBPAr7EZca6RoFWKcceV4Y4V2xH8SPAgrA/bCXgKbS/tJ+h/e9UW3jIPMWVOR/u/rbNhzuXVTuTMfSgS3klw==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/ngx-material-file-input/-/ngx-material-file-input-2.1.0.tgz",
+      "integrity": "sha512-rMCuiOFg/X0yRobAUiCWzQIjZRF8SDr5cC0mZu3beD6Pyx76rFWCFJmZU+6oIzrxkLAGbXn3TPv5x1gyijuOFw==",
       "requires": {
         "tslib": "^1.9.0"
       }
@@ -15110,9 +15122,9 @@
       }
     },
     "npm-registry-fetch": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz",
-      "integrity": "sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.3.tgz",
+      "integrity": "sha512-WGvUx0lkKFhu9MbiGFuT9nG2NpfQ+4dCJwRwwtK2HK5izJEvwDxMeUyqbuMS7N/OkpVCqDorV6rO5E4V9F8lJw==",
       "dev": true,
       "requires": {
         "JSONStream": "^1.3.4",
@@ -16481,13 +16493,28 @@
         "vendors": "^1.0.0"
       },
       "dependencies": {
+        "dot-prop": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+          "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
+          "dev": true,
+          "requires": {
+            "is-obj": "^2.0.0"
+          }
+        },
+        "is-obj": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+          "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+          "dev": true
+        },
         "postcss-selector-parser": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
-          "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
           "dev": true,
           "requires": {
-            "dot-prop": "^4.1.1",
+            "dot-prop": "^5.2.0",
             "indexes-of": "^1.0.1",
             "uniq": "^1.0.1"
           }
@@ -16566,13 +16593,28 @@
         "postcss-selector-parser": "^3.0.0"
       },
       "dependencies": {
+        "dot-prop": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+          "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
+          "dev": true,
+          "requires": {
+            "is-obj": "^2.0.0"
+          }
+        },
+        "is-obj": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+          "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+          "dev": true
+        },
         "postcss-selector-parser": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
-          "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
           "dev": true,
           "requires": {
-            "dot-prop": "^4.1.1",
+            "dot-prop": "^5.2.0",
             "indexes-of": "^1.0.1",
             "uniq": "^1.0.1"
           }
@@ -16868,9 +16910,9 @@
       "dev": true
     },
     "primeng": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/primeng/-/primeng-8.1.1.tgz",
-      "integrity": "sha512-8dP8A3qkmOvDTe97kCeFvoCk6oPNDdgMTdT4UBzhC4ua5wM7i7pjYXuKzAXm3oEFf+iSEB6WqzzfSqyZdbEA+w=="
+      "version": "9.0.0-rc.4",
+      "resolved": "https://registry.npmjs.org/primeng/-/primeng-9.0.0-rc.4.tgz",
+      "integrity": "sha512-g8XVsE7hBxtTWe4aYfF1I/27CGWTR7HFmfSKADh1hkO8A4tfQRfYkID1yo6fNd8t3xRMWYIn31nELQHgqiAe6Q=="
     },
     "printj": {
       "version": "1.1.2",
@@ -18135,9 +18177,9 @@
       }
     },
     "screenfull": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.0.1.tgz",
-      "integrity": "sha512-NgQH4KKh2V3zlj2u90l7TUcSFxr9qL/64QEvhAvCN/fu1YS39YLTBKIqZqiS3STj3QD8sN6XnsK/8jk3hRq4WA=="
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.0.2.tgz",
+      "integrity": "sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ=="
     },
     "select": {
       "version": "1.1.2",
@@ -19398,13 +19440,28 @@
         "postcss-selector-parser": "^3.0.0"
       },
       "dependencies": {
+        "dot-prop": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+          "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
+          "dev": true,
+          "requires": {
+            "is-obj": "^2.0.0"
+          }
+        },
+        "is-obj": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+          "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+          "dev": true
+        },
         "postcss-selector-parser": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
-          "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
           "dev": true,
           "requires": {
-            "dot-prop": "^4.1.1",
+            "dot-prop": "^5.2.0",
             "indexes-of": "^1.0.1",
             "uniq": "^1.0.1"
           }
@@ -19831,9 +19888,9 @@
           }
         },
         "make-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
-          "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
+          "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
diff --git a/package.json b/package.json
index 010e100c0..8527d3add 100644
--- a/package.json
+++ b/package.json
@@ -35,17 +35,17 @@
   },
   "private": true,
   "dependencies": {
-    "@angular/animations": "^9.0.0",
+    "@angular/animations": "^9.0.1",
     "@angular/cdk": "^9.0.0",
-    "@angular/common": "^9.0.0",
-    "@angular/compiler": "^9.0.0",
-    "@angular/core": "^9.0.0",
-    "@angular/flex-layout": "^8.0.0-beta.27",
-    "@angular/forms": "^9.0.0",
+    "@angular/common": "^9.0.1",
+    "@angular/compiler": "^9.0.1",
+    "@angular/core": "^9.0.1",
+    "@angular/flex-layout": "^9.0.0-beta.29",
+    "@angular/forms": "^9.0.1",
     "@angular/material": "^9.0.0",
-    "@angular/platform-browser": "^9.0.0",
-    "@angular/platform-browser-dynamic": "^9.0.0",
-    "@angular/router": "^9.0.0",
+    "@angular/platform-browser": "^9.0.1",
+    "@angular/platform-browser-dynamic": "^9.0.1",
+    "@angular/router": "^9.0.1",
     "@types/pako": "^1.0.1",
     "@types/sprintf-js": "^1.1.2",
     "angular2-chartjs": "^0.5.1",
@@ -64,33 +64,33 @@
     "mathjax": "^2.7.7",
     "mermaid": "^8.2.5",
     "ngx-konami": "^1.6.0",
-    "ngx-markdown": "^8.2.2",
-    "ngx-material-file-input": "^1.1.1",
+    "ngx-markdown": "^9.0.0",
+    "ngx-material-file-input": "^2.1.0",
     "ngx-matomo": "^0.1.4",
     "ngx-webstorage-service": "^4.1.0",
     "pako": "^1.0.11",
-    "primeng": "^8.1.1",
+    "primeng": "^9.0.0-rc.4",
     "roboto-fontface": "^0.10.0",
     "rxjs": "^6.5.4",
-    "screenfull": "^5.0.1",
+    "screenfull": "^5.0.2",
     "svg-pan-zoom": "^3.6.1",
     "tslib": "^1.10.0",
     "xlsx": "^0.15.5",
     "zone.js": "~0.10.2"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "~0.900.1",
-    "@angular/cli": "^9.0.1",
-    "@angular/compiler-cli": "^9.0.0",
-    "@angular/language-service": "^9.0.0",
+    "@angular-devkit/build-angular": "^0.900.2",
+    "@angular/cli": "^9.0.2",
+    "@angular/compiler-cli": "^9.0.1",
+    "@angular/language-service": "^9.0.1",
     "@compodoc/compodoc": "^1.1.11",
     "@types/file-saver": "^2.0.1",
-    "@types/jasmine": "^3.5.3",
+    "@types/jasmine": "^3.5.4",
     "@types/jasminewd2": "^2.0.8",
-    "@types/node": "^12.11.1",
+    "@types/node": "^13.7.1",
     "codelyzer": "^5.1.2",
     "cordova": "^9.0.0",
-    "electron": "^8.0.0",
+    "electron": "^8.0.1",
     "electron-builder": "^22.3.2",
     "fs-extra": "^8.1.0",
     "jasmine-core": "^3.5.0",
@@ -99,7 +99,7 @@
     "karma-chrome-launcher": "^3.1.0",
     "karma-cli": "~2.0.0",
     "karma-coverage-istanbul-reporter": "^2.1.1",
-    "karma-jasmine": "^3.1.0",
+    "karma-jasmine": "^3.1.1",
     "karma-jasmine-html-reporter": "^1.5.2",
     "protractor": "^5.4.3",
     "ts-node": "^8.6.2",
diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts
deleted file mode 100644
index 3a0464f0d..000000000
--- a/src/app/app.component.spec.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { TestBed, async } from "@angular/core/testing";
-import { AppComponent } from "./app.component";
-describe("AppComponent", () => {
-  beforeEach(async(() => {
-    TestBed.configureTestingModule({
-      declarations: [
-        AppComponent
-      ],
-    }).compileComponents();
-  }));
-  it("should create the app", async(() => {
-    const fixture = TestBed.createComponent(AppComponent);
-    const app = fixture.debugElement.componentInstance;
-    expect(app).toBeTruthy();
-  }));
-  it(`should have as title 'app'`, async(() => {
-    const fixture = TestBed.createComponent(AppComponent);
-    const app = fixture.debugElement.componentInstance;
-    expect(app.title).toEqual("app");
-  }));
-  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!");
-  }));
-});
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 17a81841f..8509d10d6 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -23,11 +23,12 @@ import { MatTableModule } from "@angular/material/table";
 import { MatTabsModule } from "@angular/material/tabs";
 import { MatToolbarModule } from "@angular/material/toolbar";
 import { MatTooltipModule } from "@angular/material/tooltip";
+
 import { MaterialFileInputModule } from "ngx-material-file-input";
 
 import { DragDropModule } from "@angular/cdk/drag-drop";
 
-import { TableModule } from "primeng/components/table/table";
+import { TableModule } from "primeng/table";
 import { KonamiModule } from "ngx-konami";
 import { MarkdownModule, MarkedOptions } from "ngx-markdown";
 
diff --git a/src/app/components/base-param-input/base-param-input.component.ts b/src/app/components/base-param-input/base-param-input.component.ts
index 44ea91b9b..d4b885e0f 100644
--- a/src/app/components/base-param-input/base-param-input.component.ts
+++ b/src/app/components/base-param-input/base-param-input.component.ts
@@ -5,7 +5,7 @@ import { Component, ChangeDetectorRef } from "@angular/core";
 import { Message, ParamDefinition, ParamDomain, ParamDomainValue, Observable } from "jalhyd";
 
 import { I18nService } from "../../services/internationalisation.service";
-import { GenericInputComponent } from "../generic-input/generic-input.component";
+import { GenericInputComponentDirective } from "../generic-input/generic-input.component";
 import { ServiceFactory } from "../../services/service-factory";
 import { NgParameter } from "../../formulaire/elements/ngparam";
 import { ApplicationSetupService } from "../../services/app-setup.service";
@@ -92,7 +92,7 @@ export class NgBaseParam extends Observable {
     selector: "base-param-input",
     templateUrl: "../generic-input/generic-input.component.html",
 })
-export class BaseParamInputComponent extends GenericInputComponent {
+export class BaseParamInputComponent extends GenericInputComponentDirective {
     constructor(
         intlService: I18nService,
         appSetupService: ApplicationSetupService,
diff --git a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
index 89abb4551..c8f23bbce 100644
--- a/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
+++ b/src/app/components/dialog-edit-param-values/dialog-edit-param-values.component.ts
@@ -4,7 +4,7 @@ import { FormBuilder, FormGroup, Validators } from "@angular/forms";
 
 import { I18nService } from "../../services/internationalisation.service";
 import { NgParameter } from "../../formulaire/elements/ngparam";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 
 import { sprintf } from "sprintf-js";
 
@@ -109,14 +109,14 @@ export class DialogEditParamValuesComponent implements OnInit {
                     type: "linear",
                     position: "bottom",
                     ticks: {
-                        precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                        precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                     }
                 }],
                 yAxes: [{
                     type: "linear",
                     position: "left",
                     ticks: {
-                        precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                        precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                     }
                 }]
             },
diff --git a/src/app/components/fixedvar-results/fixed-results.component.ts b/src/app/components/fixedvar-results/fixed-results.component.ts
index 0967040ba..7bf5432dd 100644
--- a/src/app/components/fixedvar-results/fixed-results.component.ts
+++ b/src/app/components/fixedvar-results/fixed-results.component.ts
@@ -5,7 +5,7 @@ import { NgParameter } from "../../formulaire/elements/ngparam";
 import { CalculatorResults } from "../../results/calculator-results";
 import { I18nService } from "../../services/internationalisation.service";
 import { FormulaireService } from "../../services/formulaire.service";
-import { ResultsComponent } from "./results.component";
+import { ResultsComponentDirective } from "./results.component";
 import { AppComponent } from "../../app.component";
 
 import { capitalize } from "jalhyd";
@@ -19,7 +19,7 @@ import { sprintf } from "sprintf-js";
         "./fixed-results.component.scss"
     ]
 })
-export class FixedResultsComponent extends ResultsComponent {
+export class FixedResultsComponent extends ResultsComponentDirective {
     /** résultats non mis en forme */
     private _fixedResults: FixedResults;
 
diff --git a/src/app/components/fixedvar-results/fixedvar-results.component.ts b/src/app/components/fixedvar-results/fixedvar-results.component.ts
index 005e9e6b4..84d2cda25 100644
--- a/src/app/components/fixedvar-results/fixedvar-results.component.ts
+++ b/src/app/components/fixedvar-results/fixedvar-results.component.ts
@@ -9,7 +9,7 @@ import { Result, cLog } from "jalhyd";
 import { NgParameter } from "../../formulaire/elements/ngparam";
 import { FixedResultsComponent } from "./fixed-results.component";
 import { VarResultsComponent } from "./var-results.component";
-import { ResultsComponent } from "./results.component";
+import { ResultsComponentDirective } from "./results.component";
 
 @Component({
     selector: "fixedvar-results",
@@ -18,7 +18,7 @@ import { ResultsComponent } from "./results.component";
         "./fixedvar-results.component.scss"
     ]
 })
-export class FixedVarResultsComponent extends ResultsComponent implements DoCheck {
+export class FixedVarResultsComponent extends ResultsComponentDirective implements DoCheck {
     /**
      * résultats non mis en forme
      */
diff --git a/src/app/components/fixedvar-results/results.component.ts b/src/app/components/fixedvar-results/results.component.ts
index c026d7782..e1829e929 100644
--- a/src/app/components/fixedvar-results/results.component.ts
+++ b/src/app/components/fixedvar-results/results.component.ts
@@ -10,7 +10,7 @@ import { Directive } from "@angular/core";
  * Base class for results components, including common features
  */
 @Directive()
-export class ResultsComponent {
+export class ResultsComponentDirective {
 
     /** max number of decimals for auto-adjusting charts axis graduations */
     public static CHARTS_AXIS_PRECISION = 10;
diff --git a/src/app/components/fixedvar-results/var-results.component.ts b/src/app/components/fixedvar-results/var-results.component.ts
index 5e612e9d9..b4f667694 100644
--- a/src/app/components/fixedvar-results/var-results.component.ts
+++ b/src/app/components/fixedvar-results/var-results.component.ts
@@ -5,7 +5,7 @@ import { MatDialog } from "@angular/material/dialog";
 import { VarResults } from "../../results/var-results";
 import { ResultElement, Message, MessageSeverity } from "jalhyd";
 import { I18nService } from "../../services/internationalisation.service";
-import { ResultsComponent } from "./results.component";
+import { ResultsComponentDirective } from "./results.component";
 import { DialogLogEntriesDetailsComponent } from "../dialog-log-entries-details/dialog-log-entries-details.component";
 import { AppComponent } from "../../app.component";
 import { longestVarParam } from "../../../app/util";
@@ -17,7 +17,7 @@ import { longestVarParam } from "../../../app/util";
         "./var-results.component.scss"
     ]
 })
-export class VarResultsComponent extends ResultsComponent {
+export class VarResultsComponent extends ResultsComponentDirective {
 
     /** size of the longest variated parameter */
     public size: number;
diff --git a/src/app/components/generic-calculator/calc-name.component.ts b/src/app/components/generic-calculator/calc-name.component.ts
index e93c1de25..a07f51b0c 100644
--- a/src/app/components/generic-calculator/calc-name.component.ts
+++ b/src/app/components/generic-calculator/calc-name.component.ts
@@ -1,5 +1,5 @@
 import { Component } from "@angular/core";
-import { GenericInputComponent } from "../generic-input/generic-input.component";
+import { GenericInputComponentDirective } from "../generic-input/generic-input.component";
 import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
 import { I18nService } from "../../services/internationalisation.service";
 import { ApplicationSetupService } from "../../services/app-setup.service";
@@ -11,7 +11,7 @@ import { ApplicationSetupService } from "../../services/app-setup.service";
         "./calc-name.component.scss"
     ]
 })
-export class CalculatorNameComponent extends GenericInputComponent {
+export class CalculatorNameComponent extends GenericInputComponentDirective {
 
     constructor(
         intlService: I18nService,
diff --git a/src/app/components/generic-input/generic-input.component.ts b/src/app/components/generic-input/generic-input.component.ts
index 8f16e6e62..4eca26ad1 100644
--- a/src/app/components/generic-input/generic-input.component.ts
+++ b/src/app/components/generic-input/generic-input.component.ts
@@ -17,7 +17,7 @@ import { ApplicationSetupService } from "../../services/app-setup.service";
  * - UI : interface utilisateur, présentation de la valeur gérée
  */
 @Directive()
-export abstract class GenericInputComponent implements OnChanges {
+export abstract class GenericInputComponentDirective implements OnChanges {
     /**
      * entité mémoire gérée
      */
diff --git a/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.ts b/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.ts
index dce9c3325..3553da411 100644
--- a/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.ts
+++ b/src/app/components/jet-trajectory-chart/jet-trajectory-chart.component.ts
@@ -3,7 +3,7 @@ import { Component, ViewChild, ChangeDetectorRef } from "@angular/core";
 import { ChartComponent } from "angular2-chartjs";
 
 import { I18nService } from "../../services/internationalisation.service";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { IYSeries } from "../../results/y-series";
 import { FixedResults } from "../../results/fixed-results";
 import { VarResults } from "../../results/var-results";
@@ -19,7 +19,7 @@ import { Jet } from "jalhyd";
         "./jet-trajectory-chart.component.scss"
     ]
 })
-export class JetTrajectoryChartComponent extends ResultsComponent {
+export class JetTrajectoryChartComponent extends ResultsComponentDirective {
 
     @ViewChild(ChartComponent)
     private chartComponent;
@@ -71,7 +71,7 @@ export class JetTrajectoryChartComponent extends ResultsComponent {
                 type: "linear",
                 position: "bottom",
                 ticks: {
-                    precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                    precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                 },
                 scaleLabel: {
                     display: true,
@@ -82,7 +82,7 @@ export class JetTrajectoryChartComponent extends ResultsComponent {
                 type: "linear",
                 position: "left",
                 ticks: {
-                    precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                    precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                 },
                 scaleLabel: {
                     display: true,
@@ -259,7 +259,7 @@ export class JetTrajectoryChartComponent extends ResultsComponent {
 
     private getYSeries(): IYSeries[] {
         const ret: IYSeries[] = [];
-        const palette = ResultsComponent.distinctColors;
+        const palette = ResultsComponentDirective.distinctColors;
         const nub = (this._results.result.sourceNub as Jet);
         const trajectories = nub.generateTrajectories();
 
diff --git a/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts b/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts
index dc012b211..4d45082aa 100644
--- a/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts
+++ b/src/app/components/macrorugo-compound-results/macrorugo-compound-results-table.component.ts
@@ -4,7 +4,7 @@ import { MacroRugo } from "jalhyd";
 
 import { ApplicationSetupService } from "../../services/app-setup.service";
 import { I18nService } from "../../services/internationalisation.service";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { MacrorugoCompoundResults } from "../../results/macrorugo-compound-results";
 import { AppComponent } from "../../app.component";
 
@@ -15,7 +15,7 @@ import { AppComponent } from "../../app.component";
         "./macrorugo-compound-results-table.component.scss"
     ]
 })
-export class MacrorugoCompoundResultsTableComponent extends ResultsComponent {
+export class MacrorugoCompoundResultsTableComponent extends ResultsComponentDirective {
 
     /** résultats non mis en forme */
     private _mrcResults: MacrorugoCompoundResults;
diff --git a/src/app/components/ngparam-input/ngparam-input.component.ts b/src/app/components/ngparam-input/ngparam-input.component.ts
index a9608f9cd..81db20827 100644
--- a/src/app/components/ngparam-input/ngparam-input.component.ts
+++ b/src/app/components/ngparam-input/ngparam-input.component.ts
@@ -6,7 +6,7 @@ import { Message, Observer } from "jalhyd";
 
 import { I18nService } from "../../services/internationalisation.service";
 import { NgParameter } from "../../formulaire/elements/ngparam";
-import { GenericInputComponent } from "../generic-input/generic-input.component";
+import { GenericInputComponentDirective } from "../generic-input/generic-input.component";
 import { ApplicationSetupService } from "../../services/app-setup.service";
 
 @Component({
@@ -16,7 +16,7 @@ import { ApplicationSetupService } from "../../services/app-setup.service";
         "./ngparam-input.component.scss"
     ]
 })
-export class NgParamInputComponent extends GenericInputComponent implements Observer, OnDestroy {
+export class NgParamInputComponent extends GenericInputComponentDirective implements Observer, OnDestroy {
     /**
      * paramètre géré
      */
diff --git a/src/app/components/pab-profile-chart/pab-profile-chart.component.ts b/src/app/components/pab-profile-chart/pab-profile-chart.component.ts
index b559d9b74..25dd4bfbb 100644
--- a/src/app/components/pab-profile-chart/pab-profile-chart.component.ts
+++ b/src/app/components/pab-profile-chart/pab-profile-chart.component.ts
@@ -3,7 +3,7 @@ import { Component, ViewChild, ChangeDetectorRef } from "@angular/core";
 import { ChartComponent } from "angular2-chartjs";
 
 import { I18nService } from "../../services/internationalisation.service";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { PabResults } from "../../results/pab-results";
 import { IYSeries } from "../../results/y-series";
 import { fv, longestVarParam } from "../../util";
@@ -20,7 +20,7 @@ import { sprintf } from "sprintf-js";
         "./pab-profile-chart.component.scss"
     ]
 })
-export class PabProfileChartComponent extends ResultsComponent {
+export class PabProfileChartComponent extends ResultsComponentDirective {
 
     @ViewChild(ChartComponent)
     private chartComponent;
@@ -73,7 +73,7 @@ export class PabProfileChartComponent extends ResultsComponent {
                 type: "linear",
                 position: "bottom",
                 ticks: {
-                    precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                    precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                 },
                 scaleLabel: {
                     display: true,
@@ -84,7 +84,7 @@ export class PabProfileChartComponent extends ResultsComponent {
                 type: "linear",
                 position: "left",
                 ticks: {
-                    precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                    precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                 },
                 scaleLabel: {
                     display: true,
@@ -326,7 +326,7 @@ export class PabProfileChartComponent extends ResultsComponent {
             color: "#808080"
         });
         // add devices series with a different point style for each
-        const psPalette = ResultsComponent.distinctPointStyles;
+        const psPalette = ResultsComponentDirective.distinctPointStyles;
         for (let ddi = 0; ddi < ddSeries.length; ddi++) {
             const ds = ddSeries[ddi];
             // series might have no eligible device, thus no point at all
@@ -342,7 +342,7 @@ export class PabProfileChartComponent extends ResultsComponent {
 
         // 2. séries
         const nbSeries = this._results.cloisonsResults[0].resultElements.length;
-        const palette = ResultsComponent.distinctColors;
+        const palette = ResultsComponentDirective.distinctColors;
 
         seriesLoop:
         for (let n = 0; n < nbSeries; n++) {
diff --git a/src/app/components/pab-results/pab-results-table.component.ts b/src/app/components/pab-results/pab-results-table.component.ts
index c70e8db2c..8fb591b99 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -4,7 +4,7 @@ import { CloisonAval, Result } from "jalhyd";
 
 import { PabResults } from "../../results/pab-results";
 import { I18nService } from "../../services/internationalisation.service";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { AppComponent } from "../../app.component";
 import { fv } from "../../util";
 
@@ -15,7 +15,7 @@ import { fv } from "../../util";
         "./pab-results-table.component.scss"
     ]
 })
-export class PabResultsTableComponent extends ResultsComponent {
+export class PabResultsTableComponent extends ResultsComponentDirective {
 
     /** résultats non mis en forme */
     private _pabResults: PabResults;
diff --git a/src/app/components/param-link/param-link.component.ts b/src/app/components/param-link/param-link.component.ts
index c2463904a..565638b45 100644
--- a/src/app/components/param-link/param-link.component.ts
+++ b/src/app/components/param-link/param-link.component.ts
@@ -28,7 +28,7 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
     /**
      * événement signalant un changement de valeur du modèle
      * @TODO l'utiliser aussi pour le changement de validité à
-     * la place de this.valid, comme dans GenericInputComponent
+     * la place de this.valid, comme dans GenericInputComponentDirective
      */
     @Output()
     protected change = new EventEmitter<any>();
diff --git a/src/app/components/remous-results/remous-results.component.ts b/src/app/components/remous-results/remous-results.component.ts
index 1fe9ff11f..78a522357 100644
--- a/src/app/components/remous-results/remous-results.component.ts
+++ b/src/app/components/remous-results/remous-results.component.ts
@@ -8,7 +8,7 @@ import { RemousResults } from "../../results/remous-results";
 import { CalculatorResults } from "../../results/calculator-results";
 import { VarResultsComponent } from "../fixedvar-results/var-results.component";
 import { FormulaireService } from "../../services/formulaire.service";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { AppComponent } from "../../app.component";
 import { LineData, ChartData } from "./line-and-chart-data";
 import { fv } from "../../util";
@@ -20,7 +20,7 @@ import { fv } from "../../util";
         "./remous-results.component.scss"
     ]
 })
-export class RemousResultsComponent extends ResultsComponent implements DoCheck {
+export class RemousResultsComponent extends ResultsComponentDirective implements DoCheck {
 
     private _remousResults: RemousResults;
 
@@ -447,7 +447,7 @@ export class RemousResultsComponent extends ResultsComponent implements DoCheck
                         offsetGridLines: true
                     },
                     ticks: {
-                        precision: ResultsComponent.CHARTS_AXIS_PRECISION,
+                        precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION,
                         callback: function(value, index, values) {
                             return fv(Number(value));
                         }
@@ -494,7 +494,7 @@ export class RemousResultsComponent extends ResultsComponent implements DoCheck
                             labelString: this.uitextAbscisse
                         },
                         ticks: {
-                            precision: ResultsComponent.CHARTS_AXIS_PRECISION,
+                            precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION,
                             callback: function(value, index, values) {
                                 return fv(Number(value));
                             }
diff --git a/src/app/components/results-chart/results-chart.component.ts b/src/app/components/results-chart/results-chart.component.ts
index b23387741..9f58df172 100644
--- a/src/app/components/results-chart/results-chart.component.ts
+++ b/src/app/components/results-chart/results-chart.component.ts
@@ -8,7 +8,7 @@ import { ChartTypeSelectComponent } from "./chart-type.component";
 import { I18nService } from "../../services/internationalisation.service";
 import { PlottableData } from "../../results/plottable-data";
 import { ChartType } from "../../results/chart-type";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { IYSeries } from "../../results/y-series";
 import { VarResults } from "../../results/var-results";
 import { fv } from "../../util";
@@ -21,7 +21,7 @@ import { AppComponent } from "../../app.component";
         "./results-chart.component.scss"
     ]
 })
-export class ResultsChartComponent extends ResultsComponent implements AfterContentInit, Observer {
+export class ResultsChartComponent extends ResultsComponentDirective implements AfterContentInit, Observer {
 
     @ViewChild(ChartComponent)
     private chartComponent;
@@ -242,7 +242,7 @@ export class ResultsChartComponent extends ResultsComponent implements AfterCont
                     offsetGridLines: true
                 },
                 ticks: {
-                    precision: ResultsComponent.CHARTS_AXIS_PRECISION,
+                    precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION,
                     callback: function(value, index, values) {
                         return fv(Number(value));
                     }
@@ -292,7 +292,7 @@ export class ResultsChartComponent extends ResultsComponent implements AfterCont
             datasets: [{
                 label: "",
                 data: dat,
-                backgroundColor: "rgba(0, 58, 128, 0.5)", // ResultsComponent.distinctColors[0] with transparency
+                backgroundColor: "rgba(0, 58, 128, 0.5)", // ResultsComponentDirective.distinctColors[0] with transparency
                 showLine: "true"
             }]
         };
@@ -306,7 +306,7 @@ export class ResultsChartComponent extends ResultsComponent implements AfterCont
         this.generateBarChart();
         // override style
         this.graph_data.datasets[0].backgroundColor = "rgba(0,0,0,0)";  // fill color under the line : transparent
-        this.graph_data.datasets[0].borderColor = ResultsComponent.distinctColors[0];
+        this.graph_data.datasets[0].borderColor = ResultsComponentDirective.distinctColors[0];
         this.graph_data.datasets[0].showLine = false;
     }
 
@@ -338,7 +338,7 @@ export class ResultsChartComponent extends ResultsComponent implements AfterCont
                 type: "linear",
                 position: "bottom",
                 ticks: {
-                    precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                    precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                 },
                 scaleLabel: {
                     display: true,
@@ -349,7 +349,7 @@ export class ResultsChartComponent extends ResultsComponent implements AfterCont
                 type: "linear",
                 position: "left",
                 ticks: {
-                    precision: ResultsComponent.CHARTS_AXIS_PRECISION
+                    precision: ResultsComponentDirective.CHARTS_AXIS_PRECISION
                 },
                 scaleLabel: {
                     display: true,
@@ -415,7 +415,7 @@ export class ResultsChartComponent extends ResultsComponent implements AfterCont
      */
     private getYSeries(symbol: string): IYSeries[] {
         const ret: IYSeries[] = [];
-        const palette = ResultsComponent.distinctColors;
+        const palette = ResultsComponentDirective.distinctColors;
         const xSeries = this._results.getValuesSeries(this.chartX);
         let symbols: string[];
 
diff --git a/src/app/components/section-results/section-results.component.ts b/src/app/components/section-results/section-results.component.ts
index 394a1c87e..aacaaedd8 100644
--- a/src/app/components/section-results/section-results.component.ts
+++ b/src/app/components/section-results/section-results.component.ts
@@ -5,7 +5,7 @@ import { ResultElement } from "jalhyd";
 import { SectionCanvasComponent } from "../section-canvas/section-canvas.component";
 import { SectionResults } from "../../results/section-results";
 import { CalculatorResults } from "../../results/calculator-results";
-import { ResultsComponent } from "../fixedvar-results/results.component";
+import { ResultsComponentDirective } from "../fixedvar-results/results.component";
 import { I18nService } from "../../services/internationalisation.service";
 import { AppComponent } from "../../app.component";
 
@@ -16,7 +16,7 @@ import { AppComponent } from "../../app.component";
         "./section-results.component.scss"
     ]
 })
-export class SectionResultsComponent extends ResultsComponent implements DoCheck {
+export class SectionResultsComponent extends ResultsComponentDirective implements DoCheck {
 
     constructor(
         private intlService: I18nService,
diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json
index 88b59472c..9234a4d85 100644
--- a/src/tsconfig.app.json
+++ b/src/tsconfig.app.json
@@ -6,6 +6,9 @@
     "types": [ "node" ],
     "typeRoots": [ "../node_modules/@types" ]
   },
+  "angularCompilerOptions": {
+    "enableIvy": false
+  },
   "files": [
     "main.ts",
     "polyfills.ts"
-- 
GitLab