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

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