UNPKG

ngx-pluto

Version:
129 lines 7.91 kB
/** * @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> */ export class NpSideNav { /** * @param {?} renderer2 * @param {?} el * @param {?} router */ constructor(renderer2, el, router) { this.renderer2 = renderer2; this.el = el; this.router = router; this.items = []; } /** * @return {?} */ ngOnInit() { } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { } /** * @return {?} */ ngAfterViewInit() { } /** * @param {?} item * @return {?} */ onItemClicked(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 = () => [ { type: Renderer2 }, { type: ElementRef }, { type: Router } ]; NpSideNav.propDecorators = { items: [{ type: Input }] }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1wbHV0by8iLCJzb3VyY2VzIjpbImxpYi9zaWRlbmF2L3NpZGVuYXYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQTBDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQWV6QyxNQUFNLE9BQU8sU0FBUzs7Ozs7O0lBS3BCLFlBQW9CLFNBQW9CLEVBQzlCLEVBQWMsRUFDZCxNQUFjO1FBRkosY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM5QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUxmLFVBQUssR0FBb0IsRUFBRSxDQUFDO0lBTXJDLENBQUM7Ozs7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7SUFFbEMsQ0FBQzs7OztJQUVELGVBQWU7SUFDZixDQUFDOzs7OztJQUVELGFBQWEsQ0FBQyxJQUFtQjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsazZCQUEyQjtnQkFFM0IsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7O1lBZGtDLFNBQVM7WUFBRSxVQUFVO1lBQy9DLE1BQU07OztvQkFpQlosS0FBSzs7OztJQUFOLDBCQUFxQzs7Ozs7SUFHekIsOEJBQTRCOzs7OztJQUN0Qyx1QkFBc0I7Ozs7O0lBQ3RCLDJCQUFzQjs7Ozs7QUFzQjFCLG1DQWVDOzs7Ozs7SUFiQywyQkFBb0I7Ozs7O0lBRXBCLG9DQUFvQjs7Ozs7SUFFcEIsaUNBQWtCOzs7OztJQUVsQiw4QkFBZTs7Ozs7SUFFZix3Q0FBMkI7Ozs7O0lBRTNCLGlDQUEyQjs7Ozs7SUFFM0IsaUNBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuLyoqXHJcbiAqIOS+p+i+ueiPnOWNlVxyXG4gKiBcclxuICogRXhhbXBsZSBvZiB1c2FnZTpcclxuICogPGV4YW1wbGUtdXJsPmh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC94LWJ1dHRvbj9lbWJlZD0xJmZpbGU9c3JjL2FwcC9hcHAuY29tcG9uZW50LnRzPC9leGFtcGxlLXVybD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgbnAtc2lkZW5hdmAsXHJcbiAgdGVtcGxhdGVVcmw6ICdzaWRlbmF2Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydzaWRlbmF2LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTnBTaWRlTmF2IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgaXRlbXM6IE5wU2lkZU5hdkl0ZW1bXSA9IFtdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gIH1cclxuXHJcbiAgb25JdGVtQ2xpY2tlZChpdGVtOiBOcFNpZGVOYXZJdGVtKSB7XHJcbiAgICBpdGVtLmV4cGFuZGVkID0gIWl0ZW0uZXhwYW5kZWQ7XHJcbiAgICBpZiAoaXRlbS5yb3V0ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbS5yb3V0ZV0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOcFNpZGVOYXZJdGVtIHtcclxuICAvKirllK/kuIBpZOagh+ivhiAqL1xyXG4gIGlkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgLyoq6I+c5Y2V5ZCN56ewICovXHJcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICAvKiroj5zljZVmYSBpY29u77yMICovXHJcbiAgaWNvbk5hbWU/OiBzdHJpbmc7XHJcbiAgLyoq6I+c5Y2V6Lez6L2s6Lev55SxICovXHJcbiAgcm91dGU/OiBzdHJpbmc7XHJcbiAgLyoq6ZyA6KaB6auY5Lqu55qE6Lev55Sx5pWw57uE77yM5YyF5ZCr5Zyo5q2k5pWw57uE5Lit55qE6Lev55Sx6YO95Lya6auY5Lqu5b2T5YmNcm91dGUgKi9cclxuICBoaWdobGlnaHRSb3V0ZXM/OiBzdHJpbmdbXTtcclxuICAvKirlrZDoj5zljZXmlbDnu4QgKi9cclxuICBjaGlsZHJlbj86IE5wU2lkZU5hdkl0ZW1bXTtcclxuICAvKirmmK/lkKblsZXlvIDlvZPliY3oj5zljZUgKi9cclxuICBleHBhbmRlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbiJdfQ==