@itwin/tree-widget-react 4.0.0-alpha.24 → 4.0.0-alpha.26

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 (205) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/lib/esm/tree-widget-react/components/TreeWidgetUiItemsProvider.js +2 -1
  3. package/lib/esm/tree-widget-react/components/TreeWidgetUiItemsProvider.js.map +1 -1
  4. package/lib/esm/tree-widget-react/components/tree-header/WidgetHeader.js +1 -1
  5. package/lib/esm/tree-widget-react/components/tree-header/WidgetHeader.js.map +1 -1
  6. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTree.d.ts +4 -1
  7. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTree.js +4 -1
  8. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTree.js.map +1 -1
  9. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.d.ts +1 -0
  10. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js +36 -47
  11. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -1
  12. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.d.ts +2 -0
  13. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js +4 -1
  14. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -1
  15. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.d.ts +4 -2
  16. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js +87 -38
  17. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js.map +1 -1
  18. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.d.ts +86 -0
  19. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.js +50 -0
  20. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.js.map +1 -0
  21. package/lib/esm/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.d.ts +4 -2
  22. package/lib/esm/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js +38 -23
  23. package/lib/esm/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js.map +1 -1
  24. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.d.ts +11 -21
  25. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.js +16 -168
  26. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeIdsCache.js.map +1 -1
  27. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNodeInternal.d.ts +65 -0
  28. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNodeInternal.js +22 -0
  29. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNodeInternal.js.map +1 -0
  30. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/UseSearchPaths.d.ts +2 -2
  31. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/UseSearchPaths.js +4 -4
  32. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/UseSearchPaths.js.map +1 -1
  33. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.d.ts +6 -12
  34. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.js +192 -127
  35. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.js.map +1 -1
  36. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.d.ts +14 -5
  37. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.js +43 -24
  38. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.js.map +1 -1
  39. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/SearchResultsTree.d.ts +3 -1
  40. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/SearchResultsTree.js +78 -17
  41. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/visibility/SearchResultsTree.js.map +1 -1
  42. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeComponent.d.ts +2 -0
  43. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeComponent.js +4 -1
  44. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeComponent.js.map +1 -1
  45. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.js +91 -114
  46. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeDefinition.js.map +1 -1
  47. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeIcon.d.ts +2 -2
  48. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeIcon.js.map +1 -1
  49. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeNode.d.ts +32 -0
  50. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeNode.js +26 -0
  51. package/lib/esm/tree-widget-react/components/trees/classifications-tree/ClassificationsTreeNode.js.map +1 -0
  52. package/lib/esm/tree-widget-react/components/trees/classifications-tree/UseClassificationsTree.d.ts +13 -1
  53. package/lib/esm/tree-widget-react/components/trees/classifications-tree/UseClassificationsTree.js +62 -32
  54. package/lib/esm/tree-widget-react/components/trees/classifications-tree/UseClassificationsTree.js.map +1 -1
  55. package/lib/esm/tree-widget-react/components/trees/classifications-tree/UseClassificationsTreeDefinition.d.ts +12 -9
  56. package/lib/esm/tree-widget-react/components/trees/classifications-tree/UseClassificationsTreeDefinition.js +42 -38
  57. package/lib/esm/tree-widget-react/components/trees/classifications-tree/UseClassificationsTreeDefinition.js.map +1 -1
  58. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.d.ts +15 -38
  59. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js +59 -242
  60. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeIdsCache.js.map +1 -1
  61. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.d.ts +29 -0
  62. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.js +19 -0
  63. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.js.map +1 -0
  64. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.d.ts +5 -9
  65. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.js +155 -84
  66. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.js.map +1 -1
  67. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.js +20 -6
  68. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.js.map +1 -1
  69. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/SearchResultsTree.d.ts +6 -10
  70. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/SearchResultsTree.js +104 -63
  71. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/visibility/SearchResultsTree.js.map +1 -1
  72. package/lib/esm/tree-widget-react/components/trees/common/SharedTreeContextProvider.d.ts +7 -0
  73. package/lib/esm/tree-widget-react/components/trees/common/SharedTreeContextProvider.js +14 -0
  74. package/lib/esm/tree-widget-react/components/trees/common/SharedTreeContextProvider.js.map +1 -0
  75. package/lib/esm/tree-widget-react/components/trees/common/TreeWidgetViewport.js +1 -1
  76. package/lib/esm/tree-widget-react/components/trees/common/TreeWidgetViewport.js.map +1 -1
  77. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyVisibility.js +2 -2
  78. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyVisibility.js.map +1 -1
  79. package/lib/esm/tree-widget-react/components/trees/common/Utils.js +2 -2
  80. package/lib/esm/tree-widget-react/components/trees/common/Utils.js.map +1 -1
  81. package/lib/esm/tree-widget-react/components/trees/common/components/Tree.d.ts +4 -4
  82. package/lib/esm/tree-widget-react/components/trees/common/components/Tree.js +1 -1
  83. package/lib/esm/tree-widget-react/components/trees/common/components/Tree.js.map +1 -1
  84. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.d.ts +4 -4
  85. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeVisibilityButton.js.map +1 -1
  86. package/lib/esm/tree-widget-react/components/trees/common/components/TreeRenderer.js +7 -5
  87. package/lib/esm/tree-widget-react/components/trees/common/components/TreeRenderer.js.map +1 -1
  88. package/lib/esm/tree-widget-react/components/trees/common/components/UseVisibilityButtonHandler.d.ts +2 -2
  89. package/lib/esm/tree-widget-react/components/trees/common/components/UseVisibilityButtonHandler.js.map +1 -1
  90. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js +5 -5
  91. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js.map +1 -1
  92. package/lib/esm/tree-widget-react/components/trees/common/internal/SharedTreeContextProviderInternal.d.ts +20 -0
  93. package/lib/esm/tree-widget-react/components/trees/common/internal/SharedTreeContextProviderInternal.js +44 -0
  94. package/lib/esm/tree-widget-react/components/trees/common/internal/SharedTreeContextProviderInternal.js.map +1 -0
  95. package/lib/esm/tree-widget-react/components/trees/common/internal/Types.d.ts +4 -0
  96. package/lib/esm/tree-widget-react/components/trees/common/internal/Types.js.map +1 -1
  97. package/lib/esm/tree-widget-react/components/trees/common/internal/UseIModelAccess.d.ts +12 -0
  98. package/lib/esm/tree-widget-react/components/trees/common/internal/UseIModelAccess.js +2 -1
  99. package/lib/esm/tree-widget-react/components/trees/common/internal/UseIModelAccess.js.map +1 -1
  100. package/lib/esm/tree-widget-react/components/trees/common/internal/Utils.d.ts +17 -6
  101. package/lib/esm/tree-widget-react/components/trees/common/internal/Utils.js +58 -29
  102. package/lib/esm/tree-widget-react/components/trees/common/internal/Utils.js.map +1 -1
  103. package/lib/esm/tree-widget-react/components/trees/common/internal/VisibilityUtils.d.ts +8 -14
  104. package/lib/esm/tree-widget-react/components/trees/common/internal/VisibilityUtils.js +22 -26
  105. package/lib/esm/tree-widget-react/components/trees/common/internal/VisibilityUtils.js.map +1 -1
  106. package/lib/esm/tree-widget-react/components/trees/common/internal/{AlwaysAndNeverDrawnElementInfo.d.ts → caches/AlwaysAndNeverDrawnElementInfoCache.d.ts} +15 -21
  107. package/lib/esm/tree-widget-react/components/trees/common/internal/{AlwaysAndNeverDrawnElementInfo.js → caches/AlwaysAndNeverDrawnElementInfoCache.js} +40 -38
  108. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/AlwaysAndNeverDrawnElementInfoCache.js.map +1 -0
  109. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.d.ts +68 -0
  110. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js +148 -0
  111. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/BaseIdsCache.js.map +1 -0
  112. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ElementChildrenCache.d.ts +30 -0
  113. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ElementChildrenCache.js +151 -0
  114. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ElementChildrenCache.js.map +1 -0
  115. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ElementModelCategoriesCache.d.ts +32 -0
  116. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ElementModelCategoriesCache.js +106 -0
  117. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ElementModelCategoriesCache.js.map +1 -0
  118. package/lib/esm/tree-widget-react/components/trees/common/internal/{ModelCategoryElementsCountCache.d.ts → caches/ModelCategoryElementsCountCache.d.ts} +9 -2
  119. package/lib/esm/tree-widget-react/components/trees/common/internal/{ModelCategoryElementsCountCache.js → caches/ModelCategoryElementsCountCache.js} +17 -21
  120. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ModelCategoryElementsCountCache.js.map +1 -0
  121. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ModeledElementsCache.d.ts +27 -0
  122. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ModeledElementsCache.js +106 -0
  123. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/ModeledElementsCache.js.map +1 -0
  124. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/SubCategoriesCache.d.ts +23 -0
  125. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/SubCategoriesCache.js +56 -0
  126. package/lib/esm/tree-widget-react/components/trees/common/internal/caches/SubCategoriesCache.js.map +1 -0
  127. package/lib/esm/tree-widget-react/components/trees/common/internal/useTreeHooks/UseCachedVisibility.d.ts +6 -6
  128. package/lib/esm/tree-widget-react/components/trees/common/internal/useTreeHooks/UseCachedVisibility.js +27 -17
  129. package/lib/esm/tree-widget-react/components/trees/common/internal/useTreeHooks/UseCachedVisibility.js.map +1 -1
  130. package/lib/esm/tree-widget-react/components/trees/common/internal/useTreeHooks/UseIdsCache.d.ts +7 -13
  131. package/lib/esm/tree-widget-react/components/trees/common/internal/useTreeHooks/UseIdsCache.js +36 -35
  132. package/lib/esm/tree-widget-react/components/trees/common/internal/useTreeHooks/UseIdsCache.js.map +1 -1
  133. package/lib/esm/tree-widget-react/components/trees/common/internal/visibility/BaseSearchResultsTree.d.ts +18 -0
  134. package/lib/esm/tree-widget-react/components/trees/common/internal/visibility/BaseSearchResultsTree.js +14 -1
  135. package/lib/esm/tree-widget-react/components/trees/common/internal/visibility/BaseSearchResultsTree.js.map +1 -1
  136. package/lib/esm/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.d.ts +46 -70
  137. package/lib/esm/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.js +229 -361
  138. package/lib/esm/tree-widget-react/components/trees/common/internal/visibility/BaseVisibilityHelper.js.map +1 -1
  139. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +2 -2
  140. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -1
  141. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -1
  142. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.d.ts +2 -2
  143. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -1
  144. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -1
  145. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.js +1 -1
  146. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -1
  147. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +32 -19
  148. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +1 -1
  149. package/lib/esm/tree-widget-react/components/trees/index.d.ts +5 -1
  150. package/lib/esm/tree-widget-react/components/trees/index.js +5 -1
  151. package/lib/esm/tree-widget-react/components/trees/index.js.map +1 -1
  152. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTree.d.ts +4 -1
  153. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTree.js +4 -1
  154. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTree.js.map +1 -1
  155. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.d.ts +7 -3
  156. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js +36 -35
  157. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js.map +1 -1
  158. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.d.ts +1 -0
  159. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js +3 -1
  160. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js.map +1 -1
  161. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.d.ts +3 -1
  162. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js +70 -26
  163. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -1
  164. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeNode.d.ts +63 -0
  165. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeNode.js +56 -0
  166. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeNode.js.map +1 -0
  167. package/lib/esm/tree-widget-react/components/trees/models-tree/UseModelsTree.d.ts +5 -3
  168. package/lib/esm/tree-widget-react/components/trees/models-tree/UseModelsTree.js +26 -13
  169. package/lib/esm/tree-widget-react/components/trees/models-tree/UseModelsTree.js.map +1 -1
  170. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +11 -23
  171. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js +56 -189
  172. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +1 -1
  173. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNodeInternal.d.ts +52 -0
  174. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNodeInternal.js +22 -0
  175. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNodeInternal.js.map +1 -0
  176. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/UseSearchPaths.d.ts +2 -2
  177. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/UseSearchPaths.js +8 -8
  178. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/UseSearchPaths.js.map +1 -1
  179. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.d.ts +6 -12
  180. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js +190 -114
  181. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.js.map +1 -1
  182. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.d.ts +6 -0
  183. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.js +20 -8
  184. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.js.map +1 -1
  185. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/SearchResultsTree.d.ts +4 -2
  186. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/SearchResultsTree.js +73 -13
  187. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/visibility/SearchResultsTree.js.map +1 -1
  188. package/lib/esm/tree-widget-react-internal.d.ts +1 -1
  189. package/lib/esm/tree-widget-react-internal.js +1 -1
  190. package/lib/esm/tree-widget-react-internal.js.map +1 -1
  191. package/package.json +77 -82
  192. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNode.d.ts +0 -41
  193. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNode.js +0 -50
  194. package/lib/esm/tree-widget-react/components/trees/categories-tree/internal/CategoriesTreeNode.js.map +0 -1
  195. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNode.d.ts +0 -19
  196. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNode.js +0 -32
  197. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/ClassificationsTreeNode.js.map +0 -1
  198. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/UseSearchPaths.d.ts +0 -20
  199. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/UseSearchPaths.js +0 -53
  200. package/lib/esm/tree-widget-react/components/trees/classifications-tree/internal/UseSearchPaths.js.map +0 -1
  201. package/lib/esm/tree-widget-react/components/trees/common/internal/AlwaysAndNeverDrawnElementInfo.js.map +0 -1
  202. package/lib/esm/tree-widget-react/components/trees/common/internal/ModelCategoryElementsCountCache.js.map +0 -1
  203. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.d.ts +0 -37
  204. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.js +0 -54
  205. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.js.map +0 -1
