diff --git a/package-lock.json b/package-lock.json
index 4d8c5c41..f51f9dc8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -394,9 +394,9 @@
       }
     },
     "node_modules/@angular/animations": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.0.2.tgz",
-      "integrity": "sha512-WhsotLl74UlRZZE9R7X3BXeNm1YOD1hUMOuGCa20pvUZ8X6ayz5c8B7tc/BZ0ua/9UkyZzbdMTEDi8JPDPPTew==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.0.3.tgz",
+      "integrity": "sha512-Wlll6y7euIXYsOHpTh0hvVTBs7lVnbKDHiyd4Dz7kAMSeE2zyQo6OcRN+FFH3GH9BUi5UooAICNX8dJDfps6Mw==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -405,7 +405,7 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "18.0.2"
+        "@angular/core": "18.0.3"
       }
     },
     "node_modules/@angular/build": {
@@ -478,9 +478,9 @@
       }
     },
     "node_modules/@angular/cdk": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.0.2.tgz",
-      "integrity": "sha512-KQTfi17PV/DYg8UcsoF9Jxfz+3nCPImm5eY1Mq7wGK8qUOlw9Y8fZ3eNU9ZH4hdg2FcKXJrAJqSA7I2nqdSX7w==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.0.3.tgz",
+      "integrity": "sha512-F6kXAoIWUbvhvbSGnMxrKJZsI7rhGKDXVFFf9m+ZQAbqboSyDbbszux7Em4CEh27LaXYNFltUcKdCQ3hdp7Kig==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -529,9 +529,9 @@
       }
     },
     "node_modules/@angular/common": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.0.2.tgz",
-      "integrity": "sha512-7CK5sFptUFWE3ZrKl8MjgoKjYKC20SN089F4xQIYtP2qM3IoJH/X7qa+5Eidk4PovS1SuCJHrB5AoREWwtWJHA==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.0.3.tgz",
+      "integrity": "sha512-lmT9QbWHduqzpsB0osQFHeSwvQB1iUeNwTVUyMtcs6i46l4qOPtAt2/9DvHUWEUp01EBDxyi385ZI3vD+FHH/w==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -540,14 +540,14 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "18.0.2",
+        "@angular/core": "18.0.3",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
     "node_modules/@angular/compiler": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.0.2.tgz",
-      "integrity": "sha512-9PKi++yKq3SvsTteZAhAJsiueEWzl64SpIBwooWRaSav6Jfl9Y2+b46SXTdAIuNdcGNW7ZeDZbPK3RPtxsROrA==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.0.3.tgz",
+      "integrity": "sha512-wrXxgBsZX4yTrj/oZ8PDGmvhqj9S2TZfcuivaUitprNC2uBWTVb1UcOS45Qw9YlLB0sYa2AmBudICDqYpb8lfw==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -556,7 +556,7 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/core": "18.0.2"
+        "@angular/core": "18.0.3"
       },
       "peerDependenciesMeta": {
         "@angular/core": {
@@ -565,13 +565,13 @@
       }
     },
     "node_modules/@angular/compiler-cli": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.0.2.tgz",
-      "integrity": "sha512-+HIYJ0WIAg75mS30KzCN9gO2SeZXF4A8CeKOwBKhIvlq9kkaTpgmpDkVx814e9z3OeIqCEUn10qebJTwZgtZDA==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.0.3.tgz",
+      "integrity": "sha512-mxwQEeP94YBM6C9A2YfkV7ug1sHgh0fU/TSBpQcm5ni4cZiVPu6q/+Ft7hyFTKe2p3tKQme33+xVjsWhtOCx0A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@babel/core": "7.24.4",
+        "@babel/core": "7.24.7",
         "@jridgewell/sourcemap-codec": "^1.4.14",
         "chokidar": "^3.0.0",
         "convert-source-map": "^1.5.1",
@@ -589,27 +589,27 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/compiler": "18.0.2",
+        "@angular/compiler": "18.0.3",
         "typescript": ">=5.4 <5.5"
       }
     },
     "node_modules/@angular/compiler-cli/node_modules/@babel/core": {
-      "version": "7.24.4",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz",
-      "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz",
+      "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
-        "@babel/code-frame": "^7.24.2",
-        "@babel/generator": "^7.24.4",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helpers": "^7.24.4",
-        "@babel/parser": "^7.24.4",
-        "@babel/template": "^7.24.0",
-        "@babel/traverse": "^7.24.1",
-        "@babel/types": "^7.24.0",
+        "@babel/code-frame": "^7.24.7",
+        "@babel/generator": "^7.24.7",
+        "@babel/helper-compilation-targets": "^7.24.7",
+        "@babel/helper-module-transforms": "^7.24.7",
+        "@babel/helpers": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/template": "^7.24.7",
+        "@babel/traverse": "^7.24.7",
+        "@babel/types": "^7.24.7",
         "convert-source-map": "^2.0.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.2",
@@ -641,10 +641,26 @@
         "semver": "bin/semver.js"
       }
     },
