ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 14.6 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-breadcrumb.mjs","sources":["../../components/breadcrumb/breadcrumb.ts","../../components/breadcrumb/breadcrumb-item.component.ts","../../components/breadcrumb/breadcrumb.component.ts","../../components/breadcrumb/breadcrumb-separator.component.ts","../../components/breadcrumb/breadcrumb.module.ts","../../components/breadcrumb/public-api.ts","../../components/breadcrumb/ng-zorro-antd-breadcrumb.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { TemplateRef } from '@angular/core';\n\n/**\n * https://angular.io/errors/NG3003\n * An intermediate interface for {@link NzBreadCrumbComponent} & {@link NzBreadCrumbItemComponent}\n */\nexport abstract class NzBreadcrumb {\n abstract nzSeparator: string | TemplateRef<void> | null;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\nimport { NzDropdownMenuComponent } from 'ng-zorro-antd/dropdown';\n\nimport { NzBreadcrumb } from './breadcrumb';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'nz-breadcrumb-item',\n exportAs: 'nzBreadcrumbItem',\n preserveWhitespaces: false,\n template: `\n <ng-container *ngIf=\"!!nzOverlay; else noMenuTpl\">\n <span class=\"ant-breadcrumb-overlay-link\" nz-dropdown [nzDropdownMenu]=\"nzOverlay\">\n <ng-template [ngTemplateOutlet]=\"noMenuTpl\"></ng-template>\n <i *ngIf=\"!!nzOverlay\" nz-icon nzType=\"down\"></i>\n </span>\n </ng-container>\n\n <ng-template #noMenuTpl>\n <span class=\"ant-breadcrumb-link\">\n <ng-content></ng-content>\n </span>\n </ng-template>\n\n <span class=\"ant-breadcrumb-separator\" *ngIf=\"nzBreadCrumbComponent.nzSeparator\">\n <ng-container *nzStringTemplateOutlet=\"nzBreadCrumbComponent.nzSeparator\">\n {{ nzBreadCrumbComponent.nzSeparator }}\n </ng-container>\n </span>\n `\n})\nexport class NzBreadCrumbItemComponent {\n /**\n * Dropdown content of a breadcrumb item.\n */\n @Input() nzOverlay?: NzDropdownMenuComponent;\n\n constructor(public nzBreadCrumbComponent: NzBreadcrumb) {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Params, PRIMARY_OUTLET, Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\n\nimport { PREFIX } from 'ng-zorro-antd/core/logger';\nimport { BooleanInput } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzBreadcrumb } from './breadcrumb';\n\nexport interface BreadcrumbOption {\n label: string;\n params: Params;\n url: string;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'nz-breadcrumb',\n exportAs: 'nzBreadcrumb',\n preserveWhitespaces: false,\n providers: [{ provide: NzBreadcrumb, useExisting: NzBreadCrumbComponent }],\n template: `\n <ng-content></ng-content>\n <ng-container *ngIf=\"nzAutoGenerate && breadcrumbs.length\">\n <nz-breadcrumb-item *ngFor=\"let breadcrumb of breadcrumbs\">\n <a [attr.href]=\"breadcrumb.url\" (click)=\"navigate(breadcrumb.url, $event)\">{{ breadcrumb.label }}</a>\n </nz-breadcrumb-item>\n </ng-container>\n `\n})\nexport class NzBreadCrumbComponent implements OnInit, OnDestroy, NzBreadcrumb {\n static ngAcceptInputType_nzAutoGenerate: BooleanInput;\n\n @Input() @InputBoolean() nzAutoGenerate = false;\n @Input() nzSeparator: string | TemplateRef<void> | null = '/';\n @Input() nzRouteLabel: string = 'breadcrumb';\n @Input() nzRouteLabelFn: (label: string) => string = label => label;\n\n breadcrumbs: BreadcrumbOption[] = [];\n dir: Direction = 'ltr';\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private injector: Injector,\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Optional() private directionality: Directionality\n ) {\n renderer.addClass(elementRef.nativeElement, 'ant-breadcrumb');\n }\n\n ngOnInit(): void {\n if (this.nzAutoGenerate) {\n this.registerRouterChange();\n }\n\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n this.prepareComponentForRtl();\n this.cdr.detectChanges();\n });\n\n this.dir = this.directionality.value;\n this.prepareComponentForRtl();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n navigate(url: string, e: MouseEvent): void {\n e.preventDefault();\n this.injector.get(Router).navigateByUrl(url);\n }\n\n private registerRouterChange(): void {\n try {\n const router = this.injector.get(Router);\n const activatedRoute = this.injector.get(ActivatedRoute);\n router.events\n .pipe(\n filter(e => e instanceof NavigationEnd),\n takeUntil(this.destroy$),\n startWith(true) // trigger initial render\n )\n .subscribe(() => {\n this.breadcrumbs = this.getBreadcrumbs(activatedRoute.root);\n this.cdr.markForCheck();\n });\n } catch (e) {\n throw new Error(`${PREFIX} You should import RouterModule if you want to use 'NzAutoGenerate'.`);\n }\n }\n\n private getBreadcrumbs(\n route: ActivatedRoute,\n url: string = '',\n breadcrumbs: BreadcrumbOption[] = []\n ): BreadcrumbOption[] {\n const children: ActivatedRoute[] = route.children;\n\n // If there's no sub root, then stop the recurse and returns the generated breadcrumbs.\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n for (const child of children) {\n if (child.outlet === PRIMARY_OUTLET) {\n // Only parse components in primary router-outlet (in another word, router-outlet without a specific name).\n // Parse this layer and generate a breadcrumb item.\n const routeUrl: string = child.snapshot.url\n .map(segment => segment.path)\n .filter(path => path)\n .join('/');\n\n // Do not change nextUrl if routeUrl is falsy. This happens when it's a route lazy loading other modules.\n const nextUrl = routeUrl ? `${url}/${routeUrl}` : url;\n const breadcrumbLabel = this.nzRouteLabelFn(child.snapshot.data[this.nzRouteLabel]);\n\n // If have data, go to generate a breadcrumb for it.\n if (routeUrl && breadcrumbLabel) {\n const breadcrumb: BreadcrumbOption = {\n label: breadcrumbLabel,\n params: child.snapshot.params,\n url: nextUrl\n };\n breadcrumbs.push(breadcrumb);\n }\n\n return this.getBreadcrumbs(child, nextUrl, breadcrumbs);\n }\n }\n\n return breadcrumbs;\n }\n\n private prepareComponentForRtl(): void {\n if (this.dir === 'rtl') {\n this.renderer.addClass(this.elementRef.nativeElement, 'ant-breadcrumb-rtl');\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, 'ant-breadcrumb-rtl');\n }\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'nz-breadcrumb-separator',\n exportAs: 'nzBreadcrumbSeparator',\n template: `\n <span class=\"ant-breadcrumb-separator\">\n <ng-content></ng-content>\n </span>\n `\n})\nexport class NzBreadCrumbSeparatorComponent {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzBreadCrumbItemComponent } from './breadcrumb-item.component';\nimport { NzBreadCrumbSeparatorComponent } from './breadcrumb-separator.component';\nimport { NzBreadCrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n imports: [CommonModule, NzOutletModule, OverlayModule, NzOverlayModule, NzDropDownModule, NzIconModule],\n declarations: [NzBreadCrumbComponent, NzBreadCrumbItemComponent, NzBreadCrumbSeparatorComponent],\n exports: [BidiModule, NzBreadCrumbComponent, NzBreadCrumbItemComponent, NzBreadCrumbSeparatorComponent]\n})\nexport class NzBreadCrumbModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './breadcrumb-item.component';\nexport * from './breadcrumb.component';\nexport * from './breadcrumb.module';\nexport * from './breadcrumb-separator.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}