import {ModuleWithProviders, NgModule, SkipSelf} from '@angular/core'; import {CommonModule} from '@angular/common'; import {FormsModule} from '@angular/forms'; import {MatCheckboxModule} from '@angular/material/checkbox'; import {MatSelectModule} from '@angular/material/select'; import {MatRadioModule} from '@angular/material/radio'; import {MatSlideToggleModule} from '@angular/material/slide-toggle'; import {CheckboxComponent} from './checkbox/checkbox.component'; import {DropdownComponent} from './dropdown/dropdown.component'; import {DropdownGroupComponent} from './dropdown-group/dropdown-group.component'; import {RadioComponent} from './radio/radio.component'; import {FilterHeadingComponent} from './filter-heading/filter-heading.component'; import {RadioDropdownsComponent} from './radio-dropdowns/radio-dropdowns.component'; import {ToggleComponent} from './toggle/toggle.component'; import {ToggleDynamicComponent} from './toggle-dynamic/toggle-dynamic.component'; import {FilterOrderByPipe} from './pipes/filter-order-by.pipe'; import {FilterParentPipe} from './pipes/filter.pipe'; import {SelectedFiltersDataService} from './providers/selected-filters-data.service'; import {FiltersDataService} from './providers/filters-data.service'; import {FiltersListService} from './providers/filters-list.service'; import {FilterUpdateBroadcastService} from './providers/filter-update-broadcast.service'; import {FilterChangeNotifyService} from './providers/filter-change-notify.service'; @NgModule({ imports: [ CommonModule, FormsModule, MatCheckboxModule, MatSelectModule, MatRadioModule, MatSlideToggleModule ], declarations: [ CheckboxComponent, DropdownComponent, DropdownGroupComponent, FilterHeadingComponent, RadioComponent, RadioDropdownsComponent, ToggleComponent, ToggleDynamicComponent, FilterOrderByPipe, FilterParentPipe ], exports: [ CheckboxComponent, DropdownComponent, DropdownGroupComponent, FilterHeadingComponent, RadioComponent, RadioDropdownsComponent, ToggleComponent, ToggleDynamicComponent, FilterOrderByPipe, FilterParentPipe ] }) export class FilterComponentModule { static forRoot(): ModuleWithProviders { return { ngModule: FilterComponentModule, providers: [ SelectedFiltersDataService, FiltersListService, FiltersDataService, FilterUpdateBroadcastService, FilterChangeNotifyService ] }; } }