Skip to content
Snippets Groups Projects
shared.module.ts 2.18 KiB
Newer Older
Art Lowel's avatar
Art Lowel committed
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { Ng2PaginationModule } from 'ng2-pagination';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
Art Lowel's avatar
Art Lowel committed
import { TranslateModule } from '@ngx-translate/core';
Art Lowel's avatar
Art Lowel committed
import { ApiService } from './api.service';
import { PaginationComponent } from "./pagination/pagination.component";
import { FileSizePipe } from "./utils/file-size-pipe";
import { ThumbnailComponent } from "../thumbnail/thumbnail.component";
import { SafeUrlPipe } from "./utils/safe-url-pipe";
import { HostWindowService } from "./host-window.service";
import { NativeWindowFactory, NativeWindowService } from "./window.service";
import { ComcolPageContentComponent } from "./comcol-page-content/comcol-page-content.component";
import { ComcolPageHeaderComponent } from "./comcol-page-header/comcol-page-header.component";
import { ComcolPageLogoComponent } from "./comcol-page-logo/comcol-page-logo.component";
import { TRUNCATE_PIPES } from "ng2-truncate";
import { EnumKeysPipe } from "./utils/enum-keys-pipe";
Art Lowel's avatar
Art Lowel committed

const MODULES = [
  // Do NOT include UniversalModule, HttpModule, or JsonpModule here
  CommonModule,
  RouterModule,
Art Lowel's avatar
Art Lowel committed
  FormsModule,
  ReactiveFormsModule,
  Ng2PaginationModule,
Art Lowel's avatar
Art Lowel committed
];

const PIPES = [
    FileSizePipe,
    TRUNCATE_PIPES,
    EnumKeysPipe
Art Lowel's avatar
Art Lowel committed
  // put pipes here
];

const COMPONENTS = [
  // put shared components here
  ComcolPageContentComponent,
  ComcolPageHeaderComponent,
  ComcolPageLogoComponent
Art Lowel's avatar
Art Lowel committed
];

const PROVIDERS = [
  ApiService,
  HostWindowService,
  { provide: NativeWindowService, useFactory: NativeWindowFactory }
Art Lowel's avatar
Art Lowel committed

@NgModule({
  imports: [
    ...MODULES
  ],
  declarations: [
    ...PIPES,
    ...COMPONENTS
  ],
  exports: [
    ...MODULES,
    ...PIPES,
    ...COMPONENTS
  ],
  providers: [
    ...PROVIDERS
Art Lowel's avatar
Art Lowel committed
  ]
})
export class SharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SharedModule,
      providers: [
        ...PROVIDERS
      ]
    };
  }
}