Update angular to 19

This commit is contained in:
2025-08-09 20:19:33 +02:00
parent 425742a7db
commit e2494197cd
20 changed files with 1731 additions and 1613 deletions

View File

@@ -11,19 +11,19 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^18.2.5", "@angular/animations": "^19.2.14",
"@angular/cdk": "^18.2.5", "@angular/cdk": "^18.2.5",
"@angular/common": "^18.2.5", "@angular/common": "^19.2.14",
"@angular/compiler": "^18.2.5", "@angular/compiler": "^19.2.14",
"@angular/core": "^18.2.5", "@angular/core": "^19.2.14",
"@angular/forms": "^18.2.5", "@angular/forms": "^19.2.14",
"@angular/material": "^18.2.5", "@angular/material": "^18.2.5",
"@angular/material-moment-adapter": "^18.2.5", "@angular/material-moment-adapter": "^18.2.5",
"@angular/platform-browser": "^18.2.5", "@angular/platform-browser": "^19.2.14",
"@angular/platform-browser-dynamic": "^18.2.5", "@angular/platform-browser-dynamic": "^19.2.14",
"@angular/platform-server": "^18.2.5", "@angular/platform-server": "^19.2.14",
"@angular/router": "^18.2.5", "@angular/router": "^19.2.14",
"@angular/ssr": "^18.2.5", "@angular/ssr": "^19.2.15",
"@ng-bootstrap/ng-bootstrap": "^17.0.0", "@ng-bootstrap/ng-bootstrap": "^17.0.0",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.2", "bootstrap": "^5.3.2",
@@ -34,13 +34,13 @@
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"ts-enums": "^0.0.6", "ts-enums": "^0.0.6",
"tslib": "^2.3.0", "tslib": "^2.3.0",
"zone.js": "~0.14.10" "zone.js": "~0.15.1"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "^18.2.5", "@angular-devkit/build-angular": "^19.2.15",
"@angular/cli": "^18.2.5", "@angular/cli": "^19.2.15",
"@angular/compiler-cli": "^18.2.5", "@angular/compiler-cli": "^19.2.14",
"@angular/localize": "^18.2.5", "@angular/localize": "^19.2.14",
"@types/express": "^4.17.17", "@types/express": "^4.17.17",
"@types/jasmine": "~5.1.0", "@types/jasmine": "~5.1.0",
"@types/node": "^18.18.0", "@types/node": "^18.18.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.4.2" "typescript": "~5.8.3"
} }
} }

View File

@@ -1,5 +1,5 @@
import { APP_BASE_HREF } from '@angular/common'; import { APP_BASE_HREF } from '@angular/common';
import { CommonEngine } from '@angular/ssr'; import { CommonEngine } from '@angular/ssr/node';
import express from 'express'; import express from 'express';
import { fileURLToPath } from 'node:url'; import { fileURLToPath } from 'node:url';
import { dirname, join, resolve } from 'node:path'; import { dirname, join, resolve } from 'node:path';

View File

