@itwin/appui-react 3.0.0-dev.147 → 3.0.0-dev.152

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 (251) hide show
  1. package/lib/cjs/appui-react/UiFramework.d.ts +2 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  3. package/lib/cjs/appui-react/UiFramework.js +2 -2
  4. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  5. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  7. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  9. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  10. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +1 -1
  11. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  12. package/lib/cjs/appui-react/content/ContentControl.d.ts +1 -1
  13. package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/content/ContentControl.js +2 -2
  15. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  16. package/lib/cjs/appui-react/content/ContentLayout.d.ts +2 -2
  17. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/content/ContentLayout.js +4 -3
  19. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  20. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +1 -1
  21. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/content/ContentViewManager.js +3 -3
  23. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  24. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts +21 -0
  25. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  26. package/lib/cjs/appui-react/content/split-pane/Pane.js +43 -0
  27. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -0
  28. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts +23 -0
  29. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  30. package/lib/cjs/appui-react/content/split-pane/Resizer.js +39 -0
  31. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -0
  32. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  33. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  34. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +243 -0
  35. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -0
  36. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +1 -2
  37. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/cursor/CursorInformation.js +1 -1
  39. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  40. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  42. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  43. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  44. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +3 -3
  45. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  46. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  47. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  48. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -2
  49. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  50. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +2 -2
  51. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  52. package/lib/cjs/appui-react/feedback/ElementTooltip.js +2 -1
  53. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  54. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/Frontstage.js +2 -0
  56. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  57. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  58. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  59. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  61. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  63. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  64. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  65. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  66. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  67. package/lib/cjs/appui-react/messages/MessageManager.d.ts +1 -2
  68. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/messages/MessageManager.js +8 -8
  70. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  71. package/lib/cjs/appui-react/messages/Pointer.d.ts +2 -2
  72. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  73. package/lib/cjs/appui-react/messages/Pointer.js +2 -2
  74. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  75. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  76. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +2 -2
  78. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  79. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  80. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  82. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  83. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  84. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -3
  86. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  87. package/lib/cjs/appui-react/popup/PopupManager.d.ts +2 -2
  88. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/popup/PopupManager.js +1 -1
  90. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  91. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  92. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  93. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
  94. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  95. package/lib/cjs/appui-react/syncui/BooleanListener.js +2 -1
  96. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  97. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -16
  98. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +28 -101
  100. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  101. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  102. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  103. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  104. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  105. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  106. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/toolbar/Toolbar.js +1 -1
  108. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  109. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  110. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  111. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  112. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  113. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  114. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -2
  115. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -2
  117. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  118. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  119. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +3 -2
  121. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  122. package/lib/cjs/appui-react.d.ts +3 -2
  123. package/lib/cjs/appui-react.d.ts.map +1 -1
  124. package/lib/cjs/appui-react.js +3 -2
  125. package/lib/cjs/appui-react.js.map +1 -1
  126. package/lib/esm/appui-react/UiFramework.d.ts +2 -1
  127. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  128. package/lib/esm/appui-react/UiFramework.js +2 -2
  129. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  130. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  131. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  132. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts.map +1 -1
  133. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  134. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +1 -1
  135. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +1 -1
  136. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  137. package/lib/esm/appui-react/content/ContentControl.d.ts +1 -1
  138. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  139. package/lib/esm/appui-react/content/ContentControl.js +1 -1
  140. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  141. package/lib/esm/appui-react/content/ContentLayout.d.ts +2 -2
  142. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  143. package/lib/esm/appui-react/content/ContentLayout.js +3 -2
  144. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  145. package/lib/esm/appui-react/content/ContentViewManager.d.ts +1 -1
  146. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  147. package/lib/esm/appui-react/content/ContentViewManager.js +1 -1
  148. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  149. package/lib/esm/appui-react/content/split-pane/Pane.d.ts +21 -0
  150. package/lib/esm/appui-react/content/split-pane/Pane.d.ts.map +1 -0
  151. package/lib/esm/appui-react/content/split-pane/Pane.js +39 -0
  152. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -0
  153. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +23 -0
  154. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts.map +1 -0
  155. package/lib/esm/appui-react/content/split-pane/Resizer.js +35 -0
  156. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -0
  157. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +70 -0
  158. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts.map +1 -0
  159. package/lib/esm/appui-react/content/split-pane/SplitPane.js +239 -0
  160. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -0
  161. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +1 -2
  162. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  163. package/lib/esm/appui-react/cursor/CursorInformation.js +2 -2
  164. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  165. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  166. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  167. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +2 -2
  168. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  169. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +2 -2
  170. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  171. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +1 -1
  172. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
  173. package/lib/esm/appui-react/dialog/DialogManagerBase.js +1 -1
  174. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  175. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +2 -2
  176. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  177. package/lib/esm/appui-react/feedback/ElementTooltip.js +2 -1
  178. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  179. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  180. package/lib/esm/appui-react/frontstage/Frontstage.js +2 -0
  181. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  182. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  183. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  184. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  185. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  186. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  187. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  188. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +2 -1
  189. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  190. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +2 -2
  191. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  192. package/lib/esm/appui-react/messages/MessageManager.d.ts +1 -2
  193. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  194. package/lib/esm/appui-react/messages/MessageManager.js +2 -2
  195. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  196. package/lib/esm/appui-react/messages/Pointer.d.ts +2 -2
  197. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  198. package/lib/esm/appui-react/messages/Pointer.js +2 -2
  199. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  200. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +1 -1
  201. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts.map +1 -1
  202. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +1 -1
  203. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  204. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +2 -1
  205. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  206. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -1
  207. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  208. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  209. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  210. package/lib/esm/appui-react/pickers/ViewSelector.js +1 -1
  211. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  212. package/lib/esm/appui-react/popup/PopupManager.d.ts +2 -2
  213. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  214. package/lib/esm/appui-react/popup/PopupManager.js +2 -2
  215. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  216. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  217. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  218. package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
  219. package/lib/esm/appui-react/syncui/BooleanListener.d.ts.map +1 -1
  220. package/lib/esm/appui-react/syncui/BooleanListener.js +2 -1
  221. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  222. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +6 -16
  223. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  224. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +27 -99
  225. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  226. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  227. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  228. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  229. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  230. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  231. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  232. package/lib/esm/appui-react/toolbar/Toolbar.js +1 -1
  233. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  234. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  235. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  236. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  237. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  238. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  239. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -2
  240. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  241. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -2
  242. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  243. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +1 -2
  244. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  245. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +2 -1
  246. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  247. package/lib/esm/appui-react.d.ts +3 -2
  248. package/lib/esm/appui-react.d.ts.map +1 -1
  249. package/lib/esm/appui-react.js +3 -2
  250. package/lib/esm/appui-react.js.map +1 -1
  251. package/package.json +34 -35
