update angular core & cli to v19

This commit is contained in:
Marcel Arndt 2025-04-11 12:04:04 +02:00
parent dde00abe54
commit d8a2930247
53 changed files with 4137 additions and 3574 deletions

File diff suppressed because it is too large Load Diff

View File

@ -10,17 +10,17 @@
},
"private": true,
"dependencies": {
"@angular/animations": "^18.1.0",
"@angular/animations": "^19.2.6",
"@angular/cdk": "^18.1.1",
"@angular/common": "^18.1.0",
"@angular/compiler": "^18.1.0",
"@angular/core": "^18.1.0",
"@angular/forms": "^18.1.0",
"@angular/common": "^19.2.6",
"@angular/compiler": "^19.2.6",
"@angular/core": "^19.2.6",
"@angular/forms": "^19.2.6",
"@angular/material": "^18.1.1",
"@angular/material-date-fns-adapter": "^18.1.1",
"@angular/platform-browser": "^18.1.0",
"@angular/platform-browser-dynamic": "^18.1.0",
"@angular/router": "^18.1.0",
"@angular/platform-browser": "^19.2.6",
"@angular/platform-browser-dynamic": "^19.2.6",
"@angular/router": "^19.2.6",
"@apollo/client": "^3.0.0",
"@azure/msal-angular": "^3.0.22",
"@azure/msal-browser": "^3.19.1",
@ -46,13 +46,13 @@
"graphql-ws": "^5.16.0",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.14.3"
"zone.js": "~0.15.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "^18.1.1",
"@angular/cli": "^18.1.1",
"@angular/compiler-cli": "^18.1.0",
"@angular/localize": "^18.1.1",
"@angular-devkit/build-angular": "^19.2.7",
"@angular/cli": "^19.2.7",
"@angular/compiler-cli": "^19.2.6",
"@angular/localize": "^19.2.6",
"@types/jasmine": "~5.1.0",
"autoprefixer": "^10.4.19",
"jasmine-core": "~5.1.0",

View File

@ -5,10 +5,9 @@ import { MsalService } from '@azure/msal-angular';
@Component({
selector: 'app-root',
standalone: true,
imports: [AppShellComponent, RouterOutlet],
templateUrl: './app.component.html',
styleUrl: './app.component.scss',
styleUrl: './app.component.scss'
})
export class AppComponent {
title = 'dashboard';

View File

@ -1,9 +1,9 @@
import {
APP_INITIALIZER,
ApplicationConfig,
ErrorHandler,
importProvidersFrom,
provideZoneChangeDetection,
provideAppInitializer,
} from '@angular/core';
import { provideRouter } from '@angular/router';
@ -19,15 +19,13 @@ import { GlobalErrorHandler } from './core/telemetry/global-error-handler';
export const appConfig: ApplicationConfig = {
providers: [
{
provide: APP_INITIALIZER,
useFactory: faroInitializer,
deps: [],
multi: true,
},
provideAppInitializer(() => {
const initializerFn = faroInitializer();
return initializerFn();
}),
{
provide: ErrorHandler,
useClass: GlobalErrorHandler
useClass: GlobalErrorHandler,
},
provideZoneChangeDetection({ eventCoalescing: true }),
provideRouter(routes),

View File

@ -20,7 +20,6 @@ import { RoleDirective } from '../ms-authentication/role.directive';
@Component({
selector: 'app-app-shell',
standalone: true,
imports: [
MatButtonModule,
MatIconModule,
@ -35,7 +34,7 @@ import { RoleDirective } from '../ms-authentication/role.directive';
RoleDirective,
],
templateUrl: './app-shell.component.html',
styleUrl: './app-shell.component.scss',
styleUrl: './app-shell.component.scss'
})
export class AppShellComponent {
isHandset$: Observable<boolean>;

View File

@ -5,7 +5,6 @@ import { map } from 'rxjs';
import { AuthService } from '../ms-authentication/auth.service';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-avatar',
template: `<div
@ -17,7 +16,7 @@ import { AuthService } from '../ms-authentication/auth.service';
<mat-menu #menu="matMenu">
<button mat-menu-item (click)="logout()">Logout</button>
</mat-menu>`,
imports: [AsyncPipe, MatMenuModule],
imports: [AsyncPipe, MatMenuModule]
})
export class AvatarComponent {
private authService = inject(AuthService);

View File

@ -16,9 +16,8 @@ export interface ConfirmDialogData {
<button mat-stroked-button color="warn" [dialogClose]="true">Bestätigen</button>
</div>
</div>`,
standalone: true,
imports: [MatButtonModule, DialogCloseDirective],
changeDetection: ChangeDetectionStrategy.OnPush,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ConfirmDialogComponent {
ref: DialogRef<ConfirmDialogData> = inject(DialogRef);

View File

@ -15,7 +15,8 @@ import * as echarts from 'echarts/core';
import { CanvasRenderer } from 'echarts/renderers';
@Directive({
selector: '[dksEcharts]'
selector: '[dksEcharts]',
standalone: false
})
export class EchartsDirective implements OnInit, OnDestroy, OnChanges {
@Input() options?: EChartsOption;

View File

@ -15,7 +15,6 @@ import { HotToastService } from '@ngxpert/hot-toast';
import { Tour, Ticket, AccountingState, TicketValidationState } from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-accounting-item',
template: ` <div class="flex justify-between">
@ -60,7 +59,7 @@ import { Tour, Ticket, AccountingState, TicketValidationState } from '../../../c
NgIf,
NgClass,
CurrencyPipe,
],
]
})
export class AccountingItemComponent implements AfterViewInit {
toast = inject(HotToastService);

View File

@ -3,7 +3,6 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { TourStateMeta } from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-accounting-lane-footer',
template: `<span *ngIf="withTourCount" class="text-left text-xs">
@ -22,7 +21,7 @@ import { TourStateMeta } from '../../../core/data-access/graphql/generated/gener
}
`,
],
imports: [NgIf, AsyncPipe, CurrencyPipe],
imports: [NgIf, AsyncPipe, CurrencyPipe]
})
export class AccountingLaneFooterComponent {
@Input() tourStateMeta!: TourStateMeta;

View File

@ -20,7 +20,6 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-accounting-lane-header-filter',
template: `
@ -85,7 +84,7 @@ import {
MatIconModule,
MatMenuModule,
MatCheckboxModule,
],
]
})
export class AccountingLaneHeaderFilterComponent implements AfterViewInit {
@Input() state!: AccountingState;

View File

@ -10,7 +10,6 @@ import { AccountingLaneHeaderFilterComponent } from './accounting-lane-header-fi
import { AccountingFilterArgs, AccountingState } from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-accounting-lane-header',
template: `<div></div>
@ -34,7 +33,7 @@ import { AccountingFilterArgs, AccountingState } from '../../../core/data-access
}
`,
],
imports: [NgSwitch, NgSwitchCase, AccountingLaneHeaderFilterComponent],
imports: [NgSwitch, NgSwitchCase, AccountingLaneHeaderFilterComponent]
})
export class AccountingLaneHeaderComponent {
@Input() state!: AccountingState;

View File

@ -37,7 +37,6 @@ import { AccountingLaneHeaderComponent } from './accounting-lane-header.componen
@Component({
selector: 'dks-accounting-lane',
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
templateUrl: './accounting-lane.component.html',
styles: [
@ -58,7 +57,7 @@ import { AccountingLaneHeaderComponent } from './accounting-lane-header.componen
AsyncPipe,
CurrencyPipe,
ScrollingModule,
],
]
})
export class AccountingLaneComponent {
private dialog = inject(DialogService);

View File

@ -6,7 +6,6 @@ import { MatTabsModule } from '@angular/material/tabs';
import { Tour } from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-accounting-tour-overview',
template: `
@ -72,7 +71,7 @@ import { Tour } from '../../../core/data-access/graphql/generated/generated';
</div>
`,
styles: [],
imports: [MatTabsModule, MatIconModule, MatDividerModule, NgIf, DatePipe],
imports: [MatTabsModule, MatIconModule, MatDividerModule, NgIf, DatePipe]
})
export class AccountingTourOverviewComponent {
@Input() tour!: Tour;

View File

@ -6,7 +6,6 @@ import { MatListModule } from '@angular/material/list';
import { Ticket, TicketValidationState, Tour } from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-accounting-tour-ticket',
template: `
@ -97,7 +96,7 @@ import { Ticket, TicketValidationState, Tour } from '../../../core/data-access/g
NgSwitch,
NgSwitchCase,
DatePipe,
],
]
})
export class AccountingTourTicketComponent {
@Input() tour!: Tour & { ticket: Ticket };

View File

@ -10,7 +10,6 @@ import { AccountingTourOverviewComponent } from './accounting-tour-overview.comp
import { AccountingTourTicketComponent } from './accounting-tour-ticket.component';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-accounting-tour-view',
template: `<h3 class="py-2 px-3 !mb-0">
@ -37,7 +36,7 @@ import { AccountingTourTicketComponent } from './accounting-tour-ticket.componen
MatIconModule,
AccountingTourOverviewComponent,
AccountingTourTicketComponent,
],
]
})
export class AccountingTourViewComponent {
ref: DialogRef<Tour & { ticket: Ticket }, undefined | any> =

View File

@ -4,7 +4,6 @@ import { AccountingState } from '../../core/data-access/graphql/generated/genera
@Component({
selector: 'dks-dashboard-accounting',
standalone: true,
imports: [AccountingLaneComponent],
template: `<section class="h-full p-6 grid grid-cols-1 md:grid-cols-3 gap-6">
<div class="col-span-1 md:col-span-5 flex justify-end items-center">
@ -29,7 +28,7 @@ import { AccountingState } from '../../core/data-access/graphql/generated/genera
}
`,
],
changeDetection: ChangeDetectionStrategy.OnPush,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DashboardAccountingComponent {
AccountingState = AccountingState;

View File

@ -36,6 +36,7 @@ interface Anomaly {
templateUrl: './anomaly-list-item.component.html',
styleUrls: ['./anomaly-list-item.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
})
export class AnomalyListItemComponent {
isHovering = false;

View File

@ -22,6 +22,7 @@ import { AnomaliesService } from '../anomalies.service';
templateUrl: './anomaly-list.component.html',
styleUrls: ['./anomaly-list.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
})
export class AnomalyListComponent implements OnInit, OnDestroy {
@ViewChild(MatPaginator, { static: true }) private paginator!: MatPaginator;

View File

@ -12,6 +12,7 @@ interface SolutionTarget {
selector: 'dks-anomaly-solution-dialog',
templateUrl: './anomaly-solution-dialog.component.html',
styleUrls: ['./anomaly-solution-dialog.component.css'],
standalone: false
})
export class AnomalySolutionDialogComponent {
constructor(

View File

@ -45,6 +45,7 @@ interface AnomalyFlatNode {
templateUrl: './anomaly-tree.component.html',
styleUrls: ['./anomaly-tree.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
})
export class AnomalyTreeComponent implements OnInit, OnDestroy {
@ViewChild(MatPaginator, { static: true }) private paginator!: MatPaginator;

View File

@ -5,5 +5,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
templateUrl: './control-center-dashboard.component.html',
styleUrls: ['./control-center-dashboard.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
})
export class ControlCenterDashboardComponent {}

View File

@ -16,6 +16,7 @@ import {
templateUrl: './tours-per-time-kpi.component.html',
styleUrls: ['./tours-per-time-kpi.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
})
export class ToursPerTimeKPIComponent implements OnInit {
@Input() ordinanceType!: string;

View File

@ -6,6 +6,7 @@ import { Tour } from '../../../../core/data-access/graphql/generated/generated';
selector: 'dks-tour-view-dialog',
templateUrl: './tour-view-dialog.component.html',
styleUrls: ['./tour-view-dialog.component.css'],
standalone: false
})
export class TourViewDialogComponent {
ref = inject<DialogRef<Partial<Tour>>>(DialogRef);

View File

@ -11,6 +11,7 @@ import { Tour } from '../../../core/data-access/graphql/generated/generated';
templateUrl: './upcoming-tours.component.html',
styleUrls: ['./upcoming-tours.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
})
export class UpcomingToursComponent {
upcomingTours$;

View File

@ -14,10 +14,9 @@ import { TimePerTourMetric } from '../../../../core/data-access/graphql/generate
@Component({
selector: 'dks-average-revenue-metric',
standalone: true,
imports: [CommonModule, UtilNgxEchartsModule],
templateUrl: './average-revenue-metric.component.html',
styleUrls: ['./average-revenue-metric.component.css'],
styleUrls: ['./average-revenue-metric.component.css']
})
export class AverageRevenueMetricComponent implements OnChanges {
@Input() metrics: TimePerTourMetric[] = [];

View File

@ -7,10 +7,9 @@ import { summarizeMetrics } from '../../util/summarize-metrics';
@Component({
selector: 'dks-average-revenue-summary',
standalone: true,
imports: [CommonModule, MatIconModule],
templateUrl: './average-revenue-summary.component.html',
styleUrls: ['./average-revenue-summary.component.css'],
styleUrls: ['./average-revenue-summary.component.css']
})
export class AverageRevenueSummaryComponent {
@Input() set metrics(value: TimePerTourMetric[]) {

View File

@ -19,10 +19,9 @@ import { MetricTimeScale } from '../../types';
@Component({
selector: 'dks-breakeven-metric',
standalone: true,
imports: [CommonModule, UtilNgxEchartsModule],
templateUrl: './breakeven-metric.component.html',
styleUrls: ['./breakeven-metric.component.css'],
styleUrls: ['./breakeven-metric.component.css']
})
export class BreakevenMetricComponent implements OnChanges {
@Input() metrics: TimePerTourMetric[] = [];

View File

@ -7,10 +7,9 @@ import { summarizeMetrics } from '../../util/summarize-metrics';
@Component({
selector: 'dks-breakeven-summary',
standalone: true,
imports: [CommonModule, MatIconModule],
templateUrl: './breakeven-summary.component.html',
styleUrls: ['./breakeven-summary.component.css'],
styleUrls: ['./breakeven-summary.component.css']
})
export class BreakevenSummaryComponent {
@Input() set metrics(value: TimePerTourMetric[]) {

View File

@ -13,7 +13,6 @@ import { TimePerTourSummaryComponent } from '../time-per-tour-summary/time-per-t
@Component({
selector: 'dks-metric-summary',
standalone: true,
imports: [
CommonModule,
AverageRevenueMetricComponent,
@ -25,7 +24,7 @@ import { TimePerTourSummaryComponent } from '../time-per-tour-summary/time-per-t
MatSlideToggleModule,
],
templateUrl: './metric-summary.component.html',
styleUrls: ['./metric-summary.component.css'],
styleUrls: ['./metric-summary.component.css']
})
export class MetricSummaryComponent {
@Input() set metrics(metrics: TimePerTourMetric[]) {

View File

@ -15,10 +15,9 @@ import { MetricTimeScale } from '../../types';
@Component({
selector: 'dks-time-per-tour-metric',
standalone: true,
imports: [CommonModule, UtilNgxEchartsModule],
templateUrl: './time-per-tour-metric.component.html',
styleUrls: ['./time-per-tour-metric.component.css'],
styleUrls: ['./time-per-tour-metric.component.css']
})
export class TimePerTourMetricComponent implements OnChanges {
@Input() metrics: TimePerTourMetric[] = [];

View File

@ -7,10 +7,9 @@ import { TimePerTourMetric } from '../../../../core/data-access/graphql/generate
@Component({
selector: 'dks-time-per-tour-summary',
standalone: true,
imports: [CommonModule, MatIconModule],
templateUrl: './time-per-tour-summary.component.html',
styleUrls: ['./time-per-tour-summary.component.css'],
styleUrls: ['./time-per-tour-summary.component.css']
})
export class TimePerTourSummaryComponent {
@Input() set metrics(value: TimePerTourMetric[]) {

View File

@ -15,10 +15,9 @@ import { TimePerTourMetric } from '../../../../core/data-access/graphql/generate
@Component({
selector: 'dks-view-type-selector',
standalone: true,
imports: [NgIf, NgSwitch, NgSwitchCase, NgClass, AsyncPipe, CurrencyPipe, MatIconModule],
templateUrl: './view-type-selector.component.html',
styleUrls: ['./view-type-selector.component.css'],
styleUrls: ['./view-type-selector.component.css']
})
export class ViewTypeSelectorComponent {
@Input() viewType!: DashboardViewType;

View File

@ -23,6 +23,7 @@ import { mergeMetrics } from '../util/merge-metric';
selector: 'dks-dayview',
templateUrl: './dayview.component.html',
styleUrls: ['./dayview.component.css'],
standalone: false
})
export class DayviewComponent {
OrdinanceTypes = OrdinanceTypes;

View File

@ -4,6 +4,7 @@ import { Component } from '@angular/core';
selector: 'dks-manager-dashboard',
templateUrl: './manager-dashboard.component.html',
styleUrls: ['./manager-dashboard.component.css'],
standalone: false
})
export class ManagerDashboardComponent {
tabs: { title: string; route: string }[] = [

View File

@ -24,6 +24,7 @@ import { mergeMetrics } from '../util/merge-metric';
selector: 'dks-monthview',
templateUrl: './monthview.component.html',
styleUrls: ['./monthview.component.css'],
standalone: false
})
export class MonthviewComponent {
OrdinanceTypes = OrdinanceTypes;

View File

@ -8,6 +8,7 @@ import { OrdinanceTypes } from '../types';
selector: 'dks-overview',
templateUrl: './overview.component.html',
styleUrls: ['./overview.component.css'],
standalone: false
})
export class OverviewComponent {
OrdinanceTypes = OrdinanceTypes;

View File

@ -15,12 +15,10 @@ import { Component, Input, OnChanges, OnInit } from '@angular/core';
trigger('detailExpand', [
state('collapsed', style({ height: '0px', minHeight: '0' })),
state('expanded', style({ height: '*' })),
transition(
'expanded <=> collapsed',
animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')
),
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
]),
],
standalone: false
})
export class TimePerTourByCarComponent implements OnInit, OnChanges {
@Input() columns: { id: string; title: string }[] = [];

View File

@ -6,6 +6,7 @@ import { interval, map, startWith } from 'rxjs';
selector: 'dks-time-per-tour-kpi',
templateUrl: './time-per-tour-kpi.component.html',
styleUrls: ['./time-per-tour-kpi.component.css'],
standalone: false
})
export class TimePerTourKPIComponent {
@Input() text = '';

View File

@ -18,7 +18,6 @@ import {
import CategoryColors from './category-colors';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-item',
templateUrl: './ticket-item.component.html',
@ -29,7 +28,7 @@ import CategoryColors from './category-colors';
}
`,
],
imports: [MatIconModule, MatBadgeModule, NgIf],
imports: [MatIconModule, MatBadgeModule, NgIf]
})
export class TicketItemComponent implements OnInit {
@Input() ticket!: Ticket & { tours: Tour[] };

View File

@ -3,7 +3,6 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { TicketStateMeta } from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-lane-footer',
template: `<span *ngIf="withTicketCount" class="text-left text-xs">
@ -29,7 +28,7 @@ import { TicketStateMeta } from '../../../core/data-access/graphql/generated/gen
}
`,
],
imports: [NgIf, AsyncPipe, CurrencyPipe],
imports: [NgIf, AsyncPipe, CurrencyPipe]
})
export class TicketLaneFooterComponent {
@Input() ticketStateMeta!: TicketStateMeta;

View File

@ -21,7 +21,6 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-lane-header-filter',
template: `
@ -110,7 +109,7 @@ import {
MatIconModule,
MatMenuModule,
MatCheckboxModule,
],
]
})
export class TicketLaneHeaderFilterComponent implements AfterViewInit {
@Input() state!: TicketValidationState;

View File

@ -13,7 +13,6 @@ import {
import { TicketLaneHeaderFilterComponent } from './ticket-lane-header-filter.component';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-lane-header',
template: `<div></div>
@ -41,7 +40,7 @@ import { TicketLaneHeaderFilterComponent } from './ticket-lane-header-filter.com
}
`,
],
imports: [NgSwitch, NgSwitchCase, TicketLaneHeaderFilterComponent],
imports: [NgSwitch, NgSwitchCase, TicketLaneHeaderFilterComponent]
})
export class TicketLaneHeaderComponent {
@Input() state!: TicketValidationState;

View File

@ -37,7 +37,6 @@ import { TicketLaneFooterComponent } from './ticket-lane-footer.component';
import { TicketLaneHeaderComponent } from './ticket-lane-header.component';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-lane',
templateUrl: './ticket-lane.component.html',
@ -59,7 +58,7 @@ import { TicketLaneHeaderComponent } from './ticket-lane-header.component';
AsyncPipe,
RoleDirective,
ScrollingModule,
],
]
})
export class TicketLaneComponent {
private dialog = inject(DialogService);

View File

@ -20,7 +20,6 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-documents-missing',
template: `<div class="flex items-center p-3">
@ -62,7 +61,7 @@ import {
MatRadioModule,
MatCheckboxModule,
FormsModule,
],
]
})
export class TicketDocumentsMissingComponent {
@Input() ticket!: Ticket & { tours: Tour[] };

View File

@ -15,7 +15,6 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-overview',
template: `<div class="grid grid-cols-4">
@ -92,7 +91,7 @@ import {
NgForOf,
NgSwitch,
NgSwitchCase,
],
]
})
export class TicketOverviewComponent {
@Input() ticket!: Ticket & { tours: Tour[] };

View File

@ -19,7 +19,6 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-td-uncertain',
template: `<div class="flex flex-col p-3">
@ -59,7 +58,7 @@ import {
MatFormFieldModule,
MatRadioModule,
FormsModule,
],
]
})
export class TicketTdUncertainComponent {
@Input() ticket!: Ticket & { tours: Tour[] };

View File

@ -16,7 +16,6 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-tours',
template: ` <div class="max-h-96 overflow-y-auto">
@ -87,7 +86,7 @@ import {
MatButtonModule,
MatCheckboxModule,
MatTableModule,
],
]
})
export class TicketToursComponent implements OnInit {
@Input() ticket!: Ticket & { tours: Tour[] };

View File

@ -22,7 +22,6 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-user-action-required',
template: `<div class="flex flex-col p-3">
@ -108,7 +107,7 @@ import {
MatRadioModule,
MatInputModule,
FormsModule,
],
]
})
export class TicketUserActionRequiredComponent implements OnInit {
@Input() ticket!: Ticket & { tours: Tour[] };

View File

@ -19,7 +19,6 @@ import { TicketToursComponent } from './ticket-tours.component';
import { TicketUserActionRequiredComponent } from './ticket-user-action-required.component';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-ticket-view',
templateUrl: './ticket-view.component.html',
@ -34,7 +33,7 @@ import { TicketUserActionRequiredComponent } from './ticket-user-action-required
NgIf,
NgSwitch,
NgSwitchCase,
],
]
})
export class TicketViewComponent {
private ticketsService = inject(TicketsService);

View File

@ -8,7 +8,6 @@ import { TicketLaneComponent } from './ticket-lane/ticket-lane.component';
import { TicketsSearchDialogComponent } from './tickets-search-dialog/tickets-search-dialog.component';
@Component({
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'dks-tickets-page',
template: `<section class="h-full p-6 grid grid-cols-1 md:grid-cols-4 gap-6">
@ -56,7 +55,7 @@ import { TicketsSearchDialogComponent } from './tickets-search-dialog/tickets-se
MatButtonModule,
MatIconModule,
RoleDirective,
],
]
})
export class TicketsPageComponent {
private dialog = inject(DialogService);

View File

@ -19,7 +19,6 @@ import { TicketViewComponent } from '../ticket-view/ticket-view.component';
import { TicketsService } from '../tickets.service';
@Component({
standalone: true,
template: `<div class="flex flex-col items-center justify-start p-4">
<div class="text-lg font-bold pb-2">Ticket suchen</div>
<hr />
@ -66,7 +65,7 @@ import { TicketsService } from '../tickets.service';
NgFor,
NgIf,
],
changeDetection: ChangeDetectionStrategy.OnPush,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class TicketsSearchDialogComponent {
private ticketsService = inject(TicketsService);

View File

@ -20,8 +20,7 @@
"ES2022",
"dom",
"esnext.asynciterable"
],
"allowSyntheticDefaultImports": true
]
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,