@itwin/appui-react 4.0.0-dev.13 → 4.0.0-dev.15

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 (646) hide show
  1. package/CHANGELOG.md +154 -1
  2. package/README.md +2 -2
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/_variables.scss +11 -11
  5. package/lib/cjs/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.scss +14 -14
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
  10. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  12. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  15. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/Calculator.scss +84 -84
  18. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  21. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/MenuButton.scss +18 -18
  23. package/lib/cjs/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
  25. package/lib/cjs/appui-react/accudraw/SquareButton.scss +29 -29
  26. package/lib/cjs/appui-react/accudraw/backspace.svg +9 -9
  27. package/lib/cjs/appui-react/accudraw/constraint-2d.svg +11 -11
  28. package/lib/cjs/appui-react/accudraw/height-2.svg +10 -10
  29. package/lib/cjs/appui-react/accudraw/height.svg +11 -11
  30. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  31. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  32. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  34. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  35. package/lib/cjs/appui-react/backstage/BackstageManager.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  37. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  38. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  39. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  40. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  41. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +21 -21
  42. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  43. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
  44. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  45. package/lib/cjs/appui-react/childwindow/PopoutWidget.scss +10 -10
  46. package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
  47. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  48. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  49. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  50. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  51. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  52. package/lib/cjs/appui-react/configurableui/configurableui.scss +74 -74
  53. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  54. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  55. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  56. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  57. package/lib/cjs/appui-react/content/ContentLayout.scss +99 -99
  58. package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +1 -1
  59. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  60. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  61. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +46 -46
  62. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  63. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  64. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  65. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  66. package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
  67. package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -1
  68. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  69. package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -1
  70. package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -1
  71. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  72. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  73. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  74. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  75. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  76. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  77. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  78. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  79. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  80. package/lib/cjs/appui-react/dialog/ContentDialog.scss +25 -25
  81. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
  82. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  83. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  84. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  85. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  86. package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
  87. package/lib/cjs/appui-react/dialog/ModelessDialog.js.map +1 -1
  88. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  89. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  90. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  91. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  92. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  93. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +50 -50
  94. package/lib/cjs/appui-react/framework/FrameworkBackstage.js.map +1 -1
  95. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  96. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
  97. package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
  98. package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
  99. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  100. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  101. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  102. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  103. package/lib/cjs/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  104. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  105. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  106. package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  107. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  108. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  109. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +80 -80
  110. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  111. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +11 -11
  112. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  113. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
  114. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  115. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  116. package/lib/cjs/appui-react/hooks/useActiveStageId.js.map +1 -1
  117. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  118. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  119. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  120. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  121. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  122. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  123. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
  124. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  125. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  126. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  127. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  128. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  129. package/lib/cjs/appui-react/messages/HollowIcon.js.map +1 -1
  130. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  131. package/lib/cjs/appui-react/messages/InputField.scss +82 -82
  132. package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
  133. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  134. package/lib/cjs/appui-react/messages/MessageSpan.js.map +1 -1
  135. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  136. package/lib/cjs/appui-react/messages/Pointer.scss +42 -42
  137. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  138. package/lib/cjs/appui-react/messages/StatusMessageManager.js.map +1 -1
  139. package/lib/cjs/appui-react/messages/getToastCategory.js.map +1 -1
  140. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  141. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  142. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  143. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  144. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
  145. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  146. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  147. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  148. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  149. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +3 -0
  150. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/pickers/ListPicker.js +3 -1
  152. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  153. package/lib/cjs/appui-react/pickers/ListPicker.scss +306 -299
  154. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +6 -1
  155. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/pickers/ViewSelector.js +24 -9
  157. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  158. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  159. package/lib/cjs/appui-react/popup/CardPopup.scss +25 -25
  160. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  161. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  162. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  163. package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +30 -30
  164. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  165. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  166. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  167. package/lib/cjs/appui-react/popup/PositionPopup.scss +28 -28
  168. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  169. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  170. package/lib/cjs/appui-react/redux/FrameworkState.js.map +1 -1
  171. package/lib/cjs/appui-react/redux/ReducerRegistry.js.map +1 -1
  172. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  173. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  174. package/lib/cjs/appui-react/redux/connectIModel.js.map +1 -1
  175. package/lib/cjs/appui-react/redux/redux-ts.js.map +1 -1
  176. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  177. package/lib/cjs/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
  178. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -1
  179. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  180. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  181. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  182. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
  183. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  184. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  185. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +65 -65
  186. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  187. package/lib/cjs/appui-react/shared/AnyItemDef.js.map +1 -1
  188. package/lib/cjs/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  189. package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
  190. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  191. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  192. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  193. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  194. package/lib/cjs/appui-react/shared/ItemMap.js.map +1 -1
  195. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  196. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  197. package/lib/cjs/appui-react/shared/SelectionScope.js.map +1 -1
  198. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  199. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  200. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  201. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  202. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  203. package/lib/cjs/appui-react/statusbar/Field.js.map +1 -1
  204. package/lib/cjs/appui-react/statusbar/Field.scss +109 -109
  205. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  206. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
  207. package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +43 -43
  208. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  209. package/lib/cjs/appui-react/statusbar/Overflow.scss +27 -27
  210. package/lib/cjs/appui-react/statusbar/OverflowPanel.js.map +1 -1
  211. package/lib/cjs/appui-react/statusbar/OverflowPanel.scss +22 -22
  212. package/lib/cjs/appui-react/statusbar/Popup.js.map +1 -1
  213. package/lib/cjs/appui-react/statusbar/Separator.js.map +1 -1
  214. package/lib/cjs/appui-react/statusbar/Separator.scss +12 -12
  215. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  216. package/lib/cjs/appui-react/statusbar/StatusBar.scss +41 -41
  217. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  218. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  219. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  220. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  221. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  222. package/lib/cjs/appui-react/statusbar/dialog/Button.js.map +1 -1
  223. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  224. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  225. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  226. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  227. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  228. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  229. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  230. package/lib/cjs/appui-react/statusfields/SectionsField.scss +35 -35
  231. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  232. package/lib/cjs/appui-react/statusfields/SelectionInfo.scss +14 -14
  233. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  234. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +46 -46
  235. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  236. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  237. package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +10 -10
  238. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  239. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
  240. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  241. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
  242. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  243. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  244. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  245. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  246. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  247. package/lib/cjs/appui-react/toolbar/DragInteraction.js.map +1 -1
  248. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  249. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  250. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  251. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  252. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  253. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  254. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  255. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  256. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  257. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  258. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  259. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  260. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  261. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  262. package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
  263. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  264. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  265. package/lib/cjs/appui-react/toolsettings/ToolInformation.js.map +1 -1
  266. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js.map +1 -1
  267. package/lib/cjs/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  268. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  269. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  270. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  271. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  272. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  273. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  274. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  275. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  276. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  277. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  278. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
  279. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  280. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  281. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  282. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  283. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  284. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  285. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  286. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  287. package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  288. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  289. package/lib/cjs/appui-react/utils/ViewUtilities.js.map +1 -1
  290. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  291. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  292. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  293. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -19
  294. package/lib/cjs/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  295. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  296. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  297. package/lib/cjs/appui-react/widget-panels/StatusBar.scss +10 -10
  298. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  299. package/lib/cjs/appui-react/widget-panels/Tab.scss +14 -14
  300. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  301. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +41 -41
  302. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  303. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +20 -20
  304. package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -1
  305. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  306. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  307. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  308. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  309. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  310. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  311. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  312. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  313. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  314. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  315. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  316. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  317. package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
  318. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  319. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  320. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  321. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  322. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
  323. package/lib/cjs/appui-react.js.map +1 -1
  324. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  325. package/lib/esm/appui-react/_variables.scss +11 -11
  326. package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
  327. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  328. package/lib/esm/appui-react/accudraw/AccuDrawDialog.scss +14 -14
  329. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  330. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
  331. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  332. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +55 -55
  333. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  334. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  335. package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
  336. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  337. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  338. package/lib/esm/appui-react/accudraw/Calculator.scss +84 -84
  339. package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  340. package/lib/esm/appui-react/accudraw/CalculatorPopup.js.map +1 -1
  341. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  342. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  343. package/lib/esm/appui-react/accudraw/MenuButton.scss +18 -18
  344. package/lib/esm/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
  345. package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
  346. package/lib/esm/appui-react/accudraw/SquareButton.scss +29 -29
  347. package/lib/esm/appui-react/accudraw/backspace.svg +9 -9
  348. package/lib/esm/appui-react/accudraw/constraint-2d.svg +11 -11
  349. package/lib/esm/appui-react/accudraw/height-2.svg +10 -10
  350. package/lib/esm/appui-react/accudraw/height.svg +11 -11
  351. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  352. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  353. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  354. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  355. package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -1
  356. package/lib/esm/appui-react/backstage/BackstageManager.js.map +1 -1
  357. package/lib/esm/appui-react/backstage/InternalBackstageManager.js.map +1 -1
  358. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  359. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  360. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  361. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  362. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +21 -21
  363. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  364. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
  365. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  366. package/lib/esm/appui-react/childwindow/PopoutWidget.scss +10 -10
  367. package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
  368. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  369. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
  370. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  371. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  372. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  373. package/lib/esm/appui-react/configurableui/configurableui.scss +74 -74
  374. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  375. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  376. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  377. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  378. package/lib/esm/appui-react/content/ContentLayout.scss +99 -99
  379. package/lib/esm/appui-react/content/ContentLayoutManager.js.map +1 -1
  380. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  381. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  382. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +46 -46
  383. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  384. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  385. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  386. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  387. package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
  388. package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -1
  389. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  390. package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -1
  391. package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -1
  392. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  393. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  394. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  395. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  396. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
  397. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  398. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  399. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
  400. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  401. package/lib/esm/appui-react/dialog/ContentDialog.scss +25 -25
  402. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
  403. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  404. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  405. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  406. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  407. package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
  408. package/lib/esm/appui-react/dialog/ModelessDialog.js.map +1 -1
  409. package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  410. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  411. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  412. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  413. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  414. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +50 -50
  415. package/lib/esm/appui-react/framework/FrameworkBackstage.js.map +1 -1
  416. package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  417. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
  418. package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
  419. package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
  420. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  421. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  422. package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  423. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  424. package/lib/esm/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  425. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  426. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  427. package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  428. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  429. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  430. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +80 -80
  431. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  432. package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +11 -11
  433. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  434. package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
  435. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  436. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  437. package/lib/esm/appui-react/hooks/useActiveStageId.js.map +1 -1
  438. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  439. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  440. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  441. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  442. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  443. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  444. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
  445. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  446. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  447. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  448. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  449. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  450. package/lib/esm/appui-react/messages/HollowIcon.js.map +1 -1
  451. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  452. package/lib/esm/appui-react/messages/InputField.scss +82 -82
  453. package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
  454. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  455. package/lib/esm/appui-react/messages/MessageSpan.js.map +1 -1
  456. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  457. package/lib/esm/appui-react/messages/Pointer.scss +42 -42
  458. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  459. package/lib/esm/appui-react/messages/StatusMessageManager.js.map +1 -1
  460. package/lib/esm/appui-react/messages/getToastCategory.js.map +1 -1
  461. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  462. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  463. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
  464. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  465. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
  466. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  467. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
  468. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  469. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
  470. package/lib/esm/appui-react/pickers/ListPicker.d.ts +3 -0
  471. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  472. package/lib/esm/appui-react/pickers/ListPicker.js +4 -2
  473. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  474. package/lib/esm/appui-react/pickers/ListPicker.scss +306 -299
  475. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +6 -1
  476. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  477. package/lib/esm/appui-react/pickers/ViewSelector.js +24 -9
  478. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  479. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  480. package/lib/esm/appui-react/popup/CardPopup.scss +25 -25
  481. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  482. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  483. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  484. package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +30 -30
  485. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  486. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  487. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  488. package/lib/esm/appui-react/popup/PositionPopup.scss +28 -28
  489. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  490. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  491. package/lib/esm/appui-react/redux/FrameworkState.js.map +1 -1
  492. package/lib/esm/appui-react/redux/ReducerRegistry.js.map +1 -1
  493. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  494. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  495. package/lib/esm/appui-react/redux/connectIModel.js.map +1 -1
  496. package/lib/esm/appui-react/redux/redux-ts.js.map +1 -1
  497. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  498. package/lib/esm/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
  499. package/lib/esm/appui-react/safearea/SafeAreaInsets.js.map +1 -1
  500. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  501. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  502. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  503. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
  504. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  505. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  506. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +65 -65
  507. package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  508. package/lib/esm/appui-react/shared/AnyItemDef.js.map +1 -1
  509. package/lib/esm/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
  510. package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
  511. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  512. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  513. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  514. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  515. package/lib/esm/appui-react/shared/ItemMap.js.map +1 -1
  516. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  517. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  518. package/lib/esm/appui-react/shared/SelectionScope.js.map +1 -1
  519. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  520. package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  521. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  522. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  523. package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  524. package/lib/esm/appui-react/statusbar/Field.js.map +1 -1
  525. package/lib/esm/appui-react/statusbar/Field.scss +109 -109
  526. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  527. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
  528. package/lib/esm/appui-react/statusbar/LabelIndicator.scss +43 -43
  529. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  530. package/lib/esm/appui-react/statusbar/Overflow.scss +27 -27
  531. package/lib/esm/appui-react/statusbar/OverflowPanel.js.map +1 -1
  532. package/lib/esm/appui-react/statusbar/OverflowPanel.scss +22 -22
  533. package/lib/esm/appui-react/statusbar/Popup.js.map +1 -1
  534. package/lib/esm/appui-react/statusbar/Separator.js.map +1 -1
  535. package/lib/esm/appui-react/statusbar/Separator.scss +12 -12
  536. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  537. package/lib/esm/appui-react/statusbar/StatusBar.scss +41 -41
  538. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  539. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  540. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  541. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  542. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  543. package/lib/esm/appui-react/statusbar/dialog/Button.js.map +1 -1
  544. package/lib/esm/appui-react/statusbar/dialog/Dialog.js.map +1 -1
  545. package/lib/esm/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
  546. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  547. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  548. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  549. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  550. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  551. package/lib/esm/appui-react/statusfields/SectionsField.scss +35 -35
  552. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  553. package/lib/esm/appui-react/statusfields/SelectionInfo.scss +14 -14
  554. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  555. package/lib/esm/appui-react/statusfields/SelectionScope.scss +46 -46
  556. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  557. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  558. package/lib/esm/appui-react/statusfields/ViewAttributes.scss +10 -10
  559. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  560. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
  561. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  562. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
  563. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  564. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  565. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  566. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
  567. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  568. package/lib/esm/appui-react/toolbar/DragInteraction.js.map +1 -1
  569. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  570. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  571. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  572. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  573. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  574. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
  575. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  576. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  577. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  578. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  579. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  580. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  581. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  582. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  583. package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
  584. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  585. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  586. package/lib/esm/appui-react/toolsettings/ToolInformation.js.map +1 -1
  587. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js.map +1 -1
  588. package/lib/esm/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
  589. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  590. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  591. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  592. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  593. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  594. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  595. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  596. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  597. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  598. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  599. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
  600. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  601. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  602. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
  603. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
  604. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  605. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  606. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  607. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  608. package/lib/esm/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
  609. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  610. package/lib/esm/appui-react/utils/ViewUtilities.js.map +1 -1
  611. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  612. package/lib/esm/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  613. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  614. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -19
  615. package/lib/esm/appui-react/widget-panels/FrontstageContent.js.map +1 -1
  616. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  617. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  618. package/lib/esm/appui-react/widget-panels/StatusBar.scss +10 -10
  619. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  620. package/lib/esm/appui-react/widget-panels/Tab.scss +14 -14
  621. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  622. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +41 -41
  623. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  624. package/lib/esm/appui-react/widget-panels/Toolbars.scss +20 -20
  625. package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -1
  626. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
  627. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  628. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  629. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  630. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  631. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  632. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  633. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  634. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  635. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  636. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  637. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  638. package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
  639. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  640. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  641. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  642. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  643. package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
  644. package/lib/esm/appui-react.js.map +1 -1
  645. package/lib/public/locales/en/UiFramework.json +381 -381
  646. package/package.json +31 -29
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAgD;AAqBhD;;GAEG;AACH,MAAa,wBAAyB,SAAQ,wBAAqC;CAAI;AAAvF,4DAAuF;AAmBvF;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E;AAS/E;;GAEG;AACH,MAAa,2BAA4B,SAAQ,wBAAwC;CAAI;AAA7F,kEAA6F;AAiB7F;;;;;;GAMG;AACH,MAAa,kCAAmC,SAAQ,wBAA+C;CAAI;AAA3G,gFAA2G;AAY3G;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,kBAAmB,SAAQ,wBAA+B;CAAI;AAA3E,gDAA2E;AAS3E;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\nimport { ContentLayoutActivatedEvent } from \"../content/ContentLayout\";\nimport { FrontstageDef } from \"../frontstage/FrontstageDef\";\nimport { FrontstageProvider } from \"../frontstage/FrontstageProvider\";\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\nimport { PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\nimport { WidgetDef, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\nimport { WidgetState } from \"../widgets/WidgetState\";\n\n/** Frontstage Activated Event Args interface.\n * @public\n */\nexport interface FrontstageActivatedEventArgs {\n deactivatedFrontstageDef?: FrontstageDef;\n activatedFrontstageDef: FrontstageDef;\n}\n\n/** Frontstage Activated Event class.\n * @public\n */\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\n\n/** Frontstage Deactivated Event Args interface.\n * @public\n */\nexport interface FrontstageDeactivatedEventArgs {\n /** Frontstage being deactivated */\n deactivatedFrontstageDef: FrontstageDef;\n /** Frontstage being activated */\n activatedFrontstageDef?: FrontstageDef;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Frontstage Deactivated Event class.\n * @public\n */\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\n\n/** Frontstage Ready Event Args interface.\n * @public\n */\nexport interface FrontstageReadyEventArgs {\n frontstageDef: FrontstageDef;\n}\n\n/** Frontstage Ready Event class.\n * @public\n */\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\n\n/** Modal Frontstage Changed Event Args interface.\n * @public\n */\nexport interface ModalFrontstageChangedEventArgs {\n modalFrontstageCount: number;\n}\n\n/** Modal Frontstage Stack Changed Event class.\n * @public\n */\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\n\n/** Modal Frontstage Closed Event Args interface.\n * @public\n */\nexport interface ModalFrontstageClosedEventArgs {\n /** Modal Frontstage being closed */\n modalFrontstage: ModalFrontstageInfo;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\n * any unsaved data.\n * @alpha\n */\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\n\n/** Modal Frontstage RequestedClose Event Args interface.\n * @alpha\n */\nexport interface ModalFrontstageRequestedCloseEventArgs {\n /** Modal Frontstage that is to be closed */\n modalFrontstage: ModalFrontstageInfo;\n /** Function to call to close the stage */\n stageCloseFunc: () => void;\n}\n\n/** Modal Frontstage Closed Event class.\n * @public\n */\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\n\n/** Tool Activated Event Args interface.\n * @public\n */\nexport interface ToolActivatedEventArgs {\n toolId: string;\n}\n\n/** Tool Activated Event class.\n * @public\n */\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\n\n/** Tool Icon Changed Event Args interface.\n * @public\n */\nexport interface ToolIconChangedEventArgs {\n iconSpec: string;\n}\n\n/** Tool Icon Changed Event class.\n * @public\n */\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\n\n/** Modal Frontstage information interface.\n * @public\n */\nexport interface ModalFrontstageInfo {\n title: string;\n content: React.ReactNode;\n appBarRight?: React.ReactNode;\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\n * @alpha */\n notifyCloseRequest?: boolean;\n}\n\n/** Modal Frontstage array item interface.\n * @internal\n */\nexport interface ModalFrontstageItem {\n modalFrontstage: ModalFrontstageInfo;\n timeTracker: TimeTracker;\n}\n\n/**\n * [[UiFramework.frontstages]] interface\n * @beta\n */\nexport interface FrameworkFrontstages {\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n readonly isLoading: boolean;\n\n /** Get Frontstage Deactivated event. */\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\n\n /** Get Frontstage Activated event. */\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\n\n /** Get Frontstage Activated event. */\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\n\n /** Get Modal Frontstage Changed event. */\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\n\n /** Get Modal Frontstage Closed event. */\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\n\n /** Get Tool Activated event. */\n readonly onToolActivatedEvent: ToolActivatedEvent;\n\n /** Get ToolSetting Reload event. */\n readonly onToolSettingsReloadEvent: UiEvent<void>;\n\n /** Get Tool Icon Changed event. */\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\n\n /** Get Content Layout Activated event. */\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\n\n /** Get Content Control Activated event. */\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\n\n /** Get Navigation Aid Activated event. */\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\n\n /** Get Widget State Changed event. */\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\n\n /** Get Widget State Changed event.\n * @alpha\n */\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\n\n /** Clears the Frontstage map.\n */\n clearFrontstageDefs(): void;\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n */\n clearFrontstageProviders(): void;\n\n /** Add a Frontstage via a [[FrontstageProvider]].\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\n */\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n readonly activeFrontstageDef: FrontstageDef | undefined;\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n readonly activeFrontstageId: string;\n\n hasFrontstage(frontstageId: string): boolean;\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\n */\n setActiveFrontstage(frontstageId: string): Promise<void>;\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void>;\n\n /** Deactivates the active FrontstageDef.\n */\n deactivateFrontstageDef(): Promise<void>;\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n readonly activeToolId: string;\n\n /** Sets the active tool id */\n setActiveToolId(toolId: string): void;\n\n /** Sets the active tool */\n setActiveTool(tool: Tool): void;\n\n /** Gets the active tool's [[ToolInformation]] */\n readonly activeToolInformation: ToolInformation | undefined;\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\n\n /** Closes the top-most modal Frontstage.\n */\n closeModalFrontstage(): void;\n\n /** Updates the top-most modal Frontstage.\n */\n updateModalFrontstage(): void;\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n readonly modalFrontstageCount: number;\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection): void;\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n setWidgetState(widgetId: string, state: WidgetState): boolean;\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n findWidget(widgetId: string): WidgetDef | undefined;\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\n\n /** Closes the top-most nested Frontstage.\n */\n closeNestedFrontstage(): Promise<void>;\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n readonly activeNestedFrontstage: FrontstageDef | undefined;\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n readonly nestedFrontstageCount: number;\n}\n"]}
1
+ {"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAgD;AAqBhD;;GAEG;AACH,MAAa,wBAAyB,SAAQ,wBAAqC;CAAI;AAAvF,4DAAuF;AAmBvF;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E;AAS/E;;GAEG;AACH,MAAa,2BAA4B,SAAQ,wBAAwC;CAAI;AAA7F,kEAA6F;AAiB7F;;;;;;GAMG;AACH,MAAa,kCAAmC,SAAQ,wBAA+C;CAAI;AAA3G,gFAA2G;AAY3G;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,kBAAmB,SAAQ,wBAA+B;CAAI;AAA3E,gDAA2E;AAS3E;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E","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 Frontstage\r\n */\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { IModelConnection, Tool } from \"@itwin/core-frontend\";\r\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentLayoutActivatedEvent } from \"../content/ContentLayout\";\r\nimport { FrontstageDef } from \"../frontstage/FrontstageDef\";\r\nimport { FrontstageProvider } from \"../frontstage/FrontstageProvider\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { WidgetDef, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\nexport interface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n/**\r\n * [[UiFramework.frontstages]] interface\r\n * @beta\r\n */\r\nexport interface FrameworkFrontstages {\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n readonly isLoading: boolean;\r\n\r\n /** Get Frontstage Deactivated event. */\r\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\r\n\r\n /** Get Frontstage Activated event. */\r\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\r\n\r\n /** Get Frontstage Activated event. */\r\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\r\n\r\n /** Get Tool Activated event. */\r\n readonly onToolActivatedEvent: ToolActivatedEvent;\r\n\r\n /** Get ToolSetting Reload event. */\r\n readonly onToolSettingsReloadEvent: UiEvent<void>;\r\n\r\n /** Get Tool Icon Changed event. */\r\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\r\n\r\n /** Get Content Layout Activated event. */\r\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\r\n\r\n /** Get Content Control Activated event. */\r\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\r\n\r\n /** Get Navigation Aid Activated event. */\r\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\r\n\r\n /** Get Widget State Changed event. */\r\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n clearFrontstageDefs(): void;\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n clearFrontstageProviders(): void;\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n readonly activeFrontstageDef: FrontstageDef | undefined;\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n readonly activeFrontstageId: string;\r\n\r\n hasFrontstage(frontstageId: string): boolean;\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n setActiveFrontstage(frontstageId: string): Promise<void>;\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void>;\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n deactivateFrontstageDef(): Promise<void>;\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n readonly activeToolId: string;\r\n\r\n /** Sets the active tool id */\r\n setActiveToolId(toolId: string): void;\r\n\r\n /** Sets the active tool */\r\n setActiveTool(tool: Tool): void;\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n readonly activeToolInformation: ToolInformation | undefined;\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n closeModalFrontstage(): void;\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n updateModalFrontstage(): void;\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n readonly modalFrontstageCount: number;\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection): void;\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n setWidgetState(widgetId: string, state: WidgetState): boolean;\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n findWidget(widgetId: string): WidgetDef | undefined;\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n closeNestedFrontstage(): Promise<void>;\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n readonly activeNestedFrontstage: FrontstageDef | undefined;\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n readonly nestedFrontstageCount: number;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkKeyboardShortcuts.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkKeyboardShortcuts.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module KeyboardShortcut\n */\nimport { FunctionKey, SpecialKey } from \"@itwin/appui-abstract\";\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\nimport { ItemProps } from \"../shared/ItemProps\";\n\n/** Properties for a Keyboard Shortcut\n * @public\n */\nexport interface KeyboardShortcutProps extends ItemProps {\n /** The key that invokes the shortcut.\n * This is either an alphanumeric key, a function key or a special key.\n */\n key: string | FunctionKey | SpecialKey;\n\n /** The item to execute when this shortcut is invoked. Either 'item' or 'shortcuts' must be specified. */\n item?: ActionButtonItemDef;\n /** Nested array of shortcut props. Either 'item' or 'shortcuts' must be specified. */\n shortcuts?: KeyboardShortcutProps[];\n\n /** Indicates whether the Alt key required. Default - false */\n isAltKeyRequired?: boolean;\n /** Indicates whether the Ctrl key required. Default - false */\n isCtrlKeyRequired?: boolean;\n /** Indicates whether the Shift key required. Default - false */\n isShiftKeyRequired?: boolean;\n}\n\n/** Keyboard Shortcut used to execute an action\n * @public\n */\nexport interface FrameworkKeyboardShortcut extends ItemDefBase {\n /** Returns the id for this shortcut */\n readonly id: string;\n\n /** Returns the shortcut container */\n readonly shortcutContainer: FrameworkKeyboardShortcutContainer;\n\n /** Finds a shortcut with a given key in the shortcut's container */\n getShortcut(mapKey: string): FrameworkKeyboardShortcut | undefined;\n\n /** Returns the shortcut's key map key used as the id */\n readonly keyMapKey: string;\n\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\n readonly item: ActionButtonItemDef | undefined;\n\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\n itemPicked(): void;\n\n /** Gets the keyboard key */\n readonly key: string;\n /** Gets whether the Alt key required. */\n readonly isAltKeyRequired: boolean;\n /** Gets whether the Ctrl key required. */\n readonly isCtrlKeyRequired: boolean;\n /** Gets whether the Shift key required. */\n readonly isShiftKeyRequired: boolean;\n /** Gets whether this is a Function key. */\n readonly isFunctionKey: boolean;\n /** Gets whether this is a Special key. */\n readonly isSpecialKey: boolean;\n\n}\n\n/** Keyboard Shortcut Container\n * @public\n */\nexport interface FrameworkKeyboardShortcutContainer {\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\n registerKey(keyMapKey: string, inShortcut: FrameworkKeyboardShortcut): FrameworkKeyboardShortcut | undefined;\n\n /** Finds a Keyboard Shortcut associated with a given key */\n findKey(keyMapKey: string): FrameworkKeyboardShortcut | undefined;\n\n /** Determines if any Keyboard Shortcuts are available in this container */\n areKeyboardShortcutsAvailable(): boolean;\n\n /** Empties any Keyboard Shortcuts from this container */\n emptyData(): void;\n\n getAvailableKeyboardShortcuts(): FrameworkKeyboardShortcut[];\n\n /** Displays a menu for the Keyboard Shortcuts in this container */\n showShortcutsMenu(): void;\n}\n\n/**\n * [[UiFramework.keyboardShortcuts]] interface\n * @beta\n */\nexport interface FrameworkKeyboardShortcuts {\n /** Loads Keyboard Shortcuts into the managed list */\n loadShortcuts(shortcutList: KeyboardShortcutProps[]): void;\n\n /** Loads a Keyboard Shortcut into the managed list */\n loadShortcut(shortcutProps: KeyboardShortcutProps): void;\n\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\n processKey(keyboardKey: string, isAltKeyPressed?: boolean, isCtrlKeyPressed?: boolean, isShiftKeyPressed?: boolean): boolean;\n\n /** Returns the managed list of Keyboard Shortcuts */\n readonly shortcutContainer: FrameworkKeyboardShortcutContainer;\n\n /** Returns a Keyboard Shortcut from the managed lists */\n getShortcut(keyMapKey: string): FrameworkKeyboardShortcut | undefined;\n\n /** Determines if focus is set to Home */\n readonly isFocusOnHome: boolean;\n\n /** Sets focus to Home */\n setFocusToHome(): void;\n\n /** Displays the Keyboard Shortcuts menu at the cursor */\n displayMenu(): void;\n\n /** Closes the Keyboard Shortcuts menu */\n closeMenu(): void;\n\n /** Returns the cursor X position, which is mouseEvent.pageX. */\n readonly cursorX: number;\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\n readonly cursorY: number;\n}\n"]}
1
+ {"version":3,"file":"FrameworkKeyboardShortcuts.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkKeyboardShortcuts.ts"],"names":[],"mappings":"","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\nimport { FunctionKey, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemProps } from \"../shared/ItemProps\";\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 interface FrameworkKeyboardShortcut extends ItemDefBase {\r\n /** Returns the id for this shortcut */\r\n readonly id: string;\r\n\r\n /** Returns the shortcut container */\r\n readonly shortcutContainer: FrameworkKeyboardShortcutContainer;\r\n\r\n /** Finds a shortcut with a given key in the shortcut's container */\r\n getShortcut(mapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Returns the shortcut's key map key used as the id */\r\n readonly keyMapKey: string;\r\n\r\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\r\n readonly item: ActionButtonItemDef | undefined;\r\n\r\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\r\n itemPicked(): void;\r\n\r\n /** Gets the keyboard key */\r\n readonly key: string;\r\n /** Gets whether the Alt key required. */\r\n readonly isAltKeyRequired: boolean;\r\n /** Gets whether the Ctrl key required. */\r\n readonly isCtrlKeyRequired: boolean;\r\n /** Gets whether the Shift key required. */\r\n readonly isShiftKeyRequired: boolean;\r\n /** Gets whether this is a Function key. */\r\n readonly isFunctionKey: boolean;\r\n /** Gets whether this is a Special key. */\r\n readonly isSpecialKey: boolean;\r\n\r\n}\r\n\r\n/** Keyboard Shortcut Container\r\n * @public\r\n */\r\nexport interface FrameworkKeyboardShortcutContainer {\r\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\r\n registerKey(keyMapKey: string, inShortcut: FrameworkKeyboardShortcut): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Finds a Keyboard Shortcut associated with a given key */\r\n findKey(keyMapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Determines if any Keyboard Shortcuts are available in this container */\r\n areKeyboardShortcutsAvailable(): boolean;\r\n\r\n /** Empties any Keyboard Shortcuts from this container */\r\n emptyData(): void;\r\n\r\n getAvailableKeyboardShortcuts(): FrameworkKeyboardShortcut[];\r\n\r\n /** Displays a menu for the Keyboard Shortcuts in this container */\r\n showShortcutsMenu(): void;\r\n}\r\n\r\n/**\r\n * [[UiFramework.keyboardShortcuts]] interface\r\n * @beta\r\n */\r\nexport interface FrameworkKeyboardShortcuts {\r\n /** Loads Keyboard Shortcuts into the managed list */\r\n loadShortcuts(shortcutList: KeyboardShortcutProps[]): void;\r\n\r\n /** Loads a Keyboard Shortcut into the managed list */\r\n loadShortcut(shortcutProps: KeyboardShortcutProps): void;\r\n\r\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\r\n processKey(keyboardKey: string, isAltKeyPressed?: boolean, isCtrlKeyPressed?: boolean, isShiftKeyPressed?: boolean): boolean;\r\n\r\n /** Returns the managed list of Keyboard Shortcuts */\r\n readonly shortcutContainer: FrameworkKeyboardShortcutContainer;\r\n\r\n /** Returns a Keyboard Shortcut from the managed lists */\r\n getShortcut(keyMapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Determines if focus is set to Home */\r\n readonly isFocusOnHome: boolean;\r\n\r\n /** Sets focus to Home */\r\n setFocusToHome(): void;\r\n\r\n /** Displays the Keyboard Shortcuts menu at the cursor */\r\n displayMenu(): void;\r\n\r\n /** Closes the Keyboard Shortcuts menu */\r\n closeMenu(): void;\r\n\r\n /** Returns the cursor X position, which is mouseEvent.pageX. */\r\n readonly cursorX: number;\r\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\r\n readonly cursorY: number;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkToolSettings.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAoF;AAWpF;;GAEG;AACH,MAAa,+BAAgC,SAAQ,wBAA4C;CAAI;AAArG,0EAAqG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ToolSettings\n */\nimport { DialogItem, DialogPropertySyncItem, UiEvent } from \"@itwin/appui-abstract\";\nimport { InteractiveTool } from \"@itwin/core-frontend\";\n\n/** Sync Tool Settings Properties Event Args interface.\n * @public\n */\nexport interface SyncToolSettingsPropertiesEventArgs {\n toolId: string;\n syncProperties: DialogPropertySyncItem[];\n}\n\n/** Sync Tool Settings Properties Event class.\n * @public\n */\nexport class SyncToolSettingsPropertiesEvent extends UiEvent<SyncToolSettingsPropertiesEventArgs> { }\n\n/**\n * [[UiFramework.toolSettings]] interface\n * @beta\n */\nexport interface FrameworkToolSettings {\n /** clear cached Tool Settings properties. */\n clearToolSettingsData(): void;\n\n /** Cache Tool Settings properties */\n initializeToolSettingsData(toolSettingsProperties: DialogItem[] | undefined, toolId?: string, toolLabel?: string, toolDescription?: string): boolean;\n\n /** Set of data used in Tool Settings for the specified tool. The tool specified should be the \"active\" tool.\n */\n initializeDataForTool(tool: InteractiveTool): void;\n\n /** Returns the toolSettings properties that can be used to populate the tool settings widget. */\n readonly toolSettingsProperties: DialogItem[];\n\n /** Returns true if the Tool Settings are to be auto populated from the toolSettingsProperties.\n * The setter is chiefly for testing.\n */\n useDefaultToolSettingsProvider: boolean;\n\n /** The name of the active tool. This is typically the flyover text specified for the tool. */\n activeToolLabel: string;\n\n /** Returns the description of the active tool. */\n readonly activeToolDescription: string;\n\n /** Get ToolSettings Properties sync event. */\n readonly onSyncToolSettingsProperties: SyncToolSettingsPropertiesEvent;\n readonly onReloadToolSettingsProperties: UiEvent<void>;\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n readonly toolIdForToolSettings: string;\n\n /**\n * Sets the focus on the ToolSettings UI element.\n */\n focusIntoToolSettings(): boolean;\n}\n"]}
1
+ {"version":3,"file":"FrameworkToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkToolSettings.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAoF;AAWpF;;GAEG;AACH,MAAa,+BAAgC,SAAQ,wBAA4C;CAAI;AAArG,0EAAqG","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 ToolSettings\r\n */\r\nimport { DialogItem, DialogPropertySyncItem, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { InteractiveTool } from \"@itwin/core-frontend\";\r\n\r\n/** Sync Tool Settings Properties Event Args interface.\r\n * @public\r\n */\r\nexport interface SyncToolSettingsPropertiesEventArgs {\r\n toolId: string;\r\n syncProperties: DialogPropertySyncItem[];\r\n}\r\n\r\n/** Sync Tool Settings Properties Event class.\r\n * @public\r\n */\r\nexport class SyncToolSettingsPropertiesEvent extends UiEvent<SyncToolSettingsPropertiesEventArgs> { }\r\n\r\n/**\r\n * [[UiFramework.toolSettings]] interface\r\n * @beta\r\n */\r\nexport interface FrameworkToolSettings {\r\n /** clear cached Tool Settings properties. */\r\n clearToolSettingsData(): void;\r\n\r\n /** Cache Tool Settings properties */\r\n initializeToolSettingsData(toolSettingsProperties: DialogItem[] | undefined, toolId?: string, toolLabel?: string, toolDescription?: string): boolean;\r\n\r\n /** Set of data used in Tool Settings for the specified tool. The tool specified should be the \"active\" tool.\r\n */\r\n initializeDataForTool(tool: InteractiveTool): void;\r\n\r\n /** Returns the toolSettings properties that can be used to populate the tool settings widget. */\r\n readonly toolSettingsProperties: DialogItem[];\r\n\r\n /** Returns true if the Tool Settings are to be auto populated from the toolSettingsProperties.\r\n * The setter is chiefly for testing.\r\n */\r\n useDefaultToolSettingsProvider: boolean;\r\n\r\n /** The name of the active tool. This is typically the flyover text specified for the tool. */\r\n activeToolLabel: string;\r\n\r\n /** Returns the description of the active tool. */\r\n readonly activeToolDescription: string;\r\n\r\n /** Get ToolSettings Properties sync event. */\r\n readonly onSyncToolSettingsProperties: SyncToolSettingsPropertiesEvent;\r\n readonly onReloadToolSettingsProperties: UiEvent<void>;\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n readonly toolIdForToolSettings: string;\r\n\r\n /**\r\n * Sets the focus on the ToolSettings UI element.\r\n */\r\n focusIntoToolSettings(): boolean;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkVisibility.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n/**\n * [[UiFramework.visibility]] interface\n * @beta\n */\nexport interface FrameworkVisibility {\n /** Determines if the Ui is visible */\n isUiVisible: boolean;\n\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\n * When true, the Ui automatically hides after a few seconds of inactivity.\n */\n autoHideUi: boolean;\n\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\n showHidePanels: boolean;\n\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\n showHideFooter: boolean;\n\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\n inactivityTime: number;\n\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\n useProximityOpacity: boolean;\n\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\n snapWidgetOpacity: boolean;\n\n /** Handler for when a Frontstage is ready */\n handleFrontstageReady(): void;\n\n /** Handler for when the mouse moves over the content area */\n handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\n\n /** Handler for when the mouse enters a widget */\n handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\n\n /** Shows the Ui and resets the inactivity timer */\n showUiAndResetTimer(): void;\n\n /** Shows the Ui and cancels the inactivity timer */\n showUiAndCancelTimer(): void;\n}\n"]}
1
+ {"version":3,"file":"FrameworkVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkVisibility.ts"],"names":[],"mappings":"","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 Utilities\r\n */\r\n/**\r\n * [[UiFramework.visibility]] interface\r\n * @beta\r\n */\r\nexport interface FrameworkVisibility {\r\n /** Determines if the Ui is visible */\r\n isUiVisible: boolean;\r\n\r\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\r\n * When true, the Ui automatically hides after a few seconds of inactivity.\r\n */\r\n autoHideUi: boolean;\r\n\r\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\r\n showHidePanels: boolean;\r\n\r\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\r\n showHideFooter: boolean;\r\n\r\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\r\n inactivityTime: number;\r\n\r\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\r\n useProximityOpacity: boolean;\r\n\r\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\r\n snapWidgetOpacity: boolean;\r\n\r\n /** Handler for when a Frontstage is ready */\r\n handleFrontstageReady(): void;\r\n\r\n /** Handler for when the mouse moves over the content area */\r\n handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Handler for when the mouse enters a widget */\r\n handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Shows the Ui and resets the inactivity timer */\r\n showUiAndResetTimer(): void;\r\n\r\n /** Shows the Ui and cancels the inactivity timer */\r\n showUiAndCancelTimer(): void;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageConfig.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageConfig.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport { CommonProps } from \"@itwin/core-react\";\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\nimport { WidgetConfig } from \"../widgets/WidgetConfig\";\n\n/** Configuration from which a frontstage is created.\n * @public\n */\nexport interface FrontstageConfig extends CommonProps {\n /** Id for the Frontstage */\n readonly id: string;\n /** The Content Group providing the Content Views */\n readonly contentGroup: ContentGroup | ContentGroupProvider;\n /** Usage type for this Frontstage. */\n readonly usage?: string;\n /** Frontstage version. Used to force saved layout reinitialization after changes to frontstage.\n * @note This value should be increased when changes are made to the Frontstage.\n * Increasing the value will make sure to reinitialize App layout instead of restoring to old layout.\n */\n readonly version: number;\n\n /** The top-left corner that shows tools typically used to query and modify content. */\n readonly contentManipulation?: WidgetConfig;\n /** The settings of the active tool. */\n readonly toolSettings?: WidgetConfig;\n /** The top-right corner that shows view navigation tools. */\n readonly viewNavigation?: WidgetConfig;\n /** The status bar of the application. */\n readonly statusBar?: WidgetConfig;\n\n /** Top panel of the application. */\n readonly topPanel?: StagePanelConfig;\n /** Left panel of the application. */\n readonly leftPanel?: StagePanelConfig;\n /** Right panel of the application. */\n readonly rightPanel?: StagePanelConfig;\n /** Bottom panel of the application. */\n readonly bottomPanel?: StagePanelConfig;\n}\n"]}
1
+ {"version":3,"file":"FrontstageConfig.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageConfig.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Frontstage\r\n */\r\n\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\r\nimport { WidgetConfig } from \"../widgets/WidgetConfig\";\r\n\r\n/** Configuration from which a frontstage is created.\r\n * @public\r\n */\r\nexport interface FrontstageConfig extends CommonProps {\r\n /** Id for the Frontstage */\r\n readonly id: string;\r\n /** The Content Group providing the Content Views */\r\n readonly contentGroup: ContentGroup | ContentGroupProvider;\r\n /** Usage type for this Frontstage. */\r\n readonly 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 the Frontstage.\r\n * Increasing the value will make sure to reinitialize App layout instead of restoring to old layout.\r\n */\r\n readonly version: number;\r\n\r\n /** The top-left corner that shows tools typically used to query and modify content. */\r\n readonly contentManipulation?: WidgetConfig;\r\n /** The settings of the active tool. */\r\n readonly toolSettings?: WidgetConfig;\r\n /** The top-right corner that shows view navigation tools. */\r\n readonly viewNavigation?: WidgetConfig;\r\n /** The status bar of the application. */\r\n readonly statusBar?: WidgetConfig;\r\n\r\n /** Top panel of the application. */\r\n readonly topPanel?: StagePanelConfig;\r\n /** Left panel of the application. */\r\n readonly leftPanel?: StagePanelConfig;\r\n /** Right panel of the application. */\r\n readonly rightPanel?: StagePanelConfig;\r\n /** Bottom panel of the application. */\r\n readonly bottomPanel?: StagePanelConfig;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageDef.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\n// cSpell:ignore popout\n\nimport * as React from \"react\";\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\nimport { PointProps, UiError } from \"@itwin/appui-abstract\";\nimport { Rectangle, RectangleProps, SizeProps } from \"@itwin/core-react\";\nimport {\n dockWidgetContainer, floatWidget, getTabLocation, getWidgetLocation, isFloatingTabLocation, isPanelTabLocation, isPopoutTabLocation, isPopoutWidgetLocation,\n NineZoneState, PanelSide, panelSides, popoutWidgetToChildWindow,\n} from \"@itwin/appui-layout-react\";\nimport { ContentControl } from \"../content/ContentControl\";\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\nimport { StagePanelDef, StagePanelState, toPanelSide } from \"../stagepanels/StagePanelDef\";\nimport { UiFramework } from \"../UiFramework\";\nimport { WidgetControl } from \"../widgets/WidgetControl\";\nimport { WidgetDef, WidgetType } from \"../widgets/WidgetDef\";\nimport { FrontstageProvider } from \"./FrontstageProvider\";\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\nimport { ChildWindowLocationProps } from \"../framework/FrameworkChildWindows\";\nimport { PopoutWidget } from \"../childwindow/PopoutWidget\";\nimport { FrameworkStateReducer, SavedWidgets } from \"../widget-panels/Frontstage\";\nimport { assert, BentleyStatus, ProcessDetector } from \"@itwin/core-bentley\";\nimport { FrontstageConfig } from \"./FrontstageConfig\";\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\nimport { WidgetConfig } from \"../widgets/WidgetConfig\";\nimport { StageUsage } from \"./StageUsage\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { WidgetState } from \"../widgets/WidgetState\";\nimport { InternalFrontstageManager } from \"./InternalFrontstageManager\";\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\n\n/** @internal */\nexport interface FrontstageEventArgs {\n frontstageDef: FrontstageDef;\n}\n\n/** @internal */\nexport interface FrontstageNineZoneStateChangedEventArgs extends FrontstageEventArgs {\n state: NineZoneState | undefined;\n}\n\n/** FrontstageDef class provides an API for a Frontstage.\n * @public\n */\nexport class FrontstageDef {\n private _id: string = \"\";\n private _initialConfig?: FrontstageConfig;\n private _isStageClosing = false;\n private _isReady = false;\n private _isApplicationClosing = false;\n private _usage?: string;\n private _version: number = 0;\n private _toolSettings?: WidgetDef;\n private _statusBar?: WidgetDef;\n private _contentManipulation?: WidgetDef;\n private _viewNavigation?: WidgetDef;\n private _topPanel?: StagePanelDef;\n private _leftPanel?: StagePanelDef;\n private _rightPanel?: StagePanelDef;\n private _bottomPanel?: StagePanelDef;\n private _contentLayoutDef?: ContentLayoutDef;\n private _contentGroup?: ContentGroup;\n private _frontstageProvider?: FrontstageProvider;\n private _timeTracker = new TimeTracker();\n private _nineZoneState?: NineZoneState;\n private _contentGroupProvider?: ContentGroupProvider;\n private _floatingContentControls?: ContentControl[];\n private _savedWidgetDefs?: SavedWidgets;\n\n public get id(): string { return this._id; }\n public get usage(): string { return this._usage !== undefined ? this._usage : StageUsage.General; }\n public get version(): number { return this._version; }\n public get contentGroupProvider(): ContentGroupProvider | undefined { return this._contentGroupProvider; }\n public get floatingContentControls() { return this._floatingContentControls; }\n\n public get toolSettings(): WidgetDef | undefined { return this._toolSettings; }\n public get statusBar(): WidgetDef | undefined { return this._statusBar; }\n public get contentManipulation(): WidgetDef | undefined { return this._contentManipulation; }\n public get viewNavigation(): WidgetDef | undefined { return this._viewNavigation; }\n\n public get topPanel(): StagePanelDef | undefined { return this._topPanel; }\n public get leftPanel(): StagePanelDef | undefined { return this._leftPanel; }\n public get rightPanel(): StagePanelDef | undefined { return this._rightPanel; }\n public get bottomPanel(): StagePanelDef | undefined { return this._bottomPanel; }\n\n public get contentLayoutDef(): ContentLayoutDef | undefined { return this._contentLayoutDef; }\n public get contentGroup(): ContentGroup | undefined { return this._contentGroup; }\n public get frontstageProvider(): FrontstageProvider | undefined { return this._frontstageProvider; }\n\n private toStagePanelLocation(side: PanelSide): StagePanelLocation {\n switch (side) {\n case \"bottom\":\n return StagePanelLocation.Bottom;\n case \"left\":\n return StagePanelLocation.Left;\n case \"right\":\n return StagePanelLocation.Right;\n case \"top\":\n return StagePanelLocation.Top;\n }\n }\n\n private populateStateMaps(nineZone: NineZoneState, panelMap: Map<StagePanelDef, StagePanelState>, widgetMap: Map<WidgetDef, WidgetState>) {\n for (const panelSide of panelSides) {\n const panel = nineZone.panels[panelSide];\n const location = this.toStagePanelLocation(panelSide);\n const panelDef = this.getStagePanelDef(location);\n if (panelDef) {\n const panelState = panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;\n panelMap.set(panelDef, panelState);\n }\n for (const widgetId of panel.widgets) {\n const widget = nineZone.widgets[widgetId];\n // istanbul ignore else\n if (widget) {\n for (const tabId of widget.tabs) {\n const widgetDef = this.findWidgetDef(tabId);\n if (widgetDef) {\n let widgetState = WidgetState.Open;\n if (widget.minimized || tabId !== widget.activeTabId)\n widgetState = WidgetState.Closed;\n widgetMap.set(widgetDef, widgetState);\n }\n }\n }\n }\n }\n // istanbul ignore next\n for (const widgetId of nineZone.floatingWidgets.allIds) {\n const widget = nineZone.widgets[widgetId];\n if (widget) {\n for (const tabId of widget.tabs) {\n const widgetDef = this.findWidgetDef(tabId);\n if (widgetDef) {\n let widgetState = WidgetState.Open;\n if (widget.minimized || tabId !== widget.activeTabId)\n widgetState = WidgetState.Closed;\n widgetMap.set(widgetDef, widgetState);\n }\n }\n }\n }\n }\n\n private triggerStateChangeEventForWidgetsAndPanels(state: NineZoneState | undefined) {\n // istanbul ignore else\n if (!(this._isStageClosing || this._isApplicationClosing)) {\n if (state) {\n const originalPanelStateMap = new Map<StagePanelDef, StagePanelState>();\n const originalWidgetStateMap = new Map<WidgetDef, WidgetState>();\n const newPanelStateMap = new Map<StagePanelDef, StagePanelState>();\n const newWidgetStateMap = new Map<WidgetDef, WidgetState>();\n this._nineZoneState && this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);\n this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);\n\n // set internal state value before triggering events\n this._nineZoneState = state;\n\n // now walk and trigger set state events\n newWidgetStateMap.forEach((stateValue, widgetDef) => {\n const originalState = originalWidgetStateMap.get(widgetDef);\n if (originalState !== stateValue) {\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({ widgetDef, widgetState: stateValue });\n widgetDef.onWidgetStateChanged();\n }\n });\n newPanelStateMap.forEach((stateValue, panelDef) => {\n const originalState = originalPanelStateMap.get(panelDef);\n if (originalState !== stateValue) {\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\n panelDef,\n panelState: stateValue,\n });\n }\n });\n } else {\n this._nineZoneState = state;\n }\n }\n }\n\n /** @internal */\n public get nineZoneState(): NineZoneState | undefined { return this._nineZoneState; }\n public set nineZoneState(state: NineZoneState | undefined) {\n if (this._nineZoneState === state)\n return;\n\n if (!this._nineZoneState) {\n this._nineZoneState = state;\n } else {\n this.triggerStateChangeEventForWidgetsAndPanels(state);\n }\n\n // istanbul ignore next - don't trigger any side effects until stage \"isReady\"\n if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {\n InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({\n frontstageDef: this,\n state,\n });\n }\n }\n\n /** @internal */\n public get savedWidgetDefs() { return this._savedWidgetDefs; }\n public set savedWidgetDefs(widgets: SavedWidgets | undefined) {\n this._savedWidgetDefs = widgets;\n }\n\n /** @internal */\n public get timeTracker(): TimeTracker { return this._timeTracker; }\n\n /** Created a [[FrontstageDef]] and initialize it */\n public static async create(provider: FrontstageProvider) {\n const def = new FrontstageDef();\n def._frontstageProvider = provider;\n\n const config = provider.frontstageConfig();\n await def.initializeFromConfig(config);\n\n return def;\n }\n\n /** Handles when the Frontstage becomes activated */\n protected async _onActivated() { }\n\n /** Handles when the Frontstage becomes activated */\n public async onActivated() {\n this.updateWidgetDefs();\n\n const provider = this._contentGroupProvider;\n if (provider && this._initialConfig) {\n this._contentGroup = await provider.contentGroup(this._initialConfig);\n }\n\n // istanbul ignore next\n if (!this._contentGroup)\n throw new UiError(UiFramework.loggerCategory(this), `onActivated: Content Group not defined`);\n\n this._contentLayoutDef = UiFramework.content.layouts.getForGroup(this._contentGroup);\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({ contentLayout: this._contentLayoutDef, contentGroup: this._contentGroup });\n\n this._timeTracker.startTiming();\n await this._onActivated();\n }\n\n /** Handles when the Frontstage becomes inactive */\n protected async _onDeactivated() { }\n\n /** Handles when the Frontstage becomes inactive */\n public async onDeactivated() {\n for (const control of this._widgetControls) {\n control.onFrontstageDeactivated();\n }\n\n for (const control of this.contentControls) {\n control.onFrontstageDeactivated();\n }\n\n // istanbul ignore else\n if (this.contentGroup)\n this.contentGroup.onFrontstageDeactivated();\n // istanbul ignore next\n if (this.contentGroupProvider)\n await this.contentGroupProvider.onFrontstageDeactivated();\n\n this._timeTracker.stopTiming();\n\n this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking\n UiFramework.childWindows.closeAll();\n\n if (this._floatingContentControls) {\n InternalContentDialogManager.closeAll();\n this._floatingContentControls = undefined;\n }\n\n await this._onDeactivated();\n this._isStageClosing = false;\n }\n\n /** @internal */\n public setIsApplicationClosing(value: boolean) {\n this._isApplicationClosing = value;\n }\n\n /** Returns once the contained widgets and content controls are ready to use */\n public async waitUntilReady(): Promise<void> {\n this._isReady = false;\n // create an array of control-ready promises\n const controlReadyPromises = new Array<Promise<void>>();\n this._widgetControls.forEach((control: WidgetControl) => {\n controlReadyPromises.push(control.isReady);\n });\n\n // istanbul ignore else\n if (this.contentLayoutDef) {\n const usedContentIndexes = this.contentLayoutDef.getUsedContentIndexes();\n this.contentControls.forEach((control: ContentControl, index: number) => {\n // istanbul ignore else\n if (usedContentIndexes.includes(index))\n controlReadyPromises.push(control.isReady);\n });\n }\n\n await Promise.all(controlReadyPromises);\n // Frontstage ready\n this._isReady = true;\n }\n\n /** Handles when the Frontstage becomes active */\n protected _onFrontstageReady(): void { }\n\n /** Handles when the Frontstage becomes active */\n public onFrontstageReady(): void {\n for (const control of this._widgetControls) {\n control.onFrontstageReady();\n }\n\n for (const control of this.contentControls) {\n control.onFrontstageReady();\n }\n\n // istanbul ignore else\n if (this.contentGroup)\n this.contentGroup.onFrontstageReady();\n\n this._onFrontstageReady();\n }\n\n /** Sets the Content Layout and Content Group */\n public setContentLayoutAndGroup(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): void {\n this._contentLayoutDef = contentLayoutDef;\n this._contentGroup = contentGroup;\n }\n\n /** Sets the active view content control to the default or first */\n public async setActiveContent(): Promise<boolean> {\n let contentControl: ContentControl | undefined;\n let activated = false;\n\n // istanbul ignore else\n if (!contentControl && this.contentControls.length >= 0) {\n contentControl = this.contentControls[0];\n }\n\n if (contentControl) {\n UiFramework.content.setActive(contentControl.reactNode, true);\n if (contentControl.viewport) {\n const status = await IModelApp.viewManager.setSelectedView(contentControl.viewport);\n activated = status === BentleyStatus.SUCCESS;\n }\n }\n\n return activated;\n }\n\n /** Sets the active view content control */\n public setActiveView(newContent: ContentControl, oldContent?: ContentControl): void {\n if (oldContent)\n oldContent.onDeactivated();\n newContent.onActivated();\n UiFramework.frontstages.onContentControlActivatedEvent.emit({ activeContentControl: newContent, oldContentControl: oldContent });\n }\n\n /** Sets the active view content control based on the selected viewport. */\n public setActiveViewFromViewport(viewport: ScreenViewport): boolean {\n const contentControl = this.contentControls.find((control: ContentControl) => control.viewport === viewport);\n // istanbul ignore else\n if (contentControl) {\n UiFramework.content.setActive(contentControl.reactNode, true);\n return true;\n }\n\n // istanbul ignore next\n return false;\n }\n\n /** Gets a [[StagePanelDef]] based on a given panel location\n * @beta\n */\n public getStagePanelDef(location: StagePanelLocation): StagePanelDef | undefined {\n let panelDef: StagePanelDef | undefined;\n\n switch (location) {\n case StagePanelLocation.Top:\n panelDef = this.topPanel;\n break;\n case StagePanelLocation.Left:\n panelDef = this.leftPanel;\n break;\n case StagePanelLocation.Right:\n panelDef = this.rightPanel;\n break;\n case StagePanelLocation.Bottom:\n panelDef = this.bottomPanel;\n break;\n }\n\n // Panels can be undefined in a Frontstage\n\n return panelDef;\n }\n\n /** Gets a list of [[StagePanelDef]]s\n * @beta\n */\n public get panelDefs(): StagePanelDef[] {\n const locations = [\n StagePanelLocation.Left, StagePanelLocation.Right,\n StagePanelLocation.Top, StagePanelLocation.Bottom,\n ];\n const panels: StagePanelDef[] = [];\n\n locations.forEach((location: StagePanelLocation) => {\n const panel = this.getStagePanelDef(location);\n if (panel)\n panels.push(panel);\n });\n\n return panels;\n }\n\n /** Finds a [[WidgetDef]] based on a given id */\n public findWidgetDef(id: string): WidgetDef | undefined {\n for (const widgetDef of this.widgetDefs) {\n if (widgetDef.id === id)\n return widgetDef;\n }\n return undefined;\n }\n\n /** Gets the list of [[WidgetControl]]s */\n private get _widgetControls(): WidgetControl[] {\n const widgetControls = new Array<WidgetControl>();\n\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\n panelDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\n const widgetControl = widgetDef.widgetControl;\n // istanbul ignore if\n if (widgetControl)\n widgetControls.push(widgetControl);\n });\n });\n\n return widgetControls;\n }\n\n public addFloatingContentControl(contentControl?: ContentControl) {\n // istanbul ignore next\n if (!contentControl)\n return;\n if (!this._floatingContentControls)\n this._floatingContentControls = new Array<ContentControl>();\n\n this._floatingContentControls.push(contentControl);\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\n }\n\n public dropFloatingContentControl(contentControl?: ContentControl) {\n // istanbul ignore next\n if (!contentControl || !this._floatingContentControls)\n return;\n\n const index = this._floatingContentControls.indexOf(contentControl);\n // istanbul ignore else\n if (index > -1) {\n this._floatingContentControls.splice(index, 1);\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\n }\n }\n\n /** Gets the list of [[ContentControl]]s */\n public get contentControls(): ContentControl[] {\n const contentControls = new Array<ContentControl>();\n // istanbul ignore else\n if (this.contentGroup) {\n contentControls.push(...this.contentGroup.getContentControls());\n }\n if (this._floatingContentControls) {\n contentControls.push(...this._floatingContentControls);\n }\n return contentControls;\n }\n\n /** Initializes a FrontstageDef from FrontstageConfig.\n * @internal\n */\n public async initializeFromConfig(config: FrontstageConfig): Promise<void> {\n this._id = config.id;\n this._initialConfig = config;\n\n if (config.contentGroup instanceof ContentGroupProvider) {\n this._contentGroupProvider = config.contentGroup;\n } else {\n this._contentGroup = config.contentGroup;\n }\n\n this._usage = config.usage;\n this._version = config.version;\n\n this._toolSettings = createWidgetDef(config.toolSettings, WidgetType.ToolSettings);\n this._statusBar = createWidgetDef(config.statusBar, WidgetType.StatusBar);\n this._contentManipulation = createWidgetDef(config.contentManipulation, WidgetType.Tool);\n this._viewNavigation = createWidgetDef(config.viewNavigation, WidgetType.Navigation);\n this._topPanel = createStagePanelDef(config, StagePanelLocation.Top);\n this._leftPanel = createStagePanelDef(config, StagePanelLocation.Left);\n this._rightPanel = createStagePanelDef(config, StagePanelLocation.Right);\n this._bottomPanel = createStagePanelDef(config, StagePanelLocation.Bottom);\n }\n\n /** @internal */\n public updateWidgetDefs(): void {\n // Tracks provided widgets to prevent duplicates.\n const allStageWidgetDefs: WidgetDef[] = [];\n\n // Process panels before zones so extension can explicitly target a widget for a StagePanelSection\n this.panelDefs.forEach((stagePanelDef: StagePanelDef) => {\n stagePanelDef.updateDynamicWidgetDefs(this.id, this.usage, stagePanelDef.location, undefined, allStageWidgetDefs);\n });\n }\n\n /** @beta */\n public restoreLayout() {\n for (const panelDef of this.panelDefs) {\n panelDef.size = panelDef.defaultSize;\n panelDef.panelState = panelDef.defaultState;\n }\n for (const widgetDef of this.widgetDefs) {\n widgetDef.setWidgetState(widgetDef.defaultState);\n }\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.emit({ frontstageDef: this });\n }\n\n /** Used only in UI 2.0 to determine WidgetState from NinezoneState\n * @internal\n */\n public getWidgetCurrentState(widgetDef: WidgetDef): WidgetState | undefined {\n // istanbul ignore else\n if (this.nineZoneState) {\n const location = getTabLocation(this.nineZoneState, widgetDef.id);\n // istanbul ignore next\n if (!location)\n return WidgetState.Hidden;\n\n if (isFloatingTabLocation(location)) {\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[location.floatingWidgetId];\n if (floatingWidget && floatingWidget.hidden)\n return WidgetState.Hidden;\n else\n return WidgetState.Floating;\n }\n\n let collapsedPanel = false;\n // istanbul ignore else\n if (\"side\" in location) {\n const panel = this.nineZoneState.panels[location.side];\n collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;\n }\n const widgetContainer = this.nineZoneState.widgets[location.widgetId];\n if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)\n return WidgetState.Open;\n else\n return WidgetState.Closed;\n }\n return widgetDef.defaultState;\n }\n\n /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState\n * @internal\n */\n public getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number] {\n // istanbul ignore next\n if (this.nineZoneState) {\n const side = toPanelSide(panelDef.location);\n const panel = this.nineZoneState.panels[side];\n if (panel)\n return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0];\n return [StagePanelState.Off, 0];\n }\n return [panelDef.defaultState, panelDef.defaultSize ?? 0];\n }\n\n public isPopoutWidget(widgetId: string) {\n // istanbul ignore else\n if (this.nineZoneState) {\n const location = getTabLocation(this.nineZoneState, widgetId);\n // istanbul ignore else\n if (location)\n return isPopoutTabLocation(location);\n }\n\n return false;\n }\n\n public isFloatingWidget(widgetId: string) {\n // istanbul ignore else\n if (this.nineZoneState) {\n const location = getTabLocation(this.nineZoneState, widgetId);\n // istanbul ignore else\n if (location)\n return isFloatingTabLocation(location);\n }\n\n return false;\n }\n\n /** Create a new floating panel that contains the widget specified by its Id. Supported only when in\n * UI 2.0 or higher.\n * @param widgetId case sensitive Widget Id\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\n * the previous size is used, else {height:400, width:400} is used.\n * @beta\n */\n public floatWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\n // istanbul ignore else\n if (this.nineZoneState) {\n const location = getTabLocation(this.nineZoneState, widgetId);\n if (location) {\n let popoutWidgetContainerId: string | undefined;\n if (isPopoutTabLocation(location)) {\n popoutWidgetContainerId = location.popoutWidgetId;\n }\n const state = floatWidget(this.nineZoneState, widgetId, point, size);\n // istanbul ignore else\n if (state) {\n this.nineZoneState = state;\n setTimeout(() => {\n popoutWidgetContainerId && UiFramework.childWindows.close(popoutWidgetContainerId, true);\n }, 600);\n }\n }\n }\n }\n /** Check widget and panel state to determine whether the widget is currently displayed\n * @param widgetId case-sensitive Widget Id\n * @public\n */\n public isWidgetDisplayed(widgetId: string) {\n let widgetIsVisible = false;\n // istanbul ignore else\n if (this.nineZoneState) {\n const tabLocation = getTabLocation(this.nineZoneState, widgetId);\n // istanbul ignore else\n if (tabLocation) {\n if (isFloatingTabLocation(tabLocation)) {\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[tabLocation.floatingWidgetId];\n // istanbul ignore else\n if (!!!floatingWidget.hidden)\n widgetIsVisible = true;\n } else if (isPopoutTabLocation(tabLocation)) {\n widgetIsVisible = true;\n } else {\n // istanbul ignore else\n if (isPanelTabLocation(tabLocation)) {\n const panel = this.nineZoneState.panels[tabLocation.side];\n const widgetDef = this.findWidgetDef(widgetId);\n if (widgetDef && widgetDef.state === WidgetState.Open && !panel.collapsed)\n widgetIsVisible = true;\n }\n }\n }\n }\n return widgetIsVisible;\n }\n\n /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.\n * @internal */\n public openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string) {\n const location = getWidgetLocation(state, widgetContainerId);\n // istanbul ignore next\n if (!location)\n return;\n // istanbul ignore next\n if (!isPopoutWidgetLocation(location))\n return;\n\n const widget = state.widgets[widgetContainerId];\n const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];\n\n // Popout widget should only contain a single tab.\n // istanbul ignore next\n if (widget.tabs.length !== 1)\n return;\n\n const tabId = widget.tabs[0];\n const widgetDef = this.findWidgetDef(tabId);\n // istanbul ignore next\n if (!widgetDef)\n return;\n\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\n const bounds = Rectangle.create(popoutWidget.bounds);\n\n const position: ChildWindowLocationProps = {\n width: bounds.getWidth(),\n height: bounds.getHeight(),\n left: bounds.left,\n top: bounds.top,\n };\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\n }\n\n /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in\n * UI 2.0 or higher.\n * @param widgetId case sensitive Widget Id\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\n * the previous size is used, else {height:800, width:600} is used.\n * @beta\n */\n public popoutWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\n // istanbul ignore next\n if (!this.nineZoneState)\n return;\n\n let location = getTabLocation(this.nineZoneState, widgetId);\n if (!location || isPopoutTabLocation(location))\n return;\n\n const widgetDef = this.findWidgetDef(widgetId);\n // istanbul ignore next\n if (!widgetDef)\n return;\n\n // get the state to apply that will pop-out the specified WidgetTab to child window.\n let preferredBounds = Rectangle.createFromSize({ height: 800, width: 600 });\n // istanbul ignore next\n if (widgetDef.popoutBounds)\n preferredBounds = widgetDef.popoutBounds;\n if (size)\n preferredBounds = preferredBounds.setSize(size);\n if (point)\n preferredBounds = preferredBounds.setPosition(point);\n\n const state = popoutWidgetToChildWindow(this.nineZoneState, widgetId, preferredBounds);\n this.nineZoneState = state;\n\n // now that the state is updated get the id of the container that houses the widgetTab/widgetId\n location = getTabLocation(state, widgetId);\n assert(!!location && isPopoutTabLocation(location));\n\n const widgetContainerId = location.widgetId;\n const popoutWidget = state.popoutWidgets.byId[widgetContainerId];\n const bounds = Rectangle.create(popoutWidget.bounds);\n\n setTimeout(() => {\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\n const position: ChildWindowLocationProps = {\n width: bounds.getWidth(),\n height: bounds.getHeight(),\n left: bounds.left,\n top: bounds.top,\n };\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\n });\n }\n\n public get isStageClosing() {\n return this._isStageClosing;\n }\n\n public get isApplicationClosing() {\n return this._isApplicationClosing;\n }\n\n public get isReady() {\n return this._isReady;\n }\n\n /** @internal */\n public saveChildWindowSizeAndPosition(childWindowId: string, childWindow: Window) {\n if (!this.nineZoneState)\n return;\n\n const location = getWidgetLocation(this.nineZoneState, childWindowId);\n if (!location || !isPopoutWidgetLocation(location))\n return;\n\n const widget = this.nineZoneState.widgets[location.popoutWidgetId];\n const tabId = widget.tabs[0];\n const widgetDef = this.findWidgetDef(tabId);\n if (!widgetDef)\n return;\n\n const adjustmentWidth = ProcessDetector.isElectronAppFrontend ? 16 : 0;\n const adjustmentHeight = ProcessDetector.isElectronAppFrontend ? 39 : 0;\n\n const width = childWindow.innerWidth + adjustmentWidth;\n const height = childWindow.innerHeight + adjustmentHeight;\n const bounds = Rectangle.createFromSize({ width, height }).offset({ x: childWindow.screenX, y: childWindow.screenY });\n widgetDef.popoutBounds = bounds;\n }\n\n /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child\n * window.\n * @internal\n */\n public dockPopoutWidgetContainer(widgetContainerId: string) {\n if (!this.nineZoneState)\n return;\n\n // Make sure the widgetContainerId is still in popout state. We don't want to set it to docked if the window is being closed because\n // an API call has moved the widget from a popout state to a floating state.\n // istanbul ignore else\n const location = getWidgetLocation(this.nineZoneState, widgetContainerId);\n if (!location || !isPopoutWidgetLocation(location))\n return;\n\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\n this.nineZoneState = state;\n }\n\n /** Finds the container with the specified widget and re-docks all widgets\n * back to the panel zone location that was used when the floating container\n * was generated. Supported only when in UI 2.0 or higher.\n * @param widgetId case sensitive Widget Id.\n * @beta\n */\n public dockWidgetContainer(widgetId: string) {\n // istanbul ignore else\n if (this.nineZoneState) {\n const location = getTabLocation(this.nineZoneState, widgetId);\n if (location) {\n const widgetContainerId = location.widgetId;\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\n state && (this.nineZoneState = state);\n if (isPopoutTabLocation(location)) {\n UiFramework.childWindows.close(location.widgetId, true);\n }\n }\n }\n }\n\n public setFloatingWidgetContainerBounds(floatingWidgetId: string, bounds: RectangleProps) {\n if (!this.nineZoneState || !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))\n return false;\n\n let state = FrameworkStateReducer(this.nineZoneState, {\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id: floatingWidgetId,\n bounds,\n }, this);\n state = FrameworkStateReducer(state, {\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\n id: floatingWidgetId,\n userSized: true,\n }, this);\n this.nineZoneState = state;\n return true;\n }\n\n public getFloatingWidgetContainerIds(): string[] {\n if (!this.nineZoneState)\n return [];\n\n return [...this.nineZoneState.floatingWidgets.allIds];\n }\n\n public getFloatingWidgetContainerIdByWidgetId(widgetId: string): string | undefined {\n if (!this.nineZoneState)\n return undefined;\n\n const location = getTabLocation(this.nineZoneState, widgetId);\n // istanbul ignore else\n if (location && isFloatingTabLocation(location)) {\n return location.floatingWidgetId;\n }\n // istanbul ignore next\n return undefined;\n }\n\n public getFloatingWidgetContainerBounds(floatingWidgetId: string | undefined) {\n if (!floatingWidgetId)\n return undefined;\n\n // istanbul ignore else\n if (this.nineZoneState && (floatingWidgetId in this.nineZoneState.floatingWidgets.byId)) {\n const foundWidget = document.querySelector(`div.nz-widget-floatingWidget[data-widget-id='${floatingWidgetId}']`);\n // istanbul ignore next\n if (foundWidget) {\n const domRect = foundWidget.getBoundingClientRect();\n return { left: domRect.left, right: domRect.right, top: domRect.top, bottom: domRect.bottom };\n }\n return this.nineZoneState.floatingWidgets.byId[floatingWidgetId].bounds;\n }\n return undefined;\n }\n\n private *_widgetDefs(): Iterator<WidgetDef> {\n for (const panelDef of this.panelDefs) {\n for (const widgetDef of panelDef.widgetDefs) {\n yield widgetDef;\n }\n }\n\n return undefined;\n }\n\n /** Iterable of all widget definitions in a frontstage.\n * @internal\n */\n public get widgetDefs() {\n const defs = this._widgetDefs();\n return {\n [Symbol.iterator]() {\n return defs;\n },\n };\n }\n}\n\nfunction createWidgetDef(config: WidgetConfig | undefined, type: WidgetType): WidgetDef | undefined {\n if (!config)\n return undefined;\n\n const widgetDef = WidgetDef.create(config, type);\n return widgetDef;\n}\n\nfunction createStagePanelDef(frontstageConfig: FrontstageConfig, location: StagePanelLocation): StagePanelDef {\n const config = getStagePanel(location, frontstageConfig);\n\n const panelDef = new StagePanelDef();\n panelDef.initializeFromConfig(config, location);\n return panelDef;\n}\n\nfunction getStagePanel(location: StagePanelLocation, config: FrontstageConfig): StagePanelConfig | undefined {\n switch (location) {\n case StagePanelLocation.Top:\n return config.topPanel;\n case StagePanelLocation.Left:\n return config.leftPanel;\n case StagePanelLocation.Right:\n return config.rightPanel;\n case StagePanelLocation.Bottom:\n return config.bottomPanel;\n }\n}\n\n/** Hook that returns active frontstage id.\n * @public\n */\nexport const useActiveFrontstageId = () => {\n const def = useActiveFrontstageDef();\n const id = React.useMemo(() => def ? /* istanbul ignore next */ def.id : \"\", [def]);\n return id;\n};\n\n/** @internal */\nexport function useActiveFrontstageDef() {\n const [def, setDef] = React.useState(UiFramework.frontstages.activeFrontstageDef);\n React.useEffect(() => {\n return UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {\n setDef(args.activatedFrontstageDef);\n });\n }, []);\n return def;\n}\n\n/** Hook that returns the widgetDef for a specific widgetId within the active frontstage.\n * @public\n */\nexport function useSpecificWidgetDef(widgetId: string) {\n const frontstageDef = useActiveFrontstageDef();\n return frontstageDef?.findWidgetDef(widgetId);\n}\n"]}
1
+ {"version":3,"file":"FrontstageDef.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.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 Frontstage\r\n */\r\n\r\n// cSpell:ignore popout\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\r\nimport { PointProps, UiError } from \"@itwin/appui-abstract\";\r\nimport { Rectangle, RectangleProps, SizeProps } from \"@itwin/core-react\";\r\nimport {\r\n dockWidgetContainer, floatWidget, getTabLocation, getWidgetLocation, isFloatingTabLocation, isPanelTabLocation, isPopoutTabLocation, isPopoutWidgetLocation,\r\n NineZoneState, PanelSide, panelSides, popoutWidgetToChildWindow,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentControl } from \"../content/ContentControl\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { StagePanelDef, StagePanelState, toPanelSide } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetControl } from \"../widgets/WidgetControl\";\r\nimport { WidgetDef, WidgetType } from \"../widgets/WidgetDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ChildWindowLocationProps } from \"../framework/FrameworkChildWindows\";\r\nimport { PopoutWidget } from \"../childwindow/PopoutWidget\";\r\nimport { FrameworkStateReducer, SavedWidgets } from \"../widget-panels/Frontstage\";\r\nimport { assert, BentleyStatus, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { FrontstageConfig } from \"./FrontstageConfig\";\r\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\r\nimport { WidgetConfig } from \"../widgets/WidgetConfig\";\r\nimport { StageUsage } from \"./StageUsage\";\r\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\nimport { InternalFrontstageManager } from \"./InternalFrontstageManager\";\r\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\r\n\r\n/** @internal */\r\nexport interface FrontstageEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** @internal */\r\nexport interface FrontstageNineZoneStateChangedEventArgs extends FrontstageEventArgs {\r\n state: NineZoneState | undefined;\r\n}\r\n\r\n/** FrontstageDef class provides an API for a Frontstage.\r\n * @public\r\n */\r\nexport class FrontstageDef {\r\n private _id: string = \"\";\r\n private _initialConfig?: FrontstageConfig;\r\n private _isStageClosing = false;\r\n private _isReady = false;\r\n private _isApplicationClosing = false;\r\n private _usage?: string;\r\n private _version: number = 0;\r\n private _toolSettings?: WidgetDef;\r\n private _statusBar?: WidgetDef;\r\n private _contentManipulation?: WidgetDef;\r\n private _viewNavigation?: WidgetDef;\r\n private _topPanel?: StagePanelDef;\r\n private _leftPanel?: StagePanelDef;\r\n private _rightPanel?: StagePanelDef;\r\n private _bottomPanel?: StagePanelDef;\r\n private _contentLayoutDef?: ContentLayoutDef;\r\n private _contentGroup?: ContentGroup;\r\n private _frontstageProvider?: FrontstageProvider;\r\n private _timeTracker = new TimeTracker();\r\n private _nineZoneState?: NineZoneState;\r\n private _contentGroupProvider?: ContentGroupProvider;\r\n private _floatingContentControls?: ContentControl[];\r\n private _savedWidgetDefs?: SavedWidgets;\r\n\r\n public get id(): string { return this._id; }\r\n public get usage(): string { return this._usage !== undefined ? this._usage : StageUsage.General; }\r\n public get version(): number { return this._version; }\r\n public get contentGroupProvider(): ContentGroupProvider | undefined { return this._contentGroupProvider; }\r\n public get floatingContentControls() { return this._floatingContentControls; }\r\n\r\n public get toolSettings(): WidgetDef | undefined { return this._toolSettings; }\r\n public get statusBar(): WidgetDef | undefined { return this._statusBar; }\r\n public get contentManipulation(): WidgetDef | undefined { return this._contentManipulation; }\r\n public get viewNavigation(): WidgetDef | undefined { return this._viewNavigation; }\r\n\r\n public get topPanel(): StagePanelDef | undefined { return this._topPanel; }\r\n public get leftPanel(): StagePanelDef | undefined { return this._leftPanel; }\r\n public get rightPanel(): StagePanelDef | undefined { return this._rightPanel; }\r\n public get bottomPanel(): StagePanelDef | undefined { return this._bottomPanel; }\r\n\r\n public get contentLayoutDef(): ContentLayoutDef | undefined { return this._contentLayoutDef; }\r\n public get contentGroup(): ContentGroup | undefined { return this._contentGroup; }\r\n public get frontstageProvider(): FrontstageProvider | undefined { return this._frontstageProvider; }\r\n\r\n private toStagePanelLocation(side: PanelSide): StagePanelLocation {\r\n switch (side) {\r\n case \"bottom\":\r\n return StagePanelLocation.Bottom;\r\n case \"left\":\r\n return StagePanelLocation.Left;\r\n case \"right\":\r\n return StagePanelLocation.Right;\r\n case \"top\":\r\n return StagePanelLocation.Top;\r\n }\r\n }\r\n\r\n private populateStateMaps(nineZone: NineZoneState, panelMap: Map<StagePanelDef, StagePanelState>, widgetMap: Map<WidgetDef, WidgetState>) {\r\n for (const panelSide of panelSides) {\r\n const panel = nineZone.panels[panelSide];\r\n const location = this.toStagePanelLocation(panelSide);\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef) {\r\n const panelState = panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;\r\n panelMap.set(panelDef, panelState);\r\n }\r\n for (const widgetId of panel.widgets) {\r\n const widget = nineZone.widgets[widgetId];\r\n // istanbul ignore else\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // istanbul ignore next\r\n for (const widgetId of nineZone.floatingWidgets.allIds) {\r\n const widget = nineZone.widgets[widgetId];\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private triggerStateChangeEventForWidgetsAndPanels(state: NineZoneState | undefined) {\r\n // istanbul ignore else\r\n if (!(this._isStageClosing || this._isApplicationClosing)) {\r\n if (state) {\r\n const originalPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const originalWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n const newPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const newWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n this._nineZoneState && this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);\r\n this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);\r\n\r\n // set internal state value before triggering events\r\n this._nineZoneState = state;\r\n\r\n // now walk and trigger set state events\r\n newWidgetStateMap.forEach((stateValue, widgetDef) => {\r\n const originalState = originalWidgetStateMap.get(widgetDef);\r\n if (originalState !== stateValue) {\r\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({ widgetDef, widgetState: stateValue });\r\n widgetDef.onWidgetStateChanged();\r\n }\r\n });\r\n newPanelStateMap.forEach((stateValue, panelDef) => {\r\n const originalState = originalPanelStateMap.get(panelDef);\r\n if (originalState !== stateValue) {\r\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\r\n panelDef,\r\n panelState: stateValue,\r\n });\r\n }\r\n });\r\n } else {\r\n this._nineZoneState = state;\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get nineZoneState(): NineZoneState | undefined { return this._nineZoneState; }\r\n public set nineZoneState(state: NineZoneState | undefined) {\r\n if (this._nineZoneState === state)\r\n return;\r\n\r\n if (!this._nineZoneState) {\r\n this._nineZoneState = state;\r\n } else {\r\n this.triggerStateChangeEventForWidgetsAndPanels(state);\r\n }\r\n\r\n // istanbul ignore next - don't trigger any side effects until stage \"isReady\"\r\n if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {\r\n InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({\r\n frontstageDef: this,\r\n state,\r\n });\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get savedWidgetDefs() { return this._savedWidgetDefs; }\r\n public set savedWidgetDefs(widgets: SavedWidgets | undefined) {\r\n this._savedWidgetDefs = widgets;\r\n }\r\n\r\n /** @internal */\r\n public get timeTracker(): TimeTracker { return this._timeTracker; }\r\n\r\n /** Created a [[FrontstageDef]] and initialize it */\r\n public static async create(provider: FrontstageProvider) {\r\n const def = new FrontstageDef();\r\n def._frontstageProvider = provider;\r\n\r\n const config = provider.frontstageConfig();\r\n await def.initializeFromConfig(config);\r\n\r\n return def;\r\n }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n protected async _onActivated() { }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n public async onActivated() {\r\n this.updateWidgetDefs();\r\n\r\n const provider = this._contentGroupProvider;\r\n if (provider && this._initialConfig) {\r\n this._contentGroup = await provider.contentGroup(this._initialConfig);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._contentGroup)\r\n throw new UiError(UiFramework.loggerCategory(this), `onActivated: Content Group not defined`);\r\n\r\n this._contentLayoutDef = UiFramework.content.layouts.getForGroup(this._contentGroup);\r\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({ contentLayout: this._contentLayoutDef, contentGroup: this._contentGroup });\r\n\r\n this._timeTracker.startTiming();\r\n await this._onActivated();\r\n }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n protected async _onDeactivated() { }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n public async onDeactivated() {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageDeactivated();\r\n // istanbul ignore next\r\n if (this.contentGroupProvider)\r\n await this.contentGroupProvider.onFrontstageDeactivated();\r\n\r\n this._timeTracker.stopTiming();\r\n\r\n this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking\r\n UiFramework.childWindows.closeAll();\r\n\r\n if (this._floatingContentControls) {\r\n InternalContentDialogManager.closeAll();\r\n this._floatingContentControls = undefined;\r\n }\r\n\r\n await this._onDeactivated();\r\n this._isStageClosing = false;\r\n }\r\n\r\n /** @internal */\r\n public setIsApplicationClosing(value: boolean) {\r\n this._isApplicationClosing = value;\r\n }\r\n\r\n /** Returns once the contained widgets and content controls are ready to use */\r\n public async waitUntilReady(): Promise<void> {\r\n this._isReady = false;\r\n // create an array of control-ready promises\r\n const controlReadyPromises = new Array<Promise<void>>();\r\n this._widgetControls.forEach((control: WidgetControl) => {\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n\r\n // istanbul ignore else\r\n if (this.contentLayoutDef) {\r\n const usedContentIndexes = this.contentLayoutDef.getUsedContentIndexes();\r\n this.contentControls.forEach((control: ContentControl, index: number) => {\r\n // istanbul ignore else\r\n if (usedContentIndexes.includes(index))\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n }\r\n\r\n await Promise.all(controlReadyPromises);\r\n // Frontstage ready\r\n this._isReady = true;\r\n }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n protected _onFrontstageReady(): void { }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n public onFrontstageReady(): void {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageReady();\r\n\r\n this._onFrontstageReady();\r\n }\r\n\r\n /** Sets the Content Layout and Content Group */\r\n public setContentLayoutAndGroup(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): void {\r\n this._contentLayoutDef = contentLayoutDef;\r\n this._contentGroup = contentGroup;\r\n }\r\n\r\n /** Sets the active view content control to the default or first */\r\n public async setActiveContent(): Promise<boolean> {\r\n let contentControl: ContentControl | undefined;\r\n let activated = false;\r\n\r\n // istanbul ignore else\r\n if (!contentControl && this.contentControls.length >= 0) {\r\n contentControl = this.contentControls[0];\r\n }\r\n\r\n if (contentControl) {\r\n UiFramework.content.setActive(contentControl.reactNode, true);\r\n if (contentControl.viewport) {\r\n const status = await IModelApp.viewManager.setSelectedView(contentControl.viewport);\r\n activated = status === BentleyStatus.SUCCESS;\r\n }\r\n }\r\n\r\n return activated;\r\n }\r\n\r\n /** Sets the active view content control */\r\n public setActiveView(newContent: ContentControl, oldContent?: ContentControl): void {\r\n if (oldContent)\r\n oldContent.onDeactivated();\r\n newContent.onActivated();\r\n UiFramework.frontstages.onContentControlActivatedEvent.emit({ activeContentControl: newContent, oldContentControl: oldContent });\r\n }\r\n\r\n /** Sets the active view content control based on the selected viewport. */\r\n public setActiveViewFromViewport(viewport: ScreenViewport): boolean {\r\n const contentControl = this.contentControls.find((control: ContentControl) => control.viewport === viewport);\r\n // istanbul ignore else\r\n if (contentControl) {\r\n UiFramework.content.setActive(contentControl.reactNode, true);\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n /** Gets a [[StagePanelDef]] based on a given panel location\r\n * @beta\r\n */\r\n public getStagePanelDef(location: StagePanelLocation): StagePanelDef | undefined {\r\n let panelDef: StagePanelDef | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelDef = this.topPanel;\r\n break;\r\n case StagePanelLocation.Left:\r\n panelDef = this.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelDef = this.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelDef = this.bottomPanel;\r\n break;\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelDef;\r\n }\r\n\r\n /** Gets a list of [[StagePanelDef]]s\r\n * @beta\r\n */\r\n public get panelDefs(): StagePanelDef[] {\r\n const locations = [\r\n StagePanelLocation.Left, StagePanelLocation.Right,\r\n StagePanelLocation.Top, StagePanelLocation.Bottom,\r\n ];\r\n const panels: StagePanelDef[] = [];\r\n\r\n locations.forEach((location: StagePanelLocation) => {\r\n const panel = this.getStagePanelDef(location);\r\n if (panel)\r\n panels.push(panel);\r\n });\r\n\r\n return panels;\r\n }\r\n\r\n /** Finds a [[WidgetDef]] based on a given id */\r\n public findWidgetDef(id: string): WidgetDef | undefined {\r\n for (const widgetDef of this.widgetDefs) {\r\n if (widgetDef.id === id)\r\n return widgetDef;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Gets the list of [[WidgetControl]]s */\r\n private get _widgetControls(): WidgetControl[] {\r\n const widgetControls = new Array<WidgetControl>();\r\n\r\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\r\n panelDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\r\n const widgetControl = widgetDef.widgetControl;\r\n // istanbul ignore if\r\n if (widgetControl)\r\n widgetControls.push(widgetControl);\r\n });\r\n });\r\n\r\n return widgetControls;\r\n }\r\n\r\n public addFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl)\r\n return;\r\n if (!this._floatingContentControls)\r\n this._floatingContentControls = new Array<ContentControl>();\r\n\r\n this._floatingContentControls.push(contentControl);\r\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n\r\n public dropFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl || !this._floatingContentControls)\r\n return;\r\n\r\n const index = this._floatingContentControls.indexOf(contentControl);\r\n // istanbul ignore else\r\n if (index > -1) {\r\n this._floatingContentControls.splice(index, 1);\r\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n }\r\n\r\n /** Gets the list of [[ContentControl]]s */\r\n public get contentControls(): ContentControl[] {\r\n const contentControls = new Array<ContentControl>();\r\n // istanbul ignore else\r\n if (this.contentGroup) {\r\n contentControls.push(...this.contentGroup.getContentControls());\r\n }\r\n if (this._floatingContentControls) {\r\n contentControls.push(...this._floatingContentControls);\r\n }\r\n return contentControls;\r\n }\r\n\r\n /** Initializes a FrontstageDef from FrontstageConfig.\r\n * @internal\r\n */\r\n public async initializeFromConfig(config: FrontstageConfig): Promise<void> {\r\n this._id = config.id;\r\n this._initialConfig = config;\r\n\r\n if (config.contentGroup instanceof ContentGroupProvider) {\r\n this._contentGroupProvider = config.contentGroup;\r\n } else {\r\n this._contentGroup = config.contentGroup;\r\n }\r\n\r\n this._usage = config.usage;\r\n this._version = config.version;\r\n\r\n this._toolSettings = createWidgetDef(config.toolSettings, WidgetType.ToolSettings);\r\n this._statusBar = createWidgetDef(config.statusBar, WidgetType.StatusBar);\r\n this._contentManipulation = createWidgetDef(config.contentManipulation, WidgetType.Tool);\r\n this._viewNavigation = createWidgetDef(config.viewNavigation, WidgetType.Navigation);\r\n this._topPanel = createStagePanelDef(config, StagePanelLocation.Top);\r\n this._leftPanel = createStagePanelDef(config, StagePanelLocation.Left);\r\n this._rightPanel = createStagePanelDef(config, StagePanelLocation.Right);\r\n this._bottomPanel = createStagePanelDef(config, StagePanelLocation.Bottom);\r\n }\r\n\r\n /** @internal */\r\n public updateWidgetDefs(): void {\r\n // Tracks provided widgets to prevent duplicates.\r\n const allStageWidgetDefs: WidgetDef[] = [];\r\n\r\n // Process panels before zones so extension can explicitly target a widget for a StagePanelSection\r\n this.panelDefs.forEach((stagePanelDef: StagePanelDef) => {\r\n stagePanelDef.updateDynamicWidgetDefs(this.id, this.usage, stagePanelDef.location, undefined, allStageWidgetDefs);\r\n });\r\n }\r\n\r\n /** @beta */\r\n public restoreLayout() {\r\n for (const panelDef of this.panelDefs) {\r\n panelDef.size = panelDef.defaultSize;\r\n panelDef.panelState = panelDef.defaultState;\r\n }\r\n for (const widgetDef of this.widgetDefs) {\r\n widgetDef.setWidgetState(widgetDef.defaultState);\r\n }\r\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.emit({ frontstageDef: this });\r\n }\r\n\r\n /** Used only in UI 2.0 to determine WidgetState from NinezoneState\r\n * @internal\r\n */\r\n public getWidgetCurrentState(widgetDef: WidgetDef): WidgetState | undefined {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetDef.id);\r\n // istanbul ignore next\r\n if (!location)\r\n return WidgetState.Hidden;\r\n\r\n if (isFloatingTabLocation(location)) {\r\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[location.floatingWidgetId];\r\n if (floatingWidget && floatingWidget.hidden)\r\n return WidgetState.Hidden;\r\n else\r\n return WidgetState.Floating;\r\n }\r\n\r\n let collapsedPanel = false;\r\n // istanbul ignore else\r\n if (\"side\" in location) {\r\n const panel = this.nineZoneState.panels[location.side];\r\n collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;\r\n }\r\n const widgetContainer = this.nineZoneState.widgets[location.widgetId];\r\n if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)\r\n return WidgetState.Open;\r\n else\r\n return WidgetState.Closed;\r\n }\r\n return widgetDef.defaultState;\r\n }\r\n\r\n /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState\r\n * @internal\r\n */\r\n public getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number] {\r\n // istanbul ignore next\r\n if (this.nineZoneState) {\r\n const side = toPanelSide(panelDef.location);\r\n const panel = this.nineZoneState.panels[side];\r\n if (panel)\r\n return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0];\r\n return [StagePanelState.Off, 0];\r\n }\r\n return [panelDef.defaultState, panelDef.defaultSize ?? 0];\r\n }\r\n\r\n public isPopoutWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isPopoutTabLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isFloatingWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isFloatingTabLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Create a new floating panel that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:400, width:400} is used.\r\n * @beta\r\n */\r\n public floatWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n if (location) {\r\n let popoutWidgetContainerId: string | undefined;\r\n if (isPopoutTabLocation(location)) {\r\n popoutWidgetContainerId = location.popoutWidgetId;\r\n }\r\n const state = floatWidget(this.nineZoneState, widgetId, point, size);\r\n // istanbul ignore else\r\n if (state) {\r\n this.nineZoneState = state;\r\n setTimeout(() => {\r\n popoutWidgetContainerId && UiFramework.childWindows.close(popoutWidgetContainerId, true);\r\n }, 600);\r\n }\r\n }\r\n }\r\n }\r\n /** Check widget and panel state to determine whether the widget is currently displayed\r\n * @param widgetId case-sensitive Widget Id\r\n * @public\r\n */\r\n public isWidgetDisplayed(widgetId: string) {\r\n let widgetIsVisible = false;\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const tabLocation = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (tabLocation) {\r\n if (isFloatingTabLocation(tabLocation)) {\r\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[tabLocation.floatingWidgetId];\r\n // istanbul ignore else\r\n if (!!!floatingWidget.hidden)\r\n widgetIsVisible = true;\r\n } else if (isPopoutTabLocation(tabLocation)) {\r\n widgetIsVisible = true;\r\n } else {\r\n // istanbul ignore else\r\n if (isPanelTabLocation(tabLocation)) {\r\n const panel = this.nineZoneState.panels[tabLocation.side];\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n if (widgetDef && widgetDef.state === WidgetState.Open && !panel.collapsed)\r\n widgetIsVisible = true;\r\n }\r\n }\r\n }\r\n }\r\n return widgetIsVisible;\r\n }\r\n\r\n /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.\r\n * @internal */\r\n public openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string) {\r\n const location = getWidgetLocation(state, widgetContainerId);\r\n // istanbul ignore next\r\n if (!location)\r\n return;\r\n // istanbul ignore next\r\n if (!isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const widget = state.widgets[widgetContainerId];\r\n const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];\r\n\r\n // Popout widget should only contain a single tab.\r\n // istanbul ignore next\r\n if (widget.tabs.length !== 1)\r\n return;\r\n\r\n const tabId = widget.tabs[0];\r\n const widgetDef = this.findWidgetDef(tabId);\r\n // istanbul ignore next\r\n if (!widgetDef)\r\n return;\r\n\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const bounds = Rectangle.create(popoutWidget.bounds);\r\n\r\n const position: ChildWindowLocationProps = {\r\n width: bounds.getWidth(),\r\n height: bounds.getHeight(),\r\n left: bounds.left,\r\n top: bounds.top,\r\n };\r\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n }\r\n\r\n /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:800, width:600} is used.\r\n * @beta\r\n */\r\n public popoutWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore next\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n let location = getTabLocation(this.nineZoneState, widgetId);\r\n if (!location || isPopoutTabLocation(location))\r\n return;\r\n\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n // istanbul ignore next\r\n if (!widgetDef)\r\n return;\r\n\r\n // get the state to apply that will pop-out the specified WidgetTab to child window.\r\n let preferredBounds = Rectangle.createFromSize({ height: 800, width: 600 });\r\n // istanbul ignore next\r\n if (widgetDef.popoutBounds)\r\n preferredBounds = widgetDef.popoutBounds;\r\n if (size)\r\n preferredBounds = preferredBounds.setSize(size);\r\n if (point)\r\n preferredBounds = preferredBounds.setPosition(point);\r\n\r\n const state = popoutWidgetToChildWindow(this.nineZoneState, widgetId, preferredBounds);\r\n this.nineZoneState = state;\r\n\r\n // now that the state is updated get the id of the container that houses the widgetTab/widgetId\r\n location = getTabLocation(state, widgetId);\r\n assert(!!location && isPopoutTabLocation(location));\r\n\r\n const widgetContainerId = location.widgetId;\r\n const popoutWidget = state.popoutWidgets.byId[widgetContainerId];\r\n const bounds = Rectangle.create(popoutWidget.bounds);\r\n\r\n setTimeout(() => {\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const position: ChildWindowLocationProps = {\r\n width: bounds.getWidth(),\r\n height: bounds.getHeight(),\r\n left: bounds.left,\r\n top: bounds.top,\r\n };\r\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n });\r\n }\r\n\r\n public get isStageClosing() {\r\n return this._isStageClosing;\r\n }\r\n\r\n public get isApplicationClosing() {\r\n return this._isApplicationClosing;\r\n }\r\n\r\n public get isReady() {\r\n return this._isReady;\r\n }\r\n\r\n /** @internal */\r\n public saveChildWindowSizeAndPosition(childWindowId: string, childWindow: Window) {\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n const location = getWidgetLocation(this.nineZoneState, childWindowId);\r\n if (!location || !isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const widget = this.nineZoneState.widgets[location.popoutWidgetId];\r\n const tabId = widget.tabs[0];\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (!widgetDef)\r\n return;\r\n\r\n const adjustmentWidth = ProcessDetector.isElectronAppFrontend ? 16 : 0;\r\n const adjustmentHeight = ProcessDetector.isElectronAppFrontend ? 39 : 0;\r\n\r\n const width = childWindow.innerWidth + adjustmentWidth;\r\n const height = childWindow.innerHeight + adjustmentHeight;\r\n const bounds = Rectangle.createFromSize({ width, height }).offset({ x: childWindow.screenX, y: childWindow.screenY });\r\n widgetDef.popoutBounds = bounds;\r\n }\r\n\r\n /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child\r\n * window.\r\n * @internal\r\n */\r\n public dockPopoutWidgetContainer(widgetContainerId: string) {\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n // Make sure the widgetContainerId is still in popout state. We don't want to set it to docked if the window is being closed because\r\n // an API call has moved the widget from a popout state to a floating state.\r\n // istanbul ignore else\r\n const location = getWidgetLocation(this.nineZoneState, widgetContainerId);\r\n if (!location || !isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n this.nineZoneState = state;\r\n }\r\n\r\n /** Finds the container with the specified widget and re-docks all widgets\r\n * back to the panel zone location that was used when the floating container\r\n * was generated. Supported only when in UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id.\r\n * @beta\r\n */\r\n public dockWidgetContainer(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n if (location) {\r\n const widgetContainerId = location.widgetId;\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n state && (this.nineZoneState = state);\r\n if (isPopoutTabLocation(location)) {\r\n UiFramework.childWindows.close(location.widgetId, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public setFloatingWidgetContainerBounds(floatingWidgetId: string, bounds: RectangleProps) {\r\n if (!this.nineZoneState || !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))\r\n return false;\r\n\r\n let state = FrameworkStateReducer(this.nineZoneState, {\r\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\r\n id: floatingWidgetId,\r\n bounds,\r\n }, this);\r\n state = FrameworkStateReducer(state, {\r\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\r\n id: floatingWidgetId,\r\n userSized: true,\r\n }, this);\r\n this.nineZoneState = state;\r\n return true;\r\n }\r\n\r\n public getFloatingWidgetContainerIds(): string[] {\r\n if (!this.nineZoneState)\r\n return [];\r\n\r\n return [...this.nineZoneState.floatingWidgets.allIds];\r\n }\r\n\r\n public getFloatingWidgetContainerIdByWidgetId(widgetId: string): string | undefined {\r\n if (!this.nineZoneState)\r\n return undefined;\r\n\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location && isFloatingTabLocation(location)) {\r\n return location.floatingWidgetId;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n public getFloatingWidgetContainerBounds(floatingWidgetId: string | undefined) {\r\n if (!floatingWidgetId)\r\n return undefined;\r\n\r\n // istanbul ignore else\r\n if (this.nineZoneState && (floatingWidgetId in this.nineZoneState.floatingWidgets.byId)) {\r\n const foundWidget = document.querySelector(`div.nz-widget-floatingWidget[data-widget-id='${floatingWidgetId}']`);\r\n // istanbul ignore next\r\n if (foundWidget) {\r\n const domRect = foundWidget.getBoundingClientRect();\r\n return { left: domRect.left, right: domRect.right, top: domRect.top, bottom: domRect.bottom };\r\n }\r\n return this.nineZoneState.floatingWidgets.byId[floatingWidgetId].bounds;\r\n }\r\n return undefined;\r\n }\r\n\r\n private *_widgetDefs(): Iterator<WidgetDef> {\r\n for (const panelDef of this.panelDefs) {\r\n for (const widgetDef of panelDef.widgetDefs) {\r\n yield widgetDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Iterable of all widget definitions in a frontstage.\r\n * @internal\r\n */\r\n public get widgetDefs() {\r\n const defs = this._widgetDefs();\r\n return {\r\n [Symbol.iterator]() {\r\n return defs;\r\n },\r\n };\r\n }\r\n}\r\n\r\nfunction createWidgetDef(config: WidgetConfig | undefined, type: WidgetType): WidgetDef | undefined {\r\n if (!config)\r\n return undefined;\r\n\r\n const widgetDef = WidgetDef.create(config, type);\r\n return widgetDef;\r\n}\r\n\r\nfunction createStagePanelDef(frontstageConfig: FrontstageConfig, location: StagePanelLocation): StagePanelDef {\r\n const config = getStagePanel(location, frontstageConfig);\r\n\r\n const panelDef = new StagePanelDef();\r\n panelDef.initializeFromConfig(config, location);\r\n return panelDef;\r\n}\r\n\r\nfunction getStagePanel(location: StagePanelLocation, config: FrontstageConfig): StagePanelConfig | undefined {\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n return config.topPanel;\r\n case StagePanelLocation.Left:\r\n return config.leftPanel;\r\n case StagePanelLocation.Right:\r\n return config.rightPanel;\r\n case StagePanelLocation.Bottom:\r\n return config.bottomPanel;\r\n }\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(UiFramework.frontstages.activeFrontstageDef);\r\n React.useEffect(() => {\r\n return UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {\r\n setDef(args.activatedFrontstageDef);\r\n });\r\n }, []);\r\n return def;\r\n}\r\n\r\n/** Hook that returns the widgetDef for a specific widgetId within the active frontstage.\r\n * @public\r\n */\r\nexport function useSpecificWidgetDef(widgetId: string) {\r\n const frontstageDef = useActiveFrontstageDef();\r\n return frontstageDef?.findWidgetDef(widgetId);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAYH,2EAAoF;AAEpF;;;GAGG;AACH,MAAa,iBAAiB;IAC5B;;MAEE;IACK,MAAM,CAAC,UAAU;QACtB,qDAAQ,CAAC,UAAU,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,0BAA0B,CAAC,MAAc;QACrD,OAAO,qDAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB;IACT,MAAM,KAAK,aAAa,KAAc,OAAO,qDAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,aAAa,CAAC,CAAU,IAAI,qDAAQ,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IAE3E,0HAA0H;IACnH,MAAM,KAAK,SAAS,KAAc,OAAO,qDAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAErE,gBAAgB;IACT,MAAM,KAAK,YAAY,KAAK,OAAO,qDAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3D,MAAM,KAAK,YAAY,CAAC,IAAI;QACjC,qDAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,gBAAgB;IACT,MAAM,KAAK,cAAc;QAC9B,OAAO,qDAAQ,CAAC,cAAc,CAAC;IACjC,CAAC;IAED,wCAAwC;IACjC,MAAM,KAAK,4BAA4B,KAAK,OAAO,qDAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAElG,sCAAsC;IAC/B,MAAM,KAAK,0BAA0B,KAAK,OAAO,qDAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAE9F,sCAAsC;IAC/B,MAAM,KAAK,sBAAsB,KAAK,OAAO,qDAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEtF,0CAA0C;IACnC,MAAM,KAAK,6BAA6B,KAAK,OAAO,qDAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEpG,yCAAyC;IAClC,MAAM,KAAK,4BAA4B,KAAK,OAAO,qDAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAElG;;SAEK;IACE,MAAM,KAAK,oCAAoC,KAAK,OAAO,qDAAQ,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAElH,gCAAgC;IACzB,MAAM,KAAK,oBAAoB,KAAK,OAAO,qDAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAElF,oCAAoC;IAC7B,MAAM,KAAK,yBAAyB,KAAK,OAAO,qDAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE5F;;SAEK;IACE,MAAM,KAAK,sBAAsB,KAAK,OAAO,qDAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEtF,mCAAmC;IAC5B,MAAM,KAAK,sBAAsB,KAAK,OAAO,qDAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEtF,0CAA0C;IACnC,MAAM,KAAK,6BAA6B,KAAK,OAAO,qDAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEpG,2CAA2C;IACpC,MAAM,KAAK,8BAA8B,KAAK,OAAO,qDAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAEtG,0CAA0C;IACnC,MAAM,KAAK,6BAA6B,KAAK,OAAO,qDAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEpG,sCAAsC;IAC/B,MAAM,KAAK,yBAAyB,KAAK,OAAO,qDAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE5F,gBAAgB;IACT,MAAM,KAAK,yBAAyB,KAAK,OAAO,qDAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE5F,gBAAgB;IACT,MAAM,KAAK,iBAAiB,KAAK,OAAO,qDAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE5E,gBAAgB;IACT,MAAM,KAAK,mBAAmB,KAAK,OAAO,qDAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEhF,gBAAgB;IACT,MAAM,KAAK,wBAAwB,KAAK,OAAO,qDAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE1F,gBAAgB;IACT,MAAM,KAAK,qCAAqC,KAAK,OAAO,qDAAQ,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAEpH,gBAAgB;IACT,MAAM,KAAK,8BAA8B,KAAK,OAAO,qDAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAEtG;;SAEK;IACE,MAAM,KAAK,wBAAwB,KAAK,OAAO,qDAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE1F,gBAAgB;IACT,MAAM,KAAK,uBAAuB,KAAK,OAAO,qDAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAExF;SACK;IACE,MAAM,CAAC,mBAAmB;QAC/B,OAAO,qDAAQ,CAAC,mBAAmB,EAAE,CAAC;IACxC,CAAC;IAED;SACK;IACE,MAAM,CAAC,wBAAwB;QACpC,OAAO,qDAAQ,CAAC,wBAAwB,EAAE,CAAC;IAC7C,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,8BAA8B,CAAC,QAA4B;QACvE,OAAO,qDAAQ,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;SAEK;IACE,MAAM,CAAC,qBAAqB,CAAC,kBAAsC;QACxE,OAAO,qDAAQ,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;SAKK;IACE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAW;QAC9C,OAAO,qDAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;SAEK;IACE,MAAM,KAAK,mBAAmB;QACnC,OAAO,qDAAQ,CAAC,mBAAmB,CAAC;IACtC,CAAC;IAED;;SAEK;IACE,MAAM,KAAK,kBAAkB;QAClC,OAAO,qDAAQ,CAAC,kBAAkB,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,YAAoB;QAC9C,OAAO,qDAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED;;;SAGK;IACE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAoB;QAC1D,OAAO,qDAAQ,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAED;;;SAGK;IACE,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,aAAwC;QACjF,OAAO,qDAAQ,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAED;SACK;IACE,MAAM,CAAC,KAAK,CAAC,uBAAuB;QACzC,OAAO,qDAAQ,CAAC,uBAAuB,EAAE,CAAC;IAC5C,CAAC;IAED;;SAEK;IACE,MAAM,KAAK,YAAY;QAC5B,OAAO,qDAAQ,CAAC,YAAY,CAAC;IAC/B,CAAC;IAED,8BAA8B;IACvB,MAAM,CAAC,eAAe,CAAC,MAAc;QAC1C,OAAO,qDAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,2BAA2B;IACpB,MAAM,CAAC,aAAa,CAAC,IAAU;QACpC,OAAO,qDAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,iDAAiD;IAC1C,MAAM,KAAK,qBAAqB;QACrC,OAAO,qDAAQ,CAAC,qBAAqB,CAAC;IACxC,CAAC;IAED;;;SAGK;IACE,MAAM,KAAK,0BAA0B;QAC1C,OAAO,qDAAQ,CAAC,0BAA0B,CAAC;IAC7C,CAAC;IAED;;;SAGK;IACE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,gBAAkC,EAAE,YAA0B;QAChG,OAAO,qDAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED;;SAEK;IACE,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,YAA0B;QAClE,OAAO,qDAAQ,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAED;;SAEK;IACE,MAAM,CAAC,mBAAmB,CAAC,eAAoC;QACpE,OAAO,qDAAQ,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC;IAED;SACK;IACE,MAAM,CAAC,oBAAoB;QAChC,OAAO,qDAAQ,CAAC,oBAAoB,EAAE,CAAC;IACzC,CAAC;IAED;SACK;IACE,MAAM,CAAC,qBAAqB;QACjC,OAAO,qDAAQ,CAAC,qBAAqB,EAAE,CAAC;IAC1C,CAAC;IAED;;SAEK;IACE,MAAM,KAAK,qBAAqB;QACrC,OAAO,qDAAQ,CAAC,qBAAqB,CAAC;IACxC,CAAC;IAED;;SAEK;IACE,MAAM,KAAK,oBAAoB;QACpC,OAAO,qDAAQ,CAAC,oBAAoB,CAAC;IACvC,CAAC;IAED;;;SAGK;IACE,MAAM,CAAC,sBAAsB,CAAC,eAAuB,EAAE,gBAAkC;QAC9F,OAAO,qDAAQ,CAAC,sBAAsB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAC5E,CAAC;IAED;;;;SAIK;IACE,MAAM,CAAC,cAAc,CAAC,QAAgB,EAAE,KAAkB;QAC/D,OAAO,qDAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED;;;SAGK;IACE,MAAM,CAAC,UAAU,CAAC,QAAgB;QACvC,OAAO,qDAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;SAEK;IACE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,gBAA+B;QACtE,OAAO,qDAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED;SACK;IACE,MAAM,CAAC,KAAK,CAAC,qBAAqB;QACvC,OAAO,qDAAQ,CAAC,qBAAqB,EAAE,CAAC;IAC1C,CAAC;IAED;;SAEK;IACE,MAAM,KAAK,sBAAsB;QACtC,OAAO,qDAAQ,CAAC,sBAAsB,CAAC;IACzC,CAAC;IAED;;SAEK;IACE,MAAM,KAAK,qBAAqB;QACrC,OAAO,qDAAQ,CAAC,qBAAqB,CAAC;IACxC,CAAC;CACF;AArTD,8CAqTC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport { WidgetState } from \"../widgets/WidgetState\";\nimport { ContentGroup } from \"../content/ContentGroup\";\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\nimport { WidgetDef } from \"../widgets/WidgetDef\";\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\nimport { ToolUiProvider } from \"../toolsettings/ToolUiProvider\";\nimport { FrontstageDef } from \"./FrontstageDef\";\nimport { FrontstageProvider } from \"./FrontstageProvider\";\nimport { ModalFrontstageInfo } from \"../framework/FrameworkFrontstages\";\nimport { InternalFrontstageManager as internal } from \"./InternalFrontstageManager\";\n\n/** Frontstage Manager class.\n * @public\n * @deprecated in 3.7. Use `UiFramework.frontstages` property.\n */\nexport class FrontstageManager {\n /** Initializes the InternalFrontstageManager\n * @deprecated in 3.7. This is called internally.\n */\n public static initialize() {\n internal.initialize();\n }\n\n /** This should only be called within InternalFrontstageManager and its tests.\n * @internal\n */\n public static ensureToolInformationIsSet(toolId: string): void {\n return internal.ensureToolInformationIsSet(toolId);\n }\n\n /** @internal */\n public static get isInitialized(): boolean { return internal.isInitialized; }\n public static set isInitialized(v: boolean) { internal.isInitialized = v; }\n\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n public static get isLoading(): boolean { return internal.isLoading; }\n\n /** @internal */\n public static get nineZoneSize() { return internal.nineZoneSize; }\n\n public static set nineZoneSize(size) {\n internal.nineZoneSize = size;\n }\n\n /** @internal */\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\n return internal.frontstageDefs;\n }\n\n /** Get Frontstage Deactivated event. */\n public static get onFrontstageDeactivatedEvent() { return internal.onFrontstageDeactivatedEvent; }\n\n /** Get Frontstage Activated event. */\n public static get onFrontstageActivatedEvent() { return internal.onFrontstageActivatedEvent; }\n\n /** Get Frontstage Activated event. */\n public static get onFrontstageReadyEvent() { return internal.onFrontstageReadyEvent; }\n\n /** Get Modal Frontstage Changed event. */\n public static get onModalFrontstageChangedEvent() { return internal.onModalFrontstageChangedEvent; }\n\n /** Get Modal Frontstage Closed event. */\n public static get onModalFrontstageClosedEvent() { return internal.onModalFrontstageClosedEvent; }\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n public static get onCloseModalFrontstageRequestedEvent() { return internal.onCloseModalFrontstageRequestedEvent; }\n\n /** Get Tool Activated event. */\n public static get onToolActivatedEvent() { return internal.onToolActivatedEvent; }\n\n /** Get ToolSetting Reload event. */\n public static get onToolSettingsReloadEvent() { return internal.onToolSettingsReloadEvent; }\n\n /** Get Tool Panel Opened event.\n * @internal\n */\n public static get onToolPanelOpenedEvent() { return internal.onToolPanelOpenedEvent; }\n\n /** Get Tool Icon Changed event. */\n public static get onToolIconChangedEvent() { return internal.onToolIconChangedEvent; }\n\n /** Get Content Layout Activated event. */\n public static get onContentLayoutActivatedEvent() { return internal.onContentLayoutActivatedEvent; }\n\n /** Get Content Control Activated event. */\n public static get onContentControlActivatedEvent() { return internal.onContentControlActivatedEvent; }\n\n /** Get Navigation Aid Activated event. */\n public static get onNavigationAidActivatedEvent() { return internal.onNavigationAidActivatedEvent; }\n\n /** Get Widget State Changed event. */\n public static get onWidgetStateChangedEvent() { return internal.onWidgetStateChangedEvent; }\n\n /** @internal */\n public static get onWidgetLabelChangedEvent() { return internal.onWidgetLabelChangedEvent; }\n\n /** @internal */\n public static get onWidgetShowEvent() { return internal.onWidgetShowEvent; }\n\n /** @internal */\n public static get onWidgetExpandEvent() { return internal.onWidgetExpandEvent; }\n\n /** @internal */\n public static get onWidgetDefsUpdatedEvent() { return internal.onWidgetDefsUpdatedEvent; }\n\n /** @internal */\n public static get onFrontstageNineZoneStateChangedEvent() { return internal.onFrontstageNineZoneStateChangedEvent; }\n\n /** @internal */\n public static get onFrontstageRestoreLayoutEvent() { return internal.onFrontstageRestoreLayoutEvent; }\n\n /** Get Widget State Changed event.\n * @alpha\n */\n public static get onPanelStateChangedEvent() { return internal.onPanelStateChangedEvent; }\n\n /** @internal */\n public static get onPanelSizeChangedEvent() { return internal.onPanelSizeChangedEvent; }\n\n /** Clears the Frontstage map.\n */\n public static clearFrontstageDefs(): void {\n return internal.clearFrontstageDefs();\n }\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n */\n public static clearFrontstageProviders(): void {\n return internal.clearFrontstageProviders();\n }\n\n /** @internal */\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\n return internal.clearFrontstageDefsForIModelId(iModelId);\n }\n\n /** Add a Frontstage via a [[FrontstageProvider]].\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\n */\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\n return internal.addFrontstageProvider(frontstageProvider);\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\n return internal.getFrontstageDef(id);\n }\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n public static get activeFrontstageDef(): FrontstageDef | undefined {\n return internal.activeFrontstageDef;\n }\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n public static get activeFrontstageId(): string {\n return internal.activeFrontstageId;\n }\n\n public static hasFrontstage(frontstageId: string) {\n return internal.hasFrontstage(frontstageId);\n }\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\n */\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\n return internal.setActiveFrontstage(frontstageId);\n }\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\n return internal.setActiveFrontstageDef(frontstageDef);\n }\n\n /** Deactivates the active FrontstageDef.\n */\n public static async deactivateFrontstageDef(): Promise<void> {\n return internal.deactivateFrontstageDef();\n }\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n public static get activeToolId(): string {\n return internal.activeToolId;\n }\n\n /** Sets the active tool id */\n public static setActiveToolId(toolId: string): void {\n return internal.setActiveToolId(toolId);\n }\n\n /** Sets the active tool */\n public static setActiveTool(tool: Tool): void {\n return internal.setActiveTool(tool);\n }\n\n /** Gets the active tool's [[ToolInformation]] */\n public static get activeToolInformation(): ToolInformation | undefined {\n return internal.activeToolInformation;\n }\n\n /** Gets the Tool Setting React node of the active tool.\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\n * @internal\n */\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\n return internal.activeToolSettingsProvider;\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentLayoutDef Content layout to make active\n * @param contentGroup Content Group to make active\n */\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\n return internal.setActiveLayout(contentLayoutDef, contentGroup);\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentGroup Content Group to make active\n */\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\n return internal.setActiveContentGroup(contentGroup);\n }\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\n return internal.openModalFrontstage(modalFrontstage);\n }\n\n /** Closes the top-most modal Frontstage.\n */\n public static closeModalFrontstage(): void {\n return internal.closeModalFrontstage();\n }\n\n /** Updates the top-most modal Frontstage.\n */\n public static updateModalFrontstage(): void {\n return internal.updateModalFrontstage();\n }\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\n return internal.activeModalFrontstage;\n }\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n public static get modalFrontstageCount(): number {\n return internal.modalFrontstageCount;\n }\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\n return internal.setActiveNavigationAid(navigationAidId, iModelConnection);\n }\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\n return internal.setWidgetState(widgetId, state);\n }\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n public static findWidget(widgetId: string): WidgetDef | undefined {\n return internal.findWidget(widgetId);\n }\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\n return internal.openNestedFrontstage(nestedFrontstage);\n }\n\n /** Closes the top-most nested Frontstage.\n */\n public static async closeNestedFrontstage(): Promise<void> {\n return internal.closeNestedFrontstage();\n }\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\n return internal.activeNestedFrontstage;\n }\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n public static get nestedFrontstageCount(): number {\n return internal.nestedFrontstageCount;\n }\n}\n"]}
1
+ {"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.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 Frontstage\r\n */\r\n\r\nimport { IModelConnection, Tool } from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\nimport { ContentGroup } from \"../content/ContentGroup\";\r\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\r\nimport { ToolUiProvider } from \"../toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { ModalFrontstageInfo } from \"../framework/FrameworkFrontstages\";\r\nimport { InternalFrontstageManager as internal } from \"./InternalFrontstageManager\";\r\n\r\n/** Frontstage Manager class.\r\n * @public\r\n * @deprecated in 3.7. Use `UiFramework.frontstages` property.\r\n */\r\nexport class FrontstageManager {\r\n /** Initializes the InternalFrontstageManager\r\n * @deprecated in 3.7. This is called internally.\r\n */\r\n public static initialize() {\r\n internal.initialize();\r\n }\r\n\r\n /** This should only be called within InternalFrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n return internal.ensureToolInformationIsSet(toolId);\r\n }\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return internal.isInitialized; }\r\n public static set isInitialized(v: boolean) { internal.isInitialized = v; }\r\n\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n public static get isLoading(): boolean { return internal.isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return internal.nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n internal.nineZoneSize = size;\r\n }\r\n\r\n /** @internal */\r\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\r\n return internal.frontstageDefs;\r\n }\r\n\r\n /** Get Frontstage Deactivated event. */\r\n public static get onFrontstageDeactivatedEvent() { return internal.onFrontstageDeactivatedEvent; }\r\n\r\n /** Get Frontstage Activated event. */\r\n public static get onFrontstageActivatedEvent() { return internal.onFrontstageActivatedEvent; }\r\n\r\n /** Get Frontstage Activated event. */\r\n public static get onFrontstageReadyEvent() { return internal.onFrontstageReadyEvent; }\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n public static get onModalFrontstageChangedEvent() { return internal.onModalFrontstageChangedEvent; }\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n public static get onModalFrontstageClosedEvent() { return internal.onModalFrontstageClosedEvent; }\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n public static get onCloseModalFrontstageRequestedEvent() { return internal.onCloseModalFrontstageRequestedEvent; }\r\n\r\n /** Get Tool Activated event. */\r\n public static get onToolActivatedEvent() { return internal.onToolActivatedEvent; }\r\n\r\n /** Get ToolSetting Reload event. */\r\n public static get onToolSettingsReloadEvent() { return internal.onToolSettingsReloadEvent; }\r\n\r\n /** Get Tool Panel Opened event.\r\n * @internal\r\n */\r\n public static get onToolPanelOpenedEvent() { return internal.onToolPanelOpenedEvent; }\r\n\r\n /** Get Tool Icon Changed event. */\r\n public static get onToolIconChangedEvent() { return internal.onToolIconChangedEvent; }\r\n\r\n /** Get Content Layout Activated event. */\r\n public static get onContentLayoutActivatedEvent() { return internal.onContentLayoutActivatedEvent; }\r\n\r\n /** Get Content Control Activated event. */\r\n public static get onContentControlActivatedEvent() { return internal.onContentControlActivatedEvent; }\r\n\r\n /** Get Navigation Aid Activated event. */\r\n public static get onNavigationAidActivatedEvent() { return internal.onNavigationAidActivatedEvent; }\r\n\r\n /** Get Widget State Changed event. */\r\n public static get onWidgetStateChangedEvent() { return internal.onWidgetStateChangedEvent; }\r\n\r\n /** @internal */\r\n public static get onWidgetLabelChangedEvent() { return internal.onWidgetLabelChangedEvent; }\r\n\r\n /** @internal */\r\n public static get onWidgetShowEvent() { return internal.onWidgetShowEvent; }\r\n\r\n /** @internal */\r\n public static get onWidgetExpandEvent() { return internal.onWidgetExpandEvent; }\r\n\r\n /** @internal */\r\n public static get onWidgetDefsUpdatedEvent() { return internal.onWidgetDefsUpdatedEvent; }\r\n\r\n /** @internal */\r\n public static get onFrontstageNineZoneStateChangedEvent() { return internal.onFrontstageNineZoneStateChangedEvent; }\r\n\r\n /** @internal */\r\n public static get onFrontstageRestoreLayoutEvent() { return internal.onFrontstageRestoreLayoutEvent; }\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n public static get onPanelStateChangedEvent() { return internal.onPanelStateChangedEvent; }\r\n\r\n /** @internal */\r\n public static get onPanelSizeChangedEvent() { return internal.onPanelSizeChangedEvent; }\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n return internal.clearFrontstageDefs();\r\n }\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n public static clearFrontstageProviders(): void {\r\n return internal.clearFrontstageProviders();\r\n }\r\n\r\n /** @internal */\r\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\r\n return internal.clearFrontstageDefsForIModelId(iModelId);\r\n }\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\r\n return internal.addFrontstageProvider(frontstageProvider);\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\r\n return internal.getFrontstageDef(id);\r\n }\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n public static get activeFrontstageDef(): FrontstageDef | undefined {\r\n return internal.activeFrontstageDef;\r\n }\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n public static get activeFrontstageId(): string {\r\n return internal.activeFrontstageId;\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n return internal.hasFrontstage(frontstageId);\r\n }\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\r\n return internal.setActiveFrontstage(frontstageId);\r\n }\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\r\n return internal.setActiveFrontstageDef(frontstageDef);\r\n }\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n public static async deactivateFrontstageDef(): Promise<void> {\r\n return internal.deactivateFrontstageDef();\r\n }\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n public static get activeToolId(): string {\r\n return internal.activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n return internal.setActiveToolId(toolId);\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n return internal.setActiveTool(tool);\r\n }\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n public static get activeToolInformation(): ToolInformation | undefined {\r\n return internal.activeToolInformation;\r\n }\r\n\r\n /** Gets the Tool Setting React node of the active tool.\r\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\r\n * @internal\r\n */\r\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\r\n return internal.activeToolSettingsProvider;\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n return internal.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n return internal.setActiveContentGroup(contentGroup);\r\n }\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n return internal.openModalFrontstage(modalFrontstage);\r\n }\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n public static closeModalFrontstage(): void {\r\n return internal.closeModalFrontstage();\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n return internal.updateModalFrontstage();\r\n }\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\r\n return internal.activeModalFrontstage;\r\n }\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n public static get modalFrontstageCount(): number {\r\n return internal.modalFrontstageCount;\r\n }\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\r\n return internal.setActiveNavigationAid(navigationAidId, iModelConnection);\r\n }\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\r\n return internal.setWidgetState(widgetId, state);\r\n }\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n public static findWidget(widgetId: string): WidgetDef | undefined {\r\n return internal.findWidget(widgetId);\r\n }\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\r\n return internal.openNestedFrontstage(nestedFrontstage);\r\n }\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n public static async closeNestedFrontstage(): Promise<void> {\r\n return internal.closeNestedFrontstage();\r\n }\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\r\n return internal.activeNestedFrontstage;\r\n }\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n public static get nestedFrontstageCount(): number {\r\n return internal.nestedFrontstageCount;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;GAEG;AACH,MAAsB,kBAAkB;CAKvC;AALD,gDAKC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport { FrontstageConfig } from \"./FrontstageConfig\";\n\n/** Provides a definition required to create a Frontstage.\n * @public\n */\nexport abstract class FrontstageProvider {\n /** Get the FrontstageProvider id. */\n public abstract get id(): string;\n /** Return the frontstage configuration. */\n public abstract frontstageConfig(): FrontstageConfig;\n}\n"]}
1
+ {"version":3,"file":"FrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH;;GAEG;AACH,MAAsB,kBAAkB;CAKvC;AALD,gDAKC","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 Frontstage\r\n */\r\n\r\nimport { FrontstageConfig } from \"./FrontstageConfig\";\r\n\r\n/** Provides a definition required to create a Frontstage.\r\n * @public\r\n */\r\nexport abstract class FrontstageProvider {\r\n /** Get the FrontstageProvider id. */\r\n public abstract get id(): string;\r\n /** Return the frontstage configuration. */\r\n public abstract frontstageConfig(): FrontstageConfig;\r\n}\r\n"]}