@itwin/appui-react 4.0.0-dev.16 → 4.0.0-dev.17
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/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +6 -2
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +12 -3
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +6 -2
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +5 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +13 -197
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +32 -4
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +6 -2
- package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +12 -3
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +6 -2
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +5 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +13 -197
- package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +31 -3
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalFrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/InternalFrontstageManager.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/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { Size } from \"@itwin/core-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 { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\r\nimport { ToolUiProvider } from \"../toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\nimport { FrontstageActivatedEvent, FrontstageDeactivatedEvent, FrontstageReadyEvent, ModalFrontstageChangedEvent, ModalFrontstageClosedEvent, ModalFrontstageInfo, ModalFrontstageItem, ModalFrontstageRequestedCloseEvent, ToolActivatedEvent, ToolIconChangedEvent } from \"../framework/FrameworkFrontstages\";\r\nimport { SyncToolSettingsPropertiesEventArgs } from \"../framework/FrameworkToolSettings\";\r\n\r\n/** Frontstage Manager class.\r\n * @internal\r\n */\r\nexport class InternalFrontstageManager {\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 _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 InternalFrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!InternalFrontstageManager._toolInformationMap.get(toolId))\r\n InternalFrontstageManager._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 InternalFrontstageManager.activeToolSettingsProvider && InternalFrontstageManager.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 (InternalFrontstageManager.activeToolSettingsProvider) {\r\n InternalFrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the InternalFrontstageManager\r\n * @internal\r\n */\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 UiFramework.toolSettings.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n UiFramework.toolSettings.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n InternalFrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n InternalFrontstageManager.setActiveTool(tool);\r\n });\r\n UiFramework.toolSettings.onSyncToolSettingsProperties.addListener(InternalFrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n UiFramework.toolSettings.onReloadToolSettingsProperties.addListener(InternalFrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(InternalFrontstageManager._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 && InternalFrontstageManager.activeFrontstageDef && !InternalFrontstageManager.isLoading) {\r\n InternalFrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return InternalFrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { InternalFrontstageManager._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 InternalFrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return InternalFrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n InternalFrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** @internal */\r\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\r\n return this._frontstageDefs;\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 /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n InternalFrontstageManager._frontstageDefs.clear();\r\n InternalFrontstageManager._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 InternalFrontstageManager._frontstageProviders.clear();\r\n InternalFrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n return frontstageId;\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 InternalFrontstageManager._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 InternalFrontstageManager._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 = InternalFrontstageManager.getFrontstageKey(frontstageProvider.id);\r\n key && InternalFrontstageManager._frontstageDefs.delete(key);\r\n InternalFrontstageManager._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 = InternalFrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = InternalFrontstageManager._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 ? InternalFrontstageManager._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 InternalFrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = InternalFrontstageManager.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 = InternalFrontstageManager.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 = InternalFrontstageManager.getFrontstageKey(frontstageDef.id);\r\n InternalFrontstageManager._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 InternalFrontstageManager._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 = InternalFrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (InternalFrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (InternalFrontstageManager.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 InternalFrontstageManager.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 InternalFrontstageManager.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 (InternalFrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n InternalFrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = InternalFrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n InternalFrontstageManager.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 InternalFrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n InternalFrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n InternalFrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n InternalFrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiFramework.visibility.handleFrontstageReady();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n InternalFrontstageManager._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 InternalFrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n InternalFrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = InternalFrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n InternalFrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n InternalFrontstageManager.setActiveToolId(tool.toolId);\r\n InternalFrontstageManager.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 InternalFrontstageManager._toolInformationMap.get(InternalFrontstageManager.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 = InternalFrontstageManager.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 = InternalFrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n InternalFrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n InternalFrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n InternalFrontstageManager._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 = UiFramework.content.layouts.getForGroup(contentGroup);\r\n await InternalFrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\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 InternalFrontstageManager.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 InternalFrontstageManager._modalFrontstages.push(frontstageItem);\r\n InternalFrontstageManager.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 (InternalFrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = InternalFrontstageManager._modalFrontstages[InternalFrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n InternalFrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: InternalFrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n InternalFrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = InternalFrontstageManager._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 InternalFrontstageManager.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 InternalFrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiFramework.visibility.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n InternalFrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: InternalFrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n InternalFrontstageManager.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 (InternalFrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = InternalFrontstageManager._modalFrontstages[InternalFrontstageManager._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 InternalFrontstageManager._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 InternalFrontstageManager.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 = InternalFrontstageManager.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 = InternalFrontstageManager.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 (InternalFrontstageManager.nestedFrontstageCount === 0)\r\n InternalFrontstageManager._activePrimaryFrontstageDef = InternalFrontstageManager._activeFrontstageDef;\r\n\r\n InternalFrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await InternalFrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n InternalFrontstageManager._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 InternalFrontstageManager.popNestedFrontstage();\r\n\r\n if (InternalFrontstageManager.nestedFrontstageCount > 0) {\r\n await InternalFrontstageManager.setActiveFrontstageDef(InternalFrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await InternalFrontstageManager.setActiveFrontstageDef(InternalFrontstageManager._activePrimaryFrontstageDef);\r\n InternalFrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n InternalFrontstageManager._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 (InternalFrontstageManager._nestedFrontstages.length > 0)\r\n return InternalFrontstageManager._nestedFrontstages[InternalFrontstageManager._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 InternalFrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"InternalFrontstageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/InternalFrontstageManager.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/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, InteractiveTool, SelectedViewportChangedArgs, StartOrResume, Tool } from \"@itwin/core-frontend\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { Size } from \"@itwin/core-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 { PanelPinnedChangedEventArgs, PanelSizeChangedEvent, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetChangedEventArgs, WidgetDef, WidgetEventArgs, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\r\nimport { ToolUiProvider } from \"../toolsettings/ToolUiProvider\";\r\nimport { FrontstageDef, FrontstageEventArgs, FrontstageNineZoneStateChangedEventArgs } from \"./FrontstageDef\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\nimport { FrontstageActivatedEvent, FrontstageDeactivatedEvent, FrontstageReadyEvent, ModalFrontstageChangedEvent, ModalFrontstageClosedEvent, ModalFrontstageInfo, ModalFrontstageItem, ModalFrontstageRequestedCloseEvent, ToolActivatedEvent, ToolIconChangedEvent } from \"../framework/FrameworkFrontstages\";\r\nimport { SyncToolSettingsPropertiesEventArgs } from \"../framework/FrameworkToolSettings\";\r\n\r\n/** Frontstage Manager class.\r\n * @internal\r\n */\r\nexport class InternalFrontstageManager {\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 _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 InternalFrontstageManager and its tests.\r\n * @internal\r\n */\r\n public static ensureToolInformationIsSet(toolId: string): void {\r\n // istanbul ignore else\r\n if (!InternalFrontstageManager._toolInformationMap.get(toolId))\r\n InternalFrontstageManager._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 InternalFrontstageManager.activeToolSettingsProvider && InternalFrontstageManager.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 (InternalFrontstageManager.activeToolSettingsProvider) {\r\n InternalFrontstageManager.activeToolSettingsProvider.reloadPropertiesFromTool();\r\n }\r\n }\r\n\r\n /** Initializes the InternalFrontstageManager\r\n * @internal\r\n */\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 UiFramework.toolSettings.clearToolSettingsData();\r\n // istanbul ignore else\r\n if (tool instanceof InteractiveTool)\r\n UiFramework.toolSettings.initializeDataForTool(tool);\r\n\r\n // if the tool data is not already cached then see if there is data to cache\r\n InternalFrontstageManager.ensureToolInformationIsSet(tool.toolId);\r\n InternalFrontstageManager.setActiveTool(tool);\r\n });\r\n UiFramework.toolSettings.onSyncToolSettingsProperties.addListener(InternalFrontstageManager.handleSyncToolSettingsPropertiesEvent);\r\n UiFramework.toolSettings.onReloadToolSettingsProperties.addListener(InternalFrontstageManager.handleReloadToolSettingsEvent);\r\n }\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(InternalFrontstageManager._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 && InternalFrontstageManager.activeFrontstageDef && !InternalFrontstageManager.isLoading) {\r\n InternalFrontstageManager.activeFrontstageDef.setActiveViewFromViewport(args.current);\r\n }\r\n };\r\n\r\n /** @internal */\r\n public static get isInitialized(): boolean { return InternalFrontstageManager._initialized; }\r\n public static set isInitialized(v: boolean) { InternalFrontstageManager._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 InternalFrontstageManager._isLoading; }\r\n\r\n /** @internal */\r\n public static get nineZoneSize() { return InternalFrontstageManager._nineZoneSize; }\r\n\r\n public static set nineZoneSize(size) {\r\n InternalFrontstageManager._nineZoneSize = size;\r\n }\r\n\r\n /** @internal */\r\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\r\n return this._frontstageDefs;\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 panel state changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelStateChangedEvent = new PanelStateChangedEvent();\r\n\r\n /** Get panel pinned changed event.\r\n * @alpha\r\n */\r\n public static readonly onPanelPinnedChangedEvent = new UiEvent<PanelPinnedChangedEventArgs>();\r\n\r\n /** @internal */\r\n public static readonly onPanelSizeChangedEvent = new PanelSizeChangedEvent();\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n public static clearFrontstageDefs(): void {\r\n InternalFrontstageManager._frontstageDefs.clear();\r\n InternalFrontstageManager._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 InternalFrontstageManager._frontstageProviders.clear();\r\n InternalFrontstageManager.clearFrontstageDefs();\r\n }\r\n\r\n private static getFrontstageKey(frontstageId: string) {\r\n return frontstageId;\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 InternalFrontstageManager._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 InternalFrontstageManager._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 = InternalFrontstageManager.getFrontstageKey(frontstageProvider.id);\r\n key && InternalFrontstageManager._frontstageDefs.delete(key);\r\n InternalFrontstageManager._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 = InternalFrontstageManager.getFrontstageKey(id);\r\n const frontstageDef = InternalFrontstageManager._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 ? InternalFrontstageManager._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 InternalFrontstageManager.activeFrontstageDef;\r\n\r\n let frontstageDef = InternalFrontstageManager.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 = InternalFrontstageManager.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 = InternalFrontstageManager.getFrontstageKey(frontstageDef.id);\r\n InternalFrontstageManager._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 InternalFrontstageManager._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 = InternalFrontstageManager._activeFrontstageDef;\r\n return (activeFrontstage) ? activeFrontstage.id : \"\";\r\n }\r\n\r\n public static hasFrontstage(frontstageId: string) {\r\n if (InternalFrontstageManager.findFrontstageDef(frontstageId))\r\n return true;\r\n if (InternalFrontstageManager.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 InternalFrontstageManager.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 InternalFrontstageManager.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 (InternalFrontstageManager._activeFrontstageDef === frontstageDef)\r\n return;\r\n\r\n InternalFrontstageManager._isLoading = true;\r\n\r\n const deactivatedFrontstageDef = InternalFrontstageManager._activeFrontstageDef;\r\n if (deactivatedFrontstageDef) {\r\n await deactivatedFrontstageDef.onDeactivated();\r\n\r\n const timeTracker = deactivatedFrontstageDef.timeTracker;\r\n InternalFrontstageManager.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 InternalFrontstageManager._activeFrontstageDef = frontstageDef;\r\n\r\n if (frontstageDef) {\r\n await frontstageDef.onActivated();\r\n\r\n InternalFrontstageManager.onFrontstageActivatedEvent.emit({ activatedFrontstageDef: frontstageDef, deactivatedFrontstageDef });\r\n\r\n await frontstageDef.waitUntilReady();\r\n InternalFrontstageManager._isLoading = false;\r\n frontstageDef.onFrontstageReady();\r\n InternalFrontstageManager.onFrontstageReadyEvent.emit({ frontstageDef });\r\n UiFramework.visibility.handleFrontstageReady();\r\n\r\n await frontstageDef.setActiveContent();\r\n }\r\n\r\n InternalFrontstageManager._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 InternalFrontstageManager._activeToolId;\r\n }\r\n\r\n /** Sets the active tool id */\r\n public static setActiveToolId(toolId: string): void {\r\n InternalFrontstageManager._activeToolId = toolId;\r\n const toolSettingsProvider = InternalFrontstageManager.activeToolSettingsProvider;\r\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\r\n if (toolSettingsProvider)\r\n toolSettingsProvider.initialize();\r\n InternalFrontstageManager.onToolActivatedEvent.emit({ toolId });\r\n }\r\n\r\n /** Sets the active tool */\r\n public static setActiveTool(tool: Tool): void {\r\n InternalFrontstageManager.setActiveToolId(tool.toolId);\r\n InternalFrontstageManager.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 InternalFrontstageManager._toolInformationMap.get(InternalFrontstageManager.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 = InternalFrontstageManager.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 = InternalFrontstageManager.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (activeFrontstageDef) {\r\n InternalFrontstageManager._isLoading = false;\r\n\r\n activeFrontstageDef.setContentLayoutAndGroup(contentLayoutDef, contentGroup);\r\n InternalFrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: contentLayoutDef, contentGroup });\r\n\r\n await activeFrontstageDef.waitUntilReady();\r\n InternalFrontstageManager._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 = UiFramework.content.layouts.getForGroup(contentGroup);\r\n await InternalFrontstageManager.setActiveLayout(contentLayoutDef, contentGroup);\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 InternalFrontstageManager.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 InternalFrontstageManager._modalFrontstages.push(frontstageItem);\r\n InternalFrontstageManager.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 (InternalFrontstageManager._modalFrontstages.length > 0) {\r\n const topMostStageItem = InternalFrontstageManager._modalFrontstages[InternalFrontstageManager._modalFrontstages.length - 1];\r\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\r\n InternalFrontstageManager.onCloseModalFrontstageRequestedEvent.emit(\r\n {\r\n modalFrontstage: topMostStageItem.modalFrontstage,\r\n stageCloseFunc: InternalFrontstageManager.popModalFrontstage,\r\n });\r\n else\r\n InternalFrontstageManager.popModalFrontstage();\r\n }\r\n }\r\n\r\n private static popModalFrontstage(): void {\r\n const frontstageItem = InternalFrontstageManager._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 InternalFrontstageManager.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 InternalFrontstageManager.emitModalFrontstageChangedEvent();\r\n\r\n UiFramework.visibility.handleFrontstageReady();\r\n }\r\n\r\n private static emitModalFrontstageChangedEvent(): void {\r\n InternalFrontstageManager.onModalFrontstageChangedEvent.emit({ modalFrontstageCount: InternalFrontstageManager.modalFrontstageCount });\r\n }\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n public static updateModalFrontstage(): void {\r\n InternalFrontstageManager.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 (InternalFrontstageManager._modalFrontstages.length > 0) {\r\n const frontstageItem = InternalFrontstageManager._modalFrontstages[InternalFrontstageManager._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 InternalFrontstageManager._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 InternalFrontstageManager.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 = InternalFrontstageManager.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 = InternalFrontstageManager.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 (InternalFrontstageManager.nestedFrontstageCount === 0)\r\n InternalFrontstageManager._activePrimaryFrontstageDef = InternalFrontstageManager._activeFrontstageDef;\r\n\r\n InternalFrontstageManager.pushNestedFrontstage(nestedFrontstage);\r\n\r\n await InternalFrontstageManager.setActiveFrontstageDef(nestedFrontstage);\r\n }\r\n\r\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\r\n InternalFrontstageManager._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 InternalFrontstageManager.popNestedFrontstage();\r\n\r\n if (InternalFrontstageManager.nestedFrontstageCount > 0) {\r\n await InternalFrontstageManager.setActiveFrontstageDef(InternalFrontstageManager.activeNestedFrontstage);\r\n } else {\r\n await InternalFrontstageManager.setActiveFrontstageDef(InternalFrontstageManager._activePrimaryFrontstageDef);\r\n InternalFrontstageManager._activePrimaryFrontstageDef = undefined;\r\n }\r\n }\r\n\r\n private static popNestedFrontstage(): void {\r\n InternalFrontstageManager._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 (InternalFrontstageManager._nestedFrontstages.length > 0)\r\n return InternalFrontstageManager._nestedFrontstages[InternalFrontstageManager._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 InternalFrontstageManager._nestedFrontstages.length;\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module Frontstage
|
|
3
3
|
*/
|
|
4
|
-
/// <reference types="react" />
|
|
5
4
|
import { UiEvent } from "@itwin/appui-abstract";
|
|
6
5
|
import { NineZoneState, PanelSide } from "@itwin/appui-layout-react";
|
|
7
6
|
import { WidgetDef } from "../widgets/WidgetDef";
|
|
@@ -18,14 +17,14 @@ export declare enum StagePanelState {
|
|
|
18
17
|
Open = 2,
|
|
19
18
|
Popup = 3
|
|
20
19
|
}
|
|
21
|
-
/** Panel
|
|
20
|
+
/** Panel state changed event args interface.
|
|
22
21
|
* @public
|
|
23
22
|
*/
|
|
24
23
|
export interface PanelStateChangedEventArgs {
|
|
25
24
|
panelDef: StagePanelDef;
|
|
26
25
|
panelState: StagePanelState;
|
|
27
26
|
}
|
|
28
|
-
/** Panel
|
|
27
|
+
/** Panel state changed event class.
|
|
29
28
|
* @beta
|
|
30
29
|
*/
|
|
31
30
|
export declare class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> {
|
|
@@ -38,6 +37,13 @@ export interface PanelSizeChangedEventArgs {
|
|
|
38
37
|
/** @internal */
|
|
39
38
|
export declare class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> {
|
|
40
39
|
}
|
|
40
|
+
/** Panel pinned changed event args interface.
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export interface PanelPinnedChangedEventArgs {
|
|
44
|
+
panelDef: StagePanelDef;
|
|
45
|
+
pinned: boolean;
|
|
46
|
+
}
|
|
41
47
|
/**
|
|
42
48
|
* A StagePanelDef represents each Stage Panel within a Frontstage.
|
|
43
49
|
* @public
|
|
@@ -68,6 +74,7 @@ export declare class StagePanelDef extends WidgetHost {
|
|
|
68
74
|
get resizable(): boolean;
|
|
69
75
|
/** Indicates whether the panel is pinned. */
|
|
70
76
|
get pinned(): boolean;
|
|
77
|
+
set pinned(pinned: boolean);
|
|
71
78
|
/** Location of panel. */
|
|
72
79
|
get location(): StagePanelLocation;
|
|
73
80
|
/** Panel state. Defaults to PanelState.Open. */
|
|
@@ -96,198 +103,7 @@ export declare class StagePanelSectionDef extends WidgetHost {
|
|
|
96
103
|
/** @internal */
|
|
97
104
|
export declare function toPanelSide(location: StagePanelLocation): PanelSide;
|
|
98
105
|
/** @internal */
|
|
99
|
-
export declare const setPanelSize: (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
readonly position: {
|
|
103
|
-
readonly x: number;
|
|
104
|
-
readonly y: number;
|
|
105
|
-
};
|
|
106
|
-
readonly home: {
|
|
107
|
-
readonly widgetIndex: number;
|
|
108
|
-
readonly widgetId: string | undefined;
|
|
109
|
-
readonly side: PanelSide;
|
|
110
|
-
};
|
|
111
|
-
} | undefined;
|
|
112
|
-
readonly floatingWidgets: {
|
|
113
|
-
readonly byId: {
|
|
114
|
-
readonly [x: string]: {
|
|
115
|
-
readonly bounds: {
|
|
116
|
-
readonly left: number;
|
|
117
|
-
readonly top: number;
|
|
118
|
-
readonly right: number;
|
|
119
|
-
readonly bottom: number;
|
|
120
|
-
};
|
|
121
|
-
readonly id: string;
|
|
122
|
-
readonly home: {
|
|
123
|
-
readonly widgetIndex: number;
|
|
124
|
-
readonly widgetId: string | undefined;
|
|
125
|
-
readonly side: PanelSide;
|
|
126
|
-
};
|
|
127
|
-
readonly userSized?: boolean | undefined;
|
|
128
|
-
readonly hidden?: boolean | undefined;
|
|
129
|
-
};
|
|
130
|
-
};
|
|
131
|
-
readonly allIds: readonly string[];
|
|
132
|
-
};
|
|
133
|
-
readonly popoutWidgets: {
|
|
134
|
-
readonly byId: {
|
|
135
|
-
readonly [x: string]: {
|
|
136
|
-
readonly bounds: {
|
|
137
|
-
readonly left: number;
|
|
138
|
-
readonly top: number;
|
|
139
|
-
readonly right: number;
|
|
140
|
-
readonly bottom: number;
|
|
141
|
-
};
|
|
142
|
-
readonly id: string;
|
|
143
|
-
readonly home: {
|
|
144
|
-
readonly widgetIndex: number;
|
|
145
|
-
readonly widgetId: string | undefined;
|
|
146
|
-
readonly side: PanelSide;
|
|
147
|
-
};
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
readonly allIds: readonly string[];
|
|
151
|
-
};
|
|
152
|
-
readonly panels: {
|
|
153
|
-
readonly bottom: {
|
|
154
|
-
readonly span: boolean;
|
|
155
|
-
readonly side: import("@itwin/appui-layout-react").HorizontalPanelSide;
|
|
156
|
-
readonly collapseOffset: number;
|
|
157
|
-
readonly collapsed: boolean;
|
|
158
|
-
readonly maxSize: number;
|
|
159
|
-
readonly minSize: number;
|
|
160
|
-
readonly pinned: boolean;
|
|
161
|
-
readonly resizable: boolean;
|
|
162
|
-
readonly size: number | undefined;
|
|
163
|
-
readonly widgets: readonly string[];
|
|
164
|
-
readonly maxWidgetCount: number;
|
|
165
|
-
readonly splitterPercent: number | undefined;
|
|
166
|
-
};
|
|
167
|
-
readonly left: {
|
|
168
|
-
readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
|
|
169
|
-
readonly collapseOffset: number;
|
|
170
|
-
readonly collapsed: boolean;
|
|
171
|
-
readonly maxSize: number;
|
|
172
|
-
readonly minSize: number;
|
|
173
|
-
readonly pinned: boolean;
|
|
174
|
-
readonly resizable: boolean;
|
|
175
|
-
readonly size: number | undefined;
|
|
176
|
-
readonly widgets: readonly string[];
|
|
177
|
-
readonly maxWidgetCount: number;
|
|
178
|
-
readonly splitterPercent: number | undefined;
|
|
179
|
-
};
|
|
180
|
-
readonly right: {
|
|
181
|
-
readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
|
|
182
|
-
readonly collapseOffset: number;
|
|
183
|
-
readonly collapsed: boolean;
|
|
184
|
-
readonly maxSize: number;
|
|
185
|
-
readonly minSize: number;
|
|
186
|
-
readonly pinned: boolean;
|
|
187
|
-
readonly resizable: boolean;
|
|
188
|
-
readonly size: number | undefined;
|
|
189
|
-
readonly widgets: readonly string[];
|
|
190
|
-
readonly maxWidgetCount: number;
|
|
191
|
-
readonly splitterPercent: number | undefined;
|
|
192
|
-
};
|
|
193
|
-
readonly top: {
|
|
194
|
-
readonly span: boolean;
|
|
195
|
-
readonly side: import("@itwin/appui-layout-react").HorizontalPanelSide;
|
|
196
|
-
readonly collapseOffset: number;
|
|
197
|
-
readonly collapsed: boolean;
|
|
198
|
-
readonly maxSize: number;
|
|
199
|
-
readonly minSize: number;
|
|
200
|
-
readonly pinned: boolean;
|
|
201
|
-
readonly resizable: boolean;
|
|
202
|
-
readonly size: number | undefined;
|
|
203
|
-
readonly widgets: readonly string[];
|
|
204
|
-
readonly maxWidgetCount: number;
|
|
205
|
-
readonly splitterPercent: number | undefined;
|
|
206
|
-
};
|
|
207
|
-
};
|
|
208
|
-
readonly tabs: {
|
|
209
|
-
readonly [x: string]: {
|
|
210
|
-
readonly id: string;
|
|
211
|
-
readonly label: string;
|
|
212
|
-
readonly iconSpec?: boolean | import("react").ReactText | {
|
|
213
|
-
readonly stringGetter: () => string;
|
|
214
|
-
readonly syncEventIds: readonly string[];
|
|
215
|
-
readonly value: string;
|
|
216
|
-
readonly refresh: () => boolean;
|
|
217
|
-
} | {
|
|
218
|
-
readonly type: string | import("react").JSXElementConstructor<any>;
|
|
219
|
-
readonly props: any;
|
|
220
|
-
readonly key: import("react").Key | null;
|
|
221
|
-
} | {} | {
|
|
222
|
-
readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
|
|
223
|
-
} | {
|
|
224
|
-
readonly key: import("react").Key | null;
|
|
225
|
-
readonly children: boolean | import("react").ReactText | {
|
|
226
|
-
readonly type: string | import("react").JSXElementConstructor<any>;
|
|
227
|
-
readonly props: any;
|
|
228
|
-
readonly key: import("react").Key | null;
|
|
229
|
-
} | {} | {
|
|
230
|
-
readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
|
|
231
|
-
} | any | null | undefined;
|
|
232
|
-
readonly type: string | import("react").JSXElementConstructor<any>;
|
|
233
|
-
readonly props: any;
|
|
234
|
-
} | {
|
|
235
|
-
readonly iconGetter: () => import("@itwin/core-react").IconSpec;
|
|
236
|
-
readonly syncEventIds: readonly string[];
|
|
237
|
-
readonly value: boolean | import("react").ReactText | {
|
|
238
|
-
readonly stringGetter: () => string;
|
|
239
|
-
readonly syncEventIds: readonly string[];
|
|
240
|
-
readonly value: string;
|
|
241
|
-
readonly refresh: () => boolean;
|
|
242
|
-
} | {
|
|
243
|
-
readonly type: string | import("react").JSXElementConstructor<any>;
|
|
244
|
-
readonly props: any;
|
|
245
|
-
readonly key: import("react").Key | null;
|
|
246
|
-
} | {} | {
|
|
247
|
-
readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
|
|
248
|
-
} | {
|
|
249
|
-
readonly key: import("react").Key | null;
|
|
250
|
-
readonly children: boolean | import("react").ReactText | {
|
|
251
|
-
readonly type: string | import("react").JSXElementConstructor<any>;
|
|
252
|
-
readonly props: any;
|
|
253
|
-
readonly key: import("react").Key | null;
|
|
254
|
-
} | {} | {
|
|
255
|
-
readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
|
|
256
|
-
} | any | null | undefined;
|
|
257
|
-
readonly type: string | import("react").JSXElementConstructor<any>;
|
|
258
|
-
readonly props: any;
|
|
259
|
-
} | any | null | undefined;
|
|
260
|
-
readonly refresh: () => boolean;
|
|
261
|
-
} | null | undefined;
|
|
262
|
-
readonly preferredFloatingWidgetSize?: {
|
|
263
|
-
readonly width: number;
|
|
264
|
-
readonly height: number;
|
|
265
|
-
} | undefined;
|
|
266
|
-
readonly preferredPanelWidgetSize?: "fit-content" | undefined;
|
|
267
|
-
readonly allowedPanelTargets?: readonly PanelSide[] | undefined;
|
|
268
|
-
readonly canPopout?: boolean | undefined;
|
|
269
|
-
readonly userSized?: boolean | undefined;
|
|
270
|
-
readonly isFloatingStateWindowResizable?: boolean | undefined;
|
|
271
|
-
readonly hideWithUiWhenFloating?: boolean | undefined;
|
|
272
|
-
};
|
|
273
|
-
};
|
|
274
|
-
readonly toolSettings: {
|
|
275
|
-
readonly type: "docked";
|
|
276
|
-
} | {
|
|
277
|
-
readonly type: "widget";
|
|
278
|
-
};
|
|
279
|
-
readonly widgets: {
|
|
280
|
-
readonly [x: string]: {
|
|
281
|
-
readonly activeTabId: string;
|
|
282
|
-
readonly id: string;
|
|
283
|
-
readonly minimized: boolean;
|
|
284
|
-
readonly tabs: readonly string[];
|
|
285
|
-
readonly isFloatingStateWindowResizable?: boolean | undefined;
|
|
286
|
-
};
|
|
287
|
-
};
|
|
288
|
-
readonly size: {
|
|
289
|
-
readonly width: number;
|
|
290
|
-
readonly height: number;
|
|
291
|
-
};
|
|
292
|
-
}, side: PanelSide, size: number | undefined) => import("immer/dist/internal").WritableDraft<NineZoneState>;
|
|
106
|
+
export declare const setPanelSize: (nineZone: NineZoneState, side: PanelSide, size: number | undefined) => NineZoneState;
|
|
107
|
+
/** @internal */
|
|
108
|
+
export declare const setPanelPinned: (nineZone: NineZoneState, side: PanelSide, pinned: boolean) => NineZoneState;
|
|
293
109
|
//# sourceMappingURL=StagePanelDef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"AAIA;;GAEG
|
|
1
|
+
{"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module Frontstage
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.setPanelSize = exports.toPanelSide = exports.StagePanelSectionDef = exports.StagePanelDef = exports.PanelSizeChangedEvent = exports.PanelStateChangedEvent = exports.StagePanelState = void 0;
|
|
10
|
+
exports.setPanelPinned = exports.setPanelSize = exports.toPanelSide = exports.StagePanelSectionDef = exports.StagePanelDef = exports.PanelSizeChangedEvent = exports.PanelStateChangedEvent = exports.StagePanelState = void 0;
|
|
11
11
|
const immer_1 = require("immer");
|
|
12
12
|
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
13
13
|
const WidgetDef_1 = require("../widgets/WidgetDef");
|
|
@@ -26,7 +26,7 @@ var StagePanelState;
|
|
|
26
26
|
StagePanelState[StagePanelState["Open"] = 2] = "Open";
|
|
27
27
|
StagePanelState[StagePanelState["Popup"] = 3] = "Popup";
|
|
28
28
|
})(StagePanelState = exports.StagePanelState || (exports.StagePanelState = {}));
|
|
29
|
-
/** Panel
|
|
29
|
+
/** Panel state changed event class.
|
|
30
30
|
* @beta
|
|
31
31
|
*/
|
|
32
32
|
class PanelStateChangedEvent extends appui_abstract_1.UiEvent {
|
|
@@ -91,7 +91,30 @@ class StagePanelDef extends WidgetHost_1.WidgetHost {
|
|
|
91
91
|
// istanbul ignore next
|
|
92
92
|
get resizable() { return this._resizable; }
|
|
93
93
|
/** Indicates whether the panel is pinned. */
|
|
94
|
-
get pinned() {
|
|
94
|
+
get pinned() {
|
|
95
|
+
if (UiFramework_1.UiFramework.frontstages.activeFrontstageDef) {
|
|
96
|
+
const state = UiFramework_1.UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);
|
|
97
|
+
return state[2];
|
|
98
|
+
}
|
|
99
|
+
// istanbul ignore next
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
set pinned(pinned) {
|
|
103
|
+
if (this._pinned === pinned)
|
|
104
|
+
return;
|
|
105
|
+
// istanbul ignore else
|
|
106
|
+
const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
|
|
107
|
+
// istanbul ignore else
|
|
108
|
+
if (frontstageDef && frontstageDef.nineZoneState) {
|
|
109
|
+
const side = toPanelSide(this.location);
|
|
110
|
+
frontstageDef.nineZoneState = (0, exports.setPanelPinned)(frontstageDef.nineZoneState, side, pinned);
|
|
111
|
+
}
|
|
112
|
+
this._pinned = pinned;
|
|
113
|
+
UiFramework_1.UiFramework.frontstages.onPanelPinnedChangedEvent.emit({
|
|
114
|
+
panelDef: this,
|
|
115
|
+
pinned,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
95
118
|
/** Location of panel. */
|
|
96
119
|
get location() { return this._location; }
|
|
97
120
|
/** Panel state. Defaults to PanelState.Open. */
|
|
@@ -154,8 +177,8 @@ class StagePanelDef extends WidgetHost_1.WidgetHost {
|
|
|
154
177
|
this._maxSizeSpec = config.maxSize;
|
|
155
178
|
this._minSize = config.minSize;
|
|
156
179
|
if (config.defaultState !== undefined) {
|
|
157
|
-
this._panelState = config.defaultState;
|
|
158
180
|
this._defaultState = config.defaultState;
|
|
181
|
+
this._panelState = config.defaultState;
|
|
159
182
|
}
|
|
160
183
|
this._resizable = config.resizable ?? true;
|
|
161
184
|
if (config.pinned !== undefined)
|
|
@@ -216,4 +239,9 @@ exports.setPanelSize = (0, immer_1.default)((nineZone, side, size) => {
|
|
|
216
239
|
const panel = nineZone.panels[side];
|
|
217
240
|
panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);
|
|
218
241
|
});
|
|
242
|
+
/** @internal */
|
|
243
|
+
exports.setPanelPinned = (0, immer_1.default)((nineZone, side, pinned) => {
|
|
244
|
+
const panel = nineZone.panels[side];
|
|
245
|
+
panel.pinned = pinned;
|
|
246
|
+
});
|
|
219
247
|
//# sourceMappingURL=StagePanelDef.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport produce, { Draft } from \"immer\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetHost } from \"../widgets/WidgetHost\";\r\nimport { StagePanelConfig, StagePanelMaxSizeSpec, StagePanelSectionConfig } from \"./StagePanelConfig\";\r\nimport { StagePanelLocation } from \"./StagePanelLocation\";\r\nimport { StagePanelSection } from \"./StagePanelSection\";\r\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for StagePanel state.\r\n * @public\r\n */\r\nexport enum StagePanelState {\r\n Off,\r\n Minimized,\r\n Open,\r\n Popup,\r\n}\r\n\r\n/** Panel State Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface PanelStateChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n panelState: StagePanelState;\r\n}\r\n\r\n/** Panel State Changed Event class.\r\n * @beta\r\n */\r\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> { }\r\n\r\n/** @internal */\r\nexport interface PanelSizeChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n size: number | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> { }\r\n\r\n/**\r\n * A StagePanelDef represents each Stage Panel within a Frontstage.\r\n * @public\r\n */\r\nexport class StagePanelDef extends WidgetHost {\r\n private _panelState = StagePanelState.Open;\r\n private _defaultState = StagePanelState.Open;\r\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\r\n private _minSize: number | undefined;\r\n private _size: number | undefined;\r\n private _defaultSize: number | undefined;\r\n private _resizable = true;\r\n private _pinned = true;\r\n private _location: StagePanelLocation = StagePanelLocation.Left;\r\n private _start = new StagePanelSectionDef();\r\n private _end = new StagePanelSectionDef();\r\n\r\n /** Constructor for PanelDef.\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** @internal */\r\n public get maxSizeSpec() { return this._maxSizeSpec; }\r\n\r\n /** @internal */\r\n public get minSize() { return this._minSize; }\r\n\r\n /** Default size of the panel */\r\n public get size() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [_, size] = UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\r\n return size;\r\n }\r\n // istanbul ignore next\r\n return this._defaultSize;\r\n }\r\n\r\n public set size(size) {\r\n if (this._size === size)\r\n return;\r\n\r\n // istanbul ignore else\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelSize(frontstageDef.nineZoneState, side, size);\r\n const panel = frontstageDef.nineZoneState.panels[side];\r\n if (panel.size === this._size)\r\n return;\r\n size = panel.size;\r\n }\r\n this._size = size;\r\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\r\n panelDef: this,\r\n size,\r\n });\r\n }\r\n\r\n /** Indicates whether the panel is resizable. */\r\n // istanbul ignore next\r\n public get resizable(): boolean { return this._resizable; }\r\n\r\n /** Indicates whether the panel is pinned. */\r\n public get pinned(): boolean { return this._pinned; }\r\n\r\n /** Location of panel. */\r\n public get location(): StagePanelLocation { return this._location; }\r\n\r\n /** Panel state. Defaults to PanelState.Open. */\r\n public get panelState() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [state] = UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);\r\n return state;\r\n }\r\n // istanbul ignore next\r\n return this.defaultState;\r\n }\r\n\r\n public set panelState(panelState: StagePanelState) {\r\n if (panelState === this._panelState)\r\n return;\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = produce(frontstageDef.nineZoneState, (nineZone) => {\r\n const panel = nineZone.panels[side];\r\n switch (panelState) {\r\n case StagePanelState.Minimized: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n case StagePanelState.Open: {\r\n panel.collapsed = false;\r\n break;\r\n }\r\n case StagePanelState.Off: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n this._panelState = panelState;\r\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\r\n panelDef: this,\r\n panelState,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public get defaultState() { return this._defaultState; }\r\n\r\n /** @internal */\r\n public get defaultSize() { return this._defaultSize; }\r\n\r\n /** @internal */\r\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\r\n const def = new StagePanelDef();\r\n def.initializeFromConfig(config, location);\r\n return def;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelConfig | undefined, location: StagePanelLocation): void {\r\n this._location = location;\r\n\r\n if (!config)\r\n return;\r\n this._size = config.size;\r\n this._defaultSize = config.size;\r\n this._maxSizeSpec = config.maxSize;\r\n this._minSize = config.minSize;\r\n if (config.defaultState !== undefined) {\r\n this._panelState = config.defaultState;\r\n this._defaultState = config.defaultState;\r\n }\r\n this._resizable = config.resizable ?? true;\r\n if (config.pinned !== undefined)\r\n this._pinned = config.pinned;\r\n\r\n const sections = config.sections;\r\n this._start.initializeFromConfig(sections?.start);\r\n this._end.initializeFromConfig(sections?.end);\r\n }\r\n\r\n /** Gets the list of Widgets. */\r\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\r\n return [...super.widgetDefs, ...this._start.widgetDefs, ...this._end.widgetDefs];\r\n }\r\n\r\n /** @internal */\r\n public override updateDynamicWidgetDefs(stageId: string, stageUsage: string, location: StagePanelLocation, _section: StagePanelSection | undefined,\r\n allStageWidgetDefs: WidgetDef[]) {\r\n this._start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, allStageWidgetDefs);\r\n this._end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, allStageWidgetDefs);\r\n }\r\n\r\n /** @internal */\r\n public getPanelSectionDef(section: StagePanelSection) {\r\n switch (section) {\r\n case StagePanelSection.Start: {\r\n return this._start;\r\n }\r\n case StagePanelSection.End: {\r\n return this._end;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StagePanelSectionDef extends WidgetHost {\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\r\n config?.forEach((widgetConfig) => {\r\n const widgetDef = WidgetDef.create(widgetConfig);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\r\n switch (location) {\r\n case StagePanelLocation.Bottom:\r\n return \"bottom\";\r\n case StagePanelLocation.Left:\r\n return \"left\";\r\n case StagePanelLocation.Right:\r\n return \"right\";\r\n case StagePanelLocation.Top:\r\n return \"top\";\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const setPanelSize = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n size: number | undefined,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAAuC;AACvC,0DAAgD;AAEhD,oDAAiD;AACjD,sDAAmD;AAEnD,6DAA0D;AAC1D,2DAAwD;AACxD,uFAAoF;AACpF,gDAA6C;AAE7C;;GAEG;AACH,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mDAAG,CAAA;IACH,+DAAS,CAAA;IACT,qDAAI,CAAA;IACJ,uDAAK,CAAA;AACP,CAAC,EALW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK1B;AAUD;;GAEG;AACH,MAAa,sBAAuB,SAAQ,wBAAmC;CAAI;AAAnF,wDAAmF;AAQnF,gBAAgB;AAChB,MAAa,qBAAsB,SAAQ,wBAAkC;CAAI;AAAjF,sDAAiF;AAUjF;;;GAGG;AACH,MAAa,aAAc,SAAQ,uBAAU;IAa3C;OACG;IACH;QACE,KAAK,EAAE,CAAC;QAfF,gBAAW,GAAG,eAAe,CAAC,IAAI,CAAC;QACnC,kBAAa,GAAG,eAAe,CAAC,IAAI,CAAC;QAKrC,eAAU,GAAG,IAAI,CAAC;QAClB,YAAO,GAAG,IAAI,CAAC;QACf,cAAS,GAAuB,uCAAkB,CAAC,IAAI,CAAC;QACxD,WAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACpC,SAAI,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAM1C,CAAC;IAED,gBAAgB;IAChB,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtD,gBAAgB;IAChB,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9C,gCAAgC;IAChC,IAAW,IAAI;QACb,uBAAuB;QACvB,IAAI,yBAAW,CAAC,WAAW,CAAC,mBAAmB,EAAE;YAC/C,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;SACb;QACD,uBAAuB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,IAAI,CAAC,IAAI;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YACrB,OAAO;QAET,uBAAuB;QACvB,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAClE,uBAAuB;QACvB,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE;YAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,aAAa,CAAC,aAAa,GAAG,IAAA,oBAAY,EAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpF,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK;gBAC3B,OAAO;YACT,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;SACnB;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,qDAAyB,CAAC,uBAAuB,CAAC,IAAI,CAAC;YACrD,QAAQ,EAAE,IAAI;YACd,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,gDAAgD;IAChD,uBAAuB;IACvB,IAAW,SAAS,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3D,6CAA6C;IAC7C,IAAW,MAAM;QACf,IAAI,yBAAW,CAAC,WAAW,CAAC,mBAAmB,EAAE;YAC/C,MAAM,KAAK,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACrF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,uBAAuB;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,MAAM,CAAC,MAAe;QAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YACzB,OAAO;QAET,uBAAuB;QACvB,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAClE,uBAAuB;QACvB,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE;YAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,aAAa,CAAC,aAAa,GAAG,IAAA,sBAAc,EAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACzF;QACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,yBAAW,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC;YACrD,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,IAAW,QAAQ,KAAyB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpE,gDAAgD;IAChD,IAAW,UAAU;QACnB,uBAAuB;QACvB,IAAI,yBAAW,CAAC,WAAW,CAAC,mBAAmB,EAAE;YAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACxF,OAAO,KAAK,CAAC;SACd;QACD,uBAAuB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,UAAU,CAAC,UAA2B;QAC/C,IAAI,UAAU,KAAK,IAAI,CAAC,WAAW;YACjC,OAAO;QACT,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAClE,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE;YAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,aAAa,CAAC,aAAa,GAAG,IAAA,eAAO,EAAC,aAAa,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,QAAQ,UAAU,EAAE;oBAClB,KAAK,eAAe,CAAC,SAAS,CAAC,CAAC;wBAC9B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;wBACvB,MAAM;qBACP;oBACD,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC;wBACzB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;wBACxB,MAAM;qBACP;oBACD,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC;wBACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;wBACvB,MAAM;qBACP;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,yBAAW,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACpD,QAAQ,EAAE,IAAI;YACd,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAExD,gBAAgB;IAChB,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtD,gBAAgB;IACT,MAAM,CAAC,MAAM,CAAC,MAAwB,EAAE,QAA4B;QACzE,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,GAAG,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gBAAgB;IACT,oBAAoB,CAAC,MAAoC,EAAE,QAA4B;QAC5F,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,CAAC,MAAM;YACT,OAAO;QACT,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;YACzC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;SACxC;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAE/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,gCAAgC;IAChC,IAAoB,UAAU;QAC5B,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnF,CAAC;IAED,gBAAgB;IACA,uBAAuB,CAAC,OAAe,EAAE,UAAkB,EAAE,QAA4B,EAAE,QAAuC,EAChJ,kBAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,qCAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAChH,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,qCAAiB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC9G,CAAC;IAED,gBAAgB;IACT,kBAAkB,CAAC,OAA0B;QAClD,QAAQ,OAAO,EAAE;YACf,KAAK,qCAAiB,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;YACD,KAAK,qCAAiB,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC,IAAI,CAAC;aAClB;SACF;IACH,CAAC;CACF;AAlMD,sCAkMC;AAED,gBAAgB;AAChB,MAAa,oBAAqB,SAAQ,uBAAU;IAClD,gBAAgB;IACT,oBAAoB,CAAC,MAA2C;QACrE,MAAM,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,qBAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AARD,oDAQC;AAED,gBAAgB;AAChB,SAAgB,WAAW,CAAC,QAA4B;IACtD,QAAQ,QAAQ,EAAE;QAChB,KAAK,uCAAkB,CAAC,MAAM;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,uCAAkB,CAAC,IAAI;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,uCAAkB,CAAC,KAAK;YAC3B,OAAO,OAAO,CAAC;QACjB,KAAK,uCAAkB,CAAC,GAAG;YACzB,OAAO,KAAK,CAAC;KAChB;AACH,CAAC;AAXD,kCAWC;AAED,gBAAgB;AACH,QAAA,YAAY,GAA0F,IAAA,eAAO,EAAC,CACzH,QAA8B,EAC9B,IAAe,EACf,IAAwB,EACxB,EAAE;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAClG,CAAC,CAAC,CAAC;AAEH,gBAAgB;AACH,QAAA,cAAc,GAAiF,IAAA,eAAO,EAAC,CAClH,QAA8B,EAC9B,IAAe,EACf,MAAe,EACf,EAAE;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACxB,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport produce, { Draft } from \"immer\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetHost } from \"../widgets/WidgetHost\";\r\nimport { StagePanelConfig, StagePanelMaxSizeSpec, StagePanelSectionConfig } from \"./StagePanelConfig\";\r\nimport { StagePanelLocation } from \"./StagePanelLocation\";\r\nimport { StagePanelSection } from \"./StagePanelSection\";\r\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for StagePanel state.\r\n * @public\r\n */\r\nexport enum StagePanelState {\r\n Off,\r\n Minimized,\r\n Open,\r\n Popup,\r\n}\r\n\r\n/** Panel state changed event args interface.\r\n * @public\r\n */\r\nexport interface PanelStateChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n panelState: StagePanelState;\r\n}\r\n\r\n/** Panel state changed event class.\r\n * @beta\r\n */\r\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> { }\r\n\r\n/** @internal */\r\nexport interface PanelSizeChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n size: number | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> { }\r\n\r\n/** Panel pinned changed event args interface.\r\n * @public\r\n */\r\nexport interface PanelPinnedChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n pinned: boolean;\r\n}\r\n\r\n/**\r\n * A StagePanelDef represents each Stage Panel within a Frontstage.\r\n * @public\r\n */\r\nexport class StagePanelDef extends WidgetHost {\r\n private _panelState = StagePanelState.Open;\r\n private _defaultState = StagePanelState.Open;\r\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\r\n private _minSize: number | undefined;\r\n private _size: number | undefined;\r\n private _defaultSize: number | undefined;\r\n private _resizable = true;\r\n private _pinned = true;\r\n private _location: StagePanelLocation = StagePanelLocation.Left;\r\n private _start = new StagePanelSectionDef();\r\n private _end = new StagePanelSectionDef();\r\n\r\n /** Constructor for PanelDef.\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** @internal */\r\n public get maxSizeSpec() { return this._maxSizeSpec; }\r\n\r\n /** @internal */\r\n public get minSize() { return this._minSize; }\r\n\r\n /** Default size of the panel */\r\n public get size() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [_, size] = UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\r\n return size;\r\n }\r\n // istanbul ignore next\r\n return this._defaultSize;\r\n }\r\n\r\n public set size(size) {\r\n if (this._size === size)\r\n return;\r\n\r\n // istanbul ignore else\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelSize(frontstageDef.nineZoneState, side, size);\r\n const panel = frontstageDef.nineZoneState.panels[side];\r\n if (panel.size === this._size)\r\n return;\r\n size = panel.size;\r\n }\r\n this._size = size;\r\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\r\n panelDef: this,\r\n size,\r\n });\r\n }\r\n\r\n /** Indicates whether the panel is resizable. */\r\n // istanbul ignore next\r\n public get resizable(): boolean { return this._resizable; }\r\n\r\n /** Indicates whether the panel is pinned. */\r\n public get pinned(): boolean {\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const state = UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\r\n return state[2];\r\n }\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n public set pinned(pinned: boolean) {\r\n if (this._pinned === pinned)\r\n return;\r\n\r\n // istanbul ignore else\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelPinned(frontstageDef.nineZoneState, side, pinned);\r\n }\r\n this._pinned = pinned;\r\n UiFramework.frontstages.onPanelPinnedChangedEvent.emit({\r\n panelDef: this,\r\n pinned,\r\n });\r\n }\r\n\r\n /** Location of panel. */\r\n public get location(): StagePanelLocation { return this._location; }\r\n\r\n /** Panel state. Defaults to PanelState.Open. */\r\n public get panelState() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [state] = UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);\r\n return state;\r\n }\r\n // istanbul ignore next\r\n return this.defaultState;\r\n }\r\n\r\n public set panelState(panelState: StagePanelState) {\r\n if (panelState === this._panelState)\r\n return;\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = produce(frontstageDef.nineZoneState, (nineZone) => {\r\n const panel = nineZone.panels[side];\r\n switch (panelState) {\r\n case StagePanelState.Minimized: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n case StagePanelState.Open: {\r\n panel.collapsed = false;\r\n break;\r\n }\r\n case StagePanelState.Off: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n this._panelState = panelState;\r\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\r\n panelDef: this,\r\n panelState,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public get defaultState() { return this._defaultState; }\r\n\r\n /** @internal */\r\n public get defaultSize() { return this._defaultSize; }\r\n\r\n /** @internal */\r\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\r\n const def = new StagePanelDef();\r\n def.initializeFromConfig(config, location);\r\n return def;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelConfig | undefined, location: StagePanelLocation): void {\r\n this._location = location;\r\n\r\n if (!config)\r\n return;\r\n this._size = config.size;\r\n this._defaultSize = config.size;\r\n this._maxSizeSpec = config.maxSize;\r\n this._minSize = config.minSize;\r\n if (config.defaultState !== undefined) {\r\n this._defaultState = config.defaultState;\r\n this._panelState = config.defaultState;\r\n }\r\n this._resizable = config.resizable ?? true;\r\n if (config.pinned !== undefined)\r\n this._pinned = config.pinned;\r\n\r\n const sections = config.sections;\r\n this._start.initializeFromConfig(sections?.start);\r\n this._end.initializeFromConfig(sections?.end);\r\n }\r\n\r\n /** Gets the list of Widgets. */\r\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\r\n return [...super.widgetDefs, ...this._start.widgetDefs, ...this._end.widgetDefs];\r\n }\r\n\r\n /** @internal */\r\n public override updateDynamicWidgetDefs(stageId: string, stageUsage: string, location: StagePanelLocation, _section: StagePanelSection | undefined,\r\n allStageWidgetDefs: WidgetDef[]) {\r\n this._start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, allStageWidgetDefs);\r\n this._end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, allStageWidgetDefs);\r\n }\r\n\r\n /** @internal */\r\n public getPanelSectionDef(section: StagePanelSection) {\r\n switch (section) {\r\n case StagePanelSection.Start: {\r\n return this._start;\r\n }\r\n case StagePanelSection.End: {\r\n return this._end;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StagePanelSectionDef extends WidgetHost {\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\r\n config?.forEach((widgetConfig) => {\r\n const widgetDef = WidgetDef.create(widgetConfig);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\r\n switch (location) {\r\n case StagePanelLocation.Bottom:\r\n return \"bottom\";\r\n case StagePanelLocation.Left:\r\n return \"left\";\r\n case StagePanelLocation.Right:\r\n return \"right\";\r\n case StagePanelLocation.Top:\r\n return \"top\";\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const setPanelSize: (nineZone: NineZoneState, side: PanelSide, size: number | undefined) => NineZoneState = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n size: number | undefined,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n});\r\n\r\n/** @internal */\r\nexport const setPanelPinned: (nineZone: NineZoneState, side: PanelSide, pinned: boolean) => NineZoneState = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n pinned: boolean,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.pinned = pinned;\r\n});\r\n"]}
|
|
@@ -11,7 +11,7 @@ import { ContentLayoutActivatedEvent } from "../content/ContentLayout";
|
|
|
11
11
|
import { FrontstageDef } from "../frontstage/FrontstageDef";
|
|
12
12
|
import { FrontstageProvider } from "../frontstage/FrontstageProvider";
|
|
13
13
|
import { NavigationAidActivatedEvent } from "../navigationaids/NavigationAidControl";
|
|
14
|
-
import { PanelStateChangedEvent } from "../stagepanels/StagePanelDef";
|
|
14
|
+
import { PanelPinnedChangedEventArgs, PanelStateChangedEvent } from "../stagepanels/StagePanelDef";
|
|
15
15
|
import { WidgetDef, WidgetStateChangedEvent } from "../widgets/WidgetDef";
|
|
16
16
|
import { WidgetState } from "../widgets/WidgetState";
|
|
17
17
|
/** Frontstage Activated Event Args interface.
|
|
@@ -180,10 +180,14 @@ export interface FrameworkFrontstages {
|
|
|
180
180
|
readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;
|
|
181
181
|
/** Get Widget State Changed event. */
|
|
182
182
|
readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;
|
|
183
|
-
/** Get
|
|
183
|
+
/** Get panel state changed event.
|
|
184
184
|
* @alpha
|
|
185
185
|
*/
|
|
186
186
|
readonly onPanelStateChangedEvent: PanelStateChangedEvent;
|
|
187
|
+
/** Get panel pinned changed event.
|
|
188
|
+
* @alpha
|
|
189
|
+
*/
|
|
190
|
+
readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;
|
|
187
191
|
/** Clears the Frontstage map.
|
|
188
192
|
*/
|
|
189
193
|
clearFrontstageDefs(): void;
|