1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | import { NgModule, PLATFORM_ID } from '@angular/core';
|
7 | import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
8 | import { NB_BUILT_IN_JS_THEMES, NB_MEDIA_BREAKPOINTS, NB_THEME_OPTIONS, NB_JS_THEMES, NB_DOCUMENT, NB_WINDOW, } from './theme.options';
|
9 | import { NbThemeService } from './services/theme.service';
|
10 | import { NbSpinnerService } from './services/spinner.service';
|
11 | import { BUILT_IN_THEMES, NbJSThemesRegistry } from './services/js-themes-registry.service';
|
12 | import { DEFAULT_MEDIA_BREAKPOINTS, NbMediaBreakpointsService, } from './services/breakpoints.service';
|
13 | import { NbLayoutDirectionService, NbLayoutDirection, NB_LAYOUT_DIRECTION } from './services/direction.service';
|
14 | import { NbLayoutScrollService } from './services/scroll.service';
|
15 | import { NbLayoutRulerService } from './services/ruler.service';
|
16 | import { NbOverlayModule } from './components/cdk/overlay/overlay.module';
|
17 | import { NbStatusService } from './services/status.service';
|
18 | export function windowFactory(platformId) {
|
19 | if (isPlatformBrowser(platformId)) {
|
20 | return window;
|
21 | }
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | return undefined;
|
27 | }
|
28 | export class NbThemeModule {
|
29 |
|
30 | |
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 | static forRoot(nbThemeOptions = { name: 'default' }, nbJSThemes, nbMediaBreakpoints, layoutDirection) {
|
41 | return {
|
42 | ngModule: NbThemeModule,
|
43 | providers: [
|
44 | { provide: NB_THEME_OPTIONS, useValue: nbThemeOptions || {} },
|
45 | { provide: NB_BUILT_IN_JS_THEMES, useValue: BUILT_IN_THEMES },
|
46 | { provide: NB_JS_THEMES, useValue: nbJSThemes || [] },
|
47 | { provide: NB_MEDIA_BREAKPOINTS, useValue: nbMediaBreakpoints || DEFAULT_MEDIA_BREAKPOINTS },
|
48 | { provide: NB_DOCUMENT, useExisting: DOCUMENT },
|
49 | { provide: NB_WINDOW, useFactory: windowFactory, deps: [PLATFORM_ID] },
|
50 | NbJSThemesRegistry,
|
51 | NbThemeService,
|
52 | NbMediaBreakpointsService,
|
53 | NbSpinnerService,
|
54 | { provide: NB_LAYOUT_DIRECTION, useValue: layoutDirection || NbLayoutDirection.LTR },
|
55 | NbLayoutDirectionService,
|
56 | NbLayoutScrollService,
|
57 | NbLayoutRulerService,
|
58 | ...NbOverlayModule.forRoot().providers,
|
59 | NbStatusService,
|
60 | ],
|
61 | };
|
62 | }
|
63 | }
|
64 | NbThemeModule.decorators = [
|
65 | { type: NgModule, args: [{
|
66 | imports: [
|
67 | CommonModule,
|
68 | ],
|
69 | exports: [],
|
70 | },] }
|
71 | ];
|
72 |
|
\ | No newline at end of file |