{"version":3,"file":"ngx-obelisco-example-breadcrumb.mjs","sources":["../../../projects/ngx-obelisco/breadcrumb/o-breadcrumb.component.ts","../../../projects/ngx-obelisco/breadcrumb/o-breadcrumb.component.html","../../../projects/ngx-obelisco/breadcrumb/o-breadcrumb.module.ts","../../../projects/ngx-obelisco/breadcrumb/ngx-obelisco-example-breadcrumb.ts"],"sourcesContent":["import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router, RouterEvent } from '@angular/router';\r\nimport { filter, startWith, Subject, takeUntil } from 'rxjs';\r\nimport { BreadcrumbService } from 'ngx-obelisco-example/core/services';\r\nimport { BreadcrumbRoute } from 'ngx-obelisco-example/core/models';\r\n\r\n@Component({\r\n  selector: 'o-breadcrumb',\r\n  templateUrl: './o-breadcrumb.component.html',\r\n  styleUrls: ['./o-breadcrumb.component.scss']\r\n})\r\nexport class OBreadcrumbComponent implements OnInit, OnDestroy {\r\n  @Input() public customClasses: string = '';\r\n\r\n  public routes: BreadcrumbRoute[] = [];\r\n\r\n  private defaultRoute!: string;\r\n  private onDestroy$ = new Subject<void>();\r\n\r\n  constructor(private readonly router: Router, private readonly breadcrumbService: BreadcrumbService) {}\r\n\r\n  ngOnInit(): void {\r\n    this.breadcrumbService.breadcrumb$.pipe(takeUntil(this.onDestroy$)).subscribe((breadcrumb) => {\r\n      if (Object.entries(breadcrumb).length !== 0) {\r\n        this.routes = breadcrumb.routes || [];\r\n        this.defaultRoute = breadcrumb.defaultRoute || '';\r\n      }\r\n    });\r\n    if (this.routes.length === 0) {\r\n      this.getPaths();\r\n      return;\r\n    }\r\n  }\r\n\r\n  private getPaths(): void {\r\n    this.routes.length != 0 &&\r\n      this.router.events\r\n        .pipe(\r\n          takeUntil(this.onDestroy$),\r\n          filter((event) => event instanceof NavigationEnd),\r\n          startWith(this.router)\r\n        )\r\n        .subscribe({\r\n          next: (event: any) => {\r\n            event = event as RouterEvent;\r\n            this.routes = [];\r\n            event.route\r\n              .split('/')\r\n              .forEach(\r\n                (item: string, index: number) =>\r\n                  (item !== '' || isNaN(+item) || item.length > 2) &&\r\n                  this.routes.push({ name: this.formatedName(item), route: this.formatedRoute(item, event.route) })\r\n              );\r\n          }\r\n        });\r\n  }\r\n\r\n  private formatedName(path: string): string {\r\n    return (path && path[0].toUpperCase() + path.split('-').join(' ').slice(1)) || '';\r\n  }\r\n\r\n  private formatedRoute(url: string, route: string): string {\r\n    return route.split(url)[0] + url;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.onDestroy$.next();\r\n    this.onDestroy$.complete();\r\n  }\r\n}\r\n","<nav aria-label=\"Navegación secundaria\" [ngClass]=\"customClasses\">\r\n  <ol class=\"breadcrumb\">\r\n    <li class=\"breadcrumb-item\" *ngIf=\"routes.length == 0\">\r\n      <a href=\"https://buenosaires.gob.ar/inicio/\">Inicio</a>\r\n    </li>\r\n    <li class=\"breadcrumb-item\" *ngFor=\"let route of routes; index as i\">\r\n      <a [routerLink]=\"[route.route]\">\r\n        {{ route.name }}\r\n      </a>\r\n      <ng-template #nameDefault>{{ route?.name }} </ng-template>\r\n    </li>\r\n  </ol>\r\n</nav>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OBreadcrumbComponent } from './o-breadcrumb.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n  declarations: [OBreadcrumbComponent],\r\n  imports: [CommonModule, RouterModule],\r\n  exports: [OBreadcrumbComponent]\r\n})\r\nexport class OBreadcrumbModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}