@itwin/tree-widget-react 3.2.4 → 3.4.0

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 (479) hide show
  1. package/CHANGELOG.md +24 -2
  2. package/README.md +1 -3
  3. package/lib/cjs/package.json +1 -0
  4. package/lib/cjs/tree-widget-react/TreeWidget.js.map +1 -0
  5. package/lib/cjs/{components → tree-widget-react/components}/SelectableTree.js +4 -5
  6. package/lib/cjs/tree-widget-react/components/SelectableTree.js.map +1 -0
  7. package/lib/{esm → cjs/tree-widget-react}/components/TreeSelector.d.ts +1 -1
  8. package/lib/cjs/tree-widget-react/components/TreeSelector.js.map +1 -0
  9. package/lib/cjs/{components → tree-widget-react/components}/TreeWidgetUiItemsProvider.d.ts +1 -1
  10. package/lib/cjs/{components → tree-widget-react/components}/TreeWidgetUiItemsProvider.js +5 -5
  11. package/lib/cjs/tree-widget-react/components/TreeWidgetUiItemsProvider.js.map +1 -0
  12. package/lib/cjs/{components → tree-widget-react/components}/tree-header/TreeHeader.js +8 -9
  13. package/lib/cjs/tree-widget-react/components/tree-header/TreeHeader.js.map +1 -0
  14. package/lib/cjs/{components → tree-widget-react/components}/tree-header/TreeWithHeader.d.ts +1 -1
  15. package/lib/cjs/{components → tree-widget-react/components}/tree-header/TreeWithHeader.js +2 -2
  16. package/lib/cjs/tree-widget-react/components/tree-header/TreeWithHeader.js.map +1 -0
  17. package/lib/{esm → cjs/tree-widget-react}/components/trees/categories-tree/CategoriesTree.d.ts +2 -2
  18. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTree.js +5 -5
  19. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTree.js.map +1 -0
  20. package/lib/{esm → cjs/tree-widget-react}/components/trees/categories-tree/CategoriesTreeButtons.d.ts +2 -2
  21. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeButtons.js +9 -9
  22. package/lib/{esm → cjs/tree-widget-react}/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -1
  23. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeComponent.d.ts +2 -2
  24. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeComponent.js +19 -19
  25. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -0
  26. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeDefinition.js +2 -2
  27. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js.map +1 -0
  28. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesVisibilityHandler.d.ts +1 -1
  29. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesVisibilityHandler.js +6 -6
  30. package/lib/cjs/tree-widget-react/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
  31. package/lib/{esm → cjs/tree-widget-react}/components/trees/categories-tree/UseCategoriesTree.d.ts +3 -3
  32. package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/UseCategoriesTree.js +12 -12
  33. package/lib/cjs/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js.map +1 -0
  34. package/lib/cjs/{components → tree-widget-react/components}/trees/common/CategoriesVisibilityUtils.js +0 -1
  35. package/lib/cjs/tree-widget-react/components/trees/common/CategoriesVisibilityUtils.js.map +1 -0
  36. package/lib/cjs/tree-widget-react/components/trees/common/FocusedInstancesContext.d.ts +35 -0
  37. package/lib/cjs/{components/trees/common/FocusedInstancesContextProvider.js → tree-widget-react/components/trees/common/FocusedInstancesContext.js} +20 -4
  38. package/lib/cjs/tree-widget-react/components/trees/common/FocusedInstancesContext.js.map +1 -0
  39. package/lib/cjs/tree-widget-react/components/trees/common/Rxjs.js.map +1 -0
  40. package/lib/{esm → cjs/tree-widget-react}/components/trees/common/Tooltip.d.ts +1 -1
  41. package/lib/cjs/{components → tree-widget-react/components}/trees/common/Tooltip.js +3 -3
  42. package/lib/cjs/tree-widget-react/components/trees/common/Tooltip.js.map +1 -0
  43. package/lib/cjs/tree-widget-react/components/trees/common/TreeErrors.js.map +1 -0
  44. package/lib/cjs/tree-widget-react/components/trees/common/UseActiveViewport.js.map +1 -0
  45. package/lib/cjs/tree-widget-react/components/trees/common/UseFiltering.js.map +1 -0
  46. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchiesLocalization.js +33 -0
  47. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchiesLocalization.js.map +1 -0
  48. package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseHierarchyFiltering.js +8 -8
  49. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyFiltering.js.map +1 -0
  50. package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseHierarchyVisibility.d.ts +1 -1
  51. package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseHierarchyVisibility.js +2 -2
  52. package/lib/cjs/tree-widget-react/components/trees/common/UseHierarchyVisibility.js.map +1 -0
  53. package/lib/cjs/tree-widget-react/components/trees/common/UseIModelChangeListener.js.map +1 -0
  54. package/lib/cjs/tree-widget-react/components/trees/common/UseMultiCheckboxHandler.js.map +1 -0
  55. package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseNodeHighlighting.js +4 -4
  56. package/lib/cjs/tree-widget-react/components/trees/common/UseNodeHighlighting.js.map +1 -0
  57. package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseTelemetryContext.js +3 -3
  58. package/lib/{esm → cjs/tree-widget-react}/components/trees/common/UseTelemetryContext.js.map +1 -1
  59. package/lib/cjs/tree-widget-react/components/trees/common/Utils.js.map +1 -0
  60. package/lib/cjs/tree-widget-react/components/trees/common/components/Delayed.js.map +1 -0
  61. package/lib/cjs/tree-widget-react/components/trees/common/components/ProgressOverlay.js.map +1 -0
  62. package/lib/{esm → cjs/tree-widget-react}/components/trees/common/components/Tree.d.ts +4 -4
  63. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/Tree.js +22 -22
  64. package/lib/cjs/tree-widget-react/components/trees/common/components/Tree.js.map +1 -0
  65. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/TreeNodeCheckbox.js +4 -1
  66. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.js.map +1 -0
  67. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/TreeNodeRenderer.d.ts +1 -1
  68. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/TreeNodeRenderer.js +2 -2
  69. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeNodeRenderer.js.map +1 -0
  70. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/TreeRenderer.d.ts +3 -3
  71. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/TreeRenderer.js +7 -6
  72. package/lib/cjs/tree-widget-react/components/trees/common/components/TreeRenderer.js.map +1 -0
  73. package/lib/{esm → cjs/tree-widget-react}/components/trees/common/components/VisibilityTree.d.ts +4 -4
  74. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/VisibilityTree.js +6 -6
  75. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTree.js.map +1 -0
  76. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/VisibilityTreeRenderer.d.ts +2 -2
  77. package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/VisibilityTreeRenderer.js +4 -4
  78. package/lib/cjs/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js.map +1 -0
  79. package/lib/{esm → cjs/tree-widget-react}/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +1 -1
  80. package/lib/cjs/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTree.js +6 -6
  81. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -0
  82. package/lib/{esm → cjs/tree-widget-react}/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +1 -1
  83. package/lib/cjs/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTreeComponent.js +5 -5
  84. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -0
  85. package/lib/cjs/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
  86. package/lib/cjs/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTree.d.ts +1 -1
  87. package/lib/cjs/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTree.js +8 -8
  88. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -0
  89. package/lib/cjs/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +1 -1
  90. package/lib/cjs/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTreeComponent.js +5 -5
  91. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -0
  92. package/lib/{esm → cjs/tree-widget-react}/components/trees/imodel-content-tree/IModelContentTreeDefinition.d.ts +1 -1
  93. package/lib/cjs/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTreeDefinition.js +3 -3
  94. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
  95. package/lib/cjs/{components → tree-widget-react/components}/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +2 -2
  96. package/lib/cjs/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +1 -0
  97. package/lib/cjs/{components → tree-widget-react/components}/trees/index.d.ts +17 -16
  98. package/lib/cjs/tree-widget-react/components/trees/index.js +39 -0
  99. package/lib/cjs/tree-widget-react/components/trees/index.js.map +1 -0
  100. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/ModelsTree.d.ts +2 -2
  101. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/ModelsTree.js +5 -5
  102. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTree.js.map +1 -0
  103. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeButtons.d.ts +1 -1
  104. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeButtons.js +22 -22
  105. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js.map +1 -0
  106. package/lib/{esm → cjs/tree-widget-react}/components/trees/models-tree/ModelsTreeComponent.d.ts +8 -3
  107. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js +106 -0
  108. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js.map +1 -0
  109. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeDefinition.d.ts +1 -1
  110. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeDefinition.js +10 -10
  111. package/lib/cjs/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -0
  112. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/UseModelsTree.d.ts +4 -4
  113. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/UseModelsTree.js +27 -27
  114. package/lib/cjs/tree-widget-react/components/trees/models-tree/UseModelsTree.js.map +1 -0
  115. package/lib/cjs/tree-widget-react/components/trees/models-tree/Utils.js.map +1 -0
  116. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js +2 -2
  117. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +1 -0
  118. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/FilteredTree.js.map +1 -0
  119. package/lib/{esm → cjs/tree-widget-react}/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +1 -1
  120. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeIdsCache.js +2 -2
  121. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +1 -0
  122. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.js.map +1 -0
  123. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +2 -2
  124. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +72 -80
  125. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -0
  126. package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/VisibilityChangeEventListener.js +0 -1
  127. package/lib/cjs/tree-widget-react/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +1 -0
  128. package/lib/cjs/tree-widget-react/components/utils/IsPromiseLike.js.map +1 -0
  129. package/lib/cjs/tree-widget-react.d.ts +5 -5
  130. package/lib/cjs/tree-widget-react.js +10 -10
  131. package/lib/cjs/tree-widget-react.js.map +1 -1
  132. package/lib/esm/tree-widget-react/TreeWidget.js.map +1 -0
  133. package/lib/esm/{components → tree-widget-react/components}/SelectableTree.js +2 -3
  134. package/lib/esm/tree-widget-react/components/SelectableTree.js.map +1 -0
  135. package/lib/{cjs → esm/tree-widget-react}/components/TreeSelector.d.ts +1 -1
  136. package/lib/esm/tree-widget-react/components/TreeSelector.js.map +1 -0
  137. package/lib/esm/{components → tree-widget-react/components}/TreeWidgetUiItemsProvider.d.ts +1 -1
  138. package/lib/esm/{components → tree-widget-react/components}/TreeWidgetUiItemsProvider.js +2 -2
  139. package/lib/esm/tree-widget-react/components/TreeWidgetUiItemsProvider.js.map +1 -0
  140. package/lib/esm/{components → tree-widget-react/components}/tree-header/TreeHeader.js +2 -3
  141. package/lib/esm/tree-widget-react/components/tree-header/TreeHeader.js.map +1 -0
  142. package/lib/esm/{components → tree-widget-react/components}/tree-header/TreeWithHeader.d.ts +1 -1
  143. package/lib/esm/{components → tree-widget-react/components}/tree-header/TreeWithHeader.js +1 -1
  144. package/lib/esm/tree-widget-react/components/tree-header/TreeWithHeader.js.map +1 -0
  145. package/lib/{cjs → esm/tree-widget-react}/components/trees/categories-tree/CategoriesTree.d.ts +2 -2
  146. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTree.js +3 -3
  147. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTree.js.map +1 -0
  148. package/lib/{cjs → esm/tree-widget-react}/components/trees/categories-tree/CategoriesTreeButtons.d.ts +2 -2
  149. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeButtons.js +2 -2
  150. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.js.map +1 -0
  151. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeComponent.d.ts +2 -2
  152. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeComponent.js +7 -7
  153. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeComponent.js.map +1 -0
  154. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeDefinition.js +1 -1
  155. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.js.map +1 -0
  156. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesVisibilityHandler.d.ts +1 -1
  157. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesVisibilityHandler.js +3 -3
  158. package/lib/esm/tree-widget-react/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +1 -0
  159. package/lib/{cjs → esm/tree-widget-react}/components/trees/categories-tree/UseCategoriesTree.d.ts +3 -3
  160. package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/UseCategoriesTree.js +5 -5
  161. package/lib/esm/tree-widget-react/components/trees/categories-tree/UseCategoriesTree.js.map +1 -0
  162. package/lib/esm/{components → tree-widget-react/components}/trees/common/CategoriesVisibilityUtils.js +0 -1
  163. package/lib/esm/tree-widget-react/components/trees/common/CategoriesVisibilityUtils.js.map +1 -0
  164. package/lib/esm/tree-widget-react/components/trees/common/FocusedInstancesContext.d.ts +35 -0
  165. package/lib/esm/{components/trees/common/FocusedInstancesContextProvider.js → tree-widget-react/components/trees/common/FocusedInstancesContext.js} +18 -3
  166. package/lib/esm/tree-widget-react/components/trees/common/FocusedInstancesContext.js.map +1 -0
  167. package/lib/esm/tree-widget-react/components/trees/common/Rxjs.js.map +1 -0
  168. package/lib/{cjs → esm/tree-widget-react}/components/trees/common/Tooltip.d.ts +1 -1
  169. package/lib/esm/{components → tree-widget-react/components}/trees/common/Tooltip.js +1 -1
  170. package/lib/esm/tree-widget-react/components/trees/common/Tooltip.js.map +1 -0
  171. package/lib/esm/tree-widget-react/components/trees/common/TreeErrors.js.map +1 -0
  172. package/lib/{cjs → esm/tree-widget-react}/components/trees/common/UseActiveViewport.js.map +1 -1
  173. package/lib/esm/tree-widget-react/components/trees/common/UseFiltering.js.map +1 -0
  174. package/lib/esm/{components → tree-widget-react/components}/trees/common/UseHierarchiesLocalization.js +1 -1
  175. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchiesLocalization.js.map +1 -0
  176. package/lib/esm/{components → tree-widget-react/components}/trees/common/UseHierarchyFiltering.js +3 -3
  177. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyFiltering.js.map +1 -0
  178. package/lib/esm/{components → tree-widget-react/components}/trees/common/UseHierarchyVisibility.d.ts +1 -1
  179. package/lib/esm/{components → tree-widget-react/components}/trees/common/UseHierarchyVisibility.js +1 -1
  180. package/lib/esm/tree-widget-react/components/trees/common/UseHierarchyVisibility.js.map +1 -0
  181. package/lib/esm/tree-widget-react/components/trees/common/UseIModelChangeListener.js.map +1 -0
  182. package/lib/esm/tree-widget-react/components/trees/common/UseMultiCheckboxHandler.js.map +1 -0
  183. package/lib/esm/{components → tree-widget-react/components}/trees/common/UseNodeHighlighting.js +1 -1
  184. package/lib/esm/tree-widget-react/components/trees/common/UseNodeHighlighting.js.map +1 -0
  185. package/lib/esm/{components → tree-widget-react/components}/trees/common/UseTelemetryContext.js +1 -1
  186. package/lib/esm/tree-widget-react/components/trees/common/UseTelemetryContext.js.map +1 -0
  187. package/lib/esm/tree-widget-react/components/trees/common/Utils.js.map +1 -0
  188. package/lib/esm/tree-widget-react/components/trees/common/components/Delayed.js.map +1 -0
  189. package/lib/esm/tree-widget-react/components/trees/common/components/ProgressOverlay.js.map +1 -0
  190. package/lib/{cjs → esm/tree-widget-react}/components/trees/common/components/Tree.d.ts +4 -4
  191. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/Tree.js +10 -10
  192. package/lib/esm/tree-widget-react/components/trees/common/components/Tree.js.map +1 -0
  193. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/TreeNodeCheckbox.js +5 -2
  194. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeCheckbox.js.map +1 -0
  195. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/TreeNodeRenderer.d.ts +1 -1
  196. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/TreeNodeRenderer.js +1 -1
  197. package/lib/esm/tree-widget-react/components/trees/common/components/TreeNodeRenderer.js.map +1 -0
  198. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/TreeRenderer.d.ts +3 -3
  199. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/TreeRenderer.js +5 -4
  200. package/lib/esm/tree-widget-react/components/trees/common/components/TreeRenderer.js.map +1 -0
  201. package/lib/{cjs → esm/tree-widget-react}/components/trees/common/components/VisibilityTree.d.ts +4 -4
  202. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/VisibilityTree.js +3 -3
  203. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTree.js.map +1 -0
  204. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/VisibilityTreeRenderer.d.ts +2 -2
  205. package/lib/esm/{components → tree-widget-react/components}/trees/common/components/VisibilityTreeRenderer.js +2 -2
  206. package/lib/esm/tree-widget-react/components/trees/common/components/VisibilityTreeRenderer.js.map +1 -0
  207. package/lib/{cjs → esm/tree-widget-react}/components/trees/external-sources-tree/ExternalSourcesTree.d.ts +1 -1
  208. package/lib/esm/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTree.js +4 -4
  209. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTree.js.map +1 -0
  210. package/lib/{cjs → esm/tree-widget-react}/components/trees/external-sources-tree/ExternalSourcesTreeComponent.d.ts +1 -1
  211. package/lib/esm/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTreeComponent.js +3 -3
  212. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +1 -0
  213. package/lib/esm/tree-widget-react/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +1 -0
  214. package/lib/esm/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTree.d.ts +1 -1
  215. package/lib/esm/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTree.js +5 -5
  216. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTree.js.map +1 -0
  217. package/lib/esm/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTreeComponent.d.ts +1 -1
  218. package/lib/esm/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTreeComponent.js +3 -3
  219. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +1 -0
  220. package/lib/{cjs → esm/tree-widget-react}/components/trees/imodel-content-tree/IModelContentTreeDefinition.d.ts +1 -1
  221. package/lib/esm/{components → tree-widget-react/components}/trees/imodel-content-tree/IModelContentTreeDefinition.js +1 -1
  222. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +1 -0
  223. package/lib/esm/{components → tree-widget-react/components}/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js +1 -1
  224. package/lib/esm/tree-widget-react/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +1 -0
  225. package/lib/esm/{components → tree-widget-react/components}/trees/index.d.ts +17 -16
  226. package/lib/esm/{components → tree-widget-react/components}/trees/index.js +15 -14
  227. package/lib/esm/tree-widget-react/components/trees/index.js.map +1 -0
  228. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/ModelsTree.d.ts +2 -2
  229. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/ModelsTree.js +3 -3
  230. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTree.js.map +1 -0
  231. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeButtons.d.ts +1 -1
  232. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeButtons.js +3 -3
  233. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeButtons.js.map +1 -0
  234. package/lib/{cjs → esm/tree-widget-react}/components/trees/models-tree/ModelsTreeComponent.d.ts +8 -3
  235. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeComponent.js +14 -10
  236. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeComponent.js.map +1 -0
  237. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeDefinition.d.ts +1 -1
  238. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/ModelsTreeDefinition.js +4 -4
  239. package/lib/esm/tree-widget-react/components/trees/models-tree/ModelsTreeDefinition.js.map +1 -0
  240. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/UseModelsTree.d.ts +4 -4
  241. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/UseModelsTree.js +9 -9
  242. package/lib/esm/tree-widget-react/components/trees/models-tree/UseModelsTree.js.map +1 -0
  243. package/lib/esm/tree-widget-react/components/trees/models-tree/Utils.js.map +1 -0
  244. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js +1 -1
  245. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +1 -0
  246. package/lib/{cjs → esm/tree-widget-react}/components/trees/models-tree/internal/FilteredTree.js.map +1 -1
  247. package/lib/{cjs → esm/tree-widget-react}/components/trees/models-tree/internal/ModelsTreeIdsCache.d.ts +1 -1
  248. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeIdsCache.js +1 -1
  249. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +1 -0
  250. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeNode.js.map +1 -0
  251. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeVisibilityHandler.d.ts +2 -2
  252. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeVisibilityHandler.js +9 -17
  253. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +1 -0
  254. package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/VisibilityChangeEventListener.js +0 -1
  255. package/lib/esm/tree-widget-react/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +1 -0
  256. package/lib/esm/tree-widget-react/components/utils/IsPromiseLike.js.map +1 -0
  257. package/lib/esm/tree-widget-react.d.ts +5 -5
  258. package/lib/esm/tree-widget-react.js +5 -5
  259. package/lib/esm/tree-widget-react.js.map +1 -1
  260. package/package.json +46 -39
  261. package/lib/cjs/TreeWidget.js.map +0 -1
  262. package/lib/cjs/components/SelectableTree.js.map +0 -1
  263. package/lib/cjs/components/TreeSelector.js.map +0 -1
  264. package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +0 -1
  265. package/lib/cjs/components/tree-header/TreeHeader.js.map +0 -1
  266. package/lib/cjs/components/tree-header/TreeWithHeader.js.map +0 -1
  267. package/lib/cjs/components/trees/categories-tree/CategoriesTree.js.map +0 -1
  268. package/lib/cjs/components/trees/categories-tree/CategoriesTreeButtons.js.map +0 -1
  269. package/lib/cjs/components/trees/categories-tree/CategoriesTreeComponent.js.map +0 -1
  270. package/lib/cjs/components/trees/categories-tree/CategoriesTreeDefinition.js.map +0 -1
  271. package/lib/cjs/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +0 -1
  272. package/lib/cjs/components/trees/categories-tree/UseCategoriesTree.js.map +0 -1
  273. package/lib/cjs/components/trees/common/CategoriesVisibilityUtils.js.map +0 -1
  274. package/lib/cjs/components/trees/common/FocusedInstancesContext.d.ts +0 -11
  275. package/lib/cjs/components/trees/common/FocusedInstancesContext.js +0 -14
  276. package/lib/cjs/components/trees/common/FocusedInstancesContext.js.map +0 -1
  277. package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.d.ts +0 -7
  278. package/lib/cjs/components/trees/common/FocusedInstancesContextProvider.js.map +0 -1
  279. package/lib/cjs/components/trees/common/Rxjs.js.map +0 -1
  280. package/lib/cjs/components/trees/common/Tooltip.js.map +0 -1
  281. package/lib/cjs/components/trees/common/TreeErrors.js.map +0 -1
  282. package/lib/cjs/components/trees/common/UseFiltering.js.map +0 -1
  283. package/lib/cjs/components/trees/common/UseHierarchiesLocalization.js +0 -33
  284. package/lib/cjs/components/trees/common/UseHierarchiesLocalization.js.map +0 -1
  285. package/lib/cjs/components/trees/common/UseHierarchyFiltering.js.map +0 -1
  286. package/lib/cjs/components/trees/common/UseHierarchyVisibility.js.map +0 -1
  287. package/lib/cjs/components/trees/common/UseIModelChangeListener.js.map +0 -1
  288. package/lib/cjs/components/trees/common/UseMultiCheckboxHandler.js.map +0 -1
  289. package/lib/cjs/components/trees/common/UseNodeHighlighting.js.map +0 -1
  290. package/lib/cjs/components/trees/common/UseTelemetryContext.js.map +0 -1
  291. package/lib/cjs/components/trees/common/Utils.js.map +0 -1
  292. package/lib/cjs/components/trees/common/components/Delayed.js.map +0 -1
  293. package/lib/cjs/components/trees/common/components/ProgressOverlay.js.map +0 -1
  294. package/lib/cjs/components/trees/common/components/Tree.js.map +0 -1
  295. package/lib/cjs/components/trees/common/components/TreeNodeCheckbox.js.map +0 -1
  296. package/lib/cjs/components/trees/common/components/TreeNodeRenderer.js.map +0 -1
  297. package/lib/cjs/components/trees/common/components/TreeRenderer.js.map +0 -1
  298. package/lib/cjs/components/trees/common/components/VisibilityTree.js.map +0 -1
  299. package/lib/cjs/components/trees/common/components/VisibilityTreeRenderer.js.map +0 -1
  300. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTree.js.map +0 -1
  301. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +0 -1
  302. package/lib/cjs/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +0 -1
  303. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTree.js.map +0 -1
  304. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +0 -1
  305. package/lib/cjs/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +0 -1
  306. package/lib/cjs/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +0 -1
  307. package/lib/cjs/components/trees/index.js +0 -36
  308. package/lib/cjs/components/trees/index.js.map +0 -1
  309. package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +0 -1
  310. package/lib/cjs/components/trees/models-tree/ModelsTreeButtons.js.map +0 -1
  311. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js +0 -102
  312. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +0 -1
  313. package/lib/cjs/components/trees/models-tree/ModelsTreeDefinition.js.map +0 -1
  314. package/lib/cjs/components/trees/models-tree/UseModelsTree.js.map +0 -1
  315. package/lib/cjs/components/trees/models-tree/Utils.js.map +0 -1
  316. package/lib/cjs/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +0 -1
  317. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +0 -1
  318. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeNode.js.map +0 -1
  319. package/lib/cjs/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +0 -1
  320. package/lib/cjs/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +0 -1
  321. package/lib/cjs/components/utils/IsPromiseLike.js.map +0 -1
  322. package/lib/esm/TreeWidget.js.map +0 -1
  323. package/lib/esm/components/SelectableTree.js.map +0 -1
  324. package/lib/esm/components/TreeSelector.js.map +0 -1
  325. package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +0 -1
  326. package/lib/esm/components/tree-header/TreeHeader.js.map +0 -1
  327. package/lib/esm/components/tree-header/TreeWithHeader.js.map +0 -1
  328. package/lib/esm/components/trees/categories-tree/CategoriesTree.js.map +0 -1
  329. package/lib/esm/components/trees/categories-tree/CategoriesTreeComponent.js.map +0 -1
  330. package/lib/esm/components/trees/categories-tree/CategoriesTreeDefinition.js.map +0 -1
  331. package/lib/esm/components/trees/categories-tree/CategoriesVisibilityHandler.js.map +0 -1
  332. package/lib/esm/components/trees/categories-tree/UseCategoriesTree.js.map +0 -1
  333. package/lib/esm/components/trees/common/CategoriesVisibilityUtils.js.map +0 -1
  334. package/lib/esm/components/trees/common/FocusedInstancesContext.d.ts +0 -11
  335. package/lib/esm/components/trees/common/FocusedInstancesContext.js +0 -10
  336. package/lib/esm/components/trees/common/FocusedInstancesContext.js.map +0 -1
  337. package/lib/esm/components/trees/common/FocusedInstancesContextProvider.d.ts +0 -7
  338. package/lib/esm/components/trees/common/FocusedInstancesContextProvider.js.map +0 -1
  339. package/lib/esm/components/trees/common/Rxjs.js.map +0 -1
  340. package/lib/esm/components/trees/common/Tooltip.js.map +0 -1
  341. package/lib/esm/components/trees/common/TreeErrors.js.map +0 -1
  342. package/lib/esm/components/trees/common/UseActiveViewport.js.map +0 -1
  343. package/lib/esm/components/trees/common/UseFiltering.js.map +0 -1
  344. package/lib/esm/components/trees/common/UseHierarchiesLocalization.js.map +0 -1
  345. package/lib/esm/components/trees/common/UseHierarchyFiltering.js.map +0 -1
  346. package/lib/esm/components/trees/common/UseHierarchyVisibility.js.map +0 -1
  347. package/lib/esm/components/trees/common/UseIModelChangeListener.js.map +0 -1
  348. package/lib/esm/components/trees/common/UseMultiCheckboxHandler.js.map +0 -1
  349. package/lib/esm/components/trees/common/UseNodeHighlighting.js.map +0 -1
  350. package/lib/esm/components/trees/common/Utils.js.map +0 -1
  351. package/lib/esm/components/trees/common/components/Delayed.js.map +0 -1
  352. package/lib/esm/components/trees/common/components/ProgressOverlay.js.map +0 -1
  353. package/lib/esm/components/trees/common/components/Tree.js.map +0 -1
  354. package/lib/esm/components/trees/common/components/TreeNodeCheckbox.js.map +0 -1
  355. package/lib/esm/components/trees/common/components/TreeNodeRenderer.js.map +0 -1
  356. package/lib/esm/components/trees/common/components/TreeRenderer.js.map +0 -1
  357. package/lib/esm/components/trees/common/components/VisibilityTree.js.map +0 -1
  358. package/lib/esm/components/trees/common/components/VisibilityTreeRenderer.js.map +0 -1
  359. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTree.js.map +0 -1
  360. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeComponent.js.map +0 -1
  361. package/lib/esm/components/trees/external-sources-tree/ExternalSourcesTreeDefinition.js.map +0 -1
  362. package/lib/esm/components/trees/imodel-content-tree/IModelContentTree.js.map +0 -1
  363. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeComponent.js.map +0 -1
  364. package/lib/esm/components/trees/imodel-content-tree/IModelContentTreeDefinition.js.map +0 -1
  365. package/lib/esm/components/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.js.map +0 -1
  366. package/lib/esm/components/trees/index.js.map +0 -1
  367. package/lib/esm/components/trees/models-tree/ModelsTree.js.map +0 -1
  368. package/lib/esm/components/trees/models-tree/ModelsTreeButtons.js.map +0 -1
  369. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +0 -1
  370. package/lib/esm/components/trees/models-tree/ModelsTreeDefinition.js.map +0 -1
  371. package/lib/esm/components/trees/models-tree/UseModelsTree.js.map +0 -1
  372. package/lib/esm/components/trees/models-tree/Utils.js.map +0 -1
  373. package/lib/esm/components/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.js.map +0 -1
  374. package/lib/esm/components/trees/models-tree/internal/FilteredTree.js.map +0 -1
  375. package/lib/esm/components/trees/models-tree/internal/ModelsTreeIdsCache.js.map +0 -1
  376. package/lib/esm/components/trees/models-tree/internal/ModelsTreeNode.js.map +0 -1
  377. package/lib/esm/components/trees/models-tree/internal/ModelsTreeVisibilityHandler.js.map +0 -1
  378. package/lib/esm/components/trees/models-tree/internal/VisibilityChangeEventListener.js.map +0 -1
  379. package/lib/esm/components/utils/IsPromiseLike.js.map +0 -1
  380. /package/lib/cjs/{TreeWidget.d.ts → tree-widget-react/TreeWidget.d.ts} +0 -0
  381. /package/lib/cjs/{TreeWidget.js → tree-widget-react/TreeWidget.js} +0 -0
  382. /package/lib/cjs/{components → tree-widget-react/components}/SelectableTree.d.ts +0 -0
  383. /package/lib/cjs/{components → tree-widget-react/components}/SelectableTree.scss +0 -0
  384. /package/lib/cjs/{components → tree-widget-react/components}/TreeSelector.js +0 -0
  385. /package/lib/cjs/{components → tree-widget-react/components}/TreeSelector.scss +0 -0
  386. /package/lib/cjs/{components → tree-widget-react/components}/TreeWidgetUiItemsProvider.scss +0 -0
  387. /package/lib/cjs/{components → tree-widget-react/components}/tree-header/TreeHeader.d.ts +0 -0
  388. /package/lib/cjs/{components → tree-widget-react/components}/tree-header/TreeHeader.scss +0 -0
  389. /package/lib/cjs/{components → tree-widget-react/components}/tree-header/TreeWithHeader.scss +0 -0
  390. /package/lib/cjs/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeDefinition.d.ts +0 -0
  391. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/CategoriesVisibilityUtils.d.ts +0 -0
  392. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/Rxjs.d.ts +0 -0
  393. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/Rxjs.js +0 -0
  394. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/TreeErrors.d.ts +0 -0
  395. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/TreeErrors.js +0 -0
  396. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseActiveViewport.d.ts +0 -0
  397. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseActiveViewport.js +0 -0
  398. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseFiltering.d.ts +0 -0
  399. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseFiltering.js +0 -0
  400. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseHierarchiesLocalization.d.ts +0 -0
  401. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseHierarchyFiltering.d.ts +0 -0
  402. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseIModelChangeListener.d.ts +0 -0
  403. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseIModelChangeListener.js +0 -0
  404. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseMultiCheckboxHandler.d.ts +0 -0
  405. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseMultiCheckboxHandler.js +0 -0
  406. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseNodeHighlighting.d.ts +0 -0
  407. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/UseTelemetryContext.d.ts +0 -0
  408. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/Utils.d.ts +0 -0
  409. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/Utils.js +0 -0
  410. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/Delayed.d.ts +0 -0
  411. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/Delayed.js +0 -0
  412. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/ProgressOverlay.d.ts +0 -0
  413. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/ProgressOverlay.js +0 -0
  414. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/ProgressOverlay.scss +0 -0
  415. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/TreeNodeCheckbox.d.ts +0 -0
  416. /package/lib/cjs/{components → tree-widget-react/components}/trees/common/components/TreeRenderer.scss +0 -0
  417. /package/lib/cjs/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +0 -0
  418. /package/lib/cjs/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTreeDefinition.js +0 -0
  419. /package/lib/cjs/{components → tree-widget-react/components}/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.d.ts +0 -0
  420. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/Utils.d.ts +0 -0
  421. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/Utils.js +0 -0
  422. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.d.ts +0 -0
  423. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/FilteredTree.d.ts +0 -0
  424. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/FilteredTree.js +0 -0
  425. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeNode.d.ts +0 -0
  426. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeNode.js +0 -0
  427. /package/lib/cjs/{components → tree-widget-react/components}/trees/models-tree/internal/VisibilityChangeEventListener.d.ts +0 -0
  428. /package/lib/cjs/{components → tree-widget-react/components}/utils/IsPromiseLike.d.ts +0 -0
  429. /package/lib/cjs/{components → tree-widget-react/components}/utils/IsPromiseLike.js +0 -0
  430. /package/lib/esm/{TreeWidget.d.ts → tree-widget-react/TreeWidget.d.ts} +0 -0
  431. /package/lib/esm/{TreeWidget.js → tree-widget-react/TreeWidget.js} +0 -0
  432. /package/lib/esm/{components → tree-widget-react/components}/SelectableTree.d.ts +0 -0
  433. /package/lib/esm/{components → tree-widget-react/components}/SelectableTree.scss +0 -0
  434. /package/lib/esm/{components → tree-widget-react/components}/TreeSelector.js +0 -0
  435. /package/lib/esm/{components → tree-widget-react/components}/TreeSelector.scss +0 -0
  436. /package/lib/esm/{components → tree-widget-react/components}/TreeWidgetUiItemsProvider.scss +0 -0
  437. /package/lib/esm/{components → tree-widget-react/components}/tree-header/TreeHeader.d.ts +0 -0
  438. /package/lib/esm/{components → tree-widget-react/components}/tree-header/TreeHeader.scss +0 -0
  439. /package/lib/esm/{components → tree-widget-react/components}/tree-header/TreeWithHeader.scss +0 -0
  440. /package/lib/esm/{components → tree-widget-react/components}/trees/categories-tree/CategoriesTreeDefinition.d.ts +0 -0
  441. /package/lib/esm/{components → tree-widget-react/components}/trees/common/CategoriesVisibilityUtils.d.ts +0 -0
  442. /package/lib/esm/{components → tree-widget-react/components}/trees/common/Rxjs.d.ts +0 -0
  443. /package/lib/esm/{components → tree-widget-react/components}/trees/common/Rxjs.js +0 -0
  444. /package/lib/esm/{components → tree-widget-react/components}/trees/common/TreeErrors.d.ts +0 -0
  445. /package/lib/esm/{components → tree-widget-react/components}/trees/common/TreeErrors.js +0 -0
  446. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseActiveViewport.d.ts +0 -0
  447. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseActiveViewport.js +0 -0
  448. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseFiltering.d.ts +0 -0
  449. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseFiltering.js +0 -0
  450. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseHierarchiesLocalization.d.ts +0 -0
  451. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseHierarchyFiltering.d.ts +0 -0
  452. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseIModelChangeListener.d.ts +0 -0
  453. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseIModelChangeListener.js +0 -0
  454. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseMultiCheckboxHandler.d.ts +0 -0
  455. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseMultiCheckboxHandler.js +0 -0
  456. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseNodeHighlighting.d.ts +0 -0
  457. /package/lib/esm/{components → tree-widget-react/components}/trees/common/UseTelemetryContext.d.ts +0 -0
  458. /package/lib/esm/{components → tree-widget-react/components}/trees/common/Utils.d.ts +0 -0
  459. /package/lib/esm/{components → tree-widget-react/components}/trees/common/Utils.js +0 -0
  460. /package/lib/esm/{components → tree-widget-react/components}/trees/common/components/Delayed.d.ts +0 -0
  461. /package/lib/esm/{components → tree-widget-react/components}/trees/common/components/Delayed.js +0 -0
  462. /package/lib/esm/{components → tree-widget-react/components}/trees/common/components/ProgressOverlay.d.ts +0 -0
  463. /package/lib/esm/{components → tree-widget-react/components}/trees/common/components/ProgressOverlay.js +0 -0
  464. /package/lib/esm/{components → tree-widget-react/components}/trees/common/components/ProgressOverlay.scss +0 -0
  465. /package/lib/esm/{components → tree-widget-react/components}/trees/common/components/TreeNodeCheckbox.d.ts +0 -0
  466. /package/lib/esm/{components → tree-widget-react/components}/trees/common/components/TreeRenderer.scss +0 -0
  467. /package/lib/esm/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTreeDefinition.d.ts +0 -0
  468. /package/lib/esm/{components → tree-widget-react/components}/trees/external-sources-tree/ExternalSourcesTreeDefinition.js +0 -0
  469. /package/lib/esm/{components → tree-widget-react/components}/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.d.ts +0 -0
  470. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/Utils.d.ts +0 -0
  471. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/Utils.js +0 -0
  472. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/AlwaysAndNeverDrawnElementInfo.d.ts +0 -0
  473. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/FilteredTree.d.ts +0 -0
  474. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/FilteredTree.js +0 -0
  475. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeNode.d.ts +0 -0
  476. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/ModelsTreeNode.js +0 -0
  477. /package/lib/esm/{components → tree-widget-react/components}/trees/models-tree/internal/VisibilityChangeEventListener.d.ts +0 -0
  478. /package/lib/esm/{components → tree-widget-react/components}/utils/IsPromiseLike.d.ts +0 -0
  479. /package/lib/esm/{components → tree-widget-react/components}/utils/IsPromiseLike.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,12 +1,34 @@
