import { OnDestroy, OnInit } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { Observable } from 'rxjs'; import { SimSelectionDirective } from './selection.directive'; /** * 使元素成为选择全部切换 * * 必须在父`simSelection`指令中使用。 * 它切换与`simSelection`指令连接的所有选择切换的选择状态。 * 如果元素实现了`ControlValueAccessor`,例如:`SimCheckbox`,指令会自动将它与`simSelection`指令提供的`selectAll`状态连接起来。 * 如果没有,则使用`checked$`来获取已检查的状态,`indeterminate$`来获取不确定状态,`toggle()`来更改选择状态。 */ export declare class SimSelectionAllDirective implements OnDestroy, OnInit { private _selection; private readonly _controlValueAccessor; /** * 切换项的选中状态 * - true 选择了所有值 * - false 没有选择值 */ readonly checked: Observable; /** * 切换的不确定状态 * - true 选择了部分(而不是全部)值 * - false 选择了所有值或根本没有选择值 */ readonly indeterminate: Observable; private readonly _destroyed; constructor(_selection: SimSelectionDirective, _controlValueAccessor: ControlValueAccessor[]); ngOnInit(): void; ngOnDestroy(): void; /** * 切换选择全部状态 * @param event 单击事件,如果切换是由单击(鼠标或键盘)触发的。如果与``一起使用,则`indeterminate`状态必须使用该参数才能正常工作。 */ toggle(event?: MouseEvent): void; /** 断言父指令`simSelection`是否存在 */ private _assertValidParentSelection; /** * 配置 ControlValueAccessor 实现 */ private _configureControlValueAccessor; }