@itwin/tree-widget-react 3.4.1 → 4.0.0-alpha.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 (265) hide show
  1. package/CHANGELOG.md +1 -18
  2. package/README.md +3 -76
  3. package/lib/esm/tree-widget-react/components/SelectableTree.d.ts +1 -1
  4. package/lib/esm/tree-widget-react/components/SelectableTree.js +4 -4
  5. package/lib/esm/tree-widget-react/components/SelectableTree.js.map +1 -1
  6. package/lib/esm/tree-widget-react/components/TreeSelector.d.ts +1 -2
  7. package/lib/esm/tree-widget-react/components/TreeSelector.js +11 -14
  8. package/lib/esm/tree-widget-react/components/TreeSelector.js.map +1 -1
  9. package/lib/esm/tree-widget-react/components/TreeWidgetUiItemsProvider.d.ts +1 -2
  10. package/lib/esm/tree-widget-react/components/TreeWidgetUiItemsProvider.js +3 -5
  11. package/lib/esm/tree-widget-react/components/TreeWidgetUiItemsProvider.js.map +1 -1
  12. package/lib/esm/tree-widget-react/components/tree-header/TreeHeader.d.ts +1 -2
  13. package/lib/esm/tree-widget-react/components/tree-header/TreeHeader.js +6 -49
  14. package/lib/esm/tree-widget-react/components/tree-header/TreeHeader.js.map +1 -1
  15. package/lib/esm/tree-widget-react/components/tree-header/TreeHeader.scss +0 -1
  16. package/lib/esm/tree-widget-react/components/tree-header/TreeWithHeader.d.ts +1 -1
  17. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTree.d.ts +1 -2
  18. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.d.ts +4 -4
  19. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js +10 -8
  20. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -1
  21. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.d.ts +1 -1
  22. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js +3 -3
  23. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -1
  24. package/lib/esm/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js +1 -1
  25. package/lib/esm/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js.map +1 -1
  26. package/lib/esm/tree-widget-react/components/trees/common/FocusedInstancesContext.d.ts +4 -28
  27. package/lib/esm/tree-widget-react/components/trees/common/FocusedInstancesContext.js +2 -73
  28. package/lib/esm/tree-widget-react/components/trees/common/FocusedInstancesContext.js.map +1 -1
  29. package/lib/esm/tree-widget-react/components/trees/common/FocusedInstancesContextProvider.d.ts +7 -0
  30. package/lib/{cjs/tree-widget-react/components/trees/common/FocusedInstancesContext.js → esm/tree-widget-react/components/trees/common/FocusedInstancesContextProvider.js} +14 -34
  31. package/lib/esm/tree-widget-react/components/trees/common/FocusedInstancesContextProvider.js.map +1 -0
  32. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyFiltering.d.ts +1 -1
  33. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyFiltering.js +2 -2
  34. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyFiltering.js.map +1 -1
  35. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyVisibility.d.ts +2 -2
  36. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyVisibility.js +12 -10
  37. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyVisibility.js.map +1 -1
  38. package/lib/esm/tree-widget-react/components/trees/common/UseTelemetryContext.d.ts +1 -1
  39. package/lib/esm/tree-widget-react/components/trees/common/components/Delayed.d.ts +1 -1
  40. package/lib/esm/tree-widget-react/components/trees/common/components/ProgressOverlay.d.ts +1 -2
  41. package/lib/esm/tree-widget-react/components/trees/common/components/ProgressOverlay.js +3 -2
  42. package/lib/esm/tree-widget-react/components/trees/common/components/ProgressOverlay.js.map +1 -1
  43. package/lib/esm/tree-widget-react/components/trees/common/components/Tree.d.ts +4 -5
  44. package/lib/esm/tree-widget-react/components/trees/common/components/Tree.js +11 -12
  45. package/lib/esm/tree-widget-react/components/trees/common/components/Tree.js.map +1 -1
  46. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.css +8 -0
  47. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.d.ts +28 -0
  48. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.js +34 -0
  49. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.js.map +1 -0
  50. package/lib/esm/tree-widget-react/components/trees/common/components/TreeRenderer.d.ts +6 -12
  51. package/lib/esm/tree-widget-react/components/trees/common/components/TreeRenderer.js +5 -31
  52. package/lib/esm/tree-widget-react/components/trees/common/components/TreeRenderer.js.map +1 -1
  53. package/lib/esm/tree-widget-react/components/trees/common/components/UseVisibilityButtonHandler.d.ts +13 -0
  54. package/lib/esm/tree-widget-react/components/trees/common/{UseMultiCheckboxHandler.js → components/UseVisibilityButtonHandler.js} +7 -7
  55. package/lib/esm/tree-widget-react/components/trees/common/components/UseVisibilityButtonHandler.js.map +1 -0
  56. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTree.d.ts +2 -2
  57. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTree.js +2 -2
  58. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTree.js.map +1 -1
  59. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.d.ts +3 -4
  60. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js +9 -8
  61. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js.map +1 -1
  62. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +1 -2
  63. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +1 -2
  64. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.d.ts +1 -2
  65. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +1 -2
  66. package/lib/esm/tree-widget-react/components/trees/index.d.ts +0 -1
  67. package/lib/esm/tree-widget-react/components/trees/index.js +0 -1
  68. package/lib/esm/tree-widget-react/components/trees/index.js.map +1 -1
  69. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTree.d.ts +1 -2
  70. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.d.ts +8 -9
  71. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js +19 -16
  72. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js.map +1 -1
  73. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.d.ts +2 -7
  74. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js +9 -13
  75. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  76. package/lib/esm/tree-widget-react/components/trees/models-tree/UseModelsTree.d.ts +1 -1
  77. package/lib/esm/tree-widget-react/components/trees/models-tree/UseModelsTree.js +7 -14
  78. package/lib/esm/tree-widget-react/components/trees/models-tree/UseModelsTree.js.map +1 -1
  79. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -1
  80. package/package.json +18 -25
  81. package/lib/cjs/package.json +0 -1
  82. package/lib/cjs/tree-widget-react/TreeWidget.d.ts +0 -24
  83. package/lib/cjs/tree-widget-react/TreeWidget.js +0 -54
  84. package/lib/cjs/tree-widget-react/TreeWidget.js.map +0 -1
  85. package/lib/cjs/tree-widget-react/components/SelectableTree.d.ts +0 -47
  86. package/lib/cjs/tree-widget-react/components/SelectableTree.js +0 -107
  87. package/lib/cjs/tree-widget-react/components/SelectableTree.js.map +0 -1
  88. package/lib/cjs/tree-widget-react/components/SelectableTree.scss +0 -18
  89. package/lib/cjs/tree-widget-react/components/TreeSelector.d.ts +0 -31
  90. package/lib/cjs/tree-widget-react/components/TreeSelector.js +0 -30
  91. package/lib/cjs/tree-widget-react/components/TreeSelector.js.map +0 -1
  92. package/lib/cjs/tree-widget-react/components/TreeSelector.scss +0 -27
  93. package/lib/cjs/tree-widget-react/components/TreeWidgetUiItemsProvider.d.ts +0 -36
  94. package/lib/cjs/tree-widget-react/components/TreeWidgetUiItemsProvider.js +0 -74
  95. package/lib/cjs/tree-widget-react/components/TreeWidgetUiItemsProvider.js.map +0 -1
  96. package/lib/cjs/tree-widget-react/components/TreeWidgetUiItemsProvider.scss +0 -9
  97. package/lib/cjs/tree-widget-react/components/tree-header/TreeHeader.d.ts +0 -33
  98. package/lib/cjs/tree-widget-react/components/tree-header/TreeHeader.js +0 -75
  99. package/lib/cjs/tree-widget-react/components/tree-header/TreeHeader.js.map +0 -1
  100. package/lib/cjs/tree-widget-react/components/tree-header/TreeHeader.scss +0 -57
  101. package/lib/cjs/tree-widget-react/components/tree-header/TreeWithHeader.d.ts +0 -13
  102. package/lib/cjs/tree-widget-react/components/tree-header/TreeWithHeader.js +0 -20
  103. package/lib/cjs/tree-widget-react/components/tree-header/TreeWithHeader.js.map +0 -1
  104. package/lib/cjs/tree-widget-react/components/tree-header/TreeWithHeader.scss +0 -23
  105. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTree.d.ts +0 -12
  106. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTree.js +0 -22
  107. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTree.js.map +0 -1
  108. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.d.ts +0 -47
  109. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js +0 -75
  110. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js.map +0 -1
  111. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.d.ts +0 -53
  112. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js +0 -73
  113. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js.map +0 -1
  114. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.d.ts +0 -23
  115. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js +0 -207
  116. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js.map +0 -1
  117. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesVisibilityHandler.d.ts +0 -28
  118. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesVisibilityHandler.js +0 -91
  119. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +0 -1
  120. package/lib/cjs/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.d.ts +0 -22
  121. package/lib/cjs/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js +0 -117
  122. package/lib/cjs/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js.map +0 -1
  123. package/lib/cjs/tree-widget-react/components/trees/common/CategoriesVisibilityUtils.d.ts +0 -42
  124. package/lib/cjs/tree-widget-react/components/trees/common/CategoriesVisibilityUtils.js +0 -119
  125. package/lib/cjs/tree-widget-react/components/trees/common/CategoriesVisibilityUtils.js.map +0 -1
  126. package/lib/cjs/tree-widget-react/components/trees/common/FocusedInstancesContext.d.ts +0 -35
  127. package/lib/cjs/tree-widget-react/components/trees/common/FocusedInstancesContext.js.map +0 -1
  128. package/lib/cjs/tree-widget-react/components/trees/common/Rxjs.d.ts +0 -10
  129. package/lib/cjs/tree-widget-react/components/trees/common/Rxjs.js +0 -46
  130. package/lib/cjs/tree-widget-react/components/trees/common/Rxjs.js.map +0 -1
  131. package/lib/cjs/tree-widget-react/components/trees/common/Tooltip.d.ts +0 -17
  132. package/lib/cjs/tree-widget-react/components/trees/common/Tooltip.js +0 -29
  133. package/lib/cjs/tree-widget-react/components/trees/common/Tooltip.js.map +0 -1
  134. package/lib/cjs/tree-widget-react/components/trees/common/TreeErrors.d.ts +0 -9
  135. package/lib/cjs/tree-widget-react/components/trees/common/TreeErrors.js +0 -19
  136. package/lib/cjs/tree-widget-react/components/trees/common/TreeErrors.js.map +0 -1
  137. package/lib/cjs/tree-widget-react/components/trees/common/UseActiveViewport.d.ts +0 -7
  138. package/lib/cjs/tree-widget-react/components/trees/common/UseActiveViewport.js +0 -25
  139. package/lib/cjs/tree-widget-react/components/trees/common/UseActiveViewport.js.map +0 -1
  140. package/lib/cjs/tree-widget-react/components/trees/common/UseFiltering.d.ts +0 -11
  141. package/lib/cjs/tree-widget-react/components/trees/common/UseFiltering.js +0 -28
  142. package/lib/cjs/tree-widget-react/components/trees/common/UseFiltering.js.map +0 -1
  143. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchiesLocalization.d.ts +0 -7
  144. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchiesLocalization.js +0 -33
  145. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchiesLocalization.js.map +0 -1
  146. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyFiltering.d.ts +0 -13
  147. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyFiltering.js +0 -158
  148. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyFiltering.js.map +0 -1
  149. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyVisibility.d.ts +0 -55
  150. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyVisibility.js +0 -114
  151. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyVisibility.js.map +0 -1
  152. package/lib/cjs/tree-widget-react/components/trees/common/UseIModelChangeListener.d.ts +0 -8
  153. package/lib/cjs/tree-widget-react/components/trees/common/UseIModelChangeListener.js +0 -19
  154. package/lib/cjs/tree-widget-react/components/trees/common/UseIModelChangeListener.js.map +0 -1
  155. package/lib/cjs/tree-widget-react/components/trees/common/UseMultiCheckboxHandler.d.ts +0 -12
  156. package/lib/cjs/tree-widget-react/components/trees/common/UseMultiCheckboxHandler.js +0 -34
  157. package/lib/cjs/tree-widget-react/components/trees/common/UseMultiCheckboxHandler.js.map +0 -1
  158. package/lib/cjs/tree-widget-react/components/trees/common/UseNodeHighlighting.d.ts +0 -20
  159. package/lib/cjs/tree-widget-react/components/trees/common/UseNodeHighlighting.js +0 -131
  160. package/lib/cjs/tree-widget-react/components/trees/common/UseNodeHighlighting.js.map +0 -1
  161. package/lib/cjs/tree-widget-react/components/trees/common/UseTelemetryContext.d.ts +0 -29
  162. package/lib/cjs/tree-widget-react/components/trees/common/UseTelemetryContext.js +0 -49
  163. package/lib/cjs/tree-widget-react/components/trees/common/UseTelemetryContext.js.map +0 -1
  164. package/lib/cjs/tree-widget-react/components/trees/common/Utils.d.ts +0 -27
  165. package/lib/cjs/tree-widget-react/components/trees/common/Utils.js +0 -66
  166. package/lib/cjs/tree-widget-react/components/trees/common/Utils.js.map +0 -1
  167. package/lib/cjs/tree-widget-react/components/trees/common/components/Delayed.d.ts +0 -5
  168. package/lib/cjs/tree-widget-react/components/trees/common/components/Delayed.js +0 -30
  169. package/lib/cjs/tree-widget-react/components/trees/common/components/Delayed.js.map +0 -1
  170. package/lib/cjs/tree-widget-react/components/trees/common/components/ProgressOverlay.d.ts +0 -4
  171. package/lib/cjs/tree-widget-react/components/trees/common/components/ProgressOverlay.js +0 -15
  172. package/lib/cjs/tree-widget-react/components/trees/common/components/ProgressOverlay.js.map +0 -1
  173. package/lib/cjs/tree-widget-react/components/trees/common/components/ProgressOverlay.scss +0 -21
  174. package/lib/cjs/tree-widget-react/components/trees/common/components/Tree.d.ts +0 -44
  175. package/lib/cjs/tree-widget-react/components/trees/common/components/Tree.js +0 -98
  176. package/lib/cjs/tree-widget-react/components/trees/common/components/Tree.js.map +0 -1
  177. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.d.ts +0 -27
  178. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.js +0 -27
  179. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.js.map +0 -1
  180. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeRenderer.d.ts +0 -11
  181. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeRenderer.js +0 -19
  182. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeRenderer.js.map +0 -1
  183. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeRenderer.d.ts +0 -19
  184. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeRenderer.js +0 -48
  185. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeRenderer.js.map +0 -1
  186. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTree.d.ts +0 -21
  187. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTree.js +0 -26
  188. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTree.js.map +0 -1
  189. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.d.ts +0 -11
  190. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js +0 -26
  191. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js.map +0 -1
  192. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +0 -11
  193. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.js +0 -38
  194. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.js.map +0 -1
  195. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +0 -26
  196. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +0 -35
  197. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +0 -1
  198. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +0 -24
  199. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js +0 -265
  200. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +0 -1
  201. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.d.ts +0 -11
  202. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.js +0 -50
  203. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.js.map +0 -1
  204. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +0 -26
  205. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.js +0 -35
  206. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +0 -1
  207. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.d.ts +0 -29
  208. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.js +0 -622
  209. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +0 -1
  210. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.d.ts +0 -26
  211. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +0 -203
  212. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +0 -1
  213. package/lib/cjs/tree-widget-react/components/trees/index.d.ts +0 -18
  214. package/lib/cjs/tree-widget-react/components/trees/index.js +0 -39
  215. package/lib/cjs/tree-widget-react/components/trees/index.js.map +0 -1
  216. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTree.d.ts +0 -12
  217. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTree.js +0 -26
  218. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTree.js.map +0 -1
  219. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.d.ts +0 -65
  220. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js +0 -144
  221. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js.map +0 -1
  222. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.d.ts +0 -78
  223. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js +0 -106
  224. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js.map +0 -1
  225. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.d.ts +0 -79
  226. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js +0 -650
  227. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js.map +0 -1
  228. package/lib/cjs/tree-widget-react/components/trees/models-tree/UseModelsTree.d.ts +0 -44
  229. package/lib/cjs/tree-widget-react/components/trees/models-tree/UseModelsTree.js +0 -312
  230. package/lib/cjs/tree-widget-react/components/trees/models-tree/UseModelsTree.js.map +0 -1
  231. package/lib/cjs/tree-widget-react/components/trees/models-tree/Utils.d.ts +0 -7
  232. package/lib/cjs/tree-widget-react/components/trees/models-tree/Utils.js +0 -25
  233. package/lib/cjs/tree-widget-react/components/trees/models-tree/Utils.js.map +0 -1
  234. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.d.ts +0 -29
  235. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js +0 -142
  236. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +0 -1
  237. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/FilteredTree.d.ts +0 -25
  238. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/FilteredTree.js +0 -178
  239. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/FilteredTree.js.map +0 -1
  240. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +0 -44
  241. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js +0 -385
  242. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +0 -1
  243. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.d.ts +0 -37
  244. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.js +0 -57
  245. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.js.map +0 -1
  246. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +0 -106
  247. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +0 -672
  248. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +0 -1
  249. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/VisibilityChangeEventListener.d.ts +0 -12
  250. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/VisibilityChangeEventListener.js +0 -52
  251. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +0 -1
  252. package/lib/cjs/tree-widget-react/components/utils/IsPromiseLike.d.ts +0 -6
  253. package/lib/cjs/tree-widget-react/components/utils/IsPromiseLike.js +0 -16
  254. package/lib/cjs/tree-widget-react/components/utils/IsPromiseLike.js.map +0 -1
  255. package/lib/cjs/tree-widget-react.d.ts +0 -6
  256. package/lib/cjs/tree-widget-react.js +0 -32
  257. package/lib/cjs/tree-widget-react.js.map +0 -1
  258. package/lib/esm/tree-widget-react/components/trees/common/UseMultiCheckboxHandler.d.ts +0 -12
  259. package/lib/esm/tree-widget-react/components/trees/common/UseMultiCheckboxHandler.js.map +0 -1
  260. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.d.ts +0 -27
  261. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.js +0 -23
  262. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.js.map +0 -1
  263. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeRenderer.d.ts +0 -11
  264. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeRenderer.js +0 -16
  265. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeRenderer.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"IModelContentTreeDefinition.js","sourceRoot":"","sources":["../../../../../../src/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport {\n createNodesQueryClauseFactory, createPredicateBasedHierarchyDefinition, NodeSelectClauseColumnNames, ProcessedHierarchyNode,\n} from \"@itwin/presentation-hierarchies\";\nimport { createBisInstanceLabelSelectClauseFactory, ECSql } from \"@itwin/presentation-shared\";\nimport { createIdsSelector, parseIdsSelectorResult } from \"../common/Utils.js\";\n\nimport type {\n DefineGenericNodeChildHierarchyLevelProps,\n DefineHierarchyLevelProps,\n DefineInstanceNodeChildHierarchyLevelProps,\n DefineRootHierarchyLevelProps,\n HierarchyDefinition,\n HierarchyLevelDefinition,\n HierarchyNodesDefinition,\n NodesQueryClauseFactory,\n} from \"@itwin/presentation-hierarchies\";\nimport type { ECClassHierarchyInspector, ECSchemaProvider, ECSqlBinding, IInstanceLabelSelectClauseFactory } from \"@itwin/presentation-shared\";\nimport type { IModelContentTreeIdsCache } from \"./internal/IModelContentTreeIdsCache.js\";\n\ninterface IModelContentTreeDefinitionProps {\n imodelAccess: ECSchemaProvider & ECClassHierarchyInspector;\n idsCache: IModelContentTreeIdsCache;\n}\n\nexport class IModelContentTreeDefinition implements HierarchyDefinition {\n private _impl: HierarchyDefinition;\n private _idsCache: IModelContentTreeIdsCache;\n private _selectQueryFactory: NodesQueryClauseFactory;\n private _nodeLabelSelectClauseFactory: IInstanceLabelSelectClauseFactory;\n\n public constructor(props: IModelContentTreeDefinitionProps) {\n this._idsCache = props.idsCache;\n this._impl = createPredicateBasedHierarchyDefinition({\n classHierarchyInspector: props.imodelAccess,\n hierarchy: {\n rootNodes: async (requestProps) => this.createRootHierarchyLevelDefinition(requestProps),\n childNodes: [\n {\n parentInstancesNodePredicate: \"BisCore.Subject\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) => this.createSubjectChildrenQuery(requestProps),\n },\n {\n parentInstancesNodePredicate: \"BisCore.ISubModeledElement\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) => this.createISubModeledElementChildrenQuery(requestProps),\n },\n {\n parentInstancesNodePredicate: \"BisCore.GeometricModel3d\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) =>\n this.createGeometricModelChildrenQuery({ ...requestProps, viewType: \"3d\" }),\n },\n {\n parentInstancesNodePredicate: \"BisCore.GeometricModel2d\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) =>\n this.createGeometricModelChildrenQuery({ ...requestProps, viewType: \"2d\" }),\n },\n {\n parentInstancesNodePredicate: \"BisCore.SpatialCategory\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) =>\n this.createCategoryChildrenQuery({ ...requestProps, viewType: \"3d\" }),\n },\n {\n parentInstancesNodePredicate: \"BisCore.DrawingCategory\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) =>\n this.createCategoryChildrenQuery({ ...requestProps, viewType: \"2d\" }),\n },\n {\n parentInstancesNodePredicate: \"BisCore.Model\",\n onlyIfNotHandled: true,\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) => this.createModelChildrenQuery(requestProps),\n },\n {\n parentInstancesNodePredicate: \"BisCore.GroupInformationElement\",\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) => this.createGroupInformationElementChildElementsQuery(requestProps),\n },\n {\n parentGenericNodePredicate: async ({ id }) => id === \"ChildrenNode\",\n definitions: async (requestProps: DefineGenericNodeChildHierarchyLevelProps) => this.createChildrenNodeChildrenQuery(requestProps),\n },\n {\n parentGenericNodePredicate: async ({ id }) => id === \"MembersNode\",\n definitions: async (requestProps: DefineGenericNodeChildHierarchyLevelProps) => this.createGroupInformationElementMemberElementsQuery(requestProps),\n },\n {\n parentInstancesNodePredicate: \"BisCore.Element\",\n onlyIfNotHandled: true,\n definitions: async (requestProps: DefineInstanceNodeChildHierarchyLevelProps) => this.createElementChildrenQuery(requestProps),\n },\n ],\n },\n });\n this._nodeLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory({ classHierarchyInspector: props.imodelAccess });\n this._selectQueryFactory = createNodesQueryClauseFactory({\n imodelAccess: props.imodelAccess,\n instanceLabelSelectClauseFactory: this._nodeLabelSelectClauseFactory,\n });\n }\n\n public async postProcessNode(node: ProcessedHierarchyNode): Promise<ProcessedHierarchyNode> {\n if (ProcessedHierarchyNode.isGroupingNode(node)) {\n const label = node.children.length ? `${node.label} (${node.children.length})` : node.label;\n return { ...node, label, extendedData: { ...node.extendedData, imageId: \"icon-ec-class\" } };\n }\n return node;\n }\n\n public async defineHierarchyLevel(props: DefineHierarchyLevelProps) {\n return this._impl.defineHierarchyLevel(props);\n }\n\n private async createRootHierarchyLevelDefinition(props: DefineRootHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: props.instanceFilter,\n contentClass: { fullName: \"BisCore.Subject\", alias: \"this\" },\n });\n return [\n {\n fullClassName: \"BisCore.Subject\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: ECSql.createRawPropertyValueSelector(\"this\", \"ECClassId\") },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: \"BisCore.Subject\",\n }),\n },\n extendedData: {\n imageId: \"icon-imodel-hollow-2\",\n },\n autoExpand: true,\n supportsFiltering: true,\n })}\n FROM ${instanceFilterClauses.from} this\n ${instanceFilterClauses.joins}\n WHERE\n this.Parent.Id IS NULL\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n },\n },\n ];\n }\n\n private async createSubjectChildrenQuery({\n parentNodeInstanceIds: subjectIds,\n instanceFilter,\n }: DefineInstanceNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const [subjectFilterClauses, modelFilterClauses] = await Promise.all([\n this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: \"BisCore.Subject\", alias: \"this\" },\n }),\n this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: \"BisCore.Model\", alias: \"this\" },\n }),\n ]);\n const [childSubjectIds, childModelIds] = await Promise.all([\n this._idsCache.getChildSubjectIds(subjectIds),\n this._idsCache.getChildSubjectModelIds(subjectIds),\n ]);\n const defs = new Array<HierarchyNodesDefinition>();\n childSubjectIds.length &&\n defs.push({\n fullClassName: \"BisCore.Subject\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: \"BisCore.Subject\",\n }),\n },\n hasChildren: { selector: `InVirtualSet(?, this.ECInstanceId)` },\n grouping: { byLabel: { action: \"merge\", groupId: \"subject\" } },\n extendedData: {\n imageId: \"icon-folder\",\n },\n supportsFiltering: true,\n })}\n FROM ${subjectFilterClauses.from} this\n ${subjectFilterClauses.joins}\n WHERE\n this.ECInstanceId IN (${childSubjectIds.map(() => \"?\").join(\",\")})\n ${subjectFilterClauses.where ? `AND ${subjectFilterClauses.where}` : \"\"}\n `,\n bindings: [\n { type: \"idset\", value: await this._idsCache.getParentSubjectIds() },\n ...childSubjectIds.map((id): ECSqlBinding => ({ type: \"id\", value: id })),\n ],\n },\n });\n childModelIds.length &&\n defs.push({\n fullClassName: \"BisCore.Model\",\n query: {\n ecsql: `\n SELECT model.ECInstanceId AS ECInstanceId, model.*\n FROM (\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"m.ECClassId\" },\n ecInstanceId: { selector: \"m.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"partition\",\n className: \"BisCore.InformationPartitionElement\",\n }),\n },\n hideNodeInHierarchy: {\n selector: `\n CASE\n WHEN (\n json_extract([partition].JsonProperties, '$.PhysicalPartition.Model.Content') IS NOT NULL\n OR json_extract([partition].JsonProperties, '$.GraphicalPartition3d.Model.Content') IS NOT NULL\n ) THEN 1\n ELSE 0\n END\n `,\n },\n extendedData: {\n imageId: \"icon-model\",\n },\n supportsFiltering: true,\n })}\n FROM BisCore.Model m\n JOIN BisCore.InformationPartitionElement [partition] ON [partition].ECInstanceId = m.ModeledElement.Id\n WHERE\n m.ECInstanceId IN (${childModelIds.map(() => \"?\").join(\",\")})\n ) model\n JOIN ${modelFilterClauses.from} this ON this.ECInstanceId = model.ECInstanceId\n ${modelFilterClauses.joins}\n ${modelFilterClauses.where ? `WHERE (model.${NodeSelectClauseColumnNames.HideNodeInHierarchy} OR ${modelFilterClauses.where})` : \"\"}\n `,\n bindings: childModelIds.map((id): ECSqlBinding => ({ type: \"id\", value: id })),\n },\n });\n return defs;\n }\n\n private async createISubModeledElementChildrenQuery({\n parentNodeInstanceIds: elementIds,\n }: DefineInstanceNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n // note: we do not apply hierarchy level filtering on this hierarchy level, because it's always\n // hidden - the filter will get applied on the child hierarchy levels\n return [\n {\n fullClassName: \"BisCore.Model\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: \"\", // doesn't matter - the node is always hidden\n hideNodeInHierarchy: true,\n })}\n FROM BisCore.Model this\n WHERE\n this.ModeledElement.Id IN (${elementIds.map(() => \"?\").join(\",\")})\n AND NOT this.IsPrivate\n `,\n bindings: [...elementIds.map((id): ECSqlBinding => ({ type: \"id\", value: id }))],\n },\n },\n ];\n }\n\n private async createGeometricModelChildrenQuery({\n parentNodeInstanceIds: modelIds,\n instanceFilter,\n viewType,\n }: DefineInstanceNodeChildHierarchyLevelProps & { viewType: \"2d\" | \"3d\" }): Promise<HierarchyLevelDefinition> {\n const childCategoryIds = await this._idsCache.getModelCategories(modelIds);\n\n const { categoryClass } = getClassNameByViewType(viewType);\n const categoryFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: categoryClass, alias: \"this\" },\n });\n const informationContentElementFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: \"BisCore.InformationContentElement\", alias: \"this\" },\n });\n\n const defs = new Array<HierarchyNodesDefinition>();\n childCategoryIds.length &&\n defs.push({\n fullClassName: categoryClass,\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: categoryClass,\n }),\n },\n grouping: { byLabel: { action: \"merge\", groupId: \"category\" } },\n extendedData: {\n imageId: \"icon-layers\",\n modelIds: { selector: createIdsSelector(modelIds) },\n },\n hasChildren: true,\n supportsFiltering: true,\n })}\n FROM ${categoryFilterClauses.from} this\n ${categoryFilterClauses.joins}\n WHERE\n this.ECInstanceId IN (${childCategoryIds.map(() => \"?\").join(\",\")})\n ${categoryFilterClauses.where ? `AND ${categoryFilterClauses.where}` : \"\"}\n `,\n bindings: childCategoryIds.map((id): ECSqlBinding => ({ type: \"id\", value: id })),\n },\n });\n defs.push({\n fullClassName: \"BisCore.InformationContentElement\",\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: \"BisCore.InformationContentElement\",\n }),\n },\n hasChildren: true,\n grouping: {\n byClass: true,\n },\n supportsFiltering: true,\n })}\n FROM ${informationContentElementFilterClauses.from} this\n ${informationContentElementFilterClauses.joins}\n WHERE\n this.Model.Id IN (${modelIds.map(() => \"?\").join(\",\")})\n ${informationContentElementFilterClauses.where ? `AND ${informationContentElementFilterClauses.where}` : \"\"}\n `,\n bindings: modelIds.map((id) => ({ type: \"id\", value: id })),\n },\n });\n return defs;\n }\n\n private async createCategoryChildrenQuery(props: DefineInstanceNodeChildHierarchyLevelProps & { viewType: \"2d\" | \"3d\" }): Promise<HierarchyLevelDefinition> {\n const { parentNodeInstanceIds: categoryIds, parentNode, instanceFilter, viewType } = props;\n const modelIds = parseIdsSelectorResult(parentNode.extendedData?.modelIds);\n\n // We only want to handle a category added as a child of `GeometricModel2d` or `GeometricModel3d`.\n // ModelIds is not empty only if parent node is a geometric model.\n if (modelIds.length === 0) {\n return this.createElementChildrenQuery(props);\n }\n\n const { elementClass, modelClass } = getClassNameByViewType(viewType);\n return Promise.all(\n getElementsSelectProps({ modelClass, elementClass }).map(async ({ selectProps, whereClause }) => {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: elementClass, alias: \"this\" },\n });\n return {\n fullClassName: elementClass,\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: elementClass,\n }),\n },\n grouping: {\n byClass: true,\n },\n extendedData: {\n imageId: \"icon-item\",\n },\n hasChildren: selectProps.hasChildren,\n supportsFiltering: selectProps.supportsFiltering,\n })}\n FROM ${instanceFilterClauses.from} this\n ${instanceFilterClauses.joins}\n WHERE\n this.Category.Id IN (${categoryIds.map(() => \"?\").join(\",\")})\n AND this.Model.Id IN (${modelIds.map(() => \"?\").join(\",\")})\n AND this.Parent.Id IS NULL\n ${whereClause ? `AND ${whereClause}` : \"\"}\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: [...categoryIds.map((id) => ({ type: \"id\", value: id })), ...modelIds.map((id) => ({ type: \"id\", value: id }))] as ECSqlBinding[],\n },\n };\n }),\n );\n }\n\n private async createModelChildrenQuery({\n parentNodeInstanceIds: modelIds,\n instanceFilter,\n }: DefineInstanceNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n return Promise.all(\n getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: classFullName, alias: \"this\" },\n });\n return {\n fullClassName: classFullName,\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: classFullName,\n }),\n },\n grouping: {\n byClass: true,\n },\n extendedData: {\n imageId: \"icon-item\",\n },\n hasChildren: selectProps?.hasChildren,\n supportsFiltering: selectProps?.supportsFiltering,\n })}\n FROM ${instanceFilterClauses.from} this\n ${instanceFilterClauses.joins}\n WHERE\n this.Parent.Id IS NULL\n AND this.Model.Id IN (${modelIds.map(() => \"?\").join(\",\")})\n ${whereClause ? `AND ${whereClause}` : \"\"}\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: modelIds.map((id): ECSqlBinding => ({ type: \"id\", value: id })),\n },\n };\n }),\n );\n }\n\n private async createGroupInformationElementChildElementsQuery({\n parentNodeInstanceIds: groupIds,\n }: DefineInstanceNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n return [\n {\n node: {\n key: \"ChildrenNode\",\n label: \"Children\",\n extendedData: {\n groupIds,\n imageId: \"icon-hierarchy-tree\",\n },\n supportsFiltering: true,\n processingParams: {\n hideIfNoChildren: true,\n },\n },\n },\n {\n node: {\n key: \"MembersNode\",\n label: \"Members\",\n extendedData: {\n groupIds,\n imageId: \"icon-group\",\n },\n supportsFiltering: true,\n processingParams: {\n hideIfNoChildren: true,\n },\n },\n },\n ];\n }\n\n private async createChildrenNodeChildrenQuery({ parentNode, instanceFilter }: DefineGenericNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const groupIds: string[] = parentNode.extendedData?.groupIds;\n return Promise.all(\n getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: classFullName, alias: \"this\" },\n });\n return {\n fullClassName: classFullName,\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: classFullName,\n }),\n },\n extendedData: {\n imageId: \"icon-item\",\n },\n grouping: { byClass: true },\n hasChildren: selectProps.hasChildren,\n supportsFiltering: selectProps.supportsFiltering,\n })}\n FROM ${instanceFilterClauses.from} this\n ${instanceFilterClauses.joins}\n WHERE\n this.Parent.Id IN (${groupIds.map(() => \"?\").join(\",\")})\n ${whereClause ? `AND ${whereClause}` : \"\"}\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: groupIds.map((id) => ({ type: \"id\", value: id })),\n },\n };\n }),\n );\n }\n\n private async createGroupInformationElementMemberElementsQuery({\n parentNode,\n instanceFilter,\n }: DefineGenericNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n const groupIds: string[] = parentNode.extendedData?.groupIds;\n return Promise.all(\n getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: classFullName, alias: \"this\" },\n });\n return {\n fullClassName: classFullName,\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: classFullName,\n }),\n },\n grouping: { byClass: true },\n extendedData: {\n imageId: \"icon-item\",\n },\n hasChildren: selectProps.hasChildren,\n supportsFiltering: selectProps.supportsFiltering,\n })}\n FROM ${instanceFilterClauses.from} this\n JOIN BisCore.ElementGroupsMembers egm ON egm.TargetECInstanceId = this.ECInstanceId\n ${instanceFilterClauses.joins}\n WHERE\n egm.SourceECInstanceId IN (${groupIds.map(() => \"?\").join(\",\")})\n ${whereClause ? `AND ${whereClause}` : \"\"}\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: groupIds.map((id) => ({ type: \"id\", value: id })),\n },\n };\n }),\n );\n }\n\n private async createElementChildrenQuery({\n parentNodeInstanceIds: elementIds,\n instanceFilter,\n }: DefineInstanceNodeChildHierarchyLevelProps): Promise<HierarchyLevelDefinition> {\n return Promise.all(\n getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {\n const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({\n filter: instanceFilter,\n contentClass: { fullName: classFullName, alias: \"this\" },\n });\n return {\n fullClassName: classFullName,\n query: {\n ecsql: `\n SELECT\n ${await this._selectQueryFactory.createSelectClause({\n ecClassId: { selector: \"this.ECClassId\" },\n ecInstanceId: { selector: \"this.ECInstanceId\" },\n nodeLabel: {\n selector: await this._nodeLabelSelectClauseFactory.createSelectClause({\n classAlias: \"this\",\n className: classFullName,\n }),\n },\n grouping: { byClass: true },\n extendedData: {\n imageId: \"icon-item\",\n },\n hasChildren: selectProps.hasChildren,\n supportsFiltering: selectProps.supportsFiltering,\n })}\n FROM ${instanceFilterClauses.from} this\n JOIN BisCore.Element p ON p.ECInstanceId = this.Parent.Id\n ${instanceFilterClauses.joins}\n WHERE\n p.ECInstanceId IN (${elementIds.map(() => \"?\").join(\",\")})\n ${whereClause ? `AND ${whereClause}` : \"\"}\n ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : \"\"}\n `,\n bindings: elementIds.map((id) => ({ type: \"id\", value: id })),\n },\n };\n }),\n );\n }\n}\n\nfunction getClassNameByViewType(view: \"2d\" | \"3d\") {\n if (view === \"2d\") {\n return { categoryClass: \"BisCore.DrawingCategory\", elementClass: \"BisCore.GeometricElement2d\", modelClass: \"BisCore.GeometricModel2d\" } as const;\n }\n return { categoryClass: \"BisCore.SpatialCategory\", elementClass: \"BisCore.GeometricElement3d\", modelClass: \"BisCore.GeometricModel3d\" } as const;\n}\n\nfunction getElementsSelectProps(props?: { modelClass?: string; elementClass?: \"BisCore.GeometricElement3d\" | \"BisCore.GeometricElement2d\" }) {\n const modelClassFullName = props?.modelClass ?? \"BisCore.Model\";\n const elementClassFullName = props?.elementClass ?? \"BisCore.Element\";\n const result = [\n {\n classFullName: elementClassFullName,\n whereClause: \"this.ECClassId IS NOT (BisCore.GroupInformationElement)\",\n selectProps: {\n hasChildren: {\n selector: `\n IFNULL((\n SELECT 1\n FROM (\n SELECT Parent.Id ParentId FROM ${elementClassFullName}\n UNION ALL\n SELECT sm.ModeledElement.Id ParentId FROM ${modelClassFullName} sm WHERE EXISTS (SELECT 1 FROM ${elementClassFullName} WHERE Model.Id = sm.ECInstanceId)\n )\n WHERE ParentId = this.ECInstanceId\n LIMIT 1\n ), 0)\n `,\n },\n supportsFiltering: true,\n },\n },\n ];\n\n if (!props?.elementClass) {\n result.push({\n classFullName: \"BisCore.GroupInformationElement\",\n whereClause: \"\",\n selectProps: {\n hasChildren: {\n selector: `\n IFNULL((\n SELECT 1\n FROM (\n SELECT Parent.Id ParentId FROM BisCore.Element\n UNION ALL\n SELECT SourceECInstanceId ParentId FROM BisCore.ElementGroupsMembers\n )\n WHERE ParentId = this.ECInstanceId\n LIMIT 1\n ), 0)\n `,\n },\n supportsFiltering: false,\n },\n });\n }\n\n return result;\n}\n"]}
@@ -1,26 +0,0 @@
1
- import type { Id64Array, Id64String } from "@itwin/core-bentley";
2
- import type { LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies";
3
- /** @internal */
4
- export declare class IModelContentTreeIdsCache {
5
- private _queryExecutor;
6
- private _subjectInfos;
7
- private _parentSubjectIds;
8
- private _modelInfos;
9
- constructor(_queryExecutor: LimitingECSqlQueryExecutor);
10
- private querySubjects;
11
- private queryModels;
12
- private getSubjectInfos;
13
- /** Returns ECInstanceIDs of Subjects that either have direct Model or at least one child Subject with a Model. */
14
- getParentSubjectIds(): Promise<Id64String[]>;
15
- /**
16
- * Returns child subjects of the specified parent subjects as they're displayed in the hierarchy - taking into
17
- * account `hideInHierarchy` flag.
18
- */
19
- getChildSubjectIds(parentSubjectIds: Id64String[]): Promise<Id64String[]>;
20
- /** Returns ECInstanceIDs of Models under specific parent Subjects as they are displayed in the hierarchy. */
21
- getChildSubjectModelIds(parentSubjectIds: Id64String[]): Promise<Id64String[]>;
22
- private queryModelCategories;
23
- private getModelInfos;
24
- getModelCategories(modelIds: Id64String[]): Promise<Id64Array>;
25
- }
26
- //# sourceMappingURL=IModelContentTreeIdsCache.d.ts.map
@@ -1,203 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.IModelContentTreeIdsCache = void 0;
8
- const core_bentley_1 = require("@itwin/core-bentley");
9
- const Utils_js_1 = require("../../common/Utils.js");
10
- /** @internal */
11
- class IModelContentTreeIdsCache {
12
- constructor(_queryExecutor) {
13
- this._queryExecutor = _queryExecutor;
14
- }
15
- async *querySubjects() {
16
- const subjectsQuery = `
17
- SELECT
18
- s.ECInstanceId id,
19
- s.Parent.Id parentId,
20
- (
21
- SELECT m.ECInstanceId
22
- FROM bis.Model m
23
- WHERE
24
- m.ECInstanceId = HexToId(json_extract(s.JsonProperties, '$.Subject.Model.TargetPartition'))
25
- AND NOT m.IsPrivate
26
- ) targetPartitionId,
27
- CASE
28
- WHEN (
29
- json_extract(s.JsonProperties, '$.Subject.Job.Bridge') IS NOT NULL
30
- OR json_extract(s.JsonProperties, '$.Subject.Model.Type') = 'Hierarchy'
31
- ) THEN 1
32
- ELSE 0
33
- END hideInHierarchy
34
- FROM bis.Subject s
35
- `;
36
- for await (const row of this._queryExecutor.createQueryReader({ ecsql: subjectsQuery }, { rowFormat: "ECSqlPropertyNames", limit: "unbounded" })) {
37
- yield { id: row.id, parentId: row.parentId, targetPartitionId: row.targetPartitionId, hideInHierarchy: !!row.hideInHierarchy };
38
- }
39
- }
40
- async *queryModels() {
41
- const modelsQuery = `
42
- SELECT p.ECInstanceId id, p.Parent.Id parentId
43
- FROM bis.InformationPartitionElement p
44
- INNER JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId
45
- WHERE NOT m.IsPrivate
46
- `;
47
- for await (const row of this._queryExecutor.createQueryReader({ ecsql: modelsQuery }, { rowFormat: "ECSqlPropertyNames", limit: "unbounded" })) {
48
- yield { id: row.id, parentId: row.parentId };
49
- }
50
- }
51
- async getSubjectInfos() {
52
- this._subjectInfos ??= (async () => {
53
- const [subjectInfos, targetPartitionSubjects] = await Promise.all([
54
- (async () => {
55
- const result = new Map();
56
- for await (const subject of this.querySubjects()) {
57
- const subjectInfo = {
58
- parentSubject: subject.parentId,
59
- hideInHierarchy: subject.hideInHierarchy,
60
- childSubjects: new Set(),
61
- childModels: new Set(),
62
- };
63
- if (subject.targetPartitionId) {
64
- subjectInfo.childModels.add(subject.targetPartitionId);
65
- }
66
- result.set(subject.id, subjectInfo);
67
- }
68
- return result;
69
- })(),
70
- (async () => {
71
- const result = new Map();
72
- for await (const model of this.queryModels()) {
73
- (0, Utils_js_1.pushToMap)(result, model.id, model.parentId);
74
- }
75
- return result;
76
- })(),
77
- ]);
78
- for (const [subjectId, { parentSubject: parentSubjectId }] of subjectInfos.entries()) {
79
- if (parentSubjectId) {
80
- const parentSubjectInfo = subjectInfos.get(parentSubjectId);
81
- (0, core_bentley_1.assert)(!!parentSubjectInfo);
82
- parentSubjectInfo.childSubjects.add(subjectId);
83
- }
84
- }
85
- for (const [partitionId, subjectIds] of targetPartitionSubjects) {
86
- subjectIds.forEach((subjectId) => {
87
- const subjectInfo = subjectInfos.get(subjectId);
88
- (0, core_bentley_1.assert)(!!subjectInfo);
89
- subjectInfo.childModels.add(partitionId);
90
- });
91
- }
92
- return subjectInfos;
93
- })();
94
- return this._subjectInfos;
95
- }
96
- /** Returns ECInstanceIDs of Subjects that either have direct Model or at least one child Subject with a Model. */
97
- async getParentSubjectIds() {
98
- this._parentSubjectIds ??= (async () => {
99
- const subjectInfos = await this.getSubjectInfos();
100
- const parentSubjectIds = new Set();
101
- subjectInfos.forEach((subjectInfo, subjectId) => {
102
- if (subjectInfo.childModels.size === 0 && subjectInfo.childSubjects.size === 0) {
103
- return;
104
- }
105
- parentSubjectIds.add(subjectId);
106
- let currParentId = subjectInfo.parentSubject;
107
- while (currParentId) {
108
- parentSubjectIds.add(currParentId);
109
- currParentId = subjectInfos.get(currParentId)?.parentSubject;
110
- }
111
- });
112
- return [...parentSubjectIds];
113
- })();
114
- return this._parentSubjectIds;
115
- }
116
- /**
117
- * Returns child subjects of the specified parent subjects as they're displayed in the hierarchy - taking into
118
- * account `hideInHierarchy` flag.
119
- */
120
- async getChildSubjectIds(parentSubjectIds) {
121
- const childSubjectIds = new Array();
122
- const subjectInfos = await this.getSubjectInfos();
123
- parentSubjectIds.forEach((subjectId) => {
124
- forEachChildSubject(subjectInfos, subjectId, (childSubjectId, childSubjectInfo) => {
125
- if (!childSubjectInfo.hideInHierarchy) {
126
- childSubjectIds.push(childSubjectId);
127
- return "break";
128
- }
129
- return "continue";
130
- });
131
- });
132
- return childSubjectIds;
133
- }
134
- /** Returns ECInstanceIDs of Models under specific parent Subjects as they are displayed in the hierarchy. */
135
- async getChildSubjectModelIds(parentSubjectIds) {
136
- const subjectInfos = await this.getSubjectInfos();
137
- const hiddenSubjectIds = new Array();
138
- parentSubjectIds.forEach((subjectId) => {
139
- forEachChildSubject(subjectInfos, subjectId, (childSubjectId, childSubjectInfo) => {
140
- if (childSubjectInfo.hideInHierarchy) {
141
- hiddenSubjectIds.push(childSubjectId);
142
- return "continue";
143
- }
144
- return "break";
145
- });
146
- });
147
- const modelIds = new Array();
148
- [...parentSubjectIds, ...hiddenSubjectIds].forEach((subjectId) => {
149
- const subjectInfo = subjectInfos.get(subjectId);
150
- subjectInfo && modelIds.push(...subjectInfo.childModels);
151
- });
152
- return modelIds;
153
- }
154
- async *queryModelCategories() {
155
- const query = /* sql */ `
156
- SELECT Model.Id modelId, Category.Id categoryId
157
- FROM BisCore.GeometricElement3d
158
- WHERE Parent.Id IS NULL
159
- GROUP BY Model.Id, Category.Id
160
- UNION ALL
161
- SELECT Model.Id modelId, Category.Id categoryId
162
- FROM BisCore.GeometricElement2d
163
- WHERE Parent.Id IS NULL
164
- GROUP BY Model.Id, Category.Id
165
- `;
166
- for await (const row of this._queryExecutor.createQueryReader({ ecsql: query }, { rowFormat: "ECSqlPropertyNames", limit: "unbounded" })) {
167
- yield { modelId: row.modelId, categoryId: row.categoryId };
168
- }
169
- }
170
- async getModelInfos() {
171
- this._modelInfos ??= (async () => {
172
- const modelInfos = new Map();
173
- for await (const { modelId, categoryId } of this.queryModelCategories()) {
174
- const entry = modelInfos.get(modelId);
175
- if (entry) {
176
- entry.categories.add(categoryId);
177
- }
178
- else {
179
- modelInfos.set(modelId, { categories: new Set([categoryId]), elementCount: 0 });
180
- }
181
- }
182
- return modelInfos;
183
- })();
184
- return this._modelInfos;
185
- }
186
- async getModelCategories(modelIds) {
187
- const modelInfos = await this.getModelInfos();
188
- return modelIds.map((modelId) => modelInfos.get(modelId)?.categories).flatMap((categories) => (categories ? [...categories] : []));
189
- }
190
- }
191
- exports.IModelContentTreeIdsCache = IModelContentTreeIdsCache;
192
- function forEachChildSubject(subjectInfos, parentSubject, cb) {
193
- const parentSubjectInfo = typeof parentSubject === "string" ? subjectInfos.get(parentSubject) : parentSubject;
194
- parentSubjectInfo &&
195
- parentSubjectInfo.childSubjects.forEach((childSubjectId) => {
196
- const childSubjectInfo = subjectInfos.get(childSubjectId);
197
- if (cb(childSubjectId, childSubjectInfo) === "break") {
198
- return;
199
- }
200
- forEachChildSubject(subjectInfos, childSubjectInfo, cb);
201
- });
202
- }
203
- //# sourceMappingURL=IModelContentTreeIdsCache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IModelContentTreeIdsCache.js","sourceRoot":"","sources":["../../../../../../../src/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { pushToMap } from \"../../common/Utils.js\";\n\nimport type { Id64Array, Id64Set, Id64String } from \"@itwin/core-bentley\";\nimport type { LimitingECSqlQueryExecutor } from \"@itwin/presentation-hierarchies\";\n\ninterface SubjectInfo {\n parentSubject: Id64String | undefined;\n hideInHierarchy: boolean;\n childSubjects: Id64Set;\n childModels: Id64Set;\n}\n\ninterface ModelInfo {\n categories: Id64Set;\n}\n\n/** @internal */\nexport class IModelContentTreeIdsCache {\n private _subjectInfos: Promise<Map<Id64String, SubjectInfo>> | undefined;\n private _parentSubjectIds: Promise<Id64Array> | undefined; // the list should contain a subject id if its node should be shown as having children\n private _modelInfos: Promise<Map<Id64String, ModelInfo>> | undefined;\n\n constructor(private _queryExecutor: LimitingECSqlQueryExecutor) {}\n\n private async *querySubjects(): AsyncIterableIterator<{ id: Id64String; parentId?: Id64String; targetPartitionId?: Id64String; hideInHierarchy: boolean }> {\n const subjectsQuery = `\n SELECT\n s.ECInstanceId id,\n s.Parent.Id parentId,\n (\n SELECT m.ECInstanceId\n FROM bis.Model m\n WHERE\n m.ECInstanceId = HexToId(json_extract(s.JsonProperties, '$.Subject.Model.TargetPartition'))\n AND NOT m.IsPrivate\n ) targetPartitionId,\n CASE\n WHEN (\n json_extract(s.JsonProperties, '$.Subject.Job.Bridge') IS NOT NULL\n OR json_extract(s.JsonProperties, '$.Subject.Model.Type') = 'Hierarchy'\n ) THEN 1\n ELSE 0\n END hideInHierarchy\n FROM bis.Subject s\n `;\n for await (const row of this._queryExecutor.createQueryReader({ ecsql: subjectsQuery }, { rowFormat: \"ECSqlPropertyNames\", limit: \"unbounded\" })) {\n yield { id: row.id, parentId: row.parentId, targetPartitionId: row.targetPartitionId, hideInHierarchy: !!row.hideInHierarchy };\n }\n }\n\n private async *queryModels(): AsyncIterableIterator<{ id: Id64String; parentId: Id64String }> {\n const modelsQuery = `\n SELECT p.ECInstanceId id, p.Parent.Id parentId\n FROM bis.InformationPartitionElement p\n INNER JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId\n WHERE NOT m.IsPrivate\n `;\n for await (const row of this._queryExecutor.createQueryReader({ ecsql: modelsQuery }, { rowFormat: \"ECSqlPropertyNames\", limit: \"unbounded\" })) {\n yield { id: row.id, parentId: row.parentId };\n }\n }\n\n private async getSubjectInfos() {\n this._subjectInfos ??= (async () => {\n const [subjectInfos, targetPartitionSubjects] = await Promise.all([\n (async () => {\n const result = new Map<Id64String, SubjectInfo>();\n for await (const subject of this.querySubjects()) {\n const subjectInfo: SubjectInfo = {\n parentSubject: subject.parentId,\n hideInHierarchy: subject.hideInHierarchy,\n childSubjects: new Set(),\n childModels: new Set(),\n };\n if (subject.targetPartitionId) {\n subjectInfo.childModels.add(subject.targetPartitionId);\n }\n result.set(subject.id, subjectInfo);\n }\n return result;\n })(),\n (async () => {\n const result = new Map<Id64String, Set<Id64String>>();\n for await (const model of this.queryModels()) {\n pushToMap(result, model.id, model.parentId);\n }\n return result;\n })(),\n ]);\n\n for (const [subjectId, { parentSubject: parentSubjectId }] of subjectInfos.entries()) {\n if (parentSubjectId) {\n const parentSubjectInfo = subjectInfos.get(parentSubjectId);\n assert(!!parentSubjectInfo);\n parentSubjectInfo.childSubjects.add(subjectId);\n }\n }\n\n for (const [partitionId, subjectIds] of targetPartitionSubjects) {\n subjectIds.forEach((subjectId) => {\n const subjectInfo = subjectInfos.get(subjectId);\n assert(!!subjectInfo);\n subjectInfo.childModels.add(partitionId);\n });\n }\n\n return subjectInfos;\n })();\n return this._subjectInfos;\n }\n\n /** Returns ECInstanceIDs of Subjects that either have direct Model or at least one child Subject with a Model. */\n public async getParentSubjectIds(): Promise<Id64String[]> {\n this._parentSubjectIds ??= (async () => {\n const subjectInfos = await this.getSubjectInfos();\n const parentSubjectIds = new Set<Id64String>();\n subjectInfos.forEach((subjectInfo, subjectId) => {\n if (subjectInfo.childModels.size === 0 && subjectInfo.childSubjects.size === 0) {\n return;\n }\n parentSubjectIds.add(subjectId);\n let currParentId = subjectInfo.parentSubject;\n while (currParentId) {\n parentSubjectIds.add(currParentId);\n currParentId = subjectInfos.get(currParentId)?.parentSubject;\n }\n });\n return [...parentSubjectIds];\n })();\n return this._parentSubjectIds;\n }\n\n /**\n * Returns child subjects of the specified parent subjects as they're displayed in the hierarchy - taking into\n * account `hideInHierarchy` flag.\n */\n public async getChildSubjectIds(parentSubjectIds: Id64String[]): Promise<Id64String[]> {\n const childSubjectIds = new Array<Id64String>();\n const subjectInfos = await this.getSubjectInfos();\n parentSubjectIds.forEach((subjectId) => {\n forEachChildSubject(subjectInfos, subjectId, (childSubjectId, childSubjectInfo) => {\n if (!childSubjectInfo.hideInHierarchy) {\n childSubjectIds.push(childSubjectId);\n return \"break\";\n }\n return \"continue\";\n });\n });\n return childSubjectIds;\n }\n\n /** Returns ECInstanceIDs of Models under specific parent Subjects as they are displayed in the hierarchy. */\n public async getChildSubjectModelIds(parentSubjectIds: Id64String[]): Promise<Id64String[]> {\n const subjectInfos = await this.getSubjectInfos();\n\n const hiddenSubjectIds = new Array<Id64String>();\n parentSubjectIds.forEach((subjectId) => {\n forEachChildSubject(subjectInfos, subjectId, (childSubjectId, childSubjectInfo) => {\n if (childSubjectInfo.hideInHierarchy) {\n hiddenSubjectIds.push(childSubjectId);\n return \"continue\";\n }\n return \"break\";\n });\n });\n\n const modelIds = new Array<Id64String>();\n [...parentSubjectIds, ...hiddenSubjectIds].forEach((subjectId) => {\n const subjectInfo = subjectInfos.get(subjectId);\n subjectInfo && modelIds.push(...subjectInfo.childModels);\n });\n return modelIds;\n }\n\n private async *queryModelCategories() {\n const query = /* sql */ `\n SELECT Model.Id modelId, Category.Id categoryId\n FROM BisCore.GeometricElement3d\n WHERE Parent.Id IS NULL\n GROUP BY Model.Id, Category.Id\n UNION ALL\n SELECT Model.Id modelId, Category.Id categoryId\n FROM BisCore.GeometricElement2d\n WHERE Parent.Id IS NULL\n GROUP BY Model.Id, Category.Id\n `;\n for await (const row of this._queryExecutor.createQueryReader({ ecsql: query }, { rowFormat: \"ECSqlPropertyNames\", limit: \"unbounded\" })) {\n yield { modelId: row.modelId, categoryId: row.categoryId };\n }\n }\n\n private async getModelInfos() {\n this._modelInfos ??= (async () => {\n const modelInfos = new Map<Id64String, { categories: Id64Set; elementCount: number }>();\n for await (const { modelId, categoryId } of this.queryModelCategories()) {\n const entry = modelInfos.get(modelId);\n if (entry) {\n entry.categories.add(categoryId);\n } else {\n modelInfos.set(modelId, { categories: new Set([categoryId]), elementCount: 0 });\n }\n }\n return modelInfos;\n })();\n return this._modelInfos;\n }\n\n public async getModelCategories(modelIds: Id64String[]): Promise<Id64Array> {\n const modelInfos = await this.getModelInfos();\n return modelIds.map((modelId) => modelInfos.get(modelId)?.categories).flatMap((categories) => (categories ? [...categories] : []));\n }\n}\n\nfunction forEachChildSubject(\n subjectInfos: Map<Id64String, SubjectInfo>,\n parentSubject: Id64String | SubjectInfo,\n cb: (childSubjectId: Id64String, childSubjectInfo: SubjectInfo) => \"break\" | \"continue\",\n) {\n const parentSubjectInfo = typeof parentSubject === \"string\" ? subjectInfos.get(parentSubject) : parentSubject;\n parentSubjectInfo &&\n parentSubjectInfo.childSubjects.forEach((childSubjectId) => {\n const childSubjectInfo = subjectInfos.get(childSubjectId)!;\n if (cb(childSubjectId, childSubjectInfo) === \"break\") {\n return;\n }\n forEachChildSubject(subjectInfos, childSubjectInfo, cb);\n });\n}\n"]}
@@ -1,18 +0,0 @@
1
- export { ModelsTreeComponent } from "./models-tree/ModelsTreeComponent.js";
2
- export { CategoriesTreeComponent } from "./categories-tree/CategoriesTreeComponent.js";
3
- export { IModelContentTreeComponent } from "./imodel-content-tree/IModelContentTreeComponent.js";
4
- export { ExternalSourcesTreeComponent } from "./external-sources-tree/ExternalSourcesTreeComponent.js";
5
- export { useModelsTree } from "./models-tree/UseModelsTree.js";
6
- export { useCategoriesTree } from "./categories-tree/UseCategoriesTree.js";
7
- export { useModelsTreeButtonProps } from "./models-tree/ModelsTreeButtons.js";
8
- export { useCategoriesTreeButtonProps } from "./categories-tree/CategoriesTreeButtons.js";
9
- export { FocusedInstancesContextProvider, useFocusedInstancesContext } from "./common/FocusedInstancesContext.js";
10
- export { Tree } from "./common/components/Tree.js";
11
- export { VisibilityTree } from "./common/components/VisibilityTree.js";
12
- export { TreeRenderer } from "./common/components/TreeRenderer.js";
13
- export { VisibilityTreeRenderer } from "./common/components/VisibilityTreeRenderer.js";
14
- export { HierarchyVisibilityHandler, VisibilityStatus } from "./common/UseHierarchyVisibility.js";
15
- export { TelemetryContextProvider } from "./common/UseTelemetryContext.js";
16
- export { FilterLimitExceededError } from "./common/TreeErrors.js";
17
- export { ModelsTreeVisibilityHandlerOverrides } from "./models-tree/internal/ModelsTreeVisibilityHandler.js";
18
- //# sourceMappingURL=index.d.ts.map
@@ -1,39 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.FilterLimitExceededError = exports.TelemetryContextProvider = exports.VisibilityTreeRenderer = exports.TreeRenderer = exports.VisibilityTree = exports.Tree = exports.useFocusedInstancesContext = exports.FocusedInstancesContextProvider = exports.useCategoriesTreeButtonProps = exports.useModelsTreeButtonProps = exports.useCategoriesTree = exports.useModelsTree = exports.ExternalSourcesTreeComponent = exports.IModelContentTreeComponent = exports.CategoriesTreeComponent = exports.ModelsTreeComponent = void 0;
8
- var ModelsTreeComponent_js_1 = require("./models-tree/ModelsTreeComponent.js");
9
- Object.defineProperty(exports, "ModelsTreeComponent", { enumerable: true, get: function () { return ModelsTreeComponent_js_1.ModelsTreeComponent; } });
10
- var CategoriesTreeComponent_js_1 = require("./categories-tree/CategoriesTreeComponent.js");
11
- Object.defineProperty(exports, "CategoriesTreeComponent", { enumerable: true, get: function () { return CategoriesTreeComponent_js_1.CategoriesTreeComponent; } });
12
- var IModelContentTreeComponent_js_1 = require("./imodel-content-tree/IModelContentTreeComponent.js");
13
- Object.defineProperty(exports, "IModelContentTreeComponent", { enumerable: true, get: function () { return IModelContentTreeComponent_js_1.IModelContentTreeComponent; } });
14
- var ExternalSourcesTreeComponent_js_1 = require("./external-sources-tree/ExternalSourcesTreeComponent.js");
15
- Object.defineProperty(exports, "ExternalSourcesTreeComponent", { enumerable: true, get: function () { return ExternalSourcesTreeComponent_js_1.ExternalSourcesTreeComponent; } });
16
- var UseModelsTree_js_1 = require("./models-tree/UseModelsTree.js");
17
- Object.defineProperty(exports, "useModelsTree", { enumerable: true, get: function () { return UseModelsTree_js_1.useModelsTree; } });
18
- var UseCategoriesTree_js_1 = require("./categories-tree/UseCategoriesTree.js");
19
- Object.defineProperty(exports, "useCategoriesTree", { enumerable: true, get: function () { return UseCategoriesTree_js_1.useCategoriesTree; } });
20
- var ModelsTreeButtons_js_1 = require("./models-tree/ModelsTreeButtons.js");
21
- Object.defineProperty(exports, "useModelsTreeButtonProps", { enumerable: true, get: function () { return ModelsTreeButtons_js_1.useModelsTreeButtonProps; } });
22
- var CategoriesTreeButtons_js_1 = require("./categories-tree/CategoriesTreeButtons.js");
23
- Object.defineProperty(exports, "useCategoriesTreeButtonProps", { enumerable: true, get: function () { return CategoriesTreeButtons_js_1.useCategoriesTreeButtonProps; } });
24
- var FocusedInstancesContext_js_1 = require("./common/FocusedInstancesContext.js");
25
- Object.defineProperty(exports, "FocusedInstancesContextProvider", { enumerable: true, get: function () { return FocusedInstancesContext_js_1.FocusedInstancesContextProvider; } });
26
- Object.defineProperty(exports, "useFocusedInstancesContext", { enumerable: true, get: function () { return FocusedInstancesContext_js_1.useFocusedInstancesContext; } });
27
- var Tree_js_1 = require("./common/components/Tree.js");
28
- Object.defineProperty(exports, "Tree", { enumerable: true, get: function () { return Tree_js_1.Tree; } });
29
- var VisibilityTree_js_1 = require("./common/components/VisibilityTree.js");
30
- Object.defineProperty(exports, "VisibilityTree", { enumerable: true, get: function () { return VisibilityTree_js_1.VisibilityTree; } });
31
- var TreeRenderer_js_1 = require("./common/components/TreeRenderer.js");
32
- Object.defineProperty(exports, "TreeRenderer", { enumerable: true, get: function () { return TreeRenderer_js_1.TreeRenderer; } });
33
- var VisibilityTreeRenderer_js_1 = require("./common/components/VisibilityTreeRenderer.js");
34
- Object.defineProperty(exports, "VisibilityTreeRenderer", { enumerable: true, get: function () { return VisibilityTreeRenderer_js_1.VisibilityTreeRenderer; } });
35
- var UseTelemetryContext_js_1 = require("./common/UseTelemetryContext.js");
36
- Object.defineProperty(exports, "TelemetryContextProvider", { enumerable: true, get: function () { return UseTelemetryContext_js_1.TelemetryContextProvider; } });
37
- var TreeErrors_js_1 = require("./common/TreeErrors.js");
38
- Object.defineProperty(exports, "FilterLimitExceededError", { enumerable: true, get: function () { return TreeErrors_js_1.FilterLimitExceededError; } });
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/tree-widget-react/components/trees/index.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,+EAA2E;AAAlE,6HAAA,mBAAmB,OAAA;AAC5B,2FAAuF;AAA9E,qIAAA,uBAAuB,OAAA;AAChC,qGAAiG;AAAxF,2IAAA,0BAA0B,OAAA;AACnC,2GAAuG;AAA9F,+IAAA,4BAA4B,OAAA;AAErC,mEAA+D;AAAtD,iHAAA,aAAa,OAAA;AACtB,+EAA2E;AAAlE,yHAAA,iBAAiB,OAAA;AAE1B,2EAA8E;AAArE,gIAAA,wBAAwB,OAAA;AACjC,uFAA0F;AAAjF,wIAAA,4BAA4B,OAAA;AAErC,kFAAkH;AAAzG,6IAAA,+BAA+B,OAAA;AAAE,wIAAA,0BAA0B,OAAA;AAEpE,uDAAmD;AAA1C,+FAAA,IAAI,OAAA;AACb,2EAAuE;AAA9D,mHAAA,cAAc,OAAA;AACvB,uEAAmE;AAA1D,+GAAA,YAAY,OAAA;AACrB,2FAAuF;AAA9E,mIAAA,sBAAsB,OAAA;AAE/B,0EAA2E;AAAlE,kIAAA,wBAAwB,OAAA;AACjC,wDAAkE;AAAzD,yHAAA,wBAAwB,OAAA","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 { ModelsTreeComponent } from \"./models-tree/ModelsTreeComponent.js\";\nexport { CategoriesTreeComponent } from \"./categories-tree/CategoriesTreeComponent.js\";\nexport { IModelContentTreeComponent } from \"./imodel-content-tree/IModelContentTreeComponent.js\";\nexport { ExternalSourcesTreeComponent } from \"./external-sources-tree/ExternalSourcesTreeComponent.js\";\n\nexport { useModelsTree } from \"./models-tree/UseModelsTree.js\";\nexport { useCategoriesTree } from \"./categories-tree/UseCategoriesTree.js\";\n\nexport { useModelsTreeButtonProps } from \"./models-tree/ModelsTreeButtons.js\";\nexport { useCategoriesTreeButtonProps } from \"./categories-tree/CategoriesTreeButtons.js\";\n\nexport { FocusedInstancesContextProvider, useFocusedInstancesContext } from \"./common/FocusedInstancesContext.js\";\n\nexport { Tree } from \"./common/components/Tree.js\";\nexport { VisibilityTree } from \"./common/components/VisibilityTree.js\";\nexport { TreeRenderer } from \"./common/components/TreeRenderer.js\";\nexport { VisibilityTreeRenderer } from \"./common/components/VisibilityTreeRenderer.js\";\nexport { HierarchyVisibilityHandler, VisibilityStatus } from \"./common/UseHierarchyVisibility.js\";\nexport { TelemetryContextProvider } from \"./common/UseTelemetryContext.js\";\nexport { FilterLimitExceededError } from \"./common/TreeErrors.js\";\n\nexport { ModelsTreeVisibilityHandlerOverrides } from \"./models-tree/internal/ModelsTreeVisibilityHandler.js\";\n"]}
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import type { UseModelsTreeProps } from "./UseModelsTree.js";
3
- import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js";
4
- /** @beta */
5
- export type ModelsTreeProps = Pick<VisibilityTreeProps, "imodel" | "getSchemaContext" | "selectionStorage" | "density" | "selectionMode"> & UseModelsTreeProps & {
6
- hierarchyLevelConfig?: {
7
- sizeLimit?: number;
8
- };
9
- };
10
- /** @beta */
11
- export declare function ModelsTree({ imodel, getSchemaContext, selectionStorage, activeView, filter, density, hierarchyLevelConfig, hierarchyConfig, selectionMode, selectionPredicate, visibilityHandlerOverrides, getFilteredPaths, onModelsFiltered, }: ModelsTreeProps): JSX.Element;
12
- //# sourceMappingURL=ModelsTree.d.ts.map
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelsTree = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- /*---------------------------------------------------------------------------------------------
6
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
7
- * See LICENSE.md in the project root for license terms and full copyright notice.
8
- *--------------------------------------------------------------------------------------------*/
9
- const VisibilityTree_js_1 = require("../common/components/VisibilityTree.js");
10
- const VisibilityTreeRenderer_js_1 = require("../common/components/VisibilityTreeRenderer.js");
11
- const UseModelsTree_js_1 = require("./UseModelsTree.js");
12
- /** @beta */
13
- function ModelsTree({ imodel, getSchemaContext, selectionStorage, activeView, filter, density, hierarchyLevelConfig, hierarchyConfig, selectionMode, selectionPredicate, visibilityHandlerOverrides, getFilteredPaths, onModelsFiltered, }) {
14
- const { modelsTreeProps, rendererProps } = (0, UseModelsTree_js_1.useModelsTree)({
15
- activeView,
16
- filter,
17
- hierarchyConfig,
18
- visibilityHandlerOverrides,
19
- getFilteredPaths,
20
- onModelsFiltered,
21
- selectionPredicate,
22
- });
23
- return ((0, jsx_runtime_1.jsx)(VisibilityTree_js_1.VisibilityTree, { ...modelsTreeProps, imodel: imodel, selectionStorage: selectionStorage, getSchemaContext: getSchemaContext, hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit, density: density, selectionMode: selectionMode, treeRenderer: (treeProps) => (0, jsx_runtime_1.jsx)(VisibilityTreeRenderer_js_1.VisibilityTreeRenderer, { ...treeProps, ...rendererProps }) }));
24
- }
25
- exports.ModelsTree = ModelsTree;
26
- //# sourceMappingURL=ModelsTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelsTree.js","sourceRoot":"","sources":["../../../../../../src/tree-widget-react/components/trees/models-tree/ModelsTree.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,8EAAwE;AACxE,8FAAwF;AACxF,yDAAmD;AAanD,YAAY;AACZ,SAAgB,UAAU,CAAC,EACzB,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,OAAO,EACP,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,GACA;IAChB,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAA,gCAAa,EAAC;QACvD,UAAU;QACV,MAAM;QACN,eAAe;QACf,0BAA0B;QAC1B,gBAAgB;QAChB,gBAAgB;QAChB,kBAAkB;KACnB,CAAC,CAAC;IAEH,OAAO,CACL,uBAAC,kCAAc,OACT,eAAe,EACnB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,oBAAoB,EAAE,SAAS,EACxD,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,uBAAC,kDAAsB,OAAK,SAAS,KAAM,aAAa,GAAI,GACzF,CACH,CAAC;AACJ,CAAC;AArCD,gCAqCC","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 { VisibilityTree } from \"../common/components/VisibilityTree.js\";\nimport { VisibilityTreeRenderer } from \"../common/components/VisibilityTreeRenderer.js\";\nimport { useModelsTree } from \"./UseModelsTree.js\";\n\nimport type { UseModelsTreeProps } from \"./UseModelsTree.js\";\nimport type { VisibilityTreeProps } from \"../common/components/VisibilityTree.js\";\n\n/** @beta */\nexport type ModelsTreeProps = Pick<VisibilityTreeProps, \"imodel\" | \"getSchemaContext\" | \"selectionStorage\" | \"density\" | \"selectionMode\"> &\n UseModelsTreeProps & {\n hierarchyLevelConfig?: {\n sizeLimit?: number;\n };\n };\n\n/** @beta */\nexport function ModelsTree({\n imodel,\n getSchemaContext,\n selectionStorage,\n activeView,\n filter,\n density,\n hierarchyLevelConfig,\n hierarchyConfig,\n selectionMode,\n selectionPredicate,\n visibilityHandlerOverrides,\n getFilteredPaths,\n onModelsFiltered,\n}: ModelsTreeProps) {\n const { modelsTreeProps, rendererProps } = useModelsTree({\n activeView,\n filter,\n hierarchyConfig,\n visibilityHandlerOverrides,\n getFilteredPaths,\n onModelsFiltered,\n selectionPredicate,\n });\n\n return (\n <VisibilityTree\n {...modelsTreeProps}\n imodel={imodel}\n selectionStorage={selectionStorage}\n getSchemaContext={getSchemaContext}\n hierarchyLevelSizeLimit={hierarchyLevelConfig?.sizeLimit}\n density={density}\n selectionMode={selectionMode}\n treeRenderer={(treeProps) => <VisibilityTreeRenderer {...treeProps} {...rendererProps} />}\n />\n );\n}\n"]}
@@ -1,65 +0,0 @@
1
- /// <reference types="react" />
2
- import type { Id64String } from "@itwin/core-bentley";
3
- import type { IModelConnection, Viewport } from "@itwin/core-frontend";
4
- import type { TreeHeaderButtonProps } from "../../tree-header/TreeHeader.js";
5
- /**
6
- * Information about a single Model.
7
- * @public
8
- */
9
- export interface ModelInfo {
10
- id: string;
11
- isPlanProjection?: boolean;
12
- }
13
- /**
14
- * Props that get passed to `ModelsTreeComponent` header button renderer.
15
- * @see ModelTreeComponentProps.headerButtons
16
- * @public
17
- */
18
- export interface ModelsTreeHeaderButtonProps extends TreeHeaderButtonProps {
19
- /** A list of models available in the iModel. */
20
- models: ModelInfo[];
21
- }
22
- /**
23
- * Custom hook that creates props required to render `ModelsTreeComponent` header button.
24
- *
25
- * Example:
26
- * ```tsx
27
- * const { buttonProps, onModelsFiltered } = useModelsTreeButtonProps({ imodel, viewport });
28
- * <TreeWithHeader
29
- * buttons={[
30
- * <ModelsTreeComponent.ShowAllButton {...buttonProps} />,
31
- * <ModelsTreeComponent.HideAllButton {...buttonProps} />,
32
- * ]}
33
- * >
34
- * <ModelsTree {...treeProps} onModelsFiltered={onModelsFiltered} />
35
- * </TreeWithHeader>
36
- * ```
37
- *
38
- *
39
- * @public
40
- */
41
- export declare function useModelsTreeButtonProps({ imodel, viewport }: {
42
- imodel: IModelConnection;
43
- viewport: Viewport;
44
- }): {
45
- buttonProps: Pick<ModelsTreeHeaderButtonProps, "models" | "viewport">;
46
- onModelsFiltered: (models: Id64String[] | undefined) => void;
47
- };
48
- /** @public */
49
- export type ModelsTreeHeaderButtonType = (props: ModelsTreeHeaderButtonProps) => JSX.Element | null;
50
- /** @public */
51
- export declare function ShowAllButton(props: ModelsTreeHeaderButtonProps): JSX.Element;
52
- /** @public */
53
- export declare function HideAllButton(props: ModelsTreeHeaderButtonProps): JSX.Element;
54
- /** @public */
55
- export declare function InvertButton(props: ModelsTreeHeaderButtonProps): JSX.Element;
56
- /** @public */
57
- export declare function View2DButton(props: ModelsTreeHeaderButtonProps): JSX.Element;
58
- /** @public */
59
- export declare function View3DButton(props: ModelsTreeHeaderButtonProps): JSX.Element;
60
- /** @public */
61
- export declare function ToggleInstancesFocusButton({ density, onFeatureUsed }: {
62
- density?: "default" | "enlarged";
63
- onFeatureUsed?: (feature: string) => void;
64
- }): JSX.Element;
65
- //# sourceMappingURL=ModelsTreeButtons.d.ts.map