1
1
  # Change Log - @itwin/tree-widget-react
2
2
 
3
- This log was last generated on Tue, 14 Jan 2025 02:50:44 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 04 Feb 2025 15:29:40 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 3.4.0
8
+
9
+ Tue, 04 Feb 2025 15:29:40 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Expose `FocusedInstancesContextProvider` and `useFocusedInstancesContext` to allow using `ModelsTreeComponent.ToggleInstancesFocusButton` from outside of `ModelsTreeComponent` and accesing the context from other React components. ([#1175](https://github.com/iTwin/viewer-components-react/pull/1175))
14
+ - Add `filterButtonsVisibility` prop to `TreeRenderer`. The prop allows to control visibility of hierarchy level filtering buttons in the tree: `show-on-hover` (default) shows them on hover or focus, `hide` only shows them when a node is filtered. ([#1178](https://github.com/iTwin/viewer-components-react/pull/1178))
15
+
16
+ ## 3.3.0
17
+
18
+ Mon, 27 Jan 2025 18:30:40 GMT
19
+
20
+ ### Minor changes
21
+
22
+ - Define `type` and `exports` attributes in `package.json`. The `exports attribute prohibits access to APIs that are not intended to be used by external consumers. The `type: "module"` attribute addition moves this package a step closer towards dropping CommonJS support - it's now transpiled from ESM to CommonJS instead of the opposite. ([#1147](https://github.com/iTwin/viewer-components-react/pull/1147))
23
+ - Add support for AppUI 5.x ([#1147](https://github.com/iTwin/viewer-components-react/pull/1147))
24
+
25
+ ### Patches
26
+
27
+ - Fix visibility button with no content rendering empty tooltip. ([#1145](https://github.com/iTwin/viewer-components-react/pull/1145))
28
+
7
29
  ## 3.2.4
8
30
 
9
- Tue, 14 Jan 2025 02:50:44 GMT
31
+ Tue, 14 Jan 2025 02:51:04 GMT
10
32
 
11
33
  ### Patches
12
34
 
package/README.md CHANGED
@@ -162,6 +162,7 @@ Example:
162
162
  <!-- BEGIN EXTRACTION -->
163
163
 
164
164
  ```tsx
165
+ import { useCallback } from "react";
165
166
  import { TreeWithHeader, useModelsTree, useModelsTreeButtonProps, VisibilityTree, VisibilityTreeRenderer } from "@itwin/tree-widget-react";
166
167
  import type { SelectionStorage } from "@itwin/unified-selection";
167
168
  import type { IModelConnection, Viewport } from "@itwin/core-frontend";
@@ -324,11 +325,9 @@ function CustomCategoriesTreeRenderer(props: CustomCategoriesTreeRendererProps)
324
325
  },
325
326
  [getLabel],
326
327
  );
327
-
328
328
  const getSublabel = useCallback<Required<VisibilityTreeRendererProps>["getSublabel"]>(() => {
329
329
  return <>Custom sub label</>;
330
330
  }, []);
331
-
332
331
  return <VisibilityTreeRenderer {...props} getLabel={getLabelCallback} getSublabel={getSublabel} />;
333
332
  }
334
333
 
@@ -342,7 +341,6 @@ interface CustomCategoriesTreeProps {
342
341
  function CustomCategoriesTreeComponent({ imodel, viewport, getSchemaContext, selectionStorage }: CustomCategoriesTreeProps) {
343
342
  const { buttonProps } = useCategoriesTreeButtonProps({ viewport });
344
343
  const { categoriesTreeProps, rendererProps } = useCategoriesTree({ activeView: viewport, filter: "" });
345
-
346
344
  return (
347
345
  <TreeWithHeader
348
346
  buttons={[
@@ -0,0 +1 @@
1
+ { "type": "commonjs" }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeWidget.js","sourceRoot":"","sources":["../../../src/tree-widget-react/TreeWidget.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,oDAAiE;AACjE,wDAAiD;AAIjD;;;GAGG;AACH,MAAa,UAAU;IAIrB;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAmB;QAChD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO;SACR;QAED,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,KAAK,GAAG,IAAI,IAAI,yBAAS,CAAC,YAAY,CAAC;QAClD,OAAO,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,wEAAwE;IACjE,MAAM,CAAC,SAAS;QACrB,IAAI,UAAU,CAAC,KAAK,EAAE;YACpB,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC/D,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;SAC9B;QAED,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,iEAAiE;IAC1D,MAAM,KAAK,IAAI;QACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACrB,MAAM,IAAI,0BAAY,CAAC,2BAAa,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;SAC3E;QACD,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,aAAa;QAC7B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;OACG;IACI,MAAM,CAAC,SAAS,CAAC,GAAsB,EAAE,OAA4B;QAC1E,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,aAAa,IAAI,GAAG,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;CACF;AA/CD,gCA+CC","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 { BentleyError, BentleyStatus } from \"@itwin/core-common\";\nimport { IModelApp } from \"@itwin/core-frontend\";\n\nimport type { Localization, TranslationOptions } from \"@itwin/core-common\";\n\n/**\n * Entry point for static initialization required by various components used in the package.\n * @public\n */\nexport class TreeWidget {\n private static _i18n?: Localization;\n private static _initialized?: boolean;\n\n /**\n * Called by IModelApp to initialize the Tree Widget\n * @param i18n - The internationalization service created by the IModelApp.\n */\n public static async initialize(i18n?: Localization): Promise<void> {\n if (this._initialized) {\n return;\n }\n\n TreeWidget._initialized = true;\n TreeWidget._i18n = i18n ?? IModelApp.localization;\n return TreeWidget._i18n.registerNamespace(TreeWidget.i18nNamespace);\n }\n\n /** Unregisters the TreeWidget internationalization service namespace */\n public static terminate() {\n if (TreeWidget._i18n) {\n TreeWidget._i18n.unregisterNamespace(TreeWidget.i18nNamespace);\n TreeWidget._i18n = undefined;\n }\n\n TreeWidget._initialized = false;\n }\n\n /** The internationalization service created by the IModelApp. */\n public static get i18n(): Localization {\n if (!TreeWidget._i18n) {\n throw new BentleyError(BentleyStatus.ERROR, \"TreeWidget not initialized\");\n }\n return TreeWidget._i18n;\n }\n\n /** The internationalization service namespace. */\n public static get i18nNamespace(): string {\n return \"TreeWidget\";\n }\n\n /** Calls i18n.translateWithNamespace with the \"TreeWidget\" namespace. Do NOT include the namespace in the key.\n */\n public static translate(key: string | string[], options?: TranslationOptions): string {\n const stringKey = `${TreeWidget.i18nNamespace}:${key}`;\n return TreeWidget.i18n.getLocalizedString(stringKey, options);\n }\n}\n"]}
@@ -10,8 +10,8 @@ require("./SelectableTree.scss");
10
10
  const react_1 = require("react");
11
11
  const appui_react_1 = require("@itwin/appui-react");
12
12
  const itwinui_react_1 = require("@itwin/itwinui-react");
13
- const TreeWidget_1 = require("../TreeWidget");
14
- const TreeSelector_1 = require("./TreeSelector");
13
+ const TreeWidget_js_1 = require("../TreeWidget.js");
14
+ const TreeSelector_js_1 = require("./TreeSelector.js");
15
15
  /**
16
16
  * A component that renders a tree (combo box) selector and the selected tree component.
17
17
  * @public
@@ -27,7 +27,7 @@ exports.SelectableTree = SelectableTree;
27
27
  function SelectableTreeContent(props) {
28
28
  const { trees: treeDefinitions, imodel } = props;
29
29
  const trees = useActiveTrees(treeDefinitions, imodel);
30
- return ((0, jsx_runtime_1.jsx)("div", { className: "tree-widget-selectable-tree", children: (0, jsx_runtime_1.jsx)(TreeSelector_1.TreeSelector, { ...getTreeSelectorProps(trees), density: props.density, onPerformanceMeasured: props.onPerformanceMeasured, onFeatureUsed: props.onFeatureUsed }) }));
30
+ return ((0, jsx_runtime_1.jsx)("div", { className: "tree-widget-selectable-tree", children: (0, jsx_runtime_1.jsx)(TreeSelector_js_1.TreeSelector, { ...getTreeSelectorProps(trees), density: props.density, onPerformanceMeasured: props.onPerformanceMeasured, onFeatureUsed: props.onFeatureUsed }) }));
31
31
  }
32
32
  function useActiveTrees(treeDefinitions, imodel) {
33
33
  const [trees, setTrees] = (0, react_1.useState)();
@@ -35,7 +35,6 @@ function useActiveTrees(treeDefinitions, imodel) {
35
35
  let disposed = false;
36
36
  void (async () => {
37
37
  const visibleTrees = await getActiveTrees(treeDefinitions, imodel);
38
- // istanbul ignore else
39
38
  if (!disposed) {
40
39
  setTrees(visibleTrees);
41
40
  }
@@ -80,7 +79,7 @@ function getTreeSelectorProps(trees) {
80
79
  {
81
80
  id: "no-trees",
82
81
  label: "",
83
- render: () => ((0, jsx_runtime_1.jsx)(itwinui_react_1.Flex, { justifyContent: "center", alignItems: "center", className: "tree-widget-no-trees-container", children: TreeWidget_1.TreeWidget.translate("selectableTree.noTrees") })),
82
+ render: () => ((0, jsx_runtime_1.jsx)(itwinui_react_1.Flex, { justifyContent: "center", alignItems: "center", className: "tree-widget-no-trees-container", children: TreeWidget_js_1.TreeWidget.translate("selectableTree.noTrees") })),
84
83
  },
85
84
  ],
86
85
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectableTree.js","sourceRoot":"","sources":["../../../../src/tree-widget-react/components/SelectableTree.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 \"./SelectableTree.scss\";\nimport { useEffect, useState } from \"react\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { Flex, ProgressLinear } from \"@itwin/itwinui-react\";\nimport { TreeWidget } from \"../TreeWidget.js\";\nimport { TreeSelector } from \"./TreeSelector.js\";\n\nimport type { PropsWithChildren } from \"react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { TreeContentDefinition, TreeSelectorProps } from \"./TreeSelector.js\";\n\n/**\n * Props for rendering trees\n * @public\n */\nexport interface SelectableTreeRenderProps {\n density?: \"enlarged\" | \"default\";\n onPerformanceMeasured?: (featureId: string, elapsedTime: number) => void;\n onFeatureUsed?: (feature: string) => void;\n}\n\n/**\n * Definition of a tree component displayed in `SelectableTree`.\n * @public\n */\nexport interface SelectableTreeDefinition {\n /** Id of the tree */\n id: string;\n /** Callback that is used to get tree label */\n getLabel: () => string;\n /** Callback that is used to render tree component */\n render: (props: SelectableTreeRenderProps) => React.ReactNode;\n /**\n * Callback that is used to determine if tree should be shown for current active iModel connection.\n * If callback is `undefined` tree is shown for all iModel connections.\n */\n shouldShow?: (imodel: IModelConnection) => Promise<boolean>;\n /** Icon to render before tree label in tree selector */\n startIcon?: React.ReactNode;\n}\n\n/**\n * Props for `SelectableTree`\n * @public\n */\nexport interface SelectableTreeProps {\n trees: SelectableTreeDefinition[];\n density?: \"enlarged\" | \"default\";\n onPerformanceMeasured?: (feature: string, elapsedTime: number) => void;\n onFeatureUsed?: (feature: string) => void;\n}\n\n/**\n * A component that renders a tree (combo box) selector and the selected tree component.\n * @public\n */\nexport function SelectableTree(props: SelectableTreeProps) {\n const imodel = useActiveIModelConnection();\n if (!imodel) {\n return null;\n }\n return <SelectableTreeContent {...props} imodel={imodel} />;\n}\n\nfunction SelectableTreeContent(props: SelectableTreeProps & { imodel: IModelConnection }) {\n const { trees: treeDefinitions, imodel } = props;\n const trees = useActiveTrees(treeDefinitions, imodel);\n\n return (\n <div className=\"tree-widget-selectable-tree\">\n <TreeSelector\n {...getTreeSelectorProps(trees)}\n density={props.density}\n onPerformanceMeasured={props.onPerformanceMeasured}\n onFeatureUsed={props.onFeatureUsed}\n />\n </div>\n );\n}\n\nfunction useActiveTrees(treeDefinitions: SelectableTreeDefinition[], imodel: IModelConnection) {\n const [trees, setTrees] = useState<TreeContentDefinition[]>();\n\n useEffect(() => {\n let disposed = false;\n void (async () => {\n const visibleTrees = await getActiveTrees(treeDefinitions, imodel);\n if (!disposed) {\n setTrees(visibleTrees);\n }\n })();\n\n return () => {\n disposed = true;\n };\n }, [treeDefinitions, imodel]);\n\n return trees;\n}\n\nasync function getActiveTrees(treeDefinitions: SelectableTreeDefinition[], imodel: IModelConnection): Promise<TreeContentDefinition[]> {\n const handleDefinition = async (treeDef: SelectableTreeDefinition) => {\n if (treeDef.shouldShow !== undefined && !(await treeDef.shouldShow(imodel))) {\n return undefined;\n }\n return {\n id: treeDef.id,\n label: treeDef.getLabel(),\n render: treeDef.render,\n startIcon: treeDef.startIcon,\n };\n };\n\n return (await Promise.all(treeDefinitions.map(handleDefinition))).filter((tree) => tree !== undefined) as TreeContentDefinition[];\n}\n\nfunction getTreeSelectorProps(trees?: TreeContentDefinition[]): TreeSelectorProps {\n if (trees === undefined) {\n return {\n defaultSelectedContentId: \"loading\",\n trees: [\n {\n id: \"loading\",\n label: \"\",\n render: () => (\n <Delayed>\n <ProgressLinear indeterminate={true} />\n </Delayed>\n ),\n },\n ],\n };\n }\n\n if (trees.length === 0) {\n return {\n defaultSelectedContentId: \"no-trees\",\n trees: [\n {\n id: \"no-trees\",\n label: \"\",\n render: () => (\n <Flex justifyContent=\"center\" alignItems=\"center\" className=\"tree-widget-no-trees-container\">\n {TreeWidget.translate(\"selectableTree.noTrees\")}\n </Flex>\n ),\n },\n ],\n };\n }\n\n return {\n defaultSelectedContentId: trees[0].id,\n trees,\n };\n}\n\nfunction Delayed({ delay = 200, children }: PropsWithChildren<{ delay?: number }>) {\n const [show, setShow] = useState(false);\n\n useEffect(() => {\n const id = setTimeout(() => {\n setShow(true);\n }, delay);\n return () => {\n clearTimeout(id);\n };\n }, [delay]);\n\n if (!show) {\n return null;\n }\n\n return <>{children}</>;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import "./TreeSelector.scss";
3
- import type { SelectableTreeRenderProps } from "./SelectableTree";
3
+ import type { SelectableTreeRenderProps } from "./SelectableTree.js";
4
4
  /**
5
5
  * A definition for trees displayed in `TreeSelector`
6
6
  * @internal
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeSelector.js","sourceRoot":"","sources":["../../../../src/tree-widget-react/components/TreeSelector.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,+BAA6B;AAC7B,iCAA0C;AAC1C,wDAAwD;AA4BxD;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3F,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC;IAEhD,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC3B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAA2B,CAAC;IACrH,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,iCAAK,SAAS,EAAC,+CAA+C,aAC5D,gCAAK,SAAS,EAAC,sDAAsD,YAClE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,uBAAC,sBAAM,IACL,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,eAAe,CAAC,EAAE,EACzB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EACpC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;wBAC3B,KAAK,CAAC,aAAa,EAAE,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;wBAC1C,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC,EACD,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CACnC,uBAAC,wBAAQ,OAAK,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,YAC3F,MAAM,CAAC,KAAK,GACJ,CACZ,GACD,CACH,GACG,EACN,gCAAK,SAAS,EAAC,uDAAuD,YACnE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,GACxI,IACF,CACP,CAAC;AACJ,CAAC;AAlCD,oCAkCC","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 \"./TreeSelector.scss\";\nimport { useMemo, useState } from \"react\";\nimport { MenuItem, Select } from \"@itwin/itwinui-react\";\n\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport type { SelectableTreeRenderProps } from \"./SelectableTree.js\";\n\n/**\n * A definition for trees displayed in `TreeSelector`\n * @internal\n */\nexport interface TreeContentDefinition {\n id: string;\n label: string;\n render: (props: SelectableTreeRenderProps) => React.ReactNode;\n startIcon?: React.ReactNode;\n}\n\n/**\n * Props for `TreeSelector`\n * @internal\n */\nexport interface TreeSelectorProps {\n defaultSelectedContentId: string;\n trees: TreeContentDefinition[];\n density?: \"enlarged\" | \"default\";\n onPerformanceMeasured?: (feature: string, elapsedTime: number) => void;\n onFeatureUsed?: (feature: string) => void;\n}\n\n/**\n * A component that accepts a list of trees and renders a select box at the top,\n * allowing to choose which of the provided tree components should be rendered at the bottom.\n * @internal\n */\nexport function TreeSelector(props: TreeSelectorProps) {\n const [selectedContentId, setSelectedContentId] = useState(props.defaultSelectedContentId);\n const selectedContent = props.trees.find((c) => c.id === selectedContentId) ?? props.trees[0];\n const isEnlarged = props.density === \"enlarged\";\n\n const options = useMemo(() => {\n return props.trees.map((c) => ({ label: c.label, value: c.id, startIcon: c.startIcon })) as SelectOption<string>[];\n }, [props.trees]);\n\n return (\n <div className=\"presentation-components-tree-selector-content\">\n <div className=\"presentation-components-tree-selector-content-header\">\n {options.length > 0 && (\n <Select\n options={options}\n value={selectedContent.id}\n size={isEnlarged ? \"large\" : \"small\"}\n onChange={(treeId: string) => {\n props.onFeatureUsed?.(`choose-${treeId}`);\n setSelectedContentId(treeId);\n }}\n itemRenderer={(option, itemProps) => (\n <MenuItem {...option} isSelected={itemProps.isSelected} size={isEnlarged ? \"large\" : \"default\"}>\n {option.label}\n </MenuItem>\n )}\n />\n )}\n </div>\n <div className=\"presentation-components-tree-selector-content-wrapper\">\n {selectedContent?.render({ density: props.density, onPerformanceMeasured: props.onPerformanceMeasured, onFeatureUsed: props.onFeatureUsed })}\n </div>\n </div>\n );\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import "./TreeWidgetUiItemsProvider.scss";
3
3
  import type { Widget } from "@itwin/appui-react";
4
- import type { SelectableTreeDefinition, SelectableTreeProps } from "./SelectableTree";
4
+ import type { SelectableTreeDefinition, SelectableTreeProps } from "./SelectableTree.js";
5
5
  /**
6
6
  * Props for `createWidget`.
7
7
  * @public
@@ -13,8 +13,8 @@ const appui_react_1 = require("@itwin/appui-react");
13
13
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
14
14
  const itwinui_illustrations_react_1 = require("@itwin/itwinui-illustrations-react");
15
15
  const itwinui_react_1 = require("@itwin/itwinui-react");
16
- const TreeWidget_1 = require("../TreeWidget");
17
- const SelectableTree_1 = require("./SelectableTree");
16
+ const TreeWidget_js_1 = require("../TreeWidget.js");
17
+ const SelectableTree_js_1 = require("./SelectableTree.js");
18
18
  /**
19
19
  * Creates a tree widget definition that should be returned from `UiItemsProvider.getWidgets()`.
20
20
  * @public
@@ -22,7 +22,7 @@ const SelectableTree_1 = require("./SelectableTree");
22
22
  function createTreeWidget(props) {
23
23
  return {
24
24
  id: "tree-widget-react:trees",
25
- label: TreeWidget_1.TreeWidget.translate("widget.label"),
25
+ label: TreeWidget_js_1.TreeWidget.translate("widget.label"),
26
26
  icon: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgHierarchyTree, {}),
27
27
  layouts: {
28
28
  standard: {
@@ -40,11 +40,11 @@ exports.createTreeWidget = createTreeWidget;
40
40
  */
41
41
  function TreeWidgetComponent(props) {
42
42
  const ref = useTreeWidgetTransientState();
43
- return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: "tree-widget", children: (0, jsx_runtime_1.jsx)(react_error_boundary_1.ErrorBoundary, { FallbackComponent: ErrorState, children: (0, jsx_runtime_1.jsx)(SelectableTree_1.SelectableTree, { ...props }) }) }));
43
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: "tree-widget", children: (0, jsx_runtime_1.jsx)(react_error_boundary_1.ErrorBoundary, { FallbackComponent: ErrorState, children: (0, jsx_runtime_1.jsx)(SelectableTree_js_1.SelectableTree, { ...props }) }) }));
44
44
  }
