import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core'; import { IcsNotificationComponent } from './ics-notification.component'; import { IcsNotificationService } from './ics-notification.service'; import { CommonModule } from '@angular/common'; import { Config } from './types/config'; import { CONFIG_TOKEN } from './injecton'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatAutocompleteModule, MatCheckboxModule, MatInputModule, MatSelectModule } from '@angular/material'; import { ICSLoaderModule } from '@varmasagi/loader'; import { IcsNotificationDialogComponent } from './ics-notification-dialog/ics-notification-dialog.component'; import { TimePickerComponent } from './time-picker/time-picker.component'; @NgModule({ imports: [ CommonModule, FormsModule, ReactiveFormsModule, MatSelectModule, MatCheckboxModule, MatInputModule, ICSLoaderModule, MatAutocompleteModule ], declarations: [IcsNotificationComponent, IcsNotificationDialogComponent, TimePickerComponent], exports: [IcsNotificationComponent] }) export class IcsNotificationModule { static forRoot(config: Config): ModuleWithProviders { return { ngModule: IcsNotificationModule, providers: [ IcsNotificationService, { useValue: config, provide: CONFIG_TOKEN } ] }; } }