@itwin/appui-react 4.3.1 → 4.5.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 (302) hide show
  1. package/CHANGELOG.md +22 -4
  2. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  3. package/lib/cjs/appui-react/UiFramework.js +14 -16
  4. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  5. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  6. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  7. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  8. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  9. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  10. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  11. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  12. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  13. package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
  14. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  15. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  16. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  17. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  18. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  19. package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
  20. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  21. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  22. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  23. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  24. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  25. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
  26. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  27. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +1 -1
  28. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +6 -6
  30. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  31. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  32. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  33. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  34. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  35. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +5 -7
  36. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  37. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  38. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  39. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  40. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  41. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  42. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  43. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  44. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  45. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  46. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  47. package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
  48. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  49. package/lib/cjs/appui-react/pickers/ViewSelector.js +5 -6
  50. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  51. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
  52. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  53. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  54. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  55. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +3 -0
  57. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  58. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +12 -8
  60. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  61. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  62. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  63. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
  64. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  65. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  66. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  67. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  68. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  69. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  70. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  71. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -4
  72. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  73. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +49 -78
  74. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  75. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +11 -1
  76. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/toolbar/Toolbar.js +3 -2
  78. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  79. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +2 -1
  80. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +45 -129
  82. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  83. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
  84. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +53 -80
  86. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  87. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  88. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/toolbar/ToolbarItem.js +2 -2
  90. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  91. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts +1 -0
  92. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +12 -2
  94. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  95. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts +3 -2
  96. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js +5 -9
  98. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  99. package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts +11 -0
  100. package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts.map +1 -0
  101. package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.js +46 -0
  102. package/lib/cjs/appui-react/toolbar/useActiveStageProvidedToolbarItems.js.map +1 -0
  103. package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts +25 -0
  104. package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts.map +1 -0
  105. package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.js +63 -0
  106. package/lib/cjs/appui-react/toolbar/useActiveToolIdSynchedItems.js.map +1 -0
  107. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts +1 -0
  108. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js +4 -1
  110. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  111. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +2 -1
  112. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  113. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +12 -30
  114. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  115. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +10 -17
  116. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  117. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  118. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  119. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  120. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  121. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  122. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  123. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  124. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  125. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  126. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  127. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  128. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  129. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  130. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  131. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  132. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  133. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  134. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  135. package/lib/cjs/appui-react/widget-panels/Frontstage.js +43 -45
  136. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  137. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  138. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  139. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  140. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  141. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +21 -23
  143. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  144. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  145. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  146. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  147. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  148. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
  149. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  150. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  151. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  152. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  153. package/lib/esm/appui-react/UiFramework.js +14 -16
  154. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  155. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  156. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  157. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  158. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  159. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  160. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  161. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  162. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  163. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  164. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  165. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  166. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  167. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  168. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  169. package/lib/esm/appui-react/content/IModelViewport.js +3 -6
  170. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  171. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  172. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  173. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  174. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  175. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  176. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  177. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +1 -1
  178. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  179. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +6 -6
  180. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  181. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  182. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  183. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  184. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  185. package/lib/esm/appui-react/frontstage/FrontstageDef.js +5 -7
  186. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  187. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  188. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  189. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  190. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  191. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  192. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  193. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  194. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  195. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  196. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  197. package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
  198. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  199. package/lib/esm/appui-react/pickers/ViewSelector.js +5 -6
  200. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  201. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  202. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  203. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  204. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  205. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
  206. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +3 -0
  207. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  208. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  209. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +12 -8
  210. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  211. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  212. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  213. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
  214. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  215. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  216. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  217. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  218. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  219. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  220. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  221. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -4
  222. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  223. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +49 -78
  224. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  225. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +11 -1
  226. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  227. package/lib/esm/appui-react/toolbar/Toolbar.js +3 -2
  228. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  229. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +2 -1
  230. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  231. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +45 -129
  232. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  233. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +6 -3
  234. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  235. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +53 -80
  236. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  237. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  238. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  239. package/lib/esm/appui-react/toolbar/ToolbarItem.js +2 -2
  240. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  241. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts +1 -0
  242. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -1
  243. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +12 -2
  244. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  245. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts +3 -2
  246. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
  247. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js +5 -9
  248. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
  249. package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts +11 -0
  250. package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.d.ts.map +1 -0
  251. package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.js +42 -0
  252. package/lib/esm/appui-react/toolbar/useActiveStageProvidedToolbarItems.js.map +1 -0
  253. package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts +25 -0
  254. package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.d.ts.map +1 -0
  255. package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.js +59 -0
  256. package/lib/esm/appui-react/toolbar/useActiveToolIdSynchedItems.js.map +1 -0
  257. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts +1 -0
  258. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
  259. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js +4 -1
  260. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  261. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +2 -1
  262. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  263. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +12 -30
  264. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  265. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -17
  266. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  267. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  268. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  269. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  270. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  271. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  272. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  273. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  274. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  275. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  276. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  277. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  278. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  279. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  280. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  281. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  282. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  283. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  284. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  285. package/lib/esm/appui-react/widget-panels/Frontstage.js +43 -45
  286. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  287. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  288. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  289. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  290. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  291. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  292. package/lib/esm/appui-react/widget-panels/ToolSettings.js +21 -23
  293. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  294. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  295. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  296. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  297. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  298. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
  299. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  300. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  301. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  302. package/package.json +14 -15
