@nova-ui/bits
Version:
SolarWinds Nova Framework
108 lines • 13.7 kB
JavaScript
// © 2022 SolarWinds Worldwide, LLC. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import { ChangeDetectorRef, Component, ElementRef, forwardRef, Input, Optional, ViewChild, ViewEncapsulation, } from "@angular/core";
import { MenuGroupComponent } from "../menu-group/menu-group.component";
import { MenuItemBaseComponent } from "../menu-item/menu-item-base";
import * as i0 from "@angular/core";
import * as i1 from "../menu-group/menu-group.component";
import * as i2 from "@angular/common";
import * as i3 from "../../../icon/icon.component";
/**
* @ignore
*/
/**
* Represents menu link item of nui-menu component with additional bindings and style
*/
export class MenuLinkComponent extends MenuItemBaseComponent {
constructor(group, cd) {
super(group, cd);
this.group = group;
/**
* Sets inner "target" attribute of anchor tag
*/
this.target = "";
this.disabled = false;
}
handleClick(event) {
if (this.disabled) {
event.preventDefault();
event.stopPropagation();
}
this.actionDone.emit();
}
doAction() {
this.menuItem.nativeElement.click();
this.actionDone.emit();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuLinkComponent, deps: [{ token: i1.MenuGroupComponent, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuLinkComponent, selector: "nui-menu-link", inputs: { url: "url", target: "target", icon: "icon" }, host: { attributes: { "role": "menuitem" } }, providers: [
{
provide: MenuItemBaseComponent,
useExisting: forwardRef(() => MenuLinkComponent),
},
], viewQueries: [{ propertyName: "menuItem", first: true, predicate: ["menuLink"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
<a
class="nui-menu-item__link"
role="link"
[]="url"
[]="target"
(click)="handleClick($event)"
title
>
<nui-icon *ngIf="icon" [icon]="icon"></nui-icon>
<ng-content></ng-content>
</a>
`, isInline: true, styles: [".nui-menu .nui-menu-item .nui-menu-item__link,.nui-menu-popup-host .nui-menu-item .nui-menu-item__link,.nui-menu-popup .nui-menu-item .nui-menu-item__link{line-height:18px}.nui-menu .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link,.nui-menu-popup-host .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link,.nui-menu-popup .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link{color:var(--nui-color-off,#4d4d4d)}.nui-menu .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:focus,.nui-menu-popup-host .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:focus,.nui-menu-popup .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:focus{outline:0}.nui-menu .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:hover,.nui-menu-popup-host .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:hover,.nui-menu-popup .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:hover{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "nui-icon", inputs: ["iconColor", "brushType", "iconHoverColor", "iconSize", "cssClass", "fillContainer", "status", "childStatus", "icon", "counter"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuLinkComponent, decorators: [{
type: Component,
args: [{ selector: "nui-menu-link", template: `
<a
class="nui-menu-item__link"
role="link"
[]="url"
[]="target"
(click)="handleClick($event)"
title
>
<nui-icon *ngIf="icon" [icon]="icon"></nui-icon>
<ng-content></ng-content>
</a>
`, providers: [
{
provide: MenuItemBaseComponent,
useExisting: forwardRef(() => MenuLinkComponent),
},
], encapsulation: ViewEncapsulation.None, host: { role: "menuitem" }, styles: [".nui-menu .nui-menu-item .nui-menu-item__link,.nui-menu-popup-host .nui-menu-item .nui-menu-item__link,.nui-menu-popup .nui-menu-item .nui-menu-item__link{line-height:18px}.nui-menu .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link,.nui-menu-popup-host .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link,.nui-menu-popup .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link{color:var(--nui-color-off,#4d4d4d)}.nui-menu .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:focus,.nui-menu-popup-host .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:focus,.nui-menu-popup .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:focus{outline:0}.nui-menu .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:hover,.nui-menu-popup-host .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:hover,.nui-menu-popup .nui-menu-item.nui-menu-item--disabled>.nui-menu-item__link:hover{cursor:not-allowed}\n"] }]
}], ctorParameters: () => [{ type: i1.MenuGroupComponent, decorators: [{
type: Optional
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { url: [{
type: Input
}], target: [{
type: Input
}], icon: [{
type: Input
}], menuItem: [{
type: ViewChild,
args: ["menuLink"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbWVudS9tZW51LWl0ZW0vbWVudS1saW5rL21lbnUtbGluay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQUVwRTs7R0FFRztBQUVIOztHQUVHO0FBMkJILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxxQkFBcUI7SUFleEQsWUFDeUIsS0FBeUIsRUFDOUMsRUFBcUI7UUFFckIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUhJLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBWGxEOztXQUVHO1FBQ2EsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQWF4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWlCO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQW5DUSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw4SUFWZjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDbkQ7U0FDSix1SkFuQlM7Ozs7Ozs7Ozs7Ozs7S0FhVDs7NEZBV1EsaUJBQWlCO2tCQTFCN0IsU0FBUzsrQkFDSSxlQUFlLFlBQ2Y7Ozs7Ozs7Ozs7Ozs7S0FhVCxhQUNVO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO3lCQUNuRDtxQkFDSixpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7MEJBa0JyQixRQUFRO3lFQVpHLEdBQUc7c0JBQWxCLEtBQUs7Z0JBSVUsTUFBTTtzQkFBckIsS0FBSztnQkFJVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNpQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDCqSAyMDIyIFNvbGFyV2luZHMgV29ybGR3aWRlLCBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvXG4vLyAgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGVcbi8vICByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Jcbi8vICBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vICBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgTWVudUdyb3VwQ29tcG9uZW50IH0gZnJvbSBcIi4uL21lbnUtZ3JvdXAvbWVudS1ncm91cC5jb21wb25lbnRcIjtcbmltcG9ydCB7IE1lbnVJdGVtQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi9tZW51LWl0ZW0vbWVudS1pdGVtLWJhc2VcIjtcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIG1lbnUgbGluayBpdGVtIG9mIG51aS1tZW51IGNvbXBvbmVudCB3aXRoIGFkZGl0aW9uYWwgYmluZGluZ3MgYW5kIHN0eWxlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm51aS1tZW51LWxpbmtcIixcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJudWktbWVudS1pdGVtX19saW5rXCJcbiAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgIFtocmVmXT1cInVybFwiXG4gICAgICAgICAgICBbdGFyZ2V0XT1cInRhcmdldFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAjbWVudUxpbmtcbiAgICAgICAgICAgIHRpdGxlXG4gICAgICAgID5cbiAgICAgICAgICAgIDxudWktaWNvbiAqbmdJZj1cImljb25cIiBbaWNvbl09XCJpY29uXCI+PC9udWktaWNvbj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9hPlxuICAgIGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE1lbnVJdGVtQmFzZUNvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1lbnVMaW5rQ29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIHN0eWxlVXJsczogW1wiLi9tZW51LWxpbmsuY29tcG9uZW50Lmxlc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7IHJvbGU6IFwibWVudWl0ZW1cIiB9LFxufSlcbmV4cG9ydCBjbGFzcyBNZW51TGlua0NvbXBvbmVudCBleHRlbmRzIE1lbnVJdGVtQmFzZUNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogU2V0cyBpbm5lciBcImhyZWZcIiBhdHRyaWJ1dGUgb2YgYW5jaG9yIHRhZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB1cmw6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZXRzIGlubmVyIFwidGFyZ2V0XCIgYXR0cmlidXRlIG9mIGFuY2hvciB0YWdcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdGFyZ2V0ID0gXCJcIjtcbiAgICAvKipcbiAgICAgKiBBZGRzIGljb24gYnkgc3BlY2lmaWVkIGljb24gbmFtZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpY29uOiBzdHJpbmc7XG4gICAgQFZpZXdDaGlsZChcIm1lbnVMaW5rXCIpIG1lbnVJdGVtOiBFbGVtZW50UmVmO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IGdyb3VwOiBNZW51R3JvdXBDb21wb25lbnQsXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihncm91cCwgY2QpO1xuXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGlvbkRvbmUuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb0FjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIHRoaXMuYWN0aW9uRG9uZS5lbWl0KCk7XG4gICAgfVxufVxuIl19