ngx-bit
Version:
A flexible NG-ZORRO helper library
38 lines • 4.86 kB
JavaScript
import { Component, Input } from '@angular/core';
import { BitRouterService } from '../bit-router.service';
import { BitService } from 'ngx-bit';
export class BitSiderComponent {
constructor(bit, router) {
this.bit = bit;
this.router = router;
this.collapsed = false;
this.data = [];
}
/**
* 返回层级
*/
level(data) {
let deep = 0;
while (data.hasOwnProperty('parentNode')) {
deep++;
data = data.parentNode;
}
return deep * 24;
}
}
BitSiderComponent.decorators = [
{ type: Component, args: [{
selector: 'bit-sider',
template: "<nz-sider nzCollapsible [(nzCollapsed)]=\"collapsed\" [nzBreakpoint]=\"'lg'\">\n <div class=\"scroll-bar\">\n <ul\n nz-menu\n [nzTheme]=\"'dark'\"\n [nzInlineCollapsed]=\"collapsed\"\n [nzMode]=\"collapsed ? 'vertical' : 'inline'\"\n >\n <ng-container *ngTemplateOutlet=\"navTemplate; context: { $implicit: data }\"></ng-container>\n <ng-template #navTemplate let-navs>\n <ng-container *ngFor=\"let nav of navs\">\n <ng-container *ngIf=\"nav.router; else notRouter\">\n <li\n nz-menu-item\n [nzPaddingLeft]=\"level(nav)\"\n [bitOpen]=\"[nav.key]\"\n [nzSelected]=\"router.navActive.includes(nav.key)\"\n >\n <i nz-icon [nzType]=\"nav.icon\"></i>\n <span class=\"nav-text\">{{ nav.name | object: bit.locale }}</span>\n </li>\n </ng-container>\n <ng-template #notRouter>\n <li\n nz-submenu\n [nzOpen]=\"router.navActive.includes(nav.key)\"\n [nzPaddingLeft]=\"level(nav)\"\n >\n <span title>\n <i nz-icon [nzType]=\"nav.icon\"></i>\n <span>{{ nav.name | object: bit.locale }}</span>\n </span>\n <ul>\n <ng-container\n *ngTemplateOutlet=\"navTemplate; context: { $implicit: nav.children }\"\n ></ng-container>\n </ul>\n </li>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </div>\n</nz-sider>\n",
styles: ["nz-sider{overflow:hidden;height:100%;position:fixed;left:0}nz-sider .scroll-bar{height:calc(100% - 48px);overflow:auto}"]
},] }
];
BitSiderComponent.ctorParameters = () => [
{ type: BitService },
{ type: BitRouterService }
];
BitSiderComponent.propDecorators = {
collapsed: [{ type: Input }],
data: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LXNpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaXQvcm91dGVyL2JpdC1zaWRlci9iaXQtc2lkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFPckMsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUNTLEdBQWUsRUFDZixNQUF3QjtRQUR4QixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFMeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixTQUFJLEdBQVUsRUFBRSxDQUFDO0lBTTFCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFTO1FBQ2IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hDLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDeEI7UUFDRCxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7O1lBekJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsMGxEQUF5Qzs7YUFFMUM7OztZQU5RLFVBQVU7WUFEVixnQkFBZ0I7Ozt3QkFTdEIsS0FBSzttQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCaXRSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYml0LXJvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml0U2VydmljZSB9IGZyb20gJ25neC1iaXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXQtc2lkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaXQtc2lkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JpdC1zaWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaXRTaWRlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgYml0OiBCaXRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJvdXRlcjogQml0Um91dGVyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6L+U5Zue5bGC57qnXHJcbiAgICovXHJcbiAgbGV2ZWwoZGF0YTogYW55KTogbnVtYmVyIHtcclxuICAgIGxldCBkZWVwID0gMDtcclxuICAgIHdoaWxlIChkYXRhLmhhc093blByb3BlcnR5KCdwYXJlbnROb2RlJykpIHtcclxuICAgICAgZGVlcCsrO1xyXG4gICAgICBkYXRhID0gZGF0YS5wYXJlbnROb2RlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlZXAgKiAyNDtcclxuICB9XHJcbn1cclxuIl19