@itwin/appui-react 4.0.0-dev.16 → 4.0.0-dev.18

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 (191) hide show
  1. package/CHANGELOG.md +43 -18
  2. package/lib/cjs/appui-react/UiFramework.d.ts +10 -20
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +12 -24
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +4 -4
  8. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  9. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts +0 -39
  10. package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/dialog/ContentDialogManager.js +1 -61
  12. package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
  13. package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts +0 -30
  14. package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/dialog/ModalDialogManager.js +1 -44
  16. package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
  17. package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts +0 -39
  18. package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js +1 -60
  20. package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  21. package/lib/cjs/appui-react/framework/FrameworkChildWindows.d.ts +1 -1
  22. package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  23. package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +2 -2
  24. package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
  25. package/lib/cjs/appui-react/framework/FrameworkControls.d.ts +1 -1
  26. package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
  27. package/lib/cjs/appui-react/framework/FrameworkDialogs.d.ts +1 -1
  28. package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
  29. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +7 -3
  30. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  31. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  32. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +1 -1
  33. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  34. package/lib/cjs/appui-react/framework/FrameworkToolSettings.d.ts +1 -1
  35. package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  36. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +1 -1
  37. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  38. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +1 -1
  39. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  40. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +12 -3
  41. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  42. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +6 -2
  43. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  44. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +5 -1
  45. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  46. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +0 -32
  47. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  48. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +1 -55
  49. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  50. package/lib/cjs/appui-react/messages/MessageManager.js +2 -3
  51. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  52. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +13 -197
  53. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  54. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +32 -4
  55. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  56. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +34 -0
  57. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -0
  58. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +500 -0
  59. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -0
  60. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +6 -4
  61. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +33 -6
  63. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  64. package/lib/cjs/appui-react.d.ts +0 -7
  65. package/lib/cjs/appui-react.d.ts.map +1 -1
  66. package/lib/cjs/appui-react.js +0 -7
  67. package/lib/cjs/appui-react.js.map +1 -1
  68. package/lib/esm/appui-react/UiFramework.d.ts +10 -20
  69. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  70. package/lib/esm/appui-react/UiFramework.js +12 -24
  71. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  72. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  73. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +4 -4
  74. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  75. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts +0 -39
  76. package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
  77. package/lib/esm/appui-react/dialog/ContentDialogManager.js +0 -59
  78. package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
  79. package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts +0 -30
  80. package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
  81. package/lib/esm/appui-react/dialog/ModalDialogManager.js +0 -42
  82. package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
  83. package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts +0 -39
  84. package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
  85. package/lib/esm/appui-react/dialog/ModelessDialogManager.js +0 -58
  86. package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
  87. package/lib/esm/appui-react/framework/FrameworkChildWindows.d.ts +1 -1
  88. package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
  89. package/lib/esm/appui-react/framework/FrameworkContent.d.ts +2 -2
  90. package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
  91. package/lib/esm/appui-react/framework/FrameworkControls.d.ts +1 -1
  92. package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
  93. package/lib/esm/appui-react/framework/FrameworkDialogs.d.ts +1 -1
  94. package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
  95. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +7 -3
  96. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  97. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  98. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +1 -1
  99. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  100. package/lib/esm/appui-react/framework/FrameworkToolSettings.d.ts +1 -1
  101. package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
  102. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +1 -1
  103. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  104. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +1 -1
  105. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  106. package/lib/esm/appui-react/frontstage/FrontstageDef.js +12 -3
  107. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  108. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +6 -2
  109. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  110. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +5 -1
  111. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  112. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +0 -32
  113. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  114. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +0 -53
  115. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  116. package/lib/esm/appui-react/messages/MessageManager.js +2 -3
  117. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  118. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +13 -197
  119. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  120. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +31 -3
  121. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  122. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +34 -0
  123. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -0
  124. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +496 -0
  125. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -0
  126. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +6 -4
  127. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  128. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +33 -6
  129. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  130. package/lib/esm/appui-react.d.ts +0 -7
  131. package/lib/esm/appui-react.d.ts.map +1 -1
  132. package/lib/esm/appui-react.js +0 -7
  133. package/lib/esm/appui-react.js.map +1 -1
  134. package/lib/public/locales/en/UiFramework.json +0 -45
  135. package/package.json +21 -13
  136. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +0 -74
  137. package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +0 -1
  138. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +0 -107
  139. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +0 -1
  140. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts +0 -66
  141. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts.map +0 -1
  142. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +0 -93
  143. package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +0 -1
  144. package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts +0 -48
  145. package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts.map +0 -1
  146. package/lib/cjs/appui-react/content/ContentLayoutManager.js +0 -69
  147. package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +0 -1
  148. package/lib/cjs/appui-react/content/ContentViewManager.d.ts +0 -63
  149. package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +0 -1
  150. package/lib/cjs/appui-react/content/ContentViewManager.js +0 -96
  151. package/lib/cjs/appui-react/content/ContentViewManager.js.map +0 -1
  152. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +0 -202
  153. package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +0 -1
  154. package/lib/cjs/appui-react/frontstage/FrontstageManager.js +0 -269
  155. package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +0 -1
  156. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.d.ts +0 -44
  157. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.d.ts.map +0 -1
  158. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js +0 -64
  159. package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js.map +0 -1
  160. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +0 -54
  161. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +0 -1
  162. package/lib/cjs/appui-react/utils/UiShowHideManager.js +0 -108
  163. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +0 -1
  164. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +0 -74
  165. package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +0 -1
  166. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +0 -103
  167. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +0 -1
  168. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts +0 -66
  169. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts.map +0 -1
  170. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +0 -89
  171. package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +0 -1
  172. package/lib/esm/appui-react/content/ContentLayoutManager.d.ts +0 -48
  173. package/lib/esm/appui-react/content/ContentLayoutManager.d.ts.map +0 -1
  174. package/lib/esm/appui-react/content/ContentLayoutManager.js +0 -65
  175. package/lib/esm/appui-react/content/ContentLayoutManager.js.map +0 -1
  176. package/lib/esm/appui-react/content/ContentViewManager.d.ts +0 -63
  177. package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +0 -1
  178. package/lib/esm/appui-react/content/ContentViewManager.js +0 -92
  179. package/lib/esm/appui-react/content/ContentViewManager.js.map +0 -1
  180. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +0 -202
  181. package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +0 -1
  182. package/lib/esm/appui-react/frontstage/FrontstageManager.js +0 -265
  183. package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +0 -1
  184. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.d.ts +0 -44
  185. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.d.ts.map +0 -1
  186. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js +0 -60
  187. package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js.map +0 -1
  188. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +0 -54
  189. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +0 -1
  190. package/lib/esm/appui-react/utils/UiShowHideManager.js +0 -105
  191. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkVisibility.ts"],"names":[],"mappings":"","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 Utilities\r\n */\r\n/**\r\n * [[UiFramework.visibility]] interface\r\n * @beta\r\n */\r\nexport interface FrameworkVisibility {\r\n /** Determines if the Ui is visible */\r\n isUiVisible: boolean;\r\n\r\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\r\n * When true, the Ui automatically hides after a few seconds of inactivity.\r\n */\r\n autoHideUi: boolean;\r\n\r\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\r\n showHidePanels: boolean;\r\n\r\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\r\n showHideFooter: boolean;\r\n\r\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\r\n inactivityTime: number;\r\n\r\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\r\n useProximityOpacity: boolean;\r\n\r\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\r\n snapWidgetOpacity: boolean;\r\n\r\n /** Handler for when a Frontstage is ready */\r\n handleFrontstageReady(): void;\r\n\r\n /** Handler for when the mouse moves over the content area */\r\n handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Handler for when the mouse enters a widget */\r\n handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Shows the Ui and resets the inactivity timer */\r\n showUiAndResetTimer(): void;\r\n\r\n /** Shows the Ui and cancels the inactivity timer */\r\n showUiAndCancelTimer(): void;\r\n}\r\n"]}
1
+ {"version":3,"file":"FrameworkVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkVisibility.ts"],"names":[],"mappings":"","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 Utilities\r\n */\r\n/**\r\n * [[UiFramework.visibility]] interface\r\n * @public\r\n */\r\nexport interface FrameworkVisibility {\r\n /** Determines if the Ui is visible */\r\n isUiVisible: boolean;\r\n\r\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\r\n * When true, the Ui automatically hides after a few seconds of inactivity.\r\n */\r\n autoHideUi: boolean;\r\n\r\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\r\n showHidePanels: boolean;\r\n\r\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\r\n showHideFooter: boolean;\r\n\r\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\r\n inactivityTime: number;\r\n\r\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\r\n useProximityOpacity: boolean;\r\n\r\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\r\n snapWidgetOpacity: boolean;\r\n\r\n /** Handler for when a Frontstage is ready */\r\n handleFrontstageReady(): void;\r\n\r\n /** Handler for when the mouse moves over the content area */\r\n handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Handler for when the mouse enters a widget */\r\n handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Shows the Ui and resets the inactivity timer */\r\n showUiAndResetTimer(): void;\r\n\r\n /** Shows the Ui and cancels the inactivity timer */\r\n showUiAndCancelTimer(): void;\r\n}\r\n"]}
@@ -136,7 +136,7 @@ export declare class FrontstageDef {
136
136
  /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState
137
137
  * @internal
138
138
  */
139
- getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number];
139
+ getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number, boolean];
140
140
  isPopoutWidget(widgetId: string): boolean;
141
141
  isFloatingWidget(widgetId: string): boolean;
