@itwin/appui-react 4.10.0 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (893) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +181 -10
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +301 -21
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +3 -2
  8. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +5 -7
  15. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  19. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -1
  24. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +2 -2
  26. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  28. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  30. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  31. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +24 -17
  33. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  35. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  36. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  38. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  39. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  40. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  41. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  42. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  43. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  44. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  45. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +14 -19
  46. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  47. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  48. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/content/IModelViewport.js +8 -9
  50. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  51. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  52. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  53. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  54. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  55. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  56. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  57. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  58. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  60. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  61. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  62. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  64. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  65. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  66. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  67. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  68. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  69. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  70. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  72. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  73. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +20 -77
  75. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  76. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  78. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  79. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  80. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +1 -2
  82. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  83. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +7 -6
  85. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  86. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  87. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  88. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts +6 -0
  89. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  90. package/lib/cjs/appui-react/hooks/useActiveToolId.js +24 -0
  91. package/lib/cjs/appui-react/hooks/useActiveToolId.js.map +1 -0
  92. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  93. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  94. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +15 -0
  95. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  96. package/lib/cjs/appui-react/hooks/useConditionalValue.js +43 -0
  97. package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -0
  98. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  99. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  100. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  101. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  102. package/lib/cjs/appui-react/keyins/Keyins.d.ts +35 -0
  103. package/lib/cjs/appui-react/keyins/Keyins.d.ts.map +1 -0
  104. package/lib/cjs/appui-react/keyins/Keyins.js +54 -0
  105. package/lib/cjs/appui-react/keyins/Keyins.js.map +1 -0
  106. package/lib/cjs/appui-react/layers.scss +1 -1
  107. package/lib/cjs/appui-react/layout/StandardLayout.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/layout/StandardLayout.js +10 -10
  109. package/lib/cjs/appui-react/layout/StandardLayout.js.map +1 -1
  110. package/lib/cjs/appui-react/layout/_widgetopacity.scss +3 -1
  111. package/lib/cjs/appui-react/layout/base/DragManager.js +2 -1
  112. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  113. package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
  114. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  115. package/lib/cjs/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js +3 -0
  117. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  118. package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
  119. package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
  120. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
  121. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  122. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +14 -12
  123. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  124. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  125. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  126. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  127. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  128. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  129. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  130. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
  131. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  132. package/lib/cjs/appui-react/layout/widget/Content.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/layout/widget/Content.js +5 -5
  134. package/lib/cjs/appui-react/layout/widget/Content.js.map +1 -1
  135. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
  136. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  137. package/lib/cjs/appui-react/layout/widget/FloatingTab.js +6 -5
  138. package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
  139. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +4 -2
  140. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  141. package/lib/cjs/appui-react/layout/widget/NavigationArea.scss +4 -1
  142. package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
  143. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  144. package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
  145. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  146. package/lib/cjs/appui-react/layout/widget/ToolsArea.scss +2 -0
  147. package/lib/cjs/appui-react/layout/widget/Widget.d.ts.map +1 -1
  148. package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
  149. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  150. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  151. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  152. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +8 -5
  153. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  154. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  155. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  156. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  157. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  158. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  159. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/messages/MessageManager.js +6 -6
  161. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  162. package/lib/cjs/appui-react/messages/MessageRenderer.js +16 -10
  163. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -1
  164. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  165. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  166. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  167. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +1 -1
  169. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  170. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  171. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  172. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  173. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  174. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  175. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  176. package/lib/cjs/appui-react/popup/CardPopup.d.ts +21 -9
  177. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/popup/CardPopup.js +12 -5
  179. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  180. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts +18 -0
  181. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  182. package/lib/cjs/appui-react/popup/ComponentPopup.js +35 -0
  183. package/lib/cjs/appui-react/popup/ComponentPopup.js.map +1 -0
  184. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  185. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  186. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -0
  187. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  188. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +4 -4
  189. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  190. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  191. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  192. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +19 -12
  194. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  195. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  196. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +9 -3
  198. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  199. package/lib/cjs/appui-react/popup/PopupManager.d.ts +45 -9
  200. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/popup/PopupManager.js +85 -13
  202. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  203. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +16 -6
  204. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  205. package/lib/cjs/appui-react/popup/ToolbarPopup.js +7 -2
  206. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  207. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +3 -1
  208. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  209. package/lib/cjs/appui-react/preview/PreviewFeatures.js +2 -2
  210. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  211. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  212. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  213. package/lib/cjs/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  214. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  215. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  216. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  217. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +18 -0
  218. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  219. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  220. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  221. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  222. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  223. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  224. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  225. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  226. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  227. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  228. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  229. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  230. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  231. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  232. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js +25 -0
  233. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  234. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  235. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  236. package/lib/cjs/appui-react/preview/new-toolbars/Badge.js +20 -0
  237. package/lib/cjs/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  238. package/lib/cjs/appui-react/preview/new-toolbars/Badge.scss +13 -0
  239. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  240. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  241. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js +36 -0
  242. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  243. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  244. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  245. package/lib/cjs/appui-react/{statusbar/Popup.js → preview/new-toolbars/ExpandIndicator.js} +8 -13
  246. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  247. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  248. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  249. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  250. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js +79 -0
  251. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  252. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  253. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  254. package/lib/cjs/appui-react/preview/new-toolbars/Item.js +54 -0
  255. package/lib/cjs/appui-react/preview/new-toolbars/Item.js.map +1 -0
  256. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  257. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  258. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js +37 -0
  259. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  260. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  261. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  262. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js +85 -0
  263. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  264. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  265. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  266. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  267. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js +40 -0
  268. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  269. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  270. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  271. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js +93 -0
  272. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  273. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  274. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  275. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  276. package/lib/cjs/appui-react/redux/SessionState.d.ts +15 -3
  277. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  278. package/lib/cjs/appui-react/redux/SessionState.js +8 -1
  279. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  280. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  281. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  282. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  283. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  284. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  285. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  286. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  287. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  288. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  289. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +40 -46
  290. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  291. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +17 -0
  292. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  293. package/lib/cjs/appui-react/shared/ConditionalValue.js +16 -0
  294. package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -0
  295. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  296. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  297. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  298. package/lib/cjs/appui-react/shared/ItemProps.d.ts +13 -2
  299. package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  301. package/lib/cjs/appui-react/shared/MenuItem.d.ts +21 -2
  302. package/lib/cjs/appui-react/shared/MenuItem.d.ts.map +1 -1
  303. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  304. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +16 -11
  305. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  306. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  307. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  308. package/lib/cjs/appui-react/statusbar/Overflow.d.ts.map +1 -1
  309. package/lib/cjs/appui-react/statusbar/Overflow.js +3 -3
  310. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  311. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -1
  312. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  313. package/lib/cjs/appui-react/statusbar/StatusBar.js +6 -4
  314. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  315. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  316. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  317. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  318. package/lib/cjs/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  319. package/lib/cjs/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  320. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.js +10 -11
  321. package/lib/cjs/appui-react/statusbar/popup/Popup.js.map +1 -0
  322. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  323. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  324. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +4 -4
  325. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  326. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +0 -1
  327. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/statusfields/MessageCenter.js +4 -4
  329. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  330. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  331. package/lib/cjs/appui-react/statusfields/SectionsField.js +7 -10
  332. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  333. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  334. package/lib/cjs/appui-react/statusfields/SelectionScope.js +4 -4
  335. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  336. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  337. package/lib/cjs/appui-react/statusfields/SnapMode.js +14 -12
  338. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  339. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  340. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +12 -20
  342. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  343. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  344. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -2
  345. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  346. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  347. package/lib/cjs/appui-react/theme/ThemeManager.js +3 -2
  348. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  349. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  350. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  351. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  352. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +4 -3
  353. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  354. package/lib/cjs/appui-react/toolbar/Toolbar.js +28 -4
  355. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  356. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  357. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  358. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +15 -12
  359. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  360. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  361. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +5 -6
  362. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  363. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  364. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  365. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  366. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  367. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  368. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  369. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -11
  370. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  371. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  372. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  373. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  374. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  375. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  376. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  377. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  378. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  379. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  380. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  381. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  382. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  383. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +102 -143
  384. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  385. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  386. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  387. package/lib/cjs/appui-react/useTranslation.d.ts +10 -0
  388. package/lib/cjs/appui-react/useTranslation.d.ts.map +1 -0
  389. package/lib/cjs/appui-react/useTranslation.js +20 -0
  390. package/lib/cjs/appui-react/useTranslation.js.map +1 -0
  391. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  392. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  393. package/lib/cjs/appui-react/utils/Placement.d.ts +35 -0
  394. package/lib/cjs/appui-react/utils/Placement.d.ts.map +1 -0
  395. package/lib/cjs/appui-react/utils/Placement.js +62 -0
  396. package/lib/cjs/appui-react/utils/Placement.js.map +1 -0
  397. package/lib/cjs/appui-react/utils/PropsHelper.js +4 -4
  398. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  399. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  400. package/lib/cjs/appui-react/widget-panels/Content.js +12 -11
  401. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  402. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  403. package/lib/cjs/appui-react/widget-panels/Frontstage.js +30 -23
  404. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  405. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  406. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  407. package/lib/cjs/appui-react/widget-panels/Tab.d.ts +1 -1
  408. package/lib/cjs/appui-react/widget-panels/Tab.d.ts.map +1 -1
  409. package/lib/cjs/appui-react/widget-panels/Tab.js +3 -4
  410. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  411. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  412. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  413. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +55 -68
  414. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  415. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  416. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  417. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -1
  418. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  419. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -1
  420. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  421. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  422. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  423. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  424. package/lib/cjs/appui-react/widgets/Widget.d.ts +2 -2
  425. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  426. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  427. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -3
  428. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  429. package/lib/cjs/appui-react/widgets/WidgetDef.js +61 -18
  430. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  431. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  432. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  433. package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
  434. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  435. package/lib/cjs/appui-react.d.ts +3 -1
  436. package/lib/cjs/appui-react.d.ts.map +1 -1
  437. package/lib/cjs/appui-react.js +3 -3
  438. package/lib/cjs/appui-react.js.map +1 -1
  439. package/lib/esm/appui-react/UiFramework.d.ts +181 -10
  440. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  441. package/lib/esm/appui-react/UiFramework.js +301 -21
  442. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  443. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  444. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +3 -2
  445. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  446. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  447. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  448. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  449. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  450. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  451. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +5 -7
  452. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  453. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  454. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  455. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  456. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  457. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  458. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  459. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  460. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
  461. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  462. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +2 -2
  463. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  464. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  465. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  466. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  467. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  468. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  469. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +23 -16
  470. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  471. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  472. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  473. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  474. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  475. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  476. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  477. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  478. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  479. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  480. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  481. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  482. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +14 -19
  483. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  484. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  485. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  486. package/lib/esm/appui-react/content/IModelViewport.js +8 -9
  487. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  488. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  489. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  490. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  491. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  492. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  493. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  494. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  495. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  496. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  497. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  498. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  499. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  500. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  501. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  502. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  503. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  504. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  505. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  506. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  507. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  508. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  509. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  510. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  511. package/lib/esm/appui-react/frontstage/FrontstageDef.js +21 -78
  512. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  513. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  514. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  515. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  516. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  517. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  518. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +1 -2
  519. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  520. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  521. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +7 -6
  522. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  523. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  524. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  525. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts +6 -0
  526. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  527. package/lib/esm/appui-react/hooks/useActiveToolId.js +20 -0
  528. package/lib/esm/appui-react/hooks/useActiveToolId.js.map +1 -0
  529. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  530. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  531. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +15 -0
  532. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  533. package/lib/esm/appui-react/hooks/useConditionalValue.js +39 -0
  534. package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -0
  535. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  536. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  537. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  538. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  539. package/lib/esm/appui-react/keyins/Keyins.d.ts +35 -0
  540. package/lib/esm/appui-react/keyins/Keyins.d.ts.map +1 -0
  541. package/lib/esm/appui-react/keyins/Keyins.js +50 -0
  542. package/lib/esm/appui-react/keyins/Keyins.js.map +1 -0
  543. package/lib/esm/appui-react/layers.scss +1 -1
  544. package/lib/esm/appui-react/layout/StandardLayout.d.ts.map +1 -1
  545. package/lib/esm/appui-react/layout/StandardLayout.js +10 -10
  546. package/lib/esm/appui-react/layout/StandardLayout.js.map +1 -1
  547. package/lib/esm/appui-react/layout/_widgetopacity.scss +3 -1
  548. package/lib/esm/appui-react/layout/base/DragManager.js +2 -1
  549. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  550. package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
  551. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  552. package/lib/esm/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  553. package/lib/esm/appui-react/layout/base/usePointerCaptor.js +3 -0
  554. package/lib/esm/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  555. package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
  556. package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
  557. package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
  558. package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  559. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +14 -12
  560. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  561. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  562. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  563. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  564. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  565. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  566. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  567. package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
  568. package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  569. package/lib/esm/appui-react/layout/widget/Content.d.ts.map +1 -1
  570. package/lib/esm/appui-react/layout/widget/Content.js +5 -5
  571. package/lib/esm/appui-react/layout/widget/Content.js.map +1 -1
  572. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
  573. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  574. package/lib/esm/appui-react/layout/widget/FloatingTab.js +6 -5
  575. package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
  576. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +4 -2
  577. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  578. package/lib/esm/appui-react/layout/widget/NavigationArea.scss +4 -1
  579. package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
  580. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  581. package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
  582. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  583. package/lib/esm/appui-react/layout/widget/ToolsArea.scss +2 -0
  584. package/lib/esm/appui-react/layout/widget/Widget.d.ts.map +1 -1
  585. package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
  586. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  587. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  588. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  589. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +8 -5
  590. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  591. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  592. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  593. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  594. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  595. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  596. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  597. package/lib/esm/appui-react/messages/MessageManager.js +6 -6
  598. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  599. package/lib/esm/appui-react/messages/MessageRenderer.js +17 -11
  600. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -1
  601. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  602. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  603. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  604. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  605. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -2
  606. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  607. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  608. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  609. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  610. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  611. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  612. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  613. package/lib/esm/appui-react/popup/CardPopup.d.ts +21 -9
  614. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  615. package/lib/esm/appui-react/popup/CardPopup.js +15 -7
  616. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  617. package/lib/esm/appui-react/popup/ComponentPopup.d.ts +18 -0
  618. package/lib/esm/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  619. package/lib/esm/appui-react/popup/ComponentPopup.js +31 -0
  620. package/lib/esm/appui-react/popup/ComponentPopup.js.map +1 -0
  621. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  622. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  623. package/lib/esm/appui-react/popup/HTMLElementPopup.js +1 -0
  624. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  625. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +4 -4
  626. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  627. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  628. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  629. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  630. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +19 -12
  631. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  632. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  633. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  634. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +9 -3
  635. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  636. package/lib/esm/appui-react/popup/PopupManager.d.ts +45 -9
  637. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  638. package/lib/esm/appui-react/popup/PopupManager.js +87 -14
  639. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  640. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +16 -6
  641. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  642. package/lib/esm/appui-react/popup/ToolbarPopup.js +9 -3
  643. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  644. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +3 -1
  645. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  646. package/lib/esm/appui-react/preview/PreviewFeatures.js +2 -2
  647. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  648. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  649. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  650. package/lib/esm/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  651. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  652. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  653. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  654. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +14 -0
  655. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  656. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  657. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  658. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  659. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  660. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  661. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  662. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  663. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  664. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  665. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  666. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  667. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  668. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  669. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js +22 -0
  670. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  671. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  672. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  673. package/lib/esm/appui-react/preview/new-toolbars/Badge.js +16 -0
  674. package/lib/esm/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  675. package/lib/esm/appui-react/preview/new-toolbars/Badge.scss +13 -0
  676. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  677. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  678. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js +33 -0
  679. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  680. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  681. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  682. package/lib/esm/appui-react/{statusbar/Popup.js → preview/new-toolbars/ExpandIndicator.js} +5 -10
  683. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  684. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  685. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  686. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  687. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js +74 -0
  688. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  689. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  690. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  691. package/lib/esm/appui-react/preview/new-toolbars/Item.js +49 -0
  692. package/lib/esm/appui-react/preview/new-toolbars/Item.js.map +1 -0
  693. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  694. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  695. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js +34 -0
  696. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  697. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  698. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  699. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js +81 -0
  700. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  701. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  702. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  703. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  704. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js +36 -0
  705. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  706. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  707. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  708. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js +89 -0
  709. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  710. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  711. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  712. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  713. package/lib/esm/appui-react/redux/SessionState.d.ts +15 -3
  714. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  715. package/lib/esm/appui-react/redux/SessionState.js +8 -1
  716. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  717. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  718. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  719. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  720. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  721. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  722. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  723. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  724. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  725. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  726. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +40 -46
  727. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  728. package/lib/esm/appui-react/shared/ConditionalValue.d.ts +17 -0
  729. package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  730. package/lib/esm/appui-react/shared/ConditionalValue.js +13 -0
  731. package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -0
  732. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  733. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  734. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  735. package/lib/esm/appui-react/shared/ItemProps.d.ts +13 -2
  736. package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
  737. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  738. package/lib/esm/appui-react/shared/MenuItem.d.ts +21 -2
  739. package/lib/esm/appui-react/shared/MenuItem.d.ts.map +1 -1
  740. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  741. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +16 -11
  742. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  743. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  744. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  745. package/lib/esm/appui-react/statusbar/Overflow.d.ts.map +1 -1
  746. package/lib/esm/appui-react/statusbar/Overflow.js +3 -3
  747. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  748. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -1
  749. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  750. package/lib/esm/appui-react/statusbar/StatusBar.js +6 -4
  751. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  752. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  753. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  754. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  755. package/lib/esm/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  756. package/lib/esm/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  757. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.js +8 -9
  758. package/lib/esm/appui-react/statusbar/popup/Popup.js.map +1 -0
  759. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  760. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  761. package/lib/esm/appui-react/statusfields/ActivityCenter.js +4 -4
  762. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  763. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +0 -1
  764. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  765. package/lib/esm/appui-react/statusfields/MessageCenter.js +4 -4
  766. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  767. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  768. package/lib/esm/appui-react/statusfields/SectionsField.js +7 -10
  769. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  770. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  771. package/lib/esm/appui-react/statusfields/SelectionScope.js +4 -4
  772. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  773. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  774. package/lib/esm/appui-react/statusfields/SnapMode.js +14 -12
  775. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  776. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  777. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  778. package/lib/esm/appui-react/statusfields/ViewAttributes.js +12 -20
  779. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  780. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  781. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -3
  782. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  783. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  784. package/lib/esm/appui-react/theme/ThemeManager.js +3 -2
  785. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  786. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  787. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  788. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  789. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +4 -3
  790. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  791. package/lib/esm/appui-react/toolbar/Toolbar.js +29 -5
  792. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  793. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  794. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  795. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +15 -12
  796. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  797. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  798. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +5 -6
  799. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  800. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  801. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  802. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  803. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  804. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  805. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  806. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +18 -11
  807. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  808. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  809. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  810. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  811. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  812. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  813. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  814. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  815. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  816. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  817. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  818. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  819. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  820. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +100 -141
  821. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  822. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  823. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  824. package/lib/esm/appui-react/useTranslation.d.ts +10 -0
  825. package/lib/esm/appui-react/useTranslation.d.ts.map +1 -0
  826. package/lib/esm/appui-react/useTranslation.js +16 -0
  827. package/lib/esm/appui-react/useTranslation.js.map +1 -0
  828. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  829. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  830. package/lib/esm/appui-react/utils/Placement.d.ts +35 -0
  831. package/lib/esm/appui-react/utils/Placement.d.ts.map +1 -0
  832. package/lib/esm/appui-react/utils/Placement.js +57 -0
  833. package/lib/esm/appui-react/utils/Placement.js.map +1 -0
  834. package/lib/esm/appui-react/utils/PropsHelper.js +4 -4
  835. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  836. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  837. package/lib/esm/appui-react/widget-panels/Content.js +12 -11
  838. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  839. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  840. package/lib/esm/appui-react/widget-panels/Frontstage.js +30 -23
  841. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  842. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  843. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  844. package/lib/esm/appui-react/widget-panels/Tab.d.ts +1 -1
  845. package/lib/esm/appui-react/widget-panels/Tab.d.ts.map +1 -1
  846. package/lib/esm/appui-react/widget-panels/Tab.js +2 -3
  847. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  848. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  849. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  850. package/lib/esm/appui-react/widget-panels/ToolSettings.js +53 -66
  851. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  852. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  853. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  854. package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -1
  855. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  856. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -1
  857. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  858. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  859. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  860. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  861. package/lib/esm/appui-react/widgets/Widget.d.ts +2 -2
  862. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  863. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  864. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -3
  865. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  866. package/lib/esm/appui-react/widgets/WidgetDef.js +59 -17
  867. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  868. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  869. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  870. package/lib/esm/appui-react/widgets/useWidget.js +1 -1
  871. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  872. package/lib/esm/appui-react.d.ts +3 -1
  873. package/lib/esm/appui-react.d.ts.map +1 -1
  874. package/lib/esm/appui-react.js +3 -1
  875. package/lib/esm/appui-react.js.map +1 -1
  876. package/lib/public/locales/en/UiFramework.json +7 -1
  877. package/package.json +10 -8
  878. package/lib/cjs/appui-react/layout/footer/Popup.d.ts +0 -12
  879. package/lib/cjs/appui-react/layout/footer/Popup.d.ts.map +0 -1
  880. package/lib/cjs/appui-react/layout/footer/Popup.js.map +0 -1
  881. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  882. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  883. package/lib/cjs/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  884. package/lib/cjs/appui-react/statusbar/Popup.d.ts.map +0 -1
  885. package/lib/cjs/appui-react/statusbar/Popup.js.map +0 -1
  886. package/lib/esm/appui-react/layout/footer/Popup.d.ts +0 -12
  887. package/lib/esm/appui-react/layout/footer/Popup.d.ts.map +0 -1
  888. package/lib/esm/appui-react/layout/footer/Popup.js.map +0 -1
  889. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  890. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  891. package/lib/esm/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  892. package/lib/esm/appui-react/statusbar/Popup.d.ts.map +0 -1
  893. package/lib/esm/appui-react/statusbar/Popup.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/WidgetStateHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport { castDraft, produce } from \"immer\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { RectangleProps } from \"@itwin/core-react\";\nimport { Point, Rectangle } from \"@itwin/core-react\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type {\n FloatingWidgetState,\n PopoutWidgetState,\n WidgetState,\n} from \"../WidgetState\";\nimport { getTabLocation } from \"../TabLocation\";\nimport type { PanelWidgetLocation } from \"../WidgetLocation\";\nimport {\n getWidgetLocation,\n isFloatingWidgetLocation,\n isPanelWidgetLocation,\n isPopoutWidgetLocation,\n} from \"../WidgetLocation\";\nimport {\n category,\n initSizeProps,\n setRectangleProps,\n toRectangleProps,\n} from \"./NineZoneStateHelpers\";\nimport { updatePanelState } from \"./PanelStateHelpers\";\nimport { updateTabState } from \"./TabStateHelpers\";\n\n/** @internal */\nexport function createWidgetState(\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n args?: Partial<WidgetState>\n): WidgetState {\n if (tabs.length === 0)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Widget must contain tabs\");\n return {\n activeTabId: tabs[0],\n minimized: false,\n ...args,\n id,\n tabs,\n };\n}\n\n/** @internal */\nexport function updateWidgetState(\n state: NineZoneState,\n id: WidgetState[\"id\"],\n args: Partial<WidgetState>\n) {\n return produce(state, (draft) => {\n const widget = getWidgetState(draft, id);\n draft.widgets[id] = {\n ...widget,\n ...castDraft(args),\n };\n });\n}\n\n/** @internal */\nexport function addWidgetState(\n state: NineZoneState,\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n args?: Partial<WidgetState>\n) {\n // eslint-disable-next-line deprecation/deprecation\n if (id in state.widgets) throw new UiError(category, \"Widget already exists\");\n\n const widget = createWidgetState(id, tabs, args);\n for (const tabId of widget.tabs) {\n if (!(tabId in state.tabs))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab does not exist\", undefined, () => ({\n tabId,\n }));\n\n const location = getTabLocation(state, tabId);\n if (location)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n category,\n \"Tab is already in a widget\",\n undefined,\n () => ({ tabId, widgetId: location.widgetId })\n );\n }\n return produce(state, (draft) => {\n draft.widgets[id] = castDraft(widget);\n });\n}\n\n/** @internal */\nexport function removeWidget(\n state: NineZoneState,\n id: WidgetState[\"id\"]\n): NineZoneState {\n const location = getWidgetLocation(state, id);\n // eslint-disable-next-line deprecation/deprecation\n if (!location) throw new UiError(category, \"Widget not found\");\n\n if (isFloatingWidgetLocation(location))\n return removeFloatingWidget(state, id);\n if (isPopoutWidgetLocation(location)) return removePopoutWidget(state, id);\n return removePanelWidget(state, id, location);\n}\n\n/** @internal */\nexport function removeWidgetState(\n state: NineZoneState,\n id: WidgetState[\"id\"]\n): NineZoneState {\n assertWidgetState(state, id);\n return produce(state, (draft) => {\n delete draft.widgets[id];\n });\n}\n\n/** @internal */\nexport function createFloatingWidgetState(\n id: FloatingWidgetState[\"id\"],\n args?: Partial<FloatingWidgetState>\n): FloatingWidgetState {\n const bounds = toRectangleProps(args?.bounds);\n return {\n home: {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n },\n ...args,\n bounds,\n id,\n };\n}\n\n/** @internal */\nexport function createPopoutWidgetState(\n id: PopoutWidgetState[\"id\"],\n args?: Partial<PopoutWidgetState>\n): PopoutWidgetState {\n const bounds = toRectangleProps(args?.bounds);\n const home: PopoutWidgetState[\"home\"] = args?.home\n ? args.home\n : {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n };\n return {\n ...args,\n home,\n bounds,\n id,\n };\n}\n\n/** @internal */\nexport function updateFloatingWidgetState(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"],\n args: Partial<FloatingWidgetState>\n) {\n if (!(id in state.floatingWidgets.byId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Floating widget does not exist\");\n\n return produce(state, (draft) => {\n const floatingWidget = draft.floatingWidgets.byId[id];\n const { bounds, ...other } = args;\n draft.floatingWidgets.byId[id] = {\n ...floatingWidget,\n ...other,\n };\n if (bounds) setRectangleProps(floatingWidget.bounds, bounds);\n });\n}\n\n/** Removes floating widget from the UI and deletes the widget state.\n * @internal\n */\nexport function removeFloatingWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"]\n): NineZoneState {\n if (!(id in state.floatingWidgets.byId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Floating widget does not exist\");\n\n state = produce(state, (draft) => {\n delete draft.floatingWidgets.byId[id];\n const idIndex = draft.floatingWidgets.allIds.indexOf(id);\n draft.floatingWidgets.allIds.splice(idIndex, 1);\n });\n return removeWidgetState(state, id);\n}\n\n/** Removes popout widget from the UI and deletes the widget state.\n * @internal\n */\nexport function removePopoutWidget(\n state: NineZoneState,\n id: PopoutWidgetState[\"id\"]\n) {\n if (!(id in state.popoutWidgets.byId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Popout widget does not exist\");\n\n state = produce(state, (draft) => {\n delete draft.popoutWidgets.byId[id];\n const index = state.popoutWidgets.allIds.indexOf(id);\n draft.popoutWidgets.allIds.splice(index, 1);\n });\n return removeWidgetState(state, id);\n}\n\n/** @internal */\nexport function removePanelWidget(\n state: NineZoneState,\n id: WidgetState[\"id\"],\n location?: PanelWidgetLocation\n): NineZoneState {\n location = location || findPanelWidget(state, id);\n // eslint-disable-next-line deprecation/deprecation\n if (!location) throw new UiError(category, \"Panel widget not found\");\n\n state = updatePanelState(state, location.side, (draft) => {\n assert(!!location);\n draft.widgets.splice(location.index, 1);\n });\n\n const widgets = state.panels[location.side].widgets;\n const expandedWidget = widgets.find((widgetId) => {\n const widget = getWidgetState(state, widgetId);\n return !widget.minimized;\n });\n if (!expandedWidget && widgets.length > 0) {\n const firstWidgetId = widgets[0];\n state = updateWidgetState(state, firstWidgetId, {\n minimized: false,\n });\n }\n\n return removeWidgetState(state, id);\n}\n\nfunction findPanelWidget(state: NineZoneState, id: WidgetState[\"id\"]) {\n const location = getWidgetLocation(state, id);\n if (location && isPanelWidgetLocation(location)) return location;\n return undefined;\n}\n\n/** @internal */\nexport function assertWidgetState(state: NineZoneState, id: WidgetState[\"id\"]) {\n if (!(id in state.widgets))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Widget does not exist\", undefined, () => ({\n id,\n }));\n}\n\n/** @internal */\nexport function getWidgetState<T extends NineZoneState>(\n state: T,\n id: WidgetState[\"id\"]\n): T[\"widgets\"][0] {\n assertWidgetState(state, id);\n return state.widgets[id] as T[\"widgets\"][0];\n}\n\n/** @internal */\nexport function setWidgetActiveTabId(\n state: NineZoneState,\n widgetId: WidgetState[\"id\"],\n tabId: WidgetState[\"activeTabId\"]\n): NineZoneState {\n const widget = getWidgetState(state, widgetId);\n if (!widget.tabs.includes(tabId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab is not in a widget\");\n\n state = updateWidgetState(state, widgetId, {\n activeTabId: tabId,\n });\n\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n if (floatingWidget) {\n const activeTab = state.tabs[tabId];\n const preferredFloatingWidgetSize = Rectangle.create(\n floatingWidget.bounds\n ).getSize();\n state = updateTabState(state, activeTab.id, (draft) => {\n initSizeProps(\n draft,\n \"preferredFloatingWidgetSize\",\n preferredFloatingWidgetSize\n );\n });\n }\n return state;\n}\n\n/** @internal */\nexport function getNewFloatingWidgetBounds(\n state: NineZoneState\n): RectangleProps {\n // Matches min size (to handle auto-sized floating widgets correctly).\n const size = { height: 120, width: 200 };\n const initialPosition = new Point(360, 340);\n\n const nzBounds = Rectangle.createFromSize(state.size);\n const widgetsBounds = nzBounds.inset(20, 20, 20, 20);\n const offset = new Point(40, 40);\n\n let bounds = Rectangle.createFromSize(size);\n if (state.floatingWidgets.allIds.length === 0) {\n // Initial floating widget position.\n bounds = bounds.offset(initialPosition);\n } else {\n // Position is relative to last floating widget if available.\n const widgetId =\n state.floatingWidgets.allIds[state.floatingWidgets.allIds.length - 1];\n const widget = state.floatingWidgets.byId[widgetId];\n const widgetBounds = Rectangle.create(widget.bounds);\n\n // Bounds relative to top left of a last floating widget.\n const topLeft = widgetBounds.topLeft().offset(offset);\n bounds = bounds.offset(topLeft);\n\n // Bottom right of new bounds should also be outside of a floating widget.\n const widgetBottomRight = new Point(\n widgetBounds.right,\n widgetBounds.bottom\n );\n const minBottomRight = widgetBottomRight.offset(offset);\n const x = Math.max(0, minBottomRight.x - bounds.right);\n const y = Math.max(0, minBottomRight.y - bounds.bottom);\n bounds = bounds.offset({ x, y });\n }\n\n // TODO: might still end up with a bunch of overlapping widgets.\n if (bounds.bottom >= widgetsBounds.bottom) {\n bounds = bounds.setPosition({ x: bounds.left, y: widgetsBounds.top });\n }\n if (bounds.right >= widgetsBounds.right) {\n bounds = bounds.setPosition({\n x: widgetsBounds.left,\n y: widgetsBounds.top,\n });\n }\n bounds = bounds.containIn(widgetsBounds);\n return bounds.toProps();\n}\n\n/** @internal */\nexport function addFloatingWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n floatingWidgetArgs?: Partial<FloatingWidgetState>,\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n if (id in state.floatingWidgets.byId)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Floating widget already exists\");\n\n state = addWidgetState(state, id, tabs, widgetArgs);\n\n let bounds = floatingWidgetArgs?.bounds;\n if (!bounds) {\n bounds = getNewFloatingWidgetBounds(state);\n }\n\n const tabId = tabs[0];\n const tab = state.tabs[tabId];\n const resizable = tab.isFloatingWidgetResizable;\n\n const floatingWidget = createFloatingWidgetState(id, {\n bounds,\n resizable,\n ...floatingWidgetArgs,\n });\n return produce(state, (stateDraft) => {\n stateDraft.floatingWidgets.byId[id] = floatingWidget;\n stateDraft.floatingWidgets.allIds.push(id);\n });\n}\n\n/** @internal */\nexport function addPopoutWidget(\n state: NineZoneState,\n id: PopoutWidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n popoutWidgetArgs?: Partial<PopoutWidgetState>,\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n if (tabs.length !== 1)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n category,\n \"Popout widget should contain one tab only\",\n undefined,\n () => ({ tabs })\n );\n\n const popoutWidget = createPopoutWidgetState(id, popoutWidgetArgs);\n state = addWidgetState(state, id, tabs, widgetArgs);\n return produce(state, (stateDraft) => {\n stateDraft.popoutWidgets.byId[id] = popoutWidget;\n stateDraft.popoutWidgets.allIds.push(id);\n });\n}\n\n/** @internal */\nexport function floatingWidgetBringToFront(\n state: NineZoneState,\n floatingWidgetId: FloatingWidgetState[\"id\"]\n): NineZoneState {\n return produce(state, (draft) => {\n const idIndex = draft.floatingWidgets.allIds.indexOf(floatingWidgetId);\n const spliced = draft.floatingWidgets.allIds.splice(idIndex, 1);\n draft.floatingWidgets.allIds.push(spliced[0]);\n });\n}\n"]}
1
+ {"version":3,"file":"WidgetStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/WidgetStateHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Base\n */\n\nimport { castDraft, produce } from \"immer\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { RectangleProps } from \"@itwin/core-react\";\nimport { Point, Rectangle } from \"@itwin/core-react\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type {\n FloatingWidgetState,\n PopoutWidgetState,\n WidgetState,\n} from \"../WidgetState\";\nimport { getTabLocation } from \"../TabLocation\";\nimport type { PanelWidgetLocation } from \"../WidgetLocation\";\nimport {\n getWidgetLocation,\n isFloatingWidgetLocation,\n isPanelWidgetLocation,\n isPopoutWidgetLocation,\n} from \"../WidgetLocation\";\nimport {\n category,\n initSizeProps,\n setRectangleProps,\n toRectangleProps,\n} from \"./NineZoneStateHelpers\";\nimport { updatePanelState } from \"./PanelStateHelpers\";\nimport { updateTabState } from \"./TabStateHelpers\";\n\n/** @internal */\nexport function createWidgetState(\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n args?: Partial<WidgetState>\n): WidgetState {\n if (tabs.length === 0)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Widget must contain tabs\");\n return {\n activeTabId: tabs[0],\n minimized: false,\n ...args,\n id,\n tabs,\n };\n}\n\n/** @internal */\nexport function updateWidgetState(\n state: NineZoneState,\n id: WidgetState[\"id\"],\n args: Partial<WidgetState>\n) {\n return produce(state, (draft) => {\n const widget = getWidgetState(draft, id);\n draft.widgets[id] = {\n ...widget,\n ...castDraft(args),\n };\n });\n}\n\n/** @internal */\nexport function addWidgetState(\n state: NineZoneState,\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n args?: Partial<WidgetState>\n) {\n // eslint-disable-next-line deprecation/deprecation\n if (id in state.widgets) throw new UiError(category, \"Widget already exists\");\n\n const widget = createWidgetState(id, tabs, args);\n for (const tabId of widget.tabs) {\n if (!(tabId in state.tabs))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab does not exist\", undefined, () => ({\n tabId,\n }));\n\n const location = getTabLocation(state, tabId);\n if (location)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n category,\n \"Tab is already in a widget\",\n undefined,\n () => ({ tabId, widgetId: location.widgetId })\n );\n }\n return produce(state, (draft) => {\n draft.widgets[id] = castDraft(widget);\n });\n}\n\n/** @internal */\nexport function removeWidget(\n state: NineZoneState,\n id: WidgetState[\"id\"]\n): NineZoneState {\n const location = getWidgetLocation(state, id);\n // eslint-disable-next-line deprecation/deprecation\n if (!location) throw new UiError(category, \"Widget not found\");\n\n if (isFloatingWidgetLocation(location))\n return removeFloatingWidget(state, id);\n if (isPopoutWidgetLocation(location)) return removePopoutWidget(state, id);\n return removePanelWidget(state, id, location);\n}\n\n/** @internal */\nexport function removeWidgetState(\n state: NineZoneState,\n id: WidgetState[\"id\"]\n): NineZoneState {\n assertWidgetState(state, id);\n return produce(state, (draft) => {\n delete draft.widgets[id];\n });\n}\n\n/** @internal */\nexport function createFloatingWidgetState(\n id: FloatingWidgetState[\"id\"],\n args?: Partial<FloatingWidgetState>\n): FloatingWidgetState {\n const bounds = toRectangleProps(args?.bounds);\n return {\n home: {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n },\n ...args,\n bounds,\n id,\n };\n}\n\n/** @internal */\nexport function createPopoutWidgetState(\n id: PopoutWidgetState[\"id\"],\n args?: Partial<PopoutWidgetState>\n): PopoutWidgetState {\n const bounds = toRectangleProps(args?.bounds);\n const home: PopoutWidgetState[\"home\"] = args?.home\n ? args.home\n : {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n };\n return {\n ...args,\n home,\n bounds,\n id,\n };\n}\n\n/** @internal */\nexport function updateFloatingWidgetState(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"],\n args: Partial<FloatingWidgetState>\n) {\n if (!(id in state.floatingWidgets.byId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Floating widget does not exist\");\n\n return produce(state, (draft) => {\n const floatingWidget = draft.floatingWidgets.byId[id];\n const { bounds, ...other } = args;\n draft.floatingWidgets.byId[id] = {\n ...floatingWidget,\n ...other,\n };\n if (bounds) setRectangleProps(floatingWidget.bounds, bounds);\n });\n}\n\n/** Removes floating widget from the UI and deletes the widget state.\n * @internal\n */\nexport function removeFloatingWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"]\n): NineZoneState {\n if (!(id in state.floatingWidgets.byId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Floating widget does not exist\");\n\n state = produce(state, (draft) => {\n delete draft.floatingWidgets.byId[id];\n const idIndex = draft.floatingWidgets.allIds.indexOf(id);\n draft.floatingWidgets.allIds.splice(idIndex, 1);\n });\n return removeWidgetState(state, id);\n}\n\n/** Removes popout widget from the UI and deletes the widget state.\n * @internal\n */\nexport function removePopoutWidget(\n state: NineZoneState,\n id: PopoutWidgetState[\"id\"]\n) {\n if (!(id in state.popoutWidgets.byId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Popout widget does not exist\");\n\n state = produce(state, (draft) => {\n delete draft.popoutWidgets.byId[id];\n const index = state.popoutWidgets.allIds.indexOf(id);\n draft.popoutWidgets.allIds.splice(index, 1);\n });\n return removeWidgetState(state, id);\n}\n\n/** @internal */\nexport function removePanelWidget(\n state: NineZoneState,\n id: WidgetState[\"id\"],\n location?: PanelWidgetLocation\n): NineZoneState {\n location = location || findPanelWidget(state, id);\n // eslint-disable-next-line deprecation/deprecation\n if (!location) throw new UiError(category, \"Panel widget not found\");\n\n state = updatePanelState(state, location.side, (draft) => {\n assert(!!location);\n draft.widgets.splice(location.index, 1);\n });\n\n const widgets = state.panels[location.side].widgets;\n const expandedWidget = widgets.find((widgetId) => {\n const widget = getWidgetState(state, widgetId);\n return !widget.minimized;\n });\n if (!expandedWidget && widgets.length > 0) {\n const firstWidgetId = widgets[0];\n state = updateWidgetState(state, firstWidgetId, {\n minimized: false,\n });\n }\n\n return removeWidgetState(state, id);\n}\n\nfunction findPanelWidget(state: NineZoneState, id: WidgetState[\"id\"]) {\n const location = getWidgetLocation(state, id);\n if (location && isPanelWidgetLocation(location)) return location;\n return undefined;\n}\n\n/** @internal */\nexport function assertWidgetState(state: NineZoneState, id: WidgetState[\"id\"]) {\n if (!(id in state.widgets))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Widget does not exist\", undefined, () => ({\n id,\n }));\n}\n\n/** @internal */\nexport function getWidgetState<T extends NineZoneState>(\n state: T,\n id: WidgetState[\"id\"]\n): T[\"widgets\"][0] {\n assertWidgetState(state, id);\n return state.widgets[id] as T[\"widgets\"][0];\n}\n\n/** @internal */\nexport function setWidgetActiveTabId(\n state: NineZoneState,\n widgetId: WidgetState[\"id\"],\n tabId: WidgetState[\"activeTabId\"]\n): NineZoneState {\n const widget = getWidgetState(state, widgetId);\n if (!widget.tabs.includes(tabId))\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Tab is not in a widget\");\n\n state = updateWidgetState(state, widgetId, {\n activeTabId: tabId,\n });\n\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n if (floatingWidget) {\n const activeTab = state.tabs[tabId];\n const preferredFloatingWidgetSize = Rectangle.create(\n floatingWidget.bounds\n ).getSize();\n state = updateTabState(state, activeTab.id, (draft) => {\n initSizeProps(\n draft,\n \"preferredFloatingWidgetSize\",\n preferredFloatingWidgetSize\n );\n });\n }\n return state;\n}\n\n/** @internal */\nexport function getNewFloatingWidgetBounds(\n state: NineZoneState\n): RectangleProps {\n // Matches min size (to handle auto-sized floating widgets correctly).\n const size = { height: 120, width: 200 };\n const initialPosition = new Point(360, 340);\n\n const nzBounds = Rectangle.createFromSize(state.size);\n const widgetsBounds = nzBounds.inset(20, 20, 20, 20);\n const offset = new Point(40, 40);\n\n let bounds = Rectangle.createFromSize(size);\n if (state.floatingWidgets.allIds.length === 0) {\n // Initial floating widget position.\n bounds = bounds.offset(initialPosition);\n } else {\n // Position is relative to last floating widget if available.\n const widgetId =\n state.floatingWidgets.allIds[state.floatingWidgets.allIds.length - 1];\n const widget = state.floatingWidgets.byId[widgetId];\n const widgetBounds = Rectangle.create(widget.bounds);\n\n // Bounds relative to top left of a last floating widget.\n const topLeft = widgetBounds.topLeft().offset(offset);\n bounds = bounds.offset(topLeft);\n\n // Bottom right of new bounds should also be outside of a floating widget.\n const widgetBottomRight = new Point(\n widgetBounds.right,\n widgetBounds.bottom\n );\n const minBottomRight = widgetBottomRight.offset(offset);\n const x = Math.max(0, minBottomRight.x - bounds.right);\n const y = Math.max(0, minBottomRight.y - bounds.bottom);\n bounds = bounds.offset({ x, y });\n }\n\n // TODO: might still end up with a bunch of overlapping widgets.\n if (bounds.bottom >= widgetsBounds.bottom) {\n bounds = bounds.setPosition({ x: bounds.left, y: widgetsBounds.top });\n }\n if (bounds.right >= widgetsBounds.right) {\n bounds = bounds.setPosition({\n x: widgetsBounds.left,\n y: widgetsBounds.top,\n });\n }\n bounds = bounds.containIn(widgetsBounds);\n return bounds.toProps();\n}\n\n/** @internal */\nexport function addFloatingWidget(\n state: NineZoneState,\n id: FloatingWidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n floatingWidgetArgs?: Partial<FloatingWidgetState>,\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n if (id in state.floatingWidgets.byId)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Floating widget already exists\");\n\n state = addWidgetState(state, id, tabs, widgetArgs);\n\n let bounds = floatingWidgetArgs?.bounds;\n if (!bounds) {\n bounds = getNewFloatingWidgetBounds(state);\n }\n\n const tabId = tabs[0];\n const tab = state.tabs[tabId];\n const resizable = tab.isFloatingWidgetResizable;\n\n const floatingWidget = createFloatingWidgetState(id, {\n bounds,\n resizable,\n ...floatingWidgetArgs,\n });\n return produce(state, (stateDraft) => {\n stateDraft.floatingWidgets.byId[id] = floatingWidget;\n stateDraft.floatingWidgets.allIds.push(id);\n });\n}\n\n/** @internal */\nexport function addPopoutWidget(\n state: NineZoneState,\n id: PopoutWidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n popoutWidgetArgs?: Partial<PopoutWidgetState>,\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n if (tabs.length !== 1)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(\n category,\n \"Popout widget should contain one tab only\",\n undefined,\n () => ({ tabs })\n );\n\n const popoutWidget = createPopoutWidgetState(id, popoutWidgetArgs);\n state = addWidgetState(state, id, tabs, widgetArgs);\n return produce(state, (stateDraft) => {\n stateDraft.popoutWidgets.byId[id] = popoutWidget;\n stateDraft.popoutWidgets.allIds.push(id);\n });\n}\n\n/** @internal */\nexport function floatingWidgetBringToFront(\n state: NineZoneState,\n floatingWidgetId: FloatingWidgetState[\"id\"]\n): NineZoneState {\n return produce(state, (draft) => {\n const idIndex = draft.floatingWidgets.allIds.indexOf(floatingWidgetId);\n const spliced = draft.floatingWidgets.allIds.splice(idIndex, 1);\n draft.floatingWidgets.allIds.push(spliced[0]);\n });\n}\n"]}
@@ -33,7 +33,7 @@ function TitleBarTarget() {
33
33
  // istanbul ignore next
34
34
  const hidden = !allowedTarget ||
35
35
  (((!draggedTab && !draggedWidgetId) || draggedWidgetId === widgetId) &&
36
- !(activeHomeState?.widgetId === widgetId));
36
+ !((activeHomeState === null || activeHomeState === void 0 ? void 0 : activeHomeState.widgetId) === widgetId));
37
37
  const className = (0, classnames_1.default)("nz-target-titleBarTarget", hidden && "nz-hidden",
38
38
  // istanbul ignore next
39
39
  cursorType && (0, CursorOverlay_1.getCursorClassName)(cursorType));
@@ -1 +1 @@
1
- {"version":3,"file":"TitleBarTarget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/target/TitleBarTarget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA+B;AAC/B,2CAAoC;AACpC,+BAA+B;AAC/B,sDAA6C;AAC7C,qDAAwE;AACxE,+CAAqD;AACrD,kEAAoE;AAEpE,6CAAmD;AACnD,sDAAmD;AACnD,qEAAkE;AAElE,qDAAgD;AAChD,iDAA0D;AAE1D,gBAAgB;AAChB,SAAgB,cAAc;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,4BAAiB,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,oCAAsB,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAe,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,IAAA,+BAAoB,GAAE,CAAC;IAC/C,IAAA,qBAAM,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,uBAAS,EAAiB,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,IAAA,+CAAsB,EAAC,QAAQ,CAAC,CAAC;IAEvD,uBAAuB;IACvB,MAAM,MAAM,GACV,CAAC,aAAa;QACd,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,eAAe,CAAC,IAAI,eAAe,KAAK,QAAQ,CAAC;YAClE,CAAC,CAAC,eAAe,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,0BAA0B,EAC1B,MAAM,IAAI,WAAW;IACrB,uBAAuB;IACvB,UAAU,IAAI,IAAA,kCAAkB,EAAC,UAAU,CAAC,CAC7C,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG;QACjC,oBAAC,uBAAU,OAAG,CACV,CACP,CAAC;AACJ,CAAC;AA1BD,wCA0BC;AAED,SAAS,aAAa,CAAC,QAA2B;IAChD,OAAO,KAAK,CAAC,OAAO,CAAwB,GAAG,EAAE;QAC/C,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ;SACT,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./TitleBarTarget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { DraggedWidgetIdContext, useTarget } from \"../base/DragManager\";\nimport { CursorTypeContext } from \"../base/NineZone\";\nimport { getCursorClassName } from \"../widget-panels/CursorOverlay\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport { WidgetIdContext } from \"../widget/Widget\";\nimport { TabOutline } from \"../outline/TabOutline\";\nimport { useAllowedWidgetTarget } from \"./useAllowedWidgetTarget\";\nimport type { WidgetDropTargetState } from \"../state/DropTargetState\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { useSendBackHomeState } from \"../widget/SendBack\";\n\n/** @internal */\nexport function TitleBarTarget() {\n const cursorType = React.useContext(CursorTypeContext);\n const draggedWidgetId = React.useContext(DraggedWidgetIdContext);\n const widgetId = React.useContext(WidgetIdContext);\n const activeHomeState = useSendBackHomeState();\n assert(!!widgetId);\n const draggedTab = useLayout((state) => !!state.draggedTab);\n const [ref] = useTarget<HTMLDivElement>(useTargetArgs(widgetId));\n const allowedTarget = useAllowedWidgetTarget(widgetId);\n\n // istanbul ignore next\n const hidden =\n !allowedTarget ||\n (((!draggedTab && !draggedWidgetId) || draggedWidgetId === widgetId) &&\n !(activeHomeState?.widgetId === widgetId));\n const className = classnames(\n \"nz-target-titleBarTarget\",\n hidden && \"nz-hidden\",\n // istanbul ignore next\n cursorType && getCursorClassName(cursorType)\n );\n return (\n <div className={className} ref={ref}>\n <TabOutline />\n </div>\n );\n}\n\nfunction useTargetArgs(widgetId: WidgetState[\"id\"]) {\n return React.useMemo<WidgetDropTargetState>(() => {\n return {\n type: \"widget\",\n widgetId,\n };\n }, [widgetId]);\n}\n"]}
1
+ {"version":3,"file":"TitleBarTarget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/target/TitleBarTarget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,iCAA+B;AAC/B,2CAAoC;AACpC,+BAA+B;AAC/B,sDAA6C;AAC7C,qDAAwE;AACxE,+CAAqD;AACrD,kEAAoE;AAEpE,6CAAmD;AACnD,sDAAmD;AACnD,qEAAkE;AAElE,qDAAgD;AAChD,iDAA0D;AAE1D,gBAAgB;AAChB,SAAgB,cAAc;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,4BAAiB,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,oCAAsB,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAe,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,IAAA,+BAAoB,GAAE,CAAC;IAC/C,IAAA,qBAAM,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,uBAAS,EAAiB,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,IAAA,+CAAsB,EAAC,QAAQ,CAAC,CAAC;IAEvD,uBAAuB;IACvB,MAAM,MAAM,GACV,CAAC,aAAa;QACd,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,eAAe,CAAC,IAAI,eAAe,KAAK,QAAQ,CAAC;YAClE,CAAC,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,MAAK,QAAQ,CAAC,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,0BAA0B,EAC1B,MAAM,IAAI,WAAW;IACrB,uBAAuB;IACvB,UAAU,IAAI,IAAA,kCAAkB,EAAC,UAAU,CAAC,CAC7C,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG;QACjC,oBAAC,uBAAU,OAAG,CACV,CACP,CAAC;AACJ,CAAC;AA1BD,wCA0BC;AAED,SAAS,aAAa,CAAC,QAA2B;IAChD,OAAO,KAAK,CAAC,OAAO,CAAwB,GAAG,EAAE;QAC/C,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ;SACT,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./TitleBarTarget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { DraggedWidgetIdContext, useTarget } from \"../base/DragManager\";\nimport { CursorTypeContext } from \"../base/NineZone\";\nimport { getCursorClassName } from \"../widget-panels/CursorOverlay\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport { WidgetIdContext } from \"../widget/Widget\";\nimport { TabOutline } from \"../outline/TabOutline\";\nimport { useAllowedWidgetTarget } from \"./useAllowedWidgetTarget\";\nimport type { WidgetDropTargetState } from \"../state/DropTargetState\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { useSendBackHomeState } from \"../widget/SendBack\";\n\n/** @internal */\nexport function TitleBarTarget() {\n const cursorType = React.useContext(CursorTypeContext);\n const draggedWidgetId = React.useContext(DraggedWidgetIdContext);\n const widgetId = React.useContext(WidgetIdContext);\n const activeHomeState = useSendBackHomeState();\n assert(!!widgetId);\n const draggedTab = useLayout((state) => !!state.draggedTab);\n const [ref] = useTarget<HTMLDivElement>(useTargetArgs(widgetId));\n const allowedTarget = useAllowedWidgetTarget(widgetId);\n\n // istanbul ignore next\n const hidden =\n !allowedTarget ||\n (((!draggedTab && !draggedWidgetId) || draggedWidgetId === widgetId) &&\n !(activeHomeState?.widgetId === widgetId));\n const className = classnames(\n \"nz-target-titleBarTarget\",\n hidden && \"nz-hidden\",\n // istanbul ignore next\n cursorType && getCursorClassName(cursorType)\n );\n return (\n <div className={className} ref={ref}>\n <TabOutline />\n </div>\n );\n}\n\nfunction useTargetArgs(widgetId: WidgetState[\"id\"]) {\n return React.useMemo<WidgetDropTargetState>(() => {\n return {\n type: \"widget\",\n widgetId,\n };\n }, [widgetId]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Content.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,gHAAgH;IAChH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,qBA4B1E"}
1
+ {"version":3,"file":"Content.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Content.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,gHAAgH;IAChH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,qBA2B1E"}
@@ -8,7 +8,6 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.ScrollableWidgetContent = void 0;
11
- const core_bentley_1 = require("@itwin/core-bentley");
12
11
  const core_react_1 = require("@itwin/core-react");
13
12
  const React = require("react");
14
13
  const useTransientState_1 = require("../../widget-panels/useTransientState");
@@ -20,12 +19,13 @@ function ScrollableWidgetContent(props) {
20
19
  const scrollPosition = React.useRef(new core_react_1.Point());
21
20
  const ref = React.useRef(null);
22
21
  const onSave = React.useCallback(() => {
23
- // istanbul ignore else
24
- if (!!ref.current)
25
- scrollPosition.current = new core_react_1.Point(ref.current.scrollLeft, ref.current.scrollTop);
22
+ if (!ref.current)
23
+ return;
24
+ scrollPosition.current = new core_react_1.Point(ref.current.scrollLeft, ref.current.scrollTop);
26
25
  }, []);
27
26
  const onRestore = React.useCallback(() => {
28
- (0, core_bentley_1.assert)(!!ref.current);
27
+ if (!ref.current)
28
+ return;
29
29
  ref.current.scrollLeft = scrollPosition.current.x;
30
30
  ref.current.scrollTop = scrollPosition.current.y;
31
31
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Content.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,sDAA6C;AAC7C,kDAA0C;AAC1C,+BAA+B;AAC/B,6EAA0E;AAC1E,0BAAwB;AAYxB;;GAEG;AACH,SAAgB,uBAAuB,CAAC,KAAmC;IACzE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,kBAAK,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpC,uBAAuB;QACvB,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO;YACf,cAAc,CAAC,OAAO,GAAG,IAAI,kBAAK,CAChC,GAAG,CAAC,OAAO,CAAC,UAAU,EACtB,GAAG,CAAC,OAAO,CAAC,SAAS,CACtB,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvC,IAAA,qBAAM,EAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,IAAA,qCAAiB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,OAAO,CACL,6CACgB,KAAK,CAAC,MAAM,2BACH,KAAK,CAAC,UAAU,oBACxB,gBAAgB,EAC/B,SAAS,EAAC,mBAAmB,EAC7B,GAAG,EAAE,GAAG,IAEP,KAAK,CAAC,QAAQ,CACX,CACP,CAAC;AACJ,CAAC;AA5BD,0DA4BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { Point } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport { useTransientState } from \"../../widget-panels/useTransientState\";\nimport \"./Content.scss\";\n\n/** Properties of [[ScrollableWidgetContent]] component.\n * @internal\n */\nexport interface ScrollableWidgetContentProps {\n /** Optional unique identifier for item. If defined it will be added to DOM Element attribute as data-item-id */\n itemId?: string;\n providerId?: string;\n children?: React.ReactNode;\n}\n\n/** Component that enables widget content scrolling.\n * @internal\n */\nexport function ScrollableWidgetContent(props: ScrollableWidgetContentProps) {\n const scrollPosition = React.useRef(new Point());\n const ref = React.useRef<HTMLDivElement>(null);\n const onSave = React.useCallback(() => {\n // istanbul ignore else\n if (!!ref.current)\n scrollPosition.current = new Point(\n ref.current.scrollLeft,\n ref.current.scrollTop\n );\n }, []);\n const onRestore = React.useCallback(() => {\n assert(!!ref.current);\n ref.current.scrollLeft = scrollPosition.current.x;\n ref.current.scrollTop = scrollPosition.current.y;\n }, []);\n useTransientState(onSave, onRestore);\n return (\n <div\n data-item-id={props.itemId}\n data-item-provider-id={props.providerId}\n data-item-type=\"widget-content\"\n className=\"nz-widget-content\"\n ref={ref}\n >\n {props.children}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Content.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,kDAA0C;AAC1C,+BAA+B;AAC/B,6EAA0E;AAC1E,0BAAwB;AAYxB;;GAEG;AACH,SAAgB,uBAAuB,CAAC,KAAmC;IACzE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,kBAAK,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,cAAc,CAAC,OAAO,GAAG,IAAI,kBAAK,CAChC,GAAG,CAAC,OAAO,CAAC,UAAU,EACtB,GAAG,CAAC,OAAO,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO;QACzB,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,IAAA,qCAAiB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,OAAO,CACL,6CACgB,KAAK,CAAC,MAAM,2BACH,KAAK,CAAC,UAAU,oBACxB,gBAAgB,EAC/B,SAAS,EAAC,mBAAmB,EAC7B,GAAG,EAAE,GAAG,IAEP,KAAK,CAAC,QAAQ,CACX,CACP,CAAC;AACJ,CAAC;AA3BD,0DA2BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport { Point } from \"@itwin/core-react\";\nimport * as React from \"react\";\nimport { useTransientState } from \"../../widget-panels/useTransientState\";\nimport \"./Content.scss\";\n\n/** Properties of [[ScrollableWidgetContent]] component.\n * @internal\n */\nexport interface ScrollableWidgetContentProps {\n /** Optional unique identifier for item. If defined it will be added to DOM Element attribute as data-item-id */\n itemId?: string;\n providerId?: string;\n children?: React.ReactNode;\n}\n\n/** Component that enables widget content scrolling.\n * @internal\n */\nexport function ScrollableWidgetContent(props: ScrollableWidgetContentProps) {\n const scrollPosition = React.useRef(new Point());\n const ref = React.useRef<HTMLDivElement>(null);\n const onSave = React.useCallback(() => {\n if (!ref.current) return;\n scrollPosition.current = new Point(\n ref.current.scrollLeft,\n ref.current.scrollTop\n );\n }, []);\n const onRestore = React.useCallback(() => {\n if (!ref.current) return;\n ref.current.scrollLeft = scrollPosition.current.x;\n ref.current.scrollTop = scrollPosition.current.y;\n }, []);\n useTransientState(onSave, onRestore);\n return (\n <div\n data-item-id={props.itemId}\n data-item-provider-id={props.providerId}\n data-item-type=\"widget-content\"\n className=\"nz-widget-content\"\n ref={ref}\n >\n {props.children}\n </div>\n );\n}\n"]}
@@ -21,7 +21,7 @@ function WidgetContentRenderers() {
21
21
  const tabIds = (0, LayoutStore_1.useLayout)((state) => {
22
22
  return Object.keys(state.tabs);
23
23
  }, true);
24
- const toolSettingsTabId = (0, LayoutStore_1.useLayout)((state) => state.toolSettings?.tabId);
24
+ const toolSettingsTabId = (0, LayoutStore_1.useLayout)((state) => { var _a; return (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId; });
25
25
  return (React.createElement(React.Fragment, null, tabIds.map((tabId) => {
26
26
  const children = tabId === toolSettingsTabId ? toolSettingsContent : widgetContent;
27
27
  return (React.createElement(WidgetContentRenderer, { key: tabId, tabId: tabId }, children));
@@ -50,7 +50,7 @@ function WidgetContentRenderer(props) {
50
50
  widgetContentManager.onRestoreTransientState.raiseEvent(props.tabId);
51
51
  }
52
52
  return () => {
53
- for (const child of parent?.children || []) {
53
+ for (const child of (parent === null || parent === void 0 ? void 0 : parent.children) || []) {
54
54
  if (child === container.current) {
55
55
  parent.removeChild(child);
56
56
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ContentRenderer.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/ContentRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./ContentRenderer.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport {\n ToolSettingsNodeContext,\n WidgetContentNodeContext,\n} from \"../base/NineZone\";\nimport type { TabState } from \"../state/TabState\";\nimport {\n useContainersStore,\n WidgetContentManagerContext,\n} from \"./ContentManager\";\nimport { useLayout } from \"../base/LayoutStore\";\n\n/** @internal */\nexport function WidgetContentRenderers() {\n const widgetContent = React.useContext(WidgetContentNodeContext);\n const toolSettingsContent = React.useContext(ToolSettingsNodeContext);\n const tabIds = useLayout((state) => {\n return Object.keys(state.tabs);\n }, true);\n const toolSettingsTabId = useLayout((state) => state.toolSettings?.tabId);\n return (\n <>\n {tabIds.map((tabId) => {\n const children =\n tabId === toolSettingsTabId ? toolSettingsContent : widgetContent;\n return (\n <WidgetContentRenderer key={tabId} tabId={tabId}>\n {children}\n </WidgetContentRenderer>\n );\n })}\n </>\n );\n}\n\ninterface WidgetContentRendererProps {\n children?: React.ReactNode;\n tabId: TabState[\"id\"];\n}\n\n/** @internal */\nexport function WidgetContentRenderer(props: WidgetContentRendererProps) {\n const renderTo = useContainersStore((state) => state.containers[props.tabId]);\n const unloaded = useLayout((state) => !!state.tabs[props.tabId].unloaded);\n const widgetContentManager = React.useContext(WidgetContentManagerContext);\n const container = React.useRef<HTMLDivElement>(undefined!);\n if (!container.current) {\n container.current = document.createElement(\"div\");\n container.current.classList.add(\"nz-widget-contentRenderer\");\n }\n React.useLayoutEffect(() => {\n if (!widgetContentManager) return;\n\n const parent = renderTo;\n if (parent) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n\n parent.appendChild(container.current);\n widgetContentManager.onRestoreTransientState.raiseEvent(props.tabId);\n }\n return () => {\n for (const child of parent?.children || []) {\n if (child === container.current) {\n parent!.removeChild(child);\n return;\n }\n }\n };\n }, [renderTo, widgetContentManager, props.tabId]);\n return ReactDOM.createPortal(\n <div\n style={{ height: \"100%\", width: \"100%\" }}\n id={`content-container:${props.tabId}`}\n >\n <TabIdContext.Provider value={props.tabId}>\n {unloaded ? null : props.children}\n </TabIdContext.Provider>\n </div>,\n container.current\n );\n}\n\n/** @internal */\nexport const TabIdContext = React.createContext<TabState[\"id\"] | undefined>(\n undefined\n);\nTabIdContext.displayName = \"nz:TabIdContext\";\n\n/** @internal */\nexport function useTabTransientState(\n tabId: string,\n onSave?: () => void,\n onRestore?: () => void\n) {\n const widgetContentManager = React.useContext(WidgetContentManagerContext);\n React.useEffect(() => {\n if (!widgetContentManager) return;\n\n return widgetContentManager.onSaveTransientState.addListener((id) => {\n tabId === id && onSave && onSave();\n });\n }, [widgetContentManager, onSave, tabId]);\n React.useEffect(() => {\n if (!widgetContentManager) return;\n\n return widgetContentManager.onRestoreTransientState.addListener((id) => {\n tabId === id && onRestore && onRestore();\n });\n }, [widgetContentManager, onRestore, tabId]);\n}\n"]}
1
+ {"version":3,"file":"ContentRenderer.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/ContentRenderer.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,kCAAgC;AAChC,+BAA+B;AAC/B,sCAAsC;AACtC,+CAG0B;AAE1B,qDAG0B;AAC1B,qDAAgD;AAEhD,gBAAgB;AAChB,SAAgB,sBAAsB;IACpC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,mCAAwB,CAAC,CAAC;IACjE,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,kCAAuB,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,EAAE,IAAI,CAAC,CAAC;IACT,MAAM,iBAAiB,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,KAAK,CAAA,EAAA,CAAC,CAAC;IAC1E,OAAO,CACL,0CACG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,MAAM,QAAQ,GACZ,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC;QACpE,OAAO,CACL,oBAAC,qBAAqB,IAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAC5C,QAAQ,CACa,CACzB,CAAC;IACJ,CAAC,CAAC,CACD,CACJ,CAAC;AACJ,CAAC;AApBD,wDAoBC;AAOD,gBAAgB;AAChB,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,MAAM,QAAQ,GAAG,IAAA,mCAAkB,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAAC,4CAA2B,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAiB,SAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;QACtB,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;KAC9D;IACD,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,oBAAoB;YAAE,OAAO;QAElC,MAAM,MAAM,GAAG,QAAQ,CAAC;QACxB,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,UAAU,EAAE;gBACxB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aACvC;YAED,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACtC,oBAAoB,CAAC,uBAAuB,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtE;QACD,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,KAAK,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,KAAI,EAAE,EAAE;gBAC1C,IAAI,KAAK,KAAK,SAAS,CAAC,OAAO,EAAE;oBAC/B,MAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC3B,OAAO;iBACR;aACF;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,OAAO,QAAQ,CAAC,YAAY,CAC1B,6BACE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EACxC,EAAE,EAAE,qBAAqB,KAAK,CAAC,KAAK,EAAE;QAEtC,oBAAC,oBAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IACtC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CACX,CACpB,EACN,SAAS,CAAC,OAAO,CAClB,CAAC;AACJ,CAAC;AAzCD,sDAyCC;AAED,gBAAgB;AACH,QAAA,YAAY,GAAG,KAAK,CAAC,aAAa,CAC7C,SAAS,CACV,CAAC;AACF,oBAAY,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAE7C,gBAAgB;AAChB,SAAgB,oBAAoB,CAClC,KAAa,EACb,MAAmB,EACnB,SAAsB;IAEtB,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAAC,4CAA2B,CAAC,CAAC;IAC3E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,oBAAoB;YAAE,OAAO;QAElC,OAAO,oBAAoB,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;YAClE,KAAK,KAAK,EAAE,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,oBAAoB;YAAE,OAAO;QAElC,OAAO,oBAAoB,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;YACrE,KAAK,KAAK,EAAE,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AApBD,oDAoBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./ContentRenderer.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport {\n ToolSettingsNodeContext,\n WidgetContentNodeContext,\n} from \"../base/NineZone\";\nimport type { TabState } from \"../state/TabState\";\nimport {\n useContainersStore,\n WidgetContentManagerContext,\n} from \"./ContentManager\";\nimport { useLayout } from \"../base/LayoutStore\";\n\n/** @internal */\nexport function WidgetContentRenderers() {\n const widgetContent = React.useContext(WidgetContentNodeContext);\n const toolSettingsContent = React.useContext(ToolSettingsNodeContext);\n const tabIds = useLayout((state) => {\n return Object.keys(state.tabs);\n }, true);\n const toolSettingsTabId = useLayout((state) => state.toolSettings?.tabId);\n return (\n <>\n {tabIds.map((tabId) => {\n const children =\n tabId === toolSettingsTabId ? toolSettingsContent : widgetContent;\n return (\n <WidgetContentRenderer key={tabId} tabId={tabId}>\n {children}\n </WidgetContentRenderer>\n );\n })}\n </>\n );\n}\n\ninterface WidgetContentRendererProps {\n children?: React.ReactNode;\n tabId: TabState[\"id\"];\n}\n\n/** @internal */\nexport function WidgetContentRenderer(props: WidgetContentRendererProps) {\n const renderTo = useContainersStore((state) => state.containers[props.tabId]);\n const unloaded = useLayout((state) => !!state.tabs[props.tabId].unloaded);\n const widgetContentManager = React.useContext(WidgetContentManagerContext);\n const container = React.useRef<HTMLDivElement>(undefined!);\n if (!container.current) {\n container.current = document.createElement(\"div\");\n container.current.classList.add(\"nz-widget-contentRenderer\");\n }\n React.useLayoutEffect(() => {\n if (!widgetContentManager) return;\n\n const parent = renderTo;\n if (parent) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n\n parent.appendChild(container.current);\n widgetContentManager.onRestoreTransientState.raiseEvent(props.tabId);\n }\n return () => {\n for (const child of parent?.children || []) {\n if (child === container.current) {\n parent!.removeChild(child);\n return;\n }\n }\n };\n }, [renderTo, widgetContentManager, props.tabId]);\n return ReactDOM.createPortal(\n <div\n style={{ height: \"100%\", width: \"100%\" }}\n id={`content-container:${props.tabId}`}\n >\n <TabIdContext.Provider value={props.tabId}>\n {unloaded ? null : props.children}\n </TabIdContext.Provider>\n </div>,\n container.current\n );\n}\n\n/** @internal */\nexport const TabIdContext = React.createContext<TabState[\"id\"] | undefined>(\n undefined\n);\nTabIdContext.displayName = \"nz:TabIdContext\";\n\n/** @internal */\nexport function useTabTransientState(\n tabId: string,\n onSave?: () => void,\n onRestore?: () => void\n) {\n const widgetContentManager = React.useContext(WidgetContentManagerContext);\n React.useEffect(() => {\n if (!widgetContentManager) return;\n\n return widgetContentManager.onSaveTransientState.addListener((id) => {\n tabId === id && onSave && onSave();\n });\n }, [widgetContentManager, onSave, tabId]);\n React.useEffect(() => {\n if (!widgetContentManager) return;\n\n return widgetContentManager.onRestoreTransientState.addListener((id) => {\n tabId === id && onRestore && onRestore();\n });\n }, [widgetContentManager, onRestore, tabId]);\n}\n"]}
@@ -22,16 +22,17 @@ function FloatingTab() {
22
22
  const { id, position } = (0, LayoutStore_1.useLayout)((state) => {
23
23
  const draggedTab = state.draggedTab;
24
24
  return {
25
- id: draggedTab?.tabId,
26
- position: draggedTab?.position,
25
+ id: draggedTab === null || draggedTab === void 0 ? void 0 : draggedTab.tabId,
26
+ position: draggedTab === null || draggedTab === void 0 ? void 0 : draggedTab.position,
27
27
  };
28
28
  }, true);
29
29
  const { iconSpec, label } = (0, LayoutStore_1.useLayout)((state) => {
30
- const tabId = state.draggedTab?.tabId;
30
+ var _a;
31
+ const tabId = (_a = state.draggedTab) === null || _a === void 0 ? void 0 : _a.tabId;
31
32
  const tab = tabId ? state.tabs[tabId] : undefined;
32
33
  return {
33
- iconSpec: tab?.iconSpec,
34
- label: tab?.label,
34
+ iconSpec: tab === null || tab === void 0 ? void 0 : tab.iconSpec,
35
+ label: tab === null || tab === void 0 ? void 0 : tab.label,
35
36
  };
36
37
  }, true);
37
38
  const dispatch = React.useContext(NineZone_1.NineZoneDispatchContext);
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingTab.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/FloatingTab.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,8BAA4B;AAC5B,2CAAoC;AACpC,+BAA+B;AAC/B,kDAAyC;AAEzC,qDAAiD;AACjD,+CAG0B;AAC1B,qDAAgD;AAEhD;;GAEG;AACH,SAAgB,WAAW;IACzB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,UAAU,EAAE,KAAK;YACrB,QAAQ,EAAE,UAAU,EAAE,QAAQ;SAC/B,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,CAAC;IACT,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE,GAAG,EAAE,QAAQ;YACvB,KAAK,EAAE,GAAG,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,kCAAuB,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,MAAM,EAAE,EAAE;QACT,EAAE;YACA,QAAQ,CAAC;gBACP,IAAI,EAAE,iBAAiB;gBACvB,MAAM;aACP,CAAC,CAAC;IACP,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,CACf,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,MAAM,EAAE,EAAE;QACT,EAAE;YACA,QAAQ,CAAC;gBACP,IAAI,EAAE,qBAAqB;gBAC3B,EAAE;gBACF,MAAM;aACP,CAAC,CAAC;IACP,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,CACf,CAAC;IACF,IAAA,wBAAU,EAAC;QACT,KAAK,EAAE,EAAE,IAAI,EAAE;QACf,MAAM;QACN,SAAS;KACV,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,gCAAqB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,QAAQ,IAAI;QACxB,SAAS,EAAE,aAAa,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,KAAK;KACzD,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,uBAAuB,EACvB,CAAC,QAAQ,IAAI,WAAW,CACzB,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;QACpC,cAAc,IAAI,QAAQ,IAAI,oBAAC,iBAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI;QAC3D,kCAAO,KAAK,CAAQ,CAChB,CACP,CAAC;AACJ,CAAC;AA1DD,kCA0DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./FloatingTab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Icon } from \"@itwin/core-react\";\nimport type { UseDragTabArgs } from \"../base/DragManager\";\nimport { useDragTab } from \"../base/DragManager\";\nimport {\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n} from \"../base/NineZone\";\nimport { useLayout } from \"../base/LayoutStore\";\n\n/** Component that displays a floating tab.\n * @internal\n */\nexport function FloatingTab() {\n const { id, position } = useLayout((state) => {\n const draggedTab = state.draggedTab;\n return {\n id: draggedTab?.tabId,\n position: draggedTab?.position,\n };\n }, true);\n const { iconSpec, label } = useLayout((state) => {\n const tabId = state.draggedTab?.tabId;\n const tab = tabId ? state.tabs[tabId] : undefined;\n return {\n iconSpec: tab?.iconSpec,\n label: tab?.label,\n };\n }, true);\n\n const dispatch = React.useContext(NineZoneDispatchContext);\n const onDrag = React.useCallback<NonNullable<UseDragTabArgs[\"onDrag\"]>>(\n (dragBy) => {\n id &&\n dispatch({\n type: \"WIDGET_TAB_DRAG\",\n dragBy,\n });\n },\n [dispatch, id]\n );\n const onDragEnd = React.useCallback<NonNullable<UseDragTabArgs[\"onDragEnd\"]>>(\n (target) => {\n id &&\n dispatch({\n type: \"WIDGET_TAB_DRAG_END\",\n id,\n target,\n });\n },\n [dispatch, id]\n );\n useDragTab({\n tabId: id || \"\",\n onDrag,\n onDragEnd,\n });\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n const style = position && {\n transform: `translate(${position.x}px, ${position.y}px)`,\n };\n const className = classnames(\n \"nz-widget-floatingTab\",\n !position && \"nz-hidden\"\n );\n return (\n <div className={className} style={style}>\n {showWidgetIcon && iconSpec && <Icon iconSpec={iconSpec} />}\n <span>{label}</span>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"FloatingTab.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/FloatingTab.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,8BAA4B;AAC5B,2CAAoC;AACpC,+BAA+B;AAC/B,kDAAyC;AAEzC,qDAAiD;AACjD,+CAG0B;AAC1B,qDAAgD;AAEhD;;GAEG;AACH,SAAgB,WAAW;IACzB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK;YACrB,QAAQ,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ;SAC/B,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,CAAC;IACT,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAS,EAAC,CAAC,KAAK,EAAE,EAAE;;QAC9C,MAAM,KAAK,GAAG,MAAA,KAAK,CAAC,UAAU,0CAAE,KAAK,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ;YACvB,KAAK,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK;SAClB,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,kCAAuB,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,MAAM,EAAE,EAAE;QACT,EAAE;YACA,QAAQ,CAAC;gBACP,IAAI,EAAE,iBAAiB;gBACvB,MAAM;aACP,CAAC,CAAC;IACP,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,CACf,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,MAAM,EAAE,EAAE;QACT,EAAE;YACA,QAAQ,CAAC;gBACP,IAAI,EAAE,qBAAqB;gBAC3B,EAAE;gBACF,MAAM;aACP,CAAC,CAAC;IACP,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,CACf,CAAC;IACF,IAAA,wBAAU,EAAC;QACT,KAAK,EAAE,EAAE,IAAI,EAAE;QACf,MAAM;QACN,SAAS;KACV,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,gCAAqB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,QAAQ,IAAI;QACxB,SAAS,EAAE,aAAa,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,KAAK;KACzD,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,oBAAU,EAC1B,uBAAuB,EACvB,CAAC,QAAQ,IAAI,WAAW,CACzB,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;QACpC,cAAc,IAAI,QAAQ,IAAI,oBAAC,iBAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI;QAC3D,kCAAO,KAAK,CAAQ,CAChB,CACP,CAAC;AACJ,CAAC;AA1DD,kCA0DC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./FloatingTab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Icon } from \"@itwin/core-react\";\nimport type { UseDragTabArgs } from \"../base/DragManager\";\nimport { useDragTab } from \"../base/DragManager\";\nimport {\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n} from \"../base/NineZone\";\nimport { useLayout } from \"../base/LayoutStore\";\n\n/** Component that displays a floating tab.\n * @internal\n */\nexport function FloatingTab() {\n const { id, position } = useLayout((state) => {\n const draggedTab = state.draggedTab;\n return {\n id: draggedTab?.tabId,\n position: draggedTab?.position,\n };\n }, true);\n const { iconSpec, label } = useLayout((state) => {\n const tabId = state.draggedTab?.tabId;\n const tab = tabId ? state.tabs[tabId] : undefined;\n return {\n iconSpec: tab?.iconSpec,\n label: tab?.label,\n };\n }, true);\n\n const dispatch = React.useContext(NineZoneDispatchContext);\n const onDrag = React.useCallback<NonNullable<UseDragTabArgs[\"onDrag\"]>>(\n (dragBy) => {\n id &&\n dispatch({\n type: \"WIDGET_TAB_DRAG\",\n dragBy,\n });\n },\n [dispatch, id]\n );\n const onDragEnd = React.useCallback<NonNullable<UseDragTabArgs[\"onDragEnd\"]>>(\n (target) => {\n id &&\n dispatch({\n type: \"WIDGET_TAB_DRAG_END\",\n id,\n target,\n });\n },\n [dispatch, id]\n );\n useDragTab({\n tabId: id || \"\",\n onDrag,\n onDragEnd,\n });\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n const style = position && {\n transform: `translate(${position.x}px, ${position.y}px)`,\n };\n const className = classnames(\n \"nz-widget-floatingTab\",\n !position && \"nz-hidden\"\n );\n return (\n <div className={className} style={style}>\n {showWidgetIcon && iconSpec && <Icon iconSpec={iconSpec} />}\n <span>{label}</span>\n </div>\n );\n}\n"]}
@@ -82,6 +82,7 @@ function useFloatingWidgetState() {
82
82
  const id = useFloatingWidgetId();
83
83
  (0, core_bentley_1.assert)(!!id);
84
84
  return (0, LayoutStore_1.useLayout)((state) => {
85
+ var _a;
85
86
  const widget = (0, WidgetStateHelpers_1.getWidgetState)(state, id);
86
87
  const floatingWidget = state.floatingWidgets.byId[id];
87
88
  const tabs = widget.tabs;
@@ -89,7 +90,7 @@ function useFloatingWidgetState() {
89
90
  const activeTab = state.tabs[activeTabId];
90
91
  const userSized = floatingWidget.userSized;
91
92
  const singleTab = 1 === tabs.length;
92
- const toolSettingsTabId = state.toolSettings?.tabId;
93
+ const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
93
94
  const isToolSettingsTab = widget.tabs[0] === toolSettingsTabId;
94
95
  const resizable = !!floatingWidget.resizable && !isToolSettingsTab;
95
96
  const autoSized = singleTab && !userSized;
@@ -260,10 +261,11 @@ exports.useFloatingWidgetId = useFloatingWidgetId;
260
261
  function useWidgetAllowedToDock() {
261
262
  const id = useFloatingWidgetId();
262
263
  return (0, LayoutStore_1.useLayout)((state) => {
264
+ var _a;
263
265
  if (id) {
264
266
  const widget = (0, WidgetStateHelpers_1.getWidgetState)(state, id);
265
267
  const activeTab = state.tabs[widget.activeTabId];
266
- if (activeTab.allowedPanelTargets?.length === 0) {
268
+ if (((_a = activeTab.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.length) === 0) {
267
269
  return false;
268
270
  }
269
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/FloatingWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./FloatingWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react\";\nimport type { UseDragResizeHandleArgs } from \"../base/DragManager\";\nimport {\n DragManagerContext,\n useDragResizeHandle,\n useIsDraggedItem,\n} from \"../base/DragManager\";\nimport {\n FloatingWidgetNodeContext,\n MeasureContext,\n NineZoneDispatchContext,\n UiIsVisibleContext,\n} from \"../base/NineZone\";\nimport type { FloatingWidgetState } from \"../state/WidgetState\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetIdContext, WidgetProvider } from \"./Widget\";\nimport type { PointerCaptorArgs } from \"../base/usePointerCaptor\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { XAndY } from \"../state/internal/NineZoneStateHelpers\";\nimport {\n useIsMaximizedWidget,\n useMaximizedFloatingWidget,\n} from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\ntype FloatingWidgetEdgeHandle = \"left\" | \"right\" | \"top\" | \"bottom\";\ntype FloatingWidgetCornerHandle =\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\";\n\n/** @internal */\nexport type FloatingWidgetResizeHandle =\n | FloatingWidgetEdgeHandle\n | FloatingWidgetCornerHandle;\n\n/** @internal */\nexport interface FloatingWidgetProviderProps {\n id: FloatingWidgetState[\"id\"];\n}\n\n/** @internal */\nexport function FloatingWidgetProvider(props: FloatingWidgetProviderProps) {\n const floatingWidget = React.useContext(FloatingWidgetNodeContext);\n return <WidgetProvider id={props.id}>{floatingWidget}</WidgetProvider>;\n}\n\n/** @internal */\nexport interface FloatingWidgetProps {\n onMouseEnter?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\n/** @internal */\nexport function FloatingWidget(props: FloatingWidgetProps) {\n const uiIsVisible = React.useContext(UiIsVisibleContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const {\n autoSized,\n bounds,\n hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized,\n resizable,\n } = useFloatingWidgetState();\n const hideFloatingWidget = !uiIsVisible && hideWithUiWhenFloating;\n\n const item = React.useMemo(\n () => ({\n id,\n type: \"widget\" as const,\n }),\n [id]\n );\n const dragged = useIsDraggedItem(item);\n const ref = useHandleAutoSize(dragged);\n const maximizedWidget = useMaximizedFloatingWidget();\n\n const className = classnames(\n \"nz-widget-floatingWidget\",\n dragged && \"nz-dragged\",\n isToolSettingsTab && \"nz-floating-toolSettings\",\n minimized && \"nz-minimized\",\n hideFloatingWidget && \"nz-hidden\",\n maximizedWidget.classNames\n );\n const style = React.useMemo(() => {\n const boundsRect = Rectangle.create(bounds);\n const { height, width } = boundsRect.getSize();\n const position = boundsRect.topLeft();\n return {\n transform: `translate(${position.x}px, ${position.y}px)`,\n height: minimized || autoSized ? undefined : height,\n width: autoSized ? undefined : width,\n maxHeight: autoSized ? \"60%\" : undefined,\n maxWidth: autoSized ? \"60%\" : undefined,\n };\n }, [autoSized, bounds, minimized]);\n\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n <WidgetTarget />\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n []\n );\n const handles = React.useMemo(\n () =>\n resizable && (\n <>\n <FloatingWidgetHandle handle=\"left\" />\n <FloatingWidgetHandle handle=\"top\" />\n <FloatingWidgetHandle handle=\"right\" />\n <FloatingWidgetHandle handle=\"bottom\" />\n <FloatingWidgetHandle handle=\"topLeft\" />\n <FloatingWidgetHandle handle=\"topRight\" />\n <FloatingWidgetHandle handle=\"bottomLeft\" />\n <FloatingWidgetHandle handle=\"bottomRight\" />\n </>\n ),\n [resizable]\n );\n return (\n <Widget\n className={className}\n widgetId={id}\n style={{\n ...style,\n ...maximizedWidget.style,\n }}\n ref={ref}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n >\n <WidgetTabBar separator={!minimized} />\n {content}\n {handles}\n </Widget>\n );\n}\n\nfunction useFloatingWidgetState() {\n const id = useFloatingWidgetId();\n assert(!!id);\n return useLayout((state) => {\n const widget = getWidgetState(state, id);\n const floatingWidget = state.floatingWidgets.byId[id];\n const tabs = widget.tabs;\n const activeTabId = widget.activeTabId;\n const activeTab = state.tabs[activeTabId];\n const userSized = floatingWidget.userSized;\n const singleTab = 1 === tabs.length;\n\n const toolSettingsTabId = state.toolSettings?.tabId;\n const isToolSettingsTab = widget.tabs[0] === toolSettingsTabId;\n const resizable = !!floatingWidget.resizable && !isToolSettingsTab;\n const autoSized = singleTab && !userSized;\n return {\n autoSized,\n bounds: floatingWidget.bounds,\n hideWithUiWhenFloating: activeTab.hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized: widget.minimized,\n resizable,\n };\n }, true);\n}\n\n// Re-adjust bounds so that widget is behind pointer when auto-sized.\n// istanbul ignore next\nfunction useHandleAutoSize(dragged: boolean) {\n const dragManager = React.useContext(DragManagerContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const measureNz = React.useContext(MeasureContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const userSized = useLayout(\n (state) => state.floatingWidgets.byId[id].userSized\n );\n const maximizedWidget = useIsMaximizedWidget();\n\n const updatePosition = React.useRef(true);\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useLayoutEffect(() => {\n if (!updatePosition.current) return;\n if (!dragged) return;\n if (maximizedWidget) return;\n if (!dragManager.draggedItem) return;\n if (!ref.current) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const nzBounds = measureNz();\n const pointerPosition = dragManager.draggedItem.info.pointerPosition;\n\n if (bounds.containsPoint(pointerPosition)) return;\n\n // Pointer is outside of tab area. Need to re-adjust widget bounds so that tab is behind pointer\n if (pointerPosition.x > bounds.right) {\n const offset = pointerPosition.x - bounds.right + 20;\n bounds = bounds.offsetX(offset);\n }\n\n // Adjust bounds to be relative to 9z origin\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds: bounds.toProps(),\n });\n dispatch({\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\n id,\n userSized: true,\n });\n updatePosition.current = false;\n }, [dragged, dragManager, dispatch, id, measureNz, maximizedWidget]);\n const handleResize = React.useCallback(() => {\n if (!ref.current) return;\n if (dragged) return;\n if (maximizedWidget) return;\n if (userSized) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n\n // Adjust bounds to be relative to 9z origin\n const nzBounds = measureNz();\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds,\n });\n }, [dispatch, dragged, id, userSized, measureNz, maximizedWidget]);\n const roRef = useResizeObserver(handleResize);\n const refs = useRefs(ref, roRef);\n return refs;\n}\n\ninterface FloatingWidgetHandleProps {\n handle: FloatingWidgetResizeHandle;\n}\n\nfunction FloatingWidgetHandle(props: FloatingWidgetHandleProps) {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const id = useFloatingWidgetId();\n const { handle } = props;\n const relativePosition = React.useRef<Point>(new Point());\n assert(id !== undefined);\n const onDrag = React.useCallback<\n NonNullable<UseDragResizeHandleArgs[\"onDrag\"]>\n >(\n (pointerPosition) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const newRelativePosition = bounds.topLeft().getOffsetTo(pointerPosition);\n const offset = relativePosition.current.getOffsetTo(newRelativePosition);\n const resizeBy = getResizeBy(handle, offset);\n dispatch({\n type: \"FLOATING_WIDGET_RESIZE\",\n id,\n resizeBy,\n });\n },\n [dispatch, handle, id]\n );\n const handleDragStart = useDragResizeHandle({\n handle,\n widgetId: id,\n onDrag,\n });\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const initialPointerPosition = new Point(args.clientX, args.clientY);\n relativePosition.current = bounds\n .topLeft()\n .getOffsetTo(initialPointerPosition);\n handleDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n });\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id,\n });\n },\n [dispatch, handleDragStart, id]\n );\n const pointerCaptorRef = usePointerCaptor(handlePointerDown);\n const ref = React.useRef<HTMLDivElement>(null);\n const refs = useRefs(ref, pointerCaptorRef);\n const isMaximized = useIsMaximizedWidget();\n const className = classnames(\n \"nz-widget-floatingWidget_handle\",\n `nz-${handle}`\n );\n if (isMaximized) return null;\n return <div className={className} ref={refs} />;\n}\n\n/** @internal */\nexport function getResizeBy(handle: FloatingWidgetResizeHandle, offset: XAndY) {\n switch (handle) {\n case \"left\":\n return new Rectangle(-offset.x);\n case \"top\":\n return new Rectangle(0, -offset.y);\n case \"right\":\n return new Rectangle(0, 0, offset.x);\n case \"bottom\":\n return new Rectangle(0, 0, 0, offset.y);\n case \"topLeft\":\n return new Rectangle(-offset.x, -offset.y);\n case \"topRight\":\n return new Rectangle(0, -offset.y, offset.x);\n case \"bottomLeft\":\n return new Rectangle(-offset.x, 0, 0, offset.y);\n case \"bottomRight\":\n return new Rectangle(0, 0, offset.x, offset.y);\n }\n}\n\n/** @internal */\nexport function useFloatingWidgetId(): FloatingWidgetState[\"id\"] | undefined {\n const widgetId = React.useContext(WidgetIdContext);\n return useLayout((state) => {\n if (!widgetId) return undefined;\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n if (!floatingWidget) return undefined;\n\n return widgetId;\n });\n}\n\n/** @internal */\nexport function useWidgetAllowedToDock(): boolean {\n const id = useFloatingWidgetId();\n return useLayout((state) => {\n if (id) {\n const widget = getWidgetState(state, id);\n const activeTab = state.tabs[widget.activeTabId];\n if (activeTab.allowedPanelTargets?.length === 0) {\n return false;\n }\n }\n return true;\n });\n}\n"]}
1
+ {"version":3,"file":"FloatingWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/FloatingWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./FloatingWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react\";\nimport type { UseDragResizeHandleArgs } from \"../base/DragManager\";\nimport {\n DragManagerContext,\n useDragResizeHandle,\n useIsDraggedItem,\n} from \"../base/DragManager\";\nimport {\n FloatingWidgetNodeContext,\n MeasureContext,\n NineZoneDispatchContext,\n UiIsVisibleContext,\n} from \"../base/NineZone\";\nimport type { FloatingWidgetState } from \"../state/WidgetState\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetIdContext, WidgetProvider } from \"./Widget\";\nimport type { PointerCaptorArgs } from \"../base/usePointerCaptor\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { XAndY } from \"../state/internal/NineZoneStateHelpers\";\nimport {\n useIsMaximizedWidget,\n useMaximizedFloatingWidget,\n} from \"../../preview/enable-maximized-widget/useMaximizedWidget\";\n\ntype FloatingWidgetEdgeHandle = \"left\" | \"right\" | \"top\" | \"bottom\";\ntype FloatingWidgetCornerHandle =\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\";\n\n/** @internal */\nexport type FloatingWidgetResizeHandle =\n | FloatingWidgetEdgeHandle\n | FloatingWidgetCornerHandle;\n\n/** @internal */\nexport interface FloatingWidgetProviderProps {\n id: FloatingWidgetState[\"id\"];\n}\n\n/** @internal */\nexport function FloatingWidgetProvider(props: FloatingWidgetProviderProps) {\n const floatingWidget = React.useContext(FloatingWidgetNodeContext);\n return <WidgetProvider id={props.id}>{floatingWidget}</WidgetProvider>;\n}\n\n/** @internal */\nexport interface FloatingWidgetProps {\n onMouseEnter?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\n/** @internal */\nexport function FloatingWidget(props: FloatingWidgetProps) {\n const uiIsVisible = React.useContext(UiIsVisibleContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const {\n autoSized,\n bounds,\n hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized,\n resizable,\n } = useFloatingWidgetState();\n const hideFloatingWidget = !uiIsVisible && hideWithUiWhenFloating;\n\n const item = React.useMemo(\n () => ({\n id,\n type: \"widget\" as const,\n }),\n [id]\n );\n const dragged = useIsDraggedItem(item);\n const ref = useHandleAutoSize(dragged);\n const maximizedWidget = useMaximizedFloatingWidget();\n\n const className = classnames(\n \"nz-widget-floatingWidget\",\n dragged && \"nz-dragged\",\n isToolSettingsTab && \"nz-floating-toolSettings\",\n minimized && \"nz-minimized\",\n hideFloatingWidget && \"nz-hidden\",\n maximizedWidget.classNames\n );\n const style = React.useMemo(() => {\n const boundsRect = Rectangle.create(bounds);\n const { height, width } = boundsRect.getSize();\n const position = boundsRect.topLeft();\n return {\n transform: `translate(${position.x}px, ${position.y}px)`,\n height: minimized || autoSized ? undefined : height,\n width: autoSized ? undefined : width,\n maxHeight: autoSized ? \"60%\" : undefined,\n maxWidth: autoSized ? \"60%\" : undefined,\n };\n }, [autoSized, bounds, minimized]);\n\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n <WidgetTarget />\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n []\n );\n const handles = React.useMemo(\n () =>\n resizable && (\n <>\n <FloatingWidgetHandle handle=\"left\" />\n <FloatingWidgetHandle handle=\"top\" />\n <FloatingWidgetHandle handle=\"right\" />\n <FloatingWidgetHandle handle=\"bottom\" />\n <FloatingWidgetHandle handle=\"topLeft\" />\n <FloatingWidgetHandle handle=\"topRight\" />\n <FloatingWidgetHandle handle=\"bottomLeft\" />\n <FloatingWidgetHandle handle=\"bottomRight\" />\n </>\n ),\n [resizable]\n );\n return (\n <Widget\n className={className}\n widgetId={id}\n style={{\n ...style,\n ...maximizedWidget.style,\n }}\n ref={ref}\n onMouseEnter={props.onMouseEnter}\n onMouseLeave={props.onMouseLeave}\n >\n <WidgetTabBar separator={!minimized} />\n {content}\n {handles}\n </Widget>\n );\n}\n\nfunction useFloatingWidgetState() {\n const id = useFloatingWidgetId();\n assert(!!id);\n return useLayout((state) => {\n const widget = getWidgetState(state, id);\n const floatingWidget = state.floatingWidgets.byId[id];\n const tabs = widget.tabs;\n const activeTabId = widget.activeTabId;\n const activeTab = state.tabs[activeTabId];\n const userSized = floatingWidget.userSized;\n const singleTab = 1 === tabs.length;\n\n const toolSettingsTabId = state.toolSettings?.tabId;\n const isToolSettingsTab = widget.tabs[0] === toolSettingsTabId;\n const resizable = !!floatingWidget.resizable && !isToolSettingsTab;\n const autoSized = singleTab && !userSized;\n return {\n autoSized,\n bounds: floatingWidget.bounds,\n hideWithUiWhenFloating: activeTab.hideWithUiWhenFloating,\n isToolSettingsTab,\n minimized: widget.minimized,\n resizable,\n };\n }, true);\n}\n\n// Re-adjust bounds so that widget is behind pointer when auto-sized.\n// istanbul ignore next\nfunction useHandleAutoSize(dragged: boolean) {\n const dragManager = React.useContext(DragManagerContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const measureNz = React.useContext(MeasureContext);\n const id = useFloatingWidgetId();\n assert(!!id);\n const userSized = useLayout(\n (state) => state.floatingWidgets.byId[id].userSized\n );\n const maximizedWidget = useIsMaximizedWidget();\n\n const updatePosition = React.useRef(true);\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useLayoutEffect(() => {\n if (!updatePosition.current) return;\n if (!dragged) return;\n if (maximizedWidget) return;\n if (!dragManager.draggedItem) return;\n if (!ref.current) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const nzBounds = measureNz();\n const pointerPosition = dragManager.draggedItem.info.pointerPosition;\n\n if (bounds.containsPoint(pointerPosition)) return;\n\n // Pointer is outside of tab area. Need to re-adjust widget bounds so that tab is behind pointer\n if (pointerPosition.x > bounds.right) {\n const offset = pointerPosition.x - bounds.right + 20;\n bounds = bounds.offsetX(offset);\n }\n\n // Adjust bounds to be relative to 9z origin\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds: bounds.toProps(),\n });\n dispatch({\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\n id,\n userSized: true,\n });\n updatePosition.current = false;\n }, [dragged, dragManager, dispatch, id, measureNz, maximizedWidget]);\n const handleResize = React.useCallback(() => {\n if (!ref.current) return;\n if (dragged) return;\n if (maximizedWidget) return;\n if (userSized) return;\n\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n\n // Adjust bounds to be relative to 9z origin\n const nzBounds = measureNz();\n bounds = bounds.offset({ x: -nzBounds.left, y: -nzBounds.top });\n\n dispatch({\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\n id,\n bounds,\n });\n }, [dispatch, dragged, id, userSized, measureNz, maximizedWidget]);\n const roRef = useResizeObserver(handleResize);\n const refs = useRefs(ref, roRef);\n return refs;\n}\n\ninterface FloatingWidgetHandleProps {\n handle: FloatingWidgetResizeHandle;\n}\n\nfunction FloatingWidgetHandle(props: FloatingWidgetHandleProps) {\n const dispatch = React.useContext(NineZoneDispatchContext);\n const id = useFloatingWidgetId();\n const { handle } = props;\n const relativePosition = React.useRef<Point>(new Point());\n assert(id !== undefined);\n const onDrag = React.useCallback<\n NonNullable<UseDragResizeHandleArgs[\"onDrag\"]>\n >(\n (pointerPosition) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const newRelativePosition = bounds.topLeft().getOffsetTo(pointerPosition);\n const offset = relativePosition.current.getOffsetTo(newRelativePosition);\n const resizeBy = getResizeBy(handle, offset);\n dispatch({\n type: \"FLOATING_WIDGET_RESIZE\",\n id,\n resizeBy,\n });\n },\n [dispatch, handle, id]\n );\n const handleDragStart = useDragResizeHandle({\n handle,\n widgetId: id,\n onDrag,\n });\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs) => {\n assert(!!ref.current);\n const bounds = Rectangle.create(ref.current.getBoundingClientRect());\n const initialPointerPosition = new Point(args.clientX, args.clientY);\n relativePosition.current = bounds\n .topLeft()\n .getOffsetTo(initialPointerPosition);\n handleDragStart({\n initialPointerPosition,\n pointerPosition: initialPointerPosition,\n });\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id,\n });\n },\n [dispatch, handleDragStart, id]\n );\n const pointerCaptorRef = usePointerCaptor(handlePointerDown);\n const ref = React.useRef<HTMLDivElement>(null);\n const refs = useRefs(ref, pointerCaptorRef);\n const isMaximized = useIsMaximizedWidget();\n const className = classnames(\n \"nz-widget-floatingWidget_handle\",\n `nz-${handle}`\n );\n if (isMaximized) return null;\n return <div className={className} ref={refs} />;\n}\n\n/** @internal */\nexport function getResizeBy(handle: FloatingWidgetResizeHandle, offset: XAndY) {\n switch (handle) {\n case \"left\":\n return new Rectangle(-offset.x);\n case \"top\":\n return new Rectangle(0, -offset.y);\n case \"right\":\n return new Rectangle(0, 0, offset.x);\n case \"bottom\":\n return new Rectangle(0, 0, 0, offset.y);\n case \"topLeft\":\n return new Rectangle(-offset.x, -offset.y);\n case \"topRight\":\n return new Rectangle(0, -offset.y, offset.x);\n case \"bottomLeft\":\n return new Rectangle(-offset.x, 0, 0, offset.y);\n case \"bottomRight\":\n return new Rectangle(0, 0, offset.x, offset.y);\n }\n}\n\n/** @internal */\nexport function useFloatingWidgetId(): FloatingWidgetState[\"id\"] | undefined {\n const widgetId = React.useContext(WidgetIdContext);\n return useLayout((state) => {\n if (!widgetId) return undefined;\n const floatingWidget = state.floatingWidgets.byId[widgetId];\n if (!floatingWidget) return undefined;\n\n return widgetId;\n });\n}\n\n/** @internal */\nexport function useWidgetAllowedToDock(): boolean {\n const id = useFloatingWidgetId();\n return useLayout((state) => {\n if (id) {\n const widget = getWidgetState(state, id);\n const activeTab = state.tabs[widget.activeTabId];\n if (activeTab.allowedPanelTargets?.length === 0) {\n return false;\n }\n }\n return true;\n });\n}\n"]}
@@ -42,8 +42,11 @@
42
42
 
43
43
  > .nz-horizontal-toolbar-container {
44
44
  grid-area: htools;
45
-
46
45
  width: 100%;
46
+ display: flex;
47
+ flex-direction: row;
48
+ justify-content: flex-end;
49
+ min-width: 0;
47
50
 
48
51
  > .components-toolbar-overflow-sizer {
49
52
  display: flex;
@@ -113,7 +113,7 @@ function useBorders(widgetId) {
113
113
  if (isVertical && isLast) {
114
114
  bottom = false;
115
115
  }
116
- if (isTopMostPanelBorder && toolSettings?.type === "docked") {
116
+ if (isTopMostPanelBorder && (toolSettings === null || toolSettings === void 0 ? void 0 : toolSettings.type) === "docked") {
117
117
  top = false;
118
118
  }
119
119
  if (isVertical && !isFirst) {
@@ -1 +1 @@
1
- {"version":3,"file":"PanelWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/PanelWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./PanelWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport {\n isHorizontalPanelSide,\n PanelSideContext,\n} from \"../widget-panels/Panel\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetProvider } from \"./Widget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { isHorizontalPanelState } from \"../state/PanelState\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport interface PanelWidgetProps {\n widgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport const PanelWidget = React.forwardRef<HTMLDivElement, PanelWidgetProps>(\n function PanelWidget({ widgetId }, ref) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n const widgetsLength = useLayout((state) => {\n const panel = state.panels[side];\n return panel.widgets.length;\n });\n const minimized = useLayout((state) => {\n const widget = getWidgetState(state, widgetId);\n return widget.minimized;\n });\n const horizontal = isHorizontalPanelSide(side);\n const mode = useMode(widgetId);\n const borders = useBorders(widgetId);\n const showTarget = widgetsLength !== 1;\n const className = classnames(\n \"nz-widget-panelWidget\",\n horizontal && \"nz-horizontal\",\n `nz-${mode}`,\n borders\n );\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n {showTarget && <WidgetTarget />}\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n [showTarget]\n );\n return (\n <WidgetProvider id={widgetId}>\n <Widget className={className} ref={ref}>\n <WidgetTabBar\n separator={isHorizontalPanelSide(side) ? true : !minimized}\n />\n {content}\n </Widget>\n </WidgetProvider>\n );\n }\n);\n\nfunction findFillWidget(state: NineZoneState, side: PanelSide) {\n const panelWidgets = state.panels[side].widgets;\n return panelWidgets.find((widgetId) => {\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return false;\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n if (!tab.preferredPanelWidgetSize) return true;\n return false;\n });\n}\n\n/** @internal */\nexport function useMode(widgetId: string): \"fit\" | \"fill\" | \"minimized\" {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const fillWidget = findFillWidget(state, side);\n\n // Force `fill` for last panel widget that is not minimized.\n if (!fillWidget) {\n const panel = state.panels[side];\n for (let i = panel.widgets.length - 1; i >= 0; i--) {\n const wId = panel.widgets[i];\n const w = getWidgetState(state, wId);\n if (w.minimized) continue;\n if (wId === widgetId) return \"fill\";\n break;\n }\n }\n\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return \"minimized\";\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n return tab.preferredPanelWidgetSize ? \"fit\" : \"fill\";\n });\n}\n\n/** @internal */\nexport function useBorders(widgetId: WidgetState[\"id\"]) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const panels = state.panels;\n const panel = panels[side];\n const toolSettings = state.toolSettings;\n const isHorizontal = isHorizontalPanelSide(panel.side);\n const isVertical = !isHorizontal;\n const isFirst = panel.widgets[0] === widgetId;\n const isLast = panel.widgets[panel.widgets.length - 1] === widgetId;\n const isTopMostPanelBorder =\n panel.side === \"top\" ||\n (isVertical && !panels.top.span) ||\n (isVertical && panels.top.span && panels.top.collapsed) ||\n (isVertical && panels.top.widgets.length === 0);\n\n let top = true;\n let bottom = true;\n let left = true;\n let right = true;\n if (panel.side === \"bottom\") {\n bottom = false;\n }\n if (isVertical && isLast) {\n bottom = false;\n }\n if (isTopMostPanelBorder && toolSettings?.type === \"docked\") {\n top = false;\n }\n if (isVertical && !isFirst) {\n top = false;\n }\n if (\n isVertical &&\n panels.top.span &&\n !panels.top.collapsed &&\n panels.top.widgets.length > 0\n ) {\n top = false;\n }\n if (isHorizontal && !isFirst) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isFirst &&\n !panels.left.collapsed &&\n panels.left.widgets.length > 0\n ) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isLast &&\n !panels.right.collapsed &&\n panels.right.widgets.length > 0\n ) {\n right = false;\n }\n return {\n \"nz-border-top\": top,\n \"nz-border-bottom\": bottom,\n \"nz-border-left\": left,\n \"nz-border-right\": right,\n };\n }, true);\n}\n"]}
1
+ {"version":3,"file":"PanelWidget.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/PanelWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./PanelWidget.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { WidgetState } from \"../state/WidgetState\";\nimport type { PanelSide } from \"../widget-panels/PanelTypes\";\nimport {\n isHorizontalPanelSide,\n PanelSideContext,\n} from \"../widget-panels/Panel\";\nimport { WidgetContentContainer } from \"./ContentContainer\";\nimport { WidgetTabBar } from \"./TabBar\";\nimport { Widget, WidgetProvider } from \"./Widget\";\nimport { WidgetOutline } from \"../outline/WidgetOutline\";\nimport { WidgetTarget } from \"../target/WidgetTarget\";\nimport { isHorizontalPanelState } from \"../state/PanelState\";\nimport { useLayout } from \"../base/LayoutStore\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers\";\nimport type { NineZoneState } from \"../state/NineZoneState\";\n\n/** @internal */\nexport interface PanelWidgetProps {\n widgetId: WidgetState[\"id\"];\n}\n\n/** @internal */\nexport const PanelWidget = React.forwardRef<HTMLDivElement, PanelWidgetProps>(\n function PanelWidget({ widgetId }, ref) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n const widgetsLength = useLayout((state) => {\n const panel = state.panels[side];\n return panel.widgets.length;\n });\n const minimized = useLayout((state) => {\n const widget = getWidgetState(state, widgetId);\n return widget.minimized;\n });\n const horizontal = isHorizontalPanelSide(side);\n const mode = useMode(widgetId);\n const borders = useBorders(widgetId);\n const showTarget = widgetsLength !== 1;\n const className = classnames(\n \"nz-widget-panelWidget\",\n horizontal && \"nz-horizontal\",\n `nz-${mode}`,\n borders\n );\n const content = React.useMemo(\n () => (\n <WidgetContentContainer>\n {showTarget && <WidgetTarget />}\n <WidgetOutline />\n </WidgetContentContainer>\n ),\n [showTarget]\n );\n return (\n <WidgetProvider id={widgetId}>\n <Widget className={className} ref={ref}>\n <WidgetTabBar\n separator={isHorizontalPanelSide(side) ? true : !minimized}\n />\n {content}\n </Widget>\n </WidgetProvider>\n );\n }\n);\n\nfunction findFillWidget(state: NineZoneState, side: PanelSide) {\n const panelWidgets = state.panels[side].widgets;\n return panelWidgets.find((widgetId) => {\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return false;\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n if (!tab.preferredPanelWidgetSize) return true;\n return false;\n });\n}\n\n/** @internal */\nexport function useMode(widgetId: string): \"fit\" | \"fill\" | \"minimized\" {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const fillWidget = findFillWidget(state, side);\n\n // Force `fill` for last panel widget that is not minimized.\n if (!fillWidget) {\n const panel = state.panels[side];\n for (let i = panel.widgets.length - 1; i >= 0; i--) {\n const wId = panel.widgets[i];\n const w = getWidgetState(state, wId);\n if (w.minimized) continue;\n if (wId === widgetId) return \"fill\";\n break;\n }\n }\n\n const widget = getWidgetState(state, widgetId);\n if (widget.minimized) return \"minimized\";\n const tabId = widget.activeTabId;\n const tab = state.tabs[tabId];\n return tab.preferredPanelWidgetSize ? \"fit\" : \"fill\";\n });\n}\n\n/** @internal */\nexport function useBorders(widgetId: WidgetState[\"id\"]) {\n const side = React.useContext(PanelSideContext);\n assert(!!side);\n return useLayout((state) => {\n const panels = state.panels;\n const panel = panels[side];\n const toolSettings = state.toolSettings;\n const isHorizontal = isHorizontalPanelSide(panel.side);\n const isVertical = !isHorizontal;\n const isFirst = panel.widgets[0] === widgetId;\n const isLast = panel.widgets[panel.widgets.length - 1] === widgetId;\n const isTopMostPanelBorder =\n panel.side === \"top\" ||\n (isVertical && !panels.top.span) ||\n (isVertical && panels.top.span && panels.top.collapsed) ||\n (isVertical && panels.top.widgets.length === 0);\n\n let top = true;\n let bottom = true;\n let left = true;\n let right = true;\n if (panel.side === \"bottom\") {\n bottom = false;\n }\n if (isVertical && isLast) {\n bottom = false;\n }\n if (isTopMostPanelBorder && toolSettings?.type === \"docked\") {\n top = false;\n }\n if (isVertical && !isFirst) {\n top = false;\n }\n if (\n isVertical &&\n panels.top.span &&\n !panels.top.collapsed &&\n panels.top.widgets.length > 0\n ) {\n top = false;\n }\n if (isHorizontal && !isFirst) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isFirst &&\n !panels.left.collapsed &&\n panels.left.widgets.length > 0\n ) {\n left = false;\n }\n if (\n isHorizontalPanelState(panel) &&\n !panel.span &&\n isLast &&\n !panels.right.collapsed &&\n panels.right.widgets.length > 0\n ) {\n right = false;\n }\n return {\n \"nz-border-top\": top,\n \"nz-border-bottom\": bottom,\n \"nz-border-left\": left,\n \"nz-border-right\": right,\n };\n }, true);\n}\n"]}
@@ -67,7 +67,7 @@ function WidgetTabComponent(props) {
67
67
  const activeTabId = (0, LayoutStore_1.useLayout)((state) => (0, WidgetStateHelpers_1.getWidgetState)(state, widgetId).activeTabId);
68
68
  const minimized = (0, LayoutStore_1.useLayout)((state) => (0, WidgetStateHelpers_1.getWidgetState)(state, widgetId).minimized);
69
69
  const maximizedWidget = (0, useMaximizedWidget_1.useIsMaximizedWidget)();
70
- const resizeObserverRef = (0, core_react_1.useResizeObserver)(widgetTabsEntryContext?.onResize);
70
+ const resizeObserverRef = (0, core_react_1.useResizeObserver)(widgetTabsEntryContext === null || widgetTabsEntryContext === void 0 ? void 0 : widgetTabsEntryContext.onResize);
71
71
  const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });
72
72
  const refs = (0, core_react_1.useRefs)(resizeObserverRef, pointerCaptorRef);
73
73
  const active = activeTabId === id;
@@ -109,7 +109,7 @@ function useTabInteractions({ onClick, onDoubleClick, onDragStart, clickOnly, })
109
109
  widgetId,
110
110
  id,
111
111
  });
112
- onClick?.();
112
+ onClick === null || onClick === void 0 ? void 0 : onClick();
113
113
  }, [dispatch, widgetId, id, side, onClick]);
114
114
  const handleDoubleClick = React.useCallback(() => {
115
115
  // istanbul ignore next (preview)
@@ -122,7 +122,7 @@ function useTabInteractions({ onClick, onDoubleClick, onDragStart, clickOnly, })
122
122
  floatingWidgetId,
123
123
  id,
124
124
  });
125
- onDoubleClick?.();
125
+ onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick();
126
126
  }, [
127
127
  clickOnly,
128
128
  dispatch,
@@ -172,7 +172,7 @@ function useTabInteractions({ onClick, onDoubleClick, onDragStart, clickOnly, })
172
172
  position,
173
173
  userSized,
174
174
  });
175
- onDragStart?.();
175
+ onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart();
176
176
  initialPointerPosition.current = undefined;
177
177
  }, [
178
178
  clickOnly,