@itwin/appui-react 3.6.0-dev.8 → 3.7.0-dev.1

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 (1231) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/appui-react/UiFramework.d.ts +65 -8
  4. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  5. package/lib/cjs/appui-react/UiFramework.js +97 -22
  6. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +1 -2
  9. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +2 -2
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +2 -2
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +1 -1
  15. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  17. package/lib/cjs/appui-react/backstage/Backstage.d.ts +4 -4
  18. package/lib/cjs/appui-react/backstage/Backstage.js +7 -7
  19. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  20. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/backstage/BackstageComposer.js +1 -0
  22. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -4
  24. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +43 -0
  26. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -0
  27. package/lib/cjs/appui-react/backstage/BackstageItem.js +37 -0
  28. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -0
  29. package/lib/cjs/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  30. package/lib/cjs/appui-react/backstage/BackstageItemProps.js +1 -1
  31. package/lib/cjs/appui-react/backstage/BackstageItemProps.js.map +1 -1
  32. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +7 -35
  33. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
  34. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +10 -24
  35. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  36. package/lib/cjs/appui-react/backstage/BackstageManager.d.ts +9 -15
  37. package/lib/cjs/appui-react/backstage/BackstageManager.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/backstage/BackstageManager.js +15 -29
  39. package/lib/cjs/appui-react/backstage/BackstageManager.js.map +1 -1
  40. package/lib/cjs/appui-react/backstage/CommandLaunch.d.ts +2 -2
  41. package/lib/cjs/appui-react/backstage/CommandLaunch.js +1 -1
  42. package/lib/cjs/appui-react/backstage/CommandLaunch.js.map +1 -1
  43. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts +2 -2
  44. package/lib/cjs/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js +6 -7
  46. package/lib/cjs/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  47. package/lib/cjs/appui-react/backstage/InternalBackstageManager.d.ts +23 -0
  48. package/lib/cjs/appui-react/backstage/InternalBackstageManager.d.ts.map +1 -0
  49. package/lib/cjs/appui-react/backstage/InternalBackstageManager.js +58 -0
  50. package/lib/cjs/appui-react/backstage/InternalBackstageManager.js.map +1 -0
  51. package/lib/cjs/appui-react/backstage/Separator.d.ts +1 -1
  52. package/lib/cjs/appui-react/backstage/Separator.js +1 -1
  53. package/lib/cjs/appui-react/backstage/Separator.js.map +1 -1
  54. package/lib/cjs/appui-react/backstage/TaskLaunch.d.ts +2 -2
  55. package/lib/cjs/appui-react/backstage/TaskLaunch.js +1 -1
  56. package/lib/cjs/appui-react/backstage/TaskLaunch.js.map +1 -1
  57. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  58. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +57 -19
  59. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +74 -150
  61. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  62. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts +49 -0
  63. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -0
  64. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +206 -0
  65. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -0
  66. package/lib/cjs/appui-react/childwindow/{ChildWindowManager.scss → InternalChildWindowManager.scss} +0 -0
  67. package/lib/cjs/appui-react/configurableui/ActivityTracker.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/configurableui/ActivityTracker.js +4 -3
  69. package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
  70. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +5 -5
  71. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  72. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts +13 -37
  73. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +24 -96
  75. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  76. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts +82 -0
  77. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -0
  78. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +155 -0
  79. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -0
  80. package/lib/cjs/appui-react/configurableui/TimeTracker.js +5 -5
  81. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  82. package/lib/cjs/appui-react/configurableui/state.d.ts +3 -3
  83. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/configurableui/state.js +2 -2
  85. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  86. package/lib/cjs/appui-react/content/ContentGroup.d.ts +1 -1
  87. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/content/ContentGroup.js +4 -4
  89. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  90. package/lib/cjs/appui-react/content/ContentLayout.d.ts +1 -1
  91. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/content/ContentLayout.js +30 -15
  93. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  94. package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts +1 -1
  95. package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/content/ContentLayoutManager.js +11 -37
  97. package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +1 -1
  98. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +4 -34
  99. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  100. package/lib/cjs/appui-react/content/ContentViewManager.js +22 -115
  101. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  102. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts +6 -3
  103. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  104. package/lib/cjs/appui-react/content/FloatingViewportContent.js +24 -14
  105. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  106. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/content/IModelViewport.js +5 -7
  108. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  109. package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts +48 -0
  110. package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -0
  111. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +96 -0
  112. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -0
  113. package/lib/cjs/appui-react/content/InternalContentViewManager.d.ts +80 -0
  114. package/lib/cjs/appui-react/content/InternalContentViewManager.d.ts.map +1 -0
  115. package/lib/cjs/appui-react/content/InternalContentViewManager.js +210 -0
  116. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -0
  117. package/lib/cjs/appui-react/content/ViewportContentControl.d.ts.map +1 -1
  118. package/lib/cjs/appui-react/content/ViewportContentControl.js +3 -4
  119. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  120. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +1 -1
  121. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  122. package/lib/cjs/appui-react/dialog/ContentDialog.js +10 -11
  123. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  124. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts +9 -22
  125. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
  126. package/lib/cjs/appui-react/dialog/ContentDialogManager.js +23 -85
  127. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
  128. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.d.ts +48 -0
  129. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.d.ts.map +1 -0
  130. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js +132 -0
  131. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -0
  132. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.d.ts +36 -0
  133. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.d.ts.map +1 -0
  134. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js +55 -0
  135. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -0
  136. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.d.ts +46 -0
  137. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.d.ts.map +1 -0
  138. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js +120 -0
  139. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -0
  140. package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts +7 -12
  141. package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/dialog/ModalDialogManager.js +23 -27
  143. package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
  144. package/lib/cjs/appui-react/dialog/ModelessDialog.js +2 -2
  145. package/lib/cjs/appui-react/dialog/ModelessDialog.js.map +1 -1
  146. package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts +17 -28
  147. package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  148. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js +36 -86
  149. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  150. package/lib/cjs/appui-react/dialog/StandardMessageBox.js +2 -2
  151. package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
  152. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js +3 -4
  154. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  155. package/lib/cjs/appui-react/framework/FrameworkBackstage.d.ts +44 -0
  156. package/lib/cjs/appui-react/framework/FrameworkBackstage.d.ts.map +1 -0
  157. package/lib/cjs/appui-react/framework/FrameworkBackstage.js +10 -0
  158. package/lib/cjs/appui-react/framework/FrameworkBackstage.js.map +1 -0
  159. package/lib/cjs/appui-react/framework/FrameworkChildWindows.d.ts +59 -0
  160. package/lib/cjs/appui-react/framework/FrameworkChildWindows.d.ts.map +1 -0
  161. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js +10 -0
  162. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -0
  163. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +155 -0
  164. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts.map +1 -0
  165. package/lib/cjs/appui-react/framework/FrameworkContent.js +31 -0
  166. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -0
  167. package/lib/cjs/appui-react/framework/FrameworkControls.d.ts +43 -0
  168. package/lib/cjs/appui-react/framework/FrameworkControls.d.ts.map +1 -0
  169. package/lib/cjs/appui-react/framework/FrameworkControls.js +3 -0
  170. package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -0
  171. package/lib/cjs/appui-react/framework/FrameworkDialogs.d.ts +79 -0
  172. package/lib/cjs/appui-react/framework/FrameworkDialogs.d.ts.map +1 -0
  173. package/lib/cjs/appui-react/framework/FrameworkDialogs.js +24 -0
  174. package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -0
  175. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +286 -0
  176. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -0
  177. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js +64 -0
  178. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -0
  179. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +100 -0
  180. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -0
  181. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js +3 -0
  182. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -0
  183. package/lib/cjs/appui-react/framework/FrameworkToolSettings.d.ts +52 -0
  184. package/lib/cjs/appui-react/framework/FrameworkToolSettings.d.ts.map +1 -0
  185. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js +18 -0
  186. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -0
  187. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +37 -0
  188. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts.map +1 -0
  189. package/lib/cjs/appui-react/framework/FrameworkVisibility.js +3 -0
  190. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -0
  191. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +14 -14
  192. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/frontstage/Frontstage.js +16 -17
  194. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  195. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts +6 -6
  196. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +51 -51
  198. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  199. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +17 -17
  200. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +36 -38
  202. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  203. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +98 -254
  204. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  205. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +156 -472
  206. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  207. package/lib/cjs/appui-react/frontstage/FrontstageProvider.d.ts +1 -1
  208. package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  209. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +240 -0
  210. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -0
  211. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +538 -0
  212. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -0
  213. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
  214. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  215. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +8 -7
  216. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  217. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +2 -2
  218. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  219. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts +15 -0
  220. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts.map +1 -0
  221. package/lib/cjs/appui-react/frontstage/StageUsage.js +17 -0
  222. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -0
  223. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  224. package/lib/cjs/appui-react/hooks/useActiveStageId.d.ts.map +1 -1
  225. package/lib/cjs/appui-react/hooks/useActiveStageId.js +4 -4
  226. package/lib/cjs/appui-react/hooks/useActiveStageId.js.map +1 -1
  227. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  228. package/lib/cjs/appui-react/hooks/useActiveViewport.js +5 -5
  229. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  230. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js +4 -4
  231. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  232. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  233. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  234. package/lib/cjs/appui-react/hooks/useFrameworkVersion.d.ts +4 -4
  235. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js +3 -3
  236. package/lib/cjs/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  237. package/lib/cjs/appui-react/imodel-components/Common.d.ts +2 -0
  238. package/lib/cjs/appui-react/imodel-components/Common.d.ts.map +1 -1
  239. package/lib/cjs/appui-react/imodel-components/Common.js +1 -0
  240. package/lib/cjs/appui-react/imodel-components/Common.js.map +1 -1
  241. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +6 -0
  242. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  243. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js +2 -0
  244. package/lib/cjs/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  245. package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.d.ts +6 -0
  246. package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.d.ts.map +1 -1
  247. package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.js +6 -0
  248. package/lib/cjs/appui-react/imodel-components/VisibilityTreeRenderer.js.map +1 -1
  249. package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.d.ts +5 -1
  250. package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.d.ts.map +1 -1
  251. package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.js +4 -0
  252. package/lib/cjs/appui-react/imodel-components/category-tree/CategoriesTree.js.map +1 -1
  253. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +9 -2
  254. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  255. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +5 -1
  256. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  257. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts +2 -0
  258. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  259. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js +2 -0
  260. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  261. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +3 -0
  262. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  263. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +2 -0
  264. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  265. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.d.ts +2 -0
  266. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.d.ts.map +1 -1
  267. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js +2 -0
  268. package/lib/cjs/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js.map +1 -1
  269. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts +40 -0
  270. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -0
  271. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js +112 -0
  272. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -0
  273. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +5 -25
  274. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  275. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +19 -61
  276. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  277. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  278. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  279. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js +1 -1
  280. package/lib/cjs/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  281. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +2 -2
  282. package/lib/cjs/appui-react/messages/ActivityMessage.js +1 -1
  283. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  284. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +2 -2
  285. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +1 -1
  286. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  287. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  288. package/lib/cjs/appui-react/messages/MessageManager.js +5 -4
  289. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  290. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +2 -2
  291. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js +1 -1
  292. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  293. package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts +1 -1
  294. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js +1 -1
  295. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  296. package/lib/cjs/appui-react/messages/StickyMessage.d.ts +2 -2
  297. package/lib/cjs/appui-react/messages/StickyMessage.js +1 -1
  298. package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
  299. package/lib/cjs/appui-react/messages/ToastMessage.d.ts +2 -2
  300. package/lib/cjs/appui-react/messages/ToastMessage.js +1 -1
  301. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  302. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +1 -2
  303. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  304. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +1 -1
  305. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  306. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +2 -3
  307. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  308. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +1 -1
  309. package/lib/cjs/appui-react/pickers/ListPicker.js +5 -5
  310. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  311. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  312. package/lib/cjs/appui-react/pickers/ViewSelector.js +1 -2
  313. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  314. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +1 -1
  315. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +1 -1
  316. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  317. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.d.ts +1 -1
  318. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +1 -1
  319. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  320. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  321. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +4 -5
  322. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  323. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  324. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +3 -4
  325. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  326. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +2 -2
  327. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +16 -17
  329. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  330. package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
  331. package/lib/cjs/appui-react/shared/GroupItemProps.d.ts +1 -1
  332. package/lib/cjs/appui-react/shared/GroupItemProps.d.ts.map +1 -1
  333. package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
  334. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +4 -4
  335. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  336. package/lib/cjs/appui-react/shared/ItemDefBase.js +3 -3
  337. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  338. package/lib/cjs/appui-react/shared/ItemProps.d.ts +4 -4
  339. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  340. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js +2 -2
  342. package/lib/cjs/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  343. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +5 -5
  344. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  345. package/lib/cjs/appui-react/stagepanels/StagePanel.js +6 -6
  346. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  347. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  348. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +9 -9
  349. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  350. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  351. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js +3 -3
  352. package/lib/cjs/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  353. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts +13 -0
  354. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -0
  355. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +16 -0
  356. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -0
  357. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts +13 -0
  358. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -0
  359. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +16 -0
  360. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -0
  361. package/lib/cjs/appui-react/statusbar/LabelIndicator.js +2 -1
  362. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
  363. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -1
  364. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  365. package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -2
  366. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  367. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  368. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -0
  369. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  370. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +52 -2
  371. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  372. package/lib/cjs/appui-react/statusbar/StatusBarItem.js +33 -2
  373. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  374. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -4
  375. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  376. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +31 -1
  377. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  378. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  379. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  380. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  381. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts +3 -3
  382. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  383. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  384. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +2 -2
  385. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  386. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  387. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  388. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  389. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts +1 -1
  390. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js +1 -1
  391. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  392. package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts +1 -1
  393. package/lib/cjs/appui-react/statusfields/ConditionalField.js +1 -1
  394. package/lib/cjs/appui-react/statusfields/ConditionalField.js.map +1 -1
  395. package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts +1 -1
  396. package/lib/cjs/appui-react/statusfields/FooterModeField.js +1 -1
  397. package/lib/cjs/appui-react/statusfields/FooterModeField.js.map +1 -1
  398. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +4 -4
  399. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  400. package/lib/cjs/appui-react/statusfields/Indicator.js +3 -2
  401. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  402. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +1 -1
  403. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  404. package/lib/cjs/appui-react/statusfields/PromptField.d.ts +1 -1
  405. package/lib/cjs/appui-react/statusfields/PromptField.js +1 -1
  406. package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
  407. package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts +3 -3
  408. package/lib/cjs/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  409. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -3
  410. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  411. package/lib/cjs/appui-react/syncui/BooleanListener.d.ts +2 -2
  412. package/lib/cjs/appui-react/syncui/BooleanListener.js +1 -1
  413. package/lib/cjs/appui-react/syncui/BooleanListener.js.map +1 -1
  414. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +5 -5
  415. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  416. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +12 -14
  417. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  418. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts +2 -2
  419. package/lib/cjs/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  420. package/lib/cjs/appui-react/toolbar/ActionItemButton.js +3 -3
  421. package/lib/cjs/appui-react/toolbar/ActionItemButton.js.map +1 -1
  422. package/lib/cjs/appui-react/toolbar/GroupButtonItem.d.ts +1 -1
  423. package/lib/cjs/appui-react/toolbar/GroupButtonItem.d.ts.map +1 -1
  424. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js +11 -11
  425. package/lib/cjs/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  426. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts +5 -5
  427. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  428. package/lib/cjs/appui-react/toolbar/GroupItem.js +11 -12
  429. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  430. package/lib/cjs/appui-react/toolbar/PopupButton.d.ts +4 -4
  431. package/lib/cjs/appui-react/toolbar/PopupButton.d.ts.map +1 -1
  432. package/lib/cjs/appui-react/toolbar/PopupButton.js +6 -7
  433. package/lib/cjs/appui-react/toolbar/PopupButton.js.map +1 -1
  434. package/lib/cjs/appui-react/toolbar/ToolButton.d.ts +2 -2
  435. package/lib/cjs/appui-react/toolbar/ToolButton.d.ts.map +1 -1
  436. package/lib/cjs/appui-react/toolbar/ToolButton.js +2 -3
  437. package/lib/cjs/appui-react/toolbar/ToolButton.js.map +1 -1
  438. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  439. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +5 -7
  440. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  441. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +53 -0
  442. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -0
  443. package/lib/cjs/appui-react/toolbar/ToolbarItem.js +41 -0
  444. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -0
  445. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts +14 -0
  446. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -0
  447. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +28 -0
  448. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -0
  449. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +2 -2
  450. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  451. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  452. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  453. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +12 -13
  454. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  455. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  456. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +2 -3
  457. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  458. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.d.ts +1 -1
  459. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js +1 -1
  460. package/lib/cjs/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  461. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +4 -4
  462. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  463. package/lib/cjs/appui-react/tools/ToolSettingsTools.js +2 -2
  464. package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
  465. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +11 -0
  466. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -0
  467. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +20 -0
  468. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -0
  469. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts +9 -0
  470. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -0
  471. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js +10 -0
  472. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -0
  473. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  474. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  475. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  476. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  477. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  478. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
  479. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  480. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -2
  481. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  482. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  483. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +1 -0
  484. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  485. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  486. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  487. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +24 -0
  488. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -0
  489. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +19 -0
  490. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -0
  491. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +9 -0
  492. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -0
  493. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js +10 -0
  494. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -0
  495. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  496. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +11 -15
  497. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  498. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +2 -2
  499. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  500. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  501. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts +1 -1
  502. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +1 -1
  503. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  504. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +84 -0
  505. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -0
  506. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +198 -0
  507. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -0
  508. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  509. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +3 -33
  510. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  511. package/lib/cjs/appui-react/utils/UiShowHideManager.js +27 -117
  512. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  513. package/lib/cjs/appui-react/widget-panels/Content.js +3 -3
  514. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  515. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js +2 -2
  516. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  517. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  518. package/lib/cjs/appui-react/widget-panels/Frontstage.js +29 -29
  519. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  520. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.d.ts +1 -1
  521. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.d.ts.map +1 -1
  522. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js +6 -6
  523. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  524. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  525. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +18 -17
  526. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  527. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  528. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +1 -2
  529. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  530. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  531. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  532. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  533. package/lib/cjs/appui-react/widgets/DefaultNavigationWidget.d.ts +3 -3
  534. package/lib/cjs/appui-react/widgets/DefaultNavigationWidget.js +2 -2
  535. package/lib/cjs/appui-react/widgets/DefaultNavigationWidget.js.map +1 -1
  536. package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts +3 -3
  537. package/lib/cjs/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  538. package/lib/cjs/appui-react/widgets/NavigationWidget.js +14 -18
  539. package/lib/cjs/appui-react/widgets/NavigationWidget.js.map +1 -1
  540. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  541. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +8 -12
  542. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  543. package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  544. package/lib/cjs/appui-react/widgets/StableWidgetDef.js +1 -1
  545. package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
  546. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.d.ts.map +1 -1
  547. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js +2 -2
  548. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  549. package/lib/cjs/appui-react/widgets/ToolWidget.d.ts +3 -3
  550. package/lib/cjs/appui-react/widgets/ToolWidget.d.ts.map +1 -1
  551. package/lib/cjs/appui-react/widgets/ToolWidget.js +4 -6
  552. package/lib/cjs/appui-react/widgets/ToolWidget.js.map +1 -1
  553. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +3 -3
  554. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  555. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -1
  556. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js +1 -1
  557. package/lib/cjs/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  558. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  559. package/lib/cjs/appui-react/widgets/Widget.d.ts +1 -1
  560. package/lib/cjs/appui-react/widgets/Widget.js +1 -1
  561. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  562. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  563. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +14 -14
  564. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  565. package/lib/cjs/appui-react/widgets/WidgetDef.js +18 -18
  566. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  567. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +8 -1
  568. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts.map +1 -1
  569. package/lib/cjs/appui-react/widgets/WidgetProps.js.map +1 -1
  570. package/lib/cjs/appui-react/widgets/WidgetStack.js +2 -2
  571. package/lib/cjs/appui-react/widgets/WidgetStack.js.map +1 -1
  572. package/lib/cjs/appui-react/widgets/WidgetState.d.ts +13 -0
  573. package/lib/cjs/appui-react/widgets/WidgetState.d.ts.map +1 -0
  574. package/lib/cjs/appui-react/widgets/WidgetState.js +16 -0
  575. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -0
  576. package/lib/cjs/appui-react/workflow/Task.d.ts +4 -4
  577. package/lib/cjs/appui-react/workflow/Task.d.ts.map +1 -1
  578. package/lib/cjs/appui-react/workflow/Task.js +5 -5
  579. package/lib/cjs/appui-react/workflow/Task.js.map +1 -1
  580. package/lib/cjs/appui-react/workflow/Workflow.d.ts +8 -8
  581. package/lib/cjs/appui-react/workflow/Workflow.js +4 -4
  582. package/lib/cjs/appui-react/workflow/Workflow.js.map +1 -1
  583. package/lib/cjs/appui-react/zones/Zone.d.ts +3 -3
  584. package/lib/cjs/appui-react/zones/Zone.d.ts.map +1 -1
  585. package/lib/cjs/appui-react/zones/Zone.js +5 -5
  586. package/lib/cjs/appui-react/zones/Zone.js.map +1 -1
  587. package/lib/cjs/appui-react/zones/ZoneDef.d.ts +5 -5
  588. package/lib/cjs/appui-react/zones/ZoneDef.d.ts.map +1 -1
  589. package/lib/cjs/appui-react/zones/ZoneDef.js +5 -5
  590. package/lib/cjs/appui-react/zones/ZoneDef.js.map +1 -1
  591. package/lib/cjs/appui-react/zones/toolsettings/DefaultToolSettingsProvider.d.ts +1 -1
  592. package/lib/cjs/appui-react/zones/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  593. package/lib/cjs/appui-react/zones/toolsettings/DefaultToolSettingsProvider.js +6 -8
  594. package/lib/cjs/appui-react/zones/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  595. package/lib/cjs/appui-react/zones/toolsettings/InternalToolSettingsManager.d.ts +50 -0
  596. package/lib/cjs/appui-react/zones/toolsettings/InternalToolSettingsManager.d.ts.map +1 -0
  597. package/lib/cjs/appui-react/zones/toolsettings/InternalToolSettingsManager.js +124 -0
  598. package/lib/cjs/appui-react/zones/toolsettings/InternalToolSettingsManager.js.map +1 -0
  599. package/lib/cjs/appui-react/zones/toolsettings/ToolInformation.d.ts.map +1 -1
  600. package/lib/cjs/appui-react/zones/toolsettings/ToolInformation.js +4 -6
  601. package/lib/cjs/appui-react/zones/toolsettings/ToolInformation.js.map +1 -1
  602. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +8 -23
  603. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  604. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js +21 -87
  605. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  606. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.d.ts.map +1 -1
  607. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js +6 -9
  608. package/lib/cjs/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  609. package/lib/cjs/appui-react/zones/toolsettings/ToolUiProvider.d.ts +2 -2
  610. package/lib/cjs/appui-react/zones/toolsettings/ToolUiProvider.d.ts.map +1 -1
  611. package/lib/cjs/appui-react/zones/toolsettings/ToolUiProvider.js +1 -1
  612. package/lib/cjs/appui-react/zones/toolsettings/ToolUiProvider.js.map +1 -1
  613. package/lib/cjs/appui-react.d.ts +25 -5
  614. package/lib/cjs/appui-react.d.ts.map +1 -1
  615. package/lib/cjs/appui-react.js +25 -5
  616. package/lib/cjs/appui-react.js.map +1 -1
  617. package/lib/esm/appui-react/UiFramework.d.ts +65 -8
  618. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  619. package/lib/esm/appui-react/UiFramework.js +96 -21
  620. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  621. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  622. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +1 -2
  623. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  624. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +2 -2
  625. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  626. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +2 -2
  627. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  628. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +1 -1
  629. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  630. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  631. package/lib/esm/appui-react/backstage/Backstage.d.ts +4 -4
  632. package/lib/esm/appui-react/backstage/Backstage.js +7 -7
  633. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  634. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  635. package/lib/esm/appui-react/backstage/BackstageComposer.js +1 -0
  636. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  637. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +4 -4
  638. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  639. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +43 -0
  640. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -0
  641. package/lib/esm/appui-react/backstage/BackstageItem.js +32 -0
  642. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -0
  643. package/lib/esm/appui-react/backstage/BackstageItemProps.d.ts +3 -3
  644. package/lib/esm/appui-react/backstage/BackstageItemProps.js +1 -1
  645. package/lib/esm/appui-react/backstage/BackstageItemProps.js.map +1 -1
  646. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +7 -35
  647. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
  648. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +7 -21
  649. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  650. package/lib/esm/appui-react/backstage/BackstageManager.d.ts +9 -15
  651. package/lib/esm/appui-react/backstage/BackstageManager.d.ts.map +1 -1
  652. package/lib/esm/appui-react/backstage/BackstageManager.js +15 -29
  653. package/lib/esm/appui-react/backstage/BackstageManager.js.map +1 -1
  654. package/lib/esm/appui-react/backstage/CommandLaunch.d.ts +2 -2
  655. package/lib/esm/appui-react/backstage/CommandLaunch.js +1 -1
  656. package/lib/esm/appui-react/backstage/CommandLaunch.js.map +1 -1
  657. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts +2 -2
  658. package/lib/esm/appui-react/backstage/FrontstageLaunch.d.ts.map +1 -1
  659. package/lib/esm/appui-react/backstage/FrontstageLaunch.js +6 -7
  660. package/lib/esm/appui-react/backstage/FrontstageLaunch.js.map +1 -1
  661. package/lib/esm/appui-react/backstage/InternalBackstageManager.d.ts +23 -0
  662. package/lib/esm/appui-react/backstage/InternalBackstageManager.d.ts.map +1 -0
  663. package/lib/esm/appui-react/backstage/InternalBackstageManager.js +54 -0
  664. package/lib/esm/appui-react/backstage/InternalBackstageManager.js.map +1 -0
  665. package/lib/esm/appui-react/backstage/Separator.d.ts +1 -1
  666. package/lib/esm/appui-react/backstage/Separator.js +1 -1
  667. package/lib/esm/appui-react/backstage/Separator.js.map +1 -1
  668. package/lib/esm/appui-react/backstage/TaskLaunch.d.ts +2 -2
  669. package/lib/esm/appui-react/backstage/TaskLaunch.js +1 -1
  670. package/lib/esm/appui-react/backstage/TaskLaunch.js.map +1 -1
  671. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  672. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +57 -19
  673. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +1 -1
  674. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +74 -150
  675. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  676. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts +49 -0
  677. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -0
  678. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +202 -0
  679. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -0
  680. package/lib/esm/appui-react/childwindow/{ChildWindowManager.scss → InternalChildWindowManager.scss} +0 -0
  681. package/lib/esm/appui-react/configurableui/ActivityTracker.d.ts.map +1 -1
  682. package/lib/esm/appui-react/configurableui/ActivityTracker.js +4 -3
  683. package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
  684. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +5 -5
  685. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  686. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts +13 -37
  687. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts.map +1 -1
  688. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +23 -93
  689. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  690. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts +82 -0
  691. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -0
  692. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +149 -0
  693. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -0
  694. package/lib/esm/appui-react/configurableui/TimeTracker.js +5 -5
  695. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  696. package/lib/esm/appui-react/configurableui/state.d.ts +3 -3
  697. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  698. package/lib/esm/appui-react/configurableui/state.js +2 -2
  699. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  700. package/lib/esm/appui-react/content/ContentGroup.d.ts +1 -1
  701. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  702. package/lib/esm/appui-react/content/ContentGroup.js +4 -4
  703. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  704. package/lib/esm/appui-react/content/ContentLayout.d.ts +1 -1
  705. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  706. package/lib/esm/appui-react/content/ContentLayout.js +30 -15
  707. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  708. package/lib/esm/appui-react/content/ContentLayoutManager.d.ts +1 -1
  709. package/lib/esm/appui-react/content/ContentLayoutManager.d.ts.map +1 -1
  710. package/lib/esm/appui-react/content/ContentLayoutManager.js +11 -37
  711. package/lib/esm/appui-react/content/ContentLayoutManager.js.map +1 -1
  712. package/lib/esm/appui-react/content/ContentViewManager.d.ts +4 -34
  713. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  714. package/lib/esm/appui-react/content/ContentViewManager.js +21 -112
  715. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  716. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts +6 -3
  717. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  718. package/lib/esm/appui-react/content/FloatingViewportContent.js +24 -14
  719. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  720. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  721. package/lib/esm/appui-react/content/IModelViewport.js +5 -7
  722. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  723. package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts +48 -0
  724. package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts.map +1 -0
  725. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +92 -0
  726. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -0
  727. package/lib/esm/appui-react/content/InternalContentViewManager.d.ts +80 -0
  728. package/lib/esm/appui-react/content/InternalContentViewManager.d.ts.map +1 -0
  729. package/lib/esm/appui-react/content/InternalContentViewManager.js +206 -0
  730. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -0
  731. package/lib/esm/appui-react/content/ViewportContentControl.d.ts.map +1 -1
  732. package/lib/esm/appui-react/content/ViewportContentControl.js +3 -4
  733. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  734. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +1 -1
  735. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  736. package/lib/esm/appui-react/dialog/ContentDialog.js +10 -11
  737. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  738. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts +9 -22
  739. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
  740. package/lib/esm/appui-react/dialog/ContentDialogManager.js +23 -84
  741. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
  742. package/lib/esm/appui-react/dialog/InternalContentDialogManager.d.ts +48 -0
  743. package/lib/esm/appui-react/dialog/InternalContentDialogManager.d.ts.map +1 -0
  744. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js +128 -0
  745. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -0
  746. package/lib/esm/appui-react/dialog/InternalModalDialogManager.d.ts +36 -0
  747. package/lib/esm/appui-react/dialog/InternalModalDialogManager.d.ts.map +1 -0
  748. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js +51 -0
  749. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -0
  750. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.d.ts +46 -0
  751. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.d.ts.map +1 -0
  752. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js +116 -0
  753. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -0
  754. package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts +7 -12
  755. package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
  756. package/lib/esm/appui-react/dialog/ModalDialogManager.js +22 -25
  757. package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
  758. package/lib/esm/appui-react/dialog/ModelessDialog.js +2 -2
  759. package/lib/esm/appui-react/dialog/ModelessDialog.js.map +1 -1
  760. package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts +17 -28
  761. package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  762. package/lib/esm/appui-react/dialog/ModelessDialogManager.js +35 -84
  763. package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  764. package/lib/esm/appui-react/dialog/StandardMessageBox.js +2 -2
  765. package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
  766. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.d.ts.map +1 -1
  767. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js +3 -4
  768. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  769. package/lib/esm/appui-react/framework/FrameworkBackstage.d.ts +44 -0
  770. package/lib/esm/appui-react/framework/FrameworkBackstage.d.ts.map +1 -0
  771. package/lib/esm/appui-react/framework/FrameworkBackstage.js +9 -0
  772. package/lib/esm/appui-react/framework/FrameworkBackstage.js.map +1 -0
  773. package/lib/esm/appui-react/framework/FrameworkChildWindows.d.ts +59 -0
  774. package/lib/esm/appui-react/framework/FrameworkChildWindows.d.ts.map +1 -0
  775. package/lib/esm/appui-react/framework/FrameworkChildWindows.js +9 -0
  776. package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -0
  777. package/lib/esm/appui-react/framework/FrameworkContent.d.ts +155 -0
  778. package/lib/esm/appui-react/framework/FrameworkContent.d.ts.map +1 -0
  779. package/lib/esm/appui-react/framework/FrameworkContent.js +25 -0
  780. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -0
  781. package/lib/esm/appui-react/framework/FrameworkControls.d.ts +43 -0
  782. package/lib/esm/appui-react/framework/FrameworkControls.d.ts.map +1 -0
  783. package/lib/esm/appui-react/framework/FrameworkControls.js +2 -0
  784. package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -0
  785. package/lib/esm/appui-react/framework/FrameworkDialogs.d.ts +79 -0
  786. package/lib/esm/appui-react/framework/FrameworkDialogs.d.ts.map +1 -0
  787. package/lib/esm/appui-react/framework/FrameworkDialogs.js +19 -0
  788. package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -0
  789. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +286 -0
  790. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -0
  791. package/lib/esm/appui-react/framework/FrameworkFrontstages.js +53 -0
  792. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -0
  793. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +100 -0
  794. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -0
  795. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js +2 -0
  796. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -0
  797. package/lib/esm/appui-react/framework/FrameworkToolSettings.d.ts +52 -0
  798. package/lib/esm/appui-react/framework/FrameworkToolSettings.d.ts.map +1 -0
  799. package/lib/esm/appui-react/framework/FrameworkToolSettings.js +14 -0
  800. package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -0
  801. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +37 -0
  802. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts.map +1 -0
  803. package/lib/esm/appui-react/framework/FrameworkVisibility.js +2 -0
  804. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -0
  805. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +14 -14
  806. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  807. package/lib/esm/appui-react/frontstage/Frontstage.js +16 -17
  808. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  809. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts +6 -6
  810. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  811. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +51 -51
  812. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  813. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +17 -17
  814. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  815. package/lib/esm/appui-react/frontstage/FrontstageDef.js +36 -38
  816. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  817. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +98 -254
  818. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  819. package/lib/esm/appui-react/frontstage/FrontstageManager.js +155 -463
  820. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  821. package/lib/esm/appui-react/frontstage/FrontstageProvider.d.ts +1 -1
  822. package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
  823. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +240 -0
  824. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -0
  825. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +534 -0
  826. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -0
  827. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
  828. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  829. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +9 -8
  830. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  831. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +2 -2
  832. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  833. package/lib/esm/appui-react/frontstage/StageUsage.d.ts +15 -0
  834. package/lib/esm/appui-react/frontstage/StageUsage.d.ts.map +1 -0
  835. package/lib/esm/appui-react/frontstage/StageUsage.js +14 -0
  836. package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -0
  837. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  838. package/lib/esm/appui-react/hooks/useActiveStageId.d.ts.map +1 -1
  839. package/lib/esm/appui-react/hooks/useActiveStageId.js +4 -4
  840. package/lib/esm/appui-react/hooks/useActiveStageId.js.map +1 -1
  841. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  842. package/lib/esm/appui-react/hooks/useActiveViewport.js +5 -5
  843. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  844. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js +4 -4
  845. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  846. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  847. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  848. package/lib/esm/appui-react/hooks/useFrameworkVersion.d.ts +4 -4
  849. package/lib/esm/appui-react/hooks/useFrameworkVersion.js +3 -3
  850. package/lib/esm/appui-react/hooks/useFrameworkVersion.js.map +1 -1
  851. package/lib/esm/appui-react/imodel-components/Common.d.ts +2 -0
  852. package/lib/esm/appui-react/imodel-components/Common.d.ts.map +1 -1
  853. package/lib/esm/appui-react/imodel-components/Common.js +1 -0
  854. package/lib/esm/appui-react/imodel-components/Common.js.map +1 -1
  855. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts +6 -0
  856. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.d.ts.map +1 -1
  857. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js +2 -0
  858. package/lib/esm/appui-react/imodel-components/VisibilityTreeEventHandler.js.map +1 -1
  859. package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.d.ts +6 -0
  860. package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.d.ts.map +1 -1
  861. package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.js +6 -0
  862. package/lib/esm/appui-react/imodel-components/VisibilityTreeRenderer.js.map +1 -1
  863. package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.d.ts +5 -1
  864. package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.d.ts.map +1 -1
  865. package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.js +4 -0
  866. package/lib/esm/appui-react/imodel-components/category-tree/CategoriesTree.js.map +1 -1
  867. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts +9 -2
  868. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  869. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +5 -1
  870. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  871. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts +2 -0
  872. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.d.ts.map +1 -1
  873. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js +2 -0
  874. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTree.js.map +1 -1
  875. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts +3 -0
  876. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.d.ts.map +1 -1
  877. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js +2 -0
  878. package/lib/esm/appui-react/imodel-components/models-tree/ModelsVisibilityHandler.js.map +1 -1
  879. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.d.ts +2 -0
  880. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.d.ts.map +1 -1
  881. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js +2 -0
  882. package/lib/esm/appui-react/imodel-components/spatial-tree/SpatialContainmentTree.js.map +1 -1
  883. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts +40 -0
  884. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -0
  885. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js +108 -0
  886. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -0
  887. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +5 -25
  888. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  889. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +20 -62
  890. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  891. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts +5 -5
  892. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.d.ts.map +1 -1
  893. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js +1 -1
  894. package/lib/esm/appui-react/keyinbrowser/KeyinBrowser.js.map +1 -1
  895. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +2 -2
  896. package/lib/esm/appui-react/messages/ActivityMessage.js +1 -1
  897. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  898. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +2 -2
  899. package/lib/esm/appui-react/messages/ActivityMessagePopup.js +1 -1
  900. package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  901. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  902. package/lib/esm/appui-react/messages/MessageManager.js +5 -4
  903. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  904. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +2 -2
  905. package/lib/esm/appui-react/messages/StatusMessageRenderer.js +1 -1
  906. package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  907. package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts +1 -1
  908. package/lib/esm/appui-react/messages/StatusMessagesContainer.js +1 -1
  909. package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  910. package/lib/esm/appui-react/messages/StickyMessage.d.ts +2 -2
  911. package/lib/esm/appui-react/messages/StickyMessage.js +1 -1
  912. package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
  913. package/lib/esm/appui-react/messages/ToastMessage.d.ts +2 -2
  914. package/lib/esm/appui-react/messages/ToastMessage.js +1 -1
  915. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  916. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +1 -2
  917. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  918. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +1 -1
  919. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  920. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -3
  921. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  922. package/lib/esm/appui-react/pickers/ListPicker.d.ts +1 -1
  923. package/lib/esm/appui-react/pickers/ListPicker.js +5 -5
  924. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  925. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  926. package/lib/esm/appui-react/pickers/ViewSelector.js +1 -2
  927. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  928. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +1 -1
  929. package/lib/esm/appui-react/safearea/SafeAreaContext.js +1 -1
  930. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  931. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.d.ts +1 -1
  932. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +1 -1
  933. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  934. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  935. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +4 -5
  936. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  937. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  938. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +3 -4
  939. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  940. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +2 -2
  941. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  942. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +16 -17
  943. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  944. package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
  945. package/lib/esm/appui-react/shared/GroupItemProps.d.ts +1 -1
  946. package/lib/esm/appui-react/shared/GroupItemProps.d.ts.map +1 -1
  947. package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
  948. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +4 -4
  949. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  950. package/lib/esm/appui-react/shared/ItemDefBase.js +3 -3
  951. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  952. package/lib/esm/appui-react/shared/ItemProps.d.ts +4 -4
  953. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  954. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.d.ts.map +1 -1
  955. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js +2 -2
  956. package/lib/esm/appui-react/stagepanels/FrameworkStagePanel.js.map +1 -1
  957. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +5 -5
  958. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  959. package/lib/esm/appui-react/stagepanels/StagePanel.js +6 -6
  960. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  961. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  962. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +9 -9
  963. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  964. package/lib/esm/appui-react/stagepanels/StagePanelHeader.d.ts +2 -2
  965. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js +3 -3
  966. package/lib/esm/appui-react/stagepanels/StagePanelHeader.js.map +1 -1
  967. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts +13 -0
  968. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -0
  969. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js +13 -0
  970. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -0
  971. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts +13 -0
  972. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -0
  973. package/lib/esm/appui-react/stagepanels/StagePanelSection.js +13 -0
  974. package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -0
  975. package/lib/esm/appui-react/statusbar/LabelIndicator.js +2 -1
  976. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
  977. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -1
  978. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  979. package/lib/esm/appui-react/statusbar/StatusBar.js +2 -2
  980. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  981. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  982. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -0
  983. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  984. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +52 -2
  985. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  986. package/lib/esm/appui-react/statusbar/StatusBarItem.js +29 -1
  987. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  988. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -4
  989. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  990. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js +31 -1
  991. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  992. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +1 -1
  993. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +1 -1
  994. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  995. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts +3 -3
  996. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  997. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  998. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +2 -2
  999. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  1000. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  1001. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  1002. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  1003. package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts +1 -1
  1004. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js +1 -1
  1005. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  1006. package/lib/esm/appui-react/statusfields/ConditionalField.d.ts +1 -1
  1007. package/lib/esm/appui-react/statusfields/ConditionalField.js +1 -1
  1008. package/lib/esm/appui-react/statusfields/ConditionalField.js.map +1 -1
  1009. package/lib/esm/appui-react/statusfields/FooterModeField.d.ts +1 -1
  1010. package/lib/esm/appui-react/statusfields/FooterModeField.js +1 -1
  1011. package/lib/esm/appui-react/statusfields/FooterModeField.js.map +1 -1
  1012. package/lib/esm/appui-react/statusfields/Indicator.d.ts +4 -4
  1013. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  1014. package/lib/esm/appui-react/statusfields/Indicator.js +3 -2
  1015. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  1016. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +1 -1
  1017. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  1018. package/lib/esm/appui-react/statusfields/PromptField.d.ts +1 -1
  1019. package/lib/esm/appui-react/statusfields/PromptField.js +1 -1
  1020. package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
  1021. package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts +3 -3
  1022. package/lib/esm/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  1023. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -3
  1024. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  1025. package/lib/esm/appui-react/syncui/BooleanListener.d.ts +2 -2
  1026. package/lib/esm/appui-react/syncui/BooleanListener.js +1 -1
  1027. package/lib/esm/appui-react/syncui/BooleanListener.js.map +1 -1
  1028. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +5 -5
  1029. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  1030. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +12 -14
  1031. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  1032. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts +2 -2
  1033. package/lib/esm/appui-react/toolbar/ActionItemButton.d.ts.map +1 -1
  1034. package/lib/esm/appui-react/toolbar/ActionItemButton.js +3 -3
  1035. package/lib/esm/appui-react/toolbar/ActionItemButton.js.map +1 -1
  1036. package/lib/esm/appui-react/toolbar/GroupButtonItem.d.ts +1 -1
  1037. package/lib/esm/appui-react/toolbar/GroupButtonItem.d.ts.map +1 -1
  1038. package/lib/esm/appui-react/toolbar/GroupButtonItem.js +9 -9
  1039. package/lib/esm/appui-react/toolbar/GroupButtonItem.js.map +1 -1
  1040. package/lib/esm/appui-react/toolbar/GroupItem.d.ts +5 -5
  1041. package/lib/esm/appui-react/toolbar/GroupItem.d.ts.map +1 -1
  1042. package/lib/esm/appui-react/toolbar/GroupItem.js +11 -12
  1043. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  1044. package/lib/esm/appui-react/toolbar/PopupButton.d.ts +4 -4
  1045. package/lib/esm/appui-react/toolbar/PopupButton.d.ts.map +1 -1
  1046. package/lib/esm/appui-react/toolbar/PopupButton.js +6 -7
  1047. package/lib/esm/appui-react/toolbar/PopupButton.js.map +1 -1
  1048. package/lib/esm/appui-react/toolbar/ToolButton.d.ts +2 -2
  1049. package/lib/esm/appui-react/toolbar/ToolButton.d.ts.map +1 -1
  1050. package/lib/esm/appui-react/toolbar/ToolButton.js +2 -3
  1051. package/lib/esm/appui-react/toolbar/ToolButton.js.map +1 -1
  1052. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  1053. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +5 -7
  1054. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  1055. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +53 -0
  1056. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -0
  1057. package/lib/esm/appui-react/toolbar/ToolbarItem.js +35 -0
  1058. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -0
  1059. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts +14 -0
  1060. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -0
  1061. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js +25 -0
  1062. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -0
  1063. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +2 -2
  1064. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  1065. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -1
  1066. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  1067. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +12 -13
  1068. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  1069. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  1070. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +2 -3
  1071. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  1072. package/lib/esm/appui-react/tools/MarkupToolDefinitions.d.ts +1 -1
  1073. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js +1 -1
  1074. package/lib/esm/appui-react/tools/MarkupToolDefinitions.js.map +1 -1
  1075. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +4 -4
  1076. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  1077. package/lib/esm/appui-react/tools/ToolSettingsTools.js +2 -2
  1078. package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
  1079. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +11 -0
  1080. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -0
  1081. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +16 -0
  1082. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -0
  1083. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts +9 -0
  1084. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -0
  1085. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js +9 -0
  1086. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -0
  1087. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  1088. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  1089. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  1090. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  1091. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  1092. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
  1093. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  1094. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -2
  1095. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  1096. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  1097. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +1 -0
  1098. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  1099. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  1100. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  1101. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +24 -0
  1102. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -0
  1103. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +15 -0
  1104. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -0
  1105. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +9 -0
  1106. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -0
  1107. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js +9 -0
  1108. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -0
  1109. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  1110. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +11 -15
  1111. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  1112. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +2 -2
  1113. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  1114. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  1115. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts +1 -1
  1116. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +1 -1
  1117. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  1118. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +84 -0
  1119. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -0
  1120. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +193 -0
  1121. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -0
  1122. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  1123. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +3 -33
  1124. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  1125. package/lib/esm/appui-react/utils/UiShowHideManager.js +27 -115
  1126. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  1127. package/lib/esm/appui-react/widget-panels/Content.js +3 -3
  1128. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  1129. package/lib/esm/appui-react/widget-panels/FloatingWidget.js +2 -2
  1130. package/lib/esm/appui-react/widget-panels/FloatingWidget.js.map +1 -1
  1131. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  1132. package/lib/esm/appui-react/widget-panels/Frontstage.js +29 -29
  1133. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  1134. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.d.ts +1 -1
  1135. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.d.ts.map +1 -1
  1136. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js +6 -6
  1137. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  1138. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  1139. package/lib/esm/appui-react/widget-panels/ToolSettings.js +18 -17
  1140. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  1141. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  1142. package/lib/esm/appui-react/widgets/BackstageAppButton.js +1 -2
  1143. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  1144. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  1145. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  1146. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  1147. package/lib/esm/appui-react/widgets/DefaultNavigationWidget.d.ts +3 -3
  1148. package/lib/esm/appui-react/widgets/DefaultNavigationWidget.js +2 -2
  1149. package/lib/esm/appui-react/widgets/DefaultNavigationWidget.js.map +1 -1
  1150. package/lib/esm/appui-react/widgets/NavigationWidget.d.ts +3 -3
  1151. package/lib/esm/appui-react/widgets/NavigationWidget.d.ts.map +1 -1
  1152. package/lib/esm/appui-react/widgets/NavigationWidget.js +14 -18
  1153. package/lib/esm/appui-react/widgets/NavigationWidget.js.map +1 -1
  1154. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  1155. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +8 -12
  1156. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  1157. package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +1 -1
  1158. package/lib/esm/appui-react/widgets/StableWidgetDef.js +1 -1
  1159. package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
  1160. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.d.ts.map +1 -1
  1161. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js +2 -2
  1162. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  1163. package/lib/esm/appui-react/widgets/ToolWidget.d.ts +3 -3
  1164. package/lib/esm/appui-react/widgets/ToolWidget.d.ts.map +1 -1
  1165. package/lib/esm/appui-react/widgets/ToolWidget.js +4 -6
  1166. package/lib/esm/appui-react/widgets/ToolWidget.js.map +1 -1
  1167. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +3 -3
  1168. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
  1169. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.d.ts +1 -1
  1170. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js +1 -1
  1171. package/lib/esm/appui-react/widgets/ToolbarWidgetBase.js.map +1 -1
  1172. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  1173. package/lib/esm/appui-react/widgets/Widget.d.ts +1 -1
  1174. package/lib/esm/appui-react/widgets/Widget.js +1 -1
  1175. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  1176. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  1177. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +14 -14
  1178. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  1179. package/lib/esm/appui-react/widgets/WidgetDef.js +18 -18
  1180. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  1181. package/lib/esm/appui-react/widgets/WidgetProps.d.ts +8 -1
  1182. package/lib/esm/appui-react/widgets/WidgetProps.d.ts.map +1 -1
  1183. package/lib/esm/appui-react/widgets/WidgetProps.js.map +1 -1
  1184. package/lib/esm/appui-react/widgets/WidgetStack.js +2 -2
  1185. package/lib/esm/appui-react/widgets/WidgetStack.js.map +1 -1
  1186. package/lib/esm/appui-react/widgets/WidgetState.d.ts +13 -0
  1187. package/lib/esm/appui-react/widgets/WidgetState.d.ts.map +1 -0
  1188. package/lib/esm/appui-react/widgets/WidgetState.js +13 -0
  1189. package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -0
  1190. package/lib/esm/appui-react/workflow/Task.d.ts +4 -4
  1191. package/lib/esm/appui-react/workflow/Task.d.ts.map +1 -1
  1192. package/lib/esm/appui-react/workflow/Task.js +5 -5
  1193. package/lib/esm/appui-react/workflow/Task.js.map +1 -1
  1194. package/lib/esm/appui-react/workflow/Workflow.d.ts +8 -8
  1195. package/lib/esm/appui-react/workflow/Workflow.js +4 -4
  1196. package/lib/esm/appui-react/workflow/Workflow.js.map +1 -1
  1197. package/lib/esm/appui-react/zones/Zone.d.ts +3 -3
  1198. package/lib/esm/appui-react/zones/Zone.d.ts.map +1 -1
  1199. package/lib/esm/appui-react/zones/Zone.js +5 -5
  1200. package/lib/esm/appui-react/zones/Zone.js.map +1 -1
  1201. package/lib/esm/appui-react/zones/ZoneDef.d.ts +5 -5
  1202. package/lib/esm/appui-react/zones/ZoneDef.d.ts.map +1 -1
  1203. package/lib/esm/appui-react/zones/ZoneDef.js +5 -5
  1204. package/lib/esm/appui-react/zones/ZoneDef.js.map +1 -1
  1205. package/lib/esm/appui-react/zones/toolsettings/DefaultToolSettingsProvider.d.ts +1 -1
  1206. package/lib/esm/appui-react/zones/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  1207. package/lib/esm/appui-react/zones/toolsettings/DefaultToolSettingsProvider.js +6 -8
  1208. package/lib/esm/appui-react/zones/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  1209. package/lib/esm/appui-react/zones/toolsettings/InternalToolSettingsManager.d.ts +50 -0
  1210. package/lib/esm/appui-react/zones/toolsettings/InternalToolSettingsManager.d.ts.map +1 -0
  1211. package/lib/esm/appui-react/zones/toolsettings/InternalToolSettingsManager.js +120 -0
  1212. package/lib/esm/appui-react/zones/toolsettings/InternalToolSettingsManager.js.map +1 -0
  1213. package/lib/esm/appui-react/zones/toolsettings/ToolInformation.d.ts.map +1 -1
  1214. package/lib/esm/appui-react/zones/toolsettings/ToolInformation.js +4 -6
  1215. package/lib/esm/appui-react/zones/toolsettings/ToolInformation.js.map +1 -1
  1216. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts +8 -23
  1217. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.d.ts.map +1 -1
  1218. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js +20 -85
  1219. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsManager.js.map +1 -1
  1220. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.d.ts.map +1 -1
  1221. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js +6 -9
  1222. package/lib/esm/appui-react/zones/toolsettings/ToolSettingsZone.js.map +1 -1
  1223. package/lib/esm/appui-react/zones/toolsettings/ToolUiProvider.d.ts +2 -2
  1224. package/lib/esm/appui-react/zones/toolsettings/ToolUiProvider.d.ts.map +1 -1
  1225. package/lib/esm/appui-react/zones/toolsettings/ToolUiProvider.js +1 -1
  1226. package/lib/esm/appui-react/zones/toolsettings/ToolUiProvider.js.map +1 -1
  1227. package/lib/esm/appui-react.d.ts +25 -5
  1228. package/lib/esm/appui-react.d.ts.map +1 -1
  1229. package/lib/esm/appui-react.js +25 -5
  1230. package/lib/esm/appui-react.js.map +1 -1
  1231. package/package.json +45 -35
