import { ScrollingModule } from '@angular/cdk/scrolling'; import { Component, OnInit, inject } from '@angular/core'; import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; 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 'src/app/core/regime'; @Component({ selector: 'app-bill-number', templateUrl: './bill-number.component.html', styleUrls: ['./bill-number.component.css'], imports: [ MatButtonModule, MatDialogModule, MatFormFieldModule, MatInputModule, MatOptionModule, MatSelectModule, ReactiveFormsModule, ScrollingModule, ], }) export class BillNumberComponent implements OnInit { dialogRef = inject>(MatDialogRef); data = inject(MAT_DIALOG_DATA); form: FormGroup<{ regime: FormControl; billNumber: FormControl; }>; regimes: Regime[] = []; constructor() { const data = this.data; this.regimes = data; // Create form this.form = new FormGroup({ regime: new FormControl(null), billNumber: new FormControl(0, { nonNullable: true }), }); } ngOnInit() { this.form.setValue({ regime: null, billNumber: 0, }); } accept(): void { const formValue = this.form.value; const billNumber = formValue.billNumber ?? 0; const regime = formValue.regime ?? null; if (regime == null) { this.dialogRef.close(undefined); } this.dialogRef.close(`${regime?.prefix}-${billNumber}`); } }