@itwin/appui-react 4.10.0 → 4.12.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 (933) hide show
  1. package/CHANGELOG.md +27 -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/UiFramework.json +345 -0
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +3 -2
  9. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  12. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +5 -7
  16. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  20. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  21. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  23. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  24. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -3
  25. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  26. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +2 -2
  27. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  28. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  30. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  31. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  32. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +24 -17
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  35. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  36. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  37. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  39. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  40. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  41. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  42. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  43. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  44. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  45. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  46. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +14 -19
  47. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  48. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  49. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/content/IModelViewport.js +8 -9
  51. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  52. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  53. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  54. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  55. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  56. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  57. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  58. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  59. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  61. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  62. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  63. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  65. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  66. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  67. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  68. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  69. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  70. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  71. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  73. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  74. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  75. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +23 -78
  76. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  77. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  79. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  80. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  81. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  82. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +1 -2
  83. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  84. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +7 -6
  86. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  87. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +4 -4
  88. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +5 -4
  90. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  91. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts +6 -0
  92. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  93. package/lib/cjs/appui-react/hooks/useActiveToolId.js +24 -0
  94. package/lib/cjs/appui-react/hooks/useActiveToolId.js.map +1 -0
  95. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  96. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  97. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +15 -0
  98. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  99. package/lib/cjs/appui-react/hooks/useConditionalValue.js +43 -0
  100. package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -0
  101. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  102. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  103. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  104. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  105. package/lib/cjs/appui-react/hooks/useTranslation.d.ts +7 -0
  106. package/lib/cjs/appui-react/hooks/useTranslation.d.ts.map +1 -0
  107. package/lib/cjs/appui-react/hooks/useTranslation.js +29 -0
  108. package/lib/cjs/appui-react/hooks/useTranslation.js.map +1 -0
  109. package/lib/cjs/appui-react/keyins/Keyins.d.ts +35 -0
  110. package/lib/cjs/appui-react/keyins/Keyins.d.ts.map +1 -0
  111. package/lib/cjs/appui-react/keyins/Keyins.js +54 -0
  112. package/lib/cjs/appui-react/keyins/Keyins.js.map +1 -0
  113. package/lib/cjs/appui-react/layers.scss +1 -1
  114. package/lib/cjs/appui-react/layout/StandardLayout.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/layout/StandardLayout.js +10 -10
  116. package/lib/cjs/appui-react/layout/StandardLayout.js.map +1 -1
  117. package/lib/cjs/appui-react/layout/StandardLayout.scss +1 -1
  118. package/lib/cjs/appui-react/layout/_widgetopacity.scss +3 -1
  119. package/lib/cjs/appui-react/layout/base/DragManager.js +2 -1
  120. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  121. package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
  122. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  123. package/lib/cjs/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js +3 -0
  125. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  126. package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
  127. package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
  128. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
  129. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  130. package/lib/cjs/appui-react/layout/state/NineZoneAction.d.ts +3 -2
  131. package/lib/cjs/appui-react/layout/state/NineZoneAction.d.ts.map +1 -1
  132. package/lib/cjs/appui-react/layout/state/NineZoneAction.js.map +1 -1
  133. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.d.ts.map +1 -1
  134. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +16 -13
  135. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  136. package/lib/cjs/appui-react/layout/state/PanelState.d.ts +2 -5
  137. package/lib/cjs/appui-react/layout/state/PanelState.d.ts.map +1 -1
  138. package/lib/cjs/appui-react/layout/state/PanelState.js.map +1 -1
  139. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  140. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  141. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.d.ts +4 -3
  142. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
  143. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js +12 -10
  144. package/lib/cjs/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  145. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  146. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  147. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  148. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  149. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
  150. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  151. package/lib/cjs/appui-react/layout/widget/Content.d.ts.map +1 -1
  152. package/lib/cjs/appui-react/layout/widget/Content.js +5 -5
  153. package/lib/cjs/appui-react/layout/widget/Content.js.map +1 -1
  154. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
  155. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  156. package/lib/cjs/appui-react/layout/widget/FloatingTab.js +6 -5
  157. package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
  158. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +4 -2
  159. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  160. package/lib/cjs/appui-react/layout/widget/NavigationArea.scss +4 -1
  161. package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
  162. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  163. package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
  164. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  165. package/lib/cjs/appui-react/layout/widget/ToolsArea.scss +2 -0
  166. package/lib/cjs/appui-react/layout/widget/Widget.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
  168. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  169. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  170. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  171. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +8 -5
  172. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  173. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  174. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  175. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  176. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  177. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  178. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  179. package/lib/cjs/appui-react/messages/MessageManager.js +6 -6
  180. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  181. package/lib/cjs/appui-react/messages/MessageRenderer.js +16 -10
  182. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -1
  183. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  184. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  185. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  186. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  187. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +1 -1
  188. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  189. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  190. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  191. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  192. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  193. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  194. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  195. package/lib/cjs/appui-react/popup/CardPopup.d.ts +21 -9
  196. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/popup/CardPopup.js +12 -5
  198. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  199. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts +18 -0
  200. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  201. package/lib/cjs/appui-react/popup/ComponentPopup.js +35 -0
  202. package/lib/cjs/appui-react/popup/ComponentPopup.js.map +1 -0
  203. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  204. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  205. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -0
  206. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  207. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +4 -4
  208. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  209. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  210. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  211. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  212. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +19 -12
  213. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  214. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  215. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  216. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +9 -3
  217. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  218. package/lib/cjs/appui-react/popup/PopupManager.d.ts +45 -9
  219. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  220. package/lib/cjs/appui-react/popup/PopupManager.js +85 -13
  221. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  222. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +16 -6
  223. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  224. package/lib/cjs/appui-react/popup/ToolbarPopup.js +7 -2
  225. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  226. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +3 -1
  227. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  228. package/lib/cjs/appui-react/preview/PreviewFeatures.js +8 -7
  229. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  230. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  231. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  232. package/lib/cjs/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  233. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  234. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  235. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  236. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +18 -0
  237. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  238. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  239. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  240. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  241. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  242. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  243. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  244. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  245. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  246. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  247. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  248. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  249. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  250. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  251. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js +25 -0
  252. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  253. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  254. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  255. package/lib/cjs/appui-react/{statusbar/Popup.js → preview/new-toolbars/Badge.js} +10 -10
  256. package/lib/cjs/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  257. package/lib/cjs/appui-react/preview/new-toolbars/Badge.scss +13 -0
  258. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  259. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  260. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js +36 -0
  261. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  262. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  263. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  264. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.js +15 -0
  265. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  266. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  267. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  268. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  269. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js +79 -0
  270. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  271. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  272. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  273. package/lib/cjs/appui-react/preview/new-toolbars/Item.js +54 -0
  274. package/lib/cjs/appui-react/preview/new-toolbars/Item.js.map +1 -0
  275. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  276. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  277. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js +37 -0
  278. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  279. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  280. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  281. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js +85 -0
  282. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  283. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  284. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  285. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  286. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js +40 -0
  287. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  288. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  289. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  290. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js +93 -0
  291. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  292. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  293. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  294. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  295. package/lib/cjs/appui-react/redux/SessionState.d.ts +15 -3
  296. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  297. package/lib/cjs/appui-react/redux/SessionState.js +8 -1
  298. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  299. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  300. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  301. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  302. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  303. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  304. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  305. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  306. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  307. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  308. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +40 -46
  309. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  310. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +17 -0
  311. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  312. package/lib/cjs/appui-react/shared/ConditionalValue.js +16 -0
  313. package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -0
  314. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  315. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  316. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  317. package/lib/cjs/appui-react/shared/ItemProps.d.ts +13 -2
  318. package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
  319. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  320. package/lib/cjs/appui-react/shared/MenuItem.d.ts +21 -2
  321. package/lib/cjs/appui-react/shared/MenuItem.d.ts.map +1 -1
  322. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  323. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts +23 -3
  324. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -1
  325. package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  326. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +7 -4
  327. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +42 -16
  329. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  330. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  331. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  332. package/lib/cjs/appui-react/statusbar/Overflow.d.ts.map +1 -1
  333. package/lib/cjs/appui-react/statusbar/Overflow.js +3 -3
  334. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  335. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -1
  336. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  337. package/lib/cjs/appui-react/statusbar/StatusBar.js +6 -4
  338. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  339. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  340. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  342. package/lib/cjs/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  343. package/lib/cjs/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  344. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.js +10 -11
  345. package/lib/cjs/appui-react/statusbar/popup/Popup.js.map +1 -0
  346. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  347. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  348. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +4 -4
  349. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  350. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +0 -1
  351. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  352. package/lib/cjs/appui-react/statusfields/MessageCenter.js +4 -4
  353. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  354. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  355. package/lib/cjs/appui-react/statusfields/SectionsField.js +7 -10
  356. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  357. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  358. package/lib/cjs/appui-react/statusfields/SelectionScope.js +4 -4
  359. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  360. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  361. package/lib/cjs/appui-react/statusfields/SnapMode.js +14 -12
  362. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  363. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  364. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  365. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +12 -20
  366. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  367. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  368. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -2
  369. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  370. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  371. package/lib/cjs/appui-react/theme/ThemeManager.js +3 -2
  372. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  373. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  374. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  375. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  376. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +4 -3
  377. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  378. package/lib/cjs/appui-react/toolbar/Toolbar.js +28 -4
  379. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  380. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  381. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  382. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +15 -12
  383. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  384. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  385. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +5 -6
  386. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  387. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  388. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  389. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  390. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  391. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  392. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  393. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -11
  394. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  395. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  396. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  397. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  398. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  399. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  400. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  401. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  402. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  403. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  404. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  405. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  406. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  407. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +102 -143
  408. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  409. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  410. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  411. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  412. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  413. package/lib/cjs/appui-react/utils/Placement.d.ts +35 -0
  414. package/lib/cjs/appui-react/utils/Placement.d.ts.map +1 -0
  415. package/lib/cjs/appui-react/utils/Placement.js +62 -0
  416. package/lib/cjs/appui-react/utils/Placement.js.map +1 -0
  417. package/lib/cjs/appui-react/utils/PropsHelper.js +4 -4
  418. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  419. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  420. package/lib/cjs/appui-react/widget-panels/Content.js +12 -11
  421. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  422. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  423. package/lib/cjs/appui-react/widget-panels/Frontstage.js +32 -24
  424. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  425. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  426. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  427. package/lib/cjs/appui-react/widget-panels/Tab.d.ts +1 -1
  428. package/lib/cjs/appui-react/widget-panels/Tab.d.ts.map +1 -1
  429. package/lib/cjs/appui-react/widget-panels/Tab.js +4 -6
  430. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  431. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  432. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  433. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +55 -68
  434. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  435. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  436. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  437. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -1
  438. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  439. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -1
  440. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  441. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  442. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  443. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  444. package/lib/cjs/appui-react/widgets/Widget.d.ts +2 -2
  445. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  446. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  447. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -3
  448. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  449. package/lib/cjs/appui-react/widgets/WidgetDef.js +61 -18
  450. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  451. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  452. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  453. package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
  454. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  455. package/lib/cjs/appui-react.d.ts +3 -1
  456. package/lib/cjs/appui-react.d.ts.map +1 -1
  457. package/lib/cjs/appui-react.js +3 -3
  458. package/lib/cjs/appui-react.js.map +1 -1
  459. package/lib/esm/appui-react/UiFramework.d.ts +181 -10
  460. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  461. package/lib/esm/appui-react/UiFramework.js +301 -21
  462. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  463. package/lib/esm/appui-react/UiFramework.json +345 -0
  464. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  465. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +3 -2
  466. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  467. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  468. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  469. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  470. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  471. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  472. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +5 -7
  473. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  474. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  475. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  476. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  477. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  478. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  479. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  480. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  481. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -4
  482. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  483. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +2 -2
  484. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  485. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  486. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  487. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  488. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  489. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  490. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +23 -16
  491. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  492. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  493. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  494. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  495. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  496. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  497. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  498. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  499. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  500. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  501. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  502. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  503. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +14 -19
  504. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  505. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  506. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  507. package/lib/esm/appui-react/content/IModelViewport.js +8 -9
  508. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  509. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  510. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  511. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  512. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  513. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  514. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  515. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  516. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  517. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  518. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  519. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  520. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  521. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  522. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  523. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  524. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  525. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  526. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  527. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  528. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  529. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  530. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  531. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  532. package/lib/esm/appui-react/frontstage/FrontstageDef.js +24 -79
  533. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  534. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  535. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  536. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  537. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  538. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  539. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +1 -2
  540. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  541. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  542. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +7 -6
  543. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  544. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +4 -4
  545. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  546. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +5 -4
  547. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  548. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts +6 -0
  549. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  550. package/lib/esm/appui-react/hooks/useActiveToolId.js +20 -0
  551. package/lib/esm/appui-react/hooks/useActiveToolId.js.map +1 -0
  552. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  553. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  554. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +15 -0
  555. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  556. package/lib/esm/appui-react/hooks/useConditionalValue.js +39 -0
  557. package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -0
  558. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  559. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  560. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  561. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  562. package/lib/esm/appui-react/hooks/useTranslation.d.ts +7 -0
  563. package/lib/esm/appui-react/hooks/useTranslation.d.ts.map +1 -0
  564. package/lib/esm/appui-react/hooks/useTranslation.js +25 -0
  565. package/lib/esm/appui-react/hooks/useTranslation.js.map +1 -0
  566. package/lib/esm/appui-react/keyins/Keyins.d.ts +35 -0
  567. package/lib/esm/appui-react/keyins/Keyins.d.ts.map +1 -0
  568. package/lib/esm/appui-react/keyins/Keyins.js +50 -0
  569. package/lib/esm/appui-react/keyins/Keyins.js.map +1 -0
  570. package/lib/esm/appui-react/layers.scss +1 -1
  571. package/lib/esm/appui-react/layout/StandardLayout.d.ts.map +1 -1
  572. package/lib/esm/appui-react/layout/StandardLayout.js +10 -10
  573. package/lib/esm/appui-react/layout/StandardLayout.js.map +1 -1
  574. package/lib/esm/appui-react/layout/StandardLayout.scss +1 -1
  575. package/lib/esm/appui-react/layout/_widgetopacity.scss +3 -1
  576. package/lib/esm/appui-react/layout/base/DragManager.js +2 -1
  577. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  578. package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
  579. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  580. package/lib/esm/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  581. package/lib/esm/appui-react/layout/base/usePointerCaptor.js +3 -0
  582. package/lib/esm/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  583. package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
  584. package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
  585. package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
  586. package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  587. package/lib/esm/appui-react/layout/state/NineZoneAction.d.ts +3 -2
  588. package/lib/esm/appui-react/layout/state/NineZoneAction.d.ts.map +1 -1
  589. package/lib/esm/appui-react/layout/state/NineZoneAction.js.map +1 -1
  590. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.d.ts.map +1 -1
  591. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +17 -14
  592. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  593. package/lib/esm/appui-react/layout/state/PanelState.d.ts +2 -5
  594. package/lib/esm/appui-react/layout/state/PanelState.d.ts.map +1 -1
  595. package/lib/esm/appui-react/layout/state/PanelState.js.map +1 -1
  596. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  597. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  598. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.d.ts +4 -3
  599. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.d.ts.map +1 -1
  600. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js +10 -8
  601. package/lib/esm/appui-react/layout/state/internal/PanelStateHelpers.js.map +1 -1
  602. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  603. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  604. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  605. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  606. package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
  607. package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  608. package/lib/esm/appui-react/layout/widget/Content.d.ts.map +1 -1
  609. package/lib/esm/appui-react/layout/widget/Content.js +5 -5
  610. package/lib/esm/appui-react/layout/widget/Content.js.map +1 -1
  611. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
  612. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  613. package/lib/esm/appui-react/layout/widget/FloatingTab.js +6 -5
  614. package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
  615. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +4 -2
  616. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  617. package/lib/esm/appui-react/layout/widget/NavigationArea.scss +4 -1
  618. package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
  619. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  620. package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
  621. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  622. package/lib/esm/appui-react/layout/widget/ToolsArea.scss +2 -0
  623. package/lib/esm/appui-react/layout/widget/Widget.d.ts.map +1 -1
  624. package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
  625. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  626. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  627. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  628. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +8 -5
  629. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  630. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  631. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  632. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  633. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  634. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  635. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  636. package/lib/esm/appui-react/messages/MessageManager.js +6 -6
  637. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  638. package/lib/esm/appui-react/messages/MessageRenderer.js +17 -11
  639. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -1
  640. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  641. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  642. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  643. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  644. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -2
  645. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  646. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  647. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  648. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  649. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  650. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  651. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  652. package/lib/esm/appui-react/popup/CardPopup.d.ts +21 -9
  653. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  654. package/lib/esm/appui-react/popup/CardPopup.js +15 -7
  655. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  656. package/lib/esm/appui-react/popup/ComponentPopup.d.ts +18 -0
  657. package/lib/esm/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  658. package/lib/esm/appui-react/popup/ComponentPopup.js +31 -0
  659. package/lib/esm/appui-react/popup/ComponentPopup.js.map +1 -0
  660. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  661. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  662. package/lib/esm/appui-react/popup/HTMLElementPopup.js +1 -0
  663. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  664. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +4 -4
  665. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  666. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  667. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  668. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  669. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +19 -12
  670. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  671. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  672. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  673. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +9 -3
  674. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  675. package/lib/esm/appui-react/popup/PopupManager.d.ts +45 -9
  676. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  677. package/lib/esm/appui-react/popup/PopupManager.js +87 -14
  678. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  679. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +16 -6
  680. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  681. package/lib/esm/appui-react/popup/ToolbarPopup.js +9 -3
  682. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  683. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +3 -1
  684. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  685. package/lib/esm/appui-react/preview/PreviewFeatures.js +8 -7
  686. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  687. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  688. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  689. package/lib/esm/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  690. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  691. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  692. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  693. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +14 -0
  694. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  695. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  696. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  697. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  698. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  699. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  700. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  701. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  702. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  703. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  704. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  705. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  706. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  707. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  708. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js +22 -0
  709. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  710. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  711. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  712. package/lib/esm/appui-react/{statusbar/Popup.js → preview/new-toolbars/Badge.js} +8 -8
  713. package/lib/esm/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  714. package/lib/esm/appui-react/preview/new-toolbars/Badge.scss +13 -0
  715. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  716. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  717. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js +33 -0
  718. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  719. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  720. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  721. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.js +11 -0
  722. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  723. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  724. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  725. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  726. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js +74 -0
  727. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  728. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  729. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  730. package/lib/esm/appui-react/preview/new-toolbars/Item.js +49 -0
  731. package/lib/esm/appui-react/preview/new-toolbars/Item.js.map +1 -0
  732. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  733. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  734. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js +34 -0
  735. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  736. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  737. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  738. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js +81 -0
  739. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  740. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  741. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  742. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  743. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js +36 -0
  744. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  745. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  746. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  747. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js +89 -0
  748. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  749. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  750. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  751. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  752. package/lib/esm/appui-react/redux/SessionState.d.ts +15 -3
  753. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  754. package/lib/esm/appui-react/redux/SessionState.js +8 -1
  755. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  756. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  757. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  758. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  759. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  760. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  761. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  762. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  763. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  764. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  765. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +40 -46
  766. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  767. package/lib/esm/appui-react/shared/ConditionalValue.d.ts +17 -0
  768. package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  769. package/lib/esm/appui-react/shared/ConditionalValue.js +13 -0
  770. package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -0
  771. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  772. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  773. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  774. package/lib/esm/appui-react/shared/ItemProps.d.ts +13 -2
  775. package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
  776. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  777. package/lib/esm/appui-react/shared/MenuItem.d.ts +21 -2
  778. package/lib/esm/appui-react/shared/MenuItem.d.ts.map +1 -1
  779. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  780. package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts +23 -3
  781. package/lib/esm/appui-react/stagepanels/StagePanelConfig.d.ts.map +1 -1
  782. package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
  783. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +7 -4
  784. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  785. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +42 -16
  786. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  787. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  788. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  789. package/lib/esm/appui-react/statusbar/Overflow.d.ts.map +1 -1
  790. package/lib/esm/appui-react/statusbar/Overflow.js +3 -3
  791. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  792. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -1
  793. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  794. package/lib/esm/appui-react/statusbar/StatusBar.js +6 -4
  795. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  796. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  797. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  798. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  799. package/lib/esm/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  800. package/lib/esm/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  801. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.js +8 -9
  802. package/lib/esm/appui-react/statusbar/popup/Popup.js.map +1 -0
  803. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  804. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  805. package/lib/esm/appui-react/statusfields/ActivityCenter.js +4 -4
  806. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  807. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +0 -1
  808. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  809. package/lib/esm/appui-react/statusfields/MessageCenter.js +4 -4
  810. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  811. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  812. package/lib/esm/appui-react/statusfields/SectionsField.js +7 -10
  813. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  814. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  815. package/lib/esm/appui-react/statusfields/SelectionScope.js +4 -4
  816. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  817. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  818. package/lib/esm/appui-react/statusfields/SnapMode.js +14 -12
  819. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  820. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  821. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  822. package/lib/esm/appui-react/statusfields/ViewAttributes.js +12 -20
  823. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  824. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  825. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -3
  826. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  827. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  828. package/lib/esm/appui-react/theme/ThemeManager.js +3 -2
  829. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  830. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  831. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  832. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  833. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +4 -3
  834. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  835. package/lib/esm/appui-react/toolbar/Toolbar.js +29 -5
  836. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  837. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  838. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  839. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +15 -12
  840. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  841. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  842. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +5 -6
  843. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  844. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  845. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  846. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  847. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  848. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  849. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  850. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +18 -11
  851. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  852. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  853. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  854. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  855. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  856. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  857. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  858. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  859. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  860. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  861. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  862. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  863. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  864. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +100 -141
  865. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  866. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  867. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  868. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  869. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  870. package/lib/esm/appui-react/utils/Placement.d.ts +35 -0
  871. package/lib/esm/appui-react/utils/Placement.d.ts.map +1 -0
  872. package/lib/esm/appui-react/utils/Placement.js +57 -0
  873. package/lib/esm/appui-react/utils/Placement.js.map +1 -0
  874. package/lib/esm/appui-react/utils/PropsHelper.js +4 -4
  875. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  876. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  877. package/lib/esm/appui-react/widget-panels/Content.js +12 -11
  878. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  879. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  880. package/lib/esm/appui-react/widget-panels/Frontstage.js +32 -24
  881. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  882. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  883. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  884. package/lib/esm/appui-react/widget-panels/Tab.d.ts +1 -1
  885. package/lib/esm/appui-react/widget-panels/Tab.d.ts.map +1 -1
  886. package/lib/esm/appui-react/widget-panels/Tab.js +3 -5
  887. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  888. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  889. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  890. package/lib/esm/appui-react/widget-panels/ToolSettings.js +53 -66
  891. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  892. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  893. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  894. package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -1
  895. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  896. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -1
  897. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  898. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  899. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  900. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  901. package/lib/esm/appui-react/widgets/Widget.d.ts +2 -2
  902. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  903. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  904. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -3
  905. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  906. package/lib/esm/appui-react/widgets/WidgetDef.js +59 -17
  907. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  908. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  909. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  910. package/lib/esm/appui-react/widgets/useWidget.js +1 -1
  911. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  912. package/lib/esm/appui-react.d.ts +3 -1
  913. package/lib/esm/appui-react.d.ts.map +1 -1
  914. package/lib/esm/appui-react.js +3 -1
  915. package/lib/esm/appui-react.js.map +1 -1
  916. package/lib/public/locales/en/UiFramework.json +7 -1
  917. package/package.json +11 -10
  918. package/lib/cjs/appui-react/layout/footer/Popup.d.ts +0 -12
  919. package/lib/cjs/appui-react/layout/footer/Popup.d.ts.map +0 -1
  920. package/lib/cjs/appui-react/layout/footer/Popup.js.map +0 -1
  921. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  922. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  923. package/lib/cjs/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  924. package/lib/cjs/appui-react/statusbar/Popup.d.ts.map +0 -1
  925. package/lib/cjs/appui-react/statusbar/Popup.js.map +0 -1
  926. package/lib/esm/appui-react/layout/footer/Popup.d.ts +0 -12
  927. package/lib/esm/appui-react/layout/footer/Popup.d.ts.map +0 -1
  928. package/lib/esm/appui-react/layout/footer/Popup.js.map +0 -1
  929. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  930. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  931. package/lib/esm/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  932. package/lib/esm/appui-react/statusbar/Popup.d.ts.map +0 -1
  933. package/lib/esm/appui-react/statusbar/Popup.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PanelStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/PanelStateHelpers.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 { UiError } from \"@itwin/appui-abstract\";\nimport type { SizeProps } from \"@itwin/core-react\";\nimport produce from \"immer\";\nimport type { WritableDraft } from \"immer/dist/types/types-external\";\nimport { isHorizontalPanelSide } from \"../../widget-panels/Panel\";\nimport type {\n HorizontalPanelSide,\n PanelSide,\n VerticalPanelSide,\n} from \"../../widget-panels/PanelTypes\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type {\n HorizontalPanelState,\n PanelMaxSizeState,\n PanelsState,\n PanelState,\n VerticalPanelState,\n} from \"../PanelState\";\nimport type { WidgetState } from \"../WidgetState\";\nimport { category } from \"./NineZoneStateHelpers\";\nimport { addWidgetState } from \"./WidgetStateHelpers\";\n\nfunction createPanelState(side: PanelSide) {\n return {\n collapseOffset: 100,\n collapsed: false,\n maxSize: 600,\n minSize: 200,\n pinned: true,\n resizable: true,\n side,\n size: undefined,\n widgets: [],\n maxWidgetCount: 2,\n splitterPercent: 50,\n };\n}\n\n/** @internal */\nexport function createVerticalPanelState(\n side: VerticalPanelSide,\n args?: Partial<VerticalPanelState>\n): VerticalPanelState {\n return {\n ...createPanelState(side),\n ...args,\n side,\n };\n}\n\n/** @internal */\nexport function createHorizontalPanelState(\n side: HorizontalPanelSide,\n args?: Partial<HorizontalPanelState>\n): HorizontalPanelState {\n return {\n ...createPanelState(side),\n minSize: 100,\n span: true,\n ...args,\n side,\n };\n}\n\n/** @internal */\nexport function createPanelsState(args?: Partial<PanelsState>): PanelsState {\n return {\n bottom: createHorizontalPanelState(\"bottom\"),\n left: createVerticalPanelState(\"left\"),\n right: createVerticalPanelState(\"right\"),\n top: createHorizontalPanelState(\"top\"),\n ...args,\n };\n}\n\n/** @internal */\nexport function updatePanelState<K extends keyof PanelsState>(\n state: NineZoneState,\n side: K,\n update: (draft: WritableDraft<PanelsState>[K]) => void\n) {\n return produce(state, (draft) => {\n const panel = draft.panels[side];\n update(panel);\n });\n}\n\n/** @internal */\nexport function getPanelMaxSize(\n side: PanelSide,\n appSize: SizeProps,\n maxSize: PanelMaxSizeState\n) {\n if (typeof maxSize === \"number\") {\n return maxSize;\n }\n const size = isHorizontalPanelSide(side) ? appSize.height : appSize.width;\n return (maxSize.percentage / 100) * size;\n}\n\n/** @internal */\nexport function getPanelSize(\n preferredSize: number | undefined,\n side: PanelSide,\n minSize: PanelState[\"minSize\"],\n maxSizeSpec: PanelState[\"maxSize\"],\n appSize: SizeProps\n) {\n if (preferredSize === undefined) return undefined;\n\n const maxSize = getPanelMaxSize(side, appSize, maxSizeSpec);\n return Math.min(Math.max(preferredSize, minSize), maxSize);\n}\n\n/** @internal */\nexport function addPanelWidget(\n state: NineZoneState,\n side: PanelSide,\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n return insertPanelWidget(state, side, id, tabs, Infinity, widgetArgs);\n}\n\n/** @internal */\nexport function insertPanelWidget(\n state: NineZoneState,\n side: PanelSide,\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n sectionIndex: number,\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n const panel = state.panels[side];\n const maxWidgetCount = panel.maxWidgetCount;\n if (panel.widgets.length >= maxWidgetCount)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Max widget count exceeded\", undefined, () => ({\n maxWidgetCount,\n }));\n\n state = addWidgetState(state, id, tabs, widgetArgs);\n return produce(state, (draft) => {\n const widgets = draft.panels[side].widgets;\n widgets.splice(sectionIndex, 0, id);\n });\n}\n"]}
