@itwin/appui-react 3.0.0-dev.98 → 3.1.0-dev.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 (929) hide show
  1. package/CHANGELOG.md +80 -1
  2. package/LICENSE.md +1 -1
  3. package/README.md +3 -3
  4. package/lib/cjs/appui-react/UiFramework.d.ts +37 -22
  5. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/UiFramework.js +53 -38
  7. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/Calculator.js +1 -1
  15. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  17. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +5 -4
  19. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  20. package/lib/cjs/appui-react/backstage/Backstage.d.ts +0 -2
  21. package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +2 -0
  24. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageComposer.js +26 -8
  26. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  27. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
  28. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -1
  29. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  30. package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  31. package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
  32. package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  34. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +3 -3
  35. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts +2 -0
  37. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -0
  39. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  40. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
  41. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js +5 -6
  43. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  44. package/lib/cjs/appui-react/backstage/Separator.d.ts +1 -0
  45. package/lib/cjs/appui-react/backstage/Separator.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/backstage/Separator.js +3 -2
  47. package/lib/cjs/appui-react/backstage/Separator.js.map +1 -1
  48. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  49. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +4 -5
  51. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  52. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  54. package/lib/cjs/appui-react/configurableui/state.d.ts +10 -3
  55. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/configurableui/state.js +15 -2
  57. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  58. package/lib/cjs/appui-react/content/ContentControl.d.ts +1 -1
  59. package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/content/ContentControl.js +2 -2
  61. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  62. package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -2
  63. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/content/ContentLayout.js +4 -3
  65. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  66. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +1 -1
  67. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/content/ContentViewManager.js +3 -3
  69. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  70. package/lib/cjs/appui-react/content/IModelViewport.d.ts +13 -1
  71. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/content/IModelViewport.js +18 -5
  73. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  74. package/lib/cjs/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
  75. package/lib/cjs/appui-react/content/StageContentLayout.d.ts.map +1 -0
  76. package/lib/cjs/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +19 -17
  77. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -0
  78. package/lib/cjs/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
  79. package/lib/cjs/appui-react/content/ViewStateHelper.d.ts.map +1 -0
  80. package/lib/cjs/appui-react/content/{SavedView.js → ViewStateHelper.js} +4 -4
  81. package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -0
  82. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts +21 -0
  83. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  84. package/lib/cjs/appui-react/content/split-pane/Pane.js +43 -0
  85. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -0
  86. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts +23 -0
  87. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  88. package/lib/cjs/appui-react/content/split-pane/Resizer.js +39 -0
  89. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -0
  90. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  91. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  92. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +243 -0
  93. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -0
  94. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +1 -2
  95. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/cursor/CursorInformation.js +1 -1
  97. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  98. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  100. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  101. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  102. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +3 -3
  103. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  104. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  105. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -2
  107. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  108. package/lib/cjs/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/dialog/StandardMessageBox.js +3 -0
  110. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  111. package/lib/cjs/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/dragdrop/ZoneTargets.js +8 -4
  113. package/lib/cjs/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  114. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +2 -2
  115. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/feedback/ElementTooltip.js +4 -2
  117. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  118. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +1 -0
  119. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/frontstage/Frontstage.js +32 -13
  121. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  122. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  123. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +15 -1
  125. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  126. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +15 -2
  127. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  128. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +138 -3
  129. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  130. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +2 -1
  132. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  133. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  134. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  135. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  136. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  138. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  139. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  140. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
  141. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +19 -21
  143. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  144. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  145. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  146. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  147. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  148. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  149. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  150. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +1 -1
  151. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  152. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  153. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  154. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  155. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  156. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  157. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +81 -68
  158. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  159. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  161. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  162. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  164. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  165. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  166. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  168. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  169. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +1 -1
  170. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  171. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  172. package/lib/cjs/appui-react/messages/MessageManager.d.ts +1 -2
  173. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/messages/MessageManager.js +15 -9
  175. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  176. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  177. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/messages/Pointer.js +4 -3
  179. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  180. package/lib/cjs/appui-react/messages/ToastMessage.js +2 -1
  181. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  182. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  183. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  184. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +2 -2
  185. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  186. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  187. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  188. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  189. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  190. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  191. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  192. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
  193. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  194. package/lib/cjs/appui-react/pickers/ListPicker.js +24 -9
  195. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  196. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  197. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  198. package/lib/cjs/appui-react/pickers/ViewSelector.js +9 -9
  199. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  200. package/lib/cjs/appui-react/popup/CardPopup.d.ts +7 -4
  201. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  202. package/lib/cjs/appui-react/popup/CardPopup.js +3 -2
  203. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  204. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +3 -2
  205. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  206. package/lib/cjs/appui-react/popup/InputEditorPopup.js +1 -1
  207. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  208. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +6 -6
  209. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  210. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  211. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  212. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +1 -1
  213. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  214. package/lib/cjs/appui-react/popup/PopupManager.d.ts +10 -10
  215. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  216. package/lib/cjs/appui-react/popup/PopupManager.js +4 -4
  217. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  218. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +5 -3
  219. package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
  220. package/lib/cjs/appui-react/popup/PositionPopup.js +3 -2
  221. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  222. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  223. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  224. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +1 -1
  225. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  226. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +4 -3
  227. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  228. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  229. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  230. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  231. package/lib/cjs/appui-react/redux/SessionState.d.ts +0 -6
  232. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  233. package/lib/cjs/appui-react/redux/SessionState.js +0 -8
  234. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  235. package/lib/cjs/appui-react/redux/StateManager.d.ts +1 -1
  236. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  237. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  238. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  239. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  240. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  241. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  242. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  243. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +28 -19
  244. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  245. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  246. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  247. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  248. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  249. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  250. package/lib/cjs/appui-react/shared/ItemDefBase.js +1 -1
  251. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  252. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  253. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  254. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +1 -1
  255. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  256. package/lib/cjs/appui-react/shared/ToolItemDef.js +2 -2
  257. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  258. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  259. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  260. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  261. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +2 -2
  262. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  263. package/lib/cjs/appui-react/stagepanels/StagePanel.js +1 -0
  264. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  265. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +26 -2
  266. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  267. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +24 -3
  268. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  269. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  270. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  271. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js +2 -1
  272. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  273. package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -1
  274. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  275. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  276. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +17 -5
  277. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  278. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  279. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  280. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  281. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +15 -14
  282. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  283. package/lib/cjs/appui-react/statusfields/Indicator.js +23 -21
  284. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  285. package/lib/cjs/appui-react/statusfields/Indicator.scss +29 -18
  286. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  287. package/lib/cjs/appui-react/statusfields/MessageCenter.js +2 -1
  288. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  289. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +1 -0
  290. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  291. package/lib/cjs/appui-react/statusfields/SelectionScope.js +6 -4
  292. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  293. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +13 -3
  294. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -10
  295. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  296. package/lib/cjs/appui-react/statusfields/SnapMode.js +4 -34
  297. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  298. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  299. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +1 -25
  301. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  302. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  303. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  304. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +13 -12
  305. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  306. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  307. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
  308. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  309. package/lib/cjs/appui-react/syncui/BooleanListener.js +2 -1
  310. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  311. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  312. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  313. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +30 -103
  314. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  315. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js +2 -1
  316. package/lib/cjs/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  317. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  318. package/lib/cjs/appui-react/toolbar/ActionItemButton.js +2 -1
  319. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  320. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +24 -20
  321. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  322. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  323. package/lib/cjs/appui-react/toolbar/GroupItem.js +33 -29
  324. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  325. package/lib/cjs/appui-react/toolbar/ToolButton.js +3 -2
  326. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  327. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/toolbar/Toolbar.js +3 -2
  329. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  330. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  331. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +22 -20
  332. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  333. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  334. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +4 -4
  335. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  336. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  337. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js +2 -2
  338. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  339. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  340. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -36
  342. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  343. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  344. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  345. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +12 -20
  346. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  347. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  348. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  349. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +39 -50
  350. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  351. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +4 -4
  352. package/lib/{esm/appui-react/uisettings → cjs/appui-react/uistate}/AppUiSettings.d.ts +11 -9
  353. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  354. package/lib/cjs/appui-react/{uisettings → uistate}/AppUiSettings.js +12 -8
  355. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -0
  356. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  357. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  358. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +59 -0
  359. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  360. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  361. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  362. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -0
  363. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -0
  364. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +5 -5
  365. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  366. package/lib/cjs/appui-react/utils/UiShowHideManager.js +8 -8
  367. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  368. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  369. package/lib/cjs/appui-react/widget-panels/Content.js +1 -4
  370. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  371. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +98 -8
  372. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  373. package/lib/cjs/appui-react/widget-panels/Frontstage.js +83 -93
  374. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  375. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  376. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  377. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  378. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  379. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +56 -0
  380. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -0
  381. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  382. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +1 -0
  383. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  384. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  385. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +3 -1
  386. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  387. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  388. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  389. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +10 -0
  390. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  391. package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  392. package/lib/cjs/appui-react/widgets/NavigationWidget.js +2 -1
  393. package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
  394. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  395. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  396. package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  397. package/lib/cjs/appui-react/widgets/StableWidgetDef.js +1 -1
  398. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  399. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js +2 -1
  400. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  401. package/lib/cjs/appui-react/widgets/ToolWidget.js +3 -2
  402. package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
  403. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  404. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  405. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +1 -36
  406. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  407. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  408. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  409. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  410. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  411. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  412. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  413. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  414. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  415. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -3
  416. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  417. package/lib/cjs/appui-react/widgets/WidgetDef.js +18 -7
  418. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  419. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  420. package/lib/cjs/appui-react/widgets/WidgetHost.js +1 -0
  421. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  422. package/lib/cjs/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  423. package/lib/cjs/appui-react/widgets/WidgetStack.js +2 -0
  424. package/lib/cjs/appui-react/widgets/WidgetStack.js.map +1 -1
  425. package/lib/cjs/appui-react/zones/FrameworkZone.js.map +1 -1
  426. package/lib/cjs/appui-react/zones/StatusBarZone.js.map +1 -1
  427. package/lib/cjs/appui-react/zones/Zone.d.ts +1 -1
  428. package/lib/cjs/appui-react/zones/Zone.d.ts.map +1 -1
  429. package/lib/cjs/appui-react/zones/Zone.js +2 -1
  430. package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
  431. package/lib/cjs/appui-react/zones/ZoneDef.d.ts +4 -4
  432. package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
  433. package/lib/cjs/appui-react/zones/ZoneDef.js +5 -4
  434. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  435. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  436. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  437. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +3 -2
  438. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  439. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  440. package/lib/cjs/appui-react.d.ts +15 -18
  441. package/lib/cjs/appui-react.d.ts.map +1 -1
  442. package/lib/cjs/appui-react.js +15 -18
  443. package/lib/cjs/appui-react.js.map +1 -1
  444. package/lib/esm/appui-react/UiFramework.d.ts +37 -22
  445. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  446. package/lib/esm/appui-react/UiFramework.js +52 -37
  447. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  448. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +3 -3
  449. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  450. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +3 -3
  451. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  452. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  453. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  454. package/lib/esm/appui-react/accudraw/Calculator.js +1 -1
  455. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  456. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +4 -4
  457. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  458. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +6 -5
  459. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  460. package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
  461. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  462. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  463. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +2 -0
  464. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  465. package/lib/esm/appui-react/backstage/BackstageComposer.js +27 -9
  466. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  467. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +2 -2
  468. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -1
  469. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  470. package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  471. package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
  472. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  473. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +5 -5
  474. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +3 -3
  475. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  476. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts +2 -0
  477. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  478. package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -0
  479. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  480. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts +4 -0
  481. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  482. package/lib/esm/appui-react/backstage/FrontstageLaunch.js +5 -6
  483. package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  484. package/lib/esm/appui-react/backstage/Separator.d.ts +1 -0
  485. package/lib/esm/appui-react/backstage/Separator.d.ts.map +1 -1
  486. package/lib/esm/appui-react/backstage/Separator.js +3 -2
  487. package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
  488. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  489. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  490. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +4 -5
  491. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  492. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  493. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  494. package/lib/esm/appui-react/configurableui/state.d.ts +10 -3
  495. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  496. package/lib/esm/appui-react/configurableui/state.js +15 -2
  497. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  498. package/lib/esm/appui-react/content/ContentControl.d.ts +1 -1
  499. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  500. package/lib/esm/appui-react/content/ContentControl.js +1 -1
  501. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  502. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -2
  503. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  504. package/lib/esm/appui-react/content/ContentLayout.js +3 -2
  505. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  506. package/lib/esm/appui-react/content/ContentViewManager.d.ts +1 -1
  507. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  508. package/lib/esm/appui-react/content/ContentViewManager.js +1 -1
  509. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  510. package/lib/esm/appui-react/content/IModelViewport.d.ts +13 -1
  511. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  512. package/lib/esm/appui-react/content/IModelViewport.js +16 -4
  513. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  514. package/lib/esm/appui-react/content/{SavedViewLayout.d.ts → StageContentLayout.d.ts} +11 -11
  515. package/lib/esm/appui-react/content/StageContentLayout.d.ts.map +1 -0
  516. package/lib/esm/appui-react/content/{SavedViewLayout.js → StageContentLayout.js} +17 -15
  517. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -0
  518. package/lib/esm/appui-react/content/{SavedView.d.ts → ViewStateHelper.d.ts} +7 -7
  519. package/lib/esm/appui-react/content/ViewStateHelper.d.ts.map +1 -0
  520. package/lib/esm/appui-react/content/{SavedView.js → ViewStateHelper.js} +2 -2
  521. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -0
  522. package/lib/esm/appui-react/content/split-pane/Pane.d.ts +21 -0
  523. package/lib/esm/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  524. package/lib/esm/appui-react/content/split-pane/Pane.js +39 -0
  525. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -0
  526. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +23 -0
  527. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  528. package/lib/esm/appui-react/content/split-pane/Resizer.js +35 -0
  529. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -0
  530. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  531. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  532. package/lib/esm/appui-react/content/split-pane/SplitPane.js +239 -0
  533. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -0
  534. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +1 -2
  535. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  536. package/lib/esm/appui-react/cursor/CursorInformation.js +2 -2
  537. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  538. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  539. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  540. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  541. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  542. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +2 -2
  543. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  544. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  545. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  546. package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -1
  547. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  548. package/lib/esm/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
  549. package/lib/esm/appui-react/dialog/StandardMessageBox.js +3 -0
  550. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  551. package/lib/esm/appui-react/dragdrop/ZoneTargets.d.ts.map +1 -1
  552. package/lib/esm/appui-react/dragdrop/ZoneTargets.js +8 -4
  553. package/lib/esm/appui-react/dragdrop/ZoneTargets.js.map +1 -1
  554. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +2 -2
  555. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  556. package/lib/esm/appui-react/feedback/ElementTooltip.js +4 -2
  557. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  558. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +1 -0
  559. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  560. package/lib/esm/appui-react/frontstage/Frontstage.js +32 -13
  561. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  562. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +3 -0
  563. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  564. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +15 -1
  565. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  566. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +15 -2
  567. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  568. package/lib/esm/appui-react/frontstage/FrontstageDef.js +140 -5
  569. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  570. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  571. package/lib/esm/appui-react/frontstage/FrontstageManager.js +2 -1
  572. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  573. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +6 -0
  574. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  575. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  576. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  577. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  578. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  579. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  580. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +12 -9
  581. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts.map +1 -1
  582. package/lib/esm/appui-react/hooks/useFrameworkVersion.js +19 -21
  583. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  584. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +1 -1
  585. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  586. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js +6 -7
  587. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  588. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +3 -3
  589. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  590. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +1 -1
  591. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  592. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts +0 -5
  593. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  594. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  595. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +1 -1
  596. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  597. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +83 -70
  598. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  599. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  600. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  601. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  602. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  603. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +2 -2
  604. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  605. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  606. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  607. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js +3 -2
  608. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  609. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +1 -1
  610. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  611. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  612. package/lib/esm/appui-react/messages/MessageManager.d.ts +1 -2
  613. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  614. package/lib/esm/appui-react/messages/MessageManager.js +9 -3
  615. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  616. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  617. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  618. package/lib/esm/appui-react/messages/Pointer.js +4 -3
  619. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  620. package/lib/esm/appui-react/messages/ToastMessage.js +2 -1
  621. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  622. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  623. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  624. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +1 -1
  625. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  626. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  627. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  628. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  629. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  630. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +6 -4
  631. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  632. package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
  633. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  634. package/lib/esm/appui-react/pickers/ListPicker.js +23 -9
  635. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  636. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  637. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  638. package/lib/esm/appui-react/pickers/ViewSelector.js +7 -7
  639. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  640. package/lib/esm/appui-react/popup/CardPopup.d.ts +7 -4
  641. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  642. package/lib/esm/appui-react/popup/CardPopup.js +3 -2
  643. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  644. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +3 -2
  645. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  646. package/lib/esm/appui-react/popup/InputEditorPopup.js +1 -1
  647. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  648. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +7 -7
  649. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  650. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +3 -2
  651. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  652. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +1 -1
  653. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  654. package/lib/esm/appui-react/popup/PopupManager.d.ts +10 -10
  655. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  656. package/lib/esm/appui-react/popup/PopupManager.js +5 -5
  657. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  658. package/lib/esm/appui-react/popup/PositionPopup.d.ts +5 -3
  659. package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
  660. package/lib/esm/appui-react/popup/PositionPopup.js +3 -2
  661. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  662. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts +3 -2
  663. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  664. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +1 -1
  665. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  666. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +4 -3
  667. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  668. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  669. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  670. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  671. package/lib/esm/appui-react/redux/SessionState.d.ts +0 -6
  672. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  673. package/lib/esm/appui-react/redux/SessionState.js +0 -8
  674. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  675. package/lib/esm/appui-react/redux/StateManager.d.ts +1 -1
  676. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  677. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +7 -7
  678. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  679. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  680. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +1 -1
  681. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  682. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  683. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +28 -19
  684. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  685. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  686. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  687. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  688. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  689. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  690. package/lib/esm/appui-react/shared/ItemDefBase.js +1 -1
  691. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  692. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  693. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  694. package/lib/esm/appui-react/shared/ToolItemDef.d.ts +1 -1
  695. package/lib/esm/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  696. package/lib/esm/appui-react/shared/ToolItemDef.js +2 -2
  697. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  698. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  699. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js +1 -0
  700. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  701. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +2 -2
  702. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  703. package/lib/esm/appui-react/stagepanels/StagePanel.js +1 -0
  704. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  705. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +26 -2
  706. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  707. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +24 -3
  708. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  709. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  710. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts.map +1 -1
  711. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js +2 -1
  712. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  713. package/lib/esm/appui-react/statusbar/StatusBar.js +2 -1
  714. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  715. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  716. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -5
  717. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  718. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  719. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  720. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  721. package/lib/esm/appui-react/statusfields/Indicator.d.ts +15 -14
  722. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  723. package/lib/esm/appui-react/statusfields/Indicator.js +23 -21
  724. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  725. package/lib/esm/appui-react/statusfields/Indicator.scss +29 -18
  726. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  727. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -1
  728. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  729. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +1 -0
  730. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  731. package/lib/esm/appui-react/statusfields/SelectionScope.js +6 -4
  732. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  733. package/lib/esm/appui-react/statusfields/SelectionScope.scss +13 -3
  734. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -10
  735. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  736. package/lib/esm/appui-react/statusfields/SnapMode.js +5 -35
  737. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  738. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -6
  739. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  740. package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -26
  741. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  742. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +7 -7
  743. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  744. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +14 -13
  745. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  746. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +8 -3
  747. package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
  748. package/lib/esm/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  749. package/lib/esm/appui-react/syncui/BooleanListener.js +2 -1
  750. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  751. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +8 -18
  752. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  753. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +29 -101
  754. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  755. package/lib/esm/appui-react/toolbar/ActionButtonItem.js +2 -1
  756. package/lib/esm/appui-react/toolbar/ActionButtonItem.js.map +1 -1
  757. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  758. package/lib/esm/appui-react/toolbar/ActionItemButton.js +2 -1
  759. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  760. package/lib/esm/appui-react/toolbar/GroupButtonItem.js +24 -20
  761. package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  762. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  763. package/lib/esm/appui-react/toolbar/GroupItem.js +33 -29
  764. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  765. package/lib/esm/appui-react/toolbar/ToolButton.js +3 -2
  766. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  767. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  768. package/lib/esm/appui-react/toolbar/Toolbar.js +3 -2
  769. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  770. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  771. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +22 -20
  772. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  773. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  774. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +4 -4
  775. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  776. package/lib/esm/appui-react/tools/MarkupToolDefinitions.d.ts +2 -2
  777. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js +2 -2
  778. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  779. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +8 -10
  780. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  781. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +18 -37
  782. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  783. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +7 -9
  784. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  785. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +13 -21
  786. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  787. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +7 -9
  788. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  789. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +40 -51
  790. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  791. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +4 -4
  792. package/lib/{cjs/appui-react/uisettings → esm/appui-react/uistate}/AppUiSettings.d.ts +11 -9
  793. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -0
  794. package/lib/esm/appui-react/{uisettings → uistate}/AppUiSettings.js +13 -9
  795. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -0
  796. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +15 -0
  797. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -0
  798. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +55 -0
  799. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -0
  800. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +20 -0
  801. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -0
  802. package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -0
  803. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -0
  804. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +5 -5
  805. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  806. package/lib/esm/appui-react/utils/UiShowHideManager.js +9 -9
  807. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  808. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  809. package/lib/esm/appui-react/widget-panels/Content.js +1 -4
  810. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  811. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +98 -8
  812. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  813. package/lib/esm/appui-react/widget-panels/Frontstage.js +83 -92
  814. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  815. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  816. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  817. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +22 -0
  818. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -0
  819. package/lib/esm/appui-react/widgets/BackstageAppButton.js +52 -0
  820. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -0
  821. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  822. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -0
  823. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  824. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  825. package/lib/esm/appui-react/widgets/BasicToolWidget.js +3 -1
  826. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  827. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +9 -0
  828. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts.map +1 -1
  829. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +10 -0
  830. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  831. package/lib/esm/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  832. package/lib/esm/appui-react/widgets/NavigationWidget.js +2 -1
  833. package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
  834. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +1 -0
  835. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  836. package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  837. package/lib/esm/appui-react/widgets/StableWidgetDef.js +1 -1
  838. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  839. package/lib/esm/appui-react/widgets/ToolSettingsContent.js +2 -1
  840. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  841. package/lib/esm/appui-react/widgets/ToolWidget.js +3 -2
  842. package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
  843. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +0 -12
  844. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
  845. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +2 -36
  846. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  847. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -0
  848. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts.map +1 -1
  849. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js +5 -2
  850. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  851. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +0 -1
  852. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts.map +1 -1
  853. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  854. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  855. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -3
  856. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  857. package/lib/esm/appui-react/widgets/WidgetDef.js +18 -7
  858. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  859. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  860. package/lib/esm/appui-react/widgets/WidgetHost.js +1 -0
  861. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  862. package/lib/esm/appui-react/widgets/WidgetStack.d.ts.map +1 -1
  863. package/lib/esm/appui-react/widgets/WidgetStack.js +2 -0
  864. package/lib/esm/appui-react/widgets/WidgetStack.js.map +1 -1
  865. package/lib/esm/appui-react/zones/FrameworkZone.js.map +1 -1
  866. package/lib/esm/appui-react/zones/StatusBarZone.js.map +1 -1
  867. package/lib/esm/appui-react/zones/Zone.d.ts +1 -1
  868. package/lib/esm/appui-react/zones/Zone.d.ts.map +1 -1
  869. package/lib/esm/appui-react/zones/Zone.js +2 -1
  870. package/lib/esm/appui-react/zones/Zone.js.map +1 -1
  871. package/lib/esm/appui-react/zones/ZoneDef.d.ts +4 -4
  872. package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
  873. package/lib/esm/appui-react/zones/ZoneDef.js +5 -4
  874. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  875. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  876. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  877. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +2 -1
  878. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  879. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  880. package/lib/esm/appui-react.d.ts +15 -18
  881. package/lib/esm/appui-react.d.ts.map +1 -1
  882. package/lib/esm/appui-react.js +15 -18
  883. package/lib/esm/appui-react.js.map +1 -1
  884. package/lib/public/locales/en/UiFramework.json +9 -2
  885. package/package.json +46 -53
  886. package/lib/cjs/appui-react/UserInfo.d.ts +0 -58
  887. package/lib/cjs/appui-react/UserInfo.d.ts.map +0 -1
  888. package/lib/cjs/appui-react/UserInfo.js +0 -34
  889. package/lib/cjs/appui-react/UserInfo.js.map +0 -1
  890. package/lib/cjs/appui-react/content/SavedView.d.ts.map +0 -1
  891. package/lib/cjs/appui-react/content/SavedView.js.map +0 -1
  892. package/lib/cjs/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  893. package/lib/cjs/appui-react/content/SavedViewLayout.js.map +0 -1
  894. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  895. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  896. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js +0 -34
  897. package/lib/cjs/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  898. package/lib/cjs/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  899. package/lib/cjs/appui-react/uisettings/AppUiSettings.js.map +0 -1
  900. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  901. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  902. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js +0 -74
  903. package/lib/cjs/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  904. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts +0 -21
  905. package/lib/cjs/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  906. package/lib/cjs/appui-react/uisettings/useUiSettings.js +0 -28
  907. package/lib/cjs/appui-react/uisettings/useUiSettings.js.map +0 -1
  908. package/lib/esm/appui-react/UserInfo.d.ts +0 -58
  909. package/lib/esm/appui-react/UserInfo.d.ts.map +0 -1
  910. package/lib/esm/appui-react/UserInfo.js +0 -30
  911. package/lib/esm/appui-react/UserInfo.js.map +0 -1
  912. package/lib/esm/appui-react/content/SavedView.d.ts.map +0 -1
  913. package/lib/esm/appui-react/content/SavedView.js.map +0 -1
  914. package/lib/esm/appui-react/content/SavedViewLayout.d.ts.map +0 -1
  915. package/lib/esm/appui-react/content/SavedViewLayout.js.map +0 -1
  916. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts +0 -25
  917. package/lib/esm/appui-react/stagepanels/StagePanelEnums.d.ts.map +0 -1
  918. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js +0 -31
  919. package/lib/esm/appui-react/stagepanels/StagePanelEnums.js.map +0 -1
  920. package/lib/esm/appui-react/uisettings/AppUiSettings.d.ts.map +0 -1
  921. package/lib/esm/appui-react/uisettings/AppUiSettings.js.map +0 -1
  922. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts +0 -23
  923. package/lib/esm/appui-react/uisettings/UserSettingsStorage.d.ts.map +0 -1
  924. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js +0 -68
  925. package/lib/esm/appui-react/uisettings/UserSettingsStorage.js.map +0 -1
  926. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts +0 -21
  927. package/lib/esm/appui-react/uisettings/useUiSettings.d.ts.map +0 -1
  928. package/lib/esm/appui-react/uisettings/useUiSettings.js +0 -23
  929. package/lib/esm/appui-react/uisettings/useUiSettings.js.map +0 -1
