1 import { Injectable } from '@angular/core';
3 import { Observable } from 'rxjs/Observable';
4 import { BehaviorSubject } from 'rxjs/BehaviorSubject';
5 import 'rxjs/add/observable/of';
8 export class StateService {
10 protected layouts: any = [
13 icon: 'nb-layout-default',
19 icon: 'nb-layout-two-column',
23 name: 'Center Column',
24 icon: 'nb-layout-centre',
29 protected sidebars: any = [
32 icon: 'nb-layout-sidebar-left',
37 name: 'Right Sidebar',
38 icon: 'nb-layout-sidebar-right',
43 protected layoutState$ = new BehaviorSubject(this.layouts[0]);
44 protected sidebarState$ = new BehaviorSubject(this.sidebars[0]);
46 setLayoutState(state: any): any {
47 this.layoutState$.next(state);
50 getLayoutStates(): Observable<any[]> {
51 return Observable.of(this.layouts);
54 onLayoutState(): Observable<any> {
55 return this.layoutState$.asObservable();
58 setSidebarState(state: any): any {
59 this.sidebarState$.next(state);
62 getSidebarStates(): Observable<any[]> {
63 return Observable.of(this.sidebars);
66 onSidebarState(): Observable<any> {
67 return this.sidebarState$.asObservable();