New dashboard look & feel
[src/xds/xds-agent.git] / webapp / src / app / @core-xds / core-xds.module.ts
1 import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
2 import { CommonModule } from '@angular/common';
3
4 import { NbAuthModule, NbDummyAuthProvider } from '@nebular/auth';
5 import { CookieModule } from 'ngx-cookie';
6
7 import { throwIfAlreadyLoaded } from './module-import-guard';
8 import { XdsServicesModule } from './services/@core-xds-services.module';
9 import { AnalyticsService } from '../@core/utils/analytics.service';
10 import { StateService } from '../@core/data/state.service';
11
12 const NB_COREXDS_PROVIDERS = [
13   ...XdsServicesModule.forRoot().providers,
14   ...NbAuthModule.forRoot({
15     providers: {
16       email: {
17         service: NbDummyAuthProvider,
18         config: {
19           delay: 3000,
20           login: {
21             rememberMe: true,
22           },
23         },
24       },
25     },
26   }).providers,
27   AnalyticsService,
28   StateService,
29 ];
30
31 @NgModule({
32   imports: [
33     CommonModule,
34     CookieModule.forRoot(),
35   ],
36   exports: [
37     NbAuthModule,
38   ],
39   declarations: [],
40 })
41 export class CoreXdsModule {
42   constructor( @Optional() @SkipSelf() parentModule: CoreXdsModule) {
43     throwIfAlreadyLoaded(parentModule, 'CoreXdsModule');
44   }
45
46   static forRoot(): ModuleWithProviders {
47     return <ModuleWithProviders>{
48       ngModule: CoreXdsModule,
49       providers: [
50         ...NB_COREXDS_PROVIDERS,
51       ],
52     };
53   }
54 }