import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { Observable } from 'rxjs'; import { BreadcrumbItem } from './definition/breadcrumb-item'; import { BreadCrumbResolverService } from './service/breadcrumb.service'; import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-breadcrumb', templateUrl: './breadcrumb.component.html', styleUrls: ['./breadcrumb.component.scss'] }) export class BreadcrumbComponent implements OnInit { breadcrumbs$ = this.router.events .filter(event => event instanceof NavigationEnd) .distinctUntilChanged() .flatMap(event => this.buildBreadCrumb(this.activatedRoute.root)); constructor( public activatedRoute: ActivatedRoute, private router: Router, private breadCrumbService: BreadCrumbResolverService, private language: TranslateService, ) { } ngOnInit() { } buildBreadCrumb(route: ActivatedRoute): Observable { if (this.breadCrumbService.resolve(route)) { return this.breadCrumbService.resolve(route).map(x => { x.unshift({ label: this.language.instant('NAV-BAR.HOME'), url: '/home', icon: 'dashboard' }); return x; }); } return Observable.of([]); } navigate(url, params) { this.router.navigate([url, params]); } }