45
45
  exports.TreeWidgetComponent = TreeWidgetComponent;
46
46
  function ErrorState({ resetErrorBoundary }) {
47
- return ((0, jsx_runtime_1.jsx)(itwinui_react_1.NonIdealState, { svg: (0, jsx_runtime_1.jsx)(itwinui_illustrations_react_1.SvgError, {}), heading: TreeWidget_1.TreeWidget.translate("errorState.title"), description: TreeWidget_1.TreeWidget.translate("errorState.description"), actions: (0, jsx_runtime_1.jsx)(itwinui_react_1.Button, { styleType: "high-visibility", onClick: resetErrorBoundary, children: TreeWidget_1.TreeWidget.translate("errorState.retryButtonLabel") }) }));
47
+ return ((0, jsx_runtime_1.jsx)(itwinui_react_1.NonIdealState, { svg: (0, jsx_runtime_1.jsx)(itwinui_illustrations_react_1.SvgError, {}), heading: TreeWidget_js_1.TreeWidget.translate("errorState.title"), description: TreeWidget_js_1.TreeWidget.translate("errorState.description"), actions: (0, jsx_runtime_1.jsx)(itwinui_react_1.Button, { styleType: "high-visibility", onClick: resetErrorBoundary, children: TreeWidget_js_1.TreeWidget.translate("errorState.retryButtonLabel") }) }));
48
48
  }
