@itwin/tree-widget-react 2.3.1 → 3.0.0-dev.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 +2 -2
- package/lib/cjs/TreeWidget.d.ts +2 -3
- package/lib/cjs/TreeWidget.js.map +1 -1
- package/lib/cjs/components/tree-header/TreeHeader.js +11 -3
- package/lib/cjs/components/tree-header/TreeHeader.js.map +1 -1
- package/lib/cjs/components/trees/CategoriesVisibilityUtils.d.ts +1 -1
- package/lib/cjs/components/trees/CategoriesVisibilityUtils.js.map +1 -1
- package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +1 -1
- package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +1 -1
- package/lib/cjs/components/trees/category-tree/CategoriesTreeButtons.d.ts +28 -0
- package/lib/cjs/components/trees/category-tree/CategoriesTreeButtons.js +38 -0
- package/lib/cjs/components/trees/category-tree/CategoriesTreeButtons.js.map +1 -0
- package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.d.ts +2 -17
- package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js +7 -26
- package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +1 -8
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
- package/lib/cjs/components/trees/index.d.ts +3 -0
- package/lib/cjs/components/trees/index.js +1 -0
- package/lib/cjs/components/trees/index.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.d.ts +33 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js +86 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.d.ts +2 -24
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +24 -76
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/Utils.d.ts +2 -2
- package/lib/cjs/components/trees/models-tree/Utils.js.map +1 -1
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTree.d.ts +20 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTree.js +61 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTree.js.map +1 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeComponent.d.ts +16 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeComponent.js +43 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeComponent.js.map +1 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeDefinition.d.ts +23 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeDefinition.js +180 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.d.ts +36 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.js +94 -0
- package/lib/cjs/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/FocusedInstancesContext.d.ts +13 -0
- package/lib/cjs/components/trees/stateless/common/FocusedInstancesContext.js +16 -0
- package/lib/cjs/components/trees/stateless/common/FocusedInstancesContext.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/FocusedInstancesContextProvider.d.ts +8 -0
- package/lib/cjs/components/trees/stateless/common/FocusedInstancesContextProvider.js +47 -0
- package/lib/cjs/components/trees/stateless/common/FocusedInstancesContextProvider.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchiesLocalization.d.ts +8 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchiesLocalization.js +33 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchiesLocalization.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchyFiltering.d.ts +16 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchyFiltering.js +139 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchyFiltering.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchyVisibility.d.ts +21 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchyVisibility.js +82 -0
- package/lib/cjs/components/trees/stateless/common/UseHierarchyVisibility.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/UseMultiCheckboxHandler.d.ts +13 -0
- package/lib/cjs/components/trees/stateless/common/UseMultiCheckboxHandler.js +34 -0
- package/lib/cjs/components/trees/stateless/common/UseMultiCheckboxHandler.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/Utils.d.ts +3 -0
- package/lib/cjs/components/trees/stateless/common/Utils.js +23 -0
- package/lib/cjs/components/trees/stateless/common/Utils.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/Delayed.d.ts +6 -0
- package/lib/cjs/components/trees/stateless/common/components/Delayed.js +31 -0
- package/lib/cjs/components/trees/stateless/common/components/Delayed.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/FilterableTree.d.ts +23 -0
- package/lib/cjs/components/trees/stateless/common/components/FilterableTree.js +66 -0
- package/lib/cjs/components/trees/stateless/common/components/FilterableTree.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/ProgressOverlay.d.ts +5 -0
- package/lib/cjs/components/trees/stateless/common/components/ProgressOverlay.js +16 -0
- package/lib/cjs/components/trees/stateless/common/components/ProgressOverlay.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/ProgressOverlay.scss +21 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTree.d.ts +26 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTree.js +68 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTree.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.d.ts +12 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.js +24 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.d.ts +10 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.js +20 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.d.ts +16 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.js +23 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.js.map +1 -0
- package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.scss +41 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTree.d.ts +13 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js +40 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js.map +1 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.d.ts +14 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js +25 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +20 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.js +244 -0
- package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTree.d.ts +13 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTree.js +48 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTree.js.map +1 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.d.ts +14 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js +25 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js.map +1 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.d.ts +25 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.js +639 -0
- package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/stateless/index.d.ts +5 -0
- package/lib/cjs/components/trees/stateless/index.js +16 -0
- package/lib/cjs/components/trees/stateless/index.js.map +1 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTree.d.ts +16 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTree.js +77 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTree.js.map +1 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeComponent.d.ts +17 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeComponent.js +55 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeComponent.js.map +1 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeDefinition.d.ts +35 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeDefinition.js +856 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeDefinition.js.map +1 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsVisibilityHandler.d.ts +48 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsVisibilityHandler.js +470 -0
- package/lib/cjs/components/trees/stateless/models-tree/ModelsVisibilityHandler.js.map +1 -0
- package/lib/esm/TreeWidget.d.ts +2 -3
- package/lib/esm/TreeWidget.js.map +1 -1
- package/lib/esm/components/tree-header/TreeHeader.js +11 -3
- package/lib/esm/components/tree-header/TreeHeader.js.map +1 -1
- package/lib/esm/components/trees/CategoriesVisibilityUtils.d.ts +1 -1
- package/lib/esm/components/trees/CategoriesVisibilityUtils.js.map +1 -1
- package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +1 -1
- package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +1 -1
- package/lib/esm/components/trees/category-tree/CategoriesTreeButtons.d.ts +28 -0
- package/lib/esm/components/trees/category-tree/CategoriesTreeButtons.js +32 -0
- package/lib/esm/components/trees/category-tree/CategoriesTreeButtons.js.map +1 -0
- package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.d.ts +2 -17
- package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js +2 -21
- package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +1 -8
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
- package/lib/esm/components/trees/index.d.ts +3 -0
- package/lib/esm/components/trees/index.js +1 -0
- package/lib/esm/components/trees/index.js.map +1 -1
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.d.ts +33 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js +77 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js.map +1 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.d.ts +2 -24
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js +20 -72
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
- package/lib/esm/components/trees/models-tree/Utils.d.ts +2 -2
- package/lib/esm/components/trees/models-tree/Utils.js.map +1 -1
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTree.d.ts +20 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTree.js +57 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTree.js.map +1 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeComponent.d.ts +16 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeComponent.js +39 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeComponent.js.map +1 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeDefinition.d.ts +23 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeDefinition.js +176 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.d.ts +36 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.js +90 -0
- package/lib/esm/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/FocusedInstancesContext.d.ts +13 -0
- package/lib/esm/components/trees/stateless/common/FocusedInstancesContext.js +12 -0
- package/lib/esm/components/trees/stateless/common/FocusedInstancesContext.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/FocusedInstancesContextProvider.d.ts +8 -0
- package/lib/esm/components/trees/stateless/common/FocusedInstancesContextProvider.js +43 -0
- package/lib/esm/components/trees/stateless/common/FocusedInstancesContextProvider.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchiesLocalization.d.ts +8 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchiesLocalization.js +29 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchiesLocalization.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchyFiltering.d.ts +16 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchyFiltering.js +135 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchyFiltering.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchyVisibility.d.ts +21 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchyVisibility.js +78 -0
- package/lib/esm/components/trees/stateless/common/UseHierarchyVisibility.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/UseMultiCheckboxHandler.d.ts +13 -0
- package/lib/esm/components/trees/stateless/common/UseMultiCheckboxHandler.js +30 -0
- package/lib/esm/components/trees/stateless/common/UseMultiCheckboxHandler.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/Utils.d.ts +3 -0
- package/lib/esm/components/trees/stateless/common/Utils.js +19 -0
- package/lib/esm/components/trees/stateless/common/Utils.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/Delayed.d.ts +6 -0
- package/lib/esm/components/trees/stateless/common/components/Delayed.js +27 -0
- package/lib/esm/components/trees/stateless/common/components/Delayed.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/FilterableTree.d.ts +23 -0
- package/lib/esm/components/trees/stateless/common/components/FilterableTree.js +62 -0
- package/lib/esm/components/trees/stateless/common/components/FilterableTree.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/ProgressOverlay.d.ts +5 -0
- package/lib/esm/components/trees/stateless/common/components/ProgressOverlay.js +12 -0
- package/lib/esm/components/trees/stateless/common/components/ProgressOverlay.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/ProgressOverlay.scss +21 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTree.d.ts +26 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTree.js +64 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTree.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.d.ts +12 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.js +20 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.d.ts +10 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.js +13 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.d.ts +16 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.js +19 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.js.map +1 -0
- package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.scss +41 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTree.d.ts +13 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js +36 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js.map +1 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.d.ts +14 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js +21 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +20 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.js +240 -0
- package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTree.d.ts +13 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTree.js +44 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTree.js.map +1 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.d.ts +14 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js +21 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js.map +1 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.d.ts +25 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.js +635 -0
- package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/stateless/index.d.ts +5 -0
- package/lib/esm/components/trees/stateless/index.js +9 -0
- package/lib/esm/components/trees/stateless/index.js.map +1 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTree.d.ts +16 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTree.js +73 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTree.js.map +1 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTreeComponent.d.ts +17 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTreeComponent.js +51 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTreeComponent.js.map +1 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTreeDefinition.d.ts +35 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTreeDefinition.js +852 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsTreeDefinition.js.map +1 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsVisibilityHandler.d.ts +48 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsVisibilityHandler.js +466 -0
- package/lib/esm/components/trees/stateless/models-tree/ModelsVisibilityHandler.js.map +1 -0
- package/lib/public/locales/en/TreeWidget.json +21 -0
- package/package.json +7 -1
package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.js
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { createClassBasedHierarchyDefinition, createNodesQueryClauseFactory, HierarchyNode } from "@itwin/presentation-hierarchies";
|
|
6
|
+
import { createBisInstanceLabelSelectClauseFactory, ECSql } from "@itwin/presentation-shared";
|
|
7
|
+
export class ExternalSourcesTreeDefinition {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
this._impl = createClassBasedHierarchyDefinition({
|
|
10
|
+
classHierarchyInspector: props.imodelAccess,
|
|
11
|
+
hierarchy: {
|
|
12
|
+
rootNodes: async (requestProps) => this.createRootHierarchyLevelDefinition(requestProps),
|
|
13
|
+
childNodes: [
|
|
14
|
+
{
|
|
15
|
+
parentNodeClassName: "BisCore.ExternalSourceGroup",
|
|
16
|
+
definitions: async (requestProps) => this.createExternalSourcesGroupChildrenQuery(requestProps),
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
parentNodeClassName: "BisCore.ExternalSource",
|
|
20
|
+
definitions: async (requestProps) => this.createExternalSourceChildrenQuery(requestProps),
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
customParentNodeKey: "ElementsNode",
|
|
24
|
+
definitions: async (requestProps) => this.createElementsNodeChildrenQuery(requestProps),
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
this._selectQueryFactory = createNodesQueryClauseFactory({ imodelAccess: props.imodelAccess });
|
|
30
|
+
this._nodeLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory({ classHierarchyInspector: props.imodelAccess });
|
|
31
|
+
}
|
|
32
|
+
async postProcessNode(node) {
|
|
33
|
+
if (HierarchyNode.isClassGroupingNode(node)) {
|
|
34
|
+
// `imageId` is assigned to instance nodes at query time, but grouping ones need to be handled during post-processing
|
|
35
|
+
return { ...node, extendedData: { ...node.extendedData, imageId: "icon-ec-class" } };
|
|
36
|
+
}
|
|
37
|
+
return node;
|
|
38
|
+
}
|
|
39
|
+
async defineHierarchyLevel(props) {
|
|
40
|
+
return this._impl.defineHierarchyLevel(props);
|
|
41
|
+
}
|
|
42
|
+
async createRootHierarchyLevelDefinition(props) {
|
|
43
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
44
|
+
filter: props.instanceFilter,
|
|
45
|
+
contentClass: { fullName: "BisCore.ExternalSource", alias: "this" },
|
|
46
|
+
});
|
|
47
|
+
return [
|
|
48
|
+
{
|
|
49
|
+
fullClassName: "BisCore.ExternalSource",
|
|
50
|
+
query: {
|
|
51
|
+
ecsql: `
|
|
52
|
+
SELECT
|
|
53
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
54
|
+
ecClassId: { selector: ECSql.createRawPropertyValueSelector("this", "ECClassId") },
|
|
55
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
56
|
+
nodeLabel: {
|
|
57
|
+
selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: "this", repositoryLinkAlias: "rl" }),
|
|
58
|
+
},
|
|
59
|
+
extendedData: {
|
|
60
|
+
imageId: "icon-document",
|
|
61
|
+
},
|
|
62
|
+
autoExpand: true,
|
|
63
|
+
supportsFiltering: true,
|
|
64
|
+
})}
|
|
65
|
+
FROM ${instanceFilterClauses.from} this
|
|
66
|
+
${instanceFilterClauses.joins}
|
|
67
|
+
JOIN BisCore.SynchronizationConfigSpecifiesRootSources scsrs ON scsrs.TargetECInstanceId = this.ECInstanceId
|
|
68
|
+
JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id
|
|
69
|
+
${instanceFilterClauses.where ? `WHERE ${instanceFilterClauses.where}` : ""}
|
|
70
|
+
`,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
async createExternalSourcesGroupChildrenQuery({ parentNodeInstanceIds: groupIds, instanceFilter, }) {
|
|
76
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
77
|
+
filter: instanceFilter,
|
|
78
|
+
contentClass: { fullName: "BisCore.ExternalSource", alias: "this" },
|
|
79
|
+
});
|
|
80
|
+
return [
|
|
81
|
+
{
|
|
82
|
+
fullClassName: "BisCore.ExternalSource",
|
|
83
|
+
query: {
|
|
84
|
+
ecsql: `
|
|
85
|
+
SELECT
|
|
86
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
87
|
+
ecClassId: { selector: "this.ECClassId" },
|
|
88
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
89
|
+
nodeLabel: {
|
|
90
|
+
selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: "this", repositoryLinkAlias: "rl" }),
|
|
91
|
+
},
|
|
92
|
+
hasChildren: {
|
|
93
|
+
selector: `
|
|
94
|
+
IFNULL((
|
|
95
|
+
SELECT 1
|
|
96
|
+
FROM BisCore.ExternalSourceAttachment esa
|
|
97
|
+
WHERE esa.Attaches.Id = this.ECInstanceId
|
|
98
|
+
LIMIT 1
|
|
99
|
+
), 0)
|
|
100
|
+
`,
|
|
101
|
+
},
|
|
102
|
+
extendedData: {
|
|
103
|
+
imageId: "icon-document",
|
|
104
|
+
},
|
|
105
|
+
supportsFiltering: true,
|
|
106
|
+
})}
|
|
107
|
+
FROM ${instanceFilterClauses.from} this
|
|
108
|
+
JOIN BisCore.ExternalSourceGroupGroupsSources esggs ON esggs.TargetECInstanceId = this.ECInstanceId
|
|
109
|
+
JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id
|
|
110
|
+
${instanceFilterClauses.joins}
|
|
111
|
+
WHERE
|
|
112
|
+
esggs.SourceECInstanceId IN (${groupIds.map(() => "?").join(",")})
|
|
113
|
+
${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
|
|
114
|
+
`,
|
|
115
|
+
bindings: groupIds.map((id) => ({ type: "id", value: id })),
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
async createExternalSourceChildrenQuery({ parentNodeInstanceIds: sourceIds, instanceFilter, }) {
|
|
121
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
122
|
+
filter: instanceFilter,
|
|
123
|
+
contentClass: { fullName: "BisCore.ExternalSource", alias: "this" },
|
|
124
|
+
});
|
|
125
|
+
return [
|
|
126
|
+
{
|
|
127
|
+
fullClassName: "BisCore.ExternalSource",
|
|
128
|
+
query: {
|
|
129
|
+
ecsql: `
|
|
130
|
+
SELECT
|
|
131
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
132
|
+
ecClassId: { selector: "this.ECClassId" },
|
|
133
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
134
|
+
nodeLabel: {
|
|
135
|
+
selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: "this", repositoryLinkAlias: "rl" }),
|
|
136
|
+
},
|
|
137
|
+
hasChildren: {
|
|
138
|
+
selector: `
|
|
139
|
+
IFNULL((
|
|
140
|
+
SELECT 1
|
|
141
|
+
FROM BisCore.ExternalSourceAttachment esa
|
|
142
|
+
WHERE esa.Attaches.Id = this.ECInstanceId
|
|
143
|
+
LIMIT 1
|
|
144
|
+
), 0)
|
|
145
|
+
`,
|
|
146
|
+
},
|
|
147
|
+
extendedData: {
|
|
148
|
+
imageId: "icon-document",
|
|
149
|
+
},
|
|
150
|
+
supportsFiltering: true,
|
|
151
|
+
})}
|
|
152
|
+
FROM ${instanceFilterClauses.from} this
|
|
153
|
+
JOIN BisCore.ExternalSourceAttachment esa ON esa.Attaches.Id = this.ECInstanceId
|
|
154
|
+
JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id
|
|
155
|
+
${instanceFilterClauses.joins}
|
|
156
|
+
WHERE
|
|
157
|
+
esa.Parent.Id IN (${sourceIds.map(() => "?").join(",")})
|
|
158
|
+
${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
|
|
159
|
+
`,
|
|
160
|
+
bindings: sourceIds.map((id) => ({ type: "id", value: id })),
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
node: {
|
|
165
|
+
key: "ElementsNode",
|
|
166
|
+
label: "Elements",
|
|
167
|
+
extendedData: {
|
|
168
|
+
sourceIds,
|
|
169
|
+
imageId: "icon-ec-schema",
|
|
170
|
+
},
|
|
171
|
+
supportsFiltering: true,
|
|
172
|
+
processingParams: {
|
|
173
|
+
hideIfNoChildren: true,
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
];
|
|
178
|
+
}
|
|
179
|
+
async createElementsNodeChildrenQuery({ parentNode, instanceFilter }) {
|
|
180
|
+
const sourceIds = parentNode.extendedData?.sourceIds;
|
|
181
|
+
const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
|
|
182
|
+
filter: instanceFilter,
|
|
183
|
+
contentClass: { fullName: "BisCore.GeometricElement", alias: "this" },
|
|
184
|
+
});
|
|
185
|
+
return [
|
|
186
|
+
{
|
|
187
|
+
fullClassName: "BisCore.GeometricElement",
|
|
188
|
+
query: {
|
|
189
|
+
ecsql: `
|
|
190
|
+
SELECT
|
|
191
|
+
${await this._selectQueryFactory.createSelectClause({
|
|
192
|
+
ecClassId: { selector: "this.ECClassId" },
|
|
193
|
+
ecInstanceId: { selector: "this.ECInstanceId" },
|
|
194
|
+
nodeLabel: {
|
|
195
|
+
selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
|
|
196
|
+
classAlias: "this",
|
|
197
|
+
className: "BisCore.GeometricElement",
|
|
198
|
+
}),
|
|
199
|
+
},
|
|
200
|
+
extendedData: {
|
|
201
|
+
imageId: "icon-item",
|
|
202
|
+
},
|
|
203
|
+
grouping: { byClass: true },
|
|
204
|
+
supportsFiltering: true,
|
|
205
|
+
hasChildren: false,
|
|
206
|
+
})}
|
|
207
|
+
FROM ${instanceFilterClauses.from} this
|
|
208
|
+
JOIN BisCore.ExternalSourceAspect esa ON esa.Element.Id = this.ECInstanceId
|
|
209
|
+
${instanceFilterClauses.joins}
|
|
210
|
+
WHERE
|
|
211
|
+
esa.Source.Id = (${sourceIds.map(() => "?").join(",")})
|
|
212
|
+
${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
|
|
213
|
+
`,
|
|
214
|
+
bindings: sourceIds.map((id) => ({ type: "id", value: id })),
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
];
|
|
218
|
+
}
|
|
219
|
+
async createCompositeLabelSelectClause({ externalSourceAlias, repositoryLinkAlias }) {
|
|
220
|
+
return ECSql.createConcatenatedValueStringSelector([
|
|
221
|
+
{
|
|
222
|
+
selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
|
|
223
|
+
classAlias: repositoryLinkAlias,
|
|
224
|
+
className: "BisCore.RepositoryLink",
|
|
225
|
+
}),
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
type: "String",
|
|
229
|
+
value: " - ",
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
|
|
233
|
+
classAlias: externalSourceAlias,
|
|
234
|
+
className: "BisCore.ExternalSource",
|
|
235
|
+
}),
|
|
236
|
+
},
|
|
237
|
+
]);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=ExternalSourcesTreeDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalSourcesTreeDefinition.js","sourceRoot":"","sources":["../../../../../../src/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.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 { createClassBasedHierarchyDefinition, createNodesQueryClauseFactory, HierarchyNode } from \"@itwin/presentation-hierarchies\";\nimport { createBisInstanceLabelSelectClauseFactory, ECSql } from \"@itwin/presentation-shared\";\n\nimport type { ECClassHierarchyInspector, ECSchemaProvider, IInstanceLabelSelectClauseFactory } from \"@itwin/presentation-shared\";\nimport type {\n DefineCustomNodeChildHierarchyLevelProps,\n DefineHierarchyLevelProps,\n DefineInstanceNodeChildHierarchyLevelProps,\n DefineRootHierarchyLevelProps,\n HierarchyDefinition,\n HierarchyLevelDefinition,\n NodesQueryClauseFactory,\n ProcessedHierarchyNode,\n} from \"@itwin/presentation-hierarchies\";\n\ninterface ExternalSourcesTreeDefinitionProps {\n imodelAccess: ECSchemaProvider & ECClassHierarchyInspector;\n}\n\nexport class ExternalSourcesTreeDefinition implements HierarchyDefinition {\n private _impl: HierarchyDefinition;\n private _selectQueryFactory: NodesQueryClauseFactory;\n private _nodeLabelSelectClauseFactory: IInstanceLabelSelectClauseFactory;\n\n public constructor(props: ExternalSourcesTreeDefinitionProps) {\n this._impl = createClassBasedHierarchyDefinition({\n classHierarchyInspector: props.imodelAccess,\n hierarchy: {\n rootNodes: async (requestProps) => this.createRootHierarchyLevelDefinition(requestProps),\n childNodes: [\n {\n parentNodeClassName: \"BisCore.ExternalSourceGroup\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) => this.createExternalSourcesGroupChildrenQuery(requestProps),\n },\n {\n parentNodeClassName: \"BisCore.ExternalSource\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) => this.createExternalSourceChildrenQuery(requestProps),\n },\n {\n customParentNodeKey: \"ElementsNode\",\n definitions: async (requestProps: DefineCustomNodeChildHierarchyLevelProps) => this.createElementsNodeChildrenQuery(requestProps),\n },\n ],\n },\n });\n this._selectQueryFactory = createNodesQueryClauseFactory({ imodelAccess: props.imodelAccess });\n this._nodeLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory({ classHierarchyInspector: props.imodelAccess });\n }\n\n public async postProcessNode(node: ProcessedHierarchyNode): Promise<ProcessedHierarchyNode> {\n if (HierarchyNode.isClassGroupingNode(node)) {\n // `imageId` is assigned to instance nodes at query time, but grouping ones need to be handled during post-processing\n return { ...node, extendedData: { ...node.extendedData, imageId: \"icon-ec-class\" } };\n }\n return node;\n }\n\n public async defineHierarchyLevel(props: DefineHierarchyLevelProps) {\n return this._impl.defineHierarchyLevel(props);\n }\n\n private async createRootHierarchyLevelDefinition(props: DefineRootHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: props.instanceFilter,\n contentClass: { fullName: \"BisCore.ExternalSource\", alias: \"this\" },\n });\n return [\n {\n fullClassName: \"BisCore.ExternalSource\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: ECSql.createRawPropertyValueSelector(\"this\", \"ECClassId\") },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: \"this\", repositoryLinkAlias: \"rl\" }),\n },\n extendedData: {\n imageId: \"icon-document\",\n },\n autoExpand: true,\n supportsFiltering: true,\n })}\n FROM ${instanceFilterClauses.from} this\n ${instanceFilterClauses.joins}\n JOIN BisCore.SynchronizationConfigSpecifiesRootSources scsrs ON scsrs.TargetECInstanceId = this.ECInstanceId\n JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id\n ${instanceFilterClauses.where ? `WHERE ${instanceFilterClauses.where}` : \"\"}\n `,\n },\n },\n ];\n }\n\n private async createExternalSourcesGroupChildrenQuery({\n parentNodeInstanceIds: groupIds,\n instanceFilter,\n }: DefineInstanceNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: \"BisCore.ExternalSource\", alias: \"this\" },\n });\n return [\n {\n fullClassName: \"BisCore.ExternalSource\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: \"this\", repositoryLinkAlias: \"rl\" }),\n },\n hasChildren: {\n selector: `\n IFNULL((\n SELECT 1\n FROM BisCore.ExternalSourceAttachment esa\n WHERE esa.Attaches.Id = this.ECInstanceId\n LIMIT 1\n ), 0)\n `,\n },\n extendedData: {\n imageId: \"icon-document\",\n },\n supportsFiltering: true,\n })}\n FROM ${instanceFilterClauses.from} this\n JOIN BisCore.ExternalSourceGroupGroupsSources esggs ON esggs.TargetECInstanceId = this.ECInstanceId\n JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id\n ${instanceFilterClauses.joins}\n WHERE\n esggs.SourceECInstanceId IN (${groupIds.map(() => \"?\").join(\",\")})\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: groupIds.map((id) => ({ type: \"id\", value: id })),\n },\n },\n ];\n }\n\n private async createExternalSourceChildrenQuery({\n parentNodeInstanceIds: sourceIds,\n instanceFilter,\n }: DefineInstanceNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: \"BisCore.ExternalSource\", alias: \"this\" },\n });\n return [\n {\n fullClassName: \"BisCore.ExternalSource\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this.createCompositeLabelSelectClause({ externalSourceAlias: \"this\", repositoryLinkAlias: \"rl\" }),\n },\n hasChildren: {\n selector: `\n IFNULL((\n SELECT 1\n FROM BisCore.ExternalSourceAttachment esa\n WHERE esa.Attaches.Id = this.ECInstanceId\n LIMIT 1\n ), 0)\n `,\n },\n extendedData: {\n imageId: \"icon-document\",\n },\n supportsFiltering: true,\n })}\n FROM ${instanceFilterClauses.from} this\n JOIN BisCore.ExternalSourceAttachment esa ON esa.Attaches.Id = this.ECInstanceId\n JOIN BisCore.RepositoryLink rl ON rl.ECInstanceId = this.Repository.Id\n ${instanceFilterClauses.joins}\n WHERE\n esa.Parent.Id IN (${sourceIds.map(() => \"?\").join(\",\")})\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: sourceIds.map((id) => ({ type: \"id\", value: id })),\n },\n },\n {\n node: {\n key: \"ElementsNode\",\n label: \"Elements\",\n extendedData: {\n sourceIds,\n imageId: \"icon-ec-schema\",\n },\n supportsFiltering: true,\n processingParams: {\n hideIfNoChildren: true,\n },\n },\n },\n ];\n }\n\n private async createElementsNodeChildrenQuery({ parentNode, instanceFilter }: DefineCustomNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const sourceIds: string[] = parentNode.extendedData?.sourceIds;\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: \"BisCore.GeometricElement\", alias: \"this\" },\n });\n return [\n {\n fullClassName: \"BisCore.GeometricElement\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: \"BisCore.GeometricElement\",\n }),\n },\n extendedData: {\n imageId: \"icon-item\",\n },\n grouping: { byClass: true },\n supportsFiltering: true,\n hasChildren: false,\n })}\n FROM ${instanceFilterClauses.from} this\n JOIN BisCore.ExternalSourceAspect esa ON esa.Element.Id = this.ECInstanceId\n ${instanceFilterClauses.joins}\n WHERE\n esa.Source.Id = (${sourceIds.map(() => \"?\").join(\",\")})\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: sourceIds.map((id) => ({ type: \"id\", value: id })),\n },\n },\n ];\n }\n\n private async createCompositeLabelSelectClause({ externalSourceAlias, repositoryLinkAlias }: { externalSourceAlias: string; repositoryLinkAlias: string }) {\n return ECSql.createConcatenatedValueStringSelector([\n {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: repositoryLinkAlias,\n className: \"BisCore.RepositoryLink\",\n }),\n },\n {\n type: \"String\",\n value: \" - \",\n },\n {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: externalSourceAlias,\n className: \"BisCore.ExternalSource\",\n }),\n },\n ]);\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FilterableTree } from "../common/components/FilterableTree";
|
|
3
|
+
import type { HierarchyLevelConfig } from "../../common/Types";
|
|
4
|
+
interface StatelessIModelContentTreeOwnProps {
|
|
5
|
+
hierarchyLevelConfig?: Omit<HierarchyLevelConfig, "isFilteringEnabled">;
|
|
6
|
+
onPerformanceMeasured?: (featureId: string, duration: number) => void;
|
|
7
|
+
}
|
|
8
|
+
type FilterableTreeProps = Parameters<typeof FilterableTree>[0];
|
|
9
|
+
type StatelessIModelContentTreeProps = StatelessIModelContentTreeOwnProps & Pick<FilterableTreeProps, "imodel" | "getSchemaContext" | "height" | "width" | "density" | "selectionMode">;
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare function StatelessIModelContentTree({ onPerformanceMeasured, ...props }: StatelessIModelContentTreeProps): JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=IModelContentTree.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
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
|
+
import { SvgFolder, SvgGroup, SvgHierarchyTree, SvgImodelHollow, SvgItem, SvgLayers, SvgModel } from "@itwin/itwinui-icons-react";
|
|
7
|
+
import { FilterableTree } from "../common/components/FilterableTree";
|
|
8
|
+
import { IModelContentTreeDefinition } from "./IModelContentTreeDefinition";
|
|
9
|
+
const StatelessIModelContentTreeId = "imodel-content-tree-v2";
|
|
10
|
+
/** @internal */
|
|
11
|
+
export function StatelessIModelContentTree({ onPerformanceMeasured, ...props }) {
|
|
12
|
+
return (_jsx(FilterableTree, { ...props, treeName: "StatelessIModelContentTree", getHierarchyDefinition: getDefinitionsProvider, getIcon: getIcon, selectionMode: props.selectionMode ?? "none", onPerformanceMeasured: (action, duration) => {
|
|
13
|
+
onPerformanceMeasured?.(`${StatelessIModelContentTreeId}-${action}`, duration);
|
|
14
|
+
} }));
|
|
15
|
+
}
|
|
16
|
+
;
|
|
17
|
+
function getDefinitionsProvider(props) {
|
|
18
|
+
return new IModelContentTreeDefinition(props);
|
|
19
|
+
}
|
|
20
|
+
function getIcon(node) {
|
|
21
|
+
if (node.extendedData?.imageId === undefined) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
switch (node.extendedData.imageId) {
|
|
25
|
+
case "icon-layers":
|
|
26
|
+
return _jsx(SvgLayers, {});
|
|
27
|
+
case "icon-item":
|
|
28
|
+
return _jsx(SvgItem, {});
|
|
29
|
+
case "icon-ec-class":
|
|
30
|
+
return _jsx(SvgItem, {});
|
|
31
|
+
case "icon-imodel-hollow-2":
|
|
32
|
+
return _jsx(SvgImodelHollow, {});
|
|
33
|
+
case "icon-folder":
|
|
34
|
+
return _jsx(SvgFolder, {});
|
|
35
|
+
case "icon-model":
|
|
36
|
+
return _jsx(SvgModel, {});
|
|
37
|
+
case "icon-hierarchy-tree":
|
|
38
|
+
return _jsx(SvgHierarchyTree, {});
|
|
39
|
+
case "icon-group":
|
|
40
|
+
return _jsx(SvgGroup, {});
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=IModelContentTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IModelContentTree.js","sourceRoot":"","sources":["../../../../../../src/components/trees/stateless/imodel-content-tree/IModelContentTree.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAClI,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAgB5E,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AAE9D,gBAAgB;AAChB,MAAM,UAAU,0BAA0B,CAAC,EAAE,qBAAqB,EAAE,GAAG,KAAK,EAAmC;IAC7G,OAAO,CACL,KAAC,cAAc,OACT,KAAK,EACT,QAAQ,EAAC,4BAA4B,EACrC,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,MAAM,EAC5C,qBAAqB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC1C,qBAAqB,EAAE,CAAC,GAAG,4BAA4B,IAAI,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjF,CAAC,GACD,CACH,CAAC;AACJ,CAAC;AAAA,CAAC;AAEF,SAAS,sBAAsB,CAAC,KAA6D;IAC3F,OAAO,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,OAAO,CAAC,IAA+B;IAC9C,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,SAAS,EAAE;QAC5C,OAAO,SAAS,CAAC;KAClB;IAED,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QACjC,KAAK,aAAa;YAChB,OAAO,KAAC,SAAS,KAAG,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,KAAC,OAAO,KAAG,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,KAAC,OAAO,KAAG,CAAC;QACrB,KAAK,sBAAsB;YACzB,OAAO,KAAC,eAAe,KAAG,CAAC;QAC7B,KAAK,aAAa;YAChB,OAAO,KAAC,SAAS,KAAG,CAAC;QACvB,KAAK,YAAY;YACf,OAAO,KAAC,QAAQ,KAAG,CAAC;QACtB,KAAK,qBAAqB;YACxB,OAAO,KAAC,gBAAgB,KAAG,CAAC;QAC9B,KAAK,YAAY;YACf,OAAO,KAAC,QAAQ,KAAG,CAAC;KACvB;IAED,OAAO,SAAS,CAAC;AACnB,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 { SvgFolder, SvgGroup, SvgHierarchyTree, SvgImodelHollow, SvgItem, SvgLayers, SvgModel } from \"@itwin/itwinui-icons-react\";\nimport { FilterableTree } from \"../common/components/FilterableTree\";\nimport { IModelContentTreeDefinition } from \"./IModelContentTreeDefinition\";\n\nimport type { ReactElement } from \"react\";\nimport type { PresentationHierarchyNode } from \"@itwin/presentation-hierarchies-react\";\nimport type { HierarchyLevelConfig } from \"../../common/Types\";\n\ninterface StatelessIModelContentTreeOwnProps {\n hierarchyLevelConfig?: Omit<HierarchyLevelConfig, \"isFilteringEnabled\">;\n onPerformanceMeasured?: (featureId: string, duration: number) => void;\n}\n\ntype FilterableTreeProps = Parameters<typeof FilterableTree>[0];\ntype GetHierarchyDefinitionsProviderCallback = FilterableTreeProps[\"getHierarchyDefinition\"];\ntype StatelessIModelContentTreeProps = StatelessIModelContentTreeOwnProps &\n Pick<FilterableTreeProps, \"imodel\" | \"getSchemaContext\" | \"height\" | \"width\" | \"density\" | \"selectionMode\">;\n\nconst StatelessIModelContentTreeId = \"imodel-content-tree-v2\";\n\n/** @internal */\nexport function StatelessIModelContentTree({ onPerformanceMeasured, ...props }: StatelessIModelContentTreeProps) {\n return (\n <FilterableTree\n {...props}\n treeName=\"StatelessIModelContentTree\"\n getHierarchyDefinition={getDefinitionsProvider}\n getIcon={getIcon}\n selectionMode={props.selectionMode ?? \"none\"}\n onPerformanceMeasured={(action, duration) => {\n onPerformanceMeasured?.(`${StatelessIModelContentTreeId}-${action}`, duration);\n }}\n />\n );\n};\n\nfunction getDefinitionsProvider(props: Parameters<GetHierarchyDefinitionsProviderCallback>[0]) {\n return new IModelContentTreeDefinition(props);\n}\n\nfunction getIcon(node: PresentationHierarchyNode): ReactElement | undefined {\n if (node.extendedData?.imageId === undefined) {\n return undefined;\n }\n\n switch (node.extendedData.imageId) {\n case \"icon-layers\":\n return <SvgLayers />;\n case \"icon-item\":\n return <SvgItem />;\n case \"icon-ec-class\":\n return <SvgItem />;\n case \"icon-imodel-hollow-2\":\n return <SvgImodelHollow />;\n case \"icon-folder\":\n return <SvgFolder />;\n case \"icon-model\":\n return <SvgModel />;\n case \"icon-hierarchy-tree\":\n return <SvgHierarchyTree />;\n case \"icon-group\":\n return <SvgGroup />;\n }\n\n return undefined;\n}\n"]}
|
package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { StatelessIModelContentTree } from "./IModelContentTree";
|
|
2
|
+
import type { ComponentPropsWithoutRef } from "react";
|
|
3
|
+
import type { SelectionStorage } from "@itwin/presentation-hierarchies-react";
|
|
4
|
+
type StatelessIModelContentTreeProps = ComponentPropsWithoutRef<typeof StatelessIModelContentTree>;
|
|
5
|
+
interface StatelessIModelContentTreeComponentProps extends Pick<StatelessIModelContentTreeProps, "getSchemaContext" | "density" | "hierarchyLevelConfig" | "selectionMode" | "onPerformanceMeasured"> {
|
|
6
|
+
selectionStorage: SelectionStorage;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A component that renders [[StatelessIModelContentTree]].
|
|
10
|
+
* @beta
|
|
11
|
+
*/
|
|
12
|
+
export declare const StatelessIModelContentTreeComponent: (props: StatelessIModelContentTreeComponentProps) => JSX.Element | null;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=IModelContentTreeComponent.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
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
|
+
import { useActiveIModelConnection } from "@itwin/appui-react";
|
|
7
|
+
import { UnifiedSelectionProvider } from "@itwin/presentation-hierarchies-react";
|
|
8
|
+
import { AutoSizer } from "../../../utils/AutoSizer";
|
|
9
|
+
import { StatelessIModelContentTree } from "./IModelContentTree";
|
|
10
|
+
/**
|
|
11
|
+
* A component that renders [[StatelessIModelContentTree]].
|
|
12
|
+
* @beta
|
|
13
|
+
*/
|
|
14
|
+
export const StatelessIModelContentTreeComponent = (props) => {
|
|
15
|
+
const imodel = useActiveIModelConnection();
|
|
16
|
+
if (!imodel) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return (_jsx(UnifiedSelectionProvider, { storage: props.selectionStorage, children: _jsx(AutoSizer, { children: ({ width, height }) => _jsx(StatelessIModelContentTree, { ...props, imodel: imodel, width: width, height: height }) }) }));
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=IModelContentTreeComponent.js.map
|
package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IModelContentTreeComponent.js","sourceRoot":"","sources":["../../../../../../src/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAWjE;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,KAA+C,EAAE,EAAE;IACrG,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,KAAC,wBAAwB,IAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,YACvD,KAAC,SAAS,cAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAC,0BAA0B,OAAK,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,GAAa,GAC9G,CAC5B,CAAC;AACJ,CAAC,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 { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { UnifiedSelectionProvider } from \"@itwin/presentation-hierarchies-react\";\nimport { AutoSizer } from \"../../../utils/AutoSizer\";\nimport { StatelessIModelContentTree } from \"./IModelContentTree\";\n\nimport type { ComponentPropsWithoutRef } from \"react\";\nimport type { SelectionStorage } from \"@itwin/presentation-hierarchies-react\";\n\ntype StatelessIModelContentTreeProps = ComponentPropsWithoutRef<typeof StatelessIModelContentTree>;\ninterface StatelessIModelContentTreeComponentProps\n extends Pick<StatelessIModelContentTreeProps, \"getSchemaContext\" | \"density\" | \"hierarchyLevelConfig\" | \"selectionMode\" | \"onPerformanceMeasured\"> {\n selectionStorage: SelectionStorage;\n}\n\n/**\n * A component that renders [[StatelessIModelContentTree]].\n * @beta\n */\nexport const StatelessIModelContentTreeComponent = (props: StatelessIModelContentTreeComponentProps) => {\n const imodel = useActiveIModelConnection();\n\n if (!imodel) {\n return null;\n }\n\n return (\n <UnifiedSelectionProvider storage={props.selectionStorage}>\n <AutoSizer>{({ width, height }) => <StatelessIModelContentTree {...props} imodel={imodel} width={width} height={height} />}</AutoSizer>\n </UnifiedSelectionProvider>\n );\n};\n"]}
|
package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ECClassHierarchyInspector, ECSchemaProvider } from "@itwin/presentation-shared";
|
|
2
|
+
import type { DefineHierarchyLevelProps, HierarchyDefinition, HierarchyLevelDefinition, ProcessedHierarchyNode } from "@itwin/presentation-hierarchies";
|
|
3
|
+
interface IModelContentTreeDefinitionProps {
|
|
4
|
+
imodelAccess: ECSchemaProvider & ECClassHierarchyInspector;
|
|
5
|
+
}
|
|
6
|
+
export declare class IModelContentTreeDefinition implements HierarchyDefinition {
|
|
7
|
+
private _impl;
|
|
8
|
+
private _selectQueryFactory;
|
|
9
|
+
private _nodeLabelSelectClauseFactory;
|
|
10
|
+
constructor(props: IModelContentTreeDefinitionProps);
|
|
11
|
+
postProcessNode(node: ProcessedHierarchyNode): Promise<ProcessedHierarchyNode>;
|
|
12
|
+
defineHierarchyLevel(props: DefineHierarchyLevelProps): Promise<HierarchyLevelDefinition>;
|
|
13
|
+
private createRootHierarchyLevelDefinition;
|
|
14
|
+
private createSubjectChildrenQuery;
|
|
15
|
+
private createISubModeledElementChildrenQuery;
|
|
16
|
+
private createGeometricModelChildrenQuery;
|
|
17
|
+
private createCategoryChildrenQuery;
|
|
18
|
+
private createModelChildrenQuery;
|
|
19
|
+
private createGroupInformationElementChildElementsQuery;
|
|
20
|
+
private createChildrenNodeChildrenQuery;
|
|
21
|
+
private createGroupInformationElementMemberElementsQuery;
|
|
22
|
+
private createElementChildrenQuery;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=IModelContentTreeDefinition.d.ts.map
|