@@ -0,0 +1,86 @@
1
+ import { HierarchyNode } from "@itwin/presentation-hierarchies";
2
+ import type { Id64Array, Id64String } from "@itwin/core-bentley";
3
+ import type { ClassGroupingNodeKey, GroupingHierarchyNode, InstancesNodeKey, NonGroupingHierarchyNode } from "@itwin/presentation-hierarchies";
4
+ /**
5
+ * Contains utility functions for working with Categories Tree nodes.
6
+ * @beta
7
+ */
8
+ export declare namespace CategoriesTreeNode {
9
+ /** Checks if the given node represents a `BisCore.DefinitionContainer` element. */
10
+ const isDefinitionContainerNode: (node: Pick<HierarchyNode, "extendedData">) => node is NonGroupingHierarchyNode & {
11
+ key: InstancesNodeKey;
12
+ };
13
+ /**
14
+ * Checks if the given node represents a `BisCore.Category` element.
15
+ *
16
+ * If it does, the node's `extendedData` will contain the following properties:
17
+ * - `description`: Optional description of the category
18
+ * - `hasSubCategories`: Indicates whether the category has sub-categories
19
+ * - `isCategoryOfSubModel`: Indicates that this node is located under a SubModel
20
+ * - `modelIds`: (only if `isCategoryOfSubModel` is true) Ids of models that this category node is contained under
21
+ */
22
+ const isCategoryNode: (node: Pick<HierarchyNode, "extendedData">) => node is Omit<NonGroupingHierarchyNode, "extendedData"> & {
23
+ key: InstancesNodeKey;
24
+ } & {
25
+ extendedData: {
26
+ description?: string;
27
+ hasSubCategories?: boolean;
28
+ } & ({
29
+ isCategoryOfSubModel?: false;
30
+ } | {
31
+ /** Ids of models that this category node is contained under. */
32
+ modelIds: Id64Array;
33
+ isCategoryOfSubModel: true;
34
+ });
35
+ };
36
+ /** Checks if the given node represents a `BisCore.Model`. */
37
+ const isModelNode: (node: Pick<HierarchyNode, "extendedData">) => node is NonGroupingHierarchyNode & {
38
+ key: InstancesNodeKey;
39
+ };
40
+ /**
41
+ * Checks if the given node represents a `BisCore.GeometricElement` element.
42
+ *
43
+ * If it does, the node's `extendedData` will contain the following properties:
44
+ * - `modelId`: `Id64String` of the model containing the element
45
+ * - `categoryId`: `Id64String` of the category of the element
46
+ */
47
+ const isElementNode: (node: Pick<HierarchyNode, "extendedData">) => node is Omit<NonGroupingHierarchyNode, "extendedData"> & {
48
+ key: InstancesNodeKey;
49
+ } & {
50
+ extendedData: {
51
+ modelId: Id64String;
52
+ categoryId: Id64String;
53
+ };
54
+ };
55
+ /**
56
+ * Checks if the given node is a class grouping node of `BisCore.GeometricElement` nodes.
57
+ *
58
+ * If it does, the node's `extendedData` will contain the following properties:
59
+ * - `categoryId`: `Id64String` of the category of the element
60
+ * - `modelElementsMap`: A map of model's `Id64String` -> Set of elements' `Id64String`s contained within this grouping node
61
+ */
62
+ const isElementClassGroupingNode: (node: Pick<HierarchyNode, "key">) => node is Omit<GroupingHierarchyNode, "extendedData"> & {
63
+ key: ClassGroupingNodeKey;
64
+ } & {
65
+ extendedData: {
66
+ categoryId: Id64String;
67
+ modelElementsMap: Map<Id64String, {
68
+ elementIds: Set<Id64String>;
69
+ }>;
70
+ };
71
+ };
72
+ /**
73
+ * Checks if the given node represents a `BisCore.SubCategory` element.
74
+ *
75
+ * If it does, the node's `extendedData` will contain the following properties:
76
+ * - `categoryId`: `Id64String` of the parent category
77
+ */
78
+ const isSubCategoryNode: (node: Pick<HierarchyNode, "extendedData">) => node is Omit<NonGroupingHierarchyNode, "extendedData"> & {
79
+ key: InstancesNodeKey;
80
+ } & {
81
+ extendedData: {
82
+ categoryId: Id64String;
83
+ };
84
+ };
85
+ }
86
+ //# sourceMappingURL=CategoriesTreeNode.d.ts.map
@@ -0,0 +1,50 @@
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 { HierarchyNode } from "@itwin/presentation-hierarchies";
6
+ /**
7
+ * Contains utility functions for working with Categories Tree nodes.
8
+ * @beta
9
+ */
10
+ export var CategoriesTreeNode;
11
+ (function (CategoriesTreeNode) {
12
+ /** Checks if the given node represents a `BisCore.DefinitionContainer` element. */
13
+ CategoriesTreeNode.isDefinitionContainerNode = (node) => !!node.extendedData && "isDefinitionContainer" in node.extendedData && !!node.extendedData.isDefinitionContainer;
14
+ /**
15
+ * Checks if the given node represents a `BisCore.Category` element.
16
+ *
17
+ * If it does, the node's `extendedData` will contain the following properties:
18
+ * - `description`: Optional description of the category
19
+ * - `hasSubCategories`: Indicates whether the category has sub-categories
20
+ * - `isCategoryOfSubModel`: Indicates that this node is located under a SubModel
21
+ * - `modelIds`: (only if `isCategoryOfSubModel` is true) Ids of models that this category node is contained under
22
+ */
23
+ CategoriesTreeNode.isCategoryNode = (node) => !!node.extendedData && "isCategory" in node.extendedData && !!node.extendedData.isCategory;
24
+ /** Checks if the given node represents a `BisCore.Model`. */
25
+ CategoriesTreeNode.isModelNode = (node) => !!node.extendedData && "isModel" in node.extendedData && !!node.extendedData.isModel;
26
+ /**
27
+ * Checks if the given node represents a `BisCore.GeometricElement` element.
28
+ *
29
+ * If it does, the node's `extendedData` will contain the following properties:
30
+ * - `modelId`: `Id64String` of the model containing the element
31
+ * - `categoryId`: `Id64String` of the category of the element
32
+ */
33
+ CategoriesTreeNode.isElementNode = (node) => !!node.extendedData && "isElement" in node.extendedData && !!node.extendedData.isElement;
34
+ /**
35
+ * Checks if the given node is a class grouping node of `BisCore.GeometricElement` nodes.
36
+ *
37
+ * If it does, the node's `extendedData` will contain the following properties:
38
+ * - `categoryId`: `Id64String` of the category of the element
39
+ * - `modelElementsMap`: A map of model's `Id64String` -> Set of elements' `Id64String`s contained within this grouping node
40
+ */
41
+ CategoriesTreeNode.isElementClassGroupingNode = (node) => HierarchyNode.isClassGroupingNode(node);
42
+ /**
43
+ * Checks if the given node represents a `BisCore.SubCategory` element.
44
+ *
45
+ * If it does, the node's `extendedData` will contain the following properties:
46
+ * - `categoryId`: `Id64String` of the parent category
47
+ */
48
+ CategoriesTreeNode.isSubCategoryNode = (node) => !!node.extendedData && "isSubCategory" in node.extendedData && !!node.extendedData.isSubCategory;
49
+ })(CategoriesTreeNode || (CategoriesTreeNode = {}));
50
+ //# sourceMappingURL=CategoriesTreeNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoriesTreeNode.js","sourceRoot":"","sources":["../../../../../../src/tree-widget-react/components/trees/categories-tree/CategoriesTreeNode.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAKhE;;;GAGG;AACH,MAAM,KAAW,kBAAkB,CAiFlC;AAjFD,WAAiB,kBAAkB;IACjC,mFAAmF;IACtE,4CAAyB,GAAG,CAAC,IAAyC,EAAgE,EAAE,CACnJ,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,uBAAuB,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC;IAEnH;;;;;;;;OAQG;IACU,iCAAc,GAAG,CAC5B,IAAyC,EAezC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IAEhG,6DAA6D;IAChD,8BAAW,GAAG,CAAC,IAAyC,EAAgE,EAAE,CACrI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IAEvF;;;;;;OAMG;IACU,gCAAa,GAAG,CAC3B,IAAyC,EAMzC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IAE9F;;;;;;OAMG;IACU,6CAA0B,GAAG,CACxC,IAAgC,EAMhC,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE7C;;;;;OAKG;IACU,oCAAiB,GAAG,CAC/B,IAAyC,EAKzC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,eAAe,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;AACxG,CAAC,EAjFgB,kBAAkB,KAAlB,kBAAkB,QAiFlC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { HierarchyNode } from \"@itwin/presentation-hierarchies\";\n\nimport type { Id64Array, Id64String } from \"@itwin/core-bentley\";\nimport type { ClassGroupingNodeKey, GroupingHierarchyNode, InstancesNodeKey, NonGroupingHierarchyNode } from \"@itwin/presentation-hierarchies\";\n\n/**\n * Contains utility functions for working with Categories Tree nodes.\n * @beta\n */\nexport namespace CategoriesTreeNode {\n /** Checks if the given node represents a `BisCore.DefinitionContainer` element. */\n export const isDefinitionContainerNode = (node: Pick<HierarchyNode, \"extendedData\">): node is NonGroupingHierarchyNode & { key: InstancesNodeKey } =>\n !!node.extendedData && \"isDefinitionContainer\" in node.extendedData && !!node.extendedData.isDefinitionContainer;\n\n /**\n * Checks if the given node represents a `BisCore.Category` element.\n *\n * If it does, the node's `extendedData` will contain the following properties:\n * - `description`: Optional description of the category\n * - `hasSubCategories`: Indicates whether the category has sub-categories\n * - `isCategoryOfSubModel`: Indicates that this node is located under a SubModel\n * - `modelIds`: (only if `isCategoryOfSubModel` is true) Ids of models that this category node is contained under\n */\n export const isCategoryNode = (\n node: Pick<HierarchyNode, \"extendedData\">,\n ): node is Omit<NonGroupingHierarchyNode, \"extendedData\"> & { key: InstancesNodeKey } & {\n extendedData: {\n description?: string;\n hasSubCategories?: boolean;\n } & (\n | {\n isCategoryOfSubModel?: false;\n }\n | {\n /** Ids of models that this category node is contained under. */\n modelIds: Id64Array;\n isCategoryOfSubModel: true;\n }\n );\n } => !!node.extendedData && \"isCategory\" in node.extendedData && !!node.extendedData.isCategory;\n\n /** Checks if the given node represents a `BisCore.Model`. */\n export const isModelNode = (node: Pick<HierarchyNode, \"extendedData\">): node is NonGroupingHierarchyNode & { key: InstancesNodeKey } =>\n !!node.extendedData && \"isModel\" in node.extendedData && !!node.extendedData.isModel;\n\n /**\n * Checks if the given node represents a `BisCore.GeometricElement` element.\n *\n * If it does, the node's `extendedData` will contain the following properties:\n * - `modelId`: `Id64String` of the model containing the element\n * - `categoryId`: `Id64String` of the category of the element\n */\n export const isElementNode = (\n node: Pick<HierarchyNode, \"extendedData\">,\n ): node is Omit<NonGroupingHierarchyNode, \"extendedData\"> & { key: InstancesNodeKey } & {\n extendedData: {\n modelId: Id64String;\n categoryId: Id64String;\n };\n } => !!node.extendedData && \"isElement\" in node.extendedData && !!node.extendedData.isElement;\n\n /**\n * Checks if the given node is a class grouping node of `BisCore.GeometricElement` nodes.\n *\n * If it does, the node's `extendedData` will contain the following properties:\n * - `categoryId`: `Id64String` of the category of the element\n * - `modelElementsMap`: A map of model's `Id64String` -> Set of elements' `Id64String`s contained within this grouping node\n */\n export const isElementClassGroupingNode = (\n node: Pick<HierarchyNode, \"key\">,\n ): node is Omit<GroupingHierarchyNode, \"extendedData\"> & { key: ClassGroupingNodeKey } & {\n extendedData: {\n categoryId: Id64String;\n modelElementsMap: Map<Id64String, { elementIds: Set<Id64String> }>;\n };\n } => HierarchyNode.isClassGroupingNode(node);\n\n /**\n * Checks if the given node represents a `BisCore.SubCategory` element.\n *\n * If it does, the node's `extendedData` will contain the following properties:\n * - `categoryId`: `Id64String` of the parent category\n */\n export const isSubCategoryNode = (\n node: Pick<HierarchyNode, \"extendedData\">,\n ): node is Omit<NonGroupingHierarchyNode, \"extendedData\"> & { key: InstancesNodeKey } & {\n extendedData: {\n categoryId: Id64String;\n };\n } => !!node.extendedData && \"isSubCategory\" in node.extendedData && !!node.extendedData.isSubCategory;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { Id64Array } from "@itwin/core-bentley";
3
- import type { PresentationHierarchyNode } from "@itwin/presentation-hierarchies-react";
3
+ import type { TreeNode } from "@itwin/presentation-hierarchies-react";
4
4
  import type { CategoryInfo } from "../common/CategoriesVisibilityUtils.js";
