@itwin/tree-widget-react 1.2.2 → 2.0.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 (194) hide show
  1. package/CHANGELOG.md +26 -2
  2. package/README.md +1 -1
  3. package/lib/cjs/TreeWidget.d.ts +0 -1
  4. package/lib/cjs/TreeWidget.js +9 -10
  5. package/lib/cjs/TreeWidget.js.map +1 -1
  6. package/lib/cjs/components/SelectableTree.d.ts +9 -1
  7. package/lib/cjs/components/SelectableTree.js +28 -17
  8. package/lib/cjs/components/SelectableTree.js.map +1 -1
  9. package/lib/cjs/components/SelectableTree.scss +0 -16
  10. package/lib/cjs/components/TreeFilteringState.js +3 -3
  11. package/lib/cjs/components/TreeFilteringState.js.map +1 -1
  12. package/lib/cjs/components/TreeSelector.d.ts +28 -0
  13. package/lib/cjs/components/TreeSelector.js +27 -0
  14. package/lib/cjs/components/TreeSelector.js.map +1 -0
  15. package/lib/cjs/components/TreeSelector.scss +27 -0
  16. package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +9 -1
  17. package/lib/cjs/components/TreeWidgetUiItemsProvider.js +21 -14
  18. package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
  19. package/lib/cjs/components/TreeWidgetUiItemsProvider.scss +1 -1
  20. package/lib/cjs/components/tree-header/TreeHeader.d.ts +3 -0
  21. package/lib/cjs/components/tree-header/TreeHeader.js +20 -15
  22. package/lib/cjs/components/tree-header/TreeHeader.js.map +1 -1
  23. package/lib/cjs/components/tree-header/TreeHeader.scss +29 -1
  24. package/lib/cjs/components/trees/CategoriesVisibilityUtils.js +13 -8
  25. package/lib/cjs/components/trees/CategoriesVisibilityUtils.js.map +1 -1
  26. package/lib/cjs/components/trees/VisibilityTreeBase.scss +1 -1
  27. package/lib/cjs/components/trees/VisibilityTreeEventHandler.d.ts +1 -1
  28. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js +18 -10
  29. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js.map +1 -1
  30. package/lib/cjs/components/trees/VisibilityTreeRenderer.d.ts +20 -4
  31. package/lib/cjs/components/trees/VisibilityTreeRenderer.js +28 -10
  32. package/lib/cjs/components/trees/VisibilityTreeRenderer.js.map +1 -1
  33. package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +7 -2
  34. package/lib/cjs/components/trees/category-tree/CategoriesTree.js +47 -30
  35. package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +1 -1
  36. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js +27 -18
  37. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
  38. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +2 -2
  39. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js +18 -13
  40. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
  41. package/lib/cjs/components/trees/common/ContextMenu.js +4 -4
  42. package/lib/cjs/components/trees/common/ContextMenu.js.map +1 -1
  43. package/lib/cjs/components/trees/common/TreeNodeRenderer.d.ts +1 -1
  44. package/lib/cjs/components/trees/common/TreeNodeRenderer.js +4 -4
  45. package/lib/cjs/components/trees/common/TreeNodeRenderer.js.map +1 -1
  46. package/lib/cjs/components/trees/common/TreeRenderer.d.ts +15 -1
  47. package/lib/cjs/components/trees/common/TreeRenderer.js +17 -7
  48. package/lib/cjs/components/trees/common/TreeRenderer.js.map +1 -1
  49. package/lib/cjs/components/trees/common/TreeRenderer.scss +39 -2
  50. package/lib/cjs/components/trees/common/Types.d.ts +8 -0
  51. package/lib/cjs/components/trees/common/Types.js +3 -3
  52. package/lib/cjs/components/trees/common/Types.js.map +1 -1
  53. package/lib/cjs/components/trees/common/UseVisibilityTreeState.d.ts +36 -0
  54. package/lib/cjs/components/trees/common/UseVisibilityTreeState.js +47 -0
  55. package/lib/cjs/components/trees/common/UseVisibilityTreeState.js.map +1 -0
  56. package/lib/cjs/components/trees/common/Utils.js +7 -5
  57. package/lib/cjs/components/trees/common/Utils.js.map +1 -1
  58. package/lib/cjs/components/trees/external-sources-tree/ExternalSources.json +1 -3
  59. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +9 -3
  60. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js +19 -7
  61. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
  62. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +4 -4
  63. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
  64. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.d.ts +9 -3
  65. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js +16 -12
  66. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
  67. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js +6 -5
  68. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
  69. package/lib/cjs/components/trees/index.js +3 -3
  70. package/lib/cjs/components/trees/index.js.map +1 -1
  71. package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +7 -2
  72. package/lib/cjs/components/trees/models-tree/ModelsTree.js +76 -62
  73. package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -1
  74. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +27 -29
  75. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  76. package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.d.ts +9 -0
  77. package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.js +31 -0
  78. package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.js.map +1 -0
  79. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js +125 -66
  80. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -1
  81. package/lib/cjs/components/trees/models-tree/Utils.d.ts +4 -0
  82. package/lib/cjs/components/trees/models-tree/Utils.js +52 -58
  83. package/lib/cjs/components/trees/models-tree/Utils.js.map +1 -1
  84. package/lib/cjs/components/utils/AutoSizer.js +7 -5
  85. package/lib/cjs/components/utils/AutoSizer.js.map +1 -1
  86. package/lib/cjs/components/utils/IsPromiseLike.js +4 -4
  87. package/lib/cjs/components/utils/IsPromiseLike.js.map +1 -1
  88. package/lib/cjs/components/utils/UseTreeTransientState.js +3 -3
  89. package/lib/cjs/components/utils/UseTreeTransientState.js.map +1 -1
  90. package/lib/cjs/tree-widget-react.js +3 -3
  91. package/lib/cjs/tree-widget-react.js.map +1 -1
  92. package/lib/esm/TreeWidget.d.ts +0 -1
  93. package/lib/esm/TreeWidget.js +9 -10
  94. package/lib/esm/TreeWidget.js.map +1 -1
  95. package/lib/esm/components/SelectableTree.d.ts +9 -1
  96. package/lib/esm/components/SelectableTree.js +28 -17
  97. package/lib/esm/components/SelectableTree.js.map +1 -1
  98. package/lib/esm/components/SelectableTree.scss +0 -16
  99. package/lib/esm/components/TreeFilteringState.js +3 -3
  100. package/lib/esm/components/TreeFilteringState.js.map +1 -1
  101. package/lib/esm/components/TreeSelector.d.ts +28 -0
  102. package/lib/esm/components/TreeSelector.js +23 -0
  103. package/lib/esm/components/TreeSelector.js.map +1 -0
  104. package/lib/esm/components/TreeSelector.scss +27 -0
  105. package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +9 -1
  106. package/lib/esm/components/TreeWidgetUiItemsProvider.js +19 -13
  107. package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
  108. package/lib/esm/components/TreeWidgetUiItemsProvider.scss +1 -1
  109. package/lib/esm/components/tree-header/TreeHeader.d.ts +3 -0
  110. package/lib/esm/components/tree-header/TreeHeader.js +20 -15
  111. package/lib/esm/components/tree-header/TreeHeader.js.map +1 -1
  112. package/lib/esm/components/tree-header/TreeHeader.scss +29 -1
  113. package/lib/esm/components/trees/CategoriesVisibilityUtils.js +13 -8
  114. package/lib/esm/components/trees/CategoriesVisibilityUtils.js.map +1 -1
  115. package/lib/esm/components/trees/VisibilityTreeBase.scss +1 -1
  116. package/lib/esm/components/trees/VisibilityTreeEventHandler.d.ts +1 -1
  117. package/lib/esm/components/trees/VisibilityTreeEventHandler.js +18 -10
  118. package/lib/esm/components/trees/VisibilityTreeEventHandler.js.map +1 -1
  119. package/lib/esm/components/trees/VisibilityTreeRenderer.d.ts +20 -4
  120. package/lib/esm/components/trees/VisibilityTreeRenderer.js +27 -10
  121. package/lib/esm/components/trees/VisibilityTreeRenderer.js.map +1 -1
  122. package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +7 -2
  123. package/lib/esm/components/trees/category-tree/CategoriesTree.js +51 -34
  124. package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +1 -1
  125. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js +24 -18
  126. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -1
  127. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +2 -2
  128. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js +18 -13
  129. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -1
  130. package/lib/esm/components/trees/common/ContextMenu.js +4 -4
  131. package/lib/esm/components/trees/common/ContextMenu.js.map +1 -1
  132. package/lib/esm/components/trees/common/TreeNodeRenderer.d.ts +1 -1
  133. package/lib/esm/components/trees/common/TreeNodeRenderer.js +4 -4
  134. package/lib/esm/components/trees/common/TreeNodeRenderer.js.map +1 -1
  135. package/lib/esm/components/trees/common/TreeRenderer.d.ts +15 -1
  136. package/lib/esm/components/trees/common/TreeRenderer.js +15 -6
  137. package/lib/esm/components/trees/common/TreeRenderer.js.map +1 -1
  138. package/lib/esm/components/trees/common/TreeRenderer.scss +39 -2
  139. package/lib/esm/components/trees/common/Types.d.ts +8 -0
  140. package/lib/esm/components/trees/common/Types.js +3 -3
  141. package/lib/esm/components/trees/common/Types.js.map +1 -1
  142. package/lib/esm/components/trees/common/UseVisibilityTreeState.d.ts +36 -0
  143. package/lib/esm/components/trees/common/UseVisibilityTreeState.js +43 -0
  144. package/lib/esm/components/trees/common/UseVisibilityTreeState.js.map +1 -0
  145. package/lib/esm/components/trees/common/Utils.js +7 -5
  146. package/lib/esm/components/trees/common/Utils.js.map +1 -1
  147. package/lib/esm/components/trees/external-sources-tree/ExternalSources.json +1 -3
  148. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +9 -3
  149. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js +22 -10
  150. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
  151. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +4 -4
  152. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
  153. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.d.ts +9 -3
  154. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js +19 -15
  155. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
  156. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js +6 -5
  157. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
  158. package/lib/esm/components/trees/index.js +3 -3
  159. package/lib/esm/components/trees/index.js.map +1 -1
  160. package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +7 -2
  161. package/lib/esm/components/trees/models-tree/ModelsTree.js +80 -66
  162. package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -1
  163. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js +25 -30
  164. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  165. package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.d.ts +9 -0
  166. package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.js +27 -0
  167. package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.js.map +1 -0
  168. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js +125 -66
  169. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -1
  170. package/lib/esm/components/trees/models-tree/Utils.d.ts +4 -0
  171. package/lib/esm/components/trees/models-tree/Utils.js +50 -57
  172. package/lib/esm/components/trees/models-tree/Utils.js.map +1 -1
  173. package/lib/esm/components/utils/AutoSizer.js +7 -5
  174. package/lib/esm/components/utils/AutoSizer.js.map +1 -1
  175. package/lib/esm/components/utils/IsPromiseLike.js +4 -4
  176. package/lib/esm/components/utils/IsPromiseLike.js.map +1 -1
  177. package/lib/esm/components/utils/UseTreeTransientState.js +3 -3
  178. package/lib/esm/components/utils/UseTreeTransientState.js.map +1 -1
  179. package/lib/esm/tree-widget-react.js +3 -3
  180. package/lib/esm/tree-widget-react.js.map +1 -1
  181. package/lib/public/locales/en/TreeWidget.json +1 -0
  182. package/package.json +47 -46
  183. package/lib/cjs/e2e-tests/TreeWidget.test.d.ts +0 -2
  184. package/lib/cjs/e2e-tests/TreeWidget.test.js +0 -51
  185. package/lib/cjs/e2e-tests/TreeWidget.test.js.map +0 -1
  186. package/lib/cjs/e2e-tests/utils.d.ts +0 -9
  187. package/lib/cjs/e2e-tests/utils.js +0 -51
  188. package/lib/cjs/e2e-tests/utils.js.map +0 -1
  189. package/lib/esm/e2e-tests/TreeWidget.test.d.ts +0 -2
  190. package/lib/esm/e2e-tests/TreeWidget.test.js +0 -46
  191. package/lib/esm/e2e-tests/TreeWidget.test.js.map +0 -1
  192. package/lib/esm/e2e-tests/utils.d.ts +0 -9
  193. package/lib/esm/e2e-tests/utils.js +0 -40
  194. package/lib/esm/e2e-tests/utils.js.map +0 -1
