angular-sidebar-menu
Version:
The sources for this package are in the [Angular Sidebar Menu](https://github.com/mledour/angular-sidebar-menu) repo. Please file issues and pull requests against that repo.
67 lines (66 loc) • 7.2 kB
JavaScript
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, HostBinding, ViewChild } from '@angular/core';
import { AnchorService } from './anchor.service';
export class AnchorComponent {
constructor(anchorService) {
this.anchorService = anchorService;
this.disable = false;
this.clickAnchor = new EventEmitter();
}
get active() {
var _a;
return this.isActive || (!!((_a = this.routerLinActive) === null || _a === void 0 ? void 0 : _a.isActive) && !this.disable);
}
}
AnchorComponent.decorators = [
{ type: Component, args: [{
selector: 'asm-menu-anchor',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `<ng-container [ngSwitch]="true">
<a *ngSwitchCase="!!menuItem.children" (click)="clickAnchor.emit()">
<ng-container *ngTemplateOutlet="innerItem"></ng-container>
</a>
<a
*ngSwitchCase="!!menuItem.route || menuItem.route === ''"
[routerLink]="disable ? undefined : menuItem.route"
routerLinkActive
#rla="routerLinkActive"
[routerLinkActiveOptions]="{ exact: menuItem.linkActiveExact === undefined ? true : menuItem.linkActiveExact }"
>
<ng-container *ngTemplateOutlet="innerItem"></ng-container>
</a>
<a *ngSwitchCase="!!menuItem.url" [href]="menuItem.url" [target]="menuItem.target">
<ng-container *ngTemplateOutlet="innerItem"></ng-container>
</a>
</ng-container>
<ng-template #innerItem>
<i
*ngIf="menuItem.iconClasses || anchorService.iconClasses"
[class]="menuItem.iconClasses || anchorService.iconClasses"
class="asm-menu-anchor__icon"
></i>
<span class="asm-menu-anchor__label">{{ menuItem.label }}</span>
<span
*ngIf="menuItem.badges || menuItem.children"
class="asm-menu-anchor__pull"
[ngClass]="{ 'asm-badges': menuItem.badges, 'asm-toggle': menuItem.children }"
>
<span *ngFor="let badge of menuItem.badges" [class]="badge.classes" class="asm-badges__badge">{{
badge.label
}}</span>
<span class="asm-toggle__icon"><ng-content select="[toggleIcon]"></ng-content></span>
</span>
</ng-template>`
},] }
];
AnchorComponent.ctorParameters = () => [
{ type: AnchorService }
];
AnchorComponent.propDecorators = {
menuItem: [{ type: Input }],
isActive: [{ type: Input }],
disable: [{ type: Input }],
clickAnchor: [{ type: Output }],
active: [{ type: HostBinding, args: ['class.asm-menu-anchor--active',] }],
routerLinActive: [{ type: ViewChild, args: ['rla',] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3JjL2xpYi9pbnRlcm5hbC9hbmNob3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt4SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUEwQ2pELE1BQU0sT0FBTyxlQUFlO0lBYTFCLFlBQW1CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVnRDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFZixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFRQyxDQUFDO0lBTm5ELElBQWtELE1BQU07O1FBQ3RELE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBQyxJQUFJLENBQUMsZUFBZSwwQ0FBRSxRQUFRLENBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQW1DTzthQUNsQjs7O1lBekNRLGFBQWE7Ozt1QkEyQ25CLEtBQUs7dUJBQ0wsS0FBSztzQkFDTCxLQUFLOzBCQUVMLE1BQU07cUJBRU4sV0FBVyxTQUFDLCtCQUErQjs4QkFJM0MsU0FBUyxTQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEhvc3RCaW5kaW5nLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmtBY3RpdmUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uL3NpZGViYXItbWVudS5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBBbmNob3JTZXJ2aWNlIH0gZnJvbSAnLi9hbmNob3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FzbS1tZW51LWFuY2hvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRydWVcIj5cbiAgICAgIDxhICpuZ1N3aXRjaENhc2U9XCIhIW1lbnVJdGVtLmNoaWxkcmVuXCIgKGNsaWNrKT1cImNsaWNrQW5jaG9yLmVtaXQoKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJJdGVtXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2E+XG4gICAgICA8YVxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiISFtZW51SXRlbS5yb3V0ZSB8fCBtZW51SXRlbS5yb3V0ZSA9PT0gJydcIlxuICAgICAgICBbcm91dGVyTGlua109XCJkaXNhYmxlID8gdW5kZWZpbmVkIDogbWVudUl0ZW0ucm91dGVcIlxuICAgICAgICByb3V0ZXJMaW5rQWN0aXZlXG4gICAgICAgICNybGE9XCJyb3V0ZXJMaW5rQWN0aXZlXCJcbiAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IG1lbnVJdGVtLmxpbmtBY3RpdmVFeGFjdCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IG1lbnVJdGVtLmxpbmtBY3RpdmVFeGFjdCB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVySXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9hPlxuICAgICAgPGEgKm5nU3dpdGNoQ2FzZT1cIiEhbWVudUl0ZW0udXJsXCIgW2hyZWZdPVwibWVudUl0ZW0udXJsXCIgW3RhcmdldF09XCJtZW51SXRlbS50YXJnZXRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVySXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9hPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpbm5lckl0ZW0+XG4gICAgICA8aVxuICAgICAgICAqbmdJZj1cIm1lbnVJdGVtLmljb25DbGFzc2VzIHx8IGFuY2hvclNlcnZpY2UuaWNvbkNsYXNzZXNcIlxuICAgICAgICBbY2xhc3NdPVwibWVudUl0ZW0uaWNvbkNsYXNzZXMgfHwgYW5jaG9yU2VydmljZS5pY29uQ2xhc3Nlc1wiXG4gICAgICAgIGNsYXNzPVwiYXNtLW1lbnUtYW5jaG9yX19pY29uXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImFzbS1tZW51LWFuY2hvcl9fbGFiZWxcIj57eyBtZW51SXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwibWVudUl0ZW0uYmFkZ2VzIHx8IG1lbnVJdGVtLmNoaWxkcmVuXCJcbiAgICAgICAgY2xhc3M9XCJhc20tbWVudS1hbmNob3JfX3B1bGxcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdhc20tYmFkZ2VzJzogbWVudUl0ZW0uYmFkZ2VzLCAnYXNtLXRvZ2dsZSc6IG1lbnVJdGVtLmNoaWxkcmVuIH1cIlxuICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYmFkZ2Ugb2YgbWVudUl0ZW0uYmFkZ2VzXCIgW2NsYXNzXT1cImJhZGdlLmNsYXNzZXNcIiBjbGFzcz1cImFzbS1iYWRnZXNfX2JhZGdlXCI+e3tcbiAgICAgICAgICBiYWRnZS5sYWJlbFxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhc20tdG9nZ2xlX19pY29uXCI+PG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RvZ2dsZUljb25dXCI+PC9uZy1jb250ZW50Pjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPmAsXG59KVxuZXhwb3J0IGNsYXNzIEFuY2hvckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1lbnVJdGVtITogTWVudUl0ZW07XG4gIEBJbnB1dCgpIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZGlzYWJsZSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBjbGlja0FuY2hvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFzbS1tZW51LWFuY2hvci0tYWN0aXZlJykgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0FjdGl2ZSB8fCAoISF0aGlzLnJvdXRlckxpbkFjdGl2ZT8uaXNBY3RpdmUgJiYgIXRoaXMuZGlzYWJsZSk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdybGEnKSBwcml2YXRlIHJvdXRlckxpbkFjdGl2ZT86IFJvdXRlckxpbmtBY3RpdmU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGFuY2hvclNlcnZpY2U6IEFuY2hvclNlcnZpY2UpIHt9XG59XG4iXX0=