UNPKG

bia-framework

Version:

Bia Framework to work with angular 2

109 lines (83 loc) 3.47 kB
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"; @Injectable() 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); } }