@itwin/appui-react 4.3.0-dev.1 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/lib/cjs/appui-react/UiFramework.js +7 -4
  3. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  4. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -1
  5. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  6. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  7. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  8. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  9. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  10. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  11. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  12. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  13. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  14. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  15. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  16. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  17. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  18. package/lib/cjs/appui-react/content/IModelViewport.js +6 -3
  19. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  20. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  21. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  22. package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
  23. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  24. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  25. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  26. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  27. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  28. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  29. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  30. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  31. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +7 -5
  33. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  34. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +3 -2
  35. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  36. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  37. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  38. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  39. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  40. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  41. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  42. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  43. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  44. package/lib/cjs/appui-react/messages/ActivityMessage.js +7 -5
  45. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  46. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  47. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  48. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +2 -1
  49. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  50. package/lib/cjs/appui-react/popup/PopupManager.js +2 -1
  51. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  52. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  53. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  54. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +7 -5
  55. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  56. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  57. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  58. package/lib/cjs/appui-react/statusbar/StatusBar.js +5 -3
  59. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  60. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  61. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  62. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +17 -10
  63. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  64. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  65. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  66. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
  67. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  68. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  69. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  70. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  71. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  72. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  73. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  74. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  75. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  76. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  77. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  78. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  79. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  80. package/lib/cjs/appui-react/widget-panels/Content.js +9 -8
  81. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  82. package/lib/cjs/appui-react/widget-panels/Frontstage.js +45 -43
  83. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  84. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  85. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  86. package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
  87. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  88. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +20 -14
  89. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  90. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  91. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  92. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  93. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  94. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
  95. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  96. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  97. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  98. package/lib/esm/appui-react/UiFramework.js +7 -4
  99. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  100. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
  101. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  102. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  103. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  104. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
  105. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  106. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  107. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  108. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  109. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  110. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  111. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  112. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  113. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  114. package/lib/esm/appui-react/content/IModelViewport.js +6 -3
  115. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  116. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  117. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  118. package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
  119. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  120. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  121. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  122. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  123. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  124. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  125. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  126. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  127. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  128. package/lib/esm/appui-react/frontstage/FrontstageDef.js +7 -5
  129. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  130. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -2
  131. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  132. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  133. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  134. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  135. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  136. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  137. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  138. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  139. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  140. package/lib/esm/appui-react/messages/ActivityMessage.js +7 -5
  141. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  142. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  143. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  144. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +2 -1
  145. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  146. package/lib/esm/appui-react/popup/PopupManager.js +2 -1
  147. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  148. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +1 -2
  149. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  150. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +7 -5
  151. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  152. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  153. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  154. package/lib/esm/appui-react/statusbar/StatusBar.js +5 -3
  155. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  156. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
  157. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  158. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +17 -10
  159. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  160. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  161. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  162. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +14 -12
  163. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  164. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  165. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  166. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  167. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  168. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  169. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  170. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
  171. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  172. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  173. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  174. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  175. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  176. package/lib/esm/appui-react/widget-panels/Content.js +9 -8
  177. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  178. package/lib/esm/appui-react/widget-panels/Frontstage.js +45 -43
  179. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  180. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  181. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  182. package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
  183. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  184. package/lib/esm/appui-react/widget-panels/ToolSettings.js +20 -14
  185. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  186. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  187. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  188. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
  189. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  190. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
  191. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  192. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  193. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  194. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\n// cSpell:ignore configurableui clientservices\n\nimport type { Store } from \"redux\";\nimport { Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport type { Localization } from \"@itwin/core-common\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { IModelApp, SnapMode } from \"@itwin/core-frontend\";\nimport { getClassName, UiAdmin, UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { LocalStateStorage, SettingsManager } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\nimport { BackstageManager } from \"./backstage/BackstageManager\";\nimport { InternalChildWindowManager } from \"./childwindow/InternalChildWindowManager\";\nimport { InternalConfigurableUiManager } from \"./configurableui/InternalConfigurableUiManager\";\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\nimport type { FrameworkState } from \"./redux/FrameworkState\";\nimport type {\n CursorMenuData,\n PresentationSelectionScope,\n} from \"./redux/SessionState\";\nimport { SessionStateActionId } from \"./redux/SessionState\";\nimport { StateManager } from \"./redux/StateManager\";\nimport type { HideIsolateEmphasizeActionHandler } from \"./selection/HideIsolateEmphasizeManager\";\nimport { HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\nimport {\n SYSTEM_PREFERRED_COLOR_THEME,\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"./theme/ThemeManager\";\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\nimport {\n InternalUiShowHideManager,\n UiShowHideSettingsProvider,\n} from \"./utils/InternalUiShowHideManager\";\nimport { WidgetManager } from \"./widgets/WidgetManager\";\nimport { InternalFrontstageManager } from \"./frontstage/InternalFrontstageManager\";\nimport { InternalContentViewManager } from \"./content/InternalContentViewManager\";\nimport { InternalModalDialogManager } from \"./dialog/InternalModalDialogManager\";\nimport { InternalModelessDialogManager } from \"./dialog/InternalModelessDialogManager\";\nimport { InternalKeyboardShortcutManager } from \"./keyboardshortcut/InternalKeyboardShortcut\";\nimport { InternalToolSettingsManager } from \"./toolsettings/InternalToolSettingsManager\";\nimport type { FrameworkBackstage } from \"./framework/FrameworkBackstage\";\nimport type { FrameworkChildWindows } from \"./framework/FrameworkChildWindows\";\nimport type { FrameworkControls } from \"./framework/FrameworkControls\";\nimport type { FrameworkFrontstages } from \"./framework/FrameworkFrontstages\";\nimport type { FrameworkToolSettings } from \"./framework/FrameworkToolSettings\";\nimport type { FrameworkContent } from \"./framework/FrameworkContent\";\nimport type { FrameworkDialogs } from \"./framework/FrameworkDialogs\";\nimport type { FrameworkKeyboardShortcuts } from \"./framework/FrameworkKeyboardShortcuts\";\nimport type { FrameworkVisibility } from \"./framework/FrameworkVisibility\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"./syncui/SyncUiEventDispatcher\";\n\n// cSpell:ignore Mobi\n\n/** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.\n * @public\n */\nexport interface UserSettingsProvider {\n /** Unique provider Id */\n providerId: string;\n /** Function to load settings from settings storage */\n loadUserSettings(storage: UiStateStorage): Promise<void>;\n}\n\n/** UiVisibility Event Args interface.\n * @public\n */\nexport interface UiVisibilityEventArgs {\n visible: boolean;\n}\n\n/** UiVisibility Event class.\n * @public\n */\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> {}\n\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\n * @internal\n */\nexport interface TrackingTime {\n startTime: Date;\n endTime: Date;\n}\n\n/**\n * Manages the Redux store, localization service and iModel, Project and Login services for the ui-framework package.\n * @public\n */\nexport class UiFramework {\n /**\n * Operation on the backstage component.\n * @public\n */\n public static get backstage(): FrameworkBackstage {\n // istanbul ignore next\n if (!UiFramework._backstageManager)\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._backstageManager;\n }\n\n /**\n * Manage access to the child windows.\n * @public\n */\n public static get childWindows(): FrameworkChildWindows {\n return this._childWindowManager;\n }\n\n /**\n * Manage registered controls\n * @public\n */\n public static get controls(): FrameworkControls {\n return InternalConfigurableUiManager;\n }\n\n /**\n * Manage access to frontstages and related helper methods.\n * @public\n */\n public static get frontstages(): FrameworkFrontstages {\n return InternalFrontstageManager;\n }\n\n /**\n * Manage access and behavior of the tool settings.\n * @public\n */\n public static get toolSettings(): FrameworkToolSettings {\n return InternalToolSettingsManager;\n }\n\n /**\n * Manage content presented by the frontstages.\n * @public\n */\n public static get content(): FrameworkContent {\n return InternalContentViewManager;\n }\n\n /**\n * Manage displayed dialogs.\n * @public\n */\n public static get dialogs(): FrameworkDialogs {\n return {\n modal: InternalModalDialogManager,\n modeless: InternalModelessDialogManager,\n };\n }\n\n /**\n * Manages global keyboard shortcuts\n * @public\n */\n public static get keyboardShortcuts(): FrameworkKeyboardShortcuts {\n return InternalKeyboardShortcutManager;\n }\n\n /**\n * Manages UI visibility (Show/Hide)\n * @public\n */\n public static get visibility(): FrameworkVisibility {\n return InternalUiShowHideManager;\n }\n\n private static _initialized = false;\n private static _store?: Store<any>;\n private static _complaint = \"UiFramework not initialized\";\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\n private static _backstageManager?: BackstageManager;\n private static _widgetManager?: WidgetManager;\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\n /** this provides a default state storage handler */\n private static _uiStateStorage: UiStateStorage = new LocalStateStorage();\n private static _settingsManager?: SettingsManager;\n private static _uiSettingsProviderRegistry: Map<\n string,\n UserSettingsProvider\n > = new Map<string, UserSettingsProvider>();\n private static _childWindowManager = new InternalChildWindowManager();\n public static useDefaultPopoutUrl = false;\n\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\n * @public\n */\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\n if (this._uiSettingsProviderRegistry.has(entry.providerId)) return false;\n\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\n return true;\n }\n\n /** Get Show Ui event.\n * @public\n */\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\n\n /**\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\n */\n public static async initialize(\n store: Store<any> | undefined,\n frameworkStateKey?: string\n ): Promise<void> {\n return this.initializeEx(store, frameworkStateKey);\n }\n\n /**\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\n *\n * @internal\n */\n public static async initializeEx(\n store: Store<any> | undefined,\n frameworkStateKey?: string\n ): Promise<void> {\n if (UiFramework._initialized) {\n Logger.logInfo(\n UiFramework.loggerCategory(UiFramework),\n `UiFramework.initialize already called`\n );\n return;\n }\n\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\n if (undefined === store && !StateManager.isInitialized(true))\n new StateManager();\n\n UiFramework._store = store;\n // ignore setting _frameworkStateKeyInStore if not using store\n if (frameworkStateKey && store)\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\n\n // set up namespace and register all tools from package\n const frameworkNamespace = IModelApp.localization?.registerNamespace(\n UiFramework.localizationNamespace\n );\n [\n restoreLayoutTools,\n keyinPaletteTools,\n openSettingTools,\n toolSettingTools,\n ].forEach((tool) =>\n IModelApp.tools.registerModule(tool, this.localizationNamespace)\n );\n\n UiFramework._backstageManager = new BackstageManager();\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\n UiFramework._widgetManager = new WidgetManager();\n\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\n await UiIModelComponents.initialize();\n\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.SettingsProvidersChanged\n );\n });\n\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\n UiAdmin.messagePresenter = IModelApp.notifications;\n\n UiFramework._initialized = true;\n\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\n UiShowHideSettingsProvider.initialize();\n\n InternalConfigurableUiManager.initialize();\n\n return frameworkNamespace;\n }\n\n /** Un-registers the UiFramework internationalization service namespace */\n public static terminate() {\n UiFramework._store = undefined;\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\n if (StateManager.isInitialized(true)) StateManager.clearStore();\n // istanbul ignore next\n IModelApp.localization?.unregisterNamespace(\n UiFramework.localizationNamespace\n );\n UiFramework._backstageManager = undefined;\n UiFramework._widgetManager = undefined;\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\n UiFramework._settingsManager = undefined;\n\n UiIModelComponents.terminate();\n InternalUiShowHideManager.terminate();\n UiFramework._initialized = false;\n }\n\n /** Determines if UiFramework has been initialized */\n public static get initialized(): boolean {\n return UiFramework._initialized;\n }\n\n /** Property that returns the SettingManager used by AppUI-based applications.\n * @public\n */\n public static get settingsManager() {\n if (undefined === UiFramework._settingsManager)\n UiFramework._settingsManager = new SettingsManager();\n return UiFramework._settingsManager;\n }\n\n /** @public */\n public static get frameworkStateKey(): string {\n return UiFramework._frameworkStateKeyInStore;\n }\n\n /** The UiFramework state maintained by Redux\n * @public\n */\n public static get frameworkState(): FrameworkState | undefined {\n try {\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\n } catch (_e) {\n return undefined;\n }\n }\n\n /** The Redux store */\n public static get store(): Store<any> {\n if (UiFramework._store) return UiFramework._store;\n\n // istanbul ignore else\n if (!StateManager.isInitialized(true))\n throw new UiError(\n UiFramework.loggerCategory(this),\n `Error trying to access redux store before either store or StateManager has been initialized.`\n );\n\n // istanbul ignore next\n return StateManager.store;\n }\n\n /** The internationalization service created by the app.\n * @internal\n */\n public static get localization(): Localization {\n // istanbul ignore next\n if (!IModelApp.localization)\n throw new UiError(\n UiFramework.loggerCategory(this),\n `IModelApp.localization has not been defined.`\n );\n return IModelApp.localization;\n }\n\n /** The internationalization service namespace. */\n public static get localizationNamespace(): string {\n return \"UiFramework\";\n }\n\n /** @public */\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\n // istanbul ignore next\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._hideIsolateEmphasizeActionHandler;\n }\n\n /** @public */\n public static setHideIsolateEmphasizeActionHandler(\n handler: HideIsolateEmphasizeActionHandler | undefined\n ) {\n // istanbul ignore else\n if (handler) UiFramework._hideIsolateEmphasizeActionHandler = handler;\n else\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager();\n }\n\n /** @alpha */\n public static get widgetManager(): WidgetManager {\n // istanbul ignore next\n if (!UiFramework._widgetManager)\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._widgetManager;\n }\n\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\n * @internal\n */\n public static translate(key: string | string[]): string {\n return IModelApp.localization.getLocalizedString(key, {\n ns: UiFramework.localizationNamespace,\n });\n }\n\n /** @internal */\n public static get packageName(): string {\n return \"appui-react\";\n }\n\n /** @internal */\n public static loggerCategory(obj: any): string {\n const className = getClassName(obj);\n const category =\n UiFramework.packageName + (className ? `.${className}` : \"\");\n return category;\n }\n\n public static dispatchActionToStore(\n type: string,\n payload: any,\n immediateSync = false\n ) {\n UiFramework.store.dispatch({ type, payload });\n if (immediateSync) SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\n else SyncUiEventDispatcher.dispatchSyncUiEvent(type);\n }\n\n public static setAccudrawSnapMode(snapMode: SnapMode) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetSnapMode,\n snapMode,\n true\n );\n }\n\n public static getAccudrawSnapMode(): SnapMode {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.snapMode\n : /* istanbul ignore next */ SnapMode.NearestKeypoint;\n }\n\n public static getActiveSelectionScope(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.activeSelectionScope\n : /* istanbul ignore next */ \"element\";\n }\n\n public static setActiveSelectionScope(selectionScopeId: string): void {\n // istanbul ignore else\n if (UiFramework.frameworkState) {\n const foundIndex =\n UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex(\n (selectionScope: PresentationSelectionScope) =>\n selectionScope.id === selectionScopeId\n );\n if (-1 !== foundIndex) {\n const scope =\n UiFramework.frameworkState.sessionState.availableSelectionScopes[\n foundIndex\n ];\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetSelectionScope,\n scope.id\n );\n }\n }\n }\n\n /** @public */\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n menuData\n );\n }\n\n /** @public */\n public static closeCursorMenu(): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n undefined\n );\n }\n\n /** @public */\n public static getCursorMenuData(): CursorMenuData | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.cursorMenuData\n : /* istanbul ignore next */ undefined;\n }\n\n public static getActiveIModelId(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelId\n : /* istanbul ignore next */ \"\";\n }\n\n public static setActiveIModelId(iModelId: string): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetActiveIModelId,\n iModelId\n );\n }\n\n public static setIModelConnection(\n iModelConnection: IModelConnection | undefined,\n immediateSync = false\n ) {\n const oldConnection = UiFramework.getIModelConnection();\n if (oldConnection !== iModelConnection) {\n if (oldConnection?.iModelId)\n InternalFrontstageManager.clearFrontstageDefsForIModelId(\n oldConnection.iModelId\n );\n oldConnection &&\n undefined === iModelConnection &&\n SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\n iModelConnection &&\n SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetIModelConnection,\n iModelConnection,\n immediateSync\n );\n }\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\n }\n\n public static getIModelConnection(): IModelConnection | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelConnection\n : /* istanbul ignore next */ undefined;\n }\n\n /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders\n * @public\n */\n public static async initializeStateFromUserSettingsProviders(\n immediateSync = false\n ) {\n // let any registered providers to load values from the new storage location\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\n for await (const key of providerKeys) {\n await this._uiSettingsProviderRegistry\n .get(key)!\n .loadUserSettings(UiFramework._uiStateStorage);\n }\n\n // istanbul ignore next\n if (immediateSync)\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n else\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n }\n\n /** @public */\n public static async setUiStateStorage(\n storage: UiStateStorage,\n immediateSync = false\n ) {\n if (UiFramework._uiStateStorage === storage) return;\n\n UiFramework._uiStateStorage = storage;\n await this.initializeStateFromUserSettingsProviders(immediateSync);\n }\n\n /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.\n * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,\n * which are now handled with user preferences.\n * @public\n */\n public static getUiStateStorage(): UiStateStorage {\n return UiFramework._uiStateStorage;\n }\n\n public static setDefaultIModelViewportControlId(\n iModelViewportControlId: string,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId,\n immediateSync\n );\n }\n\n public static getDefaultIModelViewportControlId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewId(viewId: string, immediateSync = false) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewId,\n viewId,\n immediateSync\n );\n }\n\n public static getDefaultViewId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewState(\n viewState: ViewState,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewState,\n viewState,\n immediateSync\n );\n }\n public static getDefaultViewState(): ViewState | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewState\n : /* istanbul ignore next */ undefined;\n }\n\n /** @public */\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.availableSelectionScopes\n : /* istanbul ignore next */\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\n }\n\n public static getIsUiVisible() {\n return UiFramework.visibility.isUiVisible;\n }\n\n public static setIsUiVisible(visible: boolean) {\n if (UiFramework.visibility.isUiVisible !== visible) {\n UiFramework.visibility.isUiVisible = visible;\n UiFramework.onUiVisibilityChanged.emit({ visible });\n }\n }\n\n public static setColorTheme(theme: string) {\n if (UiFramework.getColorTheme() === theme) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetTheme,\n theme,\n true\n );\n }\n\n public static getColorTheme(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.theme\n : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\n }\n\n /** UiFramework.setToolbarOpacity() sets the non-hovered opacity to the value specified. Used by UI 2.0 and later.\n * @param opacity a value between 0 and 1. The default value is 0.5. IT IS NOT ADVISED TO USE A VALUE BELOW 0.2\n * @public\n */\n public static setToolbarOpacity(opacity: number) {\n if (UiFramework.getToolbarOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetToolbarOpacity,\n opacity,\n true\n );\n }\n\n /** UiFramework.getToolbarOpacity() returns a number between 0 and 1 that is the non-hovered opacity for toolbars.\n * @public\n */\n public static getToolbarOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.toolbarOpacity\n : /* istanbul ignore next */ TOOLBAR_OPACITY_DEFAULT;\n }\n\n public static setWidgetOpacity(opacity: number) {\n if (UiFramework.getWidgetOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetWidgetOpacity,\n opacity,\n true\n );\n }\n\n public static getWidgetOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.widgetOpacity\n : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\n }\n\n // eslint-disable-next-line @itwin/prefer-get\n public static isMobile() {\n return ProcessDetector.isMobileBrowser;\n }\n\n public static get showWidgetIcon(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.showWidgetIcon\n : /* istanbul ignore next */ false;\n }\n\n public static setShowWidgetIcon(value: boolean) {\n if (UiFramework.showWidgetIcon === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetShowWidgetIcon,\n value,\n true\n );\n }\n /** Animate Tool Settings on appear */\n public static get animateToolSettings(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.animateToolSettings\n : /* istanbul ignore next */ false;\n }\n public static setAnimateToolSettings(value: boolean) {\n if (UiFramework.animateToolSettings === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AnimateToolSettings,\n value,\n true\n );\n }\n\n /** Use Tool Name As Tool Settings Widget Tab Label */\n public static get useToolAsToolSettingsLabel(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .useToolAsToolSettingsLabel\n : /* istanbul ignore next */ false;\n }\n public static setUseToolAsToolSettingsLabel(value: boolean) {\n if (UiFramework.useToolAsToolSettingsLabel === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n value,\n true\n );\n }\n\n /** When `true`, panels will close as soon as the mouse leave the panel.\n * When `false` (default), panels will close on next click outside the panel.\n * @public */\n public static get autoCollapseUnpinnedPanels(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .autoCollapseUnpinnedPanels\n : /* istanbul ignore next */ false;\n }\n\n /** Method used to enable the automatic closing of an unpinned widget panel as soon as the\n * mouse leaves the widget panel. The default behavior is to require a mouse click outside\n * the panel before it is closed.\n * @public */\n\n public static setAutoCollapseUnpinnedPanels(value: boolean) {\n if (UiFramework.autoCollapseUnpinnedPanels === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n value,\n true\n );\n }\n\n public static get useDragInteraction(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.useDragInteraction\n : false;\n }\n\n public static setUseDragInteraction(useDragInteraction: boolean) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetDragInteraction,\n useDragInteraction,\n true\n );\n }\n\n /** Returns the variable controlling whether the overlay is displayed in a Viewport\n * @public\n */\n public static get viewOverlayDisplay() {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.viewOverlayDisplay\n : /* istanbul ignore next */ true;\n }\n /** Set the variable that controls display of the view overlay. Applies to all viewports in the app\n * @public\n */\n public static setViewOverlayDisplay(display: boolean) {\n if (UiFramework.viewOverlayDisplay === display) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetViewOverlayDisplay,\n display\n );\n }\n\n /** Determines whether a ContextMenu is open\n * @alpha\n * */\n public static get isContextMenuOpen(): boolean {\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\n return contextMenu !== null && contextMenu !== undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utilities\n */\n\n// cSpell:ignore configurableui clientservices\n\nimport type { Store } from \"redux\";\nimport { Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport type { Localization } from \"@itwin/core-common\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { IModelApp, SnapMode } from \"@itwin/core-frontend\";\nimport { getClassName, UiAdmin, UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { UiStateStorage } from \"@itwin/core-react\";\nimport { LocalStateStorage, SettingsManager } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\nimport { BackstageManager } from \"./backstage/BackstageManager\";\nimport { InternalChildWindowManager } from \"./childwindow/InternalChildWindowManager\";\nimport { InternalConfigurableUiManager } from \"./configurableui/InternalConfigurableUiManager\";\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\nimport type { FrameworkState } from \"./redux/FrameworkState\";\nimport type {\n CursorMenuData,\n PresentationSelectionScope,\n} from \"./redux/SessionState\";\nimport { SessionStateActionId } from \"./redux/SessionState\";\nimport { StateManager } from \"./redux/StateManager\";\nimport type { HideIsolateEmphasizeActionHandler } from \"./selection/HideIsolateEmphasizeManager\";\nimport { HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\nimport {\n SYSTEM_PREFERRED_COLOR_THEME,\n TOOLBAR_OPACITY_DEFAULT,\n WIDGET_OPACITY_DEFAULT,\n} from \"./theme/ThemeManager\";\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\nimport {\n InternalUiShowHideManager,\n UiShowHideSettingsProvider,\n} from \"./utils/InternalUiShowHideManager\";\nimport { WidgetManager } from \"./widgets/WidgetManager\";\nimport { InternalFrontstageManager } from \"./frontstage/InternalFrontstageManager\";\nimport { InternalContentViewManager } from \"./content/InternalContentViewManager\";\nimport { InternalModalDialogManager } from \"./dialog/InternalModalDialogManager\";\nimport { InternalModelessDialogManager } from \"./dialog/InternalModelessDialogManager\";\nimport { InternalKeyboardShortcutManager } from \"./keyboardshortcut/InternalKeyboardShortcut\";\nimport { InternalToolSettingsManager } from \"./toolsettings/InternalToolSettingsManager\";\nimport type { FrameworkBackstage } from \"./framework/FrameworkBackstage\";\nimport type { FrameworkChildWindows } from \"./framework/FrameworkChildWindows\";\nimport type { FrameworkControls } from \"./framework/FrameworkControls\";\nimport type { FrameworkFrontstages } from \"./framework/FrameworkFrontstages\";\nimport type { FrameworkToolSettings } from \"./framework/FrameworkToolSettings\";\nimport type { FrameworkContent } from \"./framework/FrameworkContent\";\nimport type { FrameworkDialogs } from \"./framework/FrameworkDialogs\";\nimport type { FrameworkKeyboardShortcuts } from \"./framework/FrameworkKeyboardShortcuts\";\nimport type { FrameworkVisibility } from \"./framework/FrameworkVisibility\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"./syncui/SyncUiEventDispatcher\";\n\n// cSpell:ignore Mobi\n\n/** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.\n * @public\n */\nexport interface UserSettingsProvider {\n /** Unique provider Id */\n providerId: string;\n /** Function to load settings from settings storage */\n loadUserSettings(storage: UiStateStorage): Promise<void>;\n}\n\n/** UiVisibility Event Args interface.\n * @public\n */\nexport interface UiVisibilityEventArgs {\n visible: boolean;\n}\n\n/** UiVisibility Event class.\n * @public\n */\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> {}\n\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\n * @internal\n */\nexport interface TrackingTime {\n startTime: Date;\n endTime: Date;\n}\n\n/**\n * Manages the Redux store, localization service and iModel, Project and Login services for the ui-framework package.\n * @public\n */\nexport class UiFramework {\n /**\n * Operation on the backstage component.\n * @public\n */\n public static get backstage(): FrameworkBackstage {\n // istanbul ignore next\n if (!UiFramework._backstageManager)\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._backstageManager;\n }\n\n /**\n * Manage access to the child windows.\n * @public\n */\n public static get childWindows(): FrameworkChildWindows {\n return this._childWindowManager;\n }\n\n /**\n * Manage registered controls\n * @public\n */\n public static get controls(): FrameworkControls {\n return InternalConfigurableUiManager;\n }\n\n /**\n * Manage access to frontstages and related helper methods.\n * @public\n */\n public static get frontstages(): FrameworkFrontstages {\n return InternalFrontstageManager;\n }\n\n /**\n * Manage access and behavior of the tool settings.\n * @public\n */\n public static get toolSettings(): FrameworkToolSettings {\n return InternalToolSettingsManager;\n }\n\n /**\n * Manage content presented by the frontstages.\n * @public\n */\n public static get content(): FrameworkContent {\n return InternalContentViewManager;\n }\n\n /**\n * Manage displayed dialogs.\n * @public\n */\n public static get dialogs(): FrameworkDialogs {\n return {\n modal: InternalModalDialogManager,\n modeless: InternalModelessDialogManager,\n };\n }\n\n /**\n * Manages global keyboard shortcuts\n * @public\n */\n public static get keyboardShortcuts(): FrameworkKeyboardShortcuts {\n return InternalKeyboardShortcutManager;\n }\n\n /**\n * Manages UI visibility (Show/Hide)\n * @public\n */\n public static get visibility(): FrameworkVisibility {\n return InternalUiShowHideManager;\n }\n\n private static _initialized = false;\n private static _store?: Store<any>;\n private static _complaint = \"UiFramework not initialized\";\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\n private static _backstageManager?: BackstageManager;\n private static _widgetManager?: WidgetManager;\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\n /** this provides a default state storage handler */\n private static _uiStateStorage: UiStateStorage = new LocalStateStorage();\n private static _settingsManager?: SettingsManager;\n private static _uiSettingsProviderRegistry: Map<\n string,\n UserSettingsProvider\n > = new Map<string, UserSettingsProvider>();\n private static _childWindowManager = new InternalChildWindowManager();\n public static useDefaultPopoutUrl = false;\n\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\n * @public\n */\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\n if (this._uiSettingsProviderRegistry.has(entry.providerId)) return false;\n\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\n return true;\n }\n\n /** Get Show Ui event.\n * @public\n */\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\n\n /**\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\n */\n public static async initialize(\n store: Store<any> | undefined,\n frameworkStateKey?: string\n ): Promise<void> {\n return this.initializeEx(store, frameworkStateKey);\n }\n\n /**\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\n *\n * @internal\n */\n public static async initializeEx(\n store: Store<any> | undefined,\n frameworkStateKey?: string\n ): Promise<void> {\n if (UiFramework._initialized) {\n Logger.logInfo(\n UiFramework.loggerCategory(UiFramework),\n `UiFramework.initialize already called`\n );\n return;\n }\n\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\n if (undefined === store && !StateManager.isInitialized(true))\n new StateManager();\n\n UiFramework._store = store;\n // ignore setting _frameworkStateKeyInStore if not using store\n if (frameworkStateKey && store)\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\n\n // set up namespace and register all tools from package\n const frameworkNamespace = IModelApp.localization?.registerNamespace(\n UiFramework.localizationNamespace\n );\n [\n restoreLayoutTools,\n keyinPaletteTools,\n openSettingTools,\n toolSettingTools,\n ].forEach((tool) =>\n IModelApp.tools.registerModule(tool, this.localizationNamespace)\n );\n\n UiFramework._backstageManager = new BackstageManager();\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\n UiFramework._widgetManager = new WidgetManager();\n\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\n await UiIModelComponents.initialize();\n\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.SettingsProvidersChanged\n );\n });\n\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\n UiAdmin.messagePresenter = IModelApp.notifications;\n\n UiFramework._initialized = true;\n\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\n UiShowHideSettingsProvider.initialize();\n\n InternalConfigurableUiManager.initialize();\n\n return frameworkNamespace;\n }\n\n /** Un-registers the UiFramework internationalization service namespace */\n public static terminate() {\n UiFramework._store = undefined;\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\n if (StateManager.isInitialized(true)) StateManager.clearStore();\n // istanbul ignore next\n IModelApp.localization?.unregisterNamespace(\n UiFramework.localizationNamespace\n );\n UiFramework._backstageManager = undefined;\n UiFramework._widgetManager = undefined;\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\n UiFramework._settingsManager = undefined;\n\n UiIModelComponents.terminate();\n InternalUiShowHideManager.terminate();\n UiFramework._initialized = false;\n }\n\n /** Determines if UiFramework has been initialized */\n public static get initialized(): boolean {\n return UiFramework._initialized;\n }\n\n /** Property that returns the SettingManager used by AppUI-based applications.\n * @public\n */\n public static get settingsManager() {\n if (undefined === UiFramework._settingsManager)\n UiFramework._settingsManager = new SettingsManager();\n return UiFramework._settingsManager;\n }\n\n /** @public */\n public static get frameworkStateKey(): string {\n return UiFramework._frameworkStateKeyInStore;\n }\n\n /** The UiFramework state maintained by Redux\n * @public\n */\n public static get frameworkState(): FrameworkState | undefined {\n try {\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\n } catch (_e) {\n return undefined;\n }\n }\n\n /** The Redux store */\n public static get store(): Store<any> {\n if (UiFramework._store) return UiFramework._store;\n\n // istanbul ignore else\n if (!StateManager.isInitialized(true))\n throw new UiError(\n UiFramework.loggerCategory(this),\n `Error trying to access redux store before either store or StateManager has been initialized.`\n );\n\n // istanbul ignore next\n return StateManager.store;\n }\n\n /** The internationalization service created by the app.\n * @internal\n */\n public static get localization(): Localization {\n // istanbul ignore next\n if (!IModelApp.localization)\n throw new UiError(\n UiFramework.loggerCategory(this),\n `IModelApp.localization has not been defined.`\n );\n return IModelApp.localization;\n }\n\n /** The internationalization service namespace. */\n public static get localizationNamespace(): string {\n return \"UiFramework\";\n }\n\n /** @public */\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\n // istanbul ignore next\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._hideIsolateEmphasizeActionHandler;\n }\n\n /** @public */\n public static setHideIsolateEmphasizeActionHandler(\n handler: HideIsolateEmphasizeActionHandler | undefined\n ) {\n // istanbul ignore else\n if (handler) UiFramework._hideIsolateEmphasizeActionHandler = handler;\n else\n UiFramework._hideIsolateEmphasizeActionHandler =\n new HideIsolateEmphasizeManager();\n }\n\n /** @alpha */\n public static get widgetManager(): WidgetManager {\n // istanbul ignore next\n if (!UiFramework._widgetManager)\n throw new UiError(\n UiFramework.loggerCategory(this),\n UiFramework._complaint\n );\n return UiFramework._widgetManager;\n }\n\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\n * @internal\n */\n public static translate(key: string | string[]): string {\n return IModelApp.localization.getLocalizedString(key, {\n ns: UiFramework.localizationNamespace,\n });\n }\n\n /** @internal */\n public static get packageName(): string {\n return \"appui-react\";\n }\n\n /** @internal */\n public static loggerCategory(obj: any): string {\n const className = getClassName(obj);\n const category =\n UiFramework.packageName + (className ? `.${className}` : \"\");\n return category;\n }\n\n public static dispatchActionToStore(\n type: string,\n payload: any,\n immediateSync = false\n ) {\n UiFramework.store.dispatch({ type, payload });\n if (immediateSync) SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\n else SyncUiEventDispatcher.dispatchSyncUiEvent(type);\n }\n\n public static setAccudrawSnapMode(snapMode: SnapMode) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetSnapMode,\n snapMode,\n true\n );\n }\n\n public static getAccudrawSnapMode(): SnapMode {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.snapMode\n : /* istanbul ignore next */ SnapMode.NearestKeypoint;\n }\n\n public static getActiveSelectionScope(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.activeSelectionScope\n : /* istanbul ignore next */ \"element\";\n }\n\n public static setActiveSelectionScope(selectionScopeId: string): void {\n // istanbul ignore else\n if (UiFramework.frameworkState) {\n const foundIndex =\n UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex(\n (selectionScope: PresentationSelectionScope) =>\n selectionScope.id === selectionScopeId\n );\n if (-1 !== foundIndex) {\n const scope =\n UiFramework.frameworkState.sessionState.availableSelectionScopes[\n foundIndex\n ];\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetSelectionScope,\n scope.id\n );\n }\n }\n }\n\n /** @public */\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n menuData\n );\n }\n\n /** @public */\n public static closeCursorMenu(): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.UpdateCursorMenu,\n undefined\n );\n }\n\n /** @public */\n public static getCursorMenuData(): CursorMenuData | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.cursorMenuData\n : /* istanbul ignore next */ undefined;\n }\n\n public static getActiveIModelId(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelId\n : /* istanbul ignore next */ \"\";\n }\n\n public static setActiveIModelId(iModelId: string): void {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetActiveIModelId,\n iModelId\n );\n }\n\n public static setIModelConnection(\n iModelConnection: IModelConnection | undefined,\n immediateSync = false\n ) {\n const oldConnection = UiFramework.getIModelConnection();\n if (oldConnection !== iModelConnection) {\n if (oldConnection?.iModelId)\n InternalFrontstageManager.clearFrontstageDefsForIModelId(\n oldConnection.iModelId\n );\n oldConnection &&\n undefined === iModelConnection &&\n SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\n iModelConnection &&\n SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetIModelConnection,\n iModelConnection,\n immediateSync\n );\n }\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\n }\n\n public static getIModelConnection(): IModelConnection | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.iModelConnection\n : /* istanbul ignore next */ undefined;\n }\n\n /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders\n * @public\n */\n public static async initializeStateFromUserSettingsProviders(\n immediateSync = false\n ) {\n // let any registered providers to load values from the new storage location\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\n for await (const key of providerKeys) {\n await this._uiSettingsProviderRegistry\n .get(key)!\n .loadUserSettings(UiFramework._uiStateStorage);\n }\n\n // istanbul ignore next\n if (immediateSync)\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n else\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n SyncUiEventId.UiStateStorageChanged\n );\n }\n\n /** @public */\n public static async setUiStateStorage(\n storage: UiStateStorage,\n immediateSync = false\n ) {\n if (UiFramework._uiStateStorage === storage) return;\n\n UiFramework._uiStateStorage = storage;\n await this.initializeStateFromUserSettingsProviders(immediateSync);\n }\n\n /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.\n * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,\n * which are now handled with user preferences.\n * @public\n */\n public static getUiStateStorage(): UiStateStorage {\n return UiFramework._uiStateStorage;\n }\n\n public static setDefaultIModelViewportControlId(\n iModelViewportControlId: string,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultIModelViewportControlId,\n iModelViewportControlId,\n immediateSync\n );\n }\n\n public static getDefaultIModelViewportControlId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewId(viewId: string, immediateSync = false) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewId,\n viewId,\n immediateSync\n );\n }\n\n public static getDefaultViewId(): string | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewId\n : /* istanbul ignore next */ undefined;\n }\n\n public static setDefaultViewState(\n viewState: ViewState,\n immediateSync = false\n ) {\n UiFramework.dispatchActionToStore(\n SessionStateActionId.SetDefaultViewState,\n viewState,\n immediateSync\n );\n }\n public static getDefaultViewState(): ViewState | undefined {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.defaultViewState\n : /* istanbul ignore next */ undefined;\n }\n\n /** @public */\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.sessionState.availableSelectionScopes\n : /* istanbul ignore next */\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\n }\n\n public static getIsUiVisible() {\n return UiFramework.visibility.isUiVisible;\n }\n\n public static setIsUiVisible(visible: boolean) {\n if (UiFramework.visibility.isUiVisible !== visible) {\n UiFramework.visibility.isUiVisible = visible;\n UiFramework.onUiVisibilityChanged.emit({ visible });\n }\n }\n\n public static setColorTheme(theme: string) {\n if (UiFramework.getColorTheme() === theme) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetTheme,\n theme,\n true\n );\n }\n\n public static getColorTheme(): string {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.theme\n : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\n }\n\n /** UiFramework.setToolbarOpacity() sets the non-hovered opacity to the value specified. Used by UI 2.0 and later.\n * @param opacity a value between 0 and 1. The default value is 0.5. IT IS NOT ADVISED TO USE A VALUE BELOW 0.2\n * @public\n */\n public static setToolbarOpacity(opacity: number) {\n if (UiFramework.getToolbarOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetToolbarOpacity,\n opacity,\n true\n );\n }\n\n /** UiFramework.getToolbarOpacity() returns a number between 0 and 1 that is the non-hovered opacity for toolbars.\n * @public\n */\n public static getToolbarOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.toolbarOpacity\n : /* istanbul ignore next */ TOOLBAR_OPACITY_DEFAULT;\n }\n\n public static setWidgetOpacity(opacity: number) {\n if (UiFramework.getWidgetOpacity() === opacity) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetWidgetOpacity,\n opacity,\n true\n );\n }\n\n public static getWidgetOpacity(): number {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.widgetOpacity\n : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\n }\n\n // eslint-disable-next-line @itwin/prefer-get\n public static isMobile() {\n return ProcessDetector.isMobileBrowser;\n }\n\n public static get showWidgetIcon(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.showWidgetIcon\n : /* istanbul ignore next */ false;\n }\n\n public static setShowWidgetIcon(value: boolean) {\n if (UiFramework.showWidgetIcon === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetShowWidgetIcon,\n value,\n true\n );\n }\n /** Animate Tool Settings on appear */\n public static get animateToolSettings(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.animateToolSettings\n : /* istanbul ignore next */ false;\n }\n public static setAnimateToolSettings(value: boolean) {\n if (UiFramework.animateToolSettings === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AnimateToolSettings,\n value,\n true\n );\n }\n\n /** Use Tool Name As Tool Settings Widget Tab Label */\n public static get useToolAsToolSettingsLabel(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .useToolAsToolSettingsLabel\n : /* istanbul ignore next */ false;\n }\n public static setUseToolAsToolSettingsLabel(value: boolean) {\n if (UiFramework.useToolAsToolSettingsLabel === value) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n value,\n true\n );\n }\n\n /** When `true`, panels will close as soon as the mouse leave the panel.\n * When `false` (default), panels will close on next click outside the panel.\n * @public */\n public static get autoCollapseUnpinnedPanels(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState\n .autoCollapseUnpinnedPanels\n : /* istanbul ignore next */ false;\n }\n\n /** Method used to enable the automatic closing of an unpinned widget panel as soon as the\n * mouse leaves the widget panel. The default behavior is to require a mouse click outside\n * the panel before it is closed.\n * @public */\n\n public static setAutoCollapseUnpinnedPanels(value: boolean) {\n if (UiFramework.autoCollapseUnpinnedPanels === value) return;\n\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n value,\n true\n );\n }\n\n public static get useDragInteraction(): boolean {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.useDragInteraction\n : false;\n }\n\n public static setUseDragInteraction(useDragInteraction: boolean) {\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetDragInteraction,\n useDragInteraction,\n true\n );\n }\n\n /** Returns the variable controlling whether the overlay is displayed in a Viewport\n * @public\n */\n public static get viewOverlayDisplay() {\n return UiFramework.frameworkState\n ? UiFramework.frameworkState.configurableUiState.viewOverlayDisplay\n : /* istanbul ignore next */ true;\n }\n /** Set the variable that controls display of the view overlay. Applies to all viewports in the app\n * @public\n */\n public static setViewOverlayDisplay(display: boolean) {\n if (UiFramework.viewOverlayDisplay === display) return;\n UiFramework.dispatchActionToStore(\n ConfigurableUiActionId.SetViewOverlayDisplay,\n display\n );\n }\n\n /** Determines whether a ContextMenu is open\n * @alpha\n * */\n public static get isContextMenuOpen(): boolean {\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\n return contextMenu !== null && contextMenu !== undefined;\n }\n}\n"]}
