import { APP_INITIALIZER, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { CookieService } from 'ngx-cookie-service'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { MainPageComponent } from './main-page/main-page.component'; import { AddTaskComponent } from './add-task/add-task.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import {MatIconModule} from '@angular/material/icon'; import {MatInputModule} from '@angular/material/input'; import { DisplayTaskComponent } from './display-task/display-task.component'; import { TaskListsComponent } from './task-lists/task-lists.component'; import { AddTaskListComponent } from './task-lists/add-task-list/add-task-list.component'; import {MatDialogModule} from '@angular/material/dialog'; import {MatButtonModule} from '@angular/material/button'; import {ReactiveFormsModule} from '@angular/forms'; import {MatSnackBarModule} from '@angular/material/snack-bar'; import { HeaderComponent } from './core/components/header/header.component'; import { ActiveListTasksComponent } from './active-list-tasks/active-list-tasks.component'; import { TaskDisplayComponent } from './active-list-tasks/task-display/task-display.component'; import {MatCheckboxModule} from '@angular/material/checkbox'; import { TaskListService } from './core/service/task-list.service'; import { StorePersistenceService } from './core/service/store-persistence.service'; import {MatTooltipModule} from '@angular/material/tooltip'; import {MatRippleModule} from '@angular/material/core'; import { RenameTaskListComponent } from './task-lists/rename-task-list/rename-task-list.component'; import { ConfirmDialogComponent } from './core/components/confirm-dialog/confirm-dialog.component'; @NgModule({ declarations: [ AppComponent, MainPageComponent, AddTaskComponent, DisplayTaskComponent, TaskListsComponent, AddTaskListComponent, HeaderComponent, ActiveListTasksComponent, TaskDisplayComponent, RenameTaskListComponent, ConfirmDialogComponent ], imports: [ BrowserModule, AppRoutingModule, BrowserAnimationsModule, MatIconModule, MatInputModule, MatDialogModule, MatButtonModule, ReactiveFormsModule, MatSnackBarModule, MatCheckboxModule, MatTooltipModule, MatRippleModule ], providers: [ CookieService, { provide: APP_INITIALIZER, useFactory: (taskListService: TaskListService) => () => taskListService.removeActiveTaskList(), deps: [TaskListService, StorePersistenceService], multi: true } ], bootstrap: [AppComponent] }) export class AppModule { }