@itwin/appui-react 4.5.1 → 4.6.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 (370) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/lib/cjs/appui-react/UiFramework.js +7 -4
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts +2 -2
  5. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  7. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  9. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -1
  10. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  11. package/lib/cjs/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
  12. package/lib/cjs/appui-react/childwindow/CopyStyles.js +3 -1
  13. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  14. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +3 -2
  16. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  17. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  18. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  19. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  20. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  21. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  22. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  23. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  24. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  25. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  26. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  27. package/lib/cjs/appui-react/content/IModelViewport.js +6 -3
  28. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  29. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  30. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  31. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  32. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  33. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  34. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  35. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +6 -6
  36. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  38. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  40. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  41. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +4 -4
  42. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  43. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  44. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +5 -5
  45. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  47. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +2 -2
  48. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  50. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  51. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  52. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  53. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  54. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +1 -2
  55. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  57. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +22 -26
  58. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +166 -217
  60. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  61. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +1 -7
  62. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +0 -6
  64. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  65. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +3 -2
  66. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  67. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  68. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  69. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  71. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  73. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  74. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  75. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  76. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  77. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  78. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  79. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -1
  80. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  81. package/lib/cjs/appui-react/messages/ActivityMessage.js +7 -5
  82. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  83. package/lib/cjs/appui-react/messages/MessageManager.d.ts +0 -1
  84. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/messages/MessageManager.js +1 -2
  86. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  87. package/lib/cjs/appui-react/messages/Pointer.d.ts +1 -2
  88. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/messages/Pointer.js +1 -1
  90. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  91. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  92. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  93. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +2 -1
  94. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  95. package/lib/cjs/appui-react/popup/PopupManager.js +2 -1
  96. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  97. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +2 -2
  98. package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  100. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  101. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  102. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  103. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  104. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  105. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +16 -20
  106. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  107. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +86 -116
  108. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  109. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  110. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  111. package/lib/cjs/appui-react/statusbar/StatusBar.js +5 -3
  112. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  113. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  114. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -2
  115. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  116. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  117. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  118. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts +36 -0
  119. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts.map +1 -0
  120. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.js +134 -0
  121. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -0
  122. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +1 -1
  123. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  125. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  126. package/lib/cjs/appui-react/syncui/UiSyncEvent.d.ts +16 -0
  127. package/lib/cjs/appui-react/syncui/UiSyncEvent.d.ts.map +1 -0
  128. package/lib/cjs/appui-react/syncui/UiSyncEvent.js +18 -0
  129. package/lib/cjs/appui-react/syncui/UiSyncEvent.js.map +1 -0
  130. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +4 -6
  131. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  132. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  133. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  134. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +17 -10
  135. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  136. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  137. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  138. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
  139. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  140. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  141. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  142. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  143. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  144. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  145. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  146. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  147. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  148. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  149. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  150. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  151. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  152. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  154. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  155. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  156. package/lib/cjs/appui-react/widget-panels/Content.js +9 -8
  157. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  158. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +7 -29
  159. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/widget-panels/Frontstage.js +128 -463
  161. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  162. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  163. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  164. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  165. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  166. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +34 -15
  168. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  169. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  170. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  171. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  172. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  173. package/lib/cjs/appui-react/widgets/Widget.d.ts +10 -4
  174. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  175. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  176. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +9 -29
  177. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/widgets/WidgetDef.js +90 -46
  179. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  180. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  181. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  182. package/lib/cjs/appui-react.d.ts +1 -0
  183. package/lib/cjs/appui-react.d.ts.map +1 -1
  184. package/lib/cjs/appui-react.js +1 -0
  185. package/lib/cjs/appui-react.js.map +1 -1
  186. package/lib/esm/appui-react/UiFramework.js +7 -4
  187. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  188. package/lib/esm/appui-react/accudraw/MenuButton.d.ts +2 -2
  189. package/lib/esm/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  190. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  191. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  192. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  193. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
  194. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  195. package/lib/esm/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
  196. package/lib/esm/appui-react/childwindow/CopyStyles.js +3 -1
  197. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  198. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  199. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +3 -2
  200. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  201. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  202. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  203. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  204. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  205. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  206. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  207. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  208. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  209. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  210. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  211. package/lib/esm/appui-react/content/IModelViewport.js +6 -3
  212. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  213. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  214. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  215. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  216. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  217. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  218. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  219. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +6 -6
  220. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  221. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  222. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  223. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  224. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  225. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +4 -4
  226. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  227. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  228. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +5 -5
  229. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  230. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  231. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +2 -2
  232. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  233. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  234. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  235. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  236. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  237. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  238. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +1 -2
  239. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  240. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  241. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +22 -26
  242. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  243. package/lib/esm/appui-react/frontstage/FrontstageDef.js +170 -221
  244. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  245. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +1 -7
  246. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  247. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +0 -6
  248. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  249. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -2
  250. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  251. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  252. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  253. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  254. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  255. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  256. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  257. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  258. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  259. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  260. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  261. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  262. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  263. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -1
  264. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  265. package/lib/esm/appui-react/messages/ActivityMessage.js +7 -5
  266. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  267. package/lib/esm/appui-react/messages/MessageManager.d.ts +0 -1
  268. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  269. package/lib/esm/appui-react/messages/MessageManager.js +1 -2
  270. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  271. package/lib/esm/appui-react/messages/Pointer.d.ts +1 -2
  272. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  273. package/lib/esm/appui-react/messages/Pointer.js +1 -1
  274. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  275. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  276. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  277. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +2 -1
  278. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  279. package/lib/esm/appui-react/popup/PopupManager.js +2 -1
  280. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  281. package/lib/esm/appui-react/popup/PositionPopup.d.ts +2 -2
  282. package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
  283. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  284. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  285. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  286. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  287. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  288. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  289. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +16 -20
  290. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  291. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +84 -115
  292. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  293. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  294. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  295. package/lib/esm/appui-react/statusbar/StatusBar.js +5 -3
  296. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  297. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  298. package/lib/esm/appui-react/statusfields/MessageCenter.js +1 -2
  299. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  300. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  301. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  302. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts +36 -0
  303. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts.map +1 -0
  304. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.js +130 -0
  305. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -0
  306. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +1 -1
  307. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  308. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  309. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  310. package/lib/esm/appui-react/syncui/UiSyncEvent.d.ts +16 -0
  311. package/lib/esm/appui-react/syncui/UiSyncEvent.d.ts.map +1 -0
  312. package/lib/esm/appui-react/syncui/UiSyncEvent.js +14 -0
  313. package/lib/esm/appui-react/syncui/UiSyncEvent.js.map +1 -0
  314. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +4 -6
  315. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  316. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  317. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  318. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +17 -10
  319. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  320. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  321. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  322. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
  323. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  324. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  325. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  326. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  327. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  328. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  329. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  330. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  331. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  332. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  333. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  334. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  335. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  336. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  337. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  338. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  339. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  340. package/lib/esm/appui-react/widget-panels/Content.js +9 -8
  341. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  342. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +7 -29
  343. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  344. package/lib/esm/appui-react/widget-panels/Frontstage.js +131 -462
  345. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  346. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  347. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  348. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  349. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  350. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  351. package/lib/esm/appui-react/widget-panels/ToolSettings.js +34 -15
  352. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  353. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  354. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  355. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  356. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  357. package/lib/esm/appui-react/widgets/Widget.d.ts +10 -4
  358. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  359. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  360. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +9 -29
  361. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  362. package/lib/esm/appui-react/widgets/WidgetDef.js +90 -46
  363. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  364. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  365. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  366. package/lib/esm/appui-react.d.ts +1 -0
  367. package/lib/esm/appui-react.d.ts.map +1 -1
  368. package/lib/esm/appui-react.js +1 -0
  369. package/lib/esm/appui-react.js.map +1 -1
  370. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,+BAA6B;AAC7B,+BAA+B;AAC/B,wDAAiD;AACjD,kEAKmC;AACnC,gDAA6C;AAC7C,uFAAoF;AAYpF,SAAS,sBAAsB;IAC7B,MAAM,MAAM,GAAG,yBAAW,CAAC,WAAW,CAAC,YAAY,CAAC;IACpD,MAAM,QAAQ,GAAG,yBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IACvD,MAAM,mBAAmB,GAAG,yBAAS,CAAC,YAAY,CAAC,kBAAkB,CACnE,iDAAiD,CAClD,CAAC;IACF,MAAM,gBAAgB,GAAG,yBAAS,CAAC,YAAY,CAAC,kBAAkB,CAChE,uCAAuC,CACxC,CAAC;IACF,MAAM,cAAc,GAAG,yBAAS,CAAC,YAAY,CAAC,kBAAkB,CAC9D,qCAAqC,CACtC,CAAC;IACF,MAAM,SAAS,GAAG,CAChB,6BAAK,SAAS,EAAC,+CAA+C;QAC3D,gBAAgB;QAChB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB;QACzC,cAAc,CACX,CACP,CAAC;IACF,MAAM,UAAU,GAAG,gCAAO,CAAC;IAC3B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnC,CAAC;AAED,gBAAgB;AAChB,+DAA+D;AAC/D,SAAS,OAAO,CAAC,EAAE,QAAQ,EAAiC;IAC1D,OAAO,CACL,6BAAK,SAAS,EAAC,yCAAyC,IAAE,QAAQ,CAAO,CAC1E,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAgB,wBAAwB;IACtC,MAAM,gBAAgB,GAAG,IAAA,8BAAS,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACxE,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpE,OAAO,oBAAC,yBAAyB,OAAG,CAAC;AACvC,CAAC;AAJD,4DAIC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB;IACvC,MAAM,QAAQ,GAAG,6BAA6B,EAAE,CAAC;IACjD,8HAA8H;IAC9H,OAAO,CACL,oBAAC,uCAAkB,IACjB,MAAM,EACJ,qDAAyB,CAAC,0BAA0B,EAAE,QAAQ,IAAI,MAAM,EAE1E,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAEd,QAAQ;QACP,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7B,oBAAC,sCAAiB,IAAC,GAAG,EAAE,KAAK;YAC3B,oBAAC,OAAO,QAAE,KAAK,CAAC,SAAS,CAAW;YACnC,KAAK,CAAC,UAAU,CACC,CACrB,CAAC,CACe,CACtB,CAAC;AACJ,CAAC;AAnBD,8DAmBC;AAED,gBAAgB;AAChB,SAAgB,6BAA6B;IAC3C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5C,qDAAyB,CAAC,0BAA0B;QAClD,EAAE,0BAA0B,CAC/B,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC7D,sBAAsB,EAAE;KACzB,CAAC,CAAC;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,yBAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE;YACnE,MAAM,KAAK,GACT,qDAAyB,CAAC,0BAA0B;gBAClD,EAAE,0BAA0B,CAAC;YACjC,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEpC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,yBAAW,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAAC,GAAG,EAAE;YACxE,MAAM,KAAK,GACT,qDAAyB,CAAC,0BAA0B;gBAClD,EAAE,0BAA0B,CAAC;YACjC,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,gBAAgB,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEpC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAC7D,OAAO,QAAQ,CAAC;AAClB,CAAC;AA9BD,sEA8BC;AAWD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAyB;IAClE,OAAO,CACL,6BAAK,SAAS,EAAC,4CAA4C,IACxD,QAAQ;QACP,QAAQ,CAAC,GAAG,CAAC,CAAC,OAA0B,EAAE,KAAa,EAAE,EAAE;YACzD,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,KAAK;gBACxB,8BAAM,SAAS,EAAC,wCAAwC,IACrD,OAAO,CAAC,SAAS,CACb;gBACN,OAAO,CAAC,UAAU,CACJ,CAClB,CAAC;QACJ,CAAC,CAAC,CACA,CACP,CAAC;AACJ,CAAC;AAhBD,4CAgBC;AAED,gBAAgB;AAChB,SAAgB,mBAAmB;IACjC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5C,qDAAyB,CAAC,0BAA0B,EAAE,gBAAgB,CACvE,CAAC;IACF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,wBAAwB,GAAG,GAAG,EAAE;YACpC,MAAM,KAAK,GACT,qDAAyB,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;YACzE,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,yBAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,WAAW,CACtD,wBAAwB,CACzB,CAAC;QACF,OAAO,GAAG,EAAE;YACV,yBAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,cAAc,CACzD,wBAAwB,CACzB,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,6BAA6B,GAAG,GAAG,EAAE;YACzC,MAAM,KAAK,GACT,qDAAyB,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;YACzE,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,yBAAW,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAC3D,6BAA6B,CAC9B,CAAC;QACF,OAAO,GAAG,EAAE;YACV,yBAAW,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAC9D,6BAA6B,CAC9B,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,QAAQ,CAAC;AAClB,CAAC;AArCD,kDAqCC;AAED,gBAAgB;AAChB,SAAgB,mBAAmB;IACjC,MAAM,gBAAgB,GAAG,IAAA,8BAAS,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACxE,qFAAqF;IACrF,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpE,OAAO,oBAAC,yBAAyB,OAAG,CAAC;AACvC,CAAC;AALD,kDAKC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB;IACvC,MAAM,gCAAgC,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,oDAAoD;IACpD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,uBAAuB;QACvB,IAAI,gCAAgC,CAAC,OAAO,EAAE;YAC5C,MAAM,iBAAiB,GACrB,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAC9C,2BAA2B,CAC5B,CAAC;YACJ,uBAAuB;YACvB,IAAI,iBAAiB,EAAE;gBACpB,iBAAoC,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI;oBAC7D,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC;aACzC;SACF;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,uBAAuB;IACvB,MAAM,UAAU,GACd,qDAAyB,CAAC,0BAA0B,EAAE,QAAQ,IAAI,MAAM,CAAC;IAE3E,OAAO,CACL,2DAC8B,UAAU,EACtC,SAAS,EAAC,sCAAsC,EAChD,GAAG,EAAE,gCAAgC;QAErC,oBAAC,4CAAuB,QAAE,IAAI,CAA2B,CACrD,CACP,CAAC;AACJ,CAAC;AAjCD,8DAiCC","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 ToolSettings\n */\n\nimport \"./ToolSettings.scss\";\nimport * as React from \"react\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport {\n DockedToolSetting,\n DockedToolSettings,\n ScrollableWidgetContent,\n useLayout,\n} from \"@itwin/appui-layout-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\n\n/** Defines a ToolSettings property entry.\n * @public\n */\nexport interface ToolSettingsEntry {\n // label node which potentially can contain a lock node as well.\n labelNode: React.ReactNode;\n // editor entry used to display and edit the property value\n editorNode: React.ReactNode;\n}\n\nfunction EmptyToolSettingsEntry(): ToolSettingsEntry {\n const toolId = UiFramework.frontstages.activeToolId;\n const toolName = IModelApp.tools.find(toolId)?.flyover;\n const toolPlaceholderName = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsPlaceholderName\"\n );\n const labelStringStart = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsStart\"\n );\n const labelStringEnd = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsEnd\"\n );\n const labelNode = (\n <div className=\"uif-toolsetting-label-docked-horizontal-empty\">\n {labelStringStart}\n {toolName ? toolName : toolPlaceholderName}\n {labelStringEnd}\n </div>\n );\n const editorNode = <div />;\n return { labelNode, editorNode };\n}\n\n/** @internal */\n// istanbul ignore next - need to work on overflow unit testing\nfunction TsLabel({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"uif-toolsetting-label-docked-horizontal\">{children}</div>\n );\n}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n const toolSettingsType = useLayout((state) => state.toolSettings?.type);\n if (!toolSettingsType || toolSettingsType === \"widget\") return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n // for the overflow to work properly each setting in the DockedToolSettings should be wrapped by a DockedToolSetting component\n return (\n <DockedToolSettings\n itemId={\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\"\n }\n key={Date.now()}\n >\n {settings &&\n settings.map((entry, index) => (\n <DockedToolSetting key={index}>\n <TsLabel>{entry.labelNode}</TsLabel>\n {entry.editorNode}\n </DockedToolSetting>\n ))}\n </DockedToolSettings>\n );\n}\n\n/** @internal */\nexport function useHorizontalToolSettingNodes() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes\n );\n const [emptySettings, setEmptySettings] = React.useState(() => [\n EmptyToolSettingsEntry(),\n ]);\n React.useEffect(() => {\n return UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n setSettings(nodes);\n setEmptySettings([EmptyToolSettingsEntry()]);\n });\n }, [setSettings, setEmptySettings]);\n\n React.useEffect(() => {\n return UiFramework.frontstages.onToolSettingsReloadEvent.addListener(() => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n setSettings(nodes);\n setEmptySettings([EmptyToolSettingsEntry()]);\n });\n }, [setSettings, setEmptySettings]);\n\n if (!settings || settings.length === 0) return emptySettings;\n return settings;\n}\n\n/** Defines the ToolSettingsEntry entries that are used to populate a grid layout of ToolSetting properties.\n * Used only when the \"Use UI 2.0\" setting is true\n * @internal\n */\nexport interface ToolSettingsGridProps {\n // label node which potentially can contain a lock node as well.\n settings?: ToolSettingsEntry[];\n}\n\n/** Component that arranges an array of ToolSettingsEntry items into a two column grid layout.\n * The left column is considered the label column, the right column is considered the property\n * editor column.\n * @internal\n */\nexport function ToolSettingsGrid({ settings }: ToolSettingsGridProps) {\n return (\n <div className=\"uifw-standard-toolsettings-two-column-grid\">\n {settings &&\n settings.map((setting: ToolSettingsEntry, index: number) => {\n return (\n <React.Fragment key={index}>\n <span className=\"uifw-standard-toolsettings-label-entry\">\n {setting.labelNode}\n </span>\n {setting.editorNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\n/** @internal */\nexport function useToolSettingsNode() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** @internal */\nexport function ToolSettingsContent() {\n const toolSettingsType = useLayout((state) => state.toolSettings?.type);\n // This is needed to remount underlying components tree when going into widget state.\n if (!toolSettingsType || toolSettingsType === \"docked\") return null;\n return <ToolSettingsWidgetContent />;\n}\n\n/** @internal */\nexport function ToolSettingsWidgetContent() {\n const floatingToolSettingsContainerRef = React.useRef<HTMLDivElement>(null);\n const node = useToolSettingsNode();\n // if no tool settings hide the floating widgets tab\n React.useEffect(() => {\n // istanbul ignore else\n if (floatingToolSettingsContainerRef.current) {\n const floatingWidgetTab =\n floatingToolSettingsContainerRef.current.closest(\n \".nz-floating-toolsettings\"\n );\n // istanbul ignore else\n if (floatingWidgetTab) {\n (floatingWidgetTab as HTMLDivElement).style.visibility = !!node\n ? \"visible\"\n : /* istanbul ignore next */ \"hidden\";\n }\n }\n }, [node]);\n\n // istanbul ignore next\n const providerId =\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\";\n\n return (\n <div\n data-toolsettings-provider={providerId}\n className=\"uifw-floating-toolsettings-container\"\n ref={floatingToolSettingsContainerRef}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"ToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/ToolSettings.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 ToolSettings\n */\n\nimport \"./ToolSettings.scss\";\nimport * as React from \"react\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport {\n DockedToolSetting,\n DockedToolSettings,\n ScrollableWidgetContent,\n useLayout,\n} from \"@itwin/appui-layout-react\";\nimport { UiFramework } from \"../UiFramework\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\n\n/** Defines a ToolSettings property entry.\n * @public\n */\nexport interface ToolSettingsEntry {\n // label node which potentially can contain a lock node as well.\n labelNode: React.ReactNode;\n // editor entry used to display and edit the property value\n editorNode: React.ReactNode;\n}\n\nfunction EmptyToolSettingsEntry(): ToolSettingsEntry {\n const toolId = UiFramework.frontstages.activeToolId;\n const toolName = IModelApp.tools.find(toolId)?.flyover;\n const toolPlaceholderName = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsPlaceholderName\"\n );\n const labelStringStart = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsStart\"\n );\n const labelStringEnd = IModelApp.localization.getLocalizedString(\n \"UiFramework:tools.noToolSettingsEnd\"\n );\n const labelNode = (\n <div className=\"uif-toolsetting-label-docked-horizontal-empty\">\n {labelStringStart}\n {toolName ? toolName : toolPlaceholderName}\n {labelStringEnd}\n </div>\n );\n const editorNode = <div />;\n return { labelNode, editorNode };\n}\n\n/** @internal */\n// istanbul ignore next - need to work on overflow unit testing\nfunction TsLabel({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"uif-toolsetting-label-docked-horizontal\">{children}</div>\n );\n}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n const renderDocked = useLayout((state) => {\n const toolSettings = state.toolSettings;\n if (!toolSettings) return false;\n if (toolSettings.type === \"widget\") return false;\n return !toolSettings.hidden;\n });\n if (!renderDocked) return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n const [forceRefreshKey, setForceRefreshKey] = React.useState(Date.now());\n React.useEffect(() => {\n // We cant work with the content of the settings, but we can force refresh when\n // the array is different.\n setForceRefreshKey(Date.now());\n }, [settings]);\n // for the overflow to work properly each setting in the DockedToolSettings should be wrapped by a DockedToolSetting component\n return (\n <DockedToolSettings\n itemId={\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\"\n }\n key={forceRefreshKey}\n >\n {settings &&\n settings.map((entry, index) => (\n <DockedToolSetting key={index}>\n <TsLabel>{entry.labelNode}</TsLabel>\n {entry.editorNode}\n </DockedToolSetting>\n ))}\n </DockedToolSettings>\n );\n}\n\n/** @internal */\nexport function useHorizontalToolSettingNodes() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes\n );\n const [emptySettings, setEmptySettings] = React.useState(() => [\n EmptyToolSettingsEntry(),\n ]);\n React.useEffect(() => {\n return UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n setSettings(nodes);\n setEmptySettings([EmptyToolSettingsEntry()]);\n });\n }, [setSettings, setEmptySettings]);\n\n React.useEffect(() => {\n return UiFramework.frontstages.onToolSettingsReloadEvent.addListener(() => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider\n ?.horizontalToolSettingNodes;\n setSettings(nodes);\n setEmptySettings([EmptyToolSettingsEntry()]);\n });\n }, [setSettings, setEmptySettings]);\n\n if (!settings || settings.length === 0) return emptySettings;\n return settings;\n}\n\n/** Defines the ToolSettingsEntry entries that are used to populate a grid layout of ToolSetting properties.\n * Used only when the \"Use UI 2.0\" setting is true\n * @internal\n */\nexport interface ToolSettingsGridProps {\n // label node which potentially can contain a lock node as well.\n settings?: ToolSettingsEntry[];\n}\n\n/** Component that arranges an array of ToolSettingsEntry items into a two column grid layout.\n * The left column is considered the label column, the right column is considered the property\n * editor column.\n * @internal\n */\nexport function ToolSettingsGrid({ settings }: ToolSettingsGridProps) {\n return (\n <div className=\"uifw-standard-toolsettings-two-column-grid\">\n {settings &&\n settings.map((setting: ToolSettingsEntry, index: number) => {\n return (\n <React.Fragment key={index}>\n <span className=\"uifw-standard-toolsettings-label-entry\">\n {setting.labelNode}\n </span>\n {setting.editorNode}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\n/** @internal */\nexport function useToolSettingsNode() {\n const [settings, setSettings] = React.useState(\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode\n );\n React.useEffect(() => {\n const handleToolActivatedEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolActivatedEvent.addListener(\n handleToolActivatedEvent\n );\n return () => {\n UiFramework.frontstages.onToolActivatedEvent.removeListener(\n handleToolActivatedEvent\n );\n };\n }, [setSettings]);\n\n React.useEffect(() => {\n const handleToolSettingsReloadEvent = () => {\n const nodes =\n InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;\n setSettings(nodes);\n };\n UiFramework.frontstages.onToolSettingsReloadEvent.addListener(\n handleToolSettingsReloadEvent\n );\n return () => {\n UiFramework.frontstages.onToolSettingsReloadEvent.removeListener(\n handleToolSettingsReloadEvent\n );\n };\n }, [setSettings]);\n\n return settings;\n}\n\n/** @internal */\nexport function ToolSettingsContent() {\n const toolSettingsType = useLayout((state) => state.toolSettings?.type);\n // This is needed to remount underlying components tree when going into widget state.\n if (!toolSettingsType || toolSettingsType === \"docked\") return null;\n return <ToolSettingsWidgetContent />;\n}\n\n/** @internal */\nexport function ToolSettingsWidgetContent() {\n const floatingToolSettingsContainerRef = React.useRef<HTMLDivElement>(null);\n const node = useToolSettingsNode();\n // if no tool settings hide the floating widgets tab\n React.useEffect(() => {\n // istanbul ignore else\n if (floatingToolSettingsContainerRef.current) {\n const floatingWidgetTab =\n floatingToolSettingsContainerRef.current.closest(\n \".nz-floating-toolsettings\"\n );\n // istanbul ignore else\n if (floatingWidgetTab) {\n (floatingWidgetTab as HTMLDivElement).style.visibility = !!node\n ? \"visible\"\n : /* istanbul ignore next */ \"hidden\";\n }\n }\n }, [node]);\n\n // istanbul ignore next\n const providerId =\n InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? \"none\";\n\n return (\n <div\n data-toolsettings-provider={providerId}\n className=\"uifw-floating-toolsettings-container\"\n ref={floatingToolSettingsContainerRef}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n"]}