@@ -26,6 +26,7 @@ export function BackstageComposerActionItem({ item, }) {
26
26
  }
27
27
  /** @internal */
28
28
  export function BackstageComposerStageLauncher({ item, }) {
29
+ var _a;
29
30
  const manager = useBackstageManager();
30
31
  const handleClick = React.useCallback(() => {
31
32
  manager.close();
@@ -34,7 +35,7 @@ export function BackstageComposerStageLauncher({ item, }) {
34
35
  void UiFramework.frontstages.setActiveFrontstage(item.stageId);
35
36
  }, [manager, item.stageId]);
36
37
  const activeFrontstageId = useActiveFrontstageId();
37
- const isActive = ConditionalBooleanValue.getValue(item.isActive ?? item.stageId === activeFrontstageId);
38
+ const isActive = ConditionalBooleanValue.getValue((_a = item.isActive) !== null && _a !== void 0 ? _a : item.stageId === activeFrontstageId);
38
39
  return (React.createElement(NZ_BackstageItem, { itemId: item.id, providerId: isProviderItem(item) ? item.providerId : undefined, itemPriority: item.itemPriority, groupPriority: item.groupPriority, icon: React.createElement(Icon, { iconSpec: item.icon }), isActive: isActive, isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), onClick: handleClick, subtitle: ConditionalStringValue.getValue(item.subtitle), badge: BadgeUtilities.getComponentForBadgeType(item.badge) }, ConditionalStringValue.getValue(item.label)));
39
40
  }
