2018-05-10 23:48:39 +03:00
|
|
|
|
|
|
|
|
import { of as observableOf, Observable , BehaviorSubject } from 'rxjs';
|
2017-07-28 14:54:29 +03:00
|
|
|
import { Injectable } from '@angular/core';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
|
export class StateService {
|
|
|
|
|
|
|
|
|
|
protected layouts: any = [
|
|
|
|
|
{
|
|
|
|
|
name: 'One Column',
|
2017-08-31 14:58:28 +03:00
|
|
|
icon: 'nb-layout-default',
|
2017-07-28 14:54:29 +03:00
|
|
|
id: 'one-column',
|
|
|
|
|
selected: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Two Column',
|
2017-08-31 14:58:28 +03:00
|
|
|
icon: 'nb-layout-two-column',
|
2017-07-28 14:54:29 +03:00
|
|
|
id: 'two-column',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Center Column',
|
2017-08-31 14:58:28 +03:00
|
|
|
icon: 'nb-layout-centre',
|
2017-07-28 14:54:29 +03:00
|
|
|
id: 'center-column',
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
protected sidebars: any = [
|
|
|
|
|
{
|
|
|
|
|
name: 'Left Sidebar',
|
2017-08-31 14:58:28 +03:00
|
|
|
icon: 'nb-layout-sidebar-left',
|
2017-07-28 14:54:29 +03:00
|
|
|
id: 'left',
|
|
|
|
|
selected: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'Right Sidebar',
|
2017-08-31 14:58:28 +03:00
|
|
|
icon: 'nb-layout-sidebar-right',
|
2017-07-28 14:54:29 +03:00
|
|
|
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[]> {
|
2018-05-10 23:48:39 +03:00
|
|
|
return observableOf(this.layouts);
|
2017-07-28 14:54:29 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onLayoutState(): Observable<any> {
|
|
|
|
|
return this.layoutState$.asObservable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setSidebarState(state: any): any {
|
|
|
|
|
this.sidebarState$.next(state);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getSidebarStates(): Observable<any[]> {
|
2018-05-10 23:48:39 +03:00
|
|
|
return observableOf(this.sidebars);
|
2017-07-28 14:54:29 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onSidebarState(): Observable<any> {
|
|
|
|
|
return this.sidebarState$.asObservable();
|
|
|
|
|
}
|
|
|
|
|
}
|