From 408ab7ea2017521d326a1ddc6e20a410cd5ef8a4 Mon Sep 17 00:00:00 2001
From: Yusuf Sholeh <muhammad.yusuf62@ui.ac.id>
Date: Mon, 9 Dec 2019 14:28:09 +0700
Subject: [PATCH] refactor: remove duplicate lines

---
 assets/js/ProfileHandler.jsx |   8 ++-
 assets/js/ProfilePage.jsx    |  26 +-------
 package-lock.json            | 118 ++++++++++++++++++-----------------
 3 files changed, 69 insertions(+), 83 deletions(-)

diff --git a/assets/js/ProfileHandler.jsx b/assets/js/ProfileHandler.jsx
index 40cb8ae4..9f9feba8 100644
--- a/assets/js/ProfileHandler.jsx
+++ b/assets/js/ProfileHandler.jsx
@@ -12,6 +12,11 @@ export default class ProfileHandler extends React.Component {
             'Pastikan link github yang anda tulis benar.(Berpola : https://github.com/<username>',
         );
         } else {
+            this.submitForm();
+        }
+    };
+
+    submitForm = () => {
         const submitForm = {};
         Object.keys(this.state.form).forEach((key) => {
             if (this.state.form[key] !== '') {
@@ -37,8 +42,7 @@ export default class ProfileHandler extends React.Component {
             this.modalAlert.open('Pembaharuan profil gagal', Dumper.dump(r));
             }),
         );
-        }
-    };
+    }
 
     handleFile = (e) => {
         const { form } = this.state;
diff --git a/assets/js/ProfilePage.jsx b/assets/js/ProfilePage.jsx
index c45c9997..27d46a27 100755
--- a/assets/js/ProfilePage.jsx
+++ b/assets/js/ProfilePage.jsx
@@ -253,31 +253,7 @@ export default class ProfilePage extends ProfileHandler {
       return;
     }
     {
-      const submitForm = {};
-      Object.keys(this.state.form).forEach((key) => {
-        if (this.state.form[key] !== '') {
-          submitForm[key] = this.state.form[key];
-        }
-      });
-      this.setState({ loading: true });
-      Server.submit(
-        `/students/${this.state.id}/profile/`,
-        submitForm,
-        'PATCH',
-      ).then(
-        () => {
-          this.setState({ loading: false });
-          this.modalAlert.open(
-            'Profil berhasil diperbaharui',
-            'Silakan periksa kembali profil anda',
-            this.getProfile,
-          );
-        },
-        (error) => error.then((r) => {
-          this.setState({ loading: false });
-          this.modalAlert.open('Pembaharuan profil gagal', Dumper.dump(r));
-        }),
-      );
+      this.submitForm();
     }
   };
 