@@ -72,7 +72,7 @@ export declare class ModelsVisibilityHandler implements IVisibilityHandler {
72
72
  protected changeCategoryState(categoryId: Id64String, parentModelId: Id64String | undefined, on: boolean): void;
73
73
  protected changeElementGroupingNodeState(key: ECClassGroupingNodeKey, on: boolean): Promise<void>;
74
74
  protected changeElementState(id: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined, on: boolean): Promise<void>;
75
- protected changeElementsState(modelId: Id64String | undefined, categoryId: Id64String | undefined, elementIds: Id64String[], on: boolean): void;
75
+ protected changeElementsState(modelId: Id64String | undefined, categoryId: Id64String | undefined, elementIds: AsyncGenerator<Id64String>, on: boolean): Promise<void>;
76
76
  private onVisibilityChangeInternal;
77
77
  private onViewChanged;
78
78
  private onElementAlwaysDrawnChanged;
@@ -1 +1 @@
1
- {"version":3,"file":"ModelsVisibilityHandler.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelsVisibilityHandler.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAgD,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAiC,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC5G,OAAO,EAAE,qCAAqC,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAGtH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAE/G;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,OAAO,IAAA;IACP,OAAO,IAAA;IACP,KAAK,IAAA;IACL,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,QAAQ,IAAA;CACT;AAED;;;GAGG;AACH,oBAAY,4BAA4B,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC;AAE/F;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,qBAAqB,CAAC,CAAwC;IACtE,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,UAAU,CAA2B;gBAEjC,KAAK,EAAE,4BAA4B;IAcxC,OAAO;IAKP,kBAAkB,oCAA2C;IAEpE,sEAAsE;IAC/D,uBAAuB,CAAC,QAAQ,EAAE,qCAAqC,GAAG,SAAS;WAE5E,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,6BAA6B;WAgB3E,aAAa,CAAC,IAAI,EAAE,YAAY;WAGhC,WAAW,CAAC,IAAI,EAAE,YAAY;WAG9B,cAAc,CAAC,IAAI,EAAE,YAAY;IAI/C,kDAAkD;IAC3C,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkB9G,oEAAoE;IACvD,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO;cAoB/D,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAU5F,uBAAuB;YAQvB,+BAA+B;IAW7C,SAAS,CAAC,qBAAqB,CAAC,EAAE,EAAE,UAAU,GAAG,gBAAgB;IAOjE,SAAS,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB;cAsB3F,mCAAmC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuCxH,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB;cAgB/H,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO;YAU3E,0BAA0B;YAQ1B,kBAAkB;cAKhB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO;cAO5C,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO;IAO1E,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,GAAG,SAAS,EAAE,EAAE,EAAE,OAAO;cAgBxF,8BAA8B,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO;cAKvE,kBAAkB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,GAAG,SAAS,EAAE,EAAE,EAAE,OAAO;cAUnH,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,GAAG,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,OAAO;IAuB5J,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,aAAa,CAEnB;IAGF,OAAO,CAAC,2BAA2B,CAEjC;IAGF,OAAO,CAAC,0BAA0B,CAEhC;IAEF,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,oBAAoB;YAId,kBAAkB;IAMhC,OAAO,CAAC,qBAAqB;YAKf,oBAAoB;CAGnC"}
@@ -12,7 +12,6 @@ const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_common_1 = require("@itwin/core-common");
13
13
  const core_frontend_1 = require("@itwin/core-frontend");
14
14
  const presentation_common_1 = require("@itwin/presentation-common");
15
- const presentation_components_1 = require("@itwin/presentation-components");
16
15
  const presentation_frontend_1 = require("@itwin/presentation-frontend");
17
16
  const UiFramework_1 = require("../../UiFramework");
18
17
  /**
@@ -178,16 +177,30 @@ class ModelsVisibilityHandler {
178
177
  const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);
179
178
  if (!modelId || !this._props.viewport.view.viewsModel(modelId))
180
179
  return { isDisabled: true, state: "hidden", tooltip: createTooltip("disabled", "element.modelNotDisplayed") };
181
- const atLeastOneElementForceDisplayed = (this._props.viewport.alwaysDrawn !== undefined)
182
- && elementIds.some((elementId) => this._props.viewport.alwaysDrawn.has(elementId));
183
- if (atLeastOneElementForceDisplayed)
184
- return { state: "visible", tooltip: createTooltip("visible", "element.displayedThroughAlwaysDrawnList") };
180
+ if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size > 0) {
181
+ let atLeastOneElementForceDisplayed = false;
182
+ for await (const elementId of elementIds.getElementIds()) {
183
+ if (this._props.viewport.alwaysDrawn.has(elementId)) {
184
+ atLeastOneElementForceDisplayed = true;
185
+ break;
186
+ }
187
+ }
188
+ if (atLeastOneElementForceDisplayed)
189
+ return { state: "visible", tooltip: createTooltip("visible", "element.displayedThroughAlwaysDrawnList") };
190
+ }
185
191
  if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)
186
192
  return { state: "hidden", tooltip: createTooltip("hidden", "element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn") };
187
- const allElementsForceHidden = (this._props.viewport.neverDrawn !== undefined)
188
- && elementIds.every((elementId) => this._props.viewport.neverDrawn.has(elementId));
189
- if (allElementsForceHidden)
190
- return { state: "hidden", tooltip: createTooltip("visible", "element.hiddenThroughNeverDrawnList") };
193
+ if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.size > 0) {
194
+ let allElementsForceHidden = true;
195
+ for await (const elementId of elementIds.getElementIds()) {
196
+ if (!this._props.viewport.neverDrawn.has(elementId)) {
197
+ allElementsForceHidden = false;
198
+ break;
199
+ }
200
+ }
201
+ if (allElementsForceHidden)
202
+ return { state: "hidden", tooltip: createTooltip("visible", "element.hiddenThroughNeverDrawnList") };
203
+ }
191
204
  if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === "visible")
192
205
  return { state: "visible", tooltip: createTooltip("visible", undefined) };
193
206
  return { state: "hidden", tooltip: createTooltip("hidden", "element.hiddenThroughCategory") };
@@ -252,19 +265,25 @@ class ModelsVisibilityHandler {
252
265
  }
253
266
  async changeElementGroupingNodeState(key, on) {
254
267
  const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);
255
- this.changeElementsState(modelId, categoryId, elementIds, on);
268
+ await this.changeElementsState(modelId, categoryId, elementIds.getElementIds(), on);
256
269
  }
257
270
  async changeElementState(id, modelId, categoryId, on) {
258
- this.changeElementsState(modelId, categoryId, [id, ...await this.getAssemblyElementIds(id)], on);
271
+ const childIdsContainer = this.getAssemblyElementIds(id);
272
+ async function* elementIds() {
273
+ yield id;
274
+ for await (const childId of childIdsContainer.getElementIds())
275
+ yield childId;
276
+ }
277
+ await this.changeElementsState(modelId, categoryId, elementIds(), on);
259
278
  }
260
- changeElementsState(modelId, categoryId, elementIds, on) {
279
+ async changeElementsState(modelId, categoryId, elementIds, on) {
261
280
  const isDisplayedByDefault = modelId && this.getModelDisplayStatus(modelId).state === "visible"
262
281
  && categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === "visible";
263
282
  const isHiddenDueToExclusiveAlwaysDrawnElements = this._props.viewport.isAlwaysDrawnExclusive && this._props.viewport.alwaysDrawn && 0 !== this._props.viewport.alwaysDrawn.size;
264
283
  const currNeverDrawn = new Set(this._props.viewport.neverDrawn ? this._props.viewport.neverDrawn : []);
265
284
  const currAlwaysDrawn = new Set(this._props.viewport.alwaysDrawn ?
266
285
  this._props.viewport.alwaysDrawn : /* istanbul ignore next */ []);
