UNPKG

ng-zorro-antd

Version:

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

117 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLW5hdi1vcGVyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50cy90YWJzL3RhYi1uYXYtb3BlcmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQXNEdkIsTUFBTSxPQUFPLDBCQUEwQjtJQVdyQyxZQUFtQixHQUFzQixFQUFVLFVBQW1DO1FBQW5FLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFWN0UsVUFBSyxHQUE0QixFQUFFLENBQUM7UUFDcEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixZQUFPLEdBQW9DLE1BQU0sQ0FBQztRQUV4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDeEUsZ0NBQTJCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUlqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBMkI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUEyQixFQUFFLENBQWE7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUNELFNBQVM7UUFDUCxZQUFZLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCO1FBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFJLENBQUMsMkJBQTJCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsZUFBZTs7UUFDYixPQUFPLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxXQUFXLEtBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxnQkFBZ0I7O1FBQ2QsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsWUFBWSxLQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7WUFyR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ1Q7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSx5QkFBeUI7b0JBQ2hDLHdDQUF3QyxFQUFFLG9CQUFvQjtpQkFDL0Q7YUFDRjs7O1lBOURDLGlCQUFpQjtZQUVqQixVQUFVOzs7b0JBOERULEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLO3lCQUVMLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBOelRhYk5hdkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL3RhYi1uYXYtaXRlbS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduei10YWItbmF2LW9wZXJhdGlvbicsXG4gIGV4cG9ydEFzOiAnbnpUYWJOYXZPcGVyYXRpb24nLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgbnotZHJvcGRvd25cbiAgICAgIGNsYXNzPVwiYW50LXRhYnMtbmF2LW1vcmVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBuek92ZXJsYXlDbGFzc05hbWU9XCJuei10YWJzLWRyb3Bkb3duXCJcbiAgICAgICNkcm9wZG93blRyaWdnZXI9XCJuekRyb3Bkb3duXCJcbiAgICAgIFtuekRyb3Bkb3duTWVudV09XCJtZW51XCJcbiAgICAgIFtuek92ZXJsYXlTdHlsZV09XCJ7IG1pbldpZHRoOiAnNDZweCcgfVwiXG4gICAgICBbbnpNYXRjaFdpZHRoRWxlbWVudF09XCJudWxsXCJcbiAgICAgIChuelZpc2libGVDaGFuZ2UpPVwibWVudVZpc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChtb3VzZWVudGVyKT1cInNob3dJdGVtcygpXCJcbiAgICA+XG4gICAgICA8aSBuei1pY29uIG56VHlwZT1cImVsbGlwc2lzXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuei1kcm9wZG93bi1tZW51ICNtZW51PVwibnpEcm9wZG93bk1lbnVcIj5cbiAgICAgIDx1bCBuei1tZW51ICpuZ0lmPVwibWVudU9wZW5lZFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICBuei1tZW51LWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgICAgICAgY2xhc3M9XCJhbnQtdGFicy1kcm9wZG93bi1tZW51LWl0ZW1cIlxuICAgICAgICAgIFtjbGFzcy5hbnQtdGFicy1kcm9wZG93bi1tZW51LWl0ZW0tZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgW256U2VsZWN0ZWRdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgICAgIFtuekRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiXG4gICAgICAgICAgKGNvbnRleHRtZW51KT1cIm9uQ29udGV4dG1lbnUoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuelN0cmluZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS50YWIubGFiZWw7IGNvbnRleHQ6IHsgdmlzaWJsZTogZmFsc2UgfVwiPlxuICAgICAgICAgICAge3sgaXRlbS50YWIubGFiZWwgfX1cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uei1kcm9wZG93bi1tZW51PlxuICAgIDxidXR0b24gKm5nSWY9XCJhZGRhYmxlXCIgbnotdGFiLWFkZC1idXR0b24gW2FkZEljb25dPVwiYWRkSWNvblwiIChjbGljayk9XCJhZGRDbGlja2VkLmVtaXQoKVwiPjwvYnV0dG9uPlxuICBgLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdhbnQtdGFicy1uYXYtb3BlcmF0aW9ucycsXG4gICAgJ1tjbGFzcy5hbnQtdGFicy1uYXYtb3BlcmF0aW9ucy1oaWRkZW5dJzogJ2l0ZW1zLmxlbmd0aCA9PT0gMCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBOelRhYk5hdk9wZXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGl0ZW1zOiBOelRhYk5hdkl0ZW1EaXJlY3RpdmVbXSA9IFtdO1xuICBASW5wdXQoKSBhZGRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFkZEljb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPE56U2FmZUFueT4gPSAncGx1cyc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGFkZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TnpUYWJOYXZJdGVtRGlyZWN0aXZlPigpO1xuICBjbG9zZUFuaW1hdGlvbldhaXRUaW1lb3V0SWQgPSAtMTtcbiAgbWVudU9wZW5lZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgdGhpcy5lbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBvblNlbGVjdChpdGVtOiBOelRhYk5hdkl0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICBpZiAoIWl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgIC8vIGlnbm9yZSBuekNhbkRlYWN0aXZhdGVcbiAgICAgIGl0ZW0udGFiLm56Q2xpY2suZW1pdCgpO1xuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29udGV4dG1lbnUoaXRlbTogTnpUYWJOYXZJdGVtRGlyZWN0aXZlLCBlOiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLmRpc2FibGVkKSB7XG4gICAgICBpdGVtLnRhYi5uekNvbnRleHRtZW51LmVtaXQoZSk7XG4gICAgfVxuICB9XG4gIHNob3dJdGVtcygpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5jbG9zZUFuaW1hdGlvbldhaXRUaW1lb3V0SWQpO1xuICAgIHRoaXMubWVudU9wZW5lZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBtZW51VmlzQ2hhbmdlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgIHRoaXMuY2xvc2VBbmltYXRpb25XYWl0VGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWVudU9wZW5lZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sIDE1MCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RWxlbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudD8ub2Zmc2V0V2lkdGggfHwgMDtcbiAgfVxuXG4gIGdldEVsZW1lbnRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Py5vZmZzZXRIZWlnaHQgfHwgMDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlQW5pbWF0aW9uV2FpdFRpbWVvdXRJZCk7XG4gIH1cbn1cbiJdfQ==