@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
@@ -1,852 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- import { createClassBasedHierarchyDefinition, createNodesQueryClauseFactory, HierarchyNode, NodeSelectClauseColumnNames, } from "@itwin/presentation-hierarchies";
6
- import { createBisInstanceLabelSelectClauseFactory, ECSql } from "@itwin/presentation-shared";
7
- // eslint-disable-next-line @typescript-eslint/no-redeclare
8
- export var ModelsTreeInstanceKeyPathsProps;
9
- (function (ModelsTreeInstanceKeyPathsProps) {
10
- function isLabelProps(props) {
11
- return !!props.label;
12
- }
13
- ModelsTreeInstanceKeyPathsProps.isLabelProps = isLabelProps;
14
- })(ModelsTreeInstanceKeyPathsProps || (ModelsTreeInstanceKeyPathsProps = {}));
15
- export class ModelsTreeDefinition {
16
- constructor(props) {
17
- this._impl = createClassBasedHierarchyDefinition({
18
- classHierarchyInspector: props.imodelAccess,
19
- hierarchy: {
20
- rootNodes: async (requestProps) => this.createRootHierarchyLevelDefinition(requestProps),
21
- childNodes: [
22
- {
23
- parentNodeClassName: "BisCore.Subject",
24
- definitions: async (requestProps) => this.createSubjectChildrenQuery(requestProps),
25
- },
26
- {
27
- parentNodeClassName: "BisCore.ISubModeledElement",
28
- definitions: async (requestProps) => this.createISubModeledElementChildrenQuery(requestProps),
29
- },
30
- {
31
- parentNodeClassName: "BisCore.GeometricModel3d",
32
- definitions: async (requestProps) => this.createGeometricModel3dChildrenQuery(requestProps),
33
- },
34
- {
35
- parentNodeClassName: "BisCore.SpatialCategory",
36
- definitions: async (requestProps) => this.createSpatialCategoryChildrenQuery(requestProps),
37
- },
38
- {
39
- parentNodeClassName: "BisCore.GeometricElement3d",
40
- definitions: async (requestProps) => this.createGeometricElement3dChildrenQuery(requestProps),
41
- },
42
- ],
43
- },
44
- });
45
- this._subjectModelIdsCache = new SubjectModelIdsCache(props.imodelAccess);
46
- this._selectQueryFactory = createNodesQueryClauseFactory({ imodelAccess: props.imodelAccess });
47
- this._nodeLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory({ classHierarchyInspector: props.imodelAccess });
48
- }
49
- async postProcessNode(node) {
50
- if (HierarchyNode.isClassGroupingNode(node)) {
51
- // `imageId` is assigned to instance nodes at query time, but grouping ones need to
52
- // be handled during post-processing
53
- // Add `modelId` and `categoryId` from the first grouped element.
54
- const childExtendedData = node.children[0].extendedData;
55
- return { ...node, extendedData: { ...node.extendedData, ...childExtendedData, imageId: "icon-ec-class" } };
56
- }
57
- return node;
58
- }
59
- async defineHierarchyLevel(props) {
60
- return this._impl.defineHierarchyLevel(props);
61
- }
62
- async createRootHierarchyLevelDefinition(props) {
63
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
64
- filter: props.instanceFilter,
65
- contentClass: { fullName: "BisCore.Subject", alias: "this" },
66
- });
67
- return [
68
- {
69
- fullClassName: "BisCore.Subject",
70
- query: {
71
- ecsql: `
72
- SELECT
73
- ${await this._selectQueryFactory.createSelectClause({
74
- ecClassId: { selector: ECSql.createRawPropertyValueSelector("this", "ECClassId") },
75
- ecInstanceId: { selector: "this.ECInstanceId" },
76
- nodeLabel: {
77
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
78
- classAlias: "this",
79
- className: "BisCore.Subject",
80
- }),
81
- },
82
- extendedData: {
83
- imageId: "icon-imodel-hollow-2",
84
- isSubject: true,
85
- },
86
- autoExpand: true,
87
- supportsFiltering: true,
88
- })}
89
- FROM ${instanceFilterClauses.from} this
90
- ${instanceFilterClauses.joins}
91
- WHERE
92
- this.Parent IS NULL
93
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
94
- `,
95
- },
96
- },
97
- ];
98
- }
99
- async createSubjectChildrenQuery({ parentNodeInstanceIds: subjectIds, instanceFilter, }) {
100
- const [subjectFilterClauses, modelFilterClauses] = await Promise.all([
101
- this._selectQueryFactory.createFilterClauses({
102
- filter: instanceFilter,
103
- contentClass: { fullName: "BisCore.Subject", alias: "this" },
104
- }),
105
- this._selectQueryFactory.createFilterClauses({
106
- filter: instanceFilter,
107
- contentClass: { fullName: "BisCore.GeometricModel3d", alias: "this" },
108
- }),
109
- ]);
110
- const [childSubjectIds, childModelIds] = await Promise.all([
111
- this._subjectModelIdsCache.getChildSubjectIds(subjectIds),
112
- this._subjectModelIdsCache.getSubjectModelIds(subjectIds),
113
- ]);
114
- const defs = new Array();
115
- childSubjectIds.length &&
116
- defs.push({
117
- fullClassName: "BisCore.Subject",
118
- query: {
119
- ecsql: `
120
- SELECT
121
- ${await this._selectQueryFactory.createSelectClause({
122
- ecClassId: { selector: "this.ECClassId" },
123
- ecInstanceId: { selector: "this.ECInstanceId" },
124
- nodeLabel: {
125
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
126
- classAlias: "this",
127
- className: "BisCore.Subject",
128
- }),
129
- },
130
- hideIfNoChildren: true,
131
- hasChildren: { selector: `InVirtualSet(?, this.ECInstanceId)` },
132
- grouping: { byLabel: { action: "merge", groupId: "subject" } },
133
- extendedData: {
134
- imageId: "icon-folder",
135
- isSubject: true,
136
- },
137
- supportsFiltering: true,
138
- })}
139
- FROM ${subjectFilterClauses.from} this
140
- ${subjectFilterClauses.joins}
141
- WHERE
142
- this.ECInstanceId IN (${childSubjectIds.map(() => "?").join(",")})
143
- ${subjectFilterClauses.where ? `AND ${subjectFilterClauses.where}` : ""}
144
- `,
145
- bindings: [
146
- { type: "idset", value: await this._subjectModelIdsCache.getParentSubjectIds() },
147
- ...childSubjectIds.map((id) => ({ type: "id", value: id })),
148
- ],
149
- },
150
- });
151
- childModelIds.length &&
152
- defs.push({
153
- fullClassName: "BisCore.GeometricModel3d",
154
- query: {
155
- ecsql: `
156
- SELECT model.ECInstanceId AS ECInstanceId, model.*
157
- FROM (
158
- SELECT
159
- ${await this._selectQueryFactory.createSelectClause({
160
- ecClassId: { selector: "model.ECClassId" },
161
- ecInstanceId: { selector: "model.ECInstanceId" },
162
- nodeLabel: {
163
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
164
- classAlias: "partition",
165
- className: "BisCore.InformationPartitionElement",
166
- }),
167
- },
168
- hideNodeInHierarchy: {
169
- selector: `
170
- CASE
171
- WHEN (
172
- json_extract([partition].JsonProperties, '$.PhysicalPartition.Model.Content') IS NOT NULL
173
- OR json_extract([partition].JsonProperties, '$.GraphicalPartition3d.Model.Content') IS NOT NULL
174
- ) THEN 1
175
- ELSE 0
176
- END
177
- `,
178
- },
179
- hasChildren: true,
180
- extendedData: {
181
- imageId: "icon-model",
182
- isModel: true,
183
- },
184
- supportsFiltering: true,
185
- })}
186
- FROM Bis.GeometricModel3d model
187
- JOIN bis.InformationPartitionElement [partition] ON [partition].ECInstanceId = model.ModeledElement.Id
188
- WHERE
189
- model.ECInstanceId IN (${childModelIds.map(() => "?").join(",")})
190
- ) model
191
- JOIN ${modelFilterClauses.from} this ON this.ECInstanceId = model.ECInstanceId
192
- ${modelFilterClauses.joins}
193
- ${modelFilterClauses.where ? `AND (model.${NodeSelectClauseColumnNames.HideNodeInHierarchy} OR ${modelFilterClauses.where})` : ""}
194
- `,
195
- bindings: childModelIds.map((id) => ({ type: "id", value: id })),
196
- },
197
- });
198
- return defs;
199
- }
200
- async createISubModeledElementChildrenQuery({ parentNodeInstanceIds: elementIds, }) {
201
- // note: we do not apply hierarchy level filtering on this hierarchy level, because it's always
202
- // hidden - the filter will get applied on the child hierarchy levels
203
- return [
204
- {
205
- fullClassName: "BisCore.GeometricModel3d",
206
- query: {
207
- ecsql: `
208
- SELECT
209
- ${await this._selectQueryFactory.createSelectClause({
210
- ecClassId: { selector: "this.ECClassId" },
211
- ecInstanceId: { selector: "this.ECInstanceId" },
212
- nodeLabel: "",
213
- hideNodeInHierarchy: true,
214
- })}
215
- FROM BisCore.GeometricModel3d this
216
- WHERE
217
- this.ModeledElement.Id IN (${elementIds.map(() => "?").join(",")})
218
- AND NOT this.IsPrivate
219
- AND this.ECInstanceId IN (SELECT Model.Id FROM bis.GeometricElement3d)
220
- `,
221
- bindings: [...elementIds.map((id) => ({ type: "id", value: id }))],
222
- },
223
- },
224
- ];
225
- }
226
- async createGeometricModel3dChildrenQuery({ parentNodeInstanceIds: modelIds, instanceFilter, }) {
227
- function createModelIdsSelector() {
228
- // Note: `json_array` function only accepts up to 127 arguments and we may have more `modelIds` than that. As a workaround,
229
- // we're creating an array of arrays
230
- const slices = new Array();
231
- for (let sliceStartIndex = 0; sliceStartIndex < modelIds.length; sliceStartIndex += 127) {
232
- let sliceEndIndex = sliceStartIndex + 127;
233
- if (sliceEndIndex > modelIds.length) {
234
- sliceEndIndex = undefined;
235
- }
236
- slices.push(modelIds.slice(sliceStartIndex, sliceEndIndex));
237
- }
238
- return `json_array(${slices.map((sliceIds) => `json_array(${sliceIds.map((id) => `'${id}'`).join(",")})`).join(",")})`;
239
- }
240
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
241
- filter: instanceFilter,
242
- contentClass: { fullName: "BisCore.SpatialCategory", alias: "this" },
243
- });
244
- return [
245
- {
246
- fullClassName: "BisCore.SpatialCategory",
247
- query: {
248
- ecsql: `
249
- SELECT
250
- ${await this._selectQueryFactory.createSelectClause({
251
- ecClassId: { selector: "this.ECClassId" },
252
- ecInstanceId: { selector: "this.ECInstanceId" },
253
- nodeLabel: {
254
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
255
- classAlias: "this",
256
- className: "BisCore.SpatialCategory",
257
- }),
258
- },
259
- grouping: { byLabel: { action: "merge", groupId: "category" } },
260
- hasChildren: true,
261
- extendedData: {
262
- imageId: "icon-layers",
263
- isCategory: true,
264
- modelIds: { selector: createModelIdsSelector() },
265
- },
266
- supportsFiltering: true,
267
- })}
268
- FROM ${instanceFilterClauses.from} this
269
- ${instanceFilterClauses.joins}
270
- WHERE
271
- EXISTS (
272
- SELECT 1
273
- FROM bis.GeometricElement3d element
274
- WHERE
275
- element.Model.Id IN (${modelIds.map(() => "?").join(",")})
276
- AND element.Category.Id = +this.ECInstanceId
277
- AND element.Parent IS NULL
278
- )
279
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
280
- `,
281
- bindings: modelIds.map((id) => ({ type: "id", value: id })),
282
- },
283
- },
284
- ];
285
- }
286
- async createSpatialCategoryChildrenQuery({ parentNodeInstanceIds: categoryIds, parentNode, instanceFilter, }) {
287
- const modelIds = parentNode.extendedData && parentNode.extendedData.hasOwnProperty("modelIds") && Array.isArray(parentNode.extendedData.modelIds)
288
- ? parentNode.extendedData.modelIds.reduce((arr, ids) => [...arr, ...(Array.isArray(ids) ? ids : [ids])], new Array())
289
- : [];
290
- if (modelIds.length === 0) {
291
- throw new Error(`Invalid category node "${parentNode.label}" - missing model information.`);
292
- }
293
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
294
- filter: instanceFilter,
295
- contentClass: { fullName: "BisCore.GeometricElement3d", alias: "this" },
296
- });
297
- return [
298
- {
299
- fullClassName: "BisCore.GeometricElement3d",
300
- query: {
301
- ecsql: `
302
- SELECT
303
- ${await this._selectQueryFactory.createSelectClause({
304
- ecClassId: { selector: "this.ECClassId" },
305
- ecInstanceId: { selector: "this.ECInstanceId" },
306
- nodeLabel: {
307
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
308
- classAlias: "this",
309
- className: "BisCore.GeometricElement3d",
310
- }),
311
- },
312
- grouping: {
313
- byClass: true,
314
- },
315
- hasChildren: {
316
- selector: `
317
- IFNULL((
318
- SELECT 1
319
- FROM (
320
- SELECT Parent.Id ParentId FROM bis.GeometricElement3d
321
- UNION ALL
322
- SELECT ModeledElement.Id ParentId FROM bis.GeometricModel3d
323
- )
324
- WHERE ParentId = this.ECInstanceId
325
- LIMIT 1
326
- ), 0)
327
- `,
328
- },
329
- extendedData: {
330
- modelId: { selector: "printf('0x%x', this.Model.Id)" },
331
- categoryId: { selector: "printf('0x%x', this.Category.Id)" },
332
- imageId: "icon-item",
333
- },
334
- supportsFiltering: true,
335
- })}
336
- FROM ${instanceFilterClauses.from} this
337
- ${instanceFilterClauses.joins}
338
- WHERE
339
- this.Category.Id IN (${categoryIds.map(() => "?").join(",")})
340
- AND this.Model.Id IN (${modelIds.map(() => "?").join(",")})
341
- AND this.Parent IS NULL
342
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
343
- `,
344
- bindings: [...categoryIds.map((id) => ({ type: "id", value: id })), ...modelIds.map((id) => ({ type: "id", value: id }))],
345
- },
346
- },
347
- ];
348
- }
349
- async createGeometricElement3dChildrenQuery({ parentNodeInstanceIds: elementIds, instanceFilter, }) {
350
- const instanceFilterClauses = await this._selectQueryFactory.createFilterClauses({
351
- filter: instanceFilter,
352
- contentClass: { fullName: "BisCore.GeometricElement3d", alias: "this" },
353
- });
354
- return [
355
- {
356
- fullClassName: "BisCore.GeometricElement3d",
357
- query: {
358
- ecsql: `
359
- SELECT
360
- ${await this._selectQueryFactory.createSelectClause({
361
- ecClassId: { selector: "this.ECClassId" },
362
- ecInstanceId: { selector: "this.ECInstanceId" },
363
- nodeLabel: {
364
- selector: await this._nodeLabelSelectClauseFactory.createSelectClause({
365
- classAlias: "this",
366
- className: "BisCore.GeometricElement3d",
367
- }),
368
- },
369
- grouping: {
370
- byClass: true,
371
- },
372
- hasChildren: {
373
- selector: `
374
- IFNULL((
375
- SELECT 1
376
- FROM (
377
- SELECT Parent.Id ParentId FROM bis.GeometricElement3d
378
- UNION ALL
379
- SELECT ModeledElement.Id ParentId FROM bis.GeometricModel3d
380
- )
381
- WHERE ParentId = this.ECInstanceId
382
- LIMIT 1
383
- ), 0)
384
- `,
385
- },
386
- extendedData: {
387
- modelId: { selector: "printf('0x%x', this.Model.Id)" },
388
- categoryId: { selector: "printf('0x%x', this.Category.Id)" },
389
- imageId: "icon-item",
390
- },
391
- supportsFiltering: true,
392
- })}
393
- FROM ${instanceFilterClauses.from} this
394
- ${instanceFilterClauses.joins}
395
- WHERE
396
- this.Parent.Id IN (${elementIds.map(() => "?").join(",")})
397
- ${instanceFilterClauses.where ? `AND ${instanceFilterClauses.where}` : ""}
398
- `,
399
- bindings: elementIds.map((id) => ({ type: "id", value: id })),
400
- },
401
- },
402
- ];
403
- }
404
- static async createInstanceKeyPaths(props) {
405
- if (ModelsTreeInstanceKeyPathsProps.isLabelProps(props)) {
406
- const labelsFactory = createBisInstanceLabelSelectClauseFactory({ classHierarchyInspector: props.imodelAccess });
407
- return createInstanceKeyPathsFromInstanceLabel({ ...props, labelsFactory });
408
- }
409
- return createInstanceKeyPathsFromInstanceKeys(props);
410
- }
411
- }
412
- class SubjectModelIdsCache {
413
- constructor(_queryExecutor) {
414
- this._queryExecutor = _queryExecutor;
415
- }
416
- async *querySubjects() {
417
- const subjectsQuery = `
418
- SELECT
419
- ECInstanceId id,
420
- Parent.Id parentId,
421
- json_extract(JsonProperties, '$.Subject.Model.TargetPartition') targetPartitionId,
422
- CASE
423
- WHEN (
424
- json_extract(JsonProperties, '$.Subject.Job.Bridge') IS NOT NULL
425
- OR json_extract(JsonProperties, '$.Subject.Model.Type') = 'Hierarchy'
426
- ) THEN 1
427
- ELSE 0
428
- END hideInHierarchy
429
- FROM bis.Subject
430
- `;
431
- for await (const row of this._queryExecutor.createQueryReader({ ecsql: subjectsQuery }, { rowFormat: "ECSqlPropertyNames" })) {
432
- yield { id: row.id, parentId: row.parentId, targetPartitionId: row.targetPartitionId, hideInHierarchy: !!row.hideInHierarchy };
433
- }
434
- }
435
- async *queryModels() {
436
- const modelsQuery = `
437
- SELECT p.ECInstanceId id, p.Parent.Id parentId
438
- FROM bis.InformationPartitionElement p
439
- INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId
440
- WHERE NOT m.IsPrivate AND EXISTS (SELECT 1 FROM bis.GeometricElement3d WHERE Model.Id = m.ECInstanceId)
441
- `;
442
- for await (const row of this._queryExecutor.createQueryReader({ ecsql: modelsQuery }, { rowFormat: "ECSqlPropertyNames" })) {
443
- yield { id: row.id, parentId: row.parentId };
444
- }
445
- }
446
- async initSubjectModels() {
447
- this._subjectsHierarchy = new Map();
448
- this._subjectModels = new Map();
449
- this._subjectInfos = new Map();
450
- const targetPartitionSubjects = new Map();
451
- await Promise.all([
452
- (async () => {
453
- for await (const subject of this.querySubjects()) {
454
- this._subjectInfos.set(subject.id, { hideInHierarchy: subject.hideInHierarchy });
455
- if (subject.parentId) {
456
- pushToMap(this._subjectsHierarchy, subject.parentId, subject.id);
457
- }
458
- if (subject.targetPartitionId) {
459
- pushToMap(targetPartitionSubjects, subject.targetPartitionId, subject.id);
460
- }
461
- }
462
- })(),
463
- (async () => {
464
- for await (const model of this.queryModels()) {
465
- pushToMap(targetPartitionSubjects, model.id, model.parentId);
466
- }
467
- })(),
468
- ]);
469
- for (const [partitionId, subjectIds] of targetPartitionSubjects) {
470
- subjectIds.forEach((subjectId) => {
471
- pushToMap(this._subjectModels, subjectId, partitionId);
472
- });
473
- }
474
- }
475
- async initCache() {
476
- if (!this._init) {
477
- this._init = this.initSubjectModels();
478
- }
479
- return this._init;
480
- }
481
- forEachChildSubject(parentSubjectId, cb) {
482
- const childSubjectIds = this._subjectsHierarchy.get(parentSubjectId);
483
- childSubjectIds &&
484
- childSubjectIds.forEach((childSubjectId) => {
485
- if (cb(childSubjectId) === "break") {
486
- return;
487
- }
488
- this.forEachChildSubject(childSubjectId, cb);
489
- });
490
- }
491
- async getParentSubjectIds() {
492
- this._parentSubjectIds ??= (async () => {
493
- await this.initCache();
494
- const hasChildModels = (subjectId) => {
495
- if ((this._subjectModels.get(subjectId)?.size ?? 0) > 0) {
496
- return true;
497
- }
498
- const childSubjectIds = this._subjectsHierarchy.get(subjectId);
499
- return childSubjectIds && [...childSubjectIds].some(hasChildModels);
500
- };
501
- const parentSubjectIds = new Set();
502
- const addIfHasChildren = (subjectId) => {
503
- if (hasChildModels(subjectId)) {
504
- parentSubjectIds.add(subjectId);
505
- }
506
- };
507
- this._subjectsHierarchy.forEach((childSubjectIds, parentSubjectId) => {
508
- addIfHasChildren(parentSubjectId);
509
- childSubjectIds.forEach(addIfHasChildren);
510
- });
511
- return [...parentSubjectIds];
512
- })();
513
- return this._parentSubjectIds;
514
- }
515
- async getChildSubjectIds(parentSubjectIds) {
516
- await this.initCache();
517
- const childSubjectIds = new Array();
518
- parentSubjectIds.forEach((subjectId) => {
519
- this.forEachChildSubject(subjectId, (childSubjectId) => {
520
- const { hideInHierarchy } = this._subjectInfos.get(childSubjectId);
521
- if (!hideInHierarchy) {
522
- childSubjectIds.push(childSubjectId);
523
- return "break";
524
- }
525
- return "continue";
526
- });
527
- });
528
- return childSubjectIds;
529
- }
530
- async getSubjectModelIds(parentSubjectIds) {
531
- await this.initCache();
532
- const hiddenSubjectIds = new Array();
533
- parentSubjectIds.forEach((subjectId) => {
534
- this.forEachChildSubject(subjectId, (childSubjectId) => {
535
- const { hideInHierarchy } = this._subjectInfos.get(childSubjectId);
536
- if (hideInHierarchy) {
537
- hiddenSubjectIds.push(childSubjectId);
538
- return "continue";
539
- }
540
- return "break";
541
- });
542
- });
543
- const modelIds = new Array();
544
- [...parentSubjectIds, ...hiddenSubjectIds].forEach((subjectId) => {
545
- const subjectModelIds = this._subjectModels.get(subjectId);
546
- subjectModelIds && modelIds.push(...subjectModelIds);
547
- });
548
- return modelIds;
549
- }
550
- }
551
- function pushToMap(map, key, value) {
552
- let list = map.get(key);
553
- if (!list) {
554
- list = new Set();
555
- map.set(key, list);
556
- }
557
- list.add(value);
558
- }
559
- function createECInstanceKeySelectClause(props) {
560
- const classIdSelector = props.classIdSelector ?? `[${props.classIdAlias ?? props.alias}].[ECClassId]`;
561
- const instanceHexIdSelector = props.instanceHexIdSelector ?? `printf('0x%x', [${props.instanceIdAlias ?? props.alias}].[ECInstanceId])`;
562
- return `json_object('className', ec_classname(${classIdSelector}, 's.c'), 'id', ${instanceHexIdSelector})`;
563
- }
564
- async function createSubjectModelsInstanceKeysPathsCTEs(labelsFactory) {
565
- return [
566
- `Models(ECClassId, ECInstanceId, HexId, ModeledElementParentId, Label) AS (
567
- SELECT
568
- m.ECClassId,
569
- m.ECInstanceId,
570
- printf('0x%x', m.ECInstanceId) HexId,
571
- p.Parent.Id,
572
- ${await labelsFactory.createSelectClause({
573
- classAlias: "p",
574
- className: "BisCore.Element",
575
- // eslint-disable-next-line @typescript-eslint/unbound-method
576
- selectorsConcatenator: ECSql.createConcatenatedValueStringSelector,
577
- })}
578
- FROM bis.GeometricModel3d m
579
- JOIN bis.Element p on p.ECInstanceId = m.ModeledElement.Id
580
- )`,
581
- `SubjectsHierarchy(TargetId, TargetLabel, ECClassId, ECInstanceId, ParentId, JsonProperties, Path) AS (
582
- SELECT
583
- s.ECInstanceId,
584
- ${await labelsFactory.createSelectClause({
585
- classAlias: "s",
586
- className: "BisCore.Subject",
587
- // eslint-disable-next-line @typescript-eslint/unbound-method
588
- selectorsConcatenator: ECSql.createConcatenatedValueStringSelector,
589
- })},
590
- s.ECClassId,
591
- s.ECInstanceId,
592
- s.Parent.Id,
593
- s.JsonProperties,
594
- CASE
595
- WHEN (
596
- json_extract(s.JsonProperties, '$.Subject.Job.Bridge') IS NOT NULL
597
- OR json_extract(s.JsonProperties, '$.Subject.Model.Type') = 'Hierarchy'
598
- )
599
- THEN
600
- json_array()
601
- ELSE
602
- json_array(${createECInstanceKeySelectClause({ alias: "s" })})
603
- END
604
- FROM bis.Subject s
605
- UNION ALL
606
- SELECT
607
- c.TargetId,
608
- c.TargetLabel,
609
- p.ECClassId,
610
- p.ECInstanceId,
611
- p.Parent.Id,
612
- p.JsonProperties,
613
- CASE
614
- WHEN (
615
- json_extract(p.JsonProperties, '$.Subject.Job.Bridge') IS NOT NULL
616
- OR json_extract(p.JsonProperties, '$.Subject.Model.Type') = 'Hierarchy'
617
- )
618
- THEN
619
- c.Path
620
- ELSE
621
- json_insert(c.Path, '$[#]', ${createECInstanceKeySelectClause({ alias: "p" })})
622
- END
623
- FROM SubjectsHierarchy c
624
- JOIN bis.Element p on p.ECInstanceId = c.ParentId
625
- )`,
626
- `Subjects(TargetId, TargetLabel, ECClassId, ECInstanceId, JsonProperties, Path) AS (
627
- SELECT s.TargetId, s.TargetLabel, s.ECClassId, s.ECInstanceId, s.JsonProperties, s.Path
628
- FROM SubjectsHierarchy s
629
- WHERE s.ParentId IS NULL
630
- )`,
631
- ];
632
- }
633
- async function createInstanceKeyPathsCTEs(labelsFactory) {
634
- return [
635
- `GeometricElementsHierarchy(TargetId, TargetLabel, ECClassId, ECInstanceId, ParentId, ModelId, CategoryId, Path) AS (
636
- SELECT
637
- e.ECInstanceId,
638
- ${await labelsFactory.createSelectClause({
639
- classAlias: "e",
640
- className: "BisCore.GeometricElement3d",
641
- // eslint-disable-next-line @typescript-eslint/unbound-method
642
- selectorsConcatenator: ECSql.createConcatenatedValueStringSelector,
643
- })},
644
- e.ECClassId,
645
- e.ECInstanceId,
646
- e.Parent.Id,
647
- e.Model.Id,
648
- e.Category.Id,
649
- json_array(${createECInstanceKeySelectClause({ alias: "e" })})
650
- FROM bis.GeometricElement3d e
651
- UNION ALL
652
- SELECT
653
- c.TargetId,
654
- c.TargetLabel,
655
- p.ECClassId,
656
- p.ECInstanceId,
657
- p.Parent.Id,
658
- p.Model.Id,
659
- p.Category.Id,
660
- json_insert(c.Path, '$[#]', ${createECInstanceKeySelectClause({ alias: "p" })})
661
- FROM GeometricElementsHierarchy c
662
- JOIN bis.GeometricElement3d p on p.ECInstanceId = c.ParentId
663
- )`,
664
- `GeometricElements(TargetId, TargetLabel, ECClassId, ECInstanceId, ModelId, CategoryId, Path) AS (
665
- SELECT e.TargetId, e.TargetLabel, e.ECClassId, e.ECInstanceId, e.ModelId, e.CategoryId, e.Path
666
- FROM GeometricElementsHierarchy e
667
- WHERE e.ParentId IS NULL
668
- )`,
669
- `Categories(ECClassId, ECInstanceId, HexId, Label) AS (
670
- SELECT
671
- c.ECClassId,
672
- c.ECInstanceId,
673
- printf('0x%x', c.ECInstanceId) HexId,
674
- ${await labelsFactory.createSelectClause({
675
- classAlias: "c",
676
- className: "BisCore.SpatialCategory",
677
- // eslint-disable-next-line @typescript-eslint/unbound-method
678
- selectorsConcatenator: ECSql.createConcatenatedValueStringSelector,
679
- })}
680
- FROM bis.SpatialCategory c
681
- )`,
682
- `ModelsCategoriesElementsHierarchy(TargetElementId, TargetElementLabel, ModelId, ModelHexId, ModelParentId, Path) AS (
683
- SELECT
684
- e.TargetId,
685
- e.TargetLabel,
686
- m.ECInstanceId,
687
- m.HexId,
688
- m.ModeledElementParentId,
689
- json_insert(
690
- e.Path,
691
- '$[#]', ${createECInstanceKeySelectClause({
692
- classIdAlias: "c",
693
- instanceHexIdSelector: "c.HexId",
694
- })},
695
- '$[#]', ${createECInstanceKeySelectClause({
696
- classIdAlias: "m",
697
- instanceHexIdSelector: "m.HexId",
698
- })}
699
- )
700
- FROM GeometricElements e
701
- JOIN Categories c ON c.ECInstanceId = e.CategoryId
702
- JOIN Models m ON m.ECInstanceId = e.ModelId
703
- UNION ALL
704
- SELECT
705
- mce.TargetElementId,
706
- mce.TargetElementLabel,
707
- m.ECInstanceId,
708
- m.HexId,
709
- m.ModeledElementParentId,
710
- json_insert(
711
- mce.Path,
712
- '$[#]', json(e.Path),
713
- '$[#]', ${createECInstanceKeySelectClause({
714
- classIdAlias: "c",
715
- instanceHexIdSelector: "c.HexId",
716
- })},
717
- '$[#]', ${createECInstanceKeySelectClause({
718
- classIdAlias: "m",
719
- instanceHexIdSelector: "m.HexId",
720
- })}
721
- )
722
- FROM ModelsCategoriesElementsHierarchy mce
723
- JOIN GeometricElements e on e.TargetId = mce.ModelId
724
- JOIN Categories c ON c.ECInstanceId = e.CategoryId
725
- JOIN Models m ON m.ECInstanceId = e.ModelId
726
- )`,
727
- ...(await createSubjectModelsInstanceKeysPathsCTEs(labelsFactory)),
728
- ];
729
- }
730
- async function createInstanceKeyPathsFromInstanceKeys(props) {
731
- const ids = {
732
- models: new Array(),
733
- categories: new Array(),
734
- subjects: new Array(),
735
- elements: new Array(),
736
- };
737
- await Promise.all(props.keys.map(async (key) => {
738
- if (await props.imodelAccess.classDerivesFrom(key.className, "BisCore.Subject")) {
739
- ids.subjects.push(key.id);
740
- }
741
- else if (await props.imodelAccess.classDerivesFrom(key.className, "BisCore.Model")) {
742
- ids.models.push(key.id);
743
- }
744
- else if (await props.imodelAccess.classDerivesFrom(key.className, "BisCore.SpatialCategory")) {
745
- ids.categories.push(key.id);
746
- }
747
- else {
748
- ids.elements.push(key.id);
749
- }
750
- }));
751
- const queries = [];
752
- if (ids.elements.length > 0) {
753
- queries.push(`
754
- SELECT json_insert(mce.Path, '$[#]', json(s.Path))
755
- FROM ModelsCategoriesElementsHierarchy mce
756
- JOIN Subjects s ON s.TargetId = mce.ModelParentId OR json_extract(s.JsonProperties,'$.Subject.Model.TargetPartition') = mce.ModelHexId
757
- WHERE mce.TargetElementId IN (${ids.elements.map(() => "?").join(",")})
758
- `);
759
- }
760
- if (ids.categories.length > 0) {
761
- queries.push(`
762
- SELECT
763
- json_array(
764
- ${createECInstanceKeySelectClause({ classIdAlias: "c", instanceHexIdSelector: "c.HexId" })},
765
- ${createECInstanceKeySelectClause({ classIdAlias: "m", instanceHexIdSelector: "m.HexId" })},
766
- json(s.Path)
767
- )
768
- FROM Categories c,
769
- Models m
770
- JOIN Subjects s ON s.TargetId = m.ModeledElementParentId OR json_extract(s.JsonProperties,'$.Subject.Model.TargetPartition') = m.HexId
771
- WHERE
772
- m.ECInstanceId IN (SELECT e.Model.Id FROM bis.GeometricElement3d e WHERE e.Category.Id = c.ECInstanceId)
773
- AND c.ECInstanceId IN (${ids.categories.map(() => "?").join(",")})
774
- `);
775
- }
776
- if (ids.models.length > 0) {
777
- queries.push(`
778
- SELECT
779
- json_array(
780
- ${createECInstanceKeySelectClause({ classIdAlias: "m", instanceHexIdSelector: "m.HexId" })},
781
- json(s.Path)
782
- )
783
- FROM Models m
784
- JOIN Subjects s ON s.TargetId = m.ModeledElementParentId OR json_extract(s.JsonProperties,'$.Subject.Model.TargetPartition') = m.HexId
785
- WHERE m.ECInstanceId IN (${ids.models.map(() => "?").join(",")})
786
- `);
787
- }
788
- if (ids.subjects.length > 0) {
789
- queries.push(`
790
- SELECT s.Path
791
- FROM Subjects s
792
- WHERE s.TargetId IN (${ids.subjects.map(() => "?").join(",")})
793
- `);
794
- }
795
- if (queries.length === 0) {
796
- return [];
797
- }
798
- const bindings = [];
799
- ids.elements.forEach((id) => bindings.push({ type: "id", value: id }));
800
- ids.categories.forEach((id) => bindings.push({ type: "id", value: id }));
801
- ids.models.forEach((id) => bindings.push({ type: "id", value: id }));
802
- ids.subjects.forEach((id) => bindings.push({ type: "id", value: id }));
803
- const reader = props.imodelAccess.createQueryReader({
804
- ctes: await createInstanceKeyPathsCTEs({ createSelectClause: async () => "''" }),
805
- ecsql: queries.join(" UNION ALL "),
806
- bindings,
807
- }, { rowFormat: "Indexes", restartToken: "tree-widget/models-tree/filter-by-keys-query" });
808
- const paths = new Array();
809
- for await (const row of reader) {
810
- paths.push(flatten(JSON.parse(row[0])).reverse());
811
- }
812
- return paths;
813
- }
814
- async function createInstanceKeyPathsFromInstanceLabel(props) {
815
- const queries = [];
816
- queries.push(`
817
- SELECT
818
- m.Label AS Label,
819
- json_array(
820
- ${createECInstanceKeySelectClause({ classIdAlias: "m", instanceHexIdSelector: "m.HexId" })},
821
- json(s.Path)
822
- ) AS Path
823
- FROM Models m
824
- JOIN Subjects s ON s.TargetId = m.ModeledElementParentId OR json_extract(s.JsonProperties,'$.Subject.Model.TargetPartition') = m.HexId
825
- `);
826
- queries.push(`
827
- SELECT s.TargetLabel AS Label, s.Path AS Path
828
- FROM Subjects s
829
- `);
830
- const reader = props.imodelAccess.createQueryReader({
831
- ctes: await createSubjectModelsInstanceKeysPathsCTEs(props.labelsFactory),
832
- ecsql: `
833
- SELECT DISTINCT Path
834
- FROM (
835
- ${queries.join(" UNION ALL ")}
836
- )
837
- WHERE Label LIKE '%' || ? || '%'
838
- `,
839
- bindings: [{ type: "string", value: props.label }],
840
- }, { rowFormat: "Indexes", restartToken: "tree-widget/models-tree/filter-by-label-query" });
841
- const paths = new Array();
842
- for await (const row of reader) {
843
- paths.push(flatten(JSON.parse(row[0])).reverse());
844
- }
845
- return paths;
846
- }
847
- function flatten(source) {
848
- return source.reduce((flat, item) => {
849
- return [...flat, ...(Array.isArray(item) ? flatten(item) : [item])];
850
- }, new Array());
851
- }
852
- //# sourceMappingURL=ModelsTreeDefinition.js.map