+    "node_modules/@angular/compiler-cli/node_modules/@babel/generator": {
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz",
+      "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@babel/types": "^7.24.7",
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25",
+        "jsesc": "^2.5.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
     "node_modules/@angular/core": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.0.2.tgz",
-      "integrity": "sha512-5VtFaYz97X9sQpxRuFUBKu2gqgFVU/Obgk/Q8ZRw+TBhFnU4e9NFod7dtAJH9scCOWZYnU07+aeI6ChiRSKrZw==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.0.3.tgz",
+      "integrity": "sha512-376hijhEqNpeA+qKncpVTIaZXRdBT6RctEBnFhJ2l57aHPH5S3oaSBQu1k3TEi07FlKOD4XF1+NzX9dvdup1eg==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -658,9 +674,9 @@
       }
     },
     "node_modules/@angular/forms": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.0.2.tgz",
-      "integrity": "sha512-AGuQVav7wbX6pRhjeE6c45dlWnhb+93ZHHBRT02Wg1PRyrgmebpoLAtiUmAR/YhR45zD6Q9o7fg/076+bnIcdQ==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.0.3.tgz",
+      "integrity": "sha512-+CjDiooUi5FkTP3YQmdO8YRbjZicgLGZonvCdz3mSucLrTY6w3oBocNs6+Kc7fLuO1NKSkFmAfYApBwK3fKBMg==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -669,16 +685,16 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "18.0.2",
-        "@angular/core": "18.0.2",
-        "@angular/platform-browser": "18.0.2",
+        "@angular/common": "18.0.3",
+        "@angular/core": "18.0.3",
+        "@angular/platform-browser": "18.0.3",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
     "node_modules/@angular/material": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.0.2.tgz",
-      "integrity": "sha512-bns6X6HAonBnj+I0QkbqfD4u5ehs8HZP3ateb19ZbfhVLJEu0MB/AJfeM3cinPrQnTMdYBjIDTtIyQWh//EFiw==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.0.3.tgz",
+      "integrity": "sha512-VIlK+0CxreAkDmr05TKelTr11I7yUtGPwRTFaWfQtXNkYEwGE1iuZGz3Iz8otxvHsTLC74Er4vMSYndwJvMyjQ==",
       "license": "MIT",
       "dependencies": {
         "@material/animation": "15.0.0-canary.7f224ddd4.0",
@@ -733,7 +749,7 @@
       },
       "peerDependencies": {
         "@angular/animations": "^18.0.0 || ^19.0.0",
-        "@angular/cdk": "18.0.2",
+        "@angular/cdk": "18.0.3",
         "@angular/common": "^18.0.0 || ^19.0.0",
         "@angular/core": "^18.0.0 || ^19.0.0",
         "@angular/forms": "^18.0.0 || ^19.0.0",
@@ -742,9 +758,9 @@
       }
     },
     "node_modules/@angular/platform-browser": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.0.2.tgz",
-      "integrity": "sha512-IdNyRMFtM5GCvueNFrXmwA1C5LUMi6aSccdA1fpsTFAGDleeT5oiKU82iIcVmdj+Kse233KQFU0HFyijy4W2/Q==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.0.3.tgz",
+      "integrity": "sha512-1fl/oJOca8BLxLxN0EjwxQZ3xzn3PCCN96ytM54bjdEMiELz+0AcQe5GNKcVjXlwMkibRLl1BP5GIdvnQYqJRA==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -753,9 +769,9 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/animations": "18.0.2",
-        "@angular/common": "18.0.2",
-        "@angular/core": "18.0.2"
+        "@angular/animations": "18.0.3",
+        "@angular/common": "18.0.3",
+        "@angular/core": "18.0.3"
       },
       "peerDependenciesMeta": {
         "@angular/animations": {
@@ -764,9 +780,9 @@
       }
     },
     "node_modules/@angular/platform-browser-dynamic": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.0.2.tgz",
-      "integrity": "sha512-wQlw3TgUEs5uZRT6mPIKFHCgOBDE4joar9b/0bjZv5SOUvJNkED+roNlRKxjQDIagOMAUlcD3OnynlNr6le6YA==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.0.3.tgz",
+      "integrity": "sha512-+kHMn7P552YKk1gkVQNO1QXzHVaIeFiVa1rV1MNvX4DvumKT3puknx1SzcmtxZTX+9ee22OuPuyLNSAKREDAQQ==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -775,16 +791,16 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "18.0.2",
-        "@angular/compiler": "18.0.2",
-        "@angular/core": "18.0.2",
-        "@angular/platform-browser": "18.0.2"
+        "@angular/common": "18.0.3",
+        "@angular/compiler": "18.0.3",
+        "@angular/core": "18.0.3",
+        "@angular/platform-browser": "18.0.3"
       }
     },
     "node_modules/@angular/router": {
-      "version": "18.0.2",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.0.2.tgz",
-      "integrity": "sha512-eIualVChd3bMA8GjKfAKL9wv7zKWx85Cu3b1qhUxrG3XyT40X1ud2GRHBKCuklUITcAR8HjUKnWuOjUDkhTT4Q==",
+      "version": "18.0.3",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.0.3.tgz",
+      "integrity": "sha512-/cglLev0USxUNMc4M+EBFGrqw1EpKq87LUJL3+0Ztr012sVSeOU38ad41fs6pPcMBePBDZIw7KmSXypvUJJFMA==",
       "license": "MIT",
       "dependencies": {
         "tslib": "^2.3.0"
@@ -793,9 +809,9 @@
         "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
       },
       "peerDependencies": {
-        "@angular/common": "18.0.2",
-        "@angular/core": "18.0.2",
-        "@angular/platform-browser": "18.0.2",
+        "@angular/common": "18.0.3",
+        "@angular/core": "18.0.3",
+        "@angular/platform-browser": "18.0.3",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },