@itwin/appui-react 4.2.1 → 4.3.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/CHANGELOG.md +1 -6
  2. package/lib/cjs/appui-react/UiFramework.d.ts +0 -7
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +4 -29
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/_variables.scss +3 -3
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +3 -3
  9. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
  10. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  11. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  12. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +2 -3
  13. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  14. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
  15. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  16. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  17. package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
  18. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  19. package/lib/cjs/appui-react/configurableui/configurableui.scss +3 -3
  20. package/lib/cjs/appui-react/content/ContentLayout.js +9 -12
  21. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  22. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
  23. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  24. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +3 -3
  25. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  26. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  27. package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
  28. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  29. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
  30. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  31. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  32. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  33. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +10 -12
  34. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  35. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  36. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  37. package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
  38. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  39. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
  40. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  41. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +3 -3
  42. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  43. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +27 -9
  44. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  45. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
  46. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  47. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  48. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  49. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  50. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  51. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  52. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  53. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
  54. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  55. package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
  56. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  57. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
  58. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
  59. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/pickers/ViewSelector.js +8 -7
  61. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  62. package/lib/cjs/appui-react/popup/CardPopup.scss +3 -3
  63. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
  64. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  65. package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
  66. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  67. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
  69. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  70. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  71. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  72. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
  73. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +3 -3
  74. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
  75. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  76. package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
  77. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  78. package/lib/cjs/appui-react/statusbar/Separator.scss +3 -3
  79. package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
  80. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  81. package/lib/cjs/appui-react/statusfields/SectionsField.scss +3 -3
  82. package/lib/cjs/appui-react/statusfields/SelectionCount.scss +3 -3
  83. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +3 -3
  84. package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +3 -3
  85. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
  86. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  87. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  88. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
  89. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +10 -17
  90. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  91. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  92. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  93. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  94. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  95. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  96. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  97. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  98. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  99. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  100. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  101. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  102. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  103. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  104. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  105. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  106. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  107. package/lib/cjs/appui-react/widget-panels/Content.js +8 -9
  108. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  109. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +3 -1
  110. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  111. package/lib/cjs/appui-react/widget-panels/Frontstage.js +116 -102
  112. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  113. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +3 -3
  114. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  115. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  116. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  117. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  118. package/lib/cjs/appui-react/widget-panels/Tab.scss +3 -3
  119. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  120. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  121. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +33 -45
  122. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  123. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +3 -3
  124. package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
  125. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  126. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -3
  127. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  128. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  129. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  130. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/widgets/WidgetDef.js +13 -12
  132. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  133. package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
  134. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  135. package/lib/esm/appui-react/UiFramework.d.ts +0 -7
  136. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  137. package/lib/esm/appui-react/UiFramework.js +4 -29
  138. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  139. package/lib/esm/appui-react/_variables.scss +3 -3
  140. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
  141. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +3 -3
  142. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
  143. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  144. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  145. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +2 -3
  146. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  147. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
  148. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  149. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  150. package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
  151. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  152. package/lib/esm/appui-react/configurableui/configurableui.scss +3 -3
  153. package/lib/esm/appui-react/content/ContentLayout.js +9 -12
  154. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  155. package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
  156. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  157. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +3 -3
  158. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  159. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  160. package/lib/esm/appui-react/content/IModelViewport.js +3 -6
  161. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  162. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
  163. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  164. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  165. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  166. package/lib/esm/appui-react/content/split-pane/SplitPane.js +10 -12
  167. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  168. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
  169. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  170. package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
  171. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  172. package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
  173. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  174. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +3 -3
  175. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  176. package/lib/esm/appui-react/frontstage/FrontstageDef.js +27 -9
  177. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  178. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
  179. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  180. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
  181. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  182. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
  183. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  184. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
  185. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  186. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
  187. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  188. package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
  189. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  190. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
  191. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
  192. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  193. package/lib/esm/appui-react/pickers/ViewSelector.js +8 -7
  194. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  195. package/lib/esm/appui-react/popup/CardPopup.scss +3 -3
  196. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
  197. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  198. package/lib/esm/appui-react/popup/PopupManager.js +1 -2
  199. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  200. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
  201. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
  202. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  203. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  204. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  205. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
  206. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +3 -3
  207. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
  208. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  209. package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
  210. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  211. package/lib/esm/appui-react/statusbar/Separator.scss +3 -3
  212. package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
  213. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  214. package/lib/esm/appui-react/statusfields/SectionsField.scss +3 -3
  215. package/lib/esm/appui-react/statusfields/SelectionCount.scss +3 -3
  216. package/lib/esm/appui-react/statusfields/SelectionScope.scss +3 -3
  217. package/lib/esm/appui-react/statusfields/ViewAttributes.scss +3 -3
  218. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
  219. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  220. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  221. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
  222. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -17
  223. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  224. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +3 -2
  225. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  226. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +12 -14
  227. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  228. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +9 -10
  229. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  230. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
  231. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  232. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
  233. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  234. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  235. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  236. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  237. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  238. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  239. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  240. package/lib/esm/appui-react/widget-panels/Content.js +8 -9
  241. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  242. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +3 -1
  243. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  244. package/lib/esm/appui-react/widget-panels/Frontstage.js +113 -99
  245. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  246. package/lib/esm/appui-react/widget-panels/Frontstage.scss +3 -3
  247. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  248. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  249. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  250. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  251. package/lib/esm/appui-react/widget-panels/Tab.scss +3 -3
  252. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  253. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  254. package/lib/esm/appui-react/widget-panels/ToolSettings.js +33 -45
  255. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  256. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +3 -3
  257. package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
  258. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  259. package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -3
  260. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  261. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  262. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  263. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  264. package/lib/esm/appui-react/widgets/WidgetDef.js +13 -12
  265. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  266. package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
  267. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  268. package/lib/public/locales/en/UiFramework.json +3 -1
  269. package/package.json +12 -12
@@ -7,7 +7,7 @@
7
7
  * @module Frontstage
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.useItemsManager = exports.useFrontstageManager = exports.getFrontstageStateSettingName = exports.FRONTSTAGE_SETTINGS_NAMESPACE = exports.useSaveFrontstageSettings = exports.useSavedFrontstageState = exports.setWidgetLabel = exports.expandWidget = exports.showWidget = exports.setWidgetState = exports.isPanelCollapsed = exports.packNineZoneState = exports.restoreNineZoneState = exports.initializeNineZoneState = exports.initializePanel = exports.isFrontstageStateSettingResult = exports.addPanelWidgets = exports.getPanelSectionWidgets = exports.getWidgetId = exports.removeMissingWidgets = exports.addMissingWidgets = exports.appendWidgets = exports.addWidgets = exports.useLabels = exports.ActiveFrontstageDefProvider = exports.WidgetPanelsFrontstage = exports.useNineZoneDispatch = exports.FrameworkStateReducer = exports.useUpdateNineZoneSize = exports.useLayoutStore = void 0;
10
+ exports.useItemsManager = exports.useFrontstageManager = exports.getFrontstageStateSettingName = exports.FRONTSTAGE_SETTINGS_NAMESPACE = exports.useSaveFrontstageSettings = exports.useSavedFrontstageState = exports.setWidgetLabel = exports.expandWidget = exports.showWidget = exports.setWidgetState = exports.isPanelCollapsed = exports.packNineZoneState = exports.restoreNineZoneState = exports.initializeNineZoneState = exports.stateVersion = exports.initializePanel = exports.isFrontstageStateSettingResult = exports.addPanelWidgets = exports.getPanelSectionWidgets = exports.getWidgetId = exports.removeMissingWidgets = exports.addMissingWidgets = exports.appendWidgets = exports.addWidgets = exports.useLabels = exports.ActiveFrontstageDefProvider = exports.WidgetPanelsFrontstage = exports.useNineZoneDispatch = exports.FrameworkStateReducer = exports.useUpdateNineZoneSize = exports.useLayoutStore = void 0;
11
11
  // cSpell:ignore popout
12
12
  require("./Frontstage.scss");
13
13
  const immer_1 = require("immer");
