bia-framework
Version:
Bia Framework to work with angular 2
109 lines (83 loc) • 3.47 kB
text/typescript
import {Injectable,} from "@angular/core";
import {Subject} from "rxjs/Subject";
import {Observable} from "rxjs/Observable";
import {IDynamicComponent} from "../../models/IDynamicComponent";
import {IDropDownMenuModel} from "../../models/IDropdownMenu";
import {IMenuItem} from "../../models/ITopBar";
export class CoreBarService
{
private _dropDownItensStore:Array<IDropDownMenuModel>;
private _dropDownItemsSubject = new Subject<IDropDownMenuModel[]>();
DropDownItemsChanged:Observable<IDropDownMenuModel[]> = this._dropDownItemsSubject.asObservable();
private _leftItensStore:Array<IMenuItem>;
private _leftItemsSubject = new Subject<IMenuItem[]>();
LeftItensChanged:Observable<IMenuItem[]> = this._leftItemsSubject.asObservable();
private _rightItensStore:Array<IMenuItem>;
private _rightItemsSubject = new Subject<Array<IMenuItem>>();
RightItensChanged:Observable<IMenuItem[]> = this._rightItemsSubject.asObservable();
private _TitleSubject = new Subject<string>();
TitleChanged:Observable<string> = this._TitleSubject.asObservable();
public contentVisibilityChanged:Subject<boolean> = new Subject<boolean>();
public nativeVisibilityChanged:Subject<boolean> = new Subject<boolean>();
private _DynamicContentSubject = new Subject<IDynamicComponent>();
DynamicContentChanged:Observable<IDynamicComponent> = this._DynamicContentSubject.asObservable();
private _BarBgVisibilitySubject = new Subject<boolean>();
public BarBgVisibilityChanged:Observable<boolean> = this._BarBgVisibilitySubject.asObservable();
constructor()
{
this._leftItensStore = [];
this._rightItensStore = [];
this._dropDownItensStore = [];
}
public addDropdownItem = (newDropdown:IDropDownMenuModel):void=>
{
this._dropDownItensStore.push(newDropdown);
this._dropDownItemsSubject.next(this._dropDownItensStore);
};
public addLeftMenuItem = (newItem:IMenuItem):void=>
{
this._leftItensStore.push(newItem);
this._leftItemsSubject.next(this._leftItensStore);
};
public clearLeftMenuItens = ():void =>
{
this._leftItensStore = [];
this._leftItemsSubject.next(this._leftItensStore);
};
public clearRightMenuItens = ():void =>
{
this._rightItensStore = [];
this._rightItemsSubject.next(this._rightItensStore);
};
public clearDropdownItems = ():void =>
{
this._dropDownItensStore = [];
this._dropDownItemsSubject.next(this._dropDownItensStore)
};
public addRightMenuItem = (newItem:IMenuItem):void=>
{
this._rightItensStore.push(newItem);
this._rightItemsSubject.next(this._rightItensStore);
};
public setNativeVisibility = (v:boolean):void =>
{
this.nativeVisibilityChanged.next(v);
};
public setContentVisibility = (v:boolean):void =>
{
this.contentVisibilityChanged.next(v);
};
public setBarBgVisibility = (v:boolean):void =>
{
this._BarBgVisibilitySubject.next(v);
};
public setTittle = (newTitle:string):void=>
{
this._TitleSubject.next(newTitle);
};
public loadDynamicComponent = (dynamicContent:IDynamicComponent):void=>
{
this._DynamicContentSubject.next(dynamicContent);
}
}