@@ -1 +1 @@
1
- {"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/Frontstage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { StagePanelLocation, UiItemProviderRegisteredEventArgs, UiItemsManager, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle } from \"@itwin/core-react\";\r\nimport {\r\n HorizontalAnchor, Zones as NZ_Zones, StagePanels, StagePanelsManager, ToolSettingsWidgetMode, WidgetZoneId, widgetZoneIds, ZoneManagerProps,\r\n ZonesManagerProps,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayout } from \"../content/ContentLayout\";\r\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\r\nimport { getNestedStagePanelKey, StagePanelProps, StagePanelRuntimeProps } from \"../stagepanels/StagePanel\";\r\nimport { StagePanelDef } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework, UiVisibilityEventArgs } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ToolSettingsContent } from \"../widgets/ToolSettingsContent\";\r\nimport { WidgetDef, WidgetStateChangedEventArgs } from \"../widgets/WidgetDef\";\r\nimport { WidgetsChangedEventArgs } from \"../widgets/WidgetManager\";\r\nimport { isToolSettingsWidgetManagerProps, Zone, ZoneLocation, ZoneProps, ZoneRuntimeProps } from \"../zones/Zone\";\r\nimport { ZoneDef } from \"../zones/ZoneDef\";\r\nimport { FrontstageRuntimeProps, ZoneDefProvider } from \"./FrontstageComposer\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager } from \"./FrontstageManager\";\r\n\r\n/** Properties for a [[Frontstage]] component.\r\n * @public\r\n */\r\nexport interface FrontstageProps extends CommonProps {\r\n /** Id for the Frontstage */\r\n id: string;\r\n /** Tool that is started once the Frontstage is activated */\r\n defaultTool: ToolItemDef;\r\n /** The Content Group providing the Content Views */\r\n contentGroup: ContentGroup | ContentGroupProvider;\r\n /** Id of the Content View to be activated initially */\r\n defaultContentId?: string;\r\n /** Indicated whether the StatusBar is in footer mode or widget mode. Defaults to true. */\r\n isInFooterMode?: boolean; // Default - true\r\n /** Any application data to attach to this Frontstage. */\r\n applicationData?: any;\r\n /** Usage type for this Frontstage. */\r\n usage?: string;\r\n /** Frontstage version. Used to force saved layout reinitialization after changes to frontstage.\r\n * @note This value should be increased when changes are made to Frontstage.\r\n * Increasing the value will make sure to reinitialize App layout instead of restoring to old layout.\r\n * Version increase is required when widgets are added/removed.\r\n */\r\n version?: number;\r\n /** if isIModelIndependent then frontstage is independent from any iModel. */\r\n isIModelIndependent?: boolean;\r\n /** The Zone in the top-left corner.\r\n * @deprecated Use 'contentManipulationTools' property. */\r\n topLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the top-center edge.\r\n * @deprecated Use 'toolSettings' property. */\r\n topCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner.\r\n * @deprecated Use 'viewNavigationTools' property. */\r\n topRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-left edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-right edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-left corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the bottom-center edge.\r\n * @deprecated use statusBar property */\r\n bottomCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-right corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomRight?: React.ReactElement<ZoneProps>;\r\n\r\n /** The Zone in the top-left corner that shows tools typically used to query and modify content. To be used in place of deprecated topLeft zone definition. */\r\n contentManipulationTools?: React.ReactElement<ZoneProps>;\r\n /** The Zone the that shows settings for the active tool. To be used in place of deprecated topCenter zone definition. */\r\n toolSettings?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner that shows view navigation tools. To be used in place of deprecated topRight zone definition */\r\n viewNavigationTools?: React.ReactElement<ZoneProps>;\r\n /** The status bar Zone shown as the application footer. To be used in place of deprecated bottomCenter zone definition. */\r\n statusBar?: React.ReactElement<ZoneProps>;\r\n\r\n /** The StagePanel on the top of the AppUi container. */\r\n topPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very top across the full width.\r\n * @deprecated Only topPanel is supported in UI 2.0 */\r\n topMostPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the left. */\r\n leftPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the right. */\r\n rightPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the bottom of the AppUi container. */\r\n bottomPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very bottom across the full width.\r\n * @deprecated Only bottomPanel is supported in UI 2.0 */\r\n bottomMostPanel?: React.ReactElement<StagePanelProps>;\r\n\r\n /** @internal */\r\n runtimeProps?: FrontstageRuntimeProps;\r\n}\r\n\r\ninterface FrontstageState {\r\n isUiVisible: boolean;\r\n widgetIdToContent: Partial<{ [id in WidgetZoneId]: HTMLDivElement | undefined }>; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Frontstage React component.\r\n * A Frontstage is a full-screen configuration designed to enable the user to accomplish a task.\r\n * @public\r\n */\r\nexport class Frontstage extends React.Component<FrontstageProps, FrontstageState> {\r\n private _isMounted = false;\r\n private static _zoneIds: ReadonlyArray<WidgetZoneId> = widgetZoneIds.filter((z) => z !== 8); // eslint-disable-line deprecation/deprecation\r\n private _contentRefs = new Map<WidgetZoneId, React.Ref<HTMLDivElement>>(); // eslint-disable-line deprecation/deprecation\r\n private _zonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _floatingZonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _zonesStyle: React.CSSProperties = {\r\n pointerEvents: \"none\",\r\n };\r\n private _zonesFooterModeStyle: React.CSSProperties = {\r\n ...this._zonesStyle,\r\n display: \"flex\",\r\n flexFlow: \"column\",\r\n };\r\n\r\n /** @internal */\r\n constructor(props: FrontstageProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isUiVisible: UiFramework.getIsUiVisible(),\r\n widgetIdToContent: {},\r\n };\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n UiFramework.onUiVisibilityChanged.addListener(this._uiVisibilityChanged);\r\n UiFramework.widgetManager.onWidgetsChanged.addListener(this._handleWidgetsChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.addListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n public override componentDidUpdate() {\r\n if (!this._zonesMeasurer.current || !this._floatingZonesMeasurer.current || !this.props.runtimeProps)\r\n return;\r\n let floatingBounds = Rectangle.create(this._floatingZonesMeasurer.current.getBoundingClientRect());\r\n const bounds = Rectangle.create(this._zonesMeasurer.current.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleZonesBoundsChange(bounds);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n UiFramework.onUiVisibilityChanged.removeListener(this._uiVisibilityChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.removeListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n private _uiVisibilityChanged = (args: UiVisibilityEventArgs): void => {\r\n if (this._isMounted)\r\n this.setState({ isUiVisible: args.visible });\r\n };\r\n\r\n private _handleWidgetsChanged = (_args: WidgetsChangedEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private _handleUiProviderRegisteredEvent = (_args: UiItemProviderRegisteredEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private updateWidgetDefs() {\r\n // istanbul ignore else\r\n if (!this.props.runtimeProps)\r\n return;\r\n\r\n // istanbul ignore next\r\n {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n frontstageDef.updateWidgetDefs();\r\n FrontstageManager.onWidgetDefsUpdatedEvent.emit();\r\n if (this._isMounted)\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static createZoneDef(zoneNode: React.ReactElement<ZoneProps> | undefined, zoneLocation: ZoneLocation, props: FrontstageProps): ZoneDef | undefined {\r\n if (zoneNode) {\r\n const zoneDef = new ZoneDef();\r\n const zoneElement = Frontstage.getZoneElement(zoneLocation, props);\r\n\r\n zoneDef.zoneLocation = zoneLocation;\r\n\r\n // istanbul ignore else\r\n if (zoneElement && React.isValidElement(zoneElement)) {\r\n Zone.initializeZoneDef(zoneDef, zoneElement.props);\r\n return zoneDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static getZoneElement(zoneId: WidgetZoneId, props: FrontstageProps): React.ReactElement<ZoneProps> | undefined { // eslint-disable-line deprecation/deprecation\r\n switch (zoneId) {\r\n case ZoneLocation.TopLeft:\r\n return props.contentManipulationTools ? props.contentManipulationTools : props.topLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopCenter:\r\n return props.toolSettings ? props.toolSettings : props.topCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopRight:\r\n return props.viewNavigationTools ? /* istanbul ignore next */ props.viewNavigationTools : props.topRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterLeft:\r\n return props.centerLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterRight:\r\n return props.centerRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomLeft:\r\n return props.bottomLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomCenter:\r\n return props.statusBar ? props.statusBar : props.bottomCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomRight:\r\n return props.bottomRight; // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n // Zones can be undefined in a Frontstage\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n /** @internal */\r\n public static createStagePanelDef(panelLocation: StagePanelLocation, props: FrontstageProps): StagePanelDef | undefined {\r\n const panelDef = new StagePanelDef();\r\n\r\n const panelElement = Frontstage.getStagePanelElement(panelLocation, props);\r\n panelDef.initializeFromProps(panelElement?.props, panelLocation);\r\n\r\n return panelDef;\r\n }\r\n\r\n private static getStagePanelElement(location: StagePanelLocation, props: FrontstageProps): React.ReactElement<StagePanelProps> | undefined {\r\n let panelElement: React.ReactElement<StagePanelProps> | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelElement = props.topPanel;\r\n break;\r\n case StagePanelLocation.TopMost:\r\n panelElement = props.topMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n case StagePanelLocation.Left:\r\n panelElement = props.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelElement = props.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelElement = props.bottomPanel;\r\n break;\r\n case StagePanelLocation.BottomMost:\r\n panelElement = props.bottomMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelElement;\r\n }\r\n\r\n private _getContentRef = (widget: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const ref = this._contentRefs.get(widget);\r\n if (ref)\r\n return ref;\r\n const newRef = (el: HTMLDivElement | null) => {\r\n if (this._isMounted) {\r\n this.setState((prevState) => ({\r\n widgetIdToContent: {\r\n ...prevState.widgetIdToContent,\r\n [widget]: el === null ? undefined : el,\r\n },\r\n }));\r\n }\r\n };\r\n this._contentRefs.set(widget, newRef);\r\n return newRef;\r\n };\r\n\r\n // This uses ConfigurableUi to render the content\r\n private doContentLayoutRender(): React.ReactNode {\r\n let contentLayout: React.ReactNode;\r\n\r\n // istanbul ignore else\r\n if (this.props.runtimeProps && this.props.runtimeProps.frontstageDef) {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (frontstageDef.contentLayoutDef && frontstageDef.contentGroup)\r\n contentLayout = (\r\n <ContentLayout\r\n contentLayout={frontstageDef.contentLayoutDef}\r\n contentGroup={frontstageDef.contentGroup}\r\n isInFooterMode={frontstageDef.isInFooterMode}\r\n />\r\n );\r\n else\r\n Logger.logError(UiFramework.loggerCategory(this), `FrontstageDef.contentLayoutDef and FrontstageDef.contentGroup are required for <ContentLayout> component`);\r\n }\r\n\r\n return contentLayout;\r\n }\r\n\r\n private cloneStagePanelElement(panelDef: StagePanelDef | undefined, runtimeProps: FrontstageRuntimeProps): React.ReactNode {\r\n if (!this.state.isUiVisible && UiShowHideManager.showHidePanels)\r\n return null;\r\n\r\n // istanbul ignore else\r\n if (panelDef) {\r\n const { location } = panelDef;\r\n const panelElement = Frontstage.getStagePanelElement(location, this.props);\r\n\r\n // istanbul ignore else\r\n if (panelElement && React.isValidElement(panelElement)) {\r\n const panelKey = getNestedStagePanelKey(panelDef.location);\r\n const panels = runtimeProps.nineZone.nested.panels[panelKey.id];\r\n const panel = StagePanelsManager.getPanel(panelKey.type, panels);\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n\r\n const panelRuntimeProps: StagePanelRuntimeProps = {\r\n draggedWidgetId: draggedWidget ? /* istanbul ignore next */ draggedWidget.id : undefined,\r\n getWidgetContentRef: this._getContentRef,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n isTargeted: !!runtimeProps.nineZone.zones.target,\r\n panel,\r\n panelDef,\r\n stagePanelChangeHandler: runtimeProps.stagePanelChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgets: runtimeProps.nineZone.zones.widgets,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n };\r\n\r\n return React.cloneElement(panelElement, { runtimeProps: panelRuntimeProps });\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneZoneElements(zoneIds: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n return zoneIds.map((zoneId: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const zoneElement = Frontstage.getZoneElement(zoneId, this.props);\r\n if (!zoneElement || !React.isValidElement(zoneElement))\r\n return null;\r\n\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return null;\r\n\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n const panelsManager = nestedPanelsManager.getPanelsManager(\"inner\");\r\n const type = panelsManager.findWidget(zoneId, runtimeProps.nineZone.nested.panels.inner);\r\n // istanbul ignore if\r\n if (type !== undefined)\r\n return null;\r\n\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const zones = runtimeProps.nineZone.zones;\r\n const ghostOutline = zonesManager.getGhostOutlineBounds(zoneId, zones);\r\n const dropTarget = zonesManager.getDropTarget(zoneId, zones);\r\n const zone = getExtendedZone(zoneId, zones, runtimeProps.zoneDefProvider);\r\n const widget = zone.widgets.length > 0 ? zones.widgets[zone.widgets[0]] : undefined;\r\n const openWidgetId = zone.widgets.find((wId) => zones.widgets[wId].tabIndex >= 0);\r\n const activeTabIndex = openWidgetId ? zones.widgets[openWidgetId].tabIndex : 0;\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n const disabledResizeHandles = zonesManager.getDisabledResizeHandles(zoneId, zones);\r\n // istanbul ignore next\r\n const zoneRuntimeProps: ZoneRuntimeProps = {\r\n activeTabIndex,\r\n disabledResizeHandles,\r\n draggedWidget: draggedWidget && /* istanbul ignore next */ draggedWidget.id === zoneId ? /* istanbul ignore next */ draggedWidget : undefined,\r\n dropTarget,\r\n getWidgetContentRef: this._getContentRef,\r\n ghostOutline,\r\n isHidden: (zoneDef.isStatusBar && this.props.isInFooterMode && ( /* istanbul ignore next */ this.state.isUiVisible || /* istanbul ignore next */ !UiShowHideManager.showHideFooter)) ?\r\n /* istanbul ignore next */ false : !this.state.isUiVisible,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n openWidgetId,\r\n targetChangeHandler: runtimeProps.targetChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n widget,\r\n zoneDef,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n zone,\r\n };\r\n return React.cloneElement(zoneElement, { key: zoneId, runtimeProps: zoneRuntimeProps });\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneWidgetContentElements(zones: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const widgets = zones.reduce<Array<{ id: WidgetZoneId, def: WidgetDef, tabIndex: number }>>((prev, zoneId) => {\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return prev;\r\n\r\n const widgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n if (zoneId === 2)\r\n return widgetDef.isVisible;\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n\r\n for (let i = 0; i < widgetDefs.length; i++) {\r\n prev.push({\r\n id: zoneId,\r\n def: widgetDefs[i],\r\n tabIndex: i,\r\n });\r\n }\r\n\r\n return prev;\r\n }, []);\r\n return widgets.map((widget) => {\r\n const nzWidget = runtimeProps.nineZone.zones.widgets[widget.id];\r\n return (\r\n <WidgetContentRenderer\r\n anchor={nzWidget.horizontalAnchor}\r\n isHidden={nzWidget.tabIndex !== widget.tabIndex}\r\n key={`${widget.id}_${widget.tabIndex}`}\r\n renderTo={this.state.widgetIdToContent[widget.id]}\r\n toolSettingsMode={isToolSettingsWidgetManagerProps(nzWidget) ? nzWidget.mode : undefined}\r\n widgetDef={widget.def}\r\n />\r\n );\r\n });\r\n }\r\n\r\n /** React render method\r\n * @internal\r\n */\r\n public override render(): React.ReactNode {\r\n const { runtimeProps } = this.props;\r\n\r\n if (runtimeProps === undefined)\r\n return null;\r\n\r\n /** For Nine-zone area; includes ContentLayout */\r\n const ninezoneStyle: React.CSSProperties = {\r\n position: \"relative\",\r\n height: \"100%\",\r\n };\r\n\r\n const frontstageDef = runtimeProps.frontstageDef;\r\n\r\n return (\r\n <div style={ninezoneStyle} id=\"uifw-ninezone-area\" className={this.props.className}>\r\n <NZ_Zones style={runtimeProps.nineZone.zones.isInFooterMode ? this._zonesFooterModeStyle : this._zonesStyle} >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomPanel, runtimeProps)}\r\n leftPanel={this.cloneStagePanelElement(frontstageDef.leftPanel, runtimeProps)}\r\n rightPanel={this.cloneStagePanelElement(frontstageDef.rightPanel, runtimeProps)}\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topPanel, runtimeProps)}\r\n >\r\n <div\r\n id=\"uifw-ninezone-zones-area\"\r\n ref={this._zonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n position: \"relative\",\r\n }}\r\n >\r\n {this.doContentLayoutRender()}\r\n {this.cloneZoneElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n </StagePanels>\r\n </StagePanels>\r\n {this.cloneZoneElements([8], runtimeProps)}\r\n <div\r\n id=\"uifw-ninezone-floating-zones-area\"\r\n ref={this._floatingZonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n position: \"absolute\",\r\n }}\r\n />\r\n </NZ_Zones>\r\n {this.cloneWidgetContentElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface WidgetContentRendererProps {\r\n anchor: HorizontalAnchor; // eslint-disable-line deprecation/deprecation\r\n isHidden: boolean;\r\n renderTo: HTMLDivElement | undefined;\r\n toolSettingsMode: ToolSettingsWidgetMode | undefined;\r\n widgetDef: WidgetDef;\r\n}\r\n\r\ninterface WidgetContentRendererState {\r\n widgetKey: number;\r\n}\r\n\r\nclass WidgetContentRenderer extends React.PureComponent<WidgetContentRendererProps, WidgetContentRendererState> {\r\n private _isMounted = false;\r\n private _content = document.createElement(\"span\");\r\n public constructor(props: WidgetContentRendererProps) {\r\n super(props);\r\n\r\n this.state = {\r\n widgetKey: 0,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n this._content.style.flexDirection = \"column\";\r\n this._content.style.height = \"100%\";\r\n if (!this.props.renderTo)\r\n return;\r\n this.props.renderTo.appendChild(this._content);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: WidgetContentRendererProps) {\r\n if (!this._isMounted)\r\n return;\r\n if (this.props.isHidden !== prevProps.isHidden) {\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n }\r\n\r\n if (!this.props.renderTo || prevProps.renderTo === this.props.renderTo)\r\n return;\r\n\r\n this.props.widgetDef.saveTransientState();\r\n this.props.renderTo.appendChild(this._content);\r\n\r\n const shouldRemount = this.props.widgetDef.restoreTransientState() || this.props.widgetDef.isToolSettings;\r\n\r\n shouldRemount && this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n this._content.parentNode && this._content.parentNode.removeChild(this._content);\r\n FrontstageManager.onWidgetStateChangedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n }\r\n\r\n public override render() {\r\n if (this.props.toolSettingsMode !== undefined) {\r\n return ReactDOM.createPortal((\r\n <ToolSettingsContent\r\n anchor={this.props.anchor}\r\n key={this.state.widgetKey}\r\n mode={this.props.toolSettingsMode}\r\n >\r\n {FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.toolSettingsNode}\r\n </ToolSettingsContent>\r\n ), this._content);\r\n }\r\n\r\n if (this.props.widgetDef.state === WidgetState.Unloaded)\r\n return null;\r\n return ReactDOM.createPortal((\r\n <React.Fragment\r\n key={this.state.widgetKey}\r\n >\r\n {this.props.widgetDef.reactNode}\r\n </React.Fragment>\r\n ), this._content);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = (args: WidgetStateChangedEventArgs) => {\r\n if (this.props.widgetDef !== args.widgetDef || !this._isMounted)\r\n return;\r\n this.forceUpdate();\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n if (this.props.toolSettingsMode === undefined || !this._isMounted )\r\n return;\r\n // force update when tool is activated\r\n this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n };\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport const getExtendedZone = (zoneId: WidgetZoneId, zones: ZonesManagerProps, defProvider: ZoneDefProvider): ZoneManagerProps => {\r\n const zone = zones.zones[zoneId];\r\n if (zoneId === 1 || zoneId === 3) {\r\n let extendOverId: WidgetZoneId = zoneId; // eslint-disable-line deprecation/deprecation\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n let bottomZoneId = zonesManager.bottomZones.getInitial(extendOverId);\r\n while (bottomZoneId !== undefined) {\r\n const bottomZoneDef = defProvider.getZoneDef(bottomZoneId);\r\n if (bottomZoneDef && bottomZoneDef.widgetDefs.length !== 0)\r\n break;\r\n\r\n extendOverId = bottomZoneId;\r\n bottomZoneId = zonesManager.bottomZones.getInitial(bottomZoneId);\r\n }\r\n\r\n const bottom = zones.zones[extendOverId].bounds.bottom;\r\n if (bottom === zone.bounds.bottom)\r\n return zone;\r\n return {\r\n ...zone,\r\n bounds: {\r\n ...zone.bounds,\r\n bottom,\r\n },\r\n };\r\n }\r\n return zone;\r\n};\r\n\r\n/** Hook that returns active frontstage id.\r\n * @public\r\n */\r\nexport const useActiveFrontstageId = () => {\r\n const def = useActiveFrontstageDef();\r\n const id = React.useMemo(() => def ? /* istanbul ignore next */ def.id : \"\", [def]);\r\n return id;\r\n};\r\n\r\n/** @internal */\r\nexport function useActiveFrontstageDef() {\r\n const [def, setDef] = React.useState(FrontstageManager.activeFrontstageDef);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleActivated = (args: FrontstageActivatedEventArgs) => {\r\n setDef(args.activatedFrontstageDef);\r\n };\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(handleActivated);\r\n return () => {\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(handleActivated);\r\n };\r\n }, []);\r\n return def;\r\n}\r\n"]}
1
+ {"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/Frontstage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { StagePanelLocation, UiItemProviderRegisteredEventArgs, UiItemsManager, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Rectangle } from \"@itwin/core-react\";\r\nimport {\r\n HorizontalAnchor, Zones as NZ_Zones, StagePanels, StagePanelsManager, ToolSettingsWidgetMode, WidgetZoneId, widgetZoneIds, ZoneManagerProps,\r\n ZonesManagerProps,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayout } from \"../content/ContentLayout\";\r\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\r\nimport { getNestedStagePanelKey, StagePanelProps, StagePanelRuntimeProps } from \"../stagepanels/StagePanel\";\r\nimport { StagePanelDef } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework, UiVisibilityEventArgs } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { ToolSettingsContent } from \"../widgets/ToolSettingsContent\";\r\nimport { WidgetDef, WidgetStateChangedEventArgs } from \"../widgets/WidgetDef\";\r\nimport { WidgetsChangedEventArgs } from \"../widgets/WidgetManager\";\r\nimport { isToolSettingsWidgetManagerProps, Zone, ZoneLocation, ZoneProps, ZoneRuntimeProps } from \"../zones/Zone\";\r\nimport { ZoneDef } from \"../zones/ZoneDef\";\r\nimport { FrontstageRuntimeProps, ZoneDefProvider } from \"./FrontstageComposer\";\r\nimport { FrontstageActivatedEventArgs, FrontstageManager } from \"./FrontstageManager\";\r\n\r\n/** Properties for a [[Frontstage]] component.\r\n * @public\r\n */\r\nexport interface FrontstageProps extends CommonProps {\r\n /** Id for the Frontstage */\r\n id: string;\r\n /** Tool that is started once the Frontstage is activated */\r\n defaultTool: ToolItemDef;\r\n /** The Content Group providing the Content Views */\r\n contentGroup: ContentGroup | ContentGroupProvider;\r\n /** Id of the Content View to be activated initially */\r\n defaultContentId?: string;\r\n /** Indicated whether the StatusBar is in footer mode or widget mode. Defaults to true. */\r\n isInFooterMode?: boolean; // Default - true\r\n /** Any application data to attach to this Frontstage. */\r\n applicationData?: any;\r\n /** Usage type for this Frontstage. */\r\n usage?: string;\r\n /** Frontstage version. Used to force saved layout reinitialization after changes to frontstage.\r\n * @note This value should be increased when changes are made to Frontstage.\r\n * Increasing the value will make sure to reinitialize App layout instead of restoring to old layout.\r\n * Version increase is required when widgets are added/removed.\r\n */\r\n version?: number;\r\n /** if isIModelIndependent then frontstage is independent from any iModel. */\r\n isIModelIndependent?: boolean;\r\n /** The Zone in the top-left corner.\r\n * @deprecated Use 'contentManipulationTools' property. */\r\n topLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the top-center edge.\r\n * @deprecated Use 'toolSettings' property. */\r\n topCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner.\r\n * @deprecated Use 'viewNavigationTools' property. */\r\n topRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-left edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the center-right edge.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n centerRight?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-left corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomLeft?: React.ReactElement<ZoneProps>;\r\n /** The Zone along the bottom-center edge.\r\n * @deprecated use statusBar property */\r\n bottomCenter?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the bottom-right corner.\r\n * @deprecated Place widgets in appropriate stage panel zone. */\r\n bottomRight?: React.ReactElement<ZoneProps>;\r\n\r\n /** The Zone in the top-left corner that shows tools typically used to query and modify content. To be used in place of deprecated topLeft zone definition. */\r\n contentManipulationTools?: React.ReactElement<ZoneProps>;\r\n /** The Zone the that shows settings for the active tool. To be used in place of deprecated topCenter zone definition. */\r\n toolSettings?: React.ReactElement<ZoneProps>;\r\n /** The Zone in the top-right corner that shows view navigation tools. To be used in place of deprecated topRight zone definition */\r\n viewNavigationTools?: React.ReactElement<ZoneProps>;\r\n /** The status bar Zone shown as the application footer. To be used in place of deprecated bottomCenter zone definition. */\r\n statusBar?: React.ReactElement<ZoneProps>;\r\n\r\n /** The StagePanel on the top of the AppUi container. */\r\n topPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very top across the full width.\r\n * @deprecated Only topPanel is supported in UI 2.0 */\r\n topMostPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the left. */\r\n leftPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the right. */\r\n rightPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the bottom of the AppUi container. */\r\n bottomPanel?: React.ReactElement<StagePanelProps>;\r\n /** The StagePanel on the very bottom across the full width.\r\n * @deprecated Only bottomPanel is supported in UI 2.0 */\r\n bottomMostPanel?: React.ReactElement<StagePanelProps>;\r\n\r\n /** @internal */\r\n runtimeProps?: FrontstageRuntimeProps;\r\n}\r\n\r\ninterface FrontstageState {\r\n isUiVisible: boolean;\r\n widgetIdToContent: Partial<{ [id in WidgetZoneId]: HTMLDivElement | undefined }>; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Frontstage React component.\r\n * A Frontstage is a full-screen configuration designed to enable the user to accomplish a task.\r\n * @public\r\n */\r\nexport class Frontstage extends React.Component<FrontstageProps, FrontstageState> {\r\n private _isMounted = false;\r\n private static _zoneIds: ReadonlyArray<WidgetZoneId> = widgetZoneIds.filter((z) => z !== 8); // eslint-disable-line deprecation/deprecation\r\n private _contentRefs = new Map<WidgetZoneId, React.Ref<HTMLDivElement>>(); // eslint-disable-line deprecation/deprecation\r\n private _zonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _floatingZonesMeasurer = React.createRef<HTMLDivElement>();\r\n private _zonesStyle: React.CSSProperties = {\r\n pointerEvents: \"none\",\r\n };\r\n private _zonesFooterModeStyle: React.CSSProperties = {\r\n ...this._zonesStyle,\r\n display: \"flex\",\r\n flexFlow: \"column\",\r\n };\r\n\r\n /** @internal */\r\n constructor(props: FrontstageProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isUiVisible: UiFramework.getIsUiVisible(),\r\n widgetIdToContent: {},\r\n };\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n UiFramework.onUiVisibilityChanged.addListener(this._uiVisibilityChanged);\r\n UiFramework.widgetManager.onWidgetsChanged.addListener(this._handleWidgetsChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.addListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n public override componentDidUpdate() {\r\n if (!this._zonesMeasurer.current || !this._floatingZonesMeasurer.current || !this.props.runtimeProps)\r\n return;\r\n let floatingBounds = Rectangle.create(this._floatingZonesMeasurer.current.getBoundingClientRect());\r\n const bounds = Rectangle.create(this._zonesMeasurer.current.getBoundingClientRect());\r\n const offset = bounds.topLeft().getOffsetTo(floatingBounds.topLeft());\r\n floatingBounds = floatingBounds.setPosition(offset);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleZonesBoundsChange(bounds);\r\n this.props.runtimeProps.nineZoneChangeHandler.handleFloatingZonesBoundsChange(floatingBounds);\r\n }\r\n\r\n /** React lifecycle method.\r\n * @internal\r\n */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n UiFramework.onUiVisibilityChanged.removeListener(this._uiVisibilityChanged);\r\n UiItemsManager.onUiProviderRegisteredEvent.removeListener(this._handleUiProviderRegisteredEvent);\r\n }\r\n\r\n private _uiVisibilityChanged = (args: UiVisibilityEventArgs): void => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ isUiVisible: args.visible });\r\n };\r\n\r\n private _handleWidgetsChanged = (_args: WidgetsChangedEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private _handleUiProviderRegisteredEvent = (_args: UiItemProviderRegisteredEventArgs): void => {\r\n this.updateWidgetDefs();\r\n };\r\n\r\n private updateWidgetDefs() {\r\n // istanbul ignore else\r\n if (!this.props.runtimeProps)\r\n return;\r\n\r\n // istanbul ignore next\r\n {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n frontstageDef.updateWidgetDefs();\r\n FrontstageManager.onWidgetDefsUpdatedEvent.emit();\r\n if (this._isMounted)\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static createZoneDef(zoneNode: React.ReactElement<ZoneProps> | undefined, zoneLocation: ZoneLocation, props: FrontstageProps): ZoneDef | undefined {\r\n if (zoneNode) {\r\n const zoneDef = new ZoneDef();\r\n const zoneElement = Frontstage.getZoneElement(zoneLocation, props);\r\n\r\n zoneDef.zoneLocation = zoneLocation;\r\n\r\n // istanbul ignore else\r\n if (zoneElement && React.isValidElement(zoneElement)) {\r\n Zone.initializeZoneDef(zoneDef, zoneElement.props);\r\n return zoneDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static getZoneElement(zoneId: WidgetZoneId, props: FrontstageProps): React.ReactElement<ZoneProps> | undefined { // eslint-disable-line deprecation/deprecation\r\n switch (zoneId) {\r\n case ZoneLocation.TopLeft:\r\n return props.contentManipulationTools ? props.contentManipulationTools : props.topLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopCenter:\r\n return props.toolSettings ? props.toolSettings : props.topCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.TopRight:\r\n return props.viewNavigationTools ? /* istanbul ignore next */ props.viewNavigationTools : props.topRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterLeft:\r\n return props.centerLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.CenterRight:\r\n return props.centerRight; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomLeft:\r\n return props.bottomLeft; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomCenter:\r\n return props.statusBar ? props.statusBar : props.bottomCenter; // eslint-disable-line deprecation/deprecation\r\n case ZoneLocation.BottomRight:\r\n return props.bottomRight; // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n // Zones can be undefined in a Frontstage\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n /** @internal */\r\n public static createStagePanelDef(panelLocation: StagePanelLocation, props: FrontstageProps): StagePanelDef | undefined {\r\n const panelDef = new StagePanelDef();\r\n\r\n const panelElement = Frontstage.getStagePanelElement(panelLocation, props);\r\n panelDef.initializeFromProps(panelElement?.props, panelLocation);\r\n\r\n return panelDef;\r\n }\r\n\r\n private static getStagePanelElement(location: StagePanelLocation, props: FrontstageProps): React.ReactElement<StagePanelProps> | undefined {\r\n let panelElement: React.ReactElement<StagePanelProps> | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelElement = props.topPanel;\r\n break;\r\n case StagePanelLocation.TopMost:\r\n panelElement = props.topMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n case StagePanelLocation.Left:\r\n panelElement = props.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelElement = props.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelElement = props.bottomPanel;\r\n break;\r\n case StagePanelLocation.BottomMost:\r\n panelElement = props.bottomMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelElement;\r\n }\r\n\r\n private _getContentRef = (widget: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const ref = this._contentRefs.get(widget);\r\n if (ref)\r\n return ref;\r\n const newRef = (el: HTMLDivElement | null) => {\r\n if (this._isMounted) {\r\n this.setState((prevState) => ({\r\n widgetIdToContent: {\r\n ...prevState.widgetIdToContent,\r\n [widget]: el === null ? undefined : el,\r\n },\r\n }));\r\n }\r\n };\r\n this._contentRefs.set(widget, newRef);\r\n return newRef;\r\n };\r\n\r\n // This uses ConfigurableUi to render the content\r\n private doContentLayoutRender(): React.ReactNode {\r\n let contentLayout: React.ReactNode;\r\n\r\n // istanbul ignore else\r\n if (this.props.runtimeProps && this.props.runtimeProps.frontstageDef) {\r\n const frontstageDef = this.props.runtimeProps.frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (frontstageDef.contentLayoutDef && frontstageDef.contentGroup)\r\n contentLayout = (\r\n <ContentLayout\r\n contentLayout={frontstageDef.contentLayoutDef}\r\n contentGroup={frontstageDef.contentGroup}\r\n isInFooterMode={frontstageDef.isInFooterMode}\r\n />\r\n );\r\n else\r\n Logger.logError(UiFramework.loggerCategory(this), `FrontstageDef.contentLayoutDef and FrontstageDef.contentGroup are required for <ContentLayout> component`);\r\n }\r\n\r\n return contentLayout;\r\n }\r\n\r\n private cloneStagePanelElement(panelDef: StagePanelDef | undefined, runtimeProps: FrontstageRuntimeProps): React.ReactNode {\r\n if (!this.state.isUiVisible && UiShowHideManager.showHidePanels)\r\n return null;\r\n\r\n // istanbul ignore else\r\n if (panelDef) {\r\n const { location } = panelDef;\r\n const panelElement = Frontstage.getStagePanelElement(location, this.props);\r\n\r\n // istanbul ignore else\r\n if (panelElement && React.isValidElement(panelElement)) {\r\n const panelKey = getNestedStagePanelKey(panelDef.location);\r\n const panels = runtimeProps.nineZone.nested.panels[panelKey.id];\r\n const panel = StagePanelsManager.getPanel(panelKey.type, panels);\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n\r\n const panelRuntimeProps: StagePanelRuntimeProps = {\r\n draggedWidgetId: draggedWidget ? /* istanbul ignore next */ draggedWidget.id : undefined,\r\n getWidgetContentRef: this._getContentRef,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n isTargeted: !!runtimeProps.nineZone.zones.target,\r\n panel,\r\n panelDef,\r\n stagePanelChangeHandler: runtimeProps.stagePanelChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgets: runtimeProps.nineZone.zones.widgets,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n };\r\n\r\n return React.cloneElement(panelElement, { runtimeProps: panelRuntimeProps });\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneZoneElements(zoneIds: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n return zoneIds.map((zoneId: WidgetZoneId) => { // eslint-disable-line deprecation/deprecation\r\n const zoneElement = Frontstage.getZoneElement(zoneId, this.props);\r\n if (!zoneElement || !React.isValidElement(zoneElement))\r\n return null;\r\n\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return null;\r\n\r\n const nestedPanelsManager = FrontstageManager.NineZoneManager.getNestedPanelsManager();\r\n const panelsManager = nestedPanelsManager.getPanelsManager(\"inner\");\r\n const type = panelsManager.findWidget(zoneId, runtimeProps.nineZone.nested.panels.inner);\r\n // istanbul ignore if\r\n if (type !== undefined)\r\n return null;\r\n\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n const zones = runtimeProps.nineZone.zones;\r\n const ghostOutline = zonesManager.getGhostOutlineBounds(zoneId, zones);\r\n const dropTarget = zonesManager.getDropTarget(zoneId, zones);\r\n const zone = getExtendedZone(zoneId, zones, runtimeProps.zoneDefProvider);\r\n const widget = zone.widgets.length > 0 ? zones.widgets[zone.widgets[0]] : undefined;\r\n const openWidgetId = zone.widgets.find((wId) => zones.widgets[wId].tabIndex >= 0);\r\n const activeTabIndex = openWidgetId ? zones.widgets[openWidgetId].tabIndex : 0;\r\n const draggedWidget = runtimeProps.nineZone.zones.draggedWidget;\r\n const disabledResizeHandles = zonesManager.getDisabledResizeHandles(zoneId, zones);\r\n // istanbul ignore next\r\n const zoneRuntimeProps: ZoneRuntimeProps = {\r\n activeTabIndex,\r\n disabledResizeHandles,\r\n draggedWidget: draggedWidget && /* istanbul ignore next */ draggedWidget.id === zoneId ? /* istanbul ignore next */ draggedWidget : undefined,\r\n dropTarget,\r\n getWidgetContentRef: this._getContentRef,\r\n ghostOutline,\r\n isHidden: (zoneDef.isStatusBar && this.props.isInFooterMode && ( /* istanbul ignore next */ this.state.isUiVisible || /* istanbul ignore next */ !UiShowHideManager.showHideFooter)) ?\r\n /* istanbul ignore next */ false : !this.state.isUiVisible,\r\n isInFooterMode: runtimeProps.nineZone.zones.isInFooterMode,\r\n openWidgetId,\r\n targetChangeHandler: runtimeProps.targetChangeHandler,\r\n widgetChangeHandler: runtimeProps.widgetChangeHandler,\r\n widgetTabs: runtimeProps.widgetTabs,\r\n widget,\r\n zoneDef,\r\n zoneDefProvider: runtimeProps.zoneDefProvider,\r\n zone,\r\n };\r\n return React.cloneElement(zoneElement, { key: zoneId, runtimeProps: zoneRuntimeProps });\r\n });\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n private cloneWidgetContentElements(zones: ReadonlyArray<WidgetZoneId>, runtimeProps: FrontstageRuntimeProps): React.ReactNode[] {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const widgets = zones.reduce<Array<{ id: WidgetZoneId, def: WidgetDef, tabIndex: number }>>((prev, zoneId) => {\r\n const zoneDef = runtimeProps.zoneDefProvider.getZoneDef(zoneId);\r\n\r\n // istanbul ignore if\r\n if (!zoneDef)\r\n return prev;\r\n\r\n const widgetDefs = zoneDef.widgetDefs.filter((widgetDef: WidgetDef) => {\r\n if (zoneId === 2)\r\n return widgetDef.isVisible;\r\n return widgetDef.isVisible && !widgetDef.isFloating;\r\n });\r\n\r\n for (let i = 0; i < widgetDefs.length; i++) {\r\n prev.push({\r\n id: zoneId,\r\n def: widgetDefs[i],\r\n tabIndex: i,\r\n });\r\n }\r\n\r\n return prev;\r\n }, []);\r\n return widgets.map((widget) => {\r\n const nzWidget = runtimeProps.nineZone.zones.widgets[widget.id];\r\n return (\r\n <WidgetContentRenderer\r\n anchor={nzWidget.horizontalAnchor}\r\n isHidden={nzWidget.tabIndex !== widget.tabIndex}\r\n key={`${widget.id}_${widget.tabIndex}`}\r\n renderTo={this.state.widgetIdToContent[widget.id]}\r\n toolSettingsMode={isToolSettingsWidgetManagerProps(nzWidget) ? nzWidget.mode : undefined}\r\n widgetDef={widget.def}\r\n />\r\n );\r\n });\r\n }\r\n\r\n /** React render method\r\n * @internal\r\n */\r\n public override render(): React.ReactNode {\r\n const { runtimeProps } = this.props;\r\n\r\n if (runtimeProps === undefined)\r\n return null;\r\n\r\n /** For Nine-zone area; includes ContentLayout */\r\n const ninezoneStyle: React.CSSProperties = {\r\n position: \"relative\",\r\n height: \"100%\",\r\n };\r\n\r\n const frontstageDef = runtimeProps.frontstageDef;\r\n\r\n return (\r\n <div style={ninezoneStyle} id=\"uifw-ninezone-area\" className={this.props.className}>\r\n <NZ_Zones style={runtimeProps.nineZone.zones.isInFooterMode ? this._zonesFooterModeStyle : this._zonesStyle} >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topMostPanel, runtimeProps)} // eslint-disable-line deprecation/deprecation\r\n >\r\n <StagePanels\r\n bottomPanel={this.cloneStagePanelElement(frontstageDef.bottomPanel, runtimeProps)}\r\n leftPanel={this.cloneStagePanelElement(frontstageDef.leftPanel, runtimeProps)}\r\n rightPanel={this.cloneStagePanelElement(frontstageDef.rightPanel, runtimeProps)}\r\n topPanel={this.cloneStagePanelElement(frontstageDef.topPanel, runtimeProps)}\r\n >\r\n <div\r\n id=\"uifw-ninezone-zones-area\"\r\n ref={this._zonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n position: \"relative\",\r\n }}\r\n >\r\n {this.doContentLayoutRender()}\r\n {this.cloneZoneElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n </StagePanels>\r\n </StagePanels>\r\n {this.cloneZoneElements([8], runtimeProps)}\r\n <div\r\n id=\"uifw-ninezone-floating-zones-area\"\r\n ref={this._floatingZonesMeasurer}\r\n style={{\r\n height: \"100%\",\r\n width: \"100%\",\r\n position: \"absolute\",\r\n }}\r\n />\r\n </NZ_Zones>\r\n {this.cloneWidgetContentElements(Frontstage._zoneIds, runtimeProps)}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface WidgetContentRendererProps {\r\n anchor: HorizontalAnchor; // eslint-disable-line deprecation/deprecation\r\n isHidden: boolean;\r\n renderTo: HTMLDivElement | undefined;\r\n toolSettingsMode: ToolSettingsWidgetMode | undefined;\r\n widgetDef: WidgetDef;\r\n}\r\n\r\ninterface WidgetContentRendererState {\r\n widgetKey: number;\r\n}\r\n\r\nclass WidgetContentRenderer extends React.PureComponent<WidgetContentRendererProps, WidgetContentRendererState> {\r\n private _isMounted = false;\r\n private _content = document.createElement(\"span\");\r\n public constructor(props: WidgetContentRendererProps) {\r\n super(props);\r\n\r\n this.state = {\r\n widgetKey: 0,\r\n };\r\n }\r\n\r\n public override componentDidMount() {\r\n this._isMounted = true;\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.addListener(this._handleToolActivatedEvent);\r\n\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n this._content.style.flexDirection = \"column\";\r\n this._content.style.height = \"100%\";\r\n if (!this.props.renderTo)\r\n return;\r\n this.props.renderTo.appendChild(this._content);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: WidgetContentRendererProps) {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n if (this.props.isHidden !== prevProps.isHidden) {\r\n this._content.style.display = this.props.isHidden ? \"none\" : \"flex\";\r\n }\r\n\r\n if (!this.props.renderTo || prevProps.renderTo === this.props.renderTo)\r\n return;\r\n\r\n this.props.widgetDef.saveTransientState();\r\n this.props.renderTo.appendChild(this._content);\r\n\r\n const shouldRemount = this.props.widgetDef.restoreTransientState() || this.props.widgetDef.isToolSettings;\r\n\r\n shouldRemount && this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n this._content.parentNode && this._content.parentNode.removeChild(this._content);\r\n FrontstageManager.onWidgetStateChangedEvent.removeListener(this._handleWidgetStateChangedEvent);\r\n FrontstageManager.onToolActivatedEvent.removeListener(this._handleToolActivatedEvent);\r\n }\r\n\r\n public override render() {\r\n if (this.props.toolSettingsMode !== undefined) {\r\n return ReactDOM.createPortal((\r\n <ToolSettingsContent\r\n anchor={this.props.anchor}\r\n key={this.state.widgetKey}\r\n mode={this.props.toolSettingsMode}\r\n >\r\n {FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.toolSettingsNode}\r\n </ToolSettingsContent>\r\n ), this._content);\r\n }\r\n\r\n if (this.props.widgetDef.state === WidgetState.Unloaded)\r\n return null;\r\n return ReactDOM.createPortal((\r\n <React.Fragment\r\n key={this.state.widgetKey}\r\n >\r\n {this.props.widgetDef.reactNode}\r\n </React.Fragment>\r\n ), this._content);\r\n }\r\n\r\n private _handleWidgetStateChangedEvent = (args: WidgetStateChangedEventArgs) => {\r\n if (this.props.widgetDef !== args.widgetDef || !this._isMounted)\r\n return;\r\n this.forceUpdate();\r\n };\r\n\r\n private _handleToolActivatedEvent = () => {\r\n if (this.props.toolSettingsMode === undefined || !this._isMounted)\r\n return;\r\n // force update when tool is activated\r\n this.setState((prevState) => ({ widgetKey: prevState.widgetKey + 1 }));\r\n };\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line deprecation/deprecation\r\nexport const getExtendedZone = (zoneId: WidgetZoneId, zones: ZonesManagerProps, defProvider: ZoneDefProvider): ZoneManagerProps => {\r\n const zone = zones.zones[zoneId];\r\n if (zoneId === 1 || zoneId === 3) {\r\n let extendOverId: WidgetZoneId = zoneId; // eslint-disable-line deprecation/deprecation\r\n const zonesManager = FrontstageManager.NineZoneManager.getZonesManager();\r\n let bottomZoneId = zonesManager.bottomZones.getInitial(extendOverId);\r\n while (bottomZoneId !== undefined) {\r\n const bottomZoneDef = defProvider.getZoneDef(bottomZoneId);\r\n if (bottomZoneDef && bottomZoneDef.widgetDefs.length !== 0)\r\n break;\r\n\r\n extendOverId = bottomZoneId;\r\n bottomZoneId = zonesManager.bottomZones.getInitial(bottomZoneId);\r\n }\r\n\r\n const bottom = zones.zones[extendOverId].bounds.bottom;\r\n if (bottom === zone.bounds.bottom)\r\n return zone;\r\n return {\r\n ...zone,\r\n bounds: {\r\n ...zone.bounds,\r\n bottom,\r\n },\r\n };\r\n }\r\n return zone;\r\n};\r\n\r\n/** Hook that returns active frontstage id.\r\n * @public\r\n */\r\nexport const useActiveFrontstageId = () => {\r\n const def = useActiveFrontstageDef();\r\n const id = React.useMemo(() => def ? /* istanbul ignore next */ def.id : \"\", [def]);\r\n return id;\r\n};\r\n\r\n/** @internal */\r\nexport function useActiveFrontstageDef() {\r\n const [def, setDef] = React.useState(FrontstageManager.activeFrontstageDef);\r\n React.useEffect(() => {\r\n // istanbul ignore next\r\n const handleActivated = (args: FrontstageActivatedEventArgs) => {\r\n setDef(args.activatedFrontstageDef);\r\n };\r\n FrontstageManager.onFrontstageActivatedEvent.addListener(handleActivated);\r\n return () => {\r\n FrontstageManager.onFrontstageActivatedEvent.removeListener(handleActivated);\r\n };\r\n }, []);\r\n return def;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveIModelConnection.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveIModelConnection.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAKxD;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,GAAG,SAAS,CAkBxE"}
1
+ {"version":3,"file":"useActiveIModelConnection.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveIModelConnection.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAKxD;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,GAAG,SAAS,CAkBxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveIModelConnection.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveIModelConnection.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAmB,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC5F,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,MAAM,QAAQ,GAAG,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YAC5D,uBAAuB;YACvB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;gBACrF,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC;aACxD;QACH,CAAC,CAAC;QAEF,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACnE,OAAO,GAAG,EAAE;YACV,qBAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACxE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,gBAAgB,CAAC;AAC1B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Hooks\r\n */\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { IModelConnection } from \"@itwin/core-frontend\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** React hook that maintains the active IModelConnection. For this hook to work properly the\r\n * IModelConnection must be set using UiFramework.setIModelConnection method. This also requires\r\n * that the host app includes the UiFramework reducer into its Redux store.\r\n * @public\r\n */\r\nexport function useActiveIModelConnection(): IModelConnection | undefined {\r\n const [activeConnection, setActiveConnection] = useState(UiFramework.getIModelConnection());\r\n useEffect(() => {\r\n const handleSyncUiEvent = (args: SyncUiEventArgs): void => {\r\n const eventIds = [SessionStateActionId.SetIModelConnection];\r\n // istanbul ignore else\r\n if (eventIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n setActiveConnection(UiFramework.getIModelConnection());\r\n }\r\n };\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [activeConnection]);\r\n\r\n return activeConnection;\r\n}\r\n"]}
1
+ {"version":3,"file":"useActiveIModelConnection.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveIModelConnection.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC5F,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,MAAM,QAAQ,GAAG,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YAC5D,uBAAuB;YACvB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;gBACrF,mBAAmB,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC;aACxD;QACH,CAAC,CAAC;QAEF,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACnE,OAAO,GAAG,EAAE;YACV,qBAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACxE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,gBAAgB,CAAC;AAC1B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Hooks\r\n */\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { IModelConnection } from \"@itwin/core-frontend\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** React hook that maintains the active IModelConnection. For this hook to work properly the\r\n * IModelConnection must be set using UiFramework.setIModelConnection method. This also requires\r\n * that the host app includes the UiFramework reducer into its Redux store.\r\n * @public\r\n */\r\nexport function useActiveIModelConnection(): IModelConnection | undefined {\r\n const [activeConnection, setActiveConnection] = useState(UiFramework.getIModelConnection());\r\n useEffect(() => {\r\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n const eventIds = [SessionStateActionId.SetIModelConnection];\r\n // istanbul ignore else\r\n if (eventIds.some((value: string): boolean => args.eventIds.has(value.toLowerCase()))) {\r\n setActiveConnection(UiFramework.getIModelConnection());\r\n }\r\n };\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n return () => {\r\n SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);\r\n };\r\n }, [activeConnection]);\r\n\r\n return activeConnection;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;GAEG;AAEH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CA8B9D"}
1
+ {"version":3,"file":"useActiveViewport.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;GAEG;AAEH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CA8B9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAkB,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAiC,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAmB,qBAAqB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAExG;;GAEG;AACH,uBAAuB;AACvB,MAAM,UAAU,iBAAiB;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACzF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,sBAAsB,GAAG,CAAC,KAAoC,EAAE,EAAE;YACtE,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,oGAAoG;QACpG,4GAA4G;QAC5G,sEAAsE;QACtE,kBAAkB,CAAC,2BAA2B,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;QACnF,OAAO,GAAG,EAAE;YACV,kBAAkB,CAAC,2BAA2B,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QACxF,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,iBAAiB,GAAG,CAAC,aAAa,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QACrI,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,uBAAuB;YACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChF,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,uBAAuB,EAAE,CAAC;gBAC1E,iBAAiB,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;aAC1E;QACH,CAAC,CAAC;QAEF,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Hooks\r\n */\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\r\nimport { ActiveContentChangedEventArgs, ContentViewManager } from \"../content/ContentViewManager\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\n/** React hook that maintains the active viewport.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport function useActiveViewport(): ScreenViewport | undefined {\r\n const [activeViewport, setActiveViewport] = useState(IModelApp.viewManager.selectedView);\r\n useEffect(() => {\r\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\r\n setActiveViewport(IModelApp.viewManager.selectedView);\r\n };\r\n\r\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\r\n // so use ContentViewManager.onActiveContentChangedEvent which will always trigger once all stage components\r\n // are loaded and when the IModelApp.viewManager.selectedView changes.\r\n ContentViewManager.onActiveContentChangedEvent.addListener(onActiveContentChanged);\r\n return () => {\r\n ContentViewManager.onActiveContentChangedEvent.removeListener(onActiveContentChanged);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const syncIdsOfInterest = [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ContentControlActivated, SyncUiEventId.FrontstageReady];\r\n const handleSyncUiEvent = (args: SyncUiEventArgs): void => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n const activeContentControl = ContentViewManager.getActiveContentControl();\r\n setActiveViewport(activeContentControl && activeContentControl.viewport);\r\n }\r\n };\r\n\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, []);\r\n\r\n return activeViewport;\r\n}\r\n"]}
1
+ {"version":3,"file":"useActiveViewport.js","sourceRoot":"","sources":["../../../../src/appui-react/hooks/useActiveViewport.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAkB,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAiC,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEvF;;GAEG;AACH,uBAAuB;AACvB,MAAM,UAAU,iBAAiB;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACzF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,sBAAsB,GAAG,CAAC,KAAoC,EAAE,EAAE;YACtE,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,oGAAoG;QACpG,4GAA4G;QAC5G,sEAAsE;QACtE,kBAAkB,CAAC,2BAA2B,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;QACnF,OAAO,GAAG,EAAE;YACV,kBAAkB,CAAC,2BAA2B,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;QACxF,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,iBAAiB,GAAG,CAAC,aAAa,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QACrI,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAQ,EAAE;YACxD,uBAAuB;YACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChF,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,uBAAuB,EAAE,CAAC;gBAC1E,iBAAiB,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;aAC1E;QACH,CAAC,CAAC;QAEF,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Hooks\r\n */\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\r\nimport { ActiveContentChangedEventArgs, ContentViewManager } from \"../content/ContentViewManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\n/** React hook that maintains the active viewport.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport function useActiveViewport(): ScreenViewport | undefined {\r\n const [activeViewport, setActiveViewport] = useState(IModelApp.viewManager.selectedView);\r\n useEffect(() => {\r\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\r\n setActiveViewport(IModelApp.viewManager.selectedView);\r\n };\r\n\r\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\r\n // so use ContentViewManager.onActiveContentChangedEvent which will always trigger once all stage components\r\n // are loaded and when the IModelApp.viewManager.selectedView changes.\r\n ContentViewManager.onActiveContentChangedEvent.addListener(onActiveContentChanged);\r\n return () => {\r\n ContentViewManager.onActiveContentChangedEvent.removeListener(onActiveContentChanged);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const syncIdsOfInterest = [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ContentControlActivated, SyncUiEventId.FrontstageReady];\r\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n const activeContentControl = ContentViewManager.getActiveContentControl();\r\n setActiveViewport(activeContentControl && activeContentControl.viewport);\r\n }\r\n };\r\n\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, []);\r\n\r\n return activeViewport;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\n\r\nimport { ConditionalBooleanValue, FunctionKey, SpecialKey, UiError } from \"@itwin/appui-abstract\";\r\nimport { CursorInformation } from \"../cursor/CursorInformation\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemProps } from \"../shared/ItemProps\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\r\nimport { SyncUiEventArgs, SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\n/** Properties for a Keyboard Shortcut\r\n * @public\r\n */\r\nexport interface KeyboardShortcutProps extends ItemProps {\r\n /** The key that invokes the shortcut.\r\n * This is either an alphanumeric key, a function key or a special key.\r\n */\r\n key: string | FunctionKey | SpecialKey;\r\n\r\n /** The item to execute when this shortcut is invoked. Either 'item' or 'shortcuts' must be specified. */\r\n item?: ActionButtonItemDef;\r\n /** Nested array of shortcut props. Either 'item' or 'shortcuts' must be specified. */\r\n shortcuts?: KeyboardShortcutProps[];\r\n\r\n /** Indicates whether the Alt key required. Default - false */\r\n isAltKeyRequired?: boolean;\r\n /** Indicates whether the Ctrl key required. Default - false */\r\n isCtrlKeyRequired?: boolean;\r\n /** Indicates whether the Shift key required. Default - false */\r\n isShiftKeyRequired?: boolean;\r\n}\r\n\r\n/** Keyboard Shortcut used to execute an action\r\n * @public\r\n */\r\nexport class KeyboardShortcut extends ItemDefBase {\r\n\r\n private _key: string;\r\n private _item?: ActionButtonItemDef;\r\n private _shortcuts: KeyboardShortcutContainer;\r\n\r\n private _isAltKeyRequired: boolean = false;\r\n private _isCtrlKeyRequired: boolean = false;\r\n private _isShiftKeyRequired: boolean = false;\r\n private _isFunctionKey: boolean = false;\r\n private _isSpecialKey: boolean = false;\r\n\r\n constructor(props: KeyboardShortcutProps) {\r\n super(props);\r\n\r\n this._key = props.key;\r\n\r\n if (this._key in FunctionKey)\r\n this._isFunctionKey = true;\r\n if (this._key in SpecialKey)\r\n this._isSpecialKey = true;\r\n\r\n this._shortcuts = new KeyboardShortcutContainer();\r\n\r\n if (props.item) {\r\n this._item = props.item;\r\n\r\n // Copy over icon, label & tooltip from the item\r\n if (!this.iconSpec)\r\n this.iconSpec = this._item.iconSpec;\r\n if (!this.label)\r\n this.setLabel(this._item.label);\r\n if (!this.tooltip)\r\n this.setTooltip(this._item.tooltip);\r\n if (this.isDisabled === undefined)\r\n this.isDisabled = this._item.isDisabled;\r\n if (this.isHidden === undefined)\r\n this.isHidden = this._item.isHidden;\r\n } else if (props.shortcuts) {\r\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\r\n const shortcut = new KeyboardShortcut(childProps);\r\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\r\n });\r\n } else {\r\n throw new UiError(UiFramework.loggerCategory(this), `Either 'item' or 'shortcuts' must be specified for '${props.key}' key.`);\r\n }\r\n\r\n if (props.isAltKeyRequired !== undefined)\r\n this._isAltKeyRequired = props.isAltKeyRequired;\r\n if (props.isCtrlKeyRequired !== undefined)\r\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\r\n if (props.isShiftKeyRequired !== undefined)\r\n this._isShiftKeyRequired = props.isShiftKeyRequired;\r\n }\r\n\r\n /** Returns the id for this shortcut */\r\n public get id(): string { return this.keyMapKey; }\r\n\r\n /** Returns the shortcut container */\r\n public get shortcutContainer(): KeyboardShortcutContainer {\r\n return this._shortcuts;\r\n }\r\n\r\n /** Finds a shortcut with a given key in the shortcut's container */\r\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\r\n return this._shortcuts.findKey(mapKey);\r\n }\r\n\r\n /** Returns the shortcut's key map key used as the id */\r\n public get keyMapKey(): string {\r\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(this.key, this._isAltKeyRequired, this._isCtrlKeyRequired, this._isShiftKeyRequired);\r\n return keyMapKey;\r\n }\r\n\r\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\r\n public get item(): ActionButtonItemDef | undefined {\r\n return this._item;\r\n }\r\n\r\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\r\n public itemPicked(): void {\r\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\r\n this._shortcuts.showShortcutsMenu();\r\n } else {\r\n setTimeout(() => {\r\n // istanbul ignore else\r\n if (this._item)\r\n this._item.execute();\r\n });\r\n }\r\n }\r\n\r\n /** Gets the keyboard key */\r\n public get key(): string { return this._key; }\r\n /** Gets whether the Alt key required. */\r\n public get isAltKeyRequired(): boolean { return this._isAltKeyRequired; }\r\n /** Gets whether the Ctrl key required. */\r\n public get isCtrlKeyRequired(): boolean { return this._isCtrlKeyRequired; }\r\n /** Gets whether the Shift key required. */\r\n public get isShiftKeyRequired(): boolean { return this._isShiftKeyRequired; }\r\n /** Gets whether this is a Function key. */\r\n public get isFunctionKey(): boolean { return this._isFunctionKey; }\r\n /** Gets whether this is a Special key. */\r\n public get isSpecialKey(): boolean { return this._isSpecialKey; }\r\n\r\n}\r\n\r\n/** Keyboard Shortcut Container\r\n * @public\r\n */\r\nexport class KeyboardShortcutContainer {\r\n private _keyMap: Map<string, KeyboardShortcut> = new Map<string, KeyboardShortcut>();\r\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\r\n\r\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\r\n public registerKey(keyMapKey: string, inShortcut: KeyboardShortcut): KeyboardShortcut | undefined {\r\n let shortcut: KeyboardShortcut | undefined;\r\n\r\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\r\n shortcut = inShortcut;\r\n this._keyArray.push(shortcut);\r\n } else {\r\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\r\n return value.keyMapKey === keyMapKey;\r\n });\r\n // istanbul ignore else\r\n if (index >= 0) {\r\n shortcut = inShortcut;\r\n this._keyArray[index] = shortcut;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (shortcut)\r\n this._keyMap.set(keyMapKey, shortcut);\r\n\r\n return shortcut;\r\n }\r\n\r\n /** Finds a Keyboard Shortcut associated with a given key */\r\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\r\n return this._keyMap.get(keyMapKey);\r\n }\r\n\r\n /** Determines if any Keyboard Shortcuts are available in this container */\r\n public areKeyboardShortcutsAvailable(): boolean {\r\n return this._keyMap.size !== 0;\r\n }\r\n\r\n /** Empties any Keyboard Shortcuts from this container */\r\n public emptyData(): void {\r\n this._keyMap.clear();\r\n this._keyArray.length = 0;\r\n }\r\n\r\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\r\n return this._keyArray.slice();\r\n }\r\n\r\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\r\n public static generateKeyMapKey(keyboardKey: string, isAltKeyRequired: boolean, isCtrlKeyRequired: boolean, isShiftKeyRequired: boolean): string {\r\n let keyMapKey = keyboardKey;\r\n\r\n if (isAltKeyRequired)\r\n keyMapKey = `Alt+${keyMapKey}`;\r\n if (isShiftKeyRequired)\r\n keyMapKey = `Shift+${keyMapKey}`;\r\n if (isCtrlKeyRequired)\r\n keyMapKey = `Ctrl+${keyMapKey}`;\r\n\r\n return keyMapKey;\r\n }\r\n\r\n /** Displays a menu for the Keyboard Shortcuts in this container */\r\n public showShortcutsMenu() {\r\n const offset = 8;\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\r\n menuVisible: true,\r\n menuX: KeyboardShortcutManager.cursorX - offset,\r\n menuY: KeyboardShortcutManager.cursorY - offset,\r\n shortcuts: this.getAvailableKeyboardShortcuts(),\r\n });\r\n }\r\n}\r\n\r\ntype OnShortcutFunc = (shortcut: KeyboardShortcut) => void;\r\n\r\n/** Keyboard Shortcut Manager\r\n * @public\r\n */\r\nexport class KeyboardShortcutManager {\r\n\r\n private static _shortcuts: KeyboardShortcutContainer = new KeyboardShortcutContainer();\r\n\r\n /** Initialize the Keyboard Shortcut manager */\r\n public static initialize(): void {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(KeyboardShortcutManager._handleSyncUiEvent);\r\n }\r\n\r\n /** Loads Keyboard Shortcuts into the managed list */\r\n public static loadKeyboardShortcuts(shortcutList: KeyboardShortcutProps[]) {\r\n shortcutList.forEach((shortcutProps: KeyboardShortcutProps) => {\r\n this.loadKeyboardShortcut(shortcutProps);\r\n });\r\n }\r\n\r\n /** Loads a Keyboard Shortcut into the managed list */\r\n public static loadKeyboardShortcut(shortcutProps: KeyboardShortcutProps) {\r\n const shortcut = new KeyboardShortcut(shortcutProps);\r\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\r\n }\r\n\r\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\r\n public static processKey(keyboardKey: string, isAltKeyPressed: boolean = false, isCtrlKeyPressed: boolean = false, isShiftKeyPressed: boolean = false): boolean {\r\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(keyboardKey, isAltKeyPressed, isCtrlKeyPressed, isShiftKeyPressed);\r\n\r\n const shortcut = this.getShortcut(keyMapKey);\r\n if (shortcut) {\r\n shortcut.itemPicked();\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Returns the managed list of Keyboard Shortcuts */\r\n public static get shortcutContainer(): KeyboardShortcutContainer {\r\n return this._shortcuts;\r\n }\r\n\r\n /** Returns a Keyboard Shortcut from the managed lists */\r\n public static getShortcut(keyMapKey: string): KeyboardShortcut | undefined {\r\n return this._shortcuts.findKey(keyMapKey);\r\n }\r\n\r\n /** Determines if focus is set to Home */\r\n public static get isFocusOnHome(): boolean {\r\n const element = document.activeElement as HTMLElement;\r\n return element && element === document.body;\r\n }\r\n\r\n /** Sets focus to Home */\r\n public static setFocusToHome(): void {\r\n const element = document.activeElement as HTMLElement;\r\n if (element && element !== document.body) {\r\n element.blur();\r\n document.body.focus();\r\n }\r\n }\r\n\r\n /** Displays the Keyboard Shortcuts menu at the cursor */\r\n public static displayShortcutsMenu(): void {\r\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\r\n this._shortcuts.showShortcutsMenu();\r\n }\r\n }\r\n\r\n /** Closes the Keyboard Shortcuts menu */\r\n public static closeShortcutsMenu(): void {\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\r\n menuVisible: false,\r\n menuX: 0,\r\n menuY: 0,\r\n shortcuts: undefined,\r\n });\r\n }\r\n\r\n /** Returns the cursor X position, which is mouseEvent.pageX. */\r\n public static get cursorX(): number { return CursorInformation.cursorX; }\r\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\r\n public static get cursorY(): number { return CursorInformation.cursorY; }\r\n\r\n private static _handleSyncUiEvent = (args: SyncUiEventArgs) => {\r\n const updateBooleanValue = (booleanValue: ConditionalBooleanValue) => {\r\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, booleanValue.syncEventIds))\r\n booleanValue.refresh();\r\n };\r\n const handleForSyncIds = (shortcut: KeyboardShortcut) => {\r\n if (shortcut.isDisabled instanceof ConditionalBooleanValue)\r\n updateBooleanValue(shortcut.isDisabled);\r\n if (shortcut.isHidden instanceof ConditionalBooleanValue)\r\n updateBooleanValue(shortcut.isHidden);\r\n };\r\n\r\n KeyboardShortcutManager._traverseShortcuts(KeyboardShortcutManager._shortcuts.getAvailableKeyboardShortcuts(), handleForSyncIds);\r\n };\r\n\r\n private static _traverseShortcuts = (shortcuts: KeyboardShortcut[], callback: OnShortcutFunc) => {\r\n shortcuts.forEach((shortcut: KeyboardShortcut) => {\r\n callback(shortcut);\r\n\r\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\r\n const childShortcuts = shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\r\n KeyboardShortcutManager._traverseShortcuts(childShortcuts, callback);\r\n }\r\n });\r\n };\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\n\r\nimport { ConditionalBooleanValue, FunctionKey, SpecialKey, UiError, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { CursorInformation } from \"../cursor/CursorInformation\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemProps } from \"../shared/ItemProps\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\n\r\n/** Properties for a Keyboard Shortcut\r\n * @public\r\n */\r\nexport interface KeyboardShortcutProps extends ItemProps {\r\n /** The key that invokes the shortcut.\r\n * This is either an alphanumeric key, a function key or a special key.\r\n */\r\n key: string | FunctionKey | SpecialKey;\r\n\r\n /** The item to execute when this shortcut is invoked. Either 'item' or 'shortcuts' must be specified. */\r\n item?: ActionButtonItemDef;\r\n /** Nested array of shortcut props. Either 'item' or 'shortcuts' must be specified. */\r\n shortcuts?: KeyboardShortcutProps[];\r\n\r\n /** Indicates whether the Alt key required. Default - false */\r\n isAltKeyRequired?: boolean;\r\n /** Indicates whether the Ctrl key required. Default - false */\r\n isCtrlKeyRequired?: boolean;\r\n /** Indicates whether the Shift key required. Default - false */\r\n isShiftKeyRequired?: boolean;\r\n}\r\n\r\n/** Keyboard Shortcut used to execute an action\r\n * @public\r\n */\r\nexport class KeyboardShortcut extends ItemDefBase {\r\n\r\n private _key: string;\r\n private _item?: ActionButtonItemDef;\r\n private _shortcuts: KeyboardShortcutContainer;\r\n\r\n private _isAltKeyRequired: boolean = false;\r\n private _isCtrlKeyRequired: boolean = false;\r\n private _isShiftKeyRequired: boolean = false;\r\n private _isFunctionKey: boolean = false;\r\n private _isSpecialKey: boolean = false;\r\n\r\n constructor(props: KeyboardShortcutProps) {\r\n super(props);\r\n\r\n this._key = props.key;\r\n\r\n if (this._key in FunctionKey)\r\n this._isFunctionKey = true;\r\n if (this._key in SpecialKey)\r\n this._isSpecialKey = true;\r\n\r\n this._shortcuts = new KeyboardShortcutContainer();\r\n\r\n if (props.item) {\r\n this._item = props.item;\r\n\r\n // Copy over icon, label & tooltip from the item\r\n if (!this.iconSpec)\r\n this.iconSpec = this._item.iconSpec;\r\n if (!this.label)\r\n this.setLabel(this._item.label);\r\n if (!this.tooltip)\r\n this.setTooltip(this._item.tooltip);\r\n if (this.isDisabled === undefined)\r\n this.isDisabled = this._item.isDisabled;\r\n if (this.isHidden === undefined)\r\n this.isHidden = this._item.isHidden;\r\n } else if (props.shortcuts) {\r\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\r\n const shortcut = new KeyboardShortcut(childProps);\r\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\r\n });\r\n } else {\r\n throw new UiError(UiFramework.loggerCategory(this), `Either 'item' or 'shortcuts' must be specified for '${props.key}' key.`);\r\n }\r\n\r\n if (props.isAltKeyRequired !== undefined)\r\n this._isAltKeyRequired = props.isAltKeyRequired;\r\n if (props.isCtrlKeyRequired !== undefined)\r\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\r\n if (props.isShiftKeyRequired !== undefined)\r\n this._isShiftKeyRequired = props.isShiftKeyRequired;\r\n }\r\n\r\n /** Returns the id for this shortcut */\r\n public get id(): string { return this.keyMapKey; }\r\n\r\n /** Returns the shortcut container */\r\n public get shortcutContainer(): KeyboardShortcutContainer {\r\n return this._shortcuts;\r\n }\r\n\r\n /** Finds a shortcut with a given key in the shortcut's container */\r\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\r\n return this._shortcuts.findKey(mapKey);\r\n }\r\n\r\n /** Returns the shortcut's key map key used as the id */\r\n public get keyMapKey(): string {\r\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(this.key, this._isAltKeyRequired, this._isCtrlKeyRequired, this._isShiftKeyRequired);\r\n return keyMapKey;\r\n }\r\n\r\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\r\n public get item(): ActionButtonItemDef | undefined {\r\n return this._item;\r\n }\r\n\r\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\r\n public itemPicked(): void {\r\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\r\n this._shortcuts.showShortcutsMenu();\r\n } else {\r\n setTimeout(() => {\r\n // istanbul ignore else\r\n if (this._item)\r\n this._item.execute();\r\n });\r\n }\r\n }\r\n\r\n /** Gets the keyboard key */\r\n public get key(): string { return this._key; }\r\n /** Gets whether the Alt key required. */\r\n public get isAltKeyRequired(): boolean { return this._isAltKeyRequired; }\r\n /** Gets whether the Ctrl key required. */\r\n public get isCtrlKeyRequired(): boolean { return this._isCtrlKeyRequired; }\r\n /** Gets whether the Shift key required. */\r\n public get isShiftKeyRequired(): boolean { return this._isShiftKeyRequired; }\r\n /** Gets whether this is a Function key. */\r\n public get isFunctionKey(): boolean { return this._isFunctionKey; }\r\n /** Gets whether this is a Special key. */\r\n public get isSpecialKey(): boolean { return this._isSpecialKey; }\r\n\r\n}\r\n\r\n/** Keyboard Shortcut Container\r\n * @public\r\n */\r\nexport class KeyboardShortcutContainer {\r\n private _keyMap: Map<string, KeyboardShortcut> = new Map<string, KeyboardShortcut>();\r\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\r\n\r\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\r\n public registerKey(keyMapKey: string, inShortcut: KeyboardShortcut): KeyboardShortcut | undefined {\r\n let shortcut: KeyboardShortcut | undefined;\r\n\r\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\r\n shortcut = inShortcut;\r\n this._keyArray.push(shortcut);\r\n } else {\r\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\r\n return value.keyMapKey === keyMapKey;\r\n });\r\n // istanbul ignore else\r\n if (index >= 0) {\r\n shortcut = inShortcut;\r\n this._keyArray[index] = shortcut;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (shortcut)\r\n this._keyMap.set(keyMapKey, shortcut);\r\n\r\n return shortcut;\r\n }\r\n\r\n /** Finds a Keyboard Shortcut associated with a given key */\r\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\r\n return this._keyMap.get(keyMapKey);\r\n }\r\n\r\n /** Determines if any Keyboard Shortcuts are available in this container */\r\n public areKeyboardShortcutsAvailable(): boolean {\r\n return this._keyMap.size !== 0;\r\n }\r\n\r\n /** Empties any Keyboard Shortcuts from this container */\r\n public emptyData(): void {\r\n this._keyMap.clear();\r\n this._keyArray.length = 0;\r\n }\r\n\r\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\r\n return this._keyArray.slice();\r\n }\r\n\r\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\r\n public static generateKeyMapKey(keyboardKey: string, isAltKeyRequired: boolean, isCtrlKeyRequired: boolean, isShiftKeyRequired: boolean): string {\r\n let keyMapKey = keyboardKey;\r\n\r\n if (isAltKeyRequired)\r\n keyMapKey = `Alt+${keyMapKey}`;\r\n if (isShiftKeyRequired)\r\n keyMapKey = `Shift+${keyMapKey}`;\r\n if (isCtrlKeyRequired)\r\n keyMapKey = `Ctrl+${keyMapKey}`;\r\n\r\n return keyMapKey;\r\n }\r\n\r\n /** Displays a menu for the Keyboard Shortcuts in this container */\r\n public showShortcutsMenu() {\r\n const offset = 8;\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\r\n menuVisible: true,\r\n menuX: KeyboardShortcutManager.cursorX - offset,\r\n menuY: KeyboardShortcutManager.cursorY - offset,\r\n shortcuts: this.getAvailableKeyboardShortcuts(),\r\n });\r\n }\r\n}\r\n\r\ntype OnShortcutFunc = (shortcut: KeyboardShortcut) => void;\r\n\r\n/** Keyboard Shortcut Manager\r\n * @public\r\n */\r\nexport class KeyboardShortcutManager {\r\n\r\n private static _shortcuts: KeyboardShortcutContainer = new KeyboardShortcutContainer();\r\n\r\n /** Initialize the Keyboard Shortcut manager */\r\n public static initialize(): void {\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(KeyboardShortcutManager._handleSyncUiEvent);\r\n }\r\n\r\n /** Loads Keyboard Shortcuts into the managed list */\r\n public static loadKeyboardShortcuts(shortcutList: KeyboardShortcutProps[]) {\r\n shortcutList.forEach((shortcutProps: KeyboardShortcutProps) => {\r\n this.loadKeyboardShortcut(shortcutProps);\r\n });\r\n }\r\n\r\n /** Loads a Keyboard Shortcut into the managed list */\r\n public static loadKeyboardShortcut(shortcutProps: KeyboardShortcutProps) {\r\n const shortcut = new KeyboardShortcut(shortcutProps);\r\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\r\n }\r\n\r\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\r\n public static processKey(keyboardKey: string, isAltKeyPressed: boolean = false, isCtrlKeyPressed: boolean = false, isShiftKeyPressed: boolean = false): boolean {\r\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(keyboardKey, isAltKeyPressed, isCtrlKeyPressed, isShiftKeyPressed);\r\n\r\n const shortcut = this.getShortcut(keyMapKey);\r\n if (shortcut) {\r\n shortcut.itemPicked();\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Returns the managed list of Keyboard Shortcuts */\r\n public static get shortcutContainer(): KeyboardShortcutContainer {\r\n return this._shortcuts;\r\n }\r\n\r\n /** Returns a Keyboard Shortcut from the managed lists */\r\n public static getShortcut(keyMapKey: string): KeyboardShortcut | undefined {\r\n return this._shortcuts.findKey(keyMapKey);\r\n }\r\n\r\n /** Determines if focus is set to Home */\r\n public static get isFocusOnHome(): boolean {\r\n const element = document.activeElement as HTMLElement;\r\n return element && element === document.body;\r\n }\r\n\r\n /** Sets focus to Home */\r\n public static setFocusToHome(): void {\r\n const element = document.activeElement as HTMLElement;\r\n if (element && element !== document.body) {\r\n element.blur();\r\n document.body.focus();\r\n }\r\n }\r\n\r\n /** Displays the Keyboard Shortcuts menu at the cursor */\r\n public static displayShortcutsMenu(): void {\r\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\r\n this._shortcuts.showShortcutsMenu();\r\n }\r\n }\r\n\r\n /** Closes the Keyboard Shortcuts menu */\r\n public static closeShortcutsMenu(): void {\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\r\n menuVisible: false,\r\n menuX: 0,\r\n menuY: 0,\r\n shortcuts: undefined,\r\n });\r\n }\r\n\r\n /** Returns the cursor X position, which is mouseEvent.pageX. */\r\n public static get cursorX(): number { return CursorInformation.cursorX; }\r\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\r\n public static get cursorY(): number { return CursorInformation.cursorY; }\r\n\r\n private static _handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n const updateBooleanValue = (booleanValue: ConditionalBooleanValue) => {\r\n if (SyncUiEventDispatcher.hasEventOfInterest(args.eventIds, booleanValue.syncEventIds))\r\n booleanValue.refresh();\r\n };\r\n const handleForSyncIds = (shortcut: KeyboardShortcut) => {\r\n if (shortcut.isDisabled instanceof ConditionalBooleanValue)\r\n updateBooleanValue(shortcut.isDisabled);\r\n if (shortcut.isHidden instanceof ConditionalBooleanValue)\r\n updateBooleanValue(shortcut.isHidden);\r\n };\r\n\r\n KeyboardShortcutManager._traverseShortcuts(KeyboardShortcutManager._shortcuts.getAvailableKeyboardShortcuts(), handleForSyncIds);\r\n };\r\n\r\n private static _traverseShortcuts = (shortcuts: KeyboardShortcut[], callback: OnShortcutFunc) => {\r\n shortcuts.forEach((shortcut: KeyboardShortcut) => {\r\n callback(shortcut);\r\n\r\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\r\n const childShortcuts = shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\r\n KeyboardShortcutManager._traverseShortcuts(childShortcuts, callback);\r\n }\r\n });\r\n };\r\n\r\n}\r\n"]}
@@ -2,8 +2,9 @@
2
2
  * @module KeyboardShortcut
