@itwin/tree-widget-react 3.0.0-dev.0 → 3.0.0-dev.2

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 (548) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +232 -147
  3. package/lib/cjs/TreeWidget.d.ts +0 -1
  4. package/lib/cjs/TreeWidget.js +0 -6
  5. package/lib/cjs/TreeWidget.js.map +1 -1
  6. package/lib/cjs/components/SelectableTree.d.ts +3 -9
  7. package/lib/cjs/components/SelectableTree.js +1 -1
  8. package/lib/cjs/components/SelectableTree.js.map +1 -1
  9. package/lib/cjs/components/TreeSelector.d.ts +2 -2
  10. package/lib/cjs/components/TreeSelector.js.map +1 -1
  11. package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +14 -25
  12. package/lib/cjs/components/TreeWidgetUiItemsProvider.js +43 -45
  13. package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
  14. package/lib/cjs/components/tree-header/TreeHeader.js +10 -10
  15. package/lib/cjs/components/tree-header/TreeHeader.js.map +1 -1
  16. package/lib/cjs/components/tree-header/TreeHeader.scss +7 -41
  17. package/lib/cjs/components/trees/Tree.scss +23 -0
  18. package/lib/cjs/components/trees/categories-tree/CategoriesTree.d.ts +22 -0
  19. package/lib/cjs/components/trees/categories-tree/CategoriesTree.js +78 -0
  20. package/lib/cjs/components/trees/categories-tree/CategoriesTree.js.map +1 -0
  21. package/lib/{esm/components/trees/category-tree → cjs/components/trees/categories-tree}/CategoriesTreeButtons.d.ts +2 -9
  22. package/lib/cjs/components/trees/{category-tree → categories-tree}/CategoriesTreeButtons.js +10 -11
  23. package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -0
  24. package/lib/{esm/components/trees/category-tree → cjs/components/trees/categories-tree}/CategoriesTreeComponent.d.ts +11 -12
  25. package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.js +75 -0
  26. package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -0
  27. package/lib/cjs/components/trees/{stateless/categories-tree → categories-tree}/CategoriesTreeDefinition.js +7 -2
  28. package/lib/cjs/components/trees/categories-tree/CategoriesTreeDefinition.js.map +1 -0
  29. package/lib/cjs/components/trees/{stateless/categories-tree → categories-tree}/CategoriesVisibilityHandler.d.ts +6 -6
  30. package/lib/cjs/components/trees/{stateless/categories-tree → categories-tree}/CategoriesVisibilityHandler.js +10 -10
  31. package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
  32. package/lib/cjs/components/trees/categories-tree/UseCategories.d.ts +8 -0
  33. package/lib/cjs/components/trees/categories-tree/UseCategories.js +22 -0
  34. package/lib/cjs/components/trees/categories-tree/UseCategories.js.map +1 -0
  35. package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.d.ts +46 -0
  36. package/lib/cjs/components/trees/{CategoriesVisibilityUtils.js → common/CategoriesVisibilityUtils.js} +56 -8
  37. package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.js.map +1 -0
  38. package/lib/{esm/components/trees/stateless → cjs/components/trees}/common/FocusedInstancesContext.d.ts +2 -1
  39. package/lib/cjs/components/trees/common/FocusedInstancesContext.js.map +1 -0
  40. package/lib/{esm/components/trees/stateless → cjs/components/trees}/common/FocusedInstancesContextProvider.d.ts +1 -1
  41. package/lib/cjs/components/trees/{stateless/common → common}/FocusedInstancesContextProvider.js +30 -6
  42. package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.js.map +1 -0
  43. package/lib/cjs/components/trees/common/Rxjs.d.ts +10 -0
  44. package/lib/cjs/components/trees/common/Rxjs.js +46 -0
  45. package/lib/cjs/components/trees/common/Rxjs.js.map +1 -0
  46. package/lib/cjs/components/trees/common/UseFeatureReporting.d.ts +11 -0
  47. package/lib/cjs/components/trees/common/UseFeatureReporting.js +10 -1
  48. package/lib/cjs/components/trees/common/UseFeatureReporting.js.map +1 -1
  49. package/lib/cjs/components/trees/common/UseFiltering.d.ts +12 -0
  50. package/lib/cjs/components/trees/common/UseFiltering.js +29 -0
  51. package/lib/cjs/components/trees/common/UseFiltering.js.map +1 -0
  52. package/lib/{esm/components/trees/stateless → cjs/components/trees}/common/UseHierarchiesLocalization.d.ts +2 -2
  53. package/lib/cjs/components/trees/{stateless/common → common}/UseHierarchiesLocalization.js +12 -11
  54. package/lib/cjs/components/trees/common/UseHierarchiesLocalization.js.map +1 -0
  55. package/lib/cjs/components/trees/common/UseHierarchyFiltering.d.ts +19 -0
  56. package/lib/cjs/components/trees/{stateless/common → common}/UseHierarchyFiltering.js +44 -26
  57. package/lib/cjs/components/trees/common/UseHierarchyFiltering.js.map +1 -0
  58. package/lib/cjs/components/trees/common/UseHierarchyVisibility.d.ts +30 -0
  59. package/lib/cjs/components/trees/{stateless/common → common}/UseHierarchyVisibility.js +45 -29
  60. package/lib/cjs/components/trees/common/UseHierarchyVisibility.js.map +1 -0
  61. package/lib/cjs/components/trees/common/UseIModelChangeListener.d.ts +9 -0
  62. package/lib/cjs/components/trees/common/UseIModelChangeListener.js +20 -0
  63. package/lib/cjs/components/trees/common/UseIModelChangeListener.js.map +1 -0
  64. package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.js +35 -0
  65. package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.js.map +1 -0
  66. package/lib/cjs/components/trees/common/UseNodeHighlighting.d.ts +16 -0
  67. package/lib/cjs/components/trees/common/UseNodeHighlighting.js +140 -0
  68. package/lib/cjs/components/trees/common/UseNodeHighlighting.js.map +1 -0
  69. package/lib/cjs/components/trees/common/Utils.d.ts +16 -6
  70. package/lib/cjs/components/trees/common/Utils.js +38 -34
  71. package/lib/cjs/components/trees/common/Utils.js.map +1 -1
  72. package/lib/cjs/components/trees/common/components/BaseTree.d.ts +34 -0
  73. package/lib/cjs/components/trees/common/components/BaseTree.js +78 -0
  74. package/lib/cjs/components/trees/common/components/BaseTree.js.map +1 -0
  75. package/lib/cjs/components/trees/common/components/Delayed.js.map +1 -0
  76. package/lib/cjs/components/trees/common/components/ProgressOverlay.js.map +1 -0
  77. package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.d.ts +20 -0
  78. package/lib/cjs/components/trees/{stateless/common/components/VisibilityTreeNodeCheckbox.js → common/components/TreeNodeCheckbox.js} +11 -7
  79. package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.js.map +1 -0
  80. package/lib/cjs/components/trees/common/components/TreeNodeRenderer.d.ts +13 -0
  81. package/lib/cjs/components/trees/{stateless/common/components/VisibilityTreeNodeRenderer.js → common/components/TreeNodeRenderer.js} +6 -6
  82. package/lib/cjs/components/trees/common/components/TreeNodeRenderer.js.map +1 -0
  83. package/lib/cjs/components/trees/common/components/TreeRenderer.d.ts +17 -0
  84. package/lib/cjs/components/trees/common/components/TreeRenderer.js +44 -0
  85. package/lib/cjs/components/trees/common/components/TreeRenderer.js.map +1 -0
  86. package/lib/cjs/components/trees/common/components/TreeRenderer.scss +62 -0
  87. package/lib/cjs/components/trees/common/components/VisibilityTree.d.ts +14 -0
  88. package/lib/cjs/components/trees/common/components/VisibilityTree.js +41 -0
  89. package/lib/cjs/components/trees/common/components/VisibilityTree.js.map +1 -0
  90. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +11 -35
  91. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js +29 -83
  92. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
  93. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +14 -14
  94. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +12 -12
  95. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
  96. package/lib/{esm/components/trees/stateless → cjs/components/trees}/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +6 -2
  97. package/lib/cjs/components/trees/{stateless/external-sources-tree → external-sources-tree}/ExternalSourcesTreeDefinition.js +55 -37
  98. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
  99. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.d.ts +11 -35
  100. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js +41 -55
  101. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
  102. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +14 -14
  103. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js +12 -12
  104. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
  105. package/lib/cjs/components/trees/{stateless/imodel-content-tree → imodel-content-tree}/IModelContentTreeDefinition.d.ts +3 -0
  106. package/lib/cjs/components/trees/{stateless/imodel-content-tree → imodel-content-tree}/IModelContentTreeDefinition.js +248 -268
  107. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
  108. package/lib/cjs/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.d.ts +26 -0
  109. package/lib/cjs/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +203 -0
  110. package/lib/cjs/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +1 -0
  111. package/lib/cjs/components/trees/index.d.ts +4 -19
  112. package/lib/cjs/components/trees/index.js +9 -31
  113. package/lib/cjs/components/trees/index.js.map +1 -1
  114. package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +17 -72
  115. package/lib/cjs/components/trees/models-tree/ModelsTree.js +196 -135
  116. package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -1
  117. package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.d.ts +1 -1
  118. package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js +40 -25
  119. package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js.map +1 -1
  120. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.d.ts +13 -12
  121. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +35 -26
  122. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  123. package/lib/{esm/components/trees/stateless → cjs/components/trees}/models-tree/ModelsTreeDefinition.d.ts +36 -4
  124. package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.js +617 -0
  125. package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -0
  126. package/lib/cjs/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.d.ts +24 -0
  127. package/lib/cjs/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js +121 -0
  128. package/lib/cjs/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +1 -0
  129. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +44 -0
  130. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeIdsCache.js +325 -0
  131. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +1 -0
  132. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeNode.d.ts +31 -0
  133. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeNode.js +40 -0
  134. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeNode.js.map +1 -0
  135. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +122 -0
  136. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +757 -0
  137. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -0
  138. package/lib/cjs/components/trees/models-tree/internal/Tooltip.d.ts +13 -0
  139. package/lib/cjs/components/trees/models-tree/internal/Tooltip.js +29 -0
  140. package/lib/cjs/components/trees/models-tree/internal/Tooltip.js.map +1 -0
  141. package/lib/cjs/components/trees/models-tree/internal/VisibilityChangeEventListener.d.ts +10 -0
  142. package/lib/cjs/components/trees/models-tree/internal/VisibilityChangeEventListener.js +43 -0
  143. package/lib/cjs/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +1 -0
  144. package/lib/cjs/tree-widget-react.d.ts +3 -4
  145. package/lib/cjs/tree-widget-react.js +8 -4
  146. package/lib/cjs/tree-widget-react.js.map +1 -1
  147. package/lib/esm/TreeWidget.d.ts +0 -1
  148. package/lib/esm/TreeWidget.js +0 -6
  149. package/lib/esm/TreeWidget.js.map +1 -1
  150. package/lib/esm/components/SelectableTree.d.ts +3 -9
  151. package/lib/esm/components/SelectableTree.js +1 -1
  152. package/lib/esm/components/SelectableTree.js.map +1 -1
  153. package/lib/esm/components/TreeSelector.d.ts +2 -2
  154. package/lib/esm/components/TreeSelector.js.map +1 -1
  155. package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +14 -25
  156. package/lib/esm/components/TreeWidgetUiItemsProvider.js +42 -44
  157. package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
  158. package/lib/esm/components/tree-header/TreeHeader.js +10 -10
  159. package/lib/esm/components/tree-header/TreeHeader.js.map +1 -1
  160. package/lib/esm/components/tree-header/TreeHeader.scss +7 -41
  161. package/lib/esm/components/trees/Tree.scss +23 -0
  162. package/lib/esm/components/trees/categories-tree/CategoriesTree.d.ts +22 -0
  163. package/lib/esm/components/trees/categories-tree/CategoriesTree.js +74 -0
  164. package/lib/esm/components/trees/categories-tree/CategoriesTree.js.map +1 -0
  165. package/lib/{cjs/components/trees/category-tree → esm/components/trees/categories-tree}/CategoriesTreeButtons.d.ts +2 -9
  166. package/lib/esm/components/trees/{category-tree → categories-tree}/CategoriesTreeButtons.js +7 -8
  167. package/lib/esm/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -0
  168. package/lib/{cjs/components/trees/category-tree → esm/components/trees/categories-tree}/CategoriesTreeComponent.d.ts +11 -12
  169. package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.js +68 -0
  170. package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -0
  171. package/lib/esm/components/trees/{stateless/categories-tree → categories-tree}/CategoriesTreeDefinition.js +7 -2
  172. package/lib/esm/components/trees/categories-tree/CategoriesTreeDefinition.js.map +1 -0
  173. package/lib/esm/components/trees/{stateless/categories-tree → categories-tree}/CategoriesVisibilityHandler.d.ts +6 -6
  174. package/lib/esm/components/trees/{stateless/categories-tree → categories-tree}/CategoriesVisibilityHandler.js +8 -8
  175. package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
  176. package/lib/esm/components/trees/categories-tree/UseCategories.d.ts +8 -0
  177. package/lib/esm/components/trees/categories-tree/UseCategories.js +18 -0
  178. package/lib/esm/components/trees/categories-tree/UseCategories.js.map +1 -0
  179. package/lib/esm/components/trees/common/CategoriesVisibilityUtils.d.ts +46 -0
  180. package/lib/esm/components/trees/{CategoriesVisibilityUtils.js → common/CategoriesVisibilityUtils.js} +51 -6
  181. package/lib/esm/components/trees/common/CategoriesVisibilityUtils.js.map +1 -0
  182. package/lib/{cjs/components/trees/stateless → esm/components/trees}/common/FocusedInstancesContext.d.ts +2 -1
  183. package/lib/esm/components/trees/common/FocusedInstancesContext.js.map +1 -0
  184. package/lib/{cjs/components/trees/stateless → esm/components/trees}/common/FocusedInstancesContextProvider.d.ts +1 -1
  185. package/lib/esm/components/trees/{stateless/common → common}/FocusedInstancesContextProvider.js +30 -6
  186. package/lib/esm/components/trees/common/FocusedInstancesContextProvider.js.map +1 -0
  187. package/lib/esm/components/trees/common/Rxjs.d.ts +10 -0
  188. package/lib/esm/components/trees/common/Rxjs.js +40 -0
  189. package/lib/esm/components/trees/common/Rxjs.js.map +1 -0
  190. package/lib/esm/components/trees/common/UseFeatureReporting.d.ts +11 -0
  191. package/lib/esm/components/trees/common/UseFeatureReporting.js +8 -0
  192. package/lib/esm/components/trees/common/UseFeatureReporting.js.map +1 -1
  193. package/lib/esm/components/trees/common/UseFiltering.d.ts +12 -0
  194. package/lib/esm/components/trees/common/UseFiltering.js +25 -0
  195. package/lib/esm/components/trees/common/UseFiltering.js.map +1 -0
  196. package/lib/{cjs/components/trees/stateless → esm/components/trees}/common/UseHierarchiesLocalization.d.ts +2 -2
  197. package/lib/esm/components/trees/common/UseHierarchiesLocalization.js +30 -0
  198. package/lib/esm/components/trees/common/UseHierarchiesLocalization.js.map +1 -0
  199. package/lib/esm/components/trees/common/UseHierarchyFiltering.d.ts +19 -0
  200. package/lib/esm/components/trees/{stateless/common → common}/UseHierarchyFiltering.js +45 -27
  201. package/lib/esm/components/trees/common/UseHierarchyFiltering.js.map +1 -0
  202. package/lib/esm/components/trees/common/UseHierarchyVisibility.d.ts +30 -0
  203. package/lib/esm/components/trees/{stateless/common → common}/UseHierarchyVisibility.js +45 -29
  204. package/lib/esm/components/trees/common/UseHierarchyVisibility.js.map +1 -0
  205. package/lib/esm/components/trees/common/UseIModelChangeListener.d.ts +9 -0
  206. package/lib/esm/components/trees/common/UseIModelChangeListener.js +16 -0
  207. package/lib/esm/components/trees/common/UseIModelChangeListener.js.map +1 -0
  208. package/lib/esm/components/trees/common/UseMultiCheckboxHandler.js +31 -0
  209. package/lib/esm/components/trees/common/UseMultiCheckboxHandler.js.map +1 -0
  210. package/lib/esm/components/trees/common/UseNodeHighlighting.d.ts +16 -0
  211. package/lib/esm/components/trees/common/UseNodeHighlighting.js +136 -0
  212. package/lib/esm/components/trees/common/UseNodeHighlighting.js.map +1 -0
  213. package/lib/esm/components/trees/common/Utils.d.ts +16 -6
  214. package/lib/esm/components/trees/common/Utils.js +33 -29
  215. package/lib/esm/components/trees/common/Utils.js.map +1 -1
  216. package/lib/esm/components/trees/common/components/BaseTree.d.ts +34 -0
  217. package/lib/esm/components/trees/common/components/BaseTree.js +74 -0
  218. package/lib/esm/components/trees/common/components/BaseTree.js.map +1 -0
  219. package/lib/esm/components/trees/common/components/Delayed.js.map +1 -0
  220. package/lib/esm/components/trees/common/components/ProgressOverlay.js.map +1 -0
  221. package/lib/esm/components/trees/common/components/TreeNodeCheckbox.d.ts +20 -0
  222. package/lib/esm/components/trees/{stateless/common/components/VisibilityTreeNodeCheckbox.js → common/components/TreeNodeCheckbox.js} +6 -5
  223. package/lib/esm/components/trees/common/components/TreeNodeCheckbox.js.map +1 -0
  224. package/lib/esm/components/trees/common/components/TreeNodeRenderer.d.ts +13 -0
  225. package/lib/esm/components/trees/common/components/TreeNodeRenderer.js +13 -0
  226. package/lib/esm/components/trees/common/components/TreeNodeRenderer.js.map +1 -0
  227. package/lib/esm/components/trees/common/components/TreeRenderer.d.ts +17 -0
  228. package/lib/esm/components/trees/common/components/TreeRenderer.js +40 -0
  229. package/lib/esm/components/trees/common/components/TreeRenderer.js.map +1 -0
  230. package/lib/esm/components/trees/common/components/TreeRenderer.scss +62 -0
  231. package/lib/esm/components/trees/common/components/VisibilityTree.d.ts +14 -0
  232. package/lib/esm/components/trees/common/components/VisibilityTree.js +37 -0
  233. package/lib/esm/components/trees/common/components/VisibilityTree.js.map +1 -0
  234. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +11 -35
  235. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js +27 -58
  236. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
  237. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +14 -14
  238. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js +12 -12
  239. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
  240. package/lib/{cjs/components/trees/stateless → esm/components/trees}/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +6 -2
  241. package/lib/esm/components/trees/{stateless/external-sources-tree → external-sources-tree}/ExternalSourcesTreeDefinition.js +55 -37
  242. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
  243. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.d.ts +11 -35
  244. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js +39 -53
  245. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
  246. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +14 -14
  247. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js +12 -12
  248. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
  249. package/lib/esm/components/trees/{stateless/imodel-content-tree → imodel-content-tree}/IModelContentTreeDefinition.d.ts +3 -0
  250. package/lib/esm/components/trees/{stateless/imodel-content-tree → imodel-content-tree}/IModelContentTreeDefinition.js +249 -269
  251. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
  252. package/lib/esm/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.d.ts +26 -0
  253. package/lib/esm/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +199 -0
  254. package/lib/esm/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +1 -0
  255. package/lib/esm/components/trees/index.d.ts +4 -19
  256. package/lib/esm/components/trees/index.js +4 -17
  257. package/lib/esm/components/trees/index.js.map +1 -1
  258. package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +17 -72
  259. package/lib/esm/components/trees/models-tree/ModelsTree.js +196 -132
  260. package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -1
  261. package/lib/esm/components/trees/models-tree/ModelsTreeButtons.d.ts +1 -1
  262. package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js +30 -15
  263. package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js.map +1 -1
  264. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.d.ts +13 -12
  265. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js +36 -27
  266. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  267. package/lib/{cjs/components/trees/stateless → esm/components/trees}/models-tree/ModelsTreeDefinition.d.ts +36 -4
  268. package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.js +613 -0
  269. package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -0
  270. package/lib/esm/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.d.ts +24 -0
  271. package/lib/esm/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js +117 -0
  272. package/lib/esm/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +1 -0
  273. package/lib/esm/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +44 -0
  274. package/lib/esm/components/trees/models-tree/internal/ModelsTreeIdsCache.js +321 -0
  275. package/lib/esm/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +1 -0
  276. package/lib/esm/components/trees/models-tree/internal/ModelsTreeNode.d.ts +31 -0
  277. package/lib/esm/components/trees/models-tree/internal/ModelsTreeNode.js +37 -0
  278. package/lib/esm/components/trees/models-tree/internal/ModelsTreeNode.js.map +1 -0
  279. package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +122 -0
  280. package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +748 -0
  281. package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -0
  282. package/lib/esm/components/trees/models-tree/internal/Tooltip.d.ts +13 -0
  283. package/lib/esm/components/trees/models-tree/internal/Tooltip.js +24 -0
  284. package/lib/esm/components/trees/models-tree/internal/Tooltip.js.map +1 -0
  285. package/lib/esm/components/trees/models-tree/internal/VisibilityChangeEventListener.d.ts +10 -0
  286. package/lib/esm/components/trees/models-tree/internal/VisibilityChangeEventListener.js +39 -0
  287. package/lib/esm/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +1 -0
  288. package/lib/esm/tree-widget-react.d.ts +3 -4
  289. package/lib/esm/tree-widget-react.js +3 -4
  290. package/lib/esm/tree-widget-react.js.map +1 -1
  291. package/lib/public/locales/en/TreeWidget.json +126 -62
  292. package/package.json +18 -11
  293. package/lib/cjs/components/TreeFilteringState.d.ts +0 -18
  294. package/lib/cjs/components/TreeFilteringState.js +0 -46
  295. package/lib/cjs/components/TreeFilteringState.js.map +0 -1
  296. package/lib/cjs/components/trees/CategoriesVisibilityUtils.d.ts +0 -25
  297. package/lib/cjs/components/trees/CategoriesVisibilityUtils.js.map +0 -1
  298. package/lib/cjs/components/trees/VisibilityTreeBase.scss +0 -82
  299. package/lib/cjs/components/trees/VisibilityTreeEventHandler.d.ts +0 -67
  300. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js +0 -158
  301. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js.map +0 -1
  302. package/lib/cjs/components/trees/VisibilityTreeRenderer.d.ts +0 -100
  303. package/lib/cjs/components/trees/VisibilityTreeRenderer.js +0 -98
  304. package/lib/cjs/components/trees/VisibilityTreeRenderer.js.map +0 -1
  305. package/lib/cjs/components/trees/category-tree/Categories.json +0 -99
  306. package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +0 -60
  307. package/lib/cjs/components/trees/category-tree/CategoriesTree.js +0 -117
  308. package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +0 -1
  309. package/lib/cjs/components/trees/category-tree/CategoriesTreeButtons.js.map +0 -1
  310. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js +0 -104
  311. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +0 -1
  312. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +0 -65
  313. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js +0 -172
  314. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +0 -1
  315. package/lib/cjs/components/trees/common/ContextMenu.d.ts +0 -39
  316. package/lib/cjs/components/trees/common/ContextMenu.js +0 -44
  317. package/lib/cjs/components/trees/common/ContextMenu.js.map +0 -1
  318. package/lib/cjs/components/trees/common/ReportingTreeEventHandler.d.ts +0 -27
  319. package/lib/cjs/components/trees/common/ReportingTreeEventHandler.js +0 -51
  320. package/lib/cjs/components/trees/common/ReportingTreeEventHandler.js.map +0 -1
  321. package/lib/cjs/components/trees/common/TreeNodeRenderer.d.ts +0 -61
  322. package/lib/cjs/components/trees/common/TreeNodeRenderer.js +0 -50
  323. package/lib/cjs/components/trees/common/TreeNodeRenderer.js.map +0 -1
  324. package/lib/cjs/components/trees/common/TreeRenderer.d.ts +0 -55
  325. package/lib/cjs/components/trees/common/TreeRenderer.js +0 -67
  326. package/lib/cjs/components/trees/common/TreeRenderer.js.map +0 -1
  327. package/lib/cjs/components/trees/common/TreeRenderer.scss +0 -149
  328. package/lib/cjs/components/trees/common/Types.d.ts +0 -57
  329. package/lib/cjs/components/trees/common/Types.js +0 -21
  330. package/lib/cjs/components/trees/common/Types.js.map +0 -1
  331. package/lib/cjs/components/trees/common/UseVisibilityTreeState.d.ts +0 -43
  332. package/lib/cjs/components/trees/common/UseVisibilityTreeState.js +0 -49
  333. package/lib/cjs/components/trees/common/UseVisibilityTreeState.js.map +0 -1
  334. package/lib/cjs/components/trees/external-sources-tree/ExternalSources.json +0 -228
  335. package/lib/cjs/components/trees/imodel-content-tree/IModelContent.json +0 -443
  336. package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.d.ts +0 -19
  337. package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.js +0 -36
  338. package/lib/cjs/components/trees/models-tree/ModelsTreeEventHandler.js.map +0 -1
  339. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.d.ts +0 -130
  340. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js +0 -651
  341. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js.map +0 -1
  342. package/lib/cjs/components/trees/models-tree/Utils.d.ts +0 -29
  343. package/lib/cjs/components/trees/models-tree/Utils.js +0 -556
  344. package/lib/cjs/components/trees/models-tree/Utils.js.map +0 -1
  345. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTree.d.ts +0 -20
  346. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTree.js +0 -61
  347. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTree.js.map +0 -1
  348. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeComponent.d.ts +0 -16
  349. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeComponent.js +0 -43
  350. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeComponent.js.map +0 -1
  351. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesTreeDefinition.js.map +0 -1
  352. package/lib/cjs/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.js.map +0 -1
  353. package/lib/cjs/components/trees/stateless/common/FocusedInstancesContext.js.map +0 -1
  354. package/lib/cjs/components/trees/stateless/common/FocusedInstancesContextProvider.js.map +0 -1
  355. package/lib/cjs/components/trees/stateless/common/UseHierarchiesLocalization.js.map +0 -1
  356. package/lib/cjs/components/trees/stateless/common/UseHierarchyFiltering.d.ts +0 -16
  357. package/lib/cjs/components/trees/stateless/common/UseHierarchyFiltering.js.map +0 -1
  358. package/lib/cjs/components/trees/stateless/common/UseHierarchyVisibility.d.ts +0 -21
  359. package/lib/cjs/components/trees/stateless/common/UseHierarchyVisibility.js.map +0 -1
  360. package/lib/cjs/components/trees/stateless/common/UseMultiCheckboxHandler.js +0 -34
  361. package/lib/cjs/components/trees/stateless/common/UseMultiCheckboxHandler.js.map +0 -1
  362. package/lib/cjs/components/trees/stateless/common/Utils.d.ts +0 -3
  363. package/lib/cjs/components/trees/stateless/common/Utils.js +0 -23
  364. package/lib/cjs/components/trees/stateless/common/Utils.js.map +0 -1
  365. package/lib/cjs/components/trees/stateless/common/components/Delayed.js.map +0 -1
  366. package/lib/cjs/components/trees/stateless/common/components/FilterableTree.d.ts +0 -23
  367. package/lib/cjs/components/trees/stateless/common/components/FilterableTree.js +0 -66
  368. package/lib/cjs/components/trees/stateless/common/components/FilterableTree.js.map +0 -1
  369. package/lib/cjs/components/trees/stateless/common/components/ProgressOverlay.js.map +0 -1
  370. package/lib/cjs/components/trees/stateless/common/components/VisibilityTree.d.ts +0 -26
  371. package/lib/cjs/components/trees/stateless/common/components/VisibilityTree.js +0 -68
  372. package/lib/cjs/components/trees/stateless/common/components/VisibilityTree.js.map +0 -1
  373. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.d.ts +0 -12
  374. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.js.map +0 -1
  375. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.d.ts +0 -10
  376. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.js.map +0 -1
  377. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.d.ts +0 -16
  378. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.js +0 -23
  379. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.js.map +0 -1
  380. package/lib/cjs/components/trees/stateless/common/components/VisibilityTreeRenderer.scss +0 -41
  381. package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTree.d.ts +0 -13
  382. package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js +0 -40
  383. package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js.map +0 -1
  384. package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.d.ts +0 -14
  385. package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js +0 -25
  386. package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js.map +0 -1
  387. package/lib/cjs/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.js.map +0 -1
  388. package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTree.d.ts +0 -13
  389. package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTree.js +0 -48
  390. package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTree.js.map +0 -1
  391. package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.d.ts +0 -14
  392. package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js +0 -25
  393. package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js.map +0 -1
  394. package/lib/cjs/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.js.map +0 -1
  395. package/lib/cjs/components/trees/stateless/index.d.ts +0 -5
  396. package/lib/cjs/components/trees/stateless/index.js +0 -16
  397. package/lib/cjs/components/trees/stateless/index.js.map +0 -1
  398. package/lib/cjs/components/trees/stateless/models-tree/ModelsTree.d.ts +0 -16
  399. package/lib/cjs/components/trees/stateless/models-tree/ModelsTree.js +0 -77
  400. package/lib/cjs/components/trees/stateless/models-tree/ModelsTree.js.map +0 -1
  401. package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeComponent.d.ts +0 -17
  402. package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeComponent.js +0 -55
  403. package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeComponent.js.map +0 -1
  404. package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeDefinition.js +0 -856
  405. package/lib/cjs/components/trees/stateless/models-tree/ModelsTreeDefinition.js.map +0 -1
  406. package/lib/cjs/components/trees/stateless/models-tree/ModelsVisibilityHandler.d.ts +0 -48
  407. package/lib/cjs/components/trees/stateless/models-tree/ModelsVisibilityHandler.js +0 -470
  408. package/lib/cjs/components/trees/stateless/models-tree/ModelsVisibilityHandler.js.map +0 -1
  409. package/lib/cjs/components/utils/UseTreeTransientState.d.ts +0 -19
  410. package/lib/cjs/components/utils/UseTreeTransientState.js +0 -33
  411. package/lib/cjs/components/utils/UseTreeTransientState.js.map +0 -1
  412. package/lib/esm/components/TreeFilteringState.d.ts +0 -18
  413. package/lib/esm/components/TreeFilteringState.js +0 -42
  414. package/lib/esm/components/TreeFilteringState.js.map +0 -1
  415. package/lib/esm/components/trees/CategoriesVisibilityUtils.d.ts +0 -25
  416. package/lib/esm/components/trees/CategoriesVisibilityUtils.js.map +0 -1
  417. package/lib/esm/components/trees/VisibilityTreeBase.scss +0 -82
  418. package/lib/esm/components/trees/VisibilityTreeEventHandler.d.ts +0 -67
  419. package/lib/esm/components/trees/VisibilityTreeEventHandler.js +0 -154
  420. package/lib/esm/components/trees/VisibilityTreeEventHandler.js.map +0 -1
  421. package/lib/esm/components/trees/VisibilityTreeRenderer.d.ts +0 -100
  422. package/lib/esm/components/trees/VisibilityTreeRenderer.js +0 -86
  423. package/lib/esm/components/trees/VisibilityTreeRenderer.js.map +0 -1
  424. package/lib/esm/components/trees/category-tree/Categories.json +0 -99
  425. package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +0 -60
  426. package/lib/esm/components/trees/category-tree/CategoriesTree.js +0 -110
  427. package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +0 -1
  428. package/lib/esm/components/trees/category-tree/CategoriesTreeButtons.js.map +0 -1
  429. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js +0 -97
  430. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +0 -1
  431. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +0 -65
  432. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js +0 -164
  433. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +0 -1
  434. package/lib/esm/components/trees/common/ContextMenu.d.ts +0 -39
  435. package/lib/esm/components/trees/common/ContextMenu.js +0 -39
  436. package/lib/esm/components/trees/common/ContextMenu.js.map +0 -1
  437. package/lib/esm/components/trees/common/ReportingTreeEventHandler.d.ts +0 -27
  438. package/lib/esm/components/trees/common/ReportingTreeEventHandler.js +0 -47
  439. package/lib/esm/components/trees/common/ReportingTreeEventHandler.js.map +0 -1
  440. package/lib/esm/components/trees/common/TreeNodeRenderer.d.ts +0 -61
  441. package/lib/esm/components/trees/common/TreeNodeRenderer.js +0 -44
  442. package/lib/esm/components/trees/common/TreeNodeRenderer.js.map +0 -1
  443. package/lib/esm/components/trees/common/TreeRenderer.d.ts +0 -55
  444. package/lib/esm/components/trees/common/TreeRenderer.js +0 -59
  445. package/lib/esm/components/trees/common/TreeRenderer.js.map +0 -1
  446. package/lib/esm/components/trees/common/TreeRenderer.scss +0 -149
  447. package/lib/esm/components/trees/common/Types.d.ts +0 -57
  448. package/lib/esm/components/trees/common/Types.js +0 -18
  449. package/lib/esm/components/trees/common/Types.js.map +0 -1
  450. package/lib/esm/components/trees/common/UseVisibilityTreeState.d.ts +0 -43
  451. package/lib/esm/components/trees/common/UseVisibilityTreeState.js +0 -45
  452. package/lib/esm/components/trees/common/UseVisibilityTreeState.js.map +0 -1
  453. package/lib/esm/components/trees/external-sources-tree/ExternalSources.json +0 -228
  454. package/lib/esm/components/trees/imodel-content-tree/IModelContent.json +0 -443
  455. package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.d.ts +0 -19
  456. package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.js +0 -32
  457. package/lib/esm/components/trees/models-tree/ModelsTreeEventHandler.js.map +0 -1
  458. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.d.ts +0 -130
  459. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js +0 -641
  460. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js.map +0 -1
  461. package/lib/esm/components/trees/models-tree/Utils.d.ts +0 -29
  462. package/lib/esm/components/trees/models-tree/Utils.js +0 -548
  463. package/lib/esm/components/trees/models-tree/Utils.js.map +0 -1
  464. package/lib/esm/components/trees/stateless/categories-tree/CategoriesTree.d.ts +0 -20
  465. package/lib/esm/components/trees/stateless/categories-tree/CategoriesTree.js +0 -57
  466. package/lib/esm/components/trees/stateless/categories-tree/CategoriesTree.js.map +0 -1
  467. package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeComponent.d.ts +0 -16
  468. package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeComponent.js +0 -39
  469. package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeComponent.js.map +0 -1
  470. package/lib/esm/components/trees/stateless/categories-tree/CategoriesTreeDefinition.js.map +0 -1
  471. package/lib/esm/components/trees/stateless/categories-tree/CategoriesVisibilityHandler.js.map +0 -1
  472. package/lib/esm/components/trees/stateless/common/FocusedInstancesContext.js.map +0 -1
  473. package/lib/esm/components/trees/stateless/common/FocusedInstancesContextProvider.js.map +0 -1
  474. package/lib/esm/components/trees/stateless/common/UseHierarchiesLocalization.js +0 -29
  475. package/lib/esm/components/trees/stateless/common/UseHierarchiesLocalization.js.map +0 -1
  476. package/lib/esm/components/trees/stateless/common/UseHierarchyFiltering.d.ts +0 -16
  477. package/lib/esm/components/trees/stateless/common/UseHierarchyFiltering.js.map +0 -1
  478. package/lib/esm/components/trees/stateless/common/UseHierarchyVisibility.d.ts +0 -21
  479. package/lib/esm/components/trees/stateless/common/UseHierarchyVisibility.js.map +0 -1
  480. package/lib/esm/components/trees/stateless/common/UseMultiCheckboxHandler.js +0 -30
  481. package/lib/esm/components/trees/stateless/common/UseMultiCheckboxHandler.js.map +0 -1
  482. package/lib/esm/components/trees/stateless/common/Utils.d.ts +0 -3
  483. package/lib/esm/components/trees/stateless/common/Utils.js +0 -19
  484. package/lib/esm/components/trees/stateless/common/Utils.js.map +0 -1
  485. package/lib/esm/components/trees/stateless/common/components/Delayed.js.map +0 -1
  486. package/lib/esm/components/trees/stateless/common/components/FilterableTree.d.ts +0 -23
  487. package/lib/esm/components/trees/stateless/common/components/FilterableTree.js +0 -62
  488. package/lib/esm/components/trees/stateless/common/components/FilterableTree.js.map +0 -1
  489. package/lib/esm/components/trees/stateless/common/components/ProgressOverlay.js.map +0 -1
  490. package/lib/esm/components/trees/stateless/common/components/VisibilityTree.d.ts +0 -26
  491. package/lib/esm/components/trees/stateless/common/components/VisibilityTree.js +0 -64
  492. package/lib/esm/components/trees/stateless/common/components/VisibilityTree.js.map +0 -1
  493. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.d.ts +0 -12
  494. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeCheckbox.js.map +0 -1
  495. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.d.ts +0 -10
  496. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.js +0 -13
  497. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeNodeRenderer.js.map +0 -1
  498. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.d.ts +0 -16
  499. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.js +0 -19
  500. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.js.map +0 -1
  501. package/lib/esm/components/trees/stateless/common/components/VisibilityTreeRenderer.scss +0 -41
  502. package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTree.d.ts +0 -13
  503. package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js +0 -36
  504. package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTree.js.map +0 -1
  505. package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.d.ts +0 -14
  506. package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js +0 -21
  507. package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeComponent.js.map +0 -1
  508. package/lib/esm/components/trees/stateless/external-sources-tree/ExternalSourcesTreeDefinition.js.map +0 -1
  509. package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTree.d.ts +0 -13
  510. package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTree.js +0 -44
  511. package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTree.js.map +0 -1
  512. package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.d.ts +0 -14
  513. package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js +0 -21
  514. package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeComponent.js.map +0 -1
  515. package/lib/esm/components/trees/stateless/imodel-content-tree/IModelContentTreeDefinition.js.map +0 -1
  516. package/lib/esm/components/trees/stateless/index.d.ts +0 -5
  517. package/lib/esm/components/trees/stateless/index.js +0 -9
  518. package/lib/esm/components/trees/stateless/index.js.map +0 -1
  519. package/lib/esm/components/trees/stateless/models-tree/ModelsTree.d.ts +0 -16
  520. package/lib/esm/components/trees/stateless/models-tree/ModelsTree.js +0 -73
  521. package/lib/esm/components/trees/stateless/models-tree/ModelsTree.js.map +0 -1
  522. package/lib/esm/components/trees/stateless/models-tree/ModelsTreeComponent.d.ts +0 -17
  523. package/lib/esm/components/trees/stateless/models-tree/ModelsTreeComponent.js +0 -51
  524. package/lib/esm/components/trees/stateless/models-tree/ModelsTreeComponent.js.map +0 -1
  525. package/lib/esm/components/trees/stateless/models-tree/ModelsTreeDefinition.js +0 -852
  526. package/lib/esm/components/trees/stateless/models-tree/ModelsTreeDefinition.js.map +0 -1
  527. package/lib/esm/components/trees/stateless/models-tree/ModelsVisibilityHandler.d.ts +0 -48
  528. package/lib/esm/components/trees/stateless/models-tree/ModelsVisibilityHandler.js +0 -466
  529. package/lib/esm/components/trees/stateless/models-tree/ModelsVisibilityHandler.js.map +0 -1
  530. package/lib/esm/components/utils/UseTreeTransientState.d.ts +0 -19
  531. package/lib/esm/components/utils/UseTreeTransientState.js +0 -29
  532. package/lib/esm/components/utils/UseTreeTransientState.js.map +0 -1
  533. /package/lib/cjs/components/trees/{stateless/categories-tree → categories-tree}/CategoriesTreeDefinition.d.ts +0 -0
  534. /package/lib/cjs/components/trees/{stateless/common → common}/FocusedInstancesContext.js +0 -0
  535. /package/lib/cjs/components/trees/{stateless/common → common}/UseMultiCheckboxHandler.d.ts +0 -0
  536. /package/lib/cjs/components/trees/{stateless/common → common}/components/Delayed.d.ts +0 -0
  537. /package/lib/cjs/components/trees/{stateless/common → common}/components/Delayed.js +0 -0
  538. /package/lib/cjs/components/trees/{stateless/common → common}/components/ProgressOverlay.d.ts +0 -0
  539. /package/lib/cjs/components/trees/{stateless/common → common}/components/ProgressOverlay.js +0 -0
  540. /package/lib/cjs/components/trees/{stateless/common → common}/components/ProgressOverlay.scss +0 -0
  541. /package/lib/esm/components/trees/{stateless/categories-tree → categories-tree}/CategoriesTreeDefinition.d.ts +0 -0
  542. /package/lib/esm/components/trees/{stateless/common → common}/FocusedInstancesContext.js +0 -0
  543. /package/lib/esm/components/trees/{stateless/common → common}/UseMultiCheckboxHandler.d.ts +0 -0
  544. /package/lib/esm/components/trees/{stateless/common → common}/components/Delayed.d.ts +0 -0
  545. /package/lib/esm/components/trees/{stateless/common → common}/components/Delayed.js +0 -0
  546. /package/lib/esm/components/trees/{stateless/common → common}/components/ProgressOverlay.d.ts +0 -0
  547. /package/lib/esm/components/trees/{stateless/common → common}/components/ProgressOverlay.js +0 -0
  548. /package/lib/esm/components/trees/{stateless/common → common}/components/ProgressOverlay.scss +0 -0