5
5
  import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js";
6
6
  import type { ExtendedVisibilityTreeRendererProps } from "../common/components/VisibilityTreeRenderer.js";
@@ -25,12 +25,14 @@ interface UseCategoriesTreeResult {
25
25
  }
26
26
  /**
27
27
  * Custom hook to create and manage state for the categories tree.
28
+ *
29
+ * **Note:** Requires `SharedTreeContextProvider` to be present in components tree above.
28
30
  * @beta
29
31
  */
30
32
  export declare function useCategoriesTree({ searchText, activeView, onCategoriesFiltered, emptyTreeContent, hierarchyConfig, getTreeItemProps, }: UseCategoriesTreeProps): UseCategoriesTreeResult;
31
33
  /** @beta */
32
34
  export declare function CategoriesTreeIcon({ node }: {
33
- node: PresentationHierarchyNode;
35
+ node: TreeNode;
34
36
  }): import("react/jsx-runtime").JSX.Element | undefined;
35
37
  export {};
36
38
  //# sourceMappingURL=UseCategoriesTree.d.ts.map
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
- import { useCallback, useEffect, useMemo } from "react";
6
+ import { useCallback, useEffect, useMemo, useState } from "react";
7
7
  import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop";
8
8
  import { Icon } from "@stratakit/foundations";
