/** @packageDocumentation * @module IModelComponents */ import { BeEvent, IDisposable } from "@bentley/bentleyjs-core"; import { NodeKey } from "@bentley/presentation-common"; import { UnifiedSelectionTreeEventHandler, UnifiedSelectionTreeEventHandlerParams } from "@bentley/presentation-components"; import { TreeCheckboxStateChangeEventArgs, TreeNodeItem, TreeSelectionModificationEventArgs, TreeSelectionReplacementEventArgs } from "@bentley/ui-components"; /** * Data structure that describes instance visibility status. * @alpha */ export interface VisibilityStatus { state: "visible" | "partial" | "hidden"; isDisabled?: boolean; tooltip?: string; } /** * Type definition of visibility change event listener. * @alpha */ export declare type VisibilityChangeListener = (nodeIds?: string[], visibilityStatus?: Map) => void; /** * Visibility handler used to change or get visibility of instances represented by the tree node. * @alpha */ export interface IVisibilityHandler extends IDisposable { getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus | Promise; changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, shouldDisplay: boolean): Promise; onVisibilityChange: BeEvent; } /** * Type definition of predicate used to decide if node can be selected. * @alpha */ export declare type VisibilityTreeSelectionPredicate = (key: NodeKey, node: TreeNodeItem) => boolean; /** * Parameters for [[VisibilityTreeEventHandler]] * @alpha */ export interface VisibilityTreeEventHandlerParams extends UnifiedSelectionTreeEventHandlerParams { visibilityHandler: IVisibilityHandler | undefined; selectionPredicate?: VisibilityTreeSelectionPredicate; } /** * Base event handler for visibility tree. * @alpha */ export declare class VisibilityTreeEventHandler extends UnifiedSelectionTreeEventHandler { private _visibilityHandler; private _selectionPredicate?; private _listeners; constructor(params: VisibilityTreeEventHandlerParams); dispose(): void; private filterSelectionItems; onSelectionModified({ modifications }: TreeSelectionModificationEventArgs): import("@bentley/ui-components").Subscription | undefined; onSelectionReplaced({ replacements }: TreeSelectionReplacementEventArgs): import("@bentley/ui-components").Subscription | undefined; onCheckboxStateChanged(event: TreeCheckboxStateChangeEventArgs): undefined; private changeVisibility; private updateCheckboxes; private updateModel; private collectAffectedNodesCheckboxInfos; private collectAllNodesCheckboxInfos; private getNodeCheckBoxInfo; private createCheckboxInfo; } //# sourceMappingURL=VisibilityTreeEventHandler.d.ts.map