@itwin/appui-react 4.5.0 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/lib/cjs/appui-react/UiFramework.js +7 -4
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts +2 -2
  5. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  7. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  9. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -1
  10. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  11. package/lib/cjs/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
  12. package/lib/cjs/appui-react/childwindow/CopyStyles.js +3 -1
  13. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  14. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +3 -2
  16. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  17. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  18. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  19. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  20. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  21. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  22. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  23. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  24. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  25. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  26. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  27. package/lib/cjs/appui-react/content/IModelViewport.js +6 -3
  28. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  29. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  30. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  31. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  32. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  33. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  34. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  35. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +6 -6
  36. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  38. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  40. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  41. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +4 -4
  42. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  43. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  44. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +5 -5
  45. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  47. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +2 -2
  48. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  50. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  51. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  52. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  53. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  54. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +1 -2
  55. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  57. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +22 -26
  58. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +177 -216
  60. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  61. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +3 -7
  62. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +2 -6
  64. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  65. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +3 -2
  66. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  67. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  68. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  69. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  71. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  73. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  74. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  75. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  76. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  77. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  78. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  79. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -1
  80. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  81. package/lib/cjs/appui-react/messages/ActivityMessage.js +7 -5
  82. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  83. package/lib/cjs/appui-react/messages/MessageManager.d.ts +0 -1
  84. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/messages/MessageManager.js +1 -2
  86. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  87. package/lib/cjs/appui-react/messages/Pointer.d.ts +1 -2
  88. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/messages/Pointer.js +1 -1
  90. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  91. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  92. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  93. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +2 -1
  94. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  95. package/lib/cjs/appui-react/popup/PopupManager.js +2 -1
  96. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  97. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +2 -2
  98. package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  100. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  101. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  102. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  103. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  104. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  105. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +16 -20
  106. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +86 -116
  108. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  109. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  110. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  111. package/lib/cjs/appui-react/statusbar/StatusBar.js +5 -3
  112. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  113. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  114. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -2
  115. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  116. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  117. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  118. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts +36 -0
  119. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts.map +1 -0
  120. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.js +134 -0
  121. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -0
  122. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +1 -1
  123. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  125. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  126. package/lib/cjs/appui-react/syncui/UiSyncEvent.d.ts +16 -0
  127. package/lib/cjs/appui-react/syncui/UiSyncEvent.d.ts.map +1 -0
  128. package/lib/cjs/appui-react/syncui/UiSyncEvent.js +18 -0
  129. package/lib/cjs/appui-react/syncui/UiSyncEvent.js.map +1 -0
  130. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +4 -6
  131. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  132. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  133. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  134. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +17 -10
  135. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  136. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  137. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  138. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
  139. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  140. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  141. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  142. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  143. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  144. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  145. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  146. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  147. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  148. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  149. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  150. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  152. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  154. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  155. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  156. package/lib/cjs/appui-react/widget-panels/Content.js +9 -8
  157. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  158. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +7 -29
  159. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/widget-panels/Frontstage.js +128 -463
  161. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  162. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  163. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  164. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  165. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  166. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +34 -15
  168. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  169. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  170. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  171. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  172. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  173. package/lib/cjs/appui-react/widgets/Widget.d.ts +10 -4
  174. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  175. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  176. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +9 -29
  177. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/widgets/WidgetDef.js +90 -46
  179. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  180. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  181. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  182. package/lib/cjs/appui-react.d.ts +1 -0
  183. package/lib/cjs/appui-react.d.ts.map +1 -1
  184. package/lib/cjs/appui-react.js +1 -0
  185. package/lib/cjs/appui-react.js.map +1 -1
  186. package/lib/esm/appui-react/UiFramework.js +7 -4
  187. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  188. package/lib/esm/appui-react/accudraw/MenuButton.d.ts +2 -2
  189. package/lib/esm/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  190. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  191. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  192. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  193. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
  194. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  195. package/lib/esm/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
  196. package/lib/esm/appui-react/childwindow/CopyStyles.js +3 -1
  197. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  198. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  199. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +3 -2
  200. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  201. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  202. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  203. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  204. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  205. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  206. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  207. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  208. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  209. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  210. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  211. package/lib/esm/appui-react/content/IModelViewport.js +6 -3
  212. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  213. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  214. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  215. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  216. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  217. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  218. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  219. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +6 -6
  220. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  221. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  222. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  223. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  224. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  225. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +4 -4
  226. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  227. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  228. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +5 -5
  229. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  230. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  231. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +2 -2
  232. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  233. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  234. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  235. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  236. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  237. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  238. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +1 -2
  239. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  240. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  241. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +22 -26
  242. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  243. package/lib/esm/appui-react/frontstage/FrontstageDef.js +181 -220
  244. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  245. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +3 -7
  246. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  247. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +2 -6
  248. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  249. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -2
  250. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  251. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  252. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  253. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  254. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  255. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  256. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  257. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  258. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  259. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  260. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  261. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  262. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  263. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -1
  264. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  265. package/lib/esm/appui-react/messages/ActivityMessage.js +7 -5
  266. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  267. package/lib/esm/appui-react/messages/MessageManager.d.ts +0 -1
  268. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  269. package/lib/esm/appui-react/messages/MessageManager.js +1 -2
  270. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  271. package/lib/esm/appui-react/messages/Pointer.d.ts +1 -2
  272. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  273. package/lib/esm/appui-react/messages/Pointer.js +1 -1
  274. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  275. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  276. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  277. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +2 -1
  278. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  279. package/lib/esm/appui-react/popup/PopupManager.js +2 -1
  280. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  281. package/lib/esm/appui-react/popup/PositionPopup.d.ts +2 -2
  282. package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
  283. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  284. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  285. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  286. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  287. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  288. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  289. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +16 -20
  290. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  291. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +84 -115
  292. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  293. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  294. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  295. package/lib/esm/appui-react/statusbar/StatusBar.js +5 -3
  296. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  297. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  298. package/lib/esm/appui-react/statusfields/MessageCenter.js +1 -2
  299. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  300. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  301. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  302. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts +36 -0
  303. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts.map +1 -0
  304. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.js +130 -0
  305. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -0
  306. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +1 -1
  307. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  308. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  309. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  310. package/lib/esm/appui-react/syncui/UiSyncEvent.d.ts +16 -0
  311. package/lib/esm/appui-react/syncui/UiSyncEvent.d.ts.map +1 -0
  312. package/lib/esm/appui-react/syncui/UiSyncEvent.js +14 -0
  313. package/lib/esm/appui-react/syncui/UiSyncEvent.js.map +1 -0
  314. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +4 -6
  315. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  316. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  317. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  318. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +17 -10
  319. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  320. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  321. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  322. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
  323. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  324. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  325. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  326. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  327. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  328. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  329. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  330. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  331. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  332. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  333. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  334. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  335. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  336. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  337. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  338. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  339. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  340. package/lib/esm/appui-react/widget-panels/Content.js +9 -8
  341. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  342. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +7 -29
  343. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  344. package/lib/esm/appui-react/widget-panels/Frontstage.js +131 -462
  345. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  346. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  347. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  348. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  349. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  350. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  351. package/lib/esm/appui-react/widget-panels/ToolSettings.js +34 -15
  352. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  353. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  354. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  355. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  356. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  357. package/lib/esm/appui-react/widgets/Widget.d.ts +10 -4
  358. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  359. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  360. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +9 -29
  361. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  362. package/lib/esm/appui-react/widgets/WidgetDef.js +90 -46
  363. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  364. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  365. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  366. package/lib/esm/appui-react.d.ts +1 -0
  367. package/lib/esm/appui-react.d.ts.map +1 -1
  368. package/lib/esm/appui-react.js +1 -0
  369. package/lib/esm/appui-react.js.map +1 -1
  370. package/package.json +10 -10
