mirror of
https://github.com/TomasiDeveloping/PlayerManagement.git
synced 2026-04-16 09:12:20 +00:00
ng update @angular/core@20 @angular/cli@20
This commit is contained in:
parent
4d47336e2b
commit
ef4c9d643a
@ -21,7 +21,7 @@
|
|||||||
"prefix": "app",
|
"prefix": "app",
|
||||||
"architect": {
|
"architect": {
|
||||||
"build": {
|
"build": {
|
||||||
"builder": "@angular-devkit/build-angular:application",
|
"builder": "@angular/build:application",
|
||||||
"options": {
|
"options": {
|
||||||
"outputPath": "dist/ui",
|
"outputPath": "dist/ui",
|
||||||
"index": "src/index.html",
|
"index": "src/index.html",
|
||||||
@ -75,7 +75,7 @@
|
|||||||
"defaultConfiguration": "production"
|
"defaultConfiguration": "production"
|
||||||
},
|
},
|
||||||
"serve": {
|
"serve": {
|
||||||
"builder": "@angular-devkit/build-angular:dev-server",
|
"builder": "@angular/build:dev-server",
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"production": {
|
"production": {
|
||||||
"buildTarget": "Ui:build:production"
|
"buildTarget": "Ui:build:production"
|
||||||
@ -87,13 +87,13 @@
|
|||||||
"defaultConfiguration": "development"
|
"defaultConfiguration": "development"
|
||||||
},
|
},
|
||||||
"extract-i18n": {
|
"extract-i18n": {
|
||||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
"builder": "@angular/build:extract-i18n",
|
||||||
"options": {
|
"options": {
|
||||||
"buildTarget": "Ui:build"
|
"buildTarget": "Ui:build"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"builder": "@angular-devkit/build-angular:karma",
|
"builder": "@angular/build:karma",
|
||||||
"options": {
|
"options": {
|
||||||
"polyfills": [
|
"polyfills": [
|
||||||
"zone.js",
|
"zone.js",
|
||||||
@ -114,5 +114,31 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"schematics": {
|
||||||
|
"@schematics/angular:component": {
|
||||||
|
"type": "component"
|
||||||
|
},
|
||||||
|
"@schematics/angular:directive": {
|
||||||
|
"type": "directive"
|
||||||
|
},
|
||||||
|
"@schematics/angular:service": {
|
||||||
|
"type": "service"
|
||||||
|
},
|
||||||
|
"@schematics/angular:guard": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:interceptor": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:module": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:pipe": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:resolver": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
module.exports = function (config) {
|
module.exports = function (config) {
|
||||||
config.set({
|
config.set({
|
||||||
basePath: '',
|
basePath: '',
|
||||||
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
||||||
@ -7,7 +7,7 @@
|
|||||||
require('karma-chrome-launcher'),
|
require('karma-chrome-launcher'),
|
||||||
require('karma-jasmine-html-reporter'),
|
require('karma-jasmine-html-reporter'),
|
||||||
require('karma-coverage'),
|
require('karma-coverage'),
|
||||||
require('@angular-devkit/build-angular/plugins/karma')
|
|
||||||
],
|
],
|
||||||
client: {
|
client: {
|
||||||
jasmine: {
|
jasmine: {
|
||||||
|
|||||||
9938
Ui/package-lock.json
generated
9938
Ui/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -10,14 +10,14 @@
|
|||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "^19.2.18",
|
"@angular/animations": "^20.3.16",
|
||||||
"@angular/common": "^19.2.18",
|
"@angular/common": "^20.3.16",
|
||||||
"@angular/compiler": "^19.2.18",
|
"@angular/compiler": "^20.3.16",
|
||||||
"@angular/core": "^19.2.18",
|
"@angular/core": "^20.3.16",
|
||||||
"@angular/forms": "^19.2.18",
|
"@angular/forms": "^20.3.16",
|
||||||
"@angular/platform-browser": "^19.2.18",
|
"@angular/platform-browser": "^20.3.16",
|
||||||
"@angular/platform-browser-dynamic": "^19.2.18",
|
"@angular/platform-browser-dynamic": "^20.3.16",
|
||||||
"@angular/router": "^19.2.18",
|
"@angular/router": "^20.3.16",
|
||||||
"@auth0/angular-jwt": "^5.2.0",
|
"@auth0/angular-jwt": "^5.2.0",
|
||||||
"@ng-bootstrap/ng-bootstrap": "^17.0.1",
|
"@ng-bootstrap/ng-bootstrap": "^17.0.1",
|
||||||
"@popperjs/core": "^2.11.8",
|
"@popperjs/core": "^2.11.8",
|
||||||
@ -39,10 +39,10 @@
|
|||||||
"zone.js": "~0.15.1"
|
"zone.js": "~0.15.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "^19.2.20",
|
"@angular/build": "^20.3.16",
|
||||||
"@angular/cli": "^19.2.20",
|
"@angular/cli": "^20.3.16",
|
||||||
"@angular/compiler-cli": "^19.2.18",
|
"@angular/compiler-cli": "^20.3.16",
|
||||||
"@angular/localize": "^19.2.18",
|
"@angular/localize": "^20.3.16",
|
||||||
"@types/jasmine": "~5.1.0",
|
"@types/jasmine": "~5.1.0",
|
||||||
"jasmine-core": "~5.3.0",
|
"jasmine-core": "~5.3.0",
|
||||||
"karma": "~6.4.0",
|
"karma": "~6.4.0",
|
||||||
@ -50,6 +50,6 @@
|
|||||||
"karma-coverage": "~2.2.0",
|
"karma-coverage": "~2.2.0",
|
||||||
"karma-jasmine": "~5.1.0",
|
"karma-jasmine": "~5.1.0",
|
||||||
"karma-jasmine-html-reporter": "~2.1.0",
|
"karma-jasmine-html-reporter": "~2.1.0",
|
||||||
"typescript": "~5.5.4"
|
"typescript": "~5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,13 +80,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="alliance-counter" *ngIf="allianceCount !== null">
|
@if (allianceCount !== null) {
|
||||||
|
<div class="alliance-counter">
|
||||||
<span>Currently </span>
|
<span>Currently </span>
|
||||||
<span class="count">
|
<span class="count">
|
||||||
<span [countUp]="allianceCount"></span>
|
<span [countUp]="allianceCount"></span>
|
||||||
</span>
|
</span>
|
||||||
<span> alliances use the tool</span>
|
<span> alliances use the tool</span>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<footer class="footer d-flex flex-wrap justify-content-center justify-content-md-between align-items-center px-3 py-3 mt-auto shadow-sm gap-2 small text-center">
|
<footer class="footer d-flex flex-wrap justify-content-center justify-content-md-between align-items-center px-3 py-3 mt-auto shadow-sm gap-2 small text-center">
|
||||||
@ -94,4 +96,4 @@
|
|||||||
<span>Version: <span (click)="onVersion()" class="text-info" style="cursor: pointer">{{version}}</span></span>
|
<span>Version: <span (click)="onVersion()" class="text-info" style="cursor: pointer">{{version}}</span></span>
|
||||||
<span><a routerLink="/imprint" class="text-info text-decoration-none">Legal Notice / Privacy</a></span>
|
<span><a routerLink="/imprint" class="text-info text-decoration-none">Legal Notice / Privacy</a></span>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -91,10 +91,14 @@
|
|||||||
class="input-group-text eye-icon bi"></i>
|
class="input-group-text eye-icon bi"></i>
|
||||||
</span>
|
</span>
|
||||||
<!-- Password Invalid Feedback -->
|
<!-- Password Invalid Feedback -->
|
||||||
<div *ngIf="f['password'].invalid && (f['password'].dirty || !f['password'].untouched )"
|
@if (f['password'].invalid && (f['password'].dirty || !f['password'].untouched )) {
|
||||||
|
<div
|
||||||
class="invalid-feedback">
|
class="invalid-feedback">
|
||||||
<p *ngIf="f['password'].hasError('required')">Password is required</p>
|
@if (f['password'].hasError('required')) {
|
||||||
<div *ngIf="!f['password'].hasError('required')">
|
<p>Password is required</p>
|
||||||
|
}
|
||||||
|
@if (!f['password'].hasError('required')) {
|
||||||
|
<div>
|
||||||
<div [ngClass]="f['password'].hasError('hasNumber') ? 'text-danger': 'text-success'">
|
<div [ngClass]="f['password'].hasError('hasNumber') ? 'text-danger': 'text-success'">
|
||||||
<i
|
<i
|
||||||
[ngClass]="f['password'].hasError('hasNumber') ? 'bi bi-x-square-fill' : 'bi bi-check-square-fill'"></i>
|
[ngClass]="f['password'].hasError('hasNumber') ? 'bi bi-x-square-fill' : 'bi bi-check-square-fill'"></i>
|
||||||
@ -121,7 +125,9 @@
|
|||||||
Must contain special characters
|
Must contain special characters
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-floating is-invalid mb-3">
|
<div class="form-floating is-invalid mb-3">
|
||||||
@ -134,16 +140,22 @@
|
|||||||
<label for="confirmPassword">Confirm Password</label>
|
<label for="confirmPassword">Confirm Password</label>
|
||||||
</div>
|
</div>
|
||||||
<!-- Confirm Password Invalid Feedback -->
|
<!-- Confirm Password Invalid Feedback -->
|
||||||
<div *ngIf="f['confirmPassword'].invalid && (f['confirmPassword'].dirty || !f['confirmPassword'].untouched )"
|
@if (f['confirmPassword'].invalid && (f['confirmPassword'].dirty || !f['confirmPassword'].untouched )) {
|
||||||
|
<div
|
||||||
class="invalid-feedback">
|
class="invalid-feedback">
|
||||||
<p *ngIf="f['confirmPassword'].hasError('required')">Confirmation is required</p>
|
@if (f['confirmPassword'].hasError('required')) {
|
||||||
|
<p>Confirmation is required</p>
|
||||||
|
}
|
||||||
|
@if (f['confirmPassword'].hasError('passwordMismatch')) {
|
||||||
<p
|
<p
|
||||||
*ngIf="f['confirmPassword'].hasError('passwordMismatch')">Passwords do not match</p>
|
>Passwords do not match</p>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
<div class="d-grid gap-2 col-6 mx-auto">
|
<div class="d-grid gap-2 col-6 mx-auto">
|
||||||
<button [disabled]="registerForm.invalid" type="submit" class="btn btn-success">Register</button>
|
<button [disabled]="registerForm.invalid" type="submit" class="btn btn-success">Register</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -51,9 +51,13 @@
|
|||||||
<span (click)="isInputText = !isInputText" class="input-group-text eye-icon">
|
<span (click)="isInputText = !isInputText" class="input-group-text eye-icon">
|
||||||
<i [ngClass]="isInputText ? 'bi-eye-slash-fill' : 'bi-eye-fill'" class="bi"></i>
|
<i [ngClass]="isInputText ? 'bi-eye-slash-fill' : 'bi-eye-fill'" class="bi"></i>
|
||||||
</span>
|
</span>
|
||||||
<div *ngIf="password?.hasError && (password?.dirty || !password?.untouched)" class="invalid-feedback">
|
@if (password?.hasError && (password?.dirty || !password?.untouched)) {
|
||||||
<p *ngIf="password?.hasError('required')">Password is required</p>
|
<div class="invalid-feedback">
|
||||||
<div *ngIf="!password?.hasError('required')">
|
@if (password?.hasError('required')) {
|
||||||
|
<p>Password is required</p>
|
||||||
|
}
|
||||||
|
@if (!password?.hasError('required')) {
|
||||||
|
<div>
|
||||||
<div [ngClass]="password?.hasError('hasNumber') ? 'text-danger': 'text-success'">
|
<div [ngClass]="password?.hasError('hasNumber') ? 'text-danger': 'text-success'">
|
||||||
<i [ngClass]="password?.hasError('hasNumber') ? 'bi bi-x-square-fill' : 'bi bi-check-square-fill'"></i>
|
<i [ngClass]="password?.hasError('hasNumber') ? 'bi bi-x-square-fill' : 'bi bi-check-square-fill'"></i>
|
||||||
Must have at least 1 number!
|
Must have at least 1 number!
|
||||||
@ -76,7 +80,9 @@
|
|||||||
Must contain at least 1 special character!
|
Must contain at least 1 special character!
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -89,10 +95,16 @@
|
|||||||
<span (click)="isInputText = !isInputText" class="input-group-text eye-icon">
|
<span (click)="isInputText = !isInputText" class="input-group-text eye-icon">
|
||||||
<i [ngClass]="isInputText ? 'bi-eye-slash-fill' : 'bi-eye-fill'" class="bi"></i>
|
<i [ngClass]="isInputText ? 'bi-eye-slash-fill' : 'bi-eye-fill'" class="bi"></i>
|
||||||
</span>
|
</span>
|
||||||
<div *ngIf="confirmPassword?.errors && (confirmPassword?.dirty || !confirmPassword?.untouched)" class="invalid-feedback">
|
@if (confirmPassword?.errors && (confirmPassword?.dirty || !confirmPassword?.untouched)) {
|
||||||
<p *ngIf="confirmPassword?.hasError('required')">Repeat password is required</p>
|
<div class="invalid-feedback">
|
||||||
<p *ngIf="confirmPassword?.hasError('passwordMismatch')">Passwords do not match</p>
|
@if (confirmPassword?.hasError('required')) {
|
||||||
|
<p>Repeat password is required</p>
|
||||||
|
}
|
||||||
|
@if (confirmPassword?.hasError('passwordMismatch')) {
|
||||||
|
<p>Passwords do not match</p>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -104,4 +116,4 @@
|
|||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -98,10 +98,14 @@
|
|||||||
class="input-group-text eye-icon bi"></i>
|
class="input-group-text eye-icon bi"></i>
|
||||||
</span>
|
</span>
|
||||||
<!-- Password Invalid Feedback -->
|
<!-- Password Invalid Feedback -->
|
||||||
<div *ngIf="f['password'].invalid && (f['password'].dirty || !f['password'].untouched )"
|
@if (f['password'].invalid && (f['password'].dirty || !f['password'].untouched )) {
|
||||||
|
<div
|
||||||
class="invalid-feedback">
|
class="invalid-feedback">
|
||||||
<p *ngIf="f['password'].hasError('required')">Required</p>
|
@if (f['password'].hasError('required')) {
|
||||||
<div *ngIf="!f['password'].hasError('required')">
|
<p>Required</p>
|
||||||
|
}
|
||||||
|
@if (!f['password'].hasError('required')) {
|
||||||
|
<div>
|
||||||
<div [ngClass]="f['password'].hasError('hasNumber') ? 'text-danger': 'text-success'">
|
<div [ngClass]="f['password'].hasError('hasNumber') ? 'text-danger': 'text-success'">
|
||||||
<i
|
<i
|
||||||
[ngClass]="f['password'].hasError('hasNumber') ? 'bi bi-x-square-fill' : 'bi bi-check-square-fill'"></i>
|
[ngClass]="f['password'].hasError('hasNumber') ? 'bi bi-x-square-fill' : 'bi bi-check-square-fill'"></i>
|
||||||
@ -128,7 +132,9 @@
|
|||||||
special
|
special
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-floating is-invalid mb-3">
|
<div class="form-floating is-invalid mb-3">
|
||||||
@ -141,12 +147,18 @@
|
|||||||
<label for="confirmPassword">Confirm Password</label>
|
<label for="confirmPassword">Confirm Password</label>
|
||||||
</div>
|
</div>
|
||||||
<!-- Confirm Password Invalid Feedback -->
|
<!-- Confirm Password Invalid Feedback -->
|
||||||
<div *ngIf="f['confirmPassword'].invalid && (f['confirmPassword'].dirty || !f['confirmPassword'].untouched )"
|
@if (f['confirmPassword'].invalid && (f['confirmPassword'].dirty || !f['confirmPassword'].untouched )) {
|
||||||
|
<div
|
||||||
class="invalid-feedback">
|
class="invalid-feedback">
|
||||||
<p *ngIf="f['confirmPassword'].hasError('required')">Confirmation password is required</p>
|
@if (f['confirmPassword'].hasError('required')) {
|
||||||
|
<p>Confirmation password is required</p>
|
||||||
|
}
|
||||||
|
@if (f['confirmPassword'].hasError('passwordMismatch')) {
|
||||||
<p
|
<p
|
||||||
*ngIf="f['confirmPassword'].hasError('passwordMismatch')">Passwords do not match</p>
|
>Passwords do not match</p>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<button type="button" (click)="onCancel()" class="btn btn-warning">Cancel</button>
|
<button type="button" (click)="onCancel()" class="btn btn-warning">Cancel</button>
|
||||||
@ -172,5 +184,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -78,7 +78,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!-- User menu (visible only when user is logged in) -->
|
<!-- User menu (visible only when user is logged in) -->
|
||||||
<div *ngIf="loggedInUser" class="login">
|
@if (loggedInUser) {
|
||||||
|
<div class="login">
|
||||||
<ul class="navbar-nav me-auto">
|
<ul class="navbar-nav me-auto">
|
||||||
<li ngbDropdown display="dynamic" class="nav-item" role="presentation">
|
<li ngbDropdown display="dynamic" class="nav-item" role="presentation">
|
||||||
<button type="button" class="nav-link" ngbDropdownToggle>
|
<button type="button" class="nav-link" ngbDropdownToggle>
|
||||||
@ -95,16 +96,19 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
<!-- Login button (visible only when user is not logged in) -->
|
<!-- Login button (visible only when user is not logged in) -->
|
||||||
<div *ngIf="!loggedInUser" class="d-flex login" routerLink="/login">
|
@if (!loggedInUser) {
|
||||||
|
<div class="d-flex login" routerLink="/login">
|
||||||
<button (click)="isShown = false" class="btn btn-secondary" routerLink="/login"><i
|
<button (click)="isShown = false" class="btn btn-secondary" routerLink="/login"><i
|
||||||
class="bi bi-box-arrow-right"></i> Login
|
class="bi bi-box-arrow-right"></i> Login
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"declaration": false,
|
"declaration": false,
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "bundler",
|
||||||
"importHelpers": true,
|
"importHelpers": true,
|
||||||
"target": "ES2022",
|
"target": "ES2022",
|
||||||
"module": "ES2022",
|
"module": "ES2022",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user