@@ -1 +1 @@
1
- {"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\n// cSpell:ignore popout\r\n\r\nimport \"./Frontstage.scss\";\r\nimport produce from \"immer\";\r\nimport * as React from \"react\";\r\nimport { assert, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { StagePanelLocation, UiItemsManager, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Rectangle, RectangleProps, Size, SizeProps, UiStateStorageResult, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { ToolbarPopupAutoHideContext } from \"@itwin/components-react\";\r\nimport {\r\n addFloatingWidget, addPanelWidget, addTab, addTabToWidget, convertAllPopupWidgetContainersToFloating, createNineZoneState, floatingWidgetBringToFront,\r\n FloatingWidgetHomeState,\r\n FloatingWidgets, getTabLocation, getUniqueId, getWidgetPanelSectionId, insertPanelWidget, insertTabToWidget, isFloatingTabLocation,\r\n isHorizontalPanelSide, isPanelTabLocation, isPopoutTabLocation, NineZone, NineZoneAction, NineZoneDispatch, NineZoneLabels, NineZoneState, NineZoneStateReducer, PanelSide,\r\n panelSides, removeTab, removeTabFromWidget, TabState, toolSettingsTabId, WidgetPanels,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { useActiveFrontstageDef } from \"../frontstage/Frontstage\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"../frontstage/FrontstageDef\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { StagePanelMaxSizeSpec } from \"../stagepanels/StagePanel\";\r\nimport { StagePanelState, StagePanelZoneDefKeys } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { TabLocation, WidgetDef, WidgetEventArgs, WidgetStateChangedEventArgs } from \"../widgets/WidgetDef\";\r\nimport { ZoneState } from \"../zones/ZoneDef\";\r\nimport { WidgetContent } from \"./Content\";\r\nimport { WidgetPanelsFrontstageContent } from \"./FrontstageContent\";\r\nimport { ModalFrontstageComposer, useActiveModalFrontstageInfo } from \"./ModalFrontstageComposer\";\r\nimport { WidgetPanelsStatusBar } from \"./StatusBar\";\r\nimport { WidgetPanelsTab } from \"./Tab\";\r\nimport { WidgetPanelsToolbars } from \"./Toolbars\";\r\nimport { ToolSettingsContent, WidgetPanelsToolSettings } from \"./ToolSettings\";\r\nimport { useEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\nimport { FrameworkRootState } from \"../redux/StateManager\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useUiVisibility } from \"../hooks/useUiVisibility\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { FloatingWidget } from \"./FloatingWidget\";\r\n\r\nconst panelZoneKeys: StagePanelZoneDefKeys[] = [\"start\", \"end\"];\r\n\r\nconst WidgetInternals = React.memo(function WidgetInternals() { // eslint-disable-line @typescript-eslint/naming-convention, no-shadow\r\n const activeModalFrontstageInfo = useActiveModalFrontstageInfo();\r\n const uiIsVisible = useUiVisibility();\r\n\r\n return (\r\n <>\r\n <ToolbarPopupAutoHideContext.Provider value={!uiIsVisible}>\r\n <ModalFrontstageComposer stageInfo={activeModalFrontstageInfo} />\r\n <WidgetPanels\r\n className=\"uifw-widgetPanels\"\r\n centerContent={<WidgetPanelsToolbars />}\r\n >\r\n <WidgetPanelsFrontstageContent />\r\n </WidgetPanels>\r\n <WidgetPanelsStatusBar />\r\n <FloatingWidgets />\r\n </ToolbarPopupAutoHideContext.Provider>\r\n </>\r\n );\r\n});\r\n\r\n// istanbul ignore next\r\nconst WidgetPanelsFrontstageComponent = React.memo(function WidgetPanelsFrontstageComponent() { // eslint-disable-line @typescript-eslint/naming-convention, no-shadow\r\n\r\n return (\r\n <>\r\n <WidgetPanelsToolSettings />\r\n <WidgetInternals />\r\n </>\r\n );\r\n});\r\n\r\nconst widgetContent = <WidgetContent />;\r\nconst toolSettingsContent = <ToolSettingsContent />;\r\nconst widgetPanelsFrontstage = <WidgetPanelsFrontstageComponent />;\r\n\r\n/** @internal */\r\nexport function useNineZoneState(frontstageDef: FrontstageDef) {\r\n const lastFrontstageDef = React.useRef(frontstageDef);\r\n const [nineZone, setNineZone] = React.useState(frontstageDef.nineZoneState);\r\n React.useEffect(() => {\r\n setNineZone(frontstageDef.nineZoneState);\r\n lastFrontstageDef.current = frontstageDef;\r\n }, [frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = (args: FrontstageNineZoneStateChangedEventArgs) => {\r\n if (args.frontstageDef !== frontstageDef || frontstageDef.isStageClosing || frontstageDef.isApplicationClosing)\r\n return;\r\n setNineZone(args.state);\r\n };\r\n return FrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener(listener);\r\n }, [frontstageDef]);\r\n return lastFrontstageDef.current === frontstageDef ? nineZone : frontstageDef.nineZoneState;\r\n}\r\n\r\n/** @returns Defined NineZoneState with fallback to last defined and default NineZoneState.\r\n * @internal\r\n */\r\nfunction useCachedNineZoneState(nineZone: NineZoneState | undefined): NineZoneState {\r\n const cached = React.useRef<NineZoneState>(nineZone || defaultNineZone);\r\n React.useEffect(() => {\r\n if (nineZone)\r\n cached.current = nineZone;\r\n }, [nineZone]);\r\n return nineZone || cached.current;\r\n}\r\n\r\n/** Update in-memory NineZoneState of newly activated frontstage with up to date size.\r\n * @internal\r\n */\r\nexport function useUpdateNineZoneSize(frontstageDef: FrontstageDef) {\r\n React.useEffect(() => {\r\n const size = FrontstageManager.nineZoneSize;\r\n let state = frontstageDef.nineZoneState;\r\n if (!size || !state)\r\n return;\r\n state = FrameworkStateReducer(state, {\r\n type: \"RESIZE\",\r\n size: {\r\n height: size.height,\r\n width: size.width,\r\n },\r\n }, frontstageDef);\r\n frontstageDef.nineZoneState = state;\r\n }, [frontstageDef]);\r\n}\r\n\r\n/** @internal */\r\nexport function FrameworkStateReducer(state: NineZoneState, action: NineZoneAction, frontstageDef: FrontstageDef) {\r\n state = NineZoneStateReducer(state, action);\r\n if (action.type === \"RESIZE\") {\r\n state = produce(state, (draft) => {\r\n for (const panelSide of panelSides) {\r\n const panel = draft.panels[panelSide];\r\n const location = toStagePanelLocation(panelSide);\r\n const panelDef = frontstageDef.getStagePanelDef(location);\r\n if (panelDef?.maxSizeSpec) {\r\n panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, action.size);\r\n if (panel.size) {\r\n panel.size = Math.min(Math.max(panel.size, panel.minSize), panel.maxSize);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n return state;\r\n}\r\n\r\n/** @internal */\r\nexport function useNineZoneDispatch(frontstageDef: FrontstageDef) {\r\n const dispatch = React.useCallback<NineZoneDispatch>((action) => {\r\n if (action.type === \"RESIZE\") {\r\n FrontstageManager.nineZoneSize = Size.create(action.size);\r\n }\r\n // istanbul ignore if\r\n if (action.type === \"TOOL_SETTINGS_DRAG_START\") {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n UiFramework.postTelemetry(\"Tool Settings Undocking\", \"28B04E07-AE73-4533-A0BA-8E2A8DC99ADF\");\r\n }\r\n // istanbul ignore if\r\n if (action.type === \"TOOL_SETTINGS_DOCK\") {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n UiFramework.postTelemetry(\"Tool Settings Docking to Settings Bar\", \"BEDE684B-B3DB-4637-B3AF-DC3CBA223F94\");\r\n }\r\n if (action.type === \"WIDGET_TAB_POPOUT\") {\r\n const tabId = action.id;\r\n frontstageDef.popoutWidget(tabId);\r\n return;\r\n }\r\n const nineZoneState = frontstageDef.nineZoneState;\r\n if (!nineZoneState)\r\n return;\r\n frontstageDef.nineZoneState = FrameworkStateReducer(nineZoneState, action, frontstageDef);\r\n }, [frontstageDef]);\r\n return dispatch;\r\n}\r\n\r\n/** @internal */\r\nexport const WidgetPanelsFrontstage = React.memo(function WidgetPanelsFrontstage() { // eslint-disable-line @typescript-eslint/naming-convention, no-shadow\r\n const frontstageDef = useActiveFrontstageDef();\r\n\r\n React.useEffect(() => {\r\n const triggerWidowCloseProcessing = () => {\r\n frontstageDef && frontstageDef.setIsApplicationClosing(true);\r\n };\r\n\r\n frontstageDef && frontstageDef.setIsApplicationClosing(false);\r\n\r\n window.addEventListener(\"unload\", triggerWidowCloseProcessing);\r\n return () => {\r\n window.removeEventListener(\"unload\", triggerWidowCloseProcessing);\r\n };\r\n }, [frontstageDef]);\r\n\r\n if (!frontstageDef)\r\n return null;\r\n return (\r\n <ActiveFrontstageDefProvider frontstageDef={frontstageDef} />\r\n );\r\n});\r\n\r\nconst defaultNineZone = createNineZoneState();\r\nconst tabElement = <WidgetPanelsTab />;\r\nconst floatingWidgetElement = <FloatingWidget />;\r\n\r\n/** @internal */\r\nexport function ActiveFrontstageDefProvider({ frontstageDef }: { frontstageDef: FrontstageDef }) {\r\n let nineZone = useNineZoneState(frontstageDef);\r\n nineZone = useCachedNineZoneState(nineZone);\r\n const dispatch = useNineZoneDispatch(frontstageDef);\r\n useUpdateNineZoneSize(frontstageDef);\r\n useSavedFrontstageState(frontstageDef);\r\n useSaveFrontstageSettings(frontstageDef);\r\n useItemsManager(frontstageDef);\r\n const labels = useLabels();\r\n const uiIsVisible = useUiVisibility();\r\n const showWidgetIcon = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.showWidgetIcon;\r\n });\r\n const autoCollapseUnpinnedPanels = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.autoCollapseUnpinnedPanels;\r\n });\r\n const animateToolSettings = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.animateToolSettings;\r\n });\r\n const useToolAsToolSettingsLabel = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.useToolAsToolSettingsLabel;\r\n });\r\n useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel);\r\n\r\n const handleKeyDown = useEscapeSetFocusToHome();\r\n return (\r\n <div\r\n className=\"uifw-widgetPanels-frontstage\"\r\n onKeyDown={handleKeyDown}\r\n role=\"presentation\"\r\n >\r\n <NineZone\r\n dispatch={dispatch}\r\n labels={labels}\r\n state={nineZone}\r\n tab={tabElement}\r\n floatingWidget={floatingWidgetElement}\r\n showWidgetIcon={showWidgetIcon}\r\n autoCollapseUnpinnedPanels={autoCollapseUnpinnedPanels}\r\n toolSettingsContent={toolSettingsContent}\r\n widgetContent={widgetContent}\r\n animateDockedToolSettings={animateToolSettings}\r\n uiIsVisible={uiIsVisible}\r\n >\r\n {widgetPanelsFrontstage}\r\n </NineZone>\r\n </div>\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport function useLabels() {\r\n return React.useMemo<NineZoneLabels>(() => ({\r\n dockToolSettingsTitle: UiFramework.translate(\"widget.tooltips.dockToolSettings\"),\r\n moreWidgetsTitle: UiFramework.translate(\"widget.tooltips.moreWidgets\"),\r\n moreToolSettingsTitle: UiFramework.translate(\"widget.tooltips.moreToolSettings\"),\r\n pinPanelTitle: UiFramework.translate(\"widget.tooltips.pinPanel\"),\r\n resizeGripTitle: UiFramework.translate(\"widget.tooltips.resizeGrip\"),\r\n sendWidgetHomeTitle: UiFramework.translate(\"widget.tooltips.sendHome\"),\r\n toolSettingsHandleTitle: UiFramework.translate(\"widget.tooltips.toolSettingsHandle\"),\r\n unpinPanelTitle: UiFramework.translate(\"widget.tooltips.unpinPanel\"),\r\n popoutActiveTab: UiFramework.translate(\"widget.tooltips.popoutActiveTab\"),\r\n }), []);\r\n}\r\n\r\n/** @internal */\r\nexport function addWidgets(state: NineZoneState, widgets: ReadonlyArray<WidgetDef>, side: PanelSide, widgetId: WidgetIdTypes): NineZoneState {\r\n const visibleWidgets = widgets.filter((w) => w.isVisible && (w.defaultState !== WidgetState.Floating));\r\n if (visibleWidgets.length === 0)\r\n return state;\r\n\r\n const tabs = new Array<string>();\r\n for (const widget of visibleWidgets) {\r\n const label = getWidgetLabel(widget.label);\r\n state = addTab(state, widget.id, {\r\n label,\r\n iconSpec: widget.iconSpec,\r\n preferredPanelWidgetSize: widget.preferredPanelSize,\r\n preferredFloatingWidgetSize: widget.defaultFloatingSize,\r\n canPopout: widget.canPopout,\r\n isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,\r\n hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,\r\n allowedPanelTargets: widget.allowedPanelTargets as PanelSide[],\r\n });\r\n tabs.push(widget.id);\r\n }\r\n\r\n const activeWidget = visibleWidgets.find((widget) => widget.isActive);\r\n const minimized = false;\r\n // istanbul ignore else\r\n if (activeWidget?.defaultState !== WidgetState.Floating) {\r\n state = addPanelWidget(state, side, widgetId, tabs, {\r\n activeTabId: activeWidget ? activeWidget.id : tabs[0],\r\n minimized,\r\n });\r\n }\r\n\r\n return state;\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function appendWidgets(state: NineZoneState, widgetDefs: ReadonlyArray<WidgetDef>, side: PanelSide, preferredWidgetIndex: number): NineZoneState {\r\n if (widgetDefs.length === 0)\r\n return state;\r\n\r\n // Add missing widget tabs.\r\n for (const widgetDef of widgetDefs) {\r\n const label = getWidgetLabel(widgetDef.label);\r\n const saveTab = state.tabs[widgetDef.id];\r\n const preferredPanelWidgetSize = saveTab ? saveTab.preferredPanelWidgetSize : widgetDef.preferredPanelSize;\r\n const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : widgetDef.defaultFloatingSize;\r\n // if a defaultFloatingSize is specified then this mean the widget can't determine its intrinsic size and must be explicitly sized\r\n const userSized = saveTab ? (saveTab.userSized || !!widgetDef.defaultFloatingSize && !!saveTab.preferredFloatingWidgetSize)\r\n : !!widgetDef.defaultFloatingSize;\r\n state = addTab(state, widgetDef.id, {\r\n label,\r\n iconSpec: widgetDef.iconSpec,\r\n canPopout: widgetDef.canPopout,\r\n preferredPanelWidgetSize,\r\n preferredFloatingWidgetSize,\r\n userSized,\r\n isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,\r\n hideWithUiWhenFloating: !!widgetDef.hideWithUiWhenFloating,\r\n allowedPanelTargets: widgetDef.allowedPanelTargets as PanelSide[],\r\n });\r\n\r\n if (widgetDef.isFloatingStateSupported && widgetDef.defaultState === WidgetState.Floating) {\r\n const floatingContainerId = widgetDef.floatingContainerId ?? getUniqueId();\r\n const widgetContainerId = getWidgetId(side, panelZoneKeys[preferredWidgetIndex]);\r\n const home: FloatingWidgetHomeState = { side, widgetId: widgetContainerId, widgetIndex: 0 };\r\n const preferredPosition = widgetDef.defaultFloatingPosition;\r\n\r\n if (floatingContainerId in state.widgets) {\r\n state = addTabToWidget(state, widgetDef.id, floatingContainerId);\r\n } else {\r\n const tab = state.tabs[widgetDef.id];\r\n\r\n const size = { height: 200, width: 300, ...tab.preferredFloatingWidgetSize };\r\n const preferredPoint = preferredPosition ?? { x: (state.size.width - size.width) / 2, y: (state.size.height - size.height) / 2 };\r\n const nzBounds = Rectangle.createFromSize(state.size);\r\n const bounds = Rectangle.createFromSize(size).offset(preferredPoint);\r\n const containedBounds = bounds.containIn(nzBounds);\r\n\r\n state = addFloatingWidget(state, floatingContainerId, [widgetDef.id], {\r\n bounds: containedBounds.toProps(),\r\n home,\r\n userSized,\r\n }, {\r\n isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,\r\n });\r\n }\r\n } else {\r\n const widgetPanelSectionId = getWidgetPanelSectionId(side, preferredWidgetIndex);\r\n if (widgetPanelSectionId in state.widgets) {\r\n state = addTabToWidget(state, widgetDef.id, widgetPanelSectionId);\r\n } else {\r\n const panel = state.panels[side];\r\n if (panel.widgets.length < panel.maxWidgetCount) {\r\n state = addPanelWidget(state, side, widgetPanelSectionId, [widgetDef.id]);\r\n } else {\r\n const widgetIndex = Math.min(preferredWidgetIndex, panel.widgets.length - 1);\r\n const widgetId = panel.widgets[widgetIndex];\r\n state = addTabToWidget(state, widgetDef.id, widgetId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return state;\r\n}\r\n\r\nfunction processPopoutWidgets(initialState: NineZoneState, frontstageDef: FrontstageDef): NineZoneState {\r\n // istanbul ignore next\r\n if (!initialState.popoutWidgets)\r\n return initialState;\r\n\r\n // istanbul ignore next - not unit testing electron case that reopens popout windows\r\n if (initialState.popoutWidgets && ProcessDetector.isElectronAppFrontend) {\r\n if (initialState.popoutWidgets.allIds.length && ProcessDetector.isElectronAppFrontend) {\r\n for (const widgetContainerId of initialState.popoutWidgets.allIds) {\r\n frontstageDef.openPopoutWidgetContainer(initialState, widgetContainerId);\r\n }\r\n }\r\n return initialState;\r\n }\r\n\r\n return convertAllPopupWidgetContainersToFloating(initialState);\r\n}\r\n\r\n/** Adds frontstageDef widgets that are missing in NineZoneState.\r\n * @internal\r\n */\r\nexport function addMissingWidgets(frontstageDef: FrontstageDef, initialState: NineZoneState): NineZoneState {\r\n let state = initialState;\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.centerLeft?.widgetDefs, state), \"left\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.panelZones.start.widgetDefs, state), \"left\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomLeft?.widgetDefs, state), \"left\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.panelWidgetDefs, state), \"left\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.panelZones.end.widgetDefs, state), \"left\", 1);\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.centerRight?.widgetDefs, state), \"right\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.panelZones.start.widgetDefs, state), \"right\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomRight?.widgetDefs, state), \"right\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.panelWidgetDefs, state), \"right\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.panelZones.end.widgetDefs, state), \"right\", 1);\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.panelWidgetDefs, state), \"top\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.panelZones.start.widgetDefs, state), \"top\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topMostPanel?.panelWidgetDefs, state), \"top\", 1); // eslint-disable-line deprecation/deprecation\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.panelZones.end.widgetDefs, state), \"top\", 1);\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.panelWidgetDefs, state), \"bottom\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.panelZones.start.widgetDefs, state), \"bottom\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomMostPanel?.panelWidgetDefs, state), \"bottom\", 1); // eslint-disable-line deprecation/deprecation\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.panelZones.end.widgetDefs, state), \"bottom\", 1);\r\n\r\n return state;\r\n}\r\n\r\n/** Hide widgets with Hidden defaultState. */\r\nfunction hideWidgets(state: NineZoneState, frontstageDef: FrontstageDef): NineZoneState {\r\n const tabs = Object.values(state.tabs);\r\n for (const tab of tabs) {\r\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\r\n if (!widgetDef)\r\n continue;\r\n\r\n if (widgetDef.defaultState === WidgetState.Hidden) {\r\n state = hideWidget(state, widgetDef);\r\n }\r\n }\r\n\r\n return state;\r\n}\r\n\r\n/** Removes NineZoneState widgets that are missing in frontstageDef.\r\n * @internal\r\n */\r\nexport function removeMissingWidgets(frontstageDef: FrontstageDef, initialState: NineZoneState): NineZoneState {\r\n let state = initialState;\r\n for (const [, tab] of Object.entries(state.tabs)) {\r\n if (tab.id === toolSettingsTabId)\r\n continue;\r\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\r\n if (widgetDef)\r\n continue;\r\n state = removeTab(state, tab.id);\r\n }\r\n return state;\r\n}\r\n\r\nfunction getWidgetLabel(label: string) {\r\n return label === \"\" ? \"Widget\" : label;\r\n}\r\n\r\ntype WidgetIdTypes =\r\n \"leftStart\" |\r\n \"leftEnd\" |\r\n \"rightStart\" |\r\n \"rightEnd\" |\r\n \"topStart\" |\r\n \"topEnd\" |\r\n \"bottomStart\" |\r\n \"bottomEnd\";\r\n\r\nfunction toStagePanelLocation(side: PanelSide): StagePanelLocation {\r\n switch (side) {\r\n case \"bottom\":\r\n return StagePanelLocation.Bottom;\r\n case \"left\":\r\n return StagePanelLocation.Left;\r\n case \"right\":\r\n return StagePanelLocation.Right;\r\n case \"top\":\r\n return StagePanelLocation.Top;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function getWidgetId(side: PanelSide, key: StagePanelZoneDefKeys): WidgetIdTypes {\r\n switch (side) {\r\n case \"left\": {\r\n if (key === \"start\") {\r\n return \"leftStart\";\r\n }\r\n return \"leftEnd\";\r\n }\r\n case \"right\": {\r\n if (key === \"start\") {\r\n return \"rightStart\";\r\n }\r\n return \"rightEnd\";\r\n }\r\n case \"top\": {\r\n if (key === \"start\") {\r\n return \"topStart\";\r\n }\r\n return \"topEnd\";\r\n }\r\n case \"bottom\": {\r\n if (key === \"start\")\r\n return \"bottomStart\";\r\n return \"bottomEnd\";\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function getPanelZoneWidgets(frontstageDef: FrontstageDef, panelZone: WidgetIdTypes): WidgetDef[] {\r\n switch (panelZone) {\r\n case \"leftStart\": {\r\n const outArray = [...frontstageDef.centerLeft?.widgetDefs || []];\r\n frontstageDef.leftPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"leftEnd\": {\r\n const outArray = [...frontstageDef.bottomLeft?.widgetDefs || []];\r\n frontstageDef.leftPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n frontstageDef.leftPanel?.panelWidgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"rightStart\": {\r\n const outArray = [...frontstageDef.centerRight?.widgetDefs || []];\r\n frontstageDef.rightPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"rightEnd\": {\r\n const outArray = [...frontstageDef.bottomRight?.widgetDefs || []];\r\n frontstageDef.rightPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n frontstageDef.rightPanel?.panelWidgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"topStart\": {\r\n const outArray = [...frontstageDef.topPanel?.panelWidgetDefs || []];\r\n frontstageDef.topPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"topEnd\": {\r\n const outArray = [...frontstageDef.topMostPanel?.panelWidgetDefs || []]; // eslint-disable-line deprecation/deprecation\r\n frontstageDef.topPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"bottomStart\": {\r\n const outArray = [...frontstageDef.bottomPanel?.panelWidgetDefs || []];\r\n frontstageDef.bottomPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"bottomEnd\": {\r\n const outArray = [...frontstageDef.bottomMostPanel?.panelWidgetDefs || []]; // eslint-disable-line deprecation/deprecation\r\n frontstageDef.bottomPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addPanelWidgets(\r\n state: NineZoneState,\r\n frontstageDef: FrontstageDef,\r\n side: PanelSide,\r\n): NineZoneState {\r\n const start = getWidgetId(side, \"start\");\r\n const startWidgets = getPanelZoneWidgets(frontstageDef, start);\r\n state = addWidgets(state, determineNewWidgets(startWidgets, state), side, start);\r\n\r\n const end = getWidgetId(side, \"end\");\r\n const endWidgets = getPanelZoneWidgets(frontstageDef, end);\r\n state = addWidgets(state, determineNewWidgets(endWidgets, state), side, end);\r\n return state;\r\n}\r\n\r\n/** @internal */\r\nexport function isFrontstageStateSettingResult(settingsResult: UiStateStorageResult): settingsResult is { // eslint-disable-line deprecation/deprecation\r\n status: UiStateStorageStatus.Success;\r\n setting: WidgetPanelsFrontstageState;\r\n} {\r\n if (settingsResult.status === UiStateStorageStatus.Success)\r\n return true;\r\n return false;\r\n}\r\n\r\n/** @internal */\r\nexport function initializePanel(state: NineZoneState, frontstageDef: FrontstageDef, panelSide: PanelSide) {\r\n state = addPanelWidgets(state, frontstageDef, panelSide);\r\n const location = toStagePanelLocation(panelSide);\r\n const panelDef = frontstageDef.getStagePanelDef(location);\r\n state = produce(state, (draft) => {\r\n const panel = draft.panels[panelSide];\r\n panel.minSize = panelDef?.minSize ?? panel.minSize;\r\n panel.pinned = panelDef?.pinned ?? panel.pinned;\r\n panel.resizable = panelDef?.resizable ?? panel.resizable;\r\n if (panelDef?.maxSizeSpec) {\r\n panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, state.size);\r\n }\r\n\r\n const size = panelDef?.size;\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n });\r\n return state;\r\n}\r\n\r\nfunction getPanelMaxSize(maxSizeSpec: StagePanelMaxSizeSpec, panel: PanelSide, nineZoneSize: SizeProps) {\r\n if (typeof maxSizeSpec === \"number\") {\r\n return maxSizeSpec;\r\n }\r\n const size = isHorizontalPanelSide(panel) ? nineZoneSize.height : nineZoneSize.width;\r\n return maxSizeSpec.percentage / 100 * size;\r\n}\r\n\r\nconst stateVersion = 13; // this needs to be bumped when NineZoneState is changed (to recreate the layout).\r\n\r\n/** @internal */\r\nexport function initializeNineZoneState(frontstageDef: FrontstageDef): NineZoneState {\r\n let nineZone = defaultNineZone;\r\n nineZone = produce(nineZone, (stateDraft) => {\r\n // istanbul ignore next\r\n if (!FrontstageManager.nineZoneSize)\r\n return;\r\n stateDraft.size = {\r\n height: FrontstageManager.nineZoneSize.height,\r\n width: FrontstageManager.nineZoneSize.width,\r\n };\r\n });\r\n\r\n nineZone = initializePanel(nineZone, frontstageDef, \"left\");\r\n nineZone = initializePanel(nineZone, frontstageDef, \"right\");\r\n nineZone = initializePanel(nineZone, frontstageDef, \"top\");\r\n nineZone = initializePanel(nineZone, frontstageDef, \"bottom\");\r\n nineZone = produce(nineZone, (stateDraft) => {\r\n for (const [, panel] of Object.entries(stateDraft.panels)) {\r\n const expanded = panel.widgets.find((widgetId) => stateDraft.widgets[widgetId].minimized === false);\r\n const firstWidget = panel.widgets.length > 0 ? stateDraft.widgets[panel.widgets[0]] : undefined;\r\n // istanbul ignore next\r\n if (!expanded && firstWidget) {\r\n firstWidget.minimized = false;\r\n }\r\n }\r\n stateDraft.panels.left.collapsed = isPanelCollapsed([\r\n frontstageDef.centerLeft?.zoneState,\r\n frontstageDef.bottomLeft?.zoneState,\r\n ], [frontstageDef.leftPanel?.panelState]);\r\n stateDraft.panels.right.collapsed = isPanelCollapsed([\r\n frontstageDef.centerRight?.zoneState,\r\n frontstageDef.bottomRight?.zoneState,\r\n ], [frontstageDef.rightPanel?.panelState]);\r\n stateDraft.panels.top.collapsed = isPanelCollapsed([], [\r\n // istanbul ignore next - ignore topMostPanel if topPanel is defined\r\n frontstageDef.topPanel ? frontstageDef.topPanel?.panelState : frontstageDef.topMostPanel?.panelState,// eslint-disable-line deprecation/deprecation\r\n ]);\r\n stateDraft.panels.bottom.collapsed = isPanelCollapsed([], [\r\n // istanbul ignore next - ignore bottomMostPanel if bottomPanel is defined\r\n frontstageDef.bottomPanel ? frontstageDef.bottomPanel?.panelState : frontstageDef.bottomMostPanel?.panelState, // eslint-disable-line deprecation/deprecation\r\n ]);\r\n\r\n const topCenterDef = frontstageDef.topCenter;\r\n const toolSettingsWidgetDef = topCenterDef?.getSingleWidgetDef();\r\n if (toolSettingsWidgetDef) {\r\n const toolSettingsTab = stateDraft.tabs[toolSettingsTabId];\r\n toolSettingsTab.preferredPanelWidgetSize = toolSettingsWidgetDef.preferredPanelSize;\r\n }\r\n });\r\n nineZone = addMissingWidgets(frontstageDef, nineZone);\r\n nineZone = hideWidgets(nineZone, frontstageDef);\r\n nineZone = processPopoutWidgets(nineZone, frontstageDef);\r\n\r\n return nineZone;\r\n}\r\n\r\n/** Converts from saved NineZoneState to NineZoneState.\r\n * @note Restores toolSettings tab.\r\n * @note Restores tab labels.\r\n * @internal\r\n */\r\nexport function restoreNineZoneState(frontstageDef: FrontstageDef, saved: SavedNineZoneState): NineZoneState {\r\n let restored: NineZoneState = {\r\n ...saved,\r\n tabs: defaultNineZone.tabs,\r\n };\r\n\r\n for (const [, tab] of Object.entries(saved.tabs)) {\r\n // Re-add the placeholder tab in order to correctly remove it from the state if WidgetDef is not found.\r\n restored = addTab(restored, tab.id);\r\n\r\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\r\n if (!widgetDef) {\r\n Logger.logInfo(UiFramework.loggerCategory(restoreNineZoneState), \"WidgetDef is not found for saved tab.\", () => ({\r\n frontstageId: frontstageDef.id,\r\n tabId: tab.id,\r\n }));\r\n restored = removeTab(restored, tab.id);\r\n continue;\r\n }\r\n restored = produce(restored, (draft) => {\r\n draft.tabs[tab.id] = {\r\n ...tab,\r\n label: getWidgetLabel(widgetDef.label),\r\n hideWithUiWhenFloating: widgetDef.hideWithUiWhenFloating,\r\n iconSpec: widgetDef.iconSpec,\r\n canPopout: widgetDef.canPopout,\r\n isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,\r\n allowedPanelTargets: widgetDef.allowedPanelTargets as PanelSide[],\r\n };\r\n });\r\n }\r\n restored = produce(restored, (draft) => {\r\n // remove center panel section if one is found in left or right panels\r\n const oldLeftMiddleIndex = saved.panels.left.widgets.findIndex((value) => value === \"leftMiddle\");\r\n // istanbul ignore next\r\n if (-1 !== oldLeftMiddleIndex) {\r\n draft.panels.left.widgets = saved.panels.left.widgets.filter((value) => value !== \"leftMiddle\");\r\n if (\"leftEnd\" in draft.widgets) {\r\n draft.widgets.leftMiddle.tabs.forEach((tab) => draft.widgets.leftEnd.tabs.push(tab));\r\n } else {\r\n draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };\r\n delete draft.widgets.leftMiddle;\r\n }\r\n }\r\n\r\n const oldRightMiddleIndex = saved.panels.right.widgets.findIndex((value) => value === \"rightMiddle\");\r\n // istanbul ignore next\r\n if (-1 !== oldRightMiddleIndex) {\r\n draft.panels.right.widgets = saved.panels.right.widgets.filter((value) => value !== \"rightMiddle\");\r\n if (\"rightEnd\" in draft.widgets) {\r\n draft.widgets.rightMiddle.tabs.forEach((tab) => draft.widgets.rightEnd.tabs.push(tab));\r\n } else {\r\n draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };\r\n delete draft.widgets.rightMiddle;\r\n }\r\n }\r\n\r\n return;\r\n });\r\n\r\n if (FrontstageManager.nineZoneSize && (0 !== FrontstageManager.nineZoneSize.height || 0 !== FrontstageManager.nineZoneSize.width)) {\r\n restored = FrameworkStateReducer(restored, {\r\n type: \"RESIZE\",\r\n size: {\r\n height: FrontstageManager.nineZoneSize.height,\r\n width: FrontstageManager.nineZoneSize.width,\r\n },\r\n }, frontstageDef);\r\n }\r\n return restored;\r\n}\r\n\r\n/** Prepares NineZoneState to be saved.\r\n * @note Removes toolSettings tab.\r\n * @note Removes tab labels and iconSpec.\r\n * @internal\r\n */\r\nexport function packNineZoneState(state: NineZoneState): SavedNineZoneState {\r\n let packed: SavedNineZoneState = {\r\n ...state,\r\n tabs: {},\r\n };\r\n packed = produce(packed, (draft) => {\r\n for (const [, tab] of Object.entries(state.tabs)) {\r\n if (tab.id === toolSettingsTabId)\r\n continue;\r\n\r\n draft.tabs[tab.id] = {\r\n id: tab.id,\r\n preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,\r\n allowedPanelTargets: tab.allowedPanelTargets,\r\n userSized: tab.userSized,\r\n };\r\n }\r\n });\r\n return packed;\r\n}\r\n\r\n// istanbul ignore next\r\nfunction packSavedWidgets(frontstageDef: FrontstageDef): SavedWidgets {\r\n let savedWidgets: Array<SavedWidget> = [];\r\n for (const widgetDef of frontstageDef.widgetDefs) {\r\n const id = widgetDef.id;\r\n const initialWidget: SavedWidget = {\r\n id,\r\n };\r\n const widget = produce(initialWidget, (draft) => {\r\n if (widgetDef.tabLocation) {\r\n draft.tabLocation = { ...widgetDef.tabLocation };\r\n }\r\n if (widgetDef.popoutBounds) {\r\n draft.popoutBounds = widgetDef.popoutBounds.toProps();\r\n }\r\n });\r\n if (widget === initialWidget)\r\n continue;\r\n\r\n savedWidgets.push(widget);\r\n }\r\n\r\n // Add previously saved widgets.\r\n const prevSavedWidgets = frontstageDef.savedWidgetDefs || [];\r\n for (const prevWidget of prevSavedWidgets) {\r\n if (savedWidgets.find((w) => w.id === prevWidget.id))\r\n continue;\r\n\r\n savedWidgets.push(prevWidget);\r\n }\r\n\r\n // Limit number of saved widgets.\r\n const maxWidgets = 100;\r\n if (savedWidgets.length > maxWidgets)\r\n savedWidgets = savedWidgets.slice(0, maxWidgets);\r\n\r\n return savedWidgets;\r\n}\r\n\r\n// istanbul ignore next\r\nfunction restoreSavedWidgets(frontstage: FrontstageDef) {\r\n const savedWidgets = frontstage.savedWidgetDefs || [];\r\n for (const savedWidget of savedWidgets) {\r\n const widgetId = savedWidget.id;\r\n const widgetDef = frontstage.findWidgetDef(widgetId);\r\n if (!widgetDef)\r\n continue;\r\n\r\n if (savedWidget.tabLocation) {\r\n widgetDef.tabLocation = { ...savedWidget.tabLocation };\r\n }\r\n if (savedWidget.popoutBounds) {\r\n widgetDef.popoutBounds = Rectangle.create(savedWidget.popoutBounds);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function isPanelCollapsed(zoneStates: ReadonlyArray<ZoneState | undefined>, panelStates: ReadonlyArray<StagePanelState | undefined>) {\r\n const openZone = zoneStates.find((zoneState) => zoneState === ZoneState.Open);\r\n const openPanel = panelStates.find((panelState) => panelState === StagePanelState.Open);\r\n return !openZone && !openPanel;\r\n}\r\n\r\n/** FrontstageState is saved in UiStateStorage.\r\n * @internal\r\n */\r\nexport interface WidgetPanelsFrontstageState {\r\n nineZone: SavedNineZoneState;\r\n widgets: SavedWidgets;\r\n id: FrontstageDef[\"id\"];\r\n /** Frontstage version used to create the frontstage state. Allows to invalidate the layout from the frontstage. */\r\n version: number;\r\n /** Platform provided frontstage version. Allows to invalidate the layout from the platform. */\r\n stateVersion: number;\r\n}\r\n\r\n/** Saved data specific to `WidgetDef`. I.e. used to restore hidden widgets.\r\n * @internal\r\n */\r\nexport interface SavedWidget {\r\n readonly id: WidgetDef[\"id\"];\r\n readonly tabLocation?: TabLocation;\r\n readonly popoutBounds?: RectangleProps;\r\n}\r\n\r\n/** @internal */\r\nexport type SavedWidgets = ReadonlyArray<SavedWidget>;\r\n\r\n// We don't save tab labels or if widget is allowed to \"pop-out\".\r\ntype SavedTabState = Omit<TabState, \"label\" | \"canPopout\" | \"isFloatingStateWindowResizable\" | \"iconSpec\">;\r\n\r\ninterface SavedTabsState {\r\n readonly [id: string]: SavedTabState;\r\n}\r\n\r\n// // We don't save if widget is allowed to \"pop-out\" or if floating widget can be resized.\r\n// type SavedWidgetState = Omit<WidgetState, | \"canPopout\" | \"isFloatingStateWindowResizable\">;\r\n//\r\n// interface SavedWidgetsState {\r\n// readonly [id: string]: SavedWidgetState;\r\n// }\r\n\r\ninterface SavedNineZoneState extends Omit<NineZoneState, \"tabs\"> {\r\n readonly tabs: SavedTabsState;\r\n // readonly widgets: SavedWidgetsState;\r\n}\r\n\r\nfunction addHiddenWidget(state: NineZoneState, widgetDef: WidgetDef): NineZoneState {\r\n const tabLocation = widgetDef.tabLocation || widgetDef.defaultTabLocation;\r\n const tabId = widgetDef.id;\r\n const { widgetId, tabIndex } = tabLocation;\r\n\r\n if (widgetId in state.widgets) {\r\n // Add to an existing widget (by widget id).\r\n return insertTabToWidget(state, tabId, widgetId, tabIndex);\r\n } else if (tabLocation.floatingWidget) {\r\n const floatingWidget = tabLocation.floatingWidget;\r\n assert(widgetId === floatingWidget.id);\r\n\r\n // Add to a new floating widget.\r\n const nzBounds = Rectangle.createFromSize(state.size);\r\n const bounds = Rectangle.create(floatingWidget.bounds).containIn(nzBounds);\r\n return addFloatingWidget(state, floatingWidget.id, [tabId], {\r\n ...floatingWidget,\r\n bounds: bounds.toProps(),\r\n });\r\n }\r\n\r\n // Add to a panel section.\r\n const panel = state.panels[tabLocation.side];\r\n\r\n // Add to existing panel section.\r\n if (panel.widgets.length >= panel.maxWidgetCount) {\r\n const sectionIndex = Math.min(panel.maxWidgetCount - 1, tabLocation.widgetIndex);\r\n const sectionId = panel.widgets[sectionIndex];\r\n return insertTabToWidget(state, tabId, sectionId, tabLocation.tabIndex);\r\n }\r\n\r\n // Create a new panel section.\r\n const newSectionId = getUniqueId();\r\n return insertPanelWidget(state, panel.side, newSectionId, [tabId], tabLocation.widgetIndex);\r\n}\r\n\r\n/** @internal */\r\nexport function setWidgetState(\r\n state: NineZoneState,\r\n widgetDef: WidgetDef,\r\n widgetState: WidgetState,\r\n) {\r\n if (widgetState === WidgetState.Hidden) {\r\n return hideWidget(state, widgetDef);\r\n } else if (widgetState === WidgetState.Open) {\r\n const id = widgetDef.id;\r\n let location = getTabLocation(state, id);\r\n if (!location) {\r\n state = addHiddenWidget(state, widgetDef);\r\n location = getTabLocation(state, id);\r\n }\r\n\r\n return produce(state, (draft) => {\r\n assert(!!location);\r\n const widget = draft.widgets[location.widgetId];\r\n widget.minimized = false;\r\n widget.activeTabId = id;\r\n\r\n if (isFloatingTabLocation(location)) {\r\n const floatingWidget = draft.floatingWidgets.byId[location.floatingWidgetId];\r\n floatingWidget.hidden = false;\r\n // istanbul ignore else\r\n } else if (isPanelTabLocation(location)) {\r\n const panel = draft.panels[location.side];\r\n panel.collapsed = false;\r\n if (undefined === panel.size || 0 === panel.size) {\r\n // istanbul ignore next\r\n panel.size = panel.minSize ?? 200;\r\n }\r\n }\r\n });\r\n } else if (widgetState === WidgetState.Closed) {\r\n const id = widgetDef.id;\r\n let location = getTabLocation(state, id);\r\n if (!location) {\r\n state = addHiddenWidget(state, widgetDef);\r\n location = getTabLocation(state, id);\r\n }\r\n\r\n // TODO: should change activeTabId of a widget with multiple tabs.\r\n return produce(state, (draft) => {\r\n assert(!!location);\r\n const widget = draft.widgets[location.widgetId];\r\n\r\n if (isFloatingTabLocation(location)) {\r\n if (id === widget.activeTabId) {\r\n widget.minimized = true;\r\n }\r\n }\r\n });\r\n } else if (widgetState === WidgetState.Floating) {\r\n const id = widgetDef.id;\r\n let location = getTabLocation(state, id);\r\n if (!location) {\r\n state = addHiddenWidget(state, widgetDef);\r\n location = getTabLocation(state, id);\r\n }\r\n\r\n assert(!!location);\r\n if (isFloatingTabLocation(location))\r\n return state;\r\n\r\n // Widget is not floating.\r\n state = removeTabFromWidget(state, id);\r\n const bounds = widgetDef.tabLocation?.floatingWidget?.bounds;\r\n state = addFloatingWidget(state, getUniqueId(), [id], { bounds });\r\n }\r\n return state;\r\n}\r\n\r\n/** Stores widget location and hides it in the UI. */\r\nfunction hideWidget(state: NineZoneState, widgetDef: WidgetDef) {\r\n const location = getTabLocation(state, widgetDef.id);\r\n if (!location)\r\n return state;\r\n // istanbul ignore else\r\n if (isFloatingTabLocation(location)) {\r\n const floatingWidget = state.floatingWidgets.byId[location.widgetId];\r\n widgetDef.setFloatingContainerId(location.floatingWidgetId);\r\n widgetDef.tabLocation = {\r\n side: floatingWidget.home.side,\r\n tabIndex: floatingWidget.home.widgetIndex,\r\n widgetId: floatingWidget.id,\r\n widgetIndex: floatingWidget.home.widgetIndex,\r\n floatingWidget,\r\n };\r\n } else if (!isPopoutTabLocation(location)) {\r\n const widgetId = location.widgetId;\r\n const side = isPanelTabLocation(location) ? location.side : \"left\";\r\n const widgetIndex = isPanelTabLocation(location) ? state.panels[side].widgets.indexOf(widgetId) : 0;\r\n const tabIndex = state.widgets[location.widgetId].tabs.indexOf(widgetDef.id);\r\n widgetDef.tabLocation = {\r\n side,\r\n tabIndex,\r\n widgetId,\r\n widgetIndex,\r\n };\r\n }\r\n return removeTabFromWidget(state, widgetDef.id);\r\n}\r\n\r\n/** @internal */\r\nexport function showWidget(state: NineZoneState, id: TabState[\"id\"]) {\r\n const location = getTabLocation(state, id);\r\n if (!location)\r\n return state;\r\n state = produce(state, (draft) => {\r\n const widget = draft.widgets[location.widgetId];\r\n widget.activeTabId = id;\r\n widget.minimized = false;\r\n if (isPanelTabLocation(location)) {\r\n const panel = draft.panels[location.side];\r\n panel.collapsed = false;\r\n }\r\n });\r\n if (isFloatingTabLocation(location)) {\r\n state = floatingWidgetBringToFront(state, location.floatingWidgetId);\r\n }\r\n return state;\r\n}\r\n\r\n/** @internal */\r\nexport function expandWidget(state: NineZoneState, id: TabState[\"id\"]) {\r\n const location = getTabLocation(state, id);\r\n if (!location)\r\n return state;\r\n\r\n return produce(state, (draft) => {\r\n const widget = draft.widgets[location.widgetId];\r\n if (isPanelTabLocation(location)) {\r\n const panel = draft.panels[location.side];\r\n panel.widgets.forEach((wId) => {\r\n const w = draft.widgets[wId];\r\n w.minimized = true;\r\n });\r\n }\r\n widget.minimized = false;\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function setWidgetLabel(state: NineZoneState, id: TabState[\"id\"], label: string) {\r\n if (!(id in state.tabs))\r\n return state;\r\n\r\n return produce(state, (draft) => {\r\n const tab = draft.tabs[id];\r\n tab.label = label;\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function useSavedFrontstageState(frontstageDef: FrontstageDef) {\r\n const uiStateStorage = useUiStateStorageHandler();\r\n const uiStateStorageRef = React.useRef(uiStateStorage);\r\n const isMountedRef = React.useRef(false);\r\n React.useEffect(() => {\r\n isMountedRef.current = true;\r\n return () => { isMountedRef.current = false; };\r\n }, []);\r\n React.useEffect(() => {\r\n uiStateStorageRef.current = uiStateStorage;\r\n }, [uiStateStorage]);\r\n React.useEffect(() => {\r\n async function fetchFrontstageState() {\r\n if (frontstageDef.nineZoneState) {\r\n frontstageDef.nineZoneState = processPopoutWidgets(frontstageDef.nineZoneState, frontstageDef);\r\n return;\r\n }\r\n const id = frontstageDef.id;\r\n const version = frontstageDef.version;\r\n const settingResult = await uiStateStorageRef.current.getSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id));\r\n if (!isMountedRef.current)\r\n return;\r\n\r\n if (isFrontstageStateSettingResult(settingResult)) {\r\n const setting = settingResult.setting;\r\n if (setting.version >= version && setting.stateVersion >= stateVersion) {\r\n const restored = restoreNineZoneState(frontstageDef, setting.nineZone);\r\n\r\n frontstageDef.savedWidgetDefs = setting.widgets;\r\n restoreSavedWidgets(frontstageDef);\r\n\r\n let state = addMissingWidgets(frontstageDef, restored);\r\n state = hideWidgets(state, frontstageDef);\r\n state = processPopoutWidgets(state, frontstageDef);\r\n\r\n frontstageDef.nineZoneState = state;\r\n return;\r\n }\r\n }\r\n frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);\r\n }\r\n fetchFrontstageState(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }, [frontstageDef]);\r\n}\r\n\r\n/** @internal */\r\nexport function useSaveFrontstageSettings(frontstageDef: FrontstageDef) {\r\n const nineZone = useNineZoneState(frontstageDef);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n const saveSetting = React.useMemo(() => {\r\n return debounce(async (frontstage: FrontstageDef, state: NineZoneState) => {\r\n const id = frontstage.id;\r\n const widgets = packSavedWidgets(frontstage);\r\n frontstage.savedWidgetDefs = widgets;\r\n const setting: WidgetPanelsFrontstageState = {\r\n id,\r\n version: frontstage.version,\r\n stateVersion,\r\n nineZone: packNineZoneState(state),\r\n widgets,\r\n };\r\n await uiSettingsStorage.saveSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id), setting);\r\n }, 1000);\r\n }, [uiSettingsStorage]);\r\n React.useEffect(() => {\r\n return () => {\r\n saveSetting.cancel();\r\n };\r\n }, [saveSetting]);\r\n React.useEffect(() => {\r\n if (!nineZone || nineZone.draggedTab)\r\n return;\r\n saveSetting(frontstageDef, nineZone);\r\n }, [frontstageDef, nineZone, saveSetting]);\r\n}\r\n\r\n/** @internal */\r\nexport const FRONTSTAGE_SETTINGS_NAMESPACE = \"uifw-frontstageSettings\";\r\n\r\n/** @internal */\r\nexport function getFrontstageStateSettingName(frontstageId: WidgetPanelsFrontstageState[\"id\"]) {\r\n return `frontstageState[${frontstageId}]`;\r\n}\r\n\r\n// istanbul ignore next\r\nfunction debounce<T extends (...args: any[]) => any>(func: T, duration: number) {\r\n let timeout: number | undefined;\r\n const debounced = (...args: Parameters<T>) => {\r\n const handler = () => {\r\n timeout = undefined;\r\n return func(...args);\r\n };\r\n window.clearTimeout(timeout);\r\n timeout = window.setTimeout(handler, duration);\r\n };\r\n debounced.cancel = () => {\r\n window.clearTimeout(timeout);\r\n };\r\n return debounced;\r\n}\r\n\r\nconst createListener = <T extends (...args: any[]) => void>(frontstageDef: FrontstageDef, listener: T) => {\r\n return (...args: Parameters<T>) => {\r\n if (!frontstageDef.nineZoneState)\r\n return;\r\n listener(...args);\r\n };\r\n};\r\n\r\n/** @internal */\r\nexport function useFrontstageManager(frontstageDef: FrontstageDef, useToolAsToolSettingsLabel?: boolean) {\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef, widgetState }: WidgetStateChangedEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n frontstageDef.nineZoneState = setWidgetState(frontstageDef.nineZoneState, widgetDef, widgetState);\r\n });\r\n FrontstageManager.onWidgetStateChangedEvent.addListener(listener);\r\n return () => {\r\n FrontstageManager.onWidgetStateChangedEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef }: WidgetEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n frontstageDef.nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);\r\n });\r\n FrontstageManager.onWidgetShowEvent.addListener(listener);\r\n return () => {\r\n FrontstageManager.onWidgetShowEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef }: WidgetEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n let nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);\r\n nineZoneState = expandWidget(nineZoneState, widgetDef.id);\r\n frontstageDef.nineZoneState = nineZoneState;\r\n });\r\n FrontstageManager.onWidgetExpandEvent.addListener(listener);\r\n return () => {\r\n FrontstageManager.onWidgetExpandEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n React.useEffect(() => {\r\n const listener = (args: FrontstageEventArgs) => {\r\n // TODO: track restoring frontstages to support workflows: i.e. prevent loading frontstage OR saving layout when delete is pending\r\n uiSettingsStorage.deleteSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(args.frontstageDef.id)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (frontstageDef.id === args.frontstageDef.id) {\r\n args.frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);\r\n } else {\r\n args.frontstageDef.nineZoneState = undefined;\r\n }\r\n };\r\n FrontstageManager.onFrontstageRestoreLayoutEvent.addListener(listener);\r\n return () => {\r\n FrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(listener);\r\n };\r\n }, [uiSettingsStorage, frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef }: WidgetEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n const label = widgetDef.label;\r\n frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, widgetDef.id, label);\r\n });\r\n FrontstageManager.onWidgetLabelChangedEvent.addListener(listener);\r\n return () => {\r\n FrontstageManager.onWidgetLabelChangedEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n\r\n const defaultLabel = React.useMemo(\r\n () => UiFramework.translate(\"widget.labels.toolSettings\"), []\r\n );\r\n React.useEffect(() => {\r\n const updateLabel = createListener(frontstageDef, () => {\r\n const toolId = FrontstageManager.activeToolId;\r\n assert(!!frontstageDef.nineZoneState);\r\n const label = useToolAsToolSettingsLabel ?\r\n IModelApp.tools.find(toolId)?.flyover || defaultLabel : defaultLabel;\r\n frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, toolSettingsTabId, label);\r\n });\r\n // Whenever the frontstageDef or the useTool... changes, keep the label up to date.\r\n updateLabel();\r\n // If useTool... is true, listen for events to keep up the label up to date.\r\n if (useToolAsToolSettingsLabel) {\r\n FrontstageManager.onFrontstageReadyEvent.addListener(updateLabel);\r\n FrontstageManager.onFrontstageRestoreLayoutEvent.addListener(updateLabel);\r\n FrontstageManager.onToolActivatedEvent.addListener(updateLabel);\r\n FrontstageManager.onToolSettingsReloadEvent.addListener(updateLabel);\r\n }\r\n return () => {\r\n if (useToolAsToolSettingsLabel) {\r\n FrontstageManager.onFrontstageReadyEvent.removeListener(updateLabel);\r\n FrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(updateLabel);\r\n FrontstageManager.onToolActivatedEvent.removeListener(updateLabel);\r\n FrontstageManager.onToolSettingsReloadEvent.removeListener(updateLabel);\r\n }\r\n };\r\n }, [frontstageDef, useToolAsToolSettingsLabel, defaultLabel]);\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function useItemsManager(frontstageDef: FrontstageDef) {\r\n const refreshNineZoneState = (def: FrontstageDef) => {\r\n // Fired for both registered/unregistered. Update definitions and remove/add missing widgets.\r\n def.updateWidgetDefs();\r\n restoreSavedWidgets(def);\r\n let state = def.nineZoneState;\r\n if (!state)\r\n return;\r\n state = addMissingWidgets(def, state);\r\n state = removeMissingWidgets(def, state);\r\n state = hideWidgets(state, def); // TODO: should only apply to widgets provided by registered provider in onUiProviderRegisteredEvent.\r\n def.nineZoneState = state;\r\n };\r\n\r\n React.useEffect(() => {\r\n const remove = UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\r\n refreshNineZoneState(frontstageDef);\r\n });\r\n // Need to refresh anytime frontstageDef changes because uiItemsProvider may have added something to\r\n // another stage before it was possibly unloaded in this stage.\r\n refreshNineZoneState(frontstageDef);\r\n return remove;\r\n }, [frontstageDef]);\r\n}\r\n\r\n// istanbul ignore next\r\nfunction determineNewWidgets(defs: readonly WidgetDef[] | undefined, state: NineZoneState) {\r\n return (defs || []).filter((def) => !(def.id in state.tabs));\r\n}\r\n"]}
1
+ {"version":3,"file":"Frontstage.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\n// cSpell:ignore popout\r\n\r\nimport \"./Frontstage.scss\";\r\nimport produce from \"immer\";\r\nimport * as React from \"react\";\r\nimport { assert, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { StagePanelLocation, UiItemsManager, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Rectangle, RectangleProps, Size, SizeProps, UiStateStorageResult, UiStateStorageStatus } from \"@itwin/core-react\";\r\nimport { ToolbarPopupAutoHideContext } from \"@itwin/components-react\";\r\nimport {\r\n addFloatingWidget, addPanelWidget, addTab, addTabToWidget, convertAllPopupWidgetContainersToFloating, createNineZoneState, floatingWidgetBringToFront,\r\n FloatingWidgetHomeState,\r\n FloatingWidgets, getTabLocation, getUniqueId, getWidgetPanelSectionId, insertPanelWidget, insertTabToWidget, isFloatingTabLocation,\r\n isHorizontalPanelSide, isPanelTabLocation, isPopoutTabLocation, NineZone, NineZoneAction, NineZoneDispatch, NineZoneLabels, NineZoneState, NineZoneStateReducer, PanelSide,\r\n panelSides, removeTab, removeTabFromWidget, TabState, toolSettingsTabId, WidgetPanels,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { useActiveFrontstageDef } from \"../frontstage/Frontstage\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"../frontstage/FrontstageDef\";\r\nimport { StagePanelMaxSizeSpec } from \"../stagepanels/StagePanel\";\r\nimport { StagePanelState, StagePanelZoneDefKeys } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { useUiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { TabLocation, WidgetDef, WidgetEventArgs, WidgetStateChangedEventArgs } from \"../widgets/WidgetDef\";\r\nimport { ZoneState } from \"../zones/ZoneDef\";\r\nimport { WidgetContent } from \"./Content\";\r\nimport { WidgetPanelsFrontstageContent } from \"./FrontstageContent\";\r\nimport { ModalFrontstageComposer, useActiveModalFrontstageInfo } from \"./ModalFrontstageComposer\";\r\nimport { WidgetPanelsStatusBar } from \"./StatusBar\";\r\nimport { WidgetPanelsTab } from \"./Tab\";\r\nimport { WidgetPanelsToolbars } from \"./Toolbars\";\r\nimport { ToolSettingsContent, WidgetPanelsToolSettings } from \"./ToolSettings\";\r\nimport { useEscapeSetFocusToHome } from \"../hooks/useEscapeSetFocusToHome\";\r\nimport { FrameworkRootState } from \"../redux/StateManager\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useUiVisibility } from \"../hooks/useUiVisibility\";\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { FloatingWidget } from \"./FloatingWidget\";\r\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\r\n\r\nconst panelZoneKeys: StagePanelZoneDefKeys[] = [\"start\", \"end\"];\r\n\r\nconst WidgetInternals = React.memo(function WidgetInternals() { // eslint-disable-line @typescript-eslint/naming-convention, no-shadow\r\n const activeModalFrontstageInfo = useActiveModalFrontstageInfo();\r\n const uiIsVisible = useUiVisibility();\r\n\r\n return (\r\n <>\r\n <ToolbarPopupAutoHideContext.Provider value={!uiIsVisible}>\r\n <ModalFrontstageComposer stageInfo={activeModalFrontstageInfo} />\r\n <WidgetPanels\r\n className=\"uifw-widgetPanels\"\r\n centerContent={<WidgetPanelsToolbars />}\r\n >\r\n <WidgetPanelsFrontstageContent />\r\n </WidgetPanels>\r\n <WidgetPanelsStatusBar />\r\n <FloatingWidgets />\r\n </ToolbarPopupAutoHideContext.Provider>\r\n </>\r\n );\r\n});\r\n\r\n// istanbul ignore next\r\nconst WidgetPanelsFrontstageComponent = React.memo(function WidgetPanelsFrontstageComponent() { // eslint-disable-line @typescript-eslint/naming-convention, no-shadow\r\n\r\n return (\r\n <>\r\n <WidgetPanelsToolSettings />\r\n <WidgetInternals />\r\n </>\r\n );\r\n});\r\n\r\nconst widgetContent = <WidgetContent />;\r\nconst toolSettingsContent = <ToolSettingsContent />;\r\nconst widgetPanelsFrontstage = <WidgetPanelsFrontstageComponent />;\r\n\r\n/** @internal */\r\nexport function useNineZoneState(frontstageDef: FrontstageDef) {\r\n const lastFrontstageDef = React.useRef(frontstageDef);\r\n const [nineZone, setNineZone] = React.useState(frontstageDef.nineZoneState);\r\n React.useEffect(() => {\r\n setNineZone(frontstageDef.nineZoneState);\r\n lastFrontstageDef.current = frontstageDef;\r\n }, [frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = (args: FrontstageNineZoneStateChangedEventArgs) => {\r\n if (args.frontstageDef !== frontstageDef || frontstageDef.isStageClosing || frontstageDef.isApplicationClosing)\r\n return;\r\n setNineZone(args.state);\r\n };\r\n return InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener(listener);\r\n }, [frontstageDef]);\r\n return lastFrontstageDef.current === frontstageDef ? nineZone : frontstageDef.nineZoneState;\r\n}\r\n\r\n/** @returns Defined NineZoneState with fallback to last defined and default NineZoneState.\r\n * @internal\r\n */\r\nfunction useCachedNineZoneState(nineZone: NineZoneState | undefined): NineZoneState {\r\n const cached = React.useRef<NineZoneState>(nineZone || defaultNineZone);\r\n React.useEffect(() => {\r\n if (nineZone)\r\n cached.current = nineZone;\r\n }, [nineZone]);\r\n return nineZone || cached.current;\r\n}\r\n\r\n/** Update in-memory NineZoneState of newly activated frontstage with up to date size.\r\n * @internal\r\n */\r\nexport function useUpdateNineZoneSize(frontstageDef: FrontstageDef) {\r\n React.useEffect(() => {\r\n const size = InternalFrontstageManager.nineZoneSize;\r\n let state = frontstageDef.nineZoneState;\r\n if (!size || !state)\r\n return;\r\n state = FrameworkStateReducer(state, {\r\n type: \"RESIZE\",\r\n size: {\r\n height: size.height,\r\n width: size.width,\r\n },\r\n }, frontstageDef);\r\n frontstageDef.nineZoneState = state;\r\n }, [frontstageDef]);\r\n}\r\n\r\n/** @internal */\r\nexport function FrameworkStateReducer(state: NineZoneState, action: NineZoneAction, frontstageDef: FrontstageDef) {\r\n state = NineZoneStateReducer(state, action);\r\n if (action.type === \"RESIZE\") {\r\n state = produce(state, (draft) => {\r\n for (const panelSide of panelSides) {\r\n const panel = draft.panels[panelSide];\r\n const location = toStagePanelLocation(panelSide);\r\n const panelDef = frontstageDef.getStagePanelDef(location);\r\n if (panelDef?.maxSizeSpec) {\r\n panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, action.size);\r\n if (panel.size) {\r\n panel.size = Math.min(Math.max(panel.size, panel.minSize), panel.maxSize);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n return state;\r\n}\r\n\r\n/** @internal */\r\nexport function useNineZoneDispatch(frontstageDef: FrontstageDef) {\r\n const dispatch = React.useCallback<NineZoneDispatch>((action) => {\r\n if (action.type === \"RESIZE\") {\r\n InternalFrontstageManager.nineZoneSize = Size.create(action.size);\r\n }\r\n // istanbul ignore if\r\n if (action.type === \"TOOL_SETTINGS_DRAG_START\") {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n UiFramework.postTelemetry(\"Tool Settings Undocking\", \"28B04E07-AE73-4533-A0BA-8E2A8DC99ADF\");\r\n }\r\n // istanbul ignore if\r\n if (action.type === \"TOOL_SETTINGS_DOCK\") {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n UiFramework.postTelemetry(\"Tool Settings Docking to Settings Bar\", \"BEDE684B-B3DB-4637-B3AF-DC3CBA223F94\");\r\n }\r\n if (action.type === \"WIDGET_TAB_POPOUT\") {\r\n const tabId = action.id;\r\n frontstageDef.popoutWidget(tabId);\r\n return;\r\n }\r\n const nineZoneState = frontstageDef.nineZoneState;\r\n if (!nineZoneState)\r\n return;\r\n frontstageDef.nineZoneState = FrameworkStateReducer(nineZoneState, action, frontstageDef);\r\n }, [frontstageDef]);\r\n return dispatch;\r\n}\r\n\r\n/** @internal */\r\nexport const WidgetPanelsFrontstage = React.memo(function WidgetPanelsFrontstage() { // eslint-disable-line @typescript-eslint/naming-convention, no-shadow\r\n const frontstageDef = useActiveFrontstageDef();\r\n\r\n React.useEffect(() => {\r\n const triggerWidowCloseProcessing = () => {\r\n frontstageDef && frontstageDef.setIsApplicationClosing(true);\r\n };\r\n\r\n frontstageDef && frontstageDef.setIsApplicationClosing(false);\r\n\r\n window.addEventListener(\"unload\", triggerWidowCloseProcessing);\r\n return () => {\r\n window.removeEventListener(\"unload\", triggerWidowCloseProcessing);\r\n };\r\n }, [frontstageDef]);\r\n\r\n if (!frontstageDef)\r\n return null;\r\n return (\r\n <ActiveFrontstageDefProvider frontstageDef={frontstageDef} />\r\n );\r\n});\r\n\r\nconst defaultNineZone = createNineZoneState();\r\nconst tabElement = <WidgetPanelsTab />;\r\nconst floatingWidgetElement = <FloatingWidget />;\r\n\r\n/** @internal */\r\nexport function ActiveFrontstageDefProvider({ frontstageDef }: { frontstageDef: FrontstageDef }) {\r\n let nineZone = useNineZoneState(frontstageDef);\r\n nineZone = useCachedNineZoneState(nineZone);\r\n const dispatch = useNineZoneDispatch(frontstageDef);\r\n useUpdateNineZoneSize(frontstageDef);\r\n useSavedFrontstageState(frontstageDef);\r\n useSaveFrontstageSettings(frontstageDef);\r\n useItemsManager(frontstageDef);\r\n const labels = useLabels();\r\n const uiIsVisible = useUiVisibility();\r\n const showWidgetIcon = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.showWidgetIcon;\r\n });\r\n const autoCollapseUnpinnedPanels = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.autoCollapseUnpinnedPanels;\r\n });\r\n const animateToolSettings = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.animateToolSettings;\r\n });\r\n const useToolAsToolSettingsLabel = useSelector((state: FrameworkRootState) => {\r\n const frameworkState = (state as any)[UiFramework.frameworkStateKey];\r\n return !!frameworkState.configurableUiState.useToolAsToolSettingsLabel;\r\n });\r\n useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel);\r\n\r\n const handleKeyDown = useEscapeSetFocusToHome();\r\n return (\r\n <div\r\n className=\"uifw-widgetPanels-frontstage\"\r\n onKeyDown={handleKeyDown}\r\n role=\"presentation\"\r\n >\r\n <NineZone\r\n dispatch={dispatch}\r\n labels={labels}\r\n state={nineZone}\r\n tab={tabElement}\r\n floatingWidget={floatingWidgetElement}\r\n showWidgetIcon={showWidgetIcon}\r\n autoCollapseUnpinnedPanels={autoCollapseUnpinnedPanels}\r\n toolSettingsContent={toolSettingsContent}\r\n widgetContent={widgetContent}\r\n animateDockedToolSettings={animateToolSettings}\r\n uiIsVisible={uiIsVisible}\r\n >\r\n {widgetPanelsFrontstage}\r\n </NineZone>\r\n </div>\r\n );\r\n}\r\n\r\n/** @internal */\r\nexport function useLabels() {\r\n return React.useMemo<NineZoneLabels>(() => ({\r\n dockToolSettingsTitle: UiFramework.translate(\"widget.tooltips.dockToolSettings\"),\r\n moreWidgetsTitle: UiFramework.translate(\"widget.tooltips.moreWidgets\"),\r\n moreToolSettingsTitle: UiFramework.translate(\"widget.tooltips.moreToolSettings\"),\r\n pinPanelTitle: UiFramework.translate(\"widget.tooltips.pinPanel\"),\r\n resizeGripTitle: UiFramework.translate(\"widget.tooltips.resizeGrip\"),\r\n sendWidgetHomeTitle: UiFramework.translate(\"widget.tooltips.sendHome\"),\r\n toolSettingsHandleTitle: UiFramework.translate(\"widget.tooltips.toolSettingsHandle\"),\r\n unpinPanelTitle: UiFramework.translate(\"widget.tooltips.unpinPanel\"),\r\n popoutActiveTab: UiFramework.translate(\"widget.tooltips.popoutActiveTab\"),\r\n }), []);\r\n}\r\n\r\n/** @internal */\r\nexport function addWidgets(state: NineZoneState, widgets: ReadonlyArray<WidgetDef>, side: PanelSide, widgetId: WidgetIdTypes): NineZoneState {\r\n const visibleWidgets = widgets.filter((w) => w.isVisible && (w.defaultState !== WidgetState.Floating));\r\n if (visibleWidgets.length === 0)\r\n return state;\r\n\r\n const tabs = new Array<string>();\r\n for (const widget of visibleWidgets) {\r\n const label = getWidgetLabel(widget.label);\r\n state = addTab(state, widget.id, {\r\n label,\r\n iconSpec: widget.iconSpec,\r\n preferredPanelWidgetSize: widget.preferredPanelSize,\r\n preferredFloatingWidgetSize: widget.defaultFloatingSize,\r\n canPopout: widget.canPopout,\r\n isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,\r\n hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,\r\n allowedPanelTargets: widget.allowedPanelTargets as PanelSide[],\r\n });\r\n tabs.push(widget.id);\r\n }\r\n\r\n const activeWidget = visibleWidgets.find((widget) => widget.isActive);\r\n const minimized = false;\r\n // istanbul ignore else\r\n if (activeWidget?.defaultState !== WidgetState.Floating) {\r\n state = addPanelWidget(state, side, widgetId, tabs, {\r\n activeTabId: activeWidget ? activeWidget.id : tabs[0],\r\n minimized,\r\n });\r\n }\r\n\r\n return state;\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function appendWidgets(state: NineZoneState, widgetDefs: ReadonlyArray<WidgetDef>, side: PanelSide, preferredWidgetIndex: number): NineZoneState {\r\n if (widgetDefs.length === 0)\r\n return state;\r\n\r\n // Add missing widget tabs.\r\n for (const widgetDef of widgetDefs) {\r\n const label = getWidgetLabel(widgetDef.label);\r\n const saveTab = state.tabs[widgetDef.id];\r\n const preferredPanelWidgetSize = saveTab ? saveTab.preferredPanelWidgetSize : widgetDef.preferredPanelSize;\r\n const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : widgetDef.defaultFloatingSize;\r\n // if a defaultFloatingSize is specified then this mean the widget can't determine its intrinsic size and must be explicitly sized\r\n const userSized = saveTab ? (saveTab.userSized || !!widgetDef.defaultFloatingSize && !!saveTab.preferredFloatingWidgetSize)\r\n : !!widgetDef.defaultFloatingSize;\r\n state = addTab(state, widgetDef.id, {\r\n label,\r\n iconSpec: widgetDef.iconSpec,\r\n canPopout: widgetDef.canPopout,\r\n preferredPanelWidgetSize,\r\n preferredFloatingWidgetSize,\r\n userSized,\r\n isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,\r\n hideWithUiWhenFloating: !!widgetDef.hideWithUiWhenFloating,\r\n allowedPanelTargets: widgetDef.allowedPanelTargets as PanelSide[],\r\n });\r\n\r\n if (widgetDef.isFloatingStateSupported && widgetDef.defaultState === WidgetState.Floating) {\r\n const floatingContainerId = widgetDef.floatingContainerId ?? getUniqueId();\r\n const widgetContainerId = getWidgetId(side, panelZoneKeys[preferredWidgetIndex]);\r\n const home: FloatingWidgetHomeState = { side, widgetId: widgetContainerId, widgetIndex: 0 };\r\n const preferredPosition = widgetDef.defaultFloatingPosition;\r\n\r\n if (floatingContainerId in state.widgets) {\r\n state = addTabToWidget(state, widgetDef.id, floatingContainerId);\r\n } else {\r\n const tab = state.tabs[widgetDef.id];\r\n\r\n const size = { height: 200, width: 300, ...tab.preferredFloatingWidgetSize };\r\n const preferredPoint = preferredPosition ?? { x: (state.size.width - size.width) / 2, y: (state.size.height - size.height) / 2 };\r\n const nzBounds = Rectangle.createFromSize(state.size);\r\n const bounds = Rectangle.createFromSize(size).offset(preferredPoint);\r\n const containedBounds = bounds.containIn(nzBounds);\r\n\r\n state = addFloatingWidget(state, floatingContainerId, [widgetDef.id], {\r\n bounds: containedBounds.toProps(),\r\n home,\r\n userSized,\r\n }, {\r\n isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,\r\n });\r\n }\r\n } else {\r\n const widgetPanelSectionId = getWidgetPanelSectionId(side, preferredWidgetIndex);\r\n if (widgetPanelSectionId in state.widgets) {\r\n state = addTabToWidget(state, widgetDef.id, widgetPanelSectionId);\r\n } else {\r\n const panel = state.panels[side];\r\n if (panel.widgets.length < panel.maxWidgetCount) {\r\n state = addPanelWidget(state, side, widgetPanelSectionId, [widgetDef.id]);\r\n } else {\r\n const widgetIndex = Math.min(preferredWidgetIndex, panel.widgets.length - 1);\r\n const widgetId = panel.widgets[widgetIndex];\r\n state = addTabToWidget(state, widgetDef.id, widgetId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return state;\r\n}\r\n\r\nfunction processPopoutWidgets(initialState: NineZoneState, frontstageDef: FrontstageDef): NineZoneState {\r\n // istanbul ignore next\r\n if (!initialState.popoutWidgets)\r\n return initialState;\r\n\r\n // istanbul ignore next - not unit testing electron case that reopens popout windows\r\n if (initialState.popoutWidgets && ProcessDetector.isElectronAppFrontend) {\r\n if (initialState.popoutWidgets.allIds.length && ProcessDetector.isElectronAppFrontend) {\r\n for (const widgetContainerId of initialState.popoutWidgets.allIds) {\r\n frontstageDef.openPopoutWidgetContainer(initialState, widgetContainerId);\r\n }\r\n }\r\n return initialState;\r\n }\r\n\r\n return convertAllPopupWidgetContainersToFloating(initialState);\r\n}\r\n\r\n/** Adds frontstageDef widgets that are missing in NineZoneState.\r\n * @internal\r\n */\r\nexport function addMissingWidgets(frontstageDef: FrontstageDef, initialState: NineZoneState): NineZoneState {\r\n let state = initialState;\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.centerLeft?.widgetDefs, state), \"left\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.panelZones.start.widgetDefs, state), \"left\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomLeft?.widgetDefs, state), \"left\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.panelWidgetDefs, state), \"left\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.panelZones.end.widgetDefs, state), \"left\", 1);\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.centerRight?.widgetDefs, state), \"right\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.panelZones.start.widgetDefs, state), \"right\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomRight?.widgetDefs, state), \"right\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.panelWidgetDefs, state), \"right\", 1);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.panelZones.end.widgetDefs, state), \"right\", 1);\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.panelWidgetDefs, state), \"top\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.panelZones.start.widgetDefs, state), \"top\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topMostPanel?.panelWidgetDefs, state), \"top\", 1); // eslint-disable-line deprecation/deprecation\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.panelZones.end.widgetDefs, state), \"top\", 1);\r\n\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.panelWidgetDefs, state), \"bottom\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.panelZones.start.widgetDefs, state), \"bottom\", 0);\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomMostPanel?.panelWidgetDefs, state), \"bottom\", 1); // eslint-disable-line deprecation/deprecation\r\n state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.panelZones.end.widgetDefs, state), \"bottom\", 1);\r\n\r\n return state;\r\n}\r\n\r\n/** Hide widgets with Hidden defaultState. */\r\nfunction hideWidgets(state: NineZoneState, frontstageDef: FrontstageDef): NineZoneState {\r\n const tabs = Object.values(state.tabs);\r\n for (const tab of tabs) {\r\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\r\n if (!widgetDef)\r\n continue;\r\n\r\n if (widgetDef.defaultState === WidgetState.Hidden) {\r\n state = hideWidget(state, widgetDef);\r\n }\r\n }\r\n\r\n return state;\r\n}\r\n\r\n/** Removes NineZoneState widgets that are missing in frontstageDef.\r\n * @internal\r\n */\r\nexport function removeMissingWidgets(frontstageDef: FrontstageDef, initialState: NineZoneState): NineZoneState {\r\n let state = initialState;\r\n for (const [, tab] of Object.entries(state.tabs)) {\r\n if (tab.id === toolSettingsTabId)\r\n continue;\r\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\r\n if (widgetDef)\r\n continue;\r\n state = removeTab(state, tab.id);\r\n }\r\n return state;\r\n}\r\n\r\nfunction getWidgetLabel(label: string) {\r\n return label === \"\" ? \"Widget\" : label;\r\n}\r\n\r\ntype WidgetIdTypes =\r\n \"leftStart\" |\r\n \"leftEnd\" |\r\n \"rightStart\" |\r\n \"rightEnd\" |\r\n \"topStart\" |\r\n \"topEnd\" |\r\n \"bottomStart\" |\r\n \"bottomEnd\";\r\n\r\nfunction toStagePanelLocation(side: PanelSide): StagePanelLocation {\r\n switch (side) {\r\n case \"bottom\":\r\n return StagePanelLocation.Bottom;\r\n case \"left\":\r\n return StagePanelLocation.Left;\r\n case \"right\":\r\n return StagePanelLocation.Right;\r\n case \"top\":\r\n return StagePanelLocation.Top;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function getWidgetId(side: PanelSide, key: StagePanelZoneDefKeys): WidgetIdTypes {\r\n switch (side) {\r\n case \"left\": {\r\n if (key === \"start\") {\r\n return \"leftStart\";\r\n }\r\n return \"leftEnd\";\r\n }\r\n case \"right\": {\r\n if (key === \"start\") {\r\n return \"rightStart\";\r\n }\r\n return \"rightEnd\";\r\n }\r\n case \"top\": {\r\n if (key === \"start\") {\r\n return \"topStart\";\r\n }\r\n return \"topEnd\";\r\n }\r\n case \"bottom\": {\r\n if (key === \"start\")\r\n return \"bottomStart\";\r\n return \"bottomEnd\";\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function getPanelZoneWidgets(frontstageDef: FrontstageDef, panelZone: WidgetIdTypes): WidgetDef[] {\r\n switch (panelZone) {\r\n case \"leftStart\": {\r\n const outArray = [...frontstageDef.centerLeft?.widgetDefs || []];\r\n frontstageDef.leftPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"leftEnd\": {\r\n const outArray = [...frontstageDef.bottomLeft?.widgetDefs || []];\r\n frontstageDef.leftPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n frontstageDef.leftPanel?.panelWidgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"rightStart\": {\r\n const outArray = [...frontstageDef.centerRight?.widgetDefs || []];\r\n frontstageDef.rightPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"rightEnd\": {\r\n const outArray = [...frontstageDef.bottomRight?.widgetDefs || []];\r\n frontstageDef.rightPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n frontstageDef.rightPanel?.panelWidgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"topStart\": {\r\n const outArray = [...frontstageDef.topPanel?.panelWidgetDefs || []];\r\n frontstageDef.topPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"topEnd\": {\r\n const outArray = [...frontstageDef.topMostPanel?.panelWidgetDefs || []]; // eslint-disable-line deprecation/deprecation\r\n frontstageDef.topPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"bottomStart\": {\r\n const outArray = [...frontstageDef.bottomPanel?.panelWidgetDefs || []];\r\n frontstageDef.bottomPanel?.panelZones.start.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n case \"bottomEnd\": {\r\n const outArray = [...frontstageDef.bottomMostPanel?.panelWidgetDefs || []]; // eslint-disable-line deprecation/deprecation\r\n frontstageDef.bottomPanel?.panelZones.end.widgetDefs.forEach((widgetDef) => {\r\n // istanbul ignore else\r\n if (undefined === outArray.find((widget) => widget.id === widgetDef.id))\r\n outArray.push(widgetDef);\r\n });\r\n return outArray;\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addPanelWidgets(\r\n state: NineZoneState,\r\n frontstageDef: FrontstageDef,\r\n side: PanelSide,\r\n): NineZoneState {\r\n const start = getWidgetId(side, \"start\");\r\n const startWidgets = getPanelZoneWidgets(frontstageDef, start);\r\n state = addWidgets(state, determineNewWidgets(startWidgets, state), side, start);\r\n\r\n const end = getWidgetId(side, \"end\");\r\n const endWidgets = getPanelZoneWidgets(frontstageDef, end);\r\n state = addWidgets(state, determineNewWidgets(endWidgets, state), side, end);\r\n return state;\r\n}\r\n\r\n/** @internal */\r\nexport function isFrontstageStateSettingResult(settingsResult: UiStateStorageResult): settingsResult is { // eslint-disable-line deprecation/deprecation\r\n status: UiStateStorageStatus.Success;\r\n setting: WidgetPanelsFrontstageState;\r\n} {\r\n if (settingsResult.status === UiStateStorageStatus.Success)\r\n return true;\r\n return false;\r\n}\r\n\r\n/** @internal */\r\nexport function initializePanel(state: NineZoneState, frontstageDef: FrontstageDef, panelSide: PanelSide) {\r\n state = addPanelWidgets(state, frontstageDef, panelSide);\r\n const location = toStagePanelLocation(panelSide);\r\n const panelDef = frontstageDef.getStagePanelDef(location);\r\n state = produce(state, (draft) => {\r\n const panel = draft.panels[panelSide];\r\n panel.minSize = panelDef?.minSize ?? panel.minSize;\r\n panel.pinned = panelDef?.pinned ?? panel.pinned;\r\n panel.resizable = panelDef?.resizable ?? panel.resizable;\r\n if (panelDef?.maxSizeSpec) {\r\n panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, state.size);\r\n }\r\n\r\n const size = panelDef?.size;\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n });\r\n return state;\r\n}\r\n\r\nfunction getPanelMaxSize(maxSizeSpec: StagePanelMaxSizeSpec, panel: PanelSide, nineZoneSize: SizeProps) {\r\n if (typeof maxSizeSpec === \"number\") {\r\n return maxSizeSpec;\r\n }\r\n const size = isHorizontalPanelSide(panel) ? nineZoneSize.height : nineZoneSize.width;\r\n return maxSizeSpec.percentage / 100 * size;\r\n}\r\n\r\nconst stateVersion = 13; // this needs to be bumped when NineZoneState is changed (to recreate the layout).\r\n\r\n/** @internal */\r\nexport function initializeNineZoneState(frontstageDef: FrontstageDef): NineZoneState {\r\n let nineZone = defaultNineZone;\r\n nineZone = produce(nineZone, (stateDraft) => {\r\n // istanbul ignore next\r\n if (!InternalFrontstageManager.nineZoneSize)\r\n return;\r\n stateDraft.size = {\r\n height: InternalFrontstageManager.nineZoneSize.height,\r\n width: InternalFrontstageManager.nineZoneSize.width,\r\n };\r\n });\r\n\r\n nineZone = initializePanel(nineZone, frontstageDef, \"left\");\r\n nineZone = initializePanel(nineZone, frontstageDef, \"right\");\r\n nineZone = initializePanel(nineZone, frontstageDef, \"top\");\r\n nineZone = initializePanel(nineZone, frontstageDef, \"bottom\");\r\n nineZone = produce(nineZone, (stateDraft) => {\r\n for (const [, panel] of Object.entries(stateDraft.panels)) {\r\n const expanded = panel.widgets.find((widgetId) => stateDraft.widgets[widgetId].minimized === false);\r\n const firstWidget = panel.widgets.length > 0 ? stateDraft.widgets[panel.widgets[0]] : undefined;\r\n // istanbul ignore next\r\n if (!expanded && firstWidget) {\r\n firstWidget.minimized = false;\r\n }\r\n }\r\n stateDraft.panels.left.collapsed = isPanelCollapsed([\r\n frontstageDef.centerLeft?.zoneState,\r\n frontstageDef.bottomLeft?.zoneState,\r\n ], [frontstageDef.leftPanel?.panelState]);\r\n stateDraft.panels.right.collapsed = isPanelCollapsed([\r\n frontstageDef.centerRight?.zoneState,\r\n frontstageDef.bottomRight?.zoneState,\r\n ], [frontstageDef.rightPanel?.panelState]);\r\n stateDraft.panels.top.collapsed = isPanelCollapsed([], [\r\n // istanbul ignore next - ignore topMostPanel if topPanel is defined\r\n frontstageDef.topPanel ? frontstageDef.topPanel?.panelState : frontstageDef.topMostPanel?.panelState,// eslint-disable-line deprecation/deprecation\r\n ]);\r\n stateDraft.panels.bottom.collapsed = isPanelCollapsed([], [\r\n // istanbul ignore next - ignore bottomMostPanel if bottomPanel is defined\r\n frontstageDef.bottomPanel ? frontstageDef.bottomPanel?.panelState : frontstageDef.bottomMostPanel?.panelState, // eslint-disable-line deprecation/deprecation\r\n ]);\r\n\r\n const topCenterDef = frontstageDef.topCenter;\r\n const toolSettingsWidgetDef = topCenterDef?.getSingleWidgetDef();\r\n if (toolSettingsWidgetDef) {\r\n const toolSettingsTab = stateDraft.tabs[toolSettingsTabId];\r\n toolSettingsTab.preferredPanelWidgetSize = toolSettingsWidgetDef.preferredPanelSize;\r\n }\r\n });\r\n nineZone = addMissingWidgets(frontstageDef, nineZone);\r\n nineZone = hideWidgets(nineZone, frontstageDef);\r\n nineZone = processPopoutWidgets(nineZone, frontstageDef);\r\n\r\n return nineZone;\r\n}\r\n\r\n/** Converts from saved NineZoneState to NineZoneState.\r\n * @note Restores toolSettings tab.\r\n * @note Restores tab labels.\r\n * @internal\r\n */\r\nexport function restoreNineZoneState(frontstageDef: FrontstageDef, saved: SavedNineZoneState): NineZoneState {\r\n let restored: NineZoneState = {\r\n ...saved,\r\n tabs: defaultNineZone.tabs,\r\n };\r\n\r\n for (const [, tab] of Object.entries(saved.tabs)) {\r\n // Re-add the placeholder tab in order to correctly remove it from the state if WidgetDef is not found.\r\n restored = addTab(restored, tab.id);\r\n\r\n const widgetDef = frontstageDef.findWidgetDef(tab.id);\r\n if (!widgetDef) {\r\n Logger.logInfo(UiFramework.loggerCategory(restoreNineZoneState), \"WidgetDef is not found for saved tab.\", () => ({\r\n frontstageId: frontstageDef.id,\r\n tabId: tab.id,\r\n }));\r\n restored = removeTab(restored, tab.id);\r\n continue;\r\n }\r\n restored = produce(restored, (draft) => {\r\n draft.tabs[tab.id] = {\r\n ...tab,\r\n label: getWidgetLabel(widgetDef.label),\r\n hideWithUiWhenFloating: widgetDef.hideWithUiWhenFloating,\r\n iconSpec: widgetDef.iconSpec,\r\n canPopout: widgetDef.canPopout,\r\n isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,\r\n allowedPanelTargets: widgetDef.allowedPanelTargets as PanelSide[],\r\n };\r\n });\r\n }\r\n restored = produce(restored, (draft) => {\r\n // remove center panel section if one is found in left or right panels\r\n const oldLeftMiddleIndex = saved.panels.left.widgets.findIndex((value) => value === \"leftMiddle\");\r\n // istanbul ignore next\r\n if (-1 !== oldLeftMiddleIndex) {\r\n draft.panels.left.widgets = saved.panels.left.widgets.filter((value) => value !== \"leftMiddle\");\r\n if (\"leftEnd\" in draft.widgets) {\r\n draft.widgets.leftMiddle.tabs.forEach((tab) => draft.widgets.leftEnd.tabs.push(tab));\r\n } else {\r\n draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };\r\n delete draft.widgets.leftMiddle;\r\n }\r\n }\r\n\r\n const oldRightMiddleIndex = saved.panels.right.widgets.findIndex((value) => value === \"rightMiddle\");\r\n // istanbul ignore next\r\n if (-1 !== oldRightMiddleIndex) {\r\n draft.panels.right.widgets = saved.panels.right.widgets.filter((value) => value !== \"rightMiddle\");\r\n if (\"rightEnd\" in draft.widgets) {\r\n draft.widgets.rightMiddle.tabs.forEach((tab) => draft.widgets.rightEnd.tabs.push(tab));\r\n } else {\r\n draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };\r\n delete draft.widgets.rightMiddle;\r\n }\r\n }\r\n\r\n return;\r\n });\r\n\r\n if (InternalFrontstageManager.nineZoneSize && (0 !== InternalFrontstageManager.nineZoneSize.height || 0 !== InternalFrontstageManager.nineZoneSize.width)) {\r\n restored = FrameworkStateReducer(restored, {\r\n type: \"RESIZE\",\r\n size: {\r\n height: InternalFrontstageManager.nineZoneSize.height,\r\n width: InternalFrontstageManager.nineZoneSize.width,\r\n },\r\n }, frontstageDef);\r\n }\r\n return restored;\r\n}\r\n\r\n/** Prepares NineZoneState to be saved.\r\n * @note Removes toolSettings tab.\r\n * @note Removes tab labels and iconSpec.\r\n * @internal\r\n */\r\nexport function packNineZoneState(state: NineZoneState): SavedNineZoneState {\r\n let packed: SavedNineZoneState = {\r\n ...state,\r\n tabs: {},\r\n };\r\n packed = produce(packed, (draft) => {\r\n for (const [, tab] of Object.entries(state.tabs)) {\r\n if (tab.id === toolSettingsTabId)\r\n continue;\r\n\r\n draft.tabs[tab.id] = {\r\n id: tab.id,\r\n preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,\r\n allowedPanelTargets: tab.allowedPanelTargets,\r\n userSized: tab.userSized,\r\n };\r\n }\r\n });\r\n return packed;\r\n}\r\n\r\n// istanbul ignore next\r\nfunction packSavedWidgets(frontstageDef: FrontstageDef): SavedWidgets {\r\n let savedWidgets: Array<SavedWidget> = [];\r\n for (const widgetDef of frontstageDef.widgetDefs) {\r\n const id = widgetDef.id;\r\n const initialWidget: SavedWidget = {\r\n id,\r\n };\r\n const widget = produce(initialWidget, (draft) => {\r\n if (widgetDef.tabLocation) {\r\n draft.tabLocation = { ...widgetDef.tabLocation };\r\n }\r\n if (widgetDef.popoutBounds) {\r\n draft.popoutBounds = widgetDef.popoutBounds.toProps();\r\n }\r\n });\r\n if (widget === initialWidget)\r\n continue;\r\n\r\n savedWidgets.push(widget);\r\n }\r\n\r\n // Add previously saved widgets.\r\n const prevSavedWidgets = frontstageDef.savedWidgetDefs || [];\r\n for (const prevWidget of prevSavedWidgets) {\r\n if (savedWidgets.find((w) => w.id === prevWidget.id))\r\n continue;\r\n\r\n savedWidgets.push(prevWidget);\r\n }\r\n\r\n // Limit number of saved widgets.\r\n const maxWidgets = 100;\r\n if (savedWidgets.length > maxWidgets)\r\n savedWidgets = savedWidgets.slice(0, maxWidgets);\r\n\r\n return savedWidgets;\r\n}\r\n\r\n// istanbul ignore next\r\nfunction restoreSavedWidgets(frontstage: FrontstageDef) {\r\n const savedWidgets = frontstage.savedWidgetDefs || [];\r\n for (const savedWidget of savedWidgets) {\r\n const widgetId = savedWidget.id;\r\n const widgetDef = frontstage.findWidgetDef(widgetId);\r\n if (!widgetDef)\r\n continue;\r\n\r\n if (savedWidget.tabLocation) {\r\n widgetDef.tabLocation = { ...savedWidget.tabLocation };\r\n }\r\n if (savedWidget.popoutBounds) {\r\n widgetDef.popoutBounds = Rectangle.create(savedWidget.popoutBounds);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function isPanelCollapsed(zoneStates: ReadonlyArray<ZoneState | undefined>, panelStates: ReadonlyArray<StagePanelState | undefined>) {\r\n const openZone = zoneStates.find((zoneState) => zoneState === ZoneState.Open);\r\n const openPanel = panelStates.find((panelState) => panelState === StagePanelState.Open);\r\n return !openZone && !openPanel;\r\n}\r\n\r\n/** FrontstageState is saved in UiStateStorage.\r\n * @internal\r\n */\r\nexport interface WidgetPanelsFrontstageState {\r\n nineZone: SavedNineZoneState;\r\n widgets: SavedWidgets;\r\n id: FrontstageDef[\"id\"];\r\n /** Frontstage version used to create the frontstage state. Allows to invalidate the layout from the frontstage. */\r\n version: number;\r\n /** Platform provided frontstage version. Allows to invalidate the layout from the platform. */\r\n stateVersion: number;\r\n}\r\n\r\n/** Saved data specific to `WidgetDef`. I.e. used to restore hidden widgets.\r\n * @internal\r\n */\r\nexport interface SavedWidget {\r\n readonly id: WidgetDef[\"id\"];\r\n readonly tabLocation?: TabLocation;\r\n readonly popoutBounds?: RectangleProps;\r\n}\r\n\r\n/** @internal */\r\nexport type SavedWidgets = ReadonlyArray<SavedWidget>;\r\n\r\n// We don't save tab labels or if widget is allowed to \"pop-out\".\r\ntype SavedTabState = Omit<TabState, \"label\" | \"canPopout\" | \"isFloatingStateWindowResizable\" | \"iconSpec\">;\r\n\r\ninterface SavedTabsState {\r\n readonly [id: string]: SavedTabState;\r\n}\r\n\r\n// // We don't save if widget is allowed to \"pop-out\" or if floating widget can be resized.\r\n// type SavedWidgetState = Omit<WidgetState, | \"canPopout\" | \"isFloatingStateWindowResizable\">;\r\n//\r\n// interface SavedWidgetsState {\r\n// readonly [id: string]: SavedWidgetState;\r\n// }\r\n\r\ninterface SavedNineZoneState extends Omit<NineZoneState, \"tabs\"> {\r\n readonly tabs: SavedTabsState;\r\n // readonly widgets: SavedWidgetsState;\r\n}\r\n\r\nfunction addHiddenWidget(state: NineZoneState, widgetDef: WidgetDef): NineZoneState {\r\n const tabLocation = widgetDef.tabLocation || widgetDef.defaultTabLocation;\r\n const tabId = widgetDef.id;\r\n const { widgetId, tabIndex } = tabLocation;\r\n\r\n if (widgetId in state.widgets) {\r\n // Add to an existing widget (by widget id).\r\n return insertTabToWidget(state, tabId, widgetId, tabIndex);\r\n } else if (tabLocation.floatingWidget) {\r\n const floatingWidget = tabLocation.floatingWidget;\r\n assert(widgetId === floatingWidget.id);\r\n\r\n // Add to a new floating widget.\r\n const nzBounds = Rectangle.createFromSize(state.size);\r\n const bounds = Rectangle.create(floatingWidget.bounds).containIn(nzBounds);\r\n return addFloatingWidget(state, floatingWidget.id, [tabId], {\r\n ...floatingWidget,\r\n bounds: bounds.toProps(),\r\n });\r\n }\r\n\r\n // Add to a panel section.\r\n const panel = state.panels[tabLocation.side];\r\n\r\n // Add to existing panel section.\r\n if (panel.widgets.length >= panel.maxWidgetCount) {\r\n const sectionIndex = Math.min(panel.maxWidgetCount - 1, tabLocation.widgetIndex);\r\n const sectionId = panel.widgets[sectionIndex];\r\n return insertTabToWidget(state, tabId, sectionId, tabLocation.tabIndex);\r\n }\r\n\r\n // Create a new panel section.\r\n const newSectionId = getUniqueId();\r\n return insertPanelWidget(state, panel.side, newSectionId, [tabId], tabLocation.widgetIndex);\r\n}\r\n\r\n/** @internal */\r\nexport function setWidgetState(\r\n state: NineZoneState,\r\n widgetDef: WidgetDef,\r\n widgetState: WidgetState,\r\n) {\r\n if (widgetState === WidgetState.Hidden) {\r\n return hideWidget(state, widgetDef);\r\n } else if (widgetState === WidgetState.Open) {\r\n const id = widgetDef.id;\r\n let location = getTabLocation(state, id);\r\n if (!location) {\r\n state = addHiddenWidget(state, widgetDef);\r\n location = getTabLocation(state, id);\r\n }\r\n\r\n return produce(state, (draft) => {\r\n assert(!!location);\r\n const widget = draft.widgets[location.widgetId];\r\n widget.minimized = false;\r\n widget.activeTabId = id;\r\n\r\n if (isFloatingTabLocation(location)) {\r\n const floatingWidget = draft.floatingWidgets.byId[location.floatingWidgetId];\r\n floatingWidget.hidden = false;\r\n // istanbul ignore else\r\n } else if (isPanelTabLocation(location)) {\r\n const panel = draft.panels[location.side];\r\n panel.collapsed = false;\r\n if (undefined === panel.size || 0 === panel.size) {\r\n // istanbul ignore next\r\n panel.size = panel.minSize ?? 200;\r\n }\r\n }\r\n });\r\n } else if (widgetState === WidgetState.Closed) {\r\n const id = widgetDef.id;\r\n let location = getTabLocation(state, id);\r\n if (!location) {\r\n state = addHiddenWidget(state, widgetDef);\r\n location = getTabLocation(state, id);\r\n }\r\n\r\n // TODO: should change activeTabId of a widget with multiple tabs.\r\n return produce(state, (draft) => {\r\n assert(!!location);\r\n const widget = draft.widgets[location.widgetId];\r\n\r\n if (isFloatingTabLocation(location)) {\r\n if (id === widget.activeTabId) {\r\n widget.minimized = true;\r\n }\r\n }\r\n });\r\n } else if (widgetState === WidgetState.Floating) {\r\n const id = widgetDef.id;\r\n let location = getTabLocation(state, id);\r\n if (!location) {\r\n state = addHiddenWidget(state, widgetDef);\r\n location = getTabLocation(state, id);\r\n }\r\n\r\n assert(!!location);\r\n if (isFloatingTabLocation(location))\r\n return state;\r\n\r\n // Widget is not floating.\r\n state = removeTabFromWidget(state, id);\r\n const bounds = widgetDef.tabLocation?.floatingWidget?.bounds;\r\n state = addFloatingWidget(state, getUniqueId(), [id], { bounds });\r\n }\r\n return state;\r\n}\r\n\r\n/** Stores widget location and hides it in the UI. */\r\nfunction hideWidget(state: NineZoneState, widgetDef: WidgetDef) {\r\n const location = getTabLocation(state, widgetDef.id);\r\n if (!location)\r\n return state;\r\n // istanbul ignore else\r\n if (isFloatingTabLocation(location)) {\r\n const floatingWidget = state.floatingWidgets.byId[location.widgetId];\r\n widgetDef.setFloatingContainerId(location.floatingWidgetId);\r\n widgetDef.tabLocation = {\r\n side: floatingWidget.home.side,\r\n tabIndex: floatingWidget.home.widgetIndex,\r\n widgetId: floatingWidget.id,\r\n widgetIndex: floatingWidget.home.widgetIndex,\r\n floatingWidget,\r\n };\r\n } else if (!isPopoutTabLocation(location)) {\r\n const widgetId = location.widgetId;\r\n const side = isPanelTabLocation(location) ? location.side : \"left\";\r\n const widgetIndex = isPanelTabLocation(location) ? state.panels[side].widgets.indexOf(widgetId) : 0;\r\n const tabIndex = state.widgets[location.widgetId].tabs.indexOf(widgetDef.id);\r\n widgetDef.tabLocation = {\r\n side,\r\n tabIndex,\r\n widgetId,\r\n widgetIndex,\r\n };\r\n }\r\n return removeTabFromWidget(state, widgetDef.id);\r\n}\r\n\r\n/** @internal */\r\nexport function showWidget(state: NineZoneState, id: TabState[\"id\"]) {\r\n const location = getTabLocation(state, id);\r\n if (!location)\r\n return state;\r\n state = produce(state, (draft) => {\r\n const widget = draft.widgets[location.widgetId];\r\n widget.activeTabId = id;\r\n widget.minimized = false;\r\n if (isPanelTabLocation(location)) {\r\n const panel = draft.panels[location.side];\r\n panel.collapsed = false;\r\n }\r\n });\r\n if (isFloatingTabLocation(location)) {\r\n state = floatingWidgetBringToFront(state, location.floatingWidgetId);\r\n }\r\n return state;\r\n}\r\n\r\n/** @internal */\r\nexport function expandWidget(state: NineZoneState, id: TabState[\"id\"]) {\r\n const location = getTabLocation(state, id);\r\n if (!location)\r\n return state;\r\n\r\n return produce(state, (draft) => {\r\n const widget = draft.widgets[location.widgetId];\r\n if (isPanelTabLocation(location)) {\r\n const panel = draft.panels[location.side];\r\n panel.widgets.forEach((wId) => {\r\n const w = draft.widgets[wId];\r\n w.minimized = true;\r\n });\r\n }\r\n widget.minimized = false;\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function setWidgetLabel(state: NineZoneState, id: TabState[\"id\"], label: string) {\r\n if (!(id in state.tabs))\r\n return state;\r\n\r\n return produce(state, (draft) => {\r\n const tab = draft.tabs[id];\r\n tab.label = label;\r\n });\r\n}\r\n\r\n/** @internal */\r\nexport function useSavedFrontstageState(frontstageDef: FrontstageDef) {\r\n const uiStateStorage = useUiStateStorageHandler();\r\n const uiStateStorageRef = React.useRef(uiStateStorage);\r\n const isMountedRef = React.useRef(false);\r\n React.useEffect(() => {\r\n isMountedRef.current = true;\r\n return () => { isMountedRef.current = false; };\r\n }, []);\r\n React.useEffect(() => {\r\n uiStateStorageRef.current = uiStateStorage;\r\n }, [uiStateStorage]);\r\n React.useEffect(() => {\r\n async function fetchFrontstageState() {\r\n if (frontstageDef.nineZoneState) {\r\n frontstageDef.nineZoneState = processPopoutWidgets(frontstageDef.nineZoneState, frontstageDef);\r\n return;\r\n }\r\n const id = frontstageDef.id;\r\n const version = frontstageDef.version;\r\n const settingResult = await uiStateStorageRef.current.getSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id));\r\n if (!isMountedRef.current)\r\n return;\r\n\r\n if (isFrontstageStateSettingResult(settingResult)) {\r\n const setting = settingResult.setting;\r\n if (setting.version >= version && setting.stateVersion >= stateVersion) {\r\n const restored = restoreNineZoneState(frontstageDef, setting.nineZone);\r\n\r\n frontstageDef.savedWidgetDefs = setting.widgets;\r\n restoreSavedWidgets(frontstageDef);\r\n\r\n let state = addMissingWidgets(frontstageDef, restored);\r\n state = hideWidgets(state, frontstageDef);\r\n state = processPopoutWidgets(state, frontstageDef);\r\n\r\n frontstageDef.nineZoneState = state;\r\n return;\r\n }\r\n }\r\n frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);\r\n }\r\n fetchFrontstageState(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }, [frontstageDef]);\r\n}\r\n\r\n/** @internal */\r\nexport function useSaveFrontstageSettings(frontstageDef: FrontstageDef) {\r\n const nineZone = useNineZoneState(frontstageDef);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n const saveSetting = React.useMemo(() => {\r\n return debounce(async (frontstage: FrontstageDef, state: NineZoneState) => {\r\n const id = frontstage.id;\r\n const widgets = packSavedWidgets(frontstage);\r\n frontstage.savedWidgetDefs = widgets;\r\n const setting: WidgetPanelsFrontstageState = {\r\n id,\r\n version: frontstage.version,\r\n stateVersion,\r\n nineZone: packNineZoneState(state),\r\n widgets,\r\n };\r\n await uiSettingsStorage.saveSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id), setting);\r\n }, 1000);\r\n }, [uiSettingsStorage]);\r\n React.useEffect(() => {\r\n return () => {\r\n saveSetting.cancel();\r\n };\r\n }, [saveSetting]);\r\n React.useEffect(() => {\r\n if (!nineZone || nineZone.draggedTab)\r\n return;\r\n saveSetting(frontstageDef, nineZone);\r\n }, [frontstageDef, nineZone, saveSetting]);\r\n}\r\n\r\n/** @internal */\r\nexport const FRONTSTAGE_SETTINGS_NAMESPACE = \"uifw-frontstageSettings\";\r\n\r\n/** @internal */\r\nexport function getFrontstageStateSettingName(frontstageId: WidgetPanelsFrontstageState[\"id\"]) {\r\n return `frontstageState[${frontstageId}]`;\r\n}\r\n\r\n// istanbul ignore next\r\nfunction debounce<T extends (...args: any[]) => any>(func: T, duration: number) {\r\n let timeout: number | undefined;\r\n const debounced = (...args: Parameters<T>) => {\r\n const handler = () => {\r\n timeout = undefined;\r\n return func(...args);\r\n };\r\n window.clearTimeout(timeout);\r\n timeout = window.setTimeout(handler, duration);\r\n };\r\n debounced.cancel = () => {\r\n window.clearTimeout(timeout);\r\n };\r\n return debounced;\r\n}\r\n\r\nconst createListener = <T extends (...args: any[]) => void>(frontstageDef: FrontstageDef, listener: T) => {\r\n return (...args: Parameters<T>) => {\r\n if (!frontstageDef.nineZoneState)\r\n return;\r\n listener(...args);\r\n };\r\n};\r\n\r\n/** @internal */\r\nexport function useFrontstageManager(frontstageDef: FrontstageDef, useToolAsToolSettingsLabel?: boolean) {\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef, widgetState }: WidgetStateChangedEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n frontstageDef.nineZoneState = setWidgetState(frontstageDef.nineZoneState, widgetDef, widgetState);\r\n });\r\n UiFramework.frontstages.onWidgetStateChangedEvent.addListener(listener);\r\n return () => {\r\n UiFramework.frontstages.onWidgetStateChangedEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef }: WidgetEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n frontstageDef.nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);\r\n });\r\n InternalFrontstageManager.onWidgetShowEvent.addListener(listener);\r\n return () => {\r\n InternalFrontstageManager.onWidgetShowEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef }: WidgetEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n let nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);\r\n nineZoneState = expandWidget(nineZoneState, widgetDef.id);\r\n frontstageDef.nineZoneState = nineZoneState;\r\n });\r\n InternalFrontstageManager.onWidgetExpandEvent.addListener(listener);\r\n return () => {\r\n InternalFrontstageManager.onWidgetExpandEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n const uiSettingsStorage = useUiStateStorageHandler();\r\n React.useEffect(() => {\r\n const listener = (args: FrontstageEventArgs) => {\r\n // TODO: track restoring frontstages to support workflows: i.e. prevent loading frontstage OR saving layout when delete is pending\r\n uiSettingsStorage.deleteSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(args.frontstageDef.id)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n if (frontstageDef.id === args.frontstageDef.id) {\r\n args.frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);\r\n } else {\r\n args.frontstageDef.nineZoneState = undefined;\r\n }\r\n };\r\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(listener);\r\n return () => {\r\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(listener);\r\n };\r\n }, [uiSettingsStorage, frontstageDef]);\r\n React.useEffect(() => {\r\n const listener = createListener(frontstageDef, ({ widgetDef }: WidgetEventArgs) => {\r\n assert(!!frontstageDef.nineZoneState);\r\n const label = widgetDef.label;\r\n frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, widgetDef.id, label);\r\n });\r\n InternalFrontstageManager.onWidgetLabelChangedEvent.addListener(listener);\r\n return () => {\r\n InternalFrontstageManager.onWidgetLabelChangedEvent.removeListener(listener);\r\n };\r\n }, [frontstageDef]);\r\n\r\n const defaultLabel = React.useMemo(\r\n () => UiFramework.translate(\"widget.labels.toolSettings\"), []\r\n );\r\n React.useEffect(() => {\r\n const updateLabel = createListener(frontstageDef, () => {\r\n const toolId = UiFramework.frontstages.activeToolId;\r\n assert(!!frontstageDef.nineZoneState);\r\n const label = useToolAsToolSettingsLabel ?\r\n IModelApp.tools.find(toolId)?.flyover || defaultLabel : defaultLabel;\r\n frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, toolSettingsTabId, label);\r\n });\r\n // Whenever the frontstageDef or the useTool... changes, keep the label up to date.\r\n updateLabel();\r\n // If useTool... is true, listen for events to keep up the label up to date.\r\n if (useToolAsToolSettingsLabel) {\r\n UiFramework.frontstages.onFrontstageReadyEvent.addListener(updateLabel);\r\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(updateLabel);\r\n UiFramework.frontstages.onToolActivatedEvent.addListener(updateLabel);\r\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(updateLabel);\r\n }\r\n return () => {\r\n if (useToolAsToolSettingsLabel) {\r\n UiFramework.frontstages.onFrontstageReadyEvent.removeListener(updateLabel);\r\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(updateLabel);\r\n UiFramework.frontstages.onToolActivatedEvent.removeListener(updateLabel);\r\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(updateLabel);\r\n }\r\n };\r\n }, [frontstageDef, useToolAsToolSettingsLabel, defaultLabel]);\r\n}\r\n\r\n/** @internal */\r\n// istanbul ignore next\r\nexport function useItemsManager(frontstageDef: FrontstageDef) {\r\n const refreshNineZoneState = (def: FrontstageDef) => {\r\n // Fired for both registered/unregistered. Update definitions and remove/add missing widgets.\r\n def.updateWidgetDefs();\r\n restoreSavedWidgets(def);\r\n let state = def.nineZoneState;\r\n if (!state)\r\n return;\r\n state = addMissingWidgets(def, state);\r\n state = removeMissingWidgets(def, state);\r\n state = hideWidgets(state, def); // TODO: should only apply to widgets provided by registered provider in onUiProviderRegisteredEvent.\r\n def.nineZoneState = state;\r\n };\r\n\r\n React.useEffect(() => {\r\n const remove = UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\r\n refreshNineZoneState(frontstageDef);\r\n });\r\n // Need to refresh anytime frontstageDef changes because uiItemsProvider may have added something to\r\n // another stage before it was possibly unloaded in this stage.\r\n refreshNineZoneState(frontstageDef);\r\n return remove;\r\n }, [frontstageDef]);\r\n}\r\n\r\n// istanbul ignore next\r\nfunction determineNewWidgets(defs: readonly WidgetDef[] | undefined, state: NineZoneState) {\r\n return (defs || []).filter((def) => !(def.id in state.tabs));\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { ModalFrontstageInfo } from "../frontstage/FrontstageManager";
2
+ import { ModalFrontstageInfo } from "../framework/FrameworkFrontstages";
3
3
  /** @internal */
4
4
  export declare function useActiveModalFrontstageInfo(): ModalFrontstageInfo | undefined;
5
5
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"ModalFrontstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ModalFrontstageComposer.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAsD,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG1H,gBAAgB;AAChB,wBAAgB,4BAA4B,oCAY3C;AAED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAAE,sBAgBpG"}
1
+ {"version":3,"file":"ModalFrontstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ModalFrontstageComposer.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAmC,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAIzG,gBAAgB;AAChB,wBAAgB,4BAA4B,oCAY3C;AAED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAAE,sBAgBpG"}
@@ -9,18 +9,18 @@ exports.ModalFrontstageComposer = exports.useActiveModalFrontstageInfo = void 0;
9
9
  * @module Frontstage
