chore: upgrade Angular to 22 and Ionic to 9

This commit is contained in:
tothbt committed 2026-10-24 10:16:48 +02:00
1 parent 512aa58949
commit c5f9fa5e49
22 files changed
+7167 -8513

No files matched your search

+3 -2
View File
@@ -1,10 +1,10 @@
import { Component, inject } from '@angular/core';
import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
import {
AlertController,
IonApp,
IonRouterOutlet,
LoadingController
} from '@ionic/angular/standalone';
} from '@ionic/angular';
import { check, DownloadEvent } from '@tauri-apps/plugin-updater';
import { isTauri } from '@tauri-apps/api/core';
import { platform } from '@tauri-apps/plugin-os';
@@ -15,6 +15,7 @@ import { ThemeService } from './services/theme.service';
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
changeDetection: ChangeDetectionStrategy.Eager,
imports: [IonApp, IonRouterOutlet]
})
export class AppComponent {
+18 -6
View File
@@ -21,19 +21,25 @@
</ion-col>
<ion-col>
<ion-item [lines]="'none'">
<ion-label class="ion-text-center"> {{ 'umpire' | translate }} </ion-label>
<ion-label class="ion-text-center">
{{ 'umpire' | translate }}
</ion-label>
</ion-item>
</ion-col>
@if (serviceJudgeEnabled()) {
<ion-col>
<ion-item [lines]="'none'">
<ion-label class="ion-text-center"> {{ 'serviceJudge' | translate }} </ion-label>
<ion-label class="ion-text-center">
{{ 'serviceJudge' | translate }}
</ion-label>
</ion-item>
</ion-col>
}
<ion-col size="2" sizeLg="1"></ion-col>
</ion-row>
@for (item of [].constructor(settings()?.numberOfCourts); track $index) {
@for (item of
[].constructor($safeNavigationMigration(settings()?.numberOfCourts)); track
$index) {
<ion-row>
<ion-col [size]="1" class="court-number">
<ion-list>
@@ -119,19 +125,25 @@
<ion-row>
<ion-col [size]="!serviceJudgeEnabled() ? 6 : 4">
<ion-item color="primary">
<ion-label class="ion-text-center"> {{ 'umpires' | translate }} </ion-label>
<ion-label class="ion-text-center">
{{ 'umpires' | translate }}
</ion-label>
</ion-item>
</ion-col>
@if (serviceJudgeEnabled()) {
<ion-col [size]="4">
<ion-item color="primary">
<ion-label class="ion-text-center"> {{ 'serviceJudges' | translate }} </ion-label>
<ion-label class="ion-text-center">
{{ 'serviceJudges' | translate }}
</ion-label>
</ion-item>
</ion-col>
}
<ion-col [size]="!serviceJudgeEnabled() ? 6 : 4">
<ion-item color="medium">
<ion-label class="ion-text-center"> {{ 'notOnDuty' | translate }} </ion-label>
<ion-label class="ion-text-center">
{{ 'notOnDuty' | translate }}
</ion-label>
</ion-item>
</ion-col>
</ion-row>
+1 -1
View File
@@ -1,6 +1,6 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { signal } from '@angular/core';
import { AlertController } from '@ionic/angular/standalone';
import { AlertController } from '@ionic/angular';
import { CourtServiceJudge, CourtUmpire, Settings, Umpire } from 'db';
import { Tab1Page } from './tab1.page';
import { SettingsService } from '../services/settings-service';
+8 -4
View File
@@ -1,4 +1,9 @@
import { Component, computed, inject } from '@angular/core';
import {
Component,
computed,
inject,
ChangeDetectionStrategy
} from '@angular/core';
import {
IonHeader,
IonToolbar,
@@ -13,7 +18,7 @@ import {
IonIcon,
IonButton,
AlertController
} from '@ionic/angular/standalone';
} from '@ionic/angular';
import { SettingsService } from '../services/settings-service';
import { UmpireService } from '../services/umpire.service';
import { Umpire } from 'db';
@@ -27,7 +32,6 @@ import {
CdkDropList,
CdkDropListGroup
} from '@angular/cdk/drag-drop';
import { CommonModule } from '@angular/common';
import { CourtUmpireService } from '../services/court.umpire.service';
import { CourtServiceJudgeService } from '../services/court.service.judge.service';
import { addIcons } from 'ionicons';
@@ -40,6 +44,7 @@ import { TranslationService } from '../i18n/translation.service';
templateUrl: 'tab1.page.html',
styleUrls: ['tab1.page.scss'],
providers: [FullnamePipe],
changeDetection: ChangeDetectionStrategy.Eager,
imports: [
IonButton,
IonIcon,
@@ -56,7 +61,6 @@ import { TranslationService } from '../i18n/translation.service';
FullnamePipe,
CdkDropList,
CdkDrag,
CommonModule,
CdkDragPlaceholder,
CdkDropListGroup,
TranslatePipe
+8 -2
View File
@@ -1,4 +1,9 @@
import { Component, inject, ViewChild } from '@angular/core';
import {
Component,
inject,
ViewChild,
ChangeDetectionStrategy
} from '@angular/core';
import {
IonHeader,
IonToolbar,
@@ -18,7 +23,7 @@ import {
IonCol,
IonLabel,
AlertController
} from '@ionic/angular/standalone';
} from '@ionic/angular';
import { UmpireService } from '../services/umpire.service';
import { Umpire } from 'db';
import { addIcons } from 'ionicons';
@@ -35,6 +40,7 @@ import { TranslationService } from '../i18n/translation.service';
templateUrl: 'tab2.page.html',
styleUrls: ['tab2.page.scss'],
providers: [FullnamePipe],
changeDetection: ChangeDetectionStrategy.Eager,
imports: [
IonLabel,
IonCol,
+3 -2
View File
@@ -1,4 +1,4 @@
import { Component, inject } from '@angular/core';
import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
import {
IonHeader,
IonToolbar,
@@ -14,7 +14,7 @@ import {
IonSelect,
IonSelectOption,
IonLabel
} from '@ionic/angular/standalone';
} from '@ionic/angular';
import { SettingsService } from '../services/settings-service';
import { CourtUmpireService } from '../services/court.umpire.service';
import { CourtServiceJudgeService } from '../services/court.service.judge.service';
@@ -29,6 +29,7 @@ import { ThemePreference, ThemeService } from '../services/theme.service';
selector: 'app-tab3',
templateUrl: 'tab3.page.html',
styleUrls: ['tab3.page.scss'],
changeDetection: ChangeDetectionStrategy.Eager,
imports: [
IonRow,
IonCol,
+8 -2
View File
@@ -1,11 +1,16 @@
import { Component, EnvironmentInjector, inject } from '@angular/core';
import {
Component,
EnvironmentInjector,
inject,
ChangeDetectionStrategy
} from '@angular/core';
import {
IonTabs,
IonTabBar,
IonTabButton,
IonIcon,
IonLabel
} from '@ionic/angular/standalone';
} from '@ionic/angular';
import { addIcons } from 'ionicons';
import { gridOutline, peopleOutline, settingsOutline } from 'ionicons/icons';
import { TranslatePipe } from '../i18n/translation.pipe';
@@ -14,6 +19,7 @@ import { TranslatePipe } from '../i18n/translation.pipe';
selector: 'app-tabs',
templateUrl: 'tabs.page.html',
styleUrls: ['tabs.page.scss'],
changeDetection: ChangeDetectionStrategy.Eager,
imports: [IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel, TranslatePipe]
})
export class TabsPage {
+11 -4
View File
@@ -1,14 +1,21 @@
import { provideZoneChangeDetection } from '@angular/core';
import { bootstrapApplication } from '@angular/platform-browser';
import { RouteReuseStrategy, provideRouter, withPreloading, PreloadAllModules } from '@angular/router';
import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular/standalone';
import {
RouteReuseStrategy,
provideRouter,
withPreloading,
PreloadAllModules
} from '@angular/router';
import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular';
import { routes } from './app/app.routes';
import { AppComponent } from './app/app.component';
bootstrapApplication(AppComponent, {
providers: [
provideZoneChangeDetection(),
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
provideIonicAngular(),
provideRouter(routes, withPreloading(PreloadAllModules)),
],
provideRouter(routes, withPreloading(PreloadAllModules))
]
});
+5 -5
View File
@@ -3,12 +3,12 @@
import 'zone.js/testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
BrowserTestingModule,
platformBrowserTesting
} from '@angular/platform-browser/testing';
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting(),
BrowserTestingModule,
platformBrowserTesting()
);
-1
View File
@@ -2,5 +2,4 @@
* Prevents Angular change detection from
* running with certain Web Component callbacks
*/
// eslint-disable-next-line no-underscore-dangle
(window as any).__Zone_disable_customElements = true;