40
41
  /** Item of [[BackstageComposer]].
@@ -1 +1 @@
1
- {"version":3,"file":"BackstageComposerItem.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposerItem.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { BadgeUtilities, Icon } from \"@itwin/core-react\";\nimport { BackstageItem as NZ_BackstageItem } from \"@itwin/appui-layout-react\";\nimport { useBackstageManager } from \"./BackstageManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveFrontstageId } from \"../frontstage/FrontstageDef\";\nimport type {\n BackstageActionItem,\n BackstageItem,\n BackstageStageLauncher,\n} from \"./BackstageItem\";\nimport { isBackstageStageLauncher } from \"./BackstageItem\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\n\n/** @internal */\nexport interface BackstageComposerActionItemProps {\n readonly item: BackstageActionItem;\n}\n\n/** @internal */\nexport function BackstageComposerActionItem({\n item,\n}: BackstageComposerActionItemProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n item.execute();\n }, [manager, item]);\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={ConditionalBooleanValue.getValue(item.isActive)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** @internal */\nexport interface BackstageComposerStageLauncherProps {\n readonly item: BackstageStageLauncher;\n}\n\n/** @internal */\nexport function BackstageComposerStageLauncher({\n item,\n}: BackstageComposerStageLauncherProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n if (!UiFramework.frontstages.hasFrontstage(item.stageId))\n return Logger.logError(\n \"BackstageComposerStageLauncher\",\n `Frontstage with id '${item.stageId}' not found`\n );\n void UiFramework.frontstages.setActiveFrontstage(item.stageId);\n }, [manager, item.stageId]);\n const activeFrontstageId = useActiveFrontstageId();\n const isActive = ConditionalBooleanValue.getValue(\n item.isActive ?? item.stageId === activeFrontstageId\n );\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={isActive}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** Props of [[BackstageComposerItem]] component.\n * @internal\n */\nexport interface BackstageComposerItemProps {\n /** Backstage item to render */\n readonly item: BackstageItem;\n}\n\n/** Item of [[BackstageComposer]].\n * @internal\n */\nexport function BackstageComposerItem({ item }: BackstageComposerItemProps) {\n if (isBackstageStageLauncher(item)) {\n return <BackstageComposerStageLauncher item={item} />;\n }\n return <BackstageComposerActionItem item={item} />;\n}\n"]}
1
+ {"version":3,"file":"BackstageComposerItem.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposerItem.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport * as React from \"react\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { BadgeUtilities, Icon } from \"@itwin/core-react\";\nimport { BackstageItem as NZ_BackstageItem } from \"@itwin/appui-layout-react\";\nimport { useBackstageManager } from \"./BackstageManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport { useActiveFrontstageId } from \"../frontstage/FrontstageDef\";\nimport type {\n BackstageActionItem,\n BackstageItem,\n BackstageStageLauncher,\n} from \"./BackstageItem\";\nimport { isBackstageStageLauncher } from \"./BackstageItem\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem\";\n\n/** @internal */\nexport interface BackstageComposerActionItemProps {\n readonly item: BackstageActionItem;\n}\n\n/** @internal */\nexport function BackstageComposerActionItem({\n item,\n}: BackstageComposerActionItemProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n item.execute();\n }, [manager, item]);\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={ConditionalBooleanValue.getValue(item.isActive)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** @internal */\nexport interface BackstageComposerStageLauncherProps {\n readonly item: BackstageStageLauncher;\n}\n\n/** @internal */\nexport function BackstageComposerStageLauncher({\n item,\n}: BackstageComposerStageLauncherProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n if (!UiFramework.frontstages.hasFrontstage(item.stageId))\n return Logger.logError(\n \"BackstageComposerStageLauncher\",\n `Frontstage with id '${item.stageId}' not found`\n );\n void UiFramework.frontstages.setActiveFrontstage(item.stageId);\n }, [manager, item.stageId]);\n const activeFrontstageId = useActiveFrontstageId();\n const isActive = ConditionalBooleanValue.getValue(\n item.isActive ?? item.stageId === activeFrontstageId\n );\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n icon={<Icon iconSpec={item.icon} />}\n isActive={isActive}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n badge={BadgeUtilities.getComponentForBadgeType(item.badge)}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** Props of [[BackstageComposerItem]] component.\n * @internal\n */\nexport interface BackstageComposerItemProps {\n /** Backstage item to render */\n readonly item: BackstageItem;\n}\n\n/** Item of [[BackstageComposer]].\n * @internal\n */\nexport function BackstageComposerItem({ item }: BackstageComposerItemProps) {\n if (isBackstageStageLauncher(item)) {\n return <BackstageComposerStageLauncher item={item} />;\n }\n return <BackstageComposerActionItem item={item} />;\n}\n"]}
@@ -119,7 +119,7 @@ export class InternalChildWindowManager {
119
119
  if (!contentWindow)
120
120
  return undefined;
121
121
  const childWindow = this.openChildWindows.find((openWindow) => openWindow.window === contentWindow);
122
- return childWindow?.childWindowId;
122
+ return childWindow === null || childWindow === void 0 ? void 0 : childWindow.childWindowId;
123
123
  }
