@itwin/appui-react 3.1.0-dev.8 → 3.1.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 (220) hide show
  1. package/CHANGELOG.md +151 -16
  2. package/lib/cjs/appui-react/UiFramework.d.ts +4 -2
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +7 -3
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  8. package/lib/cjs/appui-react/backstage/Backstage.d.ts +0 -2
  9. package/lib/cjs/appui-react/backstage/Backstage.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/backstage/Backstage.js +0 -1
  11. package/lib/cjs/appui-react/backstage/Backstage.js.map +1 -1
  12. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +1 -0
  13. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -2
  15. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  16. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +2 -0
  18. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  19. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +6 -1
  21. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  22. package/lib/cjs/appui-react/content/ContentControl.d.ts +6 -0
  23. package/lib/cjs/appui-react/content/ContentControl.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/content/ContentControl.js +11 -1
  25. package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
  26. package/lib/cjs/appui-react/content/ContentLayout.d.ts +8 -0
  27. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  28. package/lib/cjs/appui-react/content/ContentLayout.js +43 -36
  29. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  30. package/lib/cjs/appui-react/content/ContentLayout.scss +27 -27
  31. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +7 -0
  32. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/content/ContentViewManager.js +46 -22
  34. package/lib/cjs/appui-react/content/ContentViewManager.js.map +1 -1
  35. package/lib/cjs/appui-react/content/FloatingViewportContent.css +9 -0
  36. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts +25 -0
  37. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -0
  38. package/lib/cjs/appui-react/content/FloatingViewportContent.js +73 -0
  39. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -0
  40. package/lib/cjs/appui-react/content/IModelViewport.d.ts +1 -1
  41. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/content/IModelViewport.js +1 -1
  43. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  44. package/lib/cjs/appui-react/content/ViewportContentControl.d.ts +9 -0
  45. package/lib/cjs/appui-react/content/ViewportContentControl.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/content/ViewportContentControl.js +24 -1
  47. package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
  48. package/lib/cjs/appui-react/dialog/ContentDialog.d.ts +24 -0
  49. package/lib/cjs/appui-react/dialog/ContentDialog.d.ts.map +1 -0
  50. package/lib/cjs/appui-react/dialog/ContentDialog.js +72 -0
  51. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -0
  52. package/lib/cjs/appui-react/dialog/ContentDialog.scss +25 -0
  53. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts +65 -0
  54. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts.map +1 -0
  55. package/lib/cjs/appui-react/dialog/ContentDialogManager.js +148 -0
  56. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -0
  57. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +9 -0
  58. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +65 -7
  60. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  61. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  62. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +8 -0
  64. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
  65. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts +6 -0
  66. package/lib/cjs/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  67. package/lib/cjs/appui-react/hooks/useUiVisibility.js +27 -0
  68. package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -0
  69. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +2 -1
  71. package/lib/cjs/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  72. package/lib/cjs/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +3 -3
  73. package/lib/cjs/appui-react/popup/CardPopup.scss +3 -1
  74. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +2 -3
  75. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  76. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +2 -3
  77. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  78. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +3 -0
  79. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  80. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +20 -5
  81. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  82. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js +1 -1
  83. package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  84. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +3 -0
  85. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  86. package/lib/cjs/appui-react/widget-panels/Content.js +2 -2
  87. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  88. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/widget-panels/Frontstage.js +25 -7
  90. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  91. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +2 -2
  92. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  93. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  94. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  95. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +3 -17
  96. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  97. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +2 -2
  98. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  99. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
  100. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  101. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -0
  102. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  103. package/lib/cjs/appui-react/widgets/WidgetDef.js +2 -0
  104. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  105. package/lib/cjs/appui-react/widgets/WidgetManager.js +1 -1
  106. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  107. package/lib/cjs/appui-react.d.ts +4 -0
  108. package/lib/cjs/appui-react.d.ts.map +1 -1
  109. package/lib/cjs/appui-react.js +4 -0
  110. package/lib/cjs/appui-react.js.map +1 -1
  111. package/lib/esm/appui-react/UiFramework.d.ts +4 -2
  112. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  113. package/lib/esm/appui-react/UiFramework.js +7 -3
  114. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  115. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  116. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  117. package/lib/esm/appui-react/backstage/Backstage.d.ts +0 -2
  118. package/lib/esm/appui-react/backstage/Backstage.d.ts.map +1 -1
  119. package/lib/esm/appui-react/backstage/Backstage.js +0 -1
  120. package/lib/esm/appui-react/backstage/Backstage.js.map +1 -1
  121. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +1 -0
  122. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  123. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -2
  124. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  125. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  126. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +2 -0
  127. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  128. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts.map +1 -1
  129. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +6 -1
  130. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +1 -1
  131. package/lib/esm/appui-react/content/ContentControl.d.ts +6 -0
  132. package/lib/esm/appui-react/content/ContentControl.d.ts.map +1 -1
  133. package/lib/esm/appui-react/content/ContentControl.js +10 -1
  134. package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
  135. package/lib/esm/appui-react/content/ContentLayout.d.ts +8 -0
  136. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  137. package/lib/esm/appui-react/content/ContentLayout.js +41 -35
  138. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  139. package/lib/esm/appui-react/content/ContentLayout.scss +27 -27
  140. package/lib/esm/appui-react/content/ContentViewManager.d.ts +7 -0
  141. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +1 -1
  142. package/lib/esm/appui-react/content/ContentViewManager.js +46 -22
  143. package/lib/esm/appui-react/content/ContentViewManager.js.map +1 -1
  144. package/lib/esm/appui-react/content/FloatingViewportContent.css +9 -0
  145. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts +25 -0
  146. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -0
  147. package/lib/esm/appui-react/content/FloatingViewportContent.js +69 -0
  148. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -0
  149. package/lib/esm/appui-react/content/IModelViewport.d.ts +1 -1
  150. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  151. package/lib/esm/appui-react/content/IModelViewport.js +1 -1
  152. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  153. package/lib/esm/appui-react/content/ViewportContentControl.d.ts +9 -0
  154. package/lib/esm/appui-react/content/ViewportContentControl.d.ts.map +1 -1
  155. package/lib/esm/appui-react/content/ViewportContentControl.js +23 -1
  156. package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
  157. package/lib/esm/appui-react/dialog/ContentDialog.d.ts +24 -0
  158. package/lib/esm/appui-react/dialog/ContentDialog.d.ts.map +1 -0
  159. package/lib/esm/appui-react/dialog/ContentDialog.js +67 -0
  160. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -0
  161. package/lib/esm/appui-react/dialog/ContentDialog.scss +25 -0
  162. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts +65 -0
  163. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts.map +1 -0
  164. package/lib/esm/appui-react/dialog/ContentDialogManager.js +142 -0
  165. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -0
  166. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +9 -0
  167. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  168. package/lib/esm/appui-react/frontstage/FrontstageDef.js +66 -8
  169. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  170. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +3 -0
  171. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
  172. package/lib/esm/appui-react/frontstage/FrontstageManager.js +8 -0
  173. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
  174. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts +6 -0
  175. package/lib/esm/appui-react/hooks/useUiVisibility.d.ts.map +1 -0
  176. package/lib/esm/appui-react/hooks/useUiVisibility.js +23 -0
  177. package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -0
  178. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.d.ts.map +1 -1
  179. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js +2 -1
  180. package/lib/esm/appui-react/imodel-components/category-tree/CategoryVisibilityHandler.js.map +1 -1
  181. package/lib/esm/appui-react/imodel-components/models-tree/ModelsTreeSearch.json +3 -3
  182. package/lib/esm/appui-react/popup/CardPopup.scss +3 -1
  183. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +2 -3
  184. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  185. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +1 -2
  186. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  187. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +3 -0
  188. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  189. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +20 -5
  190. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  191. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js +1 -1
  192. package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
  193. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +3 -0
  194. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  195. package/lib/esm/appui-react/widget-panels/Content.js +2 -2
  196. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  197. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  198. package/lib/esm/appui-react/widget-panels/Frontstage.js +25 -7
  199. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  200. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -1
  201. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  202. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +0 -2
  203. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  204. package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -14
  205. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  206. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +1 -1
  207. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  208. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  209. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  210. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -0
  211. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  212. package/lib/esm/appui-react/widgets/WidgetDef.js +2 -0
  213. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  214. package/lib/esm/appui-react/widgets/WidgetManager.js +1 -1
  215. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  216. package/lib/esm/appui-react.d.ts +4 -0
  217. package/lib/esm/appui-react.d.ts.map +1 -1
  218. package/lib/esm/appui-react.js +4 -0
  219. package/lib/esm/appui-react.js.map +1 -1
  220. package/package.json +34 -35
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentDialog.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport \"./ContentDialog.scss\";\r\nimport * as React from \"react\";\r\nimport { Dialog, DialogProps } from \"@itwin/core-react\";\r\nimport { ContentDialogManager } from \"./ContentDialogManager\";\r\nimport { ActiveContentChangedEventArgs, ContentViewManager } from \"../content/ContentViewManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport classnames from \"classnames\";\r\n\r\n// istanbul ignore next\r\n/**\r\n *@internal\r\n */\r\nexport function useActiveContentControlId(): string | undefined {\r\n const [activeContentId, setActiveContentId] = React.useState(ContentViewManager.getActiveContentControl()?.uniqueId);\r\n\r\n React.useEffect(() => {\r\n const onActiveContentChanged = (_args: ActiveContentChangedEventArgs) => {\r\n setActiveContentId(ContentViewManager.getActiveContentControl()?.uniqueId);\r\n };\r\n\r\n // IModelApp.viewManager.onSelectedViewportChanged will often fire before UI components have mounted\r\n // so use ContentViewManager.onActiveContentChangedEvent which will always trigger once all stage components\r\n // are loaded and when the IModelApp.viewManager.selectedView changes.\r\n ContentViewManager.onActiveContentChangedEvent.addListener(onActiveContentChanged);\r\n return () => {\r\n ContentViewManager.onActiveContentChangedEvent.removeListener(onActiveContentChanged);\r\n };\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [SyncUiEventId.ActiveContentChanged, SyncUiEventId.ContentControlActivated, SyncUiEventId.FrontstageReady];\r\n const handleSyncUiEvent = (args: UiSyncEventArgs): void => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n setActiveContentId(ContentViewManager.getActiveContentControl()?.uniqueId);\r\n }\r\n };\r\n\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, []);\r\n\r\n return activeContentId;\r\n}\r\n\r\n/** Properties for the [[ContentDialog]] component\r\n * @public\r\n */\r\nexport interface ContentDialogProps extends DialogProps {\r\n dialogId: string;\r\n movable?: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\n/** Content Dialog React component uses the Dialog component with a modal={false} prop.\r\n * It controls the z-index to keep the focused dialog above content but below widgets.\r\n * @public\r\n */\r\nexport function ContentDialog(props: ContentDialogProps) {\r\n const { className, children, dialogId, style, modal, modelessId, onModelessPointerDown, ...otherProps } = props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n const activeContentControlId = useActiveContentControlId();\r\n // istanbul ignore next\r\n const dialogClassName = React.useMemo(() => classnames(activeContentControlId === dialogId ? \"active-content-dialog\" : \"inactive-content-dialog\", className),\r\n [activeContentControlId, className, dialogId]);\r\n\r\n const [zIndex, setZIndex] = React.useState(ContentDialogManager.getDialogZIndex(dialogId));\r\n const updateZIndex = React.useCallback(() => {\r\n const newZ = ContentDialogManager.getDialogZIndex(dialogId);\r\n // istanbul ignore else\r\n if (newZ !== zIndex) {\r\n setZIndex(newZ);\r\n }\r\n }, [dialogId, zIndex]);\r\n\r\n return (\r\n <Dialog\r\n className={dialogClassName}\r\n data-item-type=\"content-dialog\"\r\n data-item-id={dialogId}\r\n resizable={true}\r\n movable={true}\r\n trapFocus={false}\r\n modal={false}\r\n {...otherProps}\r\n modelessId={dialogId}\r\n onModelessPointerDown={(event) => ContentDialogManager.handlePointerDownEvent(event, dialogId, updateZIndex)}\r\n style={{ zIndex, ...style }}\r\n >\r\n {children}\r\n </Dialog >\r\n );\r\n}\r\n\r\n"]}
@@ -0,0 +1,25 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
+
7
+ .core-dialog.active-content-dialog {
8
+ .core-dialog-area {
9
+ > .core-dialog-head {
10
+ color: $buic-text-color-highlight;
11
+ background-color: $buic-background-titlebar;
12
+ > .core-dialog-title {
13
+ font-weight: 800;
14
+ }
15
+ }
16
+ }
17
+
18
+ .core-dialog.inactive-content-dialog {
19
+ .core-dialog-area {
20
+ > .core-dialog-head {
21
+ background-color: $buic-background-titlebar-outoffocus;
22
+ }
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,65 @@
1
+ /** @packageDocumentation
2
+ * @module Dialog
3
+ */
4
+ import * as React from "react";
5
+ import { CommonProps } from "@itwin/core-react";
6
+ import { DialogChangedEvent, DialogManagerBase } from "./DialogManagerBase";
7
+ /** Content Dialog Changed Event class.
8
+ * @public
9
+ */
10
+ export declare class ContentDialogChangedEvent extends DialogChangedEvent {
11
+ }
12
+ /** @internal */
13
+ interface ContentDialogInfo {
14
+ reactNode: React.ReactNode;
15
+ zIndex: number;
16
+ parentDocument: Document;
17
+ }
18
+ /** Content Dialog Manager class displays and manages multiple modeless dialogs
19
+ * @public
20
+ */
21
+ export declare class ContentDialogManager {
22
+ /** Content Dialog Changed Event */
23
+ static readonly onContentDialogChangedEvent: ContentDialogChangedEvent;
24
+ /** @internal */
25
+ static readonly dialogManager: DialogManagerBase;
26
+ /** Get the array of modeless dialogs */
27
+ static get dialogs(): import("./DialogManagerBase").DialogInfo[];
28
+ private static _dialogMap;
29
+ private static _idArray;
30
+ private static _topZIndex;
31
+ /** Initialize the modeless dialog manager */
32
+ static initialize(): void;
33
+ private static getDialogZIndexDefault;
34
+ /** Open a modeless dialog
35
+ * @param dialog The Dialog to open
36
+ * @param id The id of the Dialog to open
37
+ */
38
+ static openDialog(dialog: React.ReactNode, id: string, parentDocument?: Document): void;
39
+ /** Close a modeless dialog
40
+ * @param id The id of the Dialog to close.
41
+ */
42
+ static closeDialog(id: string): void;
43
+ /** @internal */
44
+ static closeAll(): void;
45
+ /** Update the dialogs */
46
+ static update(): void;
47
+ /** Get the active modeless dialog */
48
+ static get activeDialog(): React.ReactNode | undefined;
49
+ /** Get the count of modeless dialogs */
50
+ static get dialogCount(): number;
51
+ /** Handle a pointer down event on a modeless dialog */
52
+ static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void;
53
+ /** Get the z-index for a modeless dialog */
54
+ static getDialogZIndex(id: string): number;
55
+ static getDialogInfo(id: string): ContentDialogInfo | undefined;
56
+ }
57
+ /** ContentDialogRenderer React component renders modeless dialogs.
58
+ * @public
59
+ */
60
+ export declare class ContentDialogRenderer extends React.PureComponent<CommonProps> {
61
+ constructor(props: CommonProps);
62
+ render(): React.ReactNode;
63
+ }
64
+ export {};
65
+ //# sourceMappingURL=ContentDialogManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentDialogManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialogManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAA0B,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAsB,MAAM,qBAAqB,CAAC;AAKhG;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,kBAAkB;CAAI;AAErE,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAKD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,mCAAmC;IACnC,gBAAuB,2BAA2B,4BAAmC;IAErF,gBAAgB;IAChB,gBAAuB,aAAa,EAAE,iBAAiB,CAA2E;IAElI,wCAAwC;IACxC,WAAkB,OAAO,+CAAyD;IAElF,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwC;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuB;IAE9C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiC;IAE1D,6CAA6C;WAC/B,UAAU,IAAI,IAAI;IAIhC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAYrC;;;OAGG;WACW,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,WAAW,GAAG,IAAI;IAa9F;;OAEG;WACW,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAmB3C,gBAAgB;WACF,QAAQ,IAAI,IAAI;IAI9B,yBAAyB;WACX,MAAM,IAAI,IAAI;IAI5B,qCAAqC;IACrC,WAAkB,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,CAU5D;IAED,wCAAwC;IACxC,WAAkB,WAAW,IAAI,MAAM,CAEtC;IAED,uDAAuD;WACzC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,GAAG,IAAI;IAa1G,4CAA4C;WAC9B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;WASnC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;CAGvE;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC;gBAE7D,KAAK,EAAE,WAAW;IAId,MAAM,IAAI,KAAK,CAAC,SAAS;CAK1C"}
@@ -0,0 +1,142 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Dialog
7
+ */
8
+ import * as React from "react";
9
+ import { Logger } from "@itwin/core-bentley";
10
+ import { getCssVariableAsNumber } from "@itwin/core-react";
11
+ import { UiFramework } from "../UiFramework";
12
+ import { DialogChangedEvent, DialogManagerBase, DialogRendererBase } from "./DialogManagerBase";
13
+ import { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from "@itwin/core-frontend";
14
+ // cSpell:ignore ZINDEX modeless
15
+ /** Content Dialog Changed Event class.
16
+ * @public
17
+ */
18
+ export class ContentDialogChangedEvent extends DialogChangedEvent {
19
+ }
20
+ /** Used if the 'dialog' z-index CSS variable cannot be read */
21
+ const CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;
22
+ /** Content Dialog Manager class displays and manages multiple modeless dialogs
23
+ * @public
24
+ */
25
+ export class ContentDialogManager {
26
+ /** Get the array of modeless dialogs */
27
+ static get dialogs() { return ContentDialogManager.dialogManager.dialogs; }
28
+ /** Initialize the modeless dialog manager */
29
+ static initialize() {
30
+ ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();
31
+ }
32
+ static getDialogZIndexDefault() {
33
+ const variable = "--uicore-z-index-view-content-dialog";
34
+ const value = getCssVariableAsNumber(variable);
35
+ // istanbul ignore next
36
+ if (!isNaN(value))
37
+ return value;
38
+ Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);
39
+ return CONTENT_DIALOG_ZINDEX_DEFAULT;
40
+ }
41
+ /** Open a modeless dialog
42
+ * @param dialog The Dialog to open
43
+ * @param id The id of the Dialog to open
44
+ */
45
+ static openDialog(dialog, id, parentDocument = document) {
46
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
47
+ if (dialogInfo) {
48
+ const message = `Dialog with id of '${id}' already opened`;
49
+ Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);
50
+ IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));
51
+ return;
52
+ }
53
+ ContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++ContentDialogManager._topZIndex, parentDocument });
54
+ ContentDialogManager._idArray.push(id);
55
+ ContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);
56
+ }
57
+ /** Close a modeless dialog
58
+ * @param id The id of the Dialog to close.
59
+ */
60
+ static closeDialog(id) {
61
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
62
+ if (dialogInfo) {
63
+ ContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);
64
+ ContentDialogManager._dialogMap.delete(id);
65
+ const index = ContentDialogManager._idArray.indexOf(id);
66
+ // istanbul ignore else
67
+ if (index >= 0)
68
+ ContentDialogManager._idArray.splice(index, 1);
69
+ if (ContentDialogManager.activeDialog === undefined)
70
+ ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();
71
+ this.update();
72
+ }
73
+ else {
74
+ Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);
75
+ }
76
+ }
77
+ /** @internal */
78
+ static closeAll() {
79
+ ContentDialogManager.dialogManager.closeAll();
80
+ }
81
+ /** Update the dialogs */
82
+ static update() {
83
+ ContentDialogManager.dialogManager.update();
84
+ }
85
+ /** Get the active modeless dialog */
86
+ static get activeDialog() {
87
+ if (ContentDialogManager._idArray.length > 0) {
88
+ const id = ContentDialogManager._idArray[ContentDialogManager._idArray.length - 1];
89
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
90
+ // istanbul ignore else
91
+ if (dialogInfo)
92
+ return dialogInfo.reactNode;
93
+ }
94
+ return undefined;
95
+ }
96
+ /** Get the count of modeless dialogs */
97
+ static get dialogCount() {
98
+ return ContentDialogManager.dialogManager.dialogCount;
99
+ }
100
+ /** Handle a pointer down event on a modeless dialog */
101
+ static handlePointerDownEvent(_event, id, updateFunc) {
102
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
103
+ if (dialogInfo && dialogInfo.reactNode !== ContentDialogManager.activeDialog) {
104
+ dialogInfo.zIndex = ++ContentDialogManager._topZIndex;
105
+ ContentDialogManager._idArray.splice(ContentDialogManager._idArray.indexOf(id), 1);
106
+ ContentDialogManager._idArray.push(id);
107
+ updateFunc();
108
+ this.update();
109
+ }
110
+ }
111
+ /** Get the z-index for a modeless dialog */
112
+ static getDialogZIndex(id) {
113
+ let zIndex = ContentDialogManager.getDialogZIndexDefault();
114
+ const dialogInfo = ContentDialogManager._dialogMap.get(id);
115
+ // istanbul ignore else
116
+ if (dialogInfo)
117
+ zIndex = dialogInfo.zIndex;
118
+ return zIndex;
119
+ }
120
+ static getDialogInfo(id) {
121
+ return ContentDialogManager._dialogMap.get(id);
122
+ }
123
+ }
124
+ /** Content Dialog Changed Event */
125
+ ContentDialogManager.onContentDialogChangedEvent = new ContentDialogChangedEvent();
126
+ /** @internal */
127
+ ContentDialogManager.dialogManager = new DialogManagerBase(ContentDialogManager.onContentDialogChangedEvent);
128
+ ContentDialogManager._dialogMap = new Map();
129
+ ContentDialogManager._idArray = new Array();
130
+ ContentDialogManager._topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;
131
+ /** ContentDialogRenderer React component renders modeless dialogs.
132
+ * @public
133
+ */
134
+ export class ContentDialogRenderer extends React.PureComponent {
135
+ constructor(props) {
136
+ super(props);
137
+ }
138
+ render() {
139
+ return (React.createElement(DialogRendererBase, { ...this.props, dialogManager: ContentDialogManager.dialogManager }));
140
+ }
141
+ }
142
+ //# sourceMappingURL=ContentDialogManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ContentDialogManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { CommonProps, getCssVariableAsNumber } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DialogChangedEvent, DialogManagerBase, DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Content Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ContentDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** @internal */\r\ninterface ContentDialogInfo {\r\n reactNode: React.ReactNode;\r\n zIndex: number;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst CONTENT_DIALOG_ZINDEX_DEFAULT = 2000;\r\n\r\n/** Content Dialog Manager class displays and manages multiple modeless dialogs\r\n * @public\r\n */\r\nexport class ContentDialogManager {\r\n /** Content Dialog Changed Event */\r\n public static readonly onContentDialogChangedEvent = new ContentDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(ContentDialogManager.onContentDialogChangedEvent);\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return ContentDialogManager.dialogManager.dialogs; }\r\n\r\n private static _dialogMap = new Map<string, ContentDialogInfo>();\r\n private static _idArray = new Array<string>();\r\n\r\n private static _topZIndex = CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n\r\n /** Initialize the modeless dialog manager */\r\n public static initialize(): void {\r\n ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();\r\n }\r\n\r\n private static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-view-content-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return CONTENT_DIALOG_ZINDEX_DEFAULT;\r\n }\r\n\r\n /** Open a modeless dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog to open\r\n */\r\n public static openDialog(dialog: React.ReactNode, id: string, parentDocument = document): void {\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n const message = `Dialog with id of '${id}' already opened`;\r\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\r\n return;\r\n }\r\n ContentDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++ContentDialogManager._topZIndex, parentDocument });\r\n ContentDialogManager._idArray.push(id);\r\n ContentDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modeless dialog\r\n * @param id The id of the Dialog to close.\r\n */\r\n public static closeDialog(id: string): void {\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n ContentDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\r\n ContentDialogManager._dialogMap.delete(id);\r\n const index = ContentDialogManager._idArray.indexOf(id);\r\n // istanbul ignore else\r\n if (index >= 0)\r\n ContentDialogManager._idArray.splice(index, 1);\r\n\r\n if (ContentDialogManager.activeDialog === undefined)\r\n ContentDialogManager._topZIndex = ContentDialogManager.getDialogZIndexDefault();\r\n\r\n this.update();\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n ContentDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n ContentDialogManager.dialogManager.update();\r\n }\r\n\r\n /** Get the active modeless dialog */\r\n public static get activeDialog(): React.ReactNode | undefined {\r\n if (ContentDialogManager._idArray.length > 0) {\r\n const id = ContentDialogManager._idArray[ContentDialogManager._idArray.length - 1];\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n return dialogInfo.reactNode;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Get the count of modeless dialogs */\r\n public static get dialogCount(): number {\r\n return ContentDialogManager.dialogManager.dialogCount;\r\n }\r\n\r\n /** Handle a pointer down event on a modeless dialog */\r\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n if (dialogInfo && dialogInfo.reactNode !== ContentDialogManager.activeDialog) {\r\n dialogInfo.zIndex = ++ContentDialogManager._topZIndex;\r\n\r\n ContentDialogManager._idArray.splice(ContentDialogManager._idArray.indexOf(id), 1);\r\n ContentDialogManager._idArray.push(id);\r\n\r\n updateFunc();\r\n this.update();\r\n }\r\n }\r\n\r\n /** Get the z-index for a modeless dialog */\r\n public static getDialogZIndex(id: string): number {\r\n let zIndex = ContentDialogManager.getDialogZIndexDefault();\r\n const dialogInfo = ContentDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n zIndex = dialogInfo.zIndex;\r\n return zIndex;\r\n }\r\n\r\n public static getDialogInfo(id: string): ContentDialogInfo | undefined {\r\n return ContentDialogManager._dialogMap.get(id);\r\n }\r\n}\r\n\r\n/** ContentDialogRenderer React component renders modeless dialogs.\r\n * @public\r\n */\r\nexport class ContentDialogRenderer extends React.PureComponent<CommonProps> {\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n return (\r\n <DialogRendererBase {...this.props} dialogManager={ContentDialogManager.dialogManager} />\r\n );\r\n }\r\n}\r\n"]}
@@ -59,6 +59,7 @@ export declare class FrontstageDef {
59
59
  private _timeTracker;
60
60
  private _nineZoneState?;
61
61
  private _contentGroupProvider?;
62
+ private _floatingContentControls?;
62
63
  get id(): string;
63
64
  get defaultTool(): ToolItemDef | undefined;
64
65
  get defaultContentId(): string;
@@ -67,6 +68,7 @@ export declare class FrontstageDef {
67
68
  get usage(): string;
68
69
  get version(): number;
69
70
  get contentGroupProvider(): ContentGroupProvider | undefined;
71
+ get floatingContentControls(): ContentControl[] | undefined;
70
72
  get topLeft(): ZoneDef | undefined;
71
73
  get topCenter(): ZoneDef | undefined;
72
74
  get topRight(): ZoneDef | undefined;
@@ -147,6 +149,8 @@ export declare class FrontstageDef {
147
149
  findWidgetDef(id: string): WidgetDef | undefined;
148
150
  /** Gets the list of [[WidgetControl]]s */
149
151
  private get _widgetControls();
152
+ addFloatingContentControl(contentControl?: ContentControl): void;
153
+ dropFloatingContentControl(contentControl?: ContentControl): void;
150
154
  /** Gets the list of [[ContentControl]]s */
151
155
  get contentControls(): ContentControl[];
152
156
  /** Initializes a FrontstageDef from FrontstageProps
@@ -176,6 +180,11 @@ export declare class FrontstageDef {
176
180
  * @beta
177
181
  */
178
182
  floatWidget(widgetId: string, point?: PointProps, size?: SizeProps): void;
183
+ /** Check widget and panel state to determine whether the widget is currently displayed
184
+ * @param widgetId case-sensitive Widget Id
185
+ * @public
186
+ */
187
+ isWidgetDisplayed(widgetId: string): boolean;
179
188
  /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.
180
189
  * @internal */
181
190
  openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  import * as React from "react";
11
11
  import { IModelApp } from "@itwin/core-frontend";
12
12
  import { StagePanelLocation, StageUsage, UiError, WidgetState } from "@itwin/appui-abstract";
13
- import { dockWidgetContainer, findTab, findWidget, floatWidget, isFloatingLocation, isPopoutLocation, isPopoutWidgetLocation, panelSides, popoutWidgetToChildWindow, setFloatingWidgetContainerBounds, } from "@itwin/appui-layout-react";
13
+ import { dockWidgetContainer, findTab, findWidget, floatWidget, isFloatingLocation, isPanelLocation, isPopoutLocation, isPopoutWidgetLocation, panelSides, popoutWidgetToChildWindow, setFloatingWidgetContainerBounds, } from "@itwin/appui-layout-react";
14
14
  import { ContentGroupProvider } from "../content/ContentGroup";
15
15
  import { ContentLayoutManager } from "../content/ContentLayoutManager";
16
16
  import { ContentViewManager } from "../content/ContentViewManager";
@@ -24,6 +24,7 @@ import { PopoutWidget } from "../childwindow/PopoutWidget";
24
24
  import { setImmediate } from "timers";
25
25
  import { saveFrontstagePopoutWidgetSizeAndPosition } from "../widget-panels/Frontstage";
26
26
  import { BentleyStatus } from "@itwin/core-bentley";
27
+ import { ContentDialogManager } from "../dialog/ContentDialogManager";
27
28
  /** FrontstageDef class provides an API for a Frontstage.
28
29
  * @public
29
30
  */
@@ -46,6 +47,7 @@ export class FrontstageDef {
46
47
  get usage() { return this._usage !== undefined ? this._usage : StageUsage.General; }
47
48
  get version() { return this._version; }
48
49
  get contentGroupProvider() { return this._contentGroupProvider; }
50
+ get floatingContentControls() { return this._floatingContentControls; }
49
51
  get topLeft() { return this._topLeft; }
50
52
  get topCenter() { return this._topCenter; }
51
53
  get topRight() { return this._topRight; }
@@ -226,6 +228,10 @@ export class FrontstageDef {
226
228
  this._timeTracker.stopTiming();
227
229
  this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking
228
230
  UiFramework.childWindowManager.closeAllChildWindows();
231
+ if (this._floatingContentControls) {
232
+ ContentDialogManager.closeAll();
233
+ this._floatingContentControls = undefined;
234
+ }
229
235
  await this._onDeactivated();
230
236
  this._isStageClosing = false;
231
237
  }
@@ -450,15 +456,37 @@ export class FrontstageDef {
450
456
  });
451
457
  return widgetControls;
452
458
  }
459
+ addFloatingContentControl(contentControl) {
460
+ // istanbul ignore next
461
+ if (!contentControl)
462
+ return;
463
+ if (!this._floatingContentControls)
464
+ this._floatingContentControls = new Array();
465
+ this._floatingContentControls.push(contentControl);
466
+ ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });
467
+ }
468
+ dropFloatingContentControl(contentControl) {
469
+ // istanbul ignore next
470
+ if (!contentControl || !this._floatingContentControls)
471
+ return;
472
+ const index = this._floatingContentControls.indexOf(contentControl);
473
+ // istanbul ignore else
474
+ if (index > -1) {
475
+ this._floatingContentControls.splice(index, 1);
476
+ ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });
477
+ }
478
+ }
453
479
  /** Gets the list of [[ContentControl]]s */