@@ -55,7 +55,7 @@ const widgetPanelsFrontstage = React.createElement(WidgetPanelsFrontstageCompone
55
55
  /** @internal */
56
56
  function useLayoutStore() {
57
57
  const [def, setDef] = React.useState(UiFramework_1.UiFramework.frontstages.activeFrontstageDef);
58
- const [layout, setLayout] = React.useState(() => (0, appui_layout_react_1.createLayoutStore)(def === null || def === void 0 ? void 0 : def.nineZoneState));
58
+ const [layout, setLayout] = React.useState(() => (0, appui_layout_react_1.createLayoutStore)(def?.nineZoneState));
59
59
  React.useEffect(() => {
60
60
  return UiFramework_1.UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {
61
61
  (0, react_dom_1.unstable_batchedUpdates)(() => {
@@ -108,7 +108,7 @@ function FrameworkStateReducer(state, action, frontstageDef) {
108
108
  const panel = draft.panels[panelSide];
109
109
  const location = toStagePanelLocation(panelSide);
110
110
  const panelDef = frontstageDef.getStagePanelDef(location);
111
- if (panelDef === null || panelDef === void 0 ? void 0 : panelDef.maxSizeSpec) {
111
+ if (panelDef?.maxSizeSpec) {
112
112
  panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, action.size);
113
113
  if (panel.size) {
114
114
  panel.size = Math.min(Math.max(panel.size, panel.minSize), panel.maxSize);
@@ -126,14 +126,6 @@ function useNineZoneDispatch(frontstageDef) {
126
126
  if (action.type === "RESIZE") {
127
127
  InternalFrontstageManager_1.InternalFrontstageManager.nineZoneSize = core_react_1.Size.create(action.size);
128
128
  }
129
- // istanbul ignore if
130
- if (action.type === "TOOL_SETTINGS_DRAG_START") {
131
- void UiFramework_1.UiFramework.postTelemetry("Tool Settings Undocking", "28B04E07-AE73-4533-A0BA-8E2A8DC99ADF");
132
- }
133
- // istanbul ignore if
134
- if (action.type === "TOOL_SETTINGS_DOCK") {
135
- void UiFramework_1.UiFramework.postTelemetry("Tool Settings Docking to Settings Bar", "BEDE684B-B3DB-4637-B3AF-DC3CBA223F94");
136
- }
137
129
  if (action.type === "WIDGET_TAB_POPOUT") {
138
130
  const tabId = action.id;
139
131
  frontstageDef.popoutWidget(tabId);
@@ -214,31 +206,33 @@ function useLabels() {
214
206
  }), []);
215
207
  }
216
208
  exports.useLabels = useLabels;
209
+ function toTabArgs(widget) {
210
+ const label = getWidgetLabel(widget.label);
211
+ return {
212
+ allowedPanelTargets: widget.allowedPanelTargets?.map((location) => (0, StagePanelDef_1.toPanelSide)(location)),
213
+ hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,
214
+ canPopout: widget.canPopout,
215
+ iconSpec: widget.iconSpec,
216
+ isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
217
+ label,
218
+ preferredFloatingWidgetSize: widget.defaultFloatingSize,
219
+ preferredPanelWidgetSize: widget.preferredPanelSize,
220
+ };
221
+ }
217
222
  /** @internal */
218
223
  function addWidgets(state, widgets, side, widgetId) {
219
- var _a;
220
224
  const visibleWidgets = widgets.filter((w) => w.isVisible && w.defaultState !== WidgetState_1.WidgetState.Floating);
221
225
  if (visibleWidgets.length === 0)
222
226
  return state;
223
227
  const tabs = new Array();
224
228
  for (const widget of visibleWidgets) {
225
- const label = getWidgetLabel(widget.label);
226
- state = (0, appui_layout_react_1.addTab)(state, widget.id, {
227
- label,
228
- iconSpec: widget.iconSpec,
229
- preferredPanelWidgetSize: widget.preferredPanelSize,
230
- preferredFloatingWidgetSize: widget.defaultFloatingSize,
231
- canPopout: widget.canPopout,
232
- isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
233
- hideWithUiWhenFloating: !!widget.hideWithUiWhenFloating,
234
- allowedPanelTargets: (_a = widget.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.map((location) => (0, StagePanelDef_1.toPanelSide)(location)),
235
- });
229
+ state = (0, appui_layout_react_1.addTab)(state, widget.id, toTabArgs(widget));
236
230
  tabs.push(widget.id);
237
231
  }
238
232
  const activeWidget = visibleWidgets.find((widget) => widget.isActive);
239
233
  const minimized = false;
240
234
  // istanbul ignore else
241
- if ((activeWidget === null || activeWidget === void 0 ? void 0 : activeWidget.defaultState) !== WidgetState_1.WidgetState.Floating) {
235
+ if (activeWidget?.defaultState !== WidgetState_1.WidgetState.Floating) {
242
236
  state = (0, appui_layout_react_1.addPanelWidget)(state, side, widgetId, tabs, {
243
237
  activeTabId: activeWidget ? activeWidget.id : tabs[0],
244
238
  minimized,
@@ -250,13 +244,9 @@ exports.addWidgets = addWidgets;
250
244
  /** @internal */
251
245
  // istanbul ignore next
252
246
  function appendWidgets(state, widgetDefs, location, section) {
253
- var _a, _b;
254
- if (widgetDefs.length === 0)
255
- return state;
256
247
  const side = (0, StagePanelDef_1.toPanelSide)(location);
257
248
  // Add missing widget tabs.
258
249
  for (const widgetDef of widgetDefs) {
259
- const label = getWidgetLabel(widgetDef.label);
260
250
  const saveTab = state.tabs[widgetDef.id];
261
251
  const preferredPanelWidgetSize = saveTab
262
252
  ? saveTab.preferredPanelWidgetSize
@@ -271,19 +261,14 @@ function appendWidgets(state, widgetDefs, location, section) {
271
261
  !!saveTab.preferredFloatingWidgetSize)
272
262
  : !!widgetDef.defaultFloatingSize;
273
263
  state = (0, appui_layout_react_1.addTab)(state, widgetDef.id, {
274
- label,
275
- iconSpec: widgetDef.iconSpec,
276
- canPopout: widgetDef.canPopout,
277
- preferredPanelWidgetSize,
264
+ ...toTabArgs(widgetDef),
278
265
  preferredFloatingWidgetSize,
266
+ preferredPanelWidgetSize,
279
267
  userSized,
280
- isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
281
- hideWithUiWhenFloating: !!widgetDef.hideWithUiWhenFloating,
282
- allowedPanelTargets: (_a = widgetDef.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.map((l) => (0, StagePanelDef_1.toPanelSide)(l)),
283
268
  });
284
269
  if (widgetDef.isFloatingStateSupported &&
285
270
  widgetDef.defaultState === WidgetState_1.WidgetState.Floating) {
286
- const floatingContainerId = (_b = widgetDef.floatingContainerId) !== null && _b !== void 0 ? _b : (0, appui_layout_react_1.getUniqueId)();
271
+ const floatingContainerId = widgetDef.floatingContainerId ?? (0, appui_layout_react_1.getUniqueId)();
287
272
  const widgetContainerId = getWidgetId(location, section);
288
273
  const home = {
289
274
  side,
@@ -301,7 +286,7 @@ function appendWidgets(state, widgetDefs, location, section) {
301
286
  width: 300,
302
287
  ...tab.preferredFloatingWidgetSize,
303
288
  };
304
- const preferredPoint = preferredPosition !== null && preferredPosition !== void 0 ? preferredPosition : {
289
+ const preferredPoint = preferredPosition ?? {
305
290
  x: (state.size.width - size.width) / 2,
306
291
  y: (state.size.height - size.height) / 2,
307
292
  };
@@ -361,16 +346,29 @@ function processPopoutWidgets(initialState, frontstageDef) {
361
346
  * @internal
362
347
  */
363
348
  function addMissingWidgets(frontstageDef, initialState) {
364
- var _a, _b, _c, _d, _e, _f, _g, _h;
365
349
  let state = initialState;
366
- state = appendWidgets(state, determineNewWidgets((_a = frontstageDef.leftPanel) === null || _a === void 0 ? void 0 : _a.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Left, StagePanelSection_1.StagePanelSection.Start);
367
- state = appendWidgets(state, determineNewWidgets((_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Left, StagePanelSection_1.StagePanelSection.End);
368
- state = appendWidgets(state, determineNewWidgets((_c = frontstageDef.rightPanel) === null || _c === void 0 ? void 0 : _c.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Right, StagePanelSection_1.StagePanelSection.Start);
369
- state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.rightPanel) === null || _d === void 0 ? void 0 : _d.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Right, StagePanelSection_1.StagePanelSection.End);
370
- state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.topPanel) === null || _e === void 0 ? void 0 : _e.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.Start);
371
- state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.topPanel) === null || _f === void 0 ? void 0 : _f.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.End);
372
- state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.bottomPanel) === null || _g === void 0 ? void 0 : _g.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.Start);
373
- state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.bottomPanel) === null || _h === void 0 ? void 0 : _h.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End).widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.End);
350
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start)
351
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Left, StagePanelSection_1.StagePanelSection.Start);
352
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.leftPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End)
353
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Left, StagePanelSection_1.StagePanelSection.End);
354
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start)
355
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Right, StagePanelSection_1.StagePanelSection.Start);
356
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.rightPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End)
357
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Right, StagePanelSection_1.StagePanelSection.End);
358
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start)
359
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.Start);
360
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.topPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End)
361
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Top, StagePanelSection_1.StagePanelSection.End);
362
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.Start)
363
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.Start);
364
+ state = appendWidgets(state, determineNewWidgets(frontstageDef.bottomPanel?.getPanelSectionDef(StagePanelSection_1.StagePanelSection.End)
365
+ .widgetDefs, state), StagePanelLocation_1.StagePanelLocation.Bottom, StagePanelSection_1.StagePanelSection.End);
366
+ if (frontstageDef.toolSettings) {
367
+ const newToolSettingsWidgets = determineNewWidgets([frontstageDef.toolSettings], state);
368
+ for (const newToolSettingsWidget of newToolSettingsWidgets) {
369
+ state = (0, appui_layout_react_1.addTab)(state, newToolSettingsWidget.id, toTabArgs(newToolSettingsWidget));
370
+ }
371
+ }
374
372
  return state;
375
373
  }
376
374
  exports.addMissingWidgets = addMissingWidgets;
@@ -390,10 +388,10 @@ function hideWidgets(state, frontstageDef) {
390
388
  /** Removes NineZoneState widgets that are missing in frontstageDef.
391
389
  * @internal
392
390
  */
393
- function removeMissingWidgets(frontstageDef, initialState) {
394
- let state = initialState;
391
+ function removeMissingWidgets(frontstageDef, state) {
392
+ const toolSettingsTabId = state.toolSettings?.tabId;
395
393
  for (const [, tab] of Object.entries(state.tabs)) {
396
- if (tab.id === appui_layout_react_1.toolSettingsTabId)
394
+ if (tab.id === toolSettingsTabId)
397
395
  continue;
398
396
  const widgetDef = frontstageDef.findWidgetDef(tab.id);
399
397
  if (widgetDef)
@@ -447,8 +445,8 @@ exports.getWidgetId = getWidgetId;
447
445
  /** @internal */
448
446
  function getPanelSectionWidgets(frontstageDef, location, section) {
449
447
  const stagePanel = frontstageDef.getStagePanelDef(location);
450
- const panelSection = stagePanel === null || stagePanel === void 0 ? void 0 : stagePanel.getPanelSectionDef(section);
451
- return (panelSection === null || panelSection === void 0 ? void 0 : panelSection.widgetDefs) || [];
448
+ const panelSection = stagePanel?.getPanelSectionDef(section);
449
+ return panelSection?.widgetDefs || [];
452
450
  }
453
451
  exports.getPanelSectionWidgets = getPanelSectionWidgets;
454
452
  /** @internal */
@@ -476,15 +474,14 @@ function initializePanel(state, frontstageDef, location) {
476
474
  state = addPanelWidgets(state, frontstageDef, location);
477
475
  const panelDef = frontstageDef.getStagePanelDef(location);
478
476
  state = (0, immer_1.default)(state, (draft) => {
479
- var _a, _b, _c;
480
477
  const panel = draft.panels[panelSide];
481
- panel.minSize = (_a = panelDef === null || panelDef === void 0 ? void 0 : panelDef.minSize) !== null && _a !== void 0 ? _a : panel.minSize;
482
- panel.pinned = (_b = panelDef === null || panelDef === void 0 ? void 0 : panelDef.pinned) !== null && _b !== void 0 ? _b : panel.pinned;
483
- panel.resizable = (_c = panelDef === null || panelDef === void 0 ? void 0 : panelDef.resizable) !== null && _c !== void 0 ? _c : panel.resizable;
484
- if (panelDef === null || panelDef === void 0 ? void 0 : panelDef.maxSizeSpec) {
478
+ panel.minSize = panelDef?.minSize ?? panel.minSize;
479
+ panel.pinned = panelDef?.pinned ?? panel.pinned;
480
+ panel.resizable = panelDef?.resizable ?? panel.resizable;
481
+ if (panelDef?.maxSizeSpec) {
485
482
  panel.maxSize = getPanelMaxSize(panelDef.maxSizeSpec, panelSide, state.size);
486
483
  }
487
- const size = panelDef === null || panelDef === void 0 ? void 0 : panelDef.size;
484
+ const size = panelDef?.size;
488
485
  panel.size =
489
486
  size === undefined
490
487
  ? size
@@ -502,7 +499,8 @@ function getPanelMaxSize(maxSizeSpec, panel, nineZoneSize) {
502
499
  : nineZoneSize.width;
503
500
  return (maxSizeSpec.percentage / 100) * size;
504
501
  }
505
- const stateVersion = 13; // this needs to be bumped when NineZoneState is changed (to recreate the layout).
502
+ /** @internal */
503
+ exports.stateVersion = 14; // this needs to be bumped when NineZoneState is changed (to recreate the layout).
506
504
  /** @internal */
507
505
  function initializeNineZoneState(frontstageDef) {
508
506
  let nineZone = defaultNineZone;
@@ -519,30 +517,26 @@ function initializeNineZoneState(frontstageDef) {
519
517
  nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation_1.StagePanelLocation.Right);
520
518
  nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation_1.StagePanelLocation.Top);
521
519
  nineZone = initializePanel(nineZone, frontstageDef, StagePanelLocation_1.StagePanelLocation.Bottom);
522
- nineZone = (0, immer_1.default)(nineZone, (stateDraft) => {
523
- var _a, _b, _c, _d;
524
- for (const [, panel] of Object.entries(stateDraft.panels)) {
525
- const expanded = panel.widgets.find((widgetId) => stateDraft.widgets[widgetId].minimized === false);
526
- const firstWidget = panel.widgets.length > 0
527
- ? stateDraft.widgets[panel.widgets[0]]
528
- : undefined;
520
+ nineZone = (0, immer_1.default)(nineZone, (draft) => {
521
+ for (const [, panel] of Object.entries(draft.panels)) {
522
+ const expanded = panel.widgets.find((widgetId) => draft.widgets[widgetId].minimized === false);
523
+ const firstWidget = panel.widgets.length > 0 ? draft.widgets[panel.widgets[0]] : undefined;
529
524
  // istanbul ignore next
530
525
  if (!expanded && firstWidget) {
531
526
  firstWidget.minimized = false;
532
527
  }
533
528
  }
534
- stateDraft.panels.left.collapsed = isPanelCollapsed((_a = frontstageDef.leftPanel) === null || _a === void 0 ? void 0 : _a.panelState);
535
- stateDraft.panels.right.collapsed = isPanelCollapsed((_b = frontstageDef.rightPanel) === null || _b === void 0 ? void 0 : _b.panelState);
536
- stateDraft.panels.top.collapsed = isPanelCollapsed((_c = frontstageDef.topPanel) === null || _c === void 0 ? void 0 : _c.panelState);
537
- stateDraft.panels.bottom.collapsed = isPanelCollapsed((_d = frontstageDef.bottomPanel) === null || _d === void 0 ? void 0 : _d.panelState);
538
- const toolSettingsWidgetDef = frontstageDef.toolSettings;
539
- if (toolSettingsWidgetDef) {
540
- const toolSettingsTab = stateDraft.tabs[appui_layout_react_1.toolSettingsTabId];
541
- toolSettingsTab.preferredPanelWidgetSize =
542
- toolSettingsWidgetDef.preferredPanelSize;
543
- }
529
+ draft.panels.left.collapsed = isPanelCollapsed(frontstageDef.leftPanel?.panelState);
530
+ draft.panels.right.collapsed = isPanelCollapsed(frontstageDef.rightPanel?.panelState);
531
+ draft.panels.top.collapsed = isPanelCollapsed(frontstageDef.topPanel?.panelState);
532
+ draft.panels.bottom.collapsed = isPanelCollapsed(frontstageDef.bottomPanel?.panelState);
544
533
  });
545
534
  nineZone = addMissingWidgets(frontstageDef, nineZone);
535
+ const toolSettingsWidgetDef = frontstageDef.toolSettings;
536
+ if (toolSettingsWidgetDef) {
537
+ const toolSettingsTabId = toolSettingsWidgetDef.id;
538
+ nineZone = (0, appui_layout_react_1.addDockedToolSettings)(nineZone, toolSettingsTabId);
539
+ }
546
540
  nineZone = hideWidgets(nineZone, frontstageDef);
547
541
  nineZone = processPopoutWidgets(nineZone, frontstageDef);
548
542
  return nineZone;
@@ -556,7 +550,7 @@ exports.initializeNineZoneState = initializeNineZoneState;
556
550
  function restoreNineZoneState(frontstageDef, saved) {
557
551
  let restored = {
558
552
  ...saved,
559
- tabs: defaultNineZone.tabs,
553
+ tabs: {},
560
554
  };
561
555
  for (const [, tab] of Object.entries(saved.tabs)) {
562
556
  // Re-add the placeholder tab in order to correctly remove it from the state if WidgetDef is not found.
@@ -571,15 +565,11 @@ function restoreNineZoneState(frontstageDef, saved) {
571
565
  continue;
572
566
  }
573
567
  restored = (0, immer_1.default)(restored, (draft) => {
574
- var _a;
575
568
  draft.tabs[tab.id] = {
576
569
  ...tab,
577
- label: getWidgetLabel(widgetDef.label),
578
- hideWithUiWhenFloating: widgetDef.hideWithUiWhenFloating,
579
- iconSpec: widgetDef.iconSpec,
580
- canPopout: widgetDef.canPopout,
581
- isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
582
- allowedPanelTargets: (_a = widgetDef.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.map((location) => (0, StagePanelDef_1.toPanelSide)(location)),
570
+ ...toTabArgs(widgetDef),
571
+ preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,
572
+ preferredPanelWidgetSize: tab.preferredPanelWidgetSize,
583
573
  };
584
574
  });
585
575
  }
@@ -637,12 +627,9 @@ function packNineZoneState(state) {
637
627
  };
638
628
  packed = (0, immer_1.default)(packed, (draft) => {
639
629
  for (const [, tab] of Object.entries(state.tabs)) {
640
- if (tab.id === appui_layout_react_1.toolSettingsTabId)
641
- continue;
642
630
  draft.tabs[tab.id] = {
643
631
  id: tab.id,
644
632
  preferredFloatingWidgetSize: tab.preferredFloatingWidgetSize,
645
- allowedPanelTargets: tab.allowedPanelTargets,
646
633
  userSized: tab.userSized,
647
634
  };
648
635
  }
@@ -737,19 +724,27 @@ function addHiddenWidget(state, widgetDef) {
737
724
  }
738
725
  /** @internal */
739
726
  function setWidgetState(state, widgetDef, widgetState) {
740
- var _a, _b;
741
727
  if (widgetState === WidgetState_1.WidgetState.Hidden) {
742
728
  return hideWidget(state, widgetDef);
743
729
  }
744
730
  else if (widgetState === WidgetState_1.WidgetState.Open) {
745
731
  const id = widgetDef.id;
732
+ if (widgetDef.isToolSettings) {
733
+ if (!state.toolSettings && !widgetDef.tabLocation) {
734
+ state = (0, appui_layout_react_1.addDockedToolSettings)(state, id);
735
+ }
736
+ if (state.toolSettings?.type === "docked")
737
+ return state;
738
+ }
746
739
  let location = (0, appui_layout_react_1.getTabLocation)(state, id);
747
740
  if (!location) {
748
741
  state = addHiddenWidget(state, widgetDef);
749
742
  location = (0, appui_layout_react_1.getTabLocation)(state, id);
743
+ if (widgetDef.isToolSettings) {
744
+ state = (0, appui_layout_react_1.addWidgetToolSettings)(state, id);
745
+ }
750
746
  }
751
747
  return (0, immer_1.default)(state, (draft) => {
752
- var _a;
753
748
  (0, core_bentley_1.assert)(!!location);
754
749
  const widget = draft.widgets[location.widgetId];
755
750
  widget.minimized = false;
@@ -764,13 +759,16 @@ function setWidgetState(state, widgetDef, widgetState) {
764
759
  panel.collapsed = false;
765
760
  if (undefined === panel.size || 0 === panel.size) {
766
761
  // istanbul ignore next
767
- panel.size = (_a = panel.minSize) !== null && _a !== void 0 ? _a : 200;
762
+ panel.size = panel.minSize ?? 200;
768
763
  }
769
764
  }
770
765
  });
771
766
  }
772
767
  else if (widgetState === WidgetState_1.WidgetState.Closed) {
773
768
  const id = widgetDef.id;
769
+ if (widgetDef.isToolSettings && state.toolSettings?.type !== "widget") {
770
+ return state;
771
+ }
774
772
  let location = (0, appui_layout_react_1.getTabLocation)(state, id);
775
773
  if (!location) {
776
774
  state = addHiddenWidget(state, widgetDef);
@@ -799,14 +797,31 @@ function setWidgetState(state, widgetDef, widgetState) {
799
797
  return state;
800
798
  // Widget is not floating.
801
799
  state = (0, appui_layout_react_1.removeTabFromWidget)(state, id);
802
- const bounds = (_b = (_a = widgetDef.tabLocation) === null || _a === void 0 ? void 0 : _a.floatingWidget) === null || _b === void 0 ? void 0 : _b.bounds;
800
+ const bounds = widgetDef.tabLocation?.floatingWidget?.bounds;
803
801
  state = (0, appui_layout_react_1.addFloatingWidget)(state, (0, appui_layout_react_1.getUniqueId)(), [id], { bounds });
802
+ if (widgetDef.isToolSettings) {
803
+ if (state.toolSettings?.type === "docked") {
804
+ state = (0, appui_layout_react_1.removeToolSettings)(state);
805
+ }
806
+ if (!state.toolSettings) {
807
+ state = (0, appui_layout_react_1.addWidgetToolSettings)(state, id);
808
+ }
809
+ }
804
810
  }
805
811
  return state;
806
812
  }
807
813
  exports.setWidgetState = setWidgetState;
808
814
  /** Stores widget location and hides it in the UI. */
809
815
  function hideWidget(state, widgetDef) {
816
+ const toolSettingsTabId = state.toolSettings?.tabId;
817
+ if (widgetDef.id === toolSettingsTabId) {
818
+ widgetDef.tabLocation = undefined;
819
+ state = (0, immer_1.default)(state, (draft) => {
820
+ draft.toolSettings = undefined;
821
+ });
822
+ if (state.toolSettings?.type === "docked")
823
+ return state;
824
+ }
810
825
  const location = (0, appui_layout_react_1.getTabLocation)(state, widgetDef.id);
811
826
  if (!location)
812
827
  return state;
@@ -913,8 +928,8 @@ function useSavedFrontstageState(frontstageDef) {
913
928
  return;
914
929
  if (isFrontstageStateSettingResult(settingResult)) {
915
930
  const setting = settingResult.setting;
916
- if (setting.version >= version &&
917
- setting.stateVersion >= stateVersion) {
931
+ if (setting.version === version &&
932
+ setting.stateVersion === exports.stateVersion) {
918
933
  const restored = restoreNineZoneState(frontstageDef, setting.nineZone);
919
934
  frontstageDef.savedWidgetDefs = setting.widgets;
920
935
  restoreSavedWidgets(frontstageDef);
@@ -942,7 +957,7 @@ function useSaveFrontstageSettings(frontstageDef, store) {
942
957
  const setting = {
943
958
  id,
944
959
  version: frontstage.version,
945
- stateVersion,
960
+ stateVersion: exports.stateVersion,
946
961
  nineZone: packNineZoneState(state),
947
962
  widgets,
948
963
  };
@@ -1004,14 +1019,11 @@ const createListener = (frontstageDef, listener) => {
1004
1019
  /** @internal */
1005
1020
  function useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel) {
1006
1021
  React.useEffect(() => {
1007
- const listener = createListener(frontstageDef, ({ widgetDef, widgetState }) => {
1008
- (0, core_bentley_1.assert)(!!frontstageDef.nineZoneState);
1022
+ return UiFramework_1.UiFramework.frontstages.onWidgetStateChangedEvent.addListener(({ widgetDef, widgetState }) => {
1023
+ if (!frontstageDef.nineZoneState)
1024
+ return;
1009
1025
  frontstageDef.nineZoneState = setWidgetState(frontstageDef.nineZoneState, widgetDef, widgetState);
1010
1026
  });
1011
- UiFramework_1.UiFramework.frontstages.onWidgetStateChangedEvent.addListener(listener);
1012
- return () => {
1013
- UiFramework_1.UiFramework.frontstages.onWidgetStateChangedEvent.removeListener(listener);
1014
- };
1015
1027
  }, [frontstageDef]);
1016
1028
  React.useEffect(() => {
1017
1029
  const listener = createListener(frontstageDef, ({ widgetDef }) => {
@@ -1069,13 +1081,15 @@ function useFrontstageManager(frontstageDef, useToolAsToolSettingsLabel) {
1069
1081
  const defaultLabel = React.useMemo(() => UiFramework_1.UiFramework.translate("widget.labels.toolSettings"), []);
1070
1082
  React.useEffect(() => {
1071
1083
  const updateLabel = createListener(frontstageDef, () => {
1072
- var _a;
1073
1084
  const toolId = UiFramework_1.UiFramework.frontstages.activeToolId;
1074
1085
  (0, core_bentley_1.assert)(!!frontstageDef.nineZoneState);
1075
1086
  const label = useToolAsToolSettingsLabel
1076
- ? ((_a = core_frontend_1.IModelApp.tools.find(toolId)) === null || _a === void 0 ? void 0 : _a.flyover) || defaultLabel
1087
+ ? core_frontend_1.IModelApp.tools.find(toolId)?.flyover || defaultLabel
1077
1088
  : defaultLabel;
1078
- frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, appui_layout_react_1.toolSettingsTabId, label);
1089
+ const toolSettingsTabId = frontstageDef.nineZoneState.toolSettings?.tabId;
1090
+ if (!toolSettingsTabId)
1091
+ return;
1092
+ frontstageDef.nineZoneState = setWidgetLabel(frontstageDef.nineZoneState, toolSettingsTabId, label);
1079
1093
  });
1080
1094
  // Whenever the frontstageDef or the useTool... changes, keep the label up to date.
1081
1095
  updateLabel();