diff --git a/ui/package-lock.json b/ui/package-lock.json index 506210d28..de5e21050 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -8,23 +8,23 @@ "name": "gateway", "version": "0.0.0", "dependencies": { - "@angular/animations": "^16.2.7", - "@angular/common": "^16.2.7", - "@angular/compiler": "^16.2.7", - "@angular/core": "^16.2.7", - "@angular/forms": "^16.2.7", - "@angular/platform-browser": "^16.2.7", - "@angular/platform-browser-dynamic": "^16.2.7", - "@angular/router": "^16.2.7", + "@angular/animations": "^16.2.8", + "@angular/common": "^16.2.8", + "@angular/compiler": "^16.2.8", + "@angular/core": "^16.2.8", + "@angular/forms": "^16.2.8", + "@angular/platform-browser": "^16.2.8", + "@angular/platform-browser-dynamic": "^16.2.8", + "@angular/router": "^16.2.8", "ngx-webstorage": "^12.0.0", "rxjs": "~7.5.0", "tslib": "^2.3.0", "zone.js": "~0.13.3" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.2.4", - "@angular/cli": "~16.2.4", - "@angular/compiler-cli": "^16.2.7", + "@angular-devkit/build-angular": "^16.2.5", + "@angular/cli": "~16.2.5", + "@angular/compiler-cli": "^16.2.8", "@types/jasmine": "~4.0.0", "jasmine-core": "~4.3.0", "karma": "~6.4.0", @@ -49,12 +49,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1602.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.4.tgz", - "integrity": "sha512-SQr/FZ8wEOGC6EM+7V5rWyb/qpK0LFND/WbES5l+Yvwv+TEyPihsh5QCPmvPxi45eFbaHPrXkIZnvxnkxRDN/A==", + "version": "0.1602.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.5.tgz", + "integrity": "sha512-lbFA2nrF0A1Rs6AU9yYeSHflsiorqL4tSwL7wMtQWMNawRjORiY7IwETyL0PmnlKsbbPlTGnWBhMfeGyBOowEw==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.2.4", + "@angular-devkit/core": "16.2.5", "rxjs": "7.8.1" }, "engines": { @@ -73,15 +73,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.4.tgz", - "integrity": "sha512-qWWjw321+qKzQ3U+arPJ5fdqxZ/aeT5HuxAtA7xqNu/cqnqvRZ8RVbbnugFx4U1R271tABT+N+N1kkIep/vlDg==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.5.tgz", + "integrity": "sha512-ZHyMhhSZkulJiDyTvONJV2OwbxTdjbrJGfkUhv4k4f4HfV8ADUXlhanGjuqykxWG2CmDIsV09j/5b1lg2fYqww==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1602.4", - "@angular-devkit/build-webpack": "0.1602.4", - "@angular-devkit/core": "16.2.4", + "@angular-devkit/architect": "0.1602.5", + "@angular-devkit/build-webpack": "0.1602.5", + "@angular-devkit/core": "16.2.5", "@babel/core": "7.22.9", "@babel/generator": "7.22.9", "@babel/helper-annotate-as-pure": "7.22.5", @@ -93,7 +93,7 @@ "@babel/runtime": "7.22.6", "@babel/template": "7.22.5", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.2.4", + "@ngtools/webpack": "16.2.5", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.14", @@ -123,7 +123,7 @@ "parse5-html-rewriting-stream": "7.0.0", "picomatch": "2.3.1", "piscina": "4.0.0", - "postcss": "8.4.27", + "postcss": "8.4.31", "postcss-loader": "7.3.3", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", @@ -243,12 +243,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1602.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.4.tgz", - "integrity": "sha512-QOnMfAOFrAQKOw+odgymragqzv6Ts5/Ni7/SJ1iLwlQcH6TajT6373fSCDFdKV40ntF53yjnexIsLx81/dK+Cg==", + "version": "0.1602.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.5.tgz", + "integrity": "sha512-cpdhZdi1I3/gu3wcwQyIstrbE0kpoa5vvHu9MFzQ9a/DZV0aAev2d1e9rgOwSRUTCB83LV8+eBY99jqmF54U/g==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1602.4", + "@angular-devkit/architect": "0.1602.5", "rxjs": "7.8.1" }, "engines": { @@ -271,9 +271,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.4.tgz", - "integrity": "sha512-VCZ1z1lDbFkbYkQ6ZMEFfmNzkMEOCBKSzAhWutRyd7oM02by4/5SvDSXd5BMvMxWhPJ/567DdSPOfhhnXQkkDg==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.5.tgz", + "integrity": "sha512-d7xzdvv3aZiNgMtFERR3TxUAdKjzWiWUN94jjBeovITP32yFDz02DzXwUGMFIA3/YhZ/sAEEOKVF3pBXLJ6P4g==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -307,12 +307,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.4.tgz", - "integrity": "sha512-TsSflKJlaHzKgcU/taQg5regmBP/ggvwVtAbJRBWmCaeQJzobFo68+rtwfYfvuQXKAR6KsbSJc97mqmq6zmTwQ==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.5.tgz", + "integrity": "sha512-Du2qaN4SVrtPe2jQuo0VVZgFCUwouyv7tTwyJXv32Kvfw9s3IQD/yYSh0H+XTEbplUV9Fc8b9zWaVhVY1yvrSw==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.2.4", + "@angular-devkit/core": "16.2.5", "jsonc-parser": "3.2.0", "magic-string": "0.30.1", "ora": "5.4.1", @@ -334,9 +334,9 @@ } }, "node_modules/@angular/animations": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.7.tgz", - "integrity": "sha512-6GM4xFprTjDN71nRF6a2Nq3xS/b69tk2mOpcXZeTvxl6b/hqUo1l0y1eY1XK211cwm36GtSjq2cHJAIRBT3CiA==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.8.tgz", + "integrity": "sha512-tjJID1eZORcC9N1f0JIcOzirv6D1q2q7y2S6h51WncJC5G9vOUpIOoOE3gmg0TH0FS41wJe/WfiQku3BuoMA9w==", "dependencies": { "tslib": "^2.3.0" }, @@ -344,19 +344,19 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.2.7" + "@angular/core": "16.2.8" } }, "node_modules/@angular/cli": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.4.tgz", - "integrity": "sha512-OjnlQ2wzhkc1q3iDbWtLeaXoPzS0BtevazT7vmB/MiNVgjDcF3bPFQTcBBvtWAF0wN9jgPC712X8ucwdEAOMlg==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.5.tgz", + "integrity": "sha512-7+OG2KKUq+Wi9pl8JJKzH5BICOInMvyRma8/anDiXMTdhuO8cyhPu3xCl8znc6qV9RcUax0HvJmRq11kv/aJTA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1602.4", - "@angular-devkit/core": "16.2.4", - "@angular-devkit/schematics": "16.2.4", - "@schematics/angular": "16.2.4", + "@angular-devkit/architect": "0.1602.5", + "@angular-devkit/core": "16.2.5", + "@angular-devkit/schematics": "16.2.5", + "@schematics/angular": "16.2.5", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -382,9 +382,9 @@ } }, "node_modules/@angular/common": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.7.tgz", - "integrity": "sha512-vcKbbtDXNmJ8dj1GF52saJRT5U3P+phnIwnv+hQ2c+VVj/S2alWlBkT12iM+KlvnWdxsa0q4yW0G4WvpPJPaMQ==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.8.tgz", + "integrity": "sha512-0LZSBHnk9c6XPcrQx9D8i0DKi807IuiuOtK4kMa64aj1pySY3TK+uort5hqpmhgdqiCbBHZjgpRpU83LoTTl3w==", "dependencies": { "tslib": "^2.3.0" }, @@ -392,14 +392,14 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.2.7", + "@angular/core": "16.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.7.tgz", - "integrity": "sha512-Sp+QjHFYjBMhjag/YbIV5skqr/UrpBjCPo1WFBBhj5DKkvgWC7T00yYJn+aBj0DU5ZuMmO/P8Vb7bRIHIRNL4w==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.8.tgz", + "integrity": "sha512-xWdMAeBkYh8ESk9iBSYnp2qfbGPNReggtNJuUL9I7AFGkzkvEWndyQ+oTXzCM5gjj4nWB5A/AAYYDU54sDac2Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -407,7 +407,7 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.2.7" + "@angular/core": "16.2.8" }, "peerDependenciesMeta": { "@angular/core": { @@ -416,9 +416,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.7.tgz", - "integrity": "sha512-aMAmSyurmvdKIcRpATfJPyTa0RYOylmXb7TI5TyDico9pUR7RAlreuW/1NUeIPWfZdPrPyoGOYGqukSuSnyrNA==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.8.tgz", + "integrity": "sha512-kKcfr8vbdB+MYDgyeZdxeoVbOpoGFmxOj4IEVnOQ2SPYexcnLEK38qect6LpHGIEG5bOQrkQqWmNnmHAEH4L1g==", "dev": true, "dependencies": { "@babel/core": "7.22.5", @@ -439,14 +439,14 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.2.7", + "@angular/compiler": "16.2.8", "typescript": ">=4.9.3 <5.2" } }, "node_modules/@angular/core": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.7.tgz", - "integrity": "sha512-JQOxo+Ja9ThQjUa4vdOMLZfIK2dhR3cnPbqB1tV2WuTmIv49QASbFHsae8zZsS4Au5/TafBaW3KkK9aRU8G5gg==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.8.tgz", + "integrity": "sha512-v3kwZsjf7mKBGMky+UfxV3iwA1BFy1c3gmjyHSPSll9TPr2jkfwstoB2Cc+wmS2S9ezHFAMX++XXRymKVRQzQg==", "dependencies": { "tslib": "^2.3.0" }, @@ -459,9 +459,9 @@ } }, "node_modules/@angular/forms": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.7.tgz", - "integrity": "sha512-zUEcYwoAiRmKBJd3NAnksbqTXm60L/nLmhv8OAS9MvV5tXNvEjavpy3eG16H7H2IPQ2ZkUICB0bssmmAVOCbmQ==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.8.tgz", + "integrity": "sha512-EKv9hdajLnFjz6lH5O8rWtFPqUWws7w+CCoFZw+z+9D6onM26w4Fw0Ng7PMP3g9zGGC4YyqEl729mBsgxAO+7A==", "dependencies": { "tslib": "^2.3.0" }, @@ -469,16 +469,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.2.7", - "@angular/core": "16.2.7", - "@angular/platform-browser": "16.2.7", + "@angular/common": "16.2.8", + "@angular/core": "16.2.8", + "@angular/platform-browser": "16.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.7.tgz", - "integrity": "sha512-yQ/4FB33Jc1Xs+slWfddZpbKdkCHdhCh39Mfjxa1wTen6YJZKmvjBbMNCkvnvNbLqc2IFWRwTQdG8s0n1jfl3A==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.8.tgz", + "integrity": "sha512-y0rt8HmnTjvZrqt+bKU5CnmaI7xQiRWIaLWpYXGgqcqqMDgMYwSm2lV3H6K6S1v0ut+Q+zIWj2rGjr8Apox34Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -486,9 +486,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "16.2.7", - "@angular/common": "16.2.7", - "@angular/core": "16.2.7" + "@angular/animations": "16.2.8", + "@angular/common": "16.2.8", + "@angular/core": "16.2.8" }, "peerDependenciesMeta": { "@angular/animations": { @@ -497,9 +497,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.7.tgz", - "integrity": "sha512-raeuYEQfByHByLnA5YRR7fYD/5u6hMjONH77p08IjmtdmLb0XYP18l/C4YqsIOQG6kZLNCVWknEHZu3kuvAwtQ==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.8.tgz", + "integrity": "sha512-METr1TuMP2fHOXN0wVlW4CpQEIvy5fLSsPprDPuL+C0KeaCLuTST9Ek+yL7IVGu+VIpFZuqMC376z8n6ENo97g==", "dependencies": { "tslib": "^2.3.0" }, @@ -507,16 +507,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.2.7", - "@angular/compiler": "16.2.7", - "@angular/core": "16.2.7", - "@angular/platform-browser": "16.2.7" + "@angular/common": "16.2.8", + "@angular/compiler": "16.2.8", + "@angular/core": "16.2.8", + "@angular/platform-browser": "16.2.8" } }, "node_modules/@angular/router": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.7.tgz", - "integrity": "sha512-CYhbhOqmBIraWjSzpiIZXV0JEx2fNAtRphQ5L/xdzU7G644+4v73SSQddoeX6l0FBkw2gqTisxr9w8/A6s2eCw==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.8.tgz", + "integrity": "sha512-mWpapabWtk8Qtyb2BalXtvud9m6BCiKg8moJNb8dEAGjDzMTWqWOr4zkFHoIFX+gj2JKKDa6btPWVD6J5K6Ojg==", "dependencies": { "tslib": "^2.3.0" }, @@ -524,9 +524,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.2.7", - "@angular/core": "16.2.7", - "@angular/platform-browser": "16.2.7", + "@angular/common": "16.2.8", + "@angular/core": "16.2.8", + "@angular/platform-browser": "16.2.8", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -2899,9 +2899,9 @@ "dev": true }, "node_modules/@ngtools/webpack": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.4.tgz", - "integrity": "sha512-ILri2xJ6vMUaFxHJABGF/H7/pYoBkuXTFlHCeFee9pHA+EHkxoiwezLf8baiFT3IGOmdG6GOUlfh/4QicGLdTQ==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.5.tgz", + "integrity": "sha512-wq1dbbOUwrY/zkpZltcgmyEFANbJon79E5s4ueT3IT4NyiYh1uJeWa2vmB0kof7VP5Xhm/jutkJk336z67oLPg==", "dev": true, "engines": { "node": "^16.14.0 || >=18.10.0", @@ -3098,13 +3098,13 @@ } }, "node_modules/@schematics/angular": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.4.tgz", - "integrity": "sha512-ZFPxn0yihdNcg5UpJvnfxIpv4GuW6nYDkgeIlYb5k/a0dKSW8wE8Akcl1JhJtdKJ0RVcn1OwZDmx028JCbZJLA==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.5.tgz", + "integrity": "sha512-huYEiU5KK2/upy9LJUdecIB4Jwh4LQMQz5cz6EMr8uhrCTykEKXlBpGJVHZyDK1K5/riymSr9G86BdN2PcY1Cw==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.2.4", - "@angular-devkit/schematics": "16.2.4", + "@angular-devkit/core": "16.2.5", + "@angular-devkit/schematics": "16.2.5", "jsonc-parser": "3.2.0" }, "engines": { @@ -7670,13 +7670,13 @@ } }, "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", "dev": true, "dependencies": { "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" + "shell-quote": "^1.8.1" } }, "node_modules/less": { @@ -9449,9 +9449,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -12241,12 +12241,12 @@ } }, "@angular-devkit/architect": { - "version": "0.1602.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.4.tgz", - "integrity": "sha512-SQr/FZ8wEOGC6EM+7V5rWyb/qpK0LFND/WbES5l+Yvwv+TEyPihsh5QCPmvPxi45eFbaHPrXkIZnvxnkxRDN/A==", + "version": "0.1602.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.5.tgz", + "integrity": "sha512-lbFA2nrF0A1Rs6AU9yYeSHflsiorqL4tSwL7wMtQWMNawRjORiY7IwETyL0PmnlKsbbPlTGnWBhMfeGyBOowEw==", "dev": true, "requires": { - "@angular-devkit/core": "16.2.4", + "@angular-devkit/core": "16.2.5", "rxjs": "7.8.1" }, "dependencies": { @@ -12262,15 +12262,15 @@ } }, "@angular-devkit/build-angular": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.4.tgz", - "integrity": "sha512-qWWjw321+qKzQ3U+arPJ5fdqxZ/aeT5HuxAtA7xqNu/cqnqvRZ8RVbbnugFx4U1R271tABT+N+N1kkIep/vlDg==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.5.tgz", + "integrity": "sha512-ZHyMhhSZkulJiDyTvONJV2OwbxTdjbrJGfkUhv4k4f4HfV8ADUXlhanGjuqykxWG2CmDIsV09j/5b1lg2fYqww==", "dev": true, "requires": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1602.4", - "@angular-devkit/build-webpack": "0.1602.4", - "@angular-devkit/core": "16.2.4", + "@angular-devkit/architect": "0.1602.5", + "@angular-devkit/build-webpack": "0.1602.5", + "@angular-devkit/core": "16.2.5", "@babel/core": "7.22.9", "@babel/generator": "7.22.9", "@babel/helper-annotate-as-pure": "7.22.5", @@ -12282,7 +12282,7 @@ "@babel/runtime": "7.22.6", "@babel/template": "7.22.5", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.2.4", + "@ngtools/webpack": "16.2.5", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.14", @@ -12313,7 +12313,7 @@ "parse5-html-rewriting-stream": "7.0.0", "picomatch": "2.3.1", "piscina": "4.0.0", - "postcss": "8.4.27", + "postcss": "8.4.31", "postcss-loader": "7.3.3", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", @@ -12377,12 +12377,12 @@ } }, "@angular-devkit/build-webpack": { - "version": "0.1602.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.4.tgz", - "integrity": "sha512-QOnMfAOFrAQKOw+odgymragqzv6Ts5/Ni7/SJ1iLwlQcH6TajT6373fSCDFdKV40ntF53yjnexIsLx81/dK+Cg==", + "version": "0.1602.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.5.tgz", + "integrity": "sha512-cpdhZdi1I3/gu3wcwQyIstrbE0kpoa5vvHu9MFzQ9a/DZV0aAev2d1e9rgOwSRUTCB83LV8+eBY99jqmF54U/g==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1602.4", + "@angular-devkit/architect": "0.1602.5", "rxjs": "7.8.1" }, "dependencies": { @@ -12398,9 +12398,9 @@ } }, "@angular-devkit/core": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.4.tgz", - "integrity": "sha512-VCZ1z1lDbFkbYkQ6ZMEFfmNzkMEOCBKSzAhWutRyd7oM02by4/5SvDSXd5BMvMxWhPJ/567DdSPOfhhnXQkkDg==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.5.tgz", + "integrity": "sha512-d7xzdvv3aZiNgMtFERR3TxUAdKjzWiWUN94jjBeovITP32yFDz02DzXwUGMFIA3/YhZ/sAEEOKVF3pBXLJ6P4g==", "dev": true, "requires": { "ajv": "8.12.0", @@ -12423,12 +12423,12 @@ } }, "@angular-devkit/schematics": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.4.tgz", - "integrity": "sha512-TsSflKJlaHzKgcU/taQg5regmBP/ggvwVtAbJRBWmCaeQJzobFo68+rtwfYfvuQXKAR6KsbSJc97mqmq6zmTwQ==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.5.tgz", + "integrity": "sha512-Du2qaN4SVrtPe2jQuo0VVZgFCUwouyv7tTwyJXv32Kvfw9s3IQD/yYSh0H+XTEbplUV9Fc8b9zWaVhVY1yvrSw==", "dev": true, "requires": { - "@angular-devkit/core": "16.2.4", + "@angular-devkit/core": "16.2.5", "jsonc-parser": "3.2.0", "magic-string": "0.30.1", "ora": "5.4.1", @@ -12447,23 +12447,23 @@ } }, "@angular/animations": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.7.tgz", - "integrity": "sha512-6GM4xFprTjDN71nRF6a2Nq3xS/b69tk2mOpcXZeTvxl6b/hqUo1l0y1eY1XK211cwm36GtSjq2cHJAIRBT3CiA==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.8.tgz", + "integrity": "sha512-tjJID1eZORcC9N1f0JIcOzirv6D1q2q7y2S6h51WncJC5G9vOUpIOoOE3gmg0TH0FS41wJe/WfiQku3BuoMA9w==", "requires": { "tslib": "^2.3.0" } }, "@angular/cli": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.4.tgz", - "integrity": "sha512-OjnlQ2wzhkc1q3iDbWtLeaXoPzS0BtevazT7vmB/MiNVgjDcF3bPFQTcBBvtWAF0wN9jgPC712X8ucwdEAOMlg==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.5.tgz", + "integrity": "sha512-7+OG2KKUq+Wi9pl8JJKzH5BICOInMvyRma8/anDiXMTdhuO8cyhPu3xCl8znc6qV9RcUax0HvJmRq11kv/aJTA==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1602.4", - "@angular-devkit/core": "16.2.4", - "@angular-devkit/schematics": "16.2.4", - "@schematics/angular": "16.2.4", + "@angular-devkit/architect": "0.1602.5", + "@angular-devkit/core": "16.2.5", + "@angular-devkit/schematics": "16.2.5", + "@schematics/angular": "16.2.5", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -12481,25 +12481,25 @@ } }, "@angular/common": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.7.tgz", - "integrity": "sha512-vcKbbtDXNmJ8dj1GF52saJRT5U3P+phnIwnv+hQ2c+VVj/S2alWlBkT12iM+KlvnWdxsa0q4yW0G4WvpPJPaMQ==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.8.tgz", + "integrity": "sha512-0LZSBHnk9c6XPcrQx9D8i0DKi807IuiuOtK4kMa64aj1pySY3TK+uort5hqpmhgdqiCbBHZjgpRpU83LoTTl3w==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.7.tgz", - "integrity": "sha512-Sp+QjHFYjBMhjag/YbIV5skqr/UrpBjCPo1WFBBhj5DKkvgWC7T00yYJn+aBj0DU5ZuMmO/P8Vb7bRIHIRNL4w==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.8.tgz", + "integrity": "sha512-xWdMAeBkYh8ESk9iBSYnp2qfbGPNReggtNJuUL9I7AFGkzkvEWndyQ+oTXzCM5gjj4nWB5A/AAYYDU54sDac2Q==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.7.tgz", - "integrity": "sha512-aMAmSyurmvdKIcRpATfJPyTa0RYOylmXb7TI5TyDico9pUR7RAlreuW/1NUeIPWfZdPrPyoGOYGqukSuSnyrNA==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.8.tgz", + "integrity": "sha512-kKcfr8vbdB+MYDgyeZdxeoVbOpoGFmxOj4IEVnOQ2SPYexcnLEK38qect6LpHGIEG5bOQrkQqWmNnmHAEH4L1g==", "dev": true, "requires": { "@babel/core": "7.22.5", @@ -12513,41 +12513,41 @@ } }, "@angular/core": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.7.tgz", - "integrity": "sha512-JQOxo+Ja9ThQjUa4vdOMLZfIK2dhR3cnPbqB1tV2WuTmIv49QASbFHsae8zZsS4Au5/TafBaW3KkK9aRU8G5gg==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.8.tgz", + "integrity": "sha512-v3kwZsjf7mKBGMky+UfxV3iwA1BFy1c3gmjyHSPSll9TPr2jkfwstoB2Cc+wmS2S9ezHFAMX++XXRymKVRQzQg==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.7.tgz", - "integrity": "sha512-zUEcYwoAiRmKBJd3NAnksbqTXm60L/nLmhv8OAS9MvV5tXNvEjavpy3eG16H7H2IPQ2ZkUICB0bssmmAVOCbmQ==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.8.tgz", + "integrity": "sha512-EKv9hdajLnFjz6lH5O8rWtFPqUWws7w+CCoFZw+z+9D6onM26w4Fw0Ng7PMP3g9zGGC4YyqEl729mBsgxAO+7A==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.7.tgz", - "integrity": "sha512-yQ/4FB33Jc1Xs+slWfddZpbKdkCHdhCh39Mfjxa1wTen6YJZKmvjBbMNCkvnvNbLqc2IFWRwTQdG8s0n1jfl3A==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.8.tgz", + "integrity": "sha512-y0rt8HmnTjvZrqt+bKU5CnmaI7xQiRWIaLWpYXGgqcqqMDgMYwSm2lV3H6K6S1v0ut+Q+zIWj2rGjr8Apox34Q==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.7.tgz", - "integrity": "sha512-raeuYEQfByHByLnA5YRR7fYD/5u6hMjONH77p08IjmtdmLb0XYP18l/C4YqsIOQG6kZLNCVWknEHZu3kuvAwtQ==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.8.tgz", + "integrity": "sha512-METr1TuMP2fHOXN0wVlW4CpQEIvy5fLSsPprDPuL+C0KeaCLuTST9Ek+yL7IVGu+VIpFZuqMC376z8n6ENo97g==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.7.tgz", - "integrity": "sha512-CYhbhOqmBIraWjSzpiIZXV0JEx2fNAtRphQ5L/xdzU7G644+4v73SSQddoeX6l0FBkw2gqTisxr9w8/A6s2eCw==", + "version": "16.2.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.8.tgz", + "integrity": "sha512-mWpapabWtk8Qtyb2BalXtvud9m6BCiKg8moJNb8dEAGjDzMTWqWOr4zkFHoIFX+gj2JKKDa6btPWVD6J5K6Ojg==", "requires": { "tslib": "^2.3.0" } @@ -14131,9 +14131,9 @@ "dev": true }, "@ngtools/webpack": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.4.tgz", - "integrity": "sha512-ILri2xJ6vMUaFxHJABGF/H7/pYoBkuXTFlHCeFee9pHA+EHkxoiwezLf8baiFT3IGOmdG6GOUlfh/4QicGLdTQ==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.5.tgz", + "integrity": "sha512-wq1dbbOUwrY/zkpZltcgmyEFANbJon79E5s4ueT3IT4NyiYh1uJeWa2vmB0kof7VP5Xhm/jutkJk336z67oLPg==", "dev": true, "requires": {} }, @@ -14273,13 +14273,13 @@ "optional": true }, "@schematics/angular": { - "version": "16.2.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.4.tgz", - "integrity": "sha512-ZFPxn0yihdNcg5UpJvnfxIpv4GuW6nYDkgeIlYb5k/a0dKSW8wE8Akcl1JhJtdKJ0RVcn1OwZDmx028JCbZJLA==", + "version": "16.2.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.5.tgz", + "integrity": "sha512-huYEiU5KK2/upy9LJUdecIB4Jwh4LQMQz5cz6EMr8uhrCTykEKXlBpGJVHZyDK1K5/riymSr9G86BdN2PcY1Cw==", "dev": true, "requires": { - "@angular-devkit/core": "16.2.4", - "@angular-devkit/schematics": "16.2.4", + "@angular-devkit/core": "16.2.5", + "@angular-devkit/schematics": "16.2.5", "jsonc-parser": "3.2.0" } }, @@ -17799,13 +17799,13 @@ "dev": true }, "launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", "dev": true, "requires": { "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" + "shell-quote": "^1.8.1" } }, "less": { @@ -19125,9 +19125,9 @@ } }, "postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "requires": { "nanoid": "^3.3.6", diff --git a/ui/package.json b/ui/package.json index d7e2d39e2..f749e2ef8 100644 --- a/ui/package.json +++ b/ui/package.json @@ -10,23 +10,23 @@ }, "private": true, "dependencies": { - "@angular/animations": "^16.2.7", - "@angular/common": "^16.2.7", - "@angular/compiler": "^16.2.7", - "@angular/core": "^16.2.7", - "@angular/forms": "^16.2.7", - "@angular/platform-browser": "^16.2.7", - "@angular/platform-browser-dynamic": "^16.2.7", - "@angular/router": "^16.2.7", + "@angular/animations": "^16.2.8", + "@angular/common": "^16.2.8", + "@angular/compiler": "^16.2.8", + "@angular/core": "^16.2.8", + "@angular/forms": "^16.2.8", + "@angular/platform-browser": "^16.2.8", + "@angular/platform-browser-dynamic": "^16.2.8", + "@angular/router": "^16.2.8", "ngx-webstorage": "^12.0.0", "rxjs": "~7.5.0", "tslib": "^2.3.0", "zone.js": "~0.13.3" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.2.4", - "@angular/cli": "~16.2.4", - "@angular/compiler-cli": "^16.2.7", + "@angular-devkit/build-angular": "^16.2.5", + "@angular/cli": "~16.2.5", + "@angular/compiler-cli": "^16.2.8", "@types/jasmine": "~4.0.0", "jasmine-core": "~4.3.0", "karma": "~6.4.0", @@ -36,4 +36,4 @@ "karma-jasmine-html-reporter": "~2.0.0", "typescript": "~4.9.5" } -} +} \ No newline at end of file diff --git a/ui/src/app/account/login/login.component.ts b/ui/src/app/account/login/login.component.ts index ac3cd81bf..877670e0e 100644 --- a/ui/src/app/account/login/login.component.ts +++ b/ui/src/app/account/login/login.component.ts @@ -1,10 +1,13 @@ -import { AfterViewInit, Component, Renderer2 } from '@angular/core'; +import { AfterViewInit, Component, OnDestroy, Renderer2 } from '@angular/core'; import { FormBuilder } from '@angular/forms'; import { Router } from '@angular/router'; import { AccountService } from '../service/account.service'; import { LoginService } from '../service/login.service'; import { StateStorageService } from '../service/state-storage.service'; -import { filter, take } from 'rxjs'; +import { Subscription, filter, take } from 'rxjs'; +import { EventService } from 'src/app/shared/service/event.service'; +import { EventType } from 'src/app/app.constants'; +import { Event } from 'src/app/shared/model/event.model'; @Component({ @@ -12,11 +15,12 @@ import { filter, take } from 'rxjs'; templateUrl: './login.component.html', styleUrls: ['./login.component.scss'] }) -export class LoginComponent implements AfterViewInit { +export class LoginComponent implements AfterViewInit, OnDestroy { authenticationError = false; showMfa = false; mfaSent = false; mfaError = false; + sub: Subscription | undefined; loginForm = this.fb.group({ username: [''], @@ -30,8 +34,18 @@ export class LoginComponent implements AfterViewInit { private renderer: Renderer2, private router: Router, private accountService: AccountService, - private fb: FormBuilder - ) { } + private fb: FormBuilder, + private eventService: EventService + ) { + this.sub = this.eventService.on(EventType.LOG_IN_SUCCESS).subscribe(e => { + console.log(e.payload); + }) + } + + ngOnDestroy(): void { + this.sub?.unsubscribe(); + console.log('test') + } ngAfterViewInit() { setTimeout(() => this.renderer.selectRootElement('#username').scrollIntoView()); @@ -94,6 +108,7 @@ export class LoginComponent implements AfterViewInit { this.router.navigate(['']); } + this.eventService.broadcast(new Event(EventType.LOG_IN_SUCCESS, "logged in")) // TODO: Event manager /* this.eventManager.broadcast({ name: 'authenticationSuccess', diff --git a/ui/src/app/app.constants.ts b/ui/src/app/app.constants.ts index c1593ab97..94b52d1b2 100644 --- a/ui/src/app/app.constants.ts +++ b/ui/src/app/app.constants.ts @@ -1,2 +1,8 @@ export const SERVER_API_URL = 'http://localhost:4200'; +export enum EventType { + LOG_IN_SUCCESS = "LOG_IN_SUCCESS", + AFFILIATION_CREATED = "AFFILIATION_CREATED", + AFFILIATION_UPDATED = "AFFILIATION_UPDATED" + // add as we go +} diff --git a/ui/src/app/shared/model/event.model.ts b/ui/src/app/shared/model/event.model.ts new file mode 100644 index 000000000..d4160e609 --- /dev/null +++ b/ui/src/app/shared/model/event.model.ts @@ -0,0 +1,8 @@ +import { EventType } from "src/app/app.constants"; + +export class Event { + constructor( + public type: EventType, + public payload: String, + ) {} + } \ No newline at end of file diff --git a/ui/src/app/shared/service/event.service.ts b/ui/src/app/shared/service/event.service.ts new file mode 100644 index 000000000..58c419ba5 --- /dev/null +++ b/ui/src/app/shared/service/event.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core' +import { Observable, Subject, filter } from 'rxjs' +import { EventType } from 'src/app/app.constants' +import { Event } from '../model/event.model' + +@Injectable({ providedIn: 'root' }) +export class EventService { + + private events = new Subject() + + on(eventType: EventType): Observable { + return this.events.pipe(filter((event) => event.type === eventType)) + } + + broadcast(event: Event): void { + this.events.next(event) + } + +}