bia-framework
Version:
Bia Framework to work with angular 2
49 lines (41 loc) • 1.94 kB
text/typescript
import {Component, ViewEncapsulation} from "@angular/core";
import {NgFor, NgIf, NgClass} from "@angular/common";
import {RippleEffect} from "../ripple-effect/RippleEffect";
import {CoreNavegationDrawerService} from "./core-navegation-drawer.service";
import {CoreIcon} from "../core-icon/core-icon";
import {CoreImage} from "../core-image/CoreImage";
import {IUsuario} from "../../services/OdisseiaDataBase/IUsuario";
import {IMenuItem} from "../../models/ITopBar";
import {IDrawerGroup} from "../../models/IDrawerGroup";
(
{
selector: 'core-navegation-drawer',
encapsulation: ViewEncapsulation.None,
templateUrl: "node_modules/bia-framework/components/core-navegation-drawer/core-navegation-drawer.template.html",
styleUrls: ["node_modules/bia-framework/components/core-navegation-drawer/core-navegation-drawer.style.css"],
directives: [CoreIcon, RippleEffect, NgFor, NgIf, CoreImage, NgClass]
}
)
export class CoreNavegationDrawer
{
private currentUser:IUsuario = null;
private isVisible:boolean;
private menuGroups:IDrawerGroup[] = [];
private selectedIndex:number;
constructor(private navegationDrawerService:CoreNavegationDrawerService)
{
this.navegationDrawerService.showDrawerSubject.subscribe(()=> this.isVisible = true);
this.navegationDrawerService.hideDrawerSubject.subscribe(()=> this.isVisible = false);
this.navegationDrawerService.menuGroupsSubject.subscribe((newGroup)=> this.addMenuItem(newGroup));
this.navegationDrawerService.usuarioSubject.subscribe((user:IUsuario)=> this.currentUser = user);
}
public selected = (item:IMenuItem):void =>
{
if(item.Click)
item.Click();
};
private addMenuItem = (newMenuGroup:IDrawerGroup):void =>
{
this.menuGroups = [...this.menuGroups, newMenuGroup];
};
}