49
49
  function useTreeWidgetTransientState() {
50
50
  const { ref, persist, restore } = useTreeStorage();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeWidgetUiItemsProvider.js","sourceRoot":"","sources":["../../../../src/tree-widget-react/components/TreeWidgetUiItemsProvider.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,4CAA0C;AAC1C,iCAA+B;AAC/B,+DAAqD;AACrD,oDAA8F;AAC9F,oEAA8D;AAC9D,oFAA8D;AAC9D,wDAA6D;AAC7D,oDAA8C;AAC9C,2DAAqD;AA4BrD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAsB;IACrD,OAAO;QACL,EAAE,EAAE,yBAAyB;QAC7B,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,cAAc,CAAC;QAC3C,IAAI,EAAE,uBAAC,sCAAgB,KAAG;QAC1B,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,OAAO,EAAE,+BAAiB,CAAC,KAAK;gBAChC,QAAQ,EAAE,gCAAkB,CAAC,KAAK;aACnC;SACF;QACD,OAAO,EAAE,CACP,uBAAC,mBAAmB,IAClB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAClD,aAAa,EAAE,KAAK,CAAC,aAAa,GAClC,CACH;KACF,CAAC;AACJ,CAAC;AApBD,4CAoBC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,KAA0B;IAC5D,MAAM,GAAG,GAAG,2BAA2B,EAAE,CAAC;IAC1C,OAAO,CACL,gCAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,aAAa,YACpC,uBAAC,oCAAa,IAAC,iBAAiB,EAAE,UAAU,YAC1C,uBAAC,kCAAc,OAAK,KAAK,GAAI,GACf,GACZ,CACP,CAAC;AACJ,CAAC;AATD,kDASC;AAED,SAAS,UAAU,CAAC,EAAE,kBAAkB,EAAiB;IACvD,OAAO,CACL,uBAAC,6BAAa,IACZ,GAAG,EAAE,uBAAC,sCAAQ,KAAG,EACjB,OAAO,EAAE,0BAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,EACjD,WAAW,EAAE,0BAAU,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAC3D,OAAO,EACL,uBAAC,sBAAM,IAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,YAC9D,0BAAU,CAAC,SAAS,CAAC,6BAA6B,CAAC,GAC7C,GAEX,CACH,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B;IAClC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IACnD,IAAA,+BAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAQD,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAA,cAAM,GAAsB,CAAC;IAE/C,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,OAAO,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,6BAA6B,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,SAAS,CAAC,OAAO,GAAG,SAAS,EAAE,SAAS,CAAC;IAC3C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;YACjC,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;gBAClC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC;aACzC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC","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 \"./TreeWidgetUiItemsProvider.scss\";\nimport { useRef } from \"react\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { StagePanelLocation, StagePanelSection, useTransientState } from \"@itwin/appui-react\";\nimport { SvgHierarchyTree } from \"@itwin/itwinui-icons-react\";\nimport { SvgError } from \"@itwin/itwinui-illustrations-react\";\nimport { Button, NonIdealState } from \"@itwin/itwinui-react\";\nimport { TreeWidget } from \"../TreeWidget.js\";\nimport { SelectableTree } from \"./SelectableTree.js\";\n\nimport type { Widget } from \"@itwin/appui-react\";\nimport type { SelectableTreeDefinition, SelectableTreeProps } from \"./SelectableTree.js\";\nimport type { FallbackProps } from \"react-error-boundary\";\nimport type { Ref } from \"react\";\n\n/**\n * Props for `createWidget`.\n * @public\n */\ninterface TreeWidgetProps {\n /**\n * Trees to show in the widget.\n * @see ModelsTreeComponent\n * @see CategoriesTreeComponent\n * @see ExternalSourcesTreeComponent\n * @see IModelContentTreeComponent\n */\n trees: SelectableTreeDefinition[];\n /** Modifies the density of the tree widget. `enlarged` widget contains larger content */\n density?: \"enlarged\" | \"default\";\n /** Callback that is invoked when performance of tracked feature is measured. */\n onPerformanceMeasured?: (feature: string, elapsedTime: number) => void;\n /** Callback that is invoked when a tracked feature is used. */\n onFeatureUsed?: (feature: string) => void;\n}\n\n/**\n * Creates a tree widget definition that should be returned from `UiItemsProvider.getWidgets()`.\n * @public\n */\nexport function createTreeWidget(props: TreeWidgetProps): Widget {\n return {\n id: \"tree-widget-react:trees\",\n label: TreeWidget.translate(\"widget.label\"),\n icon: <SvgHierarchyTree />,\n layouts: {\n standard: {\n section: StagePanelSection.Start,\n location: StagePanelLocation.Right,\n },\n },\n content: (\n <TreeWidgetComponent\n trees={props.trees}\n density={props.density}\n onPerformanceMeasured={props.onPerformanceMeasured}\n onFeatureUsed={props.onFeatureUsed}\n />\n ),\n };\n}\n\n/**\n * Tree widget component which allows selecting which tree to render.\n * @public\n */\nexport function TreeWidgetComponent(props: SelectableTreeProps) {\n const ref = useTreeWidgetTransientState();\n return (\n <div ref={ref} className=\"tree-widget\">\n <ErrorBoundary FallbackComponent={ErrorState}>\n <SelectableTree {...props} />\n </ErrorBoundary>\n </div>\n );\n}\n\nfunction ErrorState({ resetErrorBoundary }: FallbackProps) {\n return (\n <NonIdealState\n svg={<SvgError />}\n heading={TreeWidget.translate(\"errorState.title\")}\n description={TreeWidget.translate(\"errorState.description\")}\n actions={\n <Button styleType={\"high-visibility\"} onClick={resetErrorBoundary}>\n {TreeWidget.translate(\"errorState.retryButtonLabel\")}\n </Button>\n }\n />\n );\n}\n\nfunction useTreeWidgetTransientState() {\n const { ref, persist, restore } = useTreeStorage();\n useTransientState(persist, restore);\n return ref;\n}\n\ninterface UseTreeStorageResult {\n ref: Ref<HTMLDivElement>;\n persist: () => void;\n restore: () => void;\n}\n\nfunction useTreeStorage(): UseTreeStorageResult {\n const ref = useRef<HTMLDivElement>(null);\n const scrollTop = useRef<number | undefined>();\n\n const getContainer = () => {\n return ref.current?.querySelector(\"#tw-tree-renderer-container\");\n };\n\n const persist = () => {\n const container = getContainer();\n scrollTop.current = container?.scrollTop;\n };\n\n const restore = () => {\n setTimeout(() => {\n const container = getContainer();\n if (container && scrollTop.current) {\n container.scrollTop = scrollTop.current;\n }\n });\n };\n\n return { ref, persist, restore };\n}\n"]}
