diff --git a/package-lock.json b/package-lock.json index 639731ca..3aaa4090 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,22 @@ { "name": "gameon-front", - "version": "4.3.0", + "version": "4.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gameon-front", - "version": "4.3.0", - "dependencies": { - "@angular/animations": "^19.0.5", - "@angular/cdk": "^19.0.4", - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", - "@angular/router": "^19.0.5", + "version": "4.4.0", + "dependencies": { + "@angular/animations": "^19.0.6", + "@angular/cdk": "^19.0.5", + "@angular/common": "^19.0.6", + "@angular/compiler": "^19.0.6", + "@angular/core": "^19.0.6", + "@angular/forms": "^19.0.6", + "@angular/platform-browser": "^19.0.6", + "@angular/platform-browser-dynamic": "^19.0.6", + "@angular/router": "^19.0.6", "@fortawesome/angular-fontawesome": "^1.0.0", "@fortawesome/free-solid-svg-icons": "^6.7.2", "@ngrx/store": "^19.0.0", @@ -30,9 +30,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular-devkit/build-angular": "^19.0.7", + "@angular/cli": "^19.0.7", + "@angular/compiler-cli": "^19.0.6", "@types/jasmine": "~5.1.0", "autoprefixer": "^10.4.20", "jasmine-core": "~5.1.0", @@ -73,13 +73,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1900.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.6.tgz", - "integrity": "sha512-w11bAXQnNWBawTJfQPjvaTRrzrqsOUm9tK9WNvaia/xjiRFpmO0CfmKtn3axNSEJM8jb/czaNQrgTwG+TGc/8g==", + "version": "0.1900.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.7.tgz", + "integrity": "sha512-3dRV0IB+MbNYbAGbYEFMcABkMphqcTvn5MG79dQkwcf2a9QZxCq2slwf/rIleWoDUcFm9r1NnVPYrTYNYJaqQg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.6", + "@angular-devkit/core": "19.0.7", "rxjs": "7.8.1" }, "engines": { @@ -89,9 +89,9 @@ } }, "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.6.tgz", - "integrity": "sha512-WUWJhzQDsovfMY6jtb9Ktz/5sJszsaErj+XV2aXab85f1OweI/Iv2urPZnJwUSilvVN5Ok/fy3IJ6SuihK4Ceg==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -135,15 +135,15 @@ } }, "node_modules/@angular-devkit/architect/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "optional": true, "peer": true, "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -151,17 +151,17 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.0.6.tgz", - "integrity": "sha512-dWTAsE6BSI8z0xglQdYBdqTBwg1Q+RWE3OrmlGs+520Dcoq/F0Z41Y1F3MiuHuQPdDAIQr88iB0APkIRW4clMg==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.0.7.tgz", + "integrity": "sha512-R0vpJ+P5xBqF82zOMq2FvOP7pJz5NZ7PwHAIFuQ6z50SHLW/VcUA19ZoFKwxBX6A/Soyb66QXTcjZ5wbRqMm8w==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.6", - "@angular-devkit/build-webpack": "0.1900.6", - "@angular-devkit/core": "19.0.6", - "@angular/build": "19.0.6", + "@angular-devkit/architect": "0.1900.7", + "@angular-devkit/build-webpack": "0.1900.7", + "@angular-devkit/core": "19.0.7", + "@angular/build": "19.0.7", "@babel/core": "7.26.0", "@babel/generator": "7.26.2", "@babel/helper-annotate-as-pure": "7.25.9", @@ -172,7 +172,7 @@ "@babel/preset-env": "7.26.0", "@babel/runtime": "7.26.0", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "19.0.6", + "@ngtools/webpack": "19.0.7", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", @@ -226,7 +226,7 @@ "@angular/localize": "^19.0.0", "@angular/platform-server": "^19.0.0", "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.6", + "@angular/ssr": "^19.0.7", "@web/test-runner": "^0.19.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", @@ -277,9 +277,9 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.6.tgz", - "integrity": "sha512-WUWJhzQDsovfMY6jtb9Ktz/5sJszsaErj+XV2aXab85f1OweI/Iv2urPZnJwUSilvVN5Ok/fy3IJ6SuihK4Ceg==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -323,15 +323,15 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "optional": true, "peer": true, "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -339,13 +339,13 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1900.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1900.6.tgz", - "integrity": "sha512-WehtVrbBow4fc7hsaUKb+BZ6MDE5lO98/tgv7GR5PkRdGKnyLA0pW1AfPLJJQDgcaKjneramMhDFNc1eGSX0mQ==", + "version": "0.1900.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1900.7.tgz", + "integrity": "sha512-F0S0iyspo/9w9rP5F9wmL+ZkBr48YQIWiFu+PaQ0in/lcdRmY/FjVHTMa5BMnlew9VCtFHPvpoN9x4u8AIoWXA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1900.6", + "@angular-devkit/architect": "0.1900.7", "rxjs": "7.8.1" }, "engines": { @@ -359,13 +359,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.6.tgz", - "integrity": "sha512-R9hlHfAh1HKoIWgnYJlOEKhUezhTNl0fpUmHxG2252JSY5FLRxmYArTtJYYmbNdBbsBLNg3UHyM/GBPvJSA3NQ==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.7.tgz", + "integrity": "sha512-BHXQv6kMc9xo4TH9lhwMv8nrZXHkLioQvLun2qYjwvOsyzt3qd+sUM9wpHwbG6t+01+FIQ05iNN9ox+Cvpndgg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.6", + "@angular-devkit/core": "19.0.7", "jsonc-parser": "3.3.1", "magic-string": "0.30.12", "ora": "5.4.1", @@ -378,9 +378,9 @@ } }, "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.6.tgz", - "integrity": "sha512-WUWJhzQDsovfMY6jtb9Ktz/5sJszsaErj+XV2aXab85f1OweI/Iv2urPZnJwUSilvVN5Ok/fy3IJ6SuihK4Ceg==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -424,15 +424,15 @@ } }, "node_modules/@angular-devkit/schematics/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "optional": true, "peer": true, "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -440,9 +440,9 @@ } }, "node_modules/@angular/animations": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.5.tgz", - "integrity": "sha512-HCOF2CrhUvjoZWusd4nh32VOxpUrg6bV+3Z8Q36Ix3aZdni8v0qoP2rl5wGbotaPtYg5RtyDH60Z2AOPKqlrZg==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.6.tgz", + "integrity": "sha512-dlXrFcw7RQNze1zjmrbwqcFd6zgEuqKwuExtEN1Fy26kQ+wqKIhYO6IG7PZGef53XpwN5DT16yve6UihJ2XeNg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -451,18 +451,18 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.5" + "@angular/core": "19.0.6" } }, "node_modules/@angular/build": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.0.6.tgz", - "integrity": "sha512-KEVNLgTZUF2dfpOYQn+yR2HONHUTxq/2rFVhiK9qAvrm/m+uKJNEXx7hGtbRyoqenZff4ScJq+7feITUldfX8g==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.0.7.tgz", + "integrity": "sha512-AFvhRa6sfXG8NmS8AN7TvE8q2kVcMw+zXMZzo981cqwnOwJy4VHU0htqm5OZQnohVJM0pP8SBAuROWO4yRrxCA==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.6", + "@angular-devkit/architect": "0.1900.7", "@babel/core": "7.26.0", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", @@ -501,7 +501,7 @@ "@angular/localize": "^19.0.0", "@angular/platform-server": "^19.0.0", "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.6", + "@angular/ssr": "^19.0.7", "less": "^4.2.0", "postcss": "^8.4.0", "tailwindcss": "^2.0.0 || ^3.0.0", @@ -532,9 +532,9 @@ } }, "node_modules/@angular/cdk": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.4.tgz", - "integrity": "sha512-P8V1n6AFFjBUJG3YRgw8DiiNDWPZVrwQ42wbwgZxd4s2TQAuNFg3YY8h/DSMVxt2sXpavrshZsoLtP9yLKZjHA==", + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.5.tgz", + "integrity": "sha512-+D++QUrJlDuwk5RhQBDTejQseb0ZP6c6S4r8wBBab7UPtrwigySudSb0PxhiAzp2YHr5Ch3klhkTf/NSWeUXUQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -549,18 +549,18 @@ } }, "node_modules/@angular/cli": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.6.tgz", - "integrity": "sha512-ZEHhgRRVIdn10dbsAjB8TE9Co32hfuL9/im5Jcfa1yrn6KJefmigz6KN8Xu7FXMH5FkdqfQ11QpLBxJSPb9aww==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.7.tgz", + "integrity": "sha512-y6C4B4XdiZwe2+OADLWXyKqUVvW/XDzTuJ2mZ5PhTnSiiXDN4zRWId1F5wA8ve8vlbUKApPHXRQuaqiQJmA24g==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1900.6", - "@angular-devkit/core": "19.0.6", - "@angular-devkit/schematics": "19.0.6", + "@angular-devkit/architect": "0.1900.7", + "@angular-devkit/core": "19.0.7", + "@angular-devkit/schematics": "19.0.7", "@inquirer/prompts": "7.1.0", "@listr2/prompt-adapter-inquirer": "2.0.18", - "@schematics/angular": "19.0.6", + "@schematics/angular": "19.0.7", "@yarnpkg/lockfile": "1.1.0", "ini": "5.0.0", "jsonc-parser": "3.3.1", @@ -583,9 +583,9 @@ } }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.6.tgz", - "integrity": "sha512-WUWJhzQDsovfMY6jtb9Ktz/5sJszsaErj+XV2aXab85f1OweI/Iv2urPZnJwUSilvVN5Ok/fy3IJ6SuihK4Ceg==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -629,15 +629,15 @@ } }, "node_modules/@angular/cli/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "optional": true, "peer": true, "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -645,9 +645,9 @@ } }, "node_modules/@angular/common": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.0.5.tgz", - "integrity": "sha512-fFK+euCj1AjBHBCpj9VnduMSeqoMRhZZHbhPYiND7tucRRJ8vwGU0sYK2KI/Ko+fsrNIXL/0O4F36jVPl09Smg==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.0.6.tgz", + "integrity": "sha512-r9IDD0+UGkrQkjyX+pApeDmIJ9INpr1uYlgmmlWNBJCVNr9SKKIVZV60sssgadew6bGynKN9dW4mGsmEzzb5BA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -656,14 +656,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.5", + "@angular/core": "19.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.0.5.tgz", - "integrity": "sha512-S8ku5Ljp0kqX3shfmE9DVo09629jeYJSlBRGbj2Glb92dd+VQZPOz7KxqKRTwmAl7lQIV/+4Lr6G/GVTsoC4vg==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.0.6.tgz", + "integrity": "sha512-g8A6QOsiCJnRi5Hz0sASIpRQoAGxEgnjz0JanfrMNRedY4MpdIS1V0AeCSKTsMRlV7tQl3ng2Gse/tsb51HI3Q==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -672,7 +672,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.5" + "@angular/core": "19.0.6" }, "peerDependenciesMeta": { "@angular/core": { @@ -681,9 +681,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.0.5.tgz", - "integrity": "sha512-KSzuWCTZlvJsoAenxM9cjTOzNM8mrFxDBInj0KVPz7QU83amGS4rcv1pWO/QGYQcErfskcN84TAdMegaRWWCmA==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.0.6.tgz", + "integrity": "sha512-fHtwI5rCe3LmKDoaqlqLAPdNmLrbeCiMYVe+X1BHgApaqNCyAwcuJxuf8Q5R5su7nHiLmlmB74o1ZS/V+0cQ+g==", "dev": true, "license": "MIT", "dependencies": { @@ -705,7 +705,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "19.0.5", + "@angular/compiler": "19.0.6", "typescript": ">=5.5 <5.7" } }, @@ -740,9 +740,9 @@ } }, "node_modules/@angular/core": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.0.5.tgz", - "integrity": "sha512-Ywc6sPO6G/Y1stfk3y/MallV/h0yzQ0vdOHRWueLrk5kD1DTdbolV4X03Cs3PuVvravgcSVE3nnuuHFuH32emQ==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.0.6.tgz", + "integrity": "sha512-9N7FmdRHtS7zfXC/wnyap/reX7fgiOrWpVivayHjWP4RkLYXJAzJIpLyew0jrx4vf8r3lZnC0Zmq0PW007Ngjw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -756,9 +756,9 @@ } }, "node_modules/@angular/forms": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.5.tgz", - "integrity": "sha512-OhNFkfOoguqCDq07vNBV28FFrmTM8S11Z3Cd6PQZJJF9TgAtpV5KtF7A3eXBCN92W4pmqluomPjfK7YyImzIYQ==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.6.tgz", + "integrity": "sha512-HogauPvgDQHw2xxqKBaFgKTRRcc1xWeI/PByDCf3U6YsaqpF53Mz2CJh8X2bg2bY1RGKb67MZw7DBGFRvXx4bg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -767,16 +767,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.5", - "@angular/core": "19.0.5", - "@angular/platform-browser": "19.0.5", + "@angular/common": "19.0.6", + "@angular/core": "19.0.6", + "@angular/platform-browser": "19.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.0.5.tgz", - "integrity": "sha512-41+Jo5DEil4Ifvv+UE/p1l9YJtYN+xfhx+/C9cahVgvV5D2q+givyK73d0Mnb6XOfe1q+hoV5lZ+XhQYp21//g==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.0.6.tgz", + "integrity": "sha512-MWiToGy7Pa0rR61sgnEuu7dfZXpAw0g7nkSnw4xdjUf974OOOfI1LS9O9YevJibtdW8sPa1HaoXXwcb7N03B5A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -785,9 +785,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "19.0.5", - "@angular/common": "19.0.5", - "@angular/core": "19.0.5" + "@angular/animations": "19.0.6", + "@angular/common": "19.0.6", + "@angular/core": "19.0.6" }, "peerDependenciesMeta": { "@angular/animations": { @@ -796,9 +796,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.5.tgz", - "integrity": "sha512-KKFdue/uJVxkWdrntRAXkz+ycp4nD3SuGOH5pPf2svCBxieuHuFlWDi+DYVuFSEpC/ICCmlhrtzIAm44A4qzzQ==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.6.tgz", + "integrity": "sha512-5TGLOwPlLHXJ1+Hs9b3dEmGdTpb7dfLYalVmiMUZOFBry1sMaRuw+nyqjmWn1GP3yD156hzt5QDzWA8A134AfQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -807,16 +807,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.5", - "@angular/compiler": "19.0.5", - "@angular/core": "19.0.5", - "@angular/platform-browser": "19.0.5" + "@angular/common": "19.0.6", + "@angular/compiler": "19.0.6", + "@angular/core": "19.0.6", + "@angular/platform-browser": "19.0.6" } }, "node_modules/@angular/router": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.0.5.tgz", - "integrity": "sha512-6tNubVVj/rRyTg+OXjQxACfufvCLHAwDQtv9wqt6q/3OYSnysHTik3ho3FaFPwu7fXJ+6p9Rjzkh2VY9QMk4bw==", + "version": "19.0.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.0.6.tgz", + "integrity": "sha512-G1oz+TclPk48h6b6B4s5J3DfrDVJrrxKOA+KWeVQP4e1B8ld7/dCMf5nn3yqS4BGs4yLecxMxyvbOvOiZ//lxw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -825,9 +825,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.5", - "@angular/core": "19.0.5", - "@angular/platform-browser": "19.0.5", + "@angular/common": "19.0.6", + "@angular/core": "19.0.6", + "@angular/platform-browser": "19.0.6", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -3928,9 +3928,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.0.6.tgz", - "integrity": "sha512-eWrIb0tS1CK6+JvFS4GgTD4fN9TtmApKrlaj3pPQXKXKKd42361ec85fuQQXdb4G8eEEq0vyd/bn4NJllh/3vw==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.0.7.tgz", + "integrity": "sha512-jWyMuqtLKZB8Jnuqo27mG2cCQdl71lhM1oEdq3x7Z/QOrm2I+8EfyAzOLxB1f1vXt85O1bz3nf66CkuVCVGGTQ==", "dev": true, "license": "MIT", "engines": { @@ -4920,14 +4920,14 @@ ] }, "node_modules/@schematics/angular": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.6.tgz", - "integrity": "sha512-HicclmbW/+mlljU7a4PzbyIWG+7tognoL5LsgMFJQUDzJXHNjRt1riL0vk57o8Pcprnz9FheeWZXO1KRhXkQuw==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.7.tgz", + "integrity": "sha512-1WtTqKFPuEaV99VIP+y/gf/XW3TVJh/NbJbbEF4qYpp7qQiJ4ntF4klVZmsJcQzFucZSzlg91QVMPQKev5WZGA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.6", - "@angular-devkit/schematics": "19.0.6", + "@angular-devkit/core": "19.0.7", + "@angular-devkit/schematics": "19.0.7", "jsonc-parser": "3.3.1" }, "engines": { @@ -4937,9 +4937,9 @@ } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "19.0.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.6.tgz", - "integrity": "sha512-WUWJhzQDsovfMY6jtb9Ktz/5sJszsaErj+XV2aXab85f1OweI/Iv2urPZnJwUSilvVN5Ok/fy3IJ6SuihK4Ceg==", + "version": "19.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.7.tgz", + "integrity": "sha512-VyuORSitT6LIaGUEF0KEnv2TwNaeWl6L3/4L4stok0BJ23B4joVca2DYVcrLC1hSzz8V4dwVgSlbNIgjgGdVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -4983,15 +4983,15 @@ } }, "node_modules/@schematics/angular/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "optional": true, "peer": true, "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -5249,9 +5249,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", - "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.4.tgz", + "integrity": "sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w==", "dev": true, "license": "MIT", "dependencies": { @@ -7327,9 +7327,9 @@ } }, "node_modules/domutils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", - "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8557,9 +8557,9 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", "dev": true, "license": "MIT" }, @@ -10157,9 +10157,9 @@ } }, "node_modules/memfs": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.15.2.tgz", - "integrity": "sha512-n8/qP8AT6CtY6kxCPYgYVusT5rS6axaT66dD3tYi2lm+l1iMH7YYpmW8H/qL5bfV4YvInCCgUDAWIRvrNS7kbQ==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.0.tgz", + "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", "dev": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 57327163..a919a8aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gameon-front", - "version": "4.3.0", + "version": "4.4.0", "scripts": { "ng": "ng", "start": "ng serve", @@ -10,15 +10,15 @@ }, "private": true, "dependencies": { - "@angular/animations": "^19.0.5", - "@angular/cdk": "^19.0.4", - "@angular/common": "^19.0.5", - "@angular/compiler": "^19.0.5", - "@angular/core": "^19.0.5", - "@angular/forms": "^19.0.5", - "@angular/platform-browser": "^19.0.5", - "@angular/platform-browser-dynamic": "^19.0.5", - "@angular/router": "^19.0.5", + "@angular/animations": "^19.0.6", + "@angular/cdk": "^19.0.5", + "@angular/common": "^19.0.6", + "@angular/compiler": "^19.0.6", + "@angular/core": "^19.0.6", + "@angular/forms": "^19.0.6", + "@angular/platform-browser": "^19.0.6", + "@angular/platform-browser-dynamic": "^19.0.6", + "@angular/router": "^19.0.6", "@fortawesome/angular-fontawesome": "^1.0.0", "@fortawesome/free-solid-svg-icons": "^6.7.2", "@ngrx/store": "^19.0.0", @@ -32,9 +32,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^19.0.6", - "@angular/cli": "^19.0.6", - "@angular/compiler-cli": "^19.0.5", + "@angular-devkit/build-angular": "^19.0.7", + "@angular/cli": "^19.0.7", + "@angular/compiler-cli": "^19.0.6", "@types/jasmine": "~5.1.0", "autoprefixer": "^10.4.20", "jasmine-core": "~5.1.0", diff --git a/src/app/admin/admin-routing.module.ts b/src/app/admin/admin-routing.module.ts index 90d7c7fa..ff32be30 100644 --- a/src/app/admin/admin-routing.module.ts +++ b/src/app/admin/admin-routing.module.ts @@ -1,7 +1,6 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { AdminHomeComponent } from './home/admin-home.component'; -import { AuthGuard } from '../shared/guards/auth.guard'; import { AdminLayoutComponent } from './admin-layout.component'; import { AdminPlatformsComponent } from './platforms/admin-platforms.component'; import { AdminPlatformEditComponent } from './platforms/edit/admin-platform-edit.component'; @@ -14,13 +13,14 @@ import { AdminSeasonsComponent } from './seasons/admin-seasons.component'; import { AdminEditTournamentComponent } from './tournaments/edit/admin-edit-tournament.component'; import { AdminCreateTournamentComponent } from './tournaments/create/admin-create-tournament.component'; import { AdminTournamentsComponent } from './tournaments/admin-tournaments.component'; +import { canActivateAuthRole } from '../shared/guards/auth.guard'; const routes: Routes = [ { path: '', component: AdminLayoutComponent, - canActivate: [AuthGuard], - data: { roles: ['gameon_admin'] }, + canActivate: [canActivateAuthRole], + data: { role: 'gameon_admin' }, children: [ { path: '', diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index e3ba4b13..03bab688 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -4,7 +4,7 @@ import { CommonLayoutComponent } from './shared/layouts/common-layout.component' import { NotFoundComponent } from './shared/components/not-found/not-found.component'; import { HomeComponent } from './home/home.component'; import { ProfilePageComponent } from './players/me/profile.component'; -import { AuthGuard } from './shared/guards/auth.guard'; +import { canActivateAuthRole } from './shared/guards/auth.guard'; import { PlayerDetailsComponent } from './players/details/player-details.component'; import { ChangelogComponent } from './changelog/changelog.component'; import { DonateComponent } from './donate/donate.component'; @@ -15,7 +15,7 @@ import { LolHomeComponent } from './lol/lol-home.component'; import { LolPlayerDetailsComponent } from './lol/player/lol-player-details.component'; import { LolGameDetailsComponent } from './lol/games/details/lol-game-details.component'; -const routes: Routes = [ +export const routes: Routes = [ { path: '', component: CommonLayoutComponent, @@ -51,7 +51,8 @@ const routes: Routes = [ { path: 'player/me', component: ProfilePageComponent, - canActivate: [AuthGuard], + canActivate: [canActivateAuthRole], + data: { role: 'default-roles-gameon' }, }, { path: 'player/:id', diff --git a/src/app/app.component.ts b/src/app/app.component.ts index c0a6187d..cf2ab6d7 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,10 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, inject, OnInit } from '@angular/core'; import { initFlowbite } from 'flowbite'; -import { KeycloakService } from 'keycloak-angular'; import { Store } from '@ngrx/store'; import { setPlayer, setPlayerStats } from './store/actions/player.actions'; import { Player } from './shared/classes/common/Player'; import { GameOnPlayerService } from './shared/services/common/gameon-player.service'; +import Keycloak from 'keycloak-js'; @Component({ selector: 'app-root', @@ -13,8 +13,11 @@ import { GameOnPlayerService } from './shared/services/common/gameon-player.serv standalone: false, }) export class AppComponent implements OnInit { + private readonly keycloak = inject(Keycloak); + + isLoggedIn = false; + constructor( - private keycloak: KeycloakService, private playerService: GameOnPlayerService, private store: Store<{ player: Player }> ) {} @@ -22,7 +25,12 @@ export class AppComponent implements OnInit { ngOnInit(): void { initFlowbite(); - if (this.keycloak.isLoggedIn()) { + this.isLoggedIn = + this.keycloak.authenticated != null && this.keycloak.authenticated + ? true + : false; + + if (this.isLoggedIn) { // Getting its account, and setting it into store this.playerService.getCurrent().subscribe( (data) => { diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a6458aeb..a8ba42fd 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,12 +1,18 @@ -import { APP_INITIALIZER, NgModule } from '@angular/core'; +import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; -import { KeycloakAngularModule, KeycloakService } from 'keycloak-angular'; +import { + createInterceptorCondition, + INCLUDE_BEARER_TOKEN_INTERCEPTOR_CONFIG, + IncludeBearerTokenCondition, + includeBearerTokenInterceptor, + provideKeycloak, +} from 'keycloak-angular'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { environment } from '../environments/environment'; import { SharedModule } from './shared/modules/shared.module'; import { CommonLayoutComponent } from './shared/layouts/common-layout.component'; -import { HttpClientModule } from '@angular/common/http'; +import { provideHttpClient, withInterceptors } from '@angular/common/http'; import { HomeComponent } from './home/home.component'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @@ -34,21 +40,15 @@ import { HomeChangelogComponent } from './home/components/changelog/home-changel import { HomeFifaComponent } from './home/components/fifa/home-fifa.component'; import { HomeLolComponent } from './home/components/lol/home-lol.component'; -function initializeKeycloak(keycloak: KeycloakService) { - return () => - keycloak.init({ - config: { - url: environment.keycloak.url, - realm: environment.keycloak.realm, - clientId: environment.keycloak.clientId, - }, - initOptions: { - onLoad: 'check-sso', - silentCheckSsoRedirectUri: - window.location.origin + '/assets/silent-check-sso.html', - }, - }); -} +const devCondition = createInterceptorCondition({ + urlPattern: /^(http:\/\/localhost:5184)(\/.*)?$/i, + bearerPrefix: 'Bearer', +}); + +const prodCondition = createInterceptorCondition({ + urlPattern: /^(https:\/\/gameon-api.valentinvirot.fr)(\/.*)?$/i, + bearerPrefix: 'Bearer', +}); @NgModule({ declarations: [ @@ -75,7 +75,6 @@ function initializeKeycloak(keycloak: KeycloakService) { imports: [ BrowserModule, AppRoutingModule, - KeycloakAngularModule, SharedModule, FontAwesomeModule, BrowserAnimationsModule, @@ -83,17 +82,26 @@ function initializeKeycloak(keycloak: KeycloakService) { player: playerReducer, globalStats: playerStatsReducer, }), - HttpClientModule, ClipboardModule, AdminModule, ], providers: [ + provideKeycloak({ + config: { + url: environment.keycloak.url, + realm: environment.keycloak.realm, + clientId: environment.keycloak.clientId, + }, + initOptions: { + onLoad: 'check-sso', + silentCheckSsoRedirectUri: `${window.location.origin}/assets/silent-check-sso.html`, + }, + }), { - provide: APP_INITIALIZER, - useFactory: initializeKeycloak, - multi: true, - deps: [KeycloakService], + provide: INCLUDE_BEARER_TOKEN_INTERCEPTOR_CONFIG, + useValue: [devCondition, prodCondition], }, + provideHttpClient(withInterceptors([includeBearerTokenInterceptor])), ], bootstrap: [AppComponent], }) diff --git a/src/app/donate/donate.component.html b/src/app/donate/donate.component.html index c8625d63..689ae68f 100644 --- a/src/app/donate/donate.component.html +++ b/src/app/donate/donate.component.html @@ -1,5 +1,5 @@
-
+
+
- +
-
+
Équipe #1 @@ -94,7 +90,7 @@
-
+
Équipe #2 @@ -170,7 +166,7 @@
-
+
Plateforme @@ -191,7 +187,7 @@
-
+
- +
-
+
-
+
Détails du match @@ -62,7 +57,6 @@ *ngIf="loading == false" id="game-details" class="m-4 mt-4 bg-bgLight dark:bg-bgDark p-4 rounded-lg drop-shadow-lg" - [@inOutAnimation] > Temps forts @@ -142,7 +135,6 @@
Équipe #2 @@ -294,7 +280,6 @@ *ngIf="loading == false && game.team1 != null" id="players-team2-list" class="px-4 mt-4" - [@inOutAnimation] >
diff --git a/src/app/fifa/fifa-home.component.ts b/src/app/fifa/fifa-home.component.ts index f71538d9..aa873cb8 100644 --- a/src/app/fifa/fifa-home.component.ts +++ b/src/app/fifa/fifa-home.component.ts @@ -1,16 +1,16 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, inject, OnInit } from '@angular/core'; import { faChevronDown, faChevronRight, faExternalLinkAlt, faSoccerBall, } from '@fortawesome/free-solid-svg-icons'; -import { KeycloakService } from 'keycloak-angular'; import { Router } from '@angular/router'; import { GameOnPlatformService } from '../shared/services/common/gameon-platform.service'; import { Platform } from '../shared/classes/common/Platform'; import { FifaGamePlayed } from '../shared/classes/fifa/FifaGamePlayed'; import { GameOnGameService } from '../shared/services/fifa/gameon-game.service'; +import Keycloak from 'keycloak-js'; @Component({ selector: 'app-fifa-home', @@ -19,6 +19,8 @@ import { GameOnGameService } from '../shared/services/fifa/gameon-game.service'; standalone: false, }) export class FifaHomeComponent implements OnInit { + private readonly keycloak = inject(Keycloak); + loading = true; games: FifaGamePlayed[] = []; platforms: Platform[] = []; @@ -37,12 +39,14 @@ export class FifaHomeComponent implements OnInit { constructor( private gameService: GameOnGameService, private platformService: GameOnPlatformService, - private keycloak: KeycloakService, private router: Router ) {} ngOnInit(): void { - this.isLoggedIn = this.keycloak.isLoggedIn(); + this.isLoggedIn = + this.keycloak.authenticated != null && this.keycloak.authenticated + ? true + : false; this.loading = true; this.getPlatforms(); this.getGames(); diff --git a/src/app/fifa/fifa-routing.module.ts b/src/app/fifa/fifa-routing.module.ts index 7cb0bb5c..e2c69f96 100644 --- a/src/app/fifa/fifa-routing.module.ts +++ b/src/app/fifa/fifa-routing.module.ts @@ -3,11 +3,11 @@ import { RouterModule, Routes } from '@angular/router'; import { CommonLayoutComponent } from '../shared/layouts/common-layout.component'; import { FifaHomeComponent } from './fifa-home.component'; import { FifaCreateGameComponent } from './create/fifa-create-game.component'; -import { AuthGuard } from '../shared/guards/auth.guard'; import { FifaGameDetailsComponent } from './details/fifa-game-details.component'; import { TournamentsHomeComponent } from './tournaments/tournaments-home.component'; import { TournamentsDetailsComponent } from './tournaments/details/tournaments-details.component'; import { FifaGlobalStatsComponent } from './global-stats/fifa-global-stats.component'; +import { canActivateAuthRole } from '../shared/guards/auth.guard'; const routes: Routes = [ { @@ -25,7 +25,8 @@ const routes: Routes = [ { path: 'create', component: FifaCreateGameComponent, - canActivate: [AuthGuard], + canActivate: [canActivateAuthRole], + data: { role: 'default-roles-gameon' }, }, { path: 'details/:id', diff --git a/src/app/fifa/global-stats/fifa-global-stats.component.ts b/src/app/fifa/global-stats/fifa-global-stats.component.ts index 682e2c45..16ca3bf9 100644 --- a/src/app/fifa/global-stats/fifa-global-stats.component.ts +++ b/src/app/fifa/global-stats/fifa-global-stats.component.ts @@ -28,7 +28,6 @@ export class FifaGlobalStatsComponent implements OnInit { ngOnInit(): void { this.commonService.getGlobalStats().subscribe( (data) => { - console.log(data); this.loading = false; this.globalStats = data; }, diff --git a/src/app/fifa/tournaments/details/tournaments-details.component.html b/src/app/fifa/tournaments/details/tournaments-details.component.html index 56d59ee5..3afd5aeb 100644 --- a/src/app/fifa/tournaments/details/tournaments-details.component.html +++ b/src/app/fifa/tournaments/details/tournaments-details.component.html @@ -1,14 +1,10 @@
- +
@@ -41,7 +37,6 @@ id="tournament-detail-card" class="px-4" *ngIf="loading == false && tournament != null" - [@inOutAnimation] >
@@ -95,7 +88,6 @@
@@ -148,7 +138,6 @@ tournament.description != null && showRules == true " - [@inOutAnimation] >