@@ -10,6 +10,7 @@ const presentation_shared_1 = require("@itwin/presentation-shared");
10
10
  const Utils_1 = require("../common/Utils");
11
11
  class IModelContentTreeDefinition {
12
12
  constructor(props) {
13
+ this._idsCache = props.idsCache;
13
14
  this._impl = (0, presentation_hierarchies_1.createClassBasedHierarchyDefinition)({
14
15
  classHierarchyInspector: props.imodelAccess,
15
16
  hierarchy: {
@@ -41,6 +42,7 @@ class IModelContentTreeDefinition {
41
42
  },
42
43
  {
43
44
  parentNodeClassName: "BisCore.Model",
45
+ onlyIfNotHandled: true,
44
46
  definitions: async (requestProps) => this.createModelChildrenQuery(requestProps),
45
47
  },
46
48
  {
@@ -57,6 +59,7 @@ class IModelContentTreeDefinition {
57
59
  },
58
60
  {
59
61
  parentNodeClassName: "BisCore.Element",
62
+ onlyIfNotHandled: true,
60
63
  definitions: async (requestProps) => this.createElementChildrenQuery(requestProps),
61
64
  },
62
65
  ],
@@ -97,7 +100,6 @@ class IModelContentTreeDefinition {
97
100
  },
98
101
  extendedData: {
99
102
  imageId: "icon-imodel-hollow-2",
100
- isSubject: true,
101
103
  },
102
104
  autoExpand: true,
103
105
  supportsFiltering: true,
@@ -113,93 +115,66 @@ class IModelContentTreeDefinition {
113
115
  ];
114
116
  }
115
117
  async createSubjectChildrenQuery({ parentNodeInstanceIds: subjectIds, instanceFilter, }) {
116
- const selectColumnNames = Object.values(presentation_hierarchies_1.NodeSelectClauseColumnNames).join(", ");
117
- const subjectFilterClauses = await this._selectQueryFactory.createFilterClauses({
118
- filter: instanceFilter,
119
- contentClass: { fullName: "BisCore.Subject", alias: "this" },
120
- });
121
- const modelFilterClauses = await this._selectQueryFactory.createFilterClauses({
122
- filter: instanceFilter,
123
- contentClass: { fullName: "BisCore.Model", alias: "this" },
124
- });
125
- const ctes = [
126
- `
127
- subjects(${selectColumnNames}, ParentId) AS (
128
- SELECT
129
- ${await this._selectQueryFactory.createSelectClause({
130
- ecClassId: { selector: "this.ECClassId" },
131
- ecInstanceId: { selector: "this.ECInstanceId" },
132
- nodeLabel: {
133
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
134
- classAlias: "this",
135
- className: "BisCore.Subject",
136
- }),
137
- },
138
- hideNodeInHierarchy: {
139
- selector: `
140
- CASE
141
- WHEN (
142
- json_extract(this.JsonProperties, '$.Subject.Job.Bridge') IS NOT NULL
143
- OR json_extract(this.JsonProperties, '$.Subject.Model.Type') = 'Hierarchy'
144
- ) THEN 1
145
- ELSE 0
146
- END
147
- `,
148
- },
149
- extendedData: {
150
- imageId: "icon-folder",
151
- isSubject: true,
152
- },
153
- supportsFiltering: true,
154
- })},
155
- this.Parent.Id
156
- FROM BisCore.Subject this
157
- )
158
- `,
159
- `
160
- child_subjects(${selectColumnNames}, ParentId, RootId) AS (
161
- SELECT *, s.ParentId RootId FROM subjects s
162
- UNION ALL
163
- SELECT s.*, p.RootId
164
- FROM child_subjects p
165
- JOIN subjects s ON s.ParentId = p.ECInstanceId
166
- WHERE p.${presentation_hierarchies_1.NodeSelectClauseColumnNames.HideNodeInHierarchy} = 1
167
- )
168
- `,
169
- ];
170
- return [
171
- {
118
+ const [subjectFilterClauses, modelFilterClauses] = await Promise.all([
119
+ this._selectQueryFactory.createFilterClauses({
120
+ filter: instanceFilter,
121
+ contentClass: { fullName: "BisCore.Subject", alias: "this" },
122
+ }),
123
+ this._selectQueryFactory.createFilterClauses({
124
+ filter: instanceFilter,
125
+ contentClass: { fullName: "BisCore.Model", alias: "this" },
126
+ }),
127
+ ]);
128
+ const [childSubjectIds, childModelIds] = await Promise.all([
129
+ this._idsCache.getChildSubjectIds(subjectIds),
130
+ this._idsCache.getChildSubjectModelIds(subjectIds),
131
+ ]);
132
+ const defs = new Array();
133
+ childSubjectIds.length &&
134
+ defs.push({
172
135
  fullClassName: "BisCore.Subject",
173
136
  query: {
174
- ctes,
175
137
  ecsql: `
176
138
  SELECT
177
- ${Object.values(presentation_hierarchies_1.NodeSelectClauseColumnNames)
178
- .map((name) => `cs.${name} AS ${name}`)
179
- .join(", ")},
180
- ParentId
181
- FROM child_subjects cs
182
- JOIN ${subjectFilterClauses.from} this ON this.ECInstanceId = cs.ECInstanceId
139
+ ${await this._selectQueryFactory.createSelectClause({
140
+ ecClassId: { selector: "this.ECClassId" },
141
+ ecInstanceId: { selector: "this.ECInstanceId" },
142
+ nodeLabel: {
143
+ selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
144
+ classAlias: "this",
145
+ className: "BisCore.Subject",
146
+ }),
147
+ },
148
+ hasChildren: { selector: `InVirtualSet(?, this.ECInstanceId)` },
149
+ grouping: { byLabel: { action: "merge", groupId: "subject" } },
150
+ extendedData: {
151
+ imageId: "icon-folder",
152
+ },
153
+ supportsFiltering: true,
154
+ })}
155
+ FROM ${subjectFilterClauses.from} this
183
156
  ${subjectFilterClauses.joins}
184
157
  WHERE
185
- cs.RootId IN (${subjectIds.map(() => "?").join(",")})
186
- AND NOT cs.${presentation_hierarchies_1.NodeSelectClauseColumnNames.HideNodeInHierarchy}
158
+ this.ECInstanceId IN (${childSubjectIds.map(() => "?").join(",")})
187
159
  ${subjectFilterClauses.where ? `AND ${subjectFilterClauses.where}` : ""}
188
160
  `,
189
- bindings: [...subjectIds.map((id) => ({ type: "id", value: id }))],
161
+ bindings: [
162
+ { type: "idset", value: await this._idsCache.getParentSubjectIds() },
163
+ ...childSubjectIds.map((id) => ({ type: "id", value: id })),
164
+ ],
190
165
  },
191
- },
192
- {
166
+ });
167
+ childModelIds.length &&
168
+ defs.push({
193
169
  fullClassName: "BisCore.Model",
194
170
  query: {
195
- ctes,
196
171
  ecsql: `
197
- SELECT childModel.ECInstanceId AS ECInstanceId, childModel.*
172
+ SELECT model.ECInstanceId AS ECInstanceId, model.*
198
173
  FROM (
199
174
  SELECT
200
175
  ${await this._selectQueryFactory.createSelectClause({
201
- ecClassId: { selector: "model.ECClassId" },
202
- ecInstanceId: { selector: "model.ECInstanceId" },
176
+ ecClassId: { selector: "m.ECClassId" },
177
+ ecInstanceId: { selector: "m.ECInstanceId" },
203
178
  nodeLabel: {
204
179
  selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
205
180
  classAlias: "partition",
@@ -222,31 +197,19 @@ class IModelContentTreeDefinition {
222
197
  },
223
198
  supportsFiltering: true,
224
199
  })}
225
- FROM BisCore.Model model
226
- JOIN bis.InformationPartitionElement [partition] ON [partition].ECInstanceId = model.ModeledElement.Id
227
- JOIN bis.Subject [subject] ON [subject].ECInstanceId = [partition].Parent.Id OR json_extract([subject].JsonProperties,'$.Subject.Model.TargetPartition') = printf('0x%x', [partition].ECInstanceId)
200
+ FROM BisCore.Model m
201
+ JOIN BisCore.InformationPartitionElement [partition] ON [partition].ECInstanceId = m.ModeledElement.Id
228
202
  WHERE
229
- NOT model.IsPrivate
230
- AND (
231
- [subject].ECInstanceId IN (${subjectIds.map(() => "?").join(",")})
232
- OR [subject].ECInstanceId IN (
233
- SELECT s.ECInstanceId
234
- FROM child_subjects s
235
- WHERE s.RootId IN (${subjectIds.map(() => "?").join(",")}) AND s.${presentation_hierarchies_1.NodeSelectClauseColumnNames.HideNodeInHierarchy}
236
- )
237
- )
238
- ) childModel
239
- JOIN ${modelFilterClauses.from} this ON this.ECInstanceId = childModel.ECInstanceId
203
+ m.ECInstanceId IN (${childModelIds.map(() => "?").join(",")})
204
+ ) model
205
+ JOIN ${modelFilterClauses.from} this ON this.ECInstanceId = model.ECInstanceId
240
206
  ${modelFilterClauses.joins}
241
- ${modelFilterClauses.where ? `AND (childModel.${presentation_hierarchies_1.NodeSelectClauseColumnNames.HideNodeInHierarchy} OR ${modelFilterClauses.where})` : ""}
207
+ ${modelFilterClauses.where ? `WHERE (model.${presentation_hierarchies_1.NodeSelectClauseColumnNames.HideNodeInHierarchy} OR ${modelFilterClauses.where})` : ""}
242
208
  `,
243
- bindings: [
244
- ...subjectIds.map((id) => ({ type: "id", value: id })),
245
- ...subjectIds.map((id) => ({ type: "id", value: id })),
246
- ],
209
+ bindings: childModelIds.map((id) => ({ type: "id", value: id })),
247
210
  },
248
- },
249
- ];
211
+ });
212
+ return defs;
250
213
  }
251
214
  async createISubModeledElementChildrenQuery({ parentNodeInstanceIds: elementIds, }) {
252
215
  // note: we do not apply hierarchy level filtering on this hierarchy level, because it's always
@@ -274,7 +237,8 @@ class IModelContentTreeDefinition {
274
237
  ];
275
238
  }
276
239
  async createGeometricModelChildrenQuery({ parentNodeInstanceIds: modelIds, instanceFilter, viewType, }) {
277
- const { categoryClass, elementClass } = getClassNameByViewType(viewType);
240
+ const childCategoryIds = await this._idsCache.getModelCategories(modelIds);
241
+ const { categoryClass } = getClassNameByViewType(viewType);
278
242
  const categoryFilterClauses = await this._selectQueryFactory.createFilterClauses({
279
243
  filter: instanceFilter,
280
244
  contentClass: { fullName: categoryClass, alias: "this" },
@@ -283,8 +247,9 @@ class IModelContentTreeDefinition {
283
247
  filter: instanceFilter,
284
248
  contentClass: { fullName: "BisCore.InformationContentElement", alias: "this" },
285
249
  });
286
- return [
287
- {
250
+ const defs = new Array();
251
+ childCategoryIds.length &&
252
+ defs.push({
288
253
  fullClassName: categoryClass,
289
254
  query: {
290
255
  ecsql: `
@@ -298,82 +263,74 @@ class IModelContentTreeDefinition {
298
263
  className: categoryClass,
299
264
  }),
300
265
  },
301
- hasChildren: true,
302
266
  grouping: { byLabel: { action: "merge", groupId: "category" } },
303
267
  extendedData: {
304
268
  imageId: "icon-layers",
305
269
  modelIds: { selector: (0, Utils_1.createIdsSelector)(modelIds) },
306
- isCategory: true,
307
270
  },
271
+ hasChildren: true,
308
272
  supportsFiltering: true,
309
273
  })}
310
274
  FROM ${categoryFilterClauses.from} this
311
- JOIN ${elementClass} e ON e.Category.Id = this.ECInstanceId
312
275
  ${categoryFilterClauses.joins}
313
276
  WHERE
314
- e.Model.Id IN (${modelIds.map(() => "?").join(",")})
277
+ this.ECInstanceId IN (${childCategoryIds.map(() => "?").join(",")})
315
278
  ${categoryFilterClauses.where ? `AND ${categoryFilterClauses.where}` : ""}
316
279
  `,
317
- bindings: modelIds.map((id) => ({ type: "id", value: id })),
280
+ bindings: childCategoryIds.map((id) => ({ type: "id", value: id })),
318
281
  },
319
- },
320
- {
321
- fullClassName: "BisCore.InformationContentElement",
322
- query: {
323
- ecsql: `
282
+ });
283
+ defs.push({
284
+ fullClassName: "BisCore.InformationContentElement",
285
+ query: {
286
+ ecsql: `
324
287
  SELECT
325
288
  ${await this._selectQueryFactory.createSelectClause({
326
- ecClassId: { selector: "this.ECClassId" },
327
- ecInstanceId: { selector: "this.ECInstanceId" },
328
- nodeLabel: {
329
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
330
- classAlias: "this",
331
- className: "BisCore.InformationContentElement",
332
- }),
333
- },
334
- extendedData: {
335
- isInformationElement: true,
336
- },
337
- hasChildren: true,
338
- grouping: {
339
- byClass: true,
340
- },
341
- supportsFiltering: true,
342
- })}
289
+ ecClassId: { selector: "this.ECClassId" },
290
+ ecInstanceId: { selector: "this.ECInstanceId" },
291
+ nodeLabel: {
292
+ selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
293
+ classAlias: "this",
294
+ className: "BisCore.InformationContentElement",
295
+ }),
296
+ },
297
+ hasChildren: true,
298
+ grouping: {
299
+ byClass: true,
300
+ },
301
+ supportsFiltering: true,
302
+ })}
343
303
  FROM ${informationContentElementFilterClauses.from} this
344
304
  ${informationContentElementFilterClauses.joins}
345
305
  WHERE
346
306
  this.Model.Id IN (${modelIds.map(() => "?").join(",")})
347
307
  ${informationContentElementFilterClauses.where ? `AND ${informationContentElementFilterClauses.where}` : ""}
348
308
  `,
349
- bindings: modelIds.map((id) => ({ type: "id", value: id })),
350
- },
309
+ bindings: modelIds.map((id) => ({ type: "id", value: id })),
351
310
  },
352
- ];
311
+ });
312
+ return defs;
353
313
  }
354
- async createCategoryChildrenQuery({ parentNodeInstanceIds: categoryIds, parentNode, instanceFilter, viewType, }) {
314
+ async createCategoryChildrenQuery(props) {
315
+ const { parentNodeInstanceIds: categoryIds, parentNode, instanceFilter, viewType } = props;
316
+ const modelIds = (0, Utils_1.parseIdsSelectorResult)(parentNode.extendedData?.modelIds);
355
317
  // We only want to handle a category added as a child of `GeometricModel2d` or `GeometricModel3d`.
356
- if (!parentNode.extendedData?.isCategory) {
357
- return [];
358
- }
359
- const { elementClass, modelClass } = getClassNameByViewType(viewType);
360
- const modelIds = parentNode.extendedData && parentNode.extendedData.hasOwnProperty("modelIds") && Array.isArray(parentNode.extendedData.modelIds)
361
- ? parentNode.extendedData.modelIds.reduce((arr, ids) => [...arr, ...(Array.isArray(ids) ? ids : [ids])], new Array())
362
- : [];
318
+ // ModelIds is not empty only if parent node is a geometric model.
363
319
  if (modelIds.length === 0) {
364
- throw new Error(`Invalid category node "${parentNode.label}" - missing model information.`);
320
+ return this.createElementChildrenQuery(props);
365
321
  }
366
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
367
- filter: instanceFilter,
368
- contentClass: { fullName: elementClass, alias: "this" },
369
- });
370
- return [
371
- {
322
+ const { elementClass, modelClass } = getClassNameByViewType(viewType);
323
+ return Promise.all(getElementsSelectProps({ modelClass, elementClass }).map(async ({ selectProps, whereClause }) => {
324
+ const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
325
+ filter: instanceFilter,
326
+ contentClass: { fullName: elementClass, alias: "this" },
327
+ });
328
+ return {
372
329
  fullClassName: elementClass,
373
330
  query: {
374
331
  ecsql: `
375
- SELECT
376
- ${await this._selectQueryFactory.createSelectClause({
332
+ SELECT
333
+ ${await this._selectQueryFactory.createSelectClause({
377
334
  ecClassId: { selector: "this.ECClassId" },
378
335
  ecInstanceId: { selector: "this.ECInstanceId" },
379
336
  nodeLabel: {
@@ -382,49 +339,37 @@ class IModelContentTreeDefinition {
382
339
  className: elementClass,
383
340
  }),
384
341
  },
385
- hasChildren: {
386
- selector: `
387
- IFNULL((
388
- SELECT 1
389
- FROM (
390
- SELECT Parent.Id ParentId FROM ${elementClass}
391
- UNION ALL
392
- SELECT ModeledElement.Id ParentId FROM ${modelClass}
393
- )
394
- WHERE ParentId = this.ECInstanceId
395
- LIMIT 1
396
- ), 0)
397
- `,
398
- },
399
342
  grouping: {
400
343
  byClass: true,
401
344
  },
402
345
  extendedData: {
403
346
  imageId: "icon-item",
404
347
  },
405
- supportsFiltering: true,
348
+ hasChildren: selectProps.hasChildren,
349
+ supportsFiltering: selectProps.supportsFiltering,
406
350
  })}
407
- FROM ${instanceFilterClauses.from} this
408
- ${instanceFilterClauses.joins}
409
- WHERE
410
- this.Category.Id IN (${categoryIds.map(() => "?").join(",")})
411
- AND this.Model.Id IN (${modelIds.map(() => "?").join(",")})
412
- AND this.Parent IS NULL
413
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
414
- `,
351
+ FROM ${instanceFilterClauses.from} this
352
+ ${instanceFilterClauses.joins}
353
+ WHERE
354
+ this.Category.Id IN (${categoryIds.map(() => "?").join(",")})
355
+ AND this.Model.Id IN (${modelIds.map(() => "?").join(",")})
356
+ AND this.Parent IS NULL
357
+ ${whereClause ? `AND ${whereClause}` : ""}
358
+ ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
359
+ `,
415
360
  bindings: [...categoryIds.map((id) => ({ type: "id", value: id })), ...modelIds.map((id) => ({ type: "id", value: id }))],
416
361
  },
417
- },
418
- ];
362
+ };
363
+ }));
419
364
  }
