import { BrowserModule } from '@angular/platform-browser'; import { NgModule, isDevMode } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { CookieService } from 'ngx-cookie-service'; import { ScrollingModule } from '@angular/cdk/scrolling'; import { AppComponent } from './app.component'; import { EtaPipe, SpeedPipe, EncodeURIComponent, FileSizePipe, DurationPipe } from './downloads.pipe'; import { MeTubeSocket } from './metube-socket'; import { NgSelectModule } from '@ng-select/ng-select'; import { ServiceWorkerModule } from '@angular/service-worker'; import { SidebarComponent } from './sidebar.component'; import { CommandBarComponent } from './command-bar.component'; import { StatsStripComponent } from './stats-strip.component'; import { ActiveDownloadsComponent } from './active-downloads.component'; import { DownloadListComponent } from './download-list.component'; import { DownloadRowComponent } from './download-row.component'; import { DownloadCardComponent } from './download-card.component'; import { AdvancedOptionsComponent } from './advanced-options.component'; import { LibraryBrowserComponent } from './library-browser.component'; import { ToastsComponent } from './toasts.component'; @NgModule({ declarations: [ AppComponent, EtaPipe, SpeedPipe, FileSizePipe, DurationPipe, EncodeURIComponent, SidebarComponent, CommandBarComponent, StatsStripComponent, ActiveDownloadsComponent, DownloadListComponent, DownloadRowComponent, DownloadCardComponent, AdvancedOptionsComponent, LibraryBrowserComponent, ToastsComponent ], bootstrap: [AppComponent], imports: [BrowserModule, FormsModule, NgbModule, FontAwesomeModule, NgSelectModule, ScrollingModule, ServiceWorkerModule.register('custom-service-worker.js', { enabled: !isDevMode(), // Register the ServiceWorker as soon as the application is stable // or after 30 seconds (whichever comes first). registrationStrategy: 'registerWhenStable:30000' })], providers: [CookieService, MeTubeSocket, provideHttpClient(withInterceptorsFromDi())] }) export class AppModule { }