ngx-pluto
Version:
140 lines • 8.38 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, Renderer2, ElementRef, ViewEncapsulation } from '@angular/core';
import { Router } from '@angular/router';
/**
* 侧边菜单
*
* Example of usage:
* <example-url>https://stackblitz.com/edit/x-button?embed=1&file=src/app/app.component.ts</example-url>
*/
var NpSideNav = /** @class */ (function () {
function NpSideNav(renderer2, el, router) {
this.renderer2 = renderer2;
this.el = el;
this.router = router;
this.items = [];
}
/**
* @return {?}
*/
NpSideNav.prototype.ngOnInit = /**
* @return {?}
*/
function () {
};
/**
* @param {?} changes
* @return {?}
*/
NpSideNav.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
};
/**
* @return {?}
*/
NpSideNav.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
};
/**
* @param {?} item
* @return {?}
*/
NpSideNav.prototype.onItemClicked = /**
* @param {?} item
* @return {?}
*/
function (item) {
item.expanded = !item.expanded;
if (item.route) {
this.router.navigate([item.route]);
}
};
NpSideNav.decorators = [
{ type: Component, args: [{
selector: "np-sidenav",
template: "<div class=\"np-sidenav-wrapper\">\r\n <ng-container *ngTemplateOutlet=\"sidenavItem; context: { items: items }\">\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #sidenavItem let-items=\"items\">\r\n <div class=\"sidenav-item-wrapper\" *ngFor=\"let item of items\">\r\n <div class=\"sidenav-item flex-wrap row-flex\" (click)=\"onItemClicked(item)\">\r\n <i class=\"sidenav-icon\" [class]=\"item.iconName\" *ngIf=\"item.iconName\"></i>\r\n <span>{{ item.displayName }}</span>\r\n <i *ngIf=\"item.children && item.children.length > 0\" class=\"fa right-arrow\" [ngClass]=\"{'fa-angle-left': !item.expanded, \r\n 'fa-angle-down': item.expanded}\"></i>\r\n </div>\r\n\r\n <ng-container *ngIf=\"item.expanded\">\r\n <ng-container *ngTemplateOutlet=\"sidenavItem; context: { items: item.children }\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
encapsulation: ViewEncapsulation.None,
styles: [".np-sidenav-wrapper{display:inline-block;width:100%}.np-sidenav-wrapper .sidenav-item-wrapper{font-size:16px;font-weight:500;padding:8px 0 8px 15px}.np-sidenav-wrapper .sidenav-item-wrapper .sidenav-item{align-items:center;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.np-sidenav-wrapper .sidenav-item-wrapper .sidenav-item>span{margin:0 15px}.np-sidenav-wrapper .sidenav-item-wrapper .sidenav-item .right-arrow{position:absolute;top:50%;right:0;transform:translateY(-50%)}"]
}] }
];
/** @nocollapse */
NpSideNav.ctorParameters = function () { return [
{ type: Renderer2 },
{ type: ElementRef },
{ type: Router }
]; };
NpSideNav.propDecorators = {
items: [{ type: Input }]
};
return NpSideNav;
}());
export { NpSideNav };
if (false) {
/** @type {?} */
NpSideNav.prototype.items;
/**
* @type {?}
* @private
*/
NpSideNav.prototype.renderer2;
/**
* @type {?}
* @private
*/
NpSideNav.prototype.el;
/**
* @type {?}
* @private
*/
NpSideNav.prototype.router;
}
/**
* @record
*/
export function NpSideNavItem() { }
if (false) {
/**
* 唯一id标识
* @type {?}
*/
NpSideNavItem.prototype.id;
/**
* 菜单名称
* @type {?}
*/
NpSideNavItem.prototype.displayName;
/**
* 菜单fa icon,
* @type {?|undefined}
*/
NpSideNavItem.prototype.iconName;
/**
* 菜单跳转路由
* @type {?|undefined}
*/
NpSideNavItem.prototype.route;
/**
* 需要高亮的路由数组,包含在此数组中的路由都会高亮当前route
* @type {?|undefined}
*/
NpSideNavItem.prototype.highlightRoutes;
/**
* 子菜单数组
* @type {?|undefined}
*/
NpSideNavItem.prototype.children;
/**
* 是否展开当前菜单
* @type {?|undefined}
*/
NpSideNavItem.prototype.expanded;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1wbHV0by8iLCJzb3VyY2VzIjpbImxpYi9zaWRlbmF2L3NpZGVuYXYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQTBDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQVF6QztJQVlFLG1CQUFvQixTQUFvQixFQUM5QixFQUFjLEVBQ2QsTUFBYztRQUZKLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFMZixVQUFLLEdBQW9CLEVBQUUsQ0FBQztJQU1yQyxDQUFDOzs7O0lBRUQsNEJBQVE7OztJQUFSO0lBRUEsQ0FBQzs7Ozs7SUFFRCwrQkFBVzs7OztJQUFYLFVBQVksT0FBc0I7SUFFbEMsQ0FBQzs7OztJQUVELG1DQUFlOzs7SUFBZjtJQUNBLENBQUM7Ozs7O0lBRUQsaUNBQWE7Ozs7SUFBYixVQUFjLElBQW1CO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDOztnQkFqQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixrNkJBQTJCO29CQUUzQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7aUJBQ3RDOzs7O2dCQWRrQyxTQUFTO2dCQUFFLFVBQVU7Z0JBQy9DLE1BQU07Ozt3QkFpQlosS0FBSzs7SUF5QlIsZ0JBQUM7Q0FBQSxBQWxDRCxJQWtDQztTQTNCWSxTQUFTOzs7SUFFcEIsMEJBQXFDOzs7OztJQUd6Qiw4QkFBNEI7Ozs7O0lBQ3RDLHVCQUFzQjs7Ozs7SUFDdEIsMkJBQXNCOzs7OztBQXNCMUIsbUNBZUM7Ozs7OztJQWJDLDJCQUFvQjs7Ozs7SUFFcEIsb0NBQW9COzs7OztJQUVwQixpQ0FBa0I7Ozs7O0lBRWxCLDhCQUFlOzs7OztJQUVmLHdDQUEyQjs7Ozs7SUFFM0IsaUNBQTJCOzs7OztJQUUzQixpQ0FBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG4vKipcclxuICog5L6n6L656I+c5Y2VXHJcbiAqIFxyXG4gKiBFeGFtcGxlIG9mIHVzYWdlOlxyXG4gKiA8ZXhhbXBsZS11cmw+aHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9lZGl0L3gtYnV0dG9uP2VtYmVkPTEmZmlsZT1zcmMvYXBwL2FwcC5jb21wb25lbnQudHM8L2V4YW1wbGUtdXJsPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGBucC1zaWRlbmF2YCxcclxuICB0ZW1wbGF0ZVVybDogJ3NpZGVuYXYuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ3NpZGVuYXYuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBOcFNpZGVOYXYgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBpdGVtczogTnBTaWRlTmF2SXRlbVtdID0gW107XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgfVxyXG5cclxuICBvbkl0ZW1DbGlja2VkKGl0ZW06IE5wU2lkZU5hdkl0ZW0pIHtcclxuICAgIGl0ZW0uZXhwYW5kZWQgPSAhaXRlbS5leHBhbmRlZDtcclxuICAgIGlmIChpdGVtLnJvdXRlKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnJvdXRlXSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5wU2lkZU5hdkl0ZW0ge1xyXG4gIC8qKuWUr+S4gGlk5qCH6K+GICovXHJcbiAgaWQ6IHN0cmluZyB8IG51bWJlcjtcclxuICAvKiroj5zljZXlkI3np7AgKi9cclxuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gIC8qKuiPnOWNlWZhIGljb27vvIwgKi9cclxuICBpY29uTmFtZT86IHN0cmluZztcclxuICAvKiroj5zljZXot7Povazot6/nlLEgKi9cclxuICByb3V0ZT86IHN0cmluZztcclxuICAvKirpnIDopoHpq5jkuq7nmoTot6/nlLHmlbDnu4TvvIzljIXlkKvlnKjmraTmlbDnu4TkuK3nmoTot6/nlLHpg73kvJrpq5jkuq7lvZPliY1yb3V0ZSAqL1xyXG4gIGhpZ2hsaWdodFJvdXRlcz86IHN0cmluZ1tdO1xyXG4gIC8qKuWtkOiPnOWNleaVsOe7hCAqL1xyXG4gIGNoaWxkcmVuPzogTnBTaWRlTmF2SXRlbVtdO1xyXG4gIC8qKuaYr+WQpuWxleW8gOW9k+WJjeiPnOWNlSAqL1xyXG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuIl19