@itwin/presentation-hierarchies 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/LICENSE.md +9 -0
- package/README.md +178 -0
- package/lib/cjs/hierarchies/HierarchyDefinition.d.ts +228 -0
- package/lib/cjs/hierarchies/HierarchyDefinition.d.ts.map +1 -0
- package/lib/cjs/hierarchies/HierarchyDefinition.js +94 -0
- package/lib/cjs/hierarchies/HierarchyDefinition.js.map +1 -0
- package/lib/cjs/hierarchies/HierarchyErrors.d.ts +9 -0
- package/lib/cjs/hierarchies/HierarchyErrors.d.ts.map +1 -0
- package/lib/cjs/hierarchies/HierarchyErrors.js +20 -0
- package/lib/cjs/hierarchies/HierarchyErrors.js.map +1 -0
- package/lib/cjs/hierarchies/HierarchyNode.d.ts +337 -0
- package/lib/cjs/hierarchies/HierarchyNode.d.ts.map +1 -0
- package/lib/cjs/hierarchies/HierarchyNode.js +64 -0
- package/lib/cjs/hierarchies/HierarchyNode.js.map +1 -0
- package/lib/cjs/hierarchies/HierarchyNodeIdentifier.d.ts +33 -0
- package/lib/cjs/hierarchies/HierarchyNodeIdentifier.d.ts.map +1 -0
- package/lib/cjs/hierarchies/HierarchyNodeIdentifier.js +34 -0
- package/lib/cjs/hierarchies/HierarchyNodeIdentifier.js.map +1 -0
- package/lib/cjs/hierarchies/HierarchyNodeKey.d.ts +137 -0
- package/lib/cjs/hierarchies/HierarchyNodeKey.d.ts.map +1 -0
- package/lib/cjs/hierarchies/HierarchyNodeKey.js +163 -0
- package/lib/cjs/hierarchies/HierarchyNodeKey.js.map +1 -0
- package/lib/cjs/hierarchies/HierarchyProvider.d.ts +104 -0
- package/lib/cjs/hierarchies/HierarchyProvider.d.ts.map +1 -0
- package/lib/cjs/hierarchies/HierarchyProvider.js +384 -0
- package/lib/cjs/hierarchies/HierarchyProvider.js.map +1 -0
- package/lib/cjs/hierarchies/LimitingECSqlQueryExecutor.d.ts +21 -0
- package/lib/cjs/hierarchies/LimitingECSqlQueryExecutor.d.ts.map +1 -0
- package/lib/cjs/hierarchies/LimitingECSqlQueryExecutor.js +100 -0
- package/lib/cjs/hierarchies/LimitingECSqlQueryExecutor.js.map +1 -0
- package/lib/cjs/hierarchies/Logging.d.ts +13 -0
- package/lib/cjs/hierarchies/Logging.d.ts.map +1 -0
- package/lib/cjs/hierarchies/Logging.js +28 -0
- package/lib/cjs/hierarchies/Logging.js.map +1 -0
- package/lib/cjs/hierarchies/NodeSelectQueryFactory.d.ts +205 -0
- package/lib/cjs/hierarchies/NodeSelectQueryFactory.d.ts.map +1 -0
- package/lib/cjs/hierarchies/NodeSelectQueryFactory.js +467 -0
- package/lib/cjs/hierarchies/NodeSelectQueryFactory.js.map +1 -0
- package/lib/cjs/hierarchies/internal/ChildNodeObservablesCache.d.ts +40 -0
- package/lib/cjs/hierarchies/internal/ChildNodeObservablesCache.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/ChildNodeObservablesCache.js +84 -0
- package/lib/cjs/hierarchies/internal/ChildNodeObservablesCache.js.map +1 -0
- package/lib/cjs/hierarchies/internal/Common.d.ts +20 -0
- package/lib/cjs/hierarchies/internal/Common.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/Common.js +106 -0
- package/lib/cjs/hierarchies/internal/Common.js.map +1 -0
- package/lib/cjs/hierarchies/internal/EachValueFrom.d.ts +12 -0
- package/lib/cjs/hierarchies/internal/EachValueFrom.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/EachValueFrom.js +108 -0
- package/lib/cjs/hierarchies/internal/EachValueFrom.js.map +1 -0
- package/lib/cjs/hierarchies/internal/FilteringHierarchyDefinition.d.ts +39 -0
- package/lib/cjs/hierarchies/internal/FilteringHierarchyDefinition.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/FilteringHierarchyDefinition.js +181 -0
- package/lib/cjs/hierarchies/internal/FilteringHierarchyDefinition.js.map +1 -0
- package/lib/cjs/hierarchies/internal/LoggingUtils.d.ts +14 -0
- package/lib/cjs/hierarchies/internal/LoggingUtils.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/LoggingUtils.js +56 -0
- package/lib/cjs/hierarchies/internal/LoggingUtils.js.map +1 -0
- package/lib/cjs/hierarchies/internal/SubscriptionScheduler.d.ts +17 -0
- package/lib/cjs/hierarchies/internal/SubscriptionScheduler.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/SubscriptionScheduler.js +57 -0
- package/lib/cjs/hierarchies/internal/SubscriptionScheduler.js.map +1 -0
- package/lib/cjs/hierarchies/internal/TreeNodesReader.d.ts +37 -0
- package/lib/cjs/hierarchies/internal/TreeNodesReader.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/TreeNodesReader.js +46 -0
- package/lib/cjs/hierarchies/internal/TreeNodesReader.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/DetermineChildren.d.ts +11 -0
- package/lib/cjs/hierarchies/internal/operators/DetermineChildren.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/DetermineChildren.js +34 -0
- package/lib/cjs/hierarchies/internal/operators/DetermineChildren.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/Grouping.d.ts +27 -0
- package/lib/cjs/hierarchies/internal/operators/Grouping.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/Grouping.js +161 -0
- package/lib/cjs/hierarchies/internal/operators/Grouping.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/HideIfNoChildren.d.ts +11 -0
- package/lib/cjs/hierarchies/internal/operators/HideIfNoChildren.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/HideIfNoChildren.js +52 -0
- package/lib/cjs/hierarchies/internal/operators/HideIfNoChildren.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/HideNodesInHierarchy.d.ts +11 -0
- package/lib/cjs/hierarchies/internal/operators/HideNodesInHierarchy.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/HideNodesInHierarchy.js +55 -0
- package/lib/cjs/hierarchies/internal/operators/HideNodesInHierarchy.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/Partition.d.ts +6 -0
- package/lib/cjs/hierarchies/internal/operators/Partition.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/Partition.js +61 -0
- package/lib/cjs/hierarchies/internal/operators/Partition.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/ReduceToMergeMap.d.ts +22 -0
- package/lib/cjs/hierarchies/internal/operators/ReduceToMergeMap.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/ReduceToMergeMap.js +51 -0
- package/lib/cjs/hierarchies/internal/operators/ReduceToMergeMap.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/ReleaseMainThread.d.ts +7 -0
- package/lib/cjs/hierarchies/internal/operators/ReleaseMainThread.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/ReleaseMainThread.js +25 -0
- package/lib/cjs/hierarchies/internal/operators/ReleaseMainThread.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/ShareReplayWithErrors.d.ts +9 -0
- package/lib/cjs/hierarchies/internal/operators/ShareReplayWithErrors.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/ShareReplayWithErrors.js +24 -0
- package/lib/cjs/hierarchies/internal/operators/ShareReplayWithErrors.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/Sorting.d.ts +12 -0
- package/lib/cjs/hierarchies/internal/operators/Sorting.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/Sorting.js +26 -0
- package/lib/cjs/hierarchies/internal/operators/Sorting.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/TapOnce.d.ts +4 -0
- package/lib/cjs/hierarchies/internal/operators/TapOnce.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/TapOnce.js +20 -0
- package/lib/cjs/hierarchies/internal/operators/TapOnce.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/AutoExpand.d.ts +4 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/AutoExpand.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/AutoExpand.js +27 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/AutoExpand.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/BaseClassGrouping.d.ts +10 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/BaseClassGrouping.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/BaseClassGrouping.js +115 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/BaseClassGrouping.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/ClassGrouping.d.ts +6 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/ClassGrouping.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/ClassGrouping.js +56 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/ClassGrouping.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/GroupHiding.d.ts +4 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/GroupHiding.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/GroupHiding.js +54 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/GroupHiding.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/LabelGrouping.d.ts +5 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/LabelGrouping.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/LabelGrouping.js +61 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/LabelGrouping.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/PropertiesGrouping.d.ts +31 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/PropertiesGrouping.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/PropertiesGrouping.js +310 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/PropertiesGrouping.js.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/Shared.d.ts +5 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/Shared.d.ts.map +1 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/Shared.js +30 -0
- package/lib/cjs/hierarchies/internal/operators/grouping/Shared.js.map +1 -0
- package/lib/cjs/presentation-hierarchies.d.ts +11 -0
- package/lib/cjs/presentation-hierarchies.d.ts.map +1 -0
- package/lib/cjs/presentation-hierarchies.js +31 -0
- package/lib/cjs/presentation-hierarchies.js.map +1 -0
- package/lib/esm/hierarchies/HierarchyDefinition.d.ts +228 -0
- package/lib/esm/hierarchies/HierarchyDefinition.d.ts.map +1 -0
- package/lib/esm/hierarchies/HierarchyDefinition.js +90 -0
- package/lib/esm/hierarchies/HierarchyDefinition.js.map +1 -0
- package/lib/esm/hierarchies/HierarchyErrors.d.ts +9 -0
- package/lib/esm/hierarchies/HierarchyErrors.d.ts.map +1 -0
- package/lib/esm/hierarchies/HierarchyErrors.js +16 -0
- package/lib/esm/hierarchies/HierarchyErrors.js.map +1 -0
- package/lib/esm/hierarchies/HierarchyNode.d.ts +337 -0
- package/lib/esm/hierarchies/HierarchyNode.d.ts.map +1 -0
- package/lib/esm/hierarchies/HierarchyNode.js +61 -0
- package/lib/esm/hierarchies/HierarchyNode.js.map +1 -0
- package/lib/esm/hierarchies/HierarchyNodeIdentifier.d.ts +33 -0
- package/lib/esm/hierarchies/HierarchyNodeIdentifier.d.ts.map +1 -0
- package/lib/esm/hierarchies/HierarchyNodeIdentifier.js +31 -0
- package/lib/esm/hierarchies/HierarchyNodeIdentifier.js.map +1 -0
- package/lib/esm/hierarchies/HierarchyNodeKey.d.ts +137 -0
- package/lib/esm/hierarchies/HierarchyNodeKey.d.ts.map +1 -0
- package/lib/esm/hierarchies/HierarchyNodeKey.js +160 -0
- package/lib/esm/hierarchies/HierarchyNodeKey.js.map +1 -0
- package/lib/esm/hierarchies/HierarchyProvider.d.ts +104 -0
- package/lib/esm/hierarchies/HierarchyProvider.d.ts.map +1 -0
- package/lib/esm/hierarchies/HierarchyProvider.js +380 -0
- package/lib/esm/hierarchies/HierarchyProvider.js.map +1 -0
- package/lib/esm/hierarchies/LimitingECSqlQueryExecutor.d.ts +21 -0
- package/lib/esm/hierarchies/LimitingECSqlQueryExecutor.d.ts.map +1 -0
- package/lib/esm/hierarchies/LimitingECSqlQueryExecutor.js +96 -0
- package/lib/esm/hierarchies/LimitingECSqlQueryExecutor.js.map +1 -0
- package/lib/esm/hierarchies/Logging.d.ts +13 -0
- package/lib/esm/hierarchies/Logging.d.ts.map +1 -0
- package/lib/esm/hierarchies/Logging.js +23 -0
- package/lib/esm/hierarchies/Logging.js.map +1 -0
- package/lib/esm/hierarchies/NodeSelectQueryFactory.d.ts +205 -0
- package/lib/esm/hierarchies/NodeSelectQueryFactory.d.ts.map +1 -0
- package/lib/esm/hierarchies/NodeSelectQueryFactory.js +463 -0
- package/lib/esm/hierarchies/NodeSelectQueryFactory.js.map +1 -0
- package/lib/esm/hierarchies/internal/ChildNodeObservablesCache.d.ts +40 -0
- package/lib/esm/hierarchies/internal/ChildNodeObservablesCache.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/ChildNodeObservablesCache.js +80 -0
- package/lib/esm/hierarchies/internal/ChildNodeObservablesCache.js.map +1 -0
- package/lib/esm/hierarchies/internal/Common.d.ts +20 -0
- package/lib/esm/hierarchies/internal/Common.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/Common.js +95 -0
- package/lib/esm/hierarchies/internal/Common.js.map +1 -0
- package/lib/esm/hierarchies/internal/EachValueFrom.d.ts +12 -0
- package/lib/esm/hierarchies/internal/EachValueFrom.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/EachValueFrom.js +104 -0
- package/lib/esm/hierarchies/internal/EachValueFrom.js.map +1 -0
- package/lib/esm/hierarchies/internal/FilteringHierarchyDefinition.d.ts +39 -0
- package/lib/esm/hierarchies/internal/FilteringHierarchyDefinition.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/FilteringHierarchyDefinition.js +176 -0
- package/lib/esm/hierarchies/internal/FilteringHierarchyDefinition.js.map +1 -0
- package/lib/esm/hierarchies/internal/LoggingUtils.d.ts +14 -0
- package/lib/esm/hierarchies/internal/LoggingUtils.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/LoggingUtils.js +50 -0
- package/lib/esm/hierarchies/internal/LoggingUtils.js.map +1 -0
- package/lib/esm/hierarchies/internal/SubscriptionScheduler.d.ts +17 -0
- package/lib/esm/hierarchies/internal/SubscriptionScheduler.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/SubscriptionScheduler.js +53 -0
- package/lib/esm/hierarchies/internal/SubscriptionScheduler.js.map +1 -0
- package/lib/esm/hierarchies/internal/TreeNodesReader.d.ts +37 -0
- package/lib/esm/hierarchies/internal/TreeNodesReader.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/TreeNodesReader.js +41 -0
- package/lib/esm/hierarchies/internal/TreeNodesReader.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/DetermineChildren.d.ts +11 -0
- package/lib/esm/hierarchies/internal/operators/DetermineChildren.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/DetermineChildren.js +30 -0
- package/lib/esm/hierarchies/internal/operators/DetermineChildren.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/Grouping.d.ts +27 -0
- package/lib/esm/hierarchies/internal/operators/Grouping.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/Grouping.js +156 -0
- package/lib/esm/hierarchies/internal/operators/Grouping.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/HideIfNoChildren.d.ts +11 -0
- package/lib/esm/hierarchies/internal/operators/HideIfNoChildren.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/HideIfNoChildren.js +48 -0
- package/lib/esm/hierarchies/internal/operators/HideIfNoChildren.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/HideNodesInHierarchy.d.ts +11 -0
- package/lib/esm/hierarchies/internal/operators/HideNodesInHierarchy.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/HideNodesInHierarchy.js +51 -0
- package/lib/esm/hierarchies/internal/operators/HideNodesInHierarchy.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/Partition.d.ts +6 -0
- package/lib/esm/hierarchies/internal/operators/Partition.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/Partition.js +57 -0
- package/lib/esm/hierarchies/internal/operators/Partition.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/ReduceToMergeMap.d.ts +22 -0
- package/lib/esm/hierarchies/internal/operators/ReduceToMergeMap.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/ReduceToMergeMap.js +46 -0
- package/lib/esm/hierarchies/internal/operators/ReduceToMergeMap.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/ReleaseMainThread.d.ts +7 -0
- package/lib/esm/hierarchies/internal/operators/ReleaseMainThread.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/ReleaseMainThread.js +21 -0
- package/lib/esm/hierarchies/internal/operators/ReleaseMainThread.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/ShareReplayWithErrors.d.ts +9 -0
- package/lib/esm/hierarchies/internal/operators/ShareReplayWithErrors.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/ShareReplayWithErrors.js +20 -0
- package/lib/esm/hierarchies/internal/operators/ShareReplayWithErrors.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/Sorting.d.ts +12 -0
- package/lib/esm/hierarchies/internal/operators/Sorting.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/Sorting.js +22 -0
- package/lib/esm/hierarchies/internal/operators/Sorting.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/TapOnce.d.ts +4 -0
- package/lib/esm/hierarchies/internal/operators/TapOnce.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/TapOnce.js +16 -0
- package/lib/esm/hierarchies/internal/operators/TapOnce.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/AutoExpand.d.ts +4 -0
- package/lib/esm/hierarchies/internal/operators/grouping/AutoExpand.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/AutoExpand.js +23 -0
- package/lib/esm/hierarchies/internal/operators/grouping/AutoExpand.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/BaseClassGrouping.d.ts +10 -0
- package/lib/esm/hierarchies/internal/operators/grouping/BaseClassGrouping.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/BaseClassGrouping.js +109 -0
- package/lib/esm/hierarchies/internal/operators/grouping/BaseClassGrouping.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/ClassGrouping.d.ts +6 -0
- package/lib/esm/hierarchies/internal/operators/grouping/ClassGrouping.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/ClassGrouping.js +52 -0
- package/lib/esm/hierarchies/internal/operators/grouping/ClassGrouping.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/GroupHiding.d.ts +4 -0
- package/lib/esm/hierarchies/internal/operators/grouping/GroupHiding.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/GroupHiding.js +50 -0
- package/lib/esm/hierarchies/internal/operators/grouping/GroupHiding.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/LabelGrouping.d.ts +5 -0
- package/lib/esm/hierarchies/internal/operators/grouping/LabelGrouping.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/LabelGrouping.js +57 -0
- package/lib/esm/hierarchies/internal/operators/grouping/LabelGrouping.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/PropertiesGrouping.d.ts +31 -0
- package/lib/esm/hierarchies/internal/operators/grouping/PropertiesGrouping.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/PropertiesGrouping.js +302 -0
- package/lib/esm/hierarchies/internal/operators/grouping/PropertiesGrouping.js.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/Shared.d.ts +5 -0
- package/lib/esm/hierarchies/internal/operators/grouping/Shared.d.ts.map +1 -0
- package/lib/esm/hierarchies/internal/operators/grouping/Shared.js +26 -0
- package/lib/esm/hierarchies/internal/operators/grouping/Shared.js.map +1 -0
- package/lib/esm/presentation-hierarchies.d.ts +11 -0
- package/lib/esm/presentation-hierarchies.d.ts.map +1 -0
- package/lib/esm/presentation-hierarchies.js +15 -0
- package/lib/esm/presentation-hierarchies.js.map +1 -0
- package/media/sample-hierarchy.png +0 -0
- package/package.json +71 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.assignAutoExpand = void 0;
|
|
8
|
+
const Shared_1 = require("./Shared");
|
|
9
|
+
/** @internal */
|
|
10
|
+
function assignAutoExpand(props) {
|
|
11
|
+
for (const node of props.grouped) {
|
|
12
|
+
let autoExpandProp;
|
|
13
|
+
(0, Shared_1.iterateChildNodeGroupingParams)(node, props.groupingType, (groupingProps) => {
|
|
14
|
+
if (autoExpandProp === "always") {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
autoExpandProp = groupingProps?.autoExpand ? groupingProps.autoExpand : autoExpandProp;
|
|
18
|
+
return;
|
|
19
|
+
});
|
|
20
|
+
if (autoExpandProp === "always" || (autoExpandProp === "single-child" && node.children.length === 1)) {
|
|
21
|
+
node.autoExpand = true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return props;
|
|
25
|
+
}
|
|
26
|
+
exports.assignAutoExpand = assignAutoExpand;
|
|
27
|
+
//# sourceMappingURL=AutoExpand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoExpand.js","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/AutoExpand.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAIhG,qCAA0D;AAE1D,gBAAgB;AAChB,SAAgB,gBAAgB,CAAC,KAA4B;IAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,cAAuD,CAAC;QAC5D,IAAA,uCAA8B,EAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,EAAE;YACzE,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,cAAc,GAAG,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;YACvF,OAAO;QACT,CAAC,CAAC,CAAC;QACH,IAAI,cAAc,KAAK,QAAQ,IAAI,CAAC,cAAc,KAAK,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACrG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAfD,4CAeC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { HierarchyNodeAutoExpandProp } from \"../../../HierarchyNode\";\nimport { GroupingHandlerResult } from \"../Grouping\";\nimport { iterateChildNodeGroupingParams } from \"./Shared\";\n\n/** @internal */\nexport function assignAutoExpand(props: GroupingHandlerResult): GroupingHandlerResult {\n for (const node of props.grouped) {\n let autoExpandProp: HierarchyNodeAutoExpandProp | undefined;\n iterateChildNodeGroupingParams(node, props.groupingType, (groupingProps) => {\n if (autoExpandProp === \"always\") {\n return true;\n }\n autoExpandProp = groupingProps?.autoExpand ? groupingProps.autoExpand : autoExpandProp;\n return;\n });\n if (autoExpandProp === \"always\" || (autoExpandProp === \"single-child\" && node.children.length === 1)) {\n node.autoExpand = true;\n }\n }\n return props;\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EC, ECClassHierarchyInspector, ECSchemaProvider } from "@itwin/presentation-shared";
|
|
2
|
+
import { ParentHierarchyNode, ProcessedInstanceHierarchyNode } from "../../../HierarchyNode";
|
|
3
|
+
import { GroupingHandler, GroupingHandlerResult } from "../Grouping";
|
|
4
|
+
/** @internal */
|
|
5
|
+
export declare function getBaseClassGroupingECClasses(schemaProvider: ECSchemaProvider, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[]): Promise<EC.Class[]>;
|
|
6
|
+
/** @internal */
|
|
7
|
+
export declare function createBaseClassGroupsForSingleBaseClass(nodes: ProcessedInstanceHierarchyNode[], baseECClass: EC.Class, classHierarchyInspector: ECClassHierarchyInspector): Promise<GroupingHandlerResult>;
|
|
8
|
+
/** @internal */
|
|
9
|
+
export declare function createBaseClassGroupingHandlers(imodelAccess: ECSchemaProvider & ECClassHierarchyInspector, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[]): Promise<GroupingHandler[]>;
|
|
10
|
+
//# sourceMappingURL=BaseClassGrouping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseClassGrouping.d.ts","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/BaseClassGrouping.ts"],"names":[],"mappings":"AAKA,OAAO,EAA8C,EAAE,EAAE,yBAAyB,EAAE,gBAAgB,EAAY,MAAM,4BAA4B,CAAC;AACnJ,OAAO,EAAiB,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAE5G,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAErE,gBAAgB;AAChB,wBAAsB,6BAA6B,CACjD,cAAc,EAAE,gBAAgB,EAChC,UAAU,EAAE,mBAAmB,GAAG,SAAS,EAC3C,KAAK,EAAE,8BAA8B,EAAE,GACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAyBrB;AAED,gBAAgB;AAChB,wBAAsB,uCAAuC,CAC3D,KAAK,EAAE,8BAA8B,EAAE,EACvC,WAAW,EAAE,EAAE,CAAC,KAAK,EACrB,uBAAuB,EAAE,yBAAyB,GACjD,OAAO,CAAC,qBAAqB,CAAC,CA0ChC;AAsCD,gBAAgB;AAChB,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,gBAAgB,GAAG,yBAAyB,EAC1D,UAAU,EAAE,mBAAmB,GAAG,SAAS,EAC3C,KAAK,EAAE,8BAA8B,EAAE,GACtC,OAAO,CAAC,eAAe,EAAE,CAAC,CAG5B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createBaseClassGroupingHandlers = exports.createBaseClassGroupsForSingleBaseClass = exports.getBaseClassGroupingECClasses = void 0;
|
|
8
|
+
const presentation_shared_1 = require("@itwin/presentation-shared");
|
|
9
|
+
const HierarchyNode_1 = require("../../../HierarchyNode");
|
|
10
|
+
/** @internal */
|
|
11
|
+
async function getBaseClassGroupingECClasses(schemaProvider, parentNode, nodes) {
|
|
12
|
+
// Get all base class names that are provided in the grouping information
|
|
13
|
+
const baseClassesFullClassNames = await getGroupingBaseClassNames(nodes);
|
|
14
|
+
if (baseClassesFullClassNames.size === 0) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
const releaseMainThread = (0, presentation_shared_1.createMainThreadReleaseOnTimePassedHandler)();
|
|
18
|
+
const baseClasses = [];
|
|
19
|
+
for (const fullName of baseClassesFullClassNames) {
|
|
20
|
+
await releaseMainThread();
|
|
21
|
+
baseClasses.push(await (0, presentation_shared_1.getClass)(schemaProvider, fullName));
|
|
22
|
+
}
|
|
23
|
+
const sortedClasses = await sortByBaseClass(baseClasses.filter((baseClass) => baseClass.isRelationshipClass() || baseClass.isEntityClass()));
|
|
24
|
+
if (parentNode && HierarchyNode_1.HierarchyNode.isClassGroupingNode(parentNode)) {
|
|
25
|
+
// if we have a class grouping node, we can cut the front of sortedClasses up to a point where our grouping class is
|
|
26
|
+
const cutPosition = sortedClasses.findIndex((c) => c.fullName === parentNode.key.className);
|
|
27
|
+
if (cutPosition >= 0) {
|
|
28
|
+
return sortedClasses.slice(cutPosition + 1);
|
|
29
|
+
}
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
return sortedClasses;
|
|
33
|
+
}
|
|
34
|
+
exports.getBaseClassGroupingECClasses = getBaseClassGroupingECClasses;
|
|
35
|
+
/** @internal */
|
|
36
|
+
async function createBaseClassGroupsForSingleBaseClass(nodes, baseECClass, classHierarchyInspector) {
|
|
37
|
+
const releaseMainThread = (0, presentation_shared_1.createMainThreadReleaseOnTimePassedHandler)();
|
|
38
|
+
const groupedNodes = new Array();
|
|
39
|
+
const ungroupedNodes = new Array();
|
|
40
|
+
const baseClassFullName = baseECClass.fullName;
|
|
41
|
+
for (const node of nodes) {
|
|
42
|
+
await releaseMainThread();
|
|
43
|
+
if (!node.processingParams?.grouping?.byBaseClasses ||
|
|
44
|
+
!node.processingParams.grouping.byBaseClasses.fullClassNames.some((className) => className === baseClassFullName)) {
|
|
45
|
+
ungroupedNodes.push(node);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const fullCurrentNodeClassName = node.key.instanceKeys[0].className;
|
|
49
|
+
const baseCheckerResult = classHierarchyInspector.classDerivesFrom(fullCurrentNodeClassName, baseClassFullName);
|
|
50
|
+
// istanbul ignore next
|
|
51
|
+
const isCurrentNodeClassOfBase = baseCheckerResult instanceof Promise ? await baseCheckerResult : baseCheckerResult;
|
|
52
|
+
if (isCurrentNodeClassOfBase) {
|
|
53
|
+
groupedNodes.push(node);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
ungroupedNodes.push(node);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const result = { grouped: [], ungrouped: ungroupedNodes, groupingType: "base-class" };
|
|
60
|
+
if (groupedNodes.length > 0) {
|
|
61
|
+
const groupingNodeKey = {
|
|
62
|
+
type: "class-grouping",
|
|
63
|
+
className: baseClassFullName,
|
|
64
|
+
};
|
|
65
|
+
result.grouped.push({
|
|
66
|
+
label: baseECClass.label ?? baseECClass.name,
|
|
67
|
+
key: groupingNodeKey,
|
|
68
|
+
parentKeys: [...groupedNodes[0].parentKeys],
|
|
69
|
+
groupedInstanceKeys: groupedNodes.flatMap((groupedInstanceNode) => groupedInstanceNode.key.instanceKeys),
|
|
70
|
+
children: groupedNodes.map((gn) => Object.assign(gn, { parentKeys: [...gn.parentKeys, groupingNodeKey] })),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
exports.createBaseClassGroupsForSingleBaseClass = createBaseClassGroupsForSingleBaseClass;
|
|
76
|
+
async function getGroupingBaseClassNames(nodes) {
|
|
77
|
+
const releaseMainThread = (0, presentation_shared_1.createMainThreadReleaseOnTimePassedHandler)();
|
|
78
|
+
const baseClasses = new Set();
|
|
79
|
+
for (const node of nodes) {
|
|
80
|
+
await releaseMainThread();
|
|
81
|
+
if (node.processingParams?.grouping?.byBaseClasses) {
|
|
82
|
+
for (const className of node.processingParams.grouping.byBaseClasses.fullClassNames) {
|
|
83
|
+
baseClasses.add(className);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return baseClasses;
|
|
88
|
+
}
|
|
89
|
+
async function sortByBaseClass(classes) {
|
|
90
|
+
if (classes.length === 0) {
|
|
91
|
+
return classes;
|
|
92
|
+
}
|
|
93
|
+
const output = [classes[0]];
|
|
94
|
+
for (let inputIndex = 1; inputIndex < classes.length; ++inputIndex) {
|
|
95
|
+
let wasAdded = false;
|
|
96
|
+
for (let outputIndex = output.length - 1; outputIndex >= 0; --outputIndex) {
|
|
97
|
+
if (await classes[inputIndex].is(output[outputIndex])) {
|
|
98
|
+
output.splice(outputIndex + 1, 0, classes[inputIndex]);
|
|
99
|
+
wasAdded = true;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (!wasAdded) {
|
|
104
|
+
output.splice(0, 0, classes[inputIndex]);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return output;
|
|
108
|
+
}
|
|
109
|
+
/** @internal */
|
|
110
|
+
async function createBaseClassGroupingHandlers(imodelAccess, parentNode, nodes) {
|
|
111
|
+
const baseClassGroupingECClasses = await getBaseClassGroupingECClasses(imodelAccess, parentNode, nodes);
|
|
112
|
+
return baseClassGroupingECClasses.map((baseECClass) => async (allNodes) => createBaseClassGroupsForSingleBaseClass(allNodes, baseECClass, imodelAccess));
|
|
113
|
+
}
|
|
114
|
+
exports.createBaseClassGroupingHandlers = createBaseClassGroupingHandlers;
|
|
115
|
+
//# sourceMappingURL=BaseClassGrouping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseClassGrouping.js","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/BaseClassGrouping.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createMainThreadReleaseOnTimePassedHandler, EC, ECClassHierarchyInspector, ECSchemaProvider, getClass } from \"@itwin/presentation-shared\";\nimport { HierarchyNode, ParentHierarchyNode, ProcessedInstanceHierarchyNode } from \"../../../HierarchyNode\";\nimport { ClassGroupingNodeKey } from \"../../../HierarchyNodeKey\";\nimport { GroupingHandler, GroupingHandlerResult } from \"../Grouping\";\n\n/** @internal */\nexport async function getBaseClassGroupingECClasses(\n schemaProvider: ECSchemaProvider,\n parentNode: ParentHierarchyNode | undefined,\n nodes: ProcessedInstanceHierarchyNode[],\n): Promise<EC.Class[]> {\n // Get all base class names that are provided in the grouping information\n const baseClassesFullClassNames = await getGroupingBaseClassNames(nodes);\n if (baseClassesFullClassNames.size === 0) {\n return [];\n }\n\n const releaseMainThread = createMainThreadReleaseOnTimePassedHandler();\n const baseClasses = [];\n for (const fullName of baseClassesFullClassNames) {\n await releaseMainThread();\n baseClasses.push(await getClass(schemaProvider, fullName));\n }\n const sortedClasses = await sortByBaseClass(baseClasses.filter((baseClass) => baseClass.isRelationshipClass() || baseClass.isEntityClass()));\n\n if (parentNode && HierarchyNode.isClassGroupingNode(parentNode)) {\n // if we have a class grouping node, we can cut the front of sortedClasses up to a point where our grouping class is\n const cutPosition = sortedClasses.findIndex((c) => c.fullName === parentNode.key.className);\n if (cutPosition >= 0) {\n return sortedClasses.slice(cutPosition + 1);\n }\n return [];\n }\n\n return sortedClasses;\n}\n\n/** @internal */\nexport async function createBaseClassGroupsForSingleBaseClass(\n nodes: ProcessedInstanceHierarchyNode[],\n baseECClass: EC.Class,\n classHierarchyInspector: ECClassHierarchyInspector,\n): Promise<GroupingHandlerResult> {\n const releaseMainThread = createMainThreadReleaseOnTimePassedHandler();\n const groupedNodes = new Array<ProcessedInstanceHierarchyNode>();\n const ungroupedNodes = new Array<ProcessedInstanceHierarchyNode>();\n const baseClassFullName = baseECClass.fullName;\n for (const node of nodes) {\n await releaseMainThread();\n if (\n !node.processingParams?.grouping?.byBaseClasses ||\n !node.processingParams.grouping.byBaseClasses.fullClassNames.some((className) => className === baseClassFullName)\n ) {\n ungroupedNodes.push(node);\n continue;\n }\n const fullCurrentNodeClassName = node.key.instanceKeys[0].className;\n\n const baseCheckerResult = classHierarchyInspector.classDerivesFrom(fullCurrentNodeClassName, baseClassFullName);\n // istanbul ignore next\n const isCurrentNodeClassOfBase = baseCheckerResult instanceof Promise ? await baseCheckerResult : baseCheckerResult;\n\n if (isCurrentNodeClassOfBase) {\n groupedNodes.push(node);\n } else {\n ungroupedNodes.push(node);\n }\n }\n\n const result: GroupingHandlerResult = { grouped: [], ungrouped: ungroupedNodes, groupingType: \"base-class\" };\n if (groupedNodes.length > 0) {\n const groupingNodeKey: ClassGroupingNodeKey = {\n type: \"class-grouping\",\n className: baseClassFullName,\n };\n result.grouped.push({\n label: baseECClass.label ?? baseECClass.name,\n key: groupingNodeKey,\n parentKeys: [...groupedNodes[0].parentKeys],\n groupedInstanceKeys: groupedNodes.flatMap((groupedInstanceNode) => groupedInstanceNode.key.instanceKeys),\n children: groupedNodes.map((gn) => Object.assign(gn, { parentKeys: [...gn.parentKeys, groupingNodeKey] })),\n });\n }\n return result;\n}\n\nasync function getGroupingBaseClassNames(nodes: ProcessedInstanceHierarchyNode[]) {\n const releaseMainThread = createMainThreadReleaseOnTimePassedHandler();\n const baseClasses = new Set<string>();\n for (const node of nodes) {\n await releaseMainThread();\n if (node.processingParams?.grouping?.byBaseClasses) {\n for (const className of node.processingParams.grouping.byBaseClasses.fullClassNames) {\n baseClasses.add(className);\n }\n }\n }\n return baseClasses;\n}\n\nasync function sortByBaseClass(classes: EC.Class[]): Promise<EC.Class[]> {\n if (classes.length === 0) {\n return classes;\n }\n const output: EC.Class[] = [classes[0]];\n for (let inputIndex = 1; inputIndex < classes.length; ++inputIndex) {\n let wasAdded = false;\n for (let outputIndex = output.length - 1; outputIndex >= 0; --outputIndex) {\n if (await classes[inputIndex].is(output[outputIndex])) {\n output.splice(outputIndex + 1, 0, classes[inputIndex]);\n wasAdded = true;\n break;\n }\n }\n if (!wasAdded) {\n output.splice(0, 0, classes[inputIndex]);\n }\n }\n\n return output;\n}\n\n/** @internal */\nexport async function createBaseClassGroupingHandlers(\n imodelAccess: ECSchemaProvider & ECClassHierarchyInspector,\n parentNode: ParentHierarchyNode | undefined,\n nodes: ProcessedInstanceHierarchyNode[],\n): Promise<GroupingHandler[]> {\n const baseClassGroupingECClasses = await getBaseClassGroupingECClasses(imodelAccess, parentNode, nodes);\n return baseClassGroupingECClasses.map((baseECClass) => async (allNodes) => createBaseClassGroupsForSingleBaseClass(allNodes, baseECClass, imodelAccess));\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ECSchemaProvider } from "@itwin/presentation-shared";
|
|
2
|
+
import { ParentHierarchyNode, ProcessedInstanceHierarchyNode } from "../../../HierarchyNode";
|
|
3
|
+
import { GroupingHandlerResult } from "../Grouping";
|
|
4
|
+
/** @internal */
|
|
5
|
+
export declare function createClassGroups(schemaProvider: ECSchemaProvider, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[]): Promise<GroupingHandlerResult>;
|
|
6
|
+
//# sourceMappingURL=ClassGrouping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassGrouping.d.ts","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/ClassGrouping.ts"],"names":[],"mappings":"AAKA,OAAO,EAA8C,gBAAgB,EAAY,MAAM,4BAA4B,CAAC;AACpH,OAAO,EAAiB,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAE5G,OAAO,EAAE,qBAAqB,EAA2C,MAAM,aAAa,CAAC;AAa7F,gBAAgB;AAChB,wBAAsB,iBAAiB,CACrC,cAAc,EAAE,gBAAgB,EAChC,UAAU,EAAE,mBAAmB,GAAG,SAAS,EAC3C,KAAK,EAAE,8BAA8B,EAAE,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAuBhC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createClassGroups = void 0;
|
|
8
|
+
const presentation_shared_1 = require("@itwin/presentation-shared");
|
|
9
|
+
const HierarchyNode_1 = require("../../../HierarchyNode");
|
|
10
|
+
/** @internal */
|
|
11
|
+
async function createClassGroups(schemaProvider, parentNode, nodes) {
|
|
12
|
+
const parentNodeClass = parentNode && HierarchyNode_1.HierarchyNode.isClassGroupingNode(parentNode) ? parentNode.key.className : undefined;
|
|
13
|
+
const groupings = { ungrouped: [], grouped: new Map() };
|
|
14
|
+
const releaseMainThread = (0, presentation_shared_1.createMainThreadReleaseOnTimePassedHandler)();
|
|
15
|
+
for (const node of nodes) {
|
|
16
|
+
await releaseMainThread();
|
|
17
|
+
const nodeClassName = node.key.instanceKeys[0].className;
|
|
18
|
+
if (node.processingParams?.grouping?.byClass && nodeClassName !== parentNodeClass) {
|
|
19
|
+
let groupingInfo = groupings.grouped.get(nodeClassName);
|
|
20
|
+
if (!groupingInfo) {
|
|
21
|
+
const nodeClass = await (0, presentation_shared_1.getClass)(schemaProvider, nodeClassName);
|
|
22
|
+
groupingInfo = {
|
|
23
|
+
class: nodeClass,
|
|
24
|
+
groupedNodes: [],
|
|
25
|
+
};
|
|
26
|
+
groupings.grouped.set(nodeClassName, groupingInfo);
|
|
27
|
+
}
|
|
28
|
+
groupingInfo.groupedNodes.push(node);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
groupings.ungrouped.push(node);
|
|
32
|
+
}
|
|
33
|
+
return createGroupingNodes(groupings);
|
|
34
|
+
}
|
|
35
|
+
exports.createClassGroups = createClassGroups;
|
|
36
|
+
async function createGroupingNodes(groupings) {
|
|
37
|
+
const groupedNodes = new Array();
|
|
38
|
+
const releaseMainThread = (0, presentation_shared_1.createMainThreadReleaseOnTimePassedHandler)();
|
|
39
|
+
for (const [, entry] of groupings.grouped) {
|
|
40
|
+
await releaseMainThread();
|
|
41
|
+
const groupingNodeKey = {
|
|
42
|
+
type: "class-grouping",
|
|
43
|
+
className: entry.class.fullName,
|
|
44
|
+
};
|
|
45
|
+
const groupedNodeParentKeys = entry.groupedNodes[0].parentKeys;
|
|
46
|
+
groupedNodes.push({
|
|
47
|
+
label: entry.class.label ?? entry.class.name,
|
|
48
|
+
key: groupingNodeKey,
|
|
49
|
+
parentKeys: groupedNodeParentKeys,
|
|
50
|
+
groupedInstanceKeys: entry.groupedNodes.flatMap((groupedInstanceNode) => groupedInstanceNode.key.instanceKeys),
|
|
51
|
+
children: entry.groupedNodes.map((gn) => Object.assign(gn, { parentKeys: [...groupedNodeParentKeys, groupingNodeKey] })),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return { grouped: groupedNodes, ungrouped: groupings.ungrouped, groupingType: "class" };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=ClassGrouping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassGrouping.js","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/ClassGrouping.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { createMainThreadReleaseOnTimePassedHandler, ECSchemaProvider, getClass } from \"@itwin/presentation-shared\";\nimport { HierarchyNode, ParentHierarchyNode, ProcessedInstanceHierarchyNode } from \"../../../HierarchyNode\";\nimport { ClassGroupingNodeKey } from \"../../../HierarchyNodeKey\";\nimport { GroupingHandlerResult, ProcessedInstancesGroupingHierarchyNode } from \"../Grouping\";\n\ninterface ClassInfo {\n fullName: string;\n name: string;\n label?: string;\n}\n\ninterface ClassGroupingInformation {\n ungrouped: ProcessedInstanceHierarchyNode[];\n grouped: Map<string, { class: ClassInfo; groupedNodes: ProcessedInstanceHierarchyNode[] }>;\n}\n\n/** @internal */\nexport async function createClassGroups(\n schemaProvider: ECSchemaProvider,\n parentNode: ParentHierarchyNode | undefined,\n nodes: ProcessedInstanceHierarchyNode[],\n): Promise<GroupingHandlerResult> {\n const parentNodeClass = parentNode && HierarchyNode.isClassGroupingNode(parentNode) ? parentNode.key.className : undefined;\n const groupings: ClassGroupingInformation = { ungrouped: [], grouped: new Map() };\n const releaseMainThread = createMainThreadReleaseOnTimePassedHandler();\n for (const node of nodes) {\n await releaseMainThread();\n const nodeClassName = node.key.instanceKeys[0].className;\n if (node.processingParams?.grouping?.byClass && nodeClassName !== parentNodeClass) {\n let groupingInfo = groupings.grouped.get(nodeClassName);\n if (!groupingInfo) {\n const nodeClass = await getClass(schemaProvider, nodeClassName);\n groupingInfo = {\n class: nodeClass,\n groupedNodes: [],\n };\n groupings.grouped.set(nodeClassName, groupingInfo);\n }\n groupingInfo.groupedNodes.push(node);\n continue;\n }\n groupings.ungrouped.push(node);\n }\n return createGroupingNodes(groupings);\n}\n\nasync function createGroupingNodes(groupings: ClassGroupingInformation): Promise<GroupingHandlerResult> {\n const groupedNodes = new Array<ProcessedInstancesGroupingHierarchyNode>();\n const releaseMainThread = createMainThreadReleaseOnTimePassedHandler();\n for (const [, entry] of groupings.grouped) {\n await releaseMainThread();\n const groupingNodeKey: ClassGroupingNodeKey = {\n type: \"class-grouping\",\n className: entry.class.fullName,\n };\n const groupedNodeParentKeys = entry.groupedNodes[0].parentKeys;\n groupedNodes.push({\n label: entry.class.label ?? entry.class.name,\n key: groupingNodeKey,\n parentKeys: groupedNodeParentKeys,\n groupedInstanceKeys: entry.groupedNodes.flatMap((groupedInstanceNode) => groupedInstanceNode.key.instanceKeys),\n children: entry.groupedNodes.map((gn) => Object.assign(gn, { parentKeys: [...groupedNodeParentKeys, groupingNodeKey] })),\n });\n }\n return { grouped: groupedNodes, ungrouped: groupings.ungrouped, groupingType: \"class\" };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupHiding.d.ts","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/GroupHiding.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAyD,MAAM,aAAa,CAAC;AAG3G,gBAAgB;AAChB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,GAAG,qBAAqB,CA+BjH"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.applyGroupHidingParams = void 0;
|
|
8
|
+
const Shared_1 = require("./Shared");
|
|
9
|
+
/** @internal */
|
|
10
|
+
function applyGroupHidingParams(props, extraSiblings) {
|
|
11
|
+
const { grouped, ungrouped, groupingType } = props;
|
|
12
|
+
if (grouped.length === 0) {
|
|
13
|
+
return props;
|
|
14
|
+
}
|
|
15
|
+
// handle the "no siblings" case
|
|
16
|
+
if (grouped.length === 1 && ungrouped.length === 0 && extraSiblings === 0) {
|
|
17
|
+
const hideParams = getHideOptionsFromNodeProcessingParams(grouped[0], groupingType);
|
|
18
|
+
if (hideParams.hideIfNoSiblings) {
|
|
19
|
+
return { groupingType, grouped: [], ungrouped: grouped[0].children };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// handle the "no children" case
|
|
23
|
+
const filteredGrouped = new Array();
|
|
24
|
+
for (const node of grouped) {
|
|
25
|
+
if (node.children.length === 1) {
|
|
26
|
+
const hideParams = getHideOptionsFromNodeProcessingParams(node, groupingType);
|
|
27
|
+
if (hideParams.hideIfOneGroupedNode) {
|
|
28
|
+
ungrouped.push(node.children[0]);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
filteredGrouped.push(node);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
groupingType,
|
|
36
|
+
grouped: filteredGrouped,
|
|
37
|
+
ungrouped,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.applyGroupHidingParams = applyGroupHidingParams;
|
|
41
|
+
function getHideOptionsFromNodeProcessingParams(groupingNode, groupingType) {
|
|
42
|
+
let hideIfNoSiblings = false;
|
|
43
|
+
let hideIfOneGroupedNode = false;
|
|
44
|
+
(0, Shared_1.iterateChildNodeGroupingParams)(groupingNode, groupingType, (groupingProps) => {
|
|
45
|
+
if (hideIfNoSiblings && hideIfOneGroupedNode) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
hideIfNoSiblings ||= !!groupingProps?.hideIfNoSiblings;
|
|
49
|
+
hideIfOneGroupedNode ||= !!groupingProps?.hideIfOneGroupedNode;
|
|
50
|
+
return;
|
|
51
|
+
});
|
|
52
|
+
return { hideIfNoSiblings, hideIfOneGroupedNode };
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=GroupHiding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupHiding.js","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/GroupHiding.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAGhG,qCAA0D;AAE1D,gBAAgB;AAChB,SAAgB,sBAAsB,CAAC,KAA4B,EAAE,aAAqB;IACxF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gCAAgC;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,UAAU,GAAG,sCAAsC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACpF,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvE,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,eAAe,GAAG,IAAI,KAAK,EAA2C,CAAC;IAC7E,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,sCAAsC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC9E,IAAI,UAAU,CAAC,oBAAoB,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;QACH,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO;QACL,YAAY;QACZ,OAAO,EAAE,eAAe;QACxB,SAAS;KACV,CAAC;AACJ,CAAC;AA/BD,wDA+BC;AAED,SAAS,sCAAsC,CAC7C,YAAqD,EACrD,YAA0B;IAE1B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,IAAA,uCAA8B,EAAC,YAAY,EAAE,YAAY,EAAE,CAAC,aAAa,EAAE,EAAE;QAC3E,IAAI,gBAAgB,IAAI,oBAAoB,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,gBAAgB,KAAK,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACvD,oBAAoB,KAAK,CAAC,CAAC,aAAa,EAAE,oBAAoB,CAAC;QAC/D,OAAO;IACT,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;AACpD,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { GroupingHandlerResult, GroupingType, ProcessedInstancesGroupingHierarchyNode } from \"../Grouping\";\nimport { iterateChildNodeGroupingParams } from \"./Shared\";\n\n/** @internal */\nexport function applyGroupHidingParams(props: GroupingHandlerResult, extraSiblings: number): GroupingHandlerResult {\n const { grouped, ungrouped, groupingType } = props;\n if (grouped.length === 0) {\n return props;\n }\n\n // handle the \"no siblings\" case\n if (grouped.length === 1 && ungrouped.length === 0 && extraSiblings === 0) {\n const hideParams = getHideOptionsFromNodeProcessingParams(grouped[0], groupingType);\n if (hideParams.hideIfNoSiblings) {\n return { groupingType, grouped: [], ungrouped: grouped[0].children };\n }\n }\n\n // handle the \"no children\" case\n const filteredGrouped = new Array<ProcessedInstancesGroupingHierarchyNode>();\n for (const node of grouped) {\n if (node.children.length === 1) {\n const hideParams = getHideOptionsFromNodeProcessingParams(node, groupingType);\n if (hideParams.hideIfOneGroupedNode) {\n ungrouped.push(node.children[0]);\n continue;\n }\n }\n filteredGrouped.push(node);\n }\n return {\n groupingType,\n grouped: filteredGrouped,\n ungrouped,\n };\n}\n\nfunction getHideOptionsFromNodeProcessingParams(\n groupingNode: ProcessedInstancesGroupingHierarchyNode,\n groupingType: GroupingType,\n): { hideIfNoSiblings: boolean; hideIfOneGroupedNode: boolean } {\n let hideIfNoSiblings = false;\n let hideIfOneGroupedNode = false;\n iterateChildNodeGroupingParams(groupingNode, groupingType, (groupingProps) => {\n if (hideIfNoSiblings && hideIfOneGroupedNode) {\n return true;\n }\n hideIfNoSiblings ||= !!groupingProps?.hideIfNoSiblings;\n hideIfOneGroupedNode ||= !!groupingProps?.hideIfOneGroupedNode;\n return;\n });\n return { hideIfNoSiblings, hideIfOneGroupedNode };\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ProcessedInstanceHierarchyNode } from "../../../HierarchyNode";
|
|
2
|
+
import { GroupingHandlerResult } from "../Grouping";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare function createLabelGroups(nodes: ProcessedInstanceHierarchyNode[]): Promise<GroupingHandlerResult>;
|
|
5
|
+
//# sourceMappingURL=LabelGrouping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LabelGrouping.d.ts","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/LabelGrouping.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAA2C,MAAM,aAAa,CAAC;AAE7F,gBAAgB;AAChB,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAoD/G"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createLabelGroups = void 0;
|
|
8
|
+
const Common_1 = require("../../Common");
|
|
9
|
+
/** @internal */
|
|
10
|
+
async function createLabelGroups(nodes) {
|
|
11
|
+
const ungrouped = new Array();
|
|
12
|
+
const nodesToMergeMap = new Map();
|
|
13
|
+
const nodesToGroupMap = new Map();
|
|
14
|
+
for (const node of nodes) {
|
|
15
|
+
const byLabel = node.processingParams?.grouping?.byLabel;
|
|
16
|
+
if (!byLabel) {
|
|
17
|
+
ungrouped.push(node);
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const nodeMapKeyIdentifier = `label:"${node.label}";groupId:${JSON.stringify(typeof byLabel === "object" ? byLabel.groupId : undefined)}`;
|
|
21
|
+
const map = typeof byLabel === "object" && byLabel.action === "merge" ? nodesToMergeMap : nodesToGroupMap;
|
|
22
|
+
let list = map.get(nodeMapKeyIdentifier);
|
|
23
|
+
if (!list) {
|
|
24
|
+
list = [];
|
|
25
|
+
map.set(nodeMapKeyIdentifier, list);
|
|
26
|
+
}
|
|
27
|
+
list.push(node);
|
|
28
|
+
}
|
|
29
|
+
nodesToMergeMap.forEach((entry) => {
|
|
30
|
+
let finalNode = entry[0];
|
|
31
|
+
for (let i = 1; i < entry.length; ++i) {
|
|
32
|
+
finalNode = (0, Common_1.mergeNodes)(finalNode, entry[i]);
|
|
33
|
+
}
|
|
34
|
+
ungrouped.push(finalNode);
|
|
35
|
+
});
|
|
36
|
+
const groupedNodes = new Array();
|
|
37
|
+
nodesToGroupMap.forEach((entry) => {
|
|
38
|
+
const byLabel = entry[0].processingParams?.grouping?.byLabel;
|
|
39
|
+
const groupId = typeof byLabel === "object" ? byLabel.groupId : undefined;
|
|
40
|
+
const groupingNodeKey = {
|
|
41
|
+
type: "label-grouping",
|
|
42
|
+
label: entry[0].label,
|
|
43
|
+
groupId,
|
|
44
|
+
};
|
|
45
|
+
const groupedNodeParentKeys = entry[0].parentKeys;
|
|
46
|
+
groupedNodes.push({
|
|
47
|
+
label: entry[0].label,
|
|
48
|
+
key: groupingNodeKey,
|
|
49
|
+
parentKeys: groupedNodeParentKeys,
|
|
50
|
+
groupedInstanceKeys: entry.flatMap((groupedInstanceNode) => groupedInstanceNode.key.instanceKeys),
|
|
51
|
+
children: entry.map((gn) => Object.assign(gn, { parentKeys: [...groupedNodeParentKeys, groupingNodeKey] })),
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
groupingType: "label",
|
|
56
|
+
grouped: groupedNodes,
|
|
57
|
+
ungrouped,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
exports.createLabelGroups = createLabelGroups;
|
|
61
|
+
//# sourceMappingURL=LabelGrouping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LabelGrouping.js","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/LabelGrouping.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ProcessedInstanceHierarchyNode } from \"../../../HierarchyNode\";\nimport { LabelGroupingNodeKey } from \"../../../HierarchyNodeKey\";\nimport { mergeNodes } from \"../../Common\";\nimport { GroupingHandlerResult, ProcessedInstancesGroupingHierarchyNode } from \"../Grouping\";\n\n/** @internal */\nexport async function createLabelGroups(nodes: ProcessedInstanceHierarchyNode[]): Promise<GroupingHandlerResult> {\n const ungrouped = new Array<ProcessedInstanceHierarchyNode>();\n const nodesToMergeMap = new Map<string, ProcessedInstanceHierarchyNode[]>();\n const nodesToGroupMap = new Map<string, ProcessedInstanceHierarchyNode[]>();\n for (const node of nodes) {\n const byLabel = node.processingParams?.grouping?.byLabel;\n if (!byLabel) {\n ungrouped.push(node);\n continue;\n }\n const nodeMapKeyIdentifier = `label:\"${node.label}\";groupId:${JSON.stringify(typeof byLabel === \"object\" ? byLabel.groupId : undefined)}`;\n const map = typeof byLabel === \"object\" && byLabel.action === \"merge\" ? nodesToMergeMap : nodesToGroupMap;\n let list = map.get(nodeMapKeyIdentifier);\n if (!list) {\n list = [];\n map.set(nodeMapKeyIdentifier, list);\n }\n list.push(node);\n }\n\n nodesToMergeMap.forEach((entry) => {\n let finalNode = entry[0];\n for (let i = 1; i < entry.length; ++i) {\n finalNode = mergeNodes(finalNode, entry[i]);\n }\n ungrouped.push(finalNode);\n });\n\n const groupedNodes = new Array<ProcessedInstancesGroupingHierarchyNode>();\n nodesToGroupMap.forEach((entry) => {\n const byLabel = entry[0].processingParams?.grouping?.byLabel;\n const groupId = typeof byLabel === \"object\" ? byLabel.groupId : undefined;\n const groupingNodeKey: LabelGroupingNodeKey = {\n type: \"label-grouping\",\n label: entry[0].label,\n groupId,\n };\n const groupedNodeParentKeys = entry[0].parentKeys;\n groupedNodes.push({\n label: entry[0].label,\n key: groupingNodeKey,\n parentKeys: groupedNodeParentKeys,\n groupedInstanceKeys: entry.flatMap((groupedInstanceNode) => groupedInstanceNode.key.instanceKeys),\n children: entry.map((gn) => Object.assign(gn, { parentKeys: [...groupedNodeParentKeys, groupingNodeKey] })),\n });\n });\n\n return {\n groupingType: \"label\",\n grouped: groupedNodes,\n ungrouped,\n };\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EC, ECClassHierarchyInspector, ECSchemaProvider, IPrimitiveValueFormatter } from "@itwin/presentation-shared";
|
|
2
|
+
import { HierarchyNodePropertiesGroupingParams, HierarchyNodePropertyGroup, HierarchyNodePropertyValueRange, ParentHierarchyNode, ProcessedInstanceHierarchyNode } from "../../../HierarchyNode";
|
|
3
|
+
import { GroupingHandler, GroupingHandlerResult, ProcessedInstancesGroupingHierarchyNode } from "../Grouping";
|
|
4
|
+
/** @internal */
|
|
5
|
+
export interface PropertiesGroupingLocalizedStrings {
|
|
6
|
+
other: string;
|
|
7
|
+
unspecified: string;
|
|
8
|
+
}
|
|
9
|
+
/** @internal */
|
|
10
|
+
export interface PropertyGroupInfo {
|
|
11
|
+
ecClass: EC.Class;
|
|
12
|
+
previousPropertiesGroupingInfo: PreviousPropertiesGroupingInfo;
|
|
13
|
+
propertyGroup: Omit<HierarchyNodePropertyGroup, "propertyValue">;
|
|
14
|
+
}
|
|
15
|
+
/** @internal */
|
|
16
|
+
export type PreviousPropertiesGroupingInfo = Array<{
|
|
17
|
+
propertiesClassName: string;
|
|
18
|
+
propertyName: string;
|
|
19
|
+
isRange?: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
/** @internal */
|
|
22
|
+
export declare function createPropertyGroups(nodesToGroup: ProcessedInstanceHierarchyNode[], nodesAlreadyGrouped: ProcessedInstancesGroupingHierarchyNode[], handlerGroupingParams: PropertyGroupInfo, valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings, classHierarchyInspector: ECClassHierarchyInspector): Promise<GroupingHandlerResult>;
|
|
23
|
+
/** @internal */
|
|
24
|
+
export declare function getUniquePropertiesGroupInfo(schemaProvider: ECSchemaProvider, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[]): Promise<Array<PropertyGroupInfo>>;
|
|
25
|
+
/** @internal */
|
|
26
|
+
export declare function doPreviousPropertiesMatch(previousPropertiesGroupingInfo: PreviousPropertiesGroupingInfo, nodesProperties: HierarchyNodePropertiesGroupingParams): boolean;
|
|
27
|
+
/** @internal */
|
|
28
|
+
export declare function doRangesMatch(ranges1: HierarchyNodePropertyValueRange[] | undefined, ranges2: HierarchyNodePropertyValueRange[] | undefined): boolean;
|
|
29
|
+
/** @internal */
|
|
30
|
+
export declare function createPropertiesGroupingHandlers(imodelAccess: ECSchemaProvider & ECClassHierarchyInspector, parentNode: ParentHierarchyNode | undefined, nodes: ProcessedInstanceHierarchyNode[], valueFormatter: IPrimitiveValueFormatter, localizedStrings: PropertiesGroupingLocalizedStrings): Promise<GroupingHandler[]>;
|
|
31
|
+
//# sourceMappingURL=PropertiesGrouping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertiesGrouping.d.ts","sourceRoot":"","sources":["../../../../../../src/hierarchies/internal/operators/grouping/PropertiesGrouping.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,EAAE,EACF,yBAAyB,EACzB,gBAAgB,EAEhB,wBAAwB,EAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,qCAAqC,EACrC,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,8BAA8B,EAC/B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,uCAAuC,EAAE,MAAM,aAAa,CAAC;AAY9G,gBAAgB;AAChB,MAAM,WAAW,kCAAkC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,gBAAgB;AAChB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;IAClB,8BAA8B,EAAE,8BAA8B,CAAC;IAC/D,aAAa,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,CAAC;CAClE;AAED,gBAAgB;AAChB,MAAM,MAAM,8BAA8B,GAAG,KAAK,CAAC;IAAE,mBAAmB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE7H,gBAAgB;AAChB,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,8BAA8B,EAAE,EAC9C,mBAAmB,EAAE,uCAAuC,EAAE,EAC9D,qBAAqB,EAAE,iBAAiB,EACxC,cAAc,EAAE,wBAAwB,EACxC,gBAAgB,EAAE,kCAAkC,EACpD,uBAAuB,EAAE,yBAAyB,GACjD,OAAO,CAAC,qBAAqB,CAAC,CAuJhC;AA8ED,gBAAgB;AAChB,wBAAsB,4BAA4B,CAChD,cAAc,EAAE,gBAAgB,EAChC,UAAU,EAAE,mBAAmB,GAAG,SAAS,EAC3C,KAAK,EAAE,8BAA8B,EAAE,GACtC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAqDnC;AAoCD,gBAAgB;AAChB,wBAAgB,yBAAyB,CACvC,8BAA8B,EAAE,8BAA8B,EAC9D,eAAe,EAAE,qCAAqC,GACrD,OAAO,CAUT;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,OAAO,EAAE,+BAA+B,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,+BAA+B,EAAE,GAAG,SAAS,GAAG,OAAO,CAwBrJ;AAED,gBAAgB;AAChB,wBAAsB,gCAAgC,CACpD,YAAY,EAAE,gBAAgB,GAAG,yBAAyB,EAC1D,UAAU,EAAE,mBAAmB,GAAG,SAAS,EAC3C,KAAK,EAAE,8BAA8B,EAAE,EACvC,cAAc,EAAE,wBAAwB,EACxC,gBAAgB,EAAE,kCAAkC,GACnD,OAAO,CAAC,eAAe,EAAE,CAAC,CAM5B"}
|