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