diff --git a/package-lock.json b/package-lock.json
index 3cdd3917..a1607e7c 100755
--- a/package-lock.json
+++ b/package-lock.json
@@ -89,6 +89,7 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -1749,7 +1750,7 @@
     "@babel/plugin-proposal-do-expressions": {
       "version": "7.6.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.6.0.tgz",
-      "integrity": "sha512-qJDaoBDbLySwU1tG0jbAomOwz8W1PEiiiK0iLQAnHLr4PYIMVX4ltDGkj3uAKx4HDs1WJ0tozGW1zAQjuTIiWg==",
+      "integrity": "sha1-GSlT/thiDRPRKmH2je/Sb0EFkZM=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1769,7 +1770,7 @@
     "@babel/plugin-proposal-export-default-from": {
       "version": "7.5.2",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz",
-      "integrity": "sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg==",
+      "integrity": "sha1-LArC3MNuOyRD/q0sPF/HlvsbUUU=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1779,7 +1780,7 @@
     "@babel/plugin-proposal-export-namespace-from": {
       "version": "7.5.2",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.5.2.tgz",
-      "integrity": "sha512-TKUdOL07anjZEbR1iSxb5WFh810KyObdd29XLFLGo1IDsSuGrjH3ouWSbAxHNmrVKzr9X71UYl2dQ7oGGcRp0g==",
+      "integrity": "sha1-zNXtBbBtcAaI/x2wGp3ScVXg0qA=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1800,7 +1801,7 @@
     "@babel/plugin-proposal-json-strings": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz",
-      "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==",
+      "integrity": "sha1-Vo7MRGxhSK5rJn8CVREwiR4p8xc=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1810,7 +1811,7 @@
     "@babel/plugin-proposal-logical-assignment-operators": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.2.0.tgz",
-      "integrity": "sha512-0w797xwdPXKk0m3Js74hDi0mCTZplIu93MOSfb1ZLd/XFe3abWypx1QknVk0J+ohnsjYpvjH4Gwfo2i3RicB6Q==",
+      "integrity": "sha1-ilzqbEKnyHRGlZ4C//X60BLFb1c=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1820,7 +1821,7 @@
     "@babel/plugin-proposal-nullish-coalescing-operator": {
       "version": "7.4.4",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.4.4.tgz",
-      "integrity": "sha512-Amph7Epui1Dh/xxUxS2+K22/MUi6+6JVTvy3P58tja3B6yKTSjwwx0/d83rF7551D6PVSSoplQb8GCwqec7HRw==",
+      "integrity": "sha1-QcNg1ZSB2I4M46P4N98QEhp2mzk=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1830,7 +1831,7 @@
     "@babel/plugin-proposal-numeric-separator": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.2.0.tgz",
-      "integrity": "sha512-DohMOGDrZiMKS7LthjUZNNcWl8TAf5BZDwZAH4wpm55FuJTHgfqPGdibg7rZDmont/8Yg0zA03IgT6XLeP+4sg==",
+      "integrity": "sha1-ZGhU2vTNIv1nM/YHYBOpNjEEQ6w=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1860,7 +1861,7 @@
     "@babel/plugin-proposal-optional-chaining": {
       "version": "7.6.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz",
-      "integrity": "sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg==",
+      "integrity": "sha1-6b8fm5uhDHfAMwgtp18Gg4kEGvg=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1870,7 +1871,7 @@
     "@babel/plugin-proposal-pipeline-operator": {
       "version": "7.5.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.5.0.tgz",
-      "integrity": "sha512-HFYuu/yGnkn69ligXxU0ohOVvQDsMNOUJs/c4PYLUVS6ntCYOyGmRQQaSYJARJ9rvc7/ulZKIzxd4wk91hN63A==",
+      "integrity": "sha1-QQDsVe9PakwkkLX1pPKiLfonLAY=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1880,7 +1881,7 @@
     "@babel/plugin-proposal-throw-expressions": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.2.0.tgz",
-      "integrity": "sha512-adsydM8DQF4i5DLNO4ySAU5VtHTPewOtNBV3u7F4lNMPADFF9bWQ+iDtUUe8+033cYCUz+bFlQdXQJmJOwoLpw==",
+      "integrity": "sha1-LZ5FLTcPE5AA5R22XQqF3GDGRzk=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0",
@@ -1927,7 +1928,7 @@
     "@babel/plugin-syntax-dynamic-import": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
-      "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
+      "integrity": "sha1-acFZ/69JmBIhYa2OvF5tH1XfhhI=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0"
@@ -1963,7 +1964,7 @@
     "@babel/plugin-syntax-import-meta": {
       "version": "7.2.0",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.2.0.tgz",
-      "integrity": "sha512-Hq6kFSZD7+PHkmBN8bCpHR6J8QEoCuEV/B38AIQscYjgMZkGlXB7cHNFzP5jR4RCh5545yP1ujHdmO7hAgKtBA==",
+      "integrity": "sha1-IzPvS4dVU6O80ek/jrwJ9bkhOkA=",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.0.0"
@@ -3067,7 +3068,7 @@
     "ajv": {
       "version": "6.10.2",
       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
-      "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+      "integrity": "sha1-086gTWsBeyiUrWkED+yLYj60vVI=",
       "requires": {
         "fast-deep-equal": "^2.0.1",
         "fast-json-stable-stringify": "^2.0.0",
@@ -3349,7 +3350,7 @@
     "axios": {
       "version": "0.19.0",
       "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
-      "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
+      "integrity": "sha1-jgm/89kSLhM/e4EByPvdAO09Krg=",
       "requires": {
         "follow-redirects": "1.5.10",
         "is-buffer": "^2.0.2"
@@ -3366,7 +3367,7 @@
         "follow-redirects": {
           "version": "1.5.10",
           "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
-          "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
+          "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=",
           "requires": {
             "debug": "=3.1.0"
           }
@@ -3374,7 +3375,7 @@
         "is-buffer": {
           "version": "2.0.4",
           "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
-          "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
+          "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM="
         }
       }
     },
@@ -3428,7 +3429,7 @@
     "babel-eslint": {
       "version": "10.0.3",
       "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz",
-      "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==",
+      "integrity": "sha1-gaLGab4PIF4ZRi/tJILTPkaHqIo=",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
@@ -3442,7 +3443,7 @@
         "resolve": {
           "version": "1.12.0",
           "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
-          "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+          "integrity": "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=",
           "dev": true,
           "requires": {
             "path-parse": "^1.0.6"
@@ -3489,7 +3490,7 @@
     "babel-loader": {
       "version": "8.0.6",
       "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz",
-      "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==",
+      "integrity": "sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs=",
       "dev": true,
       "requires": {
         "find-cache-dir": "^2.0.0",
@@ -3516,7 +3517,7 @@
         "loader-utils": {
           "version": "1.2.3",
           "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
-          "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+          "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=",
           "dev": true,
           "requires": {
             "big.js": "^5.2.2",
@@ -3533,7 +3534,7 @@
         "pify": {
           "version": "4.0.1",
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
-          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
           "dev": true
         }
       }
@@ -4512,7 +4513,7 @@
     "compression-webpack-plugin": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-3.0.0.tgz",
-      "integrity": "sha512-ls+oKw4eRbvaSv/hj9NmctihhBcR26j76JxV0bLRLcWhrUBdQFgd06z/Kgg7exyQvtWWP484wZxs0gIUX3NO0Q==",
+      "integrity": "sha1-CX0uTZXDoUy1yO0giZAJq1ubvKA=",
       "requires": {
         "cacache": "^11.2.0",
         "find-cache-dir": "^3.0.0",
@@ -4525,7 +4526,7 @@
         "cacache": {
           "version": "11.3.3",
           "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
-          "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
+          "integrity": "sha1-i9Kd+ManGKbr0tAQ2k15cq47utw=",
           "requires": {
             "bluebird": "^3.5.5",
             "chownr": "^1.1.1",
@@ -4546,7 +4547,7 @@
         "find-cache-dir": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz",
-          "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==",
+          "integrity": "sha1-zUt92Xtxhbfhfb/i1uQRXuPuuPw=",
           "requires": {
             "commondir": "^1.0.1",
             "make-dir": "^3.0.0",
@@ -5768,7 +5769,7 @@
     "eslint-config-airbnb": {
       "version": "18.0.1",
       "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz",
-      "integrity": "sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ==",
+      "integrity": "sha1-o6dMwptGQTtglpZQJTgd+PuQhVk=",
       "dev": true,
       "requires": {
         "eslint-config-airbnb-base": "^14.0.0",
@@ -5898,7 +5899,7 @@
     "eslint-plugin-jsx-a11y": {
       "version": "6.2.3",
       "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
-      "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
+      "integrity": "sha1-uHKgnV3lGvcKl9se6n3JMwQ3CKo=",
       "dev": true,
       "requires": {
         "@babel/runtime": "^7.4.5",
@@ -5915,7 +5916,7 @@
     "eslint-plugin-react": {
       "version": "7.16.0",
       "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz",
-      "integrity": "sha512-GacBAATewhhptbK3/vTP09CbFrgUJmBSaaRcWdbQLFvUZy9yVcQxigBNHGPU/KE2AyHpzj3AWXpxoMTsIDiHug==",
+      "integrity": "sha1-mSjk8+ISLtO6altW0DA7o+QdjAk=",
       "dev": true,
       "requires": {
         "array-includes": "^3.0.3",
@@ -5932,7 +5933,7 @@
         "doctrine": {
           "version": "2.1.0",
           "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
-          "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+          "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=",
           "dev": true,
           "requires": {
             "esutils": "^2.0.2"
@@ -5941,7 +5942,7 @@
         "resolve": {
           "version": "1.12.0",
           "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
-          "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+          "integrity": "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=",
           "dev": true,
           "requires": {
             "path-parse": "^1.0.6"
@@ -5952,7 +5953,7 @@
     "eslint-plugin-react-hooks": {
       "version": "1.7.0",
       "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz",
-      "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA=="
+      "integrity": "sha1-YhC21aNyBfC5KFj4laToJwIKfQQ="
     },
     "eslint-scope": {
       "version": "4.0.3",
@@ -5988,7 +5989,7 @@
     "eslint-watch": {
       "version": "6.0.1",
       "resolved": "https://registry.npmjs.org/eslint-watch/-/eslint-watch-6.0.1.tgz",
-      "integrity": "sha512-tWT6gQQWzGVn4KMs6ZAdG+nkNNQHg+c6wGdw/mwhp+jWyA7OWEOLxQnRhrP34ddJjpgDafhHOHBNtpVOtXXv4g==",
+      "integrity": "sha1-4Jg5FlinwUjeyhcq0glQZa2gU1k=",
       "dev": true,
       "requires": {
         "chokidar": "^3.1.1",
@@ -6008,7 +6009,7 @@
         "core-js": {
           "version": "3.2.1",
           "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz",
-          "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==",
+          "integrity": "sha1-zUHzhTTabMWffbBQ/mcwfemGiwk=",
           "dev": true
         },
         "cross-spawn": {
@@ -6025,7 +6026,7 @@
         "debug": {
           "version": "4.1.1",
           "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=",
           "dev": true,
           "requires": {
             "ms": "^2.1.1"
@@ -6034,7 +6035,7 @@
         "execa": {
           "version": "2.1.0",
           "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz",
-          "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==",
+          "integrity": "sha1-5dPs2DfSpg7FDz2nj9OXZ3R7vpk=",
           "dev": true,
           "requires": {
             "cross-spawn": "^7.0.0",
@@ -6853,11 +6854,13 @@
         },
         "balanced-match": {
           "version": "1.0.0",
-          "bundled": true
+          "bundled": true,
+          "optional": true
         },
         "brace-expansion": {
           "version": "1.1.11",
           "bundled": true,
+          "optional": true,
           "requires": {
             "balanced-match": "^1.0.0",
             "concat-map": "0.0.1"
@@ -6875,7 +6878,8 @@
         },
         "concat-map": {
           "version": "0.0.1",
-          "bundled": true
+          "bundled": true,
+          "optional": true
         },
         "console-control-strings": {
           "version": "1.1.0",
@@ -7007,13 +7011,15 @@
         "minimatch": {
           "version": "3.0.4",
           "bundled": true,
+          "optional": true,
           "requires": {
             "brace-expansion": "^1.1.7"
           }
         },
         "minimist": {
           "version": "0.0.8",
-          "bundled": true
+          "bundled": true,
+          "optional": true
         },
         "minipass": {
           "version": "2.3.5",
@@ -8546,7 +8552,7 @@
     "istanbul-instrumenter-loader": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
-      "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==",
+      "integrity": "sha1-mVe9WSUrNz+uXFK3tRiOb94qCUk=",
       "dev": true,
       "requires": {
         "convert-source-map": "^1.5.0",
@@ -8597,7 +8603,7 @@
         "loader-utils": {
           "version": "1.2.3",
           "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
-          "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+          "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=",
           "dev": true,
           "requires": {
             "big.js": "^5.2.2",
@@ -8912,7 +8918,7 @@
     "karma-chrome-launcher": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz",
-      "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==",
+      "integrity": "sha1-gFpYZ5mk0F9OVPcqIEl58/MGZzg=",
       "dev": true,
       "requires": {
         "which": "^1.2.1"
@@ -8932,7 +8938,7 @@
     "karma-coverage": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.1.tgz",
-      "integrity": "sha512-SnFkHsnLsaXfxkey51rRN9JDLAEKYW2Lb0qOEvcruukk0NkSNDkjobNDZPt9Ni3kIhLZkLtpGOz661hN7OaZvQ==",
+      "integrity": "sha1-8CTxkfDxNd7iQDdjrDbMUqrCeaw=",
       "dev": true,
       "requires": {
         "dateformat": "^1.0.6",
@@ -8950,13 +8956,13 @@
         "istanbul-lib-coverage": {
           "version": "2.0.5",
           "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
-          "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+          "integrity": "sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k=",
           "dev": true
         },
         "istanbul-lib-instrument": {
           "version": "3.3.0",
           "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
-          "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
+          "integrity": "sha1-pfY9kfC7wMPkee9MXeAnM17G1jA=",
           "dev": true,
           "requires": {
             "@babel/generator": "^7.4.0",
@@ -8979,7 +8985,7 @@
     "karma-coverage-istanbul-reporter": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.0.tgz",
-      "integrity": "sha512-UH0mXPJFJyK5uiK7EkwGtQ8f30lCBAfqRResnZ4pzLJ04SOp4SPlYkmwbbZ6iVJ6sQFVzlDUXlntBEsLRdgZpg==",
+      "integrity": "sha1-XxvME8XhTuHZGCHuiUaGFnT1THU=",
       "dev": true,
       "requires": {
         "istanbul-api": "^2.1.6",
@@ -9081,7 +9087,7 @@
     "karma-webpack": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-4.0.2.tgz",
-      "integrity": "sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A==",
+      "integrity": "sha1-IyGb2VvdqFPjBz04dNNER8d7ztA=",
       "dev": true,
       "requires": {
         "clone-deep": "^4.0.1",
@@ -9127,7 +9133,7 @@
         "source-map": {
           "version": "0.7.3",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
-          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+          "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=",
           "dev": true
         }
       }
@@ -11317,7 +11323,7 @@
     "react-chartjs-2": {
       "version": "2.8.0",
       "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-2.8.0.tgz",
-      "integrity": "sha512-BPpC+qfnh37DkcXvxRwA1rdD9rX/0AQrwru4VZTLofCCuZBwRsc7PbfxjilvoB6YlHhorwZu40YDWEQkoz7xfQ==",
+      "integrity": "sha1-HCTekfs3VfjEMCZ13n1m/dozl1k=",
       "requires": {
         "lodash": "^4.17.4",
         "prop-types": "^15.5.8"
@@ -11339,7 +11345,7 @@
     "react-datepicker": {
       "version": "0.60.2",
       "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-0.60.2.tgz",
-      "integrity": "sha512-5WNtLhozO5i6iGlcgpvjP/Wu4l7RqvTC48CEE/pS1juUny/T4juYHSv53mo+Z90qO4qfyUj59jECTT8AIwAVRQ==",
+      "integrity": "sha1-EIPcHLn/BjK8oywDmYz4PuHOLgE=",
       "requires": {
         "classnames": "^2.2.5",
         "moment": "^2.17.1",
@@ -11905,7 +11911,7 @@
     "semantic-ui-react": {
       "version": "0.79.1",
       "resolved": "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-0.79.1.tgz",
-      "integrity": "sha512-Z/QHE/h+l4MrZMilKe7RCBv6wPSBopcwRh5fPPZ1Cavxw4703XizJ3m+g7qcYXa5F40NnM0LKaVDuaReJ0f/3w==",
+      "integrity": "sha1-gL0Mz7OzwRhKGxs/YGerEiWu1fA=",
       "requires": {
         "babel-runtime": "^6.25.0",
         "classnames": "^2.2.5",
@@ -13171,7 +13177,7 @@
     "uglifyjs-webpack-plugin": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz",
-      "integrity": "sha512-mHSkufBmBuJ+KHQhv5H0MXijtsoA1lynJt1lXOaotja8/I0pR4L9oGaPIZw+bQBOFittXZg9OC1sXSGO9D9ZYg==",
+      "integrity": "sha1-51vIDn8ZN/cllUybTFoeln6p0Nc=",
       "requires": {
         "cacache": "^12.0.2",
         "find-cache-dir": "^2.1.0",
@@ -13192,7 +13198,7 @@
         "find-cache-dir": {
           "version": "2.1.0",
           "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
-          "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+          "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=",
           "requires": {
             "commondir": "^1.0.1",
             "make-dir": "^2.0.0",
@@ -13263,12 +13269,12 @@
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
         },
         "uglify-js": {
           "version": "3.6.1",
           "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.1.tgz",
-          "integrity": "sha512-+dSJLJpXBb6oMHP+Yvw8hUgElz4gLTh82XuX68QiJVTXaE5ibl6buzhNkQdYhBlIhozWOC9ge16wyRmjG4TwVQ==",
+          "integrity": "sha1-rnaIxQ4b3PL3Cg4WJBAAPPl5gxE=",
           "requires": {
             "commander": "2.20.0",
             "source-map": "~0.6.1"
@@ -13277,7 +13283,7 @@
         "webpack-sources": {
           "version": "1.4.3",
           "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
-          "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+          "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
           "requires": {
             "source-list-map": "^2.0.0",
             "source-map": "~0.6.1"
@@ -13737,7 +13743,7 @@
     "webpack-bundle-tracker": {
       "version": "0.4.3",
       "resolved": "https://registry.npmjs.org/webpack-bundle-tracker/-/webpack-bundle-tracker-0.4.3.tgz",
-      "integrity": "sha512-Sl/+OsNhFAH3/c6XADupRu8jLvGojfXX0pZIIm3O5ZcJqkHHqlY4nLG+NVRcbDgM/jOeWimKDGQMVEa8FBeJ2g==",
+      "integrity": "sha1-SKPiIm3bnSTXBGQKtBaMLRIPRSY=",
       "requires": {
         "deep-extend": "^0.6.0",
         "mkdirp": "^0.5.1",
@@ -13752,7 +13758,7 @@
         "strip-ansi": {
           "version": "5.2.0",
           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
-          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
           "requires": {
             "ansi-regex": "^4.1.0"
           }
-- 
GitLab