@@ -14,15 +14,14 @@ const classnames_1 = __importDefault(require("classnames"));
14
14
  const react_1 = require("react");
15
15
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
16
16
  const itwinui_react_1 = require("@itwin/itwinui-react");
17
- const TreeWidget_1 = require("../../TreeWidget");
18
- const FocusedInstancesContext_1 = require("../trees/common/FocusedInstancesContext");
17
+ const TreeWidget_js_1 = require("../../TreeWidget.js");
18
+ const FocusedInstancesContext_js_1 = require("../trees/common/FocusedInstancesContext.js");
19
19
  function TreeHeader(props) {
20
20
  const { filteringProps, density, className, children } = props;
21
21
  const [isSearchOpen, setIsSearchOpen] = (0, react_1.useState)(false);
22
- const { enabled: instanceFocusEnabled } = (0, FocusedInstancesContext_1.useFocusedInstancesContext)();
22
+ const { enabled: instanceFocusEnabled } = (0, FocusedInstancesContext_js_1.useFocusedInstancesContext)();
23
23
  const size = density === "enlarged" ? "large" : "small";
24
24
  (0, react_1.useEffect)(() => {
25
- // istanbul ignore if
26
25
  if (filteringProps?.isDisabled) {
27
26
  setIsSearchOpen(false);
28
27
  }
@@ -47,27 +46,27 @@ function DebouncedSearchBox({ isOpened, selectedResultIndex, resultCount, onSele
47
46
  clearTimeout(timeoutId);
48
47
  };
49
48
  }, [inputValue, delay]);
50
- return ((0, jsx_runtime_1.jsxs)(itwinui_react_1.SearchBox, { expandable: true, isExpanded: isOpened, onExpand: onOpen, onCollapse: onClose, size: size, className: (0, classnames_1.default)("tree-widget-search-box", !isOpened && "contracted"), isDisabled: isDisabled, children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.CollapsedState, { children: (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.ExpandButton, { title: TreeWidget_1.TreeWidget.translate("header.searchBox.searchForSomething"), "aria-label": TreeWidget_1.TreeWidget.translate("header.searchBox.open"), size: size, styleType: "borderless" }) }), (0, jsx_runtime_1.jsxs)(itwinui_react_1.SearchBox.ExpandedState, { children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.Input, { placeholder: TreeWidget_1.TreeWidget.translate("header.searchBox.search"), onChange: (e) => setInputValue(e.currentTarget.value) }), (0, jsx_runtime_1.jsx)(SearchResultStepper, { selectedIndex: selectedResultIndex, total: resultCount, onStep: onSelectedResultChanged, size: size }), (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.CollapseButton, { onClick: () => {
49
+ return ((0, jsx_runtime_1.jsxs)(itwinui_react_1.SearchBox, { expandable: true, isExpanded: isOpened, onExpand: onOpen, onCollapse: onClose, size: size, className: (0, classnames_1.default)("tree-widget-search-box", !isOpened && "contracted"), isDisabled: isDisabled, children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.CollapsedState, { children: (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.ExpandButton, { title: TreeWidget_js_1.TreeWidget.translate("header.searchBox.searchForSomething"), "aria-label": TreeWidget_js_1.TreeWidget.translate("header.searchBox.open"), size: size, styleType: "borderless" }) }), (0, jsx_runtime_1.jsxs)(itwinui_react_1.SearchBox.ExpandedState, { children: [(0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.Input, { placeholder: TreeWidget_js_1.TreeWidget.translate("header.searchBox.search"), onChange: (e) => setInputValue(e.currentTarget.value) }), (0, jsx_runtime_1.jsx)(SearchResultStepper, { selectedIndex: selectedResultIndex, total: resultCount, onStep: onSelectedResultChanged, size: size }), (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.CollapseButton, { onClick: () => {
51
50
  setInputValue("");
52
51
  onClose();
53
- }, size: size, "aria-label": TreeWidget_1.TreeWidget.translate("header.searchBox.close") })] })] }));
52
+ }, size: size, "aria-label": TreeWidget_js_1.TreeWidget.translate("header.searchBox.close") })] })] }));
54
53
  }
55
54
  function HeaderButtons(props) {
56
55
  const className = (0, classnames_1.default)("button-container", props.contracted && "contracted");
57
56
  return ((0, jsx_runtime_1.jsx)(itwinui_react_1.ButtonGroup, { className: className, overflowButton: (overflowStart) => ((0, jsx_runtime_1.jsx)(itwinui_react_1.DropdownMenu, { menuItems: () => react_1.Children.toArray(props.children)
58
57
  .slice(overflowStart)
59
- .map((btn, index) => ((0, jsx_runtime_1.jsx)("li", { className: "dropdown-item", role: "menuitem", children: btn }, index))), className: "tree-header-button-dropdown-container", children: (0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { label: TreeWidget_1.TreeWidget.translate("header.dropdownMore"), styleType: "borderless", size: props.size, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgMore, {}) }) })), children: props.children }));
58
+ .map((btn, index) => ((0, jsx_runtime_1.jsx)("li", { className: "dropdown-item", role: "menuitem", children: btn }, index))), className: "tree-header-button-dropdown-container", children: (0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { label: TreeWidget_js_1.TreeWidget.translate("header.dropdownMore"), styleType: "borderless", size: props.size, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgMore, {}) }) })), children: props.children }));
60
59
  }
