import { NgModule, ModuleWithProviders } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { MaterialModule } from '@angular/material';
import {RouterModule, PreloadAllModules} from '@angular/router';
import {Ng2TableModule} from 'ng2-table/ng2-table';

import { WorkspaceService } from './workspace.service';
import { WorkspaceComponent } from './workspace.component';
import {ROUTES} from './workspace.routes';

import { ProjectManagerModule } from '../project-manager';
import { TemplateDesignerModule } from '../template-designer';
import { DashboardModule } from '../dashboard';


@NgModule({
    imports: [  CommonModule, FormsModule, DashboardModule, ProjectManagerModule,TemplateDesignerModule, RouterModule.forRoot(ROUTES, {
      useHash: true,
      preloadingStrategy: PreloadAllModules
    }) ],
    providers: [WorkspaceService],
    declarations: [WorkspaceComponent],    
    exports: [WorkspaceComponent]    
})

/*    
* Workspace module
***************************************************************/
export class WorkspaceModule {
    forRoot():ModuleWithProviders {
        return {
          ngModule: WorkspaceModule,
          providers: [WorkspaceService]
        }
    }
}