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