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
COPY package*.json ./
RUN apk update
@@ -7,7 +7,7 @@ RUN yarn install --frozen-lockfile --no-progress
COPY . ./
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
USER root
WORKDIR /usr/app

View File

@@ -15,7 +15,7 @@
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:application",
"builder": "@angular/build:application",
"options": {
"outputPath": "dist/swiss-client",
"index": "src/index.html",
@@ -85,7 +85,7 @@
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"builder": "@angular/build:dev-server",
"configurations": {
"production": {
"buildTarget": "swiss-client:build:production"
@@ -100,10 +100,10 @@
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n"
"builder": "@angular/build:extract-i18n"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"builder": "@angular/build:karma",
"options": {
"polyfills": [
"zone.js",
@@ -129,5 +129,31 @@
},
"cli": {
"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,
"dependencies": {
"@angular/animations": "^18.2.5",
"@angular/cdk": "^18.2.5",
"@angular/common": "^18.2.5",
"@angular/compiler": "^18.2.5",
"@angular/core": "^18.2.5",
"@angular/forms": "^18.2.5",
"@angular/material": "^18.2.5",
"@angular/material-moment-adapter": "^18.2.5",
"@angular/platform-browser": "^18.2.5",
"@angular/platform-browser-dynamic": "^18.2.5",
"@angular/platform-server": "^18.2.5",
"@angular/router": "^18.2.5",
"@angular/ssr": "^18.2.5",
"@ng-bootstrap/ng-bootstrap": "^17.0.0",
"@angular/animations": "^20.1.6",
"@angular/cdk": "^20.1.5",
"@angular/common": "^20.1.6",
"@angular/compiler": "^20.1.6",
"@angular/core": "^20.1.6",
"@angular/forms": "^20.1.6",
"@angular/material": "^20.1.5",
"@angular/material-moment-adapter": "^20.1.5",
"@angular/platform-browser": "^20.1.6",
"@angular/platform-browser-dynamic": "^20.1.6",
"@angular/platform-server": "^20.1.6",
"@angular/router": "^20.1.6",
"@angular/ssr": "^20.1.5",
"@ng-bootstrap/ng-bootstrap": "^19.0.1",
"@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.2",
"express": "^4.18.2",
"moment": "2.18.1",
"ngx-cookie-service-ssr": "^18.0.0",
"ngx-mask": "^18.0.0",
"bootstrap": "^5.3.7",
"express": "^5.1.0",
"moment": "2.30.1",
"ngx-cookie-service-ssr": "^20.1.0",
"ngx-mask": "^20.0.3",
"rxjs": "~7.8.0",
"ts-enums": "^0.0.6",
"tslib": "^2.3.0",
"zone.js": "~0.14.10"
"tslib": "^2.8.1",
"zone.js": "~0.15.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^18.2.5",
"@angular/cli": "^18.2.5",
"@angular/compiler-cli": "^18.2.5",
"@angular/localize": "^18.2.5",
"@types/express": "^4.17.17",
"@angular/build": "^20.1.5",
"@angular/cli": "^20.1.5",
"@angular/compiler-cli": "^20.1.6",
"@angular/localize": "^20.1.6",
"@types/express": "^5.0.3",
"@types/jasmine": "~5.1.0",
"@types/node": "^18.18.0",
"jasmine-core": "~5.1.0",
"@types/node": "^24.2.1",
"jasmine-core": "~5.9.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.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 { CommonEngine } from '@angular/ssr';
import { CommonEngine } from '@angular/ssr/node';
import express from 'express';
import { fileURLToPath } from 'node:url';
import { dirname, join, resolve } from 'node:path';

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
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 {ActivatedRoute, Router} from "@angular/router";
import {Tournament} from "../../model/tournament";
@@ -14,11 +14,9 @@ import {ReactiveFormsModule} from "@angular/forms";
import {TitleService} from "../../service/title.service";
@Component({
selector: 'app-match-sheets',
standalone: true,
selector: 'app-match-sheets',
imports: [
MatCard,
MatCardHeader,
MatCardContent,
TeamPipe,
NgForOf,
@@ -26,12 +24,12 @@ import {TitleService} from "../../service/title.service";
MatInput,
ReactiveFormsModule
],
providers: [
TeamPipe,
FullNamePipe
],
templateUrl: './match-sheets.component.html',
styleUrl: './match-sheets.component.scss'
providers: [
TeamPipe,
FullNamePipe
],
templateUrl: './match-sheets.component.html',
styleUrl: './match-sheets.component.scss'
})
export class MatchSheetsComponent implements OnInit {

View File

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

View File

@@ -3,14 +3,13 @@ import {MatAnchor} from "@angular/material/button";
import {RouterLink} from "@angular/router";
@Component({
selector: 'player-link',
standalone: true,
imports: [
MatAnchor,
RouterLink
],
templateUrl: './player-link.component.html',
styleUrl: './player-link.component.scss'
selector: 'player-link',
imports: [
MatAnchor,
RouterLink
],
templateUrl: './player-link.component.html',
styleUrl: './player-link.component.scss'
})
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 {PlayerService} from "../../service/player.service";
import {NgFor} from "@angular/common";
import {RouterLink} from "@angular/router";
import {MatAnchor} from "@angular/material/button";
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 {TitleService} from "../../service/title.service";
import {
@@ -14,8 +13,12 @@ import {
MatColumnDef,
MatHeaderCell,
MatHeaderCellDef,
MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef,
MatTable, MatTableDataSource
MatHeaderRow,
MatHeaderRowDef,
MatRow,
MatRowDef,
MatTable,
MatTableDataSource
} from "@angular/material/table";
import {MatFormField, MatFormFieldModule} from "@angular/material/form-field";
import {MatInput} from "@angular/material/input";
@@ -23,12 +26,11 @@ import {MatPaginator} from "@angular/material/paginator";
import {MatSort, MatSortHeader} from "@angular/material/sort";
@Component({
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],
providers: [FullNamePipe],
templateUrl: './player-list.component.html',
styleUrl: './player-list.component.scss'
selector: 'app-player-list',
imports: [RouterLink, MatAnchor, MatIcon, MatCard, MatCardContent, FullNamePipe, MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatFormField, MatInput, MatFormFieldModule, MatPaginator, MatSortHeader, MatSort],
providers: [FullNamePipe],
templateUrl: './player-list.component.html',
styleUrl: './player-list.component.scss'
})
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 {MatCard, MatCardActions, MatCardContent, MatCardHeader} from "@angular/material/card";
import {MatFormField, MatLabel} from "@angular/material/form-field";
import {MatInput} from "@angular/material/input";
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
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 {EventRegistration, TournamentRegistration} from "../../model/tournamentRegistration";
import {MatOption} from "@angular/material/core";
import {MatSelect} from "@angular/material/select";
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 {FullNamePipe} from "../../pipes/fullname-pipe";
import {Tournament} from "../../model/tournament";
import {TitleService} from "../../service/title.service";
@Component({
selector: 'app-player-registrations',
standalone: true,
selector: 'app-player-registrations',
imports: [
MatCard,
MatCardContent,
MatCardHeader,
MatFormField,
MatInput,
MatLabel,
NgFor,
ReactiveFormsModule,
@@ -36,20 +32,18 @@ import {TitleService} from "../../service/title.service";
NgIf,
MatCardActions,
RouterLink,
KeyValuePipe,
MatOption,
MatSelect,
MatIcon,
MatFabButton,
MatButton,
MatAnchor,
FullNamePipe
],
providers: [
FullNamePipe
],
templateUrl: './player-registrations.component.html',
styleUrl: './player-registrations.component.scss'
providers: [
FullNamePipe
],
templateUrl: './player-registrations.component.html',
styleUrl: './player-registrations.component.scss'
})
export class PlayerRegistrationsComponent implements OnInit {

View File

@@ -8,31 +8,22 @@ import {ActivatedRoute, Router} from "@angular/router";
import {DecimalPipe, NgForOf} from "@angular/common";
import {TeamPipe} from "../../pipes/team-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";
@Component({
selector: 'app-round-overview',
standalone: true,
selector: 'app-round-overview',
imports: [
NgForOf,
TeamPipe,
DecimalPipe,
MatButton,
MatIcon,
MatIconButton,
MatMenu,
MatMenuItem,
FullNamePipe
],
providers: [
TeamPipe,
FullNamePipe
],
templateUrl: './round-overview.component.html',
styleUrl: './round-overview.component.scss'
providers: [
TeamPipe,
FullNamePipe
],
templateUrl: './round-overview.component.html',
styleUrl: './round-overview.component.scss'
})
export class RoundOverviewComponent implements OnInit {

View File

@@ -2,9 +2,8 @@ import {Component, OnInit} from '@angular/core';
import {Tournament} from "../../model/tournament";
import {TournamentService} from "../../service/tournament.service";
import {ActivatedRoute, Router} from "@angular/router";
import {TournamentDivision} from "../../model/tournamentDivision";
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
import {KeyValuePipe, NgForOf, NgIf} from "@angular/common";
import {NgForOf, NgIf} from "@angular/common";
import {
MatAccordion,
MatExpansionPanel,
@@ -12,13 +11,11 @@ import {
MatExpansionPanelTitle
} from "@angular/material/expansion";
import {Event} from "../../model/event";
import {Player, Strength} from "../../model/player";
import {EventDivision} from "../../model/eventDivision";
import {Strength} from "../../model/player";
import {FullNamePipe} from "../../pipes/fullname-pipe";
@Component({
selector: 'app-tournament-divide',
standalone: true,
selector: 'app-tournament-divide',
imports: [
MatCard,
MatCardHeader,
@@ -28,12 +25,11 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
MatExpansionPanelTitle,
MatExpansionPanelHeader,
NgForOf,
KeyValuePipe,
FullNamePipe,
MatAccordion
],
templateUrl: './tournament-divide.component.html',
styleUrl: './tournament-divide.component.scss'
templateUrl: './tournament-divide.component.html',
styleUrl: './tournament-divide.component.scss'
})
export class TournamentDivideComponent implements OnInit {
tournament?: Tournament;

View File

@@ -9,7 +9,7 @@
</mat-card-header>
<mat-card-content>
<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-panel-title>
{{ 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";
@Component({
selector: 'app-tournament-draw',
standalone: true,
selector: 'app-tournament-draw',
imports: [
FullNamePipe,
MatCard,
NgIf,
MatCardContent,
@@ -30,12 +28,12 @@ import {FullNamePipe} from "../../pipes/fullname-pipe";
TeamPipe,
MatAccordion
],
providers: [
FullNamePipe,
TeamPipe
],
templateUrl: './tournament-draw.component.html',
styleUrl: './tournament-draw.component.scss'
providers: [
FullNamePipe,
TeamPipe
],
templateUrl: './tournament-draw.component.html',
styleUrl: './tournament-draw.component.scss'
})
export class TournamentDrawComponent implements OnInit {

View File

@@ -5,21 +5,20 @@ import {Tournament} from "../../model/tournament";
import {TournamentService} from "../../service/tournament.service";
import {MatAnchor, MatButton} from "@angular/material/button";
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 {MatInput} from "@angular/material/input";
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 {TitleService} from "../../service/title.service";
import {NgxMaskDirective, NgxMaskPipe} from "ngx-mask";
import {NgxMaskDirective} from "ngx-mask";
import {MatSnackBar} from "@angular/material/snack-bar";
registerLocaleData(nl);
@Component({
selector: 'app-tournament-edit',
standalone: true,
selector: 'app-tournament-edit',
imports: [
FormsModule,
RouterLink,
@@ -27,7 +26,6 @@ registerLocaleData(nl);
MatButton,
MatIcon,
MatCard,
MatCardHeader,
MatCardContent,
MatFormField,
MatInput,
@@ -35,17 +33,14 @@ registerLocaleData(nl);
MatCardActions,
MatRadioButton,
MatRadioGroup,
NgForOf,
CurrencyPipe,
MatHint,
NgxMaskDirective,
NgxMaskPipe
NgxMaskDirective
],
providers: [
CurrencyPipe
],
templateUrl: './tournament-edit.component.html',
styleUrl: './tournament-edit.component.scss'
providers: [
CurrencyPipe
],
templateUrl: './tournament-edit.component.html',
styleUrl: './tournament-edit.component.scss'
})
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 {RouterLink} from "@angular/router";
import {Tournament} from "../../model/tournament";
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 {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
import {
MatCell,
MatCellDef,
MatColumnDef,
MatHeaderCell,
MatHeaderCellDef,
MatHeaderRow, MatRow,
MatTable, MatTableModule
} from "@angular/material/table";
import {MatMenuTrigger} from "@angular/material/menu";
import {MatCard, MatCardContent} from "@angular/material/card";
import {MatTableModule} from "@angular/material/table";
import {TitleService} from "../../service/title.service";
@Component({
selector: 'app-tournament-list',
standalone: true,
selector: 'app-tournament-list',
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',
styleUrl: './tournament-list.component.scss'
templateUrl: './tournament-list.component.html',
styleUrl: './tournament-list.component.scss'
})
export class TournamentListComponent implements OnInit, AfterContentChecked {

View File

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

View File

@@ -4,24 +4,22 @@ import {Tournament} from "../../model/tournament";
import {TournamentService} from "../../service/tournament.service";
import {ActivatedRoute, Router} from "@angular/router";
import {NgForOf, NgIf} from "@angular/common";
import {Player} from "../../model/player";
import {Event} from "../../model/event";
import {FullNamePipe} from "../../pipes/fullname-pipe";
import {TitleService} from "../../service/title.service";
@Component({
selector: 'app-tournament-registrations',
standalone: true,
imports: [
MatCard,
MatCardHeader,
MatCardContent,
NgForOf,
NgIf,
FullNamePipe
],
templateUrl: './tournament-registrations.component.html',
styleUrl: './tournament-registrations.component.scss'
selector: 'app-tournament-registrations',
imports: [
MatCard,
MatCardHeader,
MatCardContent,
NgForOf,
NgIf,
FullNamePipe
],
templateUrl: './tournament-registrations.component.html',
styleUrl: './tournament-registrations.component.scss'
})
export class TournamentRegistrationsComponent implements OnInit {

View File

@@ -1,7 +1,7 @@
import {Component, OnInit} from '@angular/core';
import {MatCard, MatCardContent, MatCardHeader} from "@angular/material/card";
import {Tournament} from "../../model/tournament";
import {AsyncPipe, NgForOf, NgIf} from "@angular/common";
import {NgForOf, NgIf} from "@angular/common";
import {Event} from "../../model/event";
import {TournamentService} from "../../service/tournament.service";
import {ActivatedRoute, Router} from "@angular/router";
@@ -19,25 +19,23 @@ import {PlayerService} from "../../service/player.service";
import {PlayerLinkComponent} from "../player-link/player-link.component";
@Component({
selector: 'app-tournament-validate',
standalone: true,
imports: [
MatCard,
MatCardHeader,
MatCardContent,
NgForOf,
MatExpansionPanel,
MatExpansionPanelTitle,
MatExpansionPanelHeader,
NgIf,
MatAccordion,
AsyncPipe,
MatIcon,
FullNamePipe,
PlayerLinkComponent
],
templateUrl: './tournament-validate.component.html',
styleUrl: './tournament-validate.component.scss'
selector: 'app-tournament-validate',
imports: [
MatCard,
MatCardHeader,
MatCardContent,
NgForOf,
MatExpansionPanel,
MatExpansionPanelTitle,
MatExpansionPanelHeader,
NgIf,
MatAccordion,
MatIcon,
FullNamePipe,
PlayerLinkComponent
],
templateUrl: './tournament-validate.component.html',
styleUrl: './tournament-validate.component.scss'
})
export class TournamentValidateComponent implements OnInit {
tournament: Tournament;

6528
yarn.lock

File diff suppressed because it is too large Load Diff