142
142
  /** Create a new floating panel that contains the widget specified by its Id. Supported only when in
@@ -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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"}
@@ -134,6 +134,15 @@ export class FrontstageDef {
134
134
  });
135
135
  }
136
136
  });
137
+ for (const panelSide of panelSides) {
138
+ const panel = state.panels[panelSide];
139
+ const location = this.toStagePanelLocation(panelSide);
140
+ const panelDef = this.getStagePanelDef(location);
141
+ if (panelDef) {
142
+ panelDef.size = panel.size;
143
+ panelDef.pinned = panel.pinned;
144
+ }
145
+ }
137
146
  }
138
147
  else {
139
148
  this._nineZoneState = state;
@@ -486,10 +495,10 @@ export class FrontstageDef {
486
495
  const side = toPanelSide(panelDef.location);
487
496
  const panel = this.nineZoneState.panels[side];
488
497
  if (panel)
489
- return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0];
490
- return [StagePanelState.Off, 0];
498
+ return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0, panel.pinned];
499
+ return [StagePanelState.Off, 0, false];
491
500
  }
492
- return [panelDef.defaultState, panelDef.defaultSize ?? 0];
501
+ return [panelDef.defaultState, panelDef.defaultSize ?? 0, true];
493
502
  }
494
503
  isPopoutWidget(widgetId) {
495
504
  // istanbul ignore else
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageDef.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.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 Frontstage\r\n */\r\n\r\n// cSpell:ignore popout\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\r\nimport { PointProps, UiError } from \"@itwin/appui-abstract\";\r\nimport { Rectangle, RectangleProps, SizeProps } from \"@itwin/core-react\";\r\nimport {\r\n dockWidgetContainer, floatWidget, getTabLocation, getWidgetLocation, isFloatingTabLocation, isPanelTabLocation, isPopoutTabLocation, isPopoutWidgetLocation,\r\n NineZoneState, PanelSide, panelSides, popoutWidgetToChildWindow,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentControl } from \"../content/ContentControl\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { StagePanelDef, StagePanelState, toPanelSide } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetControl } from \"../widgets/WidgetControl\";\r\nimport { WidgetDef, WidgetType } from \"../widgets/WidgetDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ChildWindowLocationProps } from \"../framework/FrameworkChildWindows\";\r\nimport { PopoutWidget } from \"../childwindow/PopoutWidget\";\r\nimport { FrameworkStateReducer, SavedWidgets } from \"../widget-panels/Frontstage\";\r\nimport { assert, BentleyStatus, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { FrontstageConfig } from \"./FrontstageConfig\";\r\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\r\nimport { WidgetConfig } from \"../widgets/WidgetConfig\";\r\nimport { StageUsage } from \"./StageUsage\";\r\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\nimport { InternalFrontstageManager } from \"./InternalFrontstageManager\";\r\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\r\n\r\n/** @internal */\r\nexport interface FrontstageEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** @internal */\r\nexport interface FrontstageNineZoneStateChangedEventArgs extends FrontstageEventArgs {\r\n state: NineZoneState | undefined;\r\n}\r\n\r\n/** FrontstageDef class provides an API for a Frontstage.\r\n * @public\r\n */\r\nexport class FrontstageDef {\r\n private _id: string = \"\";\r\n private _initialConfig?: FrontstageConfig;\r\n private _isStageClosing = false;\r\n private _isReady = false;\r\n private _isApplicationClosing = false;\r\n private _usage?: string;\r\n private _version: number = 0;\r\n private _toolSettings?: WidgetDef;\r\n private _statusBar?: WidgetDef;\r\n private _contentManipulation?: WidgetDef;\r\n private _viewNavigation?: WidgetDef;\r\n private _topPanel?: StagePanelDef;\r\n private _leftPanel?: StagePanelDef;\r\n private _rightPanel?: StagePanelDef;\r\n private _bottomPanel?: StagePanelDef;\r\n private _contentLayoutDef?: ContentLayoutDef;\r\n private _contentGroup?: ContentGroup;\r\n private _frontstageProvider?: FrontstageProvider;\r\n private _timeTracker = new TimeTracker();\r\n private _nineZoneState?: NineZoneState;\r\n private _contentGroupProvider?: ContentGroupProvider;\r\n private _floatingContentControls?: ContentControl[];\r\n private _savedWidgetDefs?: SavedWidgets;\r\n private _toolAdminDefaultToolId?: string;\r\n\r\n public get id(): string { return this._id; }\r\n public get usage(): string { return this._usage !== undefined ? this._usage : StageUsage.General; }\r\n public get version(): number { return this._version; }\r\n public get contentGroupProvider(): ContentGroupProvider | undefined { return this._contentGroupProvider; }\r\n public get floatingContentControls() { return this._floatingContentControls; }\r\n\r\n public get toolSettings(): WidgetDef | undefined { return this._toolSettings; }\r\n public get statusBar(): WidgetDef | undefined { return this._statusBar; }\r\n public get contentManipulation(): WidgetDef | undefined { return this._contentManipulation; }\r\n public get viewNavigation(): WidgetDef | undefined { return this._viewNavigation; }\r\n\r\n public get topPanel(): StagePanelDef | undefined { return this._topPanel; }\r\n public get leftPanel(): StagePanelDef | undefined { return this._leftPanel; }\r\n public get rightPanel(): StagePanelDef | undefined { return this._rightPanel; }\r\n public get bottomPanel(): StagePanelDef | undefined { return this._bottomPanel; }\r\n\r\n public get contentLayoutDef(): ContentLayoutDef | undefined { return this._contentLayoutDef; }\r\n public get contentGroup(): ContentGroup | undefined { return this._contentGroup; }\r\n public get frontstageProvider(): FrontstageProvider | undefined { return this._frontstageProvider; }\r\n\r\n private toStagePanelLocation(side: PanelSide): StagePanelLocation {\r\n switch (side) {\r\n case \"bottom\":\r\n return StagePanelLocation.Bottom;\r\n case \"left\":\r\n return StagePanelLocation.Left;\r\n case \"right\":\r\n return StagePanelLocation.Right;\r\n case \"top\":\r\n return StagePanelLocation.Top;\r\n }\r\n }\r\n\r\n private populateStateMaps(nineZone: NineZoneState, panelMap: Map<StagePanelDef, StagePanelState>, widgetMap: Map<WidgetDef, WidgetState>) {\r\n for (const panelSide of panelSides) {\r\n const panel = nineZone.panels[panelSide];\r\n const location = this.toStagePanelLocation(panelSide);\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef) {\r\n const panelState = panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;\r\n panelMap.set(panelDef, panelState);\r\n }\r\n for (const widgetId of panel.widgets) {\r\n const widget = nineZone.widgets[widgetId];\r\n // istanbul ignore else\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // istanbul ignore next\r\n for (const widgetId of nineZone.floatingWidgets.allIds) {\r\n const widget = nineZone.widgets[widgetId];\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private triggerStateChangeEventForWidgetsAndPanels(state: NineZoneState | undefined) {\r\n // istanbul ignore else\r\n if (!(this._isStageClosing || this._isApplicationClosing)) {\r\n if (state) {\r\n const originalPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const originalWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n const newPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const newWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n this._nineZoneState && this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);\r\n this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);\r\n\r\n // set internal state value before triggering events\r\n this._nineZoneState = state;\r\n\r\n // now walk and trigger set state events\r\n newWidgetStateMap.forEach((stateValue, widgetDef) => {\r\n const originalState = originalWidgetStateMap.get(widgetDef);\r\n if (originalState !== stateValue) {\r\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({ widgetDef, widgetState: stateValue });\r\n widgetDef.onWidgetStateChanged();\r\n }\r\n });\r\n newPanelStateMap.forEach((stateValue, panelDef) => {\r\n const originalState = originalPanelStateMap.get(panelDef);\r\n if (originalState !== stateValue) {\r\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\r\n panelDef,\r\n panelState: stateValue,\r\n });\r\n }\r\n });\r\n } else {\r\n this._nineZoneState = state;\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get nineZoneState(): NineZoneState | undefined { return this._nineZoneState; }\r\n public set nineZoneState(state: NineZoneState | undefined) {\r\n if (this._nineZoneState === state)\r\n return;\r\n\r\n if (!this._nineZoneState) {\r\n this._nineZoneState = state;\r\n } else {\r\n this.triggerStateChangeEventForWidgetsAndPanels(state);\r\n }\r\n\r\n // istanbul ignore next - don't trigger any side effects until stage \"isReady\"\r\n if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {\r\n InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({\r\n frontstageDef: this,\r\n state,\r\n });\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get savedWidgetDefs() { return this._savedWidgetDefs; }\r\n public set savedWidgetDefs(widgets: SavedWidgets | undefined) {\r\n this._savedWidgetDefs = widgets;\r\n }\r\n\r\n /** @internal */\r\n public get timeTracker(): TimeTracker { return this._timeTracker; }\r\n\r\n /** Created a [[FrontstageDef]] and initialize it */\r\n public static async create(provider: FrontstageProvider) {\r\n const def = new FrontstageDef();\r\n def._frontstageProvider = provider;\r\n\r\n const config = provider.frontstageConfig();\r\n await def.initializeFromConfig(config);\r\n\r\n return def;\r\n }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n protected async _onActivated() { }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n public async onActivated() {\r\n this.updateWidgetDefs();\r\n\r\n const provider = this._contentGroupProvider;\r\n if (provider && this._initialConfig) {\r\n this._contentGroup = await provider.contentGroup(this._initialConfig);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._contentGroup)\r\n throw new UiError(UiFramework.loggerCategory(this), `onActivated: Content Group not defined`);\r\n\r\n this._contentLayoutDef = UiFramework.content.layouts.getForGroup(this._contentGroup);\r\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({ contentLayout: this._contentLayoutDef, contentGroup: this._contentGroup });\r\n\r\n this._timeTracker.startTiming();\r\n await this._onActivated();\r\n }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n protected async _onDeactivated() { }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n public async onDeactivated() {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageDeactivated();\r\n // istanbul ignore next\r\n if (this.contentGroupProvider)\r\n await this.contentGroupProvider.onFrontstageDeactivated();\r\n\r\n this._timeTracker.stopTiming();\r\n\r\n this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking\r\n UiFramework.childWindows.closeAll();\r\n\r\n if (this._floatingContentControls) {\r\n InternalContentDialogManager.closeAll();\r\n this._floatingContentControls = undefined;\r\n }\r\n\r\n if (this._toolAdminDefaultToolId) {\r\n IModelApp.toolAdmin.defaultToolId = this._toolAdminDefaultToolId;\r\n this._toolAdminDefaultToolId = undefined;\r\n }\r\n\r\n await this._onDeactivated();\r\n this._isStageClosing = false;\r\n }\r\n\r\n /** @internal */\r\n public setIsApplicationClosing(value: boolean) {\r\n this._isApplicationClosing = value;\r\n }\r\n\r\n /** Returns once the contained widgets and content controls are ready to use */\r\n public async waitUntilReady(): Promise<void> {\r\n this._isReady = false;\r\n // create an array of control-ready promises\r\n const controlReadyPromises = new Array<Promise<void>>();\r\n this._widgetControls.forEach((control: WidgetControl) => {\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n\r\n // istanbul ignore else\r\n if (this.contentLayoutDef) {\r\n const usedContentIndexes = this.contentLayoutDef.getUsedContentIndexes();\r\n this.contentControls.forEach((control: ContentControl, index: number) => {\r\n // istanbul ignore else\r\n if (usedContentIndexes.includes(index))\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n }\r\n\r\n await Promise.all(controlReadyPromises);\r\n // Frontstage ready\r\n this._isReady = true;\r\n }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n protected _onFrontstageReady(): void { }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n public onFrontstageReady(): void {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageReady();\r\n\r\n if (IModelApp.toolAdmin && IModelApp.viewManager && this._initialConfig) {\r\n const defaultTool = this._initialConfig.defaultTool;\r\n if (defaultTool) {\r\n this._toolAdminDefaultToolId = IModelApp.toolAdmin.defaultToolId;\r\n IModelApp.toolAdmin.defaultToolId = defaultTool;\r\n void IModelApp.tools.run(defaultTool);\r\n } else {\r\n void IModelApp.toolAdmin.startDefaultTool();\r\n }\r\n }\r\n\r\n this._onFrontstageReady();\r\n }\r\n\r\n /** Sets the Content Layout and Content Group */\r\n public setContentLayoutAndGroup(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): void {\r\n this._contentLayoutDef = contentLayoutDef;\r\n this._contentGroup = contentGroup;\r\n }\r\n\r\n /** Sets the active view content control to the default or first */\r\n public async setActiveContent(): Promise<boolean> {\r\n let contentControl: ContentControl | undefined;\r\n let activated = false;\r\n\r\n // istanbul ignore else\r\n if (!contentControl && this.contentControls.length >= 0) {\r\n contentControl = this.contentControls[0];\r\n }\r\n\r\n if (contentControl) {\r\n UiFramework.content.setActive(contentControl.reactNode, true);\r\n if (contentControl.viewport) {\r\n const status = await IModelApp.viewManager.setSelectedView(contentControl.viewport);\r\n activated = status === BentleyStatus.SUCCESS;\r\n }\r\n }\r\n\r\n return activated;\r\n }\r\n\r\n /** Sets the active view content control */\r\n public setActiveView(newContent: ContentControl, oldContent?: ContentControl): void {\r\n if (oldContent)\r\n oldContent.onDeactivated();\r\n newContent.onActivated();\r\n UiFramework.frontstages.onContentControlActivatedEvent.emit({ activeContentControl: newContent, oldContentControl: oldContent });\r\n }\r\n\r\n /** Sets the active view content control based on the selected viewport. */\r\n public setActiveViewFromViewport(viewport: ScreenViewport): boolean {\r\n const contentControl = this.contentControls.find((control: ContentControl) => control.viewport === viewport);\r\n // istanbul ignore else\r\n if (contentControl) {\r\n UiFramework.content.setActive(contentControl.reactNode, true);\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n /** Gets a [[StagePanelDef]] based on a given panel location\r\n * @beta\r\n */\r\n public getStagePanelDef(location: StagePanelLocation): StagePanelDef | undefined {\r\n let panelDef: StagePanelDef | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelDef = this.topPanel;\r\n break;\r\n case StagePanelLocation.Left:\r\n panelDef = this.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelDef = this.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelDef = this.bottomPanel;\r\n break;\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelDef;\r\n }\r\n\r\n /** Gets a list of [[StagePanelDef]]s\r\n * @beta\r\n */\r\n public get panelDefs(): StagePanelDef[] {\r\n const locations = [\r\n StagePanelLocation.Left, StagePanelLocation.Right,\r\n StagePanelLocation.Top, StagePanelLocation.Bottom,\r\n ];\r\n const panels: StagePanelDef[] = [];\r\n\r\n locations.forEach((location: StagePanelLocation) => {\r\n const panel = this.getStagePanelDef(location);\r\n if (panel)\r\n panels.push(panel);\r\n });\r\n\r\n return panels;\r\n }\r\n\r\n /** Finds a [[WidgetDef]] based on a given id */\r\n public findWidgetDef(id: string): WidgetDef | undefined {\r\n for (const widgetDef of this.widgetDefs) {\r\n if (widgetDef.id === id)\r\n return widgetDef;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Gets the list of [[WidgetControl]]s */\r\n private get _widgetControls(): WidgetControl[] {\r\n const widgetControls = new Array<WidgetControl>();\r\n\r\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\r\n panelDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\r\n const widgetControl = widgetDef.widgetControl;\r\n // istanbul ignore if\r\n if (widgetControl)\r\n widgetControls.push(widgetControl);\r\n });\r\n });\r\n\r\n return widgetControls;\r\n }\r\n\r\n public addFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl)\r\n return;\r\n if (!this._floatingContentControls)\r\n this._floatingContentControls = new Array<ContentControl>();\r\n\r\n this._floatingContentControls.push(contentControl);\r\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n\r\n public dropFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl || !this._floatingContentControls)\r\n return;\r\n\r\n const index = this._floatingContentControls.indexOf(contentControl);\r\n // istanbul ignore else\r\n if (index > -1) {\r\n this._floatingContentControls.splice(index, 1);\r\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n }\r\n\r\n /** Gets the list of [[ContentControl]]s */\r\n public get contentControls(): ContentControl[] {\r\n const contentControls = new Array<ContentControl>();\r\n // istanbul ignore else\r\n if (this.contentGroup) {\r\n contentControls.push(...this.contentGroup.getContentControls());\r\n }\r\n if (this._floatingContentControls) {\r\n contentControls.push(...this._floatingContentControls);\r\n }\r\n return contentControls;\r\n }\r\n\r\n /** Initializes a FrontstageDef from FrontstageConfig.\r\n * @internal\r\n */\r\n public async initializeFromConfig(config: FrontstageConfig): Promise<void> {\r\n this._id = config.id;\r\n this._initialConfig = config;\r\n\r\n if (config.contentGroup instanceof ContentGroupProvider) {\r\n this._contentGroupProvider = config.contentGroup;\r\n } else {\r\n this._contentGroup = config.contentGroup;\r\n }\r\n\r\n this._usage = config.usage;\r\n this._version = config.version;\r\n\r\n this._toolSettings = createWidgetDef(config.toolSettings, WidgetType.ToolSettings);\r\n this._statusBar = createWidgetDef(config.statusBar, WidgetType.StatusBar);\r\n this._contentManipulation = createWidgetDef(config.contentManipulation, WidgetType.Tool);\r\n this._viewNavigation = createWidgetDef(config.viewNavigation, WidgetType.Navigation);\r\n this._topPanel = createStagePanelDef(config, StagePanelLocation.Top);\r\n this._leftPanel = createStagePanelDef(config, StagePanelLocation.Left);\r\n this._rightPanel = createStagePanelDef(config, StagePanelLocation.Right);\r\n this._bottomPanel = createStagePanelDef(config, StagePanelLocation.Bottom);\r\n }\r\n\r\n /** @internal */\r\n public updateWidgetDefs(): void {\r\n // Tracks provided widgets to prevent duplicates.\r\n const allStageWidgetDefs: WidgetDef[] = [];\r\n\r\n // Process panels before zones so extension can explicitly target a widget for a StagePanelSection\r\n this.panelDefs.forEach((stagePanelDef: StagePanelDef) => {\r\n stagePanelDef.updateDynamicWidgetDefs(this.id, this.usage, stagePanelDef.location, undefined, allStageWidgetDefs);\r\n });\r\n }\r\n\r\n /** @beta */\r\n public restoreLayout() {\r\n for (const panelDef of this.panelDefs) {\r\n panelDef.size = panelDef.defaultSize;\r\n panelDef.panelState = panelDef.defaultState;\r\n }\r\n for (const widgetDef of this.widgetDefs) {\r\n widgetDef.setWidgetState(widgetDef.defaultState);\r\n }\r\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.emit({ frontstageDef: this });\r\n }\r\n\r\n /** Used only in UI 2.0 to determine WidgetState from NinezoneState\r\n * @internal\r\n */\r\n public getWidgetCurrentState(widgetDef: WidgetDef): WidgetState | undefined {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetDef.id);\r\n // istanbul ignore next\r\n if (!location)\r\n return WidgetState.Hidden;\r\n\r\n if (isFloatingTabLocation(location)) {\r\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[location.floatingWidgetId];\r\n if (floatingWidget && floatingWidget.hidden)\r\n return WidgetState.Hidden;\r\n else\r\n return WidgetState.Floating;\r\n }\r\n\r\n let collapsedPanel = false;\r\n // istanbul ignore else\r\n if (\"side\" in location) {\r\n const panel = this.nineZoneState.panels[location.side];\r\n collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;\r\n }\r\n const widgetContainer = this.nineZoneState.widgets[location.widgetId];\r\n if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)\r\n return WidgetState.Open;\r\n else\r\n return WidgetState.Closed;\r\n }\r\n return widgetDef.defaultState;\r\n }\r\n\r\n /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState\r\n * @internal\r\n */\r\n public getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number] {\r\n // istanbul ignore next\r\n if (this.nineZoneState) {\r\n const side = toPanelSide(panelDef.location);\r\n const panel = this.nineZoneState.panels[side];\r\n if (panel)\r\n return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0];\r\n return [StagePanelState.Off, 0];\r\n }\r\n return [panelDef.defaultState, panelDef.defaultSize ?? 0];\r\n }\r\n\r\n public isPopoutWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isPopoutTabLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isFloatingWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isFloatingTabLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Create a new floating panel that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:400, width:400} is used.\r\n * @beta\r\n */\r\n public floatWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n if (location) {\r\n let popoutWidgetContainerId: string | undefined;\r\n if (isPopoutTabLocation(location)) {\r\n popoutWidgetContainerId = location.popoutWidgetId;\r\n }\r\n const state = floatWidget(this.nineZoneState, widgetId, point, size);\r\n // istanbul ignore else\r\n if (state) {\r\n this.nineZoneState = state;\r\n setTimeout(() => {\r\n popoutWidgetContainerId && UiFramework.childWindows.close(popoutWidgetContainerId, true);\r\n }, 600);\r\n }\r\n }\r\n }\r\n }\r\n /** Check widget and panel state to determine whether the widget is currently displayed\r\n * @param widgetId case-sensitive Widget Id\r\n * @public\r\n */\r\n public isWidgetDisplayed(widgetId: string) {\r\n let widgetIsVisible = false;\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const tabLocation = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (tabLocation) {\r\n if (isFloatingTabLocation(tabLocation)) {\r\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[tabLocation.floatingWidgetId];\r\n // istanbul ignore else\r\n if (!!!floatingWidget.hidden)\r\n widgetIsVisible = true;\r\n } else if (isPopoutTabLocation(tabLocation)) {\r\n widgetIsVisible = true;\r\n } else {\r\n // istanbul ignore else\r\n if (isPanelTabLocation(tabLocation)) {\r\n const panel = this.nineZoneState.panels[tabLocation.side];\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n if (widgetDef && widgetDef.state === WidgetState.Open && !panel.collapsed)\r\n widgetIsVisible = true;\r\n }\r\n }\r\n }\r\n }\r\n return widgetIsVisible;\r\n }\r\n\r\n /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.\r\n * @internal */\r\n public openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string) {\r\n const location = getWidgetLocation(state, widgetContainerId);\r\n // istanbul ignore next\r\n if (!location)\r\n return;\r\n // istanbul ignore next\r\n if (!isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const widget = state.widgets[widgetContainerId];\r\n const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];\r\n\r\n // Popout widget should only contain a single tab.\r\n // istanbul ignore next\r\n if (widget.tabs.length !== 1)\r\n return;\r\n\r\n const tabId = widget.tabs[0];\r\n const widgetDef = this.findWidgetDef(tabId);\r\n // istanbul ignore next\r\n if (!widgetDef)\r\n return;\r\n\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const bounds = Rectangle.create(popoutWidget.bounds);\r\n\r\n const position: ChildWindowLocationProps = {\r\n width: bounds.getWidth(),\r\n height: bounds.getHeight(),\r\n left: bounds.left,\r\n top: bounds.top,\r\n };\r\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n }\r\n\r\n /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:800, width:600} is used.\r\n * @beta\r\n */\r\n public popoutWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore next\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n let location = getTabLocation(this.nineZoneState, widgetId);\r\n if (!location || isPopoutTabLocation(location))\r\n return;\r\n\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n // istanbul ignore next\r\n if (!widgetDef)\r\n return;\r\n\r\n // get the state to apply that will pop-out the specified WidgetTab to child window.\r\n let preferredBounds = Rectangle.createFromSize({ height: 800, width: 600 });\r\n // istanbul ignore next\r\n if (widgetDef.popoutBounds)\r\n preferredBounds = widgetDef.popoutBounds;\r\n if (size)\r\n preferredBounds = preferredBounds.setSize(size);\r\n if (point)\r\n preferredBounds = preferredBounds.setPosition(point);\r\n\r\n const state = popoutWidgetToChildWindow(this.nineZoneState, widgetId, preferredBounds);\r\n this.nineZoneState = state;\r\n\r\n // now that the state is updated get the id of the container that houses the widgetTab/widgetId\r\n location = getTabLocation(state, widgetId);\r\n assert(!!location && isPopoutTabLocation(location));\r\n\r\n const widgetContainerId = location.widgetId;\r\n const popoutWidget = state.popoutWidgets.byId[widgetContainerId];\r\n const bounds = Rectangle.create(popoutWidget.bounds);\r\n\r\n setTimeout(() => {\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const position: ChildWindowLocationProps = {\r\n width: bounds.getWidth(),\r\n height: bounds.getHeight(),\r\n left: bounds.left,\r\n top: bounds.top,\r\n };\r\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n });\r\n }\r\n\r\n public get isStageClosing() {\r\n return this._isStageClosing;\r\n }\r\n\r\n public get isApplicationClosing() {\r\n return this._isApplicationClosing;\r\n }\r\n\r\n public get isReady() {\r\n return this._isReady;\r\n }\r\n\r\n /** @internal */\r\n public saveChildWindowSizeAndPosition(childWindowId: string, childWindow: Window) {\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n const location = getWidgetLocation(this.nineZoneState, childWindowId);\r\n if (!location || !isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const widget = this.nineZoneState.widgets[location.popoutWidgetId];\r\n const tabId = widget.tabs[0];\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (!widgetDef)\r\n return;\r\n\r\n const adjustmentWidth = ProcessDetector.isElectronAppFrontend ? 16 : 0;\r\n const adjustmentHeight = ProcessDetector.isElectronAppFrontend ? 39 : 0;\r\n\r\n const width = childWindow.innerWidth + adjustmentWidth;\r\n const height = childWindow.innerHeight + adjustmentHeight;\r\n const bounds = Rectangle.createFromSize({ width, height }).offset({ x: childWindow.screenX, y: childWindow.screenY });\r\n widgetDef.popoutBounds = bounds;\r\n }\r\n\r\n /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child\r\n * window.\r\n * @internal\r\n */\r\n public dockPopoutWidgetContainer(widgetContainerId: string) {\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n // Make sure the widgetContainerId is still in popout state. We don't want to set it to docked if the window is being closed because\r\n // an API call has moved the widget from a popout state to a floating state.\r\n // istanbul ignore else\r\n const location = getWidgetLocation(this.nineZoneState, widgetContainerId);\r\n if (!location || !isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n this.nineZoneState = state;\r\n }\r\n\r\n /** Finds the container with the specified widget and re-docks all widgets\r\n * back to the panel zone location that was used when the floating container\r\n * was generated. Supported only when in UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id.\r\n * @beta\r\n */\r\n public dockWidgetContainer(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n if (location) {\r\n const widgetContainerId = location.widgetId;\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n state && (this.nineZoneState = state);\r\n if (isPopoutTabLocation(location)) {\r\n UiFramework.childWindows.close(location.widgetId, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public setFloatingWidgetContainerBounds(floatingWidgetId: string, bounds: RectangleProps) {\r\n if (!this.nineZoneState || !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))\r\n return false;\r\n\r\n let state = FrameworkStateReducer(this.nineZoneState, {\r\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\r\n id: floatingWidgetId,\r\n bounds,\r\n }, this);\r\n state = FrameworkStateReducer(state, {\r\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\r\n id: floatingWidgetId,\r\n userSized: true,\r\n }, this);\r\n this.nineZoneState = state;\r\n return true;\r\n }\r\n\r\n public getFloatingWidgetContainerIds(): string[] {\r\n if (!this.nineZoneState)\r\n return [];\r\n\r\n return [...this.nineZoneState.floatingWidgets.allIds];\r\n }\r\n\r\n public getFloatingWidgetContainerIdByWidgetId(widgetId: string): string | undefined {\r\n if (!this.nineZoneState)\r\n return undefined;\r\n\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location && isFloatingTabLocation(location)) {\r\n return location.floatingWidgetId;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n public getFloatingWidgetContainerBounds(floatingWidgetId: string | undefined) {\r\n if (!floatingWidgetId)\r\n return undefined;\r\n\r\n // istanbul ignore else\r\n if (this.nineZoneState && (floatingWidgetId in this.nineZoneState.floatingWidgets.byId)) {\r\n const foundWidget = document.querySelector(`div.nz-widget-floatingWidget[data-widget-id='${floatingWidgetId}']`);\r\n // istanbul ignore next\r\n if (foundWidget) {\r\n const domRect = foundWidget.getBoundingClientRect();\r\n return { left: domRect.left, right: domRect.right, top: domRect.top, bottom: domRect.bottom };\r\n }\r\n return this.nineZoneState.floatingWidgets.byId[floatingWidgetId].bounds;\r\n }\r\n return undefined;\r\n }\r\n\r\n private *_widgetDefs(): Iterator<WidgetDef> {\r\n for (const panelDef of this.panelDefs) {\r\n for (const widgetDef of panelDef.widgetDefs) {\r\n yield widgetDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Iterable of all widget definitions in a frontstage.\r\n * @internal\r\n */\r\n public get widgetDefs() {\r\n const defs = this._widgetDefs();\r\n return {\r\n [Symbol.iterator]() {\r\n return defs;\r\n },\r\n };\r\n }\r\n}\r\n\r\nfunction createWidgetDef(config: WidgetConfig | undefined, type: WidgetType): WidgetDef | undefined {\r\n if (!config)\r\n return undefined;\r\n\r\n const widgetDef = WidgetDef.create(config, type);\r\n return widgetDef;\r\n}\r\n\r\nfunction createStagePanelDef(frontstageConfig: FrontstageConfig, location: StagePanelLocation): StagePanelDef {\r\n const config = getStagePanel(location, frontstageConfig);\r\n\r\n const panelDef = new StagePanelDef();\r\n panelDef.initializeFromConfig(config, location);\r\n return panelDef;\r\n}\r\n\r\nfunction getStagePanel(location: StagePanelLocation, config: FrontstageConfig): StagePanelConfig | undefined {\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n return config.topPanel;\r\n case StagePanelLocation.Left:\r\n return config.leftPanel;\r\n case StagePanelLocation.Right:\r\n return config.rightPanel;\r\n case StagePanelLocation.Bottom:\r\n return config.bottomPanel;\r\n }\r\n}\r\n\r\n/** Hook that returns active frontstage id.\r\n * @public\r\n */\r\nexport const useActiveFrontstageId = () => {\r\n const def = useActiveFrontstageDef();\r\n const id = React.useMemo(() => def ? /* istanbul ignore next */ def.id : \"\", [def]);\r\n return id;\r\n};\r\n\r\n/** Hook to return the active Frontstage def */\r\n/** @public */\r\nexport function useActiveFrontstageDef() {\r\n const [def, setDef] = React.useState(UiFramework.frontstages.activeFrontstageDef);\r\n React.useEffect(() => {\r\n return UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {\r\n setDef(args.activatedFrontstageDef);\r\n });\r\n }, []);\r\n return def;\r\n}\r\n\r\n/** Hook that returns the widgetDef for a specific widgetId within the active frontstage.\r\n * @public\r\n */\r\nexport function useSpecificWidgetDef(widgetId: string) {\r\n const frontstageDef = useActiveFrontstageDef();\r\n return frontstageDef?.findWidgetDef(widgetId);\r\n}\r\n"]}
1
+ {"version":3,"file":"FrontstageDef.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.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 Frontstage\r\n */\r\n\r\n// cSpell:ignore popout\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\r\nimport { PointProps, UiError } from \"@itwin/appui-abstract\";\r\nimport { Rectangle, RectangleProps, SizeProps } from \"@itwin/core-react\";\r\nimport {\r\n dockWidgetContainer, floatWidget, getTabLocation, getWidgetLocation, isFloatingTabLocation, isPanelTabLocation, isPopoutTabLocation, isPopoutWidgetLocation,\r\n NineZoneState, PanelSide, panelSides, popoutWidgetToChildWindow,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentControl } from \"../content/ContentControl\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { StagePanelDef, StagePanelState, toPanelSide } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetControl } from \"../widgets/WidgetControl\";\r\nimport { WidgetDef, WidgetType } from \"../widgets/WidgetDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ChildWindowLocationProps } from \"../framework/FrameworkChildWindows\";\r\nimport { PopoutWidget } from \"../childwindow/PopoutWidget\";\r\nimport { FrameworkStateReducer, SavedWidgets } from \"../widget-panels/Frontstage\";\r\nimport { assert, BentleyStatus, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { FrontstageConfig } from \"./FrontstageConfig\";\r\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\r\nimport { WidgetConfig } from \"../widgets/WidgetConfig\";\r\nimport { StageUsage } from \"./StageUsage\";\r\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\nimport { InternalFrontstageManager } from \"./InternalFrontstageManager\";\r\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\r\n\r\n/** @internal */\r\nexport interface FrontstageEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** @internal */\r\nexport interface FrontstageNineZoneStateChangedEventArgs extends FrontstageEventArgs {\r\n state: NineZoneState | undefined;\r\n}\r\n\r\n/** FrontstageDef class provides an API for a Frontstage.\r\n * @public\r\n */\r\nexport class FrontstageDef {\r\n private _id: string = \"\";\r\n private _initialConfig?: FrontstageConfig;\r\n private _isStageClosing = false;\r\n private _isReady = false;\r\n private _isApplicationClosing = false;\r\n private _usage?: string;\r\n private _version: number = 0;\r\n private _toolSettings?: WidgetDef;\r\n private _statusBar?: WidgetDef;\r\n private _contentManipulation?: WidgetDef;\r\n private _viewNavigation?: WidgetDef;\r\n private _topPanel?: StagePanelDef;\r\n private _leftPanel?: StagePanelDef;\r\n private _rightPanel?: StagePanelDef;\r\n private _bottomPanel?: StagePanelDef;\r\n private _contentLayoutDef?: ContentLayoutDef;\r\n private _contentGroup?: ContentGroup;\r\n private _frontstageProvider?: FrontstageProvider;\r\n private _timeTracker = new TimeTracker();\r\n private _nineZoneState?: NineZoneState;\r\n private _contentGroupProvider?: ContentGroupProvider;\r\n private _floatingContentControls?: ContentControl[];\r\n private _savedWidgetDefs?: SavedWidgets;\r\n private _toolAdminDefaultToolId?: string;\r\n\r\n public get id(): string { return this._id; }\r\n public get usage(): string { return this._usage !== undefined ? this._usage : StageUsage.General; }\r\n public get version(): number { return this._version; }\r\n public get contentGroupProvider(): ContentGroupProvider | undefined { return this._contentGroupProvider; }\r\n public get floatingContentControls() { return this._floatingContentControls; }\r\n\r\n public get toolSettings(): WidgetDef | undefined { return this._toolSettings; }\r\n public get statusBar(): WidgetDef | undefined { return this._statusBar; }\r\n public get contentManipulation(): WidgetDef | undefined { return this._contentManipulation; }\r\n public get viewNavigation(): WidgetDef | undefined { return this._viewNavigation; }\r\n\r\n public get topPanel(): StagePanelDef | undefined { return this._topPanel; }\r\n public get leftPanel(): StagePanelDef | undefined { return this._leftPanel; }\r\n public get rightPanel(): StagePanelDef | undefined { return this._rightPanel; }\r\n public get bottomPanel(): StagePanelDef | undefined { return this._bottomPanel; }\r\n\r\n public get contentLayoutDef(): ContentLayoutDef | undefined { return this._contentLayoutDef; }\r\n public get contentGroup(): ContentGroup | undefined { return this._contentGroup; }\r\n public get frontstageProvider(): FrontstageProvider | undefined { return this._frontstageProvider; }\r\n\r\n private toStagePanelLocation(side: PanelSide): StagePanelLocation {\r\n switch (side) {\r\n case \"bottom\":\r\n return StagePanelLocation.Bottom;\r\n case \"left\":\r\n return StagePanelLocation.Left;\r\n case \"right\":\r\n return StagePanelLocation.Right;\r\n case \"top\":\r\n return StagePanelLocation.Top;\r\n }\r\n }\r\n\r\n private populateStateMaps(nineZone: NineZoneState, panelMap: Map<StagePanelDef, StagePanelState>, widgetMap: Map<WidgetDef, WidgetState>) {\r\n for (const panelSide of panelSides) {\r\n const panel = nineZone.panels[panelSide];\r\n const location = this.toStagePanelLocation(panelSide);\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef) {\r\n const panelState = panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;\r\n panelMap.set(panelDef, panelState);\r\n }\r\n for (const widgetId of panel.widgets) {\r\n const widget = nineZone.widgets[widgetId];\r\n // istanbul ignore else\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // istanbul ignore next\r\n for (const widgetId of nineZone.floatingWidgets.allIds) {\r\n const widget = nineZone.widgets[widgetId];\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private triggerStateChangeEventForWidgetsAndPanels(state: NineZoneState | undefined) {\r\n // istanbul ignore else\r\n if (!(this._isStageClosing || this._isApplicationClosing)) {\r\n if (state) {\r\n const originalPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const originalWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n const newPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const newWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n this._nineZoneState && this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);\r\n this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);\r\n\r\n // set internal state value before triggering events\r\n this._nineZoneState = state;\r\n\r\n // now walk and trigger set state events\r\n newWidgetStateMap.forEach((stateValue, widgetDef) => {\r\n const originalState = originalWidgetStateMap.get(widgetDef);\r\n if (originalState !== stateValue) {\r\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({ widgetDef, widgetState: stateValue });\r\n widgetDef.onWidgetStateChanged();\r\n }\r\n });\r\n newPanelStateMap.forEach((stateValue, panelDef) => {\r\n const originalState = originalPanelStateMap.get(panelDef);\r\n if (originalState !== stateValue) {\r\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\r\n panelDef,\r\n panelState: stateValue,\r\n });\r\n }\r\n });\r\n\r\n for (const panelSide of panelSides) {\r\n const panel = state.panels[panelSide];\r\n const location = this.toStagePanelLocation(panelSide);\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef) {\r\n panelDef.size = panel.size;\r\n panelDef.pinned = panel.pinned;\r\n }\r\n }\r\n } else {\r\n this._nineZoneState = state;\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get nineZoneState(): NineZoneState | undefined { return this._nineZoneState; }\r\n public set nineZoneState(state: NineZoneState | undefined) {\r\n if (this._nineZoneState === state)\r\n return;\r\n\r\n if (!this._nineZoneState) {\r\n this._nineZoneState = state;\r\n } else {\r\n this.triggerStateChangeEventForWidgetsAndPanels(state);\r\n }\r\n\r\n // istanbul ignore next - don't trigger any side effects until stage \"isReady\"\r\n if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {\r\n InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({\r\n frontstageDef: this,\r\n state,\r\n });\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get savedWidgetDefs() { return this._savedWidgetDefs; }\r\n public set savedWidgetDefs(widgets: SavedWidgets | undefined) {\r\n this._savedWidgetDefs = widgets;\r\n }\r\n\r\n /** @internal */\r\n public get timeTracker(): TimeTracker { return this._timeTracker; }\r\n\r\n /** Created a [[FrontstageDef]] and initialize it */\r\n public static async create(provider: FrontstageProvider) {\r\n const def = new FrontstageDef();\r\n def._frontstageProvider = provider;\r\n\r\n const config = provider.frontstageConfig();\r\n await def.initializeFromConfig(config);\r\n\r\n return def;\r\n }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n protected async _onActivated() { }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n public async onActivated() {\r\n this.updateWidgetDefs();\r\n\r\n const provider = this._contentGroupProvider;\r\n if (provider && this._initialConfig) {\r\n this._contentGroup = await provider.contentGroup(this._initialConfig);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._contentGroup)\r\n throw new UiError(UiFramework.loggerCategory(this), `onActivated: Content Group not defined`);\r\n\r\n this._contentLayoutDef = UiFramework.content.layouts.getForGroup(this._contentGroup);\r\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({ contentLayout: this._contentLayoutDef, contentGroup: this._contentGroup });\r\n\r\n this._timeTracker.startTiming();\r\n await this._onActivated();\r\n }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n protected async _onDeactivated() { }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n public async onDeactivated() {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageDeactivated();\r\n // istanbul ignore next\r\n if (this.contentGroupProvider)\r\n await this.contentGroupProvider.onFrontstageDeactivated();\r\n\r\n this._timeTracker.stopTiming();\r\n\r\n this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking\r\n UiFramework.childWindows.closeAll();\r\n\r\n if (this._floatingContentControls) {\r\n InternalContentDialogManager.closeAll();\r\n this._floatingContentControls = undefined;\r\n }\r\n\r\n if (this._toolAdminDefaultToolId) {\r\n IModelApp.toolAdmin.defaultToolId = this._toolAdminDefaultToolId;\r\n this._toolAdminDefaultToolId = undefined;\r\n }\r\n\r\n await this._onDeactivated();\r\n this._isStageClosing = false;\r\n }\r\n\r\n /** @internal */\r\n public setIsApplicationClosing(value: boolean) {\r\n this._isApplicationClosing = value;\r\n }\r\n\r\n /** Returns once the contained widgets and content controls are ready to use */\r\n public async waitUntilReady(): Promise<void> {\r\n this._isReady = false;\r\n // create an array of control-ready promises\r\n const controlReadyPromises = new Array<Promise<void>>();\r\n this._widgetControls.forEach((control: WidgetControl) => {\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n\r\n // istanbul ignore else\r\n if (this.contentLayoutDef) {\r\n const usedContentIndexes = this.contentLayoutDef.getUsedContentIndexes();\r\n this.contentControls.forEach((control: ContentControl, index: number) => {\r\n // istanbul ignore else\r\n if (usedContentIndexes.includes(index))\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n }\r\n\r\n await Promise.all(controlReadyPromises);\r\n // Frontstage ready\r\n this._isReady = true;\r\n }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n protected _onFrontstageReady(): void { }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n public onFrontstageReady(): void {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageReady();\r\n\r\n if (IModelApp.toolAdmin && IModelApp.viewManager && this._initialConfig) {\r\n const defaultTool = this._initialConfig.defaultTool;\r\n if (defaultTool) {\r\n this._toolAdminDefaultToolId = IModelApp.toolAdmin.defaultToolId;\r\n IModelApp.toolAdmin.defaultToolId = defaultTool;\r\n void IModelApp.tools.run(defaultTool);\r\n } else {\r\n void IModelApp.toolAdmin.startDefaultTool();\r\n }\r\n }\r\n\r\n this._onFrontstageReady();\r\n }\r\n\r\n /** Sets the Content Layout and Content Group */\r\n public setContentLayoutAndGroup(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): void {\r\n this._contentLayoutDef = contentLayoutDef;\r\n this._contentGroup = contentGroup;\r\n }\r\n\r\n /** Sets the active view content control to the default or first */\r\n public async setActiveContent(): Promise<boolean> {\r\n let contentControl: ContentControl | undefined;\r\n let activated = false;\r\n\r\n // istanbul ignore else\r\n if (!contentControl && this.contentControls.length >= 0) {\r\n contentControl = this.contentControls[0];\r\n }\r\n\r\n if (contentControl) {\r\n UiFramework.content.setActive(contentControl.reactNode, true);\r\n if (contentControl.viewport) {\r\n const status = await IModelApp.viewManager.setSelectedView(contentControl.viewport);\r\n activated = status === BentleyStatus.SUCCESS;\r\n }\r\n }\r\n\r\n return activated;\r\n }\r\n\r\n /** Sets the active view content control */\r\n public setActiveView(newContent: ContentControl, oldContent?: ContentControl): void {\r\n if (oldContent)\r\n oldContent.onDeactivated();\r\n newContent.onActivated();\r\n UiFramework.frontstages.onContentControlActivatedEvent.emit({ activeContentControl: newContent, oldContentControl: oldContent });\r\n }\r\n\r\n /** Sets the active view content control based on the selected viewport. */\r\n public setActiveViewFromViewport(viewport: ScreenViewport): boolean {\r\n const contentControl = this.contentControls.find((control: ContentControl) => control.viewport === viewport);\r\n // istanbul ignore else\r\n if (contentControl) {\r\n UiFramework.content.setActive(contentControl.reactNode, true);\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n /** Gets a [[StagePanelDef]] based on a given panel location\r\n * @beta\r\n */\r\n public getStagePanelDef(location: StagePanelLocation): StagePanelDef | undefined {\r\n let panelDef: StagePanelDef | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelDef = this.topPanel;\r\n break;\r\n case StagePanelLocation.Left:\r\n panelDef = this.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelDef = this.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelDef = this.bottomPanel;\r\n break;\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelDef;\r\n }\r\n\r\n /** Gets a list of [[StagePanelDef]]s\r\n * @beta\r\n */\r\n public get panelDefs(): StagePanelDef[] {\r\n const locations = [\r\n StagePanelLocation.Left, StagePanelLocation.Right,\r\n StagePanelLocation.Top, StagePanelLocation.Bottom,\r\n ];\r\n const panels: StagePanelDef[] = [];\r\n\r\n locations.forEach((location: StagePanelLocation) => {\r\n const panel = this.getStagePanelDef(location);\r\n if (panel)\r\n panels.push(panel);\r\n });\r\n\r\n return panels;\r\n }\r\n\r\n /** Finds a [[WidgetDef]] based on a given id */\r\n public findWidgetDef(id: string): WidgetDef | undefined {\r\n for (const widgetDef of this.widgetDefs) {\r\n if (widgetDef.id === id)\r\n return widgetDef;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** Gets the list of [[WidgetControl]]s */\r\n private get _widgetControls(): WidgetControl[] {\r\n const widgetControls = new Array<WidgetControl>();\r\n\r\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\r\n panelDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\r\n const widgetControl = widgetDef.widgetControl;\r\n // istanbul ignore if\r\n if (widgetControl)\r\n widgetControls.push(widgetControl);\r\n });\r\n });\r\n\r\n return widgetControls;\r\n }\r\n\r\n public addFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl)\r\n return;\r\n if (!this._floatingContentControls)\r\n this._floatingContentControls = new Array<ContentControl>();\r\n\r\n this._floatingContentControls.push(contentControl);\r\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n\r\n public dropFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl || !this._floatingContentControls)\r\n return;\r\n\r\n const index = this._floatingContentControls.indexOf(contentControl);\r\n // istanbul ignore else\r\n if (index > -1) {\r\n this._floatingContentControls.splice(index, 1);\r\n UiFramework.content.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n }\r\n\r\n /** Gets the list of [[ContentControl]]s */\r\n public get contentControls(): ContentControl[] {\r\n const contentControls = new Array<ContentControl>();\r\n // istanbul ignore else\r\n if (this.contentGroup) {\r\n contentControls.push(...this.contentGroup.getContentControls());\r\n }\r\n if (this._floatingContentControls) {\r\n contentControls.push(...this._floatingContentControls);\r\n }\r\n return contentControls;\r\n }\r\n\r\n /** Initializes a FrontstageDef from FrontstageConfig.\r\n * @internal\r\n */\r\n public async initializeFromConfig(config: FrontstageConfig): Promise<void> {\r\n this._id = config.id;\r\n this._initialConfig = config;\r\n\r\n if (config.contentGroup instanceof ContentGroupProvider) {\r\n this._contentGroupProvider = config.contentGroup;\r\n } else {\r\n this._contentGroup = config.contentGroup;\r\n }\r\n\r\n this._usage = config.usage;\r\n this._version = config.version;\r\n\r\n this._toolSettings = createWidgetDef(config.toolSettings, WidgetType.ToolSettings);\r\n this._statusBar = createWidgetDef(config.statusBar, WidgetType.StatusBar);\r\n this._contentManipulation = createWidgetDef(config.contentManipulation, WidgetType.Tool);\r\n this._viewNavigation = createWidgetDef(config.viewNavigation, WidgetType.Navigation);\r\n this._topPanel = createStagePanelDef(config, StagePanelLocation.Top);\r\n this._leftPanel = createStagePanelDef(config, StagePanelLocation.Left);\r\n this._rightPanel = createStagePanelDef(config, StagePanelLocation.Right);\r\n this._bottomPanel = createStagePanelDef(config, StagePanelLocation.Bottom);\r\n }\r\n\r\n /** @internal */\r\n public updateWidgetDefs(): void {\r\n // Tracks provided widgets to prevent duplicates.\r\n const allStageWidgetDefs: WidgetDef[] = [];\r\n\r\n // Process panels before zones so extension can explicitly target a widget for a StagePanelSection\r\n this.panelDefs.forEach((stagePanelDef: StagePanelDef) => {\r\n stagePanelDef.updateDynamicWidgetDefs(this.id, this.usage, stagePanelDef.location, undefined, allStageWidgetDefs);\r\n });\r\n }\r\n\r\n /** @beta */\r\n public restoreLayout() {\r\n for (const panelDef of this.panelDefs) {\r\n panelDef.size = panelDef.defaultSize;\r\n panelDef.panelState = panelDef.defaultState;\r\n }\r\n for (const widgetDef of this.widgetDefs) {\r\n widgetDef.setWidgetState(widgetDef.defaultState);\r\n }\r\n InternalFrontstageManager.onFrontstageRestoreLayoutEvent.emit({ frontstageDef: this });\r\n }\r\n\r\n /** Used only in UI 2.0 to determine WidgetState from NinezoneState\r\n * @internal\r\n */\r\n public getWidgetCurrentState(widgetDef: WidgetDef): WidgetState | undefined {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetDef.id);\r\n // istanbul ignore next\r\n if (!location)\r\n return WidgetState.Hidden;\r\n\r\n if (isFloatingTabLocation(location)) {\r\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[location.floatingWidgetId];\r\n if (floatingWidget && floatingWidget.hidden)\r\n return WidgetState.Hidden;\r\n else\r\n return WidgetState.Floating;\r\n }\r\n\r\n let collapsedPanel = false;\r\n // istanbul ignore else\r\n if (\"side\" in location) {\r\n const panel = this.nineZoneState.panels[location.side];\r\n collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;\r\n }\r\n const widgetContainer = this.nineZoneState.widgets[location.widgetId];\r\n if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)\r\n return WidgetState.Open;\r\n else\r\n return WidgetState.Closed;\r\n }\r\n return widgetDef.defaultState;\r\n }\r\n\r\n /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState\r\n * @internal\r\n */\r\n public getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number, boolean] {\r\n // istanbul ignore next\r\n if (this.nineZoneState) {\r\n const side = toPanelSide(panelDef.location);\r\n const panel = this.nineZoneState.panels[side];\r\n if (panel)\r\n return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0, panel.pinned];\r\n return [StagePanelState.Off, 0, false];\r\n }\r\n return [panelDef.defaultState, panelDef.defaultSize ?? 0, true];\r\n }\r\n\r\n public isPopoutWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isPopoutTabLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isFloatingWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isFloatingTabLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Create a new floating panel that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:400, width:400} is used.\r\n * @beta\r\n */\r\n public floatWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n if (location) {\r\n let popoutWidgetContainerId: string | undefined;\r\n if (isPopoutTabLocation(location)) {\r\n popoutWidgetContainerId = location.popoutWidgetId;\r\n }\r\n const state = floatWidget(this.nineZoneState, widgetId, point, size);\r\n // istanbul ignore else\r\n if (state) {\r\n this.nineZoneState = state;\r\n setTimeout(() => {\r\n popoutWidgetContainerId && UiFramework.childWindows.close(popoutWidgetContainerId, true);\r\n }, 600);\r\n }\r\n }\r\n }\r\n }\r\n /** Check widget and panel state to determine whether the widget is currently displayed\r\n * @param widgetId case-sensitive Widget Id\r\n * @public\r\n */\r\n public isWidgetDisplayed(widgetId: string) {\r\n let widgetIsVisible = false;\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const tabLocation = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (tabLocation) {\r\n if (isFloatingTabLocation(tabLocation)) {\r\n const floatingWidget = this.nineZoneState.floatingWidgets.byId[tabLocation.floatingWidgetId];\r\n // istanbul ignore else\r\n if (!!!floatingWidget.hidden)\r\n widgetIsVisible = true;\r\n } else if (isPopoutTabLocation(tabLocation)) {\r\n widgetIsVisible = true;\r\n } else {\r\n // istanbul ignore else\r\n if (isPanelTabLocation(tabLocation)) {\r\n const panel = this.nineZoneState.panels[tabLocation.side];\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n if (widgetDef && widgetDef.state === WidgetState.Open && !panel.collapsed)\r\n widgetIsVisible = true;\r\n }\r\n }\r\n }\r\n }\r\n return widgetIsVisible;\r\n }\r\n\r\n /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.\r\n * @internal */\r\n public openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string) {\r\n const location = getWidgetLocation(state, widgetContainerId);\r\n // istanbul ignore next\r\n if (!location)\r\n return;\r\n // istanbul ignore next\r\n if (!isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const widget = state.widgets[widgetContainerId];\r\n const popoutWidget = state.popoutWidgets.byId[location.popoutWidgetId];\r\n\r\n // Popout widget should only contain a single tab.\r\n // istanbul ignore next\r\n if (widget.tabs.length !== 1)\r\n return;\r\n\r\n const tabId = widget.tabs[0];\r\n const widgetDef = this.findWidgetDef(tabId);\r\n // istanbul ignore next\r\n if (!widgetDef)\r\n return;\r\n\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const bounds = Rectangle.create(popoutWidget.bounds);\r\n\r\n const position: ChildWindowLocationProps = {\r\n width: bounds.getWidth(),\r\n height: bounds.getHeight(),\r\n left: bounds.left,\r\n top: bounds.top,\r\n };\r\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n }\r\n\r\n /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:800, width:600} is used.\r\n * @beta\r\n */\r\n public popoutWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore next\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n let location = getTabLocation(this.nineZoneState, widgetId);\r\n if (!location || isPopoutTabLocation(location))\r\n return;\r\n\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n // istanbul ignore next\r\n if (!widgetDef)\r\n return;\r\n\r\n // get the state to apply that will pop-out the specified WidgetTab to child window.\r\n let preferredBounds = Rectangle.createFromSize({ height: 800, width: 600 });\r\n // istanbul ignore next\r\n if (widgetDef.popoutBounds)\r\n preferredBounds = widgetDef.popoutBounds;\r\n if (size)\r\n preferredBounds = preferredBounds.setSize(size);\r\n if (point)\r\n preferredBounds = preferredBounds.setPosition(point);\r\n\r\n const state = popoutWidgetToChildWindow(this.nineZoneState, widgetId, preferredBounds);\r\n this.nineZoneState = state;\r\n\r\n // now that the state is updated get the id of the container that houses the widgetTab/widgetId\r\n location = getTabLocation(state, widgetId);\r\n assert(!!location && isPopoutTabLocation(location));\r\n\r\n const widgetContainerId = location.widgetId;\r\n const popoutWidget = state.popoutWidgets.byId[widgetContainerId];\r\n const bounds = Rectangle.create(popoutWidget.bounds);\r\n\r\n setTimeout(() => {\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const position: ChildWindowLocationProps = {\r\n width: bounds.getWidth(),\r\n height: bounds.getHeight(),\r\n left: bounds.left,\r\n top: bounds.top,\r\n };\r\n UiFramework.childWindows.open(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n });\r\n }\r\n\r\n public get isStageClosing() {\r\n return this._isStageClosing;\r\n }\r\n\r\n public get isApplicationClosing() {\r\n return this._isApplicationClosing;\r\n }\r\n\r\n public get isReady() {\r\n return this._isReady;\r\n }\r\n\r\n /** @internal */\r\n public saveChildWindowSizeAndPosition(childWindowId: string, childWindow: Window) {\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n const location = getWidgetLocation(this.nineZoneState, childWindowId);\r\n if (!location || !isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const widget = this.nineZoneState.widgets[location.popoutWidgetId];\r\n const tabId = widget.tabs[0];\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (!widgetDef)\r\n return;\r\n\r\n const adjustmentWidth = ProcessDetector.isElectronAppFrontend ? 16 : 0;\r\n const adjustmentHeight = ProcessDetector.isElectronAppFrontend ? 39 : 0;\r\n\r\n const width = childWindow.innerWidth + adjustmentWidth;\r\n const height = childWindow.innerHeight + adjustmentHeight;\r\n const bounds = Rectangle.createFromSize({ width, height }).offset({ x: childWindow.screenX, y: childWindow.screenY });\r\n widgetDef.popoutBounds = bounds;\r\n }\r\n\r\n /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child\r\n * window.\r\n * @internal\r\n */\r\n public dockPopoutWidgetContainer(widgetContainerId: string) {\r\n if (!this.nineZoneState)\r\n return;\r\n\r\n // Make sure the widgetContainerId is still in popout state. We don't want to set it to docked if the window is being closed because\r\n // an API call has moved the widget from a popout state to a floating state.\r\n // istanbul ignore else\r\n const location = getWidgetLocation(this.nineZoneState, widgetContainerId);\r\n if (!location || !isPopoutWidgetLocation(location))\r\n return;\r\n\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n this.nineZoneState = state;\r\n }\r\n\r\n /** Finds the container with the specified widget and re-docks all widgets\r\n * back to the panel zone location that was used when the floating container\r\n * was generated. Supported only when in UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id.\r\n * @beta\r\n */\r\n public dockWidgetContainer(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n if (location) {\r\n const widgetContainerId = location.widgetId;\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n state && (this.nineZoneState = state);\r\n if (isPopoutTabLocation(location)) {\r\n UiFramework.childWindows.close(location.widgetId, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public setFloatingWidgetContainerBounds(floatingWidgetId: string, bounds: RectangleProps) {\r\n if (!this.nineZoneState || !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))\r\n return false;\r\n\r\n let state = FrameworkStateReducer(this.nineZoneState, {\r\n type: \"FLOATING_WIDGET_SET_BOUNDS\",\r\n id: floatingWidgetId,\r\n bounds,\r\n }, this);\r\n state = FrameworkStateReducer(state, {\r\n type: \"FLOATING_WIDGET_SET_USER_SIZED\",\r\n id: floatingWidgetId,\r\n userSized: true,\r\n }, this);\r\n this.nineZoneState = state;\r\n return true;\r\n }\r\n\r\n public getFloatingWidgetContainerIds(): string[] {\r\n if (!this.nineZoneState)\r\n return [];\r\n\r\n return [...this.nineZoneState.floatingWidgets.allIds];\r\n }\r\n\r\n public getFloatingWidgetContainerIdByWidgetId(widgetId: string): string | undefined {\r\n if (!this.nineZoneState)\r\n return undefined;\r\n\r\n const location = getTabLocation(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location && isFloatingTabLocation(location)) {\r\n return location.floatingWidgetId;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n public getFloatingWidgetContainerBounds(floatingWidgetId: string | undefined) {\r\n if (!floatingWidgetId)\r\n return undefined;\r\n\r\n // istanbul ignore else\r\n if (this.nineZoneState && (floatingWidgetId in this.nineZoneState.floatingWidgets.byId)) {\r\n const foundWidget = document.querySelector(`div.nz-widget-floatingWidget[data-widget-id='${floatingWidgetId}']`);\r\n // istanbul ignore next\r\n if (foundWidget) {\r\n const domRect = foundWidget.getBoundingClientRect();\r\n return { left: domRect.left, right: domRect.right, top: domRect.top, bottom: domRect.bottom };\r\n }\r\n return this.nineZoneState.floatingWidgets.byId[floatingWidgetId].bounds;\r\n }\r\n return undefined;\r\n }\r\n\r\n private *_widgetDefs(): Iterator<WidgetDef> {\r\n for (const panelDef of this.panelDefs) {\r\n for (const widgetDef of panelDef.widgetDefs) {\r\n yield widgetDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Iterable of all widget definitions in a frontstage.\r\n * @internal\r\n */\r\n public get widgetDefs() {\r\n const defs = this._widgetDefs();\r\n return {\r\n [Symbol.iterator]() {\r\n return defs;\r\n },\r\n };\r\n }\r\n}\r\n\r\nfunction createWidgetDef(config: WidgetConfig | undefined, type: WidgetType): WidgetDef | undefined {\r\n if (!config)\r\n return undefined;\r\n\r\n const widgetDef = WidgetDef.create(config, type);\r\n return widgetDef;\r\n}\r\n\r\nfunction createStagePanelDef(frontstageConfig: FrontstageConfig, location: StagePanelLocation): StagePanelDef {\r\n const config = getStagePanel(location, frontstageConfig);\r\n\r\n const panelDef = new StagePanelDef();\r\n panelDef.initializeFromConfig(config, location);\r\n return panelDef;\r\n}\r\n\r\nfunction getStagePanel(location: StagePanelLocation, config: FrontstageConfig): StagePanelConfig | undefined {\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n return config.topPanel;\r\n case StagePanelLocation.Left:\r\n return config.leftPanel;\r\n case StagePanelLocation.Right:\r\n return config.rightPanel;\r\n case StagePanelLocation.Bottom:\r\n return config.bottomPanel;\r\n }\r\n}\r\n\r\n/** Hook that returns active frontstage id.\r\n * @public\r\n */\r\nexport const useActiveFrontstageId = () => {\r\n const def = useActiveFrontstageDef();\r\n const id = React.useMemo(() => def ? /* istanbul ignore next */ def.id : \"\", [def]);\r\n return id;\r\n};\r\n\r\n/** Hook to return the active Frontstage def */\r\n/** @public */\r\nexport function useActiveFrontstageDef() {\r\n const [def, setDef] = React.useState(UiFramework.frontstages.activeFrontstageDef);\r\n React.useEffect(() => {\r\n return UiFramework.frontstages.onFrontstageActivatedEvent.addListener((args) => {\r\n setDef(args.activatedFrontstageDef);\r\n });\r\n }, []);\r\n return def;\r\n}\r\n\r\n/** Hook that returns the widgetDef for a specific widgetId within the active frontstage.\r\n * @public\r\n */\r\nexport function useSpecificWidgetDef(widgetId: string) {\r\n const frontstageDef = useActiveFrontstageDef();\r\n return frontstageDef?.findWidgetDef(widgetId);\r\n}\r\n"]}
@@ -8,7 +8,7 @@ import { ContentControlActivatedEvent } from "../content/ContentControl";
8
8
  import { ContentGroup } from "../content/ContentGroup";