3
3
  */
4
4
  import * as React from "react";
5
- import { CommonProps, UiEvent } from "@itwin/core-react";
5
+ import { CommonProps } from "@itwin/core-react";
6
6
  import { KeyboardShortcut } from "./KeyboardShortcut";
7
+ import { UiEvent } from "@itwin/appui-abstract";
7
8
  /** State for a [[KeyboardShortcutMenuEvent]] and [[KeyboardShortcutMenu]] component
8
9
  * @public
9
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcutMenu.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAsD,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,yBAAyB,CAAC;CAAI;AAErF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAEnG,gBAAgB;IAChB,SAAyB,KAAK,EAAE,yBAAyB,CAIvD;IAEF,uCAAuC;IACvC,gBAAuB,2BAA2B,4BAAmC;IAErE,iBAAiB;IAIjB,oBAAoB;IAIpC,OAAO,CAAC,gCAAgC,CAEtC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA6BzC,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW,CAGjB;CACH"}
1
+ {"version":3,"file":"KeyboardShortcutMenu.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAsD,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAA2B,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,yBAAyB,CAAC;CAAI;AAErF;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAEnG,gBAAgB;IAChB,SAAyB,KAAK,EAAE,yBAAyB,CAIvD;IAEF,uCAAuC;IACvC,gBAAuB,2BAA2B,4BAAmC;IAErE,iBAAiB;IAIjB,oBAAoB;IAIpC,OAAO,CAAC,gCAAgC,CAEtC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA6BzC,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW,CAGjB;CACH"}
@@ -6,8 +6,8 @@
6
6
  * @module KeyboardShortcut
7
7
  */
