Compare commits

...

4 Commits

Author SHA1 Message Date
edaffc82e4 Updated angular-material
All checks were successful
Gitea/swiss-client/pipeline/head This commit looks good
2025-09-30 23:21:53 +02:00
1dbc2f1ca9 Updated angular-core 2025-09-30 23:01:46 +02:00
21fa706b45 Updated angular-cli 2025-09-30 23:00:57 +02:00
f2ee2b467d Fixed authguard 2025-09-30 22:59:13 +02:00
10 changed files with 1022 additions and 455 deletions

536
package-lock.json generated
View File

@@ -8,19 +8,19 @@
"name": "swiss-client", "name": "swiss-client",
"version": "0.0.0", "version": "0.0.0",
"dependencies": { "dependencies": {
"@angular/animations": "^20.2.1", "@angular/animations": "^20.3.2",
"@angular/cdk": "^20.2.0", "@angular/cdk": "^20.2.5",
"@angular/common": "^20.2.1", "@angular/common": "^20.3.2",
"@angular/compiler": "^20.2.1", "@angular/compiler": "^20.3.2",
"@angular/core": "^20.2.1", "@angular/core": "^20.3.2",
"@angular/forms": "^20.2.1", "@angular/forms": "^20.3.2",
"@angular/material": "^20.2.0", "@angular/material": "^20.2.5",
"@angular/material-moment-adapter": "^20.2.0", "@angular/material-moment-adapter": "^20.2.5",
"@angular/platform-browser": "^20.2.1", "@angular/platform-browser": "^20.3.2",
"@angular/platform-browser-dynamic": "^20.2.1", "@angular/platform-browser-dynamic": "^20.3.2",
"@angular/platform-server": "^20.2.1", "@angular/platform-server": "^20.3.2",
"@angular/router": "^20.2.1", "@angular/router": "^20.3.2",
"@angular/ssr": "^20.2.0", "@angular/ssr": "^20.3.3",
"@ng-bootstrap/ng-bootstrap": "^19.0.1", "@ng-bootstrap/ng-bootstrap": "^19.0.1",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.7", "bootstrap": "^5.3.7",
@@ -34,10 +34,10 @@
"zone.js": "~0.15.1" "zone.js": "~0.15.1"
}, },
"devDependencies": { "devDependencies": {
"@angular/build": "^20.2.0", "@angular/build": "^20.3.3",
"@angular/cli": "^20.2.0", "@angular/cli": "^20.3.3",
"@angular/compiler-cli": "^20.2.1", "@angular/compiler-cli": "^20.3.2",
"@angular/localize": "^20.2.1", "@angular/localize": "^20.3.2",
"@types/express": "^5.0.3", "@types/express": "^5.0.3",
"@types/jasmine": "~5.1.0", "@types/jasmine": "~5.1.0",
"@types/node": "^24.2.1", "@types/node": "^24.2.1",
@@ -273,13 +273,13 @@
} }
}, },
"node_modules/@angular-devkit/architect": { "node_modules/@angular-devkit/architect": {
"version": "0.2002.0", "version": "0.2003.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2002.0.tgz", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2003.3.tgz",
"integrity": "sha512-PaBXFP1kdUuNtMie0lWnitlYbq8o1gz/s0YIa8oY1X3swOJ7bP6kBfxTb9opV5uXAOkXg2zCdnZ4Eu1aVkgPGw==", "integrity": "sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@angular-devkit/core": "20.2.0", "@angular-devkit/core": "20.3.3",
"rxjs": "7.8.2" "rxjs": "7.8.2"
}, },
"engines": { "engines": {
@@ -289,9 +289,9 @@
} }
}, },
"node_modules/@angular-devkit/core": { "node_modules/@angular-devkit/core": {
"version": "20.2.0", "version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-20.3.3.tgz",
"integrity": "sha512-3CM6Zsr09Kf92ItFkxijlnC4+ZOgkxdCk0vFYvuw9UuvTDNwyIqJi6693PRPRbcXgpdY2vs6u99elSvQVmoEEw==", "integrity": "sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -317,13 +317,13 @@
} }
}, },
"node_modules/@angular-devkit/schematics": { "node_modules/@angular-devkit/schematics": {
"version": "20.2.0", "version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-20.3.3.tgz",
"integrity": "sha512-TCPIN6Bd04oGuNocETmsd9hzGYrjrivisbMKb0WOuDi3OnCkmWqsPR+QA2kYwTOGqG3HXkz/z3CA0g04M2fgrQ==", "integrity": "sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@angular-devkit/core": "20.2.0", "@angular-devkit/core": "20.3.3",
"jsonc-parser": "3.3.1", "jsonc-parser": "3.3.1",
"magic-string": "0.30.17", "magic-string": "0.30.17",
"ora": "8.2.0", "ora": "8.2.0",
@@ -336,9 +336,9 @@
} }
}, },
"node_modules/@angular/animations": { "node_modules/@angular/animations": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-20.3.2.tgz",
"integrity": "sha512-g4yLXwXCF7OAahx1xI4FXRwG4dIXfBqHsvlpx2TappaMRpiPp7PfP2cW6l3ox+KRpTWhSvcRqbJyIOWad0f7Rw==", "integrity": "sha512-za7onSElEUbaI9iS8j7nKf8FjyvVng6wFsb2ZuHxr71dMgnYkqPfMu0KMP+mkZ3yUVc//7SllXcSkGBHShyCcw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -347,19 +347,18 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": "20.2.1", "@angular/core": "20.3.2"
"@angular/core": "20.2.1"
} }
}, },
"node_modules/@angular/build": { "node_modules/@angular/build": {
"version": "20.2.0", "version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/build/-/build-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular/build/-/build-20.3.3.tgz",
"integrity": "sha512-/Yhqhg01UvX0E+tx4WAeK3AnwpZLqcw+XKTmsPsH5rbqpLKNRR9XsC3PJ4qBFU1u9/Lh13mmmr1+pG2p8ixMug==", "integrity": "sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ampproject/remapping": "2.3.0", "@ampproject/remapping": "2.3.0",
"@angular-devkit/architect": "0.2002.0", "@angular-devkit/architect": "0.2003.3",
"@babel/core": "7.28.3", "@babel/core": "7.28.3",
"@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-annotate-as-pure": "7.27.3",
"@babel/helper-split-export-declaration": "7.24.7", "@babel/helper-split-export-declaration": "7.24.7",
@@ -377,12 +376,12 @@
"parse5-html-rewriting-stream": "8.0.0", "parse5-html-rewriting-stream": "8.0.0",
"picomatch": "4.0.3", "picomatch": "4.0.3",
"piscina": "5.1.3", "piscina": "5.1.3",
"rolldown": "1.0.0-beta.32", "rolldown": "1.0.0-beta.38",
"sass": "1.90.0", "sass": "1.90.0",
"semver": "7.7.2", "semver": "7.7.2",
"source-map-support": "0.5.21", "source-map-support": "0.5.21",
"tinyglobby": "0.2.14", "tinyglobby": "0.2.14",
"vite": "7.1.2", "vite": "7.1.5",
"watchpack": "2.4.4" "watchpack": "2.4.4"
}, },
"engines": { "engines": {
@@ -401,7 +400,7 @@
"@angular/platform-browser": "^20.0.0", "@angular/platform-browser": "^20.0.0",
"@angular/platform-server": "^20.0.0", "@angular/platform-server": "^20.0.0",
"@angular/service-worker": "^20.0.0", "@angular/service-worker": "^20.0.0",
"@angular/ssr": "^20.2.0", "@angular/ssr": "^20.3.3",
"karma": "^6.4.0", "karma": "^6.4.0",
"less": "^4.2.0", "less": "^4.2.0",
"ng-packagr": "^20.0.0", "ng-packagr": "^20.0.0",
@@ -464,9 +463,9 @@
} }
}, },
"node_modules/@angular/cdk": { "node_modules/@angular/cdk": {
"version": "20.2.0", "version": "20.2.5",
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-20.2.5.tgz",
"integrity": "sha512-BZkhRMr3nEOHHCzEgKZM537G4aq0VAwoejhYn7oIvY0UU+arHKz+U7Gc44KH5GaAgVLojtJtkFXsArifzYUwzw==", "integrity": "sha512-1cpR/5jeKXLR1D+PsEvRn0QhSWD3/AjtbugJF5nlx/7L90YXhNFCmNAxAkdFKSn4YIDoPwMHgvOpS7yb51wohQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"parse5": "^8.0.0", "parse5": "^8.0.0",
@@ -479,19 +478,19 @@
} }
}, },
"node_modules/@angular/cli": { "node_modules/@angular/cli": {
"version": "20.2.0", "version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-20.3.3.tgz",
"integrity": "sha512-p62hkuQOxf5kJsVq6AT7B1MHYo1uPGoZV4lf47qOrLjl0WANwfxEgLvyuVgL47ylnINbPnITeeUdoadVn4t1sw==", "integrity": "sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@angular-devkit/architect": "0.2002.0", "@angular-devkit/architect": "0.2003.3",
"@angular-devkit/core": "20.2.0", "@angular-devkit/core": "20.3.3",
"@angular-devkit/schematics": "20.2.0", "@angular-devkit/schematics": "20.3.3",
"@inquirer/prompts": "7.8.2", "@inquirer/prompts": "7.8.2",
"@listr2/prompt-adapter-inquirer": "3.0.1", "@listr2/prompt-adapter-inquirer": "3.0.1",
"@modelcontextprotocol/sdk": "1.17.3", "@modelcontextprotocol/sdk": "1.17.3",
"@schematics/angular": "20.2.0", "@schematics/angular": "20.3.3",
"@yarnpkg/lockfile": "1.1.0", "@yarnpkg/lockfile": "1.1.0",
"algoliasearch": "5.35.0", "algoliasearch": "5.35.0",
"ini": "5.0.0", "ini": "5.0.0",
@@ -553,9 +552,9 @@
} }
}, },
"node_modules/@angular/common": { "node_modules/@angular/common": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.2.tgz",
"integrity": "sha512-T6RYnDZA9TyYhj2hUz4set8p4RbBCg6IKUvy6qzdKTl4nn4xQ0XUV7aGBYN4LKiGrse9lzlVUAyXtkhmwuBbCQ==", "integrity": "sha512-5V9AzLhCA1dNhF+mvihmdHoZHbEhIb1jNYRA1/JMheR+G7NR8Mznu6RmWaKSWZ4AJeSJN8rizWN2wpVPWTKjSQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -564,14 +563,14 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/core": "20.2.1", "@angular/core": "20.3.2",
"rxjs": "^6.5.3 || ^7.4.0" "rxjs": "^6.5.3 || ^7.4.0"
} }
}, },
"node_modules/@angular/compiler": { "node_modules/@angular/compiler": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.2.tgz",
"integrity": "sha512-ghVt1E8xmwjMwqyGRwXYJkr7fz40VEreUSX1q+gEzbGTftVrK1foxPT8jcueIn0ztArDf7+zSMtu314FiJZyYA==", "integrity": "sha512-5fSzkPmRomZ9H43c82FJWLwdOi7MICMimP1y1oYJZcUh3jYRhXUrQvD0jifdRVkkgKNjaZYlMr0NkrYQFgFong==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -581,9 +580,9 @@
} }
}, },
"node_modules/@angular/compiler-cli": { "node_modules/@angular/compiler-cli": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.2.tgz",
"integrity": "sha512-VpbcRqNPJvy1L9RDtGGQsQiOrMzxodUWklphbtnh9MrrK6lLuy6Qj2ROiW7vKL9WfLTCXWA24gBAcMAR76dq3Q==", "integrity": "sha512-rLox2THiALVQqYGUaxZ6YD8qUoXIOGTw3s0tim9/U65GuXGRtYgG0ZQWYp3yjEBes0Ksx2/15eFPp1Ol4FdEKQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/core": "7.28.3", "@babel/core": "7.28.3",
@@ -603,7 +602,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/compiler": "20.2.1", "@angular/compiler": "20.3.2",
"typescript": ">=5.8 <6.0" "typescript": ">=5.8 <6.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
@@ -613,9 +612,9 @@
} }
}, },
"node_modules/@angular/core": { "node_modules/@angular/core": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.2.tgz",
"integrity": "sha512-/hl3AkmdQ62P9ttmfULEDg9GIz7BkzhGv9bSH2ssiU3Y4ax6eM8uQXEbMxBA8OUKOvg1Q4POcNHIiJQgO5t28Q==", "integrity": "sha512-88uPgs5LjtnywnQaZE2ShBb1wa8IuD6jWs4nc4feo32QdBc55tjebTBFJSHbi3mUVAp0eS4wI6ITo0YIb01H4g==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -624,7 +623,7 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/compiler": "20.2.1", "@angular/compiler": "20.3.2",
"rxjs": "^6.5.3 || ^7.4.0", "rxjs": "^6.5.3 || ^7.4.0",
"zone.js": "~0.15.0" "zone.js": "~0.15.0"
}, },
@@ -638,9 +637,9 @@
} }
}, },
"node_modules/@angular/forms": { "node_modules/@angular/forms": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-20.3.2.tgz",
"integrity": "sha512-SfkiHEIFPLtTKeaXUTpRfYnpJDxaeKiTi0YqfvzEjKE68qH0t+pQ4rL0Poch2/l4snP6JS1XzO/nDve1dk3vZw==", "integrity": "sha512-ECIbtwc7n9fPbiZXZVaoZpSiOksgcNbZ27oUN9BT7EmoXRzBw6yDL2UX6Ig7pEKhQGyBkKB+TMerRwTDVkkCWg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -649,16 +648,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": "20.2.1", "@angular/common": "20.3.2",
"@angular/core": "20.2.1", "@angular/core": "20.3.2",
"@angular/platform-browser": "20.2.1", "@angular/platform-browser": "20.3.2",
"rxjs": "^6.5.3 || ^7.4.0" "rxjs": "^6.5.3 || ^7.4.0"
} }
}, },
"node_modules/@angular/localize": { "node_modules/@angular/localize": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-20.3.2.tgz",
"integrity": "sha512-vemzYcHt6YX4FutpgNXiXTpKCMVaJdOG/m2+oJyvnr8KvdlrJKczXraPVY4ER+WJiHC5IQSg24otdSFc0UH2JA==", "integrity": "sha512-RZMHgLZV1Aka7rUKvQbg08Dn+dMyVBEGTlUS6/bTDoB1Xq2UE9L8YKmlnEDQyzveO5vTsPvZZQRL4iLc4IokzQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/core": "7.28.3", "@babel/core": "7.28.3",
@@ -675,20 +674,20 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/compiler": "20.2.1", "@angular/compiler": "20.3.2",
"@angular/compiler-cli": "20.2.1" "@angular/compiler-cli": "20.3.2"
} }
}, },
"node_modules/@angular/material": { "node_modules/@angular/material": {
"version": "20.2.0", "version": "20.2.5",
"resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular/material/-/material-20.2.5.tgz",
"integrity": "sha512-lwkV1VP7PkC/dhPRXLeYaNtPaIAOjI8/zfpkPnmxJuGA7t7hkngtTxmY+6gElDAtfnle9ZJulW4KndKGr3ng/g==", "integrity": "sha512-zgmHqPykH3InEsVmNSpcVicXLWcYKHIt9Nv/J86K3NZDw4/IQgpfujnr7IotLwc9VpgI4Cl7Jbo95tFVFQAYmw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/cdk": "20.2.0", "@angular/cdk": "20.2.5",
"@angular/common": "^20.0.0 || ^21.0.0", "@angular/common": "^20.0.0 || ^21.0.0",
"@angular/core": "^20.0.0 || ^21.0.0", "@angular/core": "^20.0.0 || ^21.0.0",
"@angular/forms": "^20.0.0 || ^21.0.0", "@angular/forms": "^20.0.0 || ^21.0.0",
@@ -697,23 +696,23 @@
} }
}, },
"node_modules/@angular/material-moment-adapter": { "node_modules/@angular/material-moment-adapter": {
"version": "20.2.0", "version": "20.2.5",
"resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-20.2.5.tgz",
"integrity": "sha512-JzzUp3ZHhKkK8SNMPaDf+YUfFmR27WGzm5W4dKGwyLlMk9rXcVY1icHslzsO6ndion6QUJkKBgihpcG5jxvhvg==", "integrity": "sha512-d3unwWDlaleN82gf6EWTQxPrRp46OUIVr/5/lO1xscy5sINTZJcw2OxQikpKZvZiMb+obeKgjzUHiJuLqRJbmQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/core": "^20.0.0 || ^21.0.0", "@angular/core": "^20.0.0 || ^21.0.0",
"@angular/material": "20.2.0", "@angular/material": "20.2.5",
"moment": "^2.18.1" "moment": "^2.18.1"
} }
}, },
"node_modules/@angular/platform-browser": { "node_modules/@angular/platform-browser": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-20.3.2.tgz",
"integrity": "sha512-oxDih/A8G7W+I6oAip+sev+kebioYmzhB/NMzF8C8zx/ieVDzatJ+YeEZQt7eDaJLH94S4sIC25SPq3OFIabxg==", "integrity": "sha512-d9XcT2UuWZCc0UOtkCcPEnMcOFKNczahamT/Izg3H9jLS3IcT6l0ry23d/Xf0DRwhLYQdOZiG7l8HMZ1sWPMOg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -722,9 +721,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/animations": "20.2.1", "@angular/animations": "20.3.2",
"@angular/common": "20.2.1", "@angular/common": "20.3.2",
"@angular/core": "20.2.1" "@angular/core": "20.3.2"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"@angular/animations": { "@angular/animations": {
@@ -733,9 +732,9 @@
} }
}, },
"node_modules/@angular/platform-browser-dynamic": { "node_modules/@angular/platform-browser-dynamic": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.2.tgz",
"integrity": "sha512-bzBeDnRZFzlA5w5q5GskuKhLgAeJ3pU0B3Ch7V2fhfaAZDOTEczBFvL7I1pcXhDg8Y/8aoz4/OwqnilKLO3FUg==", "integrity": "sha512-ehoV67Vxr3ZE8BJ3g7Q4ZLHo3qJVoDUDz/4UeCqmDeOnKxcdD53HTA/pgOO4QhKStUFbzgU19OQD4e6fkP8YoQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -744,16 +743,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": "20.2.1", "@angular/common": "20.3.2",
"@angular/compiler": "20.2.1", "@angular/compiler": "20.3.2",
"@angular/core": "20.2.1", "@angular/core": "20.3.2",
"@angular/platform-browser": "20.2.1" "@angular/platform-browser": "20.3.2"
} }
}, },
"node_modules/@angular/platform-server": { "node_modules/@angular/platform-server": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-20.3.2.tgz",
"integrity": "sha512-yjos8jgHwcih9lF/CKjbKxzzc83NM+ZoIdm/XSVv9yg+QDnTsc6bLF3QZ+OChCoaCks/UtWUwyM7Ux2g/VvVFA==", "integrity": "sha512-D7tf5S5xxQQUDtw/dkMa2XePnxHwyZElN5FQP99ByiEy9PjT1iFjyKuP9jjHsI4Nmi+Juq0F1uo4azPfPaV/3w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0", "tslib": "^2.3.0",
@@ -763,17 +762,17 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": "20.2.1", "@angular/common": "20.3.2",
"@angular/compiler": "20.2.1", "@angular/compiler": "20.3.2",
"@angular/core": "20.2.1", "@angular/core": "20.3.2",
"@angular/platform-browser": "20.2.1", "@angular/platform-browser": "20.3.2",
"rxjs": "^6.5.3 || ^7.4.0" "rxjs": "^6.5.3 || ^7.4.0"
} }
}, },
"node_modules/@angular/router": { "node_modules/@angular/router": {
"version": "20.2.1", "version": "20.3.2",
"resolved": "https://registry.npmjs.org/@angular/router/-/router-20.2.1.tgz", "resolved": "https://registry.npmjs.org/@angular/router/-/router-20.3.2.tgz",
"integrity": "sha512-f8KfG55EVnFDC9ud+MbxAP6voKi7hVQH4YaqPK0Lm6pyc1Xp0I5W25iRbg+Y1rO1csHKHauBPkUEESEuVGBGqg==", "integrity": "sha512-+Crx6QpK00juoNU3A1vbVf4DQ7fduLe3DUdAob6a9Uj+IoWj2Ijd8zUWF8E0cfNNFotJ4Gost0lJORDvqKcC7A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -782,16 +781,16 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0" "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": "20.2.1", "@angular/common": "20.3.2",
"@angular/core": "20.2.1", "@angular/core": "20.3.2",
"@angular/platform-browser": "20.2.1", "@angular/platform-browser": "20.3.2",
"rxjs": "^6.5.3 || ^7.4.0" "rxjs": "^6.5.3 || ^7.4.0"
} }
}, },
"node_modules/@angular/ssr": { "node_modules/@angular/ssr": {
"version": "20.2.0", "version": "20.3.3",
"resolved": "https://registry.npmjs.org/@angular/ssr/-/ssr-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@angular/ssr/-/ssr-20.3.3.tgz",
"integrity": "sha512-1IEojPGdXiqtn8ylQ1AZJVw4tgxP1Hn9pYmy9Uk8Qegof8HSbme4DHw5KOTFbnj09WGDfkETCMNVXi0MZRZAJQ==", "integrity": "sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.3.0" "tslib": "^2.3.0"
@@ -1093,21 +1092,21 @@
} }
}, },
"node_modules/@emnapi/core": { "node_modules/@emnapi/core": {
"version": "1.4.5", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz",
"integrity": "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==", "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"@emnapi/wasi-threads": "1.0.4", "@emnapi/wasi-threads": "1.1.0",
"tslib": "^2.4.0" "tslib": "^2.4.0"
} }
}, },
"node_modules/@emnapi/runtime": { "node_modules/@emnapi/runtime": {
"version": "1.4.5", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz",
"integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
@@ -1116,9 +1115,9 @@
} }
}, },
"node_modules/@emnapi/wasi-threads": { "node_modules/@emnapi/wasi-threads": {
"version": "1.0.4", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
"integrity": "sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==", "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
@@ -2876,16 +2875,16 @@
} }
}, },
"node_modules/@napi-rs/wasm-runtime": { "node_modules/@napi-rs/wasm-runtime": {
"version": "1.0.3", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.3.tgz", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.5.tgz",
"integrity": "sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==", "integrity": "sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"@emnapi/core": "^1.4.5", "@emnapi/core": "^1.5.0",
"@emnapi/runtime": "^1.4.5", "@emnapi/runtime": "^1.5.0",
"@tybys/wasm-util": "^0.10.0" "@tybys/wasm-util": "^0.10.1"
} }
}, },
"node_modules/@ng-bootstrap/ng-bootstrap": { "node_modules/@ng-bootstrap/ng-bootstrap": {
@@ -3181,20 +3180,10 @@
"node": "^18.17.0 || >=20.5.0" "node": "^18.17.0 || >=20.5.0"
} }
}, },
"node_modules/@oxc-project/runtime": {
"version": "0.81.0",
"resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.81.0.tgz",
"integrity": "sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@oxc-project/types": { "node_modules/@oxc-project/types": {
"version": "0.81.0", "version": "0.89.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.81.0.tgz", "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.89.0.tgz",
"integrity": "sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==", "integrity": "sha512-yuo+ECPIW5Q9mSeNmCDC2im33bfKuwW18mwkaHMQh8KakHYDzj4ci/q7wxf2qS3dMlVVCIyrs3kFtH5LmnlYnw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"funding": { "funding": {
@@ -3555,9 +3544,9 @@
} }
}, },
"node_modules/@rolldown/binding-android-arm64": { "node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.38.tgz",
"integrity": "sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==", "integrity": "sha512-AE3HFQrjWCKLFZD1Vpiy+qsqTRwwoil1oM5WsKPSmfQ5fif/A+ZtOZetF32erZdsR7qyvns6qHEteEsF6g6rsQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -3566,12 +3555,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"android" "android"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-darwin-arm64": { "node_modules/@rolldown/binding-darwin-arm64": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.38.tgz",
"integrity": "sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==", "integrity": "sha512-RaoWOKc0rrFsVmKOjQpebMY6c6/I7GR1FBc25v7L/R7NlM0166mUotwGEv7vxu7ruXH4SJcFeVrfADFUUXUmmQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -3580,12 +3572,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-darwin-x64": { "node_modules/@rolldown/binding-darwin-x64": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.38.tgz",
"integrity": "sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==", "integrity": "sha512-Ymojqc2U35iUc8NFU2XX1WQPfBRRHN6xHcrxAf9WS8BFFBn8pDrH5QPvH1tYs3lDkw6UGGbanr1RGzARqdUp1g==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -3594,12 +3589,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-freebsd-x64": { "node_modules/@rolldown/binding-freebsd-x64": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.38.tgz",
"integrity": "sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==", "integrity": "sha512-0ermTQ//WzSI0nOL3z/LUWMNiE9xeM5cLGxjewPFEexqxV/0uM8/lNp9QageQ8jfc/VO1OURsGw34HYO5PaL8w==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -3608,12 +3606,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"freebsd" "freebsd"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-linux-arm-gnueabihf": { "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.38.tgz",
"integrity": "sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==", "integrity": "sha512-GADxzVUTCTp6EWI52831A29Tt7PukFe94nhg/SUsfkI33oTiNQtPxyLIT/3oRegizGuPSZSlrdBurkjDwxyEUQ==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -3622,12 +3623,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-linux-arm64-gnu": { "node_modules/@rolldown/binding-linux-arm64-gnu": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.38.tgz",
"integrity": "sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==", "integrity": "sha512-SKO7Exl5Yem/OSNoA5uLHzyrptUQ8Hg70kHDxuwEaH0+GUg+SQe9/7PWmc4hFKBMrJGdQtii8WZ0uIz9Dofg5Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -3636,12 +3640,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-linux-arm64-musl": { "node_modules/@rolldown/binding-linux-arm64-musl": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.38.tgz",
"integrity": "sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==", "integrity": "sha512-SOo6+WqhXPBaShLxLT0eCgH17d3Yu1lMAe4mFP0M9Bvr/kfMSOPQXuLxBcbBU9IFM9w3N6qP9xWOHO+oUJvi8Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -3650,12 +3657,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-linux-x64-gnu": { "node_modules/@rolldown/binding-linux-x64-gnu": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.38.tgz",
"integrity": "sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==", "integrity": "sha512-yvsQ3CyrodOX+lcoi+lejZGCOvJZa9xTsNB8OzpMDmHeZq3QzJfpYjXSAS6vie70fOkLVJb77UqYO193Cl8XBQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -3664,12 +3674,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-linux-x64-musl": { "node_modules/@rolldown/binding-linux-x64-musl": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.38.tgz",
"integrity": "sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==", "integrity": "sha512-84qzKMwUwikfYeOuJ4Kxm/3z15rt0nFGGQArHYIQQNSTiQdxGHxOkqXtzPFqrVfBJUdxBAf+jYzR1pttFJuWyg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -3678,12 +3691,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-openharmony-arm64": { "node_modules/@rolldown/binding-openharmony-arm64": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.38.tgz",
"integrity": "sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==", "integrity": "sha512-QrNiWlce01DYH0rL8K3yUBu+lNzY+B0DyCbIc2Atan6/S6flxOL0ow5DLQvMamOI/oKhrJ4xG+9MkMb9dDHbLQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -3692,12 +3708,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"openharmony" "openharmony"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-wasm32-wasi": { "node_modules/@rolldown/binding-wasm32-wasi": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.38.tgz",
"integrity": "sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==", "integrity": "sha512-fnLtHyjwEsG4/aNV3Uv3Qd1ZbdH+CopwJNoV0RgBqrcQB8V6/Qdikd5JKvnO23kb3QvIpP+dAMGZMv1c2PJMzw==",
"cpu": [ "cpu": [
"wasm32" "wasm32"
], ],
@@ -3705,16 +3724,16 @@
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"@napi-rs/wasm-runtime": "^1.0.3" "@napi-rs/wasm-runtime": "^1.0.5"
}, },
"engines": { "engines": {
"node": ">=14.0.0" "node": ">=14.0.0"
} }
}, },
"node_modules/@rolldown/binding-win32-arm64-msvc": { "node_modules/@rolldown/binding-win32-arm64-msvc": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.38.tgz",
"integrity": "sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==", "integrity": "sha512-19cTfnGedem+RY+znA9J6ARBOCEFD4YSjnx0p5jiTm9tR6pHafRfFIfKlTXhun+NL0WWM/M0eb2IfPPYUa8+wg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -3723,12 +3742,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-win32-ia32-msvc": { "node_modules/@rolldown/binding-win32-ia32-msvc": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.38.tgz",
"integrity": "sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==", "integrity": "sha512-HcICm4YzFJZV+fI0O0bFLVVlsWvRNo/AB9EfUXvNYbtAxakCnQZ15oq22deFdz6sfi9Y4/SagH2kPU723dhCFA==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@@ -3737,12 +3759,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/binding-win32-x64-msvc": { "node_modules/@rolldown/binding-win32-x64-msvc": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.38.tgz",
"integrity": "sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==", "integrity": "sha512-4Qx6cgEPXLb0XsCyLoQcUgYBpfL0sjugftob+zhUH0EOk/NVCAIT+h0NJhY+jn7pFpeKxhNMqhvTNx3AesxIAQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -3751,12 +3776,15 @@
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
] ],
"engines": {
"node": "^20.19.0 || >=22.12.0"
}
}, },
"node_modules/@rolldown/pluginutils": { "node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz",
"integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==", "integrity": "sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@@ -4041,14 +4069,14 @@
] ]
}, },
"node_modules/@schematics/angular": { "node_modules/@schematics/angular": {
"version": "20.2.0", "version": "20.3.3",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.2.0.tgz", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-20.3.3.tgz",
"integrity": "sha512-7sZVj7hOcytQrPE17ixjzul9ih81IfXGcEZvr7fT77qy7Hm5rbMjxqSYxCTf3kAyBFRSLq/E8GTapPAjk2coOg==", "integrity": "sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@angular-devkit/core": "20.2.0", "@angular-devkit/core": "20.3.3",
"@angular-devkit/schematics": "20.2.0", "@angular-devkit/schematics": "20.3.3",
"jsonc-parser": "3.3.1" "jsonc-parser": "3.3.1"
}, },
"engines": { "engines": {
@@ -4195,9 +4223,9 @@
} }
}, },
"node_modules/@tybys/wasm-util": { "node_modules/@tybys/wasm-util": {
"version": "0.10.0", "version": "0.10.1",
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
"integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
@@ -4519,9 +4547,9 @@
} }
}, },
"node_modules/ansis": { "node_modules/ansis": {
"version": "4.1.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/ansis/-/ansis-4.1.0.tgz", "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz",
"integrity": "sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==", "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"engines": { "engines": {
@@ -4957,9 +4985,9 @@
"license": "CC-BY-4.0" "license": "CC-BY-4.0"
}, },
"node_modules/chalk": { "node_modules/chalk": {
"version": "5.6.0", "version": "5.6.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
"integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@@ -5877,10 +5905,13 @@
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/fdir": { "node_modules/fdir": {
"version": "6.4.6", "version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"license": "MIT", "license": "MIT",
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": { "peerDependencies": {
"picomatch": "^3 || ^4" "picomatch": "^3 || ^4"
}, },
@@ -8683,35 +8714,37 @@
} }
}, },
"node_modules/rolldown": { "node_modules/rolldown": {
"version": "1.0.0-beta.32", "version": "1.0.0-beta.38",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.32.tgz", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.38.tgz",
"integrity": "sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==", "integrity": "sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@oxc-project/runtime": "=0.81.0", "@oxc-project/types": "=0.89.0",
"@oxc-project/types": "=0.81.0", "@rolldown/pluginutils": "1.0.0-beta.38",
"@rolldown/pluginutils": "1.0.0-beta.32",
"ansis": "^4.0.0" "ansis": "^4.0.0"
}, },
"bin": { "bin": {
"rolldown": "bin/cli.mjs" "rolldown": "bin/cli.mjs"
}, },
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": { "optionalDependencies": {
"@rolldown/binding-android-arm64": "1.0.0-beta.32", "@rolldown/binding-android-arm64": "1.0.0-beta.38",
"@rolldown/binding-darwin-arm64": "1.0.0-beta.32", "@rolldown/binding-darwin-arm64": "1.0.0-beta.38",
"@rolldown/binding-darwin-x64": "1.0.0-beta.32", "@rolldown/binding-darwin-x64": "1.0.0-beta.38",
"@rolldown/binding-freebsd-x64": "1.0.0-beta.32", "@rolldown/binding-freebsd-x64": "1.0.0-beta.38",
"@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.32", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.38",
"@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.32", "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.38",
"@rolldown/binding-linux-arm64-musl": "1.0.0-beta.32", "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.38",
"@rolldown/binding-linux-x64-gnu": "1.0.0-beta.32", "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.38",
"@rolldown/binding-linux-x64-musl": "1.0.0-beta.32", "@rolldown/binding-linux-x64-musl": "1.0.0-beta.38",
"@rolldown/binding-openharmony-arm64": "1.0.0-beta.32", "@rolldown/binding-openharmony-arm64": "1.0.0-beta.38",
"@rolldown/binding-wasm32-wasi": "1.0.0-beta.32", "@rolldown/binding-wasm32-wasi": "1.0.0-beta.38",
"@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.32", "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.38",
"@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.32", "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.38",
"@rolldown/binding-win32-x64-msvc": "1.0.0-beta.32" "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.38"
} }
}, },
"node_modules/rollup": { "node_modules/rollup": {
@@ -9890,18 +9923,18 @@
} }
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "7.1.2", "version": "7.1.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz",
"integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"esbuild": "^0.25.0", "esbuild": "^0.25.0",
"fdir": "^6.4.6", "fdir": "^6.5.0",
"picomatch": "^4.0.3", "picomatch": "^4.0.3",
"postcss": "^8.5.6", "postcss": "^8.5.6",
"rollup": "^4.43.0", "rollup": "^4.43.0",
"tinyglobby": "^0.2.14" "tinyglobby": "^0.2.15"
}, },
"bin": { "bin": {
"vite": "bin/vite.js" "vite": "bin/vite.js"
@@ -9964,6 +9997,23 @@
} }
} }
}, },
"node_modules/vite/node_modules/tinyglobby": {
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
"picomatch": "^4.0.3"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/void-elements": { "node_modules/void-elements": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",

View File

@@ -11,19 +11,19 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^20.2.1", "@angular/animations": "^20.3.2",
"@angular/cdk": "^20.2.0", "@angular/cdk": "^20.2.5",
"@angular/common": "^20.2.1", "@angular/common": "^20.3.2",
"@angular/compiler": "^20.2.1", "@angular/compiler": "^20.3.2",
"@angular/core": "^20.2.1", "@angular/core": "^20.3.2",
"@angular/forms": "^20.2.1", "@angular/forms": "^20.3.2",
"@angular/material": "^20.2.0", "@angular/material": "^20.2.5",
"@angular/material-moment-adapter": "^20.2.0", "@angular/material-moment-adapter": "^20.2.5",
"@angular/platform-browser": "^20.2.1", "@angular/platform-browser": "^20.3.2",
"@angular/platform-browser-dynamic": "^20.2.1", "@angular/platform-browser-dynamic": "^20.3.2",
"@angular/platform-server": "^20.2.1", "@angular/platform-server": "^20.3.2",
"@angular/router": "^20.2.1", "@angular/router": "^20.3.2",
"@angular/ssr": "^20.2.0", "@angular/ssr": "^20.3.3",
"@ng-bootstrap/ng-bootstrap": "^19.0.1", "@ng-bootstrap/ng-bootstrap": "^19.0.1",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.7", "bootstrap": "^5.3.7",
@@ -37,10 +37,10 @@
"zone.js": "~0.15.1" "zone.js": "~0.15.1"
}, },
"devDependencies": { "devDependencies": {
"@angular/build": "^20.2.0", "@angular/build": "^20.3.3",
"@angular/cli": "^20.2.0", "@angular/cli": "^20.3.3",
"@angular/compiler-cli": "^20.2.1", "@angular/compiler-cli": "^20.3.2",
"@angular/localize": "^20.2.1", "@angular/localize": "^20.3.2",
"@types/express": "^5.0.3", "@types/express": "^5.0.3",
"@types/jasmine": "~5.1.0", "@types/jasmine": "~5.1.0",
"@types/node": "^24.2.1", "@types/node": "^24.2.1",

View File

@@ -1,4 +1,4 @@
import {ApplicationConfig, provideZoneChangeDetection} from '@angular/core'; import {ApplicationConfig, inject, provideAppInitializer, provideZoneChangeDetection} from '@angular/core';
import {provideRouter} from '@angular/router'; import {provideRouter} from '@angular/router';
import {routes} from './app.routes'; import {routes} from './app.routes';
@@ -10,15 +10,21 @@ import {MAT_SNACK_BAR_DEFAULT_OPTIONS} from "@angular/material/snack-bar";
import {AuthGuard} from "./authentication/authguard"; import {AuthGuard} from "./authentication/authguard";
import {TokenInterceptor} from "./authentication/tokenInterceptor"; import {TokenInterceptor} from "./authentication/tokenInterceptor";
import {ErrorInterceptor} from "./authentication/errorInterceptor"; import {ErrorInterceptor} from "./authentication/errorInterceptor";
import {provideEnvironmentNgxMask, provideNgxMask} from "ngx-mask"; import {provideNgxMask} from "ngx-mask";
import {UserService} from './authentication/user.service';
import {provideAnimations} from "@angular/platform-browser/animations";
export const appConfig: ApplicationConfig = { export const appConfig: ApplicationConfig = {
providers: [ providers: [
provideAppInitializer(() => {
const userService = inject(UserService);
userService.initializeUser();
}),
provideZoneChangeDetection({eventCoalescing: true}), provideZoneChangeDetection({eventCoalescing: true}),
provideRouter(routes), provideRouter(routes),
provideClientHydration(), provideClientHydration(),
provideHttpClient(withFetch(), withInterceptorsFromDi()), provideHttpClient(withFetch(), withInterceptorsFromDi()),
provideAnimationsAsync(), provideAnimations(),
provideMomentDateAdapter(undefined, {useUtc: false}), provideMomentDateAdapter(undefined, {useUtc: false}),
{ provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 2500}}, { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 2500}},
AuthGuard, AuthGuard,
@@ -27,3 +33,4 @@ export const appConfig: ApplicationConfig = {
provideNgxMask(), provideNgxMask(),
] ]
}; };

View File

@@ -1,6 +1,7 @@
import {Injectable} from "@angular/core"; import {Injectable} from "@angular/core";
import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from "@angular/router"; import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from "@angular/router";
import {UserService} from "./user.service"; import {UserService} from "./user.service";
import {delay, map, Observable, of} from "rxjs";
@Injectable() @Injectable()
export class AuthGuard implements CanActivate { export class AuthGuard implements CanActivate {
@@ -10,14 +11,12 @@ export class AuthGuard implements CanActivate {
private userService: UserService private userService: UserService
) {} ) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
if (this.userService.getUser()) { if (this.userService.getUser()) {
return true; return true;
} }
this.router.navigate(['/auth/login'], { queryParams: { returnUrl: state.url } });
this.router.navigate(['/auth/login'], {
queryParams: { returnUrl: state.url },
});
return false; return false;
} }
} }

