138 lines
4.7 KiB
TypeScript
138 lines
4.7 KiB
TypeScript
import { NgModule, ModuleWithProviders } from '@angular/core';
|
|
import { CommonModule } from '@angular/common';
|
|
|
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
|
|
import { MatButtonModule } from '@angular/material/button';
|
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
import { MatCardModule } from '@angular/material/card';
|
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
import { MatIconModule } from '@angular/material/icon';
|
|
import { MatMenuModule } from '@angular/material/menu';
|
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
import { MatSliderModule } from '@angular/material/slider';
|
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
|
import { I18nModule } from '@ucap/ng-i18n';
|
|
|
|
import { ModuleConfig } from './config/module-config';
|
|
import { _MODULE_CONFIG } from './config/token';
|
|
|
|
import { FileUploadQueueComponent } from './components/file-upload-queue.component';
|
|
import { BinaryViewerComponent } from './components/file-viewer/binary-viewer.component';
|
|
import { DocumentViewerComponent } from './components/file-viewer/document-viewer.component';
|
|
import { ImageViewerComponent } from './components/file-viewer/image-viewer.component';
|
|
import { SoundViewerComponent } from './components/file-viewer/sound-viewer.component';
|
|
import { VideoViewerComponent } from './components/file-viewer/video-viewer.component';
|
|
import { FileViewerComponent } from './components/file-viewer.component';
|
|
import { FloatActionButtonComponent } from './components/float-action-button.component';
|
|
import { InlineEditInputComponent } from './components/inline-edit-input.component';
|
|
import { PickDateComponent } from './components/pick-date.component';
|
|
import { PickTimeComponent } from './components/pick-time.component';
|
|
import { SplitButtonComponent } from './components/split-button.component';
|
|
import { StepInputComponent } from './components/step-input.component';
|
|
import { TitleBarComponent } from './components/title-bar.component';
|
|
|
|
import { AlertDialogComponent } from './dialogs/alert.dialog.component';
|
|
import { ConfirmDialogComponent } from './dialogs/confirm.dialog.component';
|
|
|
|
import { CdkVirtualScrollViewportPatchDirective } from './directives/cdk-virtual-scroll-viewport-patch.directive';
|
|
import { ClickDebounceDirective } from './directives/click-debounce.directive';
|
|
import { ClickOutsideDirective } from './directives/click-outside.directive';
|
|
import { FileUploadForDirective } from './directives/file-upload-for.directive';
|
|
import { ImageDirective } from './directives/image.directive';
|
|
|
|
import { BytesPipe } from './pipes/bytes.pipe';
|
|
import { DatePipe } from './pipes/date.pipe';
|
|
import { EmptyPipe } from './pipes/empty.pipe';
|
|
import { HtmlToLinefeedPipe, LinefeedToHtmlPipe } from './pipes/linefeed.pipe';
|
|
import { LinkyPipe } from './pipes/linky.pipe';
|
|
import { PhoneNumberPipe } from './pipes/phone-number.pipe';
|
|
import { SafeHtmlPipe } from './pipes/safe-html.pipe';
|
|
import { SecondsToMinutesPipe } from './pipes/seconds-to-minutes.pipe';
|
|
|
|
import { DateService } from './services/date.service';
|
|
|
|
const COMPONENTS = [
|
|
FileUploadQueueComponent,
|
|
|
|
BinaryViewerComponent,
|
|
DocumentViewerComponent,
|
|
ImageViewerComponent,
|
|
SoundViewerComponent,
|
|
VideoViewerComponent,
|
|
FileViewerComponent,
|
|
|
|
FloatActionButtonComponent,
|
|
|
|
InlineEditInputComponent,
|
|
|
|
PickDateComponent,
|
|
PickTimeComponent,
|
|
SplitButtonComponent,
|
|
StepInputComponent,
|
|
TitleBarComponent
|
|
];
|
|
const DIALOGS = [AlertDialogComponent, ConfirmDialogComponent];
|
|
const PIPES = [
|
|
BytesPipe,
|
|
DatePipe,
|
|
EmptyPipe,
|
|
HtmlToLinefeedPipe,
|
|
LinefeedToHtmlPipe,
|
|
LinkyPipe,
|
|
PhoneNumberPipe,
|
|
SafeHtmlPipe,
|
|
SecondsToMinutesPipe
|
|
];
|
|
const DIRECTIVES = [
|
|
CdkVirtualScrollViewportPatchDirective,
|
|
ClickDebounceDirective,
|
|
ClickOutsideDirective,
|
|
FileUploadForDirective,
|
|
ImageDirective
|
|
];
|
|
const SERVICES = [DateService];
|
|
|
|
@NgModule({
|
|
declarations: [],
|
|
imports: [],
|
|
exports: []
|
|
})
|
|
export class UiRootModule {}
|
|
|
|
@NgModule({
|
|
imports: [
|
|
CommonModule,
|
|
|
|
FlexLayoutModule,
|
|
|
|
MatButtonModule,
|
|
MatButtonToggleModule,
|
|
MatCardModule,
|
|
MatDatepickerModule,
|
|
MatIconModule,
|
|
MatMenuModule,
|
|
MatProgressBarModule,
|
|
MatSliderModule,
|
|
MatToolbarModule,
|
|
MatTooltipModule,
|
|
|
|
I18nModule
|
|
],
|
|
exports: [...COMPONENTS, ...DIRECTIVES, ...PIPES],
|
|
declarations: [...COMPONENTS, ...DIALOGS, ...DIRECTIVES, ...PIPES],
|
|
entryComponents: [...DIALOGS]
|
|
})
|
|
export class UiModule {
|
|
public static forRoot(
|
|
config: ModuleConfig
|
|
): ModuleWithProviders<UiRootModule> {
|
|
return {
|
|
ngModule: UiRootModule,
|
|
providers: [{ provide: _MODULE_CONFIG, useValue: config }, ...SERVICES]
|
|
};
|
|
}
|
|
}
|