@@ -11,12 +11,11 @@ import {UserService} from "./authentication/user.service";
import {TournamentService} from "./service/tournament.service"; import {TournamentService} from "./service/tournament.service";
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
standalone: true, imports: [RouterOutlet, CommonModule, RouterLink, RouterLinkActive, MatAnchor, MatIcon, MatButton, MatToolbar, NgOptimizedImage, MatIconButton, MatMiniFabButton, MatMenuTrigger, MatMenu, MatMenuItem],
imports: [RouterOutlet, CommonModule, RouterLink, RouterLinkActive, MatAnchor, MatIcon, MatButton, MatToolbar, NgOptimizedImage, MatIconButton, MatMiniFabButton, MatMenuTrigger, MatMenu, MatMenuItem], providers: [TitleService],
providers: [TitleService], templateUrl: './app.component.html',
templateUrl: './app.component.html', styleUrl: './app.component.scss'
styleUrl: './app.component.scss'
}) })
export class AppComponent implements OnInit, OnDestroy { export class AppComponent implements OnInit, OnDestroy {

View File

@@ -11,18 +11,17 @@ import {NgForOf} from "@angular/common";
import {MatButton} from "@angular/material/button"; import {MatButton} from "@angular/material/button";
@Component({ @Component({
selector: 'app-court-selection', selector: 'app-court-selection',
standalone: true, imports: [
imports: [ MatDialogTitle,
MatDialogTitle, MatDialogContent,
MatDialogContent, NgForOf,
NgForOf, MatButton,
MatButton, MatDialogClose,
MatDialogClose, MatDialogActions
MatDialogActions ],
], templateUrl: './court-selection.component.html',
templateUrl: './court-selection.component.html', styleUrl: './court-selection.component.scss'
styleUrl: './court-selection.component.scss'
}) })
export class CourtSelectionComponent { export class CourtSelectionComponent {

View File

@@ -14,24 +14,23 @@ import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-login', selector: 'app-login',
templateUrl: './login.component.html', templateUrl: './login.component.html',
standalone: true, imports: [
imports: [ MatCardTitle,
MatCardTitle, MatCardContent,
MatCardContent, ReactiveFormsModule,
ReactiveFormsModule, MatFormField,
MatFormField, MatButton,
MatButton, RouterLink,
RouterLink, MatInput,
MatInput, NgIf,
NgIf, MatLabel,
MatLabel, MatError,
MatError, MatCard,
MatCard, MatCardHeader
MatCardHeader ],
], styleUrls: ['./login.component.scss']
styleUrls: ['./login.component.scss']
}) })
export class LoginComponent implements OnInit { export class LoginComponent implements OnInit {
public form: FormGroup; public form: FormGroup;

View File

@@ -21,34 +21,33 @@ import {Group} from "../../model/group";
import {Game} from "../../model/game"; import {Game} from "../../model/game";
@Component({ @Component({
selector: 'app-match-result', selector: 'app-match-result',
standalone: true, imports: [
imports: [ MatDialogContent,
MatDialogContent, MatDialogActions,
MatDialogActions, MatButton,
MatButton, MatDialogClose,
MatDialogClose, MatDialogTitle,
MatDialogTitle, DatePipe,
DatePipe, MatIcon,
MatIcon, NgForOf,
NgForOf, TeamPipe,
TeamPipe, MatInput,
MatInput, ReactiveFormsModule,
ReactiveFormsModule, FormsModule,
FormsModule, MatFormField,
MatFormField, MatGridList,
MatGridList, MatGridTile,
MatGridTile, MatGridTileText,
MatGridTileText, MatIconButton,
MatIconButton, NgClass
NgClass ],
], providers: [
providers: [ FullNamePipe,
FullNamePipe, TeamPipe
TeamPipe ],
], templateUrl: './match-result.component.html',
templateUrl: './match-result.component.html', styleUrl: './match-result.component.scss'
styleUrl: './match-result.component.scss'
}) })
export class MatchResultComponent { export class MatchResultComponent {

View File

@@ -14,24 +14,23 @@ import {ReactiveFormsModule} from "@angular/forms";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-match-sheets', selector: 'app-match-sheets',
standalone: true, imports: [
imports: [ MatCard,
MatCard, MatCardHeader,
MatCardHeader, MatCardContent,
MatCardContent, TeamPipe,
TeamPipe, NgForOf,
NgForOf, MatFormField,
MatFormField, MatInput,
MatInput, ReactiveFormsModule
ReactiveFormsModule ],
], providers: [
providers: [ TeamPipe,
TeamPipe, FullNamePipe
FullNamePipe ],
], templateUrl: './match-sheets.component.html',
templateUrl: './match-sheets.component.html', styleUrl: './match-sheets.component.scss'
styleUrl: './match-sheets.component.scss'
}) })
export class MatchSheetsComponent implements OnInit { export class MatchSheetsComponent implements OnInit {

View File

@@ -17,37 +17,36 @@ import {MatSnackBar} from "@angular/material/snack-bar";
import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask"; import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
@Component({ @Component({
selector: 'app-player-edit', selector: 'app-player-edit',
standalone: true, imports: [
imports: [ FormsModule,
FormsModule, RouterLink,
RouterLink, MatFormField,
MatFormField, MatInput,
MatInput, MatIcon,
MatIcon, MatHint,
MatHint, MatLabel,
MatLabel, MatRadioGroup,
MatRadioGroup, MatRadioButton,
MatRadioButton, MatCard,
MatCard, MatCardHeader,
MatCardHeader, MatCardContent,
MatCardContent, MatCardActions,
MatCardActions, MatDatepickerInput,
MatDatepickerInput, MatDatepickerToggle,
MatDatepickerToggle, MatDatepicker,
MatDatepicker, MatSelect,
MatSelect, MatOption,
MatOption, KeyValuePipe,
KeyValuePipe, NgForOf,
NgForOf, MatButton,
MatButton, MatAnchor,
MatAnchor, ReactiveFormsModule,
ReactiveFormsModule, NgxMaskDirective,
NgxMaskDirective, NgxMaskPipe
NgxMaskPipe ],
], templateUrl: './player-edit.component.html',
templateUrl: './player-edit.component.html', styleUrl: './player-edit.component.scss'
styleUrl: './player-edit.component.scss'
}) })
export class PlayerEditComponent implements OnInit { export class PlayerEditComponent implements OnInit {
player: Player; player: Player;

View File

@@ -3,14 +3,13 @@ import {MatAnchor} from "@angular/material/button";
import {RouterLink} from "@angular/router"; import {RouterLink} from "@angular/router";
@Component({ @Component({
selector: 'player-link', selector: 'player-link',
standalone: true, imports: [
imports: [ MatAnchor,
MatAnchor, RouterLink
RouterLink ],
], templateUrl: './player-link.component.html',
templateUrl: './player-link.component.html', styleUrl: './player-link.component.scss'
styleUrl: './player-link.component.scss'
}) })
export class PlayerLinkComponent implements OnInit { export class PlayerLinkComponent implements OnInit {

View File

@@ -23,12 +23,11 @@ import {MatPaginator} from "@angular/material/paginator";
import {MatSort, MatSortHeader} from "@angular/material/sort"; import {MatSort, MatSortHeader} from "@angular/material/sort";
@Component({ @Component({
selector: 'app-player-list', selector: 'app-player-list',
standalone: true, imports: [NgFor, RouterLink, MatAnchor, MatIcon, MatCard, MatCardHeader, MatCardContent, FullNamePipe, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatFormField, MatInput, MatFormFieldModule, MatPaginator, MatSortHeader, MatSort],
imports: [NgFor, RouterLink, MatAnchor, MatIcon, MatCard, MatCardHeader, MatCardContent, FullNamePipe, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatFormField, MatInput, MatFormFieldModule, MatPaginator, MatSortHeader, MatSort], providers: [FullNamePipe],
providers: [FullNamePipe], templateUrl: './player-list.component.html',
templateUrl: './player-list.component.html', styleUrl: './player-list.component.scss'
styleUrl: './player-list.component.scss'
}) })
export class PlayerListComponent implements AfterViewInit { export class PlayerListComponent implements AfterViewInit {

View File

@@ -20,36 +20,35 @@ import {Tournament} from "../../model/tournament";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-player-registrations', selector: 'app-player-registrations',
standalone: true, imports: [
imports: [ MatCard,
MatCard, MatCardContent,
MatCardContent, MatCardHeader,
MatCardHeader, MatFormField,
MatFormField, MatInput,
MatInput, MatLabel,
MatLabel, NgFor,
NgFor, ReactiveFormsModule,
ReactiveFormsModule, FormsModule,
FormsModule, MatCheckbox,
MatCheckbox, NgIf,
NgIf, MatCardActions,
MatCardActions, RouterLink,
RouterLink, KeyValuePipe,
KeyValuePipe, MatOption,
MatOption, MatSelect,
MatSelect, MatIcon,
MatIcon, MatFabButton,
MatFabButton, MatButton,
MatButton, MatAnchor,
MatAnchor, FullNamePipe
FullNamePipe ],
], providers: [
providers: [ FullNamePipe
FullNamePipe ],
], templateUrl: './player-registrations.component.html',
templateUrl: './player-registrations.component.html', styleUrl: './player-registrations.component.scss'
styleUrl: './player-registrations.component.scss'
}) })
export class PlayerRegistrationsComponent implements OnInit { export class PlayerRegistrationsComponent implements OnInit {

View File

@@ -14,25 +14,24 @@ import {MatMenu, MatMenuItem} from "@angular/material/menu";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-round-overview', selector: 'app-round-overview',
standalone: true, imports: [
imports: [ NgForOf,
NgForOf, TeamPipe,
TeamPipe, DecimalPipe,
DecimalPipe, MatButton,
MatButton, MatIcon,
MatIcon, MatIconButton,
MatIconButton, MatMenu,
MatMenu, MatMenuItem,
MatMenuItem, FullNamePipe
FullNamePipe ],
], providers: [
providers: [ TeamPipe,
TeamPipe, FullNamePipe
FullNamePipe ],
], templateUrl: './round-overview.component.html',
templateUrl: './round-overview.component.html', styleUrl: './round-overview.component.scss'
styleUrl: './round-overview.component.scss'
}) })
export class RoundOverviewComponent implements OnInit { export class RoundOverviewComponent implements OnInit {

View File

@@ -17,23 +17,22 @@ import {EventDivision} from "../../model/eventDivision";
import {FullNamePipe} from "../../pipes/fullname-pipe"; import {FullNamePipe} from "../../pipes/fullname-pipe";
@Component({ @Component({
selector: 'app-tournament-divide', selector: 'app-tournament-divide',
standalone: true, imports: [
imports: [ MatCard,
MatCard, MatCardHeader,
MatCardHeader, NgIf,
NgIf, MatCardContent,
MatCardContent, MatExpansionPanel,
MatExpansionPanel, MatExpansionPanelTitle,
MatExpansionPanelTitle, MatExpansionPanelHeader,
MatExpansionPanelHeader, NgForOf,
NgForOf, KeyValuePipe,
KeyValuePipe, FullNamePipe,
FullNamePipe, MatAccordion
MatAccordion ],
], templateUrl: './tournament-divide.component.html',
templateUrl: './tournament-divide.component.html', styleUrl: './tournament-divide.component.scss'
styleUrl: './tournament-divide.component.scss'
}) })
export class TournamentDivideComponent implements OnInit { export class TournamentDivideComponent implements OnInit {
tournament?: Tournament; tournament?: Tournament;

View File

@@ -15,27 +15,26 @@ import {TeamPipe} from "../../pipes/team-pipe";
import {FullNamePipe} from "../../pipes/fullname-pipe"; import {FullNamePipe} from "../../pipes/fullname-pipe";
@Component({ @Component({
selector: 'app-tournament-draw', selector: 'app-tournament-draw',
standalone: true, imports: [
imports: [ FullNamePipe,
FullNamePipe, MatCard,
MatCard, NgIf,
NgIf, MatCardContent,
MatCardContent, MatCardHeader,
MatCardHeader, MatExpansionPanel,
MatExpansionPanel, MatExpansionPanelHeader,
MatExpansionPanelHeader, MatExpansionPanelTitle,
MatExpansionPanelTitle, NgForOf,
NgForOf, TeamPipe,
TeamPipe, MatAccordion
MatAccordion ],
], providers: [
providers: [ FullNamePipe,
FullNamePipe, TeamPipe
TeamPipe ],
], templateUrl: './tournament-draw.component.html',
templateUrl: './tournament-draw.component.html', styleUrl: './tournament-draw.component.scss'
styleUrl: './tournament-draw.component.scss'
}) })
export class TournamentDrawComponent implements OnInit { export class TournamentDrawComponent implements OnInit {

View File

@@ -18,34 +18,33 @@ import {MatSnackBar} from "@angular/material/snack-bar";
registerLocaleData(nl); registerLocaleData(nl);
@Component({ @Component({
selector: 'app-tournament-edit', selector: 'app-tournament-edit',
standalone: true, imports: [
imports: [ FormsModule,
FormsModule, RouterLink,
RouterLink, MatAnchor,
MatAnchor, MatButton,
MatButton, MatIcon,
MatIcon, MatCard,
MatCard, MatCardHeader,
MatCardHeader, MatCardContent,
MatCardContent, MatFormField,
MatFormField, MatInput,
MatInput, MatLabel,
MatLabel, MatCardActions,
MatCardActions, MatRadioButton,
MatRadioButton, MatRadioGroup,
MatRadioGroup, NgForOf,
NgForOf, CurrencyPipe,
CurrencyPipe, MatHint,
MatHint, NgxMaskDirective,
NgxMaskDirective, NgxMaskPipe
NgxMaskPipe ],
], providers: [
providers: [ CurrencyPipe
CurrencyPipe ],
], templateUrl: './tournament-edit.component.html',
templateUrl: './tournament-edit.component.html', styleUrl: './tournament-edit.component.scss'
styleUrl: './tournament-edit.component.scss'
}) })
export class TournamentEditComponent implements OnInit { export class TournamentEditComponent implements OnInit {

View File

@@ -19,13 +19,12 @@ import {MatMenuTrigger} from "@angular/material/menu";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-tournament-list', selector: 'app-tournament-list',
standalone: true, imports: [
imports: [ NgFor, RouterLink, NgIf, MatAnchor, MatIcon, MatCard, MatCardHeader, MatCardContent, MatButton, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatRow, MatTableModule, MatIconButton, MatMenuTrigger
NgFor, RouterLink, NgIf, MatAnchor, MatIcon, MatCard, MatCardHeader, MatCardContent, MatButton, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatRow, MatTableModule, MatIconButton, MatMenuTrigger ],
], templateUrl: './tournament-list.component.html',
templateUrl: './tournament-list.component.html', styleUrl: './tournament-list.component.scss'
styleUrl: './tournament-list.component.scss'
}) })
export class TournamentListComponent implements OnInit, AfterContentChecked { export class TournamentListComponent implements OnInit, AfterContentChecked {

View File

@@ -34,45 +34,44 @@ import {Title} from '@angular/platform-browser';
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-tournament-manage', selector: 'app-tournament-manage',
standalone: true, imports: [
imports: [ FullNamePipe,
FullNamePipe, MatAccordion,
MatAccordion, MatCard,
MatCard, MatCardContent,
MatCardContent, MatCardHeader,
MatCardHeader, MatExpansionPanel,
MatExpansionPanel, MatExpansionPanelHeader,
MatExpansionPanelHeader, MatExpansionPanelTitle,
MatExpansionPanelTitle, NgForOf,
NgForOf, NgIf,
NgIf, TeamPipe,
TeamPipe, MatIcon,
MatIcon, NgClass,
NgClass, MatMenu,
MatMenu, MatMenuItem,
MatMenuItem, MatMenuTrigger,
MatMenuTrigger, FormsModule,
FormsModule, DatePipe,
DatePipe, MatTabGroup,
MatTabGroup, MatTab,
MatTab, MatTabLabel,
MatTabLabel, MatButton,
MatButton, MatIconButton,
MatIconButton, DecimalPipe,
DecimalPipe, TournamentValidateComponent,
TournamentValidateComponent, MatSlideToggle,
MatSlideToggle, CurrencyPipe,
CurrencyPipe, MatMenuContent
MatMenuContent ],
], providers: [
providers: [ FullNamePipe,
FullNamePipe, TeamPipe,
TeamPipe, MatchResultPipe
MatchResultPipe ],
], templateUrl: './tournament-manage.component.html',
templateUrl: './tournament-manage.component.html', styleUrl: './tournament-manage.component.scss'
styleUrl: './tournament-manage.component.scss'
}) })
export class TournamentManageComponent implements OnInit { export class TournamentManageComponent implements OnInit {

View File

@@ -10,18 +10,17 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-tournament-registrations', selector: 'app-tournament-registrations',
standalone: true, imports: [
imports: [ MatCard,
MatCard, MatCardHeader,
MatCardHeader, MatCardContent,
MatCardContent, NgForOf,
NgForOf, NgIf,
NgIf, FullNamePipe
FullNamePipe ],
], templateUrl: './tournament-registrations.component.html',
templateUrl: './tournament-registrations.component.html', styleUrl: './tournament-registrations.component.scss'
styleUrl: './tournament-registrations.component.scss'
}) })
export class TournamentRegistrationsComponent implements OnInit { export class TournamentRegistrationsComponent implements OnInit {

View File

@@ -19,25 +19,24 @@ import {PlayerService} from "../../service/player.service";
import {PlayerLinkComponent} from "../player-link/player-link.component"; import {PlayerLinkComponent} from "../player-link/player-link.component";
@Component({ @Component({
selector: 'app-tournament-validate', selector: 'app-tournament-validate',
standalone: true, imports: [
imports: [ MatCard,
MatCard, MatCardHeader,
MatCardHeader, MatCardContent,
MatCardContent, NgForOf,
NgForOf, MatExpansionPanel,
MatExpansionPanel, MatExpansionPanelTitle,
MatExpansionPanelTitle, MatExpansionPanelHeader,
MatExpansionPanelHeader, NgIf,
NgIf, MatAccordion,
MatAccordion, AsyncPipe,
AsyncPipe, MatIcon,
MatIcon, FullNamePipe,
FullNamePipe, PlayerLinkComponent
PlayerLinkComponent ],
], templateUrl: './tournament-validate.component.html',
templateUrl: './tournament-validate.component.html', styleUrl: './tournament-validate.component.scss'
styleUrl: './tournament-validate.component.scss'
}) })
export class TournamentValidateComponent implements OnInit { export class TournamentValidateComponent implements OnInit {
tournament: Tournament; tournament: Tournament;

2689
yarn.lock

File diff suppressed because it is too large Load Diff