@@ -10,7 +10,7 @@ import type { ToolbarItem } from "./ToolbarItem";
10
10
  * @beta
11
11
  */
12
12
  export interface ToolbarWithOverflowProps extends CommonProps, NoChildrenProps {
13
- /** Describes to which direction the popup panels are expanded. Defaults to: [[Direction.Bottom]] */
13
+ /** Describes to which direction the popup panels are expanded, also defines the orientation of the toolbar (Top/Bottom will create an horizontal toolbar, Left/Right will create a vertical toolbar). Defaults to: [[Direction.Bottom]] */
14
14
  expandsTo?: Direction;
15
15
  /** Describes to which direction the overflow popup panels are expanded. Defaults to: [[Direction.Right]] */
16
16
  overflowExpandsTo?: Direction;
@@ -27,7 +27,8 @@ export interface ToolbarWithOverflowProps extends CommonProps, NoChildrenProps {
27
27
  /** Optional function to call on any KeyDown events processed by toolbar */
28
28
  onKeyDown?: (e: React.KeyboardEvent) => void;
29
29
  }
30
- /** Component that displays toolbar items.
30
+ /** Component that displays toolbar items, displaying only the elements that can fit in the available space,
31
+ * and put the other items into a single panel.
31
32
  * @beta
32
33
  */
33
34
  export declare function ToolbarWithOverflow(props: ToolbarWithOverflowProps): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarWithOverflow.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarWithOverflow.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,WAAW,EAAE,eAAe;IAC5E,oGAAoG;IACpG,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,uGAAuG;IACvG,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sDAAsD;IACtD,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,eAWlE"}
1
+ {"version":3,"file":"ToolbarWithOverflow.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarWithOverflow.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,WAAW,EAAE,eAAe;IAC5E,2OAA2O;IAC3O,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,uGAAuG;IACvG,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sDAAsD;IACtD,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,eAGlE"}
@@ -6,17 +6,13 @@
6
6
  * @module Toolbar
7
7
  */
8
8
  import * as React from "react";
9
- import { ToolbarWithOverflow as CR_ToolbarWithOverflow } from "@itwin/components-react";
10
- import { toUIAToolbarItem } from "./toUIAToolbarItem";
11
- /** Component that displays toolbar items.
9
+ import { Toolbar } from "./Toolbar";
10
+ /** Component that displays toolbar items, displaying only the elements that can fit in the available space,
11
+ * and put the other items into a single panel.
12
12
  * @beta
13
13
  */
14
14
  export function ToolbarWithOverflow(props) {
15
- const { items, ...other } = props;
16
- const uiaItems = React.useMemo(() => {
17
- return items.map((item) => toUIAToolbarItem(item));
18
- }, [items]);
19
- return (React.createElement(CR_ToolbarWithOverflow // eslint-disable-line deprecation/deprecation
20
- , { items: uiaItems, ...other }));
15
+ const { overflowExpandsTo, ...toolbarProps } = props;
16
+ return React.createElement(Toolbar, { enableOverflow: { overflowExpandsTo }, ...toolbarProps });
21
17
  }
22
18
  //# sourceMappingURL=ToolbarWithOverflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarWithOverflow.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarWithOverflow.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwBtD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,CACL,oBAAC,sBAAsB,CAAC,8CAA8C;QACpE,KAAK,EAAE,QAAQ,KACX,KAAK,GACT,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport type { OnItemExecutedFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps, NoChildrenProps } from \"@itwin/core-react\";\nimport type {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport { ToolbarWithOverflow as CR_ToolbarWithOverflow } from \"@itwin/components-react\";\nimport type { ToolbarItem } from \"./ToolbarItem\";\nimport { toUIAToolbarItem } from \"./toUIAToolbarItem\";\n\n/** Component that displays toolbar items.\n * @beta\n */\nexport interface ToolbarWithOverflowProps extends CommonProps, NoChildrenProps {\n /** Describes to which direction the popup panels are expanded. Defaults to: [[Direction.Bottom]] */\n expandsTo?: Direction;\n /** Describes to which direction the overflow popup panels are expanded. Defaults to: [[Direction.Right]] */\n overflowExpandsTo?: Direction;\n /** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */\n items: ToolbarItem[];\n /** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */\n panelAlignment?: ToolbarPanelAlignment;\n /** Use Drag Interaction to open popups with nest action buttons */\n useDragInteraction?: boolean;\n /** Determines whether to use mouse proximity to alter the opacity of the toolbar */\n toolbarOpacitySetting?: ToolbarOpacitySetting;\n /** Optional function to call on any item execution */\n onItemExecuted?: OnItemExecutedFunc;\n /** Optional function to call on any KeyDown events processed by toolbar */\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\n/** Component that displays toolbar items.\n * @beta\n */\nexport function ToolbarWithOverflow(props: ToolbarWithOverflowProps) {\n const { items, ...other } = props;\n const uiaItems = React.useMemo(() => {\n return items.map((item) => toUIAToolbarItem(item));\n }, [items]);\n return (\n <CR_ToolbarWithOverflow // eslint-disable-line deprecation/deprecation\n items={uiaItems}\n {...other}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"ToolbarWithOverflow.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarWithOverflow.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;IACrD,OAAO,oBAAC,OAAO,IAAC,cAAc,EAAE,EAAE,iBAAiB,EAAE,KAAM,YAAY,GAAI,CAAC;AAC9E,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport type { OnItemExecutedFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps, NoChildrenProps } from \"@itwin/core-react\";\nimport type {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport type { ToolbarItem } from \"./ToolbarItem\";\nimport { Toolbar } from \"./Toolbar\";\n\n/** Component that displays toolbar items.\n * @beta\n */\nexport interface ToolbarWithOverflowProps extends CommonProps, NoChildrenProps {\n /** Describes to which direction the popup panels are expanded, also defines the orientation of the toolbar (Top/Bottom will create an horizontal toolbar, Left/Right will create a vertical toolbar). Defaults to: [[Direction.Bottom]] */\n expandsTo?: Direction;\n /** Describes to which direction the overflow popup panels are expanded. Defaults to: [[Direction.Right]] */\n overflowExpandsTo?: Direction;\n /** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */\n items: ToolbarItem[];\n /** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */\n panelAlignment?: ToolbarPanelAlignment;\n /** Use Drag Interaction to open popups with nest action buttons */\n useDragInteraction?: boolean;\n /** Determines whether to use mouse proximity to alter the opacity of the toolbar */\n toolbarOpacitySetting?: ToolbarOpacitySetting;\n /** Optional function to call on any item execution */\n onItemExecuted?: OnItemExecutedFunc;\n /** Optional function to call on any KeyDown events processed by toolbar */\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\n/** Component that displays toolbar items, displaying only the elements that can fit in the available space,\n * and put the other items into a single panel.\n * @beta\n */\nexport function ToolbarWithOverflow(props: ToolbarWithOverflowProps) {\n const { overflowExpandsTo, ...toolbarProps } = props;\n return <Toolbar enableOverflow={{ overflowExpandsTo }} {...toolbarProps} />;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ /** @packageDocumentation
2
+ * @module Toolbar
3
+ */
4
+ import type { ToolbarItem, ToolbarOrientation, ToolbarUsage } from "./ToolbarItem";
5
+ /**
6
+ * Collects the currently registered items providers toolbar item
7
+ * for the active stage and provided toolbar usage and orientation.
8
+ * @internal
9
+ */
10
+ export declare const useActiveStageProvidedToolbarItems: (toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation) => readonly ToolbarItem[];
11
+ //# sourceMappingURL=useActiveStageProvidedToolbarItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveStageProvidedToolbarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useActiveStageProvidedToolbarItems.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,iBAC/B,YAAY,sBACN,kBAAkB,KACrC,SAAS,WAAW,EA+BtB,CAAC"}
@@ -0,0 +1,42 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Toolbar
7
+ */
8
+ import * as React from "react";
9
+ import { useActiveStageId } from "../hooks/useActiveStageId";
10
+ import { useAvailableUiItemsProviders } from "../hooks/useAvailableUiItemsProviders";
11
+ import { UiFramework } from "../UiFramework";
12
+ import { UiItemsManager } from "../ui-items-provider/UiItemsManager";
13
+ /**
14
+ * Collects the currently registered items providers toolbar item
15
+ * for the active stage and provided toolbar usage and orientation.
16
+ * @internal
17
+ */
18
+ export const useActiveStageProvidedToolbarItems = (toolbarUsage, toolbarOrientation) => {
19
+ const uiItemsProviderIds = useAvailableUiItemsProviders();
20
+ const stageId = useActiveStageId();
21
+ const [items, setItems] = React.useState([]);
22
+ const providersRef = React.useRef("");
23
+ const currentStageRef = React.useRef("");
24
+ // gathers items from registered extensions - dependent on when a uiItemsProvider is register or unregistered and if the
25
+ // current stage's composer allows entries from extensions.
26
+ React.useEffect(() => {
27
+ const uiProviders = uiItemsProviderIds.join("-");
28
+ if (providersRef.current !== uiProviders ||
29
+ currentStageRef.current !== stageId) {
30
+ const frontstageDef = UiFramework.frontstages.activeFrontstageDef;
31
+ if (frontstageDef) {
32
+ const usage = frontstageDef.usage;
33
+ currentStageRef.current = stageId;
34
+ providersRef.current = uiProviders;
35
+ const toolbarItems = UiItemsManager.getToolbarButtonItems(stageId, usage, toolbarUsage, toolbarOrientation);
36
+ setItems(toolbarItems);
37
+ }
38
+ }
39
+ }, [uiItemsProviderIds, stageId, toolbarUsage, toolbarOrientation]);
40
+ return items;
41
+ };
42
+ //# sourceMappingURL=useActiveStageProvidedToolbarItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveStageProvidedToolbarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useActiveStageProvidedToolbarItems.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,YAA0B,EAC1B,kBAAsC,EACd,EAAE;IAC1B,MAAM,kBAAkB,GAAG,4BAA4B,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAyB,EAAE,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,wHAAwH;IACxH,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjD,IACE,YAAY,CAAC,OAAO,KAAK,WAAW;YACpC,eAAe,CAAC,OAAO,KAAK,OAAO,EACnC;YACA,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,IAAI,aAAa,EAAE;gBACjB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClC,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;gBAClC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;gBACnC,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CACvD,OAAO,EACP,KAAK,EACL,YAAY,EACZ,kBAAkB,CACnB,CAAC;gBACF,QAAQ,CAAC,YAAY,CAAC,CAAC;aACxB;SACF;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport { useActiveStageId } from \"../hooks/useActiveStageId\";\nimport { useAvailableUiItemsProviders } from \"../hooks/useAvailableUiItemsProviders\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"./ToolbarItem\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\n\n/**\n * Collects the currently registered items providers toolbar item\n * for the active stage and provided toolbar usage and orientation.\n * @internal\n */\nexport const useActiveStageProvidedToolbarItems = (\n toolbarUsage: ToolbarUsage,\n toolbarOrientation: ToolbarOrientation\n): readonly ToolbarItem[] => {\n const uiItemsProviderIds = useAvailableUiItemsProviders();\n const stageId = useActiveStageId();\n const [items, setItems] = React.useState<readonly ToolbarItem[]>([]);\n const providersRef = React.useRef(\"\");\n const currentStageRef = React.useRef(\"\");\n // gathers items from registered extensions - dependent on when a uiItemsProvider is register or unregistered and if the\n // current stage's composer allows entries from extensions.\n React.useEffect(() => {\n const uiProviders = uiItemsProviderIds.join(\"-\");\n\n if (\n providersRef.current !== uiProviders ||\n currentStageRef.current !== stageId\n ) {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef) {\n const usage = frontstageDef.usage;\n currentStageRef.current = stageId;\n providersRef.current = uiProviders;\n const toolbarItems = UiItemsManager.getToolbarButtonItems(\n stageId,\n usage,\n toolbarUsage,\n toolbarOrientation\n );\n setItems(toolbarItems);\n }\n }\n }, [uiItemsProviderIds, stageId, toolbarUsage, toolbarOrientation]);\n return items;\n};\n"]}
@@ -0,0 +1,25 @@
1
+ import type { BeEvent } from "@itwin/core-bentley";
2
+ type ActiveToolIdSynchedItem<T> = {
3
+ id: string;
4
+ isActive?: boolean;
5
+ } | {
6
+ id: string;
7
+ items: T[];
8
+ };
9
+ interface ActiveToolIdSynchedHost {
10
+ activeToolId: string;
11
+ onToolActivatedEvent: BeEvent<(args: {
12
+ toolId: string;
13
+ }) => void>;
14
+ }
15
+ /**
16
+ * Synch the provided items to only show the item with id === activeToolId to be
17
+ * active, as determined by the UiFramework.frontstages.activeToolId.
18
+ * @param itemsToSynch List of items to keep in synch.
19
+ * @param syncHost Source of information to synch to (UiFramework.frontstages)
20
+ * @returns Up to date itemsToSynch.
21
+ * @internal
22
+ */
23
+ export declare function useActiveToolIdSynchedItems<T extends ActiveToolIdSynchedItem<T>>(itemsToSynch: readonly T[], syncHost: ActiveToolIdSynchedHost): T[];
24
+ export {};
25
+ //# sourceMappingURL=useActiveToolIdSynchedItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveToolIdSynchedItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useActiveToolIdSynchedItems.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,KAAK,uBAAuB,CAAC,CAAC,IAC1B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AAE/B,UAAU,uBAAuB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,CAAC;CACnE;AAiDD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,EACpC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,uBAAuB,GAAG,CAAC,EAAE,CAWpE"}
@@ -0,0 +1,59 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import * as React from "react";
6
+ /**
7
+ * Recursively checks if the item with the current id of "toolId" is
8
+ * the only active tool.
9
+ * @param items list of items to validate
10
+ * @param toolId toolId to check
11
+ * @returns true if any item "isActive" must change.
12
+ */
13
+ function mustRefresh(items, toolId) {
14
+ return items.some((item) => {
15
+ if ("items" in item) {
16
+ return mustRefresh(item.items, toolId);
17
+ }
18
+ return ((item.isActive && item.id !== toolId) ||
19
+ (!item.isActive && item.id === toolId));
20
+ });
21
+ }
22
+ /**
23
+ * Recursively updates the isActive for the tools and only activate
24
+ * the one with the id equal to toolId.
25
+ * @param items list of items to update
26
+ * @param toolId toolId to check
27
+ * @returns updated list of items
28
+ */
29
+ function refreshItems(items, toolId) {
30
+ return items.map((item) => "items" in item
31
+ ? {
32
+ ...item,
33
+ isActive: item.id === toolId,
34
+ items: refreshItems(item.items, toolId),
35
+ }
36
+ : {
37
+ ...item,
38
+ isActive: item.id === toolId,
39
+ });
40
+ }
41
+ /**
42
+ * Synch the provided items to only show the item with id === activeToolId to be
43
+ * active, as determined by the UiFramework.frontstages.activeToolId.
44
+ * @param itemsToSynch List of items to keep in synch.
45
+ * @param syncHost Source of information to synch to (UiFramework.frontstages)
46
+ * @returns Up to date itemsToSynch.
47
+ * @internal
48
+ */
49
+ export function useActiveToolIdSynchedItems(itemsToSynch, syncHost) {
50
+ const [items, setItems] = React.useState([]);
51
+ React.useEffect(() => {
52
+ setItems(refreshItems(itemsToSynch, syncHost.activeToolId));
53
+ return syncHost.onToolActivatedEvent.addListener(({ toolId }) => {
54
+ setItems((current) => mustRefresh(current, toolId) ? refreshItems(current, toolId) : current);
55
+ });
56
+ }, [itemsToSynch, syncHost.activeToolId, syncHost.onToolActivatedEvent]);
57
+ return items;
58
+ }
59
+ //# sourceMappingURL=useActiveToolIdSynchedItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveToolIdSynchedItems.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useActiveToolIdSynchedItems.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B;;;;;;GAMG;AACH,SAAS,WAAW,CAClB,KAAmB,EACnB,MAAc;IAEd,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACxC;QACD,OAAO,CACL,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CACvC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,KAAmB,EACnB,MAAc;IAEd,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,OAAO,IAAI,IAAI;QACb,CAAC,CAAC;YACE,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,MAAM;YAC5B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;SACxC;QACH,CAAC,CAAC;YACE,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,MAAM;SAC7B,CACN,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAEzC,YAA0B,EAAE,QAAiC;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAM,EAAE,CAAC,CAAC;IAClD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC9D,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CACvE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport * as React from \"react\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\n\ntype ActiveToolIdSynchedItem<T> =\n | { id: string; isActive?: boolean }\n | { id: string; items: T[] };\n\ninterface ActiveToolIdSynchedHost {\n activeToolId: string;\n onToolActivatedEvent: BeEvent<(args: { toolId: string }) => void>;\n}\n\n/**\n * Recursively checks if the item with the current id of \"toolId\" is\n * the only active tool.\n * @param items list of items to validate\n * @param toolId toolId to check\n * @returns true if any item \"isActive\" must change.\n */\nfunction mustRefresh<T extends ActiveToolIdSynchedItem<T>>(\n items: readonly T[],\n toolId: string\n): boolean {\n return items.some((item) => {\n if (\"items\" in item) {\n return mustRefresh(item.items, toolId);\n }\n return (\n (item.isActive && item.id !== toolId) ||\n (!item.isActive && item.id === toolId)\n );\n });\n}\n\n/**\n * Recursively updates the isActive for the tools and only activate\n * the one with the id equal to toolId.\n * @param items list of items to update\n * @param toolId toolId to check\n * @returns updated list of items\n */\nfunction refreshItems<T extends ActiveToolIdSynchedItem<T>>(\n items: readonly T[],\n toolId: string\n): T[] {\n return items.map((item) =>\n \"items\" in item\n ? {\n ...item,\n isActive: item.id === toolId,\n items: refreshItems(item.items, toolId),\n }\n : {\n ...item,\n isActive: item.id === toolId,\n }\n );\n}\n\n/**\n * Synch the provided items to only show the item with id === activeToolId to be\n * active, as determined by the UiFramework.frontstages.activeToolId.\n * @param itemsToSynch List of items to keep in synch.\n * @param syncHost Source of information to synch to (UiFramework.frontstages)\n * @returns Up to date itemsToSynch.\n * @internal\n */\nexport function useActiveToolIdSynchedItems<\n T extends ActiveToolIdSynchedItem<T>\n>(itemsToSynch: readonly T[], syncHost: ActiveToolIdSynchedHost): T[] {\n const [items, setItems] = React.useState<T[]>([]);\n React.useEffect(() => {\n setItems(refreshItems(itemsToSynch, syncHost.activeToolId));\n return syncHost.onToolActivatedEvent.addListener(({ toolId }) => {\n setItems((current) =>\n mustRefresh(current, toolId) ? refreshItems(current, toolId) : current\n );\n });\n }, [itemsToSynch, syncHost.activeToolId, syncHost.onToolActivatedEvent]);\n return items;\n}\n"]}
@@ -5,6 +5,7 @@ import type { ToolbarItem } from "./ToolbarItem";
5
5
  import type { ToolbarItemsManager } from "./ToolbarItemsManager";
6
6
  /** Hook that returns items from [[ToolbarItemsManager]].
7
7
  * @public
8
+ * @deprecated in 4.4.0. Use [[Toolbar]] component instead of this hooks, ToolbarItemsManager is internal and should not be used here.
8
9
  */
9
10
  export declare const useDefaultToolbarItems: (manager: ToolbarItemsManager) => readonly ToolbarItem[];
10
11
  //# sourceMappingURL=useDefaultToolbarItems.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDefaultToolbarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useDefaultToolbarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,sBAAsB,YACxB,mBAAmB,KAC3B,SAAS,WAAW,EAetB,CAAC"}
1
+ {"version":3,"file":"useDefaultToolbarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useDefaultToolbarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,YAExB,mBAAmB,KAC3B,SAAS,WAAW,EAetB,CAAC"}
@@ -8,8 +8,11 @@
8
8
  import * as React from "react";
9
9
  /** Hook that returns items from [[ToolbarItemsManager]].
10
10
  * @public
11
+ * @deprecated in 4.4.0. Use [[Toolbar]] component instead of this hooks, ToolbarItemsManager is internal and should not be used here.
11
12
  */
12
- export const useDefaultToolbarItems = (manager) => {
13
+ export const useDefaultToolbarItems = (
14
+ // eslint-disable-next-line deprecation/deprecation
15
+ manager) => {
13
16
  const [items, setItems] = React.useState(() => manager.items);
14
17
  const isInitialMount = React.useRef(true);
15
18
  React.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useDefaultToolbarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useDefaultToolbarItems.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAA4B,EACJ,EAAE;IAC1B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,OAAO;YAAE,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aACtD;YACH,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport type { ToolbarItem } from \"./ToolbarItem\";\nimport type { ToolbarItemsManager } from \"./ToolbarItemsManager\";\n\n/** Hook that returns items from [[ToolbarItemsManager]].\n * @public\n */\nexport const useDefaultToolbarItems = (\n manager: ToolbarItemsManager\n): readonly ToolbarItem[] => {\n const [items, setItems] = React.useState(() => manager.items);\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setItems(manager.items);\n }\n }, [manager, manager.items]);\n React.useEffect(() => {\n return manager.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [manager]);\n return items;\n};\n"]}
1
+ {"version":3,"file":"useDefaultToolbarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useDefaultToolbarItems.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;AACpC,mDAAmD;AACnD,OAA4B,EACJ,EAAE;IAC1B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,OAAO;YAAE,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;aACtD;YACH,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport type { ToolbarItem } from \"./ToolbarItem\";\nimport type { ToolbarItemsManager } from \"./ToolbarItemsManager\";\n\n/** Hook that returns items from [[ToolbarItemsManager]].\n * @public\n * @deprecated in 4.4.0. Use [[Toolbar]] component instead of this hooks, ToolbarItemsManager is internal and should not be used here.\n */\nexport const useDefaultToolbarItems = (\n // eslint-disable-next-line deprecation/deprecation\n manager: ToolbarItemsManager\n): readonly ToolbarItem[] => {\n const [items, setItems] = React.useState(() => manager.items);\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setItems(manager.items);\n }\n }, [manager, manager.items]);\n React.useEffect(() => {\n return manager.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [manager]);\n return items;\n};\n"]}
@@ -3,8 +3,9 @@
3
3
  */
