/**
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { Component, OnInit, OnDestroy } from '@angular/core';
import 'rxjs/add/operator/takeWhile';
import { NbMenuService, NbMenuItem } from '../../framework/theme';
@Component({
selector: 'nb-menu-item1',
template: `
Menu Item #1
`,
})
export class NbMenuItem1Component { }
@Component({
selector: 'nb-menu-item2',
template: `
Menu Item #2
`,
})
export class NbMenuItem2Component { }
@Component({
selector: 'nb-menu-item3',
template: `
`,
})
export class NbMenuItem3Component { }
@Component({
selector: 'nb-menu-item31',
template: `
Menu Item #3.1
`,
})
export class NbMenuItem31Component { }
@Component({
selector: 'nb-menu-item32',
template: `
Menu Item #3.2
`,
})
export class NbMenuItem32Component { }
@Component({
selector: 'nb-menu-item33',
template: `
`,
})
export class NbMenuItem33Component { }
@Component({
selector: 'nb-menu-item331',
template: `
Menu Item #3.3.1
`,
})
export class NbMenuItem331Component { }
@Component({
selector: 'nb-menu-item332',
template: `
Menu Item #3.3.2
`,
})
export class NbMenuItem332Component { }
@Component({
selector: 'nb-menu-item4',
template: `
Menu Item #4
`,
})
export class NbMenuItem4Component { }
@Component({
selector: 'nb-menu-test',
template: `
Add
Home
`,
})
export class NbMenuTestComponent implements OnInit, OnDestroy {
menuItems = [
{
title: 'Menu Items',
group: true,
},
{
title: 'Menu #1',
link: '/menu/1',
},
{
title: 'Menu #2',
link: '/menu/2',
},
];
private alive: boolean = true;
constructor(private menuService: NbMenuService) { }
ngOnInit() {
this.menuService
.onItemClick()
.takeWhile(() => this.alive)
.subscribe((data: { tag: string; item: NbMenuItem }) => console.info(data));
this.menuService
.onItemSelect()
.takeWhile(() => this.alive)
.subscribe((data: { tag: string; item: NbMenuItem }) => console.info(data));
// this.itemHoverSubscription = this.menuService.onItemHover()
// .subscribe((data: { tag: string, item: NbMenuItem }) => console.info(data));
this.menuService
.onSubmenuToggle()
.takeWhile(() => this.alive)
.subscribe((data: { tag: string; item: NbMenuItem }) => console.info(data));
this.menuService.addItems(
[
{
title: 'Menu #3',
children: [
{
title: 'Menu #3.1',
link: '/menu/3/1',
},
{
title: 'Menu #3.2',
link: '/menu/3/2',
},
{
title: 'Menu #3.3',
children: [
{
title: 'Menu #3.3.1',
link: '/menu/3/3/1',
},
{
title: 'Menu #3.3.2',
link: '/menu/3/3/2',
home: true,
},
{
title: '@nebular/theme',
target: '_blank',
url: 'https://github.com/akveo/ng2-admin',
},
],
},
],
},
],
'firstMenu',
);
}
ngOnDestroy() {
this.alive = false;
}
addMenuItem() {
this.menuService.addItems([{ title: 'New Menu Item' }], 'firstMenu');
}
navigateHome() {
this.menuService.navigateHome('firstMenu');
}
}