267
- elementIds.forEach((elementId) => {
286
+ for await (const elementId of elementIds) {
268
287
  if (on) {
269
288
  currNeverDrawn.delete(elementId);
270
289
  if (!isDisplayedByDefault || isHiddenDueToExclusiveAlwaysDrawnElements)
@@ -275,7 +294,7 @@ class ModelsVisibilityHandler {
275
294
  if (isDisplayedByDefault && !isHiddenDueToExclusiveAlwaysDrawnElements)
276
295
  currNeverDrawn.add(elementId);
277
296
  }
278
- });
297
+ }
279
298
  this._props.viewport.setNeverDrawn(currNeverDrawn);
280
299
  this._props.viewport.setAlwaysDrawn(currAlwaysDrawn, this._props.viewport.isAlwaysDrawnExclusive);
281
300
  }
@@ -301,7 +320,7 @@ class ModelsVisibilityHandler {
301
320
  .reduce((allModelIds, curr) => [...allModelIds, ...curr], []);
302
321
  }
303
322
  // istanbul ignore next
304
- async getAssemblyElementIds(assemblyId) {
323
+ getAssemblyElementIds(assemblyId) {
305
324
  return this._elementIdsCache.getAssemblyElementIds(assemblyId);
306
325
  }
307
326
  // istanbul ignore next
@@ -317,7 +336,7 @@ class SubjectModelIdsCache {
317
336
  async initSubjectsHierarchy() {
318
337
  this._subjectsHierarchy = new Map();
319
338
  const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;
320
- const result = this._imodel.query(ecsql);
339
+ const result = this._imodel.query(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
321
340
  for await (const row of result) {
322
341
  let list = this._subjectsHierarchy.get(row.parentId);
323
342
  if (!list) {
@@ -335,7 +354,7 @@ class SubjectModelIdsCache {
335
354
  INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId
336
355
  INNER JOIN bis.Subject s ON (s.ECInstanceId = p.Parent.Id OR json_extract(s.JsonProperties, '$.Subject.Model.TargetPartition') = printf('0x%x', p.ECInstanceId))
337
356
  WHERE NOT m.IsPrivate`;
338
- const result = this._imodel.query(ecsql);
357
+ const result = this._imodel.query(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
339
358
  for await (const row of result) {
340
359
  let list = this._subjectModels.get(row.subjectId);
341
360
  if (!list) {
@@ -368,29 +387,6 @@ class SubjectModelIdsCache {
368
387
  }
369
388
  }
370
389
  // istanbul ignore next
371
- class RulesetDrivenIdsProvider extends presentation_components_1.ContentDataProvider {
372
- constructor(imodel, rulesetId, displayType, inputKeys) {
373
- super({ imodel, ruleset: rulesetId, displayType });
374
- this.keys = new presentation_common_1.KeySet(inputKeys);
375
- }
376
- async getDescriptorOverrides() {
377
- return {
378
- displayType: this.displayType,
379
- contentFlags: presentation_common_1.ContentFlags.KeysOnly,
380
- };
381
- }
382
- async getResultIds() {
383
- const content = await this.getContent();
384
- if (!content)
385
- return [];
386
- const result = [];
387
- content.contentSet.forEach((item) => {
388
- result.push(...item.primaryKeys.map((k) => k.id));
389
- });
390
- return result;
391
- }
392
- }
393
- // istanbul ignore next
394
390
  class ElementIdsCache {
395
391
  constructor(_imodel, _rulesetId) {
396
392
  this._imodel = _imodel;
@@ -402,51 +398,68 @@ class ElementIdsCache {
402
398
  this._assemblyElementIdsCache.clear();
403
399
  this._groupedElementIdsCache.clear();
404
400
  }
405
- async getAssemblyElementIds(assemblyId) {
401
+ getAssemblyElementIds(assemblyId) {
406
402
  const ids = this._assemblyElementIdsCache.get(assemblyId);
407
403
  if (ids)
408
404
  return ids;
409
- const idsProvider = new AssemblyElementIdsProvider(this._imodel, this._rulesetId, assemblyId);
410
- const newIds = await idsProvider.getElementIds();
411
- this._assemblyElementIdsCache.set(assemblyId, newIds);
412
- return newIds;
405
+ const container = createAssemblyElementIdsContainer(this._imodel, this._rulesetId, assemblyId);
406
+ this._assemblyElementIdsCache.set(assemblyId, container);
407
+ return container;
413
408
  }
414
409
  async getGroupedElementIds(groupingNodeKey) {
415
410
  const keyString = JSON.stringify(groupingNodeKey);
416
411
  const ids = this._groupedElementIdsCache.get(keyString);
417
412
  if (ids)
418
413
  return ids;
419
- const idsProvider = new GroupedElementIdsProvider(this._imodel, this._rulesetId, groupingNodeKey);
420
- const newIds = await idsProvider.getElementIds();
421
- this._groupedElementIdsCache.set(keyString, newIds);
422
- return newIds;
414
+ const info = await createGroupedElementsInfo(this._imodel, this._rulesetId, groupingNodeKey);
415
+ this._groupedElementIdsCache.set(keyString, info);
416
+ return info;
423
417
  }
424
418
  }
425
- // istanbul ignore next
426
- class AssemblyElementIdsProvider extends RulesetDrivenIdsProvider {
427
- constructor(imodel, rulesetId, assemblyId) {
428
- super(imodel, rulesetId, "AssemblyElementsRequest", [{ className: "BisCore:Element", id: assemblyId }]);
429
- }
430
- async getElementIds() {
431
- return this.getResultIds();
419
+ async function* createInstanceIdsGenerator(imodel, rulesetId, displayType, inputKeys) {
420
+ const res = await presentation_frontend_1.Presentation.presentation.getContentInstanceKeys({
421
+ imodel,
422
+ rulesetOrId: rulesetId,
423
+ displayType,
424
+ keys: new presentation_common_1.KeySet(inputKeys),
425
+ });
426
+ for await (const key of res.items()) {
427
+ yield key.id;
432
428
  }
433
429
  }
434
430
  // istanbul ignore next
435
- class GroupedElementIdsProvider extends RulesetDrivenIdsProvider {
436
- constructor(imodel, rulesetId, groupingNodeKey) {
437
- super(imodel, rulesetId, "AssemblyElementsRequest", [groupingNodeKey]);
438
- }
439
- async getElementIds() {
440
- const elementIds = await this.getResultIds();
441
- let modelId, categoryId;
442
- const query = `SELECT Model.Id AS modelId, Category.Id AS categoryId FROM bis.GeometricElement3d WHERE ECInstanceId = ? LIMIT 1`;
443
- for await (const modelAndCategoryIds of this.imodel.query(query, core_common_1.QueryBinder.from([elementIds[0]]))) {
444
- modelId = modelAndCategoryIds.modelId;
445
- categoryId = modelAndCategoryIds.categoryId;
431
+ class CachingElementIdsContainer {
432
+ constructor(generator) {
433
+ this._generator = generator;
434
+ this._ids = new Array();
435
+ }
436
+ async *getElementIds() {
437
+ for (const id of this._ids) {
438
+ yield id;
439
+ }
440
+ for await (const id of this._generator) {
441
+ this._ids.push(id);
442
+ yield id;
446
443
  }
447
- return { modelId, categoryId, elementIds };
448
444
  }
449
445
  }
446
+ function createAssemblyElementIdsContainer(imodel, rulesetId, assemblyId) {
447
+ return new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, "AssemblyElementsRequest", [{ className: "BisCore:Element", id: assemblyId }]));
448
+ }
449
+ async function createGroupedElementsInfo(imodel, rulesetId, groupingNodeKey) {
450
+ const groupedElementIdsContainer = new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, "AssemblyElementsRequest", [groupingNodeKey]));
451
+ const elementId = await groupedElementIdsContainer.getElementIds().next();
452
+ if (elementId.done)
453
+ throw new Error("Invalid grouping node key");
454
+ let modelId, categoryId;
455
+ const query = `SELECT Model.Id AS modelId, Category.Id AS categoryId FROM bis.GeometricElement3d WHERE ECInstanceId = ? LIMIT 1`;
456
+ for await (const modelAndCategoryIds of imodel.query(query, core_common_1.QueryBinder.from([elementId.value]), { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames })) {
457
+ modelId = modelAndCategoryIds.modelId;
458
+ categoryId = modelAndCategoryIds.categoryId;
459
+ break;
460
+ }
461
+ return { modelId, categoryId, elementIds: groupedElementIdsContainer };
462
+ }
450
463
  const createTooltip = (status, tooltipStringId) => {
451
464
  const statusStringId = `UiFramework:modelTree.status.${status}`;
452
465
  const statusString = UiFramework_1.UiFramework.localization.getLocalizedString(statusStringId);
@@ -1 +1 @@
1
- {"version":3,"file":"ModelsVisibilityHandler.js","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelComponents\r\n */\r\n\r\nimport { TreeNodeItem } from \"@itwin/components-react\";\r\nimport { BeEvent, Id64String } from \"@itwin/core-bentley\";\r\nimport { QueryBinder } from \"@itwin/core-common\";\r\nimport { IModelConnection, PerModelCategoryVisibility, Viewport } from \"@itwin/core-frontend\";\r\nimport { ContentFlags, ECClassGroupingNodeKey, GroupingNodeKey, Keys, KeySet, NodeKey } from \"@itwin/presentation-common\";\r\nimport { ContentDataProvider, IFilteredPresentationTreeDataProvider, IPresentationTreeDataProvider } from \"@itwin/presentation-components\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { IVisibilityHandler, VisibilityChangeListener, VisibilityStatus } from \"../VisibilityTreeEventHandler\";\r\n\r\n/**\r\n * Visibility tree node types.\r\n * @beta\r\n */\r\nexport enum ModelsTreeNodeType {\r\n Unknown,\r\n Subject,\r\n Model,\r\n Category,\r\n Element,\r\n Grouping,\r\n}\r\n\r\n/**\r\n * Type definition of predicate used to decide if node can be selected\r\n * @beta\r\n */\r\nexport type ModelsTreeSelectionPredicate = (key: NodeKey, type: ModelsTreeNodeType) => boolean;\r\n\r\n/**\r\n * Props for [[ModelsVisibilityHandler]]\r\n * @alpha\r\n */\r\nexport interface ModelsVisibilityHandlerProps {\r\n rulesetId: string;\r\n viewport: Viewport;\r\n hierarchyAutoUpdateEnabled?: boolean;\r\n}\r\n\r\n/**\r\n * Visibility handler used by [[ModelsTree]] to control visibility of the tree items.\r\n * @alpha\r\n */\r\nexport class ModelsVisibilityHandler implements IVisibilityHandler {\r\n private _props: ModelsVisibilityHandlerProps;\r\n private _pendingVisibilityChange: any | undefined;\r\n private _subjectModelIdsCache: SubjectModelIdsCache;\r\n private _filteredDataProvider?: IFilteredPresentationTreeDataProvider;\r\n private _elementIdsCache: ElementIdsCache;\r\n private _listeners = new Array<() => void>();\r\n\r\n constructor(props: ModelsVisibilityHandlerProps) {\r\n this._props = props;\r\n this._subjectModelIdsCache = new SubjectModelIdsCache(this._props.viewport.iModel);\r\n this._elementIdsCache = new ElementIdsCache(this._props.viewport.iModel, this._props.rulesetId);\r\n this._listeners.push(this._props.viewport.onViewedCategoriesPerModelChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedCategoriesChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedModelsChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onAlwaysDrawnChanged.addListener(this.onElementAlwaysDrawnChanged));\r\n this._listeners.push(this._props.viewport.onNeverDrawnChanged.addListener(this.onElementNeverDrawnChanged));\r\n if (this._props.hierarchyAutoUpdateEnabled) {\r\n this._listeners.push(Presentation.presentation.onIModelHierarchyChanged.addListener(/* istanbul ignore next */() => this._elementIdsCache.clear()));\r\n }\r\n }\r\n\r\n public dispose() {\r\n this._listeners.forEach((remove) => remove());\r\n clearTimeout(this._pendingVisibilityChange);\r\n }\r\n\r\n public onVisibilityChange = new BeEvent<VisibilityChangeListener>();\r\n\r\n /** Sets data provider that is used to get filtered tree hierarchy. */\r\n public setFilteredDataProvider(provider: IFilteredPresentationTreeDataProvider | undefined) { this._filteredDataProvider = provider; }\r\n\r\n public static getNodeType(item: TreeNodeItem, dataProvider: IPresentationTreeDataProvider) {\r\n if (NodeKey.isClassGroupingNodeKey(dataProvider.getNodeKey(item)))\r\n return ModelsTreeNodeType.Grouping;\r\n\r\n if (!item.extendedData)\r\n return ModelsTreeNodeType.Unknown;\r\n\r\n if (this.isSubjectNode(item))\r\n return ModelsTreeNodeType.Subject;\r\n if (this.isModelNode(item))\r\n return ModelsTreeNodeType.Model;\r\n if (this.isCategoryNode(item))\r\n return ModelsTreeNodeType.Category;\r\n return ModelsTreeNodeType.Element;\r\n }\r\n\r\n public static isSubjectNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isSubject;\r\n }\r\n public static isModelNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isModel;\r\n }\r\n public static isCategoryNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isCategory;\r\n }\r\n\r\n /** Returns visibility status of the tree node. */\r\n public getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus | Promise<VisibilityStatus> {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey))\r\n return this.getElementGroupingNodeDisplayStatus(node.id, nodeKey);\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return { state: \"hidden\", isDisabled: true };\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n // note: subject nodes may be merged to represent multiple subject instances\r\n return this.getSubjectNodeVisibility(nodeKey.instanceKeys.map((key) => key.id), node);\r\n }\r\n if (ModelsVisibilityHandler.isModelNode(node))\r\n return this.getModelDisplayStatus(nodeKey.instanceKeys[0].id);\r\n if (ModelsVisibilityHandler.isCategoryNode(node))\r\n return this.getCategoryDisplayStatus(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node));\r\n return this.getElementDisplayStatus(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node));\r\n }\r\n\r\n /** Changes visibility of the items represented by the tree node. */\r\n public async changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, on: boolean) {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey)) {\r\n await this.changeElementGroupingNodeState(nodeKey, on);\r\n return;\r\n }\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return;\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n await this.changeSubjectNodeState(nodeKey.instanceKeys.map((key) => key.id), node, on);\r\n } else if (ModelsVisibilityHandler.isModelNode(node)) {\r\n await this.changeModelState(nodeKey.instanceKeys[0].id, on);\r\n } else if (ModelsVisibilityHandler.isCategoryNode(node)) {\r\n this.changeCategoryState(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node), on);\r\n } else {\r\n await this.changeElementState(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node), on);\r\n }\r\n }\r\n\r\n protected async getSubjectNodeVisibility(ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"subject.nonSpatialView\") };\r\n\r\n if (this._filteredDataProvider)\r\n return this.getFilteredSubjectDisplayStatus(this._filteredDataProvider, ids, node);\r\n\r\n return this.getSubjectDisplayStatus(ids);\r\n }\r\n\r\n private async getSubjectDisplayStatus(ids: Id64String[]): Promise<VisibilityStatus> {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n const isDisplayed = modelIds.some((modelId) => this.getModelDisplayStatus(modelId).state === \"visible\");\r\n if (isDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n private async getFilteredSubjectDisplayStatus(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.getSubjectDisplayStatus(ids);\r\n\r\n const children = await provider.getNodes(node);\r\n const childrenDisplayStatuses = await Promise.all(children.map((childNode) => this.getVisibilityStatus(childNode, provider.getNodeKey(childNode))));\r\n if (childrenDisplayStatuses.some((status) => status.state === \"visible\"))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n protected getModelDisplayStatus(id: Id64String): VisibilityStatus {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"model.nonSpatialView\") };\r\n const isDisplayed = this._props.viewport.view.viewsModel(id);\r\n return { state: isDisplayed ? \"visible\" : \"hidden\", tooltip: createTooltip(isDisplayed ? \"visible\" : \"hidden\", undefined) };\r\n }\r\n\r\n protected getCategoryDisplayStatus(id: Id64String, parentModelId: Id64String | undefined): VisibilityStatus {\r\n if (parentModelId) {\r\n if (this.getModelDisplayStatus(parentModelId).state === \"hidden\")\r\n return { state: \"hidden\", isDisabled: true, tooltip: createTooltip(\"disabled\", \"category.modelNotDisplayed\") };\r\n\r\n const override = this._props.viewport.perModelCategoryVisibility.getOverride(parentModelId, id);\r\n switch (override) {\r\n case PerModelCategoryVisibility.Override.Show:\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"category.displayedThroughPerModelOverride\") };\r\n case PerModelCategoryVisibility.Override.Hide:\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"category.hiddenThroughPerModelOverride\") };\r\n }\r\n }\r\n const isDisplayed = this._props.viewport.view.viewsCategory(id);\r\n return {\r\n state: isDisplayed ? \"visible\" : \"hidden\",\r\n tooltip: isDisplayed\r\n ? createTooltip(\"visible\", \"category.displayedThroughCategorySelector\")\r\n : createTooltip(\"hidden\", \"category.hiddenThroughCategorySelector\"),\r\n };\r\n }\r\n\r\n protected async getElementGroupingNodeDisplayStatus(_id: string, key: ECClassGroupingNodeKey): Promise<VisibilityStatus> {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n\r\n const atLeastOneElementForceDisplayed = (this._props.viewport.alwaysDrawn !== undefined)\r\n && elementIds.some((elementId) => this._props.viewport.alwaysDrawn!.has(elementId));\r\n if (atLeastOneElementForceDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n\r\n if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n\r\n const allElementsForceHidden = (this._props.viewport.neverDrawn !== undefined)\r\n && elementIds.every((elementId) => this._props.viewport.neverDrawn!.has(elementId));\r\n if (allElementsForceHidden)\r\n return { state: \"hidden\", tooltip: createTooltip(\"visible\", \"element.hiddenThroughNeverDrawnList\") };\r\n\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected getElementDisplayStatus(elementId: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined): VisibilityStatus {\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.has(elementId))\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughNeverDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn !== undefined) {\r\n if (this._props.viewport.alwaysDrawn.has(elementId))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n }\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected async changeSubjectNodeState(ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n if (this._filteredDataProvider)\r\n return this.changeFilteredSubjectState(this._filteredDataProvider, ids, node, on);\r\n\r\n return this.changeSubjectState(ids, on);\r\n }\r\n\r\n private async changeFilteredSubjectState(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.changeSubjectState(ids, on);\r\n\r\n const children = await provider.getNodes(node);\r\n return Promise.all(children.map(async (childNode) => this.changeVisibility(childNode, provider.getNodeKey(childNode), on)));\r\n }\r\n\r\n private async changeSubjectState(ids: Id64String[], on: boolean) {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n return this.changeModelsVisibility(modelIds, on);\r\n }\r\n\r\n protected async changeModelState(id: Id64String, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n return this.changeModelsVisibility([id], on);\r\n }\r\n\r\n protected async changeModelsVisibility(ids: Id64String[], visible: boolean) {\r\n if (visible)\r\n return this._props.viewport.addViewedModels(ids);\r\n else\r\n this._props.viewport.changeModelDisplay(ids, false);\r\n }\r\n\r\n protected changeCategoryState(categoryId: Id64String, parentModelId: Id64String | undefined, on: boolean) {\r\n if (parentModelId) {\r\n const isDisplayedInSelector = this._props.viewport.view.viewsCategory(categoryId);\r\n const ovr = (on === isDisplayedInSelector) ? PerModelCategoryVisibility.Override.None\r\n : on ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;\r\n this._props.viewport.perModelCategoryVisibility.setOverride(parentModelId, categoryId, ovr);\r\n if (ovr === PerModelCategoryVisibility.Override.None && on) {\r\n // we took off the override which means the category is displayed in selector, but\r\n // doesn't mean all its subcategories are displayed - this call ensures that\r\n this._props.viewport.changeCategoryDisplay([categoryId], true, true);\r\n }\r\n return;\r\n }\r\n this._props.viewport.changeCategoryDisplay([categoryId], on, on ? true : false);\r\n }\r\n\r\n protected async changeElementGroupingNodeState(key: ECClassGroupingNodeKey, on: boolean) {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n this.changeElementsState(modelId, categoryId, elementIds, on);\r\n }\r\n\r\n protected async changeElementState(id: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined, on: boolean) {\r\n this.changeElementsState(modelId, categoryId, [id, ...await this.getAssemblyElementIds(id)], on);\r\n }\r\n\r\n protected changeElementsState(modelId: Id64String | undefined, categoryId: Id64String | undefined, elementIds: Id64String[], on: boolean) {\r\n const isDisplayedByDefault = modelId && this.getModelDisplayStatus(modelId).state === \"visible\"\r\n && categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\";\r\n const isHiddenDueToExclusiveAlwaysDrawnElements = this._props.viewport.isAlwaysDrawnExclusive && this._props.viewport.alwaysDrawn && 0 !== this._props.viewport.alwaysDrawn.size;\r\n const currNeverDrawn = new Set(this._props.viewport.neverDrawn ? this._props.viewport.neverDrawn : []);\r\n const currAlwaysDrawn = new Set(this._props.viewport.alwaysDrawn ?\r\n this._props.viewport.alwaysDrawn : /* istanbul ignore next */[],\r\n );\r\n elementIds.forEach((elementId) => {\r\n if (on) {\r\n currNeverDrawn.delete(elementId);\r\n if (!isDisplayedByDefault || isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currAlwaysDrawn.add(elementId);\r\n } else {\r\n currAlwaysDrawn.delete(elementId);\r\n if (isDisplayedByDefault && !isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currNeverDrawn.add(elementId);\r\n }\r\n });\r\n this._props.viewport.setNeverDrawn(currNeverDrawn);\r\n this._props.viewport.setAlwaysDrawn(currAlwaysDrawn, this._props.viewport.isAlwaysDrawnExclusive);\r\n }\r\n\r\n private onVisibilityChangeInternal() {\r\n if (this._pendingVisibilityChange)\r\n return;\r\n\r\n this._pendingVisibilityChange = setTimeout(() => {\r\n this.onVisibilityChange.raiseEvent();\r\n this._pendingVisibilityChange = undefined;\r\n }, 0);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onViewChanged = (_vp: Viewport) => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementAlwaysDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementNeverDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n private getCategoryParentModelId(categoryNode: TreeNodeItem): Id64String | undefined {\r\n return categoryNode.extendedData ? categoryNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementModelId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementCategoryId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.categoryId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private async getSubjectModelIds(subjectIds: Id64String[]) {\r\n return (await Promise.all(subjectIds.map(async (id) => this._subjectModelIdsCache.getSubjectModelIds(id))))\r\n .reduce((allModelIds: Id64String[], curr: Id64String[]) => [...allModelIds, ...curr], []);\r\n }\r\n\r\n // istanbul ignore next\r\n private async getAssemblyElementIds(assemblyId: Id64String) {\r\n return this._elementIdsCache.getAssemblyElementIds(assemblyId);\r\n }\r\n\r\n // istanbul ignore next\r\n private async getGroupedElementIds(groupingNodeKey: GroupingNodeKey) {\r\n return this._elementIdsCache.getGroupedElementIds(groupingNodeKey);\r\n }\r\n}\r\n\r\ninterface ModelInfo {\r\n id: Id64String;\r\n isHidden: boolean;\r\n}\r\n\r\nclass SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, ModelInfo[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectsHierarchy() {\r\n this._subjectsHierarchy = new Map();\r\n const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;\r\n const result = this._imodel.query(ecsql);\r\n for await (const row of result) {\r\n let list = this._subjectsHierarchy.get(row.parentId);\r\n if (!list) {\r\n list = [];\r\n this._subjectsHierarchy.set(row.parentId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initSubjectModels() {\r\n this._subjectModels = new Map();\r\n const ecsql = `\r\n SELECT p.ECInstanceId id, s.ECInstanceId subjectId, json_extract(p.JsonProperties, '$.PhysicalPartition.Model.Content') content\r\n FROM bis.InformationPartitionElement p\r\n INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId\r\n INNER JOIN bis.Subject s ON (s.ECInstanceId = p.Parent.Id OR json_extract(s.JsonProperties, '$.Subject.Model.TargetPartition') = printf('0x%x', p.ECInstanceId))\r\n WHERE NOT m.IsPrivate`;\r\n const result = this._imodel.query(ecsql);\r\n for await (const row of result) {\r\n let list = this._subjectModels.get(row.subjectId);\r\n if (!list) {\r\n list = [];\r\n this._subjectModels.set(row.subjectId, list);\r\n }\r\n const isHidden = row.content !== undefined;\r\n list.push({ id: row.id, isHidden });\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds.map((info) => info.id));\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nclass RulesetDrivenIdsProvider extends ContentDataProvider {\r\n constructor(imodel: IModelConnection, rulesetId: string, displayType: string, inputKeys: Keys) {\r\n super({ imodel, ruleset: rulesetId, displayType });\r\n this.keys = new KeySet(inputKeys);\r\n }\r\n protected override async getDescriptorOverrides() {\r\n return {\r\n displayType: this.displayType,\r\n contentFlags: ContentFlags.KeysOnly,\r\n };\r\n }\r\n protected async getResultIds() {\r\n const content = await this.getContent();\r\n if (!content)\r\n return [];\r\n\r\n const result: string[] = [];\r\n content.contentSet.forEach((item) => {\r\n result.push(...item.primaryKeys.map((k) => k.id));\r\n });\r\n return result;\r\n }\r\n}\r\n\r\ninterface GroupedElementIds {\r\n modelId?: string;\r\n categoryId?: string;\r\n elementIds: string[];\r\n}\r\n\r\n// istanbul ignore next\r\nclass ElementIdsCache {\r\n private _assemblyElementIdsCache = new Map<string, string[]>();\r\n private _groupedElementIdsCache = new Map<string, GroupedElementIds>();\r\n\r\n constructor(private _imodel: IModelConnection, private _rulesetId: string) {\r\n }\r\n\r\n public clear() {\r\n this._assemblyElementIdsCache.clear();\r\n this._groupedElementIdsCache.clear();\r\n }\r\n\r\n public async getAssemblyElementIds(assemblyId: Id64String) {\r\n const ids = this._assemblyElementIdsCache.get(assemblyId);\r\n if (ids)\r\n return ids;\r\n\r\n const idsProvider = new AssemblyElementIdsProvider(this._imodel, this._rulesetId, assemblyId);\r\n const newIds = await idsProvider.getElementIds();\r\n this._assemblyElementIdsCache.set(assemblyId, newIds);\r\n return newIds;\r\n }\r\n\r\n public async getGroupedElementIds(groupingNodeKey: GroupingNodeKey) {\r\n const keyString = JSON.stringify(groupingNodeKey);\r\n const ids = this._groupedElementIdsCache.get(keyString);\r\n if (ids)\r\n return ids;\r\n const idsProvider = new GroupedElementIdsProvider(this._imodel, this._rulesetId, groupingNodeKey);\r\n const newIds = await idsProvider.getElementIds();\r\n this._groupedElementIdsCache.set(keyString, newIds);\r\n return newIds;\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nclass AssemblyElementIdsProvider extends RulesetDrivenIdsProvider {\r\n constructor(imodel: IModelConnection, rulesetId: string, assemblyId: Id64String) {\r\n super(imodel, rulesetId, \"AssemblyElementsRequest\", [{ className: \"BisCore:Element\", id: assemblyId }]);\r\n }\r\n public async getElementIds() {\r\n return this.getResultIds();\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nclass GroupedElementIdsProvider extends RulesetDrivenIdsProvider {\r\n constructor(imodel: IModelConnection, rulesetId: string, groupingNodeKey: GroupingNodeKey) {\r\n super(imodel, rulesetId, \"AssemblyElementsRequest\", [groupingNodeKey]);\r\n }\r\n public async getElementIds(): Promise<GroupedElementIds> {\r\n const elementIds = await this.getResultIds();\r\n let modelId, categoryId;\r\n const query = `SELECT Model.Id AS modelId, Category.Id AS categoryId FROM bis.GeometricElement3d WHERE ECInstanceId = ? LIMIT 1`;\r\n for await (const modelAndCategoryIds of this.imodel.query(query, QueryBinder.from([elementIds[0]]))) {\r\n modelId = modelAndCategoryIds.modelId;\r\n categoryId = modelAndCategoryIds.categoryId;\r\n }\r\n return { modelId, categoryId, elementIds };\r\n }\r\n}\r\n\r\nconst createTooltip = (status: \"visible\" | \"hidden\" | \"disabled\", tooltipStringId: string | undefined): string => {\r\n const statusStringId = `UiFramework:modelTree.status.${status}`;\r\n const statusString = UiFramework.localization.getLocalizedString(statusStringId);\r\n if (!tooltipStringId)\r\n return statusString;\r\n\r\n tooltipStringId = `UiFramework:modelTree.tooltips.${tooltipStringId}`;\r\n const tooltipString = UiFramework.localization.getLocalizedString(tooltipStringId);\r\n return `${statusString}: ${tooltipString}`;\r\n};\r\n"]}
1
+ {"version":3,"file":"ModelsVisibilityHandler.js","sourceRoot":"","sources":["../../../../../src/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelComponents\r\n */\r\n\r\nimport { TreeNodeItem } from \"@itwin/components-react\";\r\nimport { BeEvent, Id64String } from \"@itwin/core-bentley\";\r\nimport { QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\r\nimport { IModelConnection, PerModelCategoryVisibility, Viewport } from \"@itwin/core-frontend\";\r\nimport { ECClassGroupingNodeKey, GroupingNodeKey, Keys, KeySet, NodeKey } from \"@itwin/presentation-common\";\r\nimport { IFilteredPresentationTreeDataProvider, IPresentationTreeDataProvider } from \"@itwin/presentation-components\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { IVisibilityHandler, VisibilityChangeListener, VisibilityStatus } from \"../VisibilityTreeEventHandler\";\r\n\r\n/**\r\n * Visibility tree node types.\r\n * @beta\r\n */\r\nexport enum ModelsTreeNodeType {\r\n Unknown,\r\n Subject,\r\n Model,\r\n Category,\r\n Element,\r\n Grouping,\r\n}\r\n\r\n/**\r\n * Type definition of predicate used to decide if node can be selected\r\n * @beta\r\n */\r\nexport type ModelsTreeSelectionPredicate = (key: NodeKey, type: ModelsTreeNodeType) => boolean;\r\n\r\n/**\r\n * Props for [[ModelsVisibilityHandler]]\r\n * @alpha\r\n */\r\nexport interface ModelsVisibilityHandlerProps {\r\n rulesetId: string;\r\n viewport: Viewport;\r\n hierarchyAutoUpdateEnabled?: boolean;\r\n}\r\n\r\n/**\r\n * Visibility handler used by [[ModelsTree]] to control visibility of the tree items.\r\n * @alpha\r\n */\r\nexport class ModelsVisibilityHandler implements IVisibilityHandler {\r\n private _props: ModelsVisibilityHandlerProps;\r\n private _pendingVisibilityChange: any | undefined;\r\n private _subjectModelIdsCache: SubjectModelIdsCache;\r\n private _filteredDataProvider?: IFilteredPresentationTreeDataProvider;\r\n private _elementIdsCache: ElementIdsCache;\r\n private _listeners = new Array<() => void>();\r\n\r\n constructor(props: ModelsVisibilityHandlerProps) {\r\n this._props = props;\r\n this._subjectModelIdsCache = new SubjectModelIdsCache(this._props.viewport.iModel);\r\n this._elementIdsCache = new ElementIdsCache(this._props.viewport.iModel, this._props.rulesetId);\r\n this._listeners.push(this._props.viewport.onViewedCategoriesPerModelChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedCategoriesChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onViewedModelsChanged.addListener(this.onViewChanged));\r\n this._listeners.push(this._props.viewport.onAlwaysDrawnChanged.addListener(this.onElementAlwaysDrawnChanged));\r\n this._listeners.push(this._props.viewport.onNeverDrawnChanged.addListener(this.onElementNeverDrawnChanged));\r\n if (this._props.hierarchyAutoUpdateEnabled) {\r\n this._listeners.push(Presentation.presentation.onIModelHierarchyChanged.addListener(/* istanbul ignore next */() => this._elementIdsCache.clear()));\r\n }\r\n }\r\n\r\n public dispose() {\r\n this._listeners.forEach((remove) => remove());\r\n clearTimeout(this._pendingVisibilityChange);\r\n }\r\n\r\n public onVisibilityChange = new BeEvent<VisibilityChangeListener>();\r\n\r\n /** Sets data provider that is used to get filtered tree hierarchy. */\r\n public setFilteredDataProvider(provider: IFilteredPresentationTreeDataProvider | undefined) { this._filteredDataProvider = provider; }\r\n\r\n public static getNodeType(item: TreeNodeItem, dataProvider: IPresentationTreeDataProvider) {\r\n if (NodeKey.isClassGroupingNodeKey(dataProvider.getNodeKey(item)))\r\n return ModelsTreeNodeType.Grouping;\r\n\r\n if (!item.extendedData)\r\n return ModelsTreeNodeType.Unknown;\r\n\r\n if (this.isSubjectNode(item))\r\n return ModelsTreeNodeType.Subject;\r\n if (this.isModelNode(item))\r\n return ModelsTreeNodeType.Model;\r\n if (this.isCategoryNode(item))\r\n return ModelsTreeNodeType.Category;\r\n return ModelsTreeNodeType.Element;\r\n }\r\n\r\n public static isSubjectNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isSubject;\r\n }\r\n public static isModelNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isModel;\r\n }\r\n public static isCategoryNode(node: TreeNodeItem) {\r\n return node.extendedData && node.extendedData.isCategory;\r\n }\r\n\r\n /** Returns visibility status of the tree node. */\r\n public getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus | Promise<VisibilityStatus> {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey))\r\n return this.getElementGroupingNodeDisplayStatus(node.id, nodeKey);\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return { state: \"hidden\", isDisabled: true };\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n // note: subject nodes may be merged to represent multiple subject instances\r\n return this.getSubjectNodeVisibility(nodeKey.instanceKeys.map((key) => key.id), node);\r\n }\r\n if (ModelsVisibilityHandler.isModelNode(node))\r\n return this.getModelDisplayStatus(nodeKey.instanceKeys[0].id);\r\n if (ModelsVisibilityHandler.isCategoryNode(node))\r\n return this.getCategoryDisplayStatus(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node));\r\n return this.getElementDisplayStatus(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node));\r\n }\r\n\r\n /** Changes visibility of the items represented by the tree node. */\r\n public async changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, on: boolean) {\r\n if (NodeKey.isClassGroupingNodeKey(nodeKey)) {\r\n await this.changeElementGroupingNodeState(nodeKey, on);\r\n return;\r\n }\r\n\r\n if (!NodeKey.isInstancesNodeKey(nodeKey))\r\n return;\r\n\r\n if (ModelsVisibilityHandler.isSubjectNode(node)) {\r\n await this.changeSubjectNodeState(nodeKey.instanceKeys.map((key) => key.id), node, on);\r\n } else if (ModelsVisibilityHandler.isModelNode(node)) {\r\n await this.changeModelState(nodeKey.instanceKeys[0].id, on);\r\n } else if (ModelsVisibilityHandler.isCategoryNode(node)) {\r\n this.changeCategoryState(nodeKey.instanceKeys[0].id, this.getCategoryParentModelId(node), on);\r\n } else {\r\n await this.changeElementState(nodeKey.instanceKeys[0].id, this.getElementModelId(node), this.getElementCategoryId(node), on);\r\n }\r\n }\r\n\r\n protected async getSubjectNodeVisibility(ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"subject.nonSpatialView\") };\r\n\r\n if (this._filteredDataProvider)\r\n return this.getFilteredSubjectDisplayStatus(this._filteredDataProvider, ids, node);\r\n\r\n return this.getSubjectDisplayStatus(ids);\r\n }\r\n\r\n private async getSubjectDisplayStatus(ids: Id64String[]): Promise<VisibilityStatus> {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n const isDisplayed = modelIds.some((modelId) => this.getModelDisplayStatus(modelId).state === \"visible\");\r\n if (isDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n private async getFilteredSubjectDisplayStatus(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem): Promise<VisibilityStatus> {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.getSubjectDisplayStatus(ids);\r\n\r\n const children = await provider.getNodes(node);\r\n const childrenDisplayStatuses = await Promise.all(children.map((childNode) => this.getVisibilityStatus(childNode, provider.getNodeKey(childNode))));\r\n if (childrenDisplayStatuses.some((status) => status.state === \"visible\"))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"subject.atLeastOneModelVisible\") };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"subject.allModelsHidden\") };\r\n }\r\n\r\n protected getModelDisplayStatus(id: Id64String): VisibilityStatus {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"model.nonSpatialView\") };\r\n const isDisplayed = this._props.viewport.view.viewsModel(id);\r\n return { state: isDisplayed ? \"visible\" : \"hidden\", tooltip: createTooltip(isDisplayed ? \"visible\" : \"hidden\", undefined) };\r\n }\r\n\r\n protected getCategoryDisplayStatus(id: Id64String, parentModelId: Id64String | undefined): VisibilityStatus {\r\n if (parentModelId) {\r\n if (this.getModelDisplayStatus(parentModelId).state === \"hidden\")\r\n return { state: \"hidden\", isDisabled: true, tooltip: createTooltip(\"disabled\", \"category.modelNotDisplayed\") };\r\n\r\n const override = this._props.viewport.perModelCategoryVisibility.getOverride(parentModelId, id);\r\n switch (override) {\r\n case PerModelCategoryVisibility.Override.Show:\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"category.displayedThroughPerModelOverride\") };\r\n case PerModelCategoryVisibility.Override.Hide:\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"category.hiddenThroughPerModelOverride\") };\r\n }\r\n }\r\n const isDisplayed = this._props.viewport.view.viewsCategory(id);\r\n return {\r\n state: isDisplayed ? \"visible\" : \"hidden\",\r\n tooltip: isDisplayed\r\n ? createTooltip(\"visible\", \"category.displayedThroughCategorySelector\")\r\n : createTooltip(\"hidden\", \"category.hiddenThroughCategorySelector\"),\r\n };\r\n }\r\n\r\n protected async getElementGroupingNodeDisplayStatus(_id: string, key: ECClassGroupingNodeKey): Promise<VisibilityStatus> {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n\r\n if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size > 0) {\r\n let atLeastOneElementForceDisplayed = false;\r\n for await (const elementId of elementIds.getElementIds()) {\r\n if (this._props.viewport.alwaysDrawn.has(elementId)) {\r\n atLeastOneElementForceDisplayed = true;\r\n break;\r\n }\r\n }\r\n if (atLeastOneElementForceDisplayed)\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n }\r\n\r\n if (this._props.viewport.alwaysDrawn !== undefined && this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n\r\n if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.size > 0) {\r\n let allElementsForceHidden = true;\r\n for await (const elementId of elementIds.getElementIds()) {\r\n if (!this._props.viewport.neverDrawn.has(elementId)) {\r\n allElementsForceHidden = false;\r\n break;\r\n }\r\n }\r\n if (allElementsForceHidden)\r\n return { state: \"hidden\", tooltip: createTooltip(\"visible\", \"element.hiddenThroughNeverDrawnList\") };\r\n }\r\n\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected getElementDisplayStatus(elementId: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined): VisibilityStatus {\r\n if (!modelId || !this._props.viewport.view.viewsModel(modelId))\r\n return { isDisabled: true, state: \"hidden\", tooltip: createTooltip(\"disabled\", \"element.modelNotDisplayed\") };\r\n if (this._props.viewport.neverDrawn !== undefined && this._props.viewport.neverDrawn.has(elementId))\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughNeverDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn !== undefined) {\r\n if (this._props.viewport.alwaysDrawn.has(elementId))\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", \"element.displayedThroughAlwaysDrawnList\") };\r\n if (this._props.viewport.alwaysDrawn.size !== 0 && this._props.viewport.isAlwaysDrawnExclusive)\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenDueToOtherElementsExclusivelyAlwaysDrawn\") };\r\n }\r\n if (categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\")\r\n return { state: \"visible\", tooltip: createTooltip(\"visible\", undefined) };\r\n return { state: \"hidden\", tooltip: createTooltip(\"hidden\", \"element.hiddenThroughCategory\") };\r\n }\r\n\r\n protected async changeSubjectNodeState(ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n if (this._filteredDataProvider)\r\n return this.changeFilteredSubjectState(this._filteredDataProvider, ids, node, on);\r\n\r\n return this.changeSubjectState(ids, on);\r\n }\r\n\r\n private async changeFilteredSubjectState(provider: IFilteredPresentationTreeDataProvider, ids: Id64String[], node: TreeNodeItem, on: boolean) {\r\n if (provider.nodeMatchesFilter(node))\r\n return this.changeSubjectState(ids, on);\r\n\r\n const children = await provider.getNodes(node);\r\n return Promise.all(children.map(async (childNode) => this.changeVisibility(childNode, provider.getNodeKey(childNode), on)));\r\n }\r\n\r\n private async changeSubjectState(ids: Id64String[], on: boolean) {\r\n const modelIds = await this.getSubjectModelIds(ids);\r\n return this.changeModelsVisibility(modelIds, on);\r\n }\r\n\r\n protected async changeModelState(id: Id64String, on: boolean) {\r\n if (!this._props.viewport.view.isSpatialView())\r\n return;\r\n\r\n return this.changeModelsVisibility([id], on);\r\n }\r\n\r\n protected async changeModelsVisibility(ids: Id64String[], visible: boolean) {\r\n if (visible)\r\n return this._props.viewport.addViewedModels(ids);\r\n else\r\n this._props.viewport.changeModelDisplay(ids, false);\r\n }\r\n\r\n protected changeCategoryState(categoryId: Id64String, parentModelId: Id64String | undefined, on: boolean) {\r\n if (parentModelId) {\r\n const isDisplayedInSelector = this._props.viewport.view.viewsCategory(categoryId);\r\n const ovr = (on === isDisplayedInSelector) ? PerModelCategoryVisibility.Override.None\r\n : on ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;\r\n this._props.viewport.perModelCategoryVisibility.setOverride(parentModelId, categoryId, ovr);\r\n if (ovr === PerModelCategoryVisibility.Override.None && on) {\r\n // we took off the override which means the category is displayed in selector, but\r\n // doesn't mean all its subcategories are displayed - this call ensures that\r\n this._props.viewport.changeCategoryDisplay([categoryId], true, true);\r\n }\r\n return;\r\n }\r\n this._props.viewport.changeCategoryDisplay([categoryId], on, on ? true : false);\r\n }\r\n\r\n protected async changeElementGroupingNodeState(key: ECClassGroupingNodeKey, on: boolean) {\r\n const { modelId, categoryId, elementIds } = await this.getGroupedElementIds(key);\r\n await this.changeElementsState(modelId, categoryId, elementIds.getElementIds(), on);\r\n }\r\n\r\n protected async changeElementState(id: Id64String, modelId: Id64String | undefined, categoryId: Id64String | undefined, on: boolean) {\r\n const childIdsContainer = this.getAssemblyElementIds(id);\r\n async function* elementIds() {\r\n yield id;\r\n for await (const childId of childIdsContainer.getElementIds())\r\n yield childId;\r\n }\r\n await this.changeElementsState(modelId, categoryId, elementIds(), on);\r\n }\r\n\r\n protected async changeElementsState(modelId: Id64String | undefined, categoryId: Id64String | undefined, elementIds: AsyncGenerator<Id64String>, on: boolean) {\r\n const isDisplayedByDefault = modelId && this.getModelDisplayStatus(modelId).state === \"visible\"\r\n && categoryId && this.getCategoryDisplayStatus(categoryId, modelId).state === \"visible\";\r\n const isHiddenDueToExclusiveAlwaysDrawnElements = this._props.viewport.isAlwaysDrawnExclusive && this._props.viewport.alwaysDrawn && 0 !== this._props.viewport.alwaysDrawn.size;\r\n const currNeverDrawn = new Set(this._props.viewport.neverDrawn ? this._props.viewport.neverDrawn : []);\r\n const currAlwaysDrawn = new Set(this._props.viewport.alwaysDrawn ?\r\n this._props.viewport.alwaysDrawn : /* istanbul ignore next */[],\r\n );\r\n for await (const elementId of elementIds) {\r\n if (on) {\r\n currNeverDrawn.delete(elementId);\r\n if (!isDisplayedByDefault || isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currAlwaysDrawn.add(elementId);\r\n } else {\r\n currAlwaysDrawn.delete(elementId);\r\n if (isDisplayedByDefault && !isHiddenDueToExclusiveAlwaysDrawnElements)\r\n currNeverDrawn.add(elementId);\r\n }\r\n }\r\n this._props.viewport.setNeverDrawn(currNeverDrawn);\r\n this._props.viewport.setAlwaysDrawn(currAlwaysDrawn, this._props.viewport.isAlwaysDrawnExclusive);\r\n }\r\n\r\n private onVisibilityChangeInternal() {\r\n if (this._pendingVisibilityChange)\r\n return;\r\n\r\n this._pendingVisibilityChange = setTimeout(() => {\r\n this.onVisibilityChange.raiseEvent();\r\n this._pendingVisibilityChange = undefined;\r\n }, 0);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onViewChanged = (_vp: Viewport) => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementAlwaysDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private onElementNeverDrawnChanged = () => {\r\n this.onVisibilityChangeInternal();\r\n };\r\n\r\n private getCategoryParentModelId(categoryNode: TreeNodeItem): Id64String | undefined {\r\n return categoryNode.extendedData ? categoryNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementModelId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.modelId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private getElementCategoryId(elementNode: TreeNodeItem): Id64String | undefined {\r\n return elementNode.extendedData ? elementNode.extendedData.categoryId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n private async getSubjectModelIds(subjectIds: Id64String[]) {\r\n return (await Promise.all(subjectIds.map(async (id) => this._subjectModelIdsCache.getSubjectModelIds(id))))\r\n .reduce((allModelIds: Id64String[], curr: Id64String[]) => [...allModelIds, ...curr], []);\r\n }\r\n\r\n // istanbul ignore next\r\n private getAssemblyElementIds(assemblyId: Id64String) {\r\n return this._elementIdsCache.getAssemblyElementIds(assemblyId);\r\n }\r\n\r\n // istanbul ignore next\r\n private async getGroupedElementIds(groupingNodeKey: GroupingNodeKey) {\r\n return this._elementIdsCache.getGroupedElementIds(groupingNodeKey);\r\n }\r\n}\r\n\r\ninterface ModelInfo {\r\n id: Id64String;\r\n isHidden: boolean;\r\n}\r\n\r\nclass SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, ModelInfo[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectsHierarchy() {\r\n this._subjectsHierarchy = new Map();\r\n const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;\r\n const result = this._imodel.query(ecsql, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n for await (const row of result) {\r\n let list = this._subjectsHierarchy.get(row.parentId);\r\n if (!list) {\r\n list = [];\r\n this._subjectsHierarchy.set(row.parentId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initSubjectModels() {\r\n this._subjectModels = new Map();\r\n const ecsql = `\r\n SELECT p.ECInstanceId id, s.ECInstanceId subjectId, json_extract(p.JsonProperties, '$.PhysicalPartition.Model.Content') content\r\n FROM bis.InformationPartitionElement p\r\n INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId\r\n INNER JOIN bis.Subject s ON (s.ECInstanceId = p.Parent.Id OR json_extract(s.JsonProperties, '$.Subject.Model.TargetPartition') = printf('0x%x', p.ECInstanceId))\r\n WHERE NOT m.IsPrivate`;\r\n const result = this._imodel.query(ecsql, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n for await (const row of result) {\r\n let list = this._subjectModels.get(row.subjectId);\r\n if (!list) {\r\n list = [];\r\n this._subjectModels.set(row.subjectId, list);\r\n }\r\n const isHidden = row.content !== undefined;\r\n list.push({ id: row.id, isHidden });\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds.map((info) => info.id));\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\ninterface GroupedElementIds {\r\n modelId?: string;\r\n categoryId?: string;\r\n elementIds: CachingElementIdsContainer;\r\n}\r\n\r\n// istanbul ignore next\r\nclass ElementIdsCache {\r\n private _assemblyElementIdsCache = new Map<string, CachingElementIdsContainer>();\r\n private _groupedElementIdsCache = new Map<string, GroupedElementIds>();\r\n\r\n constructor(private _imodel: IModelConnection, private _rulesetId: string) {\r\n }\r\n\r\n public clear() {\r\n this._assemblyElementIdsCache.clear();\r\n this._groupedElementIdsCache.clear();\r\n }\r\n\r\n public getAssemblyElementIds(assemblyId: Id64String) {\r\n const ids = this._assemblyElementIdsCache.get(assemblyId);\r\n if (ids)\r\n return ids;\r\n\r\n const container = createAssemblyElementIdsContainer(this._imodel, this._rulesetId, assemblyId);\r\n this._assemblyElementIdsCache.set(assemblyId, container);\r\n return container;\r\n }\r\n\r\n public async getGroupedElementIds(groupingNodeKey: GroupingNodeKey): Promise<GroupedElementIds> {\r\n const keyString = JSON.stringify(groupingNodeKey);\r\n const ids = this._groupedElementIdsCache.get(keyString);\r\n if (ids)\r\n return ids;\r\n const info = await createGroupedElementsInfo(this._imodel, this._rulesetId, groupingNodeKey);\r\n this._groupedElementIdsCache.set(keyString, info);\r\n return info;\r\n }\r\n}\r\n\r\nasync function* createInstanceIdsGenerator(imodel: IModelConnection, rulesetId: string, displayType: string, inputKeys: Keys) {\r\n const res = await Presentation.presentation.getContentInstanceKeys({\r\n imodel,\r\n rulesetOrId: rulesetId,\r\n displayType,\r\n keys: new KeySet(inputKeys),\r\n });\r\n for await (const key of res.items()) {\r\n yield key.id;\r\n }\r\n}\r\n\r\n// istanbul ignore next\r\nclass CachingElementIdsContainer {\r\n private _generator;\r\n private _ids;\r\n constructor(generator: AsyncGenerator<Id64String>) {\r\n this._generator = generator;\r\n this._ids = new Array<Id64String>();\r\n }\r\n public async* getElementIds() {\r\n for (const id of this._ids) {\r\n yield id;\r\n }\r\n for await (const id of this._generator) {\r\n this._ids.push(id);\r\n yield id;\r\n }\r\n }\r\n}\r\n\r\nfunction createAssemblyElementIdsContainer(imodel: IModelConnection, rulesetId: string, assemblyId: Id64String) {\r\n return new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, \"AssemblyElementsRequest\", [{ className: \"BisCore:Element\", id: assemblyId }]));\r\n}\r\n\r\nasync function createGroupedElementsInfo(imodel: IModelConnection, rulesetId: string, groupingNodeKey: GroupingNodeKey) {\r\n const groupedElementIdsContainer = new CachingElementIdsContainer(createInstanceIdsGenerator(imodel, rulesetId, \"AssemblyElementsRequest\", [groupingNodeKey]));\r\n const elementId = await groupedElementIdsContainer.getElementIds().next();\r\n if (elementId.done)\r\n throw new Error(\"Invalid grouping node key\");\r\n\r\n let modelId, categoryId;\r\n const query = `SELECT Model.Id AS modelId, Category.Id AS categoryId FROM bis.GeometricElement3d WHERE ECInstanceId = ? LIMIT 1`;\r\n for await (const modelAndCategoryIds of imodel.query(query, QueryBinder.from([elementId.value]), { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n modelId = modelAndCategoryIds.modelId;\r\n categoryId = modelAndCategoryIds.categoryId;\r\n break;\r\n }\r\n return { modelId, categoryId, elementIds: groupedElementIdsContainer };\r\n}\r\n\r\nconst createTooltip = (status: \"visible\" | \"hidden\" | \"disabled\", tooltipStringId: string | undefined): string => {\r\n const statusStringId = `UiFramework:modelTree.status.${status}`;\r\n const statusString = UiFramework.localization.getLocalizedString(statusStringId);\r\n if (!tooltipStringId)\r\n return statusString;\r\n\r\n tooltipStringId = `UiFramework:modelTree.tooltips.${tooltipStringId}`;\r\n const tooltipString = UiFramework.localization.getLocalizedString(tooltipStringId);\r\n return `${statusString}: ${tooltipString}`;\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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"}