UNPKG

@itwin/presentation-hierarchies

Version:

A package for creating hierarchies based on data in iTwin.js iModels.

26 lines 1.85 kB
import { Observable } from "rxjs"; import { ECClassHierarchyInspector, ECSchemaProvider, IPrimitiveValueFormatter } from "@itwin/presentation-shared"; import { ParentHierarchyNode } from "../../HierarchyNode.js"; import { ProcessedGroupingHierarchyNode, ProcessedHierarchyNode, ProcessedInstanceHierarchyNode } from "../IModelHierarchyNode.js"; import { PropertiesGroupingLocalizedStrings } from "./grouping/PropertiesGrouping.js"; /** @internal */ export declare const LOGGING_NAMESPACE: string; /** @internal */ export declare function createGroupingOperator(imodelAccess: ECSchemaProvider & ECClassHierarchyInspector, parentNode: ParentHierarchyNode | undefined, valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings, onNodesGrouped?: (groupingResult: GroupingHandlerResult | undefined, handler: GroupingHandler) => void, onGroupingNodeCreated?: (groupingNode: ProcessedGroupingHierarchyNode) => void, groupingHandlers?: GroupingHandler[]): (nodes: Observable<ProcessedHierarchyNode>) => Observable<ProcessedHierarchyNode>; /** @internal */ export type ProcessedInstancesGroupingHierarchyNode = Omit<ProcessedGroupingHierarchyNode, "children"> & { children: ProcessedInstanceHierarchyNode[]; }; /** @internal */ export interface GroupingHandlerResult { /** Expected to be sorted by label. */ grouped: Array<ProcessedInstancesGroupingHierarchyNode>; /** Expected to be sorted by label. */ ungrouped: ProcessedInstanceHierarchyNode[]; groupingType: GroupingType; } /** @internal */ export type GroupingType = "label" | "class" | "base-class" | "property"; /** @internal */ export type GroupingHandler = (nodesToGroup: ProcessedInstanceHierarchyNode[], nodesAlreadyGrouped: ProcessedInstancesGroupingHierarchyNode[]) => Promise<GroupingHandlerResult>; //# sourceMappingURL=Grouping.d.ts.map