61
60
  function SearchResultStepper(props) {
62
61
  const { selectedIndex = 1, total, onStep } = props;
63
62
  if (!total) {
64
63
  return null;
65
64
  }
66
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "searchbox-stepping-count", children: `${selectedIndex}/${total}` }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Divider, { orientation: "vertical" }), (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.Button, { title: TreeWidget_1.TreeWidget.translate("header.searchBox.previous"), size: props.size, onClick: () => {
65
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "searchbox-stepping-count", children: `${selectedIndex}/${total}` }), (0, jsx_runtime_1.jsx)(itwinui_react_1.Divider, { orientation: "vertical" }), (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.Button, { title: TreeWidget_js_1.TreeWidget.translate("header.searchBox.previous"), size: props.size, onClick: () => {
67
66
  if (selectedIndex > 1) {
68
67
  onStep(selectedIndex - 1);
69
68
  }
70
- }, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgCaretUpSmall, {}) }), (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.Button, { title: TreeWidget_1.TreeWidget.translate("header.searchBox.next"), size: props.size, onClick: () => {
69
+ }, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgCaretUpSmall, {}) }), (0, jsx_runtime_1.jsx)(itwinui_react_1.SearchBox.Button, { title: TreeWidget_js_1.TreeWidget.translate("header.searchBox.next"), size: props.size, onClick: () => {
71
70
  if (selectedIndex < total) {
72
71
  onStep(selectedIndex + 1);
73
72
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeHeader.js","sourceRoot":"","sources":["../../../../../src/tree-widget-react/components/tree-header/TreeHeader.tsx"],"names":[],"mappings":";;;;;;;AAAA;;;gGAGgG;AAEhG,6BAA2B;AAC3B,4DAAoC;AACpC,iCAA8D;AAC9D,oEAAyF;AACzF,wDAAiG;AACjG,uDAAiD;AACjD,2FAAwF;AAmCxF,SAAgB,UAAU,CAAC,KAAyC;IAClE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACjE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,IAAA,uDAA0B,GAAE,CAAC;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAExD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,cAAc,EAAE,UAAU,EAAE;YAC9B,eAAe,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjC,OAAO,CACL,iCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,yBAAyB,EAAE,SAAS,CAAC,aAC9D,uBAAC,aAAa,IAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,YAChD,QAAQ,GACK,EACf,cAAc,CAAC,CAAC,CAAC,CAChB,uBAAC,kBAAkB,IACjB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,EACnG,KAAK,EAAE,GAAG,EACV,mBAAmB,EAAE,cAAc,CAAC,aAAa,EACjD,WAAW,EAAE,cAAc,CAAC,WAAW,EACvC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,EAC7E,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,oBAAoB,IAAI,KAAK,CAAC,cAAc,EAAE,UAAU,GACpE,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAjCD,gCAiCC;AAeD,SAAS,kBAAkB,CAAC,EAC1B,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,UAAU,GACc;IACxB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAA,cAAM,EAAC,QAAQ,CAAC,CAAC;IACrC,gHAAgH;IAChH,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,EAAE;YACf,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxB,OAAO;SACR;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAExB,OAAO,CACL,wBAAC,yBAAS,IACR,UAAU,QACV,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,EACnB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAA,oBAAU,EAAC,wBAAwB,EAAE,CAAC,QAAQ,IAAI,YAAY,CAAC,EAC1E,UAAU,EAAE,UAAU,aAEtB,uBAAC,yBAAS,CAAC,cAAc,cACvB,uBAAC,yBAAS,CAAC,YAAY,IACrB,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,qCAAqC,CAAC,gBACtD,0BAAU,CAAC,SAAS,CAAC,uBAAuB,CAAC,EACzD,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,YAAY,GACtB,GACuB,EAC3B,wBAAC,yBAAS,CAAC,aAAa,eACtB,uBAAC,yBAAS,CAAC,KAAK,IAAC,WAAW,EAAE,0BAAU,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAI,EACxI,uBAAC,mBAAmB,IAAC,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,GAAI,EAC5H,uBAAC,yBAAS,CAAC,cAAc,IACvB,OAAO,EAAE,GAAG,EAAE;4BACZ,aAAa,CAAC,EAAE,CAAC,CAAC;4BAClB,OAAO,EAAE,CAAC;wBACZ,CAAC,EACD,IAAI,EAAE,IAAI,gBACE,0BAAU,CAAC,SAAS,CAAC,wBAAwB,CAAC,GAC1D,IACsB,IAChB,CACb,CAAC;AACJ,CAAC;AAOD,SAAS,aAAa,CAAC,KAA4C;IACjE,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,kBAAkB,EAAE,KAAK,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC;IAEnF,OAAO,CACL,uBAAC,2BAAW,IACV,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,CACjC,uBAAC,4BAAY,IACX,SAAS,EAAE,GAAG,EAAE,CACd,gBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;iBAC7B,KAAK,CAAC,aAAa,CAAC;iBACpB,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACnB,+BAAgB,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,UAAU,YACtD,GAAG,IADG,KAAK,CAET,CACN,CAAC,EAEN,SAAS,EAAC,uCAAuC,YAEjD,uBAAC,0BAAU,IAAC,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAC,YAAY,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YACrG,uBAAC,6BAAO,KAAG,GACA,GACA,CAChB,YAEA,KAAK,CAAC,QAAQ,GACH,CACf,CAAC;AACJ,CAAC;AASD,SAAS,mBAAmB,CAAC,KAA+B;IAC1D,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,6DACE,iCAAM,SAAS,EAAC,0BAA0B,YAAE,GAAG,aAAa,IAAI,KAAK,EAAE,GAAQ,EAC/E,uBAAC,uBAAO,IAAC,WAAW,EAAC,UAAU,GAAG,EAClC,uBAAC,yBAAS,CAAC,MAAM,IACf,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,2BAA2B,CAAC,EACxD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,aAAa,GAAG,CAAC,EAAE;wBACrB,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;qBAC3B;gBACH,CAAC,YAED,uBAAC,qCAAe,KAAG,GACF,EACnB,uBAAC,yBAAS,CAAC,MAAM,IACf,KAAK,EAAE,0BAAU,CAAC,SAAS,CAAC,uBAAuB,CAAC,EACpD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,aAAa,GAAG,KAAK,EAAE;wBACzB,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;qBAC3B;gBACH,CAAC,YAED,uBAAC,uCAAiB,KAAG,GACJ,IAClB,CACJ,CAAC;AACJ,CAAC","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 \"./TreeHeader.scss\";\nimport classnames from \"classnames\";\nimport { Children, useEffect, useRef, useState } from \"react\";\nimport { SvgCaretDownSmall, SvgCaretUpSmall, SvgMore } from \"@itwin/itwinui-icons-react\";\nimport { ButtonGroup, Divider, DropdownMenu, IconButton, SearchBox } from \"@itwin/itwinui-react\";\nimport { TreeWidget } from \"../../TreeWidget.js\";\nimport { useFocusedInstancesContext } from \"../trees/common/FocusedInstancesContext.js\";\n\nimport type { PropsWithChildren } from \"react\";\nimport type { Viewport } from \"@itwin/core-frontend\";\n\n/** @public */\nexport interface TreeHeaderButtonProps {\n viewport: Viewport;\n density?: \"default\" | \"enlarged\";\n onFeatureUsed?: (feature: string) => void;\n}\n\n/** @beta */\nexport interface TreeFilteringProps {\n /** Filtering is cleared after everything's loaded */\n onFilterStart: (newFilter: string) => void;\n /** listens for onClick event for Clear (x) icon */\n onFilterClear: () => void;\n /** Total number of results/entries */\n resultCount?: number;\n /** Current selected result index */\n selectedIndex?: number;\n /** Callback to currently selected result/entry change */\n onSelectedChanged?: (index: number) => void;\n /** Should the search box be disabled */\n isDisabled?: boolean;\n}\n\ninterface TreeHeaderProps {\n filteringProps?: TreeFilteringProps;\n /** Modifies the density of tree header. `enlarged` header contains larger content */\n density?: \"default\" | \"enlarged\";\n className?: string;\n}\n\nexport function TreeHeader(props: PropsWithChildren<TreeHeaderProps>) {\n const { filteringProps, density, className, children } = props;\n const [isSearchOpen, setIsSearchOpen] = useState<boolean>(false);\n const { enabled: instanceFocusEnabled } = useFocusedInstancesContext();\n const size = density === \"enlarged\" ? \"large\" : \"small\";\n\n useEffect(() => {\n if (filteringProps?.isDisabled) {\n setIsSearchOpen(false);\n }\n }, [filteringProps?.isDisabled]);\n\n return (\n <div className={classnames(\"tree-widget-tree-header\", className)}>\n <HeaderButtons contracted={isSearchOpen} size={size}>\n {children}\n </HeaderButtons>\n {filteringProps ? (\n <DebouncedSearchBox\n isOpened={isSearchOpen}\n onOpen={() => setIsSearchOpen(true)}\n onClose={() => setIsSearchOpen(false)}\n onChange={(value) => (value ? filteringProps.onFilterStart(value) : filteringProps.onFilterClear())}\n delay={500}\n selectedResultIndex={filteringProps.selectedIndex}\n resultCount={filteringProps.resultCount}\n onSelectedResultChanged={(index) => filteringProps.onSelectedChanged?.(index)}\n size={size}\n isDisabled={instanceFocusEnabled || props.filteringProps?.isDisabled}\n />\n ) : null}\n </div>\n );\n}\n\ninterface DebouncedSearchBoxProps {\n isOpened: boolean;\n onOpen: () => void;\n onClose: () => void;\n onChange: (value: string) => void;\n delay: number;\n selectedResultIndex?: number;\n resultCount?: number;\n onSelectedResultChanged: (index: number) => void;\n size: \"large\" | \"small\";\n isDisabled?: boolean;\n}\n\nfunction DebouncedSearchBox({\n isOpened,\n selectedResultIndex,\n resultCount,\n onSelectedResultChanged,\n onChange,\n onOpen,\n onClose,\n delay,\n size,\n isDisabled,\n}: DebouncedSearchBoxProps) {\n const [inputValue, setInputValue] = useState<string>(\"\");\n const onChangeRef = useRef(onChange);\n // save latest `onChange` reference into `useRef` to avoid restarting timeout when `onChange` reference changes.\n onChangeRef.current = onChange;\n\n useEffect(() => {\n if (!inputValue) {\n onChangeRef.current(\"\");\n return;\n }\n\n const timeoutId = setTimeout(() => {\n onChangeRef.current(inputValue);\n }, delay);\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [inputValue, delay]);\n\n return (\n <SearchBox\n expandable\n isExpanded={isOpened}\n onExpand={onOpen}\n onCollapse={onClose}\n size={size}\n className={classnames(\"tree-widget-search-box\", !isOpened && \"contracted\")}\n isDisabled={isDisabled}\n >\n <SearchBox.CollapsedState>\n <SearchBox.ExpandButton\n title={TreeWidget.translate(\"header.searchBox.searchForSomething\")}\n aria-label={TreeWidget.translate(\"header.searchBox.open\")}\n size={size}\n styleType=\"borderless\"\n />\n </SearchBox.CollapsedState>\n <SearchBox.ExpandedState>\n <SearchBox.Input placeholder={TreeWidget.translate(\"header.searchBox.search\")} onChange={(e) => setInputValue(e.currentTarget.value)} />\n <SearchResultStepper selectedIndex={selectedResultIndex} total={resultCount} onStep={onSelectedResultChanged} size={size} />\n <SearchBox.CollapseButton\n onClick={() => {\n setInputValue(\"\");\n onClose();\n }}\n size={size}\n aria-label={TreeWidget.translate(\"header.searchBox.close\")}\n />\n </SearchBox.ExpandedState>\n </SearchBox>\n );\n}\n\ninterface HeaderButtonsProps {\n contracted: boolean;\n size: \"large\" | \"small\";\n}\n\nfunction HeaderButtons(props: PropsWithChildren<HeaderButtonsProps>) {\n const className = classnames(\"button-container\", props.contracted && \"contracted\");\n\n return (\n <ButtonGroup\n className={className}\n overflowButton={(overflowStart) => (\n <DropdownMenu\n menuItems={() =>\n Children.toArray(props.children)\n .slice(overflowStart)\n .map((btn, index) => (\n <li key={index} className=\"dropdown-item\" role=\"menuitem\">\n {btn}\n </li>\n ))\n }\n className=\"tree-header-button-dropdown-container\"\n >\n <IconButton label={TreeWidget.translate(\"header.dropdownMore\")} styleType=\"borderless\" size={props.size}>\n <SvgMore />\n </IconButton>\n </DropdownMenu>\n )}\n >\n {props.children}\n </ButtonGroup>\n );\n}\n\ninterface SearchResultStepperProps {\n total?: number;\n onStep: (newIndex: number) => void;\n selectedIndex?: number;\n size: \"large\" | \"small\";\n}\n\nfunction SearchResultStepper(props: SearchResultStepperProps) {\n const { selectedIndex = 1, total, onStep } = props;\n if (!total) {\n return null;\n }\n\n return (\n <>\n <span className=\"searchbox-stepping-count\">{`${selectedIndex}/${total}`}</span>\n <Divider orientation=\"vertical\" />\n <SearchBox.Button\n title={TreeWidget.translate(\"header.searchBox.previous\")}\n size={props.size}\n onClick={() => {\n if (selectedIndex > 1) {\n onStep(selectedIndex - 1);\n }\n }}\n >\n <SvgCaretUpSmall />\n </SearchBox.Button>\n <SearchBox.Button\n title={TreeWidget.translate(\"header.searchBox.next\")}\n size={props.size}\n onClick={() => {\n if (selectedIndex < total) {\n onStep(selectedIndex + 1);\n }\n }}\n >\n <SvgCaretDownSmall />\n </SearchBox.Button>\n </>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import "./TreeWithHeader.scss";
2
2
  import type { PropsWithChildren, ReactNode } from "react";
3
- import type { TreeFilteringProps } from "./TreeHeader";
3
+ import type { TreeFilteringProps } from "./TreeHeader.js";
4
4
  /** @beta */
5
5
  interface TreeWithHeaderProps {
6
6
  density?: "enlarged" | "default";
@@ -11,10 +11,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
11
11
  *--------------------------------------------------------------------------------------------*/
12
12
  require("./TreeWithHeader.scss");
13
13
  const classnames_1 = __importDefault(require("classnames"));
14
- const TreeHeader_1 = require("./TreeHeader");
14
+ const TreeHeader_js_1 = require("./TreeHeader.js");
15
15
  /** @beta */
16
16
  function TreeWithHeader({ filteringProps, buttons, density, children }) {
17
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)("tw-tree-with-header", density === "enlarged" && "enlarge"), children: [(0, jsx_runtime_1.jsx)(TreeHeader_1.TreeHeader, { filteringProps: filteringProps, density: density, children: buttons }), (0, jsx_runtime_1.jsx)("div", { className: "tw-tree-content", children: children })] }));
17
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)("tw-tree-with-header", density === "enlarged" && "enlarge"), children: [(0, jsx_runtime_1.jsx)(TreeHeader_js_1.TreeHeader, { filteringProps: filteringProps, density: density, children: buttons }), (0, jsx_runtime_1.jsx)("div", { className: "tw-tree-content", children: children })] }));
18
18
  }
