@itwin/appui-react 3.3.0-dev.6 → 3.3.0-dev.9
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.
- package/CHANGELOG.md +18 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js +2 -0
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js +2 -0
- package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +1 -1
- package/package.json +32 -32
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
# Change Log - @itwin/appui-react
|
|
2
2
|
|
|
3
|
-
This log was last generated on Fri,
|
|
3
|
+
This log was last generated on Fri, 20 May 2022 13:10:54 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 3.2.0
|
|
6
|
+
Fri, 20 May 2022 13:10:54 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- mock hydrateviewstate rpc method in SavedviewLayout tests
|
|
11
|
+
- Documentation updates
|
|
12
|
+
- Fix bug where widgets from UiItemProviders were not honoring Center Zonelocation in UI 1.0 mode.
|
|
13
|
+
- Fix for losing viewport content after clicking PW link.
|
|
14
|
+
- Add ability to pass parameters to UiItemsManager when loading items provider to specify what stages allow the provider to supply items.
|
|
15
|
+
- Add option to auto-collapse unpinned widget panels.
|
|
16
|
+
- Allow React icons to be used on Wedget tabs, backstage, and status bar items
|
|
17
|
+
- Add default tool prop to StandardFrontstageProps to give apps a simple, typesafe way to specify a default tool for their frontstages.
|
|
18
|
+
- Add an empty state message when there are no settings to display in the tool settings bar.
|
|
19
|
+
- Add a mousemove listener to an ElementTooltip's owner document so that it can be closed when the mouse travels over a React element.
|
|
20
|
+
- Fix checkbox alignment in visibility trees.
|
|
4
21
|
|
|
5
22
|
## 3.1.3
|
|
6
23
|
Fri, 15 Apr 2022 13:49:25 GMT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontstageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAa,gBAAgB,EAA+D,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACtI,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG7F,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wBAAwB,CAAC,EAAE,aAAa,CAAC;IACzC,sBAAsB,EAAE,aAAa,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,OAAO,CAAC,4BAA4B,CAAC;CAAI;AAEvF;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,mCAAmC;IACnC,wBAAwB,EAAE,aAAa,CAAC;IACxC,iCAAiC;IACjC,sBAAsB,CAAC,EAAE,aAAa,CAAC;IAEvC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAI;AAE3F;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,wBAAwB,CAAC;CAAI;AAE/E;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,OAAO,CAAC,+BAA+B,CAAC;CAAI;AAE7F;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,oCAAoC;IACpC,eAAe,EAAE,mBAAmB,CAAC;IAErC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,qBAAa,kCAAmC,SAAQ,OAAO,CAAC,sCAAsC,CAAC;CAAI;AAE3G;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,4CAA4C;IAC5C,eAAe,EAAE,mBAAmB,CAAC;IACrC,0CAA0C;IAC1C,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAI;AAE3F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,sBAAsB,CAAC;CAAI;AAE3E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,wBAAwB,CAAC;CAAI;AAE/E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;gBAEY;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAcD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IACpC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAS;IAClC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAM;IAClC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA4B;IAC/D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAoC;IAClE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA2D;IAC3F,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAsC;IACtE,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAyC;IAC5E,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA+C;IAChF,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAA4B;IACtE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAoE;IAEtG;;OAEG;WACW,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO9D,OAAO,CAAC,MAAM,CAAC,qCAAqC;IAKpD,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAO5C,wCAAwC;WAC1B,UAAU;IA6BxB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,8BAA8B,CAK3C;IAEF,gBAAgB;IAChB,WAAkB,aAAa,IAAI,OAAO,CAA2C;IACrF,WAAkB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAyC;IAEnF,0HAA0H;IAC1H,WAAkB,SAAS,IAAI,OAAO,CAAyC;IAE/E,gBAAgB;IAChB,WAAkB,YAAY,qBAA8C;IAE5E,WAAkB,YAAY,CAAC,IAAI,kBAAA,EAElC;IAED,wCAAwC;IACxC,gBAAuB,4BAA4B,6BAAoC;IAEvF,sCAAsC;IACtC,gBAAuB,0BAA0B,2BAAkC;IAEnF,sCAAsC;IACtC,gBAAuB,sBAAsB,uBAA8B;IAE3E,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,yCAAyC;IACzC,gBAAuB,4BAA4B,6BAAoC;IAEvF;;OAEG;IACH,gBAAuB,oCAAoC,qCAA4C;IAEvG,gCAAgC;IAChC,gBAAuB,oBAAoB,qBAA4B;IAEvE,oCAAoC;IACpC,gBAAuB,yBAAyB,gBAAuB;IAEvE;;OAEG;IACH,gBAAuB,sBAAsB,gBAAuB;IAEpE,mCAAmC;IACnC,gBAAuB,sBAAsB,uBAA8B;IAE3E,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,2CAA2C;IAC3C,gBAAuB,8BAA8B,+BAAsC;IAE3F,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,sCAAsC;IACtC,gBAAuB,yBAAyB,0BAAiC;IAEjF,gBAAgB;IAChB,gBAAuB,yBAAyB,kCAAyC;IAEzF,gBAAgB;IAChB,gBAAuB,iBAAiB,2BAAkC;IAE1E,gBAAgB;IAChB,gBAAuB,mBAAmB,2BAAkC;IAE5E,gBAAgB;IAChB,gBAAuB,wBAAwB,gBAAuB;IAEtE,gBAAgB;IAChB,gBAAuB,qCAAqC,mDAA0D;IAEtH,gBAAgB;IAChB,gBAAuB,8BAA8B,+BAAsC;IAE3F;;OAEG;IACH,gBAAuB,wBAAwB,yBAAgC;IAE/E,gBAAgB;IAChB,gBAAuB,uBAAuB,wBAA+B;IAE7E,mCAAmC;IACnC,WAAkB,eAAe,oBAQhC;IAED;OACG;WACW,mBAAmB,IAAI,IAAI;IAKzC;OACG;WACW,wBAAwB,IAAI,IAAI;IAK9C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B,gBAAgB;WACF,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAczE;;OAEG;WACW,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"FrontstageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -196,6 +196,8 @@ class FrontstageManager {
|
|
|
196
196
|
* @param frontstageProvider FrontstageProvider representing the Frontstage to add
|
|
197
197
|
*/
|
|
198
198
|
static addFrontstageProvider(frontstageProvider) {
|
|
199
|
+
const key = FrontstageManager.getFrontstageKey(frontstageProvider.id);
|
|
200
|
+
key && FrontstageManager._frontstageDefs.delete(key);
|
|
199
201
|
FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);
|
|
200
202
|
}
|
|
201
203
|
/** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Size, UiEvent } from \"@itwin/core-react\";\r\nimport { NineZoneManager } from \"@itwin/appui-layout-react\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentGroup } from \"../content/ContentGroup\";\r\nimport { ContentLayoutActivatedEvent, ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelSizeChangedEvent, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../zones/toolsettings/ToolInformation\";\r\nimport { SyncToolSettingsPropertiesEventArgs, ToolSettingsManager } from \"../zones/toolsettings/ToolSettingsManager\";\r\nimport { ToolUiProvider } from \"../zones/toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\n\r\n// -----------------------------------------------------------------------------\r\n// Frontstage Events\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\ninterface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// FrontstageManager class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Manager class.\r\n * @public\r\n */\r\nexport class FrontstageManager {\r\n private static _initialized = false;\r\n private static _isLoading = false;\r\n private static _activeToolId = \"\";\r\n private static _activeFrontstageDef: FrontstageDef | undefined;\r\n private static _frontstageDefs = new Map<string, FrontstageDef>();\r\n private static _modalFrontstages: ModalFrontstageItem[] = new Array<ModalFrontstageItem>();\r\n private static _nineZoneManagers = new Map<string, NineZoneManager>();\r\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\r\n private static _nineZoneSize: Size | undefined = undefined;\r\n\r\n private static _nestedFrontstages: FrontstageDef[] = new Array<FrontstageDef>();\r\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\r\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<string, ToolInformation>();\r\n\r\n /** This should only be called within FrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!FrontstageManager._toolInformationMap.get(toolId))\r\n FrontstageManager._toolInformationMap.set(toolId, new ToolInformation(toolId));\r\n }\r\n\r\n // pass on SyncToolSettingsPropertiesEvent from ToolAdmin so they are treated as DialogItemSync events\r\n private static handleSyncToolSettingsPropertiesEvent(args: SyncToolSettingsPropertiesEventArgs): void {\r\n FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(args);\r\n }\r\n\r\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\r\n private static handleReloadToolSettingsEvent(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager.activeToolSettingsProvider) {\r\n FrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the FrontstageManager */\r\n public static initialize() {\r\n if (this._initialized)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.toolAdmin) {\r\n IModelApp.toolAdmin.activeToolChanged.addListener((tool: Tool, _start: StartOrResume) => {\r\n // make sure tool settings properties are cached before creating ToolInformation\r\n ToolSettingsManager.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n ToolSettingsManager.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n FrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n FrontstageManager.setActiveTool(tool);\r\n });\r\n ToolSettingsManager.onSyncToolSettingsProperties.addListener(FrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n ToolSettingsManager.onReloadToolSettingsProperties.addListener(FrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(FrontstageManager._handleSelectedViewportChanged);\r\n }\r\n\r\n this._initialized = true;\r\n }\r\n\r\n /** Handles a Viewport change & sets the active view accordingly */\r\n private static _handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n // istanbul ignore else\r\n if (args.current && FrontstageManager.activeFrontstageDef && !FrontstageManager.isLoading) {\r\n FrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return FrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { FrontstageManager._initialized = v; }\r\n\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n public static get isLoading(): boolean { return FrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return FrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n FrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** Get Frontstage Deactivated event. */\r\n public static readonly onFrontstageDeactivatedEvent = new FrontstageDeactivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageActivatedEvent = new FrontstageActivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageReadyEvent = new FrontstageReadyEvent();\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n public static readonly onModalFrontstageChangedEvent = new ModalFrontstageChangedEvent();\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n public static readonly onModalFrontstageClosedEvent = new ModalFrontstageClosedEvent();\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n public static readonly onCloseModalFrontstageRequestedEvent = new ModalFrontstageRequestedCloseEvent();\r\n\r\n /** Get Tool Activated event. */\r\n public static readonly onToolActivatedEvent = new ToolActivatedEvent();\r\n\r\n /** Get ToolSetting Reload event. */\r\n public static readonly onToolSettingsReloadEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Panel Opened event.\r\n * @internal\r\n */\r\n public static readonly onToolPanelOpenedEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Icon Changed event. */\r\n public static readonly onToolIconChangedEvent = new ToolIconChangedEvent();\r\n\r\n /** Get Content Layout Activated event. */\r\n public static readonly onContentLayoutActivatedEvent = new ContentLayoutActivatedEvent();\r\n\r\n /** Get Content Control Activated event. */\r\n public static readonly onContentControlActivatedEvent = new ContentControlActivatedEvent();\r\n\r\n /** Get Navigation Aid Activated event. */\r\n public static readonly onNavigationAidActivatedEvent = new NavigationAidActivatedEvent();\r\n\r\n /** Get Widget State Changed event. */\r\n public static readonly onWidgetStateChangedEvent = new WidgetStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onWidgetLabelChangedEvent = new UiEvent<WidgetChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetShowEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetExpandEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetDefsUpdatedEvent = new UiEvent<void>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageNineZoneStateChangedEvent = new UiEvent<FrontstageNineZoneStateChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageRestoreLayoutEvent = new UiEvent<FrontstageEventArgs>();\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelStateChangedEvent = new PanelStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onPanelSizeChangedEvent = new PanelSizeChangedEvent();\r\n\r\n /** Get Nine-zone State Manager. */\r\n public static get NineZoneManager() {\r\n const id = FrontstageManager.activeFrontstageId;\r\n let manager = FrontstageManager._nineZoneManagers.get(id);\r\n if (!manager) {\r\n manager = new NineZoneManager();\r\n FrontstageManager._nineZoneManagers.set(id, manager);\r\n }\r\n return manager;\r\n }\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n FrontstageManager._frontstageDefs.clear();\r\n FrontstageManager._activeFrontstageDef = undefined;\r\n }\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n public static clearFrontstageProviders(): void {\r\n FrontstageManager._frontstageProviders.clear();\r\n FrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n const provider = FrontstageManager._frontstageProviders.get(frontstageId);\r\n let isIModelIndependent = false;\r\n if (provider) {\r\n isIModelIndependent = !!provider.frontstage.props.isIModelIndependent;\r\n }\r\n const imodelId = UiFramework.getIModelConnection()?.iModelId ?? \"noImodel\";\r\n const key = isIModelIndependent ? frontstageId : `[${imodelId}]${frontstageId}`;\r\n return key;\r\n }\r\n\r\n /** Add a Frontstage via a definition.\r\n * @param frontstageDef Definition of the Frontstage to add\r\n */\r\n private static addFrontstageDef(frontstageDef: FrontstageDef): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n\r\n /** @internal */\r\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\r\n // istanbul ignore next\r\n if (!iModelId)\r\n return;\r\n const keysToRemove: string[] = [];\r\n FrontstageManager._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\r\n if (key.startsWith(`[${iModelId}]`))\r\n keysToRemove.push(key);\r\n });\r\n keysToRemove.forEach((keyValue) => {\r\n FrontstageManager._frontstageDefs.delete(keyValue);\r\n });\r\n }\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\r\n FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\r\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\r\n * `getFrontstageDef` to get a FrontstageDef.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\r\n const key = FrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = FrontstageManager._frontstageDefs.get(key);\r\n if (frontstageDef instanceof FrontstageDef)\r\n return frontstageDef;\r\n return undefined;\r\n }\r\n\r\n private static findFrontstageProvider(id?: string): FrontstageProvider | undefined {\r\n return id ? FrontstageManager._frontstageProviders.get(id) : undefined;\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\r\n if (!id)\r\n return FrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = FrontstageManager.findFrontstageDef(id);\r\n if (frontstageDef)\r\n return frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (id) {\r\n const frontstageProvider = FrontstageManager.findFrontstageProvider(id);\r\n if (frontstageProvider) {\r\n frontstageDef = await FrontstageDef.create(frontstageProvider);\r\n // istanbul ignore else\r\n if (frontstageDef) {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n return frontstageDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n public static get activeFrontstageDef(): FrontstageDef | undefined {\r\n return FrontstageManager._activeFrontstageDef;\r\n }\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n public static get activeFrontstageId(): string {\r\n const activeFrontstage = FrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (FrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (FrontstageManager.findFrontstageProvider(frontstageId))\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\r\n const frontstageDef = await FrontstageManager.getFrontstageDef(frontstageId);\r\n if (!frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`);\r\n return;\r\n }\r\n\r\n return FrontstageManager.setActiveFrontstageDef(frontstageDef);\r\n }\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\r\n if (FrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n FrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n FrontstageManager.onFrontstageDeactivatedEvent.emit({\r\n deactivatedFrontstageDef,\r\n activatedFrontstageDef: frontstageDef,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n FrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n FrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiShowHideManager.handleFrontstageReady();\r\n\r\n frontstageDef.startDefaultTool();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n FrontstageManager._isLoading = false;\r\n }\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n public static async deactivateFrontstageDef(): Promise<void> {\r\n await this.setActiveFrontstageDef(undefined);\r\n }\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n public static get activeToolId(): string {\r\n return FrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n FrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n FrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n FrontstageManager.setActiveToolId(tool.toolId);\r\n FrontstageManager.onToolIconChangedEvent.emit({ iconSpec: tool.iconSpec });\r\n }\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n public static get activeToolInformation(): ToolInformation | undefined {\r\n return FrontstageManager._toolInformationMap.get(FrontstageManager.activeToolId);\r\n }\r\n\r\n /** Gets the Tool Setting React node of the active tool.\r\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\r\n * @internal\r\n */\r\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\r\n const activeToolInformation = FrontstageManager.activeToolInformation;\r\n return (activeToolInformation) ? activeToolInformation.toolUiProvider : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n FrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n\r\n await activeFrontstageDef.setActiveContent();\r\n }\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n const contentLayoutDef = ContentLayoutManager.getLayoutForGroup(contentGroup);\r\n if (contentLayoutDef) {\r\n await FrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n }\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n FrontstageManager.pushModalFrontstage(modalFrontstage);\r\n }\r\n\r\n private static pushModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n const timeTracker = new TimeTracker();\r\n timeTracker.startTiming();\r\n const frontstageItem: ModalFrontstageItem = { modalFrontstage, timeTracker };\r\n FrontstageManager._modalFrontstages.push(frontstageItem);\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n public static closeModalFrontstage(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n FrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: FrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n FrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = FrontstageManager._modalFrontstages.pop();\r\n // istanbul ignore else\r\n if (frontstageItem) {\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n const timeTracker = frontstageItem.timeTracker;\r\n timeTracker.stopTiming();\r\n FrontstageManager.onModalFrontstageClosedEvent.emit({\r\n modalFrontstage,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiShowHideManager.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n FrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n return modalFrontstage;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n public static get modalFrontstageCount(): number {\r\n return FrontstageManager._modalFrontstages.length;\r\n }\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\r\n FrontstageManager.onNavigationAidActivatedEvent.emit({ navigationAidId, iModelConnection });\r\n }\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\r\n const widgetDef = FrontstageManager.findWidget(widgetId);\r\n if (widgetDef) {\r\n widgetDef.setWidgetState(state);\r\n return true;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `setWidgetState: Could not find Widget with id of '${widgetId}'`);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n public static findWidget(widgetId: string): WidgetDef | undefined {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef)\r\n return activeFrontstageDef.findWidgetDef(widgetId);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\r\n if (FrontstageManager.nestedFrontstageCount === 0)\r\n FrontstageManager._activePrimaryFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n\r\n FrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await FrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n FrontstageManager._nestedFrontstages.push(nestedFrontstage);\r\n }\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n public static async closeNestedFrontstage(): Promise<void> {\r\n FrontstageManager.popNestedFrontstage();\r\n\r\n if (FrontstageManager.nestedFrontstageCount > 0) {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager._activePrimaryFrontstageDef);\r\n FrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n FrontstageManager._nestedFrontstages.pop();\r\n }\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\r\n // istanbul ignore else\r\n if (FrontstageManager._nestedFrontstages.length > 0)\r\n return FrontstageManager._nestedFrontstages[FrontstageManager._nestedFrontstages.length - 1];\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n public static get nestedFrontstageCount(): number {\r\n return FrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Size, UiEvent } from \"@itwin/core-react\";\r\nimport { NineZoneManager } from \"@itwin/appui-layout-react\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentGroup } from \"../content/ContentGroup\";\r\nimport { ContentLayoutActivatedEvent, ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelSizeChangedEvent, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../zones/toolsettings/ToolInformation\";\r\nimport { SyncToolSettingsPropertiesEventArgs, ToolSettingsManager } from \"../zones/toolsettings/ToolSettingsManager\";\r\nimport { ToolUiProvider } from \"../zones/toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\n\r\n// -----------------------------------------------------------------------------\r\n// Frontstage Events\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\ninterface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// FrontstageManager class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Manager class.\r\n * @public\r\n */\r\nexport class FrontstageManager {\r\n private static _initialized = false;\r\n private static _isLoading = false;\r\n private static _activeToolId = \"\";\r\n private static _activeFrontstageDef: FrontstageDef | undefined;\r\n private static _frontstageDefs = new Map<string, FrontstageDef>();\r\n private static _modalFrontstages: ModalFrontstageItem[] = new Array<ModalFrontstageItem>();\r\n private static _nineZoneManagers = new Map<string, NineZoneManager>();\r\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\r\n private static _nineZoneSize: Size | undefined = undefined;\r\n\r\n private static _nestedFrontstages: FrontstageDef[] = new Array<FrontstageDef>();\r\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\r\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<string, ToolInformation>();\r\n\r\n /** This should only be called within FrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!FrontstageManager._toolInformationMap.get(toolId))\r\n FrontstageManager._toolInformationMap.set(toolId, new ToolInformation(toolId));\r\n }\r\n\r\n // pass on SyncToolSettingsPropertiesEvent from ToolAdmin so they are treated as DialogItemSync events\r\n private static handleSyncToolSettingsPropertiesEvent(args: SyncToolSettingsPropertiesEventArgs): void {\r\n FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(args);\r\n }\r\n\r\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\r\n private static handleReloadToolSettingsEvent(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager.activeToolSettingsProvider) {\r\n FrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the FrontstageManager */\r\n public static initialize() {\r\n if (this._initialized)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.toolAdmin) {\r\n IModelApp.toolAdmin.activeToolChanged.addListener((tool: Tool, _start: StartOrResume) => {\r\n // make sure tool settings properties are cached before creating ToolInformation\r\n ToolSettingsManager.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n ToolSettingsManager.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n FrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n FrontstageManager.setActiveTool(tool);\r\n });\r\n ToolSettingsManager.onSyncToolSettingsProperties.addListener(FrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n ToolSettingsManager.onReloadToolSettingsProperties.addListener(FrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(FrontstageManager._handleSelectedViewportChanged);\r\n }\r\n\r\n this._initialized = true;\r\n }\r\n\r\n /** Handles a Viewport change & sets the active view accordingly */\r\n private static _handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n // istanbul ignore else\r\n if (args.current && FrontstageManager.activeFrontstageDef && !FrontstageManager.isLoading) {\r\n FrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return FrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { FrontstageManager._initialized = v; }\r\n\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n public static get isLoading(): boolean { return FrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return FrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n FrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** Get Frontstage Deactivated event. */\r\n public static readonly onFrontstageDeactivatedEvent = new FrontstageDeactivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageActivatedEvent = new FrontstageActivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageReadyEvent = new FrontstageReadyEvent();\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n public static readonly onModalFrontstageChangedEvent = new ModalFrontstageChangedEvent();\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n public static readonly onModalFrontstageClosedEvent = new ModalFrontstageClosedEvent();\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n public static readonly onCloseModalFrontstageRequestedEvent = new ModalFrontstageRequestedCloseEvent();\r\n\r\n /** Get Tool Activated event. */\r\n public static readonly onToolActivatedEvent = new ToolActivatedEvent();\r\n\r\n /** Get ToolSetting Reload event. */\r\n public static readonly onToolSettingsReloadEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Panel Opened event.\r\n * @internal\r\n */\r\n public static readonly onToolPanelOpenedEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Icon Changed event. */\r\n public static readonly onToolIconChangedEvent = new ToolIconChangedEvent();\r\n\r\n /** Get Content Layout Activated event. */\r\n public static readonly onContentLayoutActivatedEvent = new ContentLayoutActivatedEvent();\r\n\r\n /** Get Content Control Activated event. */\r\n public static readonly onContentControlActivatedEvent = new ContentControlActivatedEvent();\r\n\r\n /** Get Navigation Aid Activated event. */\r\n public static readonly onNavigationAidActivatedEvent = new NavigationAidActivatedEvent();\r\n\r\n /** Get Widget State Changed event. */\r\n public static readonly onWidgetStateChangedEvent = new WidgetStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onWidgetLabelChangedEvent = new UiEvent<WidgetChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetShowEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetExpandEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetDefsUpdatedEvent = new UiEvent<void>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageNineZoneStateChangedEvent = new UiEvent<FrontstageNineZoneStateChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageRestoreLayoutEvent = new UiEvent<FrontstageEventArgs>();\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelStateChangedEvent = new PanelStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onPanelSizeChangedEvent = new PanelSizeChangedEvent();\r\n\r\n /** Get Nine-zone State Manager. */\r\n public static get NineZoneManager() {\r\n const id = FrontstageManager.activeFrontstageId;\r\n let manager = FrontstageManager._nineZoneManagers.get(id);\r\n if (!manager) {\r\n manager = new NineZoneManager();\r\n FrontstageManager._nineZoneManagers.set(id, manager);\r\n }\r\n return manager;\r\n }\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n FrontstageManager._frontstageDefs.clear();\r\n FrontstageManager._activeFrontstageDef = undefined;\r\n }\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n public static clearFrontstageProviders(): void {\r\n FrontstageManager._frontstageProviders.clear();\r\n FrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n const provider = FrontstageManager._frontstageProviders.get(frontstageId);\r\n let isIModelIndependent = false;\r\n if (provider) {\r\n isIModelIndependent = !!provider.frontstage.props.isIModelIndependent;\r\n }\r\n const imodelId = UiFramework.getIModelConnection()?.iModelId ?? \"noImodel\";\r\n const key = isIModelIndependent ? frontstageId : `[${imodelId}]${frontstageId}`;\r\n return key;\r\n }\r\n\r\n /** Add a Frontstage via a definition.\r\n * @param frontstageDef Definition of the Frontstage to add\r\n */\r\n private static addFrontstageDef(frontstageDef: FrontstageDef): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n\r\n /** @internal */\r\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\r\n // istanbul ignore next\r\n if (!iModelId)\r\n return;\r\n const keysToRemove: string[] = [];\r\n FrontstageManager._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\r\n if (key.startsWith(`[${iModelId}]`))\r\n keysToRemove.push(key);\r\n });\r\n keysToRemove.forEach((keyValue) => {\r\n FrontstageManager._frontstageDefs.delete(keyValue);\r\n });\r\n }\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageProvider.id);\r\n key && FrontstageManager._frontstageDefs.delete(key);\r\n FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\r\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\r\n * `getFrontstageDef` to get a FrontstageDef.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\r\n const key = FrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = FrontstageManager._frontstageDefs.get(key);\r\n if (frontstageDef instanceof FrontstageDef)\r\n return frontstageDef;\r\n return undefined;\r\n }\r\n\r\n private static findFrontstageProvider(id?: string): FrontstageProvider | undefined {\r\n return id ? FrontstageManager._frontstageProviders.get(id) : undefined;\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\r\n if (!id)\r\n return FrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = FrontstageManager.findFrontstageDef(id);\r\n if (frontstageDef)\r\n return frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (id) {\r\n const frontstageProvider = FrontstageManager.findFrontstageProvider(id);\r\n if (frontstageProvider) {\r\n frontstageDef = await FrontstageDef.create(frontstageProvider);\r\n // istanbul ignore else\r\n if (frontstageDef) {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n return frontstageDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n public static get activeFrontstageDef(): FrontstageDef | undefined {\r\n return FrontstageManager._activeFrontstageDef;\r\n }\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n public static get activeFrontstageId(): string {\r\n const activeFrontstage = FrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (FrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (FrontstageManager.findFrontstageProvider(frontstageId))\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\r\n const frontstageDef = await FrontstageManager.getFrontstageDef(frontstageId);\r\n if (!frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`);\r\n return;\r\n }\r\n\r\n return FrontstageManager.setActiveFrontstageDef(frontstageDef);\r\n }\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\r\n if (FrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n FrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n FrontstageManager.onFrontstageDeactivatedEvent.emit({\r\n deactivatedFrontstageDef,\r\n activatedFrontstageDef: frontstageDef,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n FrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n FrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiShowHideManager.handleFrontstageReady();\r\n\r\n frontstageDef.startDefaultTool();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n FrontstageManager._isLoading = false;\r\n }\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n public static async deactivateFrontstageDef(): Promise<void> {\r\n await this.setActiveFrontstageDef(undefined);\r\n }\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n public static get activeToolId(): string {\r\n return FrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n FrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n FrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n FrontstageManager.setActiveToolId(tool.toolId);\r\n FrontstageManager.onToolIconChangedEvent.emit({ iconSpec: tool.iconSpec });\r\n }\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n public static get activeToolInformation(): ToolInformation | undefined {\r\n return FrontstageManager._toolInformationMap.get(FrontstageManager.activeToolId);\r\n }\r\n\r\n /** Gets the Tool Setting React node of the active tool.\r\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\r\n * @internal\r\n */\r\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\r\n const activeToolInformation = FrontstageManager.activeToolInformation;\r\n return (activeToolInformation) ? activeToolInformation.toolUiProvider : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n FrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n\r\n await activeFrontstageDef.setActiveContent();\r\n }\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n const contentLayoutDef = ContentLayoutManager.getLayoutForGroup(contentGroup);\r\n if (contentLayoutDef) {\r\n await FrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n }\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n FrontstageManager.pushModalFrontstage(modalFrontstage);\r\n }\r\n\r\n private static pushModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n const timeTracker = new TimeTracker();\r\n timeTracker.startTiming();\r\n const frontstageItem: ModalFrontstageItem = { modalFrontstage, timeTracker };\r\n FrontstageManager._modalFrontstages.push(frontstageItem);\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n public static closeModalFrontstage(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n FrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: FrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n FrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = FrontstageManager._modalFrontstages.pop();\r\n // istanbul ignore else\r\n if (frontstageItem) {\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n const timeTracker = frontstageItem.timeTracker;\r\n timeTracker.stopTiming();\r\n FrontstageManager.onModalFrontstageClosedEvent.emit({\r\n modalFrontstage,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiShowHideManager.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n FrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n return modalFrontstage;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n public static get modalFrontstageCount(): number {\r\n return FrontstageManager._modalFrontstages.length;\r\n }\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\r\n FrontstageManager.onNavigationAidActivatedEvent.emit({ navigationAidId, iModelConnection });\r\n }\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\r\n const widgetDef = FrontstageManager.findWidget(widgetId);\r\n if (widgetDef) {\r\n widgetDef.setWidgetState(state);\r\n return true;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `setWidgetState: Could not find Widget with id of '${widgetId}'`);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n public static findWidget(widgetId: string): WidgetDef | undefined {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef)\r\n return activeFrontstageDef.findWidgetDef(widgetId);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\r\n if (FrontstageManager.nestedFrontstageCount === 0)\r\n FrontstageManager._activePrimaryFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n\r\n FrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await FrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n FrontstageManager._nestedFrontstages.push(nestedFrontstage);\r\n }\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n public static async closeNestedFrontstage(): Promise<void> {\r\n FrontstageManager.popNestedFrontstage();\r\n\r\n if (FrontstageManager.nestedFrontstageCount > 0) {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager._activePrimaryFrontstageDef);\r\n FrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n FrontstageManager._nestedFrontstages.pop();\r\n }\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\r\n // istanbul ignore else\r\n if (FrontstageManager._nestedFrontstages.length > 0)\r\n return FrontstageManager._nestedFrontstages[FrontstageManager._nestedFrontstages.length - 1];\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n public static get nestedFrontstageCount(): number {\r\n return FrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontstageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAa,gBAAgB,EAA+D,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACtI,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG7F,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wBAAwB,CAAC,EAAE,aAAa,CAAC;IACzC,sBAAsB,EAAE,aAAa,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,OAAO,CAAC,4BAA4B,CAAC;CAAI;AAEvF;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,mCAAmC;IACnC,wBAAwB,EAAE,aAAa,CAAC;IACxC,iCAAiC;IACjC,sBAAsB,CAAC,EAAE,aAAa,CAAC;IAEvC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAI;AAE3F;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,wBAAwB,CAAC;CAAI;AAE/E;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,OAAO,CAAC,+BAA+B,CAAC;CAAI;AAE7F;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,oCAAoC;IACpC,eAAe,EAAE,mBAAmB,CAAC;IAErC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,qBAAa,kCAAmC,SAAQ,OAAO,CAAC,sCAAsC,CAAC;CAAI;AAE3G;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD,4CAA4C;IAC5C,eAAe,EAAE,mBAAmB,CAAC;IACrC,0CAA0C;IAC1C,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAI;AAE3F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,sBAAsB,CAAC;CAAI;AAE3E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,wBAAwB,CAAC;CAAI;AAE/E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;gBAEY;IACZ,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAcD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IACpC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAS;IAClC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAM;IAClC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA4B;IAC/D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAoC;IAClE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA2D;IAC3F,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAsC;IACtE,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAyC;IAC5E,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA+C;IAChF,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAA4B;IACtE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAoE;IAEtG;;OAEG;WACW,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO9D,OAAO,CAAC,MAAM,CAAC,qCAAqC;IAKpD,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAO5C,wCAAwC;WAC1B,UAAU;IA6BxB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,8BAA8B,CAK3C;IAEF,gBAAgB;IAChB,WAAkB,aAAa,IAAI,OAAO,CAA2C;IACrF,WAAkB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAyC;IAEnF,0HAA0H;IAC1H,WAAkB,SAAS,IAAI,OAAO,CAAyC;IAE/E,gBAAgB;IAChB,WAAkB,YAAY,qBAA8C;IAE5E,WAAkB,YAAY,CAAC,IAAI,kBAAA,EAElC;IAED,wCAAwC;IACxC,gBAAuB,4BAA4B,6BAAoC;IAEvF,sCAAsC;IACtC,gBAAuB,0BAA0B,2BAAkC;IAEnF,sCAAsC;IACtC,gBAAuB,sBAAsB,uBAA8B;IAE3E,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,yCAAyC;IACzC,gBAAuB,4BAA4B,6BAAoC;IAEvF;;OAEG;IACH,gBAAuB,oCAAoC,qCAA4C;IAEvG,gCAAgC;IAChC,gBAAuB,oBAAoB,qBAA4B;IAEvE,oCAAoC;IACpC,gBAAuB,yBAAyB,gBAAuB;IAEvE;;OAEG;IACH,gBAAuB,sBAAsB,gBAAuB;IAEpE,mCAAmC;IACnC,gBAAuB,sBAAsB,uBAA8B;IAE3E,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,2CAA2C;IAC3C,gBAAuB,8BAA8B,+BAAsC;IAE3F,0CAA0C;IAC1C,gBAAuB,6BAA6B,8BAAqC;IAEzF,sCAAsC;IACtC,gBAAuB,yBAAyB,0BAAiC;IAEjF,gBAAgB;IAChB,gBAAuB,yBAAyB,kCAAyC;IAEzF,gBAAgB;IAChB,gBAAuB,iBAAiB,2BAAkC;IAE1E,gBAAgB;IAChB,gBAAuB,mBAAmB,2BAAkC;IAE5E,gBAAgB;IAChB,gBAAuB,wBAAwB,gBAAuB;IAEtE,gBAAgB;IAChB,gBAAuB,qCAAqC,mDAA0D;IAEtH,gBAAgB;IAChB,gBAAuB,8BAA8B,+BAAsC;IAE3F;;OAEG;IACH,gBAAuB,wBAAwB,yBAAgC;IAE/E,gBAAgB;IAChB,gBAAuB,uBAAuB,wBAA+B;IAE7E,mCAAmC;IACnC,WAAkB,eAAe,oBAQhC;IAED;OACG;WACW,mBAAmB,IAAI,IAAI;IAKzC;OACG;WACW,wBAAwB,IAAI,IAAI;IAK9C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B,gBAAgB;WACF,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAczE;;OAEG;WACW,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"FrontstageManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -185,6 +185,8 @@ export class FrontstageManager {
|
|
|
185
185
|
* @param frontstageProvider FrontstageProvider representing the Frontstage to add
|
|
186
186
|
*/
|
|
187
187
|
static addFrontstageProvider(frontstageProvider) {
|
|
188
|
+
const key = FrontstageManager.getFrontstageKey(frontstageProvider.id);
|
|
189
|
+
key && FrontstageManager._frontstageDefs.delete(key);
|
|
188
190
|
FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);
|
|
189
191
|
}
|
|
190
192
|
/** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Size, UiEvent } from \"@itwin/core-react\";\r\nimport { NineZoneManager } from \"@itwin/appui-layout-react\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentGroup } from \"../content/ContentGroup\";\r\nimport { ContentLayoutActivatedEvent, ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelSizeChangedEvent, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../zones/toolsettings/ToolInformation\";\r\nimport { SyncToolSettingsPropertiesEventArgs, ToolSettingsManager } from \"../zones/toolsettings/ToolSettingsManager\";\r\nimport { ToolUiProvider } from \"../zones/toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\n\r\n// -----------------------------------------------------------------------------\r\n// Frontstage Events\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\ninterface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// FrontstageManager class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Manager class.\r\n * @public\r\n */\r\nexport class FrontstageManager {\r\n private static _initialized = false;\r\n private static _isLoading = false;\r\n private static _activeToolId = \"\";\r\n private static _activeFrontstageDef: FrontstageDef | undefined;\r\n private static _frontstageDefs = new Map<string, FrontstageDef>();\r\n private static _modalFrontstages: ModalFrontstageItem[] = new Array<ModalFrontstageItem>();\r\n private static _nineZoneManagers = new Map<string, NineZoneManager>();\r\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\r\n private static _nineZoneSize: Size | undefined = undefined;\r\n\r\n private static _nestedFrontstages: FrontstageDef[] = new Array<FrontstageDef>();\r\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\r\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<string, ToolInformation>();\r\n\r\n /** This should only be called within FrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!FrontstageManager._toolInformationMap.get(toolId))\r\n FrontstageManager._toolInformationMap.set(toolId, new ToolInformation(toolId));\r\n }\r\n\r\n // pass on SyncToolSettingsPropertiesEvent from ToolAdmin so they are treated as DialogItemSync events\r\n private static handleSyncToolSettingsPropertiesEvent(args: SyncToolSettingsPropertiesEventArgs): void {\r\n FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(args);\r\n }\r\n\r\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\r\n private static handleReloadToolSettingsEvent(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager.activeToolSettingsProvider) {\r\n FrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the FrontstageManager */\r\n public static initialize() {\r\n if (this._initialized)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.toolAdmin) {\r\n IModelApp.toolAdmin.activeToolChanged.addListener((tool: Tool, _start: StartOrResume) => {\r\n // make sure tool settings properties are cached before creating ToolInformation\r\n ToolSettingsManager.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n ToolSettingsManager.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n FrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n FrontstageManager.setActiveTool(tool);\r\n });\r\n ToolSettingsManager.onSyncToolSettingsProperties.addListener(FrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n ToolSettingsManager.onReloadToolSettingsProperties.addListener(FrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(FrontstageManager._handleSelectedViewportChanged);\r\n }\r\n\r\n this._initialized = true;\r\n }\r\n\r\n /** Handles a Viewport change & sets the active view accordingly */\r\n private static _handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n // istanbul ignore else\r\n if (args.current && FrontstageManager.activeFrontstageDef && !FrontstageManager.isLoading) {\r\n FrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return FrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { FrontstageManager._initialized = v; }\r\n\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n public static get isLoading(): boolean { return FrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return FrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n FrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** Get Frontstage Deactivated event. */\r\n public static readonly onFrontstageDeactivatedEvent = new FrontstageDeactivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageActivatedEvent = new FrontstageActivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageReadyEvent = new FrontstageReadyEvent();\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n public static readonly onModalFrontstageChangedEvent = new ModalFrontstageChangedEvent();\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n public static readonly onModalFrontstageClosedEvent = new ModalFrontstageClosedEvent();\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n public static readonly onCloseModalFrontstageRequestedEvent = new ModalFrontstageRequestedCloseEvent();\r\n\r\n /** Get Tool Activated event. */\r\n public static readonly onToolActivatedEvent = new ToolActivatedEvent();\r\n\r\n /** Get ToolSetting Reload event. */\r\n public static readonly onToolSettingsReloadEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Panel Opened event.\r\n * @internal\r\n */\r\n public static readonly onToolPanelOpenedEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Icon Changed event. */\r\n public static readonly onToolIconChangedEvent = new ToolIconChangedEvent();\r\n\r\n /** Get Content Layout Activated event. */\r\n public static readonly onContentLayoutActivatedEvent = new ContentLayoutActivatedEvent();\r\n\r\n /** Get Content Control Activated event. */\r\n public static readonly onContentControlActivatedEvent = new ContentControlActivatedEvent();\r\n\r\n /** Get Navigation Aid Activated event. */\r\n public static readonly onNavigationAidActivatedEvent = new NavigationAidActivatedEvent();\r\n\r\n /** Get Widget State Changed event. */\r\n public static readonly onWidgetStateChangedEvent = new WidgetStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onWidgetLabelChangedEvent = new UiEvent<WidgetChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetShowEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetExpandEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetDefsUpdatedEvent = new UiEvent<void>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageNineZoneStateChangedEvent = new UiEvent<FrontstageNineZoneStateChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageRestoreLayoutEvent = new UiEvent<FrontstageEventArgs>();\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelStateChangedEvent = new PanelStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onPanelSizeChangedEvent = new PanelSizeChangedEvent();\r\n\r\n /** Get Nine-zone State Manager. */\r\n public static get NineZoneManager() {\r\n const id = FrontstageManager.activeFrontstageId;\r\n let manager = FrontstageManager._nineZoneManagers.get(id);\r\n if (!manager) {\r\n manager = new NineZoneManager();\r\n FrontstageManager._nineZoneManagers.set(id, manager);\r\n }\r\n return manager;\r\n }\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n FrontstageManager._frontstageDefs.clear();\r\n FrontstageManager._activeFrontstageDef = undefined;\r\n }\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n public static clearFrontstageProviders(): void {\r\n FrontstageManager._frontstageProviders.clear();\r\n FrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n const provider = FrontstageManager._frontstageProviders.get(frontstageId);\r\n let isIModelIndependent = false;\r\n if (provider) {\r\n isIModelIndependent = !!provider.frontstage.props.isIModelIndependent;\r\n }\r\n const imodelId = UiFramework.getIModelConnection()?.iModelId ?? \"noImodel\";\r\n const key = isIModelIndependent ? frontstageId : `[${imodelId}]${frontstageId}`;\r\n return key;\r\n }\r\n\r\n /** Add a Frontstage via a definition.\r\n * @param frontstageDef Definition of the Frontstage to add\r\n */\r\n private static addFrontstageDef(frontstageDef: FrontstageDef): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n\r\n /** @internal */\r\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\r\n // istanbul ignore next\r\n if (!iModelId)\r\n return;\r\n const keysToRemove: string[] = [];\r\n FrontstageManager._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\r\n if (key.startsWith(`[${iModelId}]`))\r\n keysToRemove.push(key);\r\n });\r\n keysToRemove.forEach((keyValue) => {\r\n FrontstageManager._frontstageDefs.delete(keyValue);\r\n });\r\n }\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\r\n FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\r\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\r\n * `getFrontstageDef` to get a FrontstageDef.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\r\n const key = FrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = FrontstageManager._frontstageDefs.get(key);\r\n if (frontstageDef instanceof FrontstageDef)\r\n return frontstageDef;\r\n return undefined;\r\n }\r\n\r\n private static findFrontstageProvider(id?: string): FrontstageProvider | undefined {\r\n return id ? FrontstageManager._frontstageProviders.get(id) : undefined;\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\r\n if (!id)\r\n return FrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = FrontstageManager.findFrontstageDef(id);\r\n if (frontstageDef)\r\n return frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (id) {\r\n const frontstageProvider = FrontstageManager.findFrontstageProvider(id);\r\n if (frontstageProvider) {\r\n frontstageDef = await FrontstageDef.create(frontstageProvider);\r\n // istanbul ignore else\r\n if (frontstageDef) {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n return frontstageDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n public static get activeFrontstageDef(): FrontstageDef | undefined {\r\n return FrontstageManager._activeFrontstageDef;\r\n }\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n public static get activeFrontstageId(): string {\r\n const activeFrontstage = FrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (FrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (FrontstageManager.findFrontstageProvider(frontstageId))\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\r\n const frontstageDef = await FrontstageManager.getFrontstageDef(frontstageId);\r\n if (!frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`);\r\n return;\r\n }\r\n\r\n return FrontstageManager.setActiveFrontstageDef(frontstageDef);\r\n }\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\r\n if (FrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n FrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n FrontstageManager.onFrontstageDeactivatedEvent.emit({\r\n deactivatedFrontstageDef,\r\n activatedFrontstageDef: frontstageDef,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n FrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n FrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiShowHideManager.handleFrontstageReady();\r\n\r\n frontstageDef.startDefaultTool();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n FrontstageManager._isLoading = false;\r\n }\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n public static async deactivateFrontstageDef(): Promise<void> {\r\n await this.setActiveFrontstageDef(undefined);\r\n }\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n public static get activeToolId(): string {\r\n return FrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n FrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n FrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n FrontstageManager.setActiveToolId(tool.toolId);\r\n FrontstageManager.onToolIconChangedEvent.emit({ iconSpec: tool.iconSpec });\r\n }\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n public static get activeToolInformation(): ToolInformation | undefined {\r\n return FrontstageManager._toolInformationMap.get(FrontstageManager.activeToolId);\r\n }\r\n\r\n /** Gets the Tool Setting React node of the active tool.\r\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\r\n * @internal\r\n */\r\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\r\n const activeToolInformation = FrontstageManager.activeToolInformation;\r\n return (activeToolInformation) ? activeToolInformation.toolUiProvider : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n FrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n\r\n await activeFrontstageDef.setActiveContent();\r\n }\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n const contentLayoutDef = ContentLayoutManager.getLayoutForGroup(contentGroup);\r\n if (contentLayoutDef) {\r\n await FrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n }\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n FrontstageManager.pushModalFrontstage(modalFrontstage);\r\n }\r\n\r\n private static pushModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n const timeTracker = new TimeTracker();\r\n timeTracker.startTiming();\r\n const frontstageItem: ModalFrontstageItem = { modalFrontstage, timeTracker };\r\n FrontstageManager._modalFrontstages.push(frontstageItem);\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n public static closeModalFrontstage(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n FrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: FrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n FrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = FrontstageManager._modalFrontstages.pop();\r\n // istanbul ignore else\r\n if (frontstageItem) {\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n const timeTracker = frontstageItem.timeTracker;\r\n timeTracker.stopTiming();\r\n FrontstageManager.onModalFrontstageClosedEvent.emit({\r\n modalFrontstage,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiShowHideManager.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n FrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n return modalFrontstage;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n public static get modalFrontstageCount(): number {\r\n return FrontstageManager._modalFrontstages.length;\r\n }\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\r\n FrontstageManager.onNavigationAidActivatedEvent.emit({ navigationAidId, iModelConnection });\r\n }\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\r\n const widgetDef = FrontstageManager.findWidget(widgetId);\r\n if (widgetDef) {\r\n widgetDef.setWidgetState(state);\r\n return true;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `setWidgetState: Could not find Widget with id of '${widgetId}'`);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n public static findWidget(widgetId: string): WidgetDef | undefined {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef)\r\n return activeFrontstageDef.findWidgetDef(widgetId);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\r\n if (FrontstageManager.nestedFrontstageCount === 0)\r\n FrontstageManager._activePrimaryFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n\r\n FrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await FrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n FrontstageManager._nestedFrontstages.push(nestedFrontstage);\r\n }\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n public static async closeNestedFrontstage(): Promise<void> {\r\n FrontstageManager.popNestedFrontstage();\r\n\r\n if (FrontstageManager.nestedFrontstageCount > 0) {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager._activePrimaryFrontstageDef);\r\n FrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n FrontstageManager._nestedFrontstages.pop();\r\n }\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\r\n // istanbul ignore else\r\n if (FrontstageManager._nestedFrontstages.length > 0)\r\n return FrontstageManager._nestedFrontstages[FrontstageManager._nestedFrontstages.length - 1];\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n public static get nestedFrontstageCount(): number {\r\n return FrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"FrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { WidgetState } from \"@itwin/appui-abstract\";\r\nimport { Size, UiEvent } from \"@itwin/core-react\";\r\nimport { NineZoneManager } from \"@itwin/appui-layout-react\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentGroup } from \"../content/ContentGroup\";\r\nimport { ContentLayoutActivatedEvent, ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelSizeChangedEvent, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../zones/toolsettings/ToolInformation\";\r\nimport { SyncToolSettingsPropertiesEventArgs, ToolSettingsManager } from \"../zones/toolsettings/ToolSettingsManager\";\r\nimport { ToolUiProvider } from \"../zones/toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\n\r\n// -----------------------------------------------------------------------------\r\n// Frontstage Events\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\ninterface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n// -----------------------------------------------------------------------------\r\n// FrontstageManager class\r\n// -----------------------------------------------------------------------------\r\n\r\n/** Frontstage Manager class.\r\n * @public\r\n */\r\nexport class FrontstageManager {\r\n private static _initialized = false;\r\n private static _isLoading = false;\r\n private static _activeToolId = \"\";\r\n private static _activeFrontstageDef: FrontstageDef | undefined;\r\n private static _frontstageDefs = new Map<string, FrontstageDef>();\r\n private static _modalFrontstages: ModalFrontstageItem[] = new Array<ModalFrontstageItem>();\r\n private static _nineZoneManagers = new Map<string, NineZoneManager>();\r\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\r\n private static _nineZoneSize: Size | undefined = undefined;\r\n\r\n private static _nestedFrontstages: FrontstageDef[] = new Array<FrontstageDef>();\r\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\r\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<string, ToolInformation>();\r\n\r\n /** This should only be called within FrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!FrontstageManager._toolInformationMap.get(toolId))\r\n FrontstageManager._toolInformationMap.set(toolId, new ToolInformation(toolId));\r\n }\r\n\r\n // pass on SyncToolSettingsPropertiesEvent from ToolAdmin so they are treated as DialogItemSync events\r\n private static handleSyncToolSettingsPropertiesEvent(args: SyncToolSettingsPropertiesEventArgs): void {\r\n FrontstageManager.activeToolSettingsProvider && FrontstageManager.activeToolSettingsProvider.syncToolSettingsProperties(args);\r\n }\r\n\r\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\r\n private static handleReloadToolSettingsEvent(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager.activeToolSettingsProvider) {\r\n FrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the FrontstageManager */\r\n public static initialize() {\r\n if (this._initialized)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.toolAdmin) {\r\n IModelApp.toolAdmin.activeToolChanged.addListener((tool: Tool, _start: StartOrResume) => {\r\n // make sure tool settings properties are cached before creating ToolInformation\r\n ToolSettingsManager.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n ToolSettingsManager.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n FrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n FrontstageManager.setActiveTool(tool);\r\n });\r\n ToolSettingsManager.onSyncToolSettingsProperties.addListener(FrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n ToolSettingsManager.onReloadToolSettingsProperties.addListener(FrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(FrontstageManager._handleSelectedViewportChanged);\r\n }\r\n\r\n this._initialized = true;\r\n }\r\n\r\n /** Handles a Viewport change & sets the active view accordingly */\r\n private static _handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n // istanbul ignore else\r\n if (args.current && FrontstageManager.activeFrontstageDef && !FrontstageManager.isLoading) {\r\n FrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return FrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { FrontstageManager._initialized = v; }\r\n\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n public static get isLoading(): boolean { return FrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return FrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n FrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** Get Frontstage Deactivated event. */\r\n public static readonly onFrontstageDeactivatedEvent = new FrontstageDeactivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageActivatedEvent = new FrontstageActivatedEvent();\r\n\r\n /** Get Frontstage Activated event. */\r\n public static readonly onFrontstageReadyEvent = new FrontstageReadyEvent();\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n public static readonly onModalFrontstageChangedEvent = new ModalFrontstageChangedEvent();\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n public static readonly onModalFrontstageClosedEvent = new ModalFrontstageClosedEvent();\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n public static readonly onCloseModalFrontstageRequestedEvent = new ModalFrontstageRequestedCloseEvent();\r\n\r\n /** Get Tool Activated event. */\r\n public static readonly onToolActivatedEvent = new ToolActivatedEvent();\r\n\r\n /** Get ToolSetting Reload event. */\r\n public static readonly onToolSettingsReloadEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Panel Opened event.\r\n * @internal\r\n */\r\n public static readonly onToolPanelOpenedEvent = new UiEvent<void>();\r\n\r\n /** Get Tool Icon Changed event. */\r\n public static readonly onToolIconChangedEvent = new ToolIconChangedEvent();\r\n\r\n /** Get Content Layout Activated event. */\r\n public static readonly onContentLayoutActivatedEvent = new ContentLayoutActivatedEvent();\r\n\r\n /** Get Content Control Activated event. */\r\n public static readonly onContentControlActivatedEvent = new ContentControlActivatedEvent();\r\n\r\n /** Get Navigation Aid Activated event. */\r\n public static readonly onNavigationAidActivatedEvent = new NavigationAidActivatedEvent();\r\n\r\n /** Get Widget State Changed event. */\r\n public static readonly onWidgetStateChangedEvent = new WidgetStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onWidgetLabelChangedEvent = new UiEvent<WidgetChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetShowEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetExpandEvent = new UiEvent<WidgetEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onWidgetDefsUpdatedEvent = new UiEvent<void>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageNineZoneStateChangedEvent = new UiEvent<FrontstageNineZoneStateChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onFrontstageRestoreLayoutEvent = new UiEvent<FrontstageEventArgs>();\r\n\r\n /** Get Widget State Changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelStateChangedEvent = new PanelStateChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly onPanelSizeChangedEvent = new PanelSizeChangedEvent();\r\n\r\n /** Get Nine-zone State Manager. */\r\n public static get NineZoneManager() {\r\n const id = FrontstageManager.activeFrontstageId;\r\n let manager = FrontstageManager._nineZoneManagers.get(id);\r\n if (!manager) {\r\n manager = new NineZoneManager();\r\n FrontstageManager._nineZoneManagers.set(id, manager);\r\n }\r\n return manager;\r\n }\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n FrontstageManager._frontstageDefs.clear();\r\n FrontstageManager._activeFrontstageDef = undefined;\r\n }\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n public static clearFrontstageProviders(): void {\r\n FrontstageManager._frontstageProviders.clear();\r\n FrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n const provider = FrontstageManager._frontstageProviders.get(frontstageId);\r\n let isIModelIndependent = false;\r\n if (provider) {\r\n isIModelIndependent = !!provider.frontstage.props.isIModelIndependent;\r\n }\r\n const imodelId = UiFramework.getIModelConnection()?.iModelId ?? \"noImodel\";\r\n const key = isIModelIndependent ? frontstageId : `[${imodelId}]${frontstageId}`;\r\n return key;\r\n }\r\n\r\n /** Add a Frontstage via a definition.\r\n * @param frontstageDef Definition of the Frontstage to add\r\n */\r\n private static addFrontstageDef(frontstageDef: FrontstageDef): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n\r\n /** @internal */\r\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\r\n // istanbul ignore next\r\n if (!iModelId)\r\n return;\r\n const keysToRemove: string[] = [];\r\n FrontstageManager._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\r\n if (key.startsWith(`[${iModelId}]`))\r\n keysToRemove.push(key);\r\n });\r\n keysToRemove.forEach((keyValue) => {\r\n FrontstageManager._frontstageDefs.delete(keyValue);\r\n });\r\n }\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n public static addFrontstageProvider(frontstageProvider: FrontstageProvider): void {\r\n const key = FrontstageManager.getFrontstageKey(frontstageProvider.id);\r\n key && FrontstageManager._frontstageDefs.delete(key);\r\n FrontstageManager._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\r\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\r\n * `getFrontstageDef` to get a FrontstageDef.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\r\n const key = FrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = FrontstageManager._frontstageDefs.get(key);\r\n if (frontstageDef instanceof FrontstageDef)\r\n return frontstageDef;\r\n return undefined;\r\n }\r\n\r\n private static findFrontstageProvider(id?: string): FrontstageProvider | undefined {\r\n return id ? FrontstageManager._frontstageProviders.get(id) : undefined;\r\n }\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n public static async getFrontstageDef(id?: string): Promise<FrontstageDef | undefined> {\r\n if (!id)\r\n return FrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = FrontstageManager.findFrontstageDef(id);\r\n if (frontstageDef)\r\n return frontstageDef;\r\n\r\n // istanbul ignore else\r\n if (id) {\r\n const frontstageProvider = FrontstageManager.findFrontstageProvider(id);\r\n if (frontstageProvider) {\r\n frontstageDef = await FrontstageDef.create(frontstageProvider);\r\n // istanbul ignore else\r\n if (frontstageDef) {\r\n const key = FrontstageManager.getFrontstageKey(frontstageDef.id);\r\n FrontstageManager._frontstageDefs.set(key, frontstageDef);\r\n }\r\n return frontstageDef;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n public static get activeFrontstageDef(): FrontstageDef | undefined {\r\n return FrontstageManager._activeFrontstageDef;\r\n }\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n public static get activeFrontstageId(): string {\r\n const activeFrontstage = FrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (FrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (FrontstageManager.findFrontstageProvider(frontstageId))\r\n return true;\r\n return false;\r\n }\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\r\n const frontstageDef = await FrontstageManager.getFrontstageDef(frontstageId);\r\n if (!frontstageDef) {\r\n Logger.logError(UiFramework.loggerCategory(this), `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`);\r\n return;\r\n }\r\n\r\n return FrontstageManager.setActiveFrontstageDef(frontstageDef);\r\n }\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n public static async setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void> {\r\n if (FrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n FrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n FrontstageManager.onFrontstageDeactivatedEvent.emit({\r\n deactivatedFrontstageDef,\r\n activatedFrontstageDef: frontstageDef,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n FrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n FrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiShowHideManager.handleFrontstageReady();\r\n\r\n frontstageDef.startDefaultTool();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n FrontstageManager._isLoading = false;\r\n }\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n public static async deactivateFrontstageDef(): Promise<void> {\r\n await this.setActiveFrontstageDef(undefined);\r\n }\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n public static get activeToolId(): string {\r\n return FrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n FrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = FrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n FrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n FrontstageManager.setActiveToolId(tool.toolId);\r\n FrontstageManager.onToolIconChangedEvent.emit({ iconSpec: tool.iconSpec });\r\n }\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n public static get activeToolInformation(): ToolInformation | undefined {\r\n return FrontstageManager._toolInformationMap.get(FrontstageManager.activeToolId);\r\n }\r\n\r\n /** Gets the Tool Setting React node of the active tool.\r\n * @return Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.\r\n * @internal\r\n */\r\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\r\n const activeToolInformation = FrontstageManager.activeToolInformation;\r\n return (activeToolInformation) ? activeToolInformation.toolUiProvider : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentLayoutDef Content layout to make active\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveLayout(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): Promise<void> {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n FrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n FrontstageManager._isLoading = false;\r\n\r\n await activeFrontstageDef.setActiveContent();\r\n }\r\n }\r\n\r\n /** Sets the active layout, content group and active content.\r\n * @param contentGroup Content Group to make active\r\n */\r\n public static async setActiveContentGroup(contentGroup: ContentGroup): Promise<void> {\r\n const contentLayoutDef = ContentLayoutManager.getLayoutForGroup(contentGroup);\r\n if (contentLayoutDef) {\r\n await FrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\r\n }\r\n }\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n public static openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n FrontstageManager.pushModalFrontstage(modalFrontstage);\r\n }\r\n\r\n private static pushModalFrontstage(modalFrontstage: ModalFrontstageInfo): void {\r\n const timeTracker = new TimeTracker();\r\n timeTracker.startTiming();\r\n const frontstageItem: ModalFrontstageItem = { modalFrontstage, timeTracker };\r\n FrontstageManager._modalFrontstages.push(frontstageItem);\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n public static closeModalFrontstage(): void {\r\n // istanbul ignore else\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n FrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: FrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n FrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = FrontstageManager._modalFrontstages.pop();\r\n // istanbul ignore else\r\n if (frontstageItem) {\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n const timeTracker = frontstageItem.timeTracker;\r\n timeTracker.stopTiming();\r\n FrontstageManager.onModalFrontstageClosedEvent.emit({\r\n modalFrontstage,\r\n totalTime: timeTracker.getTotalTimeSeconds(),\r\n engagementTime: timeTracker.getEngagementTimeSeconds(),\r\n idleTime: timeTracker.getIdleTimeSeconds(),\r\n });\r\n }\r\n\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiShowHideManager.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n FrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: FrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n FrontstageManager.emitModalFrontstageChangedEvent();\r\n }\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\r\n if (FrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = FrontstageManager._modalFrontstages[FrontstageManager._modalFrontstages.length - 1];\r\n const modalFrontstage = frontstageItem.modalFrontstage;\r\n return modalFrontstage;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n public static get modalFrontstageCount(): number {\r\n return FrontstageManager._modalFrontstages.length;\r\n }\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n public static setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection) {\r\n FrontstageManager.onNavigationAidActivatedEvent.emit({ navigationAidId, iModelConnection });\r\n }\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\r\n const widgetDef = FrontstageManager.findWidget(widgetId);\r\n if (widgetDef) {\r\n widgetDef.setWidgetState(state);\r\n return true;\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `setWidgetState: Could not find Widget with id of '${widgetId}'`);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n public static findWidget(widgetId: string): WidgetDef | undefined {\r\n const activeFrontstageDef = FrontstageManager.activeFrontstageDef;\r\n\r\n // istanbul ignore else\r\n if (activeFrontstageDef)\r\n return activeFrontstageDef.findWidgetDef(widgetId);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n public static async openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void> {\r\n if (FrontstageManager.nestedFrontstageCount === 0)\r\n FrontstageManager._activePrimaryFrontstageDef = FrontstageManager._activeFrontstageDef;\r\n\r\n FrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await FrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n FrontstageManager._nestedFrontstages.push(nestedFrontstage);\r\n }\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n public static async closeNestedFrontstage(): Promise<void> {\r\n FrontstageManager.popNestedFrontstage();\r\n\r\n if (FrontstageManager.nestedFrontstageCount > 0) {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await FrontstageManager.setActiveFrontstageDef(FrontstageManager._activePrimaryFrontstageDef);\r\n FrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n FrontstageManager._nestedFrontstages.pop();\r\n }\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\r\n // istanbul ignore else\r\n if (FrontstageManager._nestedFrontstages.length > 0)\r\n return FrontstageManager._nestedFrontstages[FrontstageManager._nestedFrontstages.length - 1];\r\n\r\n return undefined;\r\n }\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n public static get nestedFrontstageCount(): number {\r\n return FrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "3.3.0-dev.
|
|
3
|
+
"version": "3.3.0-dev.9",
|
|
4
4
|
"description": "UI framework",
|
|
5
5
|
"main": "lib/cjs/appui-react.js",
|
|
6
6
|
"module": "lib/esm/appui-react.js",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"url": "http://www.bentley.com"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@itwin/appui-abstract": "^3.3.0-dev.
|
|
24
|
-
"@itwin/appui-layout-react": "^3.3.0-dev.
|
|
25
|
-
"@itwin/components-react": "^3.3.0-dev.
|
|
26
|
-
"@itwin/core-bentley": "^3.3.0-dev.
|
|
27
|
-
"@itwin/core-common": "^3.3.0-dev.
|
|
28
|
-
"@itwin/core-frontend": "^3.3.0-dev.
|
|
29
|
-
"@itwin/core-geometry": "^3.3.0-dev.
|
|
30
|
-
"@itwin/core-markup": "^3.3.0-dev.
|
|
31
|
-
"@itwin/core-quantity": "^3.3.0-dev.
|
|
32
|
-
"@itwin/core-react": "^3.3.0-dev.
|
|
33
|
-
"@itwin/imodel-components-react": "^3.3.0-dev.
|
|
34
|
-
"@itwin/presentation-common": "^3.3.0-dev.
|
|
35
|
-
"@itwin/presentation-frontend": "^3.3.0-dev.
|
|
23
|
+
"@itwin/appui-abstract": "^3.3.0-dev.9",
|
|
24
|
+
"@itwin/appui-layout-react": "^3.3.0-dev.9",
|
|
25
|
+
"@itwin/components-react": "^3.3.0-dev.9",
|
|
26
|
+
"@itwin/core-bentley": "^3.3.0-dev.9",
|
|
27
|
+
"@itwin/core-common": "^3.3.0-dev.9",
|
|
28
|
+
"@itwin/core-frontend": "^3.3.0-dev.9",
|
|
29
|
+
"@itwin/core-geometry": "^3.3.0-dev.9",
|
|
30
|
+
"@itwin/core-markup": "^3.3.0-dev.9",
|
|
31
|
+
"@itwin/core-quantity": "^3.3.0-dev.9",
|
|
32
|
+
"@itwin/core-react": "^3.3.0-dev.9",
|
|
33
|
+
"@itwin/imodel-components-react": "^3.3.0-dev.9",
|
|
34
|
+
"@itwin/presentation-common": "^3.3.0-dev.9",
|
|
35
|
+
"@itwin/presentation-frontend": "^3.3.0-dev.9",
|
|
36
36
|
"react": "^17.0.0",
|
|
37
37
|
"react-dom": "^17.0.0",
|
|
38
38
|
"react-redux": "^7.2.2",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
"NOTE: All tools used by scripts in this package must be listed as devDependencies"
|
|
44
44
|
],
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@itwin/appui-abstract": "3.3.0-dev.
|
|
47
|
-
"@itwin/appui-layout-react": "3.3.0-dev.
|
|
48
|
-
"@itwin/build-tools": "3.3.0-dev.
|
|
49
|
-
"@itwin/components-react": "3.3.0-dev.
|
|
50
|
-
"@itwin/core-bentley": "3.3.0-dev.
|
|
51
|
-
"@itwin/core-common": "3.3.0-dev.
|
|
52
|
-
"@itwin/core-frontend": "3.3.0-dev.
|
|
53
|
-
"@itwin/core-geometry": "3.3.0-dev.
|
|
54
|
-
"@itwin/core-markup": "3.3.0-dev.
|
|
55
|
-
"@itwin/core-quantity": "3.3.0-dev.
|
|
56
|
-
"@itwin/core-react": "3.3.0-dev.
|
|
57
|
-
"@itwin/eslint-plugin": "3.3.0-dev.
|
|
58
|
-
"@itwin/imodel-components-react": "3.3.0-dev.
|
|
59
|
-
"@itwin/presentation-common": "3.3.0-dev.
|
|
60
|
-
"@itwin/presentation-frontend": "3.3.0-dev.
|
|
61
|
-
"@itwin/presentation-testing": "3.3.0-dev.
|
|
46
|
+
"@itwin/appui-abstract": "3.3.0-dev.9",
|
|
47
|
+
"@itwin/appui-layout-react": "3.3.0-dev.9",
|
|
48
|
+
"@itwin/build-tools": "3.3.0-dev.9",
|
|
49
|
+
"@itwin/components-react": "3.3.0-dev.9",
|
|
50
|
+
"@itwin/core-bentley": "3.3.0-dev.9",
|
|
51
|
+
"@itwin/core-common": "3.3.0-dev.9",
|
|
52
|
+
"@itwin/core-frontend": "3.3.0-dev.9",
|
|
53
|
+
"@itwin/core-geometry": "3.3.0-dev.9",
|
|
54
|
+
"@itwin/core-markup": "3.3.0-dev.9",
|
|
55
|
+
"@itwin/core-quantity": "3.3.0-dev.9",
|
|
56
|
+
"@itwin/core-react": "3.3.0-dev.9",
|
|
57
|
+
"@itwin/eslint-plugin": "3.3.0-dev.9",
|
|
58
|
+
"@itwin/imodel-components-react": "3.3.0-dev.9",
|
|
59
|
+
"@itwin/presentation-common": "3.3.0-dev.9",
|
|
60
|
+
"@itwin/presentation-frontend": "3.3.0-dev.9",
|
|
61
|
+
"@itwin/presentation-testing": "3.3.0-dev.9",
|
|
62
62
|
"@testing-library/react": "^12.0.0",
|
|
63
63
|
"@testing-library/react-hooks": "^7.0.2",
|
|
64
64
|
"@types/chai": "^4.1.4",
|
|
@@ -113,8 +113,8 @@
|
|
|
113
113
|
"dependencies": {
|
|
114
114
|
"@bentley/icons-generic": "^1.0.15",
|
|
115
115
|
"@bentley/icons-generic-webfont": "^1.0.15",
|
|
116
|
-
"@itwin/core-telemetry": "3.3.0-dev.
|
|
117
|
-
"@itwin/presentation-components": "3.3.0-dev.
|
|
116
|
+
"@itwin/core-telemetry": "3.3.0-dev.9",
|
|
117
|
+
"@itwin/presentation-components": "3.3.0-dev.9",
|
|
118
118
|
"@itwin/itwinui-css": "0.x",
|
|
119
119
|
"@itwin/itwinui-react": "^1.32.0",
|
|
120
120
|
"@itwin/itwinui-icons-react": "^1.8.0",
|