@itwin/appui-react 4.7.2 → 4.8.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 (255) hide show
  1. package/CHANGELOG.md +9 -3
  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/backstage/BackstageComposerItem.js +2 -1
  5. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  6. package/lib/cjs/appui-react/childwindow/ChildWindowConfig.d.ts +17 -0
  7. package/lib/cjs/appui-react/childwindow/ChildWindowConfig.d.ts.map +1 -0
  8. package/lib/cjs/appui-react/childwindow/ChildWindowConfig.js +3 -0
  9. package/lib/cjs/appui-react/childwindow/ChildWindowConfig.js.map +1 -0
  10. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +18 -1
  12. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  13. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  14. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  15. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  16. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  17. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  18. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  19. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  20. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  21. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  22. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  23. package/lib/cjs/appui-react/content/IModelViewport.js +7 -4
  24. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  25. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  26. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  27. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  28. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  29. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  30. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  31. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  32. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  33. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  34. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  35. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  36. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  37. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +2 -1
  38. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +56 -38
  40. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  41. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +3 -2
  42. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  43. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  44. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  45. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  46. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  47. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  48. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  49. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  50. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  51. package/lib/cjs/appui-react/messages/ActivityMessage.js +7 -5
  52. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  53. package/lib/cjs/appui-react/messages/MessageManager.js +2 -1
  54. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  55. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  56. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  57. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +2 -1
  58. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  59. package/lib/cjs/appui-react/popup/PopupManager.js +2 -1
  60. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  61. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +1 -0
  62. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/preview/PreviewFeatures.js +2 -1
  64. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  65. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  66. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  67. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  68. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  69. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +16 -11
  70. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  71. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  72. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  73. package/lib/cjs/appui-react/statusbar/StatusBar.js +5 -3
  74. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  75. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  76. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  77. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -1
  78. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  79. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +4 -6
  80. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  81. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  82. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  83. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +17 -10
  84. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  85. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts +1 -1
  86. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +1 -1
  87. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  88. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  89. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  90. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  91. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  92. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  93. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  94. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  95. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  96. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  97. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  98. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  99. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  100. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  101. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  102. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  103. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  104. package/lib/cjs/appui-react/widget-panels/Content.js +9 -8
  105. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  106. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +1 -1
  107. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/widget-panels/Frontstage.js +50 -47
  109. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  110. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  111. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  112. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  113. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  114. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +23 -15
  115. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  116. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  117. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  118. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  119. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  120. package/lib/cjs/appui-react/widgets/Widget.d.ts +1 -1
  121. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  122. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  123. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/widgets/WidgetDef.js +15 -7
  125. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  126. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  127. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  128. package/lib/esm/appui-react/UiFramework.js +7 -4
  129. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  130. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
  131. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  132. package/lib/esm/appui-react/childwindow/ChildWindowConfig.d.ts +17 -0
  133. package/lib/esm/appui-react/childwindow/ChildWindowConfig.d.ts.map +1 -0
  134. package/lib/esm/appui-react/childwindow/ChildWindowConfig.js +2 -0
  135. package/lib/esm/appui-react/childwindow/ChildWindowConfig.js.map +1 -0
  136. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  137. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +18 -1
  138. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  139. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  140. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  141. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  142. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  143. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  144. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  145. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  146. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  147. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  148. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  149. package/lib/esm/appui-react/content/IModelViewport.js +7 -4
  150. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  151. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  152. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  153. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  154. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  155. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  156. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  157. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  158. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  159. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  160. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  161. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  162. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  163. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +2 -1
  164. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  165. package/lib/esm/appui-react/frontstage/FrontstageDef.js +57 -39
  166. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  167. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -2
  168. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  169. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  170. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  171. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  172. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  173. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  174. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  175. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  176. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  177. package/lib/esm/appui-react/messages/ActivityMessage.js +7 -5
  178. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  179. package/lib/esm/appui-react/messages/MessageManager.js +2 -1
  180. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  181. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  182. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  183. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +2 -1
  184. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  185. package/lib/esm/appui-react/popup/PopupManager.js +2 -1
  186. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  187. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +1 -0
  188. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  189. package/lib/esm/appui-react/preview/PreviewFeatures.js +2 -1
  190. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  191. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  192. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  193. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  194. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  195. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +16 -11
  196. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  197. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  198. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  199. package/lib/esm/appui-react/statusbar/StatusBar.js +5 -3
  200. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  201. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  202. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  203. package/lib/esm/appui-react/theme/ThemeManager.js +1 -1
  204. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  205. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +4 -6
  206. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  207. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  208. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  209. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +17 -10
  210. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  211. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts +1 -1
  212. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +1 -1
  213. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  214. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  215. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  216. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  217. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  218. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  219. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  220. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  221. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  222. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  223. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  224. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  225. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  226. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  227. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  228. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  229. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  230. package/lib/esm/appui-react/widget-panels/Content.js +9 -8
  231. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  232. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +1 -1
  233. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  234. package/lib/esm/appui-react/widget-panels/Frontstage.js +50 -47
  235. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  236. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  237. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  238. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  239. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  240. package/lib/esm/appui-react/widget-panels/ToolSettings.js +23 -15
  241. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  242. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  243. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  244. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  245. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  246. package/lib/esm/appui-react/widgets/Widget.d.ts +1 -1
  247. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  248. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  249. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  250. package/lib/esm/appui-react/widgets/WidgetDef.js +15 -7
  251. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  252. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  253. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  254. package/lib/public/locales/en/UiFramework.json +2 -1
  255. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Tab.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,sBAAoB;AACpB,+BAA+B;AAC/B,kEAAsD;AACtD,uCAAyC;AACzC,kDAAmD;AACnD,0DAAkD;AAElD,gBAAgB;AAChB,SAAgB,eAAe;IAC7B,MAAM,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;IACjC,MAAM,SAAS,GAAG,SAAS,EAAE,SAAS,CAAC;IACvC,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CACzB,GAAG,EAAE,CAAC,2BAAc,CAAC,wBAAwB,CAAC,SAAS,CAAC,EACxD,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,OAAO,oBAAC,8BAAS,IAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;AAChE,CAAC;AATD,0CASC;AAED,gBAAgB;AAChB,SAAgB,iBAAiB,CAAC,SAAgC;IAChE,IAAI,SAAS,KAAK,0BAAS,CAAC,GAAG;QAAE,OAAO,gBAAgB,CAAC;SACpD,IAAI,SAAS,KAAK,0BAAS,CAAC,gBAAgB;QAAE,OAAO,eAAe,CAAC;IAC1E,OAAO,SAAS,CAAC;AACnB,CAAC;AAJD,8CAIC","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 \"./Tab.scss\";\nimport * as React from \"react\";\nimport { WidgetTab } from \"@itwin/appui-layout-react\";\nimport { useWidgetDef } from \"./Content\";\nimport { BadgeUtilities } from \"@itwin/core-react\";\nimport { BadgeType } from \"@itwin/appui-abstract\";\n\n/** @internal */\nexport function WidgetPanelsTab() {\n const widgetDef = useWidgetDef();\n const badgeType = widgetDef?.badgeType;\n const badgeClassName = getBadgeClassName(badgeType);\n const badge = React.useMemo(\n () => BadgeUtilities.getComponentForBadgeType(badgeType),\n [badgeType]\n );\n return <WidgetTab className={badgeClassName} badge={badge} />;\n}\n\n/** @internal */\nexport function getBadgeClassName(badgeType: BadgeType | undefined) {\n if (badgeType === BadgeType.New) return \"uifw-badge-new\";\n else if (badgeType === BadgeType.TechnicalPreview) return \"uifw-badge-tp\";\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Tab.tsx"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG;;;AAEH,sBAAoB;AACpB,+BAA+B;AAC/B,kEAAsD;AACtD,uCAAyC;AACzC,kDAAmD;AACnD,0DAAkD;AAElD,gBAAgB;AAChB,SAAgB,eAAe;IAC7B,MAAM,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;IACjC,MAAM,SAAS,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC;IACvC,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CACzB,GAAG,EAAE,CAAC,2BAAc,CAAC,wBAAwB,CAAC,SAAS,CAAC,EACxD,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,OAAO,oBAAC,8BAAS,IAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;AAChE,CAAC;AATD,0CASC;AAED,gBAAgB;AAChB,SAAgB,iBAAiB,CAAC,SAAgC;IAChE,IAAI,SAAS,KAAK,0BAAS,CAAC,GAAG;QAAE,OAAO,gBAAgB,CAAC;SACpD,IAAI,SAAS,KAAK,0BAAS,CAAC,gBAAgB;QAAE,OAAO,eAAe,CAAC;IAC1E,OAAO,SAAS,CAAC;AACnB,CAAC;AAJD,8CAIC","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 \"./Tab.scss\";\nimport * as React from \"react\";\nimport { WidgetTab } from \"@itwin/appui-layout-react\";\nimport { useWidgetDef } from \"./Content\";\nimport { BadgeUtilities } from \"@itwin/core-react\";\nimport { BadgeType } from \"@itwin/appui-abstract\";\n\n/** @internal */\nexport function WidgetPanelsTab() {\n const widgetDef = useWidgetDef();\n const badgeType = widgetDef?.badgeType;\n const badgeClassName = getBadgeClassName(badgeType);\n const badge = React.useMemo(\n () => BadgeUtilities.getComponentForBadgeType(badgeType),\n [badgeType]\n );\n return <WidgetTab className={badgeClassName} badge={badge} />;\n}\n\n/** @internal */\nexport function getBadgeClassName(badgeType: BadgeType | undefined) {\n if (badgeType === BadgeType.New) return \"uifw-badge-new\";\n else if (badgeType === BadgeType.TechnicalPreview) return \"uifw-badge-tp\";\n return undefined;\n}\n"]}