1
+ {"version":3,"file":"PanelStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/PanelStateHelpers.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 { UiError } from \"@itwin/appui-abstract\";\nimport type { SizeProps } from \"@itwin/core-react\";\nimport produce from \"immer\";\nimport type { WritableDraft } from \"immer/dist/types/types-external\";\nimport { isHorizontalPanelSide } from \"../../widget-panels/Panel\";\nimport type {\n HorizontalPanelSide,\n PanelSide,\n VerticalPanelSide,\n} from \"../../widget-panels/PanelTypes\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type {\n HorizontalPanelState,\n PanelsState,\n VerticalPanelState,\n} from \"../PanelState\";\nimport type { WidgetState } from \"../WidgetState\";\nimport { category } from \"./NineZoneStateHelpers\";\nimport { addWidgetState } from \"./WidgetStateHelpers\";\nimport type { StagePanelSizeSpec } from \"../../../stagepanels/StagePanelConfig\";\n\nfunction createPanelState(side: PanelSide) {\n return {\n collapseOffset: 100,\n collapsed: false,\n maxSize: 600,\n minSize: 200,\n pinned: true,\n resizable: true,\n side,\n size: undefined,\n widgets: [],\n maxWidgetCount: 2,\n splitterPercent: 50,\n };\n}\n\n/** @internal */\nexport function createVerticalPanelState(\n side: VerticalPanelSide,\n args?: Partial<VerticalPanelState>\n): VerticalPanelState {\n return {\n ...createPanelState(side),\n ...args,\n side,\n };\n}\n\n/** @internal */\nexport function createHorizontalPanelState(\n side: HorizontalPanelSide,\n args?: Partial<HorizontalPanelState>\n): HorizontalPanelState {\n return {\n ...createPanelState(side),\n minSize: 100,\n span: true,\n ...args,\n side,\n };\n}\n\n/** @internal */\nexport function createPanelsState(args?: Partial<PanelsState>): PanelsState {\n return {\n bottom: createHorizontalPanelState(\"bottom\"),\n left: createVerticalPanelState(\"left\"),\n right: createVerticalPanelState(\"right\"),\n top: createHorizontalPanelState(\"top\"),\n ...args,\n };\n}\n\n/** @internal */\nexport function updatePanelState<K extends keyof PanelsState>(\n state: NineZoneState,\n side: K,\n update: (draft: WritableDraft<PanelsState>[K]) => void\n) {\n return produce(state, (draft) => {\n const panel = draft.panels[side];\n update(panel);\n });\n}\n\n/** @internal */\nexport function getPanelPixelSizeFromSpec(\n side: PanelSide,\n appSize: SizeProps,\n panelSize: StagePanelSizeSpec\n) {\n if (typeof panelSize === \"number\") {\n return panelSize;\n }\n\n const fullSize = isHorizontalPanelSide(side) ? appSize.height : appSize.width;\n return (panelSize.percentage / 100) * fullSize;\n}\n\n/** @internal */\nexport function getPanelSize(\n preferredSizeSpec: StagePanelSizeSpec | undefined,\n side: PanelSide,\n minSizeSpec: StagePanelSizeSpec,\n maxSizeSpec: StagePanelSizeSpec,\n appSize: SizeProps\n) {\n if (preferredSizeSpec === undefined) return undefined;\n\n const maxSize = getPanelPixelSizeFromSpec(side, appSize, maxSizeSpec);\n const minSize = getPanelPixelSizeFromSpec(side, appSize, minSizeSpec);\n const preferredSize = getPanelPixelSizeFromSpec(\n side,\n appSize,\n preferredSizeSpec\n );\n\n return Math.min(Math.max(preferredSize, minSize), maxSize);\n}\n\n/** @internal */\nexport function addPanelWidget(\n state: NineZoneState,\n side: PanelSide,\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n return insertPanelWidget(state, side, id, tabs, Infinity, widgetArgs);\n}\n\n/** @internal */\nexport function insertPanelWidget(\n state: NineZoneState,\n side: PanelSide,\n id: WidgetState[\"id\"],\n tabs: WidgetState[\"tabs\"],\n sectionIndex: number,\n widgetArgs?: Partial<WidgetState>\n): NineZoneState {\n const panel = state.panels[side];\n const maxWidgetCount = panel.maxWidgetCount;\n if (panel.widgets.length >= maxWidgetCount)\n // eslint-disable-next-line deprecation/deprecation\n throw new UiError(category, \"Max widget count exceeded\", undefined, () => ({\n maxWidgetCount,\n }));\n\n state = addWidgetState(state, id, tabs, widgetArgs);\n return produce(state, (draft) => {\n const widgets = draft.panels[side].widgets;\n widgets.splice(sectionIndex, 0, id);\n });\n}\n"]}
@@ -135,8 +135,9 @@ export function removeTab(state, tabId) {
135
135
  throw new UiError(category, "Tab does not exist");
136
136
  state = removeTabFromWidget(state, tabId);
137
137
  return produce(state, (draft) => {
138
+ var _a;
138
139
  delete draft.tabs[tabId];
139
- if (draft.toolSettings?.tabId === tabId) {
140
+ if (((_a = draft.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId) === tabId) {
140
141
  draft.toolSettings = undefined;
141
142
  }
142
143
  });
@@ -157,7 +158,7 @@ export function addRemovedTab(state, tabId) {
157
158
  tabId,
158
159
  }));
159
160
  const savedTab = state.savedTabs.byId[tabId];
160
- const home = savedTab?.home || defaultHomeState;
161
+ const home = (savedTab === null || savedTab === void 0 ? void 0 : savedTab.home) || defaultHomeState;
161
162
  const { tabIndex, widgetId } = home;
162
163
  // Add to an existing widget (by widget id).
163
164
  if (widgetId in state.widgets) {
@@ -1 +1 @@
1
- {"version":3,"file":"TabStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/TabStateHelpers.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 produce, { castDraft } from \"immer\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type { DraggedTabState, TabState } from \"../TabState\";\nimport { category } from \"./NineZoneStateHelpers\";\nimport type { SavedTabState, TabHomeState } from \"../SavedTabState\";\nimport type { WritableDraft } from \"immer/dist/internal\";\nimport { getTabLocation } from \"../TabLocation\";\nimport {\n addFloatingWidget,\n assertWidgetState,\n getWidgetState,\n removeWidget,\n setWidgetActiveTabId,\n updateWidgetState,\n} from \"./WidgetStateHelpers\";\nimport type { WidgetState } from \"../WidgetState\";\nimport { isFloatingWidgetRestoreState } from \"../WidgetRestoreState\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport { getUniqueId } from \"../../base/NineZone\";\nimport { insertPanelWidget } from \"./PanelStateHelpers\";\n\n/** @internal */\nexport function createTabState(\n id: TabState[\"id\"],\n args?: Partial<TabState>\n): TabState {\n return {\n label: \"\",\n ...args,\n id,\n unloaded: false,\n };\n}\n\n/** @internal */\nexport function createDraggedTabState(\n tabId: DraggedTabState[\"tabId\"],\n args?: Partial<DraggedTabState>\n): DraggedTabState {\n return {\n home: {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n },\n position: { x: 0, y: 0 },\n ...args,\n tabId,\n };\n}\n\n/** @internal */\nexport function updateTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<TabState>) => void\n) {\n // eslint-disable-next-line deprecation/deprecation\n if (!(id in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n return produce(state, (draft) => {\n const tab = draft.tabs[id];\n update(tab);\n });\n}\n\n/** @internal */\nexport function updateSavedTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<SavedTabState>) => void\n) {\n return produce(state, (draft) => {\n const allIds = draft.savedTabs.allIds;\n const byId = draft.savedTabs.byId;\n let tab = byId[id];\n if (!tab) {\n allIds.push(id);\n tab = byId[id] = { id };\n } else {\n const index = allIds.indexOf(id);\n allIds.splice(index, 1);\n allIds.push(id);\n }\n\n update(tab);\n });\n}\n\n/** Adds a new `tab`.\n * @internal\n */\nexport function addTab(\n state: NineZoneState,\n id: TabState[\"id\"],\n tabArgs?: Partial<TabState>\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (id in state.tabs) throw new UiError(category, \"Tab already exists\");\n const tab = {\n ...createTabState(id),\n ...tabArgs,\n };\n return produce(state, (stateDraft) => {\n stateDraft.tabs[id] = castDraft(tab);\n });\n}\n\n/** Adds an existing `tab` to a specified `widget`.\n * @internal\n */\nexport function addTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"]\n): NineZoneState {\n return insertTabToWidget(state, tabId, widgetId, Infinity);\n}\n\n/** Inserts an existing `tab` to a specified `widget` at a specified `tabIndex`.\n * @internal\n */\nexport function insertTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"],\n tabIndex: number\n): NineZoneState {\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 assertWidgetState(state, widgetId);\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 const widget = getWidgetState(draft, widgetId);\n widget.tabs.splice(tabIndex, 0, tabId);\n });\n}\n\n/** Removes tab from the UI, but keeps the tab state.\n * @internal\n */\nexport function removeTabFromWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n const location = getTabLocation(state, tabId);\n if (!location) return state;\n\n const widgetId = location.widgetId;\n const widget = getWidgetState(state, widgetId);\n const tabs = [...widget.tabs];\n const tabIndex = tabs.indexOf(tabId);\n tabs.splice(tabIndex, 1);\n\n if (tabs.length === 0) {\n return removeWidget(state, widgetId);\n }\n\n if (tabId === widget.activeTabId) {\n state = setWidgetActiveTabId(state, widget.id, tabs[0]);\n }\n\n return updateWidgetState(state, widgetId, {\n tabs,\n });\n}\n\n/** Removes tab from the UI and deletes the tab state.\n * @internal\n */\nexport function removeTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (!(tabId in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n state = removeTabFromWidget(state, tabId);\n return produce(state, (draft) => {\n delete draft.tabs[tabId];\n\n if (draft.toolSettings?.tabId === tabId) {\n draft.toolSettings = undefined;\n }\n });\n}\n\nconst defaultHomeState: TabHomeState = {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n tabIndex: 0,\n};\n\n/** Adds removed tab to the UI.\n * @internal\n */\nexport function addRemovedTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\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 savedTab = state.savedTabs.byId[tabId];\n const home = savedTab?.home || defaultHomeState;\n const { tabIndex, widgetId } = home;\n\n // Add to an existing widget (by widget id).\n if (widgetId in state.widgets) {\n return insertTabToWidget(state, tabId, widgetId, tabIndex);\n }\n\n // Add to a floating widget.\n if (isFloatingWidgetRestoreState(home)) {\n // Add to a new floating widget.\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.create(home.floatingWidget.bounds).containIn(\n nzBounds\n );\n return addFloatingWidget(state, widgetId, [tabId], {\n ...home.floatingWidget,\n bounds: bounds.toProps(),\n });\n }\n\n // Add to a panel section.\n const panel = state.panels[home.side];\n\n // Add to existing panel section.\n if (panel.widgets.length >= panel.maxWidgetCount) {\n const sectionIndex = Math.min(panel.maxWidgetCount - 1, home.widgetIndex);\n const sectionId = panel.widgets[sectionIndex];\n return insertTabToWidget(state, tabId, sectionId, home.tabIndex);\n }\n\n // Create a new panel section.\n const newSectionId = getUniqueId();\n return insertPanelWidget(\n state,\n panel.side,\n newSectionId,\n [tabId],\n home.widgetIndex\n );\n}\n"]}
1
+ {"version":3,"file":"TabStateHelpers.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/state/internal/TabStateHelpers.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 produce, { castDraft } from \"immer\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { NineZoneState } from \"../NineZoneState\";\nimport type { DraggedTabState, TabState } from \"../TabState\";\nimport { category } from \"./NineZoneStateHelpers\";\nimport type { SavedTabState, TabHomeState } from \"../SavedTabState\";\nimport type { WritableDraft } from \"immer/dist/internal\";\nimport { getTabLocation } from \"../TabLocation\";\nimport {\n addFloatingWidget,\n assertWidgetState,\n getWidgetState,\n removeWidget,\n setWidgetActiveTabId,\n updateWidgetState,\n} from \"./WidgetStateHelpers\";\nimport type { WidgetState } from \"../WidgetState\";\nimport { isFloatingWidgetRestoreState } from \"../WidgetRestoreState\";\nimport { Rectangle } from \"@itwin/core-react\";\nimport { getUniqueId } from \"../../base/NineZone\";\nimport { insertPanelWidget } from \"./PanelStateHelpers\";\n\n/** @internal */\nexport function createTabState(\n id: TabState[\"id\"],\n args?: Partial<TabState>\n): TabState {\n return {\n label: \"\",\n ...args,\n id,\n unloaded: false,\n };\n}\n\n/** @internal */\nexport function createDraggedTabState(\n tabId: DraggedTabState[\"tabId\"],\n args?: Partial<DraggedTabState>\n): DraggedTabState {\n return {\n home: {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n },\n position: { x: 0, y: 0 },\n ...args,\n tabId,\n };\n}\n\n/** @internal */\nexport function updateTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<TabState>) => void\n) {\n // eslint-disable-next-line deprecation/deprecation\n if (!(id in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n return produce(state, (draft) => {\n const tab = draft.tabs[id];\n update(tab);\n });\n}\n\n/** @internal */\nexport function updateSavedTabState(\n state: NineZoneState,\n id: TabState[\"id\"],\n update: (draft: WritableDraft<SavedTabState>) => void\n) {\n return produce(state, (draft) => {\n const allIds = draft.savedTabs.allIds;\n const byId = draft.savedTabs.byId;\n let tab = byId[id];\n if (!tab) {\n allIds.push(id);\n tab = byId[id] = { id };\n } else {\n const index = allIds.indexOf(id);\n allIds.splice(index, 1);\n allIds.push(id);\n }\n\n update(tab);\n });\n}\n\n/** Adds a new `tab`.\n * @internal\n */\nexport function addTab(\n state: NineZoneState,\n id: TabState[\"id\"],\n tabArgs?: Partial<TabState>\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (id in state.tabs) throw new UiError(category, \"Tab already exists\");\n const tab = {\n ...createTabState(id),\n ...tabArgs,\n };\n return produce(state, (stateDraft) => {\n stateDraft.tabs[id] = castDraft(tab);\n });\n}\n\n/** Adds an existing `tab` to a specified `widget`.\n * @internal\n */\nexport function addTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"]\n): NineZoneState {\n return insertTabToWidget(state, tabId, widgetId, Infinity);\n}\n\n/** Inserts an existing `tab` to a specified `widget` at a specified `tabIndex`.\n * @internal\n */\nexport function insertTabToWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"],\n widgetId: WidgetState[\"id\"],\n tabIndex: number\n): NineZoneState {\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 assertWidgetState(state, widgetId);\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 const widget = getWidgetState(draft, widgetId);\n widget.tabs.splice(tabIndex, 0, tabId);\n });\n}\n\n/** Removes tab from the UI, but keeps the tab state.\n * @internal\n */\nexport function removeTabFromWidget(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n const location = getTabLocation(state, tabId);\n if (!location) return state;\n\n const widgetId = location.widgetId;\n const widget = getWidgetState(state, widgetId);\n const tabs = [...widget.tabs];\n const tabIndex = tabs.indexOf(tabId);\n tabs.splice(tabIndex, 1);\n\n if (tabs.length === 0) {\n return removeWidget(state, widgetId);\n }\n\n if (tabId === widget.activeTabId) {\n state = setWidgetActiveTabId(state, widget.id, tabs[0]);\n }\n\n return updateWidgetState(state, widgetId, {\n tabs,\n });\n}\n\n/** Removes tab from the UI and deletes the tab state.\n * @internal\n */\nexport function removeTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\n // eslint-disable-next-line deprecation/deprecation\n if (!(tabId in state.tabs)) throw new UiError(category, \"Tab does not exist\");\n\n state = removeTabFromWidget(state, tabId);\n return produce(state, (draft) => {\n delete draft.tabs[tabId];\n\n if (draft.toolSettings?.tabId === tabId) {\n draft.toolSettings = undefined;\n }\n });\n}\n\nconst defaultHomeState: TabHomeState = {\n side: \"left\",\n widgetId: \"\",\n widgetIndex: 0,\n tabIndex: 0,\n};\n\n/** Adds removed tab to the UI.\n * @internal\n */\nexport function addRemovedTab(\n state: NineZoneState,\n tabId: TabState[\"id\"]\n): NineZoneState {\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 savedTab = state.savedTabs.byId[tabId];\n const home = savedTab?.home || defaultHomeState;\n const { tabIndex, widgetId } = home;\n\n // Add to an existing widget (by widget id).\n if (widgetId in state.widgets) {\n return insertTabToWidget(state, tabId, widgetId, tabIndex);\n }\n\n // Add to a floating widget.\n if (isFloatingWidgetRestoreState(home)) {\n // Add to a new floating widget.\n const nzBounds = Rectangle.createFromSize(state.size);\n const bounds = Rectangle.create(home.floatingWidget.bounds).containIn(\n nzBounds\n );\n return addFloatingWidget(state, widgetId, [tabId], {\n ...home.floatingWidget,\n bounds: bounds.toProps(),\n });\n }\n\n // Add to a panel section.\n const panel = state.panels[home.side];\n\n // Add to existing panel section.\n if (panel.widgets.length >= panel.maxWidgetCount) {\n const sectionIndex = Math.min(panel.maxWidgetCount - 1, home.widgetIndex);\n const sectionId = panel.widgets[sectionIndex];\n return insertTabToWidget(state, tabId, sectionId, home.tabIndex);\n }\n\n // Create a new panel section.\n const newSectionId = getUniqueId();\n return insertPanelWidget(\n state,\n panel.side,\n newSectionId,\n [tabId],\n home.widgetIndex\n );\n}\n"]}
@@ -79,7 +79,7 @@ export function removeWidgetState(state, id) {
79
79
  }
