UNPKG

@vismaux/ngx-nordic-cool

Version:
60 lines 9.88 kB
import { Component, ChangeDetectionStrategy, Input, ViewChild, TemplateRef, EventEmitter, Output, Optional, Self, ContentChild, } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; import * as i2 from "../../dropdown/dropdown-item.directive"; import * as i3 from "@angular/common"; export class NcNavbarMenuItemComponent { constructor( /** @ignore */ elRef, /** @ignore */ cdRef, /** @ignore */ routerLinkActive) { this.elRef = elRef; this.cdRef = cdRef; this.routerLinkActive = routerLinkActive; this._routerLinkActive = null; this.active = null; this.click = new EventEmitter(); } get isActive() { return this.active ?? this._routerLinkActive ?? false; } ngDoCheck() { if (this.routerLinkActive && this.routerLinkActive.isActive !== this._routerLinkActive) { this._routerLinkActive = this.routerLinkActive.isActive; /** * `detectChanges` is needed to avoid `ExpressionChangedAfterItHasBeenCheckedError`, * as `routerLinkActive.isActive` changes its value during the `navbar-menu-item` initialization. */ this.cdRef.detectChanges(); } } } NcNavbarMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcNavbarMenuItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.RouterLinkActive, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); NcNavbarMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: NcNavbarMenuItemComponent, selector: "nc-navbar-menu-item", inputs: { active: "active", label: "label", href: "href" }, outputs: { click: "click" }, queries: [{ propertyName: "labelTmp", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-template #content let-dropdown=\"dropdown\" let-virtual=\"virtual\">\n <li role=\"none\" [class.active]=\"isActive\" [class.virtual]=\"virtual\">\n <a\n class=\"nav-item\"\n [attr.role]=\"virtual ? 'none' : 'menuitem'\"\n (click)=\"click.emit($event)\"\n [attr.href]=\"href\"\n [attr.aria-current]=\"isActive\"\n [ncDropdownItem]=\"dropdown\"\n >\n <ng-container\n [ngTemplateOutlet]=\"labelTmp ?? defaultLabelTmp\"\n ></ng-container>\n <ng-template #defaultLabelTmp>{{ label }}</ng-template>\n </a>\n </li>\n</ng-template>\n", styles: ["a{white-space:nowrap}.virtual{position:absolute!important;left:0px;visibility:hidden}\n"], directives: [{ type: i2.NcDropdownItemDirective, selector: "[ncDropdownItem]", inputs: ["ncDropdownItem"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NcNavbarMenuItemComponent, decorators: [{ type: Component, args: [{ selector: 'nc-navbar-menu-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #content let-dropdown=\"dropdown\" let-virtual=\"virtual\">\n <li role=\"none\" [class.active]=\"isActive\" [class.virtual]=\"virtual\">\n <a\n class=\"nav-item\"\n [attr.role]=\"virtual ? 'none' : 'menuitem'\"\n (click)=\"click.emit($event)\"\n [attr.href]=\"href\"\n [attr.aria-current]=\"isActive\"\n [ncDropdownItem]=\"dropdown\"\n >\n <ng-container\n [ngTemplateOutlet]=\"labelTmp ?? defaultLabelTmp\"\n ></ng-container>\n <ng-template #defaultLabelTmp>{{ label }}</ng-template>\n </a>\n </li>\n</ng-template>\n", styles: ["a{white-space:nowrap}.virtual{position:absolute!important;left:0px;visibility:hidden}\n"] }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.RouterLinkActive, decorators: [{ type: Optional }, { type: Self }] }]; }, propDecorators: { active: [{ type: Input }], label: [{ type: Input }], href: [{ type: Input }], click: [{ type: Output }], content: [{ type: ViewChild, args: ['content', { read: TemplateRef }] }], labelTmp: [{ type: ContentChild, args: [TemplateRef] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9yZGljLWNvb2wvc3JjL2xpYi9uYXZiYXIvbmF2YmFyLW1lbnUtaXRlbS9uYXZiYXItbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub3JkaWMtY29vbC9zcmMvbGliL25hdmJhci9uYXZiYXItbWVudS1pdGVtL25hdmJhci1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFFdkIsS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUdKLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTdkIsTUFBTSxPQUFPLHlCQUF5QjtJQW1CcEM7SUFDRSxjQUFjO0lBQ1AsS0FBOEI7SUFDckMsY0FBYztJQUNOLEtBQXdCO0lBQ2hDLGNBQWM7SUFDYyxnQkFBa0M7UUFKdkQsVUFBSyxHQUFMLEtBQUssQ0FBeUI7UUFFN0IsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFFSixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBeEJ4RCxzQkFBaUIsR0FBbUIsSUFBSSxDQUFDO1FBRXhDLFdBQU0sR0FBbUIsSUFBSSxDQUFDO1FBSXBCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBbUJ2RCxDQUFDO0lBWEosSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUM7SUFDeEQsQ0FBQztJQVdELFNBQVM7UUFDUCxJQUNFLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQ3pEO1lBQ0EsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7WUFDeEQ7OztlQUdHO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7O3NIQXhDVSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwwTEFhdEIsV0FBVywrSEFISyxXQUFXLDZCQ2pDM0Msa2xCQWlCQTsyRkRNYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OzBCQTJCNUMsUUFBUTs7MEJBQUksSUFBSTs0Q0F0QlYsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRWEsS0FBSztzQkFBdkIsTUFBTTtnQkFJRSxPQUFPO3NCQURmLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHUCxRQUFRO3NCQUEzQyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBUZW1wbGF0ZVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBEb0NoZWNrLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmtBY3RpdmUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYy1uYXZiYXItbWVudS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXItbWVudS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOY05hdmJhck1lbnVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjayB7XG4gIHByaXZhdGUgX3JvdXRlckxpbmtBY3RpdmU6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKSBhY3RpdmU6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgaHJlZjogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdjb250ZW50JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICByZWFkb25seSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHJlYWRvbmx5IGxhYmVsVG1wPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlID8/IHRoaXMuX3JvdXRlckxpbmtBY3RpdmUgPz8gZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHB1YmxpYyBlbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSByb3V0ZXJMaW5rQWN0aXZlOiBSb3V0ZXJMaW5rQWN0aXZlXG4gICkge31cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5yb3V0ZXJMaW5rQWN0aXZlICYmXG4gICAgICB0aGlzLnJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmUgIT09IHRoaXMuX3JvdXRlckxpbmtBY3RpdmVcbiAgICApIHtcbiAgICAgIHRoaXMuX3JvdXRlckxpbmtBY3RpdmUgPSB0aGlzLnJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmU7XG4gICAgICAvKipcbiAgICAgICAqIGBkZXRlY3RDaGFuZ2VzYCBpcyBuZWVkZWQgdG8gYXZvaWQgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgLFxuICAgICAgICogYXMgYHJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmVgIGNoYW5nZXMgaXRzIHZhbHVlIGR1cmluZyB0aGUgYG5hdmJhci1tZW51LWl0ZW1gIGluaXRpYWxpemF0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudCBsZXQtZHJvcGRvd249XCJkcm9wZG93blwiIGxldC12aXJ0dWFsPVwidmlydHVhbFwiPlxuICA8bGkgcm9sZT1cIm5vbmVcIiBbY2xhc3MuYWN0aXZlXT1cImlzQWN0aXZlXCIgW2NsYXNzLnZpcnR1YWxdPVwidmlydHVhbFwiPlxuICAgIDxhXG4gICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcbiAgICAgIFthdHRyLnJvbGVdPVwidmlydHVhbCA/ICdub25lJyA6ICdtZW51aXRlbSdcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICBbYXR0ci5ocmVmXT1cImhyZWZcIlxuICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQWN0aXZlXCJcbiAgICAgIFtuY0Ryb3Bkb3duSXRlbV09XCJkcm9wZG93blwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRtcCA/PyBkZWZhdWx0TGFiZWxUbXBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TGFiZWxUbXA+e3sgbGFiZWwgfX08L25nLXRlbXBsYXRlPlxuICAgIDwvYT5cbiAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=