@@ -20,7 +20,6 @@ const UiFramework_1 = require("../UiFramework");
20
20
  const WidgetDef_1 = require("../widgets/WidgetDef");
21
21
  const TimeTracker_1 = require("../configurableui/TimeTracker");
22
22
  const PopoutWidget_1 = require("../childwindow/PopoutWidget");
23
- const Frontstage_1 = require("../widget-panels/Frontstage");
24
23
  const core_bentley_1 = require("@itwin/core-bentley");
25
24
  const StageUsage_1 = require("./StageUsage");
26
25
  const StagePanelLocation_1 = require("../stagepanels/StagePanelLocation");
@@ -151,54 +150,59 @@ class FrontstageDef {
151
150
  }
152
151
  }
153
152
  }
154
- triggerStateChangeEventForWidgetsAndPanels(state) {
155
- // istanbul ignore else
156
- if (!(this._isStageClosing || this._isApplicationClosing)) {
157
- if (state) {
158
- const originalPanelStateMap = new Map();
159
- const originalWidgetStateMap = new Map();
160
- const newPanelStateMap = new Map();
161
- const newWidgetStateMap = new Map();
162
- this._nineZoneState &&
163
- this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);
164
- this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);
165
- // set internal state value before triggering events
166
- this._nineZoneState = state;
167
- // now walk and trigger set state events
168
- newWidgetStateMap.forEach((stateValue, widgetDef) => {
169
- const originalState = originalWidgetStateMap.get(widgetDef);
170
- if (originalState !== stateValue) {
171
- UiFramework_1.UiFramework.frontstages.onWidgetStateChangedEvent.emit({
172
- widgetDef,
173
- widgetState: stateValue,
174
- });
175
- widgetDef.onWidgetStateChanged();
176
- }
177
- });
178
- newPanelStateMap.forEach((stateValue, panelDef) => {
179
- const originalState = originalPanelStateMap.get(panelDef);
180
- if (originalState !== stateValue) {
181
- UiFramework_1.UiFramework.frontstages.onPanelStateChangedEvent.emit({
182
- panelDef,
183
- panelState: stateValue,
184
- });
185
- }
186
- });
187
- for (const panelSide of appui_layout_react_1.panelSides) {
188
- const panel = state.panels[panelSide];
189
- const location = this.toStagePanelLocation(panelSide);
190
- const panelDef = this.getStagePanelDef(location);
191
- if (panelDef) {
192
- panelDef.size = panel.size;
193
- panelDef.pinned = panel.pinned;
194
- }
195
- }
153
+ triggerStateChangeEvents(oldState) {
154
+ const newState = this.nineZoneState;
155
+ if (!newState)
156
+ return;
157
+ if (this._isStageClosing || this._isApplicationClosing)
158
+ return;
159
+ const originalPanelStateMap = new Map();
160
+ const originalWidgetStateMap = new Map();
161
+ const newPanelStateMap = new Map();
162
+ const newWidgetStateMap = new Map();
163
+ this.populateStateMaps(oldState, originalPanelStateMap, originalWidgetStateMap);
164
+ this.populateStateMaps(newState, newPanelStateMap, newWidgetStateMap);
165
+ // Now walk and trigger set state events
166
+ newWidgetStateMap.forEach((newWidgetState, widgetDef) => {
167
+ const originalState = originalWidgetStateMap.get(widgetDef);
168
+ if (originalState === newWidgetState)
169
+ return;
170
+ widgetDef.handleWidgetStateChanged(newWidgetState);
171
+ });
172
+ newPanelStateMap.forEach((newPanelState, panelDef) => {
173
+ const originalState = originalPanelStateMap.get(panelDef);
174
+ if (originalState === newPanelState)
175
+ return;
176
+ panelDef.handlePanelStateChanged(newPanelState);
177
+ });
178
+ for (const panelSide of appui_layout_react_1.panelSides) {
179
+ const panel = newState.panels[panelSide];
180
+ const oldPanel = oldState.panels[panelSide];
181
+ const location = this.toStagePanelLocation(panelSide);
182
+ const panelDef = this.getStagePanelDef(location);
183
+ if (!panelDef)
184
+ continue;
185
+ if (panel.size !== oldPanel.size) {
186
+ panelDef.handleSizeChanged(panel.size);
196
187
  }
197
- else {
198
- this._nineZoneState = state;
188
+ if (panel.pinned !== oldPanel.pinned) {
189
+ panelDef.handlePinnedChanged(panel.pinned);
199
190
  }
200
191
  }
201
192
  }
193
+ handlePopouts(oldState) {
194
+ const newState = this.nineZoneState;
195
+ const oldPopouts = (oldState === null || oldState === void 0 ? void 0 : oldState.popoutWidgets.allIds) || [];
196
+ const newPopouts = (newState === null || newState === void 0 ? void 0 : newState.popoutWidgets.allIds) || [];
197
+ const popoutsToClose = oldPopouts.filter((p) => !newPopouts.includes(p));
198
+ const popoutsToOpen = newPopouts.filter((p) => !oldPopouts.includes(p));
199
+ for (const popoutId of popoutsToClose) {
200
+ UiFramework_1.UiFramework.childWindows.close(popoutId, true);
201
+ }
202
+ for (const popoutId of popoutsToOpen) {
203
+ this.openPopoutWidgetContainer(popoutId);
204
+ }
205
+ }
202
206
  /** @internal */
203
207
  get nineZoneState() {
204
208
  return this._nineZoneState;
@@ -206,26 +210,32 @@ class FrontstageDef {
206
210
  set nineZoneState(state) {
207
211
  if (this._nineZoneState === state)
208
212
  return;
209
- if (!this._nineZoneState) {
210
- this._nineZoneState = state;
211
- }
212
- else {
213
- this.triggerStateChangeEventForWidgetsAndPanels(state);
214
- }
215
- // istanbul ignore next - don't trigger any side effects until stage "isReady"
216
- if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {
217
- InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({
218
- frontstageDef: this,
219
- state,
220
- });
221
- }
213
+ const oldState = this._nineZoneState;
214
+ this._nineZoneState = state;
215
+ this.handlePopouts(oldState);
216
+ if (oldState) {
217
+ this.triggerStateChangeEvents(oldState);
218
+ }
219
+ const isClosing = this._isStageClosing || this._isApplicationClosing;
220
+ if (isClosing && !this.isReady)
221
+ return;
222
+ InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({
223
+ frontstageDef: this,
224
+ state,
225
+ });
222
226
  }
223
227
  /** @internal */
224
- get savedWidgetDefs() {
225
- return this._savedWidgetDefs;
226
- }
227
- set savedWidgetDefs(widgets) {
228
- this._savedWidgetDefs = widgets;
228
+ get dispatch() {
229
+ var _a;
230
+ return ((_a = this._dispatch) !== null && _a !== void 0 ? _a : (this._dispatch = (action) => {
231
+ if (action.type === "RESIZE") {
232
+ InternalFrontstageManager_1.InternalFrontstageManager.nineZoneSize = core_react_1.Size.create(action.size);
233
+ }
234
+ const state = this.nineZoneState;
235
+ if (!state)
236
+ return;
237
+ this.nineZoneState = (0, appui_layout_react_1.NineZoneStateReducer)(state, action);
238
+ }));
229
239
  }
230
240
  /** @internal */
231
241
  get timeTracker() {
@@ -511,8 +521,13 @@ class FrontstageDef {
511
521
  this.panelDefs.forEach((stagePanelDef) => {
512
522
  stagePanelDef.updateDynamicWidgetDefs(this.id, this.usage, stagePanelDef.location, undefined, allStageWidgetDefs);
513
523
  });
524
+ InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageWidgetsChangedEvent.emit({
525
+ frontstageDef: this,
526
+ });
514
527
  }
515
- /** @beta */
528
+ /** Restores frontstage layout to initial configuration.
529
+ * @beta
530
+ */
516
531
  restoreLayout() {
517
532
  for (const panelDef of this.panelDefs) {
518
533
  panelDef.size = panelDef.defaultSize;
@@ -529,12 +544,13 @@ class FrontstageDef {
529
544
  * @internal
530
545
  */
531
546
  getWidgetCurrentState(widgetDef) {
547
+ var _a, _b;
532
548
  const state = this.nineZoneState;
533
549
  // istanbul ignore else
534
550
  if (state) {
535
- const toolSettingsTabId = state.toolSettings?.tabId;
551
+ const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
536
552
  if (toolSettingsTabId === widgetDef.id &&
537
- state.toolSettings?.type === "docked") {
553
+ ((_b = state.toolSettings) === null || _b === void 0 ? void 0 : _b.type) === "docked") {
538
554
  return WidgetState_1.WidgetState.Open;
539
555
  }
540
556
  const location = (0, appui_layout_react_1.getTabLocation)(state, widgetDef.id);
@@ -542,11 +558,7 @@ class FrontstageDef {
542
558
  if (!location)
543
559
  return WidgetState_1.WidgetState.Hidden;
544
560
  if ((0, appui_layout_react_1.isFloatingTabLocation)(location)) {
545
- const floatingWidget = state.floatingWidgets.byId[location.floatingWidgetId];
546
- if (floatingWidget && floatingWidget.hidden)
547
- return WidgetState_1.WidgetState.Hidden;
548
- else
549
- return WidgetState_1.WidgetState.Floating;
561
+ return WidgetState_1.WidgetState.Floating;
550
562
  }
551
563
  let collapsedPanel = false;
552
564
  // istanbul ignore else
@@ -563,24 +575,6 @@ class FrontstageDef {
563
575
  }
564
576
  return widgetDef.defaultState;
565
577
  }
566
- /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState
567
- * @internal
568
- */
569
- getPanelCurrentState(panelDef) {
570
- // istanbul ignore next
571
- if (this.nineZoneState) {
572
- const side = (0, StagePanelDef_1.toPanelSide)(panelDef.location);
573
- const panel = this.nineZoneState.panels[side];
574
- if (panel)
575
- return [
576
- panel.collapsed ? StagePanelDef_1.StagePanelState.Minimized : StagePanelDef_1.StagePanelState.Open,
577
- panel.size ?? 0,
578
- panel.pinned,
579
- ];
580
- return [StagePanelDef_1.StagePanelState.Off, 0, false];
581
- }
582
- return [panelDef.defaultState, panelDef.defaultSize ?? 0, true];
583
- }
584
578
  isPopoutWidget(widgetId) {
585
579
  // istanbul ignore else
586
580
  if (this.nineZoneState) {
@@ -604,89 +598,65 @@ class FrontstageDef {
604
598
  /** Create a new floating panel that contains the widget specified by its Id. Supported only when in
605
599
  * UI 2.0 or higher.
606
600
  * @param widgetId case sensitive Widget Id
607
- * @param point Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.
601
+ * @param position Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.
608
602
  * @param size defines the width and height of the floating panel. If undefined and widget has been floated before
609
603
  * the previous size is used, else {height:400, width:400} is used.
610
604
  * @beta
611
605
  */
612
- floatWidget(widgetId, point, size) {
613
- // istanbul ignore else
614
- if (this.nineZoneState) {
615
- const location = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
616
- if (location) {
617
- let popoutWidgetContainerId;
618
- if ((0, appui_layout_react_1.isPopoutTabLocation)(location)) {
619
- popoutWidgetContainerId = location.popoutWidgetId;
620
- }
621
- const state = (0, appui_layout_react_1.floatWidget)(this.nineZoneState, widgetId, point, size);
622
- // istanbul ignore else
623
- if (state) {
624
- this.nineZoneState = state;
625
- setTimeout(() => {
626
- popoutWidgetContainerId &&
627
- UiFramework_1.UiFramework.childWindows.close(popoutWidgetContainerId, true);
628
- }, 600);
629
- }
630
- }
631
- }
606
+ floatWidget(widgetId, position, size) {
607
+ const state = this.nineZoneState;
608
+ if (!state)
609
+ return;
610
+ const widgetDef = this.findWidgetDef(widgetId);
611
+ if (!widgetDef)
612
+ return;
613
+ this.dispatch({
614
+ type: "WIDGET_TAB_FLOAT",
615
+ id: widgetId,
616
+ position,
617
+ size,
618
+ });
632
619
  }
633
620
  /** Check widget and panel state to determine whether the widget is currently displayed
634
621
  * @param widgetId case-sensitive Widget Id
635
622
  * @public
636
623
  */
637
624
  isWidgetDisplayed(widgetId) {
638
- let widgetIsVisible = false;
639
- // istanbul ignore else
640
- if (this.nineZoneState) {
641
- const tabLocation = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
642
- // istanbul ignore else
643
- if (tabLocation) {
644
- if ((0, appui_layout_react_1.isFloatingTabLocation)(tabLocation)) {
645
- const floatingWidget = this.nineZoneState.floatingWidgets.byId[tabLocation.floatingWidgetId];
646
- // istanbul ignore else
647
- if (!!!floatingWidget.hidden)
648
- widgetIsVisible = true;
649
- }
650
- else if ((0, appui_layout_react_1.isPopoutTabLocation)(tabLocation)) {
651
- widgetIsVisible = true;
652
- }
653
- else {
654
- // istanbul ignore else
655
- if ((0, appui_layout_react_1.isPanelTabLocation)(tabLocation)) {
656
- const panel = this.nineZoneState.panels[tabLocation.side];
657
- const widgetDef = this.findWidgetDef(widgetId);
658
- if (widgetDef &&
659
- widgetDef.state === WidgetState_1.WidgetState.Open &&
660
- !panel.collapsed)
661
- widgetIsVisible = true;
662
- }
663
- }
664
- }
625
+ if (!this.nineZoneState)
626
+ return false;
627
+ const tabLocation = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
628
+ if (!tabLocation)
629
+ return false;
630
+ if ((0, appui_layout_react_1.isPanelTabLocation)(tabLocation)) {
631
+ const panel = this.nineZoneState.panels[tabLocation.side];
632
+ const widgetDef = this.findWidgetDef(widgetId);
633
+ const isVisible = !!widgetDef && widgetDef.state === WidgetState_1.WidgetState.Open && !panel.collapsed;
634
+ return isVisible;
665
635
  }
666
- return widgetIsVisible;
636
+ return true;
667
637
  }
668
638
  /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.
669
- * @internal */
670
- openPopoutWidgetContainer(state, widgetContainerId) {
639
+ * @internal
640
+ */
641
+ openPopoutWidgetContainer(widgetContainerId) {
642
+ const state = this.nineZoneState;
643
+ if (!state)
644
+ return;
671
645
  const location = (0, appui_layout_react_1.getWidgetLocation)(state, widgetContainerId);
672
- // istanbul ignore next
673
646
  if (!location)
674
647
  return;
675
- // istanbul ignore next
676
648
  if (!(0, appui_layout_react_1.isPopoutWidgetLocation)(location))
677
649
  return;
678
650
  const widget = state.widgets[widgetContainerId];
679
- const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];
680
651
  // Popout widget should only contain a single tab.
681
- // istanbul ignore next
682
652
  if (widget.tabs.length !== 1)
683
653
  return;
684
654
  const tabId = widget.tabs[0];
685
655
  const widgetDef = this.findWidgetDef(tabId);
686
- // istanbul ignore next
687
656
  if (!widgetDef)
688
657
  return;
689
658
  const popoutContent = (React.createElement(PopoutWidget_1.PopoutWidget, { widgetContainerId: widgetContainerId, widgetDef: widgetDef }));
659
+ const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];
690
660
  const bounds = core_react_1.Rectangle.create(popoutWidget.bounds);
691
661
  const position = {
692
662
  width: bounds.getWidth(),
@@ -699,48 +669,23 @@ class FrontstageDef {
699
669
  /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in
700
670
  * UI 2.0 or higher.
701
671
  * @param widgetId case sensitive Widget Id
702
- * @param point Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.
672
+ * @param position Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.
703
673
  * @param size defines the width and height of the floating panel. If undefined and widget has been floated before
704
674
  * the previous size is used, else {height:800, width:600} is used.
705
675
  * @beta
706
676
  */
707
- popoutWidget(widgetId, point, size) {
708
- // istanbul ignore next
709
- if (!this.nineZoneState)
710
- return;
711
- let location = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
712
- if (!location || (0, appui_layout_react_1.isPopoutTabLocation)(location))
677
+ popoutWidget(widgetId, position, size) {
678
+ const state = this.nineZoneState;
679
+ if (!state)
713
680
  return;
714
681
  const widgetDef = this.findWidgetDef(widgetId);
715
- // istanbul ignore next
716
682
  if (!widgetDef)
717
683
  return;
718
- // get the state to apply that will pop-out the specified WidgetTab to child window.
719
- let preferredBounds = core_react_1.Rectangle.createFromSize({ height: 800, width: 600 });
720
- // istanbul ignore next
721
- if (widgetDef.popoutBounds)
722
- preferredBounds = widgetDef.popoutBounds;
723
- if (size)
724
- preferredBounds = preferredBounds.setSize(size);
725
- if (point)
726
- preferredBounds = preferredBounds.setPosition(point);
727
- const state = (0, appui_layout_react_1.popoutWidgetToChildWindow)(this.nineZoneState, widgetId, preferredBounds);
728
- this.nineZoneState = state;
729
- // now that the state is updated get the id of the container that houses the widgetTab/widgetId
730
- location = (0, appui_layout_react_1.getTabLocation)(state, widgetId);
731
- (0, core_bentley_1.assert)(!!location && (0, appui_layout_react_1.isPopoutTabLocation)(location));
732
- const widgetContainerId = location.widgetId;
733
- const popoutWidget = state.popoutWidgets.byId[widgetContainerId];
734
- const bounds = core_react_1.Rectangle.create(popoutWidget.bounds);
735
- setTimeout(() => {
736
- const popoutContent = (React.createElement(PopoutWidget_1.PopoutWidget, { widgetContainerId: widgetContainerId, widgetDef: widgetDef }));
737
- const position = {
738
- width: bounds.getWidth(),
739
- height: bounds.getHeight(),
740
- left: bounds.left,
741
- top: bounds.top,
742
- };
743
- UiFramework_1.UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework_1.UiFramework.useDefaultPopoutUrl);
684
+ this.dispatch({
685
+ type: "WIDGET_TAB_POPOUT",
686
+ id: widgetId,
687
+ position,
688
+ size,
744
689
  });
745
690
  }
746
691
  get isStageClosing() {
@@ -754,12 +699,13 @@ class FrontstageDef {
754
699
  }
755
700
  /** @internal */
756
701
  saveChildWindowSizeAndPosition(childWindowId, childWindow) {
757
- if (!this.nineZoneState)
702
+ const state = this.nineZoneState;
703
+ if (!state)
758
704
  return;
759
- const location = (0, appui_layout_react_1.getWidgetLocation)(this.nineZoneState, childWindowId);
705
+ const location = (0, appui_layout_react_1.getWidgetLocation)(state, childWindowId);
760
706
  if (!location || !(0, appui_layout_react_1.isPopoutWidgetLocation)(location))
761
707
  return;
762
- const widget = this.nineZoneState.widgets[location.popoutWidgetId];
708
+ const widget = state.widgets[location.popoutWidgetId];
763
709
  const tabId = widget.tabs[0];
764
710
  const widgetDef = this.findWidgetDef(tabId);
765
711
  if (!widgetDef)
@@ -772,23 +718,34 @@ class FrontstageDef {
772
718
  x: childWindow.screenX,
773
719
  y: childWindow.screenY,
774
720
  });
775
- widgetDef.popoutBounds = bounds;
721
+ this.dispatch({
722
+ type: "WIDGET_TAB_SET_POPOUT_BOUNDS",
723
+ id: tabId,
724
+ bounds,
725
+ });
776
726
  }
777
- /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child
778
- * window.
779
- * @internal
780
- */
781
- dockPopoutWidgetContainer(widgetContainerId) {
782
- if (!this.nineZoneState)
727
+ /** @internal */
728
+ dockWidgetContainerByContainerId(widgetContainerId) {
729
+ const state = this.nineZoneState;
730
+ if (!state)
783
731
  return;
784
- // 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
785
- // an API call has moved the widget from a popout state to a floating state.
786
- // istanbul ignore else
787
- const location = (0, appui_layout_react_1.getWidgetLocation)(this.nineZoneState, widgetContainerId);
788
- if (!location || !(0, appui_layout_react_1.isPopoutWidgetLocation)(location))
732
+ const location = (0, appui_layout_react_1.getWidgetLocation)(state, widgetContainerId);
733
+ if (!location)
734
+ return;
735
+ if ((0, appui_layout_react_1.isFloatingWidgetLocation)(location)) {
736
+ this.dispatch({
737
+ type: "FLOATING_WIDGET_SEND_BACK",
738
+ id: location.floatingWidgetId,
739
+ });
740
+ return;
741
+ }
742
+ if ((0, appui_layout_react_1.isPopoutWidgetLocation)(location)) {
743
+ this.dispatch({
744
+ type: "POPOUT_WIDGET_SEND_BACK",
745
+ id: location.popoutWidgetId,
746
+ });
789
747
  return;
790
- const state = (0, appui_layout_react_1.dockWidgetContainer)(this.nineZoneState, widgetContainerId, true);
791
- this.nineZoneState = state;
748
+ }
792
749
  }
793
750
  /** Finds the container with the specified widget and re-docks all widgets
794
751
  * back to the panel zone location that was used when the floating container
@@ -797,34 +754,28 @@ class FrontstageDef {
797
754
  * @beta
798
755
  */
799
756
  dockWidgetContainer(widgetId) {
800
- // istanbul ignore else
801
- if (this.nineZoneState) {
802
- const location = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
803
- if (location) {
804
- const widgetContainerId = location.widgetId;
805
- const state = (0, appui_layout_react_1.dockWidgetContainer)(this.nineZoneState, widgetContainerId, true);
806
- state && (this.nineZoneState = state);
807
- if ((0, appui_layout_react_1.isPopoutTabLocation)(location)) {
808
- UiFramework_1.UiFramework.childWindows.close(location.widgetId, true);
809
- }
810
- }
811
- }
757
+ const state = this.nineZoneState;
758
+ if (!state)
759
+ return;
760
+ const location = (0, appui_layout_react_1.getTabLocation)(state, widgetId);
761
+ if (!location)
762
+ return;
763
+ this.dockWidgetContainerByContainerId(location.widgetId);
812
764
  }
813
765
  setFloatingWidgetContainerBounds(floatingWidgetId, bounds) {
814
766
  if (!this.nineZoneState ||
815
767
  !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))
816
768
  return false;
817
- let state = (0, Frontstage_1.FrameworkStateReducer)(this.nineZoneState, {
769
+ this.dispatch({
818
770
  type: "FLOATING_WIDGET_SET_BOUNDS",
819
771
  id: floatingWidgetId,
820
772
  bounds,
821
- }, this);
822
- state = (0, Frontstage_1.FrameworkStateReducer)(state, {
773
+ });
774
+ this.dispatch({
823
775
  type: "FLOATING_WIDGET_SET_USER_SIZED",
824
776
  id: floatingWidgetId,
825
777
  userSized: true,
826
- }, this);
827
- this.nineZoneState = state;
778
+ });
828
779
  return true;
829
780
  }
830
781
  getFloatingWidgetContainerIds() {
@@ -922,8 +873,9 @@ const useActiveFrontstageId = () => {
922
873
  return id;
923
874
  };
924
875
  exports.useActiveFrontstageId = useActiveFrontstageId;
925
- /** Hook to return the active Frontstage def */
926
- /** @public */
876
+ /** Hook to return the active Frontstage def.
877
+ * @public
878
+ */
927
879
  function useActiveFrontstageDef() {
928
880
  const [def, setDef] = React.useState(UiFramework_1.UiFramework.frontstages.activeFrontstageDef);
929
881
  React.useEffect(() => {
@@ -939,7 +891,16 @@ exports.useActiveFrontstageDef = useActiveFrontstageDef;
939
891
  */
940
892
  function useSpecificWidgetDef(widgetId) {
941
893
  const frontstageDef = useActiveFrontstageDef();
942
- return frontstageDef?.findWidgetDef(widgetId);
894
+ const [widgetDef, setWidgetDef] = React.useState(() => frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.findWidgetDef(widgetId));
895
+ React.useEffect(() => {
896
+ setWidgetDef(frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.findWidgetDef(widgetId));
897
+ return InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageWidgetsChangedEvent.addListener((args) => {
898
+ if (args.frontstageDef !== frontstageDef)
899
+ return;
900
+ setWidgetDef(frontstageDef.findWidgetDef(widgetId));
901
+ });
902
+ }, [frontstageDef, widgetId]);
903
+ return widgetDef;
943
904
  }
944
905
  exports.useSpecificWidgetDef = useSpecificWidgetDef;
945
906
  //# sourceMappingURL=FrontstageDef.js.map