UNPKG

@itwin/unified-selection

Version:

Package for managing unified selection in iTwin.js applications.

51 lines 2.2 kB
import "./DisposePolyfill.js"; import { ECClassHierarchyInspector, ECSqlQueryExecutor } from "@itwin/presentation-shared"; import { createHiliteSetProvider, HiliteSet, HiliteSetProvider } from "./HiliteSetProvider.js"; import { SelectionStorage } from "./SelectionStorage.js"; /** * Props for creating an `IModelHiliteSetProvider` instance. * @public */ export interface IModelHiliteSetProviderProps { /** Selection storage to use for retrieving the hilite set. */ selectionStorage: SelectionStorage; /** A callback that should return iModel access by iModel key. */ imodelProvider: (imodelKey: string) => ECClassHierarchyInspector & ECSqlQueryExecutor; /** An optional hilite set provider factory. If not provided, defaults to `createHiliteSetProvider` from this package. */ createHiliteSetProvider?: typeof createHiliteSetProvider; } /** * Defines return value of `createIModelHiliteSetProvider`. * * **Warning:** Used in public API as a return value. Not expected to be created / extended by package * consumers, may be supplemented with required attributes any time. * * @see `createIModelHiliteSetProvider` * @public */ export interface IModelHiliteSetProvider { /** Get the hilite set provider for the specified iModel. */ getHiliteSetProvider(props: { /** iModel to get hilite set provider for */ imodelKey: string; }): HiliteSetProvider; /** Get the hilite set iterator for active selection in the specified iModel. */ getCurrentHiliteSet(props: { /** iModel to get hilite set for */ imodelKey: string; }): AsyncIterableIterator<HiliteSet>; /** * Disposes the cache. */ [Symbol.dispose]: () => void; } /** * Creates a hilite set provider that can efficiently get a hilite set for the "active" selection in an iModel. * * This specific implementation caches the hilite set for the current selection, so subsequent hilite set * requests for the same iModel, don't cost until selection changes. * * @public */ export declare function createIModelHiliteSetProvider(props: IModelHiliteSetProviderProps): IModelHiliteSetProvider; //# sourceMappingURL=IModelHiliteSetProvider.d.ts.map