@itwin/unified-selection
Version:
Package for managing unified selection in iTwin.js applications.
51 lines • 2.2 kB
TypeScript
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