import { EventEmitter, ChangeDetectorRef, ElementRef, AfterViewInit, OnDestroy } from '@angular/core'; import { Tab } from '../../interface/tab'; import { ContextMenuItem } from '@farris/ui-context-menu'; import { TabsHandler } from '../../interface/handler/tabs-handler'; import PerfectScrollbar from 'perfect-scrollbar'; /** * 标签页组件 */ export declare class IdeTabsComponent implements TabsHandler, AfterViewInit, OnDestroy { private el; private cd; /** 上下文菜单 */ contextMenuItems: ContextMenuItem[]; /** 页签的最大宽度,单位:px */ maxTabWidth: number; /** 标签页数据源 */ tabs: Tab[]; /** 选中事件,在完成当前标签切换之后触发 */ selected: EventEmitter; /** 取消选中事件 */ unselected: EventEmitter; /** 关闭前事件 */ beforeClose: EventEmitter; /** 选中前事件,在进行当前标签切换之前触发 */ selecting: EventEmitter; /** 光标是否在标签的关闭按钮上 */ mouseInCloseIcon: boolean; _maxTabWidth: number; /** 页签样式 */ tabStyle: any; protected scrollBar: PerfectScrollbar; protected scrollOptions: PerfectScrollbar.Options; /** 标签页外层元素,用于附加滚动条组件 */ containerEl: ElementRef; /** 标签页列表元素,用于监听大小变化 */ tabListEl: ElementRef; private initContainerScrollbar; private handleResize; /** 当前处于被选中状态的标签实例 */ readonly currentTab: Tab; constructor(el: ElementRef, cd: ChangeDetectorRef); handleMouseEnter(): void; handleMouseLeave(): void; ngAfterViewInit(): void; ngOnDestroy(): void; /** 处理标签点击事件 */ onTabClick(tab: Tab, $event: Event): void; /** 通过id选中标签 */ selectById(tabId: string): void; /** 通过标签实例选中标签 */ select(tab: Tab, $event?: Event): void; /** 将标签滚动到可视区域内 */ intoView(tab: Tab): void; /** 按照被拖拽后的实际顺序返回标签实例数组 */ private getOrderedTabs; /** * 添加一个新的标签 * @param tab 标签实例 * @param active 是否设置为被选中状态 */ addTab(tab: Tab, active?: boolean): void; private clearTabId; getTab(id: string): Tab; getTabIndex(id: string): number; removeTab(tabId: string): void; /** 关闭全部标签 */ closeAll(): void; /** 触发标签关闭事件 */ onCloseTab(tab: Tab, event: Event): void; onTabItemDrop($event: any): void; /** 上下文菜单展示前处理 */ onBeforeShowContextMenu: (e: any) => import("rxjs").Observable<{ show: boolean; }>; /** * 关闭其它所有标签 * @param ignoreTab 标签实例 */ closeOtherTabs(ignoreTab: Tab): void; /** 触发变更检测 */ detectChanges(): void; globalInit(): void; }