4
4
  import type { ToolbarItem, ToolbarOrientation, ToolbarUsage } from "./ToolbarItem";
5
5
  import type { ToolbarItemsManager } from "./ToolbarItemsManager";
6
- /** Hook that returns items from [[ToolbarItemsManager]].
6
+ /** Hook that retrieves active frontstage toolbar items from UiItemsProviders and manage them through [[ToolbarItemsManager]].
7
7
  * @public
8
+ * @deprecated in 4.4.0. This uses ToolbarItemsManager which is internal, directly use [[ToolbarComposer]] instead.
8
9
  */
9
10
  export declare const useUiItemsProviderToolbarItems: (manager: ToolbarItemsManager, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation) => readonly ToolbarItem[];
10
11
  //# sourceMappingURL=useUiItemsProviderToolbarItems.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUiItemsProviderToolbarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useUiItemsProviderToolbarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,YAAY,EACb,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,8BAA8B,YAChC,mBAAmB,gBACd,YAAY,sBACN,kBAAkB,KACrC,SAAS,WAAW,EAqCtB,CAAC"}
1
+ {"version":3,"file":"useUiItemsProviderToolbarItems.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useUiItemsProviderToolbarItems.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,YAAY,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE;;;GAGG;AACH,eAAO,MAAM,8BAA8B,YAEhC,mBAAmB,gBACd,YAAY,sBACN,kBAAkB,KACrC,SAAS,WAAW,EAetB,CAAC"}
@@ -6,41 +6,23 @@
6
6
  * @module Toolbar