@@ -15,8 +15,9 @@ const appui_layout_react_1 = require("@itwin/appui-layout-react");
15
15
  const UiFramework_1 = require("../UiFramework");
16
16
  const InternalFrontstageManager_1 = require("../frontstage/InternalFrontstageManager");
17
17
  function EmptyToolSettingsEntry() {
18
+ var _a;
18
19
  const toolId = UiFramework_1.UiFramework.frontstages.activeToolId;
19
- const toolName = core_frontend_1.IModelApp.tools.find(toolId)?.flyover;
20
+ const toolName = (_a = core_frontend_1.IModelApp.tools.find(toolId)) === null || _a === void 0 ? void 0 : _a.flyover;
20
21
  const toolPlaceholderName = core_frontend_1.IModelApp.localization.getLocalizedString("UiFramework:tools.noToolSettingsPlaceholderName");
21
22
  const labelStringStart = core_frontend_1.IModelApp.localization.getLocalizedString("UiFramework:tools.noToolSettingsStart");
22
23
  const labelStringEnd = core_frontend_1.IModelApp.localization.getLocalizedString("UiFramework:tools.noToolSettingsEnd");
@@ -55,10 +56,11 @@ function WidgetPanelsToolSettings() {
55
56
  exports.WidgetPanelsToolSettings = WidgetPanelsToolSettings;
56
57
  /** @internal */
57
58
  function ToolSettingsDockedContent() {
59
+ var _a, _b;
58
60
  const settings = useHorizontalToolSettingNodes();
59
61
  const forceRefreshKey = useRefreshKey(settings);
60
62
  // for the overflow to work properly each setting in the DockedToolSettings should be wrapped by a DockedToolSetting component
61
- return (React.createElement(appui_layout_react_1.DockedToolSettings, { itemId: InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? "none", key: forceRefreshKey }, settings &&
63
+ return (React.createElement(appui_layout_react_1.DockedToolSettings, { itemId: (_b = (_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.uniqueId) !== null && _b !== void 0 ? _b : "none", key: forceRefreshKey }, settings &&
62
64
  settings.map((entry, index) => (React.createElement(appui_layout_react_1.DockedToolSetting, { key: index },
63
65
  React.createElement(TsLabel, null, entry.labelNode),
64
66
  entry.editorNode)))));
@@ -66,26 +68,27 @@ function ToolSettingsDockedContent() {
66
68
  exports.ToolSettingsDockedContent = ToolSettingsDockedContent;
67
69
  /** @internal */
68
70
  function useHorizontalToolSettingNodes() {
71
+ var _a;
69
72
  React.useEffect(() => {
70
- UiFramework_1.UiFramework.frontstages.activeToolInformation?.toolUiProvider?.reloadPropertiesFromTool();
73
+ var _a, _b;
74
+ (_b = (_a = UiFramework_1.UiFramework.frontstages.activeToolInformation) === null || _a === void 0 ? void 0 : _a.toolUiProvider) === null || _b === void 0 ? void 0 : _b.reloadPropertiesFromTool();
71
75
  }, []);
72
- const [settings, setSettings] = React.useState(InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider
73
- ?.horizontalToolSettingNodes);
76
+ const [settings, setSettings] = React.useState((_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.horizontalToolSettingNodes);
74
77
  const [emptySettings, setEmptySettings] = React.useState(() => [
75
78
  EmptyToolSettingsEntry(),
76
79
  ]);
77
80
  React.useEffect(() => {
78
81
  return UiFramework_1.UiFramework.frontstages.onToolActivatedEvent.addListener(() => {
79
- const nodes = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider
80
- ?.horizontalToolSettingNodes;
82
+ var _a;
83
+ const nodes = (_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.horizontalToolSettingNodes;
81
84
  setSettings(nodes);
82
85
  setEmptySettings([EmptyToolSettingsEntry()]);
83
86
  });
84
87
  }, [setSettings, setEmptySettings]);
85
88
  React.useEffect(() => {
86
89
  return UiFramework_1.UiFramework.frontstages.onToolSettingsReloadEvent.addListener(() => {
87
- const nodes = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider
88
- ?.horizontalToolSettingNodes;
90
+ var _a;
91
+ const nodes = (_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.horizontalToolSettingNodes;
89
92
  setSettings(nodes);
90
93
  setEmptySettings([EmptyToolSettingsEntry()]);
91
94
  });
@@ -111,13 +114,16 @@ function ToolSettingsGrid({ settings }) {
111
114
  exports.ToolSettingsGrid = ToolSettingsGrid;
112
115
  /** @internal */
113
116
  function useToolSettingsNode() {
117
+ var _a;
114
118
  React.useEffect(() => {
115
- UiFramework_1.UiFramework.frontstages.activeToolInformation?.toolUiProvider?.reloadPropertiesFromTool();
119
+ var _a, _b;
120
+ (_b = (_a = UiFramework_1.UiFramework.frontstages.activeToolInformation) === null || _a === void 0 ? void 0 : _a.toolUiProvider) === null || _b === void 0 ? void 0 : _b.reloadPropertiesFromTool();
116
121
  }, []);
117
- const [settings, setSettings] = React.useState(InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode);
122
+ const [settings, setSettings] = React.useState((_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.toolSettingsNode);
118
123
  React.useEffect(() => {
119
124
  const handleToolActivatedEvent = () => {
120
- const nodes = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;
125
+ var _a;
126
+ const nodes = (_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.toolSettingsNode;
121
127
  setSettings(nodes);
122
128
  };
123
129
  UiFramework_1.UiFramework.frontstages.onToolActivatedEvent.addListener(handleToolActivatedEvent);
@@ -127,7 +133,8 @@ function useToolSettingsNode() {
127
133
  }, [setSettings]);
128
134
  React.useEffect(() => {
129
135
  const handleToolSettingsReloadEvent = () => {
130
- const nodes = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider?.toolSettingsNode;
136
+ var _a;
137
+ const nodes = (_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.toolSettingsNode;
131
138
  setSettings(nodes);
132
139
  };
133
140
  UiFramework_1.UiFramework.frontstages.onToolSettingsReloadEvent.addListener(handleToolSettingsReloadEvent);
@@ -140,7 +147,7 @@ function useToolSettingsNode() {
140
147
  exports.useToolSettingsNode = useToolSettingsNode;
141
148
  /** @internal */
142
149
  function ToolSettingsContent() {
143
- const toolSettingsType = (0, appui_layout_react_1.useLayout)((state) => state.toolSettings?.type);
150
+ const toolSettingsType = (0, appui_layout_react_1.useLayout)((state) => { var _a; return (_a = state.toolSettings) === null || _a === void 0 ? void 0 : _a.type; });
144
151
  // This is needed to remount underlying components tree when going into widget state.
145
152
  if (!toolSettingsType || toolSettingsType === "docked")
146
153
  return null;
@@ -149,6 +156,7 @@ function ToolSettingsContent() {
149
156
  exports.ToolSettingsContent = ToolSettingsContent;
150
157
  /** @internal */
151
158
  function ToolSettingsWidgetContent() {
159
+ var _a, _b;
152
160
  const floatingToolSettingsContainerRef = React.useRef(null);
153
161
  const node = useToolSettingsNode();
154
162
  const forceRefreshKey = useRefreshKey(node);
@@ -166,7 +174,7 @@ function ToolSettingsWidgetContent() {
166
174
  }
167
175
  }, [node]);
168
176
  // istanbul ignore next
169
- const providerId = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider?.uniqueId ?? "none";
177
+ const providerId = (_b = (_a = InternalFrontstageManager_1.InternalFrontstageManager.activeToolSettingsProvider) === null || _a === void 0 ? void 0 : _a.uniqueId) !== null && _b !== void 0 ? _b : "none";
170
178
  return (React.createElement("div", { "data-toolsettings-provider": providerId, className: "uifw-floating-toolsettings-container", ref: floatingToolSettingsContainerRef, key: forceRefreshKey },
171
179
  React.createElement(appui_layout_react_1.ScrollableWidgetContent, null, node)));
172
180
  }
@@ -1 +1 @@
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/**\n * Hook that returns true if the tool settings should be rendered docked.\n * @internal */\nexport function useShouldRenderDockedToolSettings() {\n return 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}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n if (!useShouldRenderDockedToolSettings()) return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n const forceRefreshKey = useRefreshKey(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 React.useEffect(() => {\n UiFramework.frontstages.activeToolInformation?.toolUiProvider?.reloadPropertiesFromTool();\n }, []);\n\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 * @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 React.useEffect(() => {\n UiFramework.frontstages.activeToolInformation?.toolUiProvider?.reloadPropertiesFromTool();\n }, []);\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 const forceRefreshKey = useRefreshKey(node);\n\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 key={forceRefreshKey}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n\n/**\n * Hook that returns a key that can be used to force refresh the tool settings.\n * @param toolSettingNodes Nodes that are used to determine if the tool settings should be refreshed.\n * @returns a new key if the dependency changes.\n */\nfunction useRefreshKey(toolSettingNodes: any) {\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 }, [toolSettingNodes]);\n return forceRefreshKey;\n}\n"]}
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,MAAA,yBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,0CAAE,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;;eAEe;AACf,SAAgB,iCAAiC;IAC/C,OAAO,IAAA,8BAAS,EAAC,CAAC,KAAK,EAAE,EAAE;QACzB,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACjD,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAPD,8EAOC;AAED,gBAAgB;AAChB,SAAgB,wBAAwB;IACtC,IAAI,CAAC,iCAAiC,EAAE;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,oBAAC,yBAAyB,OAAG,CAAC;AACvC,CAAC;AAHD,4DAGC;AAED,gBAAgB;AAChB,SAAgB,yBAAyB;;IACvC,MAAM,QAAQ,GAAG,6BAA6B,EAAE,CAAC;IACjD,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,8HAA8H;IAC9H,OAAO,CACL,oBAAC,uCAAkB,IACjB,MAAM,EACJ,MAAA,MAAA,qDAAyB,CAAC,0BAA0B,0CAAE,QAAQ,mCAAI,MAAM,EAE1E,GAAG,EAAE,eAAe,IAEnB,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;AApBD,8DAoBC;AAED,gBAAgB;AAChB,SAAgB,6BAA6B;;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,MAAA,MAAA,yBAAW,CAAC,WAAW,CAAC,qBAAqB,0CAAE,cAAc,0CAAE,wBAAwB,EAAE,CAAC;IAC5F,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5C,MAAA,qDAAyB,CAAC,0BAA0B,0CAChD,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,MAAA,qDAAyB,CAAC,0BAA0B,0CAChD,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,MAAA,qDAAyB,CAAC,0BAA0B,0CAChD,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;AAlCD,sEAkCC;AAUD;;;;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,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,MAAA,MAAA,yBAAW,CAAC,WAAW,CAAC,qBAAqB,0CAAE,cAAc,0CAAE,wBAAwB,EAAE,CAAC;IAC5F,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5C,MAAA,qDAAyB,CAAC,0BAA0B,0CAAE,gBAAgB,CACvE,CAAC;IACF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,wBAAwB,GAAG,GAAG,EAAE;;YACpC,MAAM,KAAK,GACT,MAAA,qDAAyB,CAAC,0BAA0B,0CAAE,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,MAAA,qDAAyB,CAAC,0BAA0B,0CAAE,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;AAxCD,kDAwCC;AAED,gBAAgB;AAChB,SAAgB,mBAAmB;IACjC,MAAM,gBAAgB,GAAG,IAAA,8BAAS,EAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,IAAI,CAAA,EAAA,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,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAE5C,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,MAAA,MAAA,qDAAyB,CAAC,0BAA0B,0CAAE,QAAQ,mCAAI,MAAM,CAAC;IAE3E,OAAO,CACL,2DAC8B,UAAU,EACtC,SAAS,EAAC,sCAAsC,EAChD,GAAG,EAAE,gCAAgC,EACrC,GAAG,EAAE,eAAe;QAEpB,oBAAC,4CAAuB,QAAE,IAAI,CAA2B,CACrD,CACP,CAAC;AACJ,CAAC;AApCD,8DAoCC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,gBAAqB;IAC1C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACzE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,+EAA+E;QAC/E,0BAA0B;QAC1B,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvB,OAAO,eAAe,CAAC;AACzB,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 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/**\n * Hook that returns true if the tool settings should be rendered docked.\n * @internal */\nexport function useShouldRenderDockedToolSettings() {\n return 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}\n\n/** @internal */\nexport function WidgetPanelsToolSettings() {\n if (!useShouldRenderDockedToolSettings()) return null;\n return <ToolSettingsDockedContent />;\n}\n\n/** @internal */\nexport function ToolSettingsDockedContent() {\n const settings = useHorizontalToolSettingNodes();\n const forceRefreshKey = useRefreshKey(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 React.useEffect(() => {\n UiFramework.frontstages.activeToolInformation?.toolUiProvider?.reloadPropertiesFromTool();\n }, []);\n\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 * @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 React.useEffect(() => {\n UiFramework.frontstages.activeToolInformation?.toolUiProvider?.reloadPropertiesFromTool();\n }, []);\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 const forceRefreshKey = useRefreshKey(node);\n\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 key={forceRefreshKey}\n >\n <ScrollableWidgetContent>{node}</ScrollableWidgetContent>\n </div>\n );\n}\n\n/**\n * Hook that returns a key that can be used to force refresh the tool settings.\n * @param toolSettingNodes Nodes that are used to determine if the tool settings should be refreshed.\n * @returns a new key if the dependency changes.\n */\nfunction useRefreshKey(toolSettingNodes: any) {\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 }, [toolSettingNodes]);\n return forceRefreshKey;\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"]}
@@ -36,7 +36,7 @@ export interface Widget {
36
36
  * It is not possible to disable the floating of a widget if `allowedPanels` is an empty array.
37
37
  */
38
38
  readonly canFloat?: boolean | CanFloatWidgetOptions;
39
- /** Defaults to `Floating` if widget is not allowed to dock to any panels. */
39
+ /** Defaults to `Floating` if widget is not allowed to dock to any panels. Otherwise defaults to `Closed`. */
40
40
  readonly defaultState?: WidgetState;
41
41
  /** Content of the Widget. */
42
42
  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,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;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,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,yGAAyG;IACzG,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,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACpD,6EAA6E;IAC7E,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;IACnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC"}
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;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,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,yGAAyG;IACzG,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,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACpD,6GAA6G;IAC7G,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;IACnD;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC"}
@@ -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 { 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\";\nimport type { StagePanelSection } from \"../stagepanels/StagePanelSection\";\n\n/** Describes options of a floating widget.\n * @public\n */\nexport interface CanFloatWidgetOptions {\n /** Describes if the widget is resizable. Defaults to `true`. */\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. Defaults to `false`. */\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 /** Describes if the widget can be popped out to a separate window. Defaults to `false`. */\n readonly canPopout?: boolean;\n /** Set to `false` to disable floating of a widget. Defaults to `true`.\n * Alternatively options object can be provided to configure floating behavior.\n * It is not possible to disable the floating of a widget if `allowedPanels` is an empty array.\n */\n readonly canFloat?: boolean | CanFloatWidgetOptions;\n /** Defaults to `Floating` 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 /** Describes layout specific configuration of a widget.\n * @note Only used by `get*` methods of [[UiItemsProvider]].\n * @alpha\n */\n readonly layouts?: WidgetLayouts;\n}\n\n/** Describes widget configuration specific for each layout.\n * @alpha\n */\nexport interface WidgetLayouts {\n /** Widget configuration in a standard layout. */\n readonly standard?: StandardLayoutWidget;\n}\n\n/** Describes widget configuration specific to a standard layout.\n * @alpha\n */\nexport interface StandardLayoutWidget {\n /** Describes to which panel the widget is added. */\n readonly location: StagePanelLocation;\n /** Describes to which section of a panel the widget is added. */\n readonly section: StagePanelSection;\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\";\nimport type { StagePanelSection } from \"../stagepanels/StagePanelSection\";\n\n/** Describes options of a floating widget.\n * @public\n */\nexport interface CanFloatWidgetOptions {\n /** Describes if the widget is resizable. Defaults to `true`. */\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. Defaults to `false`. */\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 /** Describes if the widget can be popped out to a separate window. Defaults to `false`. */\n readonly canPopout?: boolean;\n /** Set to `false` to disable floating of a widget. Defaults to `true`.\n * Alternatively options object can be provided to configure floating behavior.\n * It is not possible to disable the floating of a widget if `allowedPanels` is an empty array.\n */\n readonly canFloat?: boolean | CanFloatWidgetOptions;\n /** Defaults to `Floating` if widget is not allowed to dock to any panels. Otherwise defaults to `Closed`. */\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 /** Describes layout specific configuration of a widget.\n * @note Only used by `get*` methods of [[UiItemsProvider]].\n * @alpha\n */\n readonly layouts?: WidgetLayouts;\n}\n\n/** Describes widget configuration specific for each layout.\n * @alpha\n */\nexport interface WidgetLayouts {\n /** Widget configuration in a standard layout. */\n readonly standard?: StandardLayoutWidget;\n}\n\n/** Describes widget configuration specific to a standard layout.\n * @alpha\n */\nexport interface StandardLayoutWidget {\n /** Describes to which panel the widget is added. */\n readonly location: StagePanelLocation;\n /** Describes to which section of a panel the widget is added. */\n readonly section: StagePanelSection;\n}\n"]}
@@ -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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"}
@@ -70,7 +70,8 @@ class WidgetDef {
70
70
  return !!canFloat;
71
71
  }
72
72
  get isFloatingStateWindowResizable() {
73
- const canFloat = this.initialConfig?.canFloat;
73
+ var _a;
74
+ const canFloat = (_a = this.initialConfig) === null || _a === void 0 ? void 0 : _a.canFloat;
74
75
  if (typeof canFloat === "object") {
75
76
  return canFloat.isResizable === undefined ? true : canFloat.isResizable;
76
77
  }
@@ -134,7 +135,7 @@ class WidgetDef {
134
135
  constructor() {
135
136
  this._label = "";
136
137
  this._tooltip = "";
137
- this._defaultState = WidgetState_1.WidgetState.Unloaded;
138
+ this._defaultState = WidgetState_1.WidgetState.Closed;
138
139
  this._classId = undefined;
139
140
  this._priority = 0;
140
141
  this._stateChanged = false;
@@ -280,8 +281,8 @@ class WidgetDef {
280
281
  }
281
282
  setWidgetState(newState) {
282
283
  const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
283
- const state = frontstageDef?.nineZoneState;
284
- if (!state)
284
+ const state = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.nineZoneState;
285
+ if (!state || this.isStatusBar)
285
286
  return;
286
287
  if (!frontstageDef.findWidgetDef(this.id))
287
288
  return;
@@ -315,6 +316,13 @@ class WidgetDef {
315
316
  });
316
317
  break;
317
318
  }
319
+ case WidgetState_1.WidgetState.Unloaded: {
320
+ frontstageDef.dispatch({
321
+ type: "WIDGET_TAB_UNLOAD",
322
+ id: this.id,
323
+ });
324
+ break;
325
+ }
318
326
  }
319
327
  }
320
328
  /** @internal */
@@ -342,7 +350,7 @@ class WidgetDef {
342
350
  return this.isFloating || this.isActive;
343
351
  }
344
352
  get isVisible() {
345
- return WidgetState_1.WidgetState.Hidden !== this.state;
353
+ return (WidgetState_1.WidgetState.Hidden !== this.state && WidgetState_1.WidgetState.Unloaded !== this.state);
346
354
  }
347
355
  get activeState() {
348
356
  return this.state;
@@ -391,7 +399,7 @@ class WidgetDef {
391
399
  */
392
400
  show() {
393
401
  const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
394
- const state = frontstageDef?.nineZoneState;
402
+ const state = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.nineZoneState;
395
403
  if (!state)
396
404
  return;
397
405
  if (!frontstageDef.findWidgetDef(this.id))
@@ -406,7 +414,7 @@ class WidgetDef {
406
414
  */
407
415
  expand() {
408
416
  const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
409
- const state = frontstageDef?.nineZoneState;
417
+ const state = frontstageDef === null || frontstageDef === void 0 ? void 0 : frontstageDef.nineZoneState;
410
418
  if (!state)
411
419
  return;
412
420
  if (!frontstageDef.findWidgetDef(this.id))
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.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 type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalStringValue,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport type { WidgetControl } from \"./WidgetControl\";\nimport type { IconSpec, SizeProps } from \"@itwin/core-react\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport type { WidgetConfig } from \"./WidgetConfig\";\nimport { WidgetState } from \"./WidgetState\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl\";\n\n/** Widget State Changed Event Args interface.\n * @public\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n */\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** @internal */\nexport interface WidgetChangedEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** @internal */\nexport interface WidgetEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Unloaded;\n private _id: string;\n private _classId: string | ConfigurableUiControlConstructor | undefined =\n undefined;\n private _priority: number = 0;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n private _icon?: IconSpec;\n private _internalData?: Map<string, any>;\n private _badge?: BadgeType;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: XAndY | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.findWidgetDef(this.id)) {\n const currentState = frontstageDef.getWidgetCurrentState(this);\n // istanbul ignore else\n if (undefined !== currentState) return currentState;\n }\n return this.defaultState;\n }\n\n public get id(): string {\n return this._id;\n }\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return this._classId;\n }\n public get priority(): number {\n return this._priority;\n }\n\n public get isFloatingStateSupported(): boolean {\n if (!this.initialConfig) return true;\n\n const allowedPanels = this.initialConfig.allowedPanels;\n if (allowedPanels && allowedPanels.length === 0) {\n return true;\n }\n\n const canFloat = this.initialConfig.canFloat;\n if (canFloat === undefined) return true;\n return !!canFloat;\n }\n\n public get isFloatingStateWindowResizable(): boolean {\n const canFloat = this.initialConfig?.canFloat;\n if (typeof canFloat === \"object\") {\n return canFloat.isResizable === undefined ? true : canFloat.isResizable;\n }\n\n return true;\n }\n\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any | undefined {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n public get iconSpec(): IconSpec {\n return this._icon === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._icon, this._internalData)\n : this._icon;\n }\n public set iconSpec(spec: IconSpec) {\n this._icon = this._internalData\n ? IconHelper.getIconData(spec, this._internalData)\n : spec;\n }\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: XAndY | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this._label = config.label;\n else if (config.labelKey)\n this._label = UiFramework.localization.getLocalizedString(\n config.labelKey\n );\n else if (type === WidgetType.ToolSettings) this._label = \"Tool Settings\";\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n if (\"allowedPanels\" in config) {\n this.allowedPanelTargets = config.allowedPanels;\n } else if (type === WidgetType.ToolSettings)\n this.allowedPanelTargets = [\n StagePanelLocation.Bottom,\n StagePanelLocation.Left,\n StagePanelLocation.Right,\n ];\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = UiFramework.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n if (\n config.allowedPanels &&\n config.allowedPanels.length === 0 &&\n config.defaultState === WidgetState.Open\n ) {\n this._defaultState = WidgetState.Floating;\n }\n\n this._widgetReactNode = config.content;\n this._icon = config.icon;\n\n // istanbul ignore next\n if (config.icon !== undefined && this._icon === undefined)\n this._icon = config.icon;\n\n if (config.badge !== undefined) this._badge = config.badge;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param labelSpec A string or a function to get the string.\n */\n public setLabel(labelSpec: string | ConditionalStringValue | StringGetter) {\n this._label = labelSpec; // TODO: handle ConditionalStringValue\n\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const label = PropsHelper.getStringFromSpec(labelSpec);\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SET_LABEL\",\n id: this.id,\n label,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n // istanbul ignore else\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n // istanbul ignore else\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n // istanbul ignore next - To avoid breaking API changes, if a WidgetControl is not specified for a status bar use Default one.\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n const widgetControl = this.getWidgetControl(\n ConfigurableUiControlType.Widget\n );\n\n // istanbul ignore else\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n switch (newState) {\n case WidgetState.Closed: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_CLOSE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Floating: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_FLOAT\",\n id: this.id,\n position: this._defaultFloatingPosition,\n });\n break;\n }\n case WidgetState.Hidden: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_HIDE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Open: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_OPEN\",\n id: this.id,\n });\n break;\n }\n }\n }\n\n /** @internal */\n public handleWidgetStateChanged(newState: WidgetState) {\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return WidgetState.Hidden !== this.state;\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets = targets;\n }\n\n public onWidgetStateChanged(): void {\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n if (this.widgetControl)\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * I.e. opens the stage panel or brings the floating widget to front of the screen.\n * @public\n */\n public show() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SHOW\",\n id: this.id,\n });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_EXPAND\",\n id: this.id,\n });\n }\n}\n"]}
1
+ {"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../../src/appui-react/widgets/WidgetDef.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 type * as React from \"react\";\nimport type {\n BadgeType,\n ConditionalStringValue,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl\";\nimport { UiFramework } from \"../UiFramework\";\nimport { PropsHelper } from \"../utils/PropsHelper\";\nimport type { WidgetControl } from \"./WidgetControl\";\nimport type { IconSpec, SizeProps } from \"@itwin/core-react\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport type { WidgetConfig } from \"./WidgetConfig\";\nimport { WidgetState } from \"./WidgetState\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl\";\n\n/** Widget State Changed Event Args interface.\n * @public\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n */\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** @internal */\nexport interface WidgetChangedEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** @internal */\nexport interface WidgetEventArgs {\n widgetDef: WidgetDef;\n}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Closed;\n private _id: string;\n private _classId: string | ConfigurableUiControlConstructor | undefined =\n undefined;\n private _priority: number = 0;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n private _icon?: IconSpec;\n private _internalData?: Map<string, any>;\n private _badge?: BadgeType;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: XAndY | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.findWidgetDef(this.id)) {\n const currentState = frontstageDef.getWidgetCurrentState(this);\n // istanbul ignore else\n if (undefined !== currentState) return currentState;\n }\n return this.defaultState;\n }\n\n public get id(): string {\n return this._id;\n }\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return this._classId;\n }\n public get priority(): number {\n return this._priority;\n }\n\n public get isFloatingStateSupported(): boolean {\n if (!this.initialConfig) return true;\n\n const allowedPanels = this.initialConfig.allowedPanels;\n if (allowedPanels && allowedPanels.length === 0) {\n return true;\n }\n\n const canFloat = this.initialConfig.canFloat;\n if (canFloat === undefined) return true;\n return !!canFloat;\n }\n\n public get isFloatingStateWindowResizable(): boolean {\n const canFloat = this.initialConfig?.canFloat;\n if (typeof canFloat === \"object\") {\n return canFloat.isResizable === undefined ? true : canFloat.isResizable;\n }\n\n return true;\n }\n\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any | undefined {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n public get iconSpec(): IconSpec {\n return this._icon === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._icon, this._internalData)\n : this._icon;\n }\n public set iconSpec(spec: IconSpec) {\n this._icon = this._internalData\n ? IconHelper.getIconData(spec, this._internalData)\n : spec;\n }\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: XAndY | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this._label = config.label;\n else if (config.labelKey)\n this._label = UiFramework.localization.getLocalizedString(\n config.labelKey\n );\n else if (type === WidgetType.ToolSettings) this._label = \"Tool Settings\";\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n if (\"allowedPanels\" in config) {\n this.allowedPanelTargets = config.allowedPanels;\n } else if (type === WidgetType.ToolSettings)\n this.allowedPanelTargets = [\n StagePanelLocation.Bottom,\n StagePanelLocation.Left,\n StagePanelLocation.Right,\n ];\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = UiFramework.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n if (\n config.allowedPanels &&\n config.allowedPanels.length === 0 &&\n config.defaultState === WidgetState.Open\n ) {\n this._defaultState = WidgetState.Floating;\n }\n\n this._widgetReactNode = config.content;\n this._icon = config.icon;\n\n // istanbul ignore next\n if (config.icon !== undefined && this._icon === undefined)\n this._icon = config.icon;\n\n if (config.badge !== undefined) this._badge = config.badge;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param labelSpec A string or a function to get the string.\n */\n public setLabel(labelSpec: string | ConditionalStringValue | StringGetter) {\n this._label = labelSpec; // TODO: handle ConditionalStringValue\n\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const label = PropsHelper.getStringFromSpec(labelSpec);\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SET_LABEL\",\n id: this.id,\n label,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n // istanbul ignore else\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n // istanbul ignore else\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n // istanbul ignore next - To avoid breaking API changes, if a WidgetControl is not specified for a status bar use Default one.\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n const widgetControl = this.getWidgetControl(\n ConfigurableUiControlType.Widget\n );\n\n // istanbul ignore else\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state || this.isStatusBar) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n switch (newState) {\n case WidgetState.Closed: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_CLOSE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Floating: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_FLOAT\",\n id: this.id,\n position: this._defaultFloatingPosition,\n });\n break;\n }\n case WidgetState.Hidden: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_HIDE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Open: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_OPEN\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Unloaded: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_UNLOAD\",\n id: this.id,\n });\n break;\n }\n }\n }\n\n /** @internal */\n public handleWidgetStateChanged(newState: WidgetState) {\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return (\n WidgetState.Hidden !== this.state && WidgetState.Unloaded !== this.state\n );\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets = targets;\n }\n\n public onWidgetStateChanged(): void {\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n if (this.widgetControl)\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * I.e. opens the stage panel or brings the floating widget to front of the screen.\n * @public\n */\n public show() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SHOW\",\n id: this.id,\n });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_EXPAND\",\n id: this.id,\n });\n }\n}\n"]}
@@ -55,6 +55,7 @@ class WidgetHost {
55
55
  * @internal
56
56
  */
57
57
  updateDynamicWidgetDefs(stageId, stageUsage, location, section, allStageWidgetDefs) {
58
+ var _a;
58
59
  // get widgetDefs not already in allStageWidgetDefs and add them
59
60
  const uniqueWidgets = this._widgetDefs.filter((widgetDef) => {
60
61
  return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);
@@ -63,9 +64,9 @@ class WidgetHost {
63
64
  let dynamicWidgetDefs;
64
65
  if (section !== undefined) {
65
66
  dynamicWidgetDefs =
66
- UiFramework_1.UiFramework.widgetManager.getWidgetDefs(stageId, stageUsage, location, section) ?? [];
67
+ (_a = UiFramework_1.UiFramework.widgetManager.getWidgetDefs(stageId, stageUsage, location, section)) !== null && _a !== void 0 ? _a : [];
67
68
  }
68
- const uniqueDynamicWidgetDefs = dynamicWidgetDefs?.filter((widgetDef) => {
69
+ const uniqueDynamicWidgetDefs = dynamicWidgetDefs === null || dynamicWidgetDefs === void 0 ? void 0 : dynamicWidgetDefs.filter((widgetDef) => {
69
70
  return !allStageWidgetDefs.find((wDef) => wDef.id === widgetDef.id);
70
71
  });
71
72
  // Now that we no longer support a middle panel section, yet we have existing API that allows a middle section to be