UNPKG

@clr/angular

Version:

Angular components for Clarity

56 lines 6.18 kB
/* * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved. * This software is released under MIT license. * The full license information can be found in LICENSE in the root directory of this project. */ import { Component, Inject, Optional } from '@angular/core'; import { fromEvent, Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { VerticalNavGroupService } from './providers/vertical-nav-group.service'; import * as i0 from "@angular/core"; import * as i1 from "./providers/vertical-nav-group.service"; export class ClrVerticalNavLink { constructor(host, ref, navGroupService) { this.destroy$ = new Subject(); // Note: since the `VerticalNavGroupService` is an optional provider, we'll setup the event // listener only when the `[clrVerticalLink]` is located within the `clr-vertical-nav-group`. navGroupService && fromEvent(host.nativeElement, 'click') .pipe(takeUntil(this.destroy$)) .subscribe(() => { navGroupService.expand(); ref.markForCheck(); }); } ngOnDestroy() { this.destroy$.next(); } } ClrVerticalNavLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNavLink, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: VerticalNavGroupService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); ClrVerticalNavLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrVerticalNavLink, selector: "[clrVerticalNavLink]", host: { classAttribute: "nav-link" }, ngImport: i0, template: ` <ng-content select="[clrVerticalNavIcon]"></ng-content> <span class="nav-text"> <ng-content></ng-content> </span> `, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNavLink, decorators: [{ type: Component, args: [{ selector: '[clrVerticalNavLink]', template: ` <ng-content select="[clrVerticalNavIcon]"></ng-content> <span class="nav-text"> <ng-content></ng-content> </span> `, host: { class: 'nav-link', }, }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.VerticalNavGroupService, decorators: [{ type: Optional }, { type: Inject, args: [VerticalNavGroupService] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtbmF2LWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9sYXlvdXQvdmVydGljYWwtbmF2L3ZlcnRpY2FsLW5hdi1saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQXFCLFNBQVMsRUFBYyxNQUFNLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBY2pGLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDRSxJQUE2QixFQUM3QixHQUFzQixFQUN1QixlQUErQztRQUx0RixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU9yQywyRkFBMkY7UUFDM0YsNkZBQTZGO1FBQzdGLGVBQWU7WUFDYixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7aUJBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekIsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OytHQXJCVSxrQkFBa0IsNkVBTVAsdUJBQXVCO21HQU5sQyxrQkFBa0Isa0dBVm5COzs7OztHQUtUOzJGQUtVLGtCQUFrQjtrQkFaOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUU7Ozs7O0dBS1Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxVQUFVO3FCQUNsQjtpQkFDRjs7MEJBT0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFZlcnRpY2FsTmF2R3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvdmVydGljYWwtbmF2LWdyb3VwLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbY2xyVmVydGljYWxOYXZMaW5rXScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NsclZlcnRpY2FsTmF2SWNvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW4gY2xhc3M9XCJuYXYtdGV4dFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgYCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnbmF2LWxpbmsnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJWZXJ0aWNhbE5hdkxpbmsgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICByZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVmVydGljYWxOYXZHcm91cFNlcnZpY2UpIG5hdkdyb3VwU2VydmljZTogVmVydGljYWxOYXZHcm91cFNlcnZpY2UgfCBudWxsXG4gICkge1xuICAgIC8vIE5vdGU6IHNpbmNlIHRoZSBgVmVydGljYWxOYXZHcm91cFNlcnZpY2VgIGlzIGFuIG9wdGlvbmFsIHByb3ZpZGVyLCB3ZSdsbCBzZXR1cCB0aGUgZXZlbnRcbiAgICAvLyBsaXN0ZW5lciBvbmx5IHdoZW4gdGhlIGBbY2xyVmVydGljYWxMaW5rXWAgaXMgbG9jYXRlZCB3aXRoaW4gdGhlIGBjbHItdmVydGljYWwtbmF2LWdyb3VwYC5cbiAgICBuYXZHcm91cFNlcnZpY2UgJiZcbiAgICAgIGZyb21FdmVudChob3N0Lm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgbmF2R3JvdXBTZXJ2aWNlLmV4cGFuZCgpO1xuICAgICAgICAgIHJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgfVxufVxuIl19