chore(deps): upgrade Angular 19 → 20

- ng update @angular/core@20 @angular/cli@20 @angular/material@20 @angular-eslint@20 @angular/google-maps@20
- Remove ng-chartist (abandoned, incompatible with Angular 20): replace <x-chartist> with <app-bars-chart> in dropzones-bar and jumps-by-month
- Migrate all constructor injection to inject() function (ng generate @angular/core:inject, 67 files)
- TypeScript 5.5 → 5.9.3
- DOCUMENT import moved from @angular/common to @angular/core (automatic migration)
- tsconfig moduleResolution updated to "bundler"
This commit is contained in:
2026-04-26 06:40:13 +02:00
parent 5400294d45
commit be5f5775ef
78 changed files with 5080 additions and 3886 deletions
@@ -1,4 +1,4 @@
import { Component, OnInit, OnDestroy, Input } from '@angular/core';
import { Component, OnInit, OnDestroy, Input, inject } from '@angular/core';
import { NgClass, DatePipe } from '@angular/common';
import { RouterLink } from '@angular/router';
import { MatButtonModule } from '@angular/material/button';
@@ -24,6 +24,8 @@ import { JumpPreviewComponent } from './jump-preview.component';
],
})
export class JumpListComponent implements OnInit, OnDestroy {
private jumpsService = inject(JumpsService);
private _jumps: Subscription = new Subscription();
errors: Errors = { errors: {} };
query!: JumpListConfig;
@@ -34,8 +36,6 @@ export class JumpListComponent implements OnInit, OnDestroy {
pages: Array<number> = [1];
lastUpdate: Date = new Date();
constructor(private jumpsService: JumpsService) {}
@Input() limit = 0;
@Input() refresh = 30000;
@Input() title = '';
@@ -1,4 +1,4 @@
import { Component, OnDestroy, Input } from '@angular/core';
import { Component, OnDestroy, Input, inject } from '@angular/core';
import { DecimalPipe } from '@angular/common';
import { Router, RouterLink } from '@angular/router';
import { MatButtonModule } from '@angular/material/button';
@@ -17,17 +17,15 @@ import { JumpsService } from '@services';
templateUrl: './jump-preview.component.html',
})
export class JumpPreviewComponent implements OnDestroy {
private router = inject(Router);
private jumpsService = inject(JumpsService);
@Input() jump!: Jump;
@Input() isUser!: boolean;
@Input() showMeta!: boolean;
private _jump: Subscription = new Subscription();
isDeleting = false;
constructor(
private router: Router,
private jumpsService: JumpsService,
) {}
ngOnDestroy() {
this._jump.unsubscribe();
}
@@ -7,6 +7,7 @@ import {
OnChanges,
OnDestroy,
ViewChild,
inject,
} from '@angular/core';
import { CommonModule, DecimalPipe, DatePipe } from '@angular/common';
import { UntypedFormBuilder, UntypedFormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -88,6 +89,13 @@ import {
providers: [{ provide: MatPaginatorIntl, useClass: FrenchPaginator }],
})
export class JumpTableComponent implements OnChanges, OnDestroy, AfterContentChecked {
private router = inject(Router);
private _jumpsService = inject(JumpsService);
private _jumpTableService = inject(JumpTableService);
private dialog = inject(MatDialog);
private fb = inject(UntypedFormBuilder);
private snackBar = inject(MatSnackBar);
private _jumps: Subscription = new Subscription();
private _subscriptions: Array<Subscription> = [];
//private _jump: Subscription = new Subscription();
@@ -131,14 +139,7 @@ export class JumpTableComponent implements OnChanges, OnDestroy, AfterContentChe
@ViewChild(MatSort) sort!: MatSort;
@ViewChild(MatPaginator) paginator!: MatPaginator;
constructor(
private router: Router,
private _jumpsService: JumpsService,
private _jumpTableService: JumpTableService,
private dialog: MatDialog,
private fb: UntypedFormBuilder,
private snackBar: MatSnackBar,
) {
constructor() {
this._resetErrors();
this.searchForm = this.fb.group({
//numero: ['', Validators.required]