UNPKG

@tapsellorg/angular-material-library

Version:

Angular library for Tapsell

1 lines 8.13 kB
{"version":3,"file":"tapsellorg-angular-material-library-breadcrumbs.mjs","sources":["../../projects/pegah-library/breadcrumbs/breadcrumbs.service.ts","../../projects/pegah-library/breadcrumbs/breadcrumbs.component.ts","../../projects/pegah-library/breadcrumbs/breadcrumbs.component.html","../../projects/pegah-library/breadcrumbs/breadcrumbs.module.ts","../../projects/pegah-library/breadcrumbs/tapsellorg-angular-material-library-breadcrumbs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Data, NavigationEnd, Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\nimport { withDestroy } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { PghBreadcrumb } from './models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PghBreadcrumbsService extends withDestroy() {\n private readonly _breadcrumbs$ = new BehaviorSubject<PghBreadcrumb[]>([]);\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\n\n constructor(private router: Router) {\n super();\n this.handleRouterEvents();\n }\n\n private handleRouterEvents() {\n this.router.events\n .pipe(\n takeUntil(this._destroyed$),\n filter(event => event instanceof NavigationEnd),\n startWith(this.router),\n )\n .subscribe(() => {\n const { root } = this.router.routerState.snapshot;\n const breadcrumbs: PghBreadcrumb[] = [];\n this.addBreadcrumb(root, [], breadcrumbs);\n this._breadcrumbs$.next(breadcrumbs);\n });\n }\n\n private addBreadcrumb(\n route: ActivatedRouteSnapshot,\n parentUrl: string[],\n breadcrumbs: PghBreadcrumb[],\n ) {\n if (!route) return;\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\n\n if (route.data?.breadcrumb?.label) {\n const breadcrumb = {\n label: this.getLabel(route.data),\n url: route.data.breadcrumb.dontLink ? undefined : `/${routeUrl.join('/')}`,\n };\n breadcrumbs.push(breadcrumb);\n }\n\n if (route.firstChild) {\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\n }\n }\n\n private getLabel(data: Data) {\n return typeof data.breadcrumb.label === 'function'\n ? data.breadcrumb.label(data)\n : data.breadcrumb.label;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { PghBreadcrumbsService } from './breadcrumbs.service';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'pgh-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class PghBreadcrumbsComponent {\n breadcrumbs = toSignal(this.breadcrumbsService.breadcrumbs$);\n\n constructor(private readonly breadcrumbsService: PghBreadcrumbsService) {}\n}\n","@if (breadcrumbs() && breadcrumbs()!.length) {\n<nav class=\"pgh-breadcrumbs\" role=\"navigation\">\n @for (breadcrumb of breadcrumbs(); track breadcrumb; let last = $last) {\n <span\n class=\"pgh-crumb\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [class.font-weight-bold]=\"last\"\n >\n @if (!last && breadcrumb.url) {\n <a [routerLink]=\"[breadcrumb.url]\">\n {{ breadcrumb.label }}\n </a>\n } @if (last || (!last && !breadcrumb.url)) {\n {{ breadcrumb.label }}\n }\n </span>\n @if (!last) {\n <mat-icon class=\"pgh-crumb-divider\" svgIcon=\"chevron_left\" aria-hidden=\"true\"></mat-icon>\n } }\n</nav>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PghBreadcrumbsComponent } from './breadcrumbs.component';\nimport { RouterModule } from '@angular/router';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n declarations: [PghBreadcrumbsComponent],\n imports: [CommonModule, RouterModule, MatIconModule, MatButtonModule],\n exports: [PghBreadcrumbsComponent],\n})\nexport class PghBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PghBreadcrumbsService","i2"],"mappings":"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"}