19
19
  exports.TreeWithHeader = TreeWithHeader;
20
20
  //# sourceMappingURL=TreeWithHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeWithHeader.js","sourceRoot":"","sources":["../../../../../src/tree-widget-react/components/tree-header/TreeWithHeader.tsx"],"names":[],"mappings":";;;;;;;AAAA;;;gGAGgG;AAEhG,iCAA+B;AAC/B,4DAAoC;AACpC,mDAA6C;AAY7C,YAAY;AACZ,SAAgB,cAAc,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAA0C;IACnH,OAAO,CACL,iCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,qBAAqB,EAAE,OAAO,KAAK,UAAU,IAAI,SAAS,CAAC,aACpF,uBAAC,0BAAU,IAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,YACzD,OAAO,GACG,EACb,gCAAK,SAAS,EAAC,iBAAiB,YAAE,QAAQ,GAAO,IAC7C,CACP,CAAC;AACJ,CAAC;AATD,wCASC","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 \"./TreeWithHeader.scss\";\nimport classNames from \"classnames\";\nimport { TreeHeader } from \"./TreeHeader.js\";\n\nimport type { PropsWithChildren, ReactNode } from \"react\";\nimport type { TreeFilteringProps } from \"./TreeHeader.js\";\n\n/** @beta */\ninterface TreeWithHeaderProps {\n density?: \"enlarged\" | \"default\";\n filteringProps?: TreeFilteringProps;\n buttons?: ReactNode;\n}\n\n/** @beta */\nexport function TreeWithHeader({ filteringProps, buttons, density, children }: PropsWithChildren<TreeWithHeaderProps>) {\n return (\n <div className={classNames(\"tw-tree-with-header\", density === \"enlarged\" && \"enlarge\")}>\n <TreeHeader filteringProps={filteringProps} density={density}>\n {buttons}\n </TreeHeader>\n <div className=\"tw-tree-content\">{children}</div>\n </div>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { UseCategoriesTreeProps } from "./UseCategoriesTree";
3
- import type { VisibilityTreeProps } from "../common/components/VisibilityTree";
2
+ import type { UseCategoriesTreeProps } from "./UseCategoriesTree.js";
3
+ import type { VisibilityTreeProps } from "../common/components/VisibilityTree.js";
4
4
  /** @beta */
5
5
  export type CategoriesTreeProps = Pick<VisibilityTreeProps, "imodel" | "getSchemaContext" | "selectionStorage" | "density" | "selectionMode"> & UseCategoriesTreeProps & {
6
6
  hierarchyLevelConfig?: {
@@ -6,17 +6,17 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
7
7
  * See LICENSE.md in the project root for license terms and full copyright notice.
8
8
  *--------------------------------------------------------------------------------------------*/
9
- const VisibilityTree_1 = require("../common/components/VisibilityTree");
10
- const VisibilityTreeRenderer_1 = require("../common/components/VisibilityTreeRenderer");
11
- const UseCategoriesTree_1 = require("./UseCategoriesTree");
9
+ const VisibilityTree_js_1 = require("../common/components/VisibilityTree.js");
10
+ const VisibilityTreeRenderer_js_1 = require("../common/components/VisibilityTreeRenderer.js");
11
+ const UseCategoriesTree_js_1 = require("./UseCategoriesTree.js");
12
12
  /** @beta */
13
13
  function CategoriesTree({ imodel, getSchemaContext, selectionStorage, activeView, filter, density, hierarchyLevelConfig, selectionMode, onCategoriesFiltered, }) {
14
- const { categoriesTreeProps, rendererProps } = (0, UseCategoriesTree_1.useCategoriesTree)({
14
+ const { categoriesTreeProps, rendererProps } = (0, UseCategoriesTree_js_1.useCategoriesTree)({
15
15
  filter,
16
16
  activeView,
17
17
  onCategoriesFiltered,
18
18
  });
19
- return ((0, jsx_runtime_1.jsx)(VisibilityTree_1.VisibilityTree, { ...categoriesTreeProps, imodel: imodel, selectionStorage: selectionStorage, getSchemaContext: getSchemaContext, hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit, density: density, selectionMode: selectionMode ?? "none", treeRenderer: (treeProps) => (0, jsx_runtime_1.jsx)(VisibilityTreeRenderer_1.VisibilityTreeRenderer, { ...treeProps, ...rendererProps }) }));
19
+ return ((0, jsx_runtime_1.jsx)(VisibilityTree_js_1.VisibilityTree, { ...categoriesTreeProps, imodel: imodel, selectionStorage: selectionStorage, getSchemaContext: getSchemaContext, hierarchyLevelSizeLimit: hierarchyLevelConfig?.sizeLimit, density: density, selectionMode: selectionMode ?? "none", treeRenderer: (treeProps) => (0, jsx_runtime_1.jsx)(VisibilityTreeRenderer_js_1.VisibilityTreeRenderer, { ...treeProps, ...rendererProps }) }));
20
20
  }
21
21
  exports.CategoriesTree = CategoriesTree;
22
22
  //# sourceMappingURL=CategoriesTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoriesTree.js","sourceRoot":"","sources":["../../../../../../src/tree-widget-react/components/trees/categories-tree/CategoriesTree.tsx"],"names":[],"mappings":";;;;AAAA;;;gGAGgG;AAEhG,8EAAwE;AACxE,8FAAwF;AACxF,iEAA2D;AAa3D,YAAY;AACZ,SAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GACA;IACpB,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,IAAA,wCAAiB,EAAC;QAC/D,MAAM;QACN,UAAU;QACV,oBAAoB;KACrB,CAAC,CAAC;IAEH,OAAO,CACL,uBAAC,kCAAc,OACT,mBAAmB,EACvB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,uBAAuB,EAAE,oBAAoB,EAAE,SAAS,EACxD,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,IAAI,MAAM,EACtC,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,uBAAC,kDAAsB,OAAK,SAAS,KAAM,aAAa,GAAI,GACzF,CACH,CAAC;AACJ,CAAC;AA7BD,wCA6BC","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 { VisibilityTree } from \"../common/components/VisibilityTree.js\";\nimport { VisibilityTreeRenderer } from \"../common/components/VisibilityTreeRenderer.js\";\nimport { useCategoriesTree } from \"./UseCategoriesTree.js\";\n\nimport type { UseCategoriesTreeProps } from \"./UseCategoriesTree.js\";\nimport type { VisibilityTreeProps } from \"../common/components/VisibilityTree.js\";\n\n/** @beta */\nexport type CategoriesTreeProps = Pick<VisibilityTreeProps, \"imodel\" | \"getSchemaContext\" | \"selectionStorage\" | \"density\" | \"selectionMode\"> &\n UseCategoriesTreeProps & {\n hierarchyLevelConfig?: {\n sizeLimit?: number;\n };\n };\n\n/** @beta */\nexport function CategoriesTree({\n imodel,\n getSchemaContext,\n selectionStorage,\n activeView,\n filter,\n density,\n hierarchyLevelConfig,\n selectionMode,\n onCategoriesFiltered,\n}: CategoriesTreeProps) {\n const { categoriesTreeProps, rendererProps } = useCategoriesTree({\n filter,\n activeView,\n onCategoriesFiltered,\n });\n\n return (\n <VisibilityTree\n {...categoriesTreeProps}\n imodel={imodel}\n selectionStorage={selectionStorage}\n getSchemaContext={getSchemaContext}\n hierarchyLevelSizeLimit={hierarchyLevelConfig?.sizeLimit}\n density={density}\n selectionMode={selectionMode ?? \"none\"}\n treeRenderer={(treeProps) => <VisibilityTreeRenderer {...treeProps} {...rendererProps} />}\n />\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { CategoryInfo } from "../common/CategoriesVisibilityUtils";
3
- import type { TreeHeaderButtonProps } from "../../tree-header/TreeHeader";
2
+ import type { CategoryInfo } from "../common/CategoriesVisibilityUtils.js";
3
+ import type { TreeHeaderButtonProps } from "../../tree-header/TreeHeader.js";
4
4
  import type { Viewport } from "@itwin/core-frontend";
5
5
  /**
6
6
  * Props that get passed to `CategoriesTreeComponent` header button renderer.
@@ -10,8 +10,8 @@ const react_1 = require("react");
10
10
  const components_react_1 = require("@itwin/components-react");
11
11
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
12
12
  const itwinui_react_1 = require("@itwin/itwinui-react");
13
- const TreeWidget_1 = require("../../../TreeWidget");
14
- const CategoriesVisibilityUtils_1 = require("../common/CategoriesVisibilityUtils");
13
+ const TreeWidget_js_1 = require("../../../TreeWidget.js");
14
+ const CategoriesVisibilityUtils_js_1 = require("../common/CategoriesVisibilityUtils.js");
15
15
  /**
16
16
  * Custom hook that creates props required to render `CategoriesTreeComponent` header button.
17
17
  *
@@ -44,31 +44,31 @@ function useCategoriesTreeButtonProps({ viewport }) {
44
44
  exports.useCategoriesTreeButtonProps = useCategoriesTreeButtonProps;
45
45
  /** @public */
46
46
  function ShowAllButton(props) {
47
- return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", label: TreeWidget_1.TreeWidget.translate("categoriesTree.buttons.showAll.tooltip"), onClick: () => {
47
+ return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", label: TreeWidget_js_1.TreeWidget.translate("categoriesTree.buttons.showAll.tooltip"), onClick: () => {
48
48
  props.onFeatureUsed?.(`categories-tree-showall`);
49
- void (0, CategoriesVisibilityUtils_1.showAllCategories)(props.categories.map((category) => category.categoryId), props.viewport);
49
+ void (0, CategoriesVisibilityUtils_js_1.showAllCategories)(props.categories.map((category) => category.categoryId), props.viewport);
50
50
  }, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgVisibilityShow, {}) }));
51
51
  }
52
52
  exports.ShowAllButton = ShowAllButton;
53
53
  /** @public */
54
54
  function HideAllButton(props) {
55
- return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", label: TreeWidget_1.TreeWidget.translate("categoriesTree.buttons.hideAll.tooltip"), onClick: () => {
55
+ return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", label: TreeWidget_js_1.TreeWidget.translate("categoriesTree.buttons.hideAll.tooltip"), onClick: () => {
56
56
  props.onFeatureUsed?.(`categories-tree-hideall`);
57
- void (0, CategoriesVisibilityUtils_1.hideAllCategories)(props.categories.map((category) => category.categoryId), props.viewport);
57
+ void (0, CategoriesVisibilityUtils_js_1.hideAllCategories)(props.categories.map((category) => category.categoryId), props.viewport);
58
58
  }, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgVisibilityHide, {}) }));
59
59
  }
60
60
  exports.HideAllButton = HideAllButton;
61
61
  /** @public */
