import { FocusableOption } from '@angular/cdk/a11y'; import { ViewportRuler } from '@angular/cdk/overlay'; import { Platform } from '@angular/cdk/platform'; import { AfterContentChecked, AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, QueryList, Renderer2 } from '@angular/core'; import { MixinElementRefBase } from '@ngx-simple/core/common-behaviors'; import { TabInkBarComponent } from './tab-ink-bar.component'; export declare type TabHeaderItem = FocusableOption & { elementRef: ElementRef; }; export declare type ScrollDirection = 'after' | 'before'; declare const _TabHeaderMixinBase: import("../../../dist/libs/core/common-behaviors/constructor").Constructor & typeof MixinElementRefBase; export declare class SimTabHeaderComponent extends _TabHeaderMixinBase implements AfterContentInit, AfterContentChecked, OnDestroy { private _viewportRuler; private _changeDetectorRef; private _ngZone; private _platform; get selectedIndex(): number; set selectedIndex(value: number); /** 选择该选项时发出的事件 */ readonly selectFocusedIndex: EventEmitter; /** 标签聚焦时发出的事件. */ readonly indexFocused: EventEmitter; _items: QueryList; _inkBar: TabInkBarComponent; _tabListContainer: ElementRef; _tabList: ElementRef; _nextPaginator: ElementRef; _previousPaginator: ElementRef; /** 是否可以将选项卡列表更多地滚动到选项卡标签列表的末尾 */ _disableScrollAfter: boolean; /** 是否可以将选项卡列表更多地滚动到选项卡标签列表的开头 */ _disableScrollBefore: boolean; /** 是否应该显示分页控件 */ _showPaginationControls: boolean; private _selectedIndex; /** 用于管理标签之间的焦点 */ private _keyManager; /** 将停止自动滚动的流 */ private _stopScrolling; /** 标签向左平移的距离(以像素为单位) */ private _scrollDistance; /** 滚动距离是否已更改,并且应在检查视图后应用 */ private _scrollDistanceChanged; /** 检查视图后,标题是否应滚动到所选索引 */ private _selectedIndexChanged; /** 缓存标题的文本内容 */ private _currentTextContent; /** 标题上显示的标签页标签的数目。当这个改变时,标题应该重新计算滚动位置 */ private _tabLabelCount; /** 跟踪哪个元素具有焦点; 用于键盘导航 */ get focusIndex(): number; /** 设置焦点索引后,我们必须手动将焦点发送到正确的标签 */ set focusIndex(value: number); get scrollDistance(): number; set scrollDistance(value: number); constructor(_elementRef: ElementRef, _viewportRuler: ViewportRuler, _changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone, _platform: Platform, renderer: Renderer2); ngAfterContentInit(): void; ngAfterContentChecked(): void; ngOnDestroy(): void; /** 将焦点放在标签容器的HTML元素上,并在启用滚动时将其滚动到视图中 */ _setTabFocus(tabIndex: number): void; _alignInkBarToSelectedTab(): void; _scrollToLabel(labelIndex: number): void; _isValidIndex(index: number): boolean; _itemSelected(event: KeyboardEvent): void; /** 更新视图是否应启用分页 */ updatePagination(): void; _checkPaginationEnabled(): void; /** 在选项卡列表上执行CSS transformation,这将导致列表滚动。 */ _updateTabScrollPosition(): void; /** * MutationObserver检测到内容已更改时的回调 */ _onContentChanges(): void; /** 停止当前正在运行的分页器间隔 */ _stopInterval(): void; _handlePaginatorClick(direction: ScrollDirection): void; _handlePaginatorPress(direction: ScrollDirection, mouseEvent?: MouseEvent): void; _scrollHeader(direction: ScrollDirection): { maxScrollDistance: number; distance: number; }; /** 处理标签页标题上的键盘事件 */ _handleKeydown(event: KeyboardEvent): void; private _checkScrollingControls; private _getMaxScrollDistance; /** 将标题滚动到指定位置 */ private _scrollTo; } export {};