import { DateToStringForChatRoomListPipe } from './pipes/dates.pipe'; import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FlexLayoutModule } from '@angular/flex-layout'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { MatDialogModule } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { DragDropModule } from '@angular/cdk/drag-drop'; import { FileUploadQueueComponent } from './components/file-upload-queue.component'; import { ImageComponent } from './components/image.component'; const COMPONENTS = [ImageComponent, FileUploadQueueComponent]; import { BottomSheetService } from './services/bottom-sheet.service'; import { ClipboardService } from './services/clipboard.service'; import { DialogService } from './services/dialog.service'; import { SnackBarService } from './services/snack-bar.service'; const SERVICES = [ BottomSheetService, ClipboardService, DialogService, SnackBarService ]; import { FileUploadForDirective } from './directives/file-upload-for.directive'; const DIRECTIVES = [FileUploadForDirective]; import { AlertDialogComponent } from './dialogs/alert.dialog.component'; import { ConfirmDialogComponent } from './dialogs/confirm.dialog.component'; const DIALOGS = [AlertDialogComponent, ConfirmDialogComponent]; import { BytesPipe } from './pipes/bytes.pipe'; import { LinefeedToHtmlPipe, HtmlToLinefeedPipe } from './pipes/linefeed.pipe'; const PIPES = [ BytesPipe, LinefeedToHtmlPipe, HtmlToLinefeedPipe, DateToStringForChatRoomListPipe ]; @NgModule({ imports: [ CommonModule, FlexLayoutModule, MatButtonModule, MatCardModule, MatDialogModule, MatIconModule, MatSnackBarModule, DragDropModule ], exports: [...COMPONENTS, ...DIRECTIVES, ...PIPES], declarations: [...COMPONENTS, ...DIALOGS, ...DIRECTIVES, ...PIPES], entryComponents: [...DIALOGS] }) export class UCapUiModule { public static forRoot(): ModuleWithProviders { return { ngModule: UCapUiModule, providers: [...SERVICES] }; } }