New dashboard look & feel
[src/xds/xds-agent.git] / webapp / src / app / @theme / theme.module.ts
1 import { ModuleWithProviders, NgModule } from '@angular/core';
2 import { CommonModule } from '@angular/common';
3 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4 import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
5
6 import {
7   NbActionsModule,
8   NbCardModule,
9   NbLayoutModule,
10   NbMenuModule,
11   NbRouteTabsetModule,
12   NbSearchModule,
13   NbSidebarModule,
14   NbTabsetModule,
15   NbThemeModule,
16   NbUserModule,
17   NbCheckboxModule,
18 } from '@nebular/theme';
19
20 import {
21   FooterComponent,
22   HeaderComponent,
23   SearchInputComponent,
24   ThemeSettingsComponent,
25   ThemeSwitcherComponent,
26   // XDS_MODS TinyMCEComponent,
27 } from './components';
28 import { CapitalizePipe, PluralPipe, RoundPipe, TimingPipe } from './pipes';
29 import {
30   OneColumnLayoutComponent,
31   SampleLayoutComponent,
32   XdsLayoutComponent,  // XDS_MODS
33   ThreeColumnsLayoutComponent,
34   TwoColumnsLayoutComponent,
35 } from './layouts';
36 import { DEFAULT_THEME } from './styles/theme.default';
37 import { COSMIC_THEME } from './styles/theme.cosmic';
38
39 const BASE_MODULES = [CommonModule, FormsModule, ReactiveFormsModule];
40
41 const NB_MODULES = [
42   NbCardModule,
43   NbLayoutModule,
44   NbTabsetModule,
45   NbRouteTabsetModule,
46   NbMenuModule,
47   NbUserModule,
48   NbActionsModule,
49   NbSearchModule,
50   NbSidebarModule,
51   NbCheckboxModule,
52   NgbModule,
53 ];
54
55 const COMPONENTS = [
56   ThemeSwitcherComponent,
57   HeaderComponent,
58   FooterComponent,
59   SearchInputComponent,
60   ThemeSettingsComponent,
61   // XDS_MODS TinyMCEComponent,
62   OneColumnLayoutComponent,
63   SampleLayoutComponent,
64   XdsLayoutComponent,  // XDS_MODS
65   ThreeColumnsLayoutComponent,
66   TwoColumnsLayoutComponent,
67 ];
68
69 const PIPES = [
70   CapitalizePipe,
71   PluralPipe,
72   RoundPipe,
73   TimingPipe,
74 ];
75
76 const NB_THEME_PROVIDERS = [
77   ...NbThemeModule.forRoot(
78     {
79       name: 'default',  // XDS_MODS
80     },
81     [ DEFAULT_THEME, COSMIC_THEME ],
82   ).providers,
83   ...NbSidebarModule.forRoot().providers,
84   ...NbMenuModule.forRoot().providers,
85 ];
86
87 @NgModule({
88   imports: [...BASE_MODULES, ...NB_MODULES],
89   exports: [...BASE_MODULES, ...NB_MODULES, ...COMPONENTS, ...PIPES],
90   declarations: [...COMPONENTS, ...PIPES],
91 })
92 export class ThemeModule {
93   static forRoot(): ModuleWithProviders {
94     return <ModuleWithProviders>{
95       ngModule: ThemeModule,
96       providers: [...NB_THEME_PROVIDERS],
97     };
98   }
99 }