import { Component, input, output, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core'; import { FormArray, FormGroup, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatTooltipModule } from '@angular/material/tooltip'; import { EpgViewMode } from '@iptvnator/shared/interfaces'; import { EpgSourceStatusComponent } from '@iptvnator/ui/epg'; import { TranslateModule } from '@ngx-translate/core'; import { EpgViewModeOption } from './settings.models'; @Component({ selector: 'app-settings-epg-section', imports: [ EpgSourceStatusComponent, MatButtonModule, MatCheckboxModule, MatFormFieldModule, MatIconModule, MatInputModule, MatProgressSpinnerModule, MatTooltipModule, ReactiveFormsModule, TranslateModule, ], templateUrl: './settings-epg-section.component.html', encapsulation: ViewEncapsulation.None, // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection -- Preserve pre-Angular 22 eager checking during the framework upgrade. changeDetection: ChangeDetectionStrategy.Eager, styles: [':host { display: contents; }'], }) export class SettingsEpgSectionComponent { readonly form = input.required(); readonly epgUrl = input.required(); readonly isClearingEpgData = input(false); readonly canBrowseFiles = input(false); readonly epgViewModeOptions = input.required(); readonly refreshEpg = output(); readonly browseEpgSource = output(); readonly removeEpgSource = output(); readonly addEpgSource = output(); readonly refreshAllEpg = output(); readonly clearEpgData = output(); readonly selectEpgViewMode = output(); }