Compare commits

...

5 Commits

Author SHA1 Message Date
ae1a30da29 Update angular to 20
Some checks failed
Gitea/swiss-client/pipeline/head There was a failure building this commit
2025-08-09 21:05:58 +02:00
e58afad433 Update angular to 20 2025-08-09 20:45:51 +02:00
3aee8fd99e Update angular to 20 2025-08-09 20:35:55 +02:00
3559adfbc9 Update angular to 19 2025-08-09 20:28:37 +02:00
e2494197cd Update angular to 19 2025-08-09 20:19:33 +02:00
25 changed files with 11951 additions and 4978 deletions

View File

@@ -1,4 +1,4 @@
FROM node:20.13.1-alpine3.19 as build FROM node:22.18.0-alpine3.22 as build
WORKDIR /app/src WORKDIR /app/src
COPY package*.json ./ COPY package*.json ./
RUN apk update RUN apk update
@@ -7,7 +7,7 @@ RUN yarn install --frozen-lockfile --no-progress
COPY . ./ COPY . ./
RUN yarn build RUN yarn build
FROM node:20.13.1-alpine3.19 FROM node:22.18.0-alpine3.22
RUN addgroup -S k8s-group && adduser -S k8s-user -G k8s-group RUN addgroup -S k8s-group && adduser -S k8s-user -G k8s-group
USER root USER root
WORKDIR /usr/app WORKDIR /usr/app

View File

