import { ScrollingModule } from '@angular/cdk/scrolling'; import { Component, inject, signal } from '@angular/core'; import { form, FormField } from '@angular/forms/signals'; import { MatButtonModule } from '@angular/material/button'; import { MatOptionModule } from '@angular/material/core'; import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatSelectModule } from '@angular/material/select'; import { Regime } from '../../core/regime'; export interface BillNumberFormData { regime: Regime | null; billNumber: number | null; } @Component({ selector: 'app-bill-number', templateUrl: './bill-number.component.html', styleUrls: ['./bill-number.component.css'], imports: [ MatButtonModule, MatDialogModule, MatFormFieldModule, MatInputModule, MatOptionModule, MatSelectModule, FormField, ScrollingModule, ], }) export class BillNumberComponent { regimes = inject(MAT_DIALOG_DATA) ?? []; private dialogRef = inject>(MatDialogRef); formModel = signal({ regime: null, billNumber: 0, }); form = form(this.formModel); accept(): void { const { regime, billNumber } = this.formModel(); if (!regime) { this.dialogRef.close(undefined); return; } this.dialogRef.close(`${regime.prefix}-${billNumber ?? 0}`); } }