9
9
  import categorySvg from "@stratakit/icons/bis-category-3d.svg";
@@ -12,9 +12,9 @@ import classSvg from "@stratakit/icons/bis-class.svg";
12
12
  import definitionContainerSvg from "@stratakit/icons/bis-definitions-container.svg";
13
13
  import elementSvg from "@stratakit/icons/bis-element.svg";
14
14
  import { EmptyTreeContent, NoSearchMatches, SearchUnknownError, TooManySearchMatches } from "../common/components/EmptyTree.js";
15
+ import { useSharedTreeContextInternal } from "../common/internal/SharedTreeContextProviderInternal.js";
15
16
  import { useGuid } from "../common/internal/useGuid.js";
16
17
  import { useCachedVisibility } from "../common/internal/useTreeHooks/UseCachedVisibility.js";
17
- import { useIdsCache } from "../common/internal/useTreeHooks/UseIdsCache.js";
18
18
  import { getClassesByView } from "../common/internal/Utils.js";
19
19
  import { CategoriesTreeDefinition, defaultHierarchyConfiguration } from "./CategoriesTreeDefinition.js";
20
20
  import { CategoriesTreeIdsCache } from "./internal/CategoriesTreeIdsCache.js";
@@ -23,6 +23,8 @@ import { CategoriesTreeVisibilityHandler } from "./internal/visibility/Categorie
23
23
  import { createCategoriesSearchResultsTree } from "./internal/visibility/SearchResultsTree.js";
24
24
  /**
25
25
  * Custom hook to create and manage state for the categories tree.
26
+ *
27
+ * **Note:** Requires `SharedTreeContextProvider` to be present in components tree above.
26
28
  * @beta
27
29
  */
28
30
  export function useCategoriesTree({ searchText, activeView, onCategoriesFiltered, emptyTreeContent, hierarchyConfig, getTreeItemProps, }) {
@@ -32,28 +34,34 @@ export function useCategoriesTree({ searchText, activeView, onCategoriesFiltered
32
34
  }),
33
35
  // eslint-disable-next-line react-hooks/exhaustive-deps
34
36
  Object.values(hierarchyConfig ?? {}));
35
- const viewType = activeView.viewType === "2d" ? "2d" : "3d";
37
+ const [viewType, setViewType] = useState(activeView.viewType === "2d" ? "2d" : "3d");
36
38
  const componentId = useGuid();
