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";
@@ -12,8 +12,7 @@ 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'

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

@@ -12,7 +12,6 @@ import {MatButton} from "@angular/material/button";
@Component({ @Component({
selector: 'app-court-selection', selector: 'app-court-selection',
standalone: true,
imports: [ imports: [
MatDialogTitle, MatDialogTitle,
MatDialogContent, MatDialogContent,

View File

@@ -16,20 +16,14 @@ 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,
MatCardContent, MatCardContent,
ReactiveFormsModule, ReactiveFormsModule,
MatFormField, MatFormField,
MatButton, MatButton,
RouterLink,
MatInput, MatInput,
NgIf,
MatLabel, MatLabel,
MatError,
MatCard, MatCard,
MatCardHeader
], ],
styleUrls: ['./login.component.scss'] styleUrls: ['./login.component.scss']
}) })

View File

@@ -22,16 +22,12 @@ 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,
MatIcon,
NgForOf,
TeamPipe, TeamPipe,
MatInput, MatInput,
ReactiveFormsModule, ReactiveFormsModule,
@@ -39,8 +35,6 @@ import {Game} from "../../model/game";
MatFormField, MatFormField,
MatGridList, MatGridList,
MatGridTile, MatGridTile,
MatGridTileText,
MatIconButton,
NgClass NgClass
], ],
providers: [ providers: [

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";
@@ -15,10 +15,8 @@ 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,

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,8 +37,7 @@ 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'

View File

@@ -4,7 +4,6 @@ import {RouterLink} from "@angular/router";
@Component({ @Component({
selector: 'player-link', selector: 'player-link',
standalone: true,
imports: [ imports: [
MatAnchor, MatAnchor,
RouterLink RouterLink

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";
@@ -24,8 +27,7 @@ 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'

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,11 +32,9 @@ 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

View File

@@ -8,23 +8,14 @@ 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: [

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,7 +25,6 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
MatExpansionPanelTitle, MatExpansionPanelTitle,
MatExpansionPanelHeader, MatExpansionPanelHeader,
NgForOf, NgForOf,
KeyValuePipe,
FullNamePipe, FullNamePipe,
MatAccordion MatAccordion
], ],

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

@@ -16,9 +16,7 @@ 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,

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,11 +33,8 @@ registerLocaleData(nl);
MatCardActions, MatCardActions,
MatRadioButton, MatRadioButton,
MatRadioGroup, MatRadioGroup,
NgForOf,
CurrencyPipe,
MatHint, MatHint,
NgxMaskDirective, NgxMaskDirective
NgxMaskPipe
], ],
providers: [ providers: [
CurrencyPipe CurrencyPipe

View File

@@ -1,28 +1,18 @@
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'

View File

@@ -35,7 +35,6 @@ import {TitleService} from "../../service/title.service";
@Component({ @Component({
selector: 'app-tournament-manage', selector: 'app-tournament-manage',
standalone: true,
imports: [ imports: [
FullNamePipe, FullNamePipe,
MatAccordion, MatAccordion,

View File

@@ -4,14 +4,12 @@ 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,

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";
@@ -20,7 +20,6 @@ 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,
@@ -31,7 +30,6 @@ import {PlayerLinkComponent} from "../player-link/player-link.component";
MatExpansionPanelHeader, MatExpansionPanelHeader,
NgIf, NgIf,
MatAccordion, MatAccordion,
AsyncPipe,
MatIcon, MatIcon,
FullNamePipe, FullNamePipe,
PlayerLinkComponent PlayerLinkComponent

6528
yarn.lock

File diff suppressed because it is too large Load Diff