{"version":3,"file":"exalif-ngx-breadcrumbs.mjs","sources":["../../../../libs/ngx-breadcrumbs/src/lib/services/breadcrumbs.config.ts","../../../../libs/ngx-breadcrumbs/src/lib/utils/breadcrumbs.utils.ts","../../../../libs/ngx-breadcrumbs/src/lib/services/breadcrumbs.resolver.ts","../../../../libs/ngx-breadcrumbs/src/lib/services/breadcrumbs.service.ts","../../../../libs/ngx-breadcrumbs/src/lib/component/breadcrumbs.component.ts","../../../../libs/ngx-breadcrumbs/src/lib/breadcrumbs.module.ts","../../../../libs/ngx-breadcrumbs/src/exalif-ngx-breadcrumbs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { Breadcrumb } from '../models/breadcrumb';\n\nexport type PostProcessFunction =\n  (crumbs: Breadcrumb[]) => Promise<Breadcrumb[]> | Observable<Breadcrumb[]> | Breadcrumb[];\n\nexport type DistinctKey = keyof Breadcrumb;\n\n@Injectable()\nexport class BreadcrumbsConfig {\n  public postProcess: PostProcessFunction | null = null;\n  public applyDistinctOn: DistinctKey | null = 'text';\n\n  constructor(options: BreadcrumbsConfig = {\n    postProcess: null,\n    applyDistinctOn: 'text',\n  }) {\n    if (!options) {\n      return;\n    }\n\n    Object.keys(options).forEach((optionKey) => {\n      this[optionKey] = options[optionKey];\n    });\n  }\n}\n","import { Observable, of, from } from 'rxjs';\n\nexport abstract class BreadcrumbsUtils {\n  public static stringFormat(rawTemplate: string, data: any): string {\n    const templateRegex = new RegExp('{{[\\\\s]*[a-zA-Z._]+?[\\\\s]*}}', 'g');\n\n    return rawTemplate.replace(templateRegex, (match) => {\n      const keyRegex = new RegExp('([a-zA-Z._]+)', 'g');\n      const key = match.match(keyRegex);\n\n      if (!key || !key.length) {\n        return match;\n      }\n\n      const value = BreadcrumbsUtils.leaf(data, key[0]);\n\n      if (!value) {\n        return key[0];\n      }\n\n      return value;\n    });\n  }\n\n  public static wrapIntoObservable<T>(value: T | Promise<T> | Observable<T>): Observable<T> {\n    if (value instanceof Observable) {\n      return value;\n    }\n\n    if (this.isPromise(value)) {\n      return from(Promise.resolve(value));\n    }\n\n    return of(value as T);\n  }\n\n  private static isPromise(value: any): boolean {\n    return value && (typeof value.then === 'function');\n  }\n\n  /**\n   * Access object nested value by giving a path\n   *\n   * @param obj The object you want to access value from\n   * @param path The value path. e.g: `bar.baz`\n   * @example\n   *   const obj = { foo: { bar: 'Baz' } };\n   *   const path = 'foo.bar';\n   *   leaf(obj, path) // 'Baz'\n   */\n  public static leaf(obj: any, path: string) {\n    const result = path.split('.').reduce((value, el) => value[el] || {}, obj);\n\n    return BreadcrumbsUtils.isEmptyObject(result) ? null : result;\n  }\n\n  /**\n   * checks whether an object is empty or not\n   *\n   * @param object object to extract values from\n   * @returns boolean\n   */\n  public static isEmptyObject(obj): boolean {\n    if (typeof obj === 'object' && Object.prototype.toString.call(obj) === '[object Object]') {\n      for (const key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    return false;\n  }\n}\n","import { ActivatedRouteSnapshot, RouterStateSnapshot, UrlSegment } from '@angular/router';\n\nimport { Observable, of } from 'rxjs';\n\nimport { Breadcrumb } from '../models/breadcrumb';\nimport { BreadcrumbsUtils } from '../utils/breadcrumbs.utils';\n\nexport class BreadcrumbsResolver  {\n  public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Breadcrumb[]> | Promise<Breadcrumb[]> | Breadcrumb[] {\n\n    const data = route.routeConfig.data;\n    const path = this.getFullPath(route);\n\n    let text = typeof (data.breadcrumbs) === 'string' ? data.breadcrumbs : data.breadcrumbs.text || data.text || path;\n    text = BreadcrumbsUtils.stringFormat(text, route.data);\n\n    const crumbs: Breadcrumb[] = [{\n      text,\n      path\n    }];\n\n    return of(crumbs);\n  }\n\n  public getFullPath(route: ActivatedRouteSnapshot): string {\n    return this.fetchFullPath(route.pathFromRoot);\n  }\n\n  private fetchFullPath(routes: ActivatedRouteSnapshot[]): string {\n    return routes.reduce((path, route) => path += this.fetchRelativePath(route.url), '');\n  }\n\n  private fetchRelativePath(urlSegments: UrlSegment[]): string {\n    return urlSegments.reduce((path, urlSegment) => path += '/' + urlSegment.path, '');\n  }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\n\nimport { Observable, of, BehaviorSubject, concat } from 'rxjs';\n\nimport { filter, flatMap, distinct, toArray, first, tap } from 'rxjs/operators';\n\nimport { BreadcrumbsConfig } from './breadcrumbs.config';\nimport { BreadcrumbsResolver } from './breadcrumbs.resolver';\nimport { Breadcrumb } from '../models/breadcrumb';\nimport { BreadcrumbsUtils } from '../utils/breadcrumbs.utils';\n\n@Injectable()\nexport class BreadcrumbsService {\n\n  private breadcrumbs = new BehaviorSubject<Breadcrumb[]>([]);\n  private defaultResolver = new BreadcrumbsResolver();\n\n  constructor(\n    public route: ActivatedRoute,\n    private router: Router,\n    private config: BreadcrumbsConfig,\n    private injector: Injector\n  ) {\n\n    this.router.events.pipe(filter((x) => x instanceof NavigationEnd))\n      .subscribe((_: NavigationEnd) => {\n        const routeRoot = router.routerState.snapshot.root;\n\n        this.resolveCrumbs(routeRoot).pipe(\n          flatMap((crumbs: Breadcrumb[]) => crumbs),\n          this.config.applyDistinctOn\n            ? distinct((crumb: Breadcrumb) => crumb[this.config.applyDistinctOn])\n            : tap(),\n          toArray(),\n          flatMap((crumbs: Breadcrumb[]) => {\n            if (this.config.postProcess) {\n              const postProcessedCrumb = this.config.postProcess(crumbs);\n              return BreadcrumbsUtils.wrapIntoObservable<Breadcrumb[]>(postProcessedCrumb).pipe(\n                first()\n              );\n            } else {\n              return of(crumbs);\n            }\n          })\n        )\n          .subscribe((crumbs: Breadcrumb[]) => {\n            this.breadcrumbs.next(crumbs);\n          });\n      });\n  }\n\n  get crumbs$(): Observable<Breadcrumb[]> {\n    return this.breadcrumbs;\n  }\n\n  public getCrumbs(): Observable<Breadcrumb[]> {\n    return this.crumbs$;\n  }\n\n  private resolveCrumbs(route: ActivatedRouteSnapshot): Observable<Breadcrumb[]> {\n\n    let crumbs$: Observable<Breadcrumb[]>;\n\n    const data = route.routeConfig && route.routeConfig.data;\n\n    if (data && data.breadcrumbs) {\n      let resolver: BreadcrumbsResolver;\n\n      if (data.breadcrumbs.prototype instanceof BreadcrumbsResolver) {\n        resolver = this.injector.get(data.breadcrumbs);\n      } else {\n        resolver = this.defaultResolver;\n      }\n\n      const result = resolver.resolve(route, this.router.routerState.snapshot);\n      crumbs$ = BreadcrumbsUtils.wrapIntoObservable<Breadcrumb[]>(result).pipe(\n        first()\n      );\n\n    } else {\n      crumbs$ = of([]);\n    }\n\n    if (route.firstChild) {\n      crumbs$ = concat(crumbs$, this.resolveCrumbs(route.firstChild));\n    }\n\n    return crumbs$;\n  }\n}\n","\nimport { Component } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nimport { BreadcrumbsService } from '../services/breadcrumbs.service';\nimport { Breadcrumb } from '../models/breadcrumb';\n\n@Component({\n  selector: 'lib-breadcrumbs',\n  template: `\n    <ol *ngIf=\"crumbs$ | async as crumbs\" class=\"breadcrumbs__container\">\n      <li *ngFor=\"let crumb of crumbs; let last = last\"\n        [ngClass]=\"{ 'breadcrumbs__item--active': last }\"\n        class=\"breadcrumbs__item\"\n      >\n        <a *ngIf=\"!last\" [routerLink]=\"crumb.path\">{{ crumb.text }}</a>\n        <span *ngIf=\"last\">{{ crumb.text }}</span>\n      </li>\n    </ol>\n  `\n})\nexport class BreadcrumbsComponent {\n  public crumbs$: Observable<Breadcrumb[]> = this.breadcrumbsService.getCrumbs();\n\n  constructor(public breadcrumbsService: BreadcrumbsService) { }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { BreadcrumbsConfig } from './services/breadcrumbs.config';\nimport { BreadcrumbsService } from './services/breadcrumbs.service';\nimport { BreadcrumbsComponent } from './component/breadcrumbs.component';\n\n// @dynamic\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n  ],\n  declarations: [BreadcrumbsComponent],\n  exports: [BreadcrumbsComponent],\n})\nexport class BreadcrumbsModule {\n  public static forRoot(config?: BreadcrumbsConfig): ModuleWithProviders<BreadcrumbsModule> {\n    return {\n      ngModule: BreadcrumbsModule,\n      providers: [\n        { provide: BreadcrumbsConfig, useFactory: () => new BreadcrumbsConfig(config) },\n        BreadcrumbsService,\n      ],\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.BreadcrumbsConfig","i1.BreadcrumbsService","i3"],"mappings":"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"}