@itwin/appui-react 4.0.0-dev.12 → 4.0.0-dev.14

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 (1328) hide show
  1. package/CHANGELOG.md +154 -1
  2. package/README.md +2 -2
  3. package/lib/cjs/appui-react/UiFramework.d.ts +269 -269
  4. package/lib/cjs/appui-react/UiFramework.js +551 -555
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawCommandItems.d.ts +27 -27
  7. package/lib/cjs/appui-react/accudraw/AccuDrawCommandItems.js +74 -74
  8. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts +21 -21
  9. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +39 -39
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts +19 -19
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +216 -216
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +42 -42
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +123 -123
  14. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +12 -12
  15. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +110 -110
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts +18 -18
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +64 -64
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.d.ts +61 -61
  20. package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.js +9 -9
  21. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.d.ts +18 -18
  22. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js +44 -44
  23. package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/Calculator.d.ts +46 -46
  25. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/accudraw/Calculator.js +218 -218
  27. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  28. package/lib/cjs/appui-react/accudraw/CalculatorEngine.d.ts +41 -41
  29. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js +195 -195
  30. package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  31. package/lib/cjs/appui-react/accudraw/CalculatorPopup.d.ts +31 -31
  32. package/lib/cjs/appui-react/accudraw/CalculatorPopup.js +41 -41
  33. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +147 -147
  34. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +231 -231
  35. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  36. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts +30 -30
  37. package/lib/cjs/appui-react/accudraw/MenuButton.js +67 -67
  38. package/lib/cjs/appui-react/accudraw/MenuButtonPopup.d.ts +27 -27
  39. package/lib/cjs/appui-react/accudraw/MenuButtonPopup.js +37 -37
  40. package/lib/cjs/appui-react/accudraw/SquareButton.d.ts +14 -14
  41. package/lib/cjs/appui-react/accudraw/SquareButton.js +26 -26
  42. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +27 -27
  43. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  44. package/lib/cjs/appui-react/backstage/BackstageComposer.js +139 -139
  45. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +28 -28
  46. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +54 -55
  47. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  48. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +59 -59
  49. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/backstage/BackstageItem.js +24 -24
  51. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +13 -13
  52. package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +44 -44
  53. package/lib/cjs/appui-react/backstage/BackstageItemsManager.d.ts +38 -38
  54. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js +129 -129
  55. package/lib/cjs/appui-react/backstage/BackstageManager.d.ts +35 -35
  56. package/lib/cjs/appui-react/backstage/BackstageManager.js +77 -77
  57. package/lib/cjs/appui-react/backstage/InternalBackstageManager.d.ts +22 -22
  58. package/lib/cjs/appui-react/backstage/InternalBackstageManager.js +55 -55
  59. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.d.ts +9 -9
  60. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js +32 -32
  61. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +9 -9
  62. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js +41 -41
  63. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +73 -73
  64. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +106 -106
  65. package/lib/cjs/appui-react/childwindow/CopyStyles.d.ts +7 -7
  66. package/lib/cjs/appui-react/childwindow/CopyStyles.js +42 -42
  67. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts +71 -71
  68. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  69. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +207 -208
  70. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  71. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts +15 -15
  72. package/lib/cjs/appui-react/childwindow/PopoutWidget.js +19 -19
  73. package/lib/cjs/appui-react/configurableui/ActivityTracker.d.ts +29 -29
  74. package/lib/cjs/appui-react/configurableui/ActivityTracker.js +71 -71
  75. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +21 -21
  76. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +59 -59
  77. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.d.ts +95 -95
  78. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.d.ts.map +1 -1
  79. package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js +95 -95
  80. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts +65 -65
  81. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +92 -92
  82. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts +81 -81
  83. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +154 -154
  84. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  85. package/lib/cjs/appui-react/configurableui/TimeTracker.d.ts +33 -33
  86. package/lib/cjs/appui-react/configurableui/TimeTracker.js +80 -81
  87. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  88. package/lib/cjs/appui-react/configurableui/configurableui.scss +0 -1
  89. package/lib/cjs/appui-react/configurableui/state.d.ts +61 -61
  90. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  91. package/lib/cjs/appui-react/configurableui/state.js +111 -111
  92. package/lib/cjs/appui-react/content/ContentControl.d.ts +64 -64
  93. package/lib/cjs/appui-react/content/ContentControl.js +78 -78
  94. package/lib/cjs/appui-react/content/ContentGroup.d.ts +93 -93
  95. package/lib/cjs/appui-react/content/ContentGroup.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/content/ContentGroup.js +174 -174
  97. package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
  98. package/lib/cjs/appui-react/content/ContentLayout.d.ts +90 -90
  99. package/lib/cjs/appui-react/content/ContentLayout.js +367 -372
  100. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  101. package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts +47 -47
  102. package/lib/cjs/appui-react/content/ContentLayoutManager.js +68 -68
  103. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +62 -62
  104. package/lib/cjs/appui-react/content/ContentViewManager.js +95 -95
  105. package/lib/cjs/appui-react/content/DefaultViewOverlay.d.ts +22 -22
  106. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +49 -50
  107. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  108. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts +31 -31
  109. package/lib/cjs/appui-react/content/FloatingViewportContent.js +78 -79
  110. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  111. package/lib/cjs/appui-react/content/IModelViewport.d.ts +80 -80
  112. package/lib/cjs/appui-react/content/IModelViewport.js +147 -150
  113. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  114. package/lib/cjs/appui-react/content/InternalContentLayoutManager.d.ts +47 -47
  115. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +94 -95
  116. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  117. package/lib/cjs/appui-react/content/InternalContentViewManager.d.ts +79 -79
  118. package/lib/cjs/appui-react/content/InternalContentViewManager.js +209 -209
  119. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  120. package/lib/cjs/appui-react/content/StageContentLayout.d.ts +35 -35
  121. package/lib/cjs/appui-react/content/StageContentLayout.js +66 -66
  122. package/lib/cjs/appui-react/content/ViewStateHelper.d.ts +25 -25
  123. package/lib/cjs/appui-react/content/ViewStateHelper.js +50 -50
  124. package/lib/cjs/appui-react/content/ViewportContentControl.d.ts +61 -61
  125. package/lib/cjs/appui-react/content/ViewportContentControl.js +131 -131
  126. package/lib/cjs/appui-react/content/split-pane/Pane.d.ts +20 -20
  127. package/lib/cjs/appui-react/content/split-pane/Pane.js +42 -42
  128. package/lib/cjs/appui-react/content/split-pane/Resizer.d.ts +22 -22
  129. package/lib/cjs/appui-react/content/split-pane/Resizer.js +38 -38
  130. package/lib/cjs/appui-react/content/split-pane/SplitPane.d.ts +69 -69
  131. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +238 -242
  132. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  133. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +68 -68
  134. package/lib/cjs/appui-react/cursor/CursorInformation.js +144 -144
  135. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  136. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +32 -32
  137. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +75 -76
  138. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  139. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +58 -58
  140. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +150 -150
  141. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  142. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +114 -114
  143. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js +325 -325
  144. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  145. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +22 -22
  146. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js +64 -64
  147. package/lib/cjs/appui-react/dialog/ContentDialog.d.ts +23 -23
  148. package/lib/cjs/appui-react/dialog/ContentDialog.js +67 -70
  149. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  150. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts +51 -51
  151. package/lib/cjs/appui-react/dialog/ContentDialogManager.js +85 -85
  152. package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +84 -84
  153. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +140 -141
  154. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  155. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.d.ts +47 -47
  156. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js +131 -131
  157. package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  158. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.d.ts +35 -35
  159. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js +54 -54
  160. package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  161. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.d.ts +45 -45
  162. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js +119 -119
  163. package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  164. package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts +42 -42
  165. package/lib/cjs/appui-react/dialog/ModalDialogManager.js +68 -68
  166. package/lib/cjs/appui-react/dialog/ModelessDialog.d.ts +21 -21
  167. package/lib/cjs/appui-react/dialog/ModelessDialog.js +30 -30
  168. package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts +51 -51
  169. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js +85 -85
  170. package/lib/cjs/appui-react/dialog/StandardMessageBox.d.ts +42 -42
  171. package/lib/cjs/appui-react/dialog/StandardMessageBox.js +93 -93
  172. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.d.ts +38 -38
  173. package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js +81 -81
  174. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +61 -61
  175. package/lib/cjs/appui-react/feedback/ElementTooltip.js +131 -131
  176. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  177. package/lib/cjs/appui-react/feedback/ValidationTextbox.d.ts +73 -73
  178. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +115 -115
  179. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +1 -2
  180. package/lib/cjs/appui-react/framework/FrameworkBackstage.d.ts +43 -43
  181. package/lib/cjs/appui-react/framework/FrameworkBackstage.js +9 -9
  182. package/lib/cjs/appui-react/framework/FrameworkChildWindows.d.ts +75 -75
  183. package/lib/cjs/appui-react/framework/FrameworkChildWindows.d.ts.map +1 -1
  184. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js +9 -9
  185. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +154 -154
  186. package/lib/cjs/appui-react/framework/FrameworkContent.js +30 -30
  187. package/lib/cjs/appui-react/framework/FrameworkControls.d.ts +42 -42
  188. package/lib/cjs/appui-react/framework/FrameworkControls.js +2 -2
  189. package/lib/cjs/appui-react/framework/FrameworkDialogs.d.ts +78 -78
  190. package/lib/cjs/appui-react/framework/FrameworkDialogs.js +23 -23
  191. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +285 -285
  192. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js +63 -63
  193. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +99 -99
  194. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js +2 -2
  195. package/lib/cjs/appui-react/framework/FrameworkToolSettings.d.ts +51 -51
  196. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js +17 -17
  197. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +36 -36
  198. package/lib/cjs/appui-react/framework/FrameworkVisibility.js +2 -2
  199. package/lib/cjs/appui-react/frontstage/FrontstageConfig.d.ts +39 -39
  200. package/lib/cjs/appui-react/frontstage/FrontstageConfig.js +9 -9
  201. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +205 -205
  202. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +824 -825
  203. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  204. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +201 -201
  205. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +268 -268
  206. package/lib/cjs/appui-react/frontstage/FrontstageProvider.d.ts +13 -13
  207. package/lib/cjs/appui-react/frontstage/FrontstageProvider.js +16 -16
  208. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +234 -234
  209. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +508 -508
  210. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  211. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +34 -34
  212. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +46 -46
  213. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts +21 -21
  214. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +86 -87
  215. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  216. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts +13 -13
  217. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +33 -33
  218. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  219. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts +15 -15
  220. package/lib/cjs/appui-react/frontstage/StageUsage.js +23 -23
  221. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +65 -65
  222. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  223. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +77 -78
  224. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  225. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts +10 -10
  226. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js +37 -37
  227. package/lib/cjs/appui-react/hooks/useActiveStageId.d.ts +7 -7
  228. package/lib/cjs/appui-react/hooks/useActiveStageId.js +29 -29
  229. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts +8 -8
  230. package/lib/cjs/appui-react/hooks/useActiveViewport.js +46 -46
  231. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.d.ts +9 -9
  232. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +67 -71
  233. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  234. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.d.ts +8 -8
  235. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js +26 -26
  236. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.d.ts +12 -12
  237. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +30 -30
  238. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.d.ts +9 -9
  239. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +67 -71
  240. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  241. package/lib/cjs/appui-react/hooks/useSolarDataProvider.d.ts +9 -9
  242. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +60 -65
  243. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  244. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts +5 -5
  245. package/lib/cjs/appui-react/hooks/useUiVisibility.js +26 -26
  246. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts +39 -39
  247. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js +111 -111
  248. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  249. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +96 -96
  250. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +230 -230
  251. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +38 -38
  252. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +95 -95
  253. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  254. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +9 -9
  255. package/lib/cjs/appui-react/messages/ActivityMessage.js +77 -79
  256. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  257. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +74 -74
  258. package/lib/cjs/appui-react/messages/AppNotificationManager.js +125 -125
  259. package/lib/cjs/appui-react/messages/HollowIcon.d.ts +9 -9
  260. package/lib/cjs/appui-react/messages/HollowIcon.js +20 -20
  261. package/lib/cjs/appui-react/messages/InputField.d.ts +37 -37
  262. package/lib/cjs/appui-react/messages/InputField.js +92 -92
  263. package/lib/cjs/appui-react/messages/MessageLabel.d.ts +12 -12
  264. package/lib/cjs/appui-react/messages/MessageLabel.js +21 -21
  265. package/lib/cjs/appui-react/messages/MessageManager.d.ts +253 -253
  266. package/lib/cjs/appui-react/messages/MessageManager.js +466 -466
  267. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  268. package/lib/cjs/appui-react/messages/MessageSpan.d.ts +14 -14
  269. package/lib/cjs/appui-react/messages/MessageSpan.js +22 -22
  270. package/lib/cjs/appui-react/messages/Pointer.d.ts +69 -69
  271. package/lib/cjs/appui-react/messages/Pointer.js +173 -173
  272. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  273. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.d.ts +62 -62
  274. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.d.ts.map +1 -1
  275. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js +68 -68
  276. package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  277. package/lib/cjs/appui-react/messages/StatusMessageManager.d.ts +24 -24
  278. package/lib/cjs/appui-react/messages/StatusMessageManager.js +55 -55
  279. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +6 -6
  280. package/lib/cjs/appui-react/messages/getToastCategory.js +27 -27
  281. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.d.ts +13 -13
  282. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js +26 -26
  283. package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  284. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.d.ts +13 -13
  285. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js +26 -26
  286. package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  287. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.d.ts +33 -33
  288. package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js +34 -34
  289. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts +71 -71
  290. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +187 -187
  291. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  292. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +117 -117
  293. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +151 -151
  294. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  295. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +44 -44
  296. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +113 -113
  297. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  298. package/lib/cjs/appui-react/pickers/ListPicker.d.ts +114 -111
  299. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/pickers/ListPicker.js +197 -195
  301. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  302. package/lib/cjs/appui-react/pickers/ListPicker.scss +7 -0
  303. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +95 -90
  304. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  305. package/lib/cjs/appui-react/pickers/ViewSelector.js +267 -252
  306. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  307. package/lib/cjs/appui-react/popup/CardPopup.d.ts +48 -48
  308. package/lib/cjs/appui-react/popup/CardPopup.js +89 -89
  309. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts +30 -30
  310. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +42 -42
  311. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +38 -38
  312. package/lib/cjs/appui-react/popup/InputEditorPopup.js +57 -57
  313. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts +19 -19
  314. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +252 -253
  315. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  316. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +19 -19
  317. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +47 -47
  318. package/lib/cjs/appui-react/popup/PopupManager.d.ts +105 -105
  319. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  320. package/lib/cjs/appui-react/popup/PopupManager.js +231 -232
  321. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  322. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +28 -28
  323. package/lib/cjs/appui-react/popup/PositionPopup.js +48 -48
  324. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts +33 -33
  325. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +56 -56
  326. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +35 -35
  327. package/lib/cjs/appui-react/popup/ToolbarPopup.js +59 -59
  328. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +22 -22
  329. package/lib/cjs/appui-react/redux/FrameworkState.js +20 -20
  330. package/lib/cjs/appui-react/redux/ReducerRegistry.d.ts +36 -36
  331. package/lib/cjs/appui-react/redux/ReducerRegistry.js +60 -60
  332. package/lib/cjs/appui-react/redux/SessionState.d.ts +103 -103
  333. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  334. package/lib/cjs/appui-react/redux/SessionState.js +130 -130
  335. package/lib/cjs/appui-react/redux/StateManager.d.ts +43 -43
  336. package/lib/cjs/appui-react/redux/StateManager.js +97 -97
  337. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  338. package/lib/cjs/appui-react/redux/connectIModel.d.ts +26 -26
  339. package/lib/cjs/appui-react/redux/connectIModel.js +94 -94
  340. package/lib/cjs/appui-react/redux/redux-ts.d.ts +197 -197
  341. package/lib/cjs/appui-react/redux/redux-ts.d.ts.map +1 -1
  342. package/lib/cjs/appui-react/redux/redux-ts.js +36 -36
  343. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +10 -10
  344. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +16 -16
  345. package/lib/cjs/appui-react/safearea/SafeAreaHelpers.d.ts +7 -7
  346. package/lib/cjs/appui-react/safearea/SafeAreaHelpers.js +15 -15
  347. package/lib/cjs/appui-react/safearea/SafeAreaInsets.d.ts +13 -13
  348. package/lib/cjs/appui-react/safearea/SafeAreaInsets.js +21 -21
  349. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts +265 -265
  350. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +548 -548
  351. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  352. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts +54 -54
  353. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +209 -209
  354. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts +26 -26
  355. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +200 -200
  356. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  357. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts +17 -17
  358. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +53 -53
  359. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +27 -27
  360. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +192 -192
  361. package/lib/cjs/appui-react/shared/ActionButtonItemDef.d.ts +28 -28
  362. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js +48 -48
  363. package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  364. package/lib/cjs/appui-react/shared/AnyItemDef.d.ts +11 -11
  365. package/lib/cjs/appui-react/shared/AnyItemDef.d.ts.map +1 -1
  366. package/lib/cjs/appui-react/shared/AnyItemDef.js +9 -9
  367. package/lib/cjs/appui-react/shared/AnyToolbarItemDef.d.ts +9 -9
  368. package/lib/cjs/appui-react/shared/AnyToolbarItemDef.d.ts.map +1 -1
  369. package/lib/cjs/appui-react/shared/AnyToolbarItemDef.js +9 -9
  370. package/lib/cjs/appui-react/shared/CommandItemDef.d.ts +16 -16
  371. package/lib/cjs/appui-react/shared/CommandItemDef.js +35 -35
  372. package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
  373. package/lib/cjs/appui-react/shared/CustomItemDef.d.ts +17 -17
  374. package/lib/cjs/appui-react/shared/CustomItemDef.js +32 -32
  375. package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
  376. package/lib/cjs/appui-react/shared/CustomItemProps.d.ts +12 -12
  377. package/lib/cjs/appui-react/shared/CustomItemProps.js +9 -9
  378. package/lib/cjs/appui-react/shared/GroupItemProps.d.ts +19 -19
  379. package/lib/cjs/appui-react/shared/GroupItemProps.js +9 -9
  380. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +58 -58
  381. package/lib/cjs/appui-react/shared/ItemDefBase.js +78 -78
  382. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  383. package/lib/cjs/appui-react/shared/ItemMap.d.ts +21 -21
  384. package/lib/cjs/appui-react/shared/ItemMap.js +51 -51
  385. package/lib/cjs/appui-react/shared/ItemProps.d.ts +48 -48
  386. package/lib/cjs/appui-react/shared/ItemProps.js +9 -9
  387. package/lib/cjs/appui-react/shared/MenuItem.d.ts +36 -36
  388. package/lib/cjs/appui-react/shared/MenuItem.d.ts.map +1 -1
  389. package/lib/cjs/appui-react/shared/MenuItem.js +112 -112
  390. package/lib/cjs/appui-react/shared/SelectionScope.d.ts +13 -13
  391. package/lib/cjs/appui-react/shared/SelectionScope.js +21 -21
  392. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +17 -17
  393. package/lib/cjs/appui-react/shared/ToolItemDef.js +39 -39
  394. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts +44 -44
  395. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -1
  396. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js +9 -9
  397. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +292 -292
  398. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +218 -220
  399. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  400. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts +12 -12
  401. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +20 -20
  402. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts +10 -10
  403. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +18 -18
  404. package/lib/cjs/appui-react/statusbar/Field.d.ts +22 -0
  405. package/lib/cjs/appui-react/statusbar/Field.d.ts.map +1 -0
  406. package/lib/cjs/appui-react/statusbar/Field.js +26 -0
  407. package/lib/cjs/appui-react/statusbar/Field.js.map +1 -0
  408. package/lib/cjs/appui-react/statusbar/{Indicator.scss → Field.scss} +12 -12
  409. package/lib/cjs/appui-react/statusbar/Indicator.d.ts +24 -25
  410. package/lib/cjs/appui-react/statusbar/Indicator.d.ts.map +1 -1
  411. package/lib/cjs/appui-react/statusbar/Indicator.js +28 -35
  412. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  413. package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts +23 -23
  414. package/lib/cjs/appui-react/statusbar/LabelIndicator.js +28 -28
  415. package/lib/cjs/appui-react/statusbar/Overflow.d.ts +19 -19
  416. package/lib/cjs/appui-react/statusbar/Overflow.js +29 -29
  417. package/lib/cjs/appui-react/statusbar/OverflowPanel.d.ts +20 -20
  418. package/lib/cjs/appui-react/statusbar/OverflowPanel.js +22 -22
  419. package/lib/cjs/appui-react/statusbar/Popup.d.ts +10 -0
  420. package/lib/cjs/appui-react/statusbar/Popup.d.ts.map +1 -0
  421. package/lib/cjs/appui-react/statusbar/Popup.js +20 -0
  422. package/lib/cjs/appui-react/statusbar/Popup.js.map +1 -0
  423. package/lib/cjs/appui-react/statusbar/Separator.d.ts +10 -10
  424. package/lib/cjs/appui-react/statusbar/Separator.js +21 -21
  425. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +77 -63
  426. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  427. package/lib/cjs/appui-react/statusbar/StatusBar.js +143 -130
  428. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  429. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +46 -46
  430. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +282 -282
  431. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +98 -98
  432. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  433. package/lib/cjs/appui-react/statusbar/StatusBarItem.js +61 -61
  434. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -23
  435. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +60 -60
  436. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +39 -39
  437. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +134 -134
  438. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  439. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts +20 -20
  440. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  441. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js +23 -23
  442. package/lib/cjs/appui-react/statusbar/dialog/Button.d.ts +20 -20
  443. package/lib/cjs/appui-react/statusbar/dialog/Button.js +19 -19
  444. package/lib/cjs/appui-react/statusbar/dialog/Dialog.d.ts +29 -29
  445. package/lib/cjs/appui-react/statusbar/dialog/Dialog.js +30 -30
  446. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.d.ts +18 -18
  447. package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js +19 -19
  448. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts +9 -9
  449. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js +32 -32
  450. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +9 -9
  451. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +50 -50
  452. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts +9 -9
  453. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +61 -61
  454. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +46 -46
  455. package/lib/cjs/appui-react/statusfields/MessageCenter.js +126 -126
  456. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts +16 -16
  457. package/lib/cjs/appui-react/statusfields/SectionsField.js +80 -80
  458. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  459. package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts +26 -26
  460. package/lib/cjs/appui-react/statusfields/SelectionInfo.js +48 -48
  461. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +37 -37
  462. package/lib/cjs/appui-react/statusfields/SelectionScope.js +66 -66
  463. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +43 -43
  464. package/lib/cjs/appui-react/statusfields/SnapMode.js +126 -126
  465. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +30 -30
  466. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +93 -93
  467. package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +0 -4
  468. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts +31 -31
  469. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +91 -91
  470. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +95 -95
  471. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  472. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +443 -443
  473. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  474. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +78 -78
  475. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +188 -188
  476. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  477. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +55 -55
  478. package/lib/cjs/appui-react/theme/ThemeManager.js +95 -96
  479. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  480. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.d.ts +15 -15
  481. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js +52 -52
  482. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.d.ts +15 -15
  483. package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js +58 -58
  484. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.d.ts +19 -19
  485. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js +65 -65
  486. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  487. package/lib/cjs/appui-react/toolbar/DragInteraction.d.ts +8 -8
  488. package/lib/cjs/appui-react/toolbar/DragInteraction.js +15 -15
  489. package/lib/cjs/appui-react/toolbar/GroupItem.d.ts +37 -37
  490. package/lib/cjs/appui-react/toolbar/GroupItem.js +76 -76
  491. package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
  492. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +19 -19
  493. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +221 -221
  494. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +22 -22
  495. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +128 -128
  496. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +103 -103
  497. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  498. package/lib/cjs/appui-react/toolbar/ToolbarItem.js +51 -51
  499. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts +15 -15
  500. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +52 -52
  501. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts +45 -45
  502. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +247 -247
  503. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.d.ts +7 -7
  504. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js +25 -25
  505. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts +9 -9
  506. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js +32 -32
  507. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +9 -9
  508. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +48 -48
  509. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +36 -36
  510. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +365 -372
  511. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  512. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts +11 -11
  513. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +30 -30
  514. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts +16 -16
  515. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +32 -32
  516. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  517. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts +16 -16
  518. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +34 -34
  519. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  520. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts +26 -26
  521. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +62 -62
  522. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  523. package/lib/cjs/appui-react/tools/ToolSettingsTools.d.ts +22 -22
  524. package/lib/cjs/appui-react/tools/ToolSettingsTools.js +46 -46
  525. package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
  526. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts +25 -25
  527. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  528. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +73 -72
  529. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  530. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.d.ts +49 -49
  531. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js +123 -123
  532. package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  533. package/lib/cjs/appui-react/toolsettings/ToolInformation.d.ts +14 -14
  534. package/lib/cjs/appui-react/toolsettings/ToolInformation.js +43 -43
  535. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.d.ts +43 -43
  536. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js +63 -63
  537. package/lib/cjs/appui-react/toolsettings/ToolUiProvider.d.ts +35 -35
  538. package/lib/cjs/appui-react/toolsettings/ToolUiProvider.js +38 -38
  539. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +27 -27
  540. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  541. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +73 -73
  542. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts +9 -9
  543. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
  544. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js +9 -9
  545. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +64 -64
  546. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +47 -47
  547. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  548. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -38
  549. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +85 -87
  550. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  551. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +25 -25
  552. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +41 -41
  553. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  554. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +34 -34
  555. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +52 -52
  556. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  557. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +25 -25
  558. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +41 -41
  559. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +32 -32
  560. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +61 -62
  561. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  562. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +91 -91
  563. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  564. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +171 -177
  565. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  566. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +26 -26
  567. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js +9 -9
  568. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.d.ts +6 -6
  569. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js +15 -15
  570. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +201 -201
  571. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +344 -344
  572. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  573. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.d.ts +27 -27
  574. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +206 -206
  575. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  576. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.d.ts +27 -27
  577. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js +53 -53
  578. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +49 -49
  579. package/lib/cjs/appui-react/uistate/AppUiSettings.js +89 -89
  580. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  581. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +19 -19
  582. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +38 -38
  583. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +83 -83
  584. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +197 -197
  585. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  586. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +21 -21
  587. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  588. package/lib/cjs/appui-react/utils/PropsHelper.js +67 -67
  589. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  590. package/lib/cjs/appui-react/utils/ToolbarButtonHelper.d.ts +17 -17
  591. package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js +60 -60
  592. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +53 -53
  593. package/lib/cjs/appui-react/utils/UiShowHideManager.js +107 -107
  594. package/lib/cjs/appui-react/utils/ViewUtilities.d.ts +66 -66
  595. package/lib/cjs/appui-react/utils/ViewUtilities.js +98 -98
  596. package/lib/cjs/appui-react/widget-panels/Content.d.ts +6 -6
  597. package/lib/cjs/appui-react/widget-panels/Content.js +57 -58
  598. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  599. package/lib/cjs/appui-react/widget-panels/FloatingWidget.d.ts +6 -6
  600. package/lib/cjs/appui-react/widget-panels/FloatingWidget.js +18 -18
  601. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +125 -125
  602. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  603. package/lib/cjs/appui-react/widget-panels/Frontstage.js +1082 -1091
  604. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  605. package/lib/cjs/appui-react/widget-panels/FrontstageContent.d.ts +3 -3
  606. package/lib/cjs/appui-react/widget-panels/FrontstageContent.js +21 -21
  607. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.d.ts +8 -8
  608. package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js +38 -38
  609. package/lib/cjs/appui-react/widget-panels/StatusBar.d.ts +8 -8
  610. package/lib/cjs/appui-react/widget-panels/StatusBar.js +28 -28
  611. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  612. package/lib/cjs/appui-react/widget-panels/Tab.d.ts +10 -10
  613. package/lib/cjs/appui-react/widget-panels/Tab.js +34 -34
  614. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  615. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +37 -37
  616. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +148 -156
  617. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  618. package/lib/cjs/appui-react/widget-panels/Toolbars.d.ts +7 -7
  619. package/lib/cjs/appui-react/widget-panels/Toolbars.js +23 -24
  620. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  621. package/lib/cjs/appui-react/widget-panels/useTransientState.d.ts +7 -7
  622. package/lib/cjs/appui-react/widget-panels/useTransientState.js +18 -18
  623. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.d.ts +8 -8
  624. package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js +29 -29
  625. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +22 -22
  626. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +51 -51
  627. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts +19 -19
  628. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +60 -60
  629. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +23 -23
  630. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +61 -61
  631. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +37 -37
  632. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +48 -48
  633. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts +38 -38
  634. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +105 -105
  635. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  636. package/lib/cjs/appui-react/widgets/StableWidgetDef.d.ts +8 -8
  637. package/lib/cjs/appui-react/widgets/StableWidgetDef.js +29 -29
  638. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.d.ts +27 -27
  639. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js +42 -42
  640. package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  641. package/lib/cjs/appui-react/widgets/ToolSettingsContent.d.ts +10 -10
  642. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js +15 -15
  643. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.d.ts +23 -23
  644. package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js +34 -34
  645. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.d.ts +26 -26
  646. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +36 -36
  647. package/lib/cjs/appui-react/widgets/Widget.d.ts +38 -38
  648. package/lib/cjs/appui-react/widgets/Widget.js +9 -9
  649. package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts +15 -15
  650. package/lib/cjs/appui-react/widgets/WidgetConfig.js +9 -9
  651. package/lib/cjs/appui-react/widgets/WidgetControl.d.ts +33 -33
  652. package/lib/cjs/appui-react/widgets/WidgetControl.js +44 -44
  653. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +170 -170
  654. package/lib/cjs/appui-react/widgets/WidgetDef.js +311 -311
  655. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  656. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts +41 -41
  657. package/lib/cjs/appui-react/widgets/WidgetHost.js +89 -90
  658. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  659. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts +55 -55
  660. package/lib/cjs/appui-react/widgets/WidgetManager.js +106 -106
  661. package/lib/cjs/appui-react/widgets/WidgetState.d.ts +13 -13
  662. package/lib/cjs/appui-react/widgets/WidgetState.js +21 -21
  663. package/lib/cjs/appui-react.d.ts +341 -341
  664. package/lib/cjs/appui-react.js +362 -358
  665. package/lib/cjs/appui-react.js.map +1 -1
  666. package/lib/esm/appui-react/UiFramework.d.ts +269 -269
  667. package/lib/esm/appui-react/UiFramework.js +547 -550
  668. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  669. package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.d.ts +27 -27
  670. package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.js +70 -70
  671. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts +21 -21
  672. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +35 -35
  673. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts +19 -19
  674. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +212 -212
  675. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +42 -42
  676. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +120 -120
  677. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +12 -12
  678. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +106 -106
  679. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts +18 -18
  680. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +61 -60
  681. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  682. package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.d.ts +61 -61
  683. package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.js +8 -8
  684. package/lib/esm/appui-react/accudraw/AccuDrawWidget.d.ts +18 -18
  685. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js +40 -39
  686. package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  687. package/lib/esm/appui-react/accudraw/Calculator.d.ts +46 -46
  688. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  689. package/lib/esm/appui-react/accudraw/Calculator.js +215 -214
  690. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  691. package/lib/esm/appui-react/accudraw/CalculatorEngine.d.ts +41 -41
  692. package/lib/esm/appui-react/accudraw/CalculatorEngine.js +191 -191
  693. package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
  694. package/lib/esm/appui-react/accudraw/CalculatorPopup.d.ts +31 -31
  695. package/lib/esm/appui-react/accudraw/CalculatorPopup.js +37 -37
  696. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +147 -147
  697. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +221 -220
  698. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  699. package/lib/esm/appui-react/accudraw/MenuButton.d.ts +30 -30
  700. package/lib/esm/appui-react/accudraw/MenuButton.js +63 -63
  701. package/lib/esm/appui-react/accudraw/MenuButtonPopup.d.ts +27 -27
  702. package/lib/esm/appui-react/accudraw/MenuButtonPopup.js +33 -33
  703. package/lib/esm/appui-react/accudraw/SquareButton.d.ts +14 -14
  704. package/lib/esm/appui-react/accudraw/SquareButton.js +22 -22
  705. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +27 -27
  706. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  707. package/lib/esm/appui-react/backstage/BackstageComposer.js +134 -134
  708. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +28 -28
  709. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +48 -49
  710. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  711. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +59 -59
  712. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  713. package/lib/esm/appui-react/backstage/BackstageItem.js +19 -19
  714. package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +13 -13
  715. package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +41 -41
  716. package/lib/esm/appui-react/backstage/BackstageItemsManager.d.ts +38 -38
  717. package/lib/esm/appui-react/backstage/BackstageItemsManager.js +125 -125
  718. package/lib/esm/appui-react/backstage/BackstageManager.d.ts +35 -35
  719. package/lib/esm/appui-react/backstage/BackstageManager.js +71 -71
  720. package/lib/esm/appui-react/backstage/InternalBackstageManager.d.ts +22 -22
  721. package/lib/esm/appui-react/backstage/InternalBackstageManager.js +51 -51
  722. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.d.ts +9 -9
  723. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js +28 -28
  724. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +9 -9
  725. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +37 -37
  726. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +73 -73
  727. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +102 -102
  728. package/lib/esm/appui-react/childwindow/CopyStyles.d.ts +7 -7
  729. package/lib/esm/appui-react/childwindow/CopyStyles.js +38 -38
  730. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts +71 -71
  731. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  732. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +203 -204
  733. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  734. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts +15 -15
  735. package/lib/esm/appui-react/childwindow/PopoutWidget.js +15 -15
  736. package/lib/esm/appui-react/configurableui/ActivityTracker.d.ts +29 -29
  737. package/lib/esm/appui-react/configurableui/ActivityTracker.js +67 -67
  738. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +21 -21
  739. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +55 -55
  740. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.d.ts +95 -95
  741. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.d.ts.map +1 -1
  742. package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js +89 -89
  743. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts +65 -65
  744. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +88 -88
  745. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts +81 -81
  746. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +149 -148
  747. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  748. package/lib/esm/appui-react/configurableui/TimeTracker.d.ts +33 -33
  749. package/lib/esm/appui-react/configurableui/TimeTracker.js +76 -77
  750. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  751. package/lib/esm/appui-react/configurableui/configurableui.scss +0 -1
  752. package/lib/esm/appui-react/configurableui/state.d.ts +61 -61
  753. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  754. package/lib/esm/appui-react/configurableui/state.js +107 -107
  755. package/lib/esm/appui-react/content/ContentControl.d.ts +64 -64
  756. package/lib/esm/appui-react/content/ContentControl.js +72 -72
  757. package/lib/esm/appui-react/content/ContentGroup.d.ts +93 -93
  758. package/lib/esm/appui-react/content/ContentGroup.d.ts.map +1 -1
  759. package/lib/esm/appui-react/content/ContentGroup.js +170 -169
  760. package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
  761. package/lib/esm/appui-react/content/ContentLayout.d.ts +90 -90
  762. package/lib/esm/appui-react/content/ContentLayout.js +360 -365
  763. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  764. package/lib/esm/appui-react/content/ContentLayoutManager.d.ts +47 -47
  765. package/lib/esm/appui-react/content/ContentLayoutManager.js +64 -64
  766. package/lib/esm/appui-react/content/ContentViewManager.d.ts +62 -62
  767. package/lib/esm/appui-react/content/ContentViewManager.js +91 -91
  768. package/lib/esm/appui-react/content/DefaultViewOverlay.d.ts +22 -22
  769. package/lib/esm/appui-react/content/DefaultViewOverlay.js +45 -46
  770. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  771. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts +31 -31
  772. package/lib/esm/appui-react/content/FloatingViewportContent.js +72 -73
  773. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  774. package/lib/esm/appui-react/content/IModelViewport.d.ts +80 -80
  775. package/lib/esm/appui-react/content/IModelViewport.js +142 -145
  776. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  777. package/lib/esm/appui-react/content/InternalContentLayoutManager.d.ts +47 -47
  778. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +91 -91
  779. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  780. package/lib/esm/appui-react/content/InternalContentViewManager.d.ts +79 -79
  781. package/lib/esm/appui-react/content/InternalContentViewManager.js +206 -205
  782. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  783. package/lib/esm/appui-react/content/StageContentLayout.d.ts +35 -35
  784. package/lib/esm/appui-react/content/StageContentLayout.js +62 -62
  785. package/lib/esm/appui-react/content/ViewStateHelper.d.ts +25 -25
  786. package/lib/esm/appui-react/content/ViewStateHelper.js +46 -46
  787. package/lib/esm/appui-react/content/ViewportContentControl.d.ts +61 -61
  788. package/lib/esm/appui-react/content/ViewportContentControl.js +126 -126
  789. package/lib/esm/appui-react/content/split-pane/Pane.d.ts +20 -20
  790. package/lib/esm/appui-react/content/split-pane/Pane.js +38 -38
  791. package/lib/esm/appui-react/content/split-pane/Resizer.d.ts +22 -22
  792. package/lib/esm/appui-react/content/split-pane/Resizer.js +34 -34
  793. package/lib/esm/appui-react/content/split-pane/SplitPane.d.ts +69 -69
  794. package/lib/esm/appui-react/content/split-pane/SplitPane.js +234 -238
  795. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  796. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +68 -68
  797. package/lib/esm/appui-react/cursor/CursorInformation.js +140 -139
  798. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  799. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +32 -32
  800. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +71 -72
  801. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  802. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +58 -58
  803. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +146 -145
  804. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  805. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +114 -114
  806. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js +319 -318
  807. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  808. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +22 -22
  809. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js +60 -60
  810. package/lib/esm/appui-react/dialog/ContentDialog.d.ts +23 -23
  811. package/lib/esm/appui-react/dialog/ContentDialog.js +62 -65
  812. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  813. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts +51 -51
  814. package/lib/esm/appui-react/dialog/ContentDialogManager.js +80 -80
  815. package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +84 -84
  816. package/lib/esm/appui-react/dialog/DialogManagerBase.js +135 -135
  817. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  818. package/lib/esm/appui-react/dialog/InternalContentDialogManager.d.ts +47 -47
  819. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js +128 -127
  820. package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
  821. package/lib/esm/appui-react/dialog/InternalModalDialogManager.d.ts +35 -35
  822. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js +51 -50
  823. package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
  824. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.d.ts +45 -45
  825. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js +116 -115
  826. package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
  827. package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts +42 -42
  828. package/lib/esm/appui-react/dialog/ModalDialogManager.js +63 -63
  829. package/lib/esm/appui-react/dialog/ModelessDialog.d.ts +21 -21
  830. package/lib/esm/appui-react/dialog/ModelessDialog.js +26 -26
  831. package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts +51 -51
  832. package/lib/esm/appui-react/dialog/ModelessDialogManager.js +80 -80
  833. package/lib/esm/appui-react/dialog/StandardMessageBox.d.ts +42 -42
  834. package/lib/esm/appui-react/dialog/StandardMessageBox.js +89 -89
  835. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.d.ts +38 -38
  836. package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js +77 -77
  837. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +61 -61
  838. package/lib/esm/appui-react/feedback/ElementTooltip.js +127 -126
  839. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  840. package/lib/esm/appui-react/feedback/ValidationTextbox.d.ts +73 -73
  841. package/lib/esm/appui-react/feedback/ValidationTextbox.js +111 -111
  842. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +1 -2
  843. package/lib/esm/appui-react/framework/FrameworkBackstage.d.ts +43 -43
  844. package/lib/esm/appui-react/framework/FrameworkBackstage.js +8 -8
  845. package/lib/esm/appui-react/framework/FrameworkChildWindows.d.ts +75 -75
  846. package/lib/esm/appui-react/framework/FrameworkChildWindows.d.ts.map +1 -1
  847. package/lib/esm/appui-react/framework/FrameworkChildWindows.js +8 -8
  848. package/lib/esm/appui-react/framework/FrameworkContent.d.ts +154 -154
  849. package/lib/esm/appui-react/framework/FrameworkContent.js +24 -24
  850. package/lib/esm/appui-react/framework/FrameworkControls.d.ts +42 -42
  851. package/lib/esm/appui-react/framework/FrameworkControls.js +1 -1
  852. package/lib/esm/appui-react/framework/FrameworkDialogs.d.ts +78 -78
  853. package/lib/esm/appui-react/framework/FrameworkDialogs.js +18 -18
  854. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +285 -285
  855. package/lib/esm/appui-react/framework/FrameworkFrontstages.js +52 -52
  856. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +99 -99
  857. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js +1 -1
  858. package/lib/esm/appui-react/framework/FrameworkToolSettings.d.ts +51 -51
  859. package/lib/esm/appui-react/framework/FrameworkToolSettings.js +13 -13
  860. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +36 -36
  861. package/lib/esm/appui-react/framework/FrameworkVisibility.js +1 -1
  862. package/lib/esm/appui-react/frontstage/FrontstageConfig.d.ts +39 -39
  863. package/lib/esm/appui-react/frontstage/FrontstageConfig.js +8 -8
  864. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +205 -205
  865. package/lib/esm/appui-react/frontstage/FrontstageDef.js +817 -818
  866. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  867. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +201 -201
  868. package/lib/esm/appui-react/frontstage/FrontstageManager.js +264 -264
  869. package/lib/esm/appui-react/frontstage/FrontstageProvider.d.ts +13 -13
  870. package/lib/esm/appui-react/frontstage/FrontstageProvider.js +12 -12
  871. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +234 -234
  872. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +505 -504
  873. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  874. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +34 -34
  875. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +42 -42
  876. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts +21 -21
  877. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +83 -83
  878. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  879. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts +13 -13
  880. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +30 -29
  881. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  882. package/lib/esm/appui-react/frontstage/StageUsage.d.ts +15 -15
  883. package/lib/esm/appui-react/frontstage/StageUsage.js +20 -20
  884. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +65 -65
  885. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  886. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +73 -74
  887. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  888. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts +10 -10
  889. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js +33 -33
  890. package/lib/esm/appui-react/hooks/useActiveStageId.d.ts +7 -7
  891. package/lib/esm/appui-react/hooks/useActiveStageId.js +25 -25
  892. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts +8 -8
  893. package/lib/esm/appui-react/hooks/useActiveViewport.js +42 -42
  894. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.d.ts +9 -9
  895. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +63 -67
  896. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  897. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.d.ts +8 -8
  898. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js +22 -22
  899. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.d.ts +12 -12
  900. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +25 -25
  901. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.d.ts +9 -9
  902. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +63 -67
  903. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  904. package/lib/esm/appui-react/hooks/useSolarDataProvider.d.ts +9 -9
  905. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +56 -61
  906. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  907. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts +5 -5
  908. package/lib/esm/appui-react/hooks/useUiVisibility.js +22 -22
  909. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts +39 -39
  910. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js +108 -107
  911. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  912. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +96 -96
  913. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +224 -224
  914. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts +38 -38
  915. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +91 -90
  916. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  917. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +9 -9
  918. package/lib/esm/appui-react/messages/ActivityMessage.js +73 -75
  919. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  920. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +74 -74
  921. package/lib/esm/appui-react/messages/AppNotificationManager.js +121 -121
  922. package/lib/esm/appui-react/messages/HollowIcon.d.ts +9 -9
  923. package/lib/esm/appui-react/messages/HollowIcon.js +16 -16
  924. package/lib/esm/appui-react/messages/InputField.d.ts +37 -37
  925. package/lib/esm/appui-react/messages/InputField.js +88 -88
  926. package/lib/esm/appui-react/messages/MessageLabel.d.ts +12 -12
  927. package/lib/esm/appui-react/messages/MessageLabel.js +17 -17
  928. package/lib/esm/appui-react/messages/MessageManager.d.ts +253 -253
  929. package/lib/esm/appui-react/messages/MessageManager.js +455 -454
  930. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  931. package/lib/esm/appui-react/messages/MessageSpan.d.ts +14 -14
  932. package/lib/esm/appui-react/messages/MessageSpan.js +17 -17
  933. package/lib/esm/appui-react/messages/Pointer.d.ts +69 -69
  934. package/lib/esm/appui-react/messages/Pointer.js +169 -168
  935. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  936. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.d.ts +62 -62
  937. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.d.ts.map +1 -1
  938. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js +63 -63
  939. package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
  940. package/lib/esm/appui-react/messages/StatusMessageManager.d.ts +24 -24
  941. package/lib/esm/appui-react/messages/StatusMessageManager.js +51 -51
  942. package/lib/esm/appui-react/messages/getToastCategory.d.ts +6 -6
  943. package/lib/esm/appui-react/messages/getToastCategory.js +23 -23
  944. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.d.ts +13 -13
  945. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js +23 -22
  946. package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  947. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.d.ts +13 -13
  948. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js +23 -22
  949. package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  950. package/lib/esm/appui-react/navigationaids/NavigationAidControl.d.ts +33 -33
  951. package/lib/esm/appui-react/navigationaids/NavigationAidControl.js +29 -29
  952. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts +71 -71
  953. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +183 -182
  954. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  955. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +117 -117
  956. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +145 -144
  957. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  958. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +44 -44
  959. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +109 -108
  960. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  961. package/lib/esm/appui-react/pickers/ListPicker.d.ts +114 -111
  962. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  963. package/lib/esm/appui-react/pickers/ListPicker.js +190 -188
  964. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  965. package/lib/esm/appui-react/pickers/ListPicker.scss +7 -0
  966. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +95 -90
  967. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  968. package/lib/esm/appui-react/pickers/ViewSelector.js +263 -247
  969. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  970. package/lib/esm/appui-react/popup/CardPopup.d.ts +48 -48
  971. package/lib/esm/appui-react/popup/CardPopup.js +84 -84
  972. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts +30 -30
  973. package/lib/esm/appui-react/popup/HTMLElementPopup.js +38 -38
  974. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +38 -38
  975. package/lib/esm/appui-react/popup/InputEditorPopup.js +52 -52
  976. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts +19 -19
  977. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +247 -248
  978. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  979. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +19 -19
  980. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +43 -43
  981. package/lib/esm/appui-react/popup/PopupManager.d.ts +105 -105
  982. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  983. package/lib/esm/appui-react/popup/PopupManager.js +225 -225
  984. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  985. package/lib/esm/appui-react/popup/PositionPopup.d.ts +28 -28
  986. package/lib/esm/appui-react/popup/PositionPopup.js +43 -43
  987. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts +33 -33
  988. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +52 -52
  989. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +35 -35
  990. package/lib/esm/appui-react/popup/ToolbarPopup.js +55 -55
  991. package/lib/esm/appui-react/redux/FrameworkState.d.ts +22 -22
  992. package/lib/esm/appui-react/redux/FrameworkState.js +17 -17
  993. package/lib/esm/appui-react/redux/ReducerRegistry.d.ts +36 -36
  994. package/lib/esm/appui-react/redux/ReducerRegistry.js +56 -56
  995. package/lib/esm/appui-react/redux/SessionState.d.ts +103 -103
  996. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  997. package/lib/esm/appui-react/redux/SessionState.js +126 -126
  998. package/lib/esm/appui-react/redux/StateManager.d.ts +43 -43
  999. package/lib/esm/appui-react/redux/StateManager.js +94 -93
  1000. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  1001. package/lib/esm/appui-react/redux/connectIModel.d.ts +26 -26
  1002. package/lib/esm/appui-react/redux/connectIModel.js +89 -89
  1003. package/lib/esm/appui-react/redux/redux-ts.d.ts +197 -197
  1004. package/lib/esm/appui-react/redux/redux-ts.d.ts.map +1 -1
  1005. package/lib/esm/appui-react/redux/redux-ts.js +32 -32
  1006. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +10 -10
  1007. package/lib/esm/appui-react/safearea/SafeAreaContext.js +13 -13
  1008. package/lib/esm/appui-react/safearea/SafeAreaHelpers.d.ts +7 -7
  1009. package/lib/esm/appui-react/safearea/SafeAreaHelpers.js +11 -11
  1010. package/lib/esm/appui-react/safearea/SafeAreaInsets.d.ts +13 -13
  1011. package/lib/esm/appui-react/safearea/SafeAreaInsets.js +18 -18
  1012. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts +265 -265
  1013. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +545 -543
  1014. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  1015. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts +54 -54
  1016. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +197 -197
  1017. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts +26 -26
  1018. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +195 -195
  1019. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  1020. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts +17 -17
  1021. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +49 -49
  1022. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +27 -27
  1023. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +187 -187
  1024. package/lib/esm/appui-react/shared/ActionButtonItemDef.d.ts +28 -28
  1025. package/lib/esm/appui-react/shared/ActionButtonItemDef.js +45 -44
  1026. package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
  1027. package/lib/esm/appui-react/shared/AnyItemDef.d.ts +11 -11
  1028. package/lib/esm/appui-react/shared/AnyItemDef.d.ts.map +1 -1
  1029. package/lib/esm/appui-react/shared/AnyItemDef.js +8 -8
  1030. package/lib/esm/appui-react/shared/AnyToolbarItemDef.d.ts +9 -9
  1031. package/lib/esm/appui-react/shared/AnyToolbarItemDef.d.ts.map +1 -1
  1032. package/lib/esm/appui-react/shared/AnyToolbarItemDef.js +8 -8
  1033. package/lib/esm/appui-react/shared/CommandItemDef.d.ts +16 -16
  1034. package/lib/esm/appui-react/shared/CommandItemDef.js +32 -31
  1035. package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
  1036. package/lib/esm/appui-react/shared/CustomItemDef.d.ts +17 -17
  1037. package/lib/esm/appui-react/shared/CustomItemDef.js +29 -28
  1038. package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
  1039. package/lib/esm/appui-react/shared/CustomItemProps.d.ts +12 -12
  1040. package/lib/esm/appui-react/shared/CustomItemProps.js +8 -8
  1041. package/lib/esm/appui-react/shared/GroupItemProps.d.ts +19 -19
  1042. package/lib/esm/appui-react/shared/GroupItemProps.js +8 -8
  1043. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +58 -58
  1044. package/lib/esm/appui-react/shared/ItemDefBase.js +74 -74
  1045. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  1046. package/lib/esm/appui-react/shared/ItemMap.d.ts +21 -21
  1047. package/lib/esm/appui-react/shared/ItemMap.js +46 -46
  1048. package/lib/esm/appui-react/shared/ItemProps.d.ts +48 -48
  1049. package/lib/esm/appui-react/shared/ItemProps.js +8 -8
  1050. package/lib/esm/appui-react/shared/MenuItem.d.ts +36 -36
  1051. package/lib/esm/appui-react/shared/MenuItem.d.ts.map +1 -1
  1052. package/lib/esm/appui-react/shared/MenuItem.js +107 -107
  1053. package/lib/esm/appui-react/shared/SelectionScope.d.ts +13 -13
  1054. package/lib/esm/appui-react/shared/SelectionScope.js +18 -18
  1055. package/lib/esm/appui-react/shared/ToolItemDef.d.ts +17 -17
  1056. package/lib/esm/appui-react/shared/ToolItemDef.js +35 -35
  1057. package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts +44 -44
  1058. package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -1
  1059. package/lib/esm/appui-react/stagepanels/StagePanelConfig.js +8 -8
  1060. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +292 -292
  1061. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +210 -212
  1062. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  1063. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts +12 -12
  1064. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js +17 -17
  1065. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts +10 -10
  1066. package/lib/esm/appui-react/stagepanels/StagePanelSection.js +15 -15
  1067. package/lib/esm/appui-react/statusbar/Field.d.ts +22 -0
  1068. package/lib/esm/appui-react/statusbar/Field.d.ts.map +1 -0
  1069. package/lib/esm/appui-react/statusbar/Field.js +23 -0
  1070. package/lib/esm/appui-react/statusbar/Field.js.map +1 -0
  1071. package/lib/esm/appui-react/statusbar/{Indicator.scss → Field.scss} +12 -12
  1072. package/lib/esm/appui-react/statusbar/Indicator.d.ts +24 -25
  1073. package/lib/esm/appui-react/statusbar/Indicator.d.ts.map +1 -1
  1074. package/lib/esm/appui-react/statusbar/Indicator.js +24 -31
  1075. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  1076. package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts +23 -23
  1077. package/lib/esm/appui-react/statusbar/LabelIndicator.js +24 -24
  1078. package/lib/esm/appui-react/statusbar/Overflow.d.ts +19 -19
  1079. package/lib/esm/appui-react/statusbar/Overflow.js +26 -26
  1080. package/lib/esm/appui-react/statusbar/OverflowPanel.d.ts +20 -20
  1081. package/lib/esm/appui-react/statusbar/OverflowPanel.js +18 -18
  1082. package/lib/esm/appui-react/statusbar/Popup.d.ts +10 -0
  1083. package/lib/esm/appui-react/statusbar/Popup.d.ts.map +1 -0
  1084. package/lib/esm/appui-react/statusbar/Popup.js +16 -0
  1085. package/lib/esm/appui-react/statusbar/Popup.js.map +1 -0
  1086. package/lib/esm/appui-react/statusbar/Separator.d.ts +10 -10
  1087. package/lib/esm/appui-react/statusbar/Separator.js +17 -17
  1088. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +77 -63
  1089. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  1090. package/lib/esm/appui-react/statusbar/StatusBar.js +135 -122
  1091. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  1092. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +46 -46
  1093. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +276 -276
  1094. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +98 -98
  1095. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  1096. package/lib/esm/appui-react/statusbar/StatusBarItem.js +55 -55
  1097. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +23 -23
  1098. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js +57 -57
  1099. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +39 -39
  1100. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +130 -130
  1101. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
  1102. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts +20 -20
  1103. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  1104. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js +19 -19
  1105. package/lib/esm/appui-react/statusbar/dialog/Button.d.ts +20 -20
  1106. package/lib/esm/appui-react/statusbar/dialog/Button.js +15 -15
  1107. package/lib/esm/appui-react/statusbar/dialog/Dialog.d.ts +29 -29
  1108. package/lib/esm/appui-react/statusbar/dialog/Dialog.js +26 -26
  1109. package/lib/esm/appui-react/statusbar/dialog/TitleBar.d.ts +18 -18
  1110. package/lib/esm/appui-react/statusbar/dialog/TitleBar.js +15 -15
  1111. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts +9 -9
  1112. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js +28 -28
  1113. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +9 -9
  1114. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js +46 -46
  1115. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts +9 -9
  1116. package/lib/esm/appui-react/statusfields/ActivityCenter.js +57 -57
  1117. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +46 -46
  1118. package/lib/esm/appui-react/statusfields/MessageCenter.js +122 -122
  1119. package/lib/esm/appui-react/statusfields/SectionsField.d.ts +16 -16
  1120. package/lib/esm/appui-react/statusfields/SectionsField.js +76 -76
  1121. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  1122. package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts +26 -26
  1123. package/lib/esm/appui-react/statusfields/SelectionInfo.js +45 -45
  1124. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +37 -37
  1125. package/lib/esm/appui-react/statusfields/SelectionScope.js +63 -63
  1126. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +43 -43
  1127. package/lib/esm/appui-react/statusfields/SnapMode.js +123 -123
  1128. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +30 -30
  1129. package/lib/esm/appui-react/statusfields/ViewAttributes.js +89 -89
  1130. package/lib/esm/appui-react/statusfields/ViewAttributes.scss +0 -4
  1131. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts +31 -31
  1132. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +87 -87
  1133. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts +95 -95
  1134. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  1135. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +440 -439
  1136. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  1137. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +78 -78
  1138. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +185 -184
  1139. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  1140. package/lib/esm/appui-react/theme/ThemeManager.d.ts +55 -55
  1141. package/lib/esm/appui-react/theme/ThemeManager.js +92 -93
  1142. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  1143. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.d.ts +15 -15
  1144. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js +48 -48
  1145. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.d.ts +15 -15
  1146. package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js +54 -54
  1147. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.d.ts +19 -19
  1148. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js +61 -61
  1149. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  1150. package/lib/esm/appui-react/toolbar/DragInteraction.d.ts +8 -8
  1151. package/lib/esm/appui-react/toolbar/DragInteraction.js +12 -12
  1152. package/lib/esm/appui-react/toolbar/GroupItem.d.ts +37 -37
  1153. package/lib/esm/appui-react/toolbar/GroupItem.js +73 -72
  1154. package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
  1155. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +19 -19
  1156. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +217 -217
  1157. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +22 -22
  1158. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +124 -124
  1159. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +103 -103
  1160. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  1161. package/lib/esm/appui-react/toolbar/ToolbarItem.js +45 -45
  1162. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts +15 -15
  1163. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js +49 -49
  1164. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts +45 -45
  1165. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +243 -243
  1166. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.d.ts +7 -7
  1167. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js +21 -21
  1168. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts +9 -9
  1169. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js +28 -28
  1170. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +9 -9
  1171. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +44 -44
  1172. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +36 -36
  1173. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +361 -368
  1174. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  1175. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts +11 -11
  1176. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +26 -26
  1177. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts +16 -16
  1178. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +29 -28
  1179. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  1180. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts +16 -16
  1181. package/lib/esm/appui-react/tools/OpenSettingsTool.js +31 -30
  1182. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  1183. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts +26 -26
  1184. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +59 -57
  1185. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  1186. package/lib/esm/appui-react/tools/ToolSettingsTools.d.ts +22 -22
  1187. package/lib/esm/appui-react/tools/ToolSettingsTools.js +43 -41
  1188. package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
  1189. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts +25 -25
  1190. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  1191. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +69 -68
  1192. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  1193. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.d.ts +49 -49
  1194. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js +120 -119
  1195. package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  1196. package/lib/esm/appui-react/toolsettings/ToolInformation.d.ts +14 -14
  1197. package/lib/esm/appui-react/toolsettings/ToolInformation.js +39 -39
  1198. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.d.ts +43 -43
  1199. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js +59 -59
  1200. package/lib/esm/appui-react/toolsettings/ToolUiProvider.d.ts +35 -35
  1201. package/lib/esm/appui-react/toolsettings/ToolUiProvider.js +34 -34
  1202. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +27 -27
  1203. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  1204. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +69 -69
  1205. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts +9 -9
  1206. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
  1207. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js +8 -8
  1208. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +64 -64
  1209. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +43 -43
  1210. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  1211. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -38
  1212. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +81 -83
  1213. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  1214. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +25 -25
  1215. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +37 -37
  1216. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  1217. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +34 -34
  1218. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +48 -48
  1219. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  1220. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +25 -25
  1221. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +37 -37
  1222. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +32 -32
  1223. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +57 -58
  1224. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  1225. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +91 -91
  1226. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  1227. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +168 -173
  1228. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  1229. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +26 -26
  1230. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js +8 -8
  1231. package/lib/esm/appui-react/ui-items-provider/isProviderItem.d.ts +6 -6
  1232. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js +11 -11
  1233. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +201 -201
  1234. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +340 -340
  1235. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  1236. package/lib/esm/appui-react/uiprovider/ComponentGenerator.d.ts +27 -27
  1237. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +202 -202
  1238. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  1239. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.d.ts +27 -27
  1240. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js +47 -47
  1241. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +49 -49
  1242. package/lib/esm/appui-react/uistate/AppUiSettings.js +86 -85
  1243. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  1244. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +19 -19
  1245. package/lib/esm/appui-react/uistate/useUiStateStorage.js +33 -33
  1246. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +83 -83
  1247. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +194 -192
  1248. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  1249. package/lib/esm/appui-react/utils/PropsHelper.d.ts +21 -21
  1250. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  1251. package/lib/esm/appui-react/utils/PropsHelper.js +63 -63
  1252. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  1253. package/lib/esm/appui-react/utils/ToolbarButtonHelper.d.ts +17 -17
  1254. package/lib/esm/appui-react/utils/ToolbarButtonHelper.js +56 -56
  1255. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +53 -53
  1256. package/lib/esm/appui-react/utils/UiShowHideManager.js +104 -104
  1257. package/lib/esm/appui-react/utils/ViewUtilities.d.ts +66 -66
  1258. package/lib/esm/appui-react/utils/ViewUtilities.js +94 -94
  1259. package/lib/esm/appui-react/widget-panels/Content.d.ts +6 -6
  1260. package/lib/esm/appui-react/widget-panels/Content.js +52 -53
  1261. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  1262. package/lib/esm/appui-react/widget-panels/FloatingWidget.d.ts +6 -6
  1263. package/lib/esm/appui-react/widget-panels/FloatingWidget.js +14 -14
  1264. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +125 -125
  1265. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  1266. package/lib/esm/appui-react/widget-panels/Frontstage.js +1050 -1059
  1267. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  1268. package/lib/esm/appui-react/widget-panels/FrontstageContent.d.ts +3 -3
  1269. package/lib/esm/appui-react/widget-panels/FrontstageContent.js +17 -17
  1270. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.d.ts +8 -8
  1271. package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js +33 -33
  1272. package/lib/esm/appui-react/widget-panels/StatusBar.d.ts +8 -8
  1273. package/lib/esm/appui-react/widget-panels/StatusBar.js +24 -24
  1274. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  1275. package/lib/esm/appui-react/widget-panels/Tab.d.ts +10 -10
  1276. package/lib/esm/appui-react/widget-panels/Tab.js +29 -29
  1277. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  1278. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +37 -37
  1279. package/lib/esm/appui-react/widget-panels/ToolSettings.js +138 -146
  1280. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  1281. package/lib/esm/appui-react/widget-panels/Toolbars.d.ts +7 -7
  1282. package/lib/esm/appui-react/widget-panels/Toolbars.js +19 -20
  1283. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  1284. package/lib/esm/appui-react/widget-panels/useTransientState.d.ts +7 -7
  1285. package/lib/esm/appui-react/widget-panels/useTransientState.js +14 -14
  1286. package/lib/esm/appui-react/widget-panels/useWidgetDirection.d.ts +8 -8
  1287. package/lib/esm/appui-react/widget-panels/useWidgetDirection.js +25 -25
  1288. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +22 -22
  1289. package/lib/esm/appui-react/widgets/BackstageAppButton.js +47 -47
  1290. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts +19 -19
  1291. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +56 -56
  1292. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +23 -23
  1293. package/lib/esm/appui-react/widgets/BasicToolWidget.js +57 -57
  1294. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +37 -37
  1295. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +44 -44
  1296. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts +38 -38
  1297. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +100 -100
  1298. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  1299. package/lib/esm/appui-react/widgets/StableWidgetDef.d.ts +8 -8
  1300. package/lib/esm/appui-react/widgets/StableWidgetDef.js +25 -25
  1301. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.d.ts +27 -27
  1302. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js +39 -38
  1303. package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
  1304. package/lib/esm/appui-react/widgets/ToolSettingsContent.d.ts +10 -10
  1305. package/lib/esm/appui-react/widgets/ToolSettingsContent.js +12 -12
  1306. package/lib/esm/appui-react/widgets/ToolWidgetComposer.d.ts +23 -23
  1307. package/lib/esm/appui-react/widgets/ToolWidgetComposer.js +30 -30
  1308. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.d.ts +26 -26
  1309. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +32 -32
  1310. package/lib/esm/appui-react/widgets/Widget.d.ts +38 -38
  1311. package/lib/esm/appui-react/widgets/Widget.js +8 -8
  1312. package/lib/esm/appui-react/widgets/WidgetConfig.d.ts +15 -15
  1313. package/lib/esm/appui-react/widgets/WidgetConfig.js +8 -8
  1314. package/lib/esm/appui-react/widgets/WidgetControl.d.ts +33 -33
  1315. package/lib/esm/appui-react/widgets/WidgetControl.js +40 -40
  1316. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +170 -170
  1317. package/lib/esm/appui-react/widgets/WidgetDef.js +307 -306
  1318. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  1319. package/lib/esm/appui-react/widgets/WidgetHost.d.ts +41 -41
  1320. package/lib/esm/appui-react/widgets/WidgetHost.js +85 -86
  1321. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  1322. package/lib/esm/appui-react/widgets/WidgetManager.d.ts +55 -55
  1323. package/lib/esm/appui-react/widgets/WidgetManager.js +101 -101
  1324. package/lib/esm/appui-react/widgets/WidgetState.d.ts +13 -13
  1325. package/lib/esm/appui-react/widgets/WidgetState.js +18 -18
  1326. package/lib/esm/appui-react.d.ts +341 -341
  1327. package/lib/esm/appui-react.js +346 -346
  1328. package/package.json +32 -30
