@itwin/appui-react 3.2.0 → 3.2.1

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 CHANGED
@@ -1,6 +1,16 @@
1
1
  # Change Log - @itwin/appui-react
2
2
 
3
- This log was last generated on Fri, 20 May 2022 13:10:54 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 07 Jun 2022 15:02:56 GMT and should not be manually modified.
4
+
5
+ ## 3.2.1
6
+ Tue, 07 Jun 2022 15:02:56 GMT
7
+
8
+ ### Updates
9
+
10
+ - Ensure selection scope override labels are honored.
11
+ - Models Tree: Fix performance of determining Subject nodes' display state.
12
+ - Models Tree: Optimize creating subjects hierarchy
13
+ - Remove cached frontstageDef if associated FrontstageProvider is re-registered.
4
14
 
5
15
  ## 3.2.0
6
16
  Fri, 20 May 2022 13:10:54 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;IAIjF;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC;;;;;OAKG;WACiB,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAyBrF;;OAEG;IACH,WAAkB,mBAAmB,IAAI,aAAa,GAAG,SAAS,CAEjE;IAED;;OAEG;IACH,WAAkB,kBAAkB,IAAI,MAAM,CAG7C;WAEa,aAAa,CAAC,YAAY,EAAE,MAAM;IAQhD;;;OAGG;WACiB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5E;;;OAGG;WACiB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCnG;OACG;WACiB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACH,WAAkB,YAAY,IAAI,MAAM,CAEvC;IAED,8BAA8B;WAChB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASnD,2BAA2B;WACb,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAK7C,iDAAiD;IACjD,WAAkB,qBAAqB,IAAI,eAAe,GAAG,SAAS,CAErE;IAED;;;OAGG;IACH,WAAkB,0BAA0B,IAAI,cAAc,GAAG,SAAS,CAGzE;IAED;;;OAGG;WACiB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlH;;OAEG;WACiB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF;;OAEG;WACW,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,GAAG,IAAI;IAI7E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAQlC;OACG;WACW,oBAAoB,IAAI,IAAI;IAe1C,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAoBjC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAI9C;OACG;WACW,qBAAqB,IAAI,IAAI;IAI3C;;OAEG;IACH,WAAkB,qBAAqB,IAAI,mBAAmB,GAAG,SAAS,CAQzE;IAED;;OAEG;IACH,WAAkB,oBAAoB,IAAI,MAAM,CAE/C;IAED;;;OAGG;WACW,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIhG;;;;OAIG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAY3E;;;OAGG;WACW,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAUjE;;OAEG;WACiB,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IASxF,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAInC;OACG;WACiB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1D,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC;;OAEG;IACH,WAAkB,sBAAsB,IAAI,aAAa,GAAG,SAAS,CAMpE;IAED;;OAEG;IACH,WAAkB,qBAAqB,IAAI,MAAM,CAEhD;CAEF"}
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"]}
@@ -121,6 +121,7 @@
121
121
  }
122
122
  ],
123
123
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") = NULL AND json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") = NULL AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
124
+ "hasChildren": "Always",
124
125
  "hideIfNoChildren": true,
125
126
  "groupByClass": false,
126
127
  "groupByLabel": false
@@ -152,6 +153,7 @@
152
153
  }
153
154
  ],
154
155
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND (json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") <> NULL OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL) AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
156
+ "hasChildren": "Always",
155
157
  "hideNodesInHierarchy": true,
156
158
  "groupByClass": false,
157
159
  "groupByLabel": false
@@ -121,6 +121,7 @@
121
121
  }
122
122
  ],
123
123
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") = NULL AND json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") = NULL AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
124
+ "hasChildren": "Always",
124
125
  "hideIfNoChildren": true,
125
126
  "groupByClass": false,
126
127
  "groupByLabel": false
@@ -152,6 +153,7 @@
152
153
  }
153
154
  ],
154
155
  "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND (json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") <> NULL OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL) AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
156
+ "hasChildren": "Always",
155
157
  "hideNodesInHierarchy": true,