37
- const { getCache: getCategoriesTreeIdsCache } = useIdsCache({
38
- imodel: activeView.iModel,
39
- createCache,
40
- cacheSpecificProps: useMemo(() => ({ viewType }), [viewType]),
41
- componentId,
42
- });
39
+ // Listen for view type changes
40
+ useEffect(() => {
41
+ return activeView.onDisplayStyleChanged.addListener(() => {
42
+ setViewType(activeView.viewType === "2d" ? "2d" : "3d");
43
+ });
44
+ }, [activeView]);
45
+ const idsCache = useCategoriesTreeIdsCache({ imodel: activeView.iModel, activeViewType: viewType });
43
46
  const { visibilityHandlerFactory, onSearchPathsChanged } = useCategoriesCachedVisibility({
44
47
  activeView,
45
48
  viewType,
46
- getCache: getCategoriesTreeIdsCache,
49
+ idsCache,
47
50
  componentId,
48
51
  hierarchyConfig: hierarchyConfiguration,
49
52
  });
50
53
  const getHierarchyDefinition = useCallback((props) => {
51
- return new CategoriesTreeDefinition({ ...props, viewType, idsCache: getCategoriesTreeIdsCache(), hierarchyConfig: hierarchyConfiguration });
52
- }, [viewType, getCategoriesTreeIdsCache, hierarchyConfiguration]);
54
+ return new CategoriesTreeDefinition({
55
+ ...props,
56
+ viewType,
57
+ idsCache,
58
+ hierarchyConfig: hierarchyConfiguration,
59
+ });
60
+ }, [viewType, idsCache, hierarchyConfiguration]);
53
61
  const { getPaths, searchError } = useSearchPaths({
54
62
  hierarchyConfiguration,
55
63
  searchText,
56
- getCategoriesTreeIdsCache,
64
+ idsCache,
57
65
  onSearchPathsChanged,
58
66
  viewType,
59
67
  onCategoriesFiltered,
@@ -115,43 +123,50 @@ export function CategoriesTreeIcon({ node }) {
115
123
  return _jsx(Icon, { href: getIcon() });
116
124
  }
117
125
  function useCategoriesCachedVisibility(props) {
118
- const { activeView, getCache, viewType, componentId } = props;
126
+ const { activeView, idsCache, viewType, componentId } = props;
119
127
  const { visibilityHandlerFactory, searchPaths, onSearchPathsChanged } = useCachedVisibility({
120
128
  activeView,
121
- getCache,
129
+ idsCache,
122
130
  createSearchResultsTree: useCallback(async (filteredTreeProps) => createSearchResultsTree({ ...filteredTreeProps, viewClasses: getClassesByView(viewType) }), [viewType]),
123
131
  createTreeSpecificVisibilityHandler: useCallback((specificProps) => createTreeSpecificVisibilityHandler({ ...specificProps, hierarchyConfig: props.hierarchyConfig }), [props.hierarchyConfig]),
124
132
  componentId,
125
133
  });
126
134
  useEffect(() => {
127
- getCache().clearFilteredElementsModels();
128
- }, [searchPaths, getCache]);
135
+ idsCache.clearFilteredElementsModels();
136
+ }, [searchPaths, idsCache]);
129
137
  return {
130
138
  visibilityHandlerFactory,
131
139
  onSearchPathsChanged,
132
140
  };
133
141
  }
134
142
  function createTreeSpecificVisibilityHandler(props) {
135
- const { info, getCache, viewport, hierarchyConfig } = props;
143
+ const { info, idsCache, viewport, hierarchyConfig } = props;
136
144
  return new CategoriesTreeVisibilityHandler({
137
145
  alwaysAndNeverDrawnElementInfo: info,
138
- idsCache: getCache(),
146
+ idsCache,
139
147
  viewport,
140
148
  hierarchyConfig,
141
149
  });
142
150
  }
143
151
  async function createSearchResultsTree(props) {
144
- const { searchPaths, imodelAccess, getCache, viewClasses } = props;
152
+ const { searchPaths, imodelAccess, idsCache, viewClasses } = props;
145
153
  return createCategoriesSearchResultsTree({
146
154
  imodelAccess,
147
155
  searchPaths,
148
- idsCache: getCache(),
156
+ idsCache,
149
157
  categoryClassName: viewClasses.categoryClass,
150
158
  categoryElementClassName: viewClasses.elementClass,
151
159
  categoryModelClassName: viewClasses.modelClass,
152
160
  });
153
161
  }