View File

@@ -1,16 +1,17 @@
import {EventEmitter, Injectable, Output} from "@angular/core"; import { Injectable } from "@angular/core";
import {SsrCookieService} from "ngx-cookie-service-ssr"; import { SsrCookieService } from "ngx-cookie-service-ssr";
import {Router} from "@angular/router"; import { Router } from "@angular/router";
import {User} from "./user"; import { User } from "./user";
import {BehaviorSubject} from "rxjs"; import { BehaviorSubject } from "rxjs";
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class UserService { export class UserService {
user?: User; private user?: User;
private userEmitter = new BehaviorSubject<string>('');
private initialized = false;
private userEmitter = new BehaviorSubject('');
currentUser = this.userEmitter.asObservable(); currentUser = this.userEmitter.asObservable();
constructor( constructor(
@@ -18,30 +19,44 @@ export class UserService {
private router: Router, private router: Router,
) {} ) {}
public getUser(): User | undefined { initializeUser() {
const user = this.cookieService.get('swissuser'); if (this.initialized) return;
if (user) { try {
this.user = JSON.parse(user); const userCookie = this.cookieService.get('swissuser');
this.userEmitter.next(JSON.parse(user).username); if (userCookie && userCookie.trim() !== '') {
} else { this.user = JSON.parse(userCookie);
if (this.user?.username) {
this.userEmitter.next(this.user.username);
} else {
this.userEmitter.next('');
}
} else {
this.user = undefined;
this.userEmitter.next('');
}
} catch (error) {
console.error('Error parsing user cookie:', error);
this.user = undefined; this.user = undefined;
this.userEmitter.next('');
} }
this.initialized = true;
}
public getUser(): User | undefined {
this.initializeUser();
return this.user; return this.user;
} }
public isLoggedIn(): boolean { public isLoggedIn(): boolean {
const user = this.cookieService.get('swissuser'); this.initializeUser();
return !!this.user;
return !(user == undefined || false || user == "");
} }
public setUser(user: User) { public setUser(user: User) {
this.cookieService.set('swissuser', JSON.stringify(user)); this.cookieService.set('swissuser', JSON.stringify(user));
this.user = user; this.user = user;
this.userEmitter.next(this.user.username); this.userEmitter.next(this.user.username);
} }

View File

@@ -124,7 +124,7 @@
</ng-template> </ng-template>
@if (this.activeMatches().length > 0) { @if (this.activeMatches().length > 0) {
<h6 class="mt-3">Actieve wedstrijden</h6> <h6 class="mt-3"></h6>
@for (activeMatch of this.activeMatches(); track activeMatch.match.id) { @for (activeMatch of this.activeMatches(); track activeMatch.match.id) {
<mat-expansion-panel> <mat-expansion-panel>

View File

@@ -34,25 +34,15 @@ import {MatTab, MatTabGroup, MatTabLabel} from "@angular/material/tabs";
standalone: true, standalone: true,
styleUrl: './tournament-players.component.scss' styleUrl: './tournament-players.component.scss'
}) })
export class TournamentPlayersComponent implements OnInit { export class TournamentPlayersComponent {
@Input() tournament: Tournament; @Input() tournament: Tournament;
constructor( constructor(
private tournamentService: TournamentService, private tournamentService: TournamentService,
private _snackBar: MatSnackBar, private _snackBar: MatSnackBar,
private route: ActivatedRoute,
private router: Router,
) {} ) {}
ngOnInit() {
console.log('Tournament received from parent:', this.tournament);
// const id = this.route.snapshot.paramMap.get('id');
// this.tournamentService.getById(Number(id)).subscribe(data => {
// this.tournament = data;
// });
}
playerPaid($event: MatSlideToggleChange, playerId: number) { playerPaid($event: MatSlideToggleChange, playerId: number) {
this.tournamentService.playerPaid(this.tournament.id, playerId, $event.checked).subscribe(() => { this.tournamentService.playerPaid(this.tournament.id, playerId, $event.checked).subscribe(() => {
this._snackBar.open('Opgeslagen.'); this._snackBar.open('Opgeslagen.');

View File

@@ -1,4 +1,3 @@
// header.service.ts
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs'; import { BehaviorSubject } from 'rxjs';

View File

@@ -1,7 +1,7 @@
import { bootstrapApplication } from '@angular/platform-browser'; import { bootstrapApplication, BootstrapContext } from '@angular/platform-browser';
import { AppComponent } from './app/app.component'; import { AppComponent } from './app/app.component';
import { config } from './app/app.config.server'; import { config } from './app/app.config.server';
const bootstrap = () => bootstrapApplication(AppComponent, config); const bootstrap = (context: BootstrapContext) => bootstrapApplication(AppComponent, config, context);
export default bootstrap; export default bootstrap;

815
yarn.lock

File diff suppressed because it is too large Load Diff