7
7
  */
8
8
  import * as React from "react";
9
- import { useActiveStageId } from "../hooks/useActiveStageId";
10
- import { useAvailableUiItemsProviders } from "../hooks/useAvailableUiItemsProviders";
11
- import { UiFramework } from "../UiFramework";
12
- import { UiItemsManager } from "../ui-items-provider/UiItemsManager";
13
- /** Hook that returns items from [[ToolbarItemsManager]].
9
+ import { useActiveStageProvidedToolbarItems } from "./useActiveStageProvidedToolbarItems";
10
+ /** Hook that retrieves active frontstage toolbar items from UiItemsProviders and manage them through [[ToolbarItemsManager]].
14
11
  * @public
12
+ * @deprecated in 4.4.0. This uses ToolbarItemsManager which is internal, directly use [[ToolbarComposer]] instead.
15
13
  */
16
- export const useUiItemsProviderToolbarItems = (manager, toolbarUsage, toolbarOrientation) => {
17
- const uiItemsProviderIds = useAvailableUiItemsProviders();
18
- const stageId = useActiveStageId();
19
- const [items, setItems] = React.useState(manager.items);
20
- const providersRef = React.useRef("");
21
- const currentStageRef = React.useRef("");
22
- // gathers items from registered extensions - dependent on when a uiItemsProvider is register or unregistered and if the
23
- // current stage's composer allows entries from extensions.
14
+ export const useUiItemsProviderToolbarItems = (
15
+ // eslint-disable-next-line deprecation/deprecation
16
+ manager, toolbarUsage, toolbarOrientation) => {
17
+ const providedItems = useActiveStageProvidedToolbarItems(toolbarUsage, toolbarOrientation);
18
+ const [items, setItems] = React.useState(providedItems);
24
19
  React.useEffect(() => {
25
- const uiProviders = uiItemsProviderIds.join("-");
26
- // istanbul ignore else
27
- if (providersRef.current !== uiProviders ||
28
- currentStageRef.current !== stageId) {
29
- const frontstageDef = UiFramework.frontstages.activeFrontstageDef;
30
- // istanbul ignore else
31
- if (frontstageDef) {
32
- const usage = frontstageDef.usage;
33
- currentStageRef.current = stageId;
34
- providersRef.current = uiProviders;
35
- const toolbarItems = UiItemsManager.getToolbarButtonItems(stageId, usage, toolbarUsage, toolbarOrientation);
36
- manager.loadItems(toolbarItems);
37
- setItems(manager.items);
38
- }
39
- }
40
- return manager.onItemsChanged.addListener((args) => {
20
+ manager?.loadItems(providedItems);
21
+ setItems(manager?.items ?? providedItems);
22
+ return manager?.onItemsChanged.addListener((args) => {
41
23
  setItems(args.items);
42
24
  });
43
- }, [uiItemsProviderIds, stageId, manager, toolbarUsage, toolbarOrientation]);
25
+ }, [manager, providedItems]);
44
26
  return items;
45
27
  };
46
28
  //# sourceMappingURL=useUiItemsProviderToolbarItems.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUiItemsProviderToolbarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useUiItemsProviderToolbarItems.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAGrE;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,OAA4B,EAC5B,YAA0B,EAC1B,kBAAsC,EACd,EAAE;IAC1B,MAAM,kBAAkB,GAAG,4BAA4B,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,wHAAwH;IACxH,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjD,uBAAuB;QACvB,IACE,YAAY,CAAC,OAAO,KAAK,WAAW;YACpC,eAAe,CAAC,OAAO,KAAK,OAAO,EACnC;YACA,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,uBAAuB;YACvB,IAAI,aAAa,EAAE;gBACjB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClC,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;gBAClC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;gBACnC,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CACvD,OAAO,EACP,KAAK,EACL,YAAY,EACZ,kBAAkB,CACnB,CAAC;gBACF,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAChC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACzB;SACF;QACD,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport { useActiveStageId } from \"../hooks/useActiveStageId\";\nimport { useAvailableUiItemsProviders } from \"../hooks/useAvailableUiItemsProviders\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"./ToolbarItem\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager\";\nimport type { ToolbarItemsManager } from \"./ToolbarItemsManager\";\n\n/** Hook that returns items from [[ToolbarItemsManager]].\n * @public\n */\nexport const useUiItemsProviderToolbarItems = (\n manager: ToolbarItemsManager,\n toolbarUsage: ToolbarUsage,\n toolbarOrientation: ToolbarOrientation\n): readonly ToolbarItem[] => {\n const uiItemsProviderIds = useAvailableUiItemsProviders();\n const stageId = useActiveStageId();\n const [items, setItems] = React.useState(manager.items);\n const providersRef = React.useRef(\"\");\n const currentStageRef = React.useRef(\"\");\n // gathers items from registered extensions - dependent on when a uiItemsProvider is register or unregistered and if the\n // current stage's composer allows entries from extensions.\n React.useEffect(() => {\n const uiProviders = uiItemsProviderIds.join(\"-\");\n\n // istanbul ignore else\n if (\n providersRef.current !== uiProviders ||\n currentStageRef.current !== stageId\n ) {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (frontstageDef) {\n const usage = frontstageDef.usage;\n currentStageRef.current = stageId;\n providersRef.current = uiProviders;\n const toolbarItems = UiItemsManager.getToolbarButtonItems(\n stageId,\n usage,\n toolbarUsage,\n toolbarOrientation\n );\n manager.loadItems(toolbarItems);\n setItems(manager.items);\n }\n }\n return manager.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [uiItemsProviderIds, stageId, manager, toolbarUsage, toolbarOrientation]);\n return items;\n};\n"]}
1
+ {"version":3,"file":"useUiItemsProviderToolbarItems.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/useUiItemsProviderToolbarItems.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAE1F;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;AAC5C,mDAAmD;AACnD,OAA4B,EAC5B,YAA0B,EAC1B,kBAAsC,EACd,EAAE;IAC1B,MAAM,aAAa,GAAG,kCAAkC,CACtD,YAAY,EACZ,kBAAkB,CACnB,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACxD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QAClC,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC;QAE1C,OAAO,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"./ToolbarItem\";\nimport type { ToolbarItemsManager } from \"./ToolbarItemsManager\";\nimport { useActiveStageProvidedToolbarItems } from \"./useActiveStageProvidedToolbarItems\";\n\n/** Hook that retrieves active frontstage toolbar items from UiItemsProviders and manage them through [[ToolbarItemsManager]].\n * @public\n * @deprecated in 4.4.0. This uses ToolbarItemsManager which is internal, directly use [[ToolbarComposer]] instead.\n */\nexport const useUiItemsProviderToolbarItems = (\n // eslint-disable-next-line deprecation/deprecation\n manager: ToolbarItemsManager,\n toolbarUsage: ToolbarUsage,\n toolbarOrientation: ToolbarOrientation\n): readonly ToolbarItem[] => {\n const providedItems = useActiveStageProvidedToolbarItems(\n toolbarUsage,\n toolbarOrientation\n );\n const [items, setItems] = React.useState(providedItems);\n React.useEffect(() => {\n manager?.loadItems(providedItems);\n setItems(manager?.items ?? providedItems);\n\n return manager?.onItemsChanged.addListener((args) => {\n setItems(args.items);\n });\n }, [manager, providedItems]);\n return items;\n};\n"]}
@@ -77,9 +77,8 @@ export class CoreTools {
77
77
  return new ToolItemDef({
78
78
  toolId: RotateViewTool.toolId,
79
79
  iconSpec: new ConditionalStringValue(() => {
80
- var _a;
81
80
  const activeContentControl = UiFramework.content.getActiveContentControl();
82
- if ((_a = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _a === void 0 ? void 0 : _a.view.is2d())
81
+ if (activeContentControl?.viewport?.view.is2d())
83
82
  return IconSpecUtilities.createWebComponentIconSpec(svgRotateLeft);
84
83
  return IconSpecUtilities.createWebComponentIconSpec(svgGyroscope);
85
84
  }, [
@@ -99,9 +98,8 @@ export class CoreTools {
99
98
  label: WalkViewTool.flyover,
100
99
  description: WalkViewTool.description,
101
100
  isHidden: new ConditionalBooleanValue(() => {
102
- var _a;
103
101
  const activeContentControl = UiFramework.content.getActiveContentControl();
104
- return !!((_a = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _a === void 0 ? void 0 : _a.view.is2d());
102
+ return !!activeContentControl?.viewport?.view.is2d();
105
103
  }, [
106
104
  SyncUiEventId.ActiveContentChanged,
107
105
  SyncUiEventId.ActiveViewportChanged,
@@ -132,10 +130,9 @@ export class CoreTools {
132
130
  return new ToolItemDef({
133
131
  toolId: ViewToggleCameraTool.toolId,
134
132
  iconSpec: new ConditionalStringValue(() => {
135
- var _a, _b;
136
133
  const activeContentControl = UiFramework.content.getActiveContentControl();
137
- if (((_a = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _a === void 0 ? void 0 : _a.view.is3d()) &&
138
- ((_b = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _b === void 0 ? void 0 : _b.isCameraOn)) {
134
+ if (activeContentControl?.viewport?.view.is3d() &&
135
+ activeContentControl?.viewport?.isCameraOn) {
139
136
  return IconSpecUtilities.createWebComponentIconSpec(cameraAnimationIcon);
140
137
  }
141
138
  return IconSpecUtilities.createWebComponentIconSpec(cameraAnimationDisabledIcon);
@@ -145,10 +142,9 @@ export class CoreTools {
145
142
  SyncUiEventId.ViewStateChanged,
146
143
  ]),
147
144
  label: new ConditionalStringValue(() => {
148
- var _a, _b;
149
145
  const activeContentControl = UiFramework.content.getActiveContentControl();
150
- if (((_a = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _a === void 0 ? void 0 : _a.view.is3d()) &&
151
- ((_b = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _b === void 0 ? void 0 : _b.isCameraOn)) {
146
+ if (activeContentControl?.viewport?.view.is3d() &&
147
+ activeContentControl?.viewport?.isCameraOn) {
152
148
  return UiFramework.translate("tools.View.ToggleCamera.turnOffFlyover");
153
149
  }
154
150
  return UiFramework.translate("tools.View.ToggleCamera.turnOnFlyover");
@@ -159,10 +155,9 @@ export class CoreTools {
159
155
  ]),
160
156
  description: ViewToggleCameraTool.description,
161
157
  isHidden: new ConditionalBooleanValue(() => {
162
- var _a, _b;
163
158
  const activeContentControl = UiFramework.content.getActiveContentControl();
164
- return !(((_a = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _a === void 0 ? void 0 : _a.view.is3d()) &&
165
- ((_b = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _b === void 0 ? void 0 : _b.view.supportsCamera()));
159
+ return !(activeContentControl?.viewport?.view.is3d() &&
160
+ activeContentControl?.viewport?.view.supportsCamera());
166
161
  }, [
167
162
  SyncUiEventId.ActiveContentChanged,
168
163
  SyncUiEventId.ActiveViewportChanged,
@@ -289,9 +284,8 @@ export class CoreTools {
289
284
  labelKey: "UiFramework:tools.sectionTools",
290
285
  iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSectionTool),
291
286
  isHidden: new ConditionalBooleanValue(() => {
292
- var _a;
293
287
  const activeContentControl = UiFramework.content.getActiveContentControl();
294
- return !!((_a = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _a === void 0 ? void 0 : _a.view.is2d());
288
+ return !!activeContentControl?.viewport?.view.is2d();
295
289
  }, [
296
290
  SyncUiEventId.ActiveContentChanged,
297
291
  SyncUiEventId.ActiveViewportChanged,
@@ -317,9 +311,8 @@ export class CoreTools {
317
311
  panelLabelKey: "UiFramework:tools.sectionPanelLabel",
318
312
  iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSectionTool),
319
313
  isHidden: new ConditionalBooleanValue(() => {
320
- var _a;
321
314
  const activeContentControl = UiFramework.content.getActiveContentControl();
322
- return !!((_a = activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) === null || _a === void 0 ? void 0 : _a.view.is2d());
315
+ return !!activeContentControl?.viewport?.view.is2d();
323
316
  }, [
324
317
  SyncUiEventId.ActiveContentChanged,
325
318
  SyncUiEventId.ActiveViewportChanged,