62
62
  function InvertAllButton(props) {
63
- return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { label: TreeWidget_1.TreeWidget.translate("categoriesTree.buttons.invert.tooltip"), size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", onClick: () => {
63
+ return ((0, jsx_runtime_1.jsx)(itwinui_react_1.IconButton, { label: TreeWidget_js_1.TreeWidget.translate("categoriesTree.buttons.invert.tooltip"), size: props.density === "enlarged" ? "large" : "small", styleType: "borderless", onClick: () => {
64
64
  props.onFeatureUsed?.(`categories-tree-invert`);
65
- void (0, CategoriesVisibilityUtils_1.invertAllCategories)(props.categories, props.viewport);
65
+ void (0, CategoriesVisibilityUtils_js_1.invertAllCategories)(props.categories, props.viewport);
66
66
  }, children: (0, jsx_runtime_1.jsx)(itwinui_icons_react_1.SvgVisibilityHalf, {}) }));
67
67
  }
68
68
  exports.InvertAllButton = InvertAllButton;
69
69
  const EMPTY_CATEGORIES_ARRAY = [];
70
70
  function useCategories(viewport) {
71
- const categoriesPromise = (0, react_1.useMemo)(async () => (0, CategoriesVisibilityUtils_1.loadCategoriesFromViewport)(viewport), [viewport]);
71
+ const categoriesPromise = (0, react_1.useMemo)(async () => (0, CategoriesVisibilityUtils_js_1.loadCategoriesFromViewport)(viewport), [viewport]);
72
72
  return (0, components_react_1.useAsyncValue)(categoriesPromise) ?? EMPTY_CATEGORIES_ARRAY;
73
73
  }
74
74
  exports.useCategories = useCategories;
@@ -1 +1 @@
1
- {"version":3,"file":"CategoriesTreeButtons.js","sourceRoot":"","sources":["../../../../../src/components/trees/categories-tree/CategoriesTreeButtons.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 { useMemo, useState } from \"react\";\nimport { useAsyncValue } from \"@itwin/components-react\";\nimport { SvgVisibilityHalf, SvgVisibilityHide, SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport { IconButton } from \"@itwin/itwinui-react\";\nimport { TreeWidget } from \"../../../TreeWidget\";\nimport { hideAllCategories, invertAllCategories, loadCategoriesFromViewport, showAllCategories } from \"../common/CategoriesVisibilityUtils\";\n\nimport type { CategoryInfo } from \"../common/CategoriesVisibilityUtils\";\nimport type { TreeHeaderButtonProps } from \"../../tree-header/TreeHeader\";\nimport type { Viewport } from \"@itwin/core-frontend\";\n\n/**\n * Props that get passed to `CategoriesTreeComponent` header button renderer.\n * @see CategoriesTreeComponentProps.headerButtons\n * @public\n */\nexport interface CategoriesTreeHeaderButtonProps extends TreeHeaderButtonProps {\n /** A list of categories available in the iModel */\n categories: CategoryInfo[];\n}\n\n/**\n * Custom hook that creates props required to render `CategoriesTreeComponent` header button.\n *\n * Example:\n * ```tsx\n * const { buttonProps, onCategoriesFiltered } = useCategoriesTreeButtonProps({ viewport });\n * <TreeWithHeader\n * buttons={[\n * <CategoriesTreeComponent.ShowAllButton {...buttonProps} />,\n * <CategoriesTreeComponent.HideAllButton {...buttonProps} />,\n * ]}\n * >\n * <CategoriesTree {...treeProps} onCategoriesFiltered={onCategoriesFiltered} />\n * </TreeWithHeader>\n * ```\n *\n * @public\n */\nexport function useCategoriesTreeButtonProps({ viewport }: { viewport: Viewport }): {\n buttonProps: Pick<CategoriesTreeHeaderButtonProps, \"categories\" | \"viewport\">;\n onCategoriesFiltered: (categories: CategoryInfo[] | undefined) => void;\n} {\n const [filteredCategories, setFilteredCategories] = useState<CategoryInfo[] | undefined>();\n const categories = useCategories(viewport);\n return {\n buttonProps: {\n viewport,\n categories: filteredCategories ?? categories,\n },\n onCategoriesFiltered: setFilteredCategories,\n };\n}\n\n/** @public */\nexport type CategoriesTreeHeaderButtonType = (props: CategoriesTreeHeaderButtonProps) => JSX.Element | null;\n\n/** @public */\nexport function ShowAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n label={TreeWidget.translate(\"categoriesTree.buttons.showAll.tooltip\")}\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-showall`);\n void showAllCategories(\n props.categories.map((category) => category.categoryId),\n props.viewport,\n );\n }}\n >\n <SvgVisibilityShow />\n </IconButton>\n );\n}\n\n/** @public */\nexport function HideAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n label={TreeWidget.translate(\"categoriesTree.buttons.hideAll.tooltip\")}\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-hideall`);\n void hideAllCategories(\n props.categories.map((category) => category.categoryId),\n props.viewport,\n );\n }}\n >\n <SvgVisibilityHide />\n </IconButton>\n );\n}\n\n/** @public */\nexport function InvertAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n label={TreeWidget.translate(\"categoriesTree.buttons.invert.tooltip\")}\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-invert`);\n void invertAllCategories(props.categories, props.viewport);\n }}\n >\n <SvgVisibilityHalf />\n </IconButton>\n );\n}\n\nconst EMPTY_CATEGORIES_ARRAY: CategoryInfo[] = [];\n\nexport function useCategories(viewport: Viewport) {\n const categoriesPromise = useMemo(async () => loadCategoriesFromViewport(viewport), [viewport]);\n return useAsyncValue(categoriesPromise) ?? EMPTY_CATEGORIES_ARRAY;\n}\n"]}
1
+ {"version":3,"file":"CategoriesTreeButtons.js","sourceRoot":"","sources":["../../../../../../src/tree-widget-react/components/trees/categories-tree/CategoriesTreeButtons.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 { useMemo, useState } from \"react\";\nimport { useAsyncValue } from \"@itwin/components-react\";\nimport { SvgVisibilityHalf, SvgVisibilityHide, SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport { IconButton } from \"@itwin/itwinui-react\";\nimport { TreeWidget } from \"../../../TreeWidget.js\";\nimport { hideAllCategories, invertAllCategories, loadCategoriesFromViewport, showAllCategories } from \"../common/CategoriesVisibilityUtils.js\";\n\nimport type { CategoryInfo } from \"../common/CategoriesVisibilityUtils.js\";\nimport type { TreeHeaderButtonProps } from \"../../tree-header/TreeHeader.js\";\nimport type { Viewport } from \"@itwin/core-frontend\";\n\n/**\n * Props that get passed to `CategoriesTreeComponent` header button renderer.\n * @see CategoriesTreeComponentProps.headerButtons\n * @public\n */\nexport interface CategoriesTreeHeaderButtonProps extends TreeHeaderButtonProps {\n /** A list of categories available in the iModel */\n categories: CategoryInfo[];\n}\n\n/**\n * Custom hook that creates props required to render `CategoriesTreeComponent` header button.\n *\n * Example:\n * ```tsx\n * const { buttonProps, onCategoriesFiltered } = useCategoriesTreeButtonProps({ viewport });\n * <TreeWithHeader\n * buttons={[\n * <CategoriesTreeComponent.ShowAllButton {...buttonProps} />,\n * <CategoriesTreeComponent.HideAllButton {...buttonProps} />,\n * ]}\n * >\n * <CategoriesTree {...treeProps} onCategoriesFiltered={onCategoriesFiltered} />\n * </TreeWithHeader>\n * ```\n *\n * @public\n */\nexport function useCategoriesTreeButtonProps({ viewport }: { viewport: Viewport }): {\n buttonProps: Pick<CategoriesTreeHeaderButtonProps, \"categories\" | \"viewport\">;\n onCategoriesFiltered: (categories: CategoryInfo[] | undefined) => void;\n} {\n const [filteredCategories, setFilteredCategories] = useState<CategoryInfo[] | undefined>();\n const categories = useCategories(viewport);\n return {\n buttonProps: {\n viewport,\n categories: filteredCategories ?? categories,\n },\n onCategoriesFiltered: setFilteredCategories,\n };\n}\n\n/** @public */\nexport type CategoriesTreeHeaderButtonType = (props: CategoriesTreeHeaderButtonProps) => JSX.Element | null;\n\n/** @public */\nexport function ShowAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n label={TreeWidget.translate(\"categoriesTree.buttons.showAll.tooltip\")}\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-showall`);\n void showAllCategories(\n props.categories.map((category) => category.categoryId),\n props.viewport,\n );\n }}\n >\n <SvgVisibilityShow />\n </IconButton>\n );\n}\n\n/** @public */\nexport function HideAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n label={TreeWidget.translate(\"categoriesTree.buttons.hideAll.tooltip\")}\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-hideall`);\n void hideAllCategories(\n props.categories.map((category) => category.categoryId),\n props.viewport,\n );\n }}\n >\n <SvgVisibilityHide />\n </IconButton>\n );\n}\n\n/** @public */\nexport function InvertAllButton(props: CategoriesTreeHeaderButtonProps) {\n return (\n <IconButton\n label={TreeWidget.translate(\"categoriesTree.buttons.invert.tooltip\")}\n size={props.density === \"enlarged\" ? \"large\" : \"small\"}\n styleType=\"borderless\"\n onClick={() => {\n props.onFeatureUsed?.(`categories-tree-invert`);\n void invertAllCategories(props.categories, props.viewport);\n }}\n >\n <SvgVisibilityHalf />\n </IconButton>\n );\n}\n\nconst EMPTY_CATEGORIES_ARRAY: CategoryInfo[] = [];\n\nexport function useCategories(viewport: Viewport) {\n const categoriesPromise = useMemo(async () => loadCategoriesFromViewport(viewport), [viewport]);\n return useAsyncValue(categoriesPromise) ?? EMPTY_CATEGORIES_ARRAY;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { CategoriesTreeProps } from "./CategoriesTree";
3
- import type { CategoriesTreeHeaderButtonProps, CategoriesTreeHeaderButtonType } from "./CategoriesTreeButtons";
2
+ import type { CategoriesTreeProps } from "./CategoriesTree.js";
3
+ import type { CategoriesTreeHeaderButtonProps, CategoriesTreeHeaderButtonType } from "./CategoriesTreeButtons.js";
4
4
  /** @public */
5
5
  interface CategoriesTreeComponentProps extends Pick<CategoriesTreeProps, "getSchemaContext" | "selectionStorage" | "density" | "hierarchyLevelConfig" | "selectionMode"> {
6
6
  /**
@@ -9,20 +9,20 @@ const jsx_runtime_1 = require("react/jsx-runtime");
9
9
  *--------------------------------------------------------------------------------------------*/
10
10
  const react_2 = require("react");
11
11
  const appui_react_1 = require("@itwin/appui-react");
12
- const TreeWidget_1 = require("../../../TreeWidget");
13
- const TreeWithHeader_1 = require("../../tree-header/TreeWithHeader");
14
- const UseActiveViewport_1 = require("../common/UseActiveViewport");
15
- const UseFiltering_1 = require("../common/UseFiltering");
16
- const UseTelemetryContext_1 = require("../common/UseTelemetryContext");
17
- const CategoriesTree_1 = require("./CategoriesTree");
18
- const CategoriesTreeButtons_1 = require("./CategoriesTreeButtons");
12
+ const TreeWidget_js_1 = require("../../../TreeWidget.js");
13
+ const TreeWithHeader_js_1 = require("../../tree-header/TreeWithHeader.js");
14
+ const UseActiveViewport_js_1 = require("../common/UseActiveViewport.js");
15
+ const UseFiltering_js_1 = require("../common/UseFiltering.js");
16
+ const UseTelemetryContext_js_1 = require("../common/UseTelemetryContext.js");
17
+ const CategoriesTree_js_1 = require("./CategoriesTree.js");
18
+ const CategoriesTreeButtons_js_1 = require("./CategoriesTreeButtons.js");
19
19
  /**
20
20
  * A component that renders `CategoriesTree` and a header with filtering capabilities and header buttons.
21
21
  * @public
22
22
  */
23
23
  const CategoriesTreeComponent = (props) => {
24
24
  const iModel = (0, appui_react_1.useActiveIModelConnection)();
25
- const viewport = (0, UseActiveViewport_1.useActiveViewport)();
25
+ const viewport = (0, UseActiveViewport_js_1.useActiveViewport)();
26
26
  if (!iModel || !viewport) {
27
27
  return null;
28
28
  }
@@ -33,17 +33,17 @@ exports.CategoriesTreeComponent = CategoriesTreeComponent;
33
33
  * Renders a "Show all" button that enables display of all categories and their subcategories.
34
34
  * @public
35
35
  */
36
- exports.CategoriesTreeComponent.ShowAllButton = CategoriesTreeButtons_1.ShowAllButton;
36
+ exports.CategoriesTreeComponent.ShowAllButton = CategoriesTreeButtons_js_1.ShowAllButton;
37
37
  /**
38
38
  * Renders a "Hide all" button that disables display of all categories.
39
39
  * @public
40
40
  */
41
- exports.CategoriesTreeComponent.HideAllButton = CategoriesTreeButtons_1.HideAllButton;
41
+ exports.CategoriesTreeComponent.HideAllButton = CategoriesTreeButtons_js_1.HideAllButton;
42
42
  /**
43
43
  * Renders an "Invert all" button that inverts display of all categories.
44
44
  * @public
45
45
  */
46
- exports.CategoriesTreeComponent.InvertAllButton = CategoriesTreeButtons_1.InvertAllButton;
46
+ exports.CategoriesTreeComponent.InvertAllButton = CategoriesTreeButtons_js_1.InvertAllButton;
47
47
  /**
48
48
  * Id of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.
49
49
  * @public
@@ -53,21 +53,21 @@ exports.CategoriesTreeComponent.id = "categories-tree-v2";
53
53
  * Label of the component. May be used when a creating a `TreeDefinition` for `SelectableTree`.
54
54
  * @public
55
55
  */
56
- exports.CategoriesTreeComponent.getLabel = () => TreeWidget_1.TreeWidget.translate("categoriesTree.label");
56
+ exports.CategoriesTreeComponent.getLabel = () => TreeWidget_js_1.TreeWidget.translate("categoriesTree.label");
57
57
  function CategoriesTreeComponentImpl({ iModel, viewport, headerButtons, onPerformanceMeasured, onFeatureUsed, ...treeProps }) {
58
- const { buttonProps, onCategoriesFiltered } = (0, CategoriesTreeButtons_1.useCategoriesTreeButtonProps)({ viewport });
59
- const { filter, applyFilter, clearFilter } = (0, UseFiltering_1.useFiltering)();
58
+ const { buttonProps, onCategoriesFiltered } = (0, CategoriesTreeButtons_js_1.useCategoriesTreeButtonProps)({ viewport });
59
+ const { filter, applyFilter, clearFilter } = (0, UseFiltering_js_1.useFiltering)();
60
60
  const density = treeProps.density;
61
61
  const buttons = headerButtons
62
62
  ? headerButtons.map((btn, index) => (0, jsx_runtime_1.jsx)(react_2.Fragment, { children: btn({ ...buttonProps, onFeatureUsed }) }, index))
63
63
  : [
64
- (0, react_1.createElement)(CategoriesTreeButtons_1.ShowAllButton, { ...buttonProps, key: "show-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
65
- (0, react_1.createElement)(CategoriesTreeButtons_1.HideAllButton, { ...buttonProps, key: "hide-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
66
- (0, react_1.createElement)(CategoriesTreeButtons_1.InvertAllButton, { ...buttonProps, key: "invert-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
64
+ (0, react_1.createElement)(CategoriesTreeButtons_js_1.ShowAllButton, { ...buttonProps, key: "show-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
65
+ (0, react_1.createElement)(CategoriesTreeButtons_js_1.HideAllButton, { ...buttonProps, key: "hide-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
66
+ (0, react_1.createElement)(CategoriesTreeButtons_js_1.InvertAllButton, { ...buttonProps, key: "invert-all-btn", density: density, onFeatureUsed: onFeatureUsed }),
67
67
  ];
68
- return ((0, jsx_runtime_1.jsx)(UseTelemetryContext_1.TelemetryContextProvider, { componentIdentifier: exports.CategoriesTreeComponent.id, onFeatureUsed: onFeatureUsed, onPerformanceMeasured: onPerformanceMeasured, children: (0, jsx_runtime_1.jsx)(TreeWithHeader_1.TreeWithHeader, { buttons: buttons, density: density, filteringProps: {
68
+ return ((0, jsx_runtime_1.jsx)(UseTelemetryContext_js_1.TelemetryContextProvider, { componentIdentifier: exports.CategoriesTreeComponent.id, onFeatureUsed: onFeatureUsed, onPerformanceMeasured: onPerformanceMeasured, children: (0, jsx_runtime_1.jsx)(TreeWithHeader_js_1.TreeWithHeader, { buttons: buttons, density: density, filteringProps: {
69
69
  onFilterStart: applyFilter,
70
70
  onFilterClear: clearFilter,
71
- }, children: (0, jsx_runtime_1.jsx)(CategoriesTree_1.CategoriesTree, { ...treeProps, imodel: iModel, activeView: viewport, filter: filter, onCategoriesFiltered: onCategoriesFiltered }) }) }));
71
+ }, children: (0, jsx_runtime_1.jsx)(CategoriesTree_js_1.CategoriesTree, { ...treeProps, imodel: iModel, activeView: viewport, filter: filter, onCategoriesFiltered: onCategoriesFiltered }) }) }));
72
72
  }
73
73
  //# sourceMappingURL=CategoriesTreeComponent.js.map