import { Component, inject } from "@angular/core"; import { FormBuilder, FormControl, ReactiveFormsModule, Validators } from "@angular/forms"; import { MatDialogRef } from "@angular/material/dialog"; import { MatFormFieldModule } from "@angular/material/form-field"; import { MatIcon } from "@angular/material/icon"; import { MatInputModule } from "@angular/material/input"; import { MatSelectModule } from '@angular/material/select'; export interface ProgramingLanguage { code: string; label: string; } export const PROGRAMMING_LANGUAGES: ProgramingLanguage[] = [ { code: 'bash', label: 'Bash' }, { code: 'java', label: 'Java' }, { code: 'markup', label: 'html/xml' }, { code: 'python', label: 'Python' }, { code: 'sql', label: 'SQL' } ]; @Component({ selector: 'app-code-block-dialog', standalone: true, templateUrl: './code-block-dialog.component.html', styleUrl: './code-block-dialog.component.scss', imports: [ MatFormFieldModule, MatIcon, MatInputModule, MatSelectModule, ReactiveFormsModule, ] }) export class CodeBlockDialog { private readonly dialogRef = inject(MatDialogRef); private formBuilder = inject(FormBuilder); programmingLanguages = PROGRAMMING_LANGUAGES; formGroup = this.formBuilder.group({ programmingLanguage: new FormControl('', Validators.required), codeBlock: new FormControl('', Validators.required) }); closeAndValidate(): void { } closeDialog(): void { this.dialogRef.close(); } }