import { AfterViewChecked, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, OnDestroy, QueryList } from '@angular/core'; import { SafeAny } from '@ngx-simple/core/types'; import { Subject } from 'rxjs'; import { SimOptgroupComponent } from './optgroup.component'; /** 选项在选择或取消选择时发出的事件对象。 */ export declare class SimOptionSelectionChange { /** 参考发射事件的选项。 */ source: SimOptionComponent; /** 选项值的更改是否是用户操作的结果。 */ isUserInput: boolean; constructor( /** 参考发射事件的选项。 */ source: SimOptionComponent, /** 选项值的更改是否是用户操作的结果。 */ isUserInput?: boolean); } /** * 描述管理选项列表的父组件。包含选项可以继承的属性。 */ export interface SimOptionParentComponent { multiple?: boolean; } /** * 用于向选项提供父组件的注入令牌。 */ export declare const SIM_OPTION_PARENT_COMPONENT: InjectionToken; export declare class SimOptionComponent implements AfterViewChecked, OnDestroy { private _element; private _changeDetectorRef; private _parent?; readonly group?: SimOptgroupComponent; /** 选项是否处于多选模式 */ get multiple(): boolean; /** 当前是否选择该选项 */ get selected(): boolean; /** 是否禁用该选项 */ get disabled(): SafeAny; set disabled(value: SafeAny); /** * 该选项当前是否处于活动状态并准备好被选中。 * 活动选项显示样式,就好像它是聚焦的一样,但焦点实际上保留在其他地方。 * 这对于自动完成等组件非常有用,其中焦点必须保留在输入上。 */ get active(): boolean; /** * 选项的显示值。有必要在select的触发器中显示所选的选项。 */ get viewValue(): string; /** 选项的唯一ID */ id: string; /** 选项的表单值 */ value: SafeAny; /** 选项的自定义数据 */ data: SafeAny; /** 选择或取消选择该选项时发出的事件。 */ readonly selectionChange: EventEmitter; /** 当选项的状态发生变化并且必须通知任何父组件时发出的通知 */ readonly _stateChanges: Subject; /** 选中的项 */ private _selected; /** 激活的项 */ private _active; private _mostRecentViewValue; private _disabled; constructor(_element: ElementRef, _changeDetectorRef: ChangeDetectorRef, _parent?: SimOptionParentComponent, group?: SimOptgroupComponent); ngAfterViewChecked(): void; ngOnDestroy(): void; /** 选择的选项。 */ select(): void; /** 取消选中的选项。 */ deselect(): void; /** 将焦点集中在此选项上。 */ focus(): void; /** * 此方法在选项上设置显示样式以使其显示为活动状态。 * 这由ActiveDescendantKeyManager使用,因此关键事件将在箭头键事件上显示正确的选项。 */ setActiveStyles(): void; /** 设置禁用 */ setDisabled(disabled: boolean): void; /** * 此方法删除使其显示为活动状态的选项的显示样式。 * 这由ActiveDescendantKeyManager使用,因此关键事件将在箭头键事件上显示正确的选项。 */ setInactiveStyles(): void; /** 获取宿主DOM元素。 */ _getHostElement(): HTMLElement; /** 在确定是否应该集中选项时使用标签。 */ getLabel(): string; /** * 选择该选项,同时指示来自用户的选择。 用于确定是否应该调用select的视图 -> 模型回调 */ _selectViaInteraction(): void; /** 确保从键盘激活时选择该选项 */ _handleKeydown(event: KeyboardEvent): void; /** 选择更改发出事件。 */ private _emitSelectionChangeEvent; } /** * 计算在指定选项之前的选项组标签数量。 * optionIndex 开始计算的选项的索引。 * options 所有选项的平面列表。 * optionGroups 所有选项组的平面列表。 */ export declare function _countGroupLabelsBeforeOption(optionIndex: number, options: QueryList, optionGroups: QueryList): number; /** * 确定要滚动面板的位置,以便选择要进入视图。 * optionIndex 可以在视图中滚动的选项的索引。 * optionHeight 高度的选择。 * currentScrollPosition 面板的当前滚动位置。 * panelHeight 面板的高度。 */ export declare function _getOptionScrollPosition(optionIndex: number, optionHeight: number, currentScrollPosition: number, panelHeight: number): number;