@itwin/presentation-hierarchies-react
Version:
React components based on `@itwin/presentation-hierarchies`
70 lines • 2.97 kB
TypeScript
import { GenericInstanceFilter, HierarchyNode } from "@itwin/presentation-hierarchies";
import { SelectionChangeType } from "../UseSelectionHandler.js";
/** @internal */
export interface TreeModelRootNode {
id: undefined;
nodeData: undefined;
hierarchyLimit?: number | "unbounded";
instanceFilter?: GenericInstanceFilter;
isLoading?: boolean;
}
/** @internal */
export interface TreeModelHierarchyNode {
id: string;
nodeData: HierarchyNode;
label: string;
children: boolean;
isLoading?: boolean;
isExpanded?: boolean;
isSelected?: boolean;
hierarchyLimit?: number | "unbounded";
instanceFilter?: GenericInstanceFilter;
}
/** @internal */
export interface TreeModelGenericInfoNode {
id: string;
parentId: string | undefined;
type: "Unknown";
message: string;
}
/** @internal */
export interface TreeModelNoFilterMatchesInfoNode {
id: string;
parentId: string | undefined;
type: "NoFilterMatches";
}
/** @internal */
export interface TreeModelResultSetTooLargeInfoNode {
id: string;
parentId: string | undefined;
type: "ResultSetTooLarge";
resultSetSizeLimit: number;
}
/** @internal */
export type TreeModelInfoNode = TreeModelGenericInfoNode | TreeModelResultSetTooLargeInfoNode | TreeModelNoFilterMatchesInfoNode;
/** @internal */
export type TreeModelNode = TreeModelHierarchyNode | TreeModelInfoNode;
/** @internal */
export declare function isTreeModelHierarchyNode(node: TreeModelHierarchyNode | TreeModelInfoNode | TreeModelRootNode): node is TreeModelHierarchyNode;
/** @internal */
export declare function isTreeModelInfoNode(node: TreeModelHierarchyNode | TreeModelInfoNode | TreeModelRootNode): node is TreeModelInfoNode;
/** @internal */
export interface TreeModel {
parentChildMap: Map<string | undefined, string[]>;
idToNode: Map<string, TreeModelNode>;
rootNode: TreeModelRootNode;
}
/** @internal */
export declare namespace TreeModel {
function expandNode(model: TreeModel, nodeId: string, isExpanded: boolean): "none" | "loadChildren" | "reloadChildren";
/** @internal */
function addHierarchyPart(model: TreeModel, rootId: string | undefined, hierarchyPart: TreeModel): void;
function removeSubTree(model: TreeModel, parentId: string | undefined): void;
function setHierarchyLimit(model: TreeModel, nodeId: string | undefined, limit?: number | "unbounded"): boolean;
function setInstanceFilter(model: TreeModel, nodeId: string | undefined, filter?: GenericInstanceFilter): boolean;
function selectNodes(model: TreeModel, nodeIds: Array<string>, changeType: SelectionChangeType): void;
function isNodeSelected(model: TreeModel, nodeId: string): boolean;
function getNode(model: TreeModel, nodeId: string | undefined): TreeModelNode | TreeModelRootNode | undefined;
function setIsLoading(model: TreeModel, nodeId: string | undefined, isLoading: boolean): void;
}
//# sourceMappingURL=TreeModel.d.ts.map