@itwin/presentation-hierarchies
Version:
A package for creating hierarchies based on data in iTwin.js iModels.
32 lines • 2.36 kB
TypeScript
import { EC, ECClassHierarchyInspector, ECSchemaProvider, IPrimitiveValueFormatter } from "@itwin/presentation-shared";
import { ParentHierarchyNode } from "../../../HierarchyNode.js";
import { HierarchyNodePropertiesGroupingParams, HierarchyNodePropertyGroup, HierarchyNodePropertyValueRange, ProcessedInstanceHierarchyNode } from "../../IModelHierarchyNode.js";
import { GroupingHandler, GroupingHandlerResult, ProcessedInstancesGroupingHierarchyNode } from "../Grouping.js";
/** @internal */
export interface PropertiesGroupingLocalizedStrings {
other: string;
unspecified: string;
}
/** @internal */
export interface PropertyGroupInfo {
ecClass: EC.Class;
previousPropertiesGroupingInfo: PreviousPropertiesGroupingInfo;
propertyGroup: Omit<HierarchyNodePropertyGroup, "propertyValue">;
}
/** @internal */
export type PreviousPropertiesGroupingInfo = Array<{
propertiesClassName: string;
propertyName: string;
isRange?: boolean;
}>;
/** @internal */
export declare function createPropertyGroups(nodesToGroup: ProcessedInstanceHierarchyNode[], nodesAlreadyGrouped: ProcessedInstancesGroupingHierarchyNode[], handlerGroupingParams: PropertyGroupInfo, valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings, classHierarchyInspector: ECClassHierarchyInspector): Promise<GroupingHandlerResult>;
/** @internal */
export declare function getUniquePropertiesGroupInfo(schemaProvider: ECSchemaProvider, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[]): Promise<Array<PropertyGroupInfo>>;
/** @internal */
export declare function doPreviousPropertiesMatch(previousPropertiesGroupingInfo: PreviousPropertiesGroupingInfo, nodesProperties: HierarchyNodePropertiesGroupingParams): boolean;
/** @internal */
export declare function doRangesMatch(ranges1: HierarchyNodePropertyValueRange[] | undefined, ranges2: HierarchyNodePropertyValueRange[] | undefined): boolean;
/** @internal */
export declare function createPropertiesGroupingHandlers(imodelAccess: ECSchemaProvider & ECClassHierarchyInspector, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[], valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings): Promise<GroupingHandler[]>;
//# sourceMappingURL=PropertiesGrouping.d.ts.map