@itwin/presentation-frontend
Version:
Frontend of iModel.js Presentation library
107 lines • 4.56 kB
TypeScript
/** @packageDocumentation
* @module UnifiedSelection
*/
import { IModelConnection } from "@itwin/core-frontend";
import { Keys, KeySet } from "@itwin/presentation-common";
import { ISelectionProvider } from "./ISelectionProvider.js";
import { SelectionChangeEventArgs, SelectionChangesListener } from "./SelectionChangeEvent.js";
import { SelectionManager } from "./SelectionManager.js";
/**
* Properties for creating a `SelectionHandler` instance.
* @public
* @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `SelectionStorage` from [@itwin/unified-selection](https://github.com/iTwin/presentation/blob/master/packages/unified-selection/README.md#basic-usage) package instead.
*/
export interface SelectionHandlerProps {
/** SelectionManager used to store overall selection. */
manager: SelectionManager;
/** iModel connection the selection changes will be associated with. */
imodel: IModelConnection;
/**
* Name of the selection handler. This is an identifier of what caused the
* selection to change, set as `SelectionChangeEventArgs.source` when firing
* selection change events. `SelectionHandler.shouldHandle` uses `name` to filter
* events that it doesn't need to handle.
*/
name: string;
/**
* ID of presentation ruleset used by the component using this handler. The ID is set as
* `SelectionChangeEventArgs.rulesetId` when making selection changes and event
* listeners can use or ignore this information.
*/
rulesetId?: string;
/** Callback function called when selection changes. */
onSelect?: SelectionChangesListener;
}
/**
* A class that handles selection changes and helps to change
* internal the selection state.
*
* @public
* @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `SelectionStorage` from [@itwin/unified-selection](https://github.com/iTwin/presentation/blob/master/packages/unified-selection/README.md#basic-usage) package instead.
*/
export declare class SelectionHandler implements Disposable {
private _inSelect;
private _disposables;
/** Selection manager used by this handler to manage selection */
readonly manager: SelectionManager;
/** Name that's used as `SelectionChangeEventArgs.source` when making selection changes */
name: string;
/** iModel whose selection is being handled */
imodel: IModelConnection;
/**
* Id of a ruleset selection changes will be associated with.
* @see `SelectionHandlerProps.rulesetId`
*/
rulesetId?: string;
/** Callback function called when selection changes */
onSelect?: SelectionChangesListener;
/**
* Constructor.
*/
constructor(props: SelectionHandlerProps);
/**
* Destructor. Must be called before disposing this object to make sure it cleans
* up correctly.
*/
[Symbol.dispose](): void;
/** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */
dispose(): void;
/**
* Called when the selection changes. Handles this callback by first checking whether
* the event should be handled at all (using the `shouldHandle` method) and then calling `onSelect`
*/
protected onSelectionChanged: (evt: SelectionChangeEventArgs, provider: ISelectionProvider) => void;
/** Called to check whether the event should be handled by this handler */
protected shouldHandle(evt: SelectionChangeEventArgs): boolean;
/** Get selection levels for the imodel managed by this handler */
getSelectionLevels(): number[];
/**
* Get selection for the imodel managed by this handler.
* @param level Level of the selection to get. Defaults to 0.
*/
getSelection(level?: number): Readonly<KeySet>;
/**
* Add to selection.
* @param keys The keys to add to selection.
* @param level Level of the selection.
*/
addToSelection(keys: Keys, level?: number): void;
/**
* Remove from selection.
* @param keys The keys to remove from selection.
* @param level Level of the selection.
*/
removeFromSelection(keys: Keys, level?: number): void;
/**
* Change selection.
* @param keys The keys indicating the new selection.
* @param level Level of the selection.
*/
replaceSelection(keys: Keys, level?: number): void;
/**
* Clear selection.
* @param level Level of the selection.
*/
clearSelection(level?: number): void;
}
//# sourceMappingURL=SelectionHandler.d.ts.map