@itwin/tree-widget-react 0.1.2 → 0.3.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.
Files changed (46) hide show
  1. package/README.md +30 -1
  2. package/lib/cjs/components/IconButton.scss +2 -2
  3. package/lib/cjs/components/TreeWidgetComponent.d.ts +1 -0
  4. package/lib/cjs/components/TreeWidgetComponent.scss +1 -1
  5. package/lib/cjs/components/header/TreeHeader.d.ts +1 -0
  6. package/lib/cjs/components/header/TreeHeader.scss +1 -1
  7. package/lib/cjs/components/rulesets/IModelContent.json +435 -0
  8. package/lib/cjs/components/search-bar/Popup.scss +1 -1
  9. package/lib/cjs/components/search-bar/SearchBar.scss +1 -1
  10. package/lib/cjs/components/search-bar/SearchBox.scss +1 -1
  11. package/lib/cjs/components/trees/CategoriesTree.d.ts +1 -0
  12. package/lib/cjs/components/trees/CategoriesTree.scss +1 -1
  13. package/lib/cjs/components/trees/ClassificationsTree.d.ts +1 -0
  14. package/lib/cjs/components/trees/IModelContentTree.d.ts +7 -0
  15. package/lib/cjs/components/trees/IModelContentTree.js +56 -0
  16. package/lib/cjs/components/trees/IModelContentTree.js.map +1 -0
  17. package/lib/cjs/components/trees/ModelsTree.d.ts +1 -0
  18. package/lib/cjs/components/trees/ModelsTree.scss +1 -1
  19. package/lib/cjs/components/trees/SpatialTree.d.ts +1 -0
  20. package/lib/cjs/components/trees/TreeWithRulesetTree.scss +1 -1
  21. package/lib/cjs/components/trees/index.d.ts +1 -0
  22. package/lib/cjs/components/trees/index.js +5 -4
  23. package/lib/cjs/components/trees/index.js.map +1 -1
  24. package/lib/esm/components/IconButton.scss +2 -2
  25. package/lib/esm/components/TreeWidgetComponent.d.ts +1 -0
  26. package/lib/esm/components/TreeWidgetComponent.scss +1 -1
  27. package/lib/esm/components/header/TreeHeader.d.ts +1 -0
  28. package/lib/esm/components/header/TreeHeader.scss +1 -1
  29. package/lib/esm/components/rulesets/IModelContent.json +435 -0
  30. package/lib/esm/components/search-bar/Popup.scss +1 -1
  31. package/lib/esm/components/search-bar/SearchBar.scss +1 -1
  32. package/lib/esm/components/search-bar/SearchBox.scss +1 -1
  33. package/lib/esm/components/trees/CategoriesTree.d.ts +1 -0
  34. package/lib/esm/components/trees/CategoriesTree.scss +1 -1
  35. package/lib/esm/components/trees/ClassificationsTree.d.ts +1 -0
  36. package/lib/esm/components/trees/IModelContentTree.d.ts +7 -0
  37. package/lib/esm/components/trees/IModelContentTree.js +30 -0
  38. package/lib/esm/components/trees/IModelContentTree.js.map +1 -0
  39. package/lib/esm/components/trees/ModelsTree.d.ts +1 -0
  40. package/lib/esm/components/trees/ModelsTree.scss +1 -1
  41. package/lib/esm/components/trees/SpatialTree.d.ts +1 -0
  42. package/lib/esm/components/trees/TreeWithRulesetTree.scss +1 -1
  43. package/lib/esm/components/trees/index.d.ts +1 -0
  44. package/lib/esm/components/trees/index.js +1 -0
  45. package/lib/esm/components/trees/index.js.map +1 -1
  46. package/package.json +25 -25
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
 
6
- @import "~@itwin/core-react/lib/esm/core-react/index";
6
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
7
7
 
