@itwin/presentation-hierarchies
Version:
A package for creating hierarchies based on data in iTwin.js iModels.
36 lines • 1.83 kB
TypeScript
import { Observable } from "rxjs";
import { ECClassHierarchyInspector, InstanceKey } from "@itwin/presentation-shared";
import { HierarchyFilteringPath } from "../HierarchyFiltering.js";
import { DefineHierarchyLevelProps, HierarchyLevelDefinition, InstanceNodesQueryDefinition } from "../imodel/IModelHierarchyDefinition.js";
import { RxjsHierarchyDefinition, RxjsNodeParser, RxjsNodePostProcessor, RxjsNodePreProcessor } from "../internal/RxjsHierarchyDefinition.js";
interface FilteringHierarchyDefinitionProps {
imodelAccess: ECClassHierarchyInspector & {
imodelKey: string;
};
source: RxjsHierarchyDefinition;
nodeIdentifierPaths: HierarchyFilteringPath[];
nodesParser?: RxjsNodeParser;
}
/** @internal */
export declare class FilteringHierarchyDefinition implements RxjsHierarchyDefinition {
private _imodelAccess;
private _source;
private _nodeIdentifierPaths;
private _nodesParser;
constructor(props: FilteringHierarchyDefinitionProps);
get preProcessNode(): RxjsNodePreProcessor;
private shouldExpandGroupingNode;
get postProcessNode(): RxjsNodePostProcessor;
get parseNode(): RxjsNodeParser;
defineHierarchyLevel(props: DefineHierarchyLevelProps): Observable<HierarchyLevelDefinition>;
}
/** @internal */
export declare const ECSQL_COLUMN_NAME_FilterECInstanceId = "FilterECInstanceId";
/** @internal */
export declare const ECSQL_COLUMN_NAME_FilterClassName = "FilterClassName";
/** @internal */
export declare function applyECInstanceIdsFilter(def: InstanceNodesQueryDefinition, filteredInstanceKeys: InstanceKey[]): InstanceNodesQueryDefinition;
/** @internal */
export declare function applyECInstanceIdsSelector(def: InstanceNodesQueryDefinition): InstanceNodesQueryDefinition;
export {};
//# sourceMappingURL=FilteringHierarchyDefinition.d.ts.map