import { ModuleWithProviders, NgModule } from '@angular/core'; import { IcsActionPlanComponent } from './ics-action-plan.component'; import { IcsActionPlanService } from './ics-action-plan.service'; import { ExtraOptions } from './types/extra-options'; import { Config } from './types/config'; import { CommonModule } from '@angular/common'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatAutocompleteModule, MatCardModule, MatCheckboxModule, MatDatepickerModule, MatFormFieldModule, MatInputModule, MatNativeDateModule, MatSelectModule } from '@angular/material'; import { ICSLoaderModule } from '@varmasagi/loader'; import { IcsActionPlanDialogComponent } from './ics-action-plan-dialog/ics-action-plan-dialog.component'; @NgModule({ imports: [ CommonModule, FormsModule, ReactiveFormsModule, MatInputModule, MatAutocompleteModule, MatCardModule, MatSelectModule, MatDatepickerModule, MatNativeDateModule, MatCheckboxModule, ICSLoaderModule, MatFormFieldModule ], declarations: [IcsActionPlanComponent, IcsActionPlanDialogComponent], exports: [IcsActionPlanComponent] }) export class IcsActionPlanModule { static forRoot( config: Config, extraOptions?: ExtraOptions ): ModuleWithProviders { return { ngModule: IcsActionPlanModule, providers: [ { provide: Config, useValue: config }, { useValue: extraOptions ? extraOptions : {}, provide: ExtraOptions }, IcsActionPlanService ] }; } }