420
365
  async createModelChildrenQuery({ parentNodeInstanceIds: modelIds, instanceFilter, }) {
421
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
422
- filter: instanceFilter,
423
- contentClass: { fullName: "BisCore.Element", alias: "this" },
424
- });
425
- return [
426
- {
427
- fullClassName: "BisCore.Element",
366
+ return Promise.all(getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {
367
+ const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
368
+ filter: instanceFilter,
369
+ contentClass: { fullName: classFullName, alias: "this" },
370
+ });
371
+ return {
372
+ fullClassName: classFullName,
428
373
  query: {
429
374
  ecsql: `
430
375
  SELECT
@@ -434,43 +379,30 @@ class IModelContentTreeDefinition {
434
379
  nodeLabel: {
435
380
  selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
436
381
  classAlias: "this",
437
- className: "BisCore.Element",
382
+ className: classFullName,
438
383
  }),
439
384
  },
440
- hasChildren: {
441
- selector: `
442
- IFNULL((
443
- SELECT 1
444
- FROM (
445
- SELECT Parent.Id ParentId FROM BisCore.Element
446
- UNION ALL
447
- SELECT ModeledElement.Id ParentId FROM BisCore.Model
448
- )
449
- WHERE ParentId = this.ECInstanceId
450
- LIMIT 1
451
- ), 0)
452
- `,
453
- },
454
385
  grouping: {
455
386
  byClass: true,
456
387
  },
457
388
  extendedData: {
458
389
  imageId: "icon-item",
459
390
  },
460
- supportsFiltering: true,
391
+ hasChildren: selectProps?.hasChildren,
392
+ supportsFiltering: selectProps?.supportsFiltering,
461
393
  })}
462
394
  FROM ${instanceFilterClauses.from} this
463
- JOIN BisCore.Model m ON m.ECInstanceId = this.Model.id
464
395
  ${instanceFilterClauses.joins}
465
396
  WHERE
466
- m.ECClassId IS NOT (BisCore.GeometricModel) AND
467
- this.Parent IS NULL AND this.Model.Id IN (${modelIds.map(() => "?").join(",")})
397
+ this.Parent IS NULL
398
+ AND this.Model.Id IN (${modelIds.map(() => "?").join(",")})
399
+ ${whereClause ? `AND ${whereClause}` : ""}
468
400
  ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
469
401
  `,
470
402
  bindings: modelIds.map((id) => ({ type: "id", value: id })),
471
403
  },
472
- },
473
- ];
404
+ };
405
+ }));
474
406
  }