154
- function createCache(props) {
155
- return new CategoriesTreeIdsCache(createECSqlQueryExecutor(props.imodel), props.specificProps.viewType, props.componentId);
162
+ function useCategoriesTreeIdsCache({ imodel, activeViewType }) {
163
+ const { getBaseIdsCache, getCache } = useSharedTreeContextInternal();
164
+ const baseIdsCache = getBaseIdsCache({ type: activeViewType, elementClassName: getClassesByView(activeViewType).elementClass, imodel });
165
+ const categoriesTreeIdsCache = getCache({
166
+ imodel,
167
+ createCache: () => new CategoriesTreeIdsCache({ baseIdsCache, type: activeViewType, queryExecutor: createECSqlQueryExecutor(imodel) }),
168
+ cacheKey: `${activeViewType}-CategoriesTreeIdsCache`,
169
+ });
170
+ return categoriesTreeIdsCache;
156
171
  }
157
172
  //# sourceMappingURL=UseCategoriesTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UseCategoriesTree.js","sourceRoot":"","sources":["../../../../../../src/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { createECSqlQueryExecutor } from \"@itwin/presentation-core-interop\";\nimport { Icon } from \"@stratakit/foundations\";\nimport categorySvg from \"@stratakit/icons/bis-category-3d.svg\";\nimport subcategorySvg from \"@stratakit/icons/bis-category-subcategory.svg\";\nimport classSvg from \"@stratakit/icons/bis-class.svg\";\nimport definitionContainerSvg from \"@stratakit/icons/bis-definitions-container.svg\";\nimport elementSvg from \"@stratakit/icons/bis-element.svg\";\nimport { EmptyTreeContent, NoSearchMatches, SearchUnknownError, TooManySearchMatches } from \"../common/components/EmptyTree.js\";\nimport { useGuid } from \"../common/internal/useGuid.js\";\nimport { useCachedVisibility } from \"../common/internal/useTreeHooks/UseCachedVisibility.js\";\nimport { useIdsCache } from \"../common/internal/useTreeHooks/UseIdsCache.js\";\nimport { getClassesByView } from \"../common/internal/Utils.js\";\nimport { CategoriesTreeDefinition, defaultHierarchyConfiguration } from \"./CategoriesTreeDefinition.js\";\nimport { CategoriesTreeIdsCache } from \"./internal/CategoriesTreeIdsCache.js\";\nimport { useSearchPaths } from \"./internal/UseSearchPaths.js\";\nimport { CategoriesTreeVisibilityHandler } from \"./internal/visibility/CategoriesTreeVisibilityHandler.js\";\nimport { createCategoriesSearchResultsTree } from \"./internal/visibility/SearchResultsTree.js\";\n\nimport type { ReactNode } from \"react\";\nimport type { GuidString, Id64Array } from \"@itwin/core-bentley\";\nimport type { PresentationHierarchyNode } from \"@itwin/presentation-hierarchies-react\";\nimport type { CategoryInfo } from \"../common/CategoriesVisibilityUtils.js\";\nimport type { VisibilityTreeProps } from \"../common/components/VisibilityTree.js\";\nimport type { ExtendedVisibilityTreeRendererProps } from \"../common/components/VisibilityTreeRenderer.js\";\nimport type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from \"../common/internal/useTreeHooks/UseCachedVisibility.js\";\nimport type { CreateCacheProps } from \"../common/internal/useTreeHooks/UseIdsCache.js\";\nimport type { SearchResultsTree } from \"../common/internal/visibility/BaseSearchResultsTree.js\";\nimport type { TreeWidgetViewport } from \"../common/TreeWidgetViewport.js\";\nimport type { CategoriesTreeHierarchyConfiguration } from \"./CategoriesTreeDefinition.js\";\nimport type { CategoriesTreeSearchError } from \"./internal/UseSearchPaths.js\";\nimport type { CategoriesTreeSearchTargets } from \"./internal/visibility/SearchResultsTree.js\";\n\n/** @beta */\nexport interface UseCategoriesTreeProps {\n activeView: TreeWidgetViewport;\n onCategoriesFiltered?: (props: { categories: CategoryInfo[] | undefined; models?: Id64Array }) => void;\n searchText?: string;\n emptyTreeContent?: ReactNode;\n hierarchyConfig?: Partial<CategoriesTreeHierarchyConfiguration>;\n getTreeItemProps?: ExtendedVisibilityTreeRendererProps[\"getTreeItemProps\"];\n}\n\n/** @beta */\ninterface UseCategoriesTreeResult {\n treeProps: Pick<\n VisibilityTreeProps,\n \"treeName\" | \"getHierarchyDefinition\" | \"getSearchPaths\" | \"visibilityHandlerFactory\" | \"highlightText\" | \"emptyTreeContent\"\n >;\n getTreeItemProps: Required<ExtendedVisibilityTreeRendererProps>[\"getTreeItemProps\"];\n}\n\n/**\n * Custom hook to create and manage state for the categories tree.\n * @beta\n */\nexport function useCategoriesTree({\n searchText,\n activeView,\n onCategoriesFiltered,\n emptyTreeContent,\n hierarchyConfig,\n getTreeItemProps,\n}: UseCategoriesTreeProps): UseCategoriesTreeResult {\n const hierarchyConfiguration = useMemo<CategoriesTreeHierarchyConfiguration>(\n () => ({\n ...defaultHierarchyConfiguration,\n ...hierarchyConfig,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(hierarchyConfig ?? {}),\n );\n const viewType = activeView.viewType === \"2d\" ? \"2d\" : \"3d\";\n const componentId = useGuid();\n\n const { getCache: getCategoriesTreeIdsCache } = useIdsCache<CategoriesTreeIdsCache, { viewType: \"2d\" | \"3d\" }>({\n imodel: activeView.iModel,\n createCache,\n cacheSpecificProps: useMemo(() => ({ viewType }), [viewType]),\n componentId,\n });\n\n const { visibilityHandlerFactory, onSearchPathsChanged } = useCategoriesCachedVisibility({\n activeView,\n viewType,\n getCache: getCategoriesTreeIdsCache,\n componentId,\n hierarchyConfig: hierarchyConfiguration,\n });\n\n const getHierarchyDefinition = useCallback<VisibilityTreeProps[\"getHierarchyDefinition\"]>(\n (props) => {\n return new CategoriesTreeDefinition({ ...props, viewType, idsCache: getCategoriesTreeIdsCache(), hierarchyConfig: hierarchyConfiguration });\n },\n [viewType, getCategoriesTreeIdsCache, hierarchyConfiguration],\n );\n\n const { getPaths, searchError } = useSearchPaths({\n hierarchyConfiguration,\n searchText,\n getCategoriesTreeIdsCache,\n onSearchPathsChanged,\n viewType,\n onCategoriesFiltered,\n componentId,\n });\n\n return {\n treeProps: {\n treeName: \"categories-tree-v2\",\n getHierarchyDefinition,\n getSearchPaths: getPaths,\n visibilityHandlerFactory,\n emptyTreeContent: useMemo(() => getEmptyTreeContentComponent(searchText, searchError, emptyTreeContent), [searchText, searchError, emptyTreeContent]),\n highlightText: searchText,\n },\n getTreeItemProps: (node, rendererProps) => ({\n ...rendererProps.getTreeItemProps?.(node),\n decorations: <CategoriesTreeIcon node={node} />,\n description: node.nodeData.extendedData?.description,\n ...getTreeItemProps?.(node, rendererProps),\n }),\n };\n}\n\nfunction getEmptyTreeContentComponent(searchText?: string, error?: CategoriesTreeSearchError, emptyTreeContent?: React.ReactNode) {\n if (error) {\n if (error === \"tooManySearchMatches\") {\n return <TooManySearchMatches base={\"categoriesTree\"} />;\n }\n return <SearchUnknownError base={\"categoriesTree\"} />;\n }\n if (searchText) {\n return <NoSearchMatches base={\"categoriesTree\"} />;\n }\n if (emptyTreeContent) {\n return emptyTreeContent;\n }\n return <EmptyTreeContent icon={categorySvg} />;\n}\n\n/** @beta */\nexport function CategoriesTreeIcon({ node }: { node: PresentationHierarchyNode }) {\n if (node.nodeData.extendedData?.imageId === undefined) {\n return undefined;\n }\n\n const getIcon = () => {\n switch (node.nodeData.extendedData!.imageId) {\n case \"icon-layers\":\n return categorySvg;\n case \"icon-layers-isolate\":\n return subcategorySvg;\n case \"icon-definition-container\":\n return definitionContainerSvg;\n case \"icon-item\":\n return elementSvg;\n case \"icon-ec-class\":\n return classSvg;\n default:\n return undefined;\n }\n };\n\n return <Icon href={getIcon()} />;\n}\n\nfunction useCategoriesCachedVisibility(props: {\n activeView: TreeWidgetViewport;\n getCache: () => CategoriesTreeIdsCache;\n viewType: \"2d\" | \"3d\";\n componentId: GuidString;\n hierarchyConfig: CategoriesTreeHierarchyConfiguration;\n}) {\n const { activeView, getCache, viewType, componentId } = props;\n const { visibilityHandlerFactory, searchPaths, onSearchPathsChanged } = useCachedVisibility<CategoriesTreeIdsCache, CategoriesTreeSearchTargets>({\n activeView,\n getCache,\n createSearchResultsTree: useCallback(\n async (filteredTreeProps: CreateSearchResultsTreeProps<CategoriesTreeIdsCache>) =>\n createSearchResultsTree({ ...filteredTreeProps, viewClasses: getClassesByView(viewType) }),\n [viewType],\n ),\n createTreeSpecificVisibilityHandler: useCallback(\n (specificProps) => createTreeSpecificVisibilityHandler({ ...specificProps, hierarchyConfig: props.hierarchyConfig }),\n [props.hierarchyConfig],\n ),\n componentId,\n });\n\n useEffect(() => {\n getCache().clearFilteredElementsModels();\n }, [searchPaths, getCache]);\n\n return {\n visibilityHandlerFactory,\n onSearchPathsChanged,\n };\n}\n\nfunction createTreeSpecificVisibilityHandler(\n props: CreateTreeSpecificVisibilityHandlerProps<CategoriesTreeIdsCache> & { hierarchyConfig: CategoriesTreeHierarchyConfiguration },\n) {\n const { info, getCache, viewport, hierarchyConfig } = props;\n return new CategoriesTreeVisibilityHandler({\n alwaysAndNeverDrawnElementInfo: info,\n idsCache: getCache(),\n viewport,\n hierarchyConfig,\n });\n}\n\nasync function createSearchResultsTree(\n props: CreateSearchResultsTreeProps<CategoriesTreeIdsCache> & { viewClasses: ReturnType<typeof getClassesByView> },\n): Promise<SearchResultsTree<CategoriesTreeSearchTargets>> {\n const { searchPaths, imodelAccess, getCache, viewClasses } = props;\n return createCategoriesSearchResultsTree({\n imodelAccess,\n searchPaths,\n idsCache: getCache(),\n categoryClassName: viewClasses.categoryClass,\n categoryElementClassName: viewClasses.elementClass,\n categoryModelClassName: viewClasses.modelClass,\n });\n}\n\nfunction createCache(props: CreateCacheProps<{ viewType: \"2d\" | \"3d\" }>) {\n return new CategoriesTreeIdsCache(createECSqlQueryExecutor(props.imodel), props.specificProps.viewType, props.componentId);\n}\n"]}
1
+ {"version":3,"file":"UseCategoriesTree.js","sourceRoot":"","sources":["../../../../../../src/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { createECSqlQueryExecutor } from \"@itwin/presentation-core-interop\";\nimport { Icon } from \"@stratakit/foundations\";\nimport categorySvg from \"@stratakit/icons/bis-category-3d.svg\";\nimport subcategorySvg from \"@stratakit/icons/bis-category-subcategory.svg\";\nimport classSvg from \"@stratakit/icons/bis-class.svg\";\nimport definitionContainerSvg from \"@stratakit/icons/bis-definitions-container.svg\";\nimport elementSvg from \"@stratakit/icons/bis-element.svg\";\nimport { EmptyTreeContent, NoSearchMatches, SearchUnknownError, TooManySearchMatches } from \"../common/components/EmptyTree.js\";\nimport { useSharedTreeContextInternal } from \"../common/internal/SharedTreeContextProviderInternal.js\";\nimport { useGuid } from \"../common/internal/useGuid.js\";\nimport { useCachedVisibility } from \"../common/internal/useTreeHooks/UseCachedVisibility.js\";\nimport { getClassesByView } from \"../common/internal/Utils.js\";\nimport { CategoriesTreeDefinition, defaultHierarchyConfiguration } from \"./CategoriesTreeDefinition.js\";\nimport { CategoriesTreeIdsCache } from \"./internal/CategoriesTreeIdsCache.js\";\nimport { useSearchPaths } from \"./internal/UseSearchPaths.js\";\nimport { CategoriesTreeVisibilityHandler } from \"./internal/visibility/CategoriesTreeVisibilityHandler.js\";\nimport { createCategoriesSearchResultsTree } from \"./internal/visibility/SearchResultsTree.js\";\n\nimport type { ReactNode } from \"react\";\nimport type { GuidString, Id64Array } from \"@itwin/core-bentley\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { TreeNode } from \"@itwin/presentation-hierarchies-react\";\nimport type { CategoryInfo } from \"../common/CategoriesVisibilityUtils.js\";\nimport type { VisibilityTreeProps } from \"../common/components/VisibilityTree.js\";\nimport type { ExtendedVisibilityTreeRendererProps } from \"../common/components/VisibilityTreeRenderer.js\";\nimport type { CreateSearchResultsTreeProps, CreateTreeSpecificVisibilityHandlerProps } from \"../common/internal/useTreeHooks/UseCachedVisibility.js\";\nimport type { SearchResultsTree } from \"../common/internal/visibility/BaseSearchResultsTree.js\";\nimport type { TreeWidgetViewport } from \"../common/TreeWidgetViewport.js\";\nimport type { CategoriesTreeHierarchyConfiguration } from \"./CategoriesTreeDefinition.js\";\nimport type { CategoriesTreeSearchError } from \"./internal/UseSearchPaths.js\";\nimport type { CategoriesTreeSearchTargets } from \"./internal/visibility/SearchResultsTree.js\";\n\n/** @beta */\nexport interface UseCategoriesTreeProps {\n activeView: TreeWidgetViewport;\n onCategoriesFiltered?: (props: { categories: CategoryInfo[] | undefined; models?: Id64Array }) => void;\n searchText?: string;\n emptyTreeContent?: ReactNode;\n hierarchyConfig?: Partial<CategoriesTreeHierarchyConfiguration>;\n getTreeItemProps?: ExtendedVisibilityTreeRendererProps[\"getTreeItemProps\"];\n}\n\n/** @beta */\ninterface UseCategoriesTreeResult {\n treeProps: Pick<\n VisibilityTreeProps,\n \"treeName\" | \"getHierarchyDefinition\" | \"getSearchPaths\" | \"visibilityHandlerFactory\" | \"highlightText\" | \"emptyTreeContent\"\n >;\n getTreeItemProps: Required<ExtendedVisibilityTreeRendererProps>[\"getTreeItemProps\"];\n}\n\n/**\n * Custom hook to create and manage state for the categories tree.\n *\n * **Note:** Requires `SharedTreeContextProvider` to be present in components tree above.\n * @beta\n */\nexport function useCategoriesTree({\n searchText,\n activeView,\n onCategoriesFiltered,\n emptyTreeContent,\n hierarchyConfig,\n getTreeItemProps,\n}: UseCategoriesTreeProps): UseCategoriesTreeResult {\n const hierarchyConfiguration = useMemo<CategoriesTreeHierarchyConfiguration>(\n () => ({\n ...defaultHierarchyConfiguration,\n ...hierarchyConfig,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(hierarchyConfig ?? {}),\n );\n const [viewType, setViewType] = useState<\"2d\" | \"3d\">(activeView.viewType === \"2d\" ? \"2d\" : \"3d\");\n const componentId = useGuid();\n\n // Listen for view type changes\n useEffect(() => {\n return activeView.onDisplayStyleChanged.addListener(() => {\n setViewType(activeView.viewType === \"2d\" ? \"2d\" : \"3d\");\n });\n }, [activeView]);\n\n const idsCache = useCategoriesTreeIdsCache({ imodel: activeView.iModel, activeViewType: viewType });\n\n const { visibilityHandlerFactory, onSearchPathsChanged } = useCategoriesCachedVisibility({\n activeView,\n viewType,\n idsCache,\n componentId,\n hierarchyConfig: hierarchyConfiguration,\n });\n\n const getHierarchyDefinition = useCallback<VisibilityTreeProps[\"getHierarchyDefinition\"]>(\n (props) => {\n return new CategoriesTreeDefinition({\n ...props,\n viewType,\n idsCache,\n hierarchyConfig: hierarchyConfiguration,\n });\n },\n [viewType, idsCache, hierarchyConfiguration],\n );\n\n const { getPaths, searchError } = useSearchPaths({\n hierarchyConfiguration,\n searchText,\n idsCache,\n onSearchPathsChanged,\n viewType,\n onCategoriesFiltered,\n componentId,\n });\n\n return {\n treeProps: {\n treeName: \"categories-tree-v2\",\n getHierarchyDefinition,\n getSearchPaths: getPaths,\n visibilityHandlerFactory,\n emptyTreeContent: useMemo(() => getEmptyTreeContentComponent(searchText, searchError, emptyTreeContent), [searchText, searchError, emptyTreeContent]),\n highlightText: searchText,\n },\n getTreeItemProps: (node, rendererProps) => ({\n ...rendererProps.getTreeItemProps?.(node),\n decorations: <CategoriesTreeIcon node={node} />,\n description: node.nodeData.extendedData?.description,\n ...getTreeItemProps?.(node, rendererProps),\n }),\n };\n}\n\nfunction getEmptyTreeContentComponent(searchText?: string, error?: CategoriesTreeSearchError, emptyTreeContent?: React.ReactNode) {\n if (error) {\n if (error === \"tooManySearchMatches\") {\n return <TooManySearchMatches base={\"categoriesTree\"} />;\n }\n return <SearchUnknownError base={\"categoriesTree\"} />;\n }\n if (searchText) {\n return <NoSearchMatches base={\"categoriesTree\"} />;\n }\n if (emptyTreeContent) {\n return emptyTreeContent;\n }\n return <EmptyTreeContent icon={categorySvg} />;\n}\n\n/** @beta */\nexport function CategoriesTreeIcon({ node }: { node: TreeNode }) {\n if (node.nodeData.extendedData?.imageId === undefined) {\n return undefined;\n }\n\n const getIcon = () => {\n switch (node.nodeData.extendedData!.imageId) {\n case \"icon-layers\":\n return categorySvg;\n case \"icon-layers-isolate\":\n return subcategorySvg;\n case \"icon-definition-container\":\n return definitionContainerSvg;\n case \"icon-item\":\n return elementSvg;\n case \"icon-ec-class\":\n return classSvg;\n default:\n return undefined;\n }\n };\n\n return <Icon href={getIcon()} />;\n}\n\nfunction useCategoriesCachedVisibility(props: {\n activeView: TreeWidgetViewport;\n idsCache: CategoriesTreeIdsCache;\n viewType: \"2d\" | \"3d\";\n componentId: GuidString;\n hierarchyConfig: CategoriesTreeHierarchyConfiguration;\n}) {\n const { activeView, idsCache, viewType, componentId } = props;\n const { visibilityHandlerFactory, searchPaths, onSearchPathsChanged } = useCachedVisibility<CategoriesTreeIdsCache, CategoriesTreeSearchTargets>({\n activeView,\n idsCache,\n createSearchResultsTree: useCallback(\n async (filteredTreeProps: CreateSearchResultsTreeProps<CategoriesTreeIdsCache>) =>\n createSearchResultsTree({ ...filteredTreeProps, viewClasses: getClassesByView(viewType) }),\n [viewType],\n ),\n createTreeSpecificVisibilityHandler: useCallback(\n (specificProps) => createTreeSpecificVisibilityHandler({ ...specificProps, hierarchyConfig: props.hierarchyConfig }),\n [props.hierarchyConfig],\n ),\n componentId,\n });\n\n useEffect(() => {\n idsCache.clearFilteredElementsModels();\n }, [searchPaths, idsCache]);\n\n return {\n visibilityHandlerFactory,\n onSearchPathsChanged,\n };\n}\n\nfunction createTreeSpecificVisibilityHandler(\n props: CreateTreeSpecificVisibilityHandlerProps<CategoriesTreeIdsCache> & {\n hierarchyConfig: CategoriesTreeHierarchyConfiguration;\n },\n) {\n const { info, idsCache, viewport, hierarchyConfig } = props;\n return new CategoriesTreeVisibilityHandler({\n alwaysAndNeverDrawnElementInfo: info,\n idsCache,\n viewport,\n hierarchyConfig,\n });\n}\n\nasync function createSearchResultsTree(\n props: CreateSearchResultsTreeProps<CategoriesTreeIdsCache> & { viewClasses: ReturnType<typeof getClassesByView> },\n): Promise<SearchResultsTree<CategoriesTreeSearchTargets>> {\n const { searchPaths, imodelAccess, idsCache, viewClasses } = props;\n return createCategoriesSearchResultsTree({\n imodelAccess,\n searchPaths,\n idsCache,\n categoryClassName: viewClasses.categoryClass,\n categoryElementClassName: viewClasses.elementClass,\n categoryModelClassName: viewClasses.modelClass,\n });\n}\n\nfunction useCategoriesTreeIdsCache({ imodel, activeViewType }: { imodel: IModelConnection; activeViewType: \"2d\" | \"3d\" }): CategoriesTreeIdsCache {\n const { getBaseIdsCache, getCache } = useSharedTreeContextInternal();\n\n const baseIdsCache = getBaseIdsCache({ type: activeViewType, elementClassName: getClassesByView(activeViewType).elementClass, imodel });\n const categoriesTreeIdsCache = getCache({\n imodel,\n createCache: () => new CategoriesTreeIdsCache({ baseIdsCache, type: activeViewType, queryExecutor: createECSqlQueryExecutor(imodel) }),\n cacheKey: `${activeViewType}-CategoriesTreeIdsCache`,\n });\n return categoriesTreeIdsCache;\n}\n"]}
@@ -1,33 +1,31 @@
1
+ import { BaseIdsCacheImpl } from "../../common/internal/caches/BaseIdsCache.js";
1
2
  import type { Observable } from "rxjs";
2
- import type { GuidString, Id64Arg, Id64Array, Id64Set, Id64String } from "@itwin/core-bentley";
3
+ import type { Id64Arg, Id64Set, Id64String } from "@itwin/core-bentley";
3
4
  import type { LimitingECSqlQueryExecutor } from "@itwin/presentation-hierarchies";
4
5
  import type { InstanceKey } from "@itwin/presentation-shared";
5
- import type { CategoryId, DefinitionContainerId, ModelId, SubCategoryId } from "../../common/internal/Types.js";
6
+ import type { BaseIdsCacheImplProps } from "../../common/internal/caches/BaseIdsCache.js";
7
+ import type { CategoryId, DefinitionContainerId } from "../../common/internal/Types.js";
6
8
  /** @internal */
7
9
  export interface CategoryInfo {
8
10
  id: CategoryId;
9
11
  subCategoryChildCount: number;
10
12
  hasElements: boolean;
11
13
  }
14
+ interface CategoriesTreeIdsCacheProps extends BaseIdsCacheImplProps {
15
+ queryExecutor: LimitingECSqlQueryExecutor;
16
+ type: "2d" | "3d";
17
+ }
12
18
  /** @internal */
13
- export declare class CategoriesTreeIdsCache implements Disposable {
19
+ export declare class CategoriesTreeIdsCache extends BaseIdsCacheImpl {
14
20
  #private;
15
- constructor(queryExecutor: LimitingECSqlQueryExecutor, viewType: "3d" | "2d", componentId?: GuidString);
16
- [Symbol.dispose](): void;
21
+ constructor(props: CategoriesTreeIdsCacheProps);
17
22
  private queryFilteredElementsModels;
18
23
  getFilteredElementsModels(filteredElementIds: Id64Arg): Observable<Map<string, string>>;
19
24
  clearFilteredElementsModels(): void;
20
- private queryElementModelCategories;
21
25
  private queryCategories;
22
26
  private queryIsDefinitionContainersSupported;
23
27
  private queryDefinitionContainers;
24
- private querySubCategories;
25
28
  private getModelsCategoriesInfo;
26
- private getElementModelsCategories;
27
- private queryModeledElements;
28
- private getModelWithCategoryModeledElements;
29
- getCategoriesModeledElements(modelId: Id64String, categoryIds: Id64Arg): Observable<Id64Array>;
30
- private getSubCategoriesInfo;
31
29
  private getDefinitionContainersInfo;
32
30
  getDirectChildDefinitionContainersAndCategories({ parentDefinitionContainerIds, includeEmpty, }: {
33
31
  parentDefinitionContainerIds: Id64Arg;
@@ -36,13 +34,6 @@ export declare class CategoriesTreeIdsCache implements Disposable {
36
34
  categories: CategoryInfo[];
37
35
  definitionContainers: Array<DefinitionContainerId>;
38
36
  }>;
39
- getCategoriesElementModels(categoryIds: Id64Arg, includeSubModels?: boolean): Observable<{
40
- id: CategoryId;
41
- models: Array<ModelId> | undefined;
42
- }>;
43
- getModelCategoryIds(modelId: Id64String): Observable<Id64Array>;
44
- getAllCategories(): Observable<Id64Set>;
45
- hasSubModel(elementId: Id64String): Observable<boolean>;
46
37
  getAllContainedCategories({ definitionContainerIds, includeEmptyCategories, }: {
47
38
  definitionContainerIds: Id64Arg;
48
39
  includeEmptyCategories?: boolean;
@@ -54,7 +45,6 @@ export declare class CategoriesTreeIdsCache implements Disposable {
54
45
  } | {
55
46
  subCategoryId: Id64String;
56
47
  }): Observable<InstanceKey[]>;
57
- getCategoryElementsCount(modelId: Id64String, categoryId: Id64String): Observable<number>;
58
48
  getAllDefinitionContainersAndCategories(props?: {
59
49
  includeEmpty?: boolean;
60
50
  }): Observable<{
@@ -67,7 +57,7 @@ export declare class CategoriesTreeIdsCache implements Disposable {
67
57
  categories: CategoryInfo[];
68
58
  definitionContainers: Array<DefinitionContainerId>;
69
59
  }>;
70
- getSubCategories(categoryId: Id64String): Observable<Array<SubCategoryId>>;
71
60
  getIsDefinitionContainerSupported(): Observable<boolean>;
72
61
  }
62
+ export {};
73
63
  //# sourceMappingURL=CategoriesTreeIdsCache.d.ts.map