{"version":3,"file":"novo-elements-elements-breadcrumbs.mjs","sources":["../../../projects/novo-elements/src/elements/breadcrumbs/Breadcrumb.service.ts","../../../projects/novo-elements/src/elements/breadcrumbs/Breadcrumb.tokens.ts","../../../projects/novo-elements/src/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.ts","../../../projects/novo-elements/src/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.html","../../../projects/novo-elements/src/elements/breadcrumbs/Breadcrumb.ts","../../../projects/novo-elements/src/elements/breadcrumbs/Breadcrumb.html","../../../projects/novo-elements/src/elements/breadcrumbs/Breadcrumb.module.ts","../../../projects/novo-elements/src/elements/breadcrumbs/novo-elements-elements-breadcrumbs.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class BreadcrumbService {\n  constructor(private router: Router) {}\n  navigateTo($event, item) {\n    if ($event.button !== 0 || $event.ctrlKey || $event.metaKey || $event.shiftKey) {\n      return;\n    }\n    if (typeof item.target === 'string' && item.target !== '_self') {\n      return;\n    }\n    $event.preventDefault();\n    this.router.navigateByUrl(item.link);\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface NovoBreadcrumbRef<T = any> {\n  separatorIcon: string;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const NOVO_BREADCRUMB_REF = new InjectionToken<NovoBreadcrumbRef>('NOVO_BREADCRUMB_REF');\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, OnInit, Output, TemplateRef } from '@angular/core';\nimport { BreadcrumbService } from '../Breadcrumb.service';\nimport { NovoBreadcrumbRef, NOVO_BREADCRUMB_REF } from '../Breadcrumb.tokens';\nimport { MenuConfig } from '../Breadcrumb.types';\n\n@Component({\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'novo-breadcrumb-item',\n    templateUrl: './BreadcrumbItem.html',\n    styleUrls: ['./BreadcrumbItem.scss'],\n    standalone: false,\n})\nexport class BreadcrumbItemElement implements OnInit {\n  @Input() showMenu = false;\n  @Input() customMenuTemplate: TemplateRef<any>;\n  @Input() menuList: Array<MenuConfig>;\n  @Input() isSearch = false;\n  @Output() toggleEvent: EventEmitter<any> = new EventEmitter<any>();\n\n  menuListDisplay: Array<MenuConfig>;\n  isOpen: boolean;\n\n  constructor(private breadcrumbService: BreadcrumbService, @Inject(NOVO_BREADCRUMB_REF) public breadcrumbComponent: NovoBreadcrumbRef) {}\n  ngOnInit(): void {\n    this.menuListDisplay = this.menuList;\n  }\n  onToggle($event) {\n    this.isOpen = $event;\n    this.toggleEvent.emit($event);\n  }\n  searchEvent($event) {\n    if (this.menuList) {\n      this.menuListDisplay = this.menuList.filter((item) => item.name.toLowerCase().includes($event.toLowerCase()));\n    }\n  }\n  navigateTo($event, item) {\n    this.breadcrumbService.navigateTo($event, item);\n  }\n}\n","<ng-container *ngIf=\"showMenu; else breadcrumbContentTpl\">\n  <span [ngClass]=\"{ 'novo-breadcrumb-item-active': isOpen }\" #origin\n    class=\"novo-dropdown-no-border novo-dropdown-origin novo-breadcrumb-dropdown-origin\">\n    <ng-template [ngTemplateOutlet]=\"breadcrumbContentTpl\"></ng-template>\n    <novo-dropdown>\n      <novo-button theme=\"icon\" icon=\"collapse\" size=\"small\"></novo-button>\n      <novo-optgroup class=\"novo-breadcrumb-dropdown-menu\">\n        <div *ngIf=\"isSearch\" class=\"dropdown-search-container\">\n          <novo-search alwaysOpen=\"true\" (searchFn)=\"searchEvent($event)\" [class]=\"'search-in-dropdown'\"></novo-search>\n        </div>\n        <novo-option *ngFor=\"let item of menuListDisplay\" title=\"{{ item.name }}\">\n          <a *ngIf=\"!item.linkType || item.linkType === 'hrefLink'\" [href]=\"item.link\" rel=\"noopener\"\n            [target]=\"item.target ? item.target : '_self'\">{{ item.name }}</a>\n          <a *ngIf=\"item.linkType === 'routerLink'\" rel=\"noopener\" [target]=\"item.target\" [href]=\"item.link\"\n            (click)=\"navigateTo($event, item)\">{{ item.name }}</a>\n        </novo-option>\n      </novo-optgroup>\n    </novo-dropdown>\n  </span>\n</ng-container>\n\n<ng-template #breadcrumbContentTpl>\n  <span class=\"novo-breadcrumb-item\">\n    <ng-content></ng-content>\n  </span>\n</ng-template>\n\n<ng-template #dropDownMenuTpl>\n  <div>test</div>\n\n</ng-template>\n\n<span class=\"novo-breadcrumb-separator\">\n  <ng-template\n    [ngTemplateOutlet]=\"breadcrumbComponent.separatorIcon ? breadcrumbComponent.separatorIcon : defaultSeparator\"\n    [ngTemplateOutletContext]=\"{\n    $implicit: this\n  }\">\n  </ng-template>\n</span>\n\n<ng-template #defaultSeparator>\n  <span class=\"novo-breadcrumb-separator\">\n    /\n  </span>\n</ng-template>","import { Component, Input, TemplateRef } from '@angular/core';\nimport { BreadcrumbService } from './Breadcrumb.service';\nimport { NOVO_BREADCRUMB_REF } from './Breadcrumb.tokens';\nimport { SourceConfig } from './Breadcrumb.types';\n\n@Component({\n    selector: 'novo-breadcrumb',\n    templateUrl: './Breadcrumb.html',\n    styleUrls: ['./Breadcrumb.scss'],\n    providers: [{ provide: NOVO_BREADCRUMB_REF, useExisting: BreadcrumbElement }],\n    standalone: false,\n})\nexport class BreadcrumbElement {\n  @Input() separatorIcon: TemplateRef<any>;\n  @Input() source: Array<SourceConfig> = [];\n\n  constructor(private breadcrumbService: BreadcrumbService) {}\n\n  navigateTo($event, item) {\n    this.breadcrumbService.navigateTo($event, item);\n  }\n}\n","<ng-container *ngIf=\"source && source.length\">\n  <novo-breadcrumb-item *ngFor=\"let item of source\" [showMenu]=\"item.showMenu\" [isSearch]=\"item.isSearch\"\n    [menuList]=\"item.menuList\" [customMenuTemplate]=\"item.customMenuTemplate\">\n    <a *ngIf=\"!item.noNavigation && (!item.linkType || item.linkType === 'hrefLink')\" rel=\"noopener\" [href]=\"item.link\"\n      [target]=\"item.target ? item.target : '_self'\">{{ item.title }}</a>\n    <a *ngIf=\"!item.noNavigation && item.linkType === 'routerLink'\" rel=\"noopener\" [target]=\"item.target\"\n      [href]=\"item.link\" (click)=\"navigateTo($event, item)\">{{ item.title }}</a>\n    <span *ngIf=\"item.noNavigation\">{{ item.title }}</span>\n  </novo-breadcrumb-item>\n</ng-container>\n<ng-container *ngIf=\"!(source && source.length)\">\n  <ng-content></ng-content>\n</ng-container>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoOptionModule } from 'novo-elements/elements/common';\nimport { NovoDropdownModule } from 'novo-elements/elements/dropdown';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoSearchBoxModule } from 'novo-elements/elements/search';\nimport { BreadcrumbElement } from './Breadcrumb';\nimport { BreadcrumbItemElement } from './breadcrumb-item/BreadcrumbItem';\nimport { BreadcrumbService } from './Breadcrumb.service';\n\n@NgModule({\n  imports: [CommonModule, RouterModule, NovoDropdownModule, NovoSearchBoxModule, NovoButtonModule, NovoIconModule, NovoOptionModule],\n  exports: [BreadcrumbElement, BreadcrumbItemElement],\n  declarations: [BreadcrumbElement, BreadcrumbItemElement],\n  providers: [BreadcrumbService],\n})\nexport class NovoBreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BreadcrumbService","i3.BreadcrumbItemElement"],"mappings":"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"}