@@ -13,9 +13,10 @@ const React = require("react");
13
13
  const FrontstageDef_1 = require("../frontstage/FrontstageDef");
14
14
  /** @internal */
15
15
  function WidgetPanelsToolbars() {
16
+ var _a, _b;
16
17
  const frontstageDef = (0, FrontstageDef_1.useActiveFrontstageDef)();
17
- const tools = frontstageDef?.contentManipulation?.reactNode;
18
- const navigation = frontstageDef?.viewNavigation?.reactNode;
18
+ const tools = (_a = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.contentManipulation) === null || _a === void 0 ? void 0 : _a.reactNode;
19
+ const navigation = (_b = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.viewNavigation) === null || _b === void 0 ? void 0 : _b.reactNode;
19
20
  return (React.createElement("div", { className: "uifw-widgetPanels-toolbars" },
20
21
  tools,
21
22
  navigation));
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbars.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Toolbars.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,2BAAyB;AACzB,+BAA+B;AAC/B,+DAAqE;AAErE,gBAAgB;AAChB,SAAgB,oBAAoB;IAClC,MAAM,aAAa,GAAG,IAAA,sCAAsB,GAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,aAAa,EAAE,mBAAmB,EAAE,SAAS,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC;IAC5D,OAAO,CACL,6BAAK,SAAS,EAAC,4BAA4B;QACxC,KAAK;QACL,UAAU,CACP,CACP,CAAC;AACJ,CAAC;AAVD,oDAUC","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 Item\n */\n\nimport \"./Toolbars.scss\";\nimport * as React from \"react\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\n\n/** @internal */\nexport function WidgetPanelsToolbars() {\n const frontstageDef = useActiveFrontstageDef();\n const tools = frontstageDef?.contentManipulation?.reactNode;\n const navigation = frontstageDef?.viewNavigation?.reactNode;\n return (\n <div className=\"uifw-widgetPanels-toolbars\">\n {tools}\n {navigation}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"Toolbars.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Toolbars.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,2BAAyB;AACzB,+BAA+B;AAC/B,+DAAqE;AAErE,gBAAgB;AAChB,SAAgB,oBAAoB;;IAClC,MAAM,aAAa,GAAG,IAAA,sCAAsB,GAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,mBAAmB,0CAAE,SAAS,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,cAAc,0CAAE,SAAS,CAAC;IAC5D,OAAO,CACL,6BAAK,SAAS,EAAC,4BAA4B;QACxC,KAAK;QACL,UAAU,CACP,CACP,CAAC;AACJ,CAAC;AAVD,oDAUC","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 Item\n */\n\nimport \"./Toolbars.scss\";\nimport * as React from \"react\";\nimport { useActiveFrontstageDef } from \"../frontstage/FrontstageDef\";\n\n/** @internal */\nexport function WidgetPanelsToolbars() {\n const frontstageDef = useActiveFrontstageDef();\n const tools = frontstageDef?.contentManipulation?.reactNode;\n const navigation = frontstageDef?.viewNavigation?.reactNode;\n return (\n <div className=\"uifw-widgetPanels-toolbars\">\n {tools}\n {navigation}\n </div>\n );\n}\n"]}
@@ -33,7 +33,7 @@ function createNavigationAidControl(activeContentControl, navigationAidId, activ
33
33
  */
34
34
  function NavigationAidHost(props) {
35
35
  const [activeContentControl, setActiveContentControl] = React.useState(() => UiFramework_1.UiFramework.content.getActiveContentControl());
36
- const [activeContentViewport, setActiveContentViewport] = React.useState(() => /* istanbul ignore next */ activeContentControl?.viewport);
36
+ const [activeContentViewport, setActiveContentViewport] = React.useState(() => /* istanbul ignore next */ activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport);
37
37
  const [navigationAidId, setNavigationAidId] = React.useState(() => activeContentControl
38
38
  ? activeContentControl.navigationAidControl
39
39
  : /* istanbul ignore next */ "");
@@ -107,7 +107,7 @@ function NavigationWidgetComposer(props) {
107
107
  /* istanbul ignore next */
108
108
  const navigationAid = hideNavigationAid
109
109
  ? undefined
110
- : navigationAidHost ?? React.createElement(NavigationAidHost, null);
110
+ : navigationAidHost !== null && navigationAidHost !== void 0 ? navigationAidHost : React.createElement(NavigationAidHost, null);
111
111
  return (React.createElement(core_react_1.WidgetOpacityContext.Provider, { value: {
112
112
  onElementRef: handleChildRef,
113
113
  proximityScale,
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 * as React from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport type { ViewClassFullNameChangedEventArgs } from \"@itwin/imodel-components-react\";\nimport { ViewportComponentEvents } from \"@itwin/imodel-components-react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport { NavigationArea } from \"@itwin/appui-layout-react\";\nimport type {\n ContentControl,\n ContentControlActivatedEventArgs,\n} from \"../content/ContentControl\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\n\nfunction createNavigationAidControl(\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n): NavigationAidControl | undefined {\n // istanbul ignore else\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport\n ? viewport.iModel\n : /* istanbul ignore next */ UiFramework.getIModelConnection();\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/**\n * NavigationAidHost is a component that hosts a NavigationAid that is specific to the active content control.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => /* istanbul ignore next */ activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl\n ? activeContentControl.navigationAidControl\n : /* istanbul ignore next */ \"\"\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleContentControlActivated = (\n args: ContentControlActivatedEventArgs\n ) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n };\n\n UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n handleContentControlActivated\n );\n return () => {\n UiFramework.frontstages.onContentControlActivatedEvent.removeListener(\n handleContentControlActivated\n );\n };\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleViewClassFullNameChange = (\n args: ViewClassFullNameChangedEventArgs\n ) => {\n setActiveViewClass(args.newName);\n };\n\n ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n handleViewClassFullNameChange\n );\n return () => {\n ViewportComponentEvents.onViewClassFullNameChangedEvent.removeListener(\n handleViewClassFullNameChange\n );\n };\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n // istanbul ignore else\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth\n ? /* istanbul ignore next */ props.minWidth\n : \"64px\",\n minHeight: props.minHeight\n ? /* istanbul ignore next */ props.minHeight\n : \"64px\",\n };\n\n // istanbul ignore else\n if (UiFramework.visibility.useProximityOpacity && !UiFramework.isMobile()) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n return (\n <div style={divStyle} ref={ref}>\n {navigationAidControl && navigationAidControl.reactNode}\n </div>\n );\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional Horizontal Toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional Vertical Toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional Navigation Aid host. If not specified a default host is provided which will use registered Navigation Aids and the active content control to determine which if any Navigation Aid to display. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to false. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n /* istanbul ignore next */\n const navigationAid = hideNavigationAid\n ? undefined\n : navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"NavigationWidgetComposer.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/NavigationWidgetComposer.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 * as React from \"react\";\nimport type { ScreenViewport } from \"@itwin/core-frontend\";\nimport type { ViewClassFullNameChangedEventArgs } from \"@itwin/imodel-components-react\";\nimport { ViewportComponentEvents } from \"@itwin/imodel-components-react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport {\n useProximityToMouse,\n useWidgetOpacityContext,\n WidgetElementSet,\n WidgetOpacityContext,\n} from \"@itwin/core-react\";\nimport { NavigationArea } from \"@itwin/appui-layout-react\";\nimport type {\n ContentControl,\n ContentControlActivatedEventArgs,\n} from \"../content/ContentControl\";\nimport type { NavigationAidControl } from \"../navigationaids/NavigationAidControl\";\nimport { UiFramework } from \"../UiFramework\";\n\nfunction createNavigationAidControl(\n activeContentControl: ContentControl | undefined,\n navigationAidId: string,\n activeViewport: ScreenViewport | undefined\n): NavigationAidControl | undefined {\n // istanbul ignore else\n if (\n !activeContentControl ||\n !navigationAidId ||\n activeViewport !== activeContentControl.viewport\n )\n return undefined;\n\n const viewport = activeContentControl.viewport;\n const imodel = viewport\n ? viewport.iModel\n : /* istanbul ignore next */ UiFramework.getIModelConnection();\n const navigationAidControl = UiFramework.controls.create(\n navigationAidId,\n navigationAidId,\n { imodel, viewport }\n ) as NavigationAidControl;\n\n navigationAidControl.initialize();\n return navigationAidControl;\n}\n\n/** Properties for the [[NavigationAidHost]] React component\n * @public\n */\nexport interface NavigationAidHostProps {\n /** Navigation Aid Host minimum width. Defaults to \"64px\". */\n minWidth?: string;\n /** Navigation Aid Host minimum height. Defaults to \"64px\". */\n minHeight?: string;\n}\n\n/**\n * NavigationAidHost is a component that hosts a NavigationAid that is specific to the active content control.\n * @public\n */\nexport function NavigationAidHost(props: NavigationAidHostProps) {\n const [activeContentControl, setActiveContentControl] = React.useState(() =>\n UiFramework.content.getActiveContentControl()\n );\n const [activeContentViewport, setActiveContentViewport] = React.useState(\n () => /* istanbul ignore next */ activeContentControl?.viewport\n );\n const [navigationAidId, setNavigationAidId] = React.useState(() =>\n activeContentControl\n ? activeContentControl.navigationAidControl\n : /* istanbul ignore next */ \"\"\n );\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleContentControlActivated = (\n args: ContentControlActivatedEventArgs\n ) => {\n setActiveContentControl(args.activeContentControl);\n setActiveContentViewport(args.activeContentControl.viewport);\n setNavigationAidId(args.activeContentControl.navigationAidControl);\n };\n\n UiFramework.frontstages.onContentControlActivatedEvent.addListener(\n handleContentControlActivated\n );\n return () => {\n UiFramework.frontstages.onContentControlActivatedEvent.removeListener(\n handleContentControlActivated\n );\n };\n }, []);\n\n const [activeViewClass, setActiveViewClass] = React.useState(() => {\n const content = UiFramework.content.getActiveContentControl();\n if (content && content.viewport) return content.viewport.view.classFullName;\n return \"\";\n });\n\n React.useEffect(() => {\n // istanbul ignore next\n const handleViewClassFullNameChange = (\n args: ViewClassFullNameChangedEventArgs\n ) => {\n setActiveViewClass(args.newName);\n };\n\n ViewportComponentEvents.onViewClassFullNameChangedEvent.addListener(\n handleViewClassFullNameChange\n );\n return () => {\n ViewportComponentEvents.onViewClassFullNameChangedEvent.removeListener(\n handleViewClassFullNameChange\n );\n };\n }, [activeViewClass]);\n\n const navigationAidControl = React.useMemo(\n () =>\n createNavigationAidControl(\n activeContentControl,\n navigationAidId,\n activeContentViewport\n ),\n [activeContentControl, navigationAidId, activeContentViewport]\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n\n const isInitialMount = React.useRef(true);\n const { onElementRef, proximityScale } = useWidgetOpacityContext();\n\n React.useEffect(() => {\n // istanbul ignore else\n if (isInitialMount.current) {\n isInitialMount.current = false;\n onElementRef(ref);\n }\n }, [onElementRef]);\n\n const divStyle: React.CSSProperties = {\n minWidth: props.minWidth\n ? /* istanbul ignore next */ props.minWidth\n : \"64px\",\n minHeight: props.minHeight\n ? /* istanbul ignore next */ props.minHeight\n : \"64px\",\n };\n\n // istanbul ignore else\n if (UiFramework.visibility.useProximityOpacity && !UiFramework.isMobile()) {\n const navigationAidOpacity = 0.3 * proximityScale + 0.7;\n divStyle.opacity = `${navigationAidOpacity}`;\n }\n\n return (\n <div style={divStyle} ref={ref}>\n {navigationAidControl && navigationAidControl.reactNode}\n </div>\n );\n}\n\n/** Properties for the [[NavigationWidgetComposer]] React components\n * @public\n */\nexport interface NavigationWidgetComposerProps extends CommonProps {\n /** Optional Horizontal Toolbar */\n horizontalToolbar?: React.ReactNode;\n /** Optional Vertical Toolbar */\n verticalToolbar?: React.ReactNode;\n /** Optional Navigation Aid host. If not specified a default host is provided which will use registered Navigation Aids and the active content control to determine which if any Navigation Aid to display. */\n navigationAidHost?: React.ReactNode;\n /** If true no navigation aid will be shown. Defaults to false. */\n hideNavigationAid?: boolean;\n}\n\n/**\n * Component that Composes a NavigationWidget typically using toolbars generated via [[ToolbarComposer]] class. The Navigation widget is shown in the top right of the content area\n * and typically holds tools to visually navigate, orient, and zoom to specific content.\n * @public\n */\nexport function NavigationWidgetComposer(props: NavigationWidgetComposerProps) {\n const {\n navigationAidHost,\n horizontalToolbar,\n verticalToolbar,\n hideNavigationAid,\n ...otherProps\n } = props;\n const [elementSet] = React.useState(new WidgetElementSet());\n const handleChildRef = React.useCallback(\n (elementRef: React.RefObject<Element>) => {\n elementSet.add(elementRef);\n },\n [elementSet]\n );\n const proximityScale = useProximityToMouse(\n elementSet,\n UiFramework.visibility.snapWidgetOpacity\n );\n /* istanbul ignore next */\n const navigationAid = hideNavigationAid\n ? undefined\n : navigationAidHost ?? <NavigationAidHost />;\n\n return (\n <WidgetOpacityContext.Provider\n value={{\n onElementRef: handleChildRef,\n proximityScale,\n }}\n >\n <NavigationArea\n navigationAid={navigationAid}\n horizontalToolbar={horizontalToolbar}\n verticalToolbar={verticalToolbar}\n {...otherProps}\n onMouseEnter={UiFramework.visibility.handleWidgetMouseEnter}\n />\n </WidgetOpacityContext.Provider>\n );\n}\n"]}
@@ -2,7 +2,8 @@
2
2
  * @module Widget
3
3
  */
4
4
  /// <reference types="react" />
5
- import type { BadgeType, ConditionalStringValue, PointProps } from "@itwin/appui-abstract";
5
+ import type { BadgeType, ConditionalStringValue } from "@itwin/appui-abstract";
6
+ import type { XAndY } from "@itwin/core-geometry";
6
7
  import type { IconSpec, SizeProps } from "@itwin/core-react";
7
8
  import type { StagePanelLocation } from "../stagepanels/StagePanelLocation";
8
9
  import type { WidgetState } from "./WidgetState";
@@ -10,10 +11,13 @@ import type { WidgetState } from "./WidgetState";
10
11
  * @public
11
12
  */
12
13
  export interface CanFloatWidgetOptions {
14
+ /** Describes if the widget is resizable. */
13
15
  readonly isResizable?: boolean;
14
- readonly defaultPosition?: PointProps;
16
+ readonly defaultPosition?: XAndY;
15
17
  readonly defaultSize?: SizeProps;
18
+ /** Describes to which container the floating widget is assigned. This allows the grouping of multiple widgets within the same floating widget. */
16
19
  readonly containerId?: string;
20
+ /** Describes if the floating widget should hide together with other UI elements. */
17
21
  readonly hideWithUi?: boolean;
18
22
  }
19
23
  /** Describes the data needed to provide a widget.
@@ -21,13 +25,15 @@ export interface CanFloatWidgetOptions {
21
25
  */
22
26
  export interface Widget {
23
27
  readonly id: string;
24
- /** Stage panels to which this widget can be docked. All stage panels are allowed if nothing is provided. */
28
+ /** Stage panels to which this widget can be docked. All stage panels are allowed if nothing is provided. To not allow docking to any panels, provide a blank array. */
25
29
  readonly allowedPanels?: ReadonlyArray<StagePanelLocation>;
26
30
  readonly badge?: BadgeType;
27
31
  /** Defaults to `false`. */
28
32
  readonly canPopout?: boolean;
29
- /** Set to `false` to disable floating of a widget. Alternatively options object can be provided which enables floating. Defaults to `true`. */
33
+ /** Set to `false` to disable floating of a widget. Alternatively options object can be provided which enables floating.
34
+ * If allowedPanels is an empty array, automatically set to `true`. Defaults to `true`. */
30
35
  readonly canFloat?: boolean | CanFloatWidgetOptions;
36
+ /** Defaults to `Floating`(3) if widget is not allowed to dock to any panels. */
31
37
  readonly defaultState?: WidgetState;
32
38
  /** Content of the Widget. */
33
39
  readonly content?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/Widget.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,KAAK,EACV,SAAS,EACT,sBAAsB,EACtB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4GAA4G;IAC5G,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,+IAA+I;IAC/I,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;IACpC,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;CACpD"}
1
+ {"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/Widget.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,kJAAkJ;IAClJ,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uKAAuK;IACvK,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;8FAC0F;IAC1F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACpD,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;IACpC,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;CACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/Widget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","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 type {\n BadgeType,\n ConditionalStringValue,\n PointProps,\n} from \"@itwin/appui-abstract\";\nimport type { IconSpec, SizeProps } from \"@itwin/core-react\";\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport type { WidgetState } from \"./WidgetState\";\n\n/** Describes options of a floating widget.\n * @public\n */\nexport interface CanFloatWidgetOptions {\n readonly isResizable?: boolean;\n readonly defaultPosition?: PointProps;\n readonly defaultSize?: SizeProps;\n readonly containerId?: string;\n readonly hideWithUi?: boolean;\n}\n\n/** Describes the data needed to provide a widget.\n * @public\n */\nexport interface Widget {\n readonly id: string;\n /** Stage panels to which this widget can be docked. All stage panels are allowed if nothing is provided. */\n readonly allowedPanels?: ReadonlyArray<StagePanelLocation>;\n readonly badge?: BadgeType;\n /** Defaults to `false`. */\n readonly canPopout?: boolean;\n /** Set to `false` to disable floating of a widget. Alternatively options object can be provided which enables floating. Defaults to `true`. */\n readonly canFloat?: boolean | CanFloatWidgetOptions;\n readonly defaultState?: WidgetState;\n /** Content of the Widget. */\n readonly content?: React.ReactNode;\n readonly icon?: IconSpec;\n readonly label?: string | ConditionalStringValue;\n readonly priority?: number;\n readonly tooltip?: string | ConditionalStringValue;\n}\n"]}
1
+ {"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/Widget.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG","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 type { BadgeType, ConditionalStringValue } from \"@itwin/appui-abstract\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { IconSpec, SizeProps } from \"@itwin/core-react\";\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport type { WidgetState } from \"./WidgetState\";\n\n/** Describes options of a floating widget.\n * @public\n */\nexport interface CanFloatWidgetOptions {\n /** Describes if the widget is resizable. */\n readonly isResizable?: boolean;\n readonly defaultPosition?: XAndY;\n readonly defaultSize?: SizeProps;\n /** Describes to which container the floating widget is assigned. This allows the grouping of multiple widgets within the same floating widget. */\n readonly containerId?: string;\n /** Describes if the floating widget should hide together with other UI elements. */\n readonly hideWithUi?: boolean;\n}\n\n/** Describes the data needed to provide a widget.\n * @public\n */\nexport interface Widget {\n readonly id: string;\n /** Stage panels to which this widget can be docked. All stage panels are allowed if nothing is provided. To not allow docking to any panels, provide a blank array. */\n readonly allowedPanels?: ReadonlyArray<StagePanelLocation>;\n readonly badge?: BadgeType;\n /** Defaults to `false`. */\n readonly canPopout?: boolean;\n /** Set to `false` to disable floating of a widget. Alternatively options object can be provided which enables floating.\n * If allowedPanels is an empty array, automatically set to `true`. Defaults to `true`. */\n readonly canFloat?: boolean | CanFloatWidgetOptions;\n /** Defaults to `Floating`(3) if widget is not allowed to dock to any panels. */\n readonly defaultState?: WidgetState;\n /** Content of the Widget. */\n readonly content?: React.ReactNode;\n readonly icon?: IconSpec;\n readonly label?: string | ConditionalStringValue;\n readonly priority?: number;\n readonly tooltip?: string | ConditionalStringValue;\n}\n"]}
@@ -2,13 +2,13 @@
2
2
  * @module Widget
3
3
  */
4
4
  import type * as React from "react";
5
- import type { BadgeType, ConditionalStringValue, PointProps, StringGetter } from "@itwin/appui-abstract";
5
+ import type { BadgeType, ConditionalStringValue, StringGetter } from "@itwin/appui-abstract";
6
6
  import { UiEvent } from "@itwin/appui-abstract";
7
- import type { FloatingWidgetState, PanelSide } from "@itwin/appui-layout-react";
7
+ import type { XAndY } from "@itwin/core-geometry";
8
8
  import type { ConfigurableUiControlConstructor } from "../configurableui/ConfigurableUiControl";
9
9
  import { ConfigurableUiControlType } from "../configurableui/ConfigurableUiControl";
10
10
  import type { WidgetControl } from "./WidgetControl";
11
- import type { IconSpec, Rectangle, SizeProps } from "@itwin/core-react";
11
+ import type { IconSpec, SizeProps } from "@itwin/core-react";
12
12
  import type { WidgetConfig } from "./WidgetConfig";
13
13
  import { WidgetState } from "./WidgetState";
14
14
  import { StagePanelLocation } from "../stagepanels/StagePanelLocation";
@@ -42,14 +42,6 @@ export declare enum WidgetType {
42
42
  ToolSettings = 3,
43
43
  StatusBar = 4
44
44
  }
45
- /** @internal */
46
- export interface TabLocation {
47
- widgetId: string;
48
- widgetIndex: number;
49
- side: PanelSide;
50
- tabIndex: number;
51
- floatingWidget?: FloatingWidgetState;
52
- }
53
45
  /** A Widget Definition in the 9-Zone Layout system.
54
46
  * @public
55
47
  */
@@ -63,15 +55,12 @@ export declare class WidgetDef {
63
55
  private _id;
64
56
  private _classId;
65
57
  private _priority;
66
- private _isFloatingStateSupported;
67
- private _isFloatingStateWindowResizable;
68
58
  private _stateChanged;
69
59
  private _widgetType;
70
60
  private _applicationData?;
71
61
  private _icon?;
72
62
  private _internalData?;
73
63
  private _badge?;
74
- private _onWidgetStateChanged?;
75
64
  private _saveTransientState?;
76
65
  private _restoreTransientState?;
77
66
  private _preferredPanelSize;
@@ -82,9 +71,6 @@ export declare class WidgetDef {
82
71
  private _hideWithUiWhenFloating?;
83
72
  private _allowedPanelTargets?;
84
73
  private _initialConfig?;
85
- private _tabLocation?;
86
- private _defaultTabLocation;
87
- private _popoutBounds?;
88
74
  get state(): WidgetState;
89
75
  get id(): string;
90
76
  get classId(): string | ConfigurableUiControlConstructor | undefined;
@@ -103,21 +89,13 @@ export declare class WidgetDef {
103
89
  get widgetType(): WidgetType;
104
90
  set widgetType(type: WidgetType);
105
91
  /** @internal */
106
- get tabLocation(): TabLocation | undefined;
107
- set tabLocation(tabLocation: TabLocation | undefined);
108
- /** @internal */
109
- get defaultTabLocation(): TabLocation;
110
- /** @internal */
111
- get defaultFloatingPosition(): PointProps | undefined;
112
- set defaultFloatingPosition(position: PointProps | undefined);
92
+ get defaultFloatingPosition(): XAndY | undefined;
93
+ set defaultFloatingPosition(position: XAndY | undefined);
113
94
  /** @internal */
114
95
  get defaultFloatingSize(): SizeProps | undefined;
115
96
  set defaultFloatingSize(size: SizeProps | undefined);
116
97
  /** @internal */
117
98
  get defaultState(): WidgetState;
118
- /** @internal */
119
- get popoutBounds(): Rectangle | undefined;
120
- set popoutBounds(bounds: Rectangle | undefined);
121
99
  constructor();
122
100
  /** @internal */
123
101
  static create(config: WidgetConfig, type?: WidgetType): WidgetDef;
@@ -127,9 +105,9 @@ export declare class WidgetDef {
127
105
  /** Get the label string */
128
106
  get label(): string;
129
107
  /** Set the label.
130
- * @param v A string or a function to get the string.
108
+ * @param labelSpec A string or a function to get the string.
131
109
  */
132
- setLabel(v: string | ConditionalStringValue | StringGetter): void;
110
+ setLabel(labelSpec: string | ConditionalStringValue | StringGetter): void;
133
111
  /** Get the tooltip string */
134
112
  get tooltip(): string;
135
113
  /** Set the tooltip.
@@ -141,6 +119,8 @@ export declare class WidgetDef {
141
119
  get reactNode(): React.ReactNode;
142
120
  set reactNode(node: React.ReactNode);
143
121
  setWidgetState(newState: WidgetState): void;
122
+ /** @internal */
123
+ handleWidgetStateChanged(newState: WidgetState): void;
144
124
  setCanPopout(value: boolean | undefined): void;
145
125
  get canPopout(): boolean | undefined;
146
126
  setFloatingContainerId(value: string | undefined): void;
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WidgetDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.tsx"],"names":[],"mappings":"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"}
@@ -13,7 +13,6 @@ const ConfigurableUiControl_1 = require("../configurableui/ConfigurableUiControl
13
13
  const UiFramework_1 = require("../UiFramework");
14
14
  const PropsHelper_1 = require("../utils/PropsHelper");
15
15
  const core_react_1 = require("@itwin/core-react");
16
- const InternalFrontstageManager_1 = require("../frontstage/InternalFrontstageManager");
17
16
  const WidgetState_1 = require("./WidgetState");
18
17
  const StagePanelLocation_1 = require("../stagepanels/StagePanelLocation");
19
18
  const StatusBarWidgetComposerControl_1 = require("./StatusBarWidgetComposerControl");
@@ -59,10 +58,22 @@ class WidgetDef {
59
58
  return this._priority;
60
59
  }
61
60
  get isFloatingStateSupported() {
62
- return this._isFloatingStateSupported;
61
+ if (!this.initialConfig)
62
+ return false;
63
+ const allowedPanels = this.initialConfig.allowedPanels;
64
+ if (allowedPanels && allowedPanels.length === 0) {
65
+ return true;
66
+ }
67
+ const canFloat = this.initialConfig.canFloat;
68
+ return !!canFloat;
63
69
  }
64
70
  get isFloatingStateWindowResizable() {
65
- return this._isFloatingStateWindowResizable;
71
+ var _a;
72
+ const canFloat = (_a = this.initialConfig) === null || _a === void 0 ? void 0 : _a.canFloat;
73
+ if (typeof canFloat === "object") {
74
+ return !!canFloat.isResizable;
75
+ }
76
+ return true;
66
77
  }
67
78
  get isToolSettings() {
68
79
  return this._widgetType === WidgetType.ToolSettings;
@@ -102,17 +113,6 @@ class WidgetDef {
102
113
  this._widgetType = type;
103
114
  }
104
115
  /** @internal */
105
- get tabLocation() {
106
- return this._tabLocation;
107
- }
108
- set tabLocation(tabLocation) {
109
- this._tabLocation = tabLocation;
110
- }
111
- /** @internal */
112
- get defaultTabLocation() {
113
- return this._defaultTabLocation;
114
- }
115
- /** @internal */
116
116
  get defaultFloatingPosition() {
117
117
  return this._defaultFloatingPosition;
118
118
  }
@@ -130,29 +130,14 @@ class WidgetDef {
130
130
  get defaultState() {
131
131
  return this._defaultState;
132
132
  }
133
- /** @internal */
134
- get popoutBounds() {
135
- return this._popoutBounds;
136
- }
137
- set popoutBounds(bounds) {
138
- this._popoutBounds = bounds;
139
- }
140
133
  constructor() {
141
134
  this._label = "";
142
135
  this._tooltip = "";
143
136
  this._defaultState = WidgetState_1.WidgetState.Unloaded;
144
137
  this._classId = undefined;
145
138
  this._priority = 0;
146
- this._isFloatingStateSupported = false;
147
- this._isFloatingStateWindowResizable = true;
148
139
  this._stateChanged = false;
149
140
  this._widgetType = WidgetType.Rectangular;
150
- this._defaultTabLocation = {
151
- side: "left",
152
- tabIndex: 0,
153
- widgetId: "",
154
- widgetIndex: 0,
155
- };
156
141
  WidgetDef._sId++;
157
142
  this._id = `Widget-${WidgetDef._sId}`;
158
143
  }
@@ -167,19 +152,17 @@ class WidgetDef {
167
152
  this._initialConfig = config;
168
153
  this._id = config.id;
169
154
  if (config.label)
170
- this.setLabel(config.label);
155
+ this._label = config.label;
171
156
  else if (config.labelKey)
172
157
  this._label = UiFramework_1.UiFramework.localization.getLocalizedString(config.labelKey);
173
158
  else if (type === WidgetType.ToolSettings)
174
- this.setLabel("Tool Settings");
159
+ this._label = "Tool Settings";
175
160
  this.setCanPopout(config.canPopout);
176
161
  const canFloat = config.canFloat;
177
- this._isFloatingStateSupported = !!canFloat;
178
162
  if (typeof canFloat === "object") {
179
163
  this.setFloatingContainerId(canFloat.containerId);
180
164
  this.defaultFloatingPosition = canFloat.defaultPosition;
181
165
  this._hideWithUiWhenFloating = !!canFloat.hideWithUi;
182
- this._isFloatingStateWindowResizable = !!canFloat.isResizable;
183
166
  this._defaultFloatingSize = canFloat.defaultSize;
184
167
  }
185
168
  if ("allowedPanels" in config) {
@@ -200,6 +183,11 @@ class WidgetDef {
200
183
  if (config.defaultState !== undefined) {
201
184
  this._defaultState = config.defaultState;
202
185
  }
186
+ if (config.allowedPanels &&
187
+ config.allowedPanels.length === 0 &&
188
+ config.defaultState === WidgetState_1.WidgetState.Open) {
189
+ this._defaultState = 3;
190
+ }
203
191
  this._widgetReactNode = config.content;
204
192
  this._icon = config.icon;
205
193
  // istanbul ignore next
@@ -218,14 +206,18 @@ class WidgetDef {
218
206
  return PropsHelper_1.PropsHelper.getStringFromSpec(this._label);
219
207
  }
220
208
  /** Set the label.
221
- * @param v A string or a function to get the string.
209
+ * @param labelSpec A string or a function to get the string.
222
210
  */
223
- setLabel(v) {
224
- if (this._label === v)
211
+ setLabel(labelSpec) {
212
+ this._label = labelSpec; // TODO: handle ConditionalStringValue
213
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
214
+ if (!frontstageDef)
225
215
  return;
226
- this._label = v;
227
- InternalFrontstageManager_1.InternalFrontstageManager.onWidgetLabelChangedEvent.emit({
228
- widgetDef: this,
216
+ const label = PropsHelper_1.PropsHelper.getStringFromSpec(labelSpec);
217
+ frontstageDef.dispatch({
218
+ type: "WIDGET_TAB_SET_LABEL",
219
+ id: this.id,
220
+ label,
229
221
  });
230
222
  }
231
223
  /** Get the tooltip string */
@@ -286,8 +278,45 @@ class WidgetDef {
286
278
  this._widgetReactNode = node;
287
279
  }
288
280
  setWidgetState(newState) {
289
- if (this.state === newState)
281
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
282
+ const state = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.nineZoneState;
283
+ if (!state)
284
+ return;
285
+ if (!frontstageDef.findWidgetDef(this.id))
290
286
  return;
287
+ switch (newState) {
288
+ case WidgetState_1.WidgetState.Closed: {
289
+ frontstageDef.dispatch({
290
+ type: "WIDGET_TAB_CLOSE",
291
+ id: this.id,
292
+ });
293
+ break;
294
+ }
295
+ case WidgetState_1.WidgetState.Floating: {
296
+ frontstageDef.dispatch({
297
+ type: "WIDGET_TAB_FLOAT",
298
+ id: this.id,
299
+ });
300
+ break;
301
+ }
302
+ case WidgetState_1.WidgetState.Hidden: {
303
+ frontstageDef.dispatch({
304
+ type: "WIDGET_TAB_HIDE",
305
+ id: this.id,
306
+ });
307
+ break;
308
+ }
309
+ case WidgetState_1.WidgetState.Open: {
310
+ frontstageDef.dispatch({
311
+ type: "WIDGET_TAB_OPEN",
312
+ id: this.id,
313
+ });
314
+ break;
315
+ }
316
+ }
317
+ }
318
+ /** @internal */
319
+ handleWidgetStateChanged(newState) {
291
320
  this._stateChanged = true;
292
321
  UiFramework_1.UiFramework.frontstages.onWidgetStateChangedEvent.emit({
293
322
  widgetDef: this,
@@ -329,13 +358,10 @@ class WidgetDef {
329
358
  return this._allowedPanelTargets;
330
359
  }
331
360
  set allowedPanelTargets(targets) {
332
- this._allowedPanelTargets =
333
- targets && targets?.length > 0 ? targets : undefined;
361
+ this._allowedPanelTargets = targets;
334
362
  }
335
363
  onWidgetStateChanged() {
336
364
  this.widgetControl && this.widgetControl.onWidgetStateChanged();
337
- // istanbul ignore next
338
- this._onWidgetStateChanged && this._onWidgetStateChanged();
339
365
  }
340
366
  /** Overwrite to save transient DOM state (i.e. scroll offset). */
341
367
  saveTransientState() {
@@ -362,13 +388,31 @@ class WidgetDef {
362
388
  * @public
363
389
  */
364
390
  show() {
365
- InternalFrontstageManager_1.InternalFrontstageManager.onWidgetShowEvent.emit({ widgetDef: this });
391
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
392
+ const state = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.nineZoneState;
393
+ if (!state)
394
+ return;
395
+ if (!frontstageDef.findWidgetDef(this.id))
396
+ return;
397
+ frontstageDef.dispatch({
398
+ type: "WIDGET_TAB_SHOW",
399
+ id: this.id,
400
+ });
366
401
  }
367
402
  /** Opens the widget and expands it to fill full size of the stage panel.
368
403
  * @public
369
404
  */
370
405
  expand() {
371
- InternalFrontstageManager_1.InternalFrontstageManager.onWidgetExpandEvent.emit({ widgetDef: this });
406
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
407
+ const state = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.nineZoneState;
408
+ if (!state)
409
+ return;
410
+ if (!frontstageDef.findWidgetDef(this.id))
411
+ return;
412
+ frontstageDef.dispatch({
413
+ type: "WIDGET_TAB_EXPAND",
414
+ id: this.id,
415
+ });
372
416
  }
373
417
  }
374
418
  WidgetDef._sId = 0;