UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

115 lines 11.6 kB
/** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; export class NzTabNavOperationComponent { constructor(cdr, elementRef) { this.cdr = cdr; this.elementRef = elementRef; this.items = []; this.addable = false; this.addIcon = 'plus'; this.addClicked = new EventEmitter(); this.selected = new EventEmitter(); this.closeAnimationWaitTimeoutId = -1; this.menuOpened = false; this.element = this.elementRef.nativeElement; } onSelect(item) { if (!item.disabled) { // ignore nzCanDeactivate item.tab.nzClick.emit(); this.selected.emit(item); } } onContextmenu(item, e) { if (!item.disabled) { item.tab.nzContextmenu.emit(e); } } showItems() { clearTimeout(this.closeAnimationWaitTimeoutId); this.menuOpened = true; this.cdr.markForCheck(); } menuVisChange(visible) { if (!visible) { this.closeAnimationWaitTimeoutId = setTimeout(() => { this.menuOpened = false; this.cdr.markForCheck(); }, 150); } } getElementWidth() { var _a; return ((_a = this.element) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0; } getElementHeight() { var _a; return ((_a = this.element) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0; } ngOnDestroy() { clearTimeout(this.closeAnimationWaitTimeoutId); } } NzTabNavOperationComponent.decorators = [ { type: Component, args: [{ selector: 'nz-tab-nav-operation', exportAs: 'nzTabNavOperation', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: ` <button nz-dropdown class="ant-tabs-nav-more" type="button" tabindex="-1" aria-hidden="true" nzOverlayClassName="nz-tabs-dropdown" #dropdownTrigger="nzDropdown" [nzDropdownMenu]="menu" [nzOverlayStyle]="{ minWidth: '46px' }" [nzMatchWidthElement]="null" (nzVisibleChange)="menuVisChange($event)" (mouseenter)="showItems()" > <i nz-icon nzType="ellipsis"></i> </button> <nz-dropdown-menu #menu="nzDropdownMenu"> <ul nz-menu *ngIf="menuOpened"> <li nz-menu-item *ngFor="let item of items" class="ant-tabs-dropdown-menu-item" [class.ant-tabs-dropdown-menu-item-disabled]="item.disabled" [nzSelected]="item.active" [nzDisabled]="item.disabled" (click)="onSelect(item)" (contextmenu)="onContextmenu(item, $event)" > <ng-container *nzStringTemplateOutlet="item.tab.label; context: { visible: false }">{{ item.tab.label }}</ng-container> </li> </ul> </nz-dropdown-menu> <button *ngIf="addable" nz-tab-add-button [addIcon]="addIcon" (click)="addClicked.emit()"></button> `, host: { class: 'ant-tabs-nav-operations', '[class.ant-tabs-nav-operations-hidden]': 'items.length === 0' } },] } ]; NzTabNavOperationComponent.ctorParameters = () => [ { type: ChangeDetectorRef }, { type: ElementRef } ]; NzTabNavOperationComponent.propDecorators = { items: [{ type: Input }], addable: [{ type: Input }], addIcon: [{ type: Input }], addClicked: [{ type: Output }], selected: [{ type: Output }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLW5hdi1vcGVyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50cy90YWJzL3RhYi1uYXYtb3BlcmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQW9EdkIsTUFBTSxPQUFPLDBCQUEwQjtJQVdyQyxZQUFtQixHQUFzQixFQUFVLFVBQW1DO1FBQW5FLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFWN0UsVUFBSyxHQUE0QixFQUFFLENBQUM7UUFDcEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixZQUFPLEdBQW9DLE1BQU0sQ0FBQztRQUV4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDeEUsZ0NBQTJCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUlqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBMkI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUEyQixFQUFFLENBQWE7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUNELFNBQVM7UUFDUCxZQUFZLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCO1FBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFJLENBQUMsMkJBQTJCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsZUFBZTs7UUFDYixPQUFPLE9BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsV0FBVyxLQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCOztRQUNkLE9BQU8sT0FBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsWUFBWSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OztZQW5HRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ1Q7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSx5QkFBeUI7b0JBQ2hDLHdDQUF3QyxFQUFFLG9CQUFvQjtpQkFDL0Q7YUFDRjs7O1lBNURDLGlCQUFpQjtZQUVqQixVQUFVOzs7b0JBNERULEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLO3lCQUVMLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBOelRhYk5hdkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL3RhYi1uYXYtaXRlbS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduei10YWItbmF2LW9wZXJhdGlvbicsXG4gIGV4cG9ydEFzOiAnbnpUYWJOYXZPcGVyYXRpb24nLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgbnotZHJvcGRvd25cbiAgICAgIGNsYXNzPVwiYW50LXRhYnMtbmF2LW1vcmVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBuek92ZXJsYXlDbGFzc05hbWU9XCJuei10YWJzLWRyb3Bkb3duXCJcbiAgICAgICNkcm9wZG93blRyaWdnZXI9XCJuekRyb3Bkb3duXCJcbiAgICAgIFtuekRyb3Bkb3duTWVudV09XCJtZW51XCJcbiAgICAgIFtuek92ZXJsYXlTdHlsZV09XCJ7IG1pbldpZHRoOiAnNDZweCcgfVwiXG4gICAgICBbbnpNYXRjaFdpZHRoRWxlbWVudF09XCJudWxsXCJcbiAgICAgIChuelZpc2libGVDaGFuZ2UpPVwibWVudVZpc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChtb3VzZWVudGVyKT1cInNob3dJdGVtcygpXCJcbiAgICA+XG4gICAgICA8aSBuei1pY29uIG56VHlwZT1cImVsbGlwc2lzXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuei1kcm9wZG93bi1tZW51ICNtZW51PVwibnpEcm9wZG93bk1lbnVcIj5cbiAgICAgIDx1bCBuei1tZW51ICpuZ0lmPVwibWVudU9wZW5lZFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICBuei1tZW51LWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgICAgICAgY2xhc3M9XCJhbnQtdGFicy1kcm9wZG93bi1tZW51LWl0ZW1cIlxuICAgICAgICAgIFtjbGFzcy5hbnQtdGFicy1kcm9wZG93bi1tZW51LWl0ZW0tZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW256U2VsZWN0ZWRdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgICAgIFtuekRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiXG4gICAgICAgICAgKGNvbnRleHRtZW51KT1cIm9uQ29udGV4dG1lbnUoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuelN0cmluZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS50YWIubGFiZWw7IGNvbnRleHQ6IHsgdmlzaWJsZTogZmFsc2UgfVwiPnt7IGl0ZW0udGFiLmxhYmVsIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvbnotZHJvcGRvd24tbWVudT5cbiAgICA8YnV0dG9uICpuZ0lmPVwiYWRkYWJsZVwiIG56LXRhYi1hZGQtYnV0dG9uIFthZGRJY29uXT1cImFkZEljb25cIiAoY2xpY2spPVwiYWRkQ2xpY2tlZC5lbWl0KClcIj48L2J1dHRvbj5cbiAgYCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYW50LXRhYnMtbmF2LW9wZXJhdGlvbnMnLFxuICAgICdbY2xhc3MuYW50LXRhYnMtbmF2LW9wZXJhdGlvbnMtaGlkZGVuXSc6ICdpdGVtcy5sZW5ndGggPT09IDAnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTnpUYWJOYXZPcGVyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpdGVtczogTnpUYWJOYXZJdGVtRGlyZWN0aXZlW10gPSBbXTtcbiAgQElucHV0KCkgYWRkYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhZGRJY29uOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxOelNhZmVBbnk+ID0gJ3BsdXMnO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBhZGRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE56VGFiTmF2SXRlbURpcmVjdGl2ZT4oKTtcbiAgY2xvc2VBbmltYXRpb25XYWl0VGltZW91dElkID0gLTE7XG4gIG1lbnVPcGVuZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMuZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgb25TZWxlY3QoaXRlbTogTnpUYWJOYXZJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLmRpc2FibGVkKSB7XG4gICAgICAvLyBpZ25vcmUgbnpDYW5EZWFjdGl2YXRlXG4gICAgICBpdGVtLnRhYi5uekNsaWNrLmVtaXQoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbnRleHRtZW51KGl0ZW06IE56VGFiTmF2SXRlbURpcmVjdGl2ZSwgZTogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xuICAgICAgaXRlbS50YWIubnpDb250ZXh0bWVudS5lbWl0KGUpO1xuICAgIH1cbiAgfVxuICBzaG93SXRlbXMoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VBbmltYXRpb25XYWl0VGltZW91dElkKTtcbiAgICB0aGlzLm1lbnVPcGVuZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWVudVZpc0NoYW5nZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLmNsb3NlQW5pbWF0aW9uV2FpdFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm1lbnVPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9LCAxNTApO1xuICAgIH1cbiAgfVxuXG4gIGdldEVsZW1lbnRXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQ/Lm9mZnNldFdpZHRoIHx8IDA7XG4gIH1cblxuICBnZXRFbGVtZW50SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudD8ub2Zmc2V0SGVpZ2h0IHx8IDA7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5jbG9zZUFuaW1hdGlvbldhaXRUaW1lb3V0SWQpO1xuICB9XG59XG4iXX0=