UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

80 lines 4.43 kB
/** @packageDocumentation * @module Tree */ import "../../common/DisposePolyfill.js"; import { AbstractTreeNodeLoaderWithProvider, TreeEditingParams, TreeEventHandler, TreeModelChanges, TreeNodeItem, TreeSelectionModificationEventArgs, TreeSelectionReplacementEventArgs } from "@itwin/components-react"; import { Keys, KeySet, NodeKey } from "@itwin/presentation-common"; import { SelectionChangeType } from "@itwin/presentation-frontend"; import { IPresentationTreeDataProvider } from "../IPresentationTreeDataProvider.js"; /** * Data structure that describes parameters for UnifiedSelectionTreeEventHandler * @public * @deprecated in 5.7. All tree-related APIs have been deprecated in favor of the new generation hierarchy * building APIs (see https://github.com/iTwin/presentation/blob/33e79ee8d77f30580a9bab81a72884bda008db25/README.md#the-packages). */ export interface UnifiedSelectionTreeEventHandlerParams { /** Node loader used to load children when node is expanded. */ nodeLoader: AbstractTreeNodeLoaderWithProvider<IPresentationTreeDataProvider>; /** * Unique name for SelectionHandler to avoid handling events raised by itself. The * name is created if not provided. */ name?: string; /** Specifies whether children should be disposed when parent node is collapsed or not. */ collapsedChildrenDisposalEnabled?: boolean; /** Parameters used for node editing. */ editingParams?: TreeEditingParams; } /** * Tree event handler that handles unified selection. * Extends wrapped tree event handler's functionality by adding, removing or replacing nodes in * unified selection. It also reacts to unified selection changes and selects/deselects tree nodes * according changes. * * **Note:** conditions used to determine if node is selected and nodes that should be added to * unified selection can be controlled by overriding 'shouldSelectNode' and 'createKeysForSelection' methods. * * @public * @deprecated in 5.7. All tree-related APIs have been deprecated in favor of the new generation hierarchy * building APIs (see https://github.com/iTwin/presentation/blob/33e79ee8d77f30580a9bab81a72884bda008db25/README.md#the-packages). */ export declare class UnifiedSelectionTreeEventHandler extends TreeEventHandler { #private; constructor(params: UnifiedSelectionTreeEventHandlerParams); /** Disposes this event handler */ [Symbol.dispose](): void; /** @deprecated in 5.7. Use `[Symbol.dispose]` instead. */ dispose(): void; onSelectionModified({ modifications }: TreeSelectionModificationEventArgs): import("@itwin/components-react").Subscription | undefined; onSelectionReplaced({ replacements }: TreeSelectionReplacementEventArgs): import("@itwin/components-react").Subscription | undefined; selectNodes(modelChange?: TreeModelChanges): void; /** @deprecated in 4.0. Use [[isPresentationTreeNodeItem]] and [[PresentationTreeNodeItem.key]] to get [NodeKey]($presentation-common). */ protected getNodeKey(node: TreeNodeItem): NodeKey; /** * Determines if node should be selected. * Default implementation returns true if node key is in selection * or node is ECInstance node and instance key is in selection. */ protected shouldSelectNode(node: TreeNodeItem, selection: Readonly<KeySet>): boolean; /** * Returns node keys that should be added, removed or used to replace unified selection. * Default implementation returns keys of supplied nodes. */ protected createKeysForSelection(nodes: TreeNodeItem[], _selectionType: SelectionChangeType): Keys; protected getKeys(nodes: TreeNodeItem[]): Keys; private addToSelection; private removeFromSelection; private replaceSelection; private onSelectionChanged; private updateAllNodes; private updateAffectedNodes; private updateNodeSelectionState; } /** * A custom hook which creates and disposes [[UnifiedSelectionTreeEventHandler]] * @public * @deprecated in 4.x. This hook is not compatible with React 18 `StrictMode`. Use [[usePresentationTreeState]] and * [[UsePresentationTreeProps.eventHandlerFactory]] instead or manually create and dispose [[UnifiedSelectionTreeEventHandler]]. */ export declare function useUnifiedSelectionTreeEventHandler(props: UnifiedSelectionTreeEventHandlerParams): UnifiedSelectionTreeEventHandler; //# sourceMappingURL=UseUnifiedSelection.d.ts.map