124
124
  // istanbul ignore next: Used in `open` which is not tested.
125
125
  renderChildWindowContents(childWindow, childWindowId, content, title) {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAO7C,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;QAqBV,CAAC;AAST;;;;KAIK;AACL,MAAM,OAAO,0BAA0B;IAAvC;QACU,sBAAiB,GAA0B,EAAE,CAAC;QAiItD;;;;;WAKG;QACI,UAAK,GAAG,CAAC,aAAqB,EAAE,kBAAkB,GAAG,IAAI,EAAE,EAAE;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;YACF,IAAI,CAAC,CAAC,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,kBAAkB,EAAE;gBACtB,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;aAC5B;iBAAM;gBACL,wDAAwD;gBACxD,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,aAAa,IAAI,aAAa,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;aACzE;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IAuFJ,CAAC;IA1OC,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACH,kGAAkG;IAC3F,aAAa,CAAC,YAAwB;QAC3C,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,4DAA4D;IACpD,MAAM,CACZ,OAA4C,EAC5C,SAAqC;QAErC,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC7C;aAAM;YACL,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SACrC;IACH,CAAC;IAED;;;;OAIG;IACI,IAAI,CACT,aAAiC;QAEjC,IAAI,SAAS,KAAK,aAAa;YAAE,OAAO,SAAS,CAAC;QAElD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC/B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAwC;QACpD,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC5C,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CACpD,CAAC;QACF,OAAO,WAAW,EAAE,aAAa,CAAC;IACpC,CAAC;IAED,4DAA4D;IACpD,yBAAyB,CAC/B,WAAmB,EACnB,aAAqB,EACrB,OAAwB,EACxB,KAAa;QAEb,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,kBAAkB,EAAE;YACtB,oEAAoE;YACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC1B,aAAa;gBACb,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YAEH,UAAU,CAAC,GAAG,EAAE;gBACd,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACjC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,MAAM,CACT,oBAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,CAAC,KAAK;wBAChC,oBAAC,qBAAqB;4BACpB,oBAAC,YAAY;gCACX,6BAAK,SAAS,EAAC,kCAAkC;oCAC/C,oBAAC,aAAa,OAAG;oCACjB,oBAAC,mBAAmB,OAAG;oCACvB,oBAAC,sBAAsB,OAAG;oCAC1B,oBAAC,eAAe,OAAG;oCACnB,6BAAK,SAAS,EAAC,8CAA8C,IAC1D,OAAO,CACJ,CACF,CACO,CACO,CACf,EACX,kBAAkB,CACnB,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;gBAClE,IAAI,CAAC,aAAa;oBAAE,OAAO;gBAC3B,aAAa,CAAC,8BAA8B,CAC1C,aAAa,EACb,WAAW,CACZ,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,gGAAgG;IACzF,QAAQ;QACb,uBAAuB;QACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,CAChD,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAyBD,4DAA4D;IACpD,mBAAmB,CACzB,QAAkC;QAElC,MAAM,WAAW,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE;YAC7C,4GAA4G;YAC5G,WAAW,CAAC,IAAI;gBACd,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9D,WAAW,CAAC,GAAG;gBACb,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;SACjE;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACH,qFAAqF;IAC9E,IAAI,CACT,aAAqB,EACrB,KAAa,EACb,OAAwB,EACxB,QAAkC,EAClC,mBAA6B;QAE7B,gEAAgE;QAChE,IACE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC7B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,KAAK,aAAa,CAC3D,IAAI,CAAC,EACN;YACA,OAAO,KAAK,CAAC;SACd;QAED,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAC7B,GAAG,EACH,EAAE,EACF,SAAS,QAAQ,CAAC,KAAK,WAAW,QAAQ,CAAC,MAAM,SAAS,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,GAAG,+DAA+D,CAC3J,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE;YACpB,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;SACH;aAAM;YACL,WAAW,CAAC,gBAAgB,CAC1B,MAAM,EACN,GAAG,EAAE;gBACH,IAAI,CAAC,yBAAyB,CAC5B,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,CACN,CAAC;YACJ,CAAC,EACD,KAAK,CACN,CAAC;SACH;QAED,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR,GAAG,EAAE;YACH,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;YAClE,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;aACjC;QACH,CAAC,EACD,KAAK,CACN,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport \"./InternalChildWindowManager.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { copyStyles } from \"./CopyStyles\";\nimport { Provider } from \"react-redux\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body class=\"iui-root\">\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React18, the `createRoot` function must be provided in order to render Popout content with React18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to react 18 is complete.\n */\n // istanbul ignore next: Result of this assignment is only visible in `open`, which is not tested.\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n // istanbul ignore next: Used in `open` which is not tested.\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n if (this._createRoot) {\n this._createRoot(container).render(element);\n } else {\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n // istanbul ignore next: Used in `open` which is not tested.\n private renderChildWindowContents(\n childWindow: Window,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(\n <Provider store={UiFramework.store}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </Provider>,\n reactConnectionDiv\n );\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n this.close(childWindowId, false);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n // istanbul ignore next\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true)\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (-1 === windowIndex) return false;\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef && frontStageDef.dockPopoutWidgetContainer(childWindowId);\n }\n return true;\n };\n\n // istanbul ignore next: Used in `open` which is not tested.\n private adjustWidowLocation(\n location: ChildWindowLocationProps\n ): ChildWindowLocationProps {\n const outLocation = { ...location };\n if (0 === location.top && 0 === location.left) {\n // If no location is provided, prepare position of the new window to be centered against the current window.\n outLocation.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n outLocation.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n return outLocation;\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n // istanbul ignore next: Would require mocking window.open to return a window object.\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n // first check to see if content is already open in child window\n if (\n this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n ) >= 0\n ) {\n return false;\n }\n\n location = this.adjustWidowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n if (0 === url.length) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"load\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/InternalChildWindowManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module ChildWindowManager\n */\n\nimport \"./InternalChildWindowManager.scss\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { copyStyles } from \"./CopyStyles\";\nimport { Provider } from \"react-redux\";\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\nimport { PopupRenderer } from \"../popup/PopupManager\";\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\nimport { ThemeManager } from \"../theme/ThemeManager\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ChildWindowLocationProps,\n FrameworkChildWindows,\n OpenChildWindowInfo,\n} from \"../framework/FrameworkChildWindows\";\n\nconst childHtml = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <style>\n html,\n body {\n height: 100%;\n width: 100%;\n margin: 0;\n overflow: hidden;\n }\n #root {\n height: 100%;\n }\n </style>\n</head>\n<body class=\"iui-root\">\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div id=\"root\"></div>\n</body>\n</html>`;\n\n/**\n * Simplification of non exported CreateRoot parameter, only to be used\n * in InternalChildWindowManager and ChildWindowManager\n * @internal\n */\nexport type CreateRoot = Parameters<FrameworkChildWindows[\"useCreateRoot\"]>[0];\n\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\n * @internal\n * */\nexport class InternalChildWindowManager implements FrameworkChildWindows {\n private _openChildWindows: OpenChildWindowInfo[] = [];\n private _createRoot?: CreateRoot;\n\n public get openChildWindows() {\n return this._openChildWindows;\n }\n\n /**\n * When using React18, the `createRoot` function must be provided in order to render Popout content with React18.\n * Do not call if using React 17 or before.\n *\n * Note: The type of the function is intentionally simplified here.\n *\n * @param createRootFn Function imported from `import { createRoot } from \"react-dom/client\";`\n * @beta Will be removed once the transition to react 18 is complete.\n */\n // istanbul ignore next: Result of this assignment is only visible in `open`, which is not tested.\n public useCreateRoot(createRootFn: CreateRoot): void {\n this._createRoot = createRootFn;\n }\n\n /**\n * Abstracts ReactDOM.render to use either the _createRoot method or the default ReactDOM.render.\n * @param element Element to render.\n * @param container Container to render to.\n */\n // istanbul ignore next: Used in `open` which is not tested.\n private render(\n element: React.FunctionComponentElement<any>,\n container: Element | DocumentFragment\n ) {\n if (this._createRoot) {\n this._createRoot(container).render(element);\n } else {\n ReactDOM.render(element, container);\n }\n }\n\n /**\n * Returns the OpenChildWindowInfo for the related id.\n * @param childWindowId Id of the window to retrieve.\n * @returns undefined if not found.\n */\n public find(\n childWindowId: string | undefined\n ): OpenChildWindowInfo | undefined {\n if (undefined === childWindowId) return undefined;\n\n return this.openChildWindows.find(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n }\n\n /**\n * Return the childWindowId of the provided window.\n * @param contentWindow Window element to identify\n * @returns undefined if not found\n */\n public findId(contentWindow: Window | undefined | null): string | undefined {\n if (!contentWindow) return undefined;\n\n const childWindow = this.openChildWindows.find(\n (openWindow) => openWindow.window === contentWindow\n );\n return childWindow?.childWindowId;\n }\n\n // istanbul ignore next: Used in `open` which is not tested.\n private renderChildWindowContents(\n childWindow: Window,\n childWindowId: string,\n content: React.ReactNode,\n title: string\n ) {\n childWindow.document.title = title;\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\n if (reactConnectionDiv) {\n // set openChildWindows now so components can use it when they mount\n this._openChildWindows.push({\n childWindowId,\n window: childWindow,\n parentWindow: window,\n });\n\n setTimeout(() => {\n copyStyles(childWindow.document);\n setTimeout(() => {\n this.render(\n <Provider store={UiFramework.store}>\n <UiStateStorageHandler>\n <ThemeManager>\n <div className=\"uifw-child-window-container-host\">\n <PopupRenderer />\n <ModalDialogRenderer />\n <ModelessDialogRenderer />\n <CursorPopupMenu />\n <div className=\"uifw-child-window-container nz-widget-widget\">\n {content}\n </div>\n </div>\n </ThemeManager>\n </UiStateStorageHandler>\n </Provider>,\n reactConnectionDiv\n );\n });\n });\n\n childWindow.addEventListener(\"pagehide\", () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontStageDef) return;\n frontStageDef.saveChildWindowSizeAndPosition(\n childWindowId,\n childWindow\n );\n this.close(childWindowId, false);\n });\n }\n }\n\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\n public closeAll() {\n // istanbul ignore next\n this.openChildWindows.forEach((openChildWindow) =>\n openChildWindow.window.close()\n );\n this._openChildWindows = [];\n }\n\n /**\n * Close a specific child window.\n * @param childWindowId Id of the window to close\n * @param processWindowClose should the `close` method be called on the closing window. (defaults to true)\n * @returns false if the window could not be found.\n */\n public close = (childWindowId: string, processWindowClose = true) => {\n const windowIndex = this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n );\n if (-1 === windowIndex) return false;\n const childWindow = this.openChildWindows[windowIndex];\n this.openChildWindows.splice(windowIndex, 1);\n if (processWindowClose) {\n childWindow.window.close();\n } else {\n // call the following to convert popout to docked widget\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n frontStageDef && frontStageDef.dockPopoutWidgetContainer(childWindowId);\n }\n return true;\n };\n\n // istanbul ignore next: Used in `open` which is not tested.\n private adjustWidowLocation(\n location: ChildWindowLocationProps\n ): ChildWindowLocationProps {\n const outLocation = { ...location };\n if (0 === location.top && 0 === location.left) {\n // If no location is provided, prepare position of the new window to be centered against the current window.\n outLocation.left =\n window.outerWidth / 2 + window.screenX - location.width / 2;\n outLocation.top =\n window.outerHeight / 2 + window.screenY - location.height / 2;\n }\n return outLocation;\n }\n\n /**\n * Open a new child window.\n * @param childWindowId Id to assign to the newly created window.\n * @param title Title to display on the window.\n * @param content ReactNode to be rendered in the window.\n * @param location Position and size information\n * @param useDefaultPopoutUrl use \"/iTwinPopup.html\" as the window Url, \"\" otherwise.\n * @returns true if the window is opened successfully.\n */\n // istanbul ignore next: Would require mocking window.open to return a window object.\n public open(\n childWindowId: string,\n title: string,\n content: React.ReactNode,\n location: ChildWindowLocationProps,\n useDefaultPopoutUrl?: boolean\n ) {\n // first check to see if content is already open in child window\n if (\n this.openChildWindows.findIndex(\n (openWindow) => openWindow.childWindowId === childWindowId\n ) >= 0\n ) {\n return false;\n }\n\n location = this.adjustWidowLocation(location);\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\n const childWindow = window.open(\n url,\n \"\",\n `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`\n );\n if (!childWindow) return false;\n if (0 === url.length) {\n childWindow.document.write(childHtml);\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n } else {\n childWindow.addEventListener(\n \"load\",\n () => {\n this.renderChildWindowContents(\n childWindow,\n childWindowId,\n content,\n title\n );\n },\n false\n );\n }\n\n window.addEventListener(\n \"unload\",\n () => {\n const frontStageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontStageDef) {\n this.close(childWindowId, true);\n }\n },\n false\n );\n\n return true;\n }\n}\n"]}