454
480
  get contentControls() {
481
+ const contentControls = new Array();
455
482
  // istanbul ignore else
456
483
  if (this.contentGroup) {
457
- return this.contentGroup.getContentControls();
484
+ contentControls.push(...this.contentGroup.getContentControls());
458
485
  }
459
- else {
460
- return [];
486
+ if (this._floatingContentControls) {
487
+ contentControls.push(...this._floatingContentControls);
461
488
  }
489
+ return contentControls;
462
490
  }
463
491
  /** Initializes a FrontstageDef from FrontstageProps
464
492
  * @internal
@@ -543,8 +571,15 @@ export class FrontstageDef {
543
571
  // istanbul ignore next
544
572
  if (!location)
545
573
  return WidgetState.Hidden;
574
+ if (isFloatingLocation(location))
575
+ return WidgetState.Floating;
576
+ let collapsedPanel = false;
577
+ if ("side" in location) {
578
+ const panel = this.nineZoneState.panels[location.side];
579
+ collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;
580
+ }
546
581
  const widgetContainer = this.nineZoneState.widgets[location.widgetId];
547
- if (widgetDef.id === widgetContainer.activeTabId)
582
+ if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)
548
583
  return WidgetState.Open;
549
584
  else
550
585
  return WidgetState.Closed;
@@ -556,13 +591,12 @@ export class FrontstageDef {
556
591
  */
557
592
  getPanelCurrentState(panelDef) {
558
593
  var _a, _b;
559
- // istanbul ignore else
594
+ // istanbul ignore next
560
595
  if (this.nineZoneState) {
561
596
  const side = toPanelSide(panelDef.location);
562
597
  const panel = this.nineZoneState.panels[side];
563
- if (panel) {
598
+ if (panel)
564
599
  return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, (_a = panel.size) !== null && _a !== void 0 ? _a : 0];
565
- }
566
600
  return [StagePanelState.Off, 0];
567
601
  }
568
602
  return [panelDef.defaultState, (_b = panelDef.defaultSize) !== null && _b !== void 0 ? _b : 0];
@@ -615,6 +649,30 @@ export class FrontstageDef {
615
649
  }
616
650
  }
617
651
  }
652
+ /** Check widget and panel state to determine whether the widget is currently displayed
653
+ * @param widgetId case-sensitive Widget Id
654
+ * @public
655
+ */
656
+ isWidgetDisplayed(widgetId) {
657
+ let widgetIsVisible = false;
658
+ if (this.nineZoneState) {
659
+ const tabLocation = findTab(this.nineZoneState, widgetId);
660
+ if (tabLocation) {
661
+ if (isFloatingLocation(tabLocation) || isPopoutLocation(tabLocation)) {
662
+ widgetIsVisible = true;
663
+ }
664
+ else {
665
+ if (isPanelLocation(tabLocation)) {
666
+ const panel = this.nineZoneState.panels[tabLocation.side];
667
+ const widgetDef = this.findWidgetDef(widgetId);
668
+ if (widgetDef && widgetDef.state === WidgetState.Open && !panel.collapsed)
669
+ widgetIsVisible = true;
670
+ }
671
+ }
672
+ }
673
+ }
674
+ return widgetIsVisible;
675
+ }
618
676
  /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.
619
677
  * @internal */
620
678
  openPopoutWidgetContainer(state, widgetContainerId) {