8
8
  import * as React from "react";
9
- import { ContextMenuItem, ContextSubMenu, GlobalContextMenu, UiEvent } from "@itwin/core-react";
10
- import { ConditionalBooleanValue } from "@itwin/appui-abstract";
9
+ import { ContextMenuItem, ContextSubMenu, GlobalContextMenu } from "@itwin/core-react";
10
+ import { ConditionalBooleanValue, UiEvent } from "@itwin/appui-abstract";
11
11
  /** KeyboardShortcut Menu Event class.
12
12
  * @public
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcutMenu.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonProps, ContextMenuItem, ContextSubMenu, GlobalContextMenu, UiEvent } from \"@itwin/core-react\";\r\nimport { KeyboardShortcut } from \"./KeyboardShortcut\";\r\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\r\n\r\n/** State for a [[KeyboardShortcutMenuEvent]] and [[KeyboardShortcutMenu]] component\r\n * @public\r\n */\r\nexport interface KeyboardShortcutMenuState {\r\n menuVisible: boolean;\r\n menuX: number;\r\n menuY: number;\r\n shortcuts?: KeyboardShortcut[];\r\n}\r\n\r\n/** KeyboardShortcut Menu Event class.\r\n * @public\r\n */\r\nexport class KeyboardShortcutMenuEvent extends UiEvent<KeyboardShortcutMenuState> { }\r\n\r\n/** React component that displays a context menu at the cursor containing keyboard shortcuts.\r\n * @public\r\n */\r\nexport class KeyboardShortcutMenu extends React.PureComponent<CommonProps, KeyboardShortcutMenuState> {\r\n\r\n /** @internal */\r\n public override readonly state: KeyboardShortcutMenuState = {\r\n menuVisible: false,\r\n menuX: 0,\r\n menuY: 0,\r\n };\r\n\r\n /** Get KeyboardShortcut Menu Event. */\r\n public static readonly onKeyboardShortcutMenuEvent = new KeyboardShortcutMenuEvent();\r\n\r\n public override componentDidMount() {\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.addListener(this._handleKeyboardShortcutMenuEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.removeListener(this._handleKeyboardShortcutMenuEvent);\r\n }\r\n\r\n private _handleKeyboardShortcutMenuEvent = (state: KeyboardShortcutMenuState) => {\r\n this.setState(state);\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const { shortcuts, menuX, menuY, menuVisible } = this.state;\r\n const onClose = this._hideContextMenu;\r\n\r\n if (menuVisible) {\r\n const items = this.getShortcutMenuItems(shortcuts);\r\n\r\n return (\r\n <GlobalContextMenu\r\n className={this.props.className}\r\n style={this.props.style}\r\n identifier=\"keyboard-shortcuts\"\r\n x={menuX}\r\n y={menuY}\r\n opened={menuVisible}\r\n onEsc={onClose}\r\n onOutsideClick={onClose}\r\n edgeLimit={false}\r\n autoflip={true}\r\n ignoreNextKeyUp={true} // Executing the shortcut on the keydown, so ignore the keyup in the menu\r\n >\r\n {items}\r\n </GlobalContextMenu>\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private getShortcutMenuItems(shortcuts?: KeyboardShortcut[]): React.ReactNode[] {\r\n const items: React.ReactNode[] = [];\r\n\r\n // istanbul ignore else\r\n if (shortcuts) {\r\n shortcuts.forEach((shortcut: KeyboardShortcut, index: number) => {\r\n const item = this.getShortcutMenuItem(shortcut, index);\r\n // istanbul ignore else\r\n if (item)\r\n items.push(item);\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private getShortcutMenuItem(shortcut: KeyboardShortcut, index: number): React.ReactNode {\r\n const shortcutKey = shortcut.key;\r\n const isHidden = ConditionalBooleanValue.getValue(shortcut.isHidden);\r\n\r\n // Only pure characters go into the context menu\r\n if (shortcutKey !== shortcut.keyMapKey || shortcut.isFunctionKey || shortcut.isSpecialKey || isHidden)\r\n return null;\r\n\r\n let node: React.ReactNode = null;\r\n let label = shortcut.label;\r\n const iconSpec = shortcut.iconSpec;\r\n\r\n label = `~${shortcutKey.toLocaleUpperCase()} ${label}`;\r\n\r\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\r\n const shortcuts = shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\r\n const items = this.getShortcutMenuItems(shortcuts);\r\n\r\n node = (\r\n <ContextSubMenu key={index} icon={iconSpec} label={label} disabled={shortcut.isDisabled}>\r\n {items}\r\n </ContextSubMenu>\r\n );\r\n } else {\r\n const sel = () => this._itemPicked(shortcut);\r\n node = (\r\n <ContextMenuItem key={index} onSelect={sel} icon={iconSpec} disabled={shortcut.isDisabled}>\r\n {label}\r\n </ContextMenuItem>\r\n );\r\n }\r\n\r\n return node;\r\n }\r\n\r\n private _hideContextMenu = () => {\r\n this.setState({ menuVisible: false, shortcuts: undefined });\r\n };\r\n\r\n private _itemPicked = (shortcut: KeyboardShortcut): void => {\r\n this._hideContextMenu();\r\n shortcut.itemPicked();\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"KeyboardShortcutMenu.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAe,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEpG,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAYzE;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,OAAkC;CAAI;AAErF;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK,CAAC,aAAqD;IAArG;;QAEE,gBAAgB;QACS,UAAK,GAA8B;YAC1D,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;SACT,CAAC;QAaM,qCAAgC,GAAG,CAAC,KAAgC,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QAkFM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEM,gBAAW,GAAG,CAAC,QAA0B,EAAQ,EAAE;YACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC;IApGiB,iBAAiB;QAC/B,oBAAoB,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACtG,CAAC;IAEe,oBAAoB;QAClC,oBAAoB,CAAC,2BAA2B,CAAC,cAAc,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACzG,CAAC;IAMe,MAAM;QACpB,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEtC,IAAI,WAAW,EAAE;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAEnD,OAAO,CACL,oBAAC,iBAAiB,IAChB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,UAAU,EAAC,oBAAoB,EAC/B,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,IAAI,EACd,eAAe,EAAE,IAAI,IAEpB,KAAK,CACY,CACrB,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,oBAAoB,CAAC,SAA8B;QACzD,MAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,uBAAuB;QACvB,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,OAAO,CAAC,CAAC,QAA0B,EAAE,KAAa,EAAE,EAAE;gBAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACvD,uBAAuB;gBACvB,IAAI,IAAI;oBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,mBAAmB,CAAC,QAA0B,EAAE,KAAa;QACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;QACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAErE,gDAAgD;QAChD,IAAI,WAAW,KAAK,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ;YACnG,OAAO,IAAI,CAAC;QAEd,IAAI,IAAI,GAAoB,IAAI,CAAC;QACjC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEnC,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,EAAE,IAAI,KAAK,EAAE,CAAC;QAEvD,IAAI,QAAQ,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,EAAE;YAC9D,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,CAAC;YAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAEnD,IAAI,GAAG,CACL,oBAAC,cAAc,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,IACpF,KAAK,CACS,CAClB,CAAC;SACH;aAAM;YACL,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,GAAG,CACL,oBAAC,eAAe,IAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,IACtF,KAAK,CACU,CACnB,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AA7FD,uCAAuC;AAChB,gDAA2B,GAAG,IAAI,yBAAyB,EAAE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { CommonProps, ContextMenuItem, ContextSubMenu, GlobalContextMenu } from \"@itwin/core-react\";\r\nimport { KeyboardShortcut } from \"./KeyboardShortcut\";\r\nimport { ConditionalBooleanValue, UiEvent } from \"@itwin/appui-abstract\";\r\n\r\n/** State for a [[KeyboardShortcutMenuEvent]] and [[KeyboardShortcutMenu]] component\r\n * @public\r\n */\r\nexport interface KeyboardShortcutMenuState {\r\n menuVisible: boolean;\r\n menuX: number;\r\n menuY: number;\r\n shortcuts?: KeyboardShortcut[];\r\n}\r\n\r\n/** KeyboardShortcut Menu Event class.\r\n * @public\r\n */\r\nexport class KeyboardShortcutMenuEvent extends UiEvent<KeyboardShortcutMenuState> { }\r\n\r\n/** React component that displays a context menu at the cursor containing keyboard shortcuts.\r\n * @public\r\n */\r\nexport class KeyboardShortcutMenu extends React.PureComponent<CommonProps, KeyboardShortcutMenuState> {\r\n\r\n /** @internal */\r\n public override readonly state: KeyboardShortcutMenuState = {\r\n menuVisible: false,\r\n menuX: 0,\r\n menuY: 0,\r\n };\r\n\r\n /** Get KeyboardShortcut Menu Event. */\r\n public static readonly onKeyboardShortcutMenuEvent = new KeyboardShortcutMenuEvent();\r\n\r\n public override componentDidMount() {\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.addListener(this._handleKeyboardShortcutMenuEvent);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.removeListener(this._handleKeyboardShortcutMenuEvent);\r\n }\r\n\r\n private _handleKeyboardShortcutMenuEvent = (state: KeyboardShortcutMenuState) => {\r\n this.setState(state);\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n const { shortcuts, menuX, menuY, menuVisible } = this.state;\r\n const onClose = this._hideContextMenu;\r\n\r\n if (menuVisible) {\r\n const items = this.getShortcutMenuItems(shortcuts);\r\n\r\n return (\r\n <GlobalContextMenu\r\n className={this.props.className}\r\n style={this.props.style}\r\n identifier=\"keyboard-shortcuts\"\r\n x={menuX}\r\n y={menuY}\r\n opened={menuVisible}\r\n onEsc={onClose}\r\n onOutsideClick={onClose}\r\n edgeLimit={false}\r\n autoflip={true}\r\n ignoreNextKeyUp={true} // Executing the shortcut on the keydown, so ignore the keyup in the menu\r\n >\r\n {items}\r\n </GlobalContextMenu>\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private getShortcutMenuItems(shortcuts?: KeyboardShortcut[]): React.ReactNode[] {\r\n const items: React.ReactNode[] = [];\r\n\r\n // istanbul ignore else\r\n if (shortcuts) {\r\n shortcuts.forEach((shortcut: KeyboardShortcut, index: number) => {\r\n const item = this.getShortcutMenuItem(shortcut, index);\r\n // istanbul ignore else\r\n if (item)\r\n items.push(item);\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private getShortcutMenuItem(shortcut: KeyboardShortcut, index: number): React.ReactNode {\r\n const shortcutKey = shortcut.key;\r\n const isHidden = ConditionalBooleanValue.getValue(shortcut.isHidden);\r\n\r\n // Only pure characters go into the context menu\r\n if (shortcutKey !== shortcut.keyMapKey || shortcut.isFunctionKey || shortcut.isSpecialKey || isHidden)\r\n return null;\r\n\r\n let node: React.ReactNode = null;\r\n let label = shortcut.label;\r\n const iconSpec = shortcut.iconSpec;\r\n\r\n label = `~${shortcutKey.toLocaleUpperCase()} ${label}`;\r\n\r\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\r\n const shortcuts = shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\r\n const items = this.getShortcutMenuItems(shortcuts);\r\n\r\n node = (\r\n <ContextSubMenu key={index} icon={iconSpec} label={label} disabled={shortcut.isDisabled}>\r\n {items}\r\n </ContextSubMenu>\r\n );\r\n } else {\r\n const sel = () => this._itemPicked(shortcut);\r\n node = (\r\n <ContextMenuItem key={index} onSelect={sel} icon={iconSpec} disabled={shortcut.isDisabled}>\r\n {label}\r\n </ContextMenuItem>\r\n );\r\n }\r\n\r\n return node;\r\n }\r\n\r\n private _hideContextMenu = () => {\r\n this.setState({ menuVisible: false, shortcuts: undefined });\r\n };\r\n\r\n private _itemPicked = (shortcut: KeyboardShortcut): void => {\r\n this._hideContextMenu();\r\n shortcut.itemPicked();\r\n };\r\n}\r\n"]}
@@ -3,8 +3,7 @@
3
3
  */
4
4
  import { XAndY } from "@itwin/core-geometry";
5
5
  import { ActivityMessageDetails, MessageBoxIconType, MessageBoxType, MessageBoxValue, OutputMessagePriority, ToolAssistanceInstructions, ToolTipOptions } from "@itwin/core-frontend";
6
- import { MessageSeverity } from "@itwin/appui-abstract";
7
- import { UiEvent } from "@itwin/core-react";
6
+ import { MessageSeverity, UiEvent } from "@itwin/appui-abstract";
8
7
  import { NotifyMessageDetailsType, NotifyMessageType } from "./ReactNotifyMessageDetails";
9
8
  import { StatusMessageManager } from "./StatusMessageManager";
10
9
  /** [[MessageAddedEvent]] arguments.
@@ -1 +1 @@
1
- {"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@ import classnames from "classnames";
9
9
  import * as _ from "lodash";
10
10
  import * as React from "react";
11
11
  import { ActivityMessageDetails, IModelApp, MessageBoxIconType, MessageBoxType, OutputMessageAlert, OutputMessagePriority, OutputMessageType, } from "@itwin/core-frontend";
12
- import { MessageSeverity } from "@itwin/appui-abstract";
13
- import { MessageContainer, UiEvent } from "@itwin/core-react";
12
+ import { MessageSeverity, UiEvent } from "@itwin/appui-abstract";
13
+ import { MessageContainer } from "@itwin/core-react";
14
14
  import { ConfigurableUiActionId } from "../configurableui/state";
15
15
  import { ModalDialogManager } from "../dialog/ModalDialogManager";
16
16
  import { StandardMessageBox } from "../dialog/StandardMessageBox";