Moved to Angular v20 and Tailwind v4 plus all related dependencies

Renamed Docker directory.

Also serving static files from FastAPI.
This commit is contained in:
2025-06-26 06:46:17 +00:00
parent 05b395af00
commit cb2b650375
253 changed files with 8626 additions and 1995 deletions
@@ -1,46 +1,45 @@
import { DecimalPipe, CurrencyPipe } from '@angular/common';
import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';
import { FormGroup, FormArray, FormControl, ReactiveFormsModule } from '@angular/forms';
import { MatIconButton, MatButton } from '@angular/material/button';
import { CurrencyPipe, DecimalPipe } from '@angular/common';
import { Component, ElementRef, HostListener, inject, OnInit, ViewChild } from '@angular/core';
import { FormArray, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { MatButton, MatIconButton } from '@angular/material/button';
import {
MatCard,
MatCardHeader,
MatCardTitleGroup,
MatCardTitle,
MatCardContent,
MatCardActions,
MatCardContent,
MatCardHeader,
MatCardTitle,
MatCardTitleGroup,
} from '@angular/material/card';
import { MatOption } from '@angular/material/core';
import { MatDatepickerInput, MatDatepickerToggle, MatDatepicker } from '@angular/material/datepicker';
import { MatDatepicker, MatDatepickerInput, MatDatepickerToggle } from '@angular/material/datepicker';
import { MatDialog } from '@angular/material/dialog';
import { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';
import { MatIcon } from '@angular/material/icon';
import { MatInput } from '@angular/material/input';
import { MatPaginator } from '@angular/material/paginator';
import { MatSelectChange, MatSelect } from '@angular/material/select';
import { MatSelect, MatSelectChange } from '@angular/material/select';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatSort, MatSortHeader } from '@angular/material/sort';
import {
MatTable,
MatColumnDef,
MatHeaderCellDef,
MatHeaderCell,
MatCellDef,
MatCell,
MatHeaderRowDef,
MatCellDef,
MatColumnDef,
MatHeaderCell,
MatHeaderCellDef,
MatHeaderRow,
MatRowDef,
MatHeaderRowDef,
MatRow,
MatRowDef,
MatTable,
} from '@angular/material/table';
import { ActivatedRoute, Router } from '@angular/router';
import moment from 'moment';
import { AuthService } from '../auth/auth.service';
import { CostCentre } from '../core/cost-centre';
import { MatSnackBar } from '@angular/material/snack-bar';
import { User } from '../core/user';
import { ConfirmDialogComponent } from '../shared/confirm-dialog/confirm-dialog.component';
import { ToCsvService } from '../shared/to-csv.service';
import { ClosingStock } from './closing-stock';
import { ClosingStockDataSource } from './closing-stock-datasource';
import { ClosingStockItem } from './closing-stock-item';
@@ -50,7 +49,6 @@ import { ClosingStockService } from './closing-stock.service';
selector: 'app-closing-stock',
templateUrl: './closing-stock.component.html',
styleUrls: ['./closing-stock.component.css'],
standalone: true,
imports: [
MatCard,
MatCardHeader,
@@ -89,6 +87,14 @@ import { ClosingStockService } from './closing-stock.service';
],
})
export class ClosingStockComponent implements OnInit {
private route = inject(ActivatedRoute);
private router = inject(Router);
private toCsv = inject(ToCsvService);
private dialog = inject(MatDialog);
private snackBar = inject(MatSnackBar);
auth = inject(AuthService);
private ser = inject(ClosingStockService);
@ViewChild(MatPaginator, { static: true }) paginator!: MatPaginator;
@ViewChild(MatSort, { static: true }) sort!: MatSort;
@ViewChild('dateElement', { static: true }) dateElement!: ElementRef<HTMLInputElement>;
@@ -117,15 +123,7 @@ export class ClosingStockComponent implements OnInit {
this.dateElement.nativeElement.select();
}
constructor(
private route: ActivatedRoute,
private router: Router,
private toCsv: ToCsvService,
private dialog: MatDialog,
private snackBar: MatSnackBar,
public auth: AuthService,
private ser: ClosingStockService,
) {
constructor() {
this.costCentres = [];
this.form = new FormGroup({
date: new FormControl(new Date(), { nonNullable: true }),
@@ -2,7 +2,6 @@ import { Routes } from '@angular/router';
import { authGuard } from '../auth/auth-guard.service';
import { costCentreListResolver } from '../cost-centre/cost-centre-list.resolver';
import { ClosingStockComponent } from './closing-stock.component';
import { closingStockResolver } from './closing-stock.resolver';
@@ -1,10 +1,9 @@
import { HttpClient, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { inject, Injectable } from '@angular/core';
import { Observable } from 'rxjs/internal/Observable';
import { catchError } from 'rxjs/operators';
import { ErrorLoggerService } from '../core/error-logger.service';
import { ClosingStock } from './closing-stock';
const url = '/api/closing-stock';
@@ -14,10 +13,8 @@ const serviceName = 'ClosingStockService';
providedIn: 'root',
})
export class ClosingStockService {
constructor(
private http: HttpClient,
private log: ErrorLoggerService,
) {}
private http = inject(HttpClient);
private log = inject(ErrorLoggerService);
list(date: string | null, costCentre: string | null): Observable<ClosingStock> {
const listUrl = date === null ? url : `${url}/${date}`;
@@ -1,6 +1,5 @@
import { CostCentre } from '../core/cost-centre';
import { User } from '../core/user';
import { ClosingStockItem } from './closing-stock-item';
export class ClosingStock {