@itwin/tree-widget-react 0.5.0 → 0.6.1
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/lib/cjs/TreeWidget.js +4 -2
- package/lib/cjs/TreeWidget.js.map +1 -1
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js +6 -6
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/cjs/components/rulesets/ClassificationSystems.json +122 -0
- package/lib/cjs/components/rulesets/IModelContent.json +407 -407
- package/lib/cjs/components/trees/Common.d.ts +21 -0
- package/lib/cjs/components/trees/Common.js +21 -0
- package/lib/cjs/components/trees/Common.js.map +1 -0
- package/lib/cjs/components/trees/VisibilityTreeBase.scss +53 -0
- package/lib/cjs/components/trees/VisibilityTreeEventHandler.d.ts +68 -0
- package/lib/cjs/components/trees/VisibilityTreeEventHandler.js +162 -0
- package/lib/cjs/components/trees/VisibilityTreeEventHandler.js.map +1 -0
- package/lib/cjs/components/trees/VisibilityTreeRenderer.d.ts +43 -0
- package/lib/cjs/components/trees/VisibilityTreeRenderer.js +81 -0
- package/lib/cjs/components/trees/VisibilityTreeRenderer.js.map +1 -0
- package/lib/cjs/components/trees/category-tree/Categories.json +103 -0
- package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +65 -0
- package/lib/cjs/components/trees/category-tree/CategoriesTree.js +121 -0
- package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +1 -0
- package/lib/{esm/components/trees → cjs/components/trees/category-tree}/CategoriesTree.scss +5 -0
- package/lib/cjs/components/trees/{CategoriesTree.d.ts → category-tree/CategoriesTreeComponent.d.ts} +2 -2
- package/lib/cjs/components/trees/{CategoriesTree.js → category-tree/CategoriesTreeComponent.js} +14 -13
- package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -0
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +54 -0
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js +213 -0
- package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -0
- package/lib/cjs/components/trees/index.d.ts +10 -3
- package/lib/cjs/components/trees/index.js +13 -6
- package/lib/cjs/components/trees/index.js.map +1 -1
- package/lib/cjs/components/trees/models-tree/Hierarchy.GroupedByClass.json +392 -0
- package/lib/cjs/components/trees/models-tree/Hierarchy.json +387 -0
- package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +82 -0
- package/lib/cjs/components/trees/models-tree/ModelsTree.js +144 -0
- package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -0
- package/lib/cjs/components/trees/{ModelsTree.scss → models-tree/ModelsTree.scss} +5 -1
- package/lib/{esm/components/trees/ModelsTree.d.ts → cjs/components/trees/models-tree/ModelsTreeComponent.d.ts} +2 -2
- package/lib/cjs/components/trees/{ModelsTree.js → models-tree/ModelsTreeComponent.js} +6 -5
- package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/ModelsTreeSearch.json +239 -0
- package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.d.ts +100 -0
- package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js +477 -0
- package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -0
- package/lib/cjs/components/trees/models-tree/Utils.d.ts +10 -0
- package/lib/cjs/components/trees/models-tree/Utils.js +27 -0
- package/lib/cjs/components/trees/models-tree/Utils.js.map +1 -0
- package/lib/cjs/components/trees/{SpatialTree.d.ts → spatial-tree/SpatialTreeComponent.d.ts} +2 -2
- package/lib/cjs/components/trees/{SpatialTree.js → spatial-tree/SpatialTreeComponent.js} +2 -2
- package/lib/cjs/components/trees/spatial-tree/SpatialTreeComponent.js.map +1 -0
- package/lib/cjs/tree-widget-react.js +3 -3
- package/lib/cjs/tree-widget-react.js.map +1 -1
- package/lib/cjs/types.d.ts +3 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/TreeWidget.js +4 -2
- package/lib/esm/TreeWidget.js.map +1 -1
- package/lib/esm/components/TreeWidgetUiItemsProvider.js +3 -3
- package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
- package/lib/esm/components/rulesets/ClassificationSystems.json +122 -0
- package/lib/esm/components/rulesets/IModelContent.json +407 -407
- package/lib/esm/components/trees/Common.d.ts +21 -0
- package/lib/esm/components/trees/Common.js +18 -0
- package/lib/esm/components/trees/Common.js.map +1 -0
- package/lib/esm/components/trees/VisibilityTreeBase.scss +53 -0
- package/lib/esm/components/trees/VisibilityTreeEventHandler.d.ts +68 -0
- package/lib/esm/components/trees/VisibilityTreeEventHandler.js +158 -0
- package/lib/esm/components/trees/VisibilityTreeEventHandler.js.map +1 -0
- package/lib/esm/components/trees/VisibilityTreeRenderer.d.ts +43 -0
- package/lib/esm/components/trees/VisibilityTreeRenderer.js +54 -0
- package/lib/esm/components/trees/VisibilityTreeRenderer.js.map +1 -0
- package/lib/esm/components/trees/category-tree/Categories.json +103 -0
- package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +65 -0
- package/lib/esm/components/trees/category-tree/CategoriesTree.js +96 -0
- package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +1 -0
- package/lib/{cjs/components/trees → esm/components/trees/category-tree}/CategoriesTree.scss +5 -0
- package/lib/esm/components/trees/{CategoriesTree.d.ts → category-tree/CategoriesTreeComponent.d.ts} +2 -2
- package/lib/esm/components/trees/{CategoriesTree.js → category-tree/CategoriesTreeComponent.js} +8 -7
- package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -0
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +54 -0
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js +188 -0
- package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -0
- package/lib/esm/components/trees/index.d.ts +10 -3
- package/lib/esm/components/trees/index.js +13 -6
- package/lib/esm/components/trees/index.js.map +1 -1
- package/lib/esm/components/trees/models-tree/Hierarchy.GroupedByClass.json +392 -0
- package/lib/esm/components/trees/models-tree/Hierarchy.json +387 -0
- package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +82 -0
- package/lib/esm/components/trees/models-tree/ModelsTree.js +121 -0
- package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -0
- package/lib/esm/components/trees/{ModelsTree.scss → models-tree/ModelsTree.scss} +5 -1
- package/lib/{cjs/components/trees/ModelsTree.d.ts → esm/components/trees/models-tree/ModelsTreeComponent.d.ts} +2 -2
- package/lib/esm/components/trees/{ModelsTree.js → models-tree/ModelsTreeComponent.js} +6 -5
- package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -0
- package/lib/esm/components/trees/models-tree/ModelsTreeSearch.json +239 -0
- package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.d.ts +100 -0
- package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js +472 -0
- package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -0
- package/lib/esm/components/trees/models-tree/Utils.d.ts +10 -0
- package/lib/esm/components/trees/models-tree/Utils.js +23 -0
- package/lib/esm/components/trees/models-tree/Utils.js.map +1 -0
- package/lib/esm/components/trees/{SpatialTree.d.ts → spatial-tree/SpatialTreeComponent.d.ts} +2 -2
- package/lib/esm/components/trees/{SpatialTree.js → spatial-tree/SpatialTreeComponent.js} +2 -2
- package/lib/esm/components/trees/spatial-tree/SpatialTreeComponent.js.map +1 -0
- package/lib/esm/tree-widget-react.js +3 -3
- package/lib/esm/tree-widget-react.js.map +1 -1
- package/lib/esm/types.d.ts +3 -1
- package/lib/esm/types.js.map +1 -1
- package/lib/public/locales/en/TreeWidget.json +38 -1
- package/package.json +54 -32
- package/lib/cjs/components/trees/CategoriesTree.js.map +0 -1
- package/lib/cjs/components/trees/ModelsTree.js.map +0 -1
- package/lib/cjs/components/trees/SpatialTree.js.map +0 -1
- package/lib/esm/components/trees/CategoriesTree.js.map +0 -1
- package/lib/esm/components/trees/ModelsTree.js.map +0 -1
- package/lib/esm/components/trees/SpatialTree.js.map +0 -1
|
@@ -26,10 +26,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.ModelsTreeComponent = void 0;
|
|
27
27
|
const react_1 = __importStar(require("react"));
|
|
28
28
|
const appui_react_1 = require("@itwin/appui-react");
|
|
29
|
-
const TreeFilteringState_1 = require("
|
|
29
|
+
const TreeFilteringState_1 = require("../../TreeFilteringState");
|
|
30
30
|
require("./ModelsTree.scss");
|
|
31
|
-
const TreeHeader_1 = require("
|
|
32
|
-
const AutoSizer_1 = require("
|
|
31
|
+
const TreeHeader_1 = require("../../header/TreeHeader");
|
|
32
|
+
const AutoSizer_1 = require("../../utils/AutoSizer");
|
|
33
|
+
const ModelsTree_1 = require("./ModelsTree");
|
|
33
34
|
const ModelsTreeComponent = (props) => {
|
|
34
35
|
const [is2dToggleActive, setIs2dToggleActive] = react_1.useState(false);
|
|
35
36
|
const [is3dToggleActive, setIs3dToggleActive] = react_1.useState(false);
|
|
@@ -121,7 +122,7 @@ const ModelsTreeComponent = (props) => {
|
|
|
121
122
|
return (react_1.default.createElement(react_1.default.Fragment, null, iModel && viewport &&
|
|
122
123
|
react_1.default.createElement(react_1.default.Fragment, null,
|
|
123
124
|
react_1.default.createElement(TreeHeader_1.TreeHeaderComponent, { searchOptions: searchOptions, showAll: showAll, hideAll: hideAll, invert: invert, toggle2D: viewToggle2D, toggle2DIcon: icon2dToggle, toggle3D: viewToggle3D, toggle3DIcon: icon3dToggle }),
|
|
124
|
-
react_1.default.createElement(AutoSizer_1.AutoSizer, null, ({ width, height }) => (react_1.default.createElement(
|
|
125
|
+
react_1.default.createElement(AutoSizer_1.AutoSizer, null, ({ width, height }) => (react_1.default.createElement(ModelsTree_1.ModelsTree, { ...props, iModel: iModel, activeView: viewport, width: width, height: height, filterInfo: { filter: filterString, activeMatchIndex }, onFilterApplied: onFilterApplied }))))));
|
|
125
126
|
};
|
|
126
127
|
exports.ModelsTreeComponent = ModelsTreeComponent;
|
|
127
|
-
//# sourceMappingURL=
|
|
128
|
+
//# sourceMappingURL=ModelsTreeComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelsTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/models-tree/ModelsTreeComponent.tsx"],"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 React, { useCallback, useEffect, useState } from \"react\";\nimport type { Viewport } from \"@itwin/core-frontend\";\nimport { useActiveIModelConnection, useActiveViewport } from \"@itwin/appui-react\";\nimport { useTreeFilteringState } from \"../../TreeFilteringState\";\nimport \"./ModelsTree.scss\";\nimport type {\n GeometricModel3dProps,\n ModelQueryParams,\n} from \"@itwin/core-common\";\nimport { TreeHeaderComponent } from \"../../header/TreeHeader\";\nimport type { ModelTreeProps } from \"../../../types\";\nimport { AutoSizer } from \"../../utils/AutoSizer\";\nimport { ModelsTree } from \"./ModelsTree\";\n\ninterface TreeViewModelInfo {\n id: string;\n isPlanProjection?: boolean;\n}\n\nexport const ModelsTreeComponent = (props: ModelTreeProps) => {\n const [is2dToggleActive, setIs2dToggleActive] = useState<boolean>(false);\n const [is3dToggleActive, setIs3dToggleActive] = useState<boolean>(false);\n const [icon2dToggle, setIcon2dToggle] = useState<string>(\"icon-visibility\");\n const [icon3dToggle, setIcon3dToggle] = useState<string>(\"icon-visibility\");\n\n const [available2dModels, setAvailable2dModels] = useState<string[]>([]);\n const [available3dModels, setAvailable3dModels] = useState<string[]>([]);\n const [availableModels, setAvailableModels] = useState<string[]>([]);\n\n const iModel = useActiveIModelConnection();\n const viewport = useActiveViewport();\n\n const { searchOptions, filterString, activeMatchIndex, onFilterApplied } =\n useTreeFilteringState();\n\n const queryModels = useCallback(async (\n vp: Viewport | undefined\n ): Promise<TreeViewModelInfo[]> => {\n if (vp === undefined) return [];\n\n const queryParams: ModelQueryParams = {\n from: \"BisCore.GeometricModel3d\",\n wantPrivate: false,\n };\n const modelProps = await iModel?.models.queryProps(queryParams) ?? [];\n return modelProps\n .map(({ id, isPlanProjection }: GeometricModel3dProps) => ({ id, isPlanProjection }))\n .filter(({ id }) => id) as TreeViewModelInfo[];\n }, [iModel]);\n\n useEffect(() => {\n queryModels(viewport)\n .then((modelInfos: TreeViewModelInfo[]) => {\n setAvailableModels(modelInfos.map(({ id }) => id));\n\n const { models2d, models3d } = modelInfos.reduce((acc, { id, isPlanProjection }) => {\n isPlanProjection ? acc.models2d.push(id) : acc.models3d.push(id);\n return acc;\n }, { models2d: [] as string[], models3d: [] as string[] });\n\n setAvailable2dModels(models2d);\n setAvailable3dModels(models3d);\n })\n .catch((_e) => {\n setAvailableModels([]);\n });\n }, [queryModels, viewport]);\n\n const invert = useCallback(async () => {\n if (availableModels.length === 0) return;\n const notViewedModels: string[] = [];\n const models: string[] = [];\n availableModels.forEach((id: string) => {\n if (viewport?.viewsModel(id)) models.push(id);\n else notViewedModels.push(id);\n });\n await viewport?.addViewedModels(notViewedModels);\n viewport?.changeModelDisplay(models, false);\n viewport?.invalidateScene();\n }, [viewport, availableModels]);\n\n const hideAll = useCallback(() => {\n viewport?.changeModelDisplay(availableModels, false);\n viewport?.invalidateScene();\n }, [viewport, availableModels]);\n\n const showAll = useCallback(async () => {\n await viewport?.addViewedModels(availableModels);\n viewport?.invalidateScene();\n }, [viewport, availableModels]);\n\n const viewToggle2D = useCallback(async () => {\n if (is2dToggleActive) {\n viewport?.changeModelDisplay(available2dModels, false);\n setIs2dToggleActive(false);\n setIcon2dToggle(\"icon-visibility-hide-2\");\n } else {\n await viewport?.addViewedModels(available2dModels);\n setIs2dToggleActive(true);\n setIcon2dToggle(\"icon-visibility\");\n }\n viewport?.invalidateScene();\n }, [is2dToggleActive, viewport, available2dModels]);\n\n const viewToggle3D = useCallback(async () => {\n if (is3dToggleActive) {\n viewport?.changeModelDisplay(available3dModels, false);\n setIs3dToggleActive(false);\n setIcon3dToggle(\"icon-visibility-hide-2\");\n } else {\n await viewport?.addViewedModels(available3dModels);\n setIs3dToggleActive(true);\n setIcon3dToggle(\"icon-visibility\");\n }\n viewport?.invalidateScene();\n }, [is3dToggleActive, viewport, available3dModels]);\n\n return (\n <>\n {iModel && viewport &&\n <>\n <TreeHeaderComponent\n searchOptions={searchOptions}\n showAll={showAll}\n hideAll={hideAll}\n invert={invert}\n toggle2D={viewToggle2D}\n toggle2DIcon={icon2dToggle}\n toggle3D={viewToggle3D}\n toggle3DIcon={icon3dToggle}\n />\n <AutoSizer>\n {({ width, height }) => (\n <ModelsTree\n {...props}\n iModel={iModel}\n activeView={viewport}\n width={width}\n height={height}\n filterInfo={{ filter: filterString, activeMatchIndex }}\n onFilterApplied={onFilterApplied}\n />\n )}\n </AutoSizer>\n </>\n }\n </>\n );\n};\n"]}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../../../node_modules/@itwin/presentation-common/Ruleset.schema.json",
|
|
3
|
+
"id": "tree-widget-react/ModelsTreeSearch",
|
|
4
|
+
"rules": [
|
|
5
|
+
{
|
|
6
|
+
"ruleType": "RootNodes",
|
|
7
|
+
"specifications": [
|
|
8
|
+
{
|
|
9
|
+
"specType": "InstanceNodesOfSpecificClasses",
|
|
10
|
+
"classes": [
|
|
11
|
+
{
|
|
12
|
+
"schemaName": "BisCore",
|
|
13
|
+
"classNames": [
|
|
14
|
+
"Subject"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"instanceFilter": "this.Parent = NULL",
|
|
19
|
+
"arePolymorphic": false,
|
|
20
|
+
"groupByClass": false,
|
|
21
|
+
"groupByLabel": false
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"customizationRules": [
|
|
25
|
+
{
|
|
26
|
+
"ruleType": "ExtendedData",
|
|
27
|
+
"items": {
|
|
28
|
+
"isSubject": "true"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"ruleType": "ChildNodes",
|
|
35
|
+
"condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
|
|
36
|
+
"specifications": [
|
|
37
|
+
{
|
|
38
|
+
"specType": "RelatedInstanceNodes",
|
|
39
|
+
"relationshipPaths": [
|
|
40
|
+
{
|
|
41
|
+
"relationship": {
|
|
42
|
+
"schemaName": "BisCore",
|
|
43
|
+
"className": "SubjectOwnsSubjects"
|
|
44
|
+
},
|
|
45
|
+
"direction": "Forward",
|
|
46
|
+
"targetClass": {
|
|
47
|
+
"schemaName": "BisCore",
|
|
48
|
+
"className": "Subject"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") <> NULL OR ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") = \"Hierarchy\"",
|
|
53
|
+
"hideNodesInHierarchy": true,
|
|
54
|
+
"groupByClass": false,
|
|
55
|
+
"groupByLabel": false
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"specType": "RelatedInstanceNodes",
|
|
59
|
+
"relationshipPaths": [
|
|
60
|
+
{
|
|
61
|
+
"relationship": {
|
|
62
|
+
"schemaName": "BisCore",
|
|
63
|
+
"className": "SubjectOwnsSubjects"
|
|
64
|
+
},
|
|
65
|
+
"direction": "Forward",
|
|
66
|
+
"targetClass": {
|
|
67
|
+
"schemaName": "BisCore",
|
|
68
|
+
"className": "Subject"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") = NULL AND ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") <> \"Hierarchy\"",
|
|
73
|
+
"hideExpression": "NOT ThisNode.HasChildren ANDALSO NOT ThisNode.ChildrenArtifacts.AnyMatches(x => x.isContentModel)",
|
|
74
|
+
"groupByClass": false,
|
|
75
|
+
"groupByLabel": false
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"customizationRules": [
|
|
79
|
+
{
|
|
80
|
+
"ruleType": "ExtendedData",
|
|
81
|
+
"items": {
|
|
82
|
+
"isSubject": "true"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"ruleType": "Grouping",
|
|
87
|
+
"class": {
|
|
88
|
+
"schemaName": "BisCore",
|
|
89
|
+
"className": "Subject"
|
|
90
|
+
},
|
|
91
|
+
"groups": [
|
|
92
|
+
{
|
|
93
|
+
"specType": "SameLabelInstance",
|
|
94
|
+
"applicationStage": "PostProcess"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"ruleType": "ChildNodes",
|
|
102
|
+
"condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
|
|
103
|
+
"specifications": [
|
|
104
|
+
{
|
|
105
|
+
"specType": "InstanceNodesOfSpecificClasses",
|
|
106
|
+
"classes": {
|
|
107
|
+
"schemaName": "BisCore",
|
|
108
|
+
"classNames": [
|
|
109
|
+
"GeometricModel3d"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"arePolymorphic": true,
|
|
113
|
+
"relatedInstances": [
|
|
114
|
+
{
|
|
115
|
+
"relationshipPath": {
|
|
116
|
+
"relationship": {
|
|
117
|
+
"schemaName": "BisCore",
|
|
118
|
+
"className": "ModelModelsElement"
|
|
119
|
+
},
|
|
120
|
+
"direction": "Forward",
|
|
121
|
+
"targetClass": {
|
|
122
|
+
"schemaName": "BisCore",
|
|
123
|
+
"className": "InformationPartitionElement"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"alias": "partition",
|
|
127
|
+
"isRequired": true
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") = NULL AND json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") = NULL AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:Element\")",
|
|
131
|
+
"groupByClass": false,
|
|
132
|
+
"groupByLabel": false
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"customizationRules": [
|
|
136
|
+
{
|
|
137
|
+
"ruleType": "ExtendedData",
|
|
138
|
+
"items": {
|
|
139
|
+
"isModel": "true"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"ruleType": "ChildNodes",
|
|
146
|
+
"condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
|
|
147
|
+
"specifications": [
|
|
148
|
+
{
|
|
149
|
+
"specType": "InstanceNodesOfSpecificClasses",
|
|
150
|
+
"classes": {
|
|
151
|
+
"schemaName": "BisCore",
|
|
152
|
+
"classNames": [
|
|
153
|
+
"GeometricModel3d"
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
"arePolymorphic": true,
|
|
157
|
+
"relatedInstances": [
|
|
158
|
+
{
|
|
159
|
+
"relationshipPath": {
|
|
160
|
+
"relationship": {
|
|
161
|
+
"schemaName": "BisCore",
|
|
162
|
+
"className": "ModelModelsElement"
|
|
163
|
+
},
|
|
164
|
+
"direction": "Forward",
|
|
165
|
+
"targetClass": {
|
|
166
|
+
"schemaName": "BisCore",
|
|
167
|
+
"className": "InformationPartitionElement"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"alias": "partition",
|
|
171
|
+
"isRequired": true
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND (json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") <> NULL OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL) AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:Element\")",
|
|
175
|
+
"hideNodesInHierarchy": true,
|
|
176
|
+
"groupByClass": false,
|
|
177
|
+
"groupByLabel": false
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"customizationRules": [
|
|
181
|
+
{
|
|
182
|
+
"ruleType": "NodeArtifacts",
|
|
183
|
+
"items": {
|
|
184
|
+
"isContentModel": "true"
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"ruleType": "ExtendedData",
|
|
189
|
+
"items": {
|
|
190
|
+
"isModel": "true"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"ruleType": "ChildNodes",
|
|
197
|
+
"condition": "ParentNode.IsOfClass(\"GeometricModel3d\", \"BisCore\")",
|
|
198
|
+
"specifications": [
|
|
199
|
+
{
|
|
200
|
+
"specType": "RelatedInstanceNodes",
|
|
201
|
+
"relationshipPaths": [
|
|
202
|
+
{
|
|
203
|
+
"relationship": {
|
|
204
|
+
"schemaName": "BisCore",
|
|
205
|
+
"className": "ModelOwnsSubModel"
|
|
206
|
+
},
|
|
207
|
+
"direction": "Forward",
|
|
208
|
+
"targetClass": {
|
|
209
|
+
"schemaName": "BisCore",
|
|
210
|
+
"className": "GeometricModel3d"
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
],
|
|
214
|
+
"instanceFilter": "NOT this.IsPrivate AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:Element\")",
|
|
215
|
+
"groupByClass": false,
|
|
216
|
+
"groupByLabel": false
|
|
217
|
+
}
|
|
218
|
+
],
|
|
219
|
+
"customizationRules": [
|
|
220
|
+
{
|
|
221
|
+
"ruleType": "ExtendedData",
|
|
222
|
+
"items": {
|
|
223
|
+
"isModel": "true"
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"ruleType": "ImageIdOverride",
|
|
230
|
+
"condition": "ThisNode.IsOfClass(\"Subject\", \"BisCore\")",
|
|
231
|
+
"imageIdExpression": "IIF(this.Parent.Id = NULL, \"icon-imodel-hollow-2\", \"icon-folder\")"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"ruleType": "ImageIdOverride",
|
|
235
|
+
"condition": "ThisNode.IsOfClass(\"Model\", \"BisCore\")",
|
|
236
|
+
"imageIdExpression": "\"icon-model\""
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { TreeNodeItem } from "@itwin/components-react";
|
|
2
|
+
import type { Id64String } from "@itwin/core-bentley";
|
|
3
|
+
import { BeEvent } from "@itwin/core-bentley";
|
|
4
|
+
import { NodeKey } from "@itwin/presentation-common";
|
|
5
|
+
import type { IModelConnection, Viewport } from "@itwin/core-frontend";
|
|
6
|
+
import type { ECClassGroupingNodeKey } from "@itwin/presentation-common";
|
|
7
|
+
import type { IFilteredPresentationTreeDataProvider, IPresentationTreeDataProvider } from "@itwin/presentation-components";
|
|
8
|
+
import type { IVisibilityHandler, VisibilityChangeListener, VisibilityStatus } from "../VisibilityTreeEventHandler";
|
|
9
|
+
/**
|
|
10
|
+
* Visibility tree node types.
|
|
11
|
+
* @beta
|
|
12
|
+
*/
|
|
13
|
+
export declare enum ModelsTreeNodeType {
|
|
14
|
+
Unknown = 0,
|
|
15
|
+
Subject = 1,
|
|
16
|
+
Model = 2,
|
|
17
|
+
Category = 3,
|
|
18
|
+
Element = 4,
|
|
19
|
+
Grouping = 5
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Type definition of predicate used to decide if node can be selected
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
export declare type ModelsTreeSelectionPredicate = (key: NodeKey, type: ModelsTreeNodeType) => boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Props for [[ModelsVisibilityHandler]]
|
|
28
|
+
* @alpha
|
|
29
|
+
*/
|
|
30
|
+
export interface ModelsVisibilityHandlerProps {
|
|
31
|
+
rulesetId: string;
|
|
32
|
+
viewport: Viewport;
|
|
33
|
+
hierarchyAutoUpdateEnabled?: boolean;
|
|
34
|
+
/** @internal */
|
|
35
|
+
subjectModelIdsCache?: SubjectModelIdsCache;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Visibility handler used by [[ModelsTree]] to control visibility of the tree items.
|
|
39
|
+
* @alpha
|
|
40
|
+
*/
|
|
41
|
+
export declare class ModelsVisibilityHandler implements IVisibilityHandler {
|
|
42
|
+
private _props;
|
|
43
|
+
private _pendingVisibilityChange;
|
|
44
|
+
private _subjectModelIdsCache;
|
|
45
|
+
private _filteredDataProvider?;
|
|
46
|
+
private _elementIdsCache;
|
|
47
|
+
private _listeners;
|
|
48
|
+
constructor(props: ModelsVisibilityHandlerProps);
|
|
49
|
+
dispose(): void;
|
|
50
|
+
onVisibilityChange: BeEvent<VisibilityChangeListener>;
|
|
51
|
+
/** Sets data provider that is used to get filtered tree hierarchy. */
|
|
52
|
+
setFilteredDataProvider(provider: IFilteredPresentationTreeDataProvider | undefined): void;
|
|
53
|
+
static getNodeType(item: TreeNodeItem, dataProvider: IPresentationTreeDataProvider): ModelsTreeNodeType;
|
|
54
|
+
static isSubjectNode(node: TreeNodeItem): any;
|
|
55
|
+
static isModelNode(node: TreeNodeItem): any;
|
|
56
|
+
static isCategoryNode(node: TreeNodeItem): any;
|
|
57
|
+
/** Returns visibility status of the tree node. */
|
|
58
|
+
getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus | Promise<VisibilityStatus>;
|
|
59
|
+
/** Changes visibility of the items represented by the tree node. */
|
|
60
|
+
changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, on: boolean): Promise<void>;
|
|
61
|
+
protected getSubjectNodeVisibility(ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus>;
|
|
62
|
+
private getSubjectDisplayStatus;
|
|
63
|
+
private getFilteredSubjectDisplayStatus;
|
|
64
|
+
protected getModelDisplayStatus(id: Id64String): VisibilityStatus;
|
|
65
|
+
protected getCategoryDisplayStatus(id: Id64String, parentModelId: Id64String | undefined): VisibilityStatus;
|
|
66
|
+
protected getElementGroupingNodeDisplayStatus(_id: string, key: ECClassGroupingNodeKey): Promise<VisibilityStatus>;
|
|
67
|
+
protected getElementDisplayStatus(elementId: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined): VisibilityStatus;
|
|
68
|
+
protected changeSubjectNodeState(ids: Id64String[], node: TreeNodeItem, on: boolean): Promise<void | void[]>;
|
|
69
|
+
private changeFilteredSubjectState;
|
|
70
|
+
private changeSubjectState;
|
|
71
|
+
protected changeModelState(id: Id64String, on: boolean): Promise<void>;
|
|
72
|
+
protected changeModelsVisibility(ids: Id64String[], visible: boolean): Promise<void>;
|
|
73
|
+
protected changeCategoryState(categoryId: Id64String, parentModelId: Id64String | undefined, on: boolean): void;
|
|
74
|
+
protected changeElementGroupingNodeState(key: ECClassGroupingNodeKey, on: boolean): Promise<void>;
|
|
75
|
+
protected changeElementState(id: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined, on: boolean): Promise<void>;
|
|
76
|
+
protected changeElementsState(modelId: Id64String | undefined, categoryId: Id64String | undefined, elementIds: AsyncGenerator<Id64String>, on: boolean): Promise<void>;
|
|
77
|
+
private onVisibilityChangeInternal;
|
|
78
|
+
private onViewChanged;
|
|
79
|
+
private onElementAlwaysDrawnChanged;
|
|
80
|
+
private onElementNeverDrawnChanged;
|
|
81
|
+
private getCategoryParentModelId;
|
|
82
|
+
private getElementModelId;
|
|
83
|
+
private getElementCategoryId;
|
|
84
|
+
private getSubjectModelIds;
|
|
85
|
+
private getAssemblyElementIds;
|
|
86
|
+
private getGroupedElementIds;
|
|
87
|
+
}
|
|
88
|
+
/** @internal */
|
|
89
|
+
export declare class SubjectModelIdsCache {
|
|
90
|
+
private _imodel;
|
|
91
|
+
private _subjectsHierarchy;
|
|
92
|
+
private _subjectModels;
|
|
93
|
+
private _init;
|
|
94
|
+
constructor(imodel: IModelConnection);
|
|
95
|
+
private initSubjectModels;
|
|
96
|
+
private initCache;
|
|
97
|
+
private appendSubjectModelsRecursively;
|
|
98
|
+
getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]>;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=ModelsVisibilityHandler.d.ts.map
|