@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
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\nimport { useDefaultToolbarItems } from \"./useDefaultToolbarItems\";\nimport { useUiItemsProviderToolbarItems } from \"./useUiItemsProviderToolbarItems\";\nimport type {\n ToolbarActionItem,\n ToolbarGroupItem,\n ToolbarItem,\n} from \"./ToolbarItem\";\nimport {\n isToolbarActionItem,\n isToolbarGroupItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"./ToolbarItem\";\nimport { ToolbarItemsManager } from \"./ToolbarItemsManager\";\nimport { ToolbarWithOverflow } from \"./ToolbarWithOverflow\";\n\n/** Private function to set up sync event monitoring of toolbar items */\nfunction useToolbarItemSyncEffect(\n uiDataProvider: ToolbarItemsManager,\n syncIdsOfInterest: string[]\n) {\n React.useEffect(() => {\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (0 === syncIdsOfInterest.length) return;\n\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value.toLowerCase())\n )\n ) {\n // process each item that has interest\n uiDataProvider.refreshAffectedItems(args.eventIds);\n }\n });\n }, [uiDataProvider, syncIdsOfInterest, uiDataProvider.items]);\n\n React.useEffect(() => {\n return UiFramework.frontstages.onToolActivatedEvent.addListener(\n ({ toolId }) => {\n uiDataProvider.setActiveToolId(toolId);\n }\n );\n }, [uiDataProvider, uiDataProvider.items]);\n}\n\nfunction nestedAddItemToSpecifiedParentGroup(\n items: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>,\n groupChildren: Array<ToolbarActionItem | ToolbarGroupItem>\n): Array<ToolbarActionItem | ToolbarGroupItem> {\n const outItems: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n for (const toolbarItem of items) {\n if (!isToolbarGroupItem(toolbarItem)) {\n outItems.push(toolbarItem);\n continue;\n }\n\n const newChildren: Array<ToolbarActionItem | ToolbarGroupItem> =\n nestedAddItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);\n const foundIndices: number[] = [];\n\n groupChildren.forEach((entry, index) => {\n if (entry.parentGroupItemId === toolbarItem.id) {\n foundIndices.push(index);\n }\n });\n\n // istanbul ignore else\n if (foundIndices.length) {\n // process in reverse order so groupChildren can be reduced as we find matches\n foundIndices\n .sort(\n // istanbul ignore next\n (a, b) => a - b\n )\n .reverse()\n .forEach((foundIndex) => {\n newChildren.push(groupChildren[foundIndex]);\n groupChildren.splice(foundIndex);\n });\n }\n\n outItems.push({ ...toolbarItem, items: newChildren });\n }\n return outItems;\n}\n\nfunction addItemToSpecifiedParentGroup(\n items: readonly ToolbarItem[],\n groupChildren: Array<ToolbarActionItem | ToolbarGroupItem>\n): ToolbarItem[] {\n const outItems: ToolbarItem[] = [];\n for (const toolbarItem of items) {\n if (!isToolbarGroupItem(toolbarItem)) {\n outItems.push(toolbarItem);\n continue;\n }\n\n const newChildren: Array<ToolbarActionItem | ToolbarGroupItem> =\n nestedAddItemToSpecifiedParentGroup(toolbarItem.items, groupChildren);\n const foundIndices: number[] = [];\n\n groupChildren.forEach((entry, index) => {\n if (entry.parentGroupItemId === toolbarItem.id) {\n foundIndices.push(index);\n }\n });\n\n // istanbul ignore else\n if (foundIndices.length) {\n // process in reverse order so groupChildren can be reduced as we find matches\n foundIndices\n .sort(\n // istanbul ignore next\n (a, b) => a - b\n )\n .reverse()\n .forEach((foundIndex) => {\n newChildren.push(groupChildren[foundIndex]);\n groupChildren.splice(foundIndex);\n });\n }\n\n outItems.push({ ...toolbarItem, items: newChildren });\n }\n return outItems;\n}\n\nfunction cloneGroup(inGroup: ToolbarGroupItem): ToolbarGroupItem {\n const childItems: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n inGroup.items.forEach((item) => {\n if (isToolbarGroupItem(item)) childItems.push(cloneGroup(item));\n else childItems.push(item);\n });\n\n const clonedGroup = { ...inGroup, items: childItems };\n return clonedGroup;\n}\n\nfunction getItemSortValue(item: ToolbarItem) {\n const groupValue =\n undefined === item.groupPriority\n ? 0\n : /* istanbul ignore next */ item.groupPriority;\n return groupValue * 10000 + item.itemPriority;\n}\n\nfunction getSortedChildren(\n group: ToolbarGroupItem\n): ReadonlyArray<ToolbarActionItem | ToolbarGroupItem> {\n const sortedChildren = group.items\n .filter((item) => !ConditionalBooleanValue.getValue(item.isHidden))\n .sort((a, b) => getItemSortValue(a) - getItemSortValue(b))\n .map((i) => {\n if (isToolbarGroupItem(i)) {\n return { ...i, items: getSortedChildren(i) };\n }\n return i;\n });\n return sortedChildren;\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n defaultItems: ReadonlyArray<ToolbarItem>,\n addonItems: ReadonlyArray<ToolbarItem>\n): ToolbarItem[] {\n let items: ToolbarItem[] = [];\n const groupChildren: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n\n // istanbul ignore else\n if (defaultItems.length) {\n defaultItems.forEach((srcItem: ToolbarItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n // if the default item is a group that an addon may insert into copy it so we don't mess with original\n const toolbarItem = isToolbarGroupItem(srcItem)\n ? cloneGroup(srcItem)\n : srcItem;\n if (\n (isToolbarGroupItem(toolbarItem) ||\n isToolbarActionItem(toolbarItem)) &&\n toolbarItem.parentGroupItemId\n )\n groupChildren.push(toolbarItem);\n else items.push(toolbarItem);\n }\n });\n }\n // istanbul ignore else\n if (addonItems.length) {\n addonItems.forEach((srcItem: ToolbarItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n // if the default item is a group that an addon may insert into copy it so we don't mess with original\n const toolbarItem = isToolbarGroupItem(srcItem)\n ? cloneGroup(srcItem)\n : srcItem;\n if (\n (isToolbarGroupItem(toolbarItem) ||\n isToolbarActionItem(toolbarItem)) &&\n toolbarItem.parentGroupItemId\n )\n groupChildren.push(toolbarItem);\n else items.push(toolbarItem);\n }\n });\n }\n\n // if an item from an addon has specified a parent group then try to find it and insert it. If no parent is found, add item at root level.\n if (groupChildren.length) {\n items = addItemToSpecifiedParentGroup(items, groupChildren);\n\n if (groupChildren.length) {\n groupChildren.forEach((toolbarItem) => {\n Logger.logWarning(\n \"ToolbarComposer\",\n `Requested Parent Group [${toolbarItem.parentGroupItemId!}] not found, so item [${\n toolbarItem.id\n }] is added directly to toolbar.`\n );\n items.push(toolbarItem);\n });\n }\n }\n\n const availableItems = items\n .filter((item) => !ConditionalBooleanValue.getValue(item.isHidden))\n .sort((a, b) => getItemSortValue(a) - getItemSortValue(b))\n .map((i) => {\n if (isToolbarGroupItem(i)) {\n return { ...i, items: getSortedChildren(i) };\n }\n return i;\n });\n\n return availableItems;\n}\n\nconst useProximityOpacitySetting = () => {\n const [proximityOpacity, setProximityOpacity] = React.useState(\n UiFramework.visibility.useProximityOpacity\n );\n React.useEffect(() => {\n // istanbul ignore next\n const handleUiVisibilityChanged = () => {\n setProximityOpacity(UiFramework.visibility.useProximityOpacity);\n };\n UiFramework.onUiVisibilityChanged.addListener(handleUiVisibilityChanged);\n return () => {\n UiFramework.onUiVisibilityChanged.removeListener(\n handleUiVisibilityChanged\n );\n };\n }, []);\n return proximityOpacity;\n};\n\n/** Properties for the [[ToolbarComposer]] React components\n * @public\n */\nexport interface ExtensibleToolbarProps {\n items: ToolbarItem[];\n usage: ToolbarUsage;\n /** Toolbar orientation. */\n orientation: ToolbarOrientation;\n}\n\n/**\n * Toolbar that is populated and maintained by item managers.\n * @public\n */\nexport function ToolbarComposer(props: ExtensibleToolbarProps) {\n const { usage, orientation } = props;\n\n const [defaultItemsManager, setDefaultItemsManager] = React.useState(\n () => new ToolbarItemsManager(props.items)\n );\n React.useEffect(() => {\n setDefaultItemsManager(new ToolbarItemsManager(props.items));\n }, [props.items]);\n\n // process default items\n const defaultItems = useDefaultToolbarItems(defaultItemsManager);\n const syncIdsOfInterest = React.useMemo(\n () => ToolbarItemsManager.getSyncIdsOfInterest(defaultItems),\n [defaultItems]\n );\n useToolbarItemSyncEffect(defaultItemsManager, syncIdsOfInterest);\n\n // process items from addon UI providers\n const [addonItemsManager] = React.useState(() => new ToolbarItemsManager());\n const addonItems = useUiItemsProviderToolbarItems(\n addonItemsManager,\n usage,\n orientation\n );\n const addonSyncIdsOfInterest = React.useMemo(\n () => ToolbarItemsManager.getSyncIdsOfInterest(addonItems),\n [addonItems]\n );\n useToolbarItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);\n\n const items = React.useMemo(() => {\n return combineItems(defaultItems, addonItems);\n }, [defaultItems, addonItems]);\n\n const toolbarOrientation =\n orientation === ToolbarOrientation.Horizontal\n ? Orientation.Horizontal\n : Orientation.Vertical;\n const expandsTo =\n toolbarOrientation === Orientation.Horizontal\n ? Direction.Bottom\n : usage === ToolbarUsage.ViewNavigation\n ? Direction.Left\n : Direction.Right;\n const panelAlignment =\n toolbarOrientation === Orientation.Horizontal &&\n usage === ToolbarUsage.ViewNavigation\n ? ToolbarPanelAlignment.End\n : ToolbarPanelAlignment.Start;\n const isDragEnabled = React.useContext(ToolbarDragInteractionContext);\n const useProximityOpacity = useProximityOpacitySetting();\n\n return (\n <ToolbarWithOverflow\n expandsTo={expandsTo}\n panelAlignment={panelAlignment}\n items={items}\n useDragInteraction={isDragEnabled}\n toolbarOpacitySetting={\n useProximityOpacity && !UiFramework.isMobile()\n ? ToolbarOpacitySetting.Proximity\n : /* istanbul ignore next */ ToolbarOpacitySetting.Defaults\n }\n />\n );\n}\n"]}
1
+ {"version":3,"file":"ToolbarComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Orientation } from \"@itwin/core-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { ToolbarDragInteractionContext } from \"./DragInteraction\";\nimport type {\n ToolbarActionItem,\n ToolbarGroupItem,\n ToolbarItem,\n} from \"./ToolbarItem\";\nimport {\n isToolbarActionItem,\n isToolbarGroupItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"./ToolbarItem\";\nimport { Toolbar } from \"./Toolbar\";\nimport { useActiveToolIdSynchedItems } from \"./useActiveToolIdSynchedItems\";\nimport { useActiveStageProvidedToolbarItems } from \"./useActiveStageProvidedToolbarItems\";\n\nfunction addItemToSpecifiedParentGroup<T extends ToolbarItem>(\n items: readonly T[],\n groupChildren: Array<ToolbarActionItem | ToolbarGroupItem>\n): T[] {\n const outItems: T[] = [];\n for (const toolbarItem of items) {\n if (!isToolbarGroupItem(toolbarItem)) {\n outItems.push(toolbarItem);\n continue;\n }\n\n const newChildren = addItemToSpecifiedParentGroup(\n toolbarItem.items,\n groupChildren\n );\n const foundIndices: number[] = [];\n\n groupChildren.forEach((entry, index) => {\n if (entry.parentGroupItemId === toolbarItem.id) {\n foundIndices.push(index);\n }\n });\n\n // istanbul ignore else\n if (foundIndices.length) {\n // process in reverse order so groupChildren can be reduced as we find matches\n foundIndices\n .sort(\n // istanbul ignore next\n (a, b) => a - b\n )\n .reverse()\n .forEach((foundIndex) => {\n newChildren.push(groupChildren[foundIndex]);\n groupChildren.splice(foundIndex);\n });\n }\n\n outItems.push({ ...toolbarItem, items: newChildren });\n }\n return outItems;\n}\n\nfunction cloneGroup(inGroup: ToolbarGroupItem): ToolbarGroupItem {\n const childItems: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n inGroup.items.forEach((item) => {\n if (isToolbarGroupItem(item)) childItems.push(cloneGroup(item));\n else childItems.push(item);\n });\n\n const clonedGroup = { ...inGroup, items: childItems };\n return clonedGroup;\n}\n\nfunction getItemSortValue(item: ToolbarItem) {\n const groupValue =\n undefined === item.groupPriority\n ? 0\n : /* istanbul ignore next */ item.groupPriority;\n return groupValue * 10000 + item.itemPriority;\n}\n\nfunction sortItems(items: ReadonlyArray<ToolbarItem>): ToolbarItem[] {\n return [...items]\n .sort((a, b) => getItemSortValue(a) - getItemSortValue(b))\n .map((i) => {\n if (isToolbarGroupItem(i)) {\n return { ...i, items: sortItems(i.items) };\n }\n return i;\n });\n}\n\n/**\n * Create a forEach handler that will add every element of an array of ToolbarItems\n * to a list of items that can then be replaced in its proper place, ensuring that\n * the same item, from different list, is not added multiple times.\n * @param items Output list of items\n * @param groupChildren Output list of group children to redistribute.\n * @returns Array<ToolbarItem>.forEach handler.\n */\nfunction addIfNotDuplicate(\n items: ToolbarItem[],\n groupChildren: (ToolbarActionItem | ToolbarGroupItem)[]\n): (value: ToolbarItem) => void {\n return (srcItem: ToolbarItem) => {\n if (-1 === items.findIndex((item) => item.id === srcItem.id)) {\n // if the default item is a group that an addon may insert into copy it so we don't mess with original\n const toolbarItem = isToolbarGroupItem(srcItem)\n ? cloneGroup(srcItem)\n : srcItem;\n if (\n (isToolbarGroupItem(toolbarItem) || isToolbarActionItem(toolbarItem)) &&\n toolbarItem.parentGroupItemId\n )\n groupChildren.push(toolbarItem);\n else items.push(toolbarItem);\n }\n };\n}\n\n/** local function to combine items from Stage and from Extensions */\nfunction combineItems(\n defaultItems: ReadonlyArray<ToolbarItem>,\n addonItems: ReadonlyArray<ToolbarItem>\n): ToolbarItem[] {\n let items: ToolbarItem[] = [];\n const groupChildren: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n\n defaultItems.forEach(addIfNotDuplicate(items, groupChildren));\n addonItems.forEach(addIfNotDuplicate(items, groupChildren));\n\n // if an item from an addon has specified a parent group then try to find it and insert it. If no parent is found, add item at root level.\n if (groupChildren.length) {\n items = addItemToSpecifiedParentGroup(items, groupChildren);\n\n groupChildren.forEach((toolbarItem) => {\n Logger.logWarning(\n \"ToolbarComposer\",\n `Requested Parent Group [${toolbarItem.parentGroupItemId!}] not found, so item [${\n toolbarItem.id\n }] is added directly to toolbar.`\n );\n items.push(toolbarItem);\n });\n }\n\n return sortItems(items);\n}\n\nconst useProximityOpacitySetting = () => {\n const [proximityOpacity, setProximityOpacity] = React.useState(\n UiFramework.visibility.useProximityOpacity\n );\n React.useEffect(() => {\n // istanbul ignore next\n const handleUiVisibilityChanged = () => {\n setProximityOpacity(UiFramework.visibility.useProximityOpacity);\n };\n UiFramework.onUiVisibilityChanged.addListener(handleUiVisibilityChanged);\n return () => {\n UiFramework.onUiVisibilityChanged.removeListener(\n handleUiVisibilityChanged\n );\n };\n }, []);\n return proximityOpacity;\n};\n\n/** Properties for the [[ToolbarComposer]] React components\n * @public\n */\nexport interface ExtensibleToolbarProps {\n items: ToolbarItem[];\n usage: ToolbarUsage;\n /** Toolbar orientation. */\n orientation: ToolbarOrientation;\n}\n\n/**\n * Toolbar that is populated and maintained by item managers, will override\n * isActive property based on the active tool id.\n * @public\n */\nexport function ToolbarComposer(props: ExtensibleToolbarProps) {\n const { usage, orientation } = props;\n\n // process items from addon UI providers\n const addonItems = useActiveStageProvidedToolbarItems(usage, orientation);\n\n const allItems = React.useMemo(() => {\n return combineItems(props.items, addonItems);\n }, [props.items, addonItems]);\n\n const items = useActiveToolIdSynchedItems(allItems, UiFramework.frontstages);\n\n const toolbarOrientation =\n orientation === ToolbarOrientation.Horizontal\n ? Orientation.Horizontal\n : Orientation.Vertical;\n const expandsTo =\n toolbarOrientation === Orientation.Horizontal\n ? Direction.Bottom\n : usage === ToolbarUsage.ViewNavigation\n ? Direction.Left\n : Direction.Right;\n const panelAlignment =\n toolbarOrientation === Orientation.Horizontal &&\n usage === ToolbarUsage.ViewNavigation\n ? ToolbarPanelAlignment.End\n : ToolbarPanelAlignment.Start;\n const isDragEnabled = React.useContext(ToolbarDragInteractionContext);\n const useProximityOpacity = useProximityOpacitySetting();\n\n return (\n <Toolbar\n enableOverflow={true}\n expandsTo={expandsTo}\n panelAlignment={panelAlignment}\n items={items}\n useDragInteraction={isDragEnabled}\n toolbarOpacitySetting={\n useProximityOpacity && !UiFramework.isMobile()\n ? ToolbarOpacitySetting.Proximity\n : /* istanbul ignore next */ ToolbarOpacitySetting.Defaults\n }\n />\n );\n}\n"]}
@@ -6,18 +6,21 @@ import type { ActionButton, CommonToolbarItem, CustomButtonDefinition, GroupButt
6
6
  import type { AnyItemDef } from "../shared/AnyItemDef";
7
7
  import { CustomItemDef } from "../shared/CustomItemDef";
8
8
  import type { ToolbarActionItem, ToolbarCustomItem, ToolbarGroupItem, ToolbarItem } from "./ToolbarItem";
9
- /** Helper functions for defining an ToolbarComposer.
9
+ /** Helper functions for defining a Toolbar items used in `Toolbar`, `ToolbarComposer` and `UiItemsProvider`.
10
10
  * @public
11
11
  */
12
12
  export declare class ToolbarHelper {
13
- /** Construct CustomToolbarItem definitions given a CustomItemDef. */
13
+ /** Construct ToolbarCustomItem definitions given a CustomItemDef. */
14
14
  static createCustomDefinitionToolbarItem(itemPriority: number, itemDef: CustomItemDef, overrides?: Partial<CustomButtonDefinition>): ToolbarCustomItem;
15
- /** Construct ActionButton and GroupButton definitions given an array to ItemDefs. */
15
+ /** Construct ToolbarActionItem and ToolbarGroupItem definitions given an array of ItemDefs. */
16
16
  static constructChildToolbarItems(itemDefs: AnyItemDef[]): Array<ToolbarActionItem | ToolbarGroupItem>;
17
17
  private static getStringOrConditionalString;
18
18
  static getIconReactNode(item: ActionButton | GroupButton): React.ReactNode;
19
19
  /** Helper method to creates a generic toolbar item entry */
20
20
  static createToolbarItemFromItemDef(itemPriority: number, itemDef: AnyItemDef, overrides?: Partial<CommonToolbarItem>): ToolbarItem;
21
+ /**
22
+ * Helper method to creates a generic toolbar item entry list.
23
+ */
21
24
  static createToolbarItemsFromItemDefs(itemDefs: AnyItemDef[], startingItemPriority?: number, overrides?: Partial<CommonToolbarItem>): ToolbarItem[];
22
25
  }
23
26
  //# sourceMappingURL=ToolbarHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarHelper.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarHelper.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EAEZ,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACZ,MAAM,eAAe,CAAC;AAGvB;;GAEG;AACH,qBAAa,aAAa;IACxB,qEAAqE;WACvD,iCAAiC,CAC7C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,EACtB,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAC1C,iBAAiB;IAwBpB,qFAAqF;WACvE,0BAA0B,CACtC,QAAQ,EAAE,UAAU,EAAE,GACrB,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAa9C,OAAO,CAAC,MAAM,CAAC,4BAA4B;WAY7B,gBAAgB,CAC5B,IAAI,EAAE,YAAY,GAAG,WAAW,GAC/B,KAAK,CAAC,SAAS;IAIlB,4DAA4D;WAC9C,4BAA4B,CACxC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,WAAW;WA6DA,8BAA8B,CAC1C,QAAQ,EAAE,UAAU,EAAE,EACtB,oBAAoB,SAAK,EACzB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,WAAW,EAAE;CAajB"}
1
+ {"version":3,"file":"ToolbarHelper.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarHelper.tsx"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EAEZ,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACZ,MAAM,eAAe,CAAC;AAkCvB;;GAEG;AACH,qBAAa,aAAa;IACxB,qEAAqE;WACvD,iCAAiC,CAC7C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,aAAa,EACtB,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAC1C,iBAAiB;IAIpB,+FAA+F;WACjF,0BAA0B,CACtC,QAAQ,EAAE,UAAU,EAAE,GACrB,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAI9C,OAAO,CAAC,MAAM,CAAC,4BAA4B;WAY7B,gBAAgB,CAC5B,IAAI,EAAE,YAAY,GAAG,WAAW,GAC/B,KAAK,CAAC,SAAS;IAIlB,4DAA4D;WAC9C,4BAA4B,CACxC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,WAAW;IA2Cd;;OAEG;WACW,8BAA8B,CAC1C,QAAQ,EAAE,UAAU,EAAE,EACtB,oBAAoB,SAAK,EACzB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,WAAW,EAAE;CAQjB"}
@@ -8,45 +8,36 @@ const CustomItemDef_1 = require("../shared/CustomItemDef");
8
8
  const ToolItemDef_1 = require("../shared/ToolItemDef");
9
9
  const GroupItem_1 = require("./GroupItem");
10
10
  const ToolbarItem_1 = require("./ToolbarItem");
11
- /** Helper functions for defining an ToolbarComposer.
11
+ /**
12
+ * Common implementation for `constructChildToolbarItems` and `createToolbarItemsFromItemDefs`.
13
+ * @param itemDefs List of itemDefs to convert.
14
+ * @param allowCustom false if we are building children and don't support custom items.
15
+ * @param startingItemPriority defaults to 10.
16
+ * @param overrides Single override to apply to each itemDefs.
17
+ * @returns ToolbarItem[] or (ToolbarActionItem | ToolbarGroupItem) if allowCustom is false.
18
+ */
19
+ function constructToolbarItemArray(itemDefs, allowCustom, startingItemPriority = 10, overrides) {
20
+ let priority = startingItemPriority;
21
+ const items = [];
22
+ for (const itemDef of itemDefs) {
23
+ const item = ToolbarHelper.createToolbarItemFromItemDef(priority, itemDef, overrides);
24
+ priority = priority + 10;
25
+ if (allowCustom || (0, ToolbarItem_1.isToolbarActionItem)(item) || (0, ToolbarItem_1.isToolbarGroupItem)(item))
26
+ items.push(item);
27
+ }
28
+ return items;
29
+ }
30
+ /** Helper functions for defining a Toolbar items used in `Toolbar`, `ToolbarComposer` and `UiItemsProvider`.
12
31
  * @public
13
32
  */
14
33
  class ToolbarHelper {
15
- /** Construct CustomToolbarItem definitions given a CustomItemDef. */
34
+ /** Construct ToolbarCustomItem definitions given a CustomItemDef. */
16
35
  static createCustomDefinitionToolbarItem(itemPriority, itemDef, overrides) {
17
- const isHidden = itemDef.isHidden;
18
- const isDisabled = itemDef.isDisabled;
19
- const internalData = new Map(); // used to store ReactNode if iconSpec hold a ReactNode
20
- const icon = core_react_1.IconHelper.getIconData(itemDef.iconSpec, internalData);
21
- const label = this.getStringOrConditionalString(itemDef.rawLabel);
22
- const badgeType = itemDef.badgeType;
23
- // istanbul ignore else
24
- return {
25
- id: itemDef.id,
26
- itemPriority,
27
- icon,
28
- label,
29
- isCustom: true,
30
- isHidden,
31
- isDisabled,
32
- internalData,
33
- badgeType,
34
- panelContent: itemDef.popupPanelNode,
35
- ...overrides,
36
- };
36
+ return this.createToolbarItemFromItemDef(itemPriority, itemDef, overrides);
37
37
  }
38
- /** Construct ActionButton and GroupButton definitions given an array to ItemDefs. */
38
+ /** Construct ToolbarActionItem and ToolbarGroupItem definitions given an array of ItemDefs. */
39
39
  static constructChildToolbarItems(itemDefs) {
40
- let count = 10;
41
- const items = [];
42
- for (const itemDef of itemDefs) {
43
- const item = this.createToolbarItemFromItemDef(count, itemDef);
44
- count = count + 10;
45
- // istanbul ignore else
46
- if ((0, ToolbarItem_1.isToolbarActionItem)(item) || (0, ToolbarItem_1.isToolbarGroupItem)(item))
47
- items.push(item);
48
- }
49
- return items;
40
+ return constructToolbarItemArray(itemDefs, false);
50
41
  }
51
42
  static getStringOrConditionalString(inString) {
52
43
  if (inString instanceof appui_abstract_1.ConditionalStringValue ||
@@ -59,71 +50,53 @@ class ToolbarHelper {
59
50
  }
60
51
  /** Helper method to creates a generic toolbar item entry */
61
52
  static createToolbarItemFromItemDef(itemPriority, itemDef, overrides) {
62
- const isHidden = itemDef.isHidden;
63
- const isDisabled = itemDef.isDisabled;
64
- const icon = itemDef.iconSpec;
65
- const label = this.getStringOrConditionalString(itemDef.rawLabel);
66
- const badge = itemDef.badgeType;
53
+ const { badgeType, icon, internalData, ...itemOverrides } = overrides ?? {};
54
+ const itemBase = {
55
+ id: itemDef.id,
56
+ itemPriority,
57
+ isActive: itemDef.isActive,
58
+ isHidden: itemDef.isHidden,
59
+ isDisabled: itemDef.isDisabled,
60
+ icon: internalData?.get(core_react_1.IconHelper.reactIconKey) ??
61
+ internalData?.get(core_react_1.IconHelper.conditionalIconItemKey) ??
62
+ icon ??
63
+ itemDef.iconSpec,
64
+ label: this.getStringOrConditionalString(itemDef.rawLabel),
65
+ badge: badgeType ?? itemDef.badgeType,
66
+ };
67
67
  // istanbul ignore else
68
- if (itemDef instanceof CommandItemDef_1.CommandItemDef) {
68
+ if (itemDef instanceof CommandItemDef_1.CommandItemDef || itemDef instanceof ToolItemDef_1.ToolItemDef) {
69
69
  return {
70
- id: itemDef.id,
71
- itemPriority,
72
- icon,
73
- label,
74
- isHidden,
75
- isDisabled,
76
- isActive: itemDef.isActive,
70
+ ...itemBase,
77
71
  execute: itemDef.execute,
78
- badge,
79
- ...overrides,
72
+ ...itemOverrides,
80
73
  };
81
74
  }
82
75
  else if (itemDef instanceof CustomItemDef_1.CustomItemDef) {
83
- return ToolbarHelper.createCustomDefinitionToolbarItem(itemPriority, itemDef, overrides);
76
+ return {
77
+ ...itemBase,
78
+ panelContent: itemDef.popupPanelNode,
79
+ ...itemOverrides,
80
+ };
84
81
  }
85
82
  else if (itemDef instanceof GroupItem_1.GroupItemDef) {
86
- const children = this.constructChildToolbarItems(itemDef.items);
87
83
  return {
88
- id: itemDef.id,
89
- itemPriority,
90
- icon,
91
- label,
84
+ ...itemBase,
92
85
  panelLabel: itemDef.panelLabel,
93
- isHidden,
94
- isDisabled,
95
- items: children,
86
+ items: this.constructChildToolbarItems(itemDef.items),
96
87
  isActive: false,
97
- badge,
98
- ...overrides,
99
- };
100
- }
101
- else if (itemDef instanceof ToolItemDef_1.ToolItemDef) {
102
- return {
103
- id: itemDef.id,
104
- itemPriority,
105
- icon,
106
- label,
107
- isHidden,
108
- isDisabled,
109
- isActive: itemDef.isActive,
110
- execute: itemDef.execute,
111
- badge,
112
- ...overrides,
88
+ ...itemOverrides,
113
89
  };
114
90
  }
115
91
  else {
116
92
  throw new Error(`Invalid Item type encountered, item id=${itemDef.id}`);
117
93
  }
118
94
  }
95
+ /**
96
+ * Helper method to creates a generic toolbar item entry list.
97
+ */
119
98
  static createToolbarItemsFromItemDefs(itemDefs, startingItemPriority = 10, overrides) {
120
- let itemPriority = startingItemPriority;
121
- const items = itemDefs.map((itemDef) => {
122
- const item = ToolbarHelper.createToolbarItemFromItemDef(itemPriority, itemDef, overrides);
123
- itemPriority = itemPriority + 10;
124
- return item;
125
- });
126
- return items;
99
+ return constructToolbarItemArray(itemDefs, true, startingItemPriority, overrides);
127
100
  }
128
101
  }
129
102
  exports.ToolbarHelper = ToolbarHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarHelper.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\nimport type * as React from \"react\";\nimport type {\n ActionButton,\n CommonToolbarItem,\n CustomButtonDefinition,\n GroupButton,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport type { AnyItemDef } from \"../shared/AnyItemDef\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport { CustomItemDef } from \"../shared/CustomItemDef\";\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\nimport { GroupItemDef } from \"./GroupItem\";\nimport type {\n ToolbarActionItem,\n ToolbarCustomItem,\n ToolbarGroupItem,\n ToolbarItem,\n} from \"./ToolbarItem\";\nimport { isToolbarActionItem, isToolbarGroupItem } from \"./ToolbarItem\";\n\n/** Helper functions for defining an ToolbarComposer.\n * @public\n */\nexport class ToolbarHelper {\n /** Construct CustomToolbarItem definitions given a CustomItemDef. */\n public static createCustomDefinitionToolbarItem(\n itemPriority: number,\n itemDef: CustomItemDef,\n overrides?: Partial<CustomButtonDefinition>\n ): ToolbarCustomItem {\n const isHidden = itemDef.isHidden;\n const isDisabled = itemDef.isDisabled;\n const internalData = new Map<string, any>(); // used to store ReactNode if iconSpec hold a ReactNode\n const icon = IconHelper.getIconData(itemDef.iconSpec, internalData);\n const label = this.getStringOrConditionalString(itemDef.rawLabel);\n const badgeType = itemDef.badgeType;\n\n // istanbul ignore else\n return {\n id: itemDef.id,\n itemPriority,\n icon,\n label,\n isCustom: true,\n isHidden,\n isDisabled,\n internalData,\n badgeType,\n panelContent: itemDef.popupPanelNode,\n ...overrides,\n };\n }\n\n /** Construct ActionButton and GroupButton definitions given an array to ItemDefs. */\n public static constructChildToolbarItems(\n itemDefs: AnyItemDef[]\n ): Array<ToolbarActionItem | ToolbarGroupItem> {\n let count = 10;\n const items: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n for (const itemDef of itemDefs) {\n const item = this.createToolbarItemFromItemDef(count, itemDef);\n count = count + 10;\n // istanbul ignore else\n if (isToolbarActionItem(item) || isToolbarGroupItem(item))\n items.push(item);\n }\n return items;\n }\n\n private static getStringOrConditionalString(\n inString: string | StringGetter | ConditionalStringValue\n ): string | ConditionalStringValue {\n if (\n inString instanceof ConditionalStringValue ||\n typeof inString === \"string\"\n )\n return inString;\n\n return inString();\n }\n\n public static getIconReactNode(\n item: ActionButton | GroupButton\n ): React.ReactNode {\n return IconHelper.getIconReactNode(item.icon, item.internalData);\n }\n\n /** Helper method to creates a generic toolbar item entry */\n public static createToolbarItemFromItemDef(\n itemPriority: number,\n itemDef: AnyItemDef,\n overrides?: Partial<CommonToolbarItem>\n ): ToolbarItem {\n const isHidden = itemDef.isHidden;\n const isDisabled = itemDef.isDisabled;\n const icon = itemDef.iconSpec;\n const label = this.getStringOrConditionalString(itemDef.rawLabel);\n const badge = itemDef.badgeType;\n\n // istanbul ignore else\n if (itemDef instanceof CommandItemDef) {\n return {\n id: itemDef.id,\n itemPriority,\n icon,\n label,\n isHidden,\n isDisabled,\n isActive: itemDef.isActive,\n execute: itemDef.execute,\n badge,\n ...overrides,\n };\n } else if (itemDef instanceof CustomItemDef) {\n return ToolbarHelper.createCustomDefinitionToolbarItem(\n itemPriority,\n itemDef,\n overrides\n );\n } else if (itemDef instanceof GroupItemDef) {\n const children: Array<ToolbarActionItem | ToolbarGroupItem> =\n this.constructChildToolbarItems(itemDef.items);\n return {\n id: itemDef.id,\n itemPriority,\n icon,\n label,\n panelLabel: itemDef.panelLabel,\n isHidden,\n isDisabled,\n items: children,\n isActive: false,\n badge,\n ...overrides,\n };\n } else if (itemDef instanceof ToolItemDef) {\n return {\n id: itemDef.id,\n itemPriority,\n icon,\n label,\n isHidden,\n isDisabled,\n isActive: itemDef.isActive,\n execute: itemDef.execute,\n badge,\n ...overrides,\n };\n } else {\n throw new Error(`Invalid Item type encountered, item id=${itemDef.id}`);\n }\n }\n\n public static createToolbarItemsFromItemDefs(\n itemDefs: AnyItemDef[],\n startingItemPriority = 10,\n overrides?: Partial<CommonToolbarItem>\n ): ToolbarItem[] {\n let itemPriority = startingItemPriority;\n const items = itemDefs.map((itemDef: AnyItemDef) => {\n const item = ToolbarHelper.createToolbarItemFromItemDef(\n itemPriority,\n itemDef,\n overrides\n );\n itemPriority = itemPriority + 10;\n return item;\n });\n return items;\n }\n}\n"]}
1
+ {"version":3,"file":"ToolbarHelper.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarHelper.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\nimport type * as React from \"react\";\nimport type {\n ActionButton,\n CommonToolbarItem,\n CustomButtonDefinition,\n GroupButton,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport type { AnyItemDef } from \"../shared/AnyItemDef\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport { CustomItemDef } from \"../shared/CustomItemDef\";\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\nimport { GroupItemDef } from \"./GroupItem\";\nimport type {\n ToolbarActionItem,\n ToolbarCustomItem,\n ToolbarGroupItem,\n ToolbarItem,\n} from \"./ToolbarItem\";\nimport { isToolbarActionItem, isToolbarGroupItem } from \"./ToolbarItem\";\n\n/**\n * Common implementation for `constructChildToolbarItems` and `createToolbarItemsFromItemDefs`.\n * @param itemDefs List of itemDefs to convert.\n * @param allowCustom false if we are building children and don't support custom items.\n * @param startingItemPriority defaults to 10.\n * @param overrides Single override to apply to each itemDefs.\n * @returns ToolbarItem[] or (ToolbarActionItem | ToolbarGroupItem) if allowCustom is false.\n */\nfunction constructToolbarItemArray<T extends boolean>(\n itemDefs: AnyItemDef[],\n allowCustom: T,\n startingItemPriority = 10,\n overrides?: Partial<CommonToolbarItem>\n) {\n let priority = startingItemPriority;\n const items = [];\n for (const itemDef of itemDefs) {\n const item = ToolbarHelper.createToolbarItemFromItemDef(\n priority,\n itemDef,\n overrides\n );\n priority = priority + 10;\n if (allowCustom || isToolbarActionItem(item) || isToolbarGroupItem(item))\n items.push(item);\n }\n return items as T extends true\n ? Array<ToolbarItem>\n : Array<ToolbarActionItem | ToolbarGroupItem>;\n}\n\n/** Helper functions for defining a Toolbar items used in `Toolbar`, `ToolbarComposer` and `UiItemsProvider`.\n * @public\n */\nexport class ToolbarHelper {\n /** Construct ToolbarCustomItem definitions given a CustomItemDef. */\n public static createCustomDefinitionToolbarItem(\n itemPriority: number,\n itemDef: CustomItemDef,\n overrides?: Partial<CustomButtonDefinition>\n ): ToolbarCustomItem {\n return this.createToolbarItemFromItemDef(itemPriority, itemDef, overrides);\n }\n\n /** Construct ToolbarActionItem and ToolbarGroupItem definitions given an array of ItemDefs. */\n public static constructChildToolbarItems(\n itemDefs: AnyItemDef[]\n ): Array<ToolbarActionItem | ToolbarGroupItem> {\n return constructToolbarItemArray(itemDefs, false);\n }\n\n private static getStringOrConditionalString(\n inString: string | StringGetter | ConditionalStringValue\n ): string | ConditionalStringValue {\n if (\n inString instanceof ConditionalStringValue ||\n typeof inString === \"string\"\n )\n return inString;\n\n return inString();\n }\n\n public static getIconReactNode(\n item: ActionButton | GroupButton\n ): React.ReactNode {\n return IconHelper.getIconReactNode(item.icon, item.internalData);\n }\n\n /** Helper method to creates a generic toolbar item entry */\n public static createToolbarItemFromItemDef(\n itemPriority: number,\n itemDef: AnyItemDef,\n overrides?: Partial<CommonToolbarItem>\n ): ToolbarItem {\n const { badgeType, icon, internalData, ...itemOverrides } = overrides ?? {};\n const itemBase: ToolbarItem = {\n id: itemDef.id,\n itemPriority,\n isActive: itemDef.isActive,\n isHidden: itemDef.isHidden,\n isDisabled: itemDef.isDisabled,\n icon:\n internalData?.get(IconHelper.reactIconKey) ??\n internalData?.get(IconHelper.conditionalIconItemKey) ??\n icon ??\n itemDef.iconSpec,\n label: this.getStringOrConditionalString(itemDef.rawLabel),\n badge: badgeType ?? itemDef.badgeType,\n };\n\n // istanbul ignore else\n if (itemDef instanceof CommandItemDef || itemDef instanceof ToolItemDef) {\n return {\n ...itemBase,\n execute: itemDef.execute,\n ...itemOverrides,\n };\n } else if (itemDef instanceof CustomItemDef) {\n return {\n ...itemBase,\n panelContent: itemDef.popupPanelNode,\n ...itemOverrides,\n };\n } else if (itemDef instanceof GroupItemDef) {\n return {\n ...itemBase,\n panelLabel: itemDef.panelLabel,\n items: this.constructChildToolbarItems(itemDef.items),\n isActive: false,\n ...itemOverrides,\n };\n } else {\n throw new Error(`Invalid Item type encountered, item id=${itemDef.id}`);\n }\n }\n\n /**\n * Helper method to creates a generic toolbar item entry list.\n */\n public static createToolbarItemsFromItemDefs(\n itemDefs: AnyItemDef[],\n startingItemPriority = 10,\n overrides?: Partial<CommonToolbarItem>\n ): ToolbarItem[] {\n return constructToolbarItemArray(\n itemDefs,\n true,\n startingItemPriority,\n overrides\n );\n }\n}\n"]}
@@ -8,9 +8,9 @@ import type { IconSpec } from "@itwin/core-react";
8
8
  * @public
9
9
  */
10
10
  export declare enum ToolbarUsage {
11
- /** Contains tools to Create Update and Delete content - in ninezone this is in top left of content area. */
11
+ /** Contains tools to Create Update and Delete content - in AppUI this is in top left of content area. */
12
12
  ContentManipulation = 0,
13
- /** Manipulate view/camera - in ninezone this is in top right of content area. */
13
+ /** Manipulate view/camera - in AppUI this is in top right of content area. */
14
14
  ViewNavigation = 1
15
15
  }
16
16
  /** Used to specify the orientation of the toolbar.
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,oBAAY,YAAY;IACtB,4GAA4G;IAC5G,mBAAmB,IAAI;IACvB,iFAAiF;IACjF,cAAc,IAAI;CACnB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,0BAA0B;IAC1B,UAAU,IAAI;IACd,wBAAwB;IACxB,QAAQ,IAAI;CACb;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iIAAiI;IACjI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACvD,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACtD,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,sHAAsH;IACtH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,qHAAqH;IACrH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACtD,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IACpE,qDAAqD;IACrD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,qHAAqH;IACrH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,yFAAyF;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACjD,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,iBAAiB,CAE3B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,gBAAgB,CAE1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,iBAAiB,CAE3B"}
1
+ {"version":3,"file":"ToolbarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,oBAAY,YAAY;IACtB,yGAAyG;IACzG,mBAAmB,IAAI;IACvB,8EAA8E;IAC9E,cAAc,IAAI;CACnB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,0BAA0B;IAC1B,UAAU,IAAI;IACd,wBAAwB;IACxB,QAAQ,IAAI;CACb;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iIAAiI;IACjI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACvD,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACtD,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,sHAAsH;IACtH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,qHAAqH;IACrH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACtD,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IACpE,qDAAqD;IACrD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,qHAAqH;IACrH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,yFAAyF;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACjD,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,iBAAiB,CAE3B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,gBAAgB,CAE1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,iBAAiB,CAE3B"}
@@ -13,9 +13,9 @@ exports.isToolbarCustomItem = exports.isToolbarGroupItem = exports.isToolbarActi
13
13
  */
14
14
  var ToolbarUsage;
15
15
  (function (ToolbarUsage) {
16
- /** Contains tools to Create Update and Delete content - in ninezone this is in top left of content area. */
16
+ /** Contains tools to Create Update and Delete content - in AppUI this is in top left of content area. */
17
17
  ToolbarUsage[ToolbarUsage["ContentManipulation"] = 0] = "ContentManipulation";
18
- /** Manipulate view/camera - in ninezone this is in top right of content area. */
18
+ /** Manipulate view/camera - in AppUI this is in top right of content area. */
19
19
  ToolbarUsage[ToolbarUsage["ViewNavigation"] = 1] = "ViewNavigation";
20
20
  })(ToolbarUsage = exports.ToolbarUsage || (exports.ToolbarUsage = {}));
21
21
  /** Used to specify the orientation of the toolbar.
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AASH;;GAEG;AACH,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,4GAA4G;IAC5G,6EAAuB,CAAA;IACvB,iFAAiF;IACjF,mEAAkB,CAAA;AACpB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED;;GAEG;AACH,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,0BAA0B;IAC1B,uEAAc,CAAA;IACd,wBAAwB;IACxB,mEAAY,CAAA;AACd,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B;AA6ED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAJD,kDAIC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,IAAiB;IAEjB,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAJD,gDAIC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAJD,kDAIC","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 type {\n BadgeType,\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** Used to specify the usage of the toolbar which determine the toolbar position.\n * @public\n */\nexport enum ToolbarUsage {\n /** Contains tools to Create Update and Delete content - in ninezone this is in top left of content area. */\n ContentManipulation = 0,\n /** Manipulate view/camera - in ninezone this is in top right of content area. */\n ViewNavigation = 1,\n}\n\n/** Used to specify the orientation of the toolbar.\n * @public\n */\nexport enum ToolbarOrientation {\n /** Horizontal toolbar. */\n Horizontal = 0,\n /** Vertical toolbar. */\n Vertical = 1,\n}\n\n/** Describes the data needed to insert a UI items into an existing set of UI items.\n * @public\n */\nexport interface CommonToolbarItem {\n /** Require uniqueId for the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */\n readonly id: string;\n /** Describes badge. Renders no badge if not specified. */\n readonly badge?: BadgeType;\n /** Optional description */\n readonly description?: string | ConditionalStringValue;\n /** Defines if the item is active (shown with an active stripe/bar). */\n readonly isActive?: boolean;\n /** Describes if the item is visible or hidden. The default is for the item to be visible. */\n readonly isHidden?: boolean | ConditionalBooleanValue;\n /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */\n readonly isDisabled?: boolean | ConditionalBooleanValue;\n /** Specifies the item's grouping value. Items are sorted by group and then item priority. When\n * group priority changes a separator is inserted. It is recommended using values 10 through 100, incrementing by 10. This\n * allows extensions enough gaps to insert their own groups. If the value is not specified a groupPriority of 0 is used.\n */\n readonly groupPriority?: number;\n /** Priority within a toolbar or group. */\n readonly itemPriority: number;\n}\n\n/** Describes the data needed to insert an action button into a toolbar.\n * @public\n */\nexport interface ToolbarActionItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on a button or an item label in a group. */\n readonly label: string | ConditionalStringValue;\n /** function to run when the button is pressed. */\n readonly execute: () => void;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a group button into a toolbar.\n * @public\n */\nexport interface ToolbarGroupItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label: string | ConditionalStringValue;\n /** label shown as the title in at top of group panel. */\n readonly panelLabel?: string | ConditionalStringValue;\n /** children of the group */\n readonly items: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a custom button into a toolbar.\n * @public\n */\nexport interface ToolbarCustomItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon?: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label?: string | ConditionalStringValue;\n /** defines the content to display in popup panel */\n readonly panelContent?: React.ReactNode;\n}\n\n/** Any Button Type that can be inserted into a toolbar.\n * @public\n */\nexport type ToolbarItem =\n | ToolbarActionItem\n | ToolbarGroupItem\n | ToolbarCustomItem;\n\n/** ToolbarActionItem type guard.\n * @public\n */\nexport function isToolbarActionItem(\n item: ToolbarItem\n): item is ToolbarActionItem {\n return \"execute\" in item;\n}\n\n/** ToolbarGroupItem type guard.\n * @public\n */\nexport function isToolbarGroupItem(\n item: ToolbarItem\n): item is ToolbarGroupItem {\n return \"items\" in item;\n}\n\n/** ToolbarCustomItem type guard.\n * @public\n */\nexport function isToolbarCustomItem(\n item: ToolbarItem\n): item is ToolbarCustomItem {\n return !isToolbarActionItem(item) && !isToolbarGroupItem(item);\n}\n"]}
1
+ {"version":3,"file":"ToolbarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AASH;;GAEG;AACH,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,yGAAyG;IACzG,6EAAuB,CAAA;IACvB,8EAA8E;IAC9E,mEAAkB,CAAA;AACpB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED;;GAEG;AACH,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,0BAA0B;IAC1B,uEAAc,CAAA;IACd,wBAAwB;IACxB,mEAAY,CAAA;AACd,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B;AA6ED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAJD,kDAIC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,IAAiB;IAEjB,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAJD,gDAIC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAJD,kDAIC","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 type {\n BadgeType,\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** Used to specify the usage of the toolbar which determine the toolbar position.\n * @public\n */\nexport enum ToolbarUsage {\n /** Contains tools to Create Update and Delete content - in AppUI this is in top left of content area. */\n ContentManipulation = 0,\n /** Manipulate view/camera - in AppUI this is in top right of content area. */\n ViewNavigation = 1,\n}\n\n/** Used to specify the orientation of the toolbar.\n * @public\n */\nexport enum ToolbarOrientation {\n /** Horizontal toolbar. */\n Horizontal = 0,\n /** Vertical toolbar. */\n Vertical = 1,\n}\n\n/** Describes the data needed to insert a UI items into an existing set of UI items.\n * @public\n */\nexport interface CommonToolbarItem {\n /** Require uniqueId for the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */\n readonly id: string;\n /** Describes badge. Renders no badge if not specified. */\n readonly badge?: BadgeType;\n /** Optional description */\n readonly description?: string | ConditionalStringValue;\n /** Defines if the item is active (shown with an active stripe/bar). */\n readonly isActive?: boolean;\n /** Describes if the item is visible or hidden. The default is for the item to be visible. */\n readonly isHidden?: boolean | ConditionalBooleanValue;\n /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */\n readonly isDisabled?: boolean | ConditionalBooleanValue;\n /** Specifies the item's grouping value. Items are sorted by group and then item priority. When\n * group priority changes a separator is inserted. It is recommended using values 10 through 100, incrementing by 10. This\n * allows extensions enough gaps to insert their own groups. If the value is not specified a groupPriority of 0 is used.\n */\n readonly groupPriority?: number;\n /** Priority within a toolbar or group. */\n readonly itemPriority: number;\n}\n\n/** Describes the data needed to insert an action button into a toolbar.\n * @public\n */\nexport interface ToolbarActionItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on a button or an item label in a group. */\n readonly label: string | ConditionalStringValue;\n /** function to run when the button is pressed. */\n readonly execute: () => void;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a group button into a toolbar.\n * @public\n */\nexport interface ToolbarGroupItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label: string | ConditionalStringValue;\n /** label shown as the title in at top of group panel. */\n readonly panelLabel?: string | ConditionalStringValue;\n /** children of the group */\n readonly items: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a custom button into a toolbar.\n * @public\n */\nexport interface ToolbarCustomItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon?: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label?: string | ConditionalStringValue;\n /** defines the content to display in popup panel */\n readonly panelContent?: React.ReactNode;\n}\n\n/** Any Button Type that can be inserted into a toolbar.\n * @public\n */\nexport type ToolbarItem =\n | ToolbarActionItem\n | ToolbarGroupItem\n | ToolbarCustomItem;\n\n/** ToolbarActionItem type guard.\n * @public\n */\nexport function isToolbarActionItem(\n item: ToolbarItem\n): item is ToolbarActionItem {\n return \"execute\" in item;\n}\n\n/** ToolbarGroupItem type guard.\n * @public\n */\nexport function isToolbarGroupItem(\n item: ToolbarItem\n): item is ToolbarGroupItem {\n return \"items\" in item;\n}\n\n/** ToolbarCustomItem type guard.\n * @public\n */\nexport function isToolbarCustomItem(\n item: ToolbarItem\n): item is ToolbarCustomItem {\n return !isToolbarActionItem(item) && !isToolbarGroupItem(item);\n}\n"]}
@@ -12,6 +12,7 @@ export interface ToolbarItemsChangedArgs {
12
12
  /**
13
13
  * Controls status bar items.
14
14
  * @internal
15
+ * @deprecated in 4.4.0. This is no longer used internally, left because of an erroneous public dependency that is also deprecated.
15
16
  */
16
17
  export declare class ToolbarItemsManager {
17
18
  protected _items: ReadonlyArray<ToolbarItem>;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItemsManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItemsManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,eAAe,CAAC;AAOvB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAM;gBAEtC,KAAK,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC;IAI9C;;OAEG;IACH,SAAgB,cAAc,iBACrB,uBAAuB,KAAK,IAAI,EACrC;IAEJ,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC;IAIlD,yCAAyC;IACzC,IAAW,KAAK,IAAI,aAAa,CAAC,WAAW,CAAC,CAE7C;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,EAGjD;IAEM,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAkBhE,uCAAuC;IAChC,MAAM,CACX,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAUvE,gBAAgB;IACT,SAAS;IAIhB,OAAO,CAAC,MAAM,CAAC,aAAa;WA6Bd,oBAAoB,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,EAAE;IAM3E,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAyDhC,OAAO,CAAC,4BAA4B;IAsD7B,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;IAajD,OAAO,CAAC,MAAM,CAAC,wCAAwC;IAoBvD,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAwBvC,eAAe,CAAC,MAAM,EAAE,MAAM;CAwBtC"}
1
+ {"version":3,"file":"ToolbarItemsManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItemsManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAGV,WAAW,EACZ,MAAM,eAAe,CAAC;AAOvB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAG9B,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAM;gBAEtC,KAAK,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC;IAI9C;;OAEG;IACH,SAAgB,cAAc,iBACrB,uBAAuB,KAAK,IAAI,EACrC;IAEJ,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC;IAIlD,yCAAyC;IACzC,IAAW,KAAK,IAAI,aAAa,CAAC,WAAW,CAAC,CAE7C;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,EAGjD;IAEM,GAAG,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAkBhE,uCAAuC;IAChC,MAAM,CACX,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAUvE,gBAAgB;IACT,SAAS;IAIhB,OAAO,CAAC,MAAM,CAAC,aAAa;WA6Bd,oBAAoB,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,EAAE;IAM3E,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoDhC,OAAO,CAAC,4BAA4B;IAkD7B,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;IAajD,OAAO,CAAC,MAAM,CAAC,wCAAwC;IAoBvD,OAAO,CAAC,6BAA6B;IAwBrC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAyBvC,eAAe,CAAC,MAAM,EAAE,MAAM;CAyBtC"}
@@ -18,9 +18,12 @@ function isInstance(args) {
18
18
  /**
19
19
  * Controls status bar items.
20
20
  * @internal
21
+ * @deprecated in 4.4.0. This is no longer used internally, left because of an erroneous public dependency that is also deprecated.
21
22
  */
22
23
  class ToolbarItemsManager {
23
24
  constructor(items) {
25
+ // This class should be removed once `useDefaultToolbarItems` and `useUiItemsProviderToolbarItems` (public version) get removed.
26
+ // If you are attempting to fix/clean this class, it is probably an error as it is no longer used and should not be reintroduced, use Hooks instead.
24
27
  this._items = [];
25
28
  /** Event raised when Toolbar items are changed.
26
29
  * @internal
@@ -31,6 +34,7 @@ class ToolbarItemsManager {
31
34
  }
32
35
  loadItemsInternal(items, processConditions, sendItemChanged) {
33
36
  if (processConditions && items) {
37
+ // eslint-disable-next-line deprecation/deprecation
34
38
  const eventIds = ToolbarItemsManager.getSyncIdsOfInterest(items);
35
39
  if (0 !== eventIds.length) {
36
40
  const { itemsUpdated, updatedItems } = this.internalRefreshAffectedItems(items, new Set(eventIds));
@@ -155,7 +159,9 @@ class ToolbarItemsManager {
155
159
  for (const item of items) {
156
160
  let updatedItem = { ...item };
157
161
  if ((0, ToolbarItem_1.isToolbarGroupItem)(updatedItem)) {
158
- const { childrenUpdated, childItems } = ToolbarItemsManager.refreshChildItems(updatedItem, eventIds);
162
+ const { childrenUpdated, childItems } =
163
+ // eslint-disable-next-line deprecation/deprecation
164
+ ToolbarItemsManager.refreshChildItems(updatedItem, eventIds);
159
165
  // istanbul ignore else
160
166
  if (childrenUpdated) {
161
167
  updatedItem = {
@@ -213,7 +219,9 @@ class ToolbarItemsManager {
213
219
  isActiveToolIdRefreshRequired(toolId) {
214
220
  for (const item of this.items) {
215
221
  if ((0, ToolbarItem_1.isToolbarGroupItem)(item)) {
216
- if (ToolbarItemsManager.isActiveToolIdRefreshRequiredForChildren(item.items, toolId))
222
+ if (
223
+ // eslint-disable-next-line deprecation/deprecation
224
+ ToolbarItemsManager.isActiveToolIdRefreshRequiredForChildren(item.items, toolId))
217
225
  return true;
218
226
  }
219
227
  else {
@@ -232,6 +240,7 @@ class ToolbarItemsManager {
232
240
  if ((0, ToolbarItem_1.isToolbarGroupItem)(updatedItem)) {
233
241
  updatedItem = {
234
242
  ...updatedItem,
243
+ // eslint-disable-next-line deprecation/deprecation
235
244
  items: ToolbarItemsManager.refreshActiveToolIdInChildItems(updatedItem, toolId),
236
245
  };
237
246
  }
@@ -250,6 +259,7 @@ class ToolbarItemsManager {
250
259
  if ((0, ToolbarItem_1.isToolbarGroupItem)(updatedItem)) {
251
260
  updatedItem = {
252
261
  ...updatedItem,
262
+ // eslint-disable-next-line deprecation/deprecation
253
263
  items: ToolbarItemsManager.refreshActiveToolIdInChildItems(updatedItem, toolId),
254
264
  };
255
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItemsManager.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItemsManager.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,0DAG+B;AAC/B,kDAAwD;AACxD,sDAA8C;AAM9C,+CAAmD;AAEnD,SAAS,UAAU,CAAI,IAA0B;IAC/C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AASD;;;GAGG;AACH,MAAa,mBAAmB;IAG9B,YAAY,KAAkC;QAFpC,WAAM,GAA+B,EAAE,CAAC;QAMlD;;WAEG;QACa,mBAAc,GAAG,IAAI,sBAAO,EAEzC,CAAC;QARF,IAAI,KAAK;YAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IASO,iBAAiB,CACvB,KAAiC,EACjC,iBAA0B,EAC1B,eAAwB;QAExB,IAAI,iBAAiB,IAAI,KAAK,EAAE;YAC9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE;gBACzB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAClC,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAE9D,uBAAuB;gBACvB,IAAI,YAAY;oBAAE,KAAK,GAAG,YAAY,CAAC;aACxC;SACF;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,eAAe;YAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,KAAiC;QAChD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,yCAAyC;IACzC,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,KAAK,CAAC,KAAiC;QAChD,uBAAuB;QACvB,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAEM,GAAG,CAAC,WAAqD;QAC9D,IAAI,UAAU,CAAC;QACf,IAAI,UAAU,CAAC,WAAW,CAAC;YAAE,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC;aACnD;YACH,UAAU,GAAG,WAAW,CAAC,MAAM,CAC7B,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CACnB,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,CACtE,CAAC;SACH;QACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAC5B,CAAC,SAAS,EAAE,EAAE,CACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,KAAK,SAAS,CACrE,CAAC;QACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,uCAAuC;IAChC,MAAM,CACX,eAAqE;QAErE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,OAAO,UAAU,CAAC,eAAe,CAAC;gBAChC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,eAAe;gBAC7B,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,gBAAgB;IACT,SAAS;QACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,aAAa,CAC1B,QAAqB,EACrB,KAA6B;QAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC5C,IAAI,KAAK,YAAY,wCAAuB,EAAE;oBAC5C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACpC,CAAC;iBACH;qBAAM,IAAI,KAAK,YAAY,uCAAsB,EAAE;oBAClD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACpC,CAAC;iBACH,CAAC,0BAA0B;qBAAM,IAChC,gCAAmB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAChD;oBACA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACpC,CAAC;iBACH;aACF;YACD,uBAAuB;YACvB,IAAI,IAAA,gCAAkB,EAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1C;SACF;IACH,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,KAA6B;QAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAC9B,UAA4B,EAC5B,QAAqB;QAKrB,MAAM,YAAY,GAAgD,EAAE,CAAC;QACrE,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;YACnC,IAAI,WAAW,CAAC;YAChB,IAAI,IAAA,gCAAkB,EAAC,IAAI,CAAC,EAAE;gBAC5B,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBAC1B,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAC5D,WAAW,EACX,QAAQ,CACT,CAAC;gBACF,uBAAuB;gBACvB,IAAI,eAAe,EAAE;oBACnB,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC;oBAC/B,YAAY,GAAG,IAAI,CAAC;iBACrB;aACF;iBAAM;gBACL,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;aAC3B;YAED,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACnD,IAAI,KAAK,YAAY,wCAAuB,EAAE;oBAC5C,uBAAuB;oBACvB,IAAI,wCAAuB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;wBACvD,YAAY,GAAG,IAAI,CAAC;iBACvB,CAAC,0BAA0B;qBAAM,IAChC,KAAK,YAAY,uCAAsB,EACvC;oBACA,uBAAuB;oBACvB,IAAI,uCAAsB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;wBACtD,YAAY,GAAG,IAAI,CAAC;iBACvB,CAAC,0BAA0B;qBAAM,IAChC,gCAAmB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAChD;oBACA,uBAAuB;oBACvB,IACE,gCAAmB,CAAC,YAAY,CAC9B,KAA4B,EAC5B,QAAQ,CACT;wBAED,YAAY,GAAG,IAAI,CAAC;iBACvB;aACF;YAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAChC;QACD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IACrE,CAAC;IAEO,4BAA4B,CAClC,KAA6B,EAC7B,QAAqB;QAErB,uBAAuB;QACvB,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;YAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAE1E,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAA,gCAAkB,EAAC,WAAW,CAAC,EAAE;gBACnC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GACnC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC/D,uBAAuB;gBACvB,IAAI,eAAe,EAAE;oBACnB,WAAW,GAAG;wBACZ,GAAG,WAAW;wBACd,KAAK,EAAE,UAAU;qBAClB,CAAC;oBACF,cAAc,GAAG,IAAI,CAAC;iBACvB;aACF;YAED,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACnD,IAAI,KAAK,YAAY,wCAAuB,EAAE;oBAC5C,uBAAuB;oBACvB,IAAI,wCAAuB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;wBACvD,cAAc,GAAG,IAAI,CAAC;iBACzB;qBAAM,IAAI,KAAK,YAAY,uCAAsB,EAAE;oBAClD,uBAAuB;oBACvB,IAAI,uCAAsB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;wBACtD,cAAc,GAAG,IAAI,CAAC;iBACzB,CAAC,0BAA0B;qBAAM,IAChC,gCAAmB,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAChD;oBACA,uBAAuB;oBACvB,IACE,gCAAmB,CAAC,YAAY,CAC9B,KAA4B,EAC5B,QAAQ,CACT;wBAED,cAAc,GAAG,IAAI,CAAC;iBACzB;aACF;YAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5B;QAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IAClE,CAAC;IAEM,oBAAoB,CAAC,QAAqB;QAC/C,uBAAuB;QACvB,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;YAAE,OAAO;QAEhC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,4BAA4B,CACtE,IAAI,CAAC,KAAK,EACV,QAAQ,CACT,CAAC;QAEF,uBAAuB;QACvB,IAAI,YAAY;YAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAEO,MAAM,CAAC,wCAAwC,CACrD,QAA6D,EAC7D,MAAc;QAEd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,IAAI,IAAA,gCAAkB,EAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;oBACnE,OAAO,IAAI,CAAC;aACf;iBAAM;gBACL,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACjC,IACE,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;oBAChC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;oBAEjC,OAAO,IAAI,CAAC;aACf;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,6BAA6B,CAAC,MAAc;QAClD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,IAAA,gCAAkB,EAAC,IAAI,CAAC,EAAE;gBAC5B,IACE,mBAAmB,CAAC,wCAAwC,CAC1D,IAAI,CAAC,KAAK,EACV,MAAM,CACP;oBAED,OAAO,IAAI,CAAC;aACf;iBAAM;gBACL,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACjC,IACE,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;oBAChC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;oBAEjC,OAAO,IAAI,CAAC;aACf;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,+BAA+B,CAC5C,UAA4B,EAC5B,MAAc;QAEd,MAAM,WAAW,GAAgD,EAAE,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;YACnC,IAAI,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAE9B,IAAI,IAAA,gCAAkB,EAAC,WAAW,CAAC,EAAE;gBACnC,WAAW,GAAG;oBACZ,GAAG,WAAW;oBACd,KAAK,EAAE,mBAAmB,CAAC,+BAA+B,CACxD,WAAW,EACX,MAAM,CACP;iBACF,CAAC;aACH;YAED,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,EAAE,KAAK,MAAM,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/B;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,eAAe,CAAC,MAAc;QACnC,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC;YAAE,OAAO;QAExD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAE9B,IAAI,IAAA,gCAAkB,EAAC,WAAW,CAAC,EAAE;gBACnC,WAAW,GAAG;oBACZ,GAAG,WAAW;oBACd,KAAK,EAAE,mBAAmB,CAAC,+BAA+B,CACxD,WAAW,EACX,MAAM,CACP;iBACF,CAAC;aACH;YAED,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,EAAE,KAAK,MAAM,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5B;QAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;CACF;AAhVD,kDAgVC","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 {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalIconItem } from \"@itwin/core-react\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport type {\n ToolbarActionItem,\n ToolbarGroupItem,\n ToolbarItem,\n} from \"./ToolbarItem\";\nimport { isToolbarGroupItem } from \"./ToolbarItem\";\n\nfunction isInstance<T>(args: T | ReadonlyArray<T>): args is T {\n return !Array.isArray(args);\n}\n\n/** Arguments of [[ToolbarItemsManager.onChanged]] event.\n * @internal\n */\nexport interface ToolbarItemsChangedArgs {\n readonly items: ReadonlyArray<ToolbarItem>;\n}\n\n/**\n * Controls status bar items.\n * @internal\n */\nexport class ToolbarItemsManager {\n protected _items: ReadonlyArray<ToolbarItem> = [];\n\n constructor(items?: ReadonlyArray<ToolbarItem>) {\n if (items) this.loadItemsInternal(items, true, false);\n }\n\n /** Event raised when Toolbar items are changed.\n * @internal\n */\n public readonly onItemsChanged = new BeEvent<\n (args: ToolbarItemsChangedArgs) => void\n >();\n\n private loadItemsInternal(\n items: ReadonlyArray<ToolbarItem>,\n processConditions: boolean,\n sendItemChanged: boolean\n ) {\n if (processConditions && items) {\n const eventIds = ToolbarItemsManager.getSyncIdsOfInterest(items);\n if (0 !== eventIds.length) {\n const { itemsUpdated, updatedItems } =\n this.internalRefreshAffectedItems(items, new Set(eventIds));\n\n // istanbul ignore else\n if (itemsUpdated) items = updatedItems;\n }\n }\n\n this._items = items;\n if (sendItemChanged) this.onItemsChanged.raiseEvent({ items });\n }\n\n /** load items but do not fire onItemsChanged\n * @internal\n */\n public loadItems(items: ReadonlyArray<ToolbarItem>) {\n this.loadItemsInternal(items, true, false);\n }\n\n /** Get an array of the Toolbar items */\n public get items(): ReadonlyArray<ToolbarItem> {\n return this._items;\n }\n\n public set items(items: ReadonlyArray<ToolbarItem>) {\n // istanbul ignore else\n if (items !== this._items) this.loadItemsInternal(items, true, true);\n }\n\n public add(itemOrItems: ToolbarItem | ReadonlyArray<ToolbarItem>) {\n let itemsToAdd;\n if (isInstance(itemOrItems)) itemsToAdd = [itemOrItems];\n else {\n itemsToAdd = itemOrItems.filter(\n (itemToAdd, index) =>\n itemOrItems.findIndex((item) => item.id === itemToAdd.id) === index\n );\n }\n itemsToAdd = itemsToAdd.filter(\n (itemToAdd) =>\n this._items.find((item) => item.id === itemToAdd.id) === undefined\n );\n if (itemsToAdd.length === 0) return;\n const items = [...this._items, ...itemsToAdd];\n this.items = items;\n }\n\n /** Remove Toolbar items based on id */\n public remove(\n itemIdOrItemIds: ToolbarItem[\"id\"] | ReadonlyArray<ToolbarItem[\"id\"]>\n ) {\n const items = this._items.filter((item) => {\n return isInstance(itemIdOrItemIds)\n ? item.id !== itemIdOrItemIds\n : !itemIdOrItemIds.find((itemId) => itemId === item.id);\n });\n this.items = items;\n }\n\n /** @internal */\n public removeAll() {\n this._items = [];\n }\n\n private static gatherSyncIds(\n eventIds: Set<string>,\n items: readonly ToolbarItem[]\n ) {\n for (const item of items) {\n for (const [, entry] of Object.entries(item)) {\n if (entry instanceof ConditionalBooleanValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n } else if (entry instanceof ConditionalStringValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n } /* istanbul ignore else */ else if (\n ConditionalIconItem.isConditionalIconItem(entry)\n ) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n }\n }\n // istanbul ignore else\n if (isToolbarGroupItem(item)) {\n this.gatherSyncIds(eventIds, item.items);\n }\n }\n }\n\n public static getSyncIdsOfInterest(items: readonly ToolbarItem[]): string[] {\n const eventIds = new Set<string>();\n this.gatherSyncIds(eventIds, items);\n return [...eventIds.values()];\n }\n\n private static refreshChildItems(\n parentItem: ToolbarGroupItem,\n eventIds: Set<string>\n ): {\n childrenUpdated: boolean;\n childItems: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>;\n } {\n const updatedItems: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n let itemsUpdated = false;\n\n for (const item of parentItem.items) {\n let updatedItem;\n if (isToolbarGroupItem(item)) {\n updatedItem = { ...item };\n const { childrenUpdated, childItems } = this.refreshChildItems(\n updatedItem,\n eventIds\n );\n // istanbul ignore else\n if (childrenUpdated) {\n updatedItem.items = childItems;\n itemsUpdated = true;\n }\n } else {\n updatedItem = { ...item };\n }\n\n for (const [, entry] of Object.entries(updatedItem)) {\n if (entry instanceof ConditionalBooleanValue) {\n // istanbul ignore else\n if (ConditionalBooleanValue.refreshValue(entry, eventIds))\n itemsUpdated = true;\n } /* istanbul ignore else */ else if (\n entry instanceof ConditionalStringValue\n ) {\n // istanbul ignore else\n if (ConditionalStringValue.refreshValue(entry, eventIds))\n itemsUpdated = true;\n } /* istanbul ignore else */ else if (\n ConditionalIconItem.isConditionalIconItem(entry)\n ) {\n // istanbul ignore else\n if (\n ConditionalIconItem.refreshValue(\n entry as ConditionalIconItem,\n eventIds\n )\n )\n itemsUpdated = true;\n }\n }\n\n updatedItems.push(updatedItem);\n }\n return { childrenUpdated: itemsUpdated, childItems: updatedItems };\n }\n\n private internalRefreshAffectedItems(\n items: readonly ToolbarItem[],\n eventIds: Set<string>\n ): { itemsUpdated: boolean; updatedItems: ToolbarItem[] } {\n // istanbul ignore next\n if (0 === eventIds.size) return { itemsUpdated: false, updatedItems: [] };\n\n let updateRequired = false;\n\n const newItems: ToolbarItem[] = [];\n for (const item of items) {\n let updatedItem = { ...item };\n if (isToolbarGroupItem(updatedItem)) {\n const { childrenUpdated, childItems } =\n ToolbarItemsManager.refreshChildItems(updatedItem, eventIds);\n // istanbul ignore else\n if (childrenUpdated) {\n updatedItem = {\n ...updatedItem,\n items: childItems,\n };\n updateRequired = true;\n }\n }\n\n for (const [, entry] of Object.entries(updatedItem)) {\n if (entry instanceof ConditionalBooleanValue) {\n // istanbul ignore else\n if (ConditionalBooleanValue.refreshValue(entry, eventIds))\n updateRequired = true;\n } else if (entry instanceof ConditionalStringValue) {\n // istanbul ignore else\n if (ConditionalStringValue.refreshValue(entry, eventIds))\n updateRequired = true;\n } /* istanbul ignore else */ else if (\n ConditionalIconItem.isConditionalIconItem(entry)\n ) {\n // istanbul ignore else\n if (\n ConditionalIconItem.refreshValue(\n entry as ConditionalIconItem,\n eventIds\n )\n )\n updateRequired = true;\n }\n }\n\n newItems.push(updatedItem);\n }\n\n return { itemsUpdated: updateRequired, updatedItems: newItems };\n }\n\n public refreshAffectedItems(eventIds: Set<string>) {\n // istanbul ignore next\n if (0 === eventIds.size) return;\n\n const { itemsUpdated, updatedItems } = this.internalRefreshAffectedItems(\n this.items,\n eventIds\n );\n\n // istanbul ignore else\n if (itemsUpdated) this.loadItemsInternal(updatedItems, false, true);\n }\n\n private static isActiveToolIdRefreshRequiredForChildren(\n children: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>,\n toolId: string\n ): boolean {\n for (const item of children) {\n if (isToolbarGroupItem(item)) {\n if (this.isActiveToolIdRefreshRequiredForChildren(item.items, toolId))\n return true;\n } else {\n const isActive = !!item.isActive;\n if (\n (isActive && item.id !== toolId) ||\n (!isActive && item.id === toolId)\n )\n return true;\n }\n }\n return false;\n }\n\n private isActiveToolIdRefreshRequired(toolId: string): boolean {\n for (const item of this.items) {\n if (isToolbarGroupItem(item)) {\n if (\n ToolbarItemsManager.isActiveToolIdRefreshRequiredForChildren(\n item.items,\n toolId\n )\n )\n return true;\n } else {\n const isActive = !!item.isActive;\n if (\n (isActive && item.id !== toolId) ||\n (!isActive && item.id === toolId)\n )\n return true;\n }\n }\n\n return false;\n }\n\n private static refreshActiveToolIdInChildItems(\n parentItem: ToolbarGroupItem,\n toolId: string\n ): Array<ToolbarActionItem | ToolbarGroupItem> {\n const newChildren: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n for (const item of parentItem.items) {\n let updatedItem = { ...item };\n\n if (isToolbarGroupItem(updatedItem)) {\n updatedItem = {\n ...updatedItem,\n items: ToolbarItemsManager.refreshActiveToolIdInChildItems(\n updatedItem,\n toolId\n ),\n };\n }\n\n updatedItem.isActive = updatedItem.id === toolId;\n newChildren.push(updatedItem);\n }\n return newChildren;\n }\n\n public setActiveToolId(toolId: string) {\n // first see if any updates are really necessary\n if (!this.isActiveToolIdRefreshRequired(toolId)) return;\n\n const newItems: ToolbarItem[] = [];\n for (const item of this.items) {\n let updatedItem = { ...item };\n\n if (isToolbarGroupItem(updatedItem)) {\n updatedItem = {\n ...updatedItem,\n items: ToolbarItemsManager.refreshActiveToolIdInChildItems(\n updatedItem,\n toolId\n ),\n };\n }\n\n updatedItem.isActive = updatedItem.id === toolId;\n newItems.push(updatedItem);\n }\n\n this.items = newItems;\n }\n}\n"]}
1
+ {"version":3,"file":"ToolbarItemsManager.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItemsManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalIconItem } from \"@itwin/core-react\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport type {\n ToolbarActionItem,\n ToolbarGroupItem,\n ToolbarItem,\n} from \"./ToolbarItem\";\nimport { isToolbarGroupItem } from \"./ToolbarItem\";\n\nfunction isInstance<T>(args: T | ReadonlyArray<T>): args is T {\n return !Array.isArray(args);\n}\n\n/** Arguments of [[ToolbarItemsManager.onChanged]] event.\n * @internal\n */\nexport interface ToolbarItemsChangedArgs {\n readonly items: ReadonlyArray<ToolbarItem>;\n}\n\n/**\n * Controls status bar items.\n * @internal\n * @deprecated in 4.4.0. This is no longer used internally, left because of an erroneous public dependency that is also deprecated.\n */\nexport class ToolbarItemsManager {\n // This class should be removed once `useDefaultToolbarItems` and `useUiItemsProviderToolbarItems` (public version) get removed.\n // If you are attempting to fix/clean this class, it is probably an error as it is no longer used and should not be reintroduced, use Hooks instead.\n protected _items: ReadonlyArray<ToolbarItem> = [];\n\n constructor(items?: ReadonlyArray<ToolbarItem>) {\n if (items) this.loadItemsInternal(items, true, false);\n }\n\n /** Event raised when Toolbar items are changed.\n * @internal\n */\n public readonly onItemsChanged = new BeEvent<\n (args: ToolbarItemsChangedArgs) => void\n >();\n\n private loadItemsInternal(\n items: ReadonlyArray<ToolbarItem>,\n processConditions: boolean,\n sendItemChanged: boolean\n ) {\n if (processConditions && items) {\n // eslint-disable-next-line deprecation/deprecation\n const eventIds = ToolbarItemsManager.getSyncIdsOfInterest(items);\n if (0 !== eventIds.length) {\n const { itemsUpdated, updatedItems } =\n this.internalRefreshAffectedItems(items, new Set(eventIds));\n\n // istanbul ignore else\n if (itemsUpdated) items = updatedItems;\n }\n }\n\n this._items = items;\n if (sendItemChanged) this.onItemsChanged.raiseEvent({ items });\n }\n\n /** load items but do not fire onItemsChanged\n * @internal\n */\n public loadItems(items: ReadonlyArray<ToolbarItem>) {\n this.loadItemsInternal(items, true, false);\n }\n\n /** Get an array of the Toolbar items */\n public get items(): ReadonlyArray<ToolbarItem> {\n return this._items;\n }\n\n public set items(items: ReadonlyArray<ToolbarItem>) {\n // istanbul ignore else\n if (items !== this._items) this.loadItemsInternal(items, true, true);\n }\n\n public add(itemOrItems: ToolbarItem | ReadonlyArray<ToolbarItem>) {\n let itemsToAdd;\n if (isInstance(itemOrItems)) itemsToAdd = [itemOrItems];\n else {\n itemsToAdd = itemOrItems.filter(\n (itemToAdd, index) =>\n itemOrItems.findIndex((item) => item.id === itemToAdd.id) === index\n );\n }\n itemsToAdd = itemsToAdd.filter(\n (itemToAdd) =>\n this._items.find((item) => item.id === itemToAdd.id) === undefined\n );\n if (itemsToAdd.length === 0) return;\n const items = [...this._items, ...itemsToAdd];\n this.items = items;\n }\n\n /** Remove Toolbar items based on id */\n public remove(\n itemIdOrItemIds: ToolbarItem[\"id\"] | ReadonlyArray<ToolbarItem[\"id\"]>\n ) {\n const items = this._items.filter((item) => {\n return isInstance(itemIdOrItemIds)\n ? item.id !== itemIdOrItemIds\n : !itemIdOrItemIds.find((itemId) => itemId === item.id);\n });\n this.items = items;\n }\n\n /** @internal */\n public removeAll() {\n this._items = [];\n }\n\n private static gatherSyncIds(\n eventIds: Set<string>,\n items: readonly ToolbarItem[]\n ) {\n for (const item of items) {\n for (const [, entry] of Object.entries(item)) {\n if (entry instanceof ConditionalBooleanValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n } else if (entry instanceof ConditionalStringValue) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n } /* istanbul ignore else */ else if (\n ConditionalIconItem.isConditionalIconItem(entry)\n ) {\n entry.syncEventIds.forEach((eventId: string) =>\n eventIds.add(eventId.toLowerCase())\n );\n }\n }\n // istanbul ignore else\n if (isToolbarGroupItem(item)) {\n this.gatherSyncIds(eventIds, item.items);\n }\n }\n }\n\n public static getSyncIdsOfInterest(items: readonly ToolbarItem[]): string[] {\n const eventIds = new Set<string>();\n this.gatherSyncIds(eventIds, items);\n return [...eventIds.values()];\n }\n\n private static refreshChildItems(\n parentItem: ToolbarGroupItem,\n eventIds: Set<string>\n ): {\n childrenUpdated: boolean;\n childItems: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>;\n } {\n const updatedItems: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n let itemsUpdated = false;\n\n for (const item of parentItem.items) {\n let updatedItem;\n if (isToolbarGroupItem(item)) {\n updatedItem = { ...item };\n const { childrenUpdated, childItems } = this.refreshChildItems(\n updatedItem,\n eventIds\n );\n // istanbul ignore else\n if (childrenUpdated) {\n updatedItem.items = childItems;\n itemsUpdated = true;\n }\n } else {\n updatedItem = { ...item };\n }\n\n for (const [, entry] of Object.entries(updatedItem)) {\n if (entry instanceof ConditionalBooleanValue) {\n // istanbul ignore else\n if (ConditionalBooleanValue.refreshValue(entry, eventIds))\n itemsUpdated = true;\n } /* istanbul ignore else */ else if (\n entry instanceof ConditionalStringValue\n ) {\n // istanbul ignore else\n if (ConditionalStringValue.refreshValue(entry, eventIds))\n itemsUpdated = true;\n } /* istanbul ignore else */ else if (\n ConditionalIconItem.isConditionalIconItem(entry)\n ) {\n // istanbul ignore else\n if (ConditionalIconItem.refreshValue(entry, eventIds))\n itemsUpdated = true;\n }\n }\n\n updatedItems.push(updatedItem);\n }\n return { childrenUpdated: itemsUpdated, childItems: updatedItems };\n }\n\n private internalRefreshAffectedItems(\n items: readonly ToolbarItem[],\n eventIds: Set<string>\n ): { itemsUpdated: boolean; updatedItems: ToolbarItem[] } {\n // istanbul ignore next\n if (0 === eventIds.size) return { itemsUpdated: false, updatedItems: [] };\n\n let updateRequired = false;\n\n const newItems: ToolbarItem[] = [];\n for (const item of items) {\n let updatedItem = { ...item };\n if (isToolbarGroupItem(updatedItem)) {\n const { childrenUpdated, childItems } =\n // eslint-disable-next-line deprecation/deprecation\n ToolbarItemsManager.refreshChildItems(updatedItem, eventIds);\n // istanbul ignore else\n if (childrenUpdated) {\n updatedItem = {\n ...updatedItem,\n items: childItems,\n };\n updateRequired = true;\n }\n }\n\n for (const [, entry] of Object.entries(updatedItem)) {\n if (entry instanceof ConditionalBooleanValue) {\n // istanbul ignore else\n if (ConditionalBooleanValue.refreshValue(entry, eventIds))\n updateRequired = true;\n } else if (entry instanceof ConditionalStringValue) {\n // istanbul ignore else\n if (ConditionalStringValue.refreshValue(entry, eventIds))\n updateRequired = true;\n } /* istanbul ignore else */ else if (\n ConditionalIconItem.isConditionalIconItem(entry)\n ) {\n // istanbul ignore else\n if (ConditionalIconItem.refreshValue(entry, eventIds))\n updateRequired = true;\n }\n }\n\n newItems.push(updatedItem);\n }\n\n return { itemsUpdated: updateRequired, updatedItems: newItems };\n }\n\n public refreshAffectedItems(eventIds: Set<string>) {\n // istanbul ignore next\n if (0 === eventIds.size) return;\n\n const { itemsUpdated, updatedItems } = this.internalRefreshAffectedItems(\n this.items,\n eventIds\n );\n\n // istanbul ignore else\n if (itemsUpdated) this.loadItemsInternal(updatedItems, false, true);\n }\n\n private static isActiveToolIdRefreshRequiredForChildren(\n children: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>,\n toolId: string\n ): boolean {\n for (const item of children) {\n if (isToolbarGroupItem(item)) {\n if (this.isActiveToolIdRefreshRequiredForChildren(item.items, toolId))\n return true;\n } else {\n const isActive = !!item.isActive;\n if (\n (isActive && item.id !== toolId) ||\n (!isActive && item.id === toolId)\n )\n return true;\n }\n }\n return false;\n }\n\n private isActiveToolIdRefreshRequired(toolId: string): boolean {\n for (const item of this.items) {\n if (isToolbarGroupItem(item)) {\n if (\n // eslint-disable-next-line deprecation/deprecation\n ToolbarItemsManager.isActiveToolIdRefreshRequiredForChildren(\n item.items,\n toolId\n )\n )\n return true;\n } else {\n const isActive = !!item.isActive;\n if (\n (isActive && item.id !== toolId) ||\n (!isActive && item.id === toolId)\n )\n return true;\n }\n }\n\n return false;\n }\n\n private static refreshActiveToolIdInChildItems(\n parentItem: ToolbarGroupItem,\n toolId: string\n ): Array<ToolbarActionItem | ToolbarGroupItem> {\n const newChildren: Array<ToolbarActionItem | ToolbarGroupItem> = [];\n for (const item of parentItem.items) {\n let updatedItem = { ...item };\n\n if (isToolbarGroupItem(updatedItem)) {\n updatedItem = {\n ...updatedItem,\n // eslint-disable-next-line deprecation/deprecation\n items: ToolbarItemsManager.refreshActiveToolIdInChildItems(\n updatedItem,\n toolId\n ),\n };\n }\n\n updatedItem.isActive = updatedItem.id === toolId;\n newChildren.push(updatedItem);\n }\n return newChildren;\n }\n\n public setActiveToolId(toolId: string) {\n // first see if any updates are really necessary\n if (!this.isActiveToolIdRefreshRequired(toolId)) return;\n\n const newItems: ToolbarItem[] = [];\n for (const item of this.items) {\n let updatedItem = { ...item };\n\n if (isToolbarGroupItem(updatedItem)) {\n updatedItem = {\n ...updatedItem,\n // eslint-disable-next-line deprecation/deprecation\n items: ToolbarItemsManager.refreshActiveToolIdInChildItems(\n updatedItem,\n toolId\n ),\n };\n }\n\n updatedItem.isActive = updatedItem.id === toolId;\n newItems.push(updatedItem);\n }\n\n this.items = newItems;\n }\n}\n"]}
@@ -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;