New dashboard look & feel
[src/xds/xds-agent.git] / webapp / src / app / @core-xds / core-xds.module.ts
diff --git a/webapp/src/app/@core-xds/core-xds.module.ts b/webapp/src/app/@core-xds/core-xds.module.ts
new file mode 100644 (file)
index 0000000..c5babc3
--- /dev/null
@@ -0,0 +1,54 @@
+import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+import { NbAuthModule, NbDummyAuthProvider } from '@nebular/auth';
+import { CookieModule } from 'ngx-cookie';
+
+import { throwIfAlreadyLoaded } from './module-import-guard';
+import { XdsServicesModule } from './services/@core-xds-services.module';
+import { AnalyticsService } from '../@core/utils/analytics.service';
+import { StateService } from '../@core/data/state.service';
+
+const NB_COREXDS_PROVIDERS = [
+  ...XdsServicesModule.forRoot().providers,
+  ...NbAuthModule.forRoot({
+    providers: {
+      email: {
+        service: NbDummyAuthProvider,
+        config: {
+          delay: 3000,
+          login: {
+            rememberMe: true,
+          },
+        },
+      },
+    },
+  }).providers,
+  AnalyticsService,
+  StateService,
+];
+
+@NgModule({
+  imports: [
+    CommonModule,
+    CookieModule.forRoot(),
+  ],
+  exports: [
+    NbAuthModule,
+  ],
+  declarations: [],
+})
+export class CoreXdsModule {
+  constructor( @Optional() @SkipSelf() parentModule: CoreXdsModule) {
+    throwIfAlreadyLoaded(parentModule, 'CoreXdsModule');
+  }
+
+  static forRoot(): ModuleWithProviders {
+    return <ModuleWithProviders>{
+      ngModule: CoreXdsModule,
+      providers: [
+        ...NB_COREXDS_PROVIDERS,
+      ],
+    };
+  }
+}