10
10
  */
11
11
  const React = require("react");
12
- const FrontstageManager_1 = require("../frontstage/FrontstageManager");
13
12
  const ModalFrontstage_1 = require("../frontstage/ModalFrontstage");
13
+ const UiFramework_1 = require("../UiFramework");
14
14
  /** @internal */
15
15
  function useActiveModalFrontstageInfo() {
16
- const [activeModalFrontstageInfo, setActiveModalFrontstageInfo] = React.useState(FrontstageManager_1.FrontstageManager.activeModalFrontstage);
16
+ const [activeModalFrontstageInfo, setActiveModalFrontstageInfo] = React.useState(UiFramework_1.UiFramework.frontstages.activeModalFrontstage);
17
17
  React.useEffect(() => {
18
18
  const handleModalFrontstageChangedEvent = (args) => {
19
- setActiveModalFrontstageInfo(args.modalFrontstageCount === 0 ? undefined : FrontstageManager_1.FrontstageManager.activeModalFrontstage);
19
+ setActiveModalFrontstageInfo(args.modalFrontstageCount === 0 ? undefined : UiFramework_1.UiFramework.frontstages.activeModalFrontstage);
20
20
  };
21
- FrontstageManager_1.FrontstageManager.onModalFrontstageChangedEvent.addListener(handleModalFrontstageChangedEvent);
21
+ UiFramework_1.UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(handleModalFrontstageChangedEvent);
22
22
  return () => {
23
- FrontstageManager_1.FrontstageManager.onModalFrontstageChangedEvent.removeListener(handleModalFrontstageChangedEvent);
23
+ UiFramework_1.UiFramework.frontstages.onModalFrontstageChangedEvent.removeListener(handleModalFrontstageChangedEvent);
24
24
  };
25
25
  }, [setActiveModalFrontstageInfo]);
26
26
  return activeModalFrontstageInfo;
@@ -28,7 +28,7 @@ function useActiveModalFrontstageInfo() {
28
28
  exports.useActiveModalFrontstageInfo = useActiveModalFrontstageInfo;
29
29
  /** @internal */
30
30
  function ModalFrontstageComposer({ stageInfo }) {
31
- const handleCloseModal = React.useCallback(/* istanbul ignore next */ () => FrontstageManager_1.FrontstageManager.closeModalFrontstage(), []);
31
+ const handleCloseModal = React.useCallback(/* istanbul ignore next */ () => UiFramework_1.UiFramework.frontstages.closeModalFrontstage(), []);
32
32
  // istanbul ignore next
33
33
  if (!stageInfo)
34
34
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"ModalFrontstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ModalFrontstageComposer.tsx"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,+BAA+B;AAC/B,uEAA0H;AAC1H,mEAAgE;AAEhE,gBAAgB;AAChB,SAAgB,4BAA4B;IAC1C,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,qCAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC1H,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iCAAiC,GAAG,CAAC,IAAqC,EAAE,EAAE;YAClF,4BAA4B,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qCAAiB,CAAC,qBAAqB,CAAC,CAAC;QACtH,CAAC,CAAC;QACF,qCAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;QAC/F,OAAO,GAAG,EAAE;YACV,qCAAiB,CAAC,6BAA6B,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;QACpG,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACnC,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAZD,oEAYC;AAED,gBAAgB;AAChB,SAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAkD;IACnG,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,0BAA0B,CAAA,GAAG,EAAE,CAAC,qCAAiB,CAAC,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC;IACzH,uBAAuB;IACvB,IAAI,CAAC,SAAS;QACZ,OAAO,IAAI,CAAC;IAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IAElD,OAAO,oBAAC,iCAAe,IACrB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,WAAW,IAEvB,OAAO,CACQ,CAAC;AACrB,CAAC;AAhBD,0DAgBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\nimport * as React from \"react\";\r\nimport { FrontstageManager, ModalFrontstageChangedEventArgs, ModalFrontstageInfo } from \"../frontstage/FrontstageManager\";\r\nimport { ModalFrontstage } from \"../frontstage/ModalFrontstage\";\r\n\r\n/** @internal */\r\nexport function useActiveModalFrontstageInfo() {\r\n const [activeModalFrontstageInfo, setActiveModalFrontstageInfo] = React.useState(FrontstageManager.activeModalFrontstage);\r\n React.useEffect(() => {\r\n const handleModalFrontstageChangedEvent = (args: ModalFrontstageChangedEventArgs) => {\r\n setActiveModalFrontstageInfo(args.modalFrontstageCount === 0 ? undefined : FrontstageManager.activeModalFrontstage);\r\n };\r\n FrontstageManager.onModalFrontstageChangedEvent.addListener(handleModalFrontstageChangedEvent);\r\n return () => {\r\n FrontstageManager.onModalFrontstageChangedEvent.removeListener(handleModalFrontstageChangedEvent);\r\n };\r\n }, [setActiveModalFrontstageInfo]);\r\n return activeModalFrontstageInfo;\r\n}\r\n\r\n/** @internal */\r\nexport function ModalFrontstageComposer({ stageInfo }: { stageInfo: ModalFrontstageInfo | undefined }) {\r\n const handleCloseModal = React.useCallback(/* istanbul ignore next */() => FrontstageManager.closeModalFrontstage(), []);\r\n // istanbul ignore next\r\n if (!stageInfo)\r\n return null;\r\n\r\n const { title, content, appBarRight } = stageInfo;\r\n\r\n return <ModalFrontstage\r\n isOpen={true}\r\n title={title}\r\n closeModal={handleCloseModal}\r\n appBarRight={appBarRight}\r\n >\r\n {content}\r\n </ModalFrontstage>;\r\n}\r\n"]}
1
+ {"version":3,"file":"ModalFrontstageComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ModalFrontstageComposer.tsx"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,+BAA+B;AAE/B,mEAAgE;AAChE,gDAA6C;AAE7C,gBAAgB;AAChB,SAAgB,4BAA4B;IAC1C,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,yBAAW,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAChI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iCAAiC,GAAG,CAAC,IAAqC,EAAE,EAAE;YAClF,4BAA4B,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAW,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAC5H,CAAC,CAAC;QACF,yBAAW,CAAC,WAAW,CAAC,6BAA6B,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;QACrG,OAAO,GAAG,EAAE;YACV,yBAAW,CAAC,WAAW,CAAC,6BAA6B,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;QAC1G,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACnC,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAZD,oEAYC;AAED,gBAAgB;AAChB,SAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAkD;IACnG,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,0BAA0B,CAAA,GAAG,EAAE,CAAC,yBAAW,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/H,uBAAuB;IACvB,IAAI,CAAC,SAAS;QACZ,OAAO,IAAI,CAAC;IAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IAElD,OAAO,oBAAC,iCAAe,IACrB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,WAAW,IAEvB,OAAO,CACQ,CAAC;AACrB,CAAC;AAhBD,0DAgBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\nimport * as React from \"react\";\r\nimport { ModalFrontstageChangedEventArgs, ModalFrontstageInfo } from \"../framework/FrameworkFrontstages\";\r\nimport { ModalFrontstage } from \"../frontstage/ModalFrontstage\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** @internal */\r\nexport function useActiveModalFrontstageInfo() {\r\n const [activeModalFrontstageInfo, setActiveModalFrontstageInfo] = React.useState(UiFramework.frontstages.activeModalFrontstage);\r\n React.useEffect(() => {\r\n const handleModalFrontstageChangedEvent = (args: ModalFrontstageChangedEventArgs) => {\r\n setActiveModalFrontstageInfo(args.modalFrontstageCount === 0 ? undefined : UiFramework.frontstages.activeModalFrontstage);\r\n };\r\n UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(handleModalFrontstageChangedEvent);\r\n return () => {\r\n UiFramework.frontstages.onModalFrontstageChangedEvent.removeListener(handleModalFrontstageChangedEvent);\r\n };\r\n }, [setActiveModalFrontstageInfo]);\r\n return activeModalFrontstageInfo;\r\n}\r\n\r\n/** @internal */\r\nexport function ModalFrontstageComposer({ stageInfo }: { stageInfo: ModalFrontstageInfo | undefined }) {\r\n const handleCloseModal = React.useCallback(/* istanbul ignore next */() => UiFramework.frontstages.closeModalFrontstage(), []);\r\n // istanbul ignore next\r\n if (!stageInfo)\r\n return null;\r\n\r\n const { title, content, appBarRight } = stageInfo;\r\n\r\n return <ModalFrontstage\r\n isOpen={true}\r\n title={title}\r\n closeModal={handleCloseModal}\r\n appBarRight={appBarRight}\r\n >\r\n {content}\r\n </ModalFrontstage>;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAeD,gBAAgB;AAChB,wBAAgB,wBAAwB,uBASvC;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,gBAQxC;AAED,gBAAgB;AAChB,wBAAgB,6BAA6B,oCA+B5C;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,eAanE;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,2KAyBlC;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,uBAMlC;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,gBAyBxC"}
1
+ {"version":3,"file":"ToolSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAeD,gBAAgB;AAChB,wBAAgB,wBAAwB,uBASvC;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,gBAQxC;AAED,gBAAgB;AAChB,wBAAgB,6BAA6B,oCA+B5C;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,eAanE;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,2KAyBlC;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,uBAMlC;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,gBAyBxC"}