@@ -1,1060 +1,1051 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Frontstage
7
- */
8
- // cSpell:ignore popout
9
- import "./Frontstage.scss";
10
- import produce from "immer";
11
- import * as React from "react";
12
- import { unstable_batchedUpdates } from "react-dom";
13
- import { assert, Logger, ProcessDetector } from "@itwin/core-bentley";
14
- import { Rectangle, Size, UiStateStorageStatus } from "@itwin/core-react";
15
- import { ToolbarPopupAutoHideContext } from "@itwin/components-react";
16
- import { addFloatingWidget, addPanelWidget, addTab, addTabToWidget, convertAllPopupWidgetContainersToFloating, createLayoutStore, createNineZoneState, floatingWidgetBringToFront, FloatingWidgets, getTabLocation, getUniqueId, getWidgetPanelSectionId, insertPanelWidget, insertTabToWidget, isFloatingTabLocation, isHorizontalPanelSide, isPanelTabLocation, isPopoutTabLocation, NineZone, NineZoneStateReducer, panelSides, removeTab, removeTabFromWidget, toolSettingsTabId, WidgetPanels, } from "@itwin/appui-layout-react";
17
- import { StagePanelState, toPanelSide } from "../stagepanels/StagePanelDef";
18
- import { UiFramework } from "../UiFramework";
19
- import { useUiStateStorageHandler } from "../uistate/useUiStateStorage";
20
- import { WidgetContent } from "./Content";
21
- import { WidgetPanelsFrontstageContent } from "./FrontstageContent";
22
- import { ModalFrontstageComposer, useActiveModalFrontstageInfo } from "./ModalFrontstageComposer";
23
- import { WidgetPanelsStatusBar } from "./StatusBar";
24
- import { WidgetPanelsTab } from "./Tab";
25
- import { WidgetPanelsToolbars } from "./Toolbars";
26
- import { ToolSettingsContent, WidgetPanelsToolSettings } from "./ToolSettings";
27
- import { useEscapeSetFocusToHome } from "../hooks/useEscapeSetFocusToHome";
28
- import { useSelector } from "react-redux";
29
- import { useUiVisibility } from "../hooks/useUiVisibility";
30
- import { IModelApp } from "@itwin/core-frontend";
31
- import { FloatingWidget } from "./FloatingWidget";
32
- import { InternalFrontstageManager } from "../frontstage/InternalFrontstageManager";
33
- import { WidgetState } from "../widgets/WidgetState";
34
- import { StagePanelSection } from "../stagepanels/StagePanelSection";
35
- import { StagePanelLocation } from "../stagepanels/StagePanelLocation";
36
- import { UiItemsManager } from "../ui-items-provider/UiItemsManager";
37
- function WidgetPanelsFrontstageComponent() {
38
- const activeModalFrontstageInfo = useActiveModalFrontstageInfo();
39
- const uiIsVisible = useUiVisibility();
40
- return (React.createElement(React.Fragment, null,
41
- React.createElement(WidgetPanelsToolSettings, null),
42
- React.createElement(ToolbarPopupAutoHideContext.Provider, { value: !uiIsVisible },
43
- React.createElement(ModalFrontstageComposer, { stageInfo: activeModalFrontstageInfo }),
44
- React.createElement(WidgetPanels, { className: "uifw-widgetPanels", centerContent: React.createElement(WidgetPanelsToolbars, null) },
45
- React.createElement(WidgetPanelsFrontstageContent, null)),
46
- React.createElement(WidgetPanelsStatusBar, null),
47
- React.createElement(FloatingWidgets, null))));
48
- }
49
- const widgetContent = React.createElement(WidgetContent, null);
50
- const toolSettingsContent = React.createElement(ToolSettingsContent, null);
51
- const widgetPanelsFrontstage = React.createElement(WidgetPanelsFrontstageComponent, null);
52
- /** @internal */
53
- export function useLayoutStore() {
54
- const [def, setDef] = React.useState(UiFramework.frontstages.activeFrontstageDef);
55
- const [layout, setLayout] = React.useState(() => createLayoutStore(def === null || def === void 0 ? void 0 : def.nineZoneState));
56
- React.useEffect(() => {
57
- return UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {
58
- unstable_batchedUpdates(() => {
59
- setDef(args.activatedFrontstageDef);
60
- setLayout(createLayoutStore(args.activatedFrontstageDef.nineZoneState));
61
- });
62
- });
63
- }, []);
64
- React.useEffect(() => {
65
- return InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener((args) => {
66
- if (args.frontstageDef !== def || def.isStageClosing || def.isApplicationClosing)
67
- return;
68
- unstable_batchedUpdates(() => {
69
- layout.setState(args.state || defaultNineZone);
70
- });
71
- });
72
- }, [def, layout]);
73
- return [layout, def];
74
- }
75
- /** Update in-memory NineZoneState of newly activated frontstage with up to date size.
76
- * @internal
77
- */
78
- export function useUpdateNineZoneSize(frontstageDef) {
79
- React.useEffect(() => {
80
- const size = InternalFrontstageManager.nineZoneSize;
81
- let state = frontstageDef.nineZoneState;
82
- if (!size || !state)
83
- return;
84
- state = FrameworkStateReducer(state, {
85
- type: "RESIZE",
86
- size: {
87
- height: size.height,
88
- width: size.width,
89
- },
90
- }, frontstageDef);
91
- frontstageDef.nineZoneState = state;
92
- }, [frontstageDef]);
93
- }
94
- /** @internal */
95
- export function FrameworkStateReducer(state, action, frontstageDef) {
96
- state = NineZoneStateReducer(state, action);
97
- if (action.type === "RESIZE") {
98
- state = produce(state, (draft) => {
99
- for (const panelSide of panelSides) {
100
- const panel = draft.panels[panelSide];
101
- const location = toStagePanelLocation(panelSide);
102
- const panelDef = frontstageDef.getStagePanelDef(location);
103
- if (panelDef === null || panelDef === void 0 ? void 0 : panelDef.maxSizeSpec) {
104
- panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, action.size);
105
- if (panel.size) {
106
- panel.size = Math.min(Math.max(panel.size, panel.minSize), panel.maxSize);
107
- }
108
- }
109
- }
110
- });
111
- }
112
- return state;
113
- }
114
- /** @internal */
115
- export function useNineZoneDispatch(frontstageDef) {
116
- const dispatch = React.useCallback((action) => {
117
- if (action.type === "RESIZE") {
118
- InternalFrontstageManager.nineZoneSize = Size.create(action.size);
119
- }
120
- // istanbul ignore if
121
- if (action.type === "TOOL_SETTINGS_DRAG_START") {
122
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
123
- UiFramework.postTelemetry("Tool Settings Undocking", "28B04E07-AE73-4533-A0BA-8E2A8DC99ADF");
124
- }
125
- // istanbul ignore if
126
- if (action.type === "TOOL_SETTINGS_DOCK") {
127
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
128
- UiFramework.postTelemetry("Tool Settings Docking to Settings Bar", "BEDE684B-B3DB-4637-B3AF-DC3CBA223F94");
129
- }
130
- if (action.type === "WIDGET_TAB_POPOUT") {
131
- const tabId = action.id;
132
- frontstageDef.popoutWidget(tabId);
133
- return;
134
- }
135
- const state = frontstageDef.nineZoneState;
136
- if (!state)
137
- return;
138
- frontstageDef.nineZoneState = FrameworkStateReducer(state, action, frontstageDef);
139
- }, [frontstageDef]);
140
- return dispatch;
141
- }
142
- /** @internal */
143
- export function WidgetPanelsFrontstage() {
144
- const [layout, frontstageDef] = useLayoutStore();
145
- React.useEffect(() => {
146
- const triggerWidowCloseProcessing = () => {
147
- frontstageDef && frontstageDef.setIsApplicationClosing(true);
148
- };
149
- frontstageDef && frontstageDef.setIsApplicationClosing(false);
150
- window.addEventListener("unload", triggerWidowCloseProcessing);
151
- return () => {
152
- window.removeEventListener("unload", triggerWidowCloseProcessing);
153
- };
154
- }, [frontstageDef]);
155
- if (!frontstageDef)
156
- return null;
157
- return (React.createElement(ActiveFrontstageDefProvider, { frontstageDef: frontstageDef, layout: layout }));
158
- }
159
- const defaultNineZone = createNineZoneState();
160
- const tabElement = React.createElement(WidgetPanelsTab, null);
161
- const floatingWidgetElement = React.createElement(FloatingWidget, null);
162
- /** @internal */
163
- export function ActiveFrontstageDefProvider({ frontstageDef, layout }) {
164
- const dispatch = useNineZoneDispatch(frontstageDef);
165
- useUpdateNineZoneSize(frontstageDef);
166
- useSavedFrontstageState(frontstageDef);
167
- useSaveFrontstageSettings(frontstageDef, layout);
168
- useItemsManager(frontstageDef);
169
- const labels = useLabels();
170
- const uiIsVisible = useUiVisibility();
171
- const showWidgetIcon = useSelector((state) => {
172
- const frameworkState = state[UiFramework.frameworkStateKey];
173
- return !!frameworkState.configurableUiState.showWidgetIcon;
174
- });
175
- const autoCollapseUnpinnedPanels = useSelector((state) => {
176
- const frameworkState = state[UiFramework.frameworkStateKey];
177
- return !!frameworkState.configurableUiState.autoCollapseUnpinnedPanels;
178
- });
179
- const animateToolSettings = useSelector((state) => {
180
- const frameworkState = state[UiFramework.frameworkStateKey];
181
- return !!frameworkState.configurableUiState.animateToolSettings;
182
- });
183
- const useToolAsToolSettingsLabel = useSelector((state) => {
184
- const frameworkState = state[UiFramework.frameworkStateKey];
185
- return !!frameworkState.configurableUiState.useToolAsToolSettingsLabel;
186
- });
187
- useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel);
188
- const handleKeyDown = useEscapeSetFocusToHome();
189
- return (React.createElement("div", { className: "uifw-widgetPanels-frontstage", onKeyDown: handleKeyDown, role: "presentation" },
190
- React.createElement(NineZone, { dispatch: dispatch, labels: labels, layout: layout, tab: tabElement, floatingWidget: floatingWidgetElement, showWidgetIcon: showWidgetIcon, autoCollapseUnpinnedPanels: autoCollapseUnpinnedPanels, toolSettingsContent: toolSettingsContent, widgetContent: widgetContent, animateDockedToolSettings: animateToolSettings, uiIsVisible: uiIsVisible }, widgetPanelsFrontstage)));
191
- }
192
- /** @internal */
193
- export function useLabels() {
194
- return React.useMemo(() => ({
195
- dockToolSettingsTitle: UiFramework.translate("widget.tooltips.dockToolSettings"),
196
- moreWidgetsTitle: UiFramework.translate("widget.tooltips.moreWidgets"),
197
- moreToolSettingsTitle: UiFramework.translate("widget.tooltips.moreToolSettings"),
198
- pinPanelTitle: UiFramework.translate("widget.tooltips.pinPanel"),
199
- resizeGripTitle: UiFramework.translate("widget.tooltips.resizeGrip"),
200
- sendWidgetHomeTitle: UiFramework.translate("widget.tooltips.sendHome"),
201
- toolSettingsHandleTitle: UiFramework.translate("widget.tooltips.toolSettingsHandle"),
202
- unpinPanelTitle: UiFramework.translate("widget.tooltips.unpinPanel"),
203
- popoutActiveTab: UiFramework.translate("widget.tooltips.popoutActiveTab"),
204
- }), []);
205
- }
206
- /** @internal */
207
- export function addWidgets(state, widgets, side, widgetId) {
208
- var _a;
209
- const visibleWidgets = widgets.filter((w) => w.isVisible && (w.defaultState !== WidgetState.Floating));
210
- if (visibleWidgets.length === 0)
211
- return state;
212
- const tabs = new Array();
213
- for (const widget of visibleWidgets) {
214
- const label = getWidgetLabel(widget.label);
215
- state = addTab(state, widget.id, {
216
- label,
217
- iconSpec: widget.iconSpec,
218
- preferredPanelWidgetSize: widget.preferredPanelSize,
219
- preferredFloatingWidgetSize: widget.defaultFloatingSize,
220
- canPopout: widget.canPopout,
221
- isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
222
- hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,
223
- allowedPanelTargets: (_a = widget.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.map((location) => toPanelSide(location)),
224
- });
225
- tabs.push(widget.id);
226
- }
227
- const activeWidget = visibleWidgets.find((widget) => widget.isActive);
228
- const minimized = false;
229
- // istanbul ignore else
230
- if ((activeWidget === null || activeWidget === void 0 ? void 0 : activeWidget.defaultState) !== WidgetState.Floating) {
231
- state = addPanelWidget(state, side, widgetId, tabs, {
232
- activeTabId: activeWidget ? activeWidget.id : tabs[0],
233
- minimized,
234
- });
235
- }
236
- return state;
237
- }
238
- /** @internal */
239
- // istanbul ignore next
240
- export function appendWidgets(state, widgetDefs, location, section) {
241
- var _a, _b;
242
- if (widgetDefs.length === 0)
243
- return state;
244
- const side = toPanelSide(location);
245
- // Add missing widget tabs.
246
- for (const widgetDef of widgetDefs) {
247
- const label = getWidgetLabel(widgetDef.label);
248
- const saveTab = state.tabs[widgetDef.id];
249
- const preferredPanelWidgetSize = saveTab ? saveTab.preferredPanelWidgetSize : widgetDef.preferredPanelSize;
250
- const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : widgetDef.defaultFloatingSize;
251
- // if a defaultFloatingSize is specified then this mean the widget can't determine its intrinsic size and must be explicitly sized
252
- const userSized = saveTab ? (saveTab.userSized || !!widgetDef.defaultFloatingSize && !!saveTab.preferredFloatingWidgetSize)
253
- : !!widgetDef.defaultFloatingSize;
254
- state = addTab(state, widgetDef.id, {
255
- label,
256
- iconSpec: widgetDef.iconSpec,
257
- canPopout: widgetDef.canPopout,
258
- preferredPanelWidgetSize,
259
- preferredFloatingWidgetSize,
260
- userSized,
261
- isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
262
- hideWithUiWhenFloating: !!widgetDef.hideWithUiWhenFloating,
263
- allowedPanelTargets: (_a = widgetDef.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.map((l) => toPanelSide(l)),
264
- });
265
- if (widgetDef.isFloatingStateSupported && widgetDef.defaultState === WidgetState.Floating) {
266
- const floatingContainerId = (_b = widgetDef.floatingContainerId) !== null && _b !== void 0 ? _b : getUniqueId();
267
- const widgetContainerId = getWidgetId(location, section);
268
- const home = { side, widgetId: widgetContainerId, widgetIndex: 0 };
269
- const preferredPosition = widgetDef.defaultFloatingPosition;
270
- if (floatingContainerId in state.widgets) {
271
- state = addTabToWidget(state, widgetDef.id, floatingContainerId);
272
- }
273
- else {
274
- const tab = state.tabs[widgetDef.id];
275
- const size = { height: 200, width: 300, ...tab.preferredFloatingWidgetSize };
276
- const preferredPoint = preferredPosition !== null && preferredPosition !== void 0 ? preferredPosition : { x: (state.size.width - size.width) / 2, y: (state.size.height - size.height) / 2 };
277
- const nzBounds = Rectangle.createFromSize(state.size);
278
- const bounds = Rectangle.createFromSize(size).offset(preferredPoint);
279
- const containedBounds = bounds.containIn(nzBounds);
280
- state = addFloatingWidget(state, floatingContainerId, [widgetDef.id], {
281
- bounds: containedBounds.toProps(),
282
- home,
283
- userSized,
284
- }, {
285
- isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
286
- });
287
- }
288
- }
289
- else {
290
- const preferredWidgetIndex = section;
291
- const widgetPanelSectionId = getWidgetPanelSectionId(side, preferredWidgetIndex);
292
- if (widgetPanelSectionId in state.widgets) {
293
- state = addTabToWidget(state, widgetDef.id, widgetPanelSectionId);
294
- }
295
- else {
296
- const panel = state.panels[side];
297
- if (panel.widgets.length < panel.maxWidgetCount) {
298
- state = addPanelWidget(state, side, widgetPanelSectionId, [widgetDef.id]);
299
- }
300
- else {
301
- const widgetIndex = Math.min(preferredWidgetIndex, panel.widgets.length - 1);
302
- const widgetId = panel.widgets[widgetIndex];
303
- state = addTabToWidget(state, widgetDef.id, widgetId);
304
- }
305
- }
306
- }
307
- }
308
- return state;
309
- }
310
- function processPopoutWidgets(initialState, frontstageDef) {
311
- // istanbul ignore next
312
- if (!initialState.popoutWidgets)
313
- return initialState;
314
- // istanbul ignore next - not unit testing electron case that reopens popout windows
315
- if (initialState.popoutWidgets && ProcessDetector.isElectronAppFrontend) {
316
- if (initialState.popoutWidgets.allIds.length && ProcessDetector.isElectronAppFrontend) {
317
- for (const widgetContainerId of initialState.popoutWidgets.allIds) {
318
- frontstageDef.openPopoutWidgetContainer(initialState, widgetContainerId);
319
- }
320
- }
321
- return initialState;
322
- }
323
- return convertAllPopupWidgetContainersToFloating(initialState);
324
- }
325
- /** Adds frontstageDef widgets that are missing in NineZoneState.
326
- * @internal
327
- */
328
- export function addMissingWidgets(frontstageDef, initialState) {
329
- var _a, _b, _c, _d, _e, _f, _g, _h;
330
- let state = initialState;
331
- state = appendWidgets(state, determineNewWidgets((_a = frontstageDef.leftPanel) === null || _a === void 0 ? void 0 : _a.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Left, StagePanelSection.Start);
332
- state = appendWidgets(state, determineNewWidgets((_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Left, StagePanelSection.End);
333
- state = appendWidgets(state, determineNewWidgets((_c = frontstageDef.rightPanel) === null || _c === void 0 ? void 0 : _c.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Right, StagePanelSection.Start);
334
- state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.rightPanel) === null || _d === void 0 ? void 0 : _d.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Right, StagePanelSection.End);
335
- state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.topPanel) === null || _e === void 0 ? void 0 : _e.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Top, StagePanelSection.Start);
336
- state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.topPanel) === null || _f === void 0 ? void 0 : _f.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Top, StagePanelSection.End);
337
- state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.bottomPanel) === null || _g === void 0 ? void 0 : _g.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Bottom, StagePanelSection.Start);
338
- state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.bottomPanel) === null || _h === void 0 ? void 0 : _h.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Bottom, StagePanelSection.End);
339
- return state;
340
- }
341
- /** Hide widgets with Hidden defaultState. */
342
- function hideWidgets(state, frontstageDef) {
343
- const tabs = Object.values(state.tabs);
344
- for (const tab of tabs) {
345
- const widgetDef = frontstageDef.findWidgetDef(tab.id);
346
- if (!widgetDef)
347
- continue;
348
- if (widgetDef.defaultState === WidgetState.Hidden) {
349
- state = hideWidget(state, widgetDef);
350
- }
351
- }
352
- return state;
353
- }
354
- /** Removes NineZoneState widgets that are missing in frontstageDef.
355
- * @internal
356
- */
357
- export function removeMissingWidgets(frontstageDef, initialState) {
358
- let state = initialState;
359
- for (const [, tab] of Object.entries(state.tabs)) {
360
- if (tab.id === toolSettingsTabId)
361
- continue;
362
- const widgetDef = frontstageDef.findWidgetDef(tab.id);
363
- if (widgetDef)
364
- continue;
365
- state = removeTab(state, tab.id);
366
- }
367
- return state;
368
- }
369
- function getWidgetLabel(label) {
370
- return label === "" ? "Widget" : label;
371
- }
372
- function toStagePanelLocation(side) {
373
- switch (side) {
374
- case "bottom":
375
- return StagePanelLocation.Bottom;
376
- case "left":
377
- return StagePanelLocation.Left;
378
- case "right":
379
- return StagePanelLocation.Right;
380
- case "top":
381
- return StagePanelLocation.Top;
382
- }
383
- }
384
- /** @internal */
385
- export function getWidgetId(location, section) {
386
- switch (location) {
387
- case StagePanelLocation.Left: {
388
- if (section === StagePanelSection.Start)
389
- return "leftStart";
390
- return "leftEnd";
391
- }
392
- case StagePanelLocation.Right: {
393
- if (section === StagePanelSection.Start)
394
- return "rightStart";
395
- return "rightEnd";
396
- }
397
- case StagePanelLocation.Top: {
398
- if (section === StagePanelSection.Start)
399
- return "topStart";
400
- return "topEnd";
401
- }
402
- case StagePanelLocation.Bottom: {
403
- if (section === StagePanelSection.Start)
404
- return "bottomStart";
405
- return "bottomEnd";
406
- }
407
- }
408
- }
409
- /** @internal */
410
- export function getPanelSectionWidgets(frontstageDef, location, section) {
411
- const stagePanel = frontstageDef.getStagePanelDef(location);
412
- const panelSection = stagePanel === null || stagePanel === void 0 ? void 0 : stagePanel.getPanelSectionDef(section);
413
- return (panelSection === null || panelSection === void 0 ? void 0 : panelSection.widgetDefs) || [];
414
- }
415
- /** @internal */
416
- export function addPanelWidgets(state, frontstageDef, location) {
417
- const side = toPanelSide(location);
418
- const start = getWidgetId(location, StagePanelSection.Start);
419
- const startWidgets = getPanelSectionWidgets(frontstageDef, location, StagePanelSection.Start);
420
- state = addWidgets(state, determineNewWidgets(startWidgets, state), side, start);
421
- const end = getWidgetId(location, StagePanelSection.End);
422
- const endWidgets = getPanelSectionWidgets(frontstageDef, location, StagePanelSection.End);
423
- state = addWidgets(state, determineNewWidgets(endWidgets, state), side, end);
424
- return state;
425
- }
426
- /** @internal */
427
- export function isFrontstageStateSettingResult(settingsResult) {
428
- if (settingsResult.status === UiStateStorageStatus.Success)
429
- return true;
430
- return false;
431
- }
432
- /** @internal */
433
- export function initializePanel(state, frontstageDef, location) {
434
- const panelSide = toPanelSide(location);
435
- state = addPanelWidgets(state, frontstageDef, location);
436
- const panelDef = frontstageDef.getStagePanelDef(location);
437
- state = produce(state, (draft) => {
438
- var _a, _b, _c;
439
- const panel = draft.panels[panelSide];
440
- panel.minSize = (_a = panelDef === null || panelDef === void 0 ? void 0 : panelDef.minSize) !== null && _a !== void 0 ? _a : panel.minSize;
441
- panel.pinned = (_b = panelDef === null || panelDef === void 0 ? void 0 : panelDef.pinned) !== null && _b !== void 0 ? _b : panel.pinned;
442
- panel.resizable = (_c = panelDef === null || panelDef === void 0 ? void 0 : panelDef.resizable) !== null && _c !== void 0 ? _c : panel.resizable;
443
- if (panelDef === null || panelDef === void 0 ? void 0 : panelDef.maxSizeSpec) {
444
- panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, state.size);
445
- }
446
- const size = panelDef === null || panelDef === void 0 ? void 0 : panelDef.size;
447
- panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);
448
- });
449
- return state;
450
- }
451
- function getPanelMaxSize(maxSizeSpec, panel, nineZoneSize) {
452
- if (typeof maxSizeSpec === "number") {
453
- return maxSizeSpec;
454
- }
455
- const size = isHorizontalPanelSide(panel) ? nineZoneSize.height : nineZoneSize.width;
456
- return maxSizeSpec.percentage / 100 * size;
457
- }
458
- const stateVersion = 13; // this needs to be bumped when NineZoneState is changed (to recreate the layout).
459
- /** @internal */
460
- export function initializeNineZoneState(frontstageDef) {
461
- let nineZone = defaultNineZone;
462
- nineZone = produce(nineZone, (stateDraft) => {
463
- // istanbul ignore next
464
- if (!InternalFrontstageManager.nineZoneSize)
465
- return;
466
- stateDraft.size = {
467
- height: InternalFrontstageManager.nineZoneSize.height,
468
- width: InternalFrontstageManager.nineZoneSize.width,
469
- };
470
- });
471
- nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Left);
472
- nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Right);
473
- nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Top);
474
- nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Bottom);
475
- nineZone = produce(nineZone, (stateDraft) => {
476
- var _a, _b, _c, _d;
477
- for (const [, panel] of Object.entries(stateDraft.panels)) {
478
- const expanded = panel.widgets.find((widgetId) => stateDraft.widgets[widgetId].minimized === false);
479
- const firstWidget = panel.widgets.length > 0 ? stateDraft.widgets[panel.widgets[0]] : undefined;
480
- // istanbul ignore next
481
- if (!expanded && firstWidget) {
482
- firstWidget.minimized = false;
483
- }
484
- }
485
- stateDraft.panels.left.collapsed = isPanelCollapsed((_a = frontstageDef.leftPanel) === null || _a === void 0 ? void 0 : _a.panelState);
486
- stateDraft.panels.right.collapsed = isPanelCollapsed((_b = frontstageDef.rightPanel) === null || _b === void 0 ? void 0 : _b.panelState);
487
- stateDraft.panels.top.collapsed = isPanelCollapsed((_c = frontstageDef.topPanel) === null || _c === void 0 ? void 0 : _c.panelState);
488
- stateDraft.panels.bottom.collapsed = isPanelCollapsed((_d = frontstageDef.bottomPanel) === null || _d === void 0 ? void 0 : _d.panelState);
489
- const toolSettingsWidgetDef = frontstageDef.toolSettings;
490
- if (toolSettingsWidgetDef) {
491
- const toolSettingsTab = stateDraft.tabs[toolSettingsTabId];
492
- toolSettingsTab.preferredPanelWidgetSize = toolSettingsWidgetDef.preferredPanelSize;
493
- }
494
- });
495
- nineZone = addMissingWidgets(frontstageDef, nineZone);
496
- nineZone = hideWidgets(nineZone, frontstageDef);
497
- nineZone = processPopoutWidgets(nineZone, frontstageDef);
498
- return nineZone;
499
- }
500
- /** Converts from saved NineZoneState to NineZoneState.
501
- * @note Restores toolSettings tab.
502
- * @note Restores tab labels.
503
- * @internal
504
- */
505
- export function restoreNineZoneState(frontstageDef, saved) {
506
- let restored = {
507
- ...saved,
508
- tabs: defaultNineZone.tabs,
509
- };
510
- for (const [, tab] of Object.entries(saved.tabs)) {
511
- // Re-add the placeholder tab in order to correctly remove it from the state if WidgetDef is not found.
512
- restored = addTab(restored, tab.id);
513
- const widgetDef = frontstageDef.findWidgetDef(tab.id);
514
- if (!widgetDef) {
515
- Logger.logInfo(UiFramework.loggerCategory(restoreNineZoneState), "WidgetDef is not found for saved tab.", () => ({
516
- frontstageId: frontstageDef.id,
517
- tabId: tab.id,
518
- }));
519
- restored = removeTab(restored, tab.id);
520
- continue;
521
- }
522
- restored = produce(restored, (draft) => {
523
- var _a;
524
- draft.tabs[tab.id] = {
525
- ...tab,
526
- label: getWidgetLabel(widgetDef.label),
527
- hideWithUiWhenFloating: widgetDef.hideWithUiWhenFloating,
528
- iconSpec: widgetDef.iconSpec,
529
- canPopout: widgetDef.canPopout,
530
- isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
531
- allowedPanelTargets: (_a = widgetDef.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.map((location) => toPanelSide(location)),
532
- };
533
- });
534
- }
535
- restored = produce(restored, (draft) => {
536
- // remove center panel section if one is found in left or right panels
537
- const oldLeftMiddleIndex = saved.panels.left.widgets.findIndex((value) => value === "leftMiddle");
538
- // istanbul ignore next
539
- if (-1 !== oldLeftMiddleIndex) {
540
- draft.panels.left.widgets = saved.panels.left.widgets.filter((value) => value !== "leftMiddle");
541
- if ("leftEnd" in draft.widgets) {
542
- draft.widgets.leftMiddle.tabs.forEach((tab) => draft.widgets.leftEnd.tabs.push(tab));
543
- }
544
- else {
545
- draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };
546
- delete draft.widgets.leftMiddle;
547
- }
548
- }
549
- const oldRightMiddleIndex = saved.panels.right.widgets.findIndex((value) => value === "rightMiddle");
550
- // istanbul ignore next
551
- if (-1 !== oldRightMiddleIndex) {
552
- draft.panels.right.widgets = saved.panels.right.widgets.filter((value) => value !== "rightMiddle");
553
- if ("rightEnd" in draft.widgets) {
554
- draft.widgets.rightMiddle.tabs.forEach((tab) => draft.widgets.rightEnd.tabs.push(tab));
555
- }
556
- else {
557
- draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };
558
- delete draft.widgets.rightMiddle;
559
- }
560
- }
561
- return;
562
- });
563
- if (InternalFrontstageManager.nineZoneSize && (0 !== InternalFrontstageManager.nineZoneSize.height || 0 !== InternalFrontstageManager.nineZoneSize.width)) {
564
- restored = FrameworkStateReducer(restored, {
565
- type: "RESIZE",
566
- size: {
567
- height: InternalFrontstageManager.nineZoneSize.height,
568
- width: InternalFrontstageManager.nineZoneSize.width,
569
- },
570
- }, frontstageDef);
571
- }
572
- return restored;
573
- }
574
- /** Prepares NineZoneState to be saved.
575
- * @note Removes toolSettings tab.
576
- * @note Removes tab labels and iconSpec.
577
- * @internal
578
- */
579
- export function packNineZoneState(state) {
580
- let packed = {
581
- ...state,
582
- tabs: {},
583
- };
584
- packed = produce(packed, (draft) => {
585
- for (const [, tab] of Object.entries(state.tabs)) {
586
- if (tab.id === toolSettingsTabId)
587
- continue;
588
- draft.tabs[tab.id] = {
589
- id: tab.id,
590
- preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,
591
- allowedPanelTargets: tab.allowedPanelTargets,
592
- userSized: tab.userSized,
593
- };
594
- }
595
- });
596
- return packed;
597
- }
598
- // istanbul ignore next
599
- function packSavedWidgets(frontstageDef) {
600
- let savedWidgets = [];
601
- for (const widgetDef of frontstageDef.widgetDefs) {
602
- const id = widgetDef.id;
603
- const initialWidget = {
604
- id,
605
- };
606
- const widget = produce(initialWidget, (draft) => {
607
- if (widgetDef.tabLocation) {
608
- draft.tabLocation = { ...widgetDef.tabLocation };
609
- }
610
- if (widgetDef.popoutBounds) {
611
- draft.popoutBounds = widgetDef.popoutBounds.toProps();
612
- }
613
- });
614
- if (widget === initialWidget)
615
- continue;
616
- savedWidgets.push(widget);
617
- }
618
- // Add previously saved widgets.
619
- const prevSavedWidgets = frontstageDef.savedWidgetDefs || [];
620
- for (const prevWidget of prevSavedWidgets) {
621
- if (savedWidgets.find((w) => w.id === prevWidget.id))
622
- continue;
623
- savedWidgets.push(prevWidget);
624
- }
625
- // Limit number of saved widgets.
626
- const maxWidgets = 100;
627
- if (savedWidgets.length > maxWidgets)
628
- savedWidgets = savedWidgets.slice(0, maxWidgets);
629
- return savedWidgets;
630
- }
631
- // istanbul ignore next
632
- function restoreSavedWidgets(frontstage) {
633
- const savedWidgets = frontstage.savedWidgetDefs || [];
634
- for (const savedWidget of savedWidgets) {
635
- const widgetId = savedWidget.id;
636
- const widgetDef = frontstage.findWidgetDef(widgetId);
637
- if (!widgetDef)
638
- continue;
639
- if (savedWidget.tabLocation) {
640
- widgetDef.tabLocation = { ...savedWidget.tabLocation };
641
- }
642
- if (savedWidget.popoutBounds) {
643
- widgetDef.popoutBounds = Rectangle.create(savedWidget.popoutBounds);
644
- }
645
- }
646
- }
647
- /** @internal */
648
- export function isPanelCollapsed(panelState) {
649
- return panelState !== StagePanelState.Open;
650
- }
651
- function addHiddenWidget(state, widgetDef) {
652
- const tabLocation = widgetDef.tabLocation || widgetDef.defaultTabLocation;
653
- const tabId = widgetDef.id;
654
- const { widgetId, tabIndex } = tabLocation;
655
- if (widgetId in state.widgets) {
656
- // Add to an existing widget (by widget id).
657
- return insertTabToWidget(state, tabId, widgetId, tabIndex);
658
- }
659
- else if (tabLocation.floatingWidget) {
660
- const floatingWidget = tabLocation.floatingWidget;
661
- assert(widgetId === floatingWidget.id);
662
- // Add to a new floating widget.
663
- const nzBounds = Rectangle.createFromSize(state.size);
664
- const bounds = Rectangle.create(floatingWidget.bounds).containIn(nzBounds);
665
- return addFloatingWidget(state, floatingWidget.id, [tabId], {
666
- ...floatingWidget,
667
- bounds: bounds.toProps(),
668
- });
669
- }
670
- // Add to a panel section.
671
- const panel = state.panels[tabLocation.side];
672
- // Add to existing panel section.
673
- if (panel.widgets.length >= panel.maxWidgetCount) {
674
- const sectionIndex = Math.min(panel.maxWidgetCount - 1, tabLocation.widgetIndex);
675
- const sectionId = panel.widgets[sectionIndex];
676
- return insertTabToWidget(state, tabId, sectionId, tabLocation.tabIndex);
677
- }
678
- // Create a new panel section.
679
- const newSectionId = getUniqueId();
680
- return insertPanelWidget(state, panel.side, newSectionId, [tabId], tabLocation.widgetIndex);
681
- }
682
- /** @internal */
683
- export function setWidgetState(state, widgetDef, widgetState) {
684
- var _a, _b;
685
- if (widgetState === WidgetState.Hidden) {
686
- return hideWidget(state, widgetDef);
687
- }
688
- else if (widgetState === WidgetState.Open) {
689
- const id = widgetDef.id;
690
- let location = getTabLocation(state, id);
691
- if (!location) {
692
- state = addHiddenWidget(state, widgetDef);
693
- location = getTabLocation(state, id);
694
- }
695
- return produce(state, (draft) => {
696
- var _a;
697
- assert(!!location);
698
- const widget = draft.widgets[location.widgetId];
699
- widget.minimized = false;
700
- widget.activeTabId = id;
701
- if (isFloatingTabLocation(location)) {
702
- const floatingWidget = draft.floatingWidgets.byId[location.floatingWidgetId];
703
- floatingWidget.hidden = false;
704
- // istanbul ignore else
705
- }
706
- else if (isPanelTabLocation(location)) {
707
- const panel = draft.panels[location.side];
708
- panel.collapsed = false;
709
- if (undefined === panel.size || 0 === panel.size) {
710
- // istanbul ignore next
711
- panel.size = (_a = panel.minSize) !== null && _a !== void 0 ? _a : 200;
712
- }
713
- }
714
- });
715
- }
716
- else if (widgetState === WidgetState.Closed) {
717
- const id = widgetDef.id;
718
- let location = getTabLocation(state, id);
719
- if (!location) {
720
- state = addHiddenWidget(state, widgetDef);
721
- location = getTabLocation(state, id);
722
- }
723
- // TODO: should change activeTabId of a widget with multiple tabs.
724
- return produce(state, (draft) => {
725
- assert(!!location);
726
- const widget = draft.widgets[location.widgetId];
727
- if (isFloatingTabLocation(location)) {
728
- if (id === widget.activeTabId) {
729
- widget.minimized = true;
730
- }
731
- }
732
- });
733
- }
734
- else if (widgetState === WidgetState.Floating) {
735
- const id = widgetDef.id;
736
- let location = getTabLocation(state, id);
737
- if (!location) {
738
- state = addHiddenWidget(state, widgetDef);
739
- location = getTabLocation(state, id);
740
- }
741
- assert(!!location);
742
- if (isFloatingTabLocation(location))
743
- return state;
744
- // Widget is not floating.
745
- state = removeTabFromWidget(state, id);
746
- const bounds = (_b = (_a = widgetDef.tabLocation) === null || _a === void 0 ? void 0 : _a.floatingWidget) === null || _b === void 0 ? void 0 : _b.bounds;
747
- state = addFloatingWidget(state, getUniqueId(), [id], { bounds });
748
- }
749
- return state;
750
- }
751
- /** Stores widget location and hides it in the UI. */
752
- function hideWidget(state, widgetDef) {
753
- const location = getTabLocation(state, widgetDef.id);
754
- if (!location)
755
- return state;
756
- // istanbul ignore else
757
- if (isFloatingTabLocation(location)) {
758
- const floatingWidget = state.floatingWidgets.byId[location.widgetId];
759
- widgetDef.setFloatingContainerId(location.floatingWidgetId);
760
- widgetDef.tabLocation = {
761
- side: floatingWidget.home.side,
762
- tabIndex: floatingWidget.home.widgetIndex,
763
- widgetId: floatingWidget.id,
764
- widgetIndex: floatingWidget.home.widgetIndex,
765
- floatingWidget,
766
- };
767
- }
768
- else if (!isPopoutTabLocation(location)) {
769
- const widgetId = location.widgetId;
770
- const side = isPanelTabLocation(location) ? location.side : "left";
771
- const widgetIndex = isPanelTabLocation(location) ? state.panels[side].widgets.indexOf(widgetId) : 0;
772
- const tabIndex = state.widgets[location.widgetId].tabs.indexOf(widgetDef.id);
773
- widgetDef.tabLocation = {
774
- side,
775
- tabIndex,
776
- widgetId,
777
- widgetIndex,
778
- };
779
- }
780
- return removeTabFromWidget(state, widgetDef.id);
781
- }
782
- /** @internal */
783
- export function showWidget(state, id) {
784
- const location = getTabLocation(state, id);
785
- if (!location)
786
- return state;
787
- state = produce(state, (draft) => {
788
- const widget = draft.widgets[location.widgetId];
789
- widget.activeTabId = id;
790
- widget.minimized = false;
791
- if (isPanelTabLocation(location)) {
792
- const panel = draft.panels[location.side];
793
- panel.collapsed = false;
794
- }
795
- });
796
- if (isFloatingTabLocation(location)) {
797
- state = floatingWidgetBringToFront(state, location.floatingWidgetId);
798
- }
799
- return state;
800
- }
801
- /** @internal */
802
- export function expandWidget(state, id) {
803
- const location = getTabLocation(state, id);
804
- if (!location)
805
- return state;
806
- return produce(state, (draft) => {
807
- const widget = draft.widgets[location.widgetId];
808
- if (isPanelTabLocation(location)) {
809
- const panel = draft.panels[location.side];
810
- panel.widgets.forEach((wId) => {
811
- const w = draft.widgets[wId];
812
- w.minimized = true;
813
- });
814
- }
815
- widget.minimized = false;
816
- });
817
- }
818
- /** @internal */
819
- export function setWidgetLabel(state, id, label) {
820
- if (!(id in state.tabs))
821
- return state;
822
- return produce(state, (draft) => {
823
- const tab = draft.tabs[id];
824
- tab.label = label;
825
- });
826
- }
827
- /** @internal */
828
- export function useSavedFrontstageState(frontstageDef) {
829
- const uiStateStorage = useUiStateStorageHandler();
830
- const uiStateStorageRef = React.useRef(uiStateStorage);
831
- const isMountedRef = React.useRef(false);
832
- React.useEffect(() => {
833
- isMountedRef.current = true;
834
- return () => { isMountedRef.current = false; };
835
- }, []);
836
- React.useEffect(() => {
837
- uiStateStorageRef.current = uiStateStorage;
838
- }, [uiStateStorage]);
839
- React.useEffect(() => {
840
- async function fetchFrontstageState() {
841
- if (frontstageDef.nineZoneState) {
842
- frontstageDef.nineZoneState = processPopoutWidgets(frontstageDef.nineZoneState, frontstageDef);
843
- return;
844
- }
845
- const id = frontstageDef.id;
846
- const version = frontstageDef.version;
847
- const settingResult = await uiStateStorageRef.current.getSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id));
848
- if (!isMountedRef.current)
849
- return;
850
- if (isFrontstageStateSettingResult(settingResult)) {
851
- const setting = settingResult.setting;
852
- if (setting.version >= version && setting.stateVersion >= stateVersion) {
853
- const restored = restoreNineZoneState(frontstageDef, setting.nineZone);
854
- frontstageDef.savedWidgetDefs = setting.widgets;
855
- restoreSavedWidgets(frontstageDef);
856
- let state = addMissingWidgets(frontstageDef, restored);
857
- state = hideWidgets(state, frontstageDef);
858
- state = processPopoutWidgets(state, frontstageDef);
859
- frontstageDef.nineZoneState = state;
860
- return;
861
- }
862
- }
863
- frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);
864
- }
865
- void fetchFrontstageState();
866
- }, [frontstageDef]);
867
- }
868
- /** @internal */
869
- export function useSaveFrontstageSettings(frontstageDef, store) {
870
- const uiSettingsStorage = useUiStateStorageHandler();
871
- const saveSetting = React.useMemo(() => {
872
- const debounced = debounce(async (frontstage, state) => {
873
- const id = frontstage.id;
874
- const widgets = packSavedWidgets(frontstage);
875
- frontstage.savedWidgetDefs = widgets;
876
- const setting = {
877
- id,
878
- version: frontstage.version,
879
- stateVersion,
880
- nineZone: packNineZoneState(state),
881
- widgets,
882
- };
883
- await uiSettingsStorage.saveSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id), setting);
884
- }, 1000);
885
- const save = (frontstage, state) => {
886
- if (state.draggedTab)
887
- return;
888
- debounced(frontstage, state);
889
- };
890
- save.cancel = debounced.cancel;
891
- return save;
892
- }, [uiSettingsStorage]);
893
- React.useEffect(() => {
894
- return () => {
895
- saveSetting.cancel();
896
- };
897
- }, [saveSetting]);
898
- React.useEffect(() => {
899
- saveSetting(frontstageDef, store.getState());
900
- }, [saveSetting, frontstageDef, store]);
901
- React.useEffect(() => {
902
- return store.subscribe(() => {
903
- saveSetting(frontstageDef, store.getState());
904
- });
905
- }, [saveSetting, frontstageDef, store]);
906
- }
907
- /** @internal */
908
- export const FRONTSTAGE_SETTINGS_NAMESPACE = "uifw-frontstageSettings";
909
- /** @internal */
910
- export function getFrontstageStateSettingName(frontstageId) {
911
- return `frontstageState[${frontstageId}]`;
912
- }
913
- // istanbul ignore next
914
- function debounce(func, duration) {
915
- let timeout;
916
- const debounced = (...args) => {
917
- const handler = () => {
918
- timeout = undefined;
919
- return func(...args);
920
- };
921
- window.clearTimeout(timeout);
922
- timeout = window.setTimeout(handler, duration);
923
- };
924
- debounced.cancel = () => {
925
- window.clearTimeout(timeout);
926
- };
927
- return debounced;
928
- }
929
- const createListener = (frontstageDef, listener) => {
930
- return (...args) => {
931
- if (!frontstageDef.nineZoneState)
932
- return;
933
- listener(...args);
934
- };
935
- };
936
- /** @internal */
937
- export function useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel) {
938
- React.useEffect(() => {
939
- const listener = createListener(frontstageDef, ({ widgetDef, widgetState }) => {
940
- assert(!!frontstageDef.nineZoneState);
941
- frontstageDef.nineZoneState = setWidgetState(frontstageDef.nineZoneState, widgetDef, widgetState);
942
- });
943
- UiFramework.frontstages.onWidgetStateChangedEvent.addListener(listener);
944
- return () => {
945
- UiFramework.frontstages.onWidgetStateChangedEvent.removeListener(listener);
946
- };
947
- }, [frontstageDef]);
948
- React.useEffect(() => {
949
- const listener = createListener(frontstageDef, ({ widgetDef }) => {
950
- assert(!!frontstageDef.nineZoneState);
951
- frontstageDef.nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);
952
- });
953
- InternalFrontstageManager.onWidgetShowEvent.addListener(listener);
954
- return () => {
955
- InternalFrontstageManager.onWidgetShowEvent.removeListener(listener);
956
- };
957
- }, [frontstageDef]);
958
- React.useEffect(() => {
959
- const listener = createListener(frontstageDef, ({ widgetDef }) => {
960
- assert(!!frontstageDef.nineZoneState);
961
- let nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);
962
- nineZoneState = expandWidget(nineZoneState, widgetDef.id);
963
- frontstageDef.nineZoneState = nineZoneState;
964
- });
965
- InternalFrontstageManager.onWidgetExpandEvent.addListener(listener);
966
- return () => {
967
- InternalFrontstageManager.onWidgetExpandEvent.removeListener(listener);
968
- };
969
- }, [frontstageDef]);
970
- const uiSettingsStorage = useUiStateStorageHandler();
971
- React.useEffect(() => {
972
- const listener = (args) => {
973
- // TODO: track restoring frontstages to support workflows: i.e. prevent loading frontstage OR saving layout when delete is pending
974
- void uiSettingsStorage.deleteSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(args.frontstageDef.id));
975
- if (frontstageDef.id === args.frontstageDef.id) {
976
- args.frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);
977
- }
978
- else {
979
- args.frontstageDef.nineZoneState = undefined;
980
- }
981
- };
982
- InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(listener);
983
- return () => {
984
- InternalFrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(listener);
985
- };
986
- }, [uiSettingsStorage, frontstageDef]);
987
- React.useEffect(() => {
988
- const listener = createListener(frontstageDef, ({ widgetDef }) => {
989
- assert(!!frontstageDef.nineZoneState);
990
- const label = widgetDef.label;
991
- frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, widgetDef.id, label);
992
- });
993
- InternalFrontstageManager.onWidgetLabelChangedEvent.addListener(listener);
994
- return () => {
995
- InternalFrontstageManager.onWidgetLabelChangedEvent.removeListener(listener);
996
- };
997
- }, [frontstageDef]);
998
- const defaultLabel = React.useMemo(() => UiFramework.translate("widget.labels.toolSettings"), []);
999
- React.useEffect(() => {
1000
- const updateLabel = createListener(frontstageDef, () => {
1001
- var _a;
1002
- const toolId = UiFramework.frontstages.activeToolId;
1003
- assert(!!frontstageDef.nineZoneState);
1004
- const label = useToolAsToolSettingsLabel ?
1005
- ((_a = IModelApp.tools.find(toolId)) === null || _a === void 0 ? void 0 : _a.flyover) || defaultLabel : defaultLabel;
1006
- frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, toolSettingsTabId, label);
1007
- });
1008
- // Whenever the frontstageDef or the useTool... changes, keep the label up to date.
1009
- updateLabel();
1010
- // If useTool... is true, listen for events to keep up the label up to date.
1011
- if (useToolAsToolSettingsLabel) {
1012
- UiFramework.frontstages.onFrontstageReadyEvent.addListener(updateLabel);
1013
- InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(updateLabel);
1014
- UiFramework.frontstages.onToolActivatedEvent.addListener(updateLabel);
1015
- UiFramework.frontstages.onToolSettingsReloadEvent.addListener(updateLabel);
1016
- }
1017
- return () => {
1018
- if (useToolAsToolSettingsLabel) {
1019
- UiFramework.frontstages.onFrontstageReadyEvent.removeListener(updateLabel);
1020
- InternalFrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(updateLabel);
1021
- UiFramework.frontstages.onToolActivatedEvent.removeListener(updateLabel);
1022
- UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(updateLabel);
1023
- }
1024
- };
1025
- }, [frontstageDef, useToolAsToolSettingsLabel, defaultLabel]);
1026
- }
1027
- /** @internal */
1028
- // istanbul ignore next
1029
- export function useItemsManager(frontstageDef) {
1030
- const refreshNineZoneState = (def) => {
1031
- // Fired for both registered/unregistered. Update definitions and remove/add missing widgets.
1032
- def.updateWidgetDefs();
1033
- restoreSavedWidgets(def);
1034
- let state = def.nineZoneState;
1035
- if (!state)
1036
- return;
1037
- state = addMissingWidgets(def, state);
1038
- state = removeMissingWidgets(def, state);
1039
- state = hideWidgets(state, def); // TODO: should only apply to widgets provided by registered provider in onUiProviderRegisteredEvent.
1040
- def.nineZoneState = state;
1041
- };
1042
- React.useEffect(() => {
1043
- const remove = UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {
1044
- refreshNineZoneState(frontstageDef);
1045
- });
1046
- // Need to refresh anytime frontstageDef changes because uiItemsProvider may have added something to
1047
- // another stage before it was possibly unloaded in this stage.
1048
- refreshNineZoneState(frontstageDef);
1049
- return remove;
1050
- }, [frontstageDef]);
1051
- }
1052
- // istanbul ignore next
1053
- function determineNewWidgets(defs, state) {
1054
- defs = defs || [];
1055
- const uniqueDefs = defs.filter((def, index, array) => {
1056
- return index === array.findIndex((def1) => def.id === def1.id);
1057
- });
1058
- return uniqueDefs.filter((def) => !(def.id in state.tabs));
1059
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Frontstage
7
+ */
8
+ // cSpell:ignore popout
9
+ import "./Frontstage.scss";
10
+ import produce from "immer";
11
+ import * as React from "react";
12
+ import { unstable_batchedUpdates } from "react-dom";
13
+ import { assert, Logger, ProcessDetector } from "@itwin/core-bentley";
14
+ import { Rectangle, Size, UiStateStorageStatus } from "@itwin/core-react";
15
+ import { ToolbarPopupAutoHideContext } from "@itwin/components-react";
16
+ import { addFloatingWidget, addPanelWidget, addTab, addTabToWidget, convertAllPopupWidgetContainersToFloating, createLayoutStore, createNineZoneState, floatingWidgetBringToFront, FloatingWidgets, getTabLocation, getUniqueId, getWidgetPanelSectionId, insertPanelWidget, insertTabToWidget, isFloatingTabLocation, isHorizontalPanelSide, isPanelTabLocation, isPopoutTabLocation, NineZone, NineZoneStateReducer, panelSides, removeTab, removeTabFromWidget, toolSettingsTabId, WidgetPanels, } from "@itwin/appui-layout-react";
17
+ import { StagePanelState, toPanelSide } from "../stagepanels/StagePanelDef";
18
+ import { UiFramework } from "../UiFramework";
19
+ import { useUiStateStorageHandler } from "../uistate/useUiStateStorage";
20
+ import { WidgetContent } from "./Content";
21
+ import { WidgetPanelsFrontstageContent } from "./FrontstageContent";
22
+ import { ModalFrontstageComposer, useActiveModalFrontstageInfo } from "./ModalFrontstageComposer";
23
+ import { WidgetPanelsStatusBar } from "./StatusBar";
24
+ import { WidgetPanelsTab } from "./Tab";
25
+ import { WidgetPanelsToolbars } from "./Toolbars";
26
+ import { ToolSettingsContent, WidgetPanelsToolSettings } from "./ToolSettings";
27
+ import { useEscapeSetFocusToHome } from "../hooks/useEscapeSetFocusToHome";
28
+ import { useSelector } from "react-redux";
29
+ import { useUiVisibility } from "../hooks/useUiVisibility";
30
+ import { IModelApp } from "@itwin/core-frontend";
31
+ import { FloatingWidget } from "./FloatingWidget";
32
+ import { InternalFrontstageManager } from "../frontstage/InternalFrontstageManager";
33
+ import { WidgetState } from "../widgets/WidgetState";
34
+ import { StagePanelSection } from "../stagepanels/StagePanelSection";
35
+ import { StagePanelLocation } from "../stagepanels/StagePanelLocation";
36
+ import { UiItemsManager } from "../ui-items-provider/UiItemsManager";
37
+ function WidgetPanelsFrontstageComponent() {
38
+ const activeModalFrontstageInfo = useActiveModalFrontstageInfo();
39
+ const uiIsVisible = useUiVisibility();
40
+ return (React.createElement(React.Fragment, null,
41
+ React.createElement(WidgetPanelsToolSettings, null),
42
+ React.createElement(ToolbarPopupAutoHideContext.Provider, { value: !uiIsVisible },
43
+ React.createElement(ModalFrontstageComposer, { stageInfo: activeModalFrontstageInfo }),
44
+ React.createElement(WidgetPanels, { className: "uifw-widgetPanels", centerContent: React.createElement(WidgetPanelsToolbars, null) },
45
+ React.createElement(WidgetPanelsFrontstageContent, null)),
46
+ React.createElement(WidgetPanelsStatusBar, null),
47
+ React.createElement(FloatingWidgets, null))));
48
+ }
49
+ const widgetContent = React.createElement(WidgetContent, null);
50
+ const toolSettingsContent = React.createElement(ToolSettingsContent, null);
51
+ const widgetPanelsFrontstage = React.createElement(WidgetPanelsFrontstageComponent, null);
52
+ /** @internal */
53
+ export function useLayoutStore() {
54
+ const [def, setDef] = React.useState(UiFramework.frontstages.activeFrontstageDef);
55
+ const [layout, setLayout] = React.useState(() => createLayoutStore(def?.nineZoneState));
56
+ React.useEffect(() => {
57
+ return UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {
58
+ unstable_batchedUpdates(() => {
59
+ setDef(args.activatedFrontstageDef);
60
+ setLayout(createLayoutStore(args.activatedFrontstageDef.nineZoneState));
61
+ });
62
+ });
63
+ }, []);
64
+ React.useEffect(() => {
65
+ return InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.addListener((args) => {
66
+ if (args.frontstageDef !== def || def.isStageClosing || def.isApplicationClosing)
67
+ return;
68
+ unstable_batchedUpdates(() => {
69
+ layout.setState(args.state || defaultNineZone);
70
+ });
71
+ });
72
+ }, [def, layout]);
73
+ return [layout, def];
74
+ }
75
+ /** Update in-memory NineZoneState of newly activated frontstage with up to date size.
76
+ * @internal
77
+ */
78
+ export function useUpdateNineZoneSize(frontstageDef) {
79
+ React.useEffect(() => {
80
+ const size = InternalFrontstageManager.nineZoneSize;
81
+ let state = frontstageDef.nineZoneState;
82
+ if (!size || !state)
83
+ return;
84
+ state = FrameworkStateReducer(state, {
85
+ type: "RESIZE",
86
+ size: {
87
+ height: size.height,
88
+ width: size.width,
89
+ },
90
+ }, frontstageDef);
91
+ frontstageDef.nineZoneState = state;
92
+ }, [frontstageDef]);
93
+ }
94
+ /** @internal */
95
+ export function FrameworkStateReducer(state, action, frontstageDef) {
96
+ state = NineZoneStateReducer(state, action);
97
+ if (action.type === "RESIZE") {
98
+ state = produce(state, (draft) => {
99
+ for (const panelSide of panelSides) {
100
+ const panel = draft.panels[panelSide];
101
+ const location = toStagePanelLocation(panelSide);
102
+ const panelDef = frontstageDef.getStagePanelDef(location);
103
+ if (panelDef?.maxSizeSpec) {
104
+ panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, action.size);
105
+ if (panel.size) {
106
+ panel.size = Math.min(Math.max(panel.size, panel.minSize), panel.maxSize);
107
+ }
108
+ }
109
+ }
110
+ });
111
+ }
112
+ return state;
113
+ }
114
+ /** @internal */
115
+ export function useNineZoneDispatch(frontstageDef) {
116
+ const dispatch = React.useCallback((action) => {
117
+ if (action.type === "RESIZE") {
118
+ InternalFrontstageManager.nineZoneSize = Size.create(action.size);
119
+ }
120
+ // istanbul ignore if
121
+ if (action.type === "TOOL_SETTINGS_DRAG_START") {
122
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
123
+ UiFramework.postTelemetry("Tool Settings Undocking", "28B04E07-AE73-4533-A0BA-8E2A8DC99ADF");
124
+ }
125
+ // istanbul ignore if
126
+ if (action.type === "TOOL_SETTINGS_DOCK") {
127
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
128
+ UiFramework.postTelemetry("Tool Settings Docking to Settings Bar", "BEDE684B-B3DB-4637-B3AF-DC3CBA223F94");
129
+ }
130
+ if (action.type === "WIDGET_TAB_POPOUT") {
131
+ const tabId = action.id;
132
+ frontstageDef.popoutWidget(tabId);
133
+ return;
134
+ }
135
+ const state = frontstageDef.nineZoneState;
136
+ if (!state)
137
+ return;
138
+ frontstageDef.nineZoneState = FrameworkStateReducer(state, action, frontstageDef);
139
+ }, [frontstageDef]);
140
+ return dispatch;
141
+ }
142
+ /** @internal */
143
+ export function WidgetPanelsFrontstage() {
144
+ const [layout, frontstageDef] = useLayoutStore();
145
+ React.useEffect(() => {
146
+ const triggerWidowCloseProcessing = () => {
147
+ frontstageDef && frontstageDef.setIsApplicationClosing(true);
148
+ };
149
+ frontstageDef && frontstageDef.setIsApplicationClosing(false);
150
+ window.addEventListener("unload", triggerWidowCloseProcessing);
151
+ return () => {
152
+ window.removeEventListener("unload", triggerWidowCloseProcessing);
153
+ };
154
+ }, [frontstageDef]);
155
+ if (!frontstageDef)
156
+ return null;
157
+ return (React.createElement(ActiveFrontstageDefProvider, { frontstageDef: frontstageDef, layout: layout }));
158
+ }
159
+ const defaultNineZone = createNineZoneState();
160
+ const tabElement = React.createElement(WidgetPanelsTab, null);
161
+ const floatingWidgetElement = React.createElement(FloatingWidget, null);
162
+ /** @internal */
163
+ export function ActiveFrontstageDefProvider({ frontstageDef, layout }) {
164
+ const dispatch = useNineZoneDispatch(frontstageDef);
165
+ useUpdateNineZoneSize(frontstageDef);
166
+ useSavedFrontstageState(frontstageDef);
167
+ useSaveFrontstageSettings(frontstageDef, layout);
168
+ useItemsManager(frontstageDef);
169
+ const labels = useLabels();
170
+ const uiIsVisible = useUiVisibility();
171
+ const showWidgetIcon = useSelector((state) => {
172
+ const frameworkState = state[UiFramework.frameworkStateKey];
173
+ return !!frameworkState.configurableUiState.showWidgetIcon;
174
+ });
175
+ const autoCollapseUnpinnedPanels = useSelector((state) => {
176
+ const frameworkState = state[UiFramework.frameworkStateKey];
177
+ return !!frameworkState.configurableUiState.autoCollapseUnpinnedPanels;
178
+ });
179
+ const animateToolSettings = useSelector((state) => {
180
+ const frameworkState = state[UiFramework.frameworkStateKey];
181
+ return !!frameworkState.configurableUiState.animateToolSettings;
182
+ });
183
+ const useToolAsToolSettingsLabel = useSelector((state) => {
184
+ const frameworkState = state[UiFramework.frameworkStateKey];
185
+ return !!frameworkState.configurableUiState.useToolAsToolSettingsLabel;
186
+ });
187
+ useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel);
188
+ const handleKeyDown = useEscapeSetFocusToHome();
189
+ return (React.createElement("div", { className: "uifw-widgetPanels-frontstage", onKeyDown: handleKeyDown, role: "presentation" },
190
+ React.createElement(NineZone, { dispatch: dispatch, labels: labels, layout: layout, tab: tabElement, floatingWidget: floatingWidgetElement, showWidgetIcon: showWidgetIcon, autoCollapseUnpinnedPanels: autoCollapseUnpinnedPanels, toolSettingsContent: toolSettingsContent, widgetContent: widgetContent, animateDockedToolSettings: animateToolSettings, uiIsVisible: uiIsVisible }, widgetPanelsFrontstage)));
191
+ }
192
+ /** @internal */
193
+ export function useLabels() {
194
+ return React.useMemo(() => ({
195
+ dockToolSettingsTitle: UiFramework.translate("widget.tooltips.dockToolSettings"),
196
+ moreWidgetsTitle: UiFramework.translate("widget.tooltips.moreWidgets"),
197
+ moreToolSettingsTitle: UiFramework.translate("widget.tooltips.moreToolSettings"),
198
+ pinPanelTitle: UiFramework.translate("widget.tooltips.pinPanel"),
199
+ resizeGripTitle: UiFramework.translate("widget.tooltips.resizeGrip"),
200
+ sendWidgetHomeTitle: UiFramework.translate("widget.tooltips.sendHome"),
201
+ toolSettingsHandleTitle: UiFramework.translate("widget.tooltips.toolSettingsHandle"),
202
+ unpinPanelTitle: UiFramework.translate("widget.tooltips.unpinPanel"),
203
+ popoutActiveTab: UiFramework.translate("widget.tooltips.popoutActiveTab"),
204
+ }), []);
205
+ }
206
+ /** @internal */
207
+ export function addWidgets(state, widgets, side, widgetId) {
208
+ const visibleWidgets = widgets.filter((w) => w.isVisible && (w.defaultState !== WidgetState.Floating));
209
+ if (visibleWidgets.length === 0)
210
+ return state;
211
+ const tabs = new Array();
212
+ for (const widget of visibleWidgets) {
213
+ const label = getWidgetLabel(widget.label);
214
+ state = addTab(state, widget.id, {
215
+ label,
216
+ iconSpec: widget.iconSpec,
217
+ preferredPanelWidgetSize: widget.preferredPanelSize,
218
+ preferredFloatingWidgetSize: widget.defaultFloatingSize,
219
+ canPopout: widget.canPopout,
220
+ isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
221
+ hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,
222
+ allowedPanelTargets: widget.allowedPanelTargets?.map((location) => toPanelSide(location)),
223
+ });
224
+ tabs.push(widget.id);
225
+ }
226
+ const activeWidget = visibleWidgets.find((widget) => widget.isActive);
227
+ const minimized = false;
228
+ // istanbul ignore else
229
+ if (activeWidget?.defaultState !== WidgetState.Floating) {
230
+ state = addPanelWidget(state, side, widgetId, tabs, {
231
+ activeTabId: activeWidget ? activeWidget.id : tabs[0],
232
+ minimized,
233
+ });
234
+ }
235
+ return state;
236
+ }
237
+ /** @internal */
238
+ // istanbul ignore next
239
+ export function appendWidgets(state, widgetDefs, location, section) {
240
+ if (widgetDefs.length === 0)
241
+ return state;
242
+ const side = toPanelSide(location);
243
+ // Add missing widget tabs.
244
+ for (const widgetDef of widgetDefs) {
245
+ const label = getWidgetLabel(widgetDef.label);
246
+ const saveTab = state.tabs[widgetDef.id];
247
+ const preferredPanelWidgetSize = saveTab ? saveTab.preferredPanelWidgetSize : widgetDef.preferredPanelSize;
248
+ const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : widgetDef.defaultFloatingSize;
249
+ // if a defaultFloatingSize is specified then this mean the widget can't determine its intrinsic size and must be explicitly sized
250
+ const userSized = saveTab ? (saveTab.userSized || !!widgetDef.defaultFloatingSize && !!saveTab.preferredFloatingWidgetSize)
251
+ : !!widgetDef.defaultFloatingSize;
252
+ state = addTab(state, widgetDef.id, {
253
+ label,
254
+ iconSpec: widgetDef.iconSpec,
255
+ canPopout: widgetDef.canPopout,
256
+ preferredPanelWidgetSize,
257
+ preferredFloatingWidgetSize,
258
+ userSized,
259
+ isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
260
+ hideWithUiWhenFloating: !!widgetDef.hideWithUiWhenFloating,
261
+ allowedPanelTargets: widgetDef.allowedPanelTargets?.map((l) => toPanelSide(l)),
262
+ });
263
+ if (widgetDef.isFloatingStateSupported && widgetDef.defaultState === WidgetState.Floating) {
264
+ const floatingContainerId = widgetDef.floatingContainerId ?? getUniqueId();
265
+ const widgetContainerId = getWidgetId(location, section);
266
+ const home = { side, widgetId: widgetContainerId, widgetIndex: 0 };
267
+ const preferredPosition = widgetDef.defaultFloatingPosition;
268
+ if (floatingContainerId in state.widgets) {
269
+ state = addTabToWidget(state, widgetDef.id, floatingContainerId);
270
+ }
271
+ else {
272
+ const tab = state.tabs[widgetDef.id];
273
+ const size = { height: 200, width: 300, ...tab.preferredFloatingWidgetSize };
274
+ const preferredPoint = preferredPosition ?? { x: (state.size.width - size.width) / 2, y: (state.size.height - size.height) / 2 };
275
+ const nzBounds = Rectangle.createFromSize(state.size);
276
+ const bounds = Rectangle.createFromSize(size).offset(preferredPoint);
277
+ const containedBounds = bounds.containIn(nzBounds);
278
+ state = addFloatingWidget(state, floatingContainerId, [widgetDef.id], {
279
+ bounds: containedBounds.toProps(),
280
+ home,
281
+ userSized,
282
+ }, {
283
+ isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
284
+ });
285
+ }
286
+ }
287
+ else {
288
+ const preferredWidgetIndex = section;
289
+ const widgetPanelSectionId = getWidgetPanelSectionId(side, preferredWidgetIndex);
290
+ if (widgetPanelSectionId in state.widgets) {
291
+ state = addTabToWidget(state, widgetDef.id, widgetPanelSectionId);
292
+ }
293
+ else {
294
+ const panel = state.panels[side];
295
+ if (panel.widgets.length < panel.maxWidgetCount) {
296
+ state = addPanelWidget(state, side, widgetPanelSectionId, [widgetDef.id]);
297
+ }
298
+ else {
299
+ const widgetIndex = Math.min(preferredWidgetIndex, panel.widgets.length - 1);
300
+ const widgetId = panel.widgets[widgetIndex];
301
+ state = addTabToWidget(state, widgetDef.id, widgetId);
302
+ }
303
+ }
304
+ }
305
+ }
306
+ return state;
307
+ }
308
+ function processPopoutWidgets(initialState, frontstageDef) {
309
+ // istanbul ignore next
310
+ if (!initialState.popoutWidgets)
311
+ return initialState;
312
+ // istanbul ignore next - not unit testing electron case that reopens popout windows
313
+ if (initialState.popoutWidgets && ProcessDetector.isElectronAppFrontend) {
314
+ if (initialState.popoutWidgets.allIds.length && ProcessDetector.isElectronAppFrontend) {
315
+ for (const widgetContainerId of initialState.popoutWidgets.allIds) {
316
+ frontstageDef.openPopoutWidgetContainer(initialState, widgetContainerId);
317
+ }
318
+ }
319
+ return initialState;
320
+ }
321
+ return convertAllPopupWidgetContainersToFloating(initialState);
322
+ }
323
+ /** Adds frontstageDef widgets that are missing in NineZoneState.
324
+ * @internal
325
+ */
326
+ export function addMissingWidgets(frontstageDef, initialState) {
327
+ let state = initialState;
328
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Left, StagePanelSection.Start);
329
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Left, StagePanelSection.End);
330
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Right, StagePanelSection.Start);
331
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Right, StagePanelSection.End);
332
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Top, StagePanelSection.Start);
333
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Top, StagePanelSection.End);
334
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.getPanelSectionDef(StagePanelSection.Start).widgetDefs, state), StagePanelLocation.Bottom, StagePanelSection.Start);
335
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.getPanelSectionDef(StagePanelSection.End).widgetDefs, state), StagePanelLocation.Bottom, StagePanelSection.End);
336
+ return state;
337
+ }
338
+ /** Hide widgets with Hidden defaultState. */
339
+ function hideWidgets(state, frontstageDef) {
340
+ const tabs = Object.values(state.tabs);
341
+ for (const tab of tabs) {
342
+ const widgetDef = frontstageDef.findWidgetDef(tab.id);
343
+ if (!widgetDef)
344
+ continue;
345
+ if (widgetDef.defaultState === WidgetState.Hidden) {
346
+ state = hideWidget(state, widgetDef);
347
+ }
348
+ }
349
+ return state;
350
+ }
351
+ /** Removes NineZoneState widgets that are missing in frontstageDef.
352
+ * @internal
353
+ */
354
+ export function removeMissingWidgets(frontstageDef, initialState) {
355
+ let state = initialState;
356
+ for (const [, tab] of Object.entries(state.tabs)) {
357
+ if (tab.id === toolSettingsTabId)
358
+ continue;
359
+ const widgetDef = frontstageDef.findWidgetDef(tab.id);
360
+ if (widgetDef)
361
+ continue;
362
+ state = removeTab(state, tab.id);
363
+ }
364
+ return state;
365
+ }
366
+ function getWidgetLabel(label) {
367
+ return label === "" ? "Widget" : label;
368
+ }
369
+ function toStagePanelLocation(side) {
370
+ switch (side) {
371
+ case "bottom":
372
+ return StagePanelLocation.Bottom;
373
+ case "left":
374
+ return StagePanelLocation.Left;
375
+ case "right":
376
+ return StagePanelLocation.Right;
377
+ case "top":
378
+ return StagePanelLocation.Top;
379
+ }
380
+ }
381
+ /** @internal */
382
+ export function getWidgetId(location, section) {
383
+ switch (location) {
384
+ case StagePanelLocation.Left: {
385
+ if (section === StagePanelSection.Start)
386
+ return "leftStart";
387
+ return "leftEnd";
388
+ }
389
+ case StagePanelLocation.Right: {
390
+ if (section === StagePanelSection.Start)
391
+ return "rightStart";
392
+ return "rightEnd";
393
+ }
394
+ case StagePanelLocation.Top: {
395
+ if (section === StagePanelSection.Start)
396
+ return "topStart";
397
+ return "topEnd";
398
+ }
399
+ case StagePanelLocation.Bottom: {
400
+ if (section === StagePanelSection.Start)
401
+ return "bottomStart";
402
+ return "bottomEnd";
403
+ }
404
+ }
405
+ }
406
+ /** @internal */
407
+ export function getPanelSectionWidgets(frontstageDef, location, section) {
408
+ const stagePanel = frontstageDef.getStagePanelDef(location);
409
+ const panelSection = stagePanel?.getPanelSectionDef(section);
410
+ return panelSection?.widgetDefs || [];
411
+ }
412
+ /** @internal */
413
+ export function addPanelWidgets(state, frontstageDef, location) {
414
+ const side = toPanelSide(location);
415
+ const start = getWidgetId(location, StagePanelSection.Start);
416
+ const startWidgets = getPanelSectionWidgets(frontstageDef, location, StagePanelSection.Start);
417
+ state = addWidgets(state, determineNewWidgets(startWidgets, state), side, start);
418
+ const end = getWidgetId(location, StagePanelSection.End);
419
+ const endWidgets = getPanelSectionWidgets(frontstageDef, location, StagePanelSection.End);
420
+ state = addWidgets(state, determineNewWidgets(endWidgets, state), side, end);
421
+ return state;
422
+ }
423
+ /** @internal */
424
+ export function isFrontstageStateSettingResult(settingsResult) {
425
+ if (settingsResult.status === UiStateStorageStatus.Success)
426
+ return true;
427
+ return false;
428
+ }
429
+ /** @internal */
430
+ export function initializePanel(state, frontstageDef, location) {
431
+ const panelSide = toPanelSide(location);
432
+ state = addPanelWidgets(state, frontstageDef, location);
433
+ const panelDef = frontstageDef.getStagePanelDef(location);
434
+ state = produce(state, (draft) => {
435
+ const panel = draft.panels[panelSide];
436
+ panel.minSize = panelDef?.minSize ?? panel.minSize;
437
+ panel.pinned = panelDef?.pinned ?? panel.pinned;
438
+ panel.resizable = panelDef?.resizable ?? panel.resizable;
439
+ if (panelDef?.maxSizeSpec) {
440
+ panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, state.size);
441
+ }
442
+ const size = panelDef?.size;
443
+ panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);
444
+ });
445
+ return state;
446
+ }
447
+ function getPanelMaxSize(maxSizeSpec, panel, nineZoneSize) {
448
+ if (typeof maxSizeSpec === "number") {
449
+ return maxSizeSpec;
450
+ }
451
+ const size = isHorizontalPanelSide(panel) ? nineZoneSize.height : nineZoneSize.width;
452
+ return maxSizeSpec.percentage / 100 * size;
453
+ }
454
+ const stateVersion = 13; // this needs to be bumped when NineZoneState is changed (to recreate the layout).
455
+ /** @internal */
456
+ export function initializeNineZoneState(frontstageDef) {
457
+ let nineZone = defaultNineZone;
458
+ nineZone = produce(nineZone, (stateDraft) => {
459
+ // istanbul ignore next
460
+ if (!InternalFrontstageManager.nineZoneSize)
461
+ return;
462
+ stateDraft.size = {
463
+ height: InternalFrontstageManager.nineZoneSize.height,
464
+ width: InternalFrontstageManager.nineZoneSize.width,
465
+ };
466
+ });
467
+ nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Left);
468
+ nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Right);
469
+ nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Top);
470
+ nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation.Bottom);
471
+ nineZone = produce(nineZone, (stateDraft) => {
472
+ for (const [, panel] of Object.entries(stateDraft.panels)) {
473
+ const expanded = panel.widgets.find((widgetId) => stateDraft.widgets[widgetId].minimized === false);
474
+ const firstWidget = panel.widgets.length > 0 ? stateDraft.widgets[panel.widgets[0]] : undefined;
475
+ // istanbul ignore next
476
+ if (!expanded && firstWidget) {
477
+ firstWidget.minimized = false;
478
+ }
479
+ }
480
+ stateDraft.panels.left.collapsed = isPanelCollapsed(frontstageDef.leftPanel?.panelState);
481
+ stateDraft.panels.right.collapsed = isPanelCollapsed(frontstageDef.rightPanel?.panelState);
482
+ stateDraft.panels.top.collapsed = isPanelCollapsed(frontstageDef.topPanel?.panelState);
483
+ stateDraft.panels.bottom.collapsed = isPanelCollapsed(frontstageDef.bottomPanel?.panelState);
484
+ const toolSettingsWidgetDef = frontstageDef.toolSettings;
485
+ if (toolSettingsWidgetDef) {
486
+ const toolSettingsTab = stateDraft.tabs[toolSettingsTabId];
487
+ toolSettingsTab.preferredPanelWidgetSize = toolSettingsWidgetDef.preferredPanelSize;
488
+ }
489
+ });
490
+ nineZone = addMissingWidgets(frontstageDef, nineZone);
491
+ nineZone = hideWidgets(nineZone, frontstageDef);
492
+ nineZone = processPopoutWidgets(nineZone, frontstageDef);
493
+ return nineZone;
494
+ }
495
+ /** Converts from saved NineZoneState to NineZoneState.
496
+ * @note Restores toolSettings tab.
497
+ * @note Restores tab labels.
498
+ * @internal
499
+ */
500
+ export function restoreNineZoneState(frontstageDef, saved) {
501
+ let restored = {
502
+ ...saved,
503
+ tabs: defaultNineZone.tabs,
504
+ };
505
+ for (const [, tab] of Object.entries(saved.tabs)) {
506
+ // Re-add the placeholder tab in order to correctly remove it from the state if WidgetDef is not found.
507
+ restored = addTab(restored, tab.id);
508
+ const widgetDef = frontstageDef.findWidgetDef(tab.id);
509
+ if (!widgetDef) {
510
+ Logger.logInfo(UiFramework.loggerCategory(restoreNineZoneState), "WidgetDef is not found for saved tab.", () => ({
511
+ frontstageId: frontstageDef.id,
512
+ tabId: tab.id,
513
+ }));
514
+ restored = removeTab(restored, tab.id);
515
+ continue;
516
+ }
517
+ restored = produce(restored, (draft) => {
518
+ draft.tabs[tab.id] = {
519
+ ...tab,
520
+ label: getWidgetLabel(widgetDef.label),
521
+ hideWithUiWhenFloating: widgetDef.hideWithUiWhenFloating,
522
+ iconSpec: widgetDef.iconSpec,
523
+ canPopout: widgetDef.canPopout,
524
+ isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
525
+ allowedPanelTargets: widgetDef.allowedPanelTargets?.map((location) => toPanelSide(location)),
526
+ };
527
+ });
528
+ }
529
+ restored = produce(restored, (draft) => {
530
+ // remove center panel section if one is found in left or right panels
531
+ const oldLeftMiddleIndex = saved.panels.left.widgets.findIndex((value) => value === "leftMiddle");
532
+ // istanbul ignore next
533
+ if (-1 !== oldLeftMiddleIndex) {
534
+ draft.panels.left.widgets = saved.panels.left.widgets.filter((value) => value !== "leftMiddle");
535
+ if ("leftEnd" in draft.widgets) {
536
+ draft.widgets.leftMiddle.tabs.forEach((tab) => draft.widgets.leftEnd.tabs.push(tab));
537
+ }
538
+ else {
539
+ draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };
540
+ delete draft.widgets.leftMiddle;
541
+ }
542
+ }
543
+ const oldRightMiddleIndex = saved.panels.right.widgets.findIndex((value) => value === "rightMiddle");
544
+ // istanbul ignore next
545
+ if (-1 !== oldRightMiddleIndex) {
546
+ draft.panels.right.widgets = saved.panels.right.widgets.filter((value) => value !== "rightMiddle");
547
+ if ("rightEnd" in draft.widgets) {
548
+ draft.widgets.rightMiddle.tabs.forEach((tab) => draft.widgets.rightEnd.tabs.push(tab));
549
+ }
550
+ else {
551
+ draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };
552
+ delete draft.widgets.rightMiddle;
553
+ }
554
+ }
555
+ return;
556
+ });
557
+ if (InternalFrontstageManager.nineZoneSize && (0 !== InternalFrontstageManager.nineZoneSize.height || 0 !== InternalFrontstageManager.nineZoneSize.width)) {
558
+ restored = FrameworkStateReducer(restored, {
559
+ type: "RESIZE",
560
+ size: {
561
+ height: InternalFrontstageManager.nineZoneSize.height,
562
+ width: InternalFrontstageManager.nineZoneSize.width,
563
+ },
564
+ }, frontstageDef);
565
+ }
566
+ return restored;
567
+ }
568
+ /** Prepares NineZoneState to be saved.
569
+ * @note Removes toolSettings tab.
570
+ * @note Removes tab labels and iconSpec.
571
+ * @internal
572
+ */
573
+ export function packNineZoneState(state) {
574
+ let packed = {
575
+ ...state,
576
+ tabs: {},
577
+ };
578
+ packed = produce(packed, (draft) => {
579
+ for (const [, tab] of Object.entries(state.tabs)) {
580
+ if (tab.id === toolSettingsTabId)
581
+ continue;
582
+ draft.tabs[tab.id] = {
583
+ id: tab.id,
584
+ preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,
585
+ allowedPanelTargets: tab.allowedPanelTargets,
586
+ userSized: tab.userSized,
587
+ };
588
+ }
589
+ });
590
+ return packed;
591
+ }
592
+ // istanbul ignore next
593
+ function packSavedWidgets(frontstageDef) {
594
+ let savedWidgets = [];
595
+ for (const widgetDef of frontstageDef.widgetDefs) {
596
+ const id = widgetDef.id;
597
+ const initialWidget = {
598
+ id,
599
+ };
600
+ const widget = produce(initialWidget, (draft) => {
601
+ if (widgetDef.tabLocation) {
602
+ draft.tabLocation = { ...widgetDef.tabLocation };
603
+ }
604
+ if (widgetDef.popoutBounds) {
605
+ draft.popoutBounds = widgetDef.popoutBounds.toProps();
606
+ }
607
+ });
608
+ if (widget === initialWidget)
609
+ continue;
610
+ savedWidgets.push(widget);
611
+ }
612
+ // Add previously saved widgets.
613
+ const prevSavedWidgets = frontstageDef.savedWidgetDefs || [];
614
+ for (const prevWidget of prevSavedWidgets) {
615
+ if (savedWidgets.find((w) => w.id === prevWidget.id))
616
+ continue;
617
+ savedWidgets.push(prevWidget);
618
+ }
619
+ // Limit number of saved widgets.
620
+ const maxWidgets = 100;
621
+ if (savedWidgets.length > maxWidgets)
622
+ savedWidgets = savedWidgets.slice(0, maxWidgets);
623
+ return savedWidgets;
624
+ }
625
+ // istanbul ignore next
626
+ function restoreSavedWidgets(frontstage) {
627
+ const savedWidgets = frontstage.savedWidgetDefs || [];
628
+ for (const savedWidget of savedWidgets) {
629
+ const widgetId = savedWidget.id;
630
+ const widgetDef = frontstage.findWidgetDef(widgetId);
631
+ if (!widgetDef)
632
+ continue;
633
+ if (savedWidget.tabLocation) {
634
+ widgetDef.tabLocation = { ...savedWidget.tabLocation };
635
+ }
636
+ if (savedWidget.popoutBounds) {
637
+ widgetDef.popoutBounds = Rectangle.create(savedWidget.popoutBounds);
638
+ }
639
+ }
640
+ }
641
+ /** @internal */
642
+ export function isPanelCollapsed(panelState) {
643
+ return panelState !== StagePanelState.Open;
644
+ }
645
+ function addHiddenWidget(state, widgetDef) {
646
+ const tabLocation = widgetDef.tabLocation || widgetDef.defaultTabLocation;
647
+ const tabId = widgetDef.id;
648
+ const { widgetId, tabIndex } = tabLocation;
649
+ if (widgetId in state.widgets) {
650
+ // Add to an existing widget (by widget id).
651
+ return insertTabToWidget(state, tabId, widgetId, tabIndex);
652
+ }
653
+ else if (tabLocation.floatingWidget) {
654
+ const floatingWidget = tabLocation.floatingWidget;
655
+ assert(widgetId === floatingWidget.id);
656
+ // Add to a new floating widget.
657
+ const nzBounds = Rectangle.createFromSize(state.size);
658
+ const bounds = Rectangle.create(floatingWidget.bounds).containIn(nzBounds);
659
+ return addFloatingWidget(state, floatingWidget.id, [tabId], {
660
+ ...floatingWidget,
661
+ bounds: bounds.toProps(),
662
+ });
663
+ }
664
+ // Add to a panel section.
665
+ const panel = state.panels[tabLocation.side];
666
+ // Add to existing panel section.
667
+ if (panel.widgets.length >= panel.maxWidgetCount) {
668
+ const sectionIndex = Math.min(panel.maxWidgetCount - 1, tabLocation.widgetIndex);
669
+ const sectionId = panel.widgets[sectionIndex];
670
+ return insertTabToWidget(state, tabId, sectionId, tabLocation.tabIndex);
671
+ }
672
+ // Create a new panel section.
673
+ const newSectionId = getUniqueId();
674
+ return insertPanelWidget(state, panel.side, newSectionId, [tabId], tabLocation.widgetIndex);
675
+ }
676
+ /** @internal */
677
+ export function setWidgetState(state, widgetDef, widgetState) {
678
+ if (widgetState === WidgetState.Hidden) {
679
+ return hideWidget(state, widgetDef);
680
+ }
681
+ else if (widgetState === WidgetState.Open) {
682
+ const id = widgetDef.id;
683
+ let location = getTabLocation(state, id);
684
+ if (!location) {
685
+ state = addHiddenWidget(state, widgetDef);
686
+ location = getTabLocation(state, id);
687
+ }
688
+ return produce(state, (draft) => {
689
+ assert(!!location);
690
+ const widget = draft.widgets[location.widgetId];
691
+ widget.minimized = false;
692
+ widget.activeTabId = id;
693
+ if (isFloatingTabLocation(location)) {
694
+ const floatingWidget = draft.floatingWidgets.byId[location.floatingWidgetId];
695
+ floatingWidget.hidden = false;
696
+ // istanbul ignore else
697
+ }
698
+ else if (isPanelTabLocation(location)) {
699
+ const panel = draft.panels[location.side];
700
+ panel.collapsed = false;
701
+ if (undefined === panel.size || 0 === panel.size) {
702
+ // istanbul ignore next
703
+ panel.size = panel.minSize ?? 200;
704
+ }
705
+ }
706
+ });
707
+ }
708
+ else if (widgetState === WidgetState.Closed) {
709
+ const id = widgetDef.id;
710
+ let location = getTabLocation(state, id);
711
+ if (!location) {
712
+ state = addHiddenWidget(state, widgetDef);
713
+ location = getTabLocation(state, id);
714
+ }
715
+ // TODO: should change activeTabId of a widget with multiple tabs.
716
+ return produce(state, (draft) => {
717
+ assert(!!location);
718
+ const widget = draft.widgets[location.widgetId];
719
+ if (isFloatingTabLocation(location)) {
720
+ if (id === widget.activeTabId) {
721
+ widget.minimized = true;
722
+ }
723
+ }
724
+ });
725
+ }
726
+ else if (widgetState === WidgetState.Floating) {
727
+ const id = widgetDef.id;
728
+ let location = getTabLocation(state, id);
729
+ if (!location) {
730
+ state = addHiddenWidget(state, widgetDef);
731
+ location = getTabLocation(state, id);
732
+ }
733
+ assert(!!location);
734
+ if (isFloatingTabLocation(location))
735
+ return state;
736
+ // Widget is not floating.
737
+ state = removeTabFromWidget(state, id);
738
+ const bounds = widgetDef.tabLocation?.floatingWidget?.bounds;
739
+ state = addFloatingWidget(state, getUniqueId(), [id], { bounds });
740
+ }
741
+ return state;
742
+ }
743
+ /** Stores widget location and hides it in the UI. */
744
+ function hideWidget(state, widgetDef) {
745
+ const location = getTabLocation(state, widgetDef.id);
746
+ if (!location)
747
+ return state;
748
+ // istanbul ignore else
749
+ if (isFloatingTabLocation(location)) {
750
+ const floatingWidget = state.floatingWidgets.byId[location.widgetId];
751
+ widgetDef.setFloatingContainerId(location.floatingWidgetId);
752
+ widgetDef.tabLocation = {
753
+ side: floatingWidget.home.side,
754
+ tabIndex: floatingWidget.home.widgetIndex,
755
+ widgetId: floatingWidget.id,
756
+ widgetIndex: floatingWidget.home.widgetIndex,
757
+ floatingWidget,
758
+ };
759
+ }
760
+ else if (!isPopoutTabLocation(location)) {
761
+ const widgetId = location.widgetId;
762
+ const side = isPanelTabLocation(location) ? location.side : "left";
763
+ const widgetIndex = isPanelTabLocation(location) ? state.panels[side].widgets.indexOf(widgetId) : 0;
764
+ const tabIndex = state.widgets[location.widgetId].tabs.indexOf(widgetDef.id);
765
+ widgetDef.tabLocation = {
766
+ side,
767
+ tabIndex,
768
+ widgetId,
769
+ widgetIndex,
770
+ };
771
+ }
772
+ return removeTabFromWidget(state, widgetDef.id);
773
+ }
774
+ /** @internal */
775
+ export function showWidget(state, id) {
776
+ const location = getTabLocation(state, id);
777
+ if (!location)
778
+ return state;
779
+ state = produce(state, (draft) => {
780
+ const widget = draft.widgets[location.widgetId];
781
+ widget.activeTabId = id;
782
+ widget.minimized = false;
783
+ if (isPanelTabLocation(location)) {
784
+ const panel = draft.panels[location.side];
785
+ panel.collapsed = false;
786
+ }
787
+ });
788
+ if (isFloatingTabLocation(location)) {
789
+ state = floatingWidgetBringToFront(state, location.floatingWidgetId);
790
+ }
791
+ return state;
792
+ }
793
+ /** @internal */
794
+ export function expandWidget(state, id) {
795
+ const location = getTabLocation(state, id);
796
+ if (!location)
797
+ return state;
798
+ return produce(state, (draft) => {
799
+ const widget = draft.widgets[location.widgetId];
800
+ if (isPanelTabLocation(location)) {
801
+ const panel = draft.panels[location.side];
802
+ panel.widgets.forEach((wId) => {
803
+ const w = draft.widgets[wId];
804
+ w.minimized = true;
805
+ });
806
+ }
807
+ widget.minimized = false;
808
+ });
809
+ }
810
+ /** @internal */
811
+ export function setWidgetLabel(state, id, label) {
812
+ if (!(id in state.tabs))
813
+ return state;
814
+ return produce(state, (draft) => {
815
+ const tab = draft.tabs[id];
816
+ tab.label = label;
817
+ });
818
+ }
819
+ /** @internal */
820
+ export function useSavedFrontstageState(frontstageDef) {
821
+ const uiStateStorage = useUiStateStorageHandler();
822
+ const uiStateStorageRef = React.useRef(uiStateStorage);
823
+ const isMountedRef = React.useRef(false);
824
+ React.useEffect(() => {
825
+ isMountedRef.current = true;
826
+ return () => { isMountedRef.current = false; };
827
+ }, []);
828
+ React.useEffect(() => {
829
+ uiStateStorageRef.current = uiStateStorage;
830
+ }, [uiStateStorage]);
831
+ React.useEffect(() => {
832
+ async function fetchFrontstageState() {
833
+ if (frontstageDef.nineZoneState) {
834
+ frontstageDef.nineZoneState = processPopoutWidgets(frontstageDef.nineZoneState, frontstageDef);
835
+ return;
836
+ }
837
+ const id = frontstageDef.id;
838
+ const version = frontstageDef.version;
839
+ const settingResult = await uiStateStorageRef.current.getSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id));
840
+ if (!isMountedRef.current)
841
+ return;
842
+ if (isFrontstageStateSettingResult(settingResult)) {
843
+ const setting = settingResult.setting;
844
+ if (setting.version >= version && setting.stateVersion >= stateVersion) {
845
+ const restored = restoreNineZoneState(frontstageDef, setting.nineZone);
846
+ frontstageDef.savedWidgetDefs = setting.widgets;
847
+ restoreSavedWidgets(frontstageDef);
848
+ let state = addMissingWidgets(frontstageDef, restored);
849
+ state = hideWidgets(state, frontstageDef);
850
+ state = processPopoutWidgets(state, frontstageDef);
851
+ frontstageDef.nineZoneState = state;
852
+ return;
853
+ }
854
+ }
855
+ frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);
856
+ }
857
+ void fetchFrontstageState();
858
+ }, [frontstageDef]);
859
+ }
860
+ /** @internal */
861
+ export function useSaveFrontstageSettings(frontstageDef, store) {
862
+ const uiSettingsStorage = useUiStateStorageHandler();
863
+ const saveSetting = React.useMemo(() => {
864
+ const debounced = debounce(async (frontstage, state) => {
865
+ const id = frontstage.id;
866
+ const widgets = packSavedWidgets(frontstage);
867
+ frontstage.savedWidgetDefs = widgets;
868
+ const setting = {
869
+ id,
870
+ version: frontstage.version,
871
+ stateVersion,
872
+ nineZone: packNineZoneState(state),
873
+ widgets,
874
+ };
875
+ await uiSettingsStorage.saveSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(id), setting);
876
+ }, 1000);
877
+ const save = (frontstage, state) => {
878
+ if (state.draggedTab)
879
+ return;
880
+ debounced(frontstage, state);
881
+ };
882
+ save.cancel = debounced.cancel;
883
+ return save;
884
+ }, [uiSettingsStorage]);
885
+ React.useEffect(() => {
886
+ return () => {
887
+ saveSetting.cancel();
888
+ };
889
+ }, [saveSetting]);
890
+ React.useEffect(() => {
891
+ saveSetting(frontstageDef, store.getState());
892
+ }, [saveSetting, frontstageDef, store]);
893
+ React.useEffect(() => {
894
+ return store.subscribe(() => {
895
+ saveSetting(frontstageDef, store.getState());
896
+ });
897
+ }, [saveSetting, frontstageDef, store]);
898
+ }
899
+ /** @internal */
900
+ export const FRONTSTAGE_SETTINGS_NAMESPACE = "uifw-frontstageSettings";
901
+ /** @internal */
902
+ export function getFrontstageStateSettingName(frontstageId) {
903
+ return `frontstageState[${frontstageId}]`;
904
+ }
905
+ // istanbul ignore next
906
+ function debounce(func, duration) {
907
+ let timeout;
908
+ const debounced = (...args) => {
909
+ const handler = () => {
910
+ timeout = undefined;
911
+ return func(...args);
912
+ };
913
+ window.clearTimeout(timeout);
914
+ timeout = window.setTimeout(handler, duration);
915
+ };
916
+ debounced.cancel = () => {
917
+ window.clearTimeout(timeout);
918
+ };
919
+ return debounced;
920
+ }
921
+ const createListener = (frontstageDef, listener) => {
922
+ return (...args) => {
923
+ if (!frontstageDef.nineZoneState)
924
+ return;
925
+ listener(...args);
926
+ };
927
+ };
928
+ /** @internal */
929
+ export function useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel) {
930
+ React.useEffect(() => {
931
+ const listener = createListener(frontstageDef, ({ widgetDef, widgetState }) => {
932
+ assert(!!frontstageDef.nineZoneState);
933
+ frontstageDef.nineZoneState = setWidgetState(frontstageDef.nineZoneState, widgetDef, widgetState);
934
+ });
935
+ UiFramework.frontstages.onWidgetStateChangedEvent.addListener(listener);
936
+ return () => {
937
+ UiFramework.frontstages.onWidgetStateChangedEvent.removeListener(listener);
938
+ };
939
+ }, [frontstageDef]);
940
+ React.useEffect(() => {
941
+ const listener = createListener(frontstageDef, ({ widgetDef }) => {
942
+ assert(!!frontstageDef.nineZoneState);
943
+ frontstageDef.nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);
944
+ });
945
+ InternalFrontstageManager.onWidgetShowEvent.addListener(listener);
946
+ return () => {
947
+ InternalFrontstageManager.onWidgetShowEvent.removeListener(listener);
948
+ };
949
+ }, [frontstageDef]);
950
+ React.useEffect(() => {
951
+ const listener = createListener(frontstageDef, ({ widgetDef }) => {
952
+ assert(!!frontstageDef.nineZoneState);
953
+ let nineZoneState = showWidget(frontstageDef.nineZoneState, widgetDef.id);
954
+ nineZoneState = expandWidget(nineZoneState, widgetDef.id);
955
+ frontstageDef.nineZoneState = nineZoneState;
956
+ });
957
+ InternalFrontstageManager.onWidgetExpandEvent.addListener(listener);
958
+ return () => {
959
+ InternalFrontstageManager.onWidgetExpandEvent.removeListener(listener);
960
+ };
961
+ }, [frontstageDef]);
962
+ const uiSettingsStorage = useUiStateStorageHandler();
963
+ React.useEffect(() => {
964
+ const listener = (args) => {
965
+ // TODO: track restoring frontstages to support workflows: i.e. prevent loading frontstage OR saving layout when delete is pending
966
+ void uiSettingsStorage.deleteSetting(FRONTSTAGE_SETTINGS_NAMESPACE, getFrontstageStateSettingName(args.frontstageDef.id));
967
+ if (frontstageDef.id === args.frontstageDef.id) {
968
+ args.frontstageDef.nineZoneState = initializeNineZoneState(frontstageDef);
969
+ }
970
+ else {
971
+ args.frontstageDef.nineZoneState = undefined;
972
+ }
973
+ };
974
+ InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(listener);
975
+ return () => {
976
+ InternalFrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(listener);
977
+ };
978
+ }, [uiSettingsStorage, frontstageDef]);
979
+ React.useEffect(() => {
980
+ const listener = createListener(frontstageDef, ({ widgetDef }) => {
981
+ assert(!!frontstageDef.nineZoneState);
982
+ const label = widgetDef.label;
983
+ frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, widgetDef.id, label);
984
+ });
985
+ InternalFrontstageManager.onWidgetLabelChangedEvent.addListener(listener);
986
+ return () => {
987
+ InternalFrontstageManager.onWidgetLabelChangedEvent.removeListener(listener);
988
+ };
989
+ }, [frontstageDef]);
990
+ const defaultLabel = React.useMemo(() => UiFramework.translate("widget.labels.toolSettings"), []);
991
+ React.useEffect(() => {
992
+ const updateLabel = createListener(frontstageDef, () => {
993
+ const toolId = UiFramework.frontstages.activeToolId;
994
+ assert(!!frontstageDef.nineZoneState);
995
+ const label = useToolAsToolSettingsLabel ?
996
+ IModelApp.tools.find(toolId)?.flyover || defaultLabel : defaultLabel;
997
+ frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, toolSettingsTabId, label);
998
+ });
999
+ // Whenever the frontstageDef or the useTool... changes, keep the label up to date.
1000
+ updateLabel();
1001
+ // If useTool... is true, listen for events to keep up the label up to date.
1002
+ if (useToolAsToolSettingsLabel) {
1003
+ UiFramework.frontstages.onFrontstageReadyEvent.addListener(updateLabel);
1004
+ InternalFrontstageManager.onFrontstageRestoreLayoutEvent.addListener(updateLabel);
1005
+ UiFramework.frontstages.onToolActivatedEvent.addListener(updateLabel);
1006
+ UiFramework.frontstages.onToolSettingsReloadEvent.addListener(updateLabel);
1007
+ }
1008
+ return () => {
1009
+ if (useToolAsToolSettingsLabel) {
1010
+ UiFramework.frontstages.onFrontstageReadyEvent.removeListener(updateLabel);
1011
+ InternalFrontstageManager.onFrontstageRestoreLayoutEvent.removeListener(updateLabel);
1012
+ UiFramework.frontstages.onToolActivatedEvent.removeListener(updateLabel);
1013
+ UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(updateLabel);
1014
+ }
1015
+ };
1016
+ }, [frontstageDef, useToolAsToolSettingsLabel, defaultLabel]);
1017
+ }
1018
+ /** @internal */
1019
+ // istanbul ignore next
1020
+ export function useItemsManager(frontstageDef) {
1021
+ const refreshNineZoneState = (def) => {
1022
+ // Fired for both registered/unregistered. Update definitions and remove/add missing widgets.
1023
+ def.updateWidgetDefs();
1024
+ restoreSavedWidgets(def);
1025
+ let state = def.nineZoneState;
1026
+ if (!state)
1027
+ return;
1028
+ state = addMissingWidgets(def, state);
1029
+ state = removeMissingWidgets(def, state);
1030
+ state = hideWidgets(state, def); // TODO: should only apply to widgets provided by registered provider in onUiProviderRegisteredEvent.
1031
+ def.nineZoneState = state;
1032
+ };
1033
+ React.useEffect(() => {
1034
+ const remove = UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {
1035
+ refreshNineZoneState(frontstageDef);
1036
+ });
1037
+ // Need to refresh anytime frontstageDef changes because uiItemsProvider may have added something to
1038
+ // another stage before it was possibly unloaded in this stage.
1039
+ refreshNineZoneState(frontstageDef);
1040
+ return remove;
1041
+ }, [frontstageDef]);
1042
+ }
1043
+ // istanbul ignore next
1044
+ function determineNewWidgets(defs, state) {
1045
+ defs = defs || [];
1046
+ const uniqueDefs = defs.filter((def, index, array) => {
1047
+ return index === array.findIndex((def1) => def.id === def1.id);
1048
+ });
1049
+ return uniqueDefs.filter((def) => !(def.id in state.tabs));
1050
+ }
1060
1051
  //# sourceMappingURL=Frontstage.js.map