@@ -15,7 +15,7 @@
"prefix": "app", "prefix": "app",
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-angular:application", "builder": "@angular/build:application",
"options": { "options": {
"outputPath": "dist/swiss-client", "outputPath": "dist/swiss-client",
"index": "src/index.html", "index": "src/index.html",
@@ -85,7 +85,7 @@
"defaultConfiguration": "production" "defaultConfiguration": "production"
}, },
"serve": { "serve": {
"builder": "@angular-devkit/build-angular:dev-server", "builder": "@angular/build:dev-server",
"configurations": { "configurations": {
"production": { "production": {
"buildTarget": "swiss-client:build:production" "buildTarget": "swiss-client:build:production"
@@ -100,10 +100,10 @@
"defaultConfiguration": "development" "defaultConfiguration": "development"
}, },
"extract-i18n": { "extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n" "builder": "@angular/build:extract-i18n"
}, },
"test": { "test": {
"builder": "@angular-devkit/build-angular:karma", "builder": "@angular/build:karma",
"options": { "options": {
"polyfills": [ "polyfills": [
"zone.js", "zone.js",
@@ -129,5 +129,31 @@
}, },
"cli": { "cli": {
"analytics": "95cdfcca-c4c3-4279-80f4-6ccad3383c37" "analytics": "95cdfcca-c4c3-4279-80f4-6ccad3383c37"
},
"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": "."
}
} }
} }

9838
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -11,45 +11,45 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^18.2.5", "@angular/animations": "^20.1.6",
"@angular/cdk": "^18.2.5", "@angular/cdk": "^20.1.5",
"@angular/common": "^18.2.5", "@angular/common": "^20.1.6",
"@angular/compiler": "^18.2.5", "@angular/compiler": "^20.1.6",
"@angular/core": "^18.2.5", "@angular/core": "^20.1.6",
"@angular/forms": "^18.2.5", "@angular/forms": "^20.1.6",
"@angular/material": "^18.2.5", "@angular/material": "^20.1.5",
"@angular/material-moment-adapter": "^18.2.5", "@angular/material-moment-adapter": "^20.1.5",
"@angular/platform-browser": "^18.2.5", "@angular/platform-browser": "^20.1.6",
"@angular/platform-browser-dynamic": "^18.2.5", "@angular/platform-browser-dynamic": "^20.1.6",
"@angular/platform-server": "^18.2.5", "@angular/platform-server": "^20.1.6",
"@angular/router": "^18.2.5", "@angular/router": "^20.1.6",
"@angular/ssr": "^18.2.5", "@angular/ssr": "^20.1.5",
"@ng-bootstrap/ng-bootstrap": "^17.0.0", "@ng-bootstrap/ng-bootstrap": "^19.0.1",
"@popperjs/core": "^2.11.8", "@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.2", "bootstrap": "^5.3.7",
"express": "^4.18.2", "express": "^5.1.0",
"moment": "2.18.1", "moment": "2.30.1",
"ngx-cookie-service-ssr": "^18.0.0", "ngx-cookie-service-ssr": "^20.1.0",
"ngx-mask": "^18.0.0", "ngx-mask": "^20.0.3",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"ts-enums": "^0.0.6", "ts-enums": "^0.0.6",
"tslib": "^2.3.0", "tslib": "^2.8.1",
"zone.js": "~0.14.10" "zone.js": "~0.15.1"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "^18.2.5", "@angular/build": "^20.1.5",
"@angular/cli": "^18.2.5", "@angular/cli": "^20.1.5",
"@angular/compiler-cli": "^18.2.5", "@angular/compiler-cli": "^20.1.6",
"@angular/localize": "^18.2.5", "@angular/localize": "^20.1.6",
"@types/express": "^4.17.17", "@types/express": "^5.0.3",
"@types/jasmine": "~5.1.0", "@types/jasmine": "~5.1.0",
"@types/node": "^18.18.0", "@types/node": "^24.2.1",
"jasmine-core": "~5.1.0", "jasmine-core": "~5.9.0",
"karma": "~6.4.0", "karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0", "karma-chrome-launcher": "~3.2.0",
"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

@@ -1,7 +1,7 @@
import {Component, OnDestroy, OnInit} from '@angular/core'; import {Component, OnDestroy, OnInit} from '@angular/core';
import {ActivatedRoute, NavigationEnd, Router, RouterLink, RouterLinkActive, RouterOutlet} from '@angular/router'; import {ActivatedRoute, Router, RouterLink, RouterOutlet} from '@angular/router';
import {CommonModule, NgOptimizedImage} from "@angular/common"; import {CommonModule, NgOptimizedImage} from "@angular/common";
import {MatAnchor, MatButton, MatIconButton, MatMiniFabButton} from "@angular/material/button"; import {MatAnchor, MatButton} from "@angular/material/button";
import {MatIcon} from "@angular/material/icon"; import {MatIcon} from "@angular/material/icon";
import {MatToolbar} from "@angular/material/toolbar"; import {MatToolbar} from "@angular/material/toolbar";
import {TitleService} from "./service/title.service"; import {TitleService} from "./service/title.service";
@@ -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, MatAnchor, MatIcon, MatButton, MatToolbar, NgOptimizedImage, 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

@@ -1,5 +1,5 @@
import { provideServerRendering } from '@angular/ssr';
import { mergeApplicationConfig, ApplicationConfig } from '@angular/core'; import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
import { provideServerRendering } from '@angular/platform-server';
import { appConfig } from './app.config'; import { appConfig } from './app.config';
const serverConfig: ApplicationConfig = { const serverConfig: ApplicationConfig = {

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,18 @@ 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: [ MatCardContent,
MatCardTitle, ReactiveFormsModule,
MatCardContent, MatFormField,
ReactiveFormsModule, MatButton,
MatFormField, MatInput,
MatButton, MatLabel,
RouterLink, MatCard,
MatInput, ],
NgIf, styleUrls: ['./login.component.scss']
MatLabel,
MatError,
MatCard,
MatCardHeader
],
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,28 @@ 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, TeamPipe,
DatePipe, MatInput,
MatIcon, ReactiveFormsModule,
NgForOf, FormsModule,
TeamPipe, MatFormField,
MatInput, MatGridList,
ReactiveFormsModule, MatGridTile,
FormsModule, NgClass
MatFormField, ],
MatGridList, providers: [
MatGridTile, FullNamePipe,
MatGridTileText, TeamPipe
MatIconButton, ],
NgClass templateUrl: './match-result.component.html',
], styleUrl: './match-result.component.scss'
providers: [
FullNamePipe,
TeamPipe
],
templateUrl: './match-result.component.html',
styleUrl: './match-result.component.scss'
}) })
export class MatchResultComponent { export class MatchResultComponent {

View File

@@ -1,5 +1,5 @@
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardContent} from "@angular/material/card";
import {TournamentService} from "../../service/tournament.service"; import {TournamentService} from "../../service/tournament.service";
import {ActivatedRoute, Router} from "@angular/router"; import {ActivatedRoute, Router} from "@angular/router";
import {Tournament} from "../../model/tournament"; import {Tournament} from "../../model/tournament";
@@ -14,11 +14,9 @@ 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,
MatCardContent, MatCardContent,
TeamPipe, TeamPipe,
NgForOf, NgForOf,
@@ -26,12 +24,12 @@ import {TitleService} from "../../service/title.service";
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

@@ -2,23 +2,21 @@ import {Component, OnInit} from '@angular/core';
import {Player, Strength} from "../../model/player"; import {Player, Strength} from "../../model/player";
import {PlayerService} from "../../service/player.service"; import {PlayerService} from "../../service/player.service";
import {ActivatedRoute, Router, RouterLink} from "@angular/router"; import {ActivatedRoute, Router, RouterLink} from "@angular/router";
import {FormGroup, FormsModule, ReactiveFormsModule} from "@angular/forms"; import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import {MatFormField, MatHint, MatLabel} from "@angular/material/form-field"; import {MatFormField, MatHint, MatLabel} from "@angular/material/form-field";
import {MatInput} from "@angular/material/input"; import {MatInput} from "@angular/material/input";
import {MatIcon} from "@angular/material/icon"; import {MatIcon} from "@angular/material/icon";
import {MatRadioButton, MatRadioGroup} from "@angular/material/radio"; import {MatRadioButton, MatRadioGroup} from "@angular/material/radio";
import {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardActions, MatCardContent} from "@angular/material/card";
import {MatDatepicker, MatDatepickerInput, MatDatepickerToggle} from "@angular/material/datepicker";
import {MatOption, MatSelect} from "@angular/material/select"; import {MatOption, MatSelect} from "@angular/material/select";
import {KeyValuePipe, NgForOf} from "@angular/common"; import {KeyValuePipe, NgForOf} from "@angular/common";
import {MatAnchor, MatButton} from "@angular/material/button"; import {MatAnchor, MatButton} from "@angular/material/button";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
import {MatSnackBar} from "@angular/material/snack-bar"; import {MatSnackBar} from "@angular/material/snack-bar";
import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask"; import {NgxMaskDirective} from "ngx-mask";
@Component({ @Component({
selector: 'app-player-edit', selector: 'app-player-edit',
standalone: true,
imports: [ imports: [
FormsModule, FormsModule,
RouterLink, RouterLink,
@@ -30,12 +28,8 @@ import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
MatRadioGroup, MatRadioGroup,
MatRadioButton, MatRadioButton,
MatCard, MatCard,
MatCardHeader,
MatCardContent, MatCardContent,
MatCardActions, MatCardActions,
MatDatepickerInput,
MatDatepickerToggle,
MatDatepicker,
MatSelect, MatSelect,
MatOption, MatOption,
KeyValuePipe, KeyValuePipe,
@@ -43,11 +37,10 @@ import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
MatButton, MatButton,
MatAnchor, MatAnchor,
ReactiveFormsModule, ReactiveFormsModule,
NgxMaskDirective, NgxMaskDirective
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

@@ -1,11 +1,10 @@
import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core'; import {AfterViewInit, Component, ViewChild} from '@angular/core';
import {Player} from "../../model/player"; import {Player} from "../../model/player";
import {PlayerService} from "../../service/player.service"; import {PlayerService} from "../../service/player.service";
import {NgFor} from "@angular/common";
import {RouterLink} from "@angular/router"; import {RouterLink} from "@angular/router";
import {MatAnchor} from "@angular/material/button"; import {MatAnchor} from "@angular/material/button";
import {MatIcon} from "@angular/material/icon"; import {MatIcon} from "@angular/material/icon";
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardContent} from "@angular/material/card";
import {FullNamePipe} from "../../pipes/fullname-pipe"; import {FullNamePipe} from "../../pipes/fullname-pipe";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
import { import {
@@ -14,8 +13,12 @@ import {
MatColumnDef, MatColumnDef,
MatHeaderCell, MatHeaderCell,
MatHeaderCellDef, MatHeaderCellDef,
MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatHeaderRow,
MatTable, MatTableDataSource MatHeaderRowDef,
MatRow,
MatRowDef,
MatTable,
MatTableDataSource
} from "@angular/material/table"; } from "@angular/material/table";
import {MatFormField, MatFormFieldModule} from "@angular/material/form-field"; import {MatFormField, MatFormFieldModule} from "@angular/material/form-field";
import {MatInput} from "@angular/material/input"; import {MatInput} from "@angular/material/input";
@@ -23,12 +26,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: [RouterLink, MatAnchor, MatIcon, MatCard, 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

@@ -4,30 +4,26 @@ import {ActivatedRoute, Router, RouterLink} from "@angular/router";
import {PlayerService} from "../../service/player.service"; import {PlayerService} from "../../service/player.service";
import {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card";
import {MatFormField, MatLabel} from "@angular/material/form-field"; import {MatFormField, MatLabel} from "@angular/material/form-field";
import {MatInput} from "@angular/material/input";
import {FormsModule, ReactiveFormsModule} from "@angular/forms"; import {FormsModule, ReactiveFormsModule} from "@angular/forms";
import {RegistrationService} from "../../service/registration.service"; import {RegistrationService} from "../../service/registration.service";
import {KeyValuePipe, NgFor, NgIf} from "@angular/common"; import {NgFor, NgIf} from "@angular/common";
import {MatCheckbox, MatCheckboxChange} from "@angular/material/checkbox"; import {MatCheckbox, MatCheckboxChange} from "@angular/material/checkbox";
import {EventRegistration, TournamentRegistration} from "../../model/tournamentRegistration"; import {EventRegistration, TournamentRegistration} from "../../model/tournamentRegistration";
import {MatOption} from "@angular/material/core"; import {MatOption} from "@angular/material/core";
import {MatSelect} from "@angular/material/select"; import {MatSelect} from "@angular/material/select";
import {MatIcon} from "@angular/material/icon"; import {MatIcon} from "@angular/material/icon";
import {MatAnchor, MatButton, MatFabButton} from "@angular/material/button"; import {MatAnchor, MatButton} from "@angular/material/button";
import {MatSnackBar} from "@angular/material/snack-bar"; import {MatSnackBar} from "@angular/material/snack-bar";
import {FullNamePipe} from "../../pipes/fullname-pipe"; import {FullNamePipe} from "../../pipes/fullname-pipe";
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,
MatLabel, MatLabel,
NgFor, NgFor,
ReactiveFormsModule, ReactiveFormsModule,
@@ -36,20 +32,18 @@ import {TitleService} from "../../service/title.service";
NgIf, NgIf,
MatCardActions, MatCardActions,
RouterLink, RouterLink,
KeyValuePipe,
MatOption, MatOption,
MatSelect, MatSelect,
MatIcon, MatIcon,
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

@@ -8,31 +8,22 @@ import {ActivatedRoute, Router} from "@angular/router";
import {DecimalPipe, NgForOf} from "@angular/common"; import {DecimalPipe, NgForOf} from "@angular/common";
import {TeamPipe} from "../../pipes/team-pipe"; import {TeamPipe} from "../../pipes/team-pipe";
import {FullNamePipe} from "../../pipes/fullname-pipe"; import {FullNamePipe} from "../../pipes/fullname-pipe";
import {MatButton, MatIconButton} from "@angular/material/button";
import {MatIcon} from "@angular/material/icon";
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,
MatIcon,
MatIconButton,
MatMenu,
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

@@ -2,9 +2,8 @@ import {Component, OnInit} from '@angular/core';
import {Tournament} from "../../model/tournament"; import {Tournament} from "../../model/tournament";
import {TournamentService} from "../../service/tournament.service"; import {TournamentService} from "../../service/tournament.service";
import {ActivatedRoute, Router} from "@angular/router"; import {ActivatedRoute, Router} from "@angular/router";
import {TournamentDivision} from "../../model/tournamentDivision";
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
import {KeyValuePipe, NgForOf, NgIf} from "@angular/common"; import {NgForOf, NgIf} from "@angular/common";
import { import {
MatAccordion, MatAccordion,
MatExpansionPanel, MatExpansionPanel,
@@ -12,13 +11,11 @@ import {
MatExpansionPanelTitle MatExpansionPanelTitle
} from "@angular/material/expansion"; } from "@angular/material/expansion";
import {Event} from "../../model/event"; import {Event} from "../../model/event";
import {Player, Strength} from "../../model/player"; import {Strength} from "../../model/player";
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,
@@ -28,12 +25,11 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
MatExpansionPanelTitle, MatExpansionPanelTitle,
MatExpansionPanelHeader, MatExpansionPanelHeader,
NgForOf, NgForOf,
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

@@ -9,7 +9,7 @@
</mat-card-header> </mat-card-header>
<mat-card-content> <mat-card-content>
<mat-accordion multi="true"> <mat-accordion multi="true">
<mat-expansion-panel *ngFor="let group of this.event.groups"> <mat-expansion-panel *ngFor="let group of event.groups">
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
{{ group.name }}&nbsp;<span class="badge text-bg-success">{{ group.teams.length }}</span> {{ group.name }}&nbsp;<span class="badge text-bg-success">{{ group.teams.length }}</span>

View File

@@ -15,10 +15,8 @@ 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,
MatCard, MatCard,
NgIf, NgIf,
MatCardContent, MatCardContent,
@@ -30,12 +28,12 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
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

@@ -5,21 +5,20 @@ import {Tournament} from "../../model/tournament";
import {TournamentService} from "../../service/tournament.service"; import {TournamentService} from "../../service/tournament.service";
import {MatAnchor, MatButton} from "@angular/material/button"; import {MatAnchor, MatButton} from "@angular/material/button";
import {MatIcon} from "@angular/material/icon"; import {MatIcon} from "@angular/material/icon";
import {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardActions, MatCardContent} from "@angular/material/card";
import {MatFormField, MatHint, MatLabel} from "@angular/material/form-field"; import {MatFormField, MatHint, MatLabel} from "@angular/material/form-field";
import {MatInput} from "@angular/material/input"; import {MatInput} from "@angular/material/input";
import {MatRadioButton, MatRadioGroup} from "@angular/material/radio"; import {MatRadioButton, MatRadioGroup} from "@angular/material/radio";
import {CurrencyPipe, NgForOf, registerLocaleData} from "@angular/common"; import {CurrencyPipe, registerLocaleData} from "@angular/common";
import nl from "@angular/common/locales/nl"; import nl from "@angular/common/locales/nl";
import {TitleService} from "../../service/title.service"; import {TitleService} from "../../service/title.service";
import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask"; import {NgxMaskDirective} from "ngx-mask";
import {MatSnackBar} from "@angular/material/snack-bar"; 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,
@@ -27,7 +26,6 @@ registerLocaleData(nl);
MatButton, MatButton,
MatIcon, MatIcon,
MatCard, MatCard,
MatCardHeader,
MatCardContent, MatCardContent,
MatFormField, MatFormField,
MatInput, MatInput,
@@ -35,17 +33,14 @@ registerLocaleData(nl);
MatCardActions, MatCardActions,
MatRadioButton, MatRadioButton,
MatRadioGroup, MatRadioGroup,
NgForOf,
CurrencyPipe,
MatHint, MatHint,
NgxMaskDirective, NgxMaskDirective
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

@@ -1,31 +1,21 @@
import {AfterContentChecked, AfterContentInit, Component, EventEmitter, OnInit, Output} from '@angular/core'; import {AfterContentChecked, Component, OnInit} from '@angular/core';
import {NgFor, NgIf} from "@angular/common"; import {NgFor, NgIf} from "@angular/common";
import {RouterLink} from "@angular/router"; import {RouterLink} from "@angular/router";
import {Tournament} from "../../model/tournament"; import {Tournament} from "../../model/tournament";
import {TournamentService} from "../../service/tournament.service"; import {TournamentService} from "../../service/tournament.service";
import {MatAnchor, MatButton, MatIconButton} from "@angular/material/button"; import {MatAnchor, MatButton} from "@angular/material/button";
import {MatIcon} from "@angular/material/icon"; import {MatIcon} from "@angular/material/icon";
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardContent} from "@angular/material/card";
import { import {MatTableModule} from "@angular/material/table";
MatCell,
MatCellDef,
MatColumnDef,
MatHeaderCell,
MatHeaderCellDef,
MatHeaderRow, MatRow,
MatTable, MatTableModule
} from "@angular/material/table";
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, MatCardContent, MatButton, MatTableModule
], ],
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

@@ -4,24 +4,22 @@ import {Tournament} from "../../model/tournament";
import {TournamentService} from "../../service/tournament.service"; import {TournamentService} from "../../service/tournament.service";
import {ActivatedRoute, Router} from "@angular/router"; import {ActivatedRoute, Router} from "@angular/router";
import {NgForOf, NgIf} from "@angular/common"; import {NgForOf, NgIf} from "@angular/common";
import {Player} from "../../model/player";
import {Event} from "../../model/event"; import {Event} from "../../model/event";
import {FullNamePipe} from "../../pipes/fullname-pipe"; 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

@@ -1,7 +1,7 @@
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card"; import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
import {Tournament} from "../../model/tournament"; import {Tournament} from "../../model/tournament";
import {AsyncPipe, NgForOf, NgIf} from "@angular/common"; import {NgForOf, NgIf} from "@angular/common";
import {Event} from "../../model/event"; import {Event} from "../../model/event";
import {TournamentService} from "../../service/tournament.service"; import {TournamentService} from "../../service/tournament.service";
import {ActivatedRoute, Router} from "@angular/router"; import {ActivatedRoute, Router} from "@angular/router";
@@ -19,25 +19,23 @@ 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, MatIcon,
AsyncPipe, FullNamePipe,
MatIcon, PlayerLinkComponent
FullNamePipe, ],
PlayerLinkComponent templateUrl: './tournament-validate.component.html',
], styleUrl: './tournament-validate.component.scss'
templateUrl: './tournament-validate.component.html',
styleUrl: './tournament-validate.component.scss'
}) })
export class TournamentValidateComponent implements OnInit { export class TournamentValidateComponent implements OnInit {
tournament: Tournament; tournament: Tournament;

6528
yarn.lock

File diff suppressed because it is too large Load Diff