Skip to content
Snippets Groups Projects
module.ts 2.89 KiB
Newer Older
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
Xiao Gui's avatar
Xiao Gui committed
import { NehubaViewerContainerDirective } from './nehubaViewerInterface/nehubaViewerInterface.directive'
import { IMPORT_NEHUBA_INJECT_TOKEN, NehubaViewerUnit } from "./nehubaViewer/nehubaViewer.component";
import { CommonModule } from "@angular/common";
import { APPEND_SCRIPT_TOKEN } from "src/util/constants";
Xiao Gui's avatar
Xiao Gui committed
import { importNehubaFactory, NEHUBA_INSTANCE_INJTKN } from "./util";
Xiao Gui's avatar
Xiao Gui committed
import { NehubaViewerTouchDirective } from "./nehubaViewerInterface/nehubaViewerTouch.directive";
import { StoreModule } from "@ngrx/store";
import { NEHUBA_VIEWER_FEATURE_KEY } from "./constants";
import { reducer } from "./store";
Xiao Gui's avatar
Xiao Gui committed
import { NehubaGlueCmp } from "./nehubaViewerGlue/nehubaViewerGlue.component";
import { UtilModule } from "src/util";
import { LayoutModule } from "src/layouts/layout.module";
import { TouchSideClass } from "./touchSideClass.directive";
import { ComponentsModule } from "src/components";
import { AngularMaterialModule } from "src/sharedModules";
Xiao Gui's avatar
Xiao Gui committed
import { MaximisePanelButton } from "./maximisePanelButton/maximisePanelButton.component";
import { Landmark2DModule } from "src/ui/nehubaContainer/2dLandmarks/module";
import { MouseoverModule } from "src/mouseoverModule";
import { StatusCardComponent } from "./statusCard/statusCard.component";
import { ShareModule } from "src/share";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
Xiao Gui's avatar
Xiao Gui committed
import { BehaviorSubject } from "rxjs";
Xiao Gui's avatar
Xiao Gui committed
import { StateModule } from "src/state";
import { AuthModule } from "src/auth";
fsdavid's avatar
fsdavid committed
import {QuickTourModule} from "src/ui/quickTour/module";
Xiao Gui's avatar
Xiao Gui committed
import { WindowResizeModule } from "src/util/windowResize";
import { ViewerCtrlModule } from "./viewerCtrl";
import { DragDropFileModule } from "src/dragDropFile/module";
Xiao Gui's avatar
Xiao Gui committed

@NgModule({
  imports: [
    CommonModule,
Xiao Gui's avatar
Xiao Gui committed
    FormsModule,
    ReactiveFormsModule,
    UtilModule,
    LayoutModule,
    AngularMaterialModule,
    Landmark2DModule,
    ComponentsModule,
    MouseoverModule,
    ShareModule,
Xiao Gui's avatar
Xiao Gui committed
    WindowResizeModule,
    ViewerCtrlModule,
    DragDropFileModule,
Xiao Gui's avatar
Xiao Gui committed

    /**
     * should probably break this into its own...
     * share url module or something?
     */
    StateModule,
    AuthModule,
Xiao Gui's avatar
Xiao Gui committed
    StoreModule.forFeature(
      NEHUBA_VIEWER_FEATURE_KEY,
      reducer
fsdavid's avatar
fsdavid committed
    ),
    QuickTourModule
Xiao Gui's avatar
Xiao Gui committed
  ],
  declarations: [
    NehubaViewerContainerDirective,
    NehubaViewerUnit,
    NehubaViewerTouchDirective,
Xiao Gui's avatar
Xiao Gui committed
    NehubaGlueCmp,
    TouchSideClass,
    MaximisePanelButton,
    StatusCardComponent,
Xiao Gui's avatar
Xiao Gui committed
  ],
  exports: [
    NehubaViewerUnit,
    NehubaViewerTouchDirective,
Xiao Gui's avatar
Xiao Gui committed
    NehubaGlueCmp,
    StatusCardComponent,
Xiao Gui's avatar
Xiao Gui committed
  ],
  providers: [
    {
      provide: IMPORT_NEHUBA_INJECT_TOKEN,
      useFactory: importNehubaFactory,
      deps: [ APPEND_SCRIPT_TOKEN ]
Xiao Gui's avatar
Xiao Gui committed
    },
    {
      provide: NEHUBA_INSTANCE_INJTKN,
Xiao Gui's avatar
Xiao Gui committed
      useValue: new BehaviorSubject(null)
Xiao Gui's avatar
Xiao Gui committed
    }
  ],
  schemas: [
    CUSTOM_ELEMENTS_SCHEMA
Xiao Gui's avatar
Xiao Gui committed
  ]
})

export class NehubaModule{}