import { UikitFieldComponent } from '@/uikit'; import { Component, computed, inject, Input } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { Select } from 'primeng/select'; import { Observable } from 'rxjs'; import { AbstractSelectComponent } from '../abstractClasses'; import { apiEnumTranslates } from './constants'; import { IApiEnumResponse, TEnumApi } from './models'; import { EnumsService } from './services'; @Component({ selector: 'app-enum-select', templateUrl: './select.component.html', imports: [UikitFieldComponent, Select, ReactiveFormsModule], }) export class EnumSelectComponent extends AbstractSelectComponent { @Input({ required: true }) type!: TEnumApi; @Input() customLabel?: string; private readonly service = inject(EnumsService); label = computed(() => this.customLabel ?? apiEnumTranslates[this.type]); override getDataService(): Observable { return this.service.getAll(this.type); } ngOnInit() { this.getData(); } }