import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { TranslateModule } from '@ngx-translate/core'; import { ChartsModule } from 'ng2-charts'; import { ButtonModule, ConfirmDialogModule, DialogModule, DialogService, DynamicDialogModule, FieldsetModule, FocusTrapModule, InputSwitchModule, InputTextareaModule, MessageModule, PanelModule, ProgressSpinnerModule, SidebarModule, StepsModule, ToastModule, TooltipModule, } from 'primeng'; import { ConfirmationService, MessageService } from 'primeng/api'; import { FeedbackComponent } from './components/feedback/feedback.component'; import { PageNotFoundComponent } from './components/page-not-found/page-not-found.component'; import { PollPageComponent } from './components/poll-page/poll-page.component'; import { LanguageSelectorComponent } from './components/selectors/language-selector/language-selector.component'; import { ThemeSelectorComponent } from './components/selectors/theme-selector/theme-selector.component'; import { SettingsComponent } from './components/settings/settings.component'; const MODULE_LIST = [CommonModule, ChartsModule, FormsModule, TranslateModule]; const PRIMENG_MODULE_LIST = [ ButtonModule, ConfirmDialogModule, DialogModule, DynamicDialogModule, FieldsetModule, FocusTrapModule, InputSwitchModule, InputTextareaModule, MessageModule, PanelModule, ProgressSpinnerModule, SidebarModule, StepsModule, ToastModule, TooltipModule, ]; const COMPONENT_LIST = [ ThemeSelectorComponent, LanguageSelectorComponent, PageNotFoundComponent, PollPageComponent, SettingsComponent, FeedbackComponent, ]; @NgModule({ declarations: COMPONENT_LIST, imports: [...MODULE_LIST, ...PRIMENG_MODULE_LIST], exports: [...MODULE_LIST, ...PRIMENG_MODULE_LIST, ...COMPONENT_LIST], providers: [ConfirmationService, MessageService, DialogService], entryComponents: [SettingsComponent], }) export class SharedModule {}