@@ -6,6 +6,8 @@
6
6
  .tree-widget-tree-with-header {
7
7
  width: 100%;
8
8
  height: 100%;
9
+ display: flex;
10
+ flex-direction: column;
9
11
 
10
12
  .tree-widget-tree-header {
11
13
  height: var(--iui-size-xl);
@@ -13,6 +15,10 @@
13
15
 
14
16
  .tree-widget-tree-content {
15
17
  height: calc(100% - var(--iui-size-xl));
18
+
19
+ &.enlarge {
20
+ height: calc(100% - var(--iui-size-xl) - var(--iui-size-m));
21
+ }
16
22
  }
17
23
  }
18
24
 
@@ -28,9 +34,15 @@
28
34
  }
29
35
 
30
36
  .core-tree-node {
37
+ > .contents {
38
+ .core-tree-node-icon {
39
+ line-height: 0;
40
+ }
41
+ }
42
+
31
43
  &.without-expander {
32
- >.contents {
33
- >.core-tree-node-icon {
44
+ > .contents {
45
+ > .core-tree-node-icon {
34
46
  margin-left: 5px;
35
47
  }
36
48
  }
@@ -40,14 +52,39 @@
40
52
  &.enlarge {
41
53
  --enlarged-node-height: calc(var(--iui-size-l) + var(--iui-size-m) + var(--iui-size-3xs));
42
54
  --enlarged-node-icon-size: var(--iui-size-m);
55
+ --enlarged-node-without-expander-margin: var(--iui-size-m);
43
56
  --enlarged-node-icon-padding: calc(var(--enlarged-node-height) - var(--enlarged-node-icon-size));
44
57
  --enlarged-node-expander-additional-padding: calc(var(--iui-size-l) - var(--iui-size-3xs) / 2);
45
58
 
46
59
  .core-tree-node {
60
+ &.without-expander {
61
+ margin-left: var(--enlarged-node-without-expander-margin);
62
+ }
63
+
64
+ > .presentation-components-node-action-buttons {
65
+ height: var(--enlarged-node-height);
66
+ width: min-content;
67
+
68
+ .presentation-components-node-action-button {
69
+ height: var(--enlarged-node-height);
70
+ width: var(--enlarged-node-height);
71
+
72
+ svg {
73
+ height: var(--enlarged-node-height);
74
+ width: var(--enlarged-node-height);
75
+ padding: var(--iui-size-s);
76
+ }
77
+ }
78
+ }
79
+
47
80
  > .contents {
48
81
  height: var(--enlarged-node-height);
49
82
  font-size: var(--iui-font-size-2);
50
83
 
84
+ .core-progress-indicator {
85
+ margin: calc(var(--enlarged-node-icon-padding) / 2);
86
+ }
87
+
51
88
  /* stylelint-disable-next-line selector-class-pattern */
52
89
  .core-tree-expansionToggle {
53
90
  > .icon {
@@ -22,6 +22,14 @@ export interface VisibilityTreeFilterInfo {
22
22
  filter: string;
23
23
  activeMatchIndex?: number;
24
24
  }
25
+ /**
26
+ * Configuration for hierarchy levels. Setting it implies that hierarchy level filtering will be enabled.
27
+ * @beta
28
+ */
29
+ export interface HierarchyLevelConfig {
30
+ isFilteringEnabled: true;
31
+ sizeLimit?: number;
32
+ }
25
33
  /**
26
34
  * Base props for tree components.
27
35
  * @public
@@ -1,7 +1,7 @@
1
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
- *--------------------------------------------------------------------------------------------*/
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
5
  /**
6
6
  * An option of how class grouping should work in a component.
7
7
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../../../src/components/trees/common/Types.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAO/F;;;GAGG;AACH,MAAM,CAAN,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,iCAAiC;IACjC,yDAAE,CAAA;IACF,gCAAgC;IAChC,2DAAG,CAAA;IACH,4EAA4E;IAC5E,+EAAa,CAAA;AACf,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,QAO9B","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 type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { SelectionMode } from \"@itwin/components-react\";\nimport type { IPresentationTreeDataProvider } from \"@itwin/presentation-components\";\nimport type { TreeRendererBaseProps } from \"./TreeRenderer\";\n\n/**\n * An option of how class grouping should work in a component.\n * @public\n */\nexport enum ClassGroupingOption {\n /** Class grouping is disabled */\n No,\n /** Class grouping is enabled */\n Yes,\n /** Class grouping is enabled and grouping node shows grouped items count */\n YesWithCounts,\n}\n\n/**\n * Data structure that describes info used to filter visibility tree.\n * @public\n */\nexport interface VisibilityTreeFilterInfo {\n filter: string;\n activeMatchIndex?: number;\n}\n\n/**\n * Base props for tree components.\n * @public\n */\nexport interface BaseTreeProps extends TreeRendererBaseProps {\n /** An iModel to pull data from. */\n iModel: IModelConnection;\n /** Width of the component. */\n width: number;\n /** Height of the component. */\n height: number;\n /** Selection mode in the tree. */\n selectionMode?: SelectionMode;\n}\n\n/**\n * Base props for filterable tree components.\n * @public\n */\nexport interface BaseFilterableTreeProps extends BaseTreeProps {\n /** Information for tree filtering. */\n filterInfo?: VisibilityTreeFilterInfo;\n /** Callback invoked when tree is filtered. */\n onFilterApplied?: (filteredDataProvider: IPresentationTreeDataProvider, matchesCount: number) => void;\n}\n"]}
1
+ {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../../../src/components/trees/common/Types.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAOhG;;;GAGG;AACH,MAAM,CAAN,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,iCAAiC;IACjC,yDAAE,CAAA;IACF,gCAAgC;IAChC,2DAAG,CAAA;IACH,4EAA4E;IAC5E,+EAAa,CAAA;AACf,CAAC,EAPW,mBAAmB,KAAnB,mBAAmB,QAO9B","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 type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { SelectionMode } from \"@itwin/components-react\";\nimport type { IPresentationTreeDataProvider } from \"@itwin/presentation-components\";\nimport type { TreeRendererBaseProps } from \"./TreeRenderer\";\n\n/**\n * An option of how class grouping should work in a component.\n * @public\n */\nexport enum ClassGroupingOption {\n /** Class grouping is disabled */\n No,\n /** Class grouping is enabled */\n Yes,\n /** Class grouping is enabled and grouping node shows grouped items count */\n YesWithCounts,\n}\n\n/**\n * Data structure that describes info used to filter visibility tree.\n * @public\n */\nexport interface VisibilityTreeFilterInfo {\n filter: string;\n activeMatchIndex?: number;\n}\n\n/**\n * Configuration for hierarchy levels. Setting it implies that hierarchy level filtering will be enabled.\n * @beta\n */\nexport interface HierarchyLevelConfig {\n isFilteringEnabled: true;\n sizeLimit?: number;\n}\n\n/**\n * Base props for tree components.\n * @public\n */\nexport interface BaseTreeProps extends TreeRendererBaseProps {\n /** An iModel to pull data from. */\n iModel: IModelConnection;\n /** Width of the component. */\n width: number;\n /** Height of the component. */\n height: number;\n /** Selection mode in the tree. */\n selectionMode?: SelectionMode;\n}\n\n/**\n * Base props for filterable tree components.\n * @public\n */\nexport interface BaseFilterableTreeProps extends BaseTreeProps {\n /** Information for tree filtering. */\n filterInfo?: VisibilityTreeFilterInfo;\n /** Callback invoked when tree is filtered. */\n onFilterApplied?: (filteredDataProvider: IPresentationTreeDataProvider, matchesCount: number) => void;\n}\n"]}
@@ -0,0 +1,36 @@
1
+ import { VisibilityTreeEventHandler } from "../VisibilityTreeEventHandler";
2
+ import type { IModelConnection } from "@itwin/core-frontend";
3
+ import type { Ruleset } from "@itwin/presentation-common";
4
+ import type { IFilteredPresentationTreeDataProvider, UsePresentationTreeStateProps } from "@itwin/presentation-components";
5
+ import type { IVisibilityHandler, VisibilityTreeEventHandlerParams, VisibilityTreeSelectionPredicate } from "../VisibilityTreeEventHandler";
6
+ import type { VisibilityTreeFilterInfo } from "./Types";
7
+ /**
8
+ * Props for [[useVisibilityTreeState]] hook.
9
+ * @beta
10
+ */
11
+ export interface UseVisibilityTreeStateProps extends Omit<UsePresentationTreeStateProps<VisibilityTreeEventHandler>, "rulesetOrId"> {
12
+ /** iModel to pull data from. */
13
+ imodel: IModelConnection;
14
+ /** Presentation rules to use when pulling data from iModel. */
15
+ ruleset: Ruleset;
16
+ /** Visibility handler that will be used to determine tree node visibility or change it. */
17
+ visibilityHandler?: IVisibilityHandler;
18
+ /** Info about filter that should be applied on tree. */
19
+ filterInfo?: VisibilityTreeFilterInfo;
20
+ /** Callback that is invoked when filter is applied, changed or removed. */
21
+ onFilterChange?: (filteredDataProvider?: IFilteredPresentationTreeDataProvider, matchesCount?: number) => void;
22
+ /** Callback that is used to determine if node can be selected. If not provided all nodes are selectable. */
23
+ selectionPredicate?: VisibilityTreeSelectionPredicate;
24
+ /** Factory for custom `VisibilityTreeEventHandler`. Defaults to `VisibilityTreeEventHandler`. */
25
+ eventHandler?: (props: VisibilityTreeEventHandlerParams) => VisibilityTreeEventHandler;
26
+ /** The limit for how many items should be loaded for a single hierarchy level. */
27
+ hierarchyLevelSizeLimit?: number;
28
+ }
29
+ /**
30
+ * Custom hook for creating visibility tree component state.
31
+ *
32
+ * @returns `undefined` on first render cycle. On all other render cycles state is initialized and valid object is returned.
33
+ * @beta
34
+ */
35
+ export declare function useVisibilityTreeState({ imodel, ruleset, filterInfo, onFilterChange, visibilityHandler, selectionPredicate, eventHandler, ...props }: UseVisibilityTreeStateProps): import("@itwin/presentation-components").UsePresentationTreeStateResult<VisibilityTreeEventHandler> | undefined;
36
+ //# sourceMappingURL=UseVisibilityTreeState.d.ts.map
@@ -0,0 +1,43 @@
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 { useCallback, useEffect } from "react";
6
+ import { usePresentationTreeState } from "@itwin/presentation-components";
7
+ import { VisibilityTreeEventHandler } from "../VisibilityTreeEventHandler";
8
+ /**
9
+ * Custom hook for creating visibility tree component state.
10
+ *
11
+ * @returns `undefined` on first render cycle. On all other render cycles state is initialized and valid object is returned.
12
+ * @beta
13
+ */
14
+ export function useVisibilityTreeState({ imodel, ruleset, filterInfo, onFilterChange, visibilityHandler, selectionPredicate, eventHandler, ...props }) {
15
+ const eventHandlerFactory = useCallback((params) => {
16
+ if (!visibilityHandler) {
17
+ return undefined;
18
+ }
19
+ const eventHandlerProps = {
20
+ nodeLoader: params.nodeLoader,
21
+ visibilityHandler,
22
+ selectionPredicate,
23
+ };
24
+ return eventHandler ? eventHandler(eventHandlerProps) : new VisibilityTreeEventHandler(eventHandlerProps);
25
+ }, [visibilityHandler, selectionPredicate, eventHandler]);
26
+ const treeState = usePresentationTreeState({
27
+ ...props,
28
+ imodel,
29
+ ruleset,
30
+ eventHandlerFactory,
31
+ filteringParams: filterInfo?.filter
32
+ ? {
33
+ filter: filterInfo.filter,
34
+ activeMatchIndex: filterInfo?.activeMatchIndex,
35
+ }
36
+ : undefined,
37
+ });
38
+ useEffect(() => {
39
+ onFilterChange && onFilterChange(treeState?.filteringResult?.filteredProvider, treeState?.filteringResult?.matchesCount);
40
+ }, [treeState?.filteringResult?.matchesCount, treeState?.filteringResult?.filteredProvider, onFilterChange]);
41
+ return treeState;
42
+ }
43
+ //# sourceMappingURL=UseVisibilityTreeState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseVisibilityTreeState.js","sourceRoot":"","sources":["../../../../../src/components/trees/common/UseVisibilityTreeState.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AA+B3E;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,EACrC,MAAM,EACN,OAAO,EACP,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,GAAG,KAAK,EACoB;IAC5B,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,MAAyC,EAAE,EAAE;QAC5C,IAAI,CAAC,iBAAiB,EAAE;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,iBAAiB,GAAqC;YAC1D,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,iBAAiB;YACjB,kBAAkB;SACnB,CAAC;QAEF,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;IAC5G,CAAC,EACD,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CACtD,CAAC;IAEF,MAAM,SAAS,GAAG,wBAAwB,CAAC;QACzC,GAAG,KAAK;QACR,MAAM;QACN,OAAO;QACP,mBAAmB;QACnB,eAAe,EAAE,UAAU,EAAE,MAAM;YACjC,CAAC,CAAC;gBACE,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,gBAAgB,EAAE,UAAU,EAAE,gBAAgB;aAC/C;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,IAAI,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IAC3H,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7G,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 { useCallback, useEffect } from \"react\";\nimport { usePresentationTreeState } from \"@itwin/presentation-components\";\nimport { VisibilityTreeEventHandler } from \"../VisibilityTreeEventHandler\";\n\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { Ruleset } from \"@itwin/presentation-common\";\nimport type { IFilteredPresentationTreeDataProvider, PresentationTreeEventHandlerProps, UsePresentationTreeStateProps } from \"@itwin/presentation-components\";\nimport type { IVisibilityHandler, VisibilityTreeEventHandlerParams, VisibilityTreeSelectionPredicate } from \"../VisibilityTreeEventHandler\";\nimport type { VisibilityTreeFilterInfo } from \"./Types\";\n\n/**\n * Props for [[useVisibilityTreeState]] hook.\n * @beta\n */\nexport interface UseVisibilityTreeStateProps extends Omit<UsePresentationTreeStateProps<VisibilityTreeEventHandler>, \"rulesetOrId\"> {\n /** iModel to pull data from. */\n imodel: IModelConnection;\n /** Presentation rules to use when pulling data from iModel. */\n ruleset: Ruleset;\n /** Visibility handler that will be used to determine tree node visibility or change it. */\n visibilityHandler?: IVisibilityHandler;\n /** Info about filter that should be applied on tree. */\n filterInfo?: VisibilityTreeFilterInfo;\n /** Callback that is invoked when filter is applied, changed or removed. */\n onFilterChange?: (filteredDataProvider?: IFilteredPresentationTreeDataProvider, matchesCount?: number) => void;\n /** Callback that is used to determine if node can be selected. If not provided all nodes are selectable. */\n selectionPredicate?: VisibilityTreeSelectionPredicate;\n /** Factory for custom `VisibilityTreeEventHandler`. Defaults to `VisibilityTreeEventHandler`. */\n eventHandler?: (props: VisibilityTreeEventHandlerParams) => VisibilityTreeEventHandler;\n /** The limit for how many items should be loaded for a single hierarchy level. */\n hierarchyLevelSizeLimit?: number;\n}\n\n/**\n * Custom hook for creating visibility tree component state.\n *\n * @returns `undefined` on first render cycle. On all other render cycles state is initialized and valid object is returned.\n * @beta\n */\nexport function useVisibilityTreeState({\n imodel,\n ruleset,\n filterInfo,\n onFilterChange,\n visibilityHandler,\n selectionPredicate,\n eventHandler,\n ...props\n}: UseVisibilityTreeStateProps) {\n const eventHandlerFactory = useCallback(\n (params: PresentationTreeEventHandlerProps) => {\n if (!visibilityHandler) {\n return undefined;\n }\n\n const eventHandlerProps: VisibilityTreeEventHandlerParams = {\n nodeLoader: params.nodeLoader,\n visibilityHandler,\n selectionPredicate,\n };\n\n return eventHandler ? eventHandler(eventHandlerProps) : new VisibilityTreeEventHandler(eventHandlerProps);\n },\n [visibilityHandler, selectionPredicate, eventHandler],\n );\n\n const treeState = usePresentationTreeState({\n ...props,\n imodel,\n ruleset,\n eventHandlerFactory,\n filteringParams: filterInfo?.filter\n ? {\n filter: filterInfo.filter,\n activeMatchIndex: filterInfo?.activeMatchIndex,\n }\n : undefined,\n });\n\n useEffect(() => {\n onFilterChange && onFilterChange(treeState?.filteringResult?.filteredProvider, treeState?.filteringResult?.matchesCount);\n }, [treeState?.filteringResult?.matchesCount, treeState?.filteringResult?.filteredProvider, onFilterChange]);\n\n return treeState;\n}\n"]}
@@ -1,7 +1,7 @@
1
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
- *--------------------------------------------------------------------------------------------*/
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
5
  import { PropertyValueRendererManager } from "@itwin/components-react";
6
6
  import { CheckBoxState } from "@itwin/core-react";
7
7
  import { TREE_NODE_LABEL_RENDERER, TreeNodeLabelRenderer } from "./TreeNodeRenderer";
@@ -26,10 +26,12 @@ export function addTreeNodeItemCheckbox(item) {
26
26
  }
27
27
  /** @internal */
28
28
  export function registerRenderers() {
29
- const renderers = [{
29
+ const renderers = [
30
+ {
30
31
  name: TREE_NODE_LABEL_RENDERER,
31
32
  renderer: new TreeNodeLabelRenderer(),
32
- }];
33
+ },
34
+ ];
33
35
  for (const { name, renderer } of renderers) {
34
36
  PropertyValueRendererManager.defaultManager.registerRenderer(name, renderer);
35
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../src/components/trees/common/Utils.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAKrF,gBAAgB;AAChB,MAAM,UAAU,iCAAiC,CAAC,cAA4F;IAC5I,OAAO,CAAC,IAAsC,EAAE,IAAmB,EAAE,EAAE;QACrE,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kCAAkC,CAAC,IAAsC;IACvF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACf,OAAO;KACR;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;AACpE,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,uBAAuB,CAAC,IAAsC;IAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAA8D,CAAC;YAC5E,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAG,IAAI,qBAAqB,EAAE;SACvC,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE;QAC1C,4BAA4B,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC9E;IAED,OAAO,GAAG,EAAE;QACV,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE;YAChC,4BAA4B,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACtE;IACH,CAAC,CAAC;AACJ,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 { PropertyValueRendererManager } from \"@itwin/components-react\";\nimport { CheckBoxState } from \"@itwin/core-react\";\nimport { TREE_NODE_LABEL_RENDERER, TreeNodeLabelRenderer } from \"./TreeNodeRenderer\";\n\nimport type { DelayLoadedTreeNodeItem, IPropertyValueRenderer } from \"@itwin/components-react\";\nimport type { Node } from \"@itwin/presentation-common\";\n\n/** @internal */\nexport function combineTreeNodeItemCustomizations(customizations: Array<(item: Partial<DelayLoadedTreeNodeItem>, node: Partial<Node>) => void>) {\n return (item: Partial<DelayLoadedTreeNodeItem>, node: Partial<Node>) => {\n customizations.forEach((customize) => customize(item, node));\n };\n}\n\n/** @internal */\nexport function addCustomTreeNodeItemLabelRenderer(item: Partial<DelayLoadedTreeNodeItem>) {\n if (!item.label) {\n return;\n }\n\n item.label.property.renderer = { name: TREE_NODE_LABEL_RENDERER };\n}\n\n/** @internal */\nexport function addTreeNodeItemCheckbox(item: Partial<DelayLoadedTreeNodeItem>) {\n item.isCheckboxVisible = true;\n item.isCheckboxDisabled = true;\n item.checkBoxState = CheckBoxState.Off;\n}\n\n/** @internal */\nexport function registerRenderers() {\n const renderers: Array<{ name: string, renderer: IPropertyValueRenderer }> = [{\n name: TREE_NODE_LABEL_RENDERER,\n renderer: new TreeNodeLabelRenderer(),\n }];\n\n for (const { name, renderer } of renderers) {\n PropertyValueRendererManager.defaultManager.registerRenderer(name, renderer);\n }\n\n return () => {\n for (const { name } of renderers) {\n PropertyValueRendererManager.defaultManager.unregisterRenderer(name);\n }\n };\n}\n"]}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../src/components/trees/common/Utils.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAKrF,gBAAgB;AAChB,MAAM,UAAU,iCAAiC,CAAC,cAA4F;IAC5I,OAAO,CAAC,IAAsC,EAAE,IAAmB,EAAE,EAAE;QACrE,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kCAAkC,CAAC,IAAsC;IACvF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACf,OAAO;KACR;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;AACpE,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,uBAAuB,CAAC,IAAsC;IAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAA8D;QAC3E;YACE,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,IAAI,qBAAqB,EAAE;SACtC;KACF,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE;QAC1C,4BAA4B,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC9E;IAED,OAAO,GAAG,EAAE;QACV,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE;YAChC,4BAA4B,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACtE;IACH,CAAC,CAAC;AACJ,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 { PropertyValueRendererManager } from \"@itwin/components-react\";\nimport { CheckBoxState } from \"@itwin/core-react\";\nimport { TREE_NODE_LABEL_RENDERER, TreeNodeLabelRenderer } from \"./TreeNodeRenderer\";\n\nimport type { DelayLoadedTreeNodeItem, IPropertyValueRenderer } from \"@itwin/components-react\";\nimport type { Node } from \"@itwin/presentation-common\";\n\n/** @internal */\nexport function combineTreeNodeItemCustomizations(customizations: Array<(item: Partial<DelayLoadedTreeNodeItem>, node: Partial<Node>) => void>) {\n return (item: Partial<DelayLoadedTreeNodeItem>, node: Partial<Node>) => {\n customizations.forEach((customize) => customize(item, node));\n };\n}\n\n/** @internal */\nexport function addCustomTreeNodeItemLabelRenderer(item: Partial<DelayLoadedTreeNodeItem>) {\n if (!item.label) {\n return;\n }\n\n item.label.property.renderer = { name: TREE_NODE_LABEL_RENDERER };\n}\n\n/** @internal */\nexport function addTreeNodeItemCheckbox(item: Partial<DelayLoadedTreeNodeItem>) {\n item.isCheckboxVisible = true;\n item.isCheckboxDisabled = true;\n item.checkBoxState = CheckBoxState.Off;\n}\n\n/** @internal */\nexport function registerRenderers() {\n const renderers: Array<{ name: string; renderer: IPropertyValueRenderer }> = [\n {\n name: TREE_NODE_LABEL_RENDERER,\n renderer: new TreeNodeLabelRenderer(),\n },\n ];\n\n for (const { name, renderer } of renderers) {\n PropertyValueRendererManager.defaultManager.registerRenderer(name, renderer);\n }\n\n return () => {\n for (const { name } of renderers) {\n PropertyValueRendererManager.defaultManager.unregisterRenderer(name);\n }\n };\n}\n"]}
@@ -16,9 +16,7 @@
16
16
  "classes": [
17
17
  {
18
18
  "schemaName": "BisCore",
19
- "classNames": [
20
- "ExternalSource"
21
- ],
19
+ "classNames": ["ExternalSource"],
22
20
  "arePolymorphic": false
23
21
  }
24
22
  ],
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import "../VisibilityTreeBase.scss";
3
3
  import type { Ruleset } from "@itwin/presentation-common";
4
- import type { BaseTreeProps } from "../common/Types";
4
+ import type { BaseTreeProps, HierarchyLevelConfig } from "../common/Types";
5
5
  /**
6
6
  * Presentation rules used by ControlledCategoriesTree
7
7
  * @internal
@@ -11,10 +11,16 @@ export declare const RULESET_EXTERNAL_SOURCES: Ruleset;
11
11
  * Props for the [[ExternalSourcesTree]] component
12
12
  * @alpha
13
13
  */
14
- export type ExternalSourcesTreeProps = BaseTreeProps;
14
+ export interface ExternalSourcesTreeProps extends BaseTreeProps {
15
+ /**
16
+ * Props for configuring hierarchy level.
17
+ * @beta
18
+ */
19
+ hierarchyLevelConfig?: HierarchyLevelConfig;
20
+ }
15
21
  /**
16
22
  * Tree which displays a hierarchy of ExternalSources and their elements.
17
23
  * @alpha
18
24
  */
19
- export declare function ExternalSourcesTree(props: ExternalSourcesTreeProps): JSX.Element;
25
+ export declare function ExternalSourcesTree(props: ExternalSourcesTreeProps): JSX.Element | null;
20
26
  //# sourceMappingURL=ExternalSourcesTree.d.ts.map
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
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
- *--------------------------------------------------------------------------------------------*/
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
6
  import "../VisibilityTreeBase.scss";
7
- import { ControlledTree, SelectionMode, useTreeModel } from "@itwin/components-react";
8
- import { usePresentationTreeNodeLoader, useUnifiedSelectionTreeEventHandler } from "@itwin/presentation-components";
9
- import { TreeRenderer } from "../common/TreeRenderer";
7
+ import { SelectionMode } from "@itwin/components-react";
8
+ import { PresentationTree, PresentationTreeNodeRenderer, UnifiedSelectionTreeEventHandler, usePresentationTreeState } from "@itwin/presentation-components";
9
+ import { FilterableTreeRenderer, TreeRenderer } from "../common/TreeRenderer";
10
10
  import { addCustomTreeNodeItemLabelRenderer, combineTreeNodeItemCustomizations } from "../common/Utils";
11
11
  import * as RULESET_EXTERNAL_SOURCES_IMPORT from "./ExternalSources.json";
12
12
  /**
@@ -20,15 +20,27 @@ const PAGING_SIZE = 20;
20
20
  * @alpha
21
21
  */
22
22
  export function ExternalSourcesTree(props) {
23
- const { nodeLoader } = usePresentationTreeNodeLoader({
23
+ const { hierarchyLevelConfig, contextMenuItems, nodeLabelRenderer, density } = props;
24
+ const state = usePresentationTreeState({
24
25
  imodel: props.iModel,
25
26
  ruleset: RULESET_EXTERNAL_SOURCES,
26
27
  pagingSize: PAGING_SIZE,
28
+ eventHandlerFactory: unifiedSelectionTreeEventHandlerFactory,
27
29
  customizeTreeNodeItem,
30
+ hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit,
28
31
  });
29
- const eventsHandler = useUnifiedSelectionTreeEventHandler({ nodeLoader });
30
- const treeModel = useTreeModel(nodeLoader.modelSource);
31
- return (_jsx("div", { className: "tree-widget-tree-container", children: _jsx(ControlledTree, { nodeLoader: nodeLoader, model: treeModel, selectionMode: props.selectionMode ?? SelectionMode.Extended, eventsHandler: eventsHandler, width: props.width, height: props.height, iconsEnabled: true, treeRenderer: (treeProps) => _jsx(TreeRenderer, { ...treeProps, contextMenuItems: props.contextMenuItems, nodeLabelRenderer: props.nodeLabelRenderer, density: props.density }) }) }));
32
+ const treeRendererProps = {
33
+ contextMenuItems,
34
+ nodeLabelRenderer,
35
+ density,
36
+ };
37
+ if (!state) {
38
+ return null;
39
+ }
40
+ return (_jsx("div", { className: "tree-widget-tree-container", children: _jsx(PresentationTree, { width: props.width, height: props.height, state: state, selectionMode: props.selectionMode ?? SelectionMode.Extended, iconsEnabled: true, treeRenderer: (treeProps) => hierarchyLevelConfig?.isFilteringEnabled ? (_jsx(FilterableTreeRenderer, { ...treeProps, ...treeRendererProps, nodeLoader: state.nodeLoader, nodeRenderer: (nodeRendererProps) => _jsx(PresentationTreeNodeRenderer, { ...nodeRendererProps }) })) : (_jsx(TreeRenderer, { ...treeProps, ...treeRendererProps })) }) }));
41
+ }
42
+ function unifiedSelectionTreeEventHandlerFactory(props) {
43
+ return new UnifiedSelectionTreeEventHandler({ nodeLoader: props.nodeLoader });
32
44
  }
33
45
  const customizeTreeNodeItem = combineTreeNodeItemCustomizations([
34
46
  addCustomTreeNodeItemLabelRenderer,
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalSourcesTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTree.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAE/F,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,mCAAmC,EAAE,MAAM,gCAAgC,CAAC;AACpH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACxG,OAAO,KAAK,+BAA+B,MAAM,wBAAwB,CAAC;AAI1E;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA0C,CAAC;AAEnF,MAAM,WAAW,GAAG,EAAE,CAAC;AAQvB;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC;QACnD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,WAAW;QACvB,qBAAqB;KACtB,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,mCAAmC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACvD,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,KAAC,cAAc,IACb,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,QAAQ,EAC5D,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAC1B,KAAC,YAAY,OACP,SAAS,EACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,GACtB,GAEJ,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;IAC9D,kCAAkC;IAClC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;IACzC,CAAC;CACF,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 \"../VisibilityTreeBase.scss\";\nimport { ControlledTree, SelectionMode, useTreeModel } from \"@itwin/components-react\";\nimport { usePresentationTreeNodeLoader, useUnifiedSelectionTreeEventHandler } from \"@itwin/presentation-components\";\nimport { TreeRenderer } from \"../common/TreeRenderer\";\nimport { addCustomTreeNodeItemLabelRenderer, combineTreeNodeItemCustomizations } from \"../common/Utils\";\nimport * as RULESET_EXTERNAL_SOURCES_IMPORT from \"./ExternalSources.json\";\n\nimport type { Ruleset } from \"@itwin/presentation-common\";\nimport type { BaseTreeProps } from \"../common/Types\";\n/**\n * Presentation rules used by ControlledCategoriesTree\n * @internal\n */\nexport const RULESET_EXTERNAL_SOURCES = RULESET_EXTERNAL_SOURCES_IMPORT as Ruleset;\n\nconst PAGING_SIZE = 20;\n\n/**\n * Props for the [[ExternalSourcesTree]] component\n * @alpha\n */\nexport type ExternalSourcesTreeProps = BaseTreeProps;\n\n/**\n * Tree which displays a hierarchy of ExternalSources and their elements.\n * @alpha\n */\nexport function ExternalSourcesTree(props: ExternalSourcesTreeProps) {\n const { nodeLoader } = usePresentationTreeNodeLoader({\n imodel: props.iModel,\n ruleset: RULESET_EXTERNAL_SOURCES,\n pagingSize: PAGING_SIZE,\n customizeTreeNodeItem,\n });\n const eventsHandler = useUnifiedSelectionTreeEventHandler({ nodeLoader });\n const treeModel = useTreeModel(nodeLoader.modelSource);\n return (\n <div className=\"tree-widget-tree-container\">\n <ControlledTree\n nodeLoader={nodeLoader}\n model={treeModel}\n selectionMode={props.selectionMode ?? SelectionMode.Extended}\n eventsHandler={eventsHandler}\n width={props.width}\n height={props.height}\n iconsEnabled={true}\n treeRenderer={(treeProps) =>\n <TreeRenderer\n {...treeProps}\n contextMenuItems={props.contextMenuItems}\n nodeLabelRenderer={props.nodeLabelRenderer}\n density={props.density}\n />\n }\n />\n </div>\n );\n}\n\nconst customizeTreeNodeItem = combineTreeNodeItemCustomizations([\n addCustomTreeNodeItemLabelRenderer,\n (item, node) => {\n item.icon = node.extendedData?.imageId;\n },\n]);\n"]}
1
+ {"version":3,"file":"ExternalSourcesTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTree.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC5J,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACxG,OAAO,KAAK,+BAA+B,MAAM,wBAAwB,CAAC;AAK1E;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA0C,CAAC;AAEnF,MAAM,WAAW,GAAG,EAAE,CAAC;AAcvB;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAErF,MAAM,KAAK,GAAG,wBAAwB,CAAC;QACrC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,WAAW;QACvB,mBAAmB,EAAE,uCAAuC;QAC5D,qBAAqB;QACrB,uBAAuB,EAAE,oBAAoB,EAAE,SAAS;KACzD,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG;QACxB,gBAAgB;QAChB,iBAAiB;QACjB,OAAO;KACR,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,aAAa,CAAC,QAAQ,EAC5D,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAC1B,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CACzC,KAAC,sBAAsB,OACjB,SAAS,KACT,iBAAiB,EACrB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,YAAY,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAC,4BAA4B,OAAK,iBAAiB,GAAI,GAC5F,CACH,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,OAAK,SAAS,KAAM,iBAAiB,GAAI,CACvD,GAEH,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,uCAAuC,CAAC,KAAwC;IACvF,OAAO,IAAI,gCAAgC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;IAC9D,kCAAkC;IAClC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;IACzC,CAAC;CACF,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 \"../VisibilityTreeBase.scss\";\nimport { SelectionMode } from \"@itwin/components-react\";\nimport { PresentationTree, PresentationTreeNodeRenderer, UnifiedSelectionTreeEventHandler, usePresentationTreeState } from \"@itwin/presentation-components\";\nimport { FilterableTreeRenderer, TreeRenderer } from \"../common/TreeRenderer\";\nimport { addCustomTreeNodeItemLabelRenderer, combineTreeNodeItemCustomizations } from \"../common/Utils\";\nimport * as RULESET_EXTERNAL_SOURCES_IMPORT from \"./ExternalSources.json\";\n\nimport type { Ruleset } from \"@itwin/presentation-common\";\nimport type { PresentationTreeEventHandlerProps } from \"@itwin/presentation-components\";\nimport type { BaseTreeProps, HierarchyLevelConfig } from \"../common/Types\";\n/**\n * Presentation rules used by ControlledCategoriesTree\n * @internal\n */\nexport const RULESET_EXTERNAL_SOURCES = RULESET_EXTERNAL_SOURCES_IMPORT as Ruleset;\n\nconst PAGING_SIZE = 20;\n\n/**\n * Props for the [[ExternalSourcesTree]] component\n * @alpha\n */\nexport interface ExternalSourcesTreeProps extends BaseTreeProps {\n /**\n * Props for configuring hierarchy level.\n * @beta\n */\n hierarchyLevelConfig?: HierarchyLevelConfig;\n}\n\n/**\n * Tree which displays a hierarchy of ExternalSources and their elements.\n * @alpha\n */\nexport function ExternalSourcesTree(props: ExternalSourcesTreeProps) {\n const { hierarchyLevelConfig, contextMenuItems, nodeLabelRenderer, density } = props;\n\n const state = usePresentationTreeState({\n imodel: props.iModel,\n ruleset: RULESET_EXTERNAL_SOURCES,\n pagingSize: PAGING_SIZE,\n eventHandlerFactory: unifiedSelectionTreeEventHandlerFactory,\n customizeTreeNodeItem,\n hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit,\n });\n\n const treeRendererProps = {\n contextMenuItems,\n nodeLabelRenderer,\n density,\n };\n\n if (!state) {\n return null;\n }\n\n return (\n <div className=\"tree-widget-tree-container\">\n <PresentationTree\n width={props.width}\n height={props.height}\n state={state}\n selectionMode={props.selectionMode ?? SelectionMode.Extended}\n iconsEnabled={true}\n treeRenderer={(treeProps) =>\n hierarchyLevelConfig?.isFilteringEnabled ? (\n <FilterableTreeRenderer\n {...treeProps}\n {...treeRendererProps}\n nodeLoader={state.nodeLoader}\n nodeRenderer={(nodeRendererProps) => <PresentationTreeNodeRenderer {...nodeRendererProps} />}\n />\n ) : (\n <TreeRenderer {...treeProps} {...treeRendererProps} />\n )\n }\n />\n </div>\n );\n}\n\nfunction unifiedSelectionTreeEventHandlerFactory(props: PresentationTreeEventHandlerProps) {\n return new UnifiedSelectionTreeEventHandler({ nodeLoader: props.nodeLoader });\n}\n\nconst customizeTreeNodeItem = combineTreeNodeItemCustomizations([\n addCustomTreeNodeItemLabelRenderer,\n (item, node) => {\n item.icon = node.extendedData?.imageId;\n },\n]);\n"]}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
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
- *--------------------------------------------------------------------------------------------*/
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
6
  import "../VisibilityTreeBase.scss";
7
7
  import { useActiveIModelConnection } from "@itwin/appui-react";
8
8
  import { TreeWidget } from "../../../TreeWidget";
@@ -17,7 +17,7 @@ export const ExternalSourcesTreeComponent = (props) => {
17
17
  if (!iModel) {
18
18
  return null;
19
19
  }
20
- return (_jsx(AutoSizer, { children: ({ width, height }) => (_jsx(ExternalSourcesTree, { ...props, iModel: iModel, width: width, height: height })) }));
20
+ return _jsx(AutoSizer, { children: ({ width, height }) => _jsx(ExternalSourcesTree, { ...props, iModel: iModel, width: width, height: height }) });
21
21
  };
22
22
  /**
23
23
  * Id of the component. May be used when a creating a [[TreeDefinition]] for [[ExternalSourcesTreeComponent]].
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalSourcesTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAE/F,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAU5D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAwC,EAAE,EAAE;IACvF,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,KAAC,SAAS,cACP,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACtB,KAAC,mBAAmB,OACd,KAAK,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GACd,CACH,GACS,CACb,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,4BAA4B,CAAC,EAAE,GAAG,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,4BAA4B,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,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 \"../VisibilityTreeBase.scss\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { AutoSizer } from \"../../utils/AutoSizer\";\nimport { ExternalSourcesTree } from \"./ExternalSourcesTree\";\n\nimport type { ExternalSourcesTreeProps } from \"./ExternalSourcesTree\";\n\n/**\n * Props for [[ExternalSourcesTreeComponent]].\n * @alpha\n */\nexport type ExternalSourcesTreeComponentProps = Omit<ExternalSourcesTreeProps, \"iModel\" | \"width\" | \"height\">;\n\n/**\n * A component that displays an External Sources tree and any necessary \"chrome\".\n * @alpha\n */\nexport const ExternalSourcesTreeComponent = (props: ExternalSourcesTreeComponentProps) => {\n const iModel = useActiveIModelConnection();\n if (!iModel) {\n return null;\n }\n\n return (\n <AutoSizer>\n {({ width, height }) => (\n <ExternalSourcesTree\n {...props}\n iModel={iModel}\n width={width}\n height={height}\n />\n )}\n </AutoSizer>\n );\n};\n\n/**\n * Id of the component. May be used when a creating a [[TreeDefinition]] for [[ExternalSourcesTreeComponent]].\n * @alpha\n */\nExternalSourcesTreeComponent.id = \"external-sources-tree\";\n\n/**\n * Label of the component. May be used when a creating a [[TreeDefinition]] for [[ExternalSourcesTreeComponent]].\n * @alpha\n */\nExternalSourcesTreeComponent.getLabel = () => TreeWidget.translate(\"externalSources\");\n"]}
1
+ {"version":3,"file":"ExternalSourcesTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAU5D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,KAAwC,EAAE,EAAE;IACvF,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAC,SAAS,cAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAC,mBAAmB,OAAK,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,GAAa,CAAC;AAC1I,CAAC,CAAC;AAEF;;;GAGG;AACH,4BAA4B,CAAC,EAAE,GAAG,uBAAuB,CAAC;AAE1D;;;GAGG;AACH,4BAA4B,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,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 \"../VisibilityTreeBase.scss\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { AutoSizer } from \"../../utils/AutoSizer\";\nimport { ExternalSourcesTree } from \"./ExternalSourcesTree\";\n\nimport type { ExternalSourcesTreeProps } from \"./ExternalSourcesTree\";\n\n/**\n * Props for [[ExternalSourcesTreeComponent]].\n * @alpha\n */\nexport type ExternalSourcesTreeComponentProps = Omit<ExternalSourcesTreeProps, \"iModel\" | \"width\" | \"height\">;\n\n/**\n * A component that displays an External Sources tree and any necessary \"chrome\".\n * @alpha\n */\nexport const ExternalSourcesTreeComponent = (props: ExternalSourcesTreeComponentProps) => {\n const iModel = useActiveIModelConnection();\n if (!iModel) {\n return null;\n }\n\n return <AutoSizer>{({ width, height }) => <ExternalSourcesTree {...props} iModel={iModel} width={width} height={height} />}</AutoSizer>;\n};\n\n/**\n * Id of the component. May be used when a creating a [[TreeDefinition]] for [[ExternalSourcesTreeComponent]].\n * @alpha\n */\nExternalSourcesTreeComponent.id = \"external-sources-tree\";\n\n/**\n * Label of the component. May be used when a creating a [[TreeDefinition]] for [[ExternalSourcesTreeComponent]].\n * @alpha\n */\nExternalSourcesTreeComponent.getLabel = () => TreeWidget.translate(\"externalSources\");\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { Ruleset } from "@itwin/presentation-common";
3
- import type { BaseTreeProps } from "../common/Types";
3
+ import type { BaseTreeProps, HierarchyLevelConfig } from "../common/Types";
4
4
  /**
5
5
  * Presentation rules used by IModelContentTree
6
6
  * @internal
@@ -10,11 +10,17 @@ export declare const RULESET_IMODEL_CONTENT: Ruleset;
10
10
  * Props for [[IModelContentTree]].
11
11
  * @public
12
12
  */
13
- export type IModelContentTreeProps = BaseTreeProps;
13
+ export interface IModelContentTreeProps extends BaseTreeProps {
14
+ /**
15
+ * Props for configuring hierarchy level.
16
+ * @beta
17
+ */
18
+ hierarchyLevelConfig?: HierarchyLevelConfig;
19
+ }
14
20
  /**
15
21
  * A tree that shows all iModel content starting from the root Subject, then the hierarchy of child
16
22
  * Subjects, their Models and Elements contained in those Models.
17
23
  * @public
18
24
  */
19
- export declare const IModelContentTree: (props: IModelContentTreeProps) => JSX.Element;
25
+ export declare const IModelContentTree: (props: IModelContentTreeProps) => JSX.Element | null;
20
26
  //# sourceMappingURL=IModelContentTree.d.ts.map
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
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 { useMemo } from "react";
7
- import { ControlledTree, SelectionMode, useTreeEventsHandler, useTreeModel } from "@itwin/components-react";
8
- import { usePresentationTreeNodeLoader } from "@itwin/presentation-components";
9
- import { TreeRenderer } from "../common/TreeRenderer";
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 { SelectionMode } from "@itwin/components-react";
7
+ import { PresentationTree, PresentationTreeNodeRenderer, usePresentationTreeState } from "@itwin/presentation-components";
8
+ import { FilterableTreeRenderer, TreeRenderer } from "../common/TreeRenderer";
10
9
  import { addCustomTreeNodeItemLabelRenderer, combineTreeNodeItemCustomizations } from "../common/Utils";
11
10
  /**
12
11
  * Presentation rules used by IModelContentTree
@@ -19,19 +18,24 @@ export const RULESET_IMODEL_CONTENT = require("./IModelContent.json"); // eslint
19
18
  * @public
20
19
  */
21
20
  export const IModelContentTree = (props) => {
22
- const { iModel, width, height, selectionMode, contextMenuItems } = props;
23
- const { nodeLoader } = usePresentationTreeNodeLoader({
21
+ const { iModel, width, height, selectionMode, hierarchyLevelConfig } = props;
22
+ const state = usePresentationTreeState({
24
23
  imodel: iModel,
25
24
  ruleset: RULESET_IMODEL_CONTENT,
26
25
  pagingSize: 20,
27
26
  appendChildrenCountForGroupingNodes: true,
28
27
  customizeTreeNodeItem,
28
+ hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit,
29
29
  });
30
- const eventHandler = useTreeEventsHandler(useMemo(() => ({ nodeLoader, modelSource: nodeLoader.modelSource }), [nodeLoader]));
31
- const treeModel = useTreeModel(nodeLoader.modelSource);
32
- return (_jsx("div", { className: "tree-widget-tree-container", children: _jsx(ControlledTree, { width: width, height: height, nodeLoader: nodeLoader, selectionMode: selectionMode ?? SelectionMode.None, eventsHandler: eventHandler, model: treeModel, treeRenderer: (treeProps) => _jsx(TreeRenderer, { ...treeProps, contextMenuItems: contextMenuItems, nodeLabelRenderer: props.nodeLabelRenderer, density: props.density }) }) }));
30
+ const treeRendererProps = {
31
+ contextMenuItems: props.contextMenuItems,
32
+ nodeLabelRenderer: props.nodeLabelRenderer,
33
+ density: props.density,
34
+ };
35
+ if (!state) {
36
+ return null;
37
+ }
38
+ return (_jsx("div", { className: "tree-widget-tree-container", children: _jsx(PresentationTree, { width: width, height: height, state: state, selectionMode: selectionMode ?? SelectionMode.None, treeRenderer: (treeProps) => hierarchyLevelConfig?.isFilteringEnabled ? (_jsx(FilterableTreeRenderer, { ...treeProps, ...treeRendererProps, nodeLoader: state.nodeLoader, nodeRenderer: (nodeRendererProps) => _jsx(PresentationTreeNodeRenderer, { ...nodeRendererProps }) })) : (_jsx(TreeRenderer, { ...treeProps, ...treeRendererProps })) }) }));
33
39
  };
34
- const customizeTreeNodeItem = combineTreeNodeItemCustomizations([
35
- addCustomTreeNodeItemLabelRenderer,
36
- ]);
40
+ const customizeTreeNodeItem = combineTreeNodeItemCustomizations([addCustomTreeNodeItemLabelRenderer]);
37
41
  //# sourceMappingURL=IModelContentTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IModelContentTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/imodel-content-tree/IModelContentTree.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5G,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAKxG;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAY,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,yDAAyD;AAQzI;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAEzE,MAAM,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,EAAE;QACd,mCAAmC,EAAE,IAAI;QACzC,qBAAqB;KACtB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE9H,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvD,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,KAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,IAAI,aAAa,CAAC,IAAI,EAClD,aAAa,EAAE,YAAY,EAC3B,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAC1B,KAAC,YAAY,OACP,SAAS,EACb,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,GACtB,GAEJ,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;IAC9D,kCAAkC;CACnC,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 { useMemo } from \"react\";\nimport { ControlledTree, SelectionMode, useTreeEventsHandler, useTreeModel } from \"@itwin/components-react\";\nimport { usePresentationTreeNodeLoader } from \"@itwin/presentation-components\";\nimport { TreeRenderer } from \"../common/TreeRenderer\";\nimport { addCustomTreeNodeItemLabelRenderer, combineTreeNodeItemCustomizations } from \"../common/Utils\";\n\nimport type { Ruleset } from \"@itwin/presentation-common\";\nimport type { BaseTreeProps } from \"../common/Types\";\n\n/**\n * Presentation rules used by IModelContentTree\n * @internal\n */\nexport const RULESET_IMODEL_CONTENT: Ruleset = require(\"./IModelContent.json\"); // eslint-disable-line @typescript-eslint/no-var-requires\n\n/**\n * Props for [[IModelContentTree]].\n * @public\n */\nexport type IModelContentTreeProps = BaseTreeProps;\n\n/**\n * A tree that shows all iModel content starting from the root Subject, then the hierarchy of child\n * Subjects, their Models and Elements contained in those Models.\n * @public\n */\nexport const IModelContentTree = (props: IModelContentTreeProps) => {\n const { iModel, width, height, selectionMode, contextMenuItems } = props;\n\n const { nodeLoader } = usePresentationTreeNodeLoader({\n imodel: iModel,\n ruleset: RULESET_IMODEL_CONTENT,\n pagingSize: 20,\n appendChildrenCountForGroupingNodes: true,\n customizeTreeNodeItem,\n });\n const eventHandler = useTreeEventsHandler(useMemo(() => ({ nodeLoader, modelSource: nodeLoader.modelSource }), [nodeLoader]));\n\n const treeModel = useTreeModel(nodeLoader.modelSource);\n\n return (\n <div className=\"tree-widget-tree-container\">\n <ControlledTree\n width={width}\n height={height}\n nodeLoader={nodeLoader}\n selectionMode={selectionMode ?? SelectionMode.None}\n eventsHandler={eventHandler}\n model={treeModel}\n treeRenderer={(treeProps) =>\n <TreeRenderer\n {...treeProps}\n contextMenuItems={contextMenuItems}\n nodeLabelRenderer={props.nodeLabelRenderer}\n density={props.density}\n />\n }\n />\n </div>\n );\n};\n\nconst customizeTreeNodeItem = combineTreeNodeItemCustomizations([\n addCustomTreeNodeItemLabelRenderer,\n]);\n"]}
1
+ {"version":3,"file":"IModelContentTree.js","sourceRoot":"","sources":["../../../../../src/components/trees/imodel-content-tree/IModelContentTree.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1H,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAIxG;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAY,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,yDAAyD;AAczI;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC;IAE7E,MAAM,KAAK,GAAG,wBAAwB,CAAC;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,EAAE;QACd,mCAAmC,EAAE,IAAI;QACzC,qBAAqB;QACrB,uBAAuB,EAAE,oBAAoB,EAAE,SAAS;KACzD,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG;QACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACzC,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,IAAI,aAAa,CAAC,IAAI,EAClD,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAC1B,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CACzC,KAAC,sBAAsB,OACjB,SAAS,KACT,iBAAiB,EACrB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,YAAY,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAC,4BAA4B,OAAK,iBAAiB,GAAI,GAC5F,CACH,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,OAAK,SAAS,KAAM,iBAAiB,GAAI,CACvD,GAEH,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,iCAAiC,CAAC,CAAC,kCAAkC,CAAC,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 { SelectionMode } from \"@itwin/components-react\";\nimport { PresentationTree, PresentationTreeNodeRenderer, usePresentationTreeState } from \"@itwin/presentation-components\";\nimport { FilterableTreeRenderer, TreeRenderer } from \"../common/TreeRenderer\";\nimport { addCustomTreeNodeItemLabelRenderer, combineTreeNodeItemCustomizations } from \"../common/Utils\";\n\nimport type { Ruleset } from \"@itwin/presentation-common\";\nimport type { BaseTreeProps, HierarchyLevelConfig } from \"../common/Types\";\n/**\n * Presentation rules used by IModelContentTree\n * @internal\n */\nexport const RULESET_IMODEL_CONTENT: Ruleset = require(\"./IModelContent.json\"); // eslint-disable-line @typescript-eslint/no-var-requires\n\n/**\n * Props for [[IModelContentTree]].\n * @public\n */\nexport interface IModelContentTreeProps extends BaseTreeProps {\n /**\n * Props for configuring hierarchy level.\n * @beta\n */\n hierarchyLevelConfig?: HierarchyLevelConfig;\n}\n\n/**\n * A tree that shows all iModel content starting from the root Subject, then the hierarchy of child\n * Subjects, their Models and Elements contained in those Models.\n * @public\n */\nexport const IModelContentTree = (props: IModelContentTreeProps) => {\n const { iModel, width, height, selectionMode, hierarchyLevelConfig } = props;\n\n const state = usePresentationTreeState({\n imodel: iModel,\n ruleset: RULESET_IMODEL_CONTENT,\n pagingSize: 20,\n appendChildrenCountForGroupingNodes: true,\n customizeTreeNodeItem,\n hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit,\n });\n\n const treeRendererProps = {\n contextMenuItems: props.contextMenuItems,\n nodeLabelRenderer: props.nodeLabelRenderer,\n density: props.density,\n };\n\n if (!state) {\n return null;\n }\n\n return (\n <div className=\"tree-widget-tree-container\">\n <PresentationTree\n width={width}\n height={height}\n state={state}\n selectionMode={selectionMode ?? SelectionMode.None}\n treeRenderer={(treeProps) =>\n hierarchyLevelConfig?.isFilteringEnabled ? (\n <FilterableTreeRenderer\n {...treeProps}\n {...treeRendererProps}\n nodeLoader={state.nodeLoader}\n nodeRenderer={(nodeRendererProps) => <PresentationTreeNodeRenderer {...nodeRendererProps} />}\n />\n ) : (\n <TreeRenderer {...treeProps} {...treeRendererProps} />\n )\n }\n />\n </div>\n );\n};\n\nconst customizeTreeNodeItem = combineTreeNodeItemCustomizations([addCustomTreeNodeItemLabelRenderer]);\n"]}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
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
- *--------------------------------------------------------------------------------------------*/
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
6
  import "../VisibilityTreeBase.scss";
7
7
  import { useActiveIModelConnection } from "@itwin/appui-react";
8
8
  import { TreeWidget } from "../../../TreeWidget";
@@ -14,9 +14,10 @@ import { IModelContentTree } from "./IModelContentTree";
14
14
  */
15
15
  export const IModelContentTreeComponent = (props) => {
16
16
  const iModel = useActiveIModelConnection();
17
- if (!iModel)
17
+ if (!iModel) {
18
18
  return null;
19
- return (_jsx(AutoSizer, { children: ({ width, height }) => (_jsx(IModelContentTree, { ...props, iModel: iModel, width: width, height: height })) }));
19
+ }
20
+ return _jsx(AutoSizer, { children: ({ width, height }) => _jsx(IModelContentTree, { ...props, iModel: iModel, width: width, height: height }) });
20
21
  };
21
22
  /**
22
23
  * Id of the component. May be used when a creating a [[TreeDefinition]] for [[SelectableTree]].
@@ -1 +1 @@
1
- {"version":3,"file":"IModelContentTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/imodel-content-tree/IModelContentTreeComponent.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAE/F,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAUxD;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAsC,EAAE,EAAE;IACnF,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAE3C,IAAI,CAAC,MAAM;QACT,OAAO,IAAI,CAAC;IAEd,OAAO,CACL,KAAC,SAAS,cACP,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACtB,KAAC,iBAAiB,OACZ,KAAK,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GACd,CACH,GACS,CACb,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,0BAA0B,CAAC,EAAE,GAAG,qBAAqB,CAAC;AAEtD;;;GAGG;AACH,0BAA0B,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,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 \"../VisibilityTreeBase.scss\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { AutoSizer } from \"../../utils/AutoSizer\";\nimport { IModelContentTree } from \"./IModelContentTree\";\n\nimport type { IModelContentTreeProps } from \"./IModelContentTree\";\n\n/**\n * Props for [[IModelContentTreeComponent]].\n * @public\n */\nexport type IModelContentTreeComponentProps = Omit<IModelContentTreeProps, \"iModel\" | \"width\" | \"height\">;\n\n/**\n * A component that renders [[IModelContentTree]]\n * @public\n */\nexport const IModelContentTreeComponent = (props: IModelContentTreeComponentProps) => {\n const iModel = useActiveIModelConnection();\n\n if (!iModel)\n return null;\n\n return (\n <AutoSizer>\n {({ width, height }) => (\n <IModelContentTree\n {...props}\n iModel={iModel}\n width={width}\n height={height}\n />\n )}\n </AutoSizer>\n );\n};\n\n/**\n * Id of the component. May be used when a creating a [[TreeDefinition]] for [[SelectableTree]].\n * @public\n */\nIModelContentTreeComponent.id = \"imodel-content-tree\";\n\n/**\n * Label of the component. May be used when a creating a [[TreeDefinition]] for [[SelectableTree]].\n * @public\n */\nIModelContentTreeComponent.getLabel = () => TreeWidget.translate(\"imodelContent\");\n"]}
1
+ {"version":3,"file":"IModelContentTreeComponent.js","sourceRoot":"","sources":["../../../../../src/components/trees/imodel-content-tree/IModelContentTreeComponent.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAEhG,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAUxD;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAsC,EAAE,EAAE;IACnF,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAC,SAAS,cAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAC,iBAAiB,OAAK,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,GAAa,CAAC;AACxI,CAAC,CAAC;AAEF;;;GAGG;AACH,0BAA0B,CAAC,EAAE,GAAG,qBAAqB,CAAC;AAEtD;;;GAGG;AACH,0BAA0B,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,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 \"../VisibilityTreeBase.scss\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { AutoSizer } from \"../../utils/AutoSizer\";\nimport { IModelContentTree } from \"./IModelContentTree\";\n\nimport type { IModelContentTreeProps } from \"./IModelContentTree\";\n\n/**\n * Props for [[IModelContentTreeComponent]].\n * @public\n */\nexport type IModelContentTreeComponentProps = Omit<IModelContentTreeProps, \"iModel\" | \"width\" | \"height\">;\n\n/**\n * A component that renders [[IModelContentTree]]\n * @public\n */\nexport const IModelContentTreeComponent = (props: IModelContentTreeComponentProps) => {\n const iModel = useActiveIModelConnection();\n\n if (!iModel) {\n return null;\n }\n\n return <AutoSizer>{({ width, height }) => <IModelContentTree {...props} iModel={iModel} width={width} height={height} />}</AutoSizer>;\n};\n\n/**\n * Id of the component. May be used when a creating a [[TreeDefinition]] for [[SelectableTree]].\n * @public\n */\nIModelContentTreeComponent.id = \"imodel-content-tree\";\n\n/**\n * Label of the component. May be used when a creating a [[TreeDefinition]] for [[SelectableTree]].\n * @public\n */\nIModelContentTreeComponent.getLabel = () => TreeWidget.translate(\"imodelContent\");\n"]}
@@ -1,7 +1,7 @@
1
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
- *--------------------------------------------------------------------------------------------*/
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
5
  export * from "./common/Types";
6
6
  export * from "./common/ContextMenu";
7
7
  export * from "./common/TreeRenderer";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/trees/index.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sDAAsD,CAAC;AAErE,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,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\nexport * from \"./common/Types\";\nexport * from \"./common/ContextMenu\";\nexport * from \"./common/TreeRenderer\";\nexport * from \"./common/TreeNodeRenderer\";\nexport * from \"./VisibilityTreeEventHandler\";\nexport * from \"./VisibilityTreeRenderer\";\n\nexport * from \"./imodel-content-tree/IModelContentTree\";\nexport * from \"./imodel-content-tree/IModelContentTreeComponent\";\n\nexport * from \"./category-tree/CategoriesTree\";\nexport * from \"./category-tree/CategoriesTreeComponent\";\nexport * from \"./category-tree/CategoryVisibilityHandler\";\n\nexport * from \"./external-sources-tree/ExternalSourcesTree\";\nexport * from \"./external-sources-tree/ExternalSourcesTreeComponent\";\n\nexport * from \"./models-tree/ModelsTree\";\nexport * from \"./models-tree/ModelsTreeComponent\";\nexport * from \"./models-tree/ModelsVisibilityHandler\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/trees/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sDAAsD,CAAC;AAErE,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,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\nexport * from \"./common/Types\";\nexport * from \"./common/ContextMenu\";\nexport * from \"./common/TreeRenderer\";\nexport * from \"./common/TreeNodeRenderer\";\nexport * from \"./VisibilityTreeEventHandler\";\nexport * from \"./VisibilityTreeRenderer\";\n\nexport * from \"./imodel-content-tree/IModelContentTree\";\nexport * from \"./imodel-content-tree/IModelContentTreeComponent\";\n\nexport * from \"./category-tree/CategoriesTree\";\nexport * from \"./category-tree/CategoriesTreeComponent\";\nexport * from \"./category-tree/CategoryVisibilityHandler\";\n\nexport * from \"./external-sources-tree/ExternalSourcesTree\";\nexport * from \"./external-sources-tree/ExternalSourcesTreeComponent\";\n\nexport * from \"./models-tree/ModelsTree\";\nexport * from \"./models-tree/ModelsTreeComponent\";\nexport * from \"./models-tree/ModelsVisibilityHandler\";\n"]}