import { OnInit, ElementRef, Renderer2, ChangeDetectorRef, AfterViewInit, OnDestroy, AfterContentChecked, EventEmitter, AfterContentInit, TemplateRef, AfterViewChecked } from '@angular/core'; import { Subscription } from 'rxjs/Subscription'; import { ScrollTabService } from '../scroll-tabs.config'; import { ScrollTabsTabChangeEvent, ScrollTabsRemoveTabEvent } from '../scroll-tabs.events'; export interface ToolbarConf { pos: string; contents: any[]; } export declare class FarrisScrollTabsComponent implements OnInit, AfterViewInit, OnDestroy, AfterContentInit, AfterContentChecked, AfterViewChecked { private stService; private elementRef; private renderer; private cdRef; maxDropdownH: number; maxDropdownW: number; private _customClass; private _tabs; private _toolbarConf; tabFill: boolean; tabPosition: string; showDropDown: any; showTooltips: any; scrollStep: any; autoResize: any; closeable: boolean; selectId: string; width: string | number; height: string | number; _headerHeight: string | number; headerHeight: string | number; readonly direction: string; readonly tabDirection: string; tabsFill: boolean; contentDirection: string; contentFill: boolean; tabs: any[]; tabWidth: number; customClass: string; leftNav: any; rightNav: any; tabContainer: any; toolbarContainer: any; dropDownButton: any; tabHeader: any; tabParent: any; tabOuterMost: any; toolbar: TemplateRef; toolbarConf: ToolbarConf; toolbarDpHidden: boolean; inMoreButtonContents: any[]; dropdownTabs: any[]; hideButtons: boolean; hideDropDown: boolean; disableLeft: boolean; disableRight: boolean; private el; subscription: Subscription[]; disableRTooltip: boolean; disableLTooltip: boolean; leftTooltipTabs: any[]; rightTooltipTabs: any[]; private _tabContainerEl; private maxTooltipLen; activeId: string; tabChange: EventEmitter; tabRemove: EventEmitter; constructor(stService: ScrollTabService, elementRef: ElementRef, renderer: Renderer2, cdRef: ChangeDetectorRef); /**验证传递参数 */ private verifyConfig(); ngOnInit(): void; /** * 选中Tab * @param {string} tabId tab标识 */ selectTab(tabId: string): void; protected _cpSelectTabByIndex(ev: Event, index: number): void; /** * 通过tabs的索引选择 tab * @param {number} index tabs索引 */ selectTabByIndex(index: number): void; private _selectTab(tab, index); private _setActive(); /** * 添加标签 * @param curTabs 数组或者对象 * @param activeId 设置 */ addTabs(curTabs: any[], index: any, setActiveId: any): void; /** * 添加标签时 去重 * */ private _unique(objArray); removeTabByIndex(index: number): void; /** * 关闭标签 跟删除标签不同 * @param string */ closeTab(activeId: any): void; /** * 初始化 */ load(): void; ngAfterContentInit(): void; ngAfterContentChecked(): void; ngAfterViewInit(): void; ngAfterViewChecked(): void; ngOnDestroy(): void; /** * 鼠标移动上去 鼠标离去 显示或者隐藏标签完整名称 * @param ScrollTabComponent类型 一个Tab */ mouseOverTab(tab: any): void; mouseLeaveTab(tab: any): void; /** * 创建流 */ private _createStream(); /** * 按照方向,滚动到指定位置 * @param dist_scroll 目标滚动 * @param direction 方向 */ private _scrollTab(move, direction); /** * 指定当前滑动到可视区域——————————————未测试 * @param index */ scrollTabIntoView(index: any): void; justTest(str: any): void; changeRow(): void; /** * 计算某些元素宽度的和 */ private _calculateElementWidthSum(el); /** * 计算tab标签的tabHeader宽度和工具条toolbarContainer的宽度 */ private _calculateWidth(); /** * 计算tab标签ul的宽度 */ private _calculateTabUlWidth(); /** * 切换tab后,重新获取需要该tab下工具条按钮的配置信息以及隐藏更多按钮 */ private getToolbarConf(); /** * 计算工具栏是否显示下拉按钮 */ private _calculateToolbarDropdownIsShow(); /** * 计算显示的按钮个数及更多中显示的按钮个数 */ private _calculateButtonsShow(); /** * 重新计算是否显示按钮和下拉 */ private _reCalculateAll(); /** * 重新计算左右的提示文字 */ private _reCalulateTooltips(); /** * 重新计算左右箭头状态 */ private _reCalculateSides(); /** * 通过id寻找Tab * @param id */ private _getTabById(id); resolveSize(size: any): string; }