aboutsummaryrefslogtreecommitdiffstats
path: root/webapp/src/app/@core/data/state.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/src/app/@core/data/state.service.ts')
-rw-r--r--webapp/src/app/@core/data/state.service.ts69
1 files changed, 69 insertions, 0 deletions
diff --git a/webapp/src/app/@core/data/state.service.ts b/webapp/src/app/@core/data/state.service.ts
new file mode 100644
index 0000000..a6bcb08
--- /dev/null
+++ b/webapp/src/app/@core/data/state.service.ts
@@ -0,0 +1,69 @@
+import { Injectable } from '@angular/core';
+
+import { Observable } from 'rxjs/Observable';
+import { BehaviorSubject } from 'rxjs/BehaviorSubject';
+import 'rxjs/add/observable/of';
+
+@Injectable()
+export class StateService {
+
+ protected layouts: any = [
+ {
+ name: 'One Column',
+ icon: 'nb-layout-default',
+ id: 'one-column',
+ selected: true,
+ },
+ {
+ name: 'Two Column',
+ icon: 'nb-layout-two-column',
+ id: 'two-column',
+ },
+ {
+ name: 'Center Column',
+ icon: 'nb-layout-centre',
+ id: 'center-column',
+ },
+ ];
+
+ protected sidebars: any = [
+ {
+ name: 'Left Sidebar',
+ icon: 'nb-layout-sidebar-left',
+ id: 'left',
+ selected: true,
+ },
+ {
+ name: 'Right Sidebar',
+ icon: 'nb-layout-sidebar-right',
+ id: 'right',
+ },
+ ];
+
+ protected layoutState$ = new BehaviorSubject(this.layouts[0]);
+ protected sidebarState$ = new BehaviorSubject(this.sidebars[0]);
+
+ setLayoutState(state: any): any {
+ this.layoutState$.next(state);
+ }
+
+ getLayoutStates(): Observable<any[]> {
+ return Observable.of(this.layouts);
+ }
+
+ onLayoutState(): Observable<any> {
+ return this.layoutState$.asObservable();
+ }
+
+ setSidebarState(state: any): any {
+ this.sidebarState$.next(state);
+ }
+
+ getSidebarStates(): Observable<any[]> {
+ return Observable.of(this.sidebars);
+ }
+
+ onSidebarState(): Observable<any> {
+ return this.sidebarState$.asObservable();
+ }
+}