8
8
  .tree-widget-models-tree-container {
9
9
  flex: 1;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { SpatialContainmentTreeProps } from "@itwin/appui-react";
2
3
  export declare const SpatialTreeComponent: (props: Omit<SpatialContainmentTreeProps, "width" | "height">) => JSX.Element;
3
4
  //# sourceMappingURL=SpatialTree.d.ts.map
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
  .spatial-tree {
7
7
  display: flex;
8
8
  flex-direction: column;
@@ -3,4 +3,5 @@ export * from "./CategoriesTree";
3
3
  export * from "./SpatialTree";
4
4
  export * from "./ClassificationsTree";
5
5
  export * from "./TreeWithRuleset";
6
+ export * from "./IModelContentTree";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,8 @@
1
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
+ *--------------------------------------------------------------------------------------------*/
2
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
7
  if (k2 === undefined) k2 = k;
4
8
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -10,13 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
- /*---------------------------------------------------------------------------------------------
14
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
15
- * See LICENSE.md in the project root for license terms and full copyright notice.
16
- *--------------------------------------------------------------------------------------------*/
17
17
  __exportStar(require("./ModelsTree"), exports);
18
18
  __exportStar(require("./CategoriesTree"), exports);
19
19
  __exportStar(require("./SpatialTree"), exports);
20
20
  __exportStar(require("./ClassificationsTree"), exports);
21
21
  __exportStar(require("./TreeWithRuleset"), exports);
22
+ __exportStar(require("./IModelContentTree"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/trees/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,wDAAsC;AACtC,oDAAkC","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*--------------------------------------------------------------------------------------------*/\nexport * from \"./ModelsTree\";\nexport * from \"./CategoriesTree\";\nexport * from \"./SpatialTree\";\nexport * from \"./ClassificationsTree\";\nexport * from \"./TreeWithRuleset\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/trees/index.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;AAE/F,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,wDAAsC;AACtC,oDAAkC;AAClC,sDAAoC","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\nexport * from \"./ModelsTree\";\nexport * from \"./CategoriesTree\";\nexport * from \"./SpatialTree\";\nexport * from \"./ClassificationsTree\";\nexport * from \"./TreeWithRuleset\";\nexport * from \"./IModelContentTree\";\n"]}
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
6
- @import "~@itwin/appui-layout-react/lib/esm/appui-layout-react/footer/_variables";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
+ @import "~@itwin/appui-layout-react/lib/cjs/appui-layout-react/footer/_variables";
7
7
 
8
8
  .tree-widget-icon-button {
9
9
  display: inline-block;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import "./TreeWidgetComponent.scss";
2
3
  import type { SelectableContentDefinition } from "@itwin/components-react";
3
4
  interface TreeWidgetComponentProps {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-visibility-widget {
8
8
  padding: $uicore-s;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { SearchOptions } from "../TreeFilteringState";
2
3
  import "./TreeHeader.scss";
3
4
  export interface TreeHeaderComponentProps {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-header-tree-search-bar {
8
8
  margin-bottom: $uicore-s;
@@ -0,0 +1,435 @@
1
+ {
2
+ "$schema": "../../node_modules/@itwin/presentation-common/Ruleset.schema.json",
3
+ "id": "tree-widget-react/imodel-content",
4
+ "requiredSchemas": [
5
+ {
6
+ "name": "BisCore"
7
+ }
8
+ ],
9
+ "rules": [
10
+ {
11
+ "ruleType": "RootNodes",
12
+ "autoExpand": true,
13
+ "specifications": [
14
+ {
15
+ "specType": "InstanceNodesOfSpecificClasses",
16
+ "classes": [
17
+ {
18
+ "schemaName": "BisCore",
19
+ "classNames": ["Subject"],
20
+ "arePolymorphic": false
21
+ }
22
+ ],
23
+ "instanceFilter": "this.Parent = NULL",
24
+ "groupByClass": false,
25
+ "groupByLabel": false
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "ruleType": "ChildNodes",
31
+ "condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
32
+ "specifications": [
33
+ {
34
+ "specType": "RelatedInstanceNodes",
35
+ "relationshipPaths": [
36
+ {
37
+ "relationship": {
38
+ "schemaName": "BisCore",
39
+ "className": "SubjectOwnsSubjects"
40
+ },
41
+ "direction": "Forward",
42
+ "targetClass": {
43
+ "schemaName": "BisCore",
44
+ "className": "Subject"
45
+ }
46
+ }
47
+ ],
48
+ "instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") <> NULL OR ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") = \"Hierarchy\"",
49
+ "hideNodesInHierarchy": true,
50
+ "groupByClass": false,
51
+ "groupByLabel": false
52
+ },
53
+ {
54
+ "specType": "RelatedInstanceNodes",
55
+ "relationshipPaths": [
56
+ {
57
+ "relationship": {
58
+ "schemaName": "BisCore",
59
+ "className": "SubjectOwnsSubjects"
60
+ },
61
+ "direction": "Forward",
62
+ "targetClass": {
63
+ "schemaName": "BisCore",
64
+ "className": "Subject"
65
+ }
66
+ }
67
+ ],
68
+ "instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") = NULL AND ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") <> \"Hierarchy\"",
69
+ "groupByClass": false,
70
+ "groupByLabel": false
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "ruleType": "ChildNodes",
76
+ "condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
77
+ "specifications": [
78
+ {
79
+ "specType": "InstanceNodesOfSpecificClasses",
80
+ "classes": {
81
+ "schemaName": "BisCore",
82
+ "classNames": ["Model"],
83
+ "arePolymorphic": true
84
+ },
85
+ "relatedInstances": [
86
+ {
87
+ "relationshipPath": {
88
+ "relationship": {
89
+ "schemaName": "BisCore",
90
+ "className": "ModelModelsElement"
91
+ },
92
+ "direction": "Forward",
93
+ "targetClass": {
94
+ "schemaName": "BisCore",
95
+ "className": "InformationPartitionElement"
96
+ }
97
+ },
98
+ "alias": "partition",
99
+ "isRequired": true
100
+ }
101
+ ],
102
+ "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",
103
+ "groupByClass": false,
104
+ "groupByLabel": false
105
+ },
106
+ {
107
+ "specType": "InstanceNodesOfSpecificClasses",
108
+ "classes": {
109
+ "schemaName": "BisCore",
110
+ "classNames": ["Model"],
111
+ "arePolymorphic": true
112
+ },
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 OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL)",
131
+ "hideNodesInHierarchy": true,
132
+ "groupByClass": false,
133
+ "groupByLabel": false
134
+ }
135
+ ]
136
+ },
137
+ {
138
+ "ruleType": "ChildNodes",
139
+ "condition": "ParentNode.IsOfClass(\"ISubModeledElement\", \"BisCore\")",
140
+ "specifications": [
141
+ {
142
+ "specType": "RelatedInstanceNodes",
143
+ "relationshipPaths": [
144
+ {
145
+ "relationship": {
146
+ "schemaName": "BisCore",
147
+ "className": "ModelModelsElement"
148
+ },
149
+ "direction": "Backward"
150
+ }
151
+ ],
152
+ "instanceFilter": "NOT this.IsPrivate",
153
+ "hideNodesInHierarchy": true,
154
+ "groupByClass": false,
155
+ "groupByLabel": false
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "ruleType": "ChildNodes",
161
+ "condition": "ParentNode.IsOfClass(\"GeometricModel3d\", \"BisCore\")",
162
+ "specifications": [
163
+ {
164
+ "specType": "RelatedInstanceNodes",
165
+ "relationshipPaths": [
166
+ [
167
+ {
168
+ "relationship": {
169
+ "schemaName": "BisCore",
170
+ "className": "ModelContainsElements"
171
+ },
172
+ "direction": "Forward"
173
+ },
174
+ {
175
+ "relationship": {
176
+ "schemaName": "BisCore",
177
+ "className": "GeometricElement3dIsInCategory"
178
+ },
179
+ "direction": "Forward"
180
+ }
181
+ ]
182
+ ],
183
+ "suppressSimilarAncestorsCheck": true,
184
+ "groupByClass": false,
185
+ "groupByLabel": false,
186
+ "nestedRules": [
187
+ {
188
+ "ruleType": "ChildNodes",
189
+ "condition": "ParentNode.IsOfClass(\"SpatialCategory\", \"BisCore\")",
190
+ "specifications": [
191
+ {
192
+ "specType": "RelatedInstanceNodes",
193
+ "relationshipPaths": [
194
+ {
195
+ "relationship": {
196
+ "schemaName": "BisCore",
197
+ "className": "GeometricElement3dIsInCategory"
198
+ },
199
+ "direction": "Backward"
200
+ }
201
+ ],
202
+ "instanceFilter": "this.Model.Id = parent.parent.ECInstanceId ANDALSO this.Parent = NULL",
203
+ "groupByClass": true,
204
+ "groupByLabel": false
205
+ }
206
+ ]
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "specType": "RelatedInstanceNodes",
212
+ "relationshipPaths": [
213
+ {
214
+ "relationship": {
215
+ "schemaName": "BisCore",
216
+ "className": "ModelContainsElements"
217
+ },
218
+ "direction": "Forward",
219
+ "targetClass": {
220
+ "schemaName": "BisCore",
221
+ "className": "InformationContentElement"
222
+ }
223
+ }
224
+ ],
225
+ "groupByClass": true,
226
+ "groupByLabel": false
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ "ruleType": "ChildNodes",
232
+ "condition": "ParentNode.IsOfClass(\"GeometricModel2d\", \"BisCore\")",
233
+ "specifications": [
234
+ {
235
+ "specType": "RelatedInstanceNodes",
236
+ "relationshipPaths": [
237
+ [
238
+ {
239
+ "relationship": {
240
+ "schemaName": "BisCore",
241
+ "className": "ModelContainsElements"
242
+ },
243
+ "direction": "Forward"
244
+ },
245
+ {
246
+ "relationship": {
247
+ "schemaName": "BisCore",
248
+ "className": "GeometricElement2dIsInCategory"
249
+ },
250
+ "direction": "Forward"
251
+ }
252
+ ]
253
+ ],
254
+ "suppressSimilarAncestorsCheck": true,
255
+ "groupByClass": false,
256
+ "groupByLabel": false,
257
+ "nestedRules": [
258
+ {
259
+ "ruleType": "ChildNodes",
260
+ "condition": "ParentNode.IsOfClass(\"DrawingCategory\", \"BisCore\")",
261
+ "specifications": [
262
+ {
263
+ "specType": "RelatedInstanceNodes",
264
+ "relationshipPaths": [
265
+ {
266
+ "relationship": {
267
+ "schemaName": "BisCore",
268
+ "className": "GeometricElement2dIsInCategory"
269
+ },
270
+ "direction": "Backward"
271
+ }
272
+ ],
273
+ "instanceFilter": "this.Model.Id = parent.parent.ECInstanceId ANDALSO this.Parent = NULL",
274
+ "groupByClass": true,
275
+ "groupByLabel": false
276
+ }
277
+ ]
278
+ }
279
+ ]
280
+ },
281
+ {
282
+ "specType": "RelatedInstanceNodes",
283
+ "relationshipPaths": [
284
+ {
285
+ "relationship": {
286
+ "schemaName": "BisCore",
287
+ "className": "ModelContainsElements"
288
+ },
289
+ "direction": "Forward",
290
+ "targetClass": {
291
+ "schemaName": "BisCore",
292
+ "className": "InformationContentElement"
293
+ }
294
+ }
295
+ ],
296
+ "groupByClass": true,
297
+ "groupByLabel": false
298
+ }
299
+ ]
300
+ },
301
+ {
302
+ "ruleType": "ChildNodes",
303
+ "condition": "ParentNode.IsOfClass(\"Model\", \"BisCore\")",
304
+ "onlyIfNotHandled": true,
305
+ "specifications": [
306
+ {
307
+ "specType": "RelatedInstanceNodes",
308
+ "relationshipPaths": [
309
+ [
310
+ {
311
+ "relationship": {
312
+ "schemaName": "BisCore",
313
+ "className": "ModelContainsElements"
314
+ },
315
+ "direction": "Forward"
316
+ }
317
+ ]
318
+ ],
319
+ "instanceFilter": "this.Parent = NULL",
320
+ "groupByClass": true,
321
+ "groupByLabel": false
322
+ }
323
+ ]
324
+ },
325
+ {
326
+ "ruleType": "ChildNodes",
327
+ "condition": "ParentNode.IsOfClass(\"GroupInformationElement\", \"BisCore\")",
328
+ "onlyIfNotHandled": true,
329
+ "specifications": [
330
+ {
331
+ "specType": "CustomNode",
332
+ "type": "T_CHILDREN",
333
+ "label": "Children",
334
+ "imageId": "icon-hierarchy-tree",
335
+ "hideIfNoChildren": true,
336
+ "nestedRules": [
337
+ {
338
+ "ruleType": "ChildNodes",
339
+ "specifications": [
340
+ {
341
+ "specType": "RelatedInstanceNodes",
342
+ "relationshipPaths": [
343
+ {
344
+ "relationship": {
345
+ "schemaName": "BisCore",
346
+ "className": "ElementOwnsChildElements"
347
+ },
348
+ "direction": "Forward"
349
+ }
350
+ ],
351
+ "groupByClass": true,
352
+ "groupByLabel": false
353
+ }
354
+ ]
355
+ }
356
+ ]
357
+ },
358
+ {
359
+ "specType": "CustomNode",
360
+ "type": "T_GROUPED_MEMBERS",
361
+ "label": "Members",
362
+ "imageId": "icon-group",
363
+ "hideIfNoChildren": true,
364
+ "nestedRules": [
365
+ {
366
+ "ruleType": "ChildNodes",
367
+ "specifications": [
368
+ {
369
+ "specType": "RelatedInstanceNodes",
370
+ "relationshipPaths": [
371
+ {
372
+ "relationship": {
373
+ "schemaName": "BisCore",
374
+ "className": "ElementGroupsMembers"
375
+ },
376
+ "direction": "Forward"
377
+ }
378
+ ],
379
+ "groupByClass": true,
380
+ "groupByLabel": false
381
+ }
382
+ ]
383
+ }
384
+ ]
385
+ }
386
+ ]
387
+ },
388
+ {
389
+ "ruleType": "ChildNodes",
390
+ "condition": "ParentNode.IsOfClass(\"Element\", \"BisCore\")",
391
+ "onlyIfNotHandled": true,
392
+ "specifications": [
393
+ {
394
+ "specType": "RelatedInstanceNodes",
395
+ "relationshipPaths": [
396
+ {
397
+ "relationship": {
398
+ "schemaName": "BisCore",
399
+ "className": "ElementOwnsChildElements"
400
+ },
401
+ "direction": "Forward"
402
+ }
403
+ ],
404
+ "groupByClass": true,
405
+ "groupByLabel": false
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "ruleType": "ImageIdOverride",
411
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Subject\", \"BisCore\")",
412
+ "imageIdExpression": "IIF(this.Parent.Id = NULL, \"icon-imodel-hollow-2\", \"icon-folder\")"
413
+ },
414
+ {
415
+ "ruleType": "ImageIdOverride",
416
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Model\", \"BisCore\")",
417
+ "imageIdExpression": "\"icon-model\""
418
+ },
419
+ {
420
+ "ruleType": "ImageIdOverride",
421
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Category\", \"BisCore\")",
422
+ "imageIdExpression": "\"icon-layers\""
423
+ },
424
+ {
425
+ "ruleType": "ImageIdOverride",
426
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Element\", \"BisCore\")",
427
+ "imageIdExpression": "\"icon-item\""
428
+ },
429
+ {
430
+ "ruleType": "ImageIdOverride",
431
+ "condition": "ThisNode.IsClassGroupingNode",
432
+ "imageIdExpression": "\"icon-ec-class\""
433
+ }
434
+ ]
435
+ }
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-search-popup {
8
8
  display: block;
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-search-bar {
8
8
  display: flex;
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-searchbox {
8
8
  @include uicore-font-family;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { IModelConnection, Viewport } from "@itwin/core-frontend";
2
3
  import "./CategoriesTree.scss";
3
4
  export interface CategoriesTreeComponentProps {
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/esm/core-react/index";
5
+ @import "~@itwin/core-react/lib/cjs/core-react/index";
6
6
 
7
7
  .tree-widget-category-tree-search-bar {
8
8
  margin-bottom: $uicore-s;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { IModelConnection } from "@itwin/core-frontend";
2
3
  export interface ClassificationsTreeComponentProps {
3
4
  iModel: IModelConnection;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { IModelConnection } from "@itwin/core-frontend";
3
+ export interface IModelContentTreeProps extends Omit<React.AllHTMLAttributes<HTMLDivElement>, "children"> {
4
+ iModel: IModelConnection;
5
+ }
6
+ export declare const IModelContentTree: (props: IModelContentTreeProps) => JSX.Element;
7
+ //# sourceMappingURL=IModelContentTree.d.ts.map
@@ -0,0 +1,30 @@
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 classNames from "classnames";
6
+ import React, { useCallback, useMemo, useState } from "react";
7
+ import { usePresentationTreeNodeLoader } from "@itwin/presentation-components";
8
+ import { ControlledTree, SelectionMode, useTreeEventsHandler, useTreeModel } from "@itwin/components-react";
9
+ import IMODEL_CONTENT_RULESET from "../rulesets/IModelContent.json";
10
+ import { useResizeObserver } from "@itwin/core-react";
11
+ export const IModelContentTree = (props) => {
12
+ const { iModel, className, ...divProps } = props;
13
+ const [height, setHeight] = useState(0);
14
+ const [width, setWidth] = useState(0);
15
+ const handleResize = useCallback((w, h) => {
16
+ setHeight(h);
17
+ setWidth(w);
18
+ }, []);
19
+ const ref = useResizeObserver(handleResize);
20
+ const { nodeLoader } = usePresentationTreeNodeLoader({
21
+ imodel: iModel,
22
+ ruleset: IMODEL_CONTENT_RULESET,
23
+ pagingSize: 20,
24
+ appendChildrenCountForGroupingNodes: true,
25
+ });
26
+ const eventHandler = useTreeEventsHandler(useMemo(() => ({ nodeLoader, modelSource: nodeLoader.modelSource, collapsedChildrenDisposalEnabled: true }), [nodeLoader]));
27
+ return (React.createElement("div", { ref: ref, style: { width: "100%", height: "100%" }, ...divProps, className: classNames("imodel-content-tree", className) },
28
+ React.createElement(ControlledTree, { width: width, height: height, nodeLoader: nodeLoader, selectionMode: SelectionMode.None, eventsHandler: eventHandler, model: useTreeModel(nodeLoader.modelSource), iconsEnabled: true })));
29
+ };
30
+ //# sourceMappingURL=IModelContentTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelContentTree.js","sourceRoot":"","sources":["../../../../src/components/trees/IModelContentTree.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5G,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QACxD,SAAS,CAAC,CAAC,CAAC,CAAC;QACb,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,GAAG,GAAG,iBAAiB,CAAiB,YAAY,CAAC,CAAC;IAE5D,MAAM,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,sBAAiC;QAC1C,UAAU,EAAE,EAAE;QACd,mCAAmC,EAAE,IAAI;KAC1C,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEtK,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAM,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC;QAC5H,oBAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,CAAC,IAAI,EACjC,aAAa,EAAE,YAAY,EAC3B,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAC3C,YAAY,EAAE,IAAI,GAClB,CACE,CACP,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*--------------------------------------------------------------------------------------------*/\nimport classNames from \"classnames\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { Ruleset } from \"@itwin/presentation-common\";\nimport { usePresentationTreeNodeLoader } from \"@itwin/presentation-components\";\nimport { ControlledTree, SelectionMode, useTreeEventsHandler, useTreeModel } from \"@itwin/components-react\";\nimport IMODEL_CONTENT_RULESET from \"../rulesets/IModelContent.json\";\nimport { useResizeObserver } from \"@itwin/core-react\";\n\nexport interface IModelContentTreeProps extends Omit<React.AllHTMLAttributes<HTMLDivElement>, \"children\"> {\n iModel: IModelConnection;\n}\n\nexport const IModelContentTree = (props: IModelContentTreeProps) => {\n const { iModel, className, ...divProps } = props;\n\n const [height, setHeight] = useState(0);\n const [width, setWidth] = useState(0);\n const handleResize = useCallback((w: number, h: number) => {\n setHeight(h);\n setWidth(w);\n }, []);\n const ref = useResizeObserver<HTMLDivElement>(handleResize);\n\n const { nodeLoader } = usePresentationTreeNodeLoader({\n imodel: iModel,\n ruleset: IMODEL_CONTENT_RULESET as Ruleset,\n pagingSize: 20,\n appendChildrenCountForGroupingNodes: true,\n });\n const eventHandler = useTreeEventsHandler(useMemo(() => ({ nodeLoader, modelSource: nodeLoader.modelSource, collapsedChildrenDisposalEnabled: true }), [nodeLoader]));\n\n return (\n <div ref={ref} style={{ width: \"100%\", height: \"100%\" }} {...divProps} className={classNames(\"imodel-content-tree\", className)}>\n <ControlledTree\n width={width}\n height={height}\n nodeLoader={nodeLoader}\n selectionMode={SelectionMode.None}\n eventsHandler={eventHandler}\n model={useTreeModel(nodeLoader.modelSource)}\n iconsEnabled={true}\n />\n </div>\n );\n};\n"]}