475
407
  async createGroupInformationElementChildElementsQuery({ parentNodeInstanceIds: groupIds, }) {
476
408
  return [
@@ -506,127 +438,124 @@ class IModelContentTreeDefinition {
506
438
  }
507
439
  async createChildrenNodeChildrenQuery({ parentNode, instanceFilter }) {
508
440
  const groupIds = parentNode.extendedData?.groupIds;
509
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
510
- filter: instanceFilter,
511
- contentClass: { fullName: "BisCore.Element", alias: "this" },
512
- });
513
- return [
514
- {
515
- fullClassName: "BisCore.Element",
441
+ return Promise.all(getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {
442
+ const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
443
+ filter: instanceFilter,
444
+ contentClass: { fullName: classFullName, alias: "this" },
445
+ });
446
+ return {
447
+ fullClassName: classFullName,
516
448
  query: {
517
449
  ecsql: `
518
- SELECT
519
- ${await this._selectQueryFactory.createSelectClause({
450
+ SELECT
451
+ ${await this._selectQueryFactory.createSelectClause({
520
452
  ecClassId: { selector: "this.ECClassId" },
521
453
  ecInstanceId: { selector: "this.ECInstanceId" },
522
454
  nodeLabel: {
523
455
  selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
524
456
  classAlias: "this",
525
- className: "BisCore.Element",
457
+ className: classFullName,
526
458
  }),
527
459
  },
528
460
  extendedData: {
529
461
  imageId: "icon-item",
530
462
  },
531
463
  grouping: { byClass: true },
532
- hasChildren: false,
533
- supportsFiltering: true,
464
+ hasChildren: selectProps.hasChildren,
465
+ supportsFiltering: selectProps.supportsFiltering,
534
466
  })}
535
- FROM ${instanceFilterClauses.from} this
536
- ${instanceFilterClauses.joins}
537
- WHERE
538
- this.Parent.Id IN (${groupIds.map(() => "?").join(",")})
539
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
540
- `,
467
+ FROM ${instanceFilterClauses.from} this
468
+ ${instanceFilterClauses.joins}
469
+ WHERE
470
+ this.Parent.Id IN (${groupIds.map(() => "?").join(",")})
471
+ ${whereClause ? `AND ${whereClause}` : ""}
472
+ ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
473
+ `,
541
474
  bindings: groupIds.map((id) => ({ type: "id", value: id })),
542
475
  },
543
- },
544
- ];
476
+ };
477
+ }));
545
478
  }
546
479
  async createGroupInformationElementMemberElementsQuery({ parentNode, instanceFilter, }) {
547
480
  const groupIds = parentNode.extendedData?.groupIds;
548
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
549
- filter: instanceFilter,
550
- contentClass: { fullName: "BisCore.Element", alias: "this" },
551
- });
552
- return [
553
- {
554
- fullClassName: "BisCore.Element",
481
+ return Promise.all(getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {
482
+ const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
483
+ filter: instanceFilter,
484
+ contentClass: { fullName: classFullName, alias: "this" },
485
+ });
486
+ return {
487
+ fullClassName: classFullName,
555
488
  query: {
556
489
  ecsql: `
557
- SELECT
558
- ${await this._selectQueryFactory.createSelectClause({
490
+ SELECT
491
+ ${await this._selectQueryFactory.createSelectClause({
559
492
  ecClassId: { selector: "this.ECClassId" },
560
493
  ecInstanceId: { selector: "this.ECInstanceId" },
561
494
  nodeLabel: {
562
495
  selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
563
496
  classAlias: "this",
564
- className: "BisCore.Element",
497
+ className: classFullName,
565
498
  }),
566
499
  },
500
+ grouping: { byClass: true },
567
501
  extendedData: {
568
502
  imageId: "icon-item",
569
503
  },
570
- hasChildren: false,
571
- grouping: { byClass: true },
572
- supportsFiltering: true,
504
+ hasChildren: selectProps.hasChildren,
505
+ supportsFiltering: selectProps.supportsFiltering,
573
506
  })}
574
- FROM ${instanceFilterClauses.from} this
575
- JOIN BisCore.ElementGroupsMembers egm ON egm.TargetECInstanceId = this.ECInstanceId
576
- ${instanceFilterClauses.joins}
577
- WHERE
578
- egm.SourceECInstanceId IN (${groupIds.map(() => "?").join(",")})
579
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
580
- `,
507
+ FROM ${instanceFilterClauses.from} this
508
+ JOIN BisCore.ElementGroupsMembers egm ON egm.TargetECInstanceId = this.ECInstanceId
509
+ ${instanceFilterClauses.joins}
510
+ WHERE
511
+ egm.SourceECInstanceId IN (${groupIds.map(() => "?").join(",")})
512
+ ${whereClause ? `AND ${whereClause}` : ""}
513
+ ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
514
+ `,
581
515
  bindings: groupIds.map((id) => ({ type: "id", value: id })),
582
516
  },
583
- },
584
- ];
517
+ };
518
+ }));
585
519
  }
