Blame view

src/app/app.component.ts 1.64 KB
05b0b5d8   Yarik   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  import { Routes } from '@angular/router';
  import { Component, ViewContainerRef } from '@angular/core';
  
  import { GlobalState } from './global.state';
  import { BaImageLoaderService, BaThemePreloader, BaThemeSpinner } from './theme/services';
  import { layoutPaths } from './theme/theme.constants';
  import { BaThemeConfig } from './theme/theme.config';
  import { BaMenuService } from './theme';
  
  import { MENU } from './app.menu';
  
  import 'style-loader!./app.scss';
  import 'style-loader!./theme/initial.scss';
  
  /*
   * App Component
   * Top Level Component
   */
  @Component({
    selector: 'app',
    template: `
      <main [ngClass]="{'menu-collapsed': isMenuCollapsed}" baThemeRun>
        <div class="additional-bg"></div>
        <router-outlet></router-outlet>
      </main>
    `
  })
  export class App {
  
    isMenuCollapsed: boolean = false;
  
    constructor(private _state: GlobalState,
                private _imageLoader: BaImageLoaderService,
                private _spinner: BaThemeSpinner,
                private _config: BaThemeConfig,
                private _menuService: BaMenuService,
                private viewContainerRef: ViewContainerRef) {
  
      this._menuService.updateMenuByRoutes(<Routes>MENU);
  
      this._loadImages();
  
      this._state.subscribe('menu.isCollapsed', (isCollapsed) => {
        this.isMenuCollapsed = isCollapsed;
      });
    }
  
    public ngAfterViewInit(): void {
      // hide spinner once all loaders are completed
      BaThemePreloader.load().then((values) => {
        this._spinner.hide();
      });
    }
  
    private _loadImages(): void {
      // register some loaders
      BaThemePreloader.registerLoader(this._imageLoader.load(layoutPaths.images.root + 'sky-bg.jpg'));
    }
  
  }