@itwin/appui-react 4.5.1 → 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 +13 -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 +166 -217
  60. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  61. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +1 -7
  62. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +0 -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 +170 -221
  244. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  245. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +1 -7
  246. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  247. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +0 -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() {
@@ -515,7 +525,9 @@ class FrontstageDef {
515
525
  frontstageDef: this,
516
526
  });
517
527
  }
518
- /** @beta */
528
+ /** Restores frontstage layout to initial configuration.
529
+ * @beta
530
+ */
519
531
  restoreLayout() {
520
532
  for (const panelDef of this.panelDefs) {
521
533
  panelDef.size = panelDef.defaultSize;
@@ -532,12 +544,13 @@ class FrontstageDef {
532
544
  * @internal
533
545
  */
534
546
  getWidgetCurrentState(widgetDef) {
547
+ var _a, _b;
535
548
  const state = this.nineZoneState;
536
549
  // istanbul ignore else
537
550
  if (state) {
538
- const toolSettingsTabId = state.toolSettings?.tabId;
551
+ const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
539
552
  if (toolSettingsTabId === widgetDef.id &&
540
- state.toolSettings?.type === "docked") {
553
+ ((_b = state.toolSettings) === null || _b === void 0 ? void 0 : _b.type) === "docked") {
541
554
  return WidgetState_1.WidgetState.Open;
542
555
  }
543
556
  const location = (0, appui_layout_react_1.getTabLocation)(state, widgetDef.id);
@@ -545,11 +558,7 @@ class FrontstageDef {
545
558
  if (!location)
546
559
  return WidgetState_1.WidgetState.Hidden;
547
560
  if ((0, appui_layout_react_1.isFloatingTabLocation)(location)) {
548
- const floatingWidget = state.floatingWidgets.byId[location.floatingWidgetId];
549
- if (floatingWidget && floatingWidget.hidden)
550
- return WidgetState_1.WidgetState.Hidden;
551
- else
552
- return WidgetState_1.WidgetState.Floating;
561
+ return WidgetState_1.WidgetState.Floating;
553
562
  }
554
563
  let collapsedPanel = false;
555
564
  // istanbul ignore else
@@ -566,24 +575,6 @@ class FrontstageDef {
566
575
  }
567
576
  return widgetDef.defaultState;
568
577
  }
569
- /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState
570
- * @internal
571
- */
572
- getPanelCurrentState(panelDef) {
573
- // istanbul ignore next
574
- if (this.nineZoneState) {
575
- const side = (0, StagePanelDef_1.toPanelSide)(panelDef.location);
576
- const panel = this.nineZoneState.panels[side];
577
- if (panel)
578
- return [
579
- panel.collapsed ? StagePanelDef_1.StagePanelState.Minimized : StagePanelDef_1.StagePanelState.Open,
580
- panel.size ?? 0,
581
- panel.pinned,
582
- ];
583
- return [StagePanelDef_1.StagePanelState.Off, 0, false];
584
- }
585
- return [panelDef.defaultState, panelDef.defaultSize ?? 0, true];
586
- }
587
578
  isPopoutWidget(widgetId) {
588
579
  // istanbul ignore else
589
580
  if (this.nineZoneState) {
@@ -607,89 +598,65 @@ class FrontstageDef {
607
598
  /** Create a new floating panel that contains the widget specified by its Id. Supported only when in
608
599
  * UI 2.0 or higher.
609
600
  * @param widgetId case sensitive Widget Id
610
- * @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.
611
602
  * @param size defines the width and height of the floating panel. If undefined and widget has been floated before
612
603
  * the previous size is used, else {height:400, width:400} is used.
613
604
  * @beta
614
605
  */
615
- floatWidget(widgetId, point, size) {
616
- // istanbul ignore else
617
- if (this.nineZoneState) {
618
- const location = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
619
- if (location) {
620
- let popoutWidgetContainerId;
621
- if ((0, appui_layout_react_1.isPopoutTabLocation)(location)) {
622
- popoutWidgetContainerId = location.popoutWidgetId;
623
- }
624
- const state = (0, appui_layout_react_1.floatWidget)(this.nineZoneState, widgetId, point, size);
625
- // istanbul ignore else
626
- if (state) {
627
- this.nineZoneState = state;
628
- setTimeout(() => {
629
- popoutWidgetContainerId &&
630
- UiFramework_1.UiFramework.childWindows.close(popoutWidgetContainerId, true);
631
- }, 600);
632
- }
633
- }
634
- }
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
+ });
635
619
  }
636
620
  /** Check widget and panel state to determine whether the widget is currently displayed
637
621
  * @param widgetId case-sensitive Widget Id
638
622
  * @public
639
623
  */
640
624
  isWidgetDisplayed(widgetId) {
641
- let widgetIsVisible = false;
642
- // istanbul ignore else
643
- if (this.nineZoneState) {
644
- const tabLocation = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
645
- // istanbul ignore else
646
- if (tabLocation) {
647
- if ((0, appui_layout_react_1.isFloatingTabLocation)(tabLocation)) {
648
- const floatingWidget = this.nineZoneState.floatingWidgets.byId[tabLocation.floatingWidgetId];
649
- // istanbul ignore else
650
- if (!!!floatingWidget.hidden)
651
- widgetIsVisible = true;
652
- }
653
- else if ((0, appui_layout_react_1.isPopoutTabLocation)(tabLocation)) {
654
- widgetIsVisible = true;
655
- }
656
- else {
657
- // istanbul ignore else
658
- if ((0, appui_layout_react_1.isPanelTabLocation)(tabLocation)) {
659
- const panel = this.nineZoneState.panels[tabLocation.side];
660
- const widgetDef = this.findWidgetDef(widgetId);
661
- if (widgetDef &&
662
- widgetDef.state === WidgetState_1.WidgetState.Open &&
663
- !panel.collapsed)
664
- widgetIsVisible = true;
665
- }
666
- }
667
- }
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;
668
635
  }
669
- return widgetIsVisible;
636
+ return true;
670
637
  }
671
638
  /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.
672
- * @internal */
673
- openPopoutWidgetContainer(state, widgetContainerId) {
639
+ * @internal
640
+ */
641
+ openPopoutWidgetContainer(widgetContainerId) {
642
+ const state = this.nineZoneState;
643
+ if (!state)
644
+ return;
674
645
  const location = (0, appui_layout_react_1.getWidgetLocation)(state, widgetContainerId);
675
- // istanbul ignore next
676
646
  if (!location)
677
647
  return;
678
- // istanbul ignore next
679
648
  if (!(0, appui_layout_react_1.isPopoutWidgetLocation)(location))
680
649
  return;
681
650
  const widget = state.widgets[widgetContainerId];
682
- const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];
683
651
  // Popout widget should only contain a single tab.
684
- // istanbul ignore next
685
652
  if (widget.tabs.length !== 1)
686
653
  return;
687
654
  const tabId = widget.tabs[0];
688
655
  const widgetDef = this.findWidgetDef(tabId);
689
- // istanbul ignore next
690
656
  if (!widgetDef)
691
657
  return;
692
658
  const popoutContent = (React.createElement(PopoutWidget_1.PopoutWidget, { widgetContainerId: widgetContainerId, widgetDef: widgetDef }));
659
+ const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];
693
660
  const bounds = core_react_1.Rectangle.create(popoutWidget.bounds);
694
661
  const position = {
695
662
  width: bounds.getWidth(),
@@ -702,48 +669,23 @@ class FrontstageDef {
702
669
  /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in
703
670
  * UI 2.0 or higher.
704
671
  * @param widgetId case sensitive Widget Id
705
- * @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.
706
673
  * @param size defines the width and height of the floating panel. If undefined and widget has been floated before
707
674
  * the previous size is used, else {height:800, width:600} is used.
708
675
  * @beta
709
676
  */
710
- popoutWidget(widgetId, point, size) {
711
- // istanbul ignore next
712
- if (!this.nineZoneState)
713
- return;
714
- let location = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
715
- if (!location || (0, appui_layout_react_1.isPopoutTabLocation)(location))
677
+ popoutWidget(widgetId, position, size) {
678
+ const state = this.nineZoneState;
679
+ if (!state)
716
680
  return;
717
681
  const widgetDef = this.findWidgetDef(widgetId);
718
- // istanbul ignore next
719
682
  if (!widgetDef)
720
683
  return;
721
- // get the state to apply that will pop-out the specified WidgetTab to child window.
722
- let preferredBounds = core_react_1.Rectangle.createFromSize({ height: 800, width: 600 });
723
- // istanbul ignore next
724
- if (widgetDef.popoutBounds)
725
- preferredBounds = widgetDef.popoutBounds;
726
- if (size)
727
- preferredBounds = preferredBounds.setSize(size);
728
- if (point)
729
- preferredBounds = preferredBounds.setPosition(point);
730
- const state = (0, appui_layout_react_1.popoutWidgetToChildWindow)(this.nineZoneState, widgetId, preferredBounds);
731
- this.nineZoneState = state;
732
- // now that the state is updated get the id of the container that houses the widgetTab/widgetId
733
- location = (0, appui_layout_react_1.getTabLocation)(state, widgetId);
734
- (0, core_bentley_1.assert)(!!location && (0, appui_layout_react_1.isPopoutTabLocation)(location));
735
- const widgetContainerId = location.widgetId;
736
- const popoutWidget = state.popoutWidgets.byId[widgetContainerId];
737
- const bounds = core_react_1.Rectangle.create(popoutWidget.bounds);
738
- setTimeout(() => {
739
- const popoutContent = (React.createElement(PopoutWidget_1.PopoutWidget, { widgetContainerId: widgetContainerId, widgetDef: widgetDef }));
740
- const position = {
741
- width: bounds.getWidth(),
742
- height: bounds.getHeight(),
743
- left: bounds.left,
744
- top: bounds.top,
745
- };
746
- 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,
747
689
  });
748
690
  }
749
691
  get isStageClosing() {
@@ -757,12 +699,13 @@ class FrontstageDef {
757
699
  }
758
700
  /** @internal */
759
701
  saveChildWindowSizeAndPosition(childWindowId, childWindow) {
760
- if (!this.nineZoneState)
702
+ const state = this.nineZoneState;
703
+ if (!state)
761
704
  return;
762
- const location = (0, appui_layout_react_1.getWidgetLocation)(this.nineZoneState, childWindowId);
705
+ const location = (0, appui_layout_react_1.getWidgetLocation)(state, childWindowId);
763
706
  if (!location || !(0, appui_layout_react_1.isPopoutWidgetLocation)(location))
764
707
  return;
765
- const widget = this.nineZoneState.widgets[location.popoutWidgetId];
708
+ const widget = state.widgets[location.popoutWidgetId];
766
709
  const tabId = widget.tabs[0];
767
710
  const widgetDef = this.findWidgetDef(tabId);
768
711
  if (!widgetDef)
@@ -775,23 +718,34 @@ class FrontstageDef {
775
718
  x: childWindow.screenX,
776
719
  y: childWindow.screenY,
777
720
  });
778
- widgetDef.popoutBounds = bounds;
721
+ this.dispatch({
722
+ type: "WIDGET_TAB_SET_POPOUT_BOUNDS",
723
+ id: tabId,
724
+ bounds,
725
+ });
779
726
  }
780
- /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child
781
- * window.
782
- * @internal
783
- */
784
- dockPopoutWidgetContainer(widgetContainerId) {
785
- if (!this.nineZoneState)
727
+ /** @internal */
728
+ dockWidgetContainerByContainerId(widgetContainerId) {
729
+ const state = this.nineZoneState;
730
+ if (!state)
786
731
  return;
787
- // 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
788
- // an API call has moved the widget from a popout state to a floating state.
789
- // istanbul ignore else
790
- const location = (0, appui_layout_react_1.getWidgetLocation)(this.nineZoneState, widgetContainerId);
791
- 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
+ });
792
747
  return;
793
- const state = (0, appui_layout_react_1.dockWidgetContainer)(this.nineZoneState, widgetContainerId, true);
794
- this.nineZoneState = state;
748
+ }
795
749
  }
796
750
  /** Finds the container with the specified widget and re-docks all widgets
797
751
  * back to the panel zone location that was used when the floating container
@@ -800,34 +754,28 @@ class FrontstageDef {
800
754
  * @beta
801
755
  */
802
756
  dockWidgetContainer(widgetId) {
803
- // istanbul ignore else
804
- if (this.nineZoneState) {
805
- const location = (0, appui_layout_react_1.getTabLocation)(this.nineZoneState, widgetId);
806
- if (location) {
807
- const widgetContainerId = location.widgetId;
808
- const state = (0, appui_layout_react_1.dockWidgetContainer)(this.nineZoneState, widgetContainerId, true);
809
- state && (this.nineZoneState = state);
810
- if ((0, appui_layout_react_1.isPopoutTabLocation)(location)) {
811
- UiFramework_1.UiFramework.childWindows.close(location.widgetId, true);
812
- }
813
- }
814
- }
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);
815
764
  }
816
765
  setFloatingWidgetContainerBounds(floatingWidgetId, bounds) {
817
766
  if (!this.nineZoneState ||
818
767
  !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))
819
768
  return false;
820
- let state = (0, Frontstage_1.FrameworkStateReducer)(this.nineZoneState, {
769
+ this.dispatch({
821
770
  type: "FLOATING_WIDGET_SET_BOUNDS",
822
771
  id: floatingWidgetId,
823
772
  bounds,
824
- }, this);
825
- state = (0, Frontstage_1.FrameworkStateReducer)(state, {
773
+ });
774
+ this.dispatch({
826
775
  type: "FLOATING_WIDGET_SET_USER_SIZED",
827
776
  id: floatingWidgetId,
828
777
  userSized: true,
829
- }, this);
830
- this.nineZoneState = state;
778
+ });
831
779
  return true;
832
780
  }
833
781
  getFloatingWidgetContainerIds() {
@@ -925,8 +873,9 @@ const useActiveFrontstageId = () => {
925
873
  return id;
926
874
  };
927
875
  exports.useActiveFrontstageId = useActiveFrontstageId;
928
- /** Hook to return the active Frontstage def */
929
- /** @public */
876
+ /** Hook to return the active Frontstage def.
877
+ * @public
878
+ */
930
879
  function useActiveFrontstageDef() {
931
880
  const [def, setDef] = React.useState(UiFramework_1.UiFramework.frontstages.activeFrontstageDef);
932
881
  React.useEffect(() => {
@@ -942,9 +891,9 @@ exports.useActiveFrontstageDef = useActiveFrontstageDef;
942
891
  */
943
892
  function useSpecificWidgetDef(widgetId) {
944
893
  const frontstageDef = useActiveFrontstageDef();
945
- const [widgetDef, setWidgetDef] = React.useState(() => frontstageDef?.findWidgetDef(widgetId));
894
+ const [widgetDef, setWidgetDef] = React.useState(() => frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.findWidgetDef(widgetId));
946
895
  React.useEffect(() => {
947
- setWidgetDef(frontstageDef?.findWidgetDef(widgetId));
896
+ setWidgetDef(frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.findWidgetDef(widgetId));
948
897
  return InternalFrontstageManager_1.InternalFrontstageManager.onFrontstageWidgetsChangedEvent.addListener((args) => {
949
898
  if (args.frontstageDef !== frontstageDef)
950
899
  return;