80
80
  /** @internal */
81
81
  export function createFloatingWidgetState(id, args) {
82
- const bounds = toRectangleProps(args?.bounds);
82
+ const bounds = toRectangleProps(args === null || args === void 0 ? void 0 : args.bounds);
83
83
  return {
84
84
  home: {
85
85
  side: "left",
@@ -93,8 +93,8 @@ export function createFloatingWidgetState(id, args) {
93
93
  }
94
94
  /** @internal */
95
95
  export function createPopoutWidgetState(id, args) {
96
- const bounds = toRectangleProps(args?.bounds);
97
- const home = args?.home
96
+ const bounds = toRectangleProps(args === null || args === void 0 ? void 0 : args.bounds);
97
+ const home = (args === null || args === void 0 ? void 0 : args.home)
98
98
  ? args.home
99
99
  : {
100
100
  side: "left",
@@ -260,7 +260,7 @@ export function addFloatingWidget(state, id, tabs, floatingWidgetArgs, widgetArg
260
260
  // eslint-disable-next-line deprecation/deprecation
261
261
  throw new UiError(category, "Floating widget already exists");
262
262
  state = addWidgetState(state, id, tabs, widgetArgs);
263
- let bounds = floatingWidgetArgs?.bounds;
263
+ let bounds = floatingWidgetArgs === null || floatingWidgetArgs === void 0 ? void 0 : floatingWidgetArgs.bounds;
264
264
  if (!bounds) {
265
265
  bounds = getNewFloatingWidgetBounds(state);
266
266
  }
@@ -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"]}
@@ -30,7 +30,7 @@ export function TitleBarTarget() {
30
30
  // istanbul ignore next
31
31
  const hidden = !allowedTarget ||
32
32
  (((!draggedTab && !draggedWidgetId) || draggedWidgetId === widgetId) &&
33
- !(activeHomeState?.widgetId === widgetId));
33
+ !((activeHomeState === null || activeHomeState === void 0 ? void 0 : activeHomeState.widgetId) === widgetId));
34
34
  const className = classnames("nz-target-titleBarTarget", hidden && "nz-hidden",
35
35
  // istanbul ignore next
36
36
  cursorType && 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,OAAO,uBAAuB,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,gBAAgB;AAChB,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAC/C,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAiB,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,sBAAsB,CAAC,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,UAAU,CAC1B,0BAA0B,EAC1B,MAAM,IAAI,WAAW;IACrB,uBAAuB;IACvB,UAAU,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAC7C,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG;QACjC,oBAAC,UAAU,OAAG,CACV,CACP,CAAC;AACJ,CAAC;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,OAAO,uBAAuB,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,gBAAgB;AAChB,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAC/C,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAiB,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,sBAAsB,CAAC,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,UAAU,CAC1B,0BAA0B,EAC1B,MAAM,IAAI,WAAW;IACrB,uBAAuB;IACvB,UAAU,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAC7C,CAAC;IACF,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG;QACjC,oBAAC,UAAU,OAAG,CACV,CACP,CAAC;AACJ,CAAC;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"}
@@ -5,7 +5,6 @@
5
5
  /** @packageDocumentation
6
6
  * @module Widget
7
7
  */
8
- import { assert } from "@itwin/core-bentley";
9
8
  import { Point } from "@itwin/core-react";
10
9
  import * as React from "react";
11
10
  import { useTransientState } from "../../widget-panels/useTransientState";
@@ -17,12 +16,13 @@ export function ScrollableWidgetContent(props) {
17
16
  const scrollPosition = React.useRef(new Point());
18
17
  const ref = React.useRef(null);
19
18
  const onSave = React.useCallback(() => {
20
- // istanbul ignore else
21
- if (!!ref.current)
22
- scrollPosition.current = new Point(ref.current.scrollLeft, ref.current.scrollTop);
19
+ if (!ref.current)
20
+ return;
21
+ scrollPosition.current = new Point(ref.current.scrollLeft, ref.current.scrollTop);
23
22
  }, []);
24
23
  const onRestore = React.useCallback(() => {
25
- assert(!!ref.current);
24
+ if (!ref.current)
25
+ return;
26
26
  ref.current.scrollLeft = scrollPosition.current.x;
27
27
  ref.current.scrollTop = scrollPosition.current.y;
28
28
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/Content.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,gBAAgB,CAAC;AAYxB;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAmC;IACzE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,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,KAAK,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,MAAM,CAAC,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,iBAAiB,CAAC,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","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,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,gBAAgB,CAAC;AAYxB;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAmC;IACzE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,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,KAAK,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,iBAAiB,CAAC,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","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"]}
@@ -18,7 +18,7 @@ export function WidgetContentRenderers() {
18
18
  const tabIds = useLayout((state) => {
19
19
  return Object.keys(state.tabs);
20
20
  }, true);
21
- const toolSettingsTabId = useLayout((state) => state.toolSettings?.tabId);
21
+ const toolSettingsTabId = useLayout((state) => { var _a; return (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId; });
22
22
  return (React.createElement(React.Fragment, null, tabIds.map((tabId) => {
23
23
  const children = tabId === toolSettingsTabId ? toolSettingsContent : widgetContent;
24
24
  return (React.createElement(WidgetContentRenderer, { key: tabId, tabId: tabId }, children));
@@ -46,7 +46,7 @@ export function WidgetContentRenderer(props) {
46
46
  widgetContentManager.onRestoreTransientState.raiseEvent(props.tabId);
47
47
  }
48
48
  return () => {
49
- for (const child of parent?.children || []) {
49
+ for (const child of (parent === null || parent === void 0 ? void 0 : parent.children) || []) {
50
50
  if (child === container.current) {
51
51
  parent.removeChild(child);
52
52
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ContentRenderer.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/ContentRenderer.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,wBAAwB,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,gBAAgB;AAChB,MAAM,UAAU,sBAAsB;IACpC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;IACjE,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,SAAS,CAAC,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,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,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;AAOD,gBAAgB;AAChB,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,SAAS,CAAC,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,2BAA2B,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,MAAM,EAAE,QAAQ,IAAI,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,YAAY,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;AAED,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAC7C,SAAS,CACV,CAAC;AACF,YAAY,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAE7C,gBAAgB;AAChB,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,MAAmB,EACnB,SAAsB;IAEtB,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAAC,2BAA2B,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","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":"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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"]}
@@ -19,16 +19,17 @@ export function FloatingTab() {
19
19
  const { id, position } = useLayout((state) => {
20
20
  const draggedTab = state.draggedTab;
21
21
  return {
22
- id: draggedTab?.tabId,
23
- position: draggedTab?.position,
22
+ id: draggedTab === null || draggedTab === void 0 ? void 0 : draggedTab.tabId,
23
+ position: draggedTab === null || draggedTab === void 0 ? void 0 : draggedTab.position,
24
24
  };
25
25
  }, true);
26
26
  const { iconSpec, label } = useLayout((state) => {
27
- const tabId = state.draggedTab?.tabId;
27
+ var _a;
28
+ const tabId = (_a = state.draggedTab) === null || _a === void 0 ? void 0 : _a.tabId;
28
29
  const tab = tabId ? state.tabs[tabId] : undefined;
29
30
  return {
30
- iconSpec: tab?.iconSpec,
31
- label: tab?.label,
31
+ iconSpec: tab === null || tab === void 0 ? void 0 : tab.iconSpec,
32
+ label: tab === null || tab === void 0 ? void 0 : tab.label,
32
33
  };
33
34
  }, true);
34
35
  const dispatch = React.useContext(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,OAAO,oBAAoB,CAAC;AAC5B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,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,SAAS,CAAC,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,uBAAuB,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,UAAU,CAAC;QACT,KAAK,EAAE,EAAE,IAAI,EAAE;QACf,MAAM;QACN,SAAS;KACV,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,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,UAAU,CAC1B,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,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI;QAC3D,kCAAO,KAAK,CAAQ,CAChB,CACP,CAAC;AACJ,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 \"./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,OAAO,oBAAoB,CAAC;AAC5B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,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,SAAS,CAAC,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,uBAAuB,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,UAAU,CAAC;QACT,KAAK,EAAE,EAAE,IAAI,EAAE;QACf,MAAM;QACN,SAAS;KACV,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,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,UAAU,CAC1B,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,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI;QAC3D,kCAAO,KAAK,CAAQ,CAChB,CACP,CAAC;AACJ,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 \"./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"]}
@@ -77,6 +77,7 @@ function useFloatingWidgetState() {
77
77
  const id = useFloatingWidgetId();
78
78
  assert(!!id);
79
79
  return useLayout((state) => {
80
+ var _a;
80
81
  const widget = getWidgetState(state, id);
81
82
  const floatingWidget = state.floatingWidgets.byId[id];
82
83
  const tabs = widget.tabs;
@@ -84,7 +85,7 @@ function useFloatingWidgetState() {
84
85
  const activeTab = state.tabs[activeTabId];
85
86
  const userSized = floatingWidget.userSized;
86
87
  const singleTab = 1 === tabs.length;
87
- const toolSettingsTabId = state.toolSettings?.tabId;
88
+ const toolSettingsTabId = (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.tabId;
88
89
  const isToolSettingsTab = widget.tabs[0] === toolSettingsTabId;
89
90
  const resizable = !!floatingWidget.resizable && !isToolSettingsTab;
90
91
  const autoSized = singleTab && !userSized;
@@ -253,10 +254,11 @@ export function useFloatingWidgetId() {
253
254
  export function useWidgetAllowedToDock() {
254
255
  const id = useFloatingWidgetId();
255
256
  return useLayout((state) => {
257
+ var _a;
256
258
  if (id) {
257
259
  const widget = getWidgetState(state, id);
258
260
  const activeTab = state.tabs[widget.activeTabId];
259
- if (activeTab.allowedPanelTargets?.length === 0) {
261
+ if (((_a = activeTab.allowedPanelTargets) === null || _a === void 0 ? void 0 : _a.length) === 0) {
260
262
  return false;
261
263
  }
262
264
  }