@itwin/presentation-hierarchies-react
Version:
React components based on `@itwin/presentation-hierarchies`
44 lines • 1.82 kB
TypeScript
import { Observable } from "rxjs";
import { GenericInstanceFilter, HierarchyNode, HierarchyProvider } from "@itwin/presentation-hierarchies";
import { TreeModelHierarchyNode, TreeModelNode, TreeModelRootNode } from "./TreeModel.js";
/** @internal */
export interface LoadedTreePart {
parentId: string | undefined;
loadedNodes: TreeModelNode[];
}
/** @internal */
export interface HierarchyLevelOptions {
instanceFilter?: GenericInstanceFilter;
hierarchyLevelSizeLimit?: number | "unbounded";
}
/** @internal */
export interface LoadNodesOptions {
parent: TreeModelHierarchyNode | TreeModelRootNode;
getHierarchyLevelOptions: (node: TreeModelRootNode | TreeModelHierarchyNode) => HierarchyLevelOptions;
shouldLoadChildren: (node: TreeModelHierarchyNode) => boolean;
buildNode?: (node: TreeModelHierarchyNode) => TreeModelHierarchyNode;
ignoreCache?: boolean;
}
/** @internal */
export interface ITreeLoader {
loadNodes(options: LoadNodesOptions): Observable<LoadedTreePart>;
}
/** @internal */
export declare class TreeLoader implements ITreeLoader {
private _hierarchyProvider;
private _onHierarchyLimitExceeded;
private _onHierarchyLoadError;
private _treeNodeIdFactory;
constructor(_hierarchyProvider: HierarchyProvider, _onHierarchyLimitExceeded: (props: {
parentId?: string;
filter?: GenericInstanceFilter;
limit?: number | "unbounded";
}) => void, _onHierarchyLoadError: (props: {
parentId?: string;
type: "timeout" | "unknown";
error: unknown;
}) => void, treeNodeIdFactory?: (node: Pick<HierarchyNode, "key" | "parentKeys">) => string);
private loadChildren;
loadNodes({ shouldLoadChildren, ...options }: LoadNodesOptions): Observable<LoadedTreePart>;
}
//# sourceMappingURL=TreeLoader.d.ts.map