import { Component, OnInit } from '@angular/core'; import { Title } from '@angular/platform-browser'; import { RouterModule } from '@angular/router'; import { Router, NavigationEnd, ActivatedRoute, Data } from '@angular/router'; import { filter, map, mergeMap } from 'rxjs/operators'; import { TablerIconsModule } from 'angular-tabler-icons'; @Component({ selector: 'app-breadcrumb', imports: [RouterModule, TablerIconsModule], templateUrl: './breadcrumb.component.html', styleUrls: [] }) export class AppBreadcrumbComponent { // @Input() layout; pageInfo: Data | any = Object.create(null); myurl: any; constructor( private router: Router, private activatedRoute: ActivatedRoute, private titleService: Title ) { this.myurl = this.router.url.slice(1).split('/'); this.router.events .pipe(filter((event) => event instanceof NavigationEnd)) .pipe(map(() => this.activatedRoute)) .pipe( map((route) => { while (route.firstChild) { route = route.firstChild; } return route; }) ) .pipe(filter((route) => route.outlet === 'primary')) .pipe(mergeMap((route) => route.data)) // tslint:disable-next-line - Disables all .subscribe((event) => { // tslint:disable-next-line - Disables all this.titleService.setTitle(event['title'] + ' - Angular 20'); this.pageInfo = event; }); } }