@@ -113,7 +113,7 @@ class InternalConfigurableUiManager {
113
113
  * @returns the created control
114
114
  */
115
115
  static create(classId, uniqueId, options, controlId) {
116
- const info = new ConfigurableCreateInfo(classId, uniqueId, controlId ?? uniqueId);
116
+ const info = new ConfigurableCreateInfo(classId, uniqueId, controlId !== null && controlId !== void 0 ? controlId : uniqueId);
117
117
  const constructor = this._registeredControls.get(info.classId);
118
118
  if (!constructor) {
119
119
  throw new UiError(UiFramework.loggerCategory(this), `createControl: classId '${classId}' not registered`);
@@ -1 +1 @@
1
- {"version":3,"file":"InternalConfigurableUiManager.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/InternalConfigurableUiManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ConfigurableUi\n */\n\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { CubeNavigationAidControl } from \"../navigationaids/CubeNavigationAidControl\";\nimport { DrawingNavigationAidControl } from \"../navigationaids/DrawingNavigationAidControl\";\nimport { SheetNavigationAidControl } from \"../navigationaids/SheetNavigationAid\";\nimport { StandardRotationNavigationAidControl } from \"../navigationaids/StandardRotationNavigationAid\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ConfigurableUiControlConstructor,\n ConfigurableUiElement,\n} from \"./ConfigurableUiControl\";\nimport { ConfigurableCreateInfo } from \"./ConfigurableUiControl\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { PopupManager } from \"../popup/PopupManager\";\nimport { ActivityTracker } from \"./ActivityTracker\";\nimport { BeUiEvent } from \"@itwin/core-bentley\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { InternalToolSettingsManager } from \"../toolsettings/InternalToolSettingsManager\";\nimport { InternalModelessDialogManager } from \"../dialog/InternalModelessDialogManager\";\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\nimport { InternalKeyboardShortcutManager } from \"../keyboardshortcut/InternalKeyboardShortcut\";\nimport { InternalModalDialogManager } from \"../dialog/InternalModalDialogManager\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Ui Activity Event Args interface.\n * @internal\n */\nexport interface UiActivityEventArgs {\n event: Event;\n}\n\n/** Ui Activity Event class.\n * @internal\n */\nexport class UiActivityEvent extends BeUiEvent<UiActivityEventArgs> {}\n\n/** Ui Interval Event Args interface\n * @internal\n */\nexport interface UiIntervalEventArgs {\n idleTimeout?: number;\n}\n\n/** Ui Interval Event class.\n * @internal\n */\nexport class UiIntervalEvent extends BeUiEvent<UiIntervalEventArgs> {}\n\n/** Configurable Ui Manager maintains controls, Frontstages, Content Groups, Content Layouts, Tasks and Workflows.\n * @internal\n */\nexport class InternalConfigurableUiManager {\n private static _registeredControls = new Map<\n string,\n ConfigurableUiControlConstructor\n >();\n private static _initialized = false;\n\n /** @internal */\n public static readonly activityTracker = new ActivityTracker();\n /** @internal */\n public static readonly onUiActivityEvent = new UiActivityEvent();\n /** @internal */\n public static readonly onUiIntervalEvent = new UiIntervalEvent();\n\n /** Initializes the InternalConfigurableUiManager and registers core controls.\n * @internal\n */\n public static initialize() {\n if (this._initialized) return;\n\n // Register core controls\n InternalConfigurableUiManager.register(\n StandardRotationNavigationAidControl.navigationAidId,\n StandardRotationNavigationAidControl\n );\n InternalConfigurableUiManager.register(\n SheetNavigationAidControl.navigationAidId,\n SheetNavigationAidControl\n );\n InternalConfigurableUiManager.register(\n DrawingNavigationAidControl.navigationAidId,\n DrawingNavigationAidControl\n );\n InternalConfigurableUiManager.register(\n CubeNavigationAidControl.navigationAidId,\n CubeNavigationAidControl\n );\n\n // Initialize SyncUiEventDispatcher so it can register event callbacks.\n SyncUiEventDispatcher.initialize();\n\n // Initialize the FrontstageManager\n InternalFrontstageManager.initialize();\n\n // Initialize the ToolSettingsManager that manages Tool Settings properties.\n InternalToolSettingsManager.initialize();\n\n // Initialize dialog managers that allow one or more dialogs to be open at a time. These managers adjust the z-indexing\n // to ensure the most recently focused dialog of a specific type displays above its siblings.\n InternalModelessDialogManager.initialize();\n\n // ContentDialog have a z-index just above the fixed content views and below all other UI elements.\n InternalContentDialogManager.initialize();\n\n // Initialize the Keyboard Shortcut manager\n InternalKeyboardShortcutManager.initialize();\n\n this._initialized = true;\n }\n\n /** Registers a control implementing the [[ConfigurableUiElement]] interface.\n * These controls can be a\n * [[ContentControl]],\n * [[NavigationAidControl]],\n * [[StatusBarWidgetControl]],\n * [[WidgetControl]] or\n * [ToolUiProvider]($appui-react).\n * @param classId the class id of the control to register\n * @param constructor the constructor of the control to register\n */\n public static register(\n classId: string,\n constructor: ConfigurableUiControlConstructor\n ): void {\n if (this._registeredControls.get(classId) !== undefined) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `registerControl: classId '${classId}' already registered`\n );\n }\n\n this._registeredControls.set(classId, constructor);\n }\n\n /** Determines if a control has been registered based on its classId.\n * @param classId the class id of the control to test\n * @returns true if the control is registered or false if not\n */\n public static isRegistered(classId: string): boolean {\n const constructor = this._registeredControls.get(classId);\n return constructor !== undefined;\n }\n\n /** Determines if a control has been registered.\n * @internal\n */\n public static getConstructorClassId(\n constructor: ConfigurableUiControlConstructor\n ): string | undefined {\n for (const [key, value] of this._registeredControls.entries()) {\n if (value === constructor) return key;\n }\n\n return undefined;\n }\n\n /** Unregisters a control that has been registered.\n * @param classId the class id of the control to unregister\n */\n public static unregister(classId: string): void {\n const constructor = this._registeredControls.get(classId);\n if (constructor) this._registeredControls.delete(classId);\n }\n\n /** Creates a control registered by calling registerControl.\n * @param classId the class id of the control to create\n * @param uniqueId a unique id for the control\n * @param options options passed to the constructor of the control\n * @param controlId controlId which may not be unique across all control instances.\n * @returns the created control\n */\n public static create(\n classId: string,\n uniqueId: string,\n options?: any,\n controlId?: string\n ): ConfigurableUiElement | undefined {\n const info = new ConfigurableCreateInfo(\n classId,\n uniqueId,\n controlId ?? uniqueId\n );\n const constructor = this._registeredControls.get(info.classId);\n if (!constructor) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `createControl: classId '${classId}' not registered`\n );\n }\n\n const control = new constructor(info, options);\n return control;\n }\n\n /** Gets the HTML wrapper element for Configurable UI */\n public static getWrapperElement(): HTMLElement {\n const wrapper = document.getElementById(\"uifw-configurableui-wrapper\");\n const htmlElement = wrapper!;\n return htmlElement;\n }\n\n /** Closes all UI popups currently open */\n public static closeUi(): void {\n MessageManager.closeAllMessages();\n InternalModelessDialogManager.closeAll();\n InternalModalDialogManager.closeAll();\n InternalContentDialogManager.closeAll();\n UiFramework.keyboardShortcuts.closeMenu();\n UiFramework.closeCursorMenu();\n PopupManager.clearPopups();\n }\n}\n"]}
1
+ {"version":3,"file":"InternalConfigurableUiManager.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/InternalConfigurableUiManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ConfigurableUi\n */\n\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { CubeNavigationAidControl } from \"../navigationaids/CubeNavigationAidControl\";\nimport { DrawingNavigationAidControl } from \"../navigationaids/DrawingNavigationAidControl\";\nimport { SheetNavigationAidControl } from \"../navigationaids/SheetNavigationAid\";\nimport { StandardRotationNavigationAidControl } from \"../navigationaids/StandardRotationNavigationAid\";\nimport { UiFramework } from \"../UiFramework\";\nimport type {\n ConfigurableUiControlConstructor,\n ConfigurableUiElement,\n} from \"./ConfigurableUiControl\";\nimport { ConfigurableCreateInfo } from \"./ConfigurableUiControl\";\nimport { MessageManager } from \"../messages/MessageManager\";\nimport { PopupManager } from \"../popup/PopupManager\";\nimport { ActivityTracker } from \"./ActivityTracker\";\nimport { BeUiEvent } from \"@itwin/core-bentley\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { InternalToolSettingsManager } from \"../toolsettings/InternalToolSettingsManager\";\nimport { InternalModelessDialogManager } from \"../dialog/InternalModelessDialogManager\";\nimport { InternalContentDialogManager } from \"../dialog/InternalContentDialogManager\";\nimport { InternalKeyboardShortcutManager } from \"../keyboardshortcut/InternalKeyboardShortcut\";\nimport { InternalModalDialogManager } from \"../dialog/InternalModalDialogManager\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Ui Activity Event Args interface.\n * @internal\n */\nexport interface UiActivityEventArgs {\n event: Event;\n}\n\n/** Ui Activity Event class.\n * @internal\n */\nexport class UiActivityEvent extends BeUiEvent<UiActivityEventArgs> {}\n\n/** Ui Interval Event Args interface\n * @internal\n */\nexport interface UiIntervalEventArgs {\n idleTimeout?: number;\n}\n\n/** Ui Interval Event class.\n * @internal\n */\nexport class UiIntervalEvent extends BeUiEvent<UiIntervalEventArgs> {}\n\n/** Configurable Ui Manager maintains controls, Frontstages, Content Groups, Content Layouts, Tasks and Workflows.\n * @internal\n */\nexport class InternalConfigurableUiManager {\n private static _registeredControls = new Map<\n string,\n ConfigurableUiControlConstructor\n >();\n private static _initialized = false;\n\n /** @internal */\n public static readonly activityTracker = new ActivityTracker();\n /** @internal */\n public static readonly onUiActivityEvent = new UiActivityEvent();\n /** @internal */\n public static readonly onUiIntervalEvent = new UiIntervalEvent();\n\n /** Initializes the InternalConfigurableUiManager and registers core controls.\n * @internal\n */\n public static initialize() {\n if (this._initialized) return;\n\n // Register core controls\n InternalConfigurableUiManager.register(\n StandardRotationNavigationAidControl.navigationAidId,\n StandardRotationNavigationAidControl\n );\n InternalConfigurableUiManager.register(\n SheetNavigationAidControl.navigationAidId,\n SheetNavigationAidControl\n );\n InternalConfigurableUiManager.register(\n DrawingNavigationAidControl.navigationAidId,\n DrawingNavigationAidControl\n );\n InternalConfigurableUiManager.register(\n CubeNavigationAidControl.navigationAidId,\n CubeNavigationAidControl\n );\n\n // Initialize SyncUiEventDispatcher so it can register event callbacks.\n SyncUiEventDispatcher.initialize();\n\n // Initialize the FrontstageManager\n InternalFrontstageManager.initialize();\n\n // Initialize the ToolSettingsManager that manages Tool Settings properties.\n InternalToolSettingsManager.initialize();\n\n // Initialize dialog managers that allow one or more dialogs to be open at a time. These managers adjust the z-indexing\n // to ensure the most recently focused dialog of a specific type displays above its siblings.\n InternalModelessDialogManager.initialize();\n\n // ContentDialog have a z-index just above the fixed content views and below all other UI elements.\n InternalContentDialogManager.initialize();\n\n // Initialize the Keyboard Shortcut manager\n InternalKeyboardShortcutManager.initialize();\n\n this._initialized = true;\n }\n\n /** Registers a control implementing the [[ConfigurableUiElement]] interface.\n * These controls can be a\n * [[ContentControl]],\n * [[NavigationAidControl]],\n * [[StatusBarWidgetControl]],\n * [[WidgetControl]] or\n * [ToolUiProvider]($appui-react).\n * @param classId the class id of the control to register\n * @param constructor the constructor of the control to register\n */\n public static register(\n classId: string,\n constructor: ConfigurableUiControlConstructor\n ): void {\n if (this._registeredControls.get(classId) !== undefined) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `registerControl: classId '${classId}' already registered`\n );\n }\n\n this._registeredControls.set(classId, constructor);\n }\n\n /** Determines if a control has been registered based on its classId.\n * @param classId the class id of the control to test\n * @returns true if the control is registered or false if not\n */\n public static isRegistered(classId: string): boolean {\n const constructor = this._registeredControls.get(classId);\n return constructor !== undefined;\n }\n\n /** Determines if a control has been registered.\n * @internal\n */\n public static getConstructorClassId(\n constructor: ConfigurableUiControlConstructor\n ): string | undefined {\n for (const [key, value] of this._registeredControls.entries()) {\n if (value === constructor) return key;\n }\n\n return undefined;\n }\n\n /** Unregisters a control that has been registered.\n * @param classId the class id of the control to unregister\n */\n public static unregister(classId: string): void {\n const constructor = this._registeredControls.get(classId);\n if (constructor) this._registeredControls.delete(classId);\n }\n\n /** Creates a control registered by calling registerControl.\n * @param classId the class id of the control to create\n * @param uniqueId a unique id for the control\n * @param options options passed to the constructor of the control\n * @param controlId controlId which may not be unique across all control instances.\n * @returns the created control\n */\n public static create(\n classId: string,\n uniqueId: string,\n options?: any,\n controlId?: string\n ): ConfigurableUiElement | undefined {\n const info = new ConfigurableCreateInfo(\n classId,\n uniqueId,\n controlId ?? uniqueId\n );\n const constructor = this._registeredControls.get(info.classId);\n if (!constructor) {\n throw new UiError(\n UiFramework.loggerCategory(this),\n `createControl: classId '${classId}' not registered`\n );\n }\n\n const control = new constructor(info, options);\n return control;\n }\n\n /** Gets the HTML wrapper element for Configurable UI */\n public static getWrapperElement(): HTMLElement {\n const wrapper = document.getElementById(\"uifw-configurableui-wrapper\");\n const htmlElement = wrapper!;\n return htmlElement;\n }\n\n /** Closes all UI popups currently open */\n public static closeUi(): void {\n MessageManager.closeAllMessages();\n InternalModelessDialogManager.closeAll();\n InternalModalDialogManager.closeAll();\n InternalContentDialogManager.closeAll();\n UiFramework.keyboardShortcuts.closeMenu();\n UiFramework.closeCursorMenu();\n PopupManager.clearPopups();\n }\n}\n"]}
@@ -20,8 +20,9 @@ export class TimeTracker {
20
20
  this._totalTime = 0;
21
21
  this._idleTime = 0;
22
22
  this._idleTimeCounter = (args) => {
23
+ var _a;
23
24
  // istanbul ignore next
24
- const idleTimeout = args.idleTimeout ?? this._idleTimeout;
25
+ const idleTimeout = (_a = args.idleTimeout) !== null && _a !== void 0 ? _a : this._idleTimeout;
25
26
  // istanbul ignore else
26
27
  if (this._lastActiveTimestamp > 0 &&
27
28
  this._idleStartTimestamp === 0 &&
@@ -1 +1 @@
1
- {"version":3,"file":"TimeTracker.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/TimeTracker.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ConfigurableUi\n */\n\nimport type {\n UiActivityEventArgs,\n UiIntervalEventArgs,\n} from \"./InternalConfigurableUiManager\";\nimport { InternalConfigurableUiManager } from \"./InternalConfigurableUiManager\";\n\n/** Time Tracker utility class\n * @internal\n */\nexport class TimeTracker {\n private _firstActiveTimestamp: number = 0;\n private _idleStartTimestamp: number = 0;\n private _lastActiveTimestamp: number = 0;\n private _totalIdleTime: number = 0;\n private _idleCount: number = 0;\n private _idleTimeout: number = 5000;\n private _totalTime: number = 0;\n private _idleTime: number = 0;\n\n /** Starts time tracking\n */\n public startTiming(): void {\n this._totalIdleTime = 0;\n this._idleStartTimestamp = 0;\n this._idleCount = 0;\n this._totalTime = 0;\n this._idleTime = 0;\n\n this._firstActiveTimestamp = Date.now();\n this._lastActiveTimestamp = this._firstActiveTimestamp;\n\n InternalConfigurableUiManager.onUiIntervalEvent.addListener(\n this._idleTimeCounter\n );\n InternalConfigurableUiManager.onUiActivityEvent.addListener(\n this._trackActivity\n );\n }\n\n /** Stops time tracking\n */\n public stopTiming(): void {\n InternalConfigurableUiManager.onUiIntervalEvent.removeListener(\n this._idleTimeCounter\n );\n InternalConfigurableUiManager.onUiActivityEvent.removeListener(\n this._trackActivity\n );\n\n this._totalTime = Date.now() - this._firstActiveTimestamp;\n this._idleTime = this._totalIdleTime + this._idleCount * this._idleTimeout;\n }\n\n /** Gets engagement time in seconds\n */\n public getEngagementTimeSeconds(): number {\n return (this._totalTime - this._idleTime) / 1000;\n }\n\n /** Gets total time in seconds\n */\n public getTotalTimeSeconds(): number {\n return this._totalTime / 1000;\n }\n\n /** Gets idle time in seconds\n */\n public getIdleTimeSeconds(): number {\n return this._idleTime / 1000;\n }\n\n private _idleTimeCounter = (args: UiIntervalEventArgs): void => {\n // istanbul ignore next\n const idleTimeout = args.idleTimeout ?? this._idleTimeout;\n // istanbul ignore else\n if (\n this._lastActiveTimestamp > 0 &&\n this._idleStartTimestamp === 0 &&\n Date.now() - this._lastActiveTimestamp >= idleTimeout\n ) {\n this._idleStartTimestamp = Date.now();\n this._idleCount++;\n }\n };\n\n private _trackActivity = (_args: UiActivityEventArgs): void => {\n this._lastActiveTimestamp = Date.now();\n\n if (this._idleStartTimestamp > 0) {\n const lastIdleTime = this._lastActiveTimestamp - this._idleStartTimestamp;\n this._totalIdleTime += lastIdleTime;\n this._idleStartTimestamp = 0;\n }\n };\n}\n"]}
1
+ {"version":3,"file":"TimeTracker.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/TimeTracker.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAMH,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF;;GAEG;AACH,MAAM,OAAO,WAAW;IAAxB;QACU,0BAAqB,GAAW,CAAC,CAAC;QAClC,wBAAmB,GAAW,CAAC,CAAC;QAChC,yBAAoB,GAAW,CAAC,CAAC;QACjC,mBAAc,GAAW,CAAC,CAAC;QAC3B,eAAU,GAAW,CAAC,CAAC;QACvB,iBAAY,GAAW,IAAI,CAAC;QAC5B,eAAU,GAAW,CAAC,CAAC;QACvB,cAAS,GAAW,CAAC,CAAC;QAsDtB,qBAAgB,GAAG,CAAC,IAAyB,EAAQ,EAAE;;YAC7D,uBAAuB;YACvB,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,YAAY,CAAC;YAC1D,uBAAuB;YACvB,IACE,IAAI,CAAC,oBAAoB,GAAG,CAAC;gBAC7B,IAAI,CAAC,mBAAmB,KAAK,CAAC;gBAC9B,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,IAAI,WAAW,EACrD;gBACA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtC,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA0B,EAAQ,EAAE;YAC5D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;gBAChC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAC1E,IAAI,CAAC,cAAc,IAAI,YAAY,CAAC;gBACpC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;aAC9B;QACH,CAAC,CAAC;IACJ,CAAC;IA3EC;OACG;IACI,WAAW;QAChB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEvD,6BAA6B,CAAC,iBAAiB,CAAC,WAAW,CACzD,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,6BAA6B,CAAC,iBAAiB,CAAC,WAAW,CACzD,IAAI,CAAC,cAAc,CACpB,CAAC;IACJ,CAAC;IAED;OACG;IACI,UAAU;QACf,6BAA6B,CAAC,iBAAiB,CAAC,cAAc,CAC5D,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,6BAA6B,CAAC,iBAAiB,CAAC,cAAc,CAC5D,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;IAC7E,CAAC;IAED;OACG;IACI,wBAAwB;QAC7B,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACnD,CAAC;IAED;OACG;IACI,mBAAmB;QACxB,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAChC,CAAC;IAED;OACG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B,CAAC;CAyBF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ConfigurableUi\n */\n\nimport type {\n UiActivityEventArgs,\n UiIntervalEventArgs,\n} from \"./InternalConfigurableUiManager\";\nimport { InternalConfigurableUiManager } from \"./InternalConfigurableUiManager\";\n\n/** Time Tracker utility class\n * @internal\n */\nexport class TimeTracker {\n private _firstActiveTimestamp: number = 0;\n private _idleStartTimestamp: number = 0;\n private _lastActiveTimestamp: number = 0;\n private _totalIdleTime: number = 0;\n private _idleCount: number = 0;\n private _idleTimeout: number = 5000;\n private _totalTime: number = 0;\n private _idleTime: number = 0;\n\n /** Starts time tracking\n */\n public startTiming(): void {\n this._totalIdleTime = 0;\n this._idleStartTimestamp = 0;\n this._idleCount = 0;\n this._totalTime = 0;\n this._idleTime = 0;\n\n this._firstActiveTimestamp = Date.now();\n this._lastActiveTimestamp = this._firstActiveTimestamp;\n\n InternalConfigurableUiManager.onUiIntervalEvent.addListener(\n this._idleTimeCounter\n );\n InternalConfigurableUiManager.onUiActivityEvent.addListener(\n this._trackActivity\n );\n }\n\n /** Stops time tracking\n */\n public stopTiming(): void {\n InternalConfigurableUiManager.onUiIntervalEvent.removeListener(\n this._idleTimeCounter\n );\n InternalConfigurableUiManager.onUiActivityEvent.removeListener(\n this._trackActivity\n );\n\n this._totalTime = Date.now() - this._firstActiveTimestamp;\n this._idleTime = this._totalIdleTime + this._idleCount * this._idleTimeout;\n }\n\n /** Gets engagement time in seconds\n */\n public getEngagementTimeSeconds(): number {\n return (this._totalTime - this._idleTime) / 1000;\n }\n\n /** Gets total time in seconds\n */\n public getTotalTimeSeconds(): number {\n return this._totalTime / 1000;\n }\n\n /** Gets idle time in seconds\n */\n public getIdleTimeSeconds(): number {\n return this._idleTime / 1000;\n }\n\n private _idleTimeCounter = (args: UiIntervalEventArgs): void => {\n // istanbul ignore next\n const idleTimeout = args.idleTimeout ?? this._idleTimeout;\n // istanbul ignore else\n if (\n this._lastActiveTimestamp > 0 &&\n this._idleStartTimestamp === 0 &&\n Date.now() - this._lastActiveTimestamp >= idleTimeout\n ) {\n this._idleStartTimestamp = Date.now();\n this._idleCount++;\n }\n };\n\n private _trackActivity = (_args: UiActivityEventArgs): void => {\n this._lastActiveTimestamp = Date.now();\n\n if (this._idleStartTimestamp > 0) {\n const lastIdleTime = this._lastActiveTimestamp - this._idleStartTimestamp;\n this._totalIdleTime += lastIdleTime;\n this._idleStartTimestamp = 0;\n }\n };\n}\n"]}
@@ -31,14 +31,18 @@ export function ContentWrapper(props) {
31
31
  return controlId;
32
32
  };
33
33
  // istanbul ignore next
34
- const [hasMultipleContents, setHasMultipleContents] = React.useState(() => (activeFrontstageDef &&
35
- !!activeFrontstageDef.floatingContentControls?.length) ||
36
- (activeFrontstageDef?.contentGroup?.getContentControls().length ?? 0) > 1);
34
+ const [hasMultipleContents, setHasMultipleContents] = React.useState(() => {
35
+ var _a, _b, _c;
36
+ return (activeFrontstageDef &&
37
+ !!((_a = activeFrontstageDef.floatingContentControls) === null || _a === void 0 ? void 0 : _a.length)) ||
38
+ ((_c = (_b = activeFrontstageDef === null || activeFrontstageDef === void 0 ? void 0 : activeFrontstageDef.contentGroup) === null || _b === void 0 ? void 0 : _b.getContentControls().length) !== null && _c !== void 0 ? _c : 0) > 1;
39
+ });
37
40
  React.useEffect(() => {
38
41
  setIsActive(content === UiFramework.content.getActive());
39
42
  }, [content]);
40
43
  React.useEffect(() => {
41
44
  const handleActiveContentChanged = (args) => {
45
+ var _a, _b, _c;
42
46
  const contentIsIdentical = content === args.activeContent;
43
47
  if (contentIsIdentical)
44
48
  setIsActive(contentIsIdentical);
@@ -49,9 +53,8 @@ export function ContentWrapper(props) {
49
53
  }
50
54
  // istanbul ignore next
51
55
  setHasMultipleContents((activeFrontstageDef &&
52
- !!activeFrontstageDef.floatingContentControls?.length) ||
53
- (activeFrontstageDef?.contentGroup?.getContentControls().length ??
54
- 0) > 1);
56
+ !!((_a = activeFrontstageDef.floatingContentControls) === null || _a === void 0 ? void 0 : _a.length)) ||
57
+ ((_c = (_b = activeFrontstageDef === null || activeFrontstageDef === void 0 ? void 0 : activeFrontstageDef.contentGroup) === null || _b === void 0 ? void 0 : _b.getContentControls().length) !== null && _c !== void 0 ? _c : 0) > 1);
55
58
  };
56
59
  return UiFramework.content.onActiveContentChangedEvent.addListener(handleActiveContentChanged);
57
60
  }, [activeFrontstageDef, content]);
@@ -61,11 +64,11 @@ export function ContentWrapper(props) {
61
64
  }, [content]);
62
65
  React.useEffect(() => {
63
66
  const onAvailableContentChanged = () => {
67
+ var _a, _b, _c;
64
68
  // istanbul ignore next
65
69
  setHasMultipleContents((activeFrontstageDef &&
66
- !!activeFrontstageDef.floatingContentControls?.length) ||
67
- (activeFrontstageDef?.contentGroup?.getContentControls().length ??
68
- 0) > 1);
70
+ !!((_a = activeFrontstageDef.floatingContentControls) === null || _a === void 0 ? void 0 : _a.length)) ||
71
+ ((_c = (_b = activeFrontstageDef === null || activeFrontstageDef === void 0 ? void 0 : activeFrontstageDef.contentGroup) === null || _b === void 0 ? void 0 : _b.getContentControls().length) !== null && _c !== void 0 ? _c : 0) > 1);
69
72
  };
70
73
  return UiFramework.content.onAvailableContentChangedEvent.addListener(onAvailableContentChanged);
71
74
  }, [activeFrontstageDef]);