9
9
  import { ContentLayoutActivatedEvent, ContentLayoutDef } from "../content/ContentLayout";
10
10
  import { NavigationAidActivatedEvent } from "../navigationaids/NavigationAidControl";
11
- import { PanelSizeChangedEvent, PanelStateChangedEvent } from "../stagepanels/StagePanelDef";
11
+ import { PanelPinnedChangedEventArgs, PanelSizeChangedEvent, PanelStateChangedEvent } from "../stagepanels/StagePanelDef";
12
12
  import { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from "../widgets/WidgetDef";
13
13
  import { ToolInformation } from "../toolsettings/ToolInformation";
14
14
  import { ToolUiProvider } from "../toolsettings/ToolUiProvider";
@@ -97,10 +97,14 @@ export declare class InternalFrontstageManager {
97
97
  static readonly onFrontstageNineZoneStateChangedEvent: UiEvent<FrontstageNineZoneStateChangedEventArgs>;
98
98
  /** @internal */
99
99
  static readonly onFrontstageRestoreLayoutEvent: UiEvent<FrontstageEventArgs>;
100
- /** Get Widget State Changed event.
100
+ /** Get panel state changed event.
101
101
  * @alpha
102
102
  */
103
103
  static readonly onPanelStateChangedEvent: PanelStateChangedEvent;
104
+ /** Get panel pinned changed event.
105
+ * @alpha
106
+ */
107
+ static readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;
104
108
  /** @internal */
105
109
  static readonly onPanelSizeChangedEvent: PanelSizeChangedEvent;
106
110
  /** Clears the Frontstage map.
@@ -1 +1 @@
1
- {"version":3,"file":"InternalFrontstageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/InternalFrontstageManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InternalFrontstageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/InternalFrontstageManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAa,gBAAgB,EAA+D,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACtI,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAE1H,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,mBAAmB,EAAuB,kCAAkC,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGhT;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IACpC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAS;IAClC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAM;IAClC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA4B;IAC/D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAoC;IAClE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA2D;IAC3F,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAyC;IAC5E,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA+C;IAChF,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAA4B;IACtE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAoE;IAEtG;;OAEG;WACW,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO9D,OAAO,CAAC,MAAM,CAAC,qCAAqC;IAKpD,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAO5C;;MAEE;WACY,UAAU;IA6BxB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,8BAA8B,CAK3C;IAEF,gBAAgB;IAChB,WAAkB,aAAa,IAAI,OAAO,CAAmD;IAC7F,WAAkB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAiD;IAE3F,0HAA0H;IAC1H,WAAkB,SAAS,IAAI,OAAO,CAAiD;IAEvF,gBAAgB;IAChB,WAAkB,YAAY,qBAAsD;IAEpF,WAAkB,YAAY,CAAC,IAAI,kBAAA,EAElC;IAED,gBAAgB;IAChB,WAAkB,cAAc,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAErE;IAED,wCAAwC;IACxC,gBAAuB,4BAA4B,6BAAoC;IAEvF,sCAAsC;IACtC,gBAAuB,0BAA0B,2BAAkC;IAEnF,sCAAsC;IACtC,gBAAuB,sBAAsB,uBAA8B;IAE3E,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,yCAAyC;IACzC,gBAAuB,4BAA4B,6BAAoC;IAEvF;;OAEG;IACH,gBAAuB,oCAAoC,qCAA4C;IAEvG,gCAAgC;IAChC,gBAAuB,oBAAoB,qBAA4B;IAEvE,oCAAoC;IACpC,gBAAuB,yBAAyB,gBAAuB;IAEvE;;OAEG;IACH,gBAAuB,sBAAsB,gBAAuB;IAEpE,mCAAmC;IACnC,gBAAuB,sBAAsB,uBAA8B;IAE3E,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,2CAA2C;IAC3C,gBAAuB,8BAA8B,+BAAsC;IAE3F,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,sCAAsC;IACtC,gBAAuB,yBAAyB,0BAAiC;IAEjF,gBAAgB;IAChB,gBAAuB,yBAAyB,kCAAyC;IAEzF,gBAAgB;IAChB,gBAAuB,iBAAiB,2BAAkC;IAE1E,gBAAgB;IAChB,gBAAuB,mBAAmB,2BAAkC;IAE5E,gBAAgB;IAChB,gBAAuB,wBAAwB,gBAAuB;IAEtE,gBAAgB;IAChB,gBAAuB,qCAAqC,mDAA0D;IAEtH,gBAAgB;IAChB,gBAAuB,8BAA8B,+BAAsC;IAE3F;;OAEG;IACH,gBAAuB,wBAAwB,yBAAgC;IAE/E;;OAEG;IACH,gBAAuB,yBAAyB,uCAA8C;IAE9F,gBAAgB;IAChB,gBAAuB,uBAAuB,wBAA+B;IAE7E;OACG;WACW,mBAAmB,IAAI,IAAI;IAKzC;OACG;WACW,wBAAwB,IAAI,IAAI;IAK9C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B,gBAAgB;WACF,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAczE;;OAEG;WACW,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;IAMjF;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC;;;;;OAKG;WACiB,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAyBrF;;OAEG;IACH,WAAkB,mBAAmB,IAAI,aAAa,GAAG,SAAS,CAEjE;IAED;;OAEG;IACH,WAAkB,kBAAkB,IAAI,MAAM,CAG7C;WAEa,aAAa,CAAC,YAAY,EAAE,MAAM;IAQhD;;;OAGG;WACiB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5E;;;OAGG;WACiB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAuCnG;OACG;WACiB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACH,WAAkB,YAAY,IAAI,MAAM,CAEvC;IAED,8BAA8B;WAChB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASnD,2BAA2B;WACb,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAK7C,iDAAiD;IACjD,WAAkB,qBAAqB,IAAI,eAAe,GAAG,SAAS,CAErE;IAED;;;OAGG;IACH,WAAkB,0BAA0B,IAAI,cAAc,GAAG,SAAS,CAGzE;IAED;;;OAGG;WACiB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlH;;OAEG;WACiB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpF;;OAEG;WACW,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,GAAG,IAAI;IAI7E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAQlC;OACG;WACW,oBAAoB,IAAI,IAAI;IAe1C,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAoBjC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAI9C;OACG;WACW,qBAAqB,IAAI,IAAI;IAI3C;;OAEG;IACH,WAAkB,qBAAqB,IAAI,mBAAmB,GAAG,SAAS,CAQzE;IAED;;OAEG;IACH,WAAkB,oBAAoB,IAAI,MAAM,CAE/C;IAED;;;OAGG;WACW,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIhG;;;;OAIG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAY3E;;;OAGG;WACW,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAUjE;;OAEG;WACiB,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IASxF,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAInC;OACG;WACiB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1D,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC;;OAEG;IACH,WAAkB,sBAAsB,IAAI,aAAa,GAAG,SAAS,CAMpE;IAED;;OAEG;IACH,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;CAEF"}
@@ -496,10 +496,14 @@ InternalFrontstageManager.onWidgetDefsUpdatedEvent = new UiEvent();
496
496
  InternalFrontstageManager.onFrontstageNineZoneStateChangedEvent = new UiEvent();
497
497
  /** @internal */
498
498
  InternalFrontstageManager.onFrontstageRestoreLayoutEvent = new UiEvent();
499
- /** Get Widget State Changed event.
499
+ /** Get panel state changed event.
500
500
  * @alpha
501
501
  */
502
502
  InternalFrontstageManager.onPanelStateChangedEvent = new PanelStateChangedEvent();
503
+ /** Get panel pinned changed event.
504
+ * @alpha
505
+ */
506
+ InternalFrontstageManager.onPanelPinnedChangedEvent = new UiEvent();
503
507
  /** @internal */
504
508
  InternalFrontstageManager.onPanelSizeChangedEvent = new PanelSizeChangedEvent();
505
509
  export { InternalFrontstageManager };