586
- async createElementChildrenQuery({ parentNodeInstanceIds: elementIds, instanceFilter, parentNode, }) {
587
- const data = parentNode.extendedData;
588
- if (data?.isCategory || data?.isSubject || data?.isInformationElement) {
589
- return [];
590
- }
591
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
592
- filter: instanceFilter,
593
- contentClass: { fullName: "BisCore.Element", alias: "this" },
594
- });
595
- return [
596
- {
597
- fullClassName: "BisCore.Element",
520
+ async createElementChildrenQuery({ parentNodeInstanceIds: elementIds, instanceFilter, }) {
521
+ return Promise.all(getElementsSelectProps().map(async ({ classFullName, whereClause, selectProps }) => {
522
+ const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
523
+ filter: instanceFilter,
524
+ contentClass: { fullName: classFullName, alias: "this" },
525
+ });
526
+ return {
527
+ fullClassName: classFullName,
598
528
  query: {
599
529
  ecsql: `
600
- SELECT
601
- ${await this._selectQueryFactory.createSelectClause({
530
+ SELECT
531
+ ${await this._selectQueryFactory.createSelectClause({
602
532
  ecClassId: { selector: "this.ECClassId" },
603
533
  ecInstanceId: { selector: "this.ECInstanceId" },
604
534
  nodeLabel: {
605
535
  selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
606
536
  classAlias: "this",
607
- className: "BisCore.Element",
537
+ className: classFullName,
608
538
  }),
609
539
  },
610
- grouping: {
611
- byClass: true,
612
- },
540
+ grouping: { byClass: true },
613
541
  extendedData: {
614
542
  imageId: "icon-item",
615
543
  },
616
- supportsFiltering: true,
544
+ hasChildren: selectProps.hasChildren,
545
+ supportsFiltering: selectProps.supportsFiltering,
617
546
  })}
618
- FROM ${instanceFilterClauses.from} this
619
- JOIN BisCore.Element p ON p.ECInstanceId = this.Parent.Id
620
- ${instanceFilterClauses.joins}
621
- WHERE
622
- p.ECInstanceId IN (${elementIds.map(() => "?").join(",")}) AND
623
- p.ECClassId IS NOT (BisCore.ISubModeledElement)
624
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
625
- `,
547
+ FROM ${instanceFilterClauses.from} this
548
+ JOIN BisCore.Element p ON p.ECInstanceId = this.Parent.Id
549
+ ${instanceFilterClauses.joins}
550
+ WHERE
551
+ p.ECInstanceId IN (${elementIds.map(() => "?").join(",")})
552
+ ${whereClause ? `AND ${whereClause}` : ""}
553
+ ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
554
+ `,
626
555
  bindings: elementIds.map((id) => ({ type: "id", value: id })),
627
556
  },
628
- },
629
- ];
557
+ };
558
+ }));
630
559
  }
631
560
  }
632
561
  exports.IModelContentTreeDefinition = IModelContentTreeDefinition;
@@ -636,4 +565,55 @@ function getClassNameByViewType(view) {
636
565
  }
637
566
  return { categoryClass: "BisCore.SpatialCategory", elementClass: "BisCore.GeometricElement3d", modelClass: "BisCore.GeometricModel3d" };
638
567
  }
568
+ function getElementsSelectProps(props) {
569
+ const modelClassFullName = props?.modelClass ?? "BisCore.Model";
570
+ const elementClassFullName = props?.elementClass ?? "BisCore.Element";
571
+ const result = [
572
+ {
573
+ classFullName: elementClassFullName,
574
+ whereClause: "this.ECClassId IS NOT (BisCore.GroupInformationElement)",
575
+ selectProps: {
576
+ hasChildren: {
577
+ selector: `
578
+ IFNULL((
579
+ SELECT 1
580
+ FROM (
581
+ SELECT Parent.Id ParentId FROM ${elementClassFullName}
582
+ UNION ALL
583
+ SELECT sm.ModeledElement.Id ParentId FROM ${modelClassFullName} sm WHERE EXISTS (SELECT 1 FROM ${elementClassFullName} WHERE Model.Id = sm.ECInstanceId)
584
+ )
585
+ WHERE ParentId = this.ECInstanceId
586
+ LIMIT 1
587
+ ), 0)
588
+ `,
589
+ },
590
+ supportsFiltering: true,
591
+ },
592
+ },
593
+ ];
594
+ if (!props?.elementClass) {
595
+ result.push({
596
+ classFullName: "BisCore.GroupInformationElement",
597
+ whereClause: "",
598
+ selectProps: {
599
+ hasChildren: {
600
+ selector: `
601
+ IFNULL((
602
+ SELECT 1
603
+ FROM (
604
+ SELECT Parent.Id ParentId FROM BisCore.Element
605
+ UNION ALL
606
+ SELECT SourceECInstanceId ParentId FROM BisCore.ElementGroupsMembers
607
+ )
608
+ WHERE ParentId = this.ECInstanceId
609
+ LIMIT 1
610
+ ), 0)
611
+ `,
612
+ },
613
+ supportsFiltering: false,
614
+ },
615
+ });
616
+ }
617
+ return result;
618
+ }
639
619
  //# sourceMappingURL=IModelContentTreeDefinition.js.map