156
158
  "groupByClass": false,
157
159
  "groupByLabel": false
@@ -333,41 +333,54 @@ class SubjectModelIdsCache {
333
333
  constructor(imodel) {
334
334
  this._imodel = imodel;
335
335
  }
336
- async initSubjectsHierarchy() {
337
- this._subjectsHierarchy = new Map();
338
- const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;
339
- const result = this._imodel.query(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
340
- for await (const row of result) {
341
- let list = this._subjectsHierarchy.get(row.parentId);
336
+ async initSubjectModels() {
337
+ var _a;
338
+ const querySubjects = () => {
339
+ const subjectsQuery = `
340
+ SELECT ECInstanceId id, Parent.Id parentId, json_extract(JsonProperties, '$.Subject.Model.TargetPartition') targetPartitionId
341
+ FROM bis.Subject
342
+ `;
343
+ return this._imodel.query(subjectsQuery, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
344
+ };
345
+ const queryModels = () => {
346
+ const modelsQuery = `
347
+ SELECT p.ECInstanceId id, p.Parent.Id parentId, json_extract(p.JsonProperties, '$.PhysicalPartition.Model.Content') content
348
+ FROM bis.InformationPartitionElement p
349
+ INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId
350
+ WHERE NOT m.IsPrivate
351
+ `;
352
+ return this._imodel.query(modelsQuery, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
353
+ };
354
+ function pushToMap(map, key, value) {
355
+ let list = map.get(key);
342
356
  if (!list) {
343
357
  list = [];
344
- this._subjectsHierarchy.set(row.parentId, list);
358
+ map.set(key, list);
345
359
  }
346
- list.push(row.id);
360
+ list.push(value);
361
+ }
362
+ this._subjectsHierarchy = new Map();
363
+ const targetPartitionSubjects = new Map();
364
+ for await (const subject of querySubjects()) {
365
+ if (subject.parentId)
366
+ pushToMap(this._subjectsHierarchy, subject.parentId, subject.id);
367
+ if (subject.targetPartitionId)
368
+ pushToMap(targetPartitionSubjects, subject.targetPartitionId, subject.id);
347
369
  }
348
- }
349
- async initSubjectModels() {
350
370
  this._subjectModels = new Map();
351
- const ecsql = `
352
- SELECT p.ECInstanceId id, s.ECInstanceId subjectId, json_extract(p.JsonProperties, '$.PhysicalPartition.Model.Content') content
353
- FROM bis.InformationPartitionElement p
354
- INNER JOIN bis.GeometricModel3d m ON m.ModeledElement.Id = p.ECInstanceId
355
- INNER JOIN bis.Subject s ON (s.ECInstanceId = p.Parent.Id OR json_extract(s.JsonProperties, '$.Subject.Model.TargetPartition') = printf('0x%x', p.ECInstanceId))
356
- WHERE NOT m.IsPrivate`;
357
- const result = this._imodel.query(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames });
358
- for await (const row of result) {
359
- let list = this._subjectModels.get(row.subjectId);
360
- if (!list) {
361
- list = [];
362
- this._subjectModels.set(row.subjectId, list);
363
- }
364
- const isHidden = row.content !== undefined;
365
- list.push({ id: row.id, isHidden });
371
+ for await (const model of queryModels()) {
372
+ const subjectIds = (_a = targetPartitionSubjects.get(model.id)) !== null && _a !== void 0 ? _a : [];
373
+ if (!subjectIds.includes(model.parentId))
374
+ subjectIds.push(model.parentId);
375
+ const v = { id: model.id, isHidden: (model.content !== undefined) };
376
+ subjectIds.forEach((subjectId) => {
377
+ pushToMap(this._subjectModels, subjectId, v);
378
+ });
366
379
  }
367
380
  }
368
381
  async initCache() {
369
382
  if (!this._init) {
370
- this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });
383
+ this._init = this.initSubjectModels().then(() => { });
371
384
  }
372
385
  return this._init;
373
386
  }