import { FocusMonitor } from '@angular/cdk/a11y'; import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit } from '@angular/core'; import { CanDisable, HasInitialized } from '@ngx-simple/core/common-behaviors'; import { Subject } from 'rxjs'; /** */ export declare type SortDirection = 'asc' | 'desc' | ''; export interface SimSortable { /** 正在排序的列的id */ id: string; /** 开始排序方向 */ start: SortDirection; /** 是否禁用清除排序状态 */ disableClear: boolean; } /** 当前排序状态 */ export interface SimSortChange { /** 正在排序的列的id */ active: string; /** 正在排序的方向 */ direction: SortDirection; /** * 正在排序的方向值 * - asc => 1 * - desc => -1 * - '' => 0 */ sort: number; } declare const _SimSortMixinBase: import("../../../dist/libs/core/common-behaviors/constructor").Constructor & import("../../../dist/libs/core/common-behaviors/constructor").Constructor & { new (): {}; }; export declare class SimSortDirective extends _SimSortMixinBase implements CanDisable, HasInitialized, OnChanges, OnInit, OnDestroy { disabled: boolean; /** 最近排序的id是SimSortable */ simSortActive: string; /** 当 SimSortable 初始排序时要设置的方向。可能会被 SimSortable 的排序开始所覆盖。 */ simSortStart: 'asc' | 'desc'; /** 当前活跃的 SimSortable 的排序方向。 */ get simSortDirection(): SortDirection; set simSortDirection(direction: SortDirection); private _simSortDirection; /** * 是否禁用用户通过完成排序方向循环清除排序。可能被 SimSortable 的禁用清除输入覆盖。 */ simSortDisableClear: boolean; /** 用户更改活跃排序或排序方向时发出的事件。 */ readonly sortChange: EventEmitter; /** 此指令管理的所有注册排序表的集合。 */ sortableMap: Map; /** 用于通知侦听状态更改的任何子组件 */ readonly _stateChanges: Subject; ngOnInit(): void; ngOnChanges(): void; ngOnDestroy(): void; /** * 所包含的 SimSortable 使用的寄存器函数。将 SimSortable 添加到 SimSortableMap 中。 */ register(sortable: SimSortable): void; /** * 取消被包含的 SimSortable 使用的注册函数。从包含的 SimSortableMap 中删除 SimSortable 。 */ deregister(sortable: SimSortable): void; /** 设置活跃排序id并确定新的排序方向 */ sort(sortable: SimSortable): void; /** 返回活跃可排序表的下一个排序方向,检查是否可能覆盖。 */ getNextSortDirection(sortable: SimSortable): SortDirection | ''; } declare const _SimSortHeaderMixinBase: import("../../../dist/libs/core/common-behaviors/constructor").Constructor & { new (): {}; }; interface SimSortHeaderColumnDef { name: string; } export declare class SimSortComponent extends _SimSortHeaderMixinBase implements OnInit, AfterViewInit, OnDestroy, SimSortable, CanDisable { _sort: SimSortDirective; _columnDef: SimSortHeaderColumnDef; private _focusMonitor; private _elementRef; id: string; /** 重写此SimSortable的包含SimSort的排序起始值 */ start: 'asc' | 'desc'; disabled: boolean; disableClear: boolean; /** 设置排序时显示的箭头的位置 */ arrowPosition: 'before' | 'after'; /** 根据当前状态,箭头应该面对的方向。 */ _arrowDirection: SortDirection; private _rerenderSubscription; constructor(_sort: SimSortDirective, _columnDef: SimSortHeaderColumnDef, _focusMonitor: FocusMonitor, _elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef); ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; _handleClick(): void; _handleKeydown(event: KeyboardEvent): void; /** 设置“hint”状态,使箭头作为提示半透明地显示给用户,显示活动排序将变成什么。如果设置为false,箭头将淡出。 */ _setIndicatorHintVisible(visible: boolean): void; /** 更新箭头应该指向的方向。如果没有排序,箭头应该面向开始的方向。否则,如果它是排序,箭头应该指向当前活动排序的方向。 */ private _updateArrowDirection; /** 此SimSortHeader当前是否按升序或降序排序 */ private _isSorted; /** 切换排序状态 */ private _toggleOnInteraction; /** 排序头内部的箭头是否应该被呈现 */ private _isDisabled; } export {};