@itwin/appui-react 5.34.0 → 5.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +6 -2
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.js +9 -2
- package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts +1 -0
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/appui-react/framework/FrameworkVisibility.d.ts +3 -1
- package/lib/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
- package/lib/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
- package/lib/appui-react/frontstage/InternalFrontstageManager.js +6 -0
- package/lib/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/appui-react/keyboardshortcut/KeyboardShortcutUtilities.d.ts.map +1 -1
- package/lib/appui-react/keyboardshortcut/KeyboardShortcutUtilities.js +6 -1
- package/lib/appui-react/keyboardshortcut/KeyboardShortcutUtilities.js.map +1 -1
- package/lib/appui-react/layout/_widgetopacity.scss +1 -1
- package/lib/appui-react/popup/CardPopup.d.ts.map +1 -1
- package/lib/appui-react/popup/CardPopup.js +3 -1
- package/lib/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
- package/lib/appui-react/popup/ToolbarPopup.js +3 -1
- package/lib/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/appui-react/shared/ToolItemDef.d.ts.map +1 -1
- package/lib/appui-react/shared/ToolItemDef.js +6 -5
- package/lib/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js +4 -2
- package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/appui-react/theme/ThemeId.d.ts +3 -1
- package/lib/appui-react/theme/ThemeId.d.ts.map +1 -1
- package/lib/appui-react/theme/ThemeId.js +3 -1
- package/lib/appui-react/theme/ThemeId.js.map +1 -1
- package/lib/appui-react/toolbar/Toolbar.d.ts +3 -1
- package/lib/appui-react/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
- package/lib/appui-react/toolbar/ToolbarComposer.js +13 -5
- package/lib/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/appui-react/toolbar/ToolbarWithOverflow.d.ts +3 -1
- package/lib/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -1
- package/lib/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/appui-react/toolbar/new-toolbars/Surface.d.ts.map +1 -1
- package/lib/appui-react/toolbar/new-toolbars/Surface.js +1 -0
- package/lib/appui-react/toolbar/new-toolbars/Surface.js.map +1 -1
- package/lib/appui-react/toolbar/new-toolbars/Surface.scss +1 -6
- package/lib/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/appui-react/tools/CoreToolDefinitions.js +37 -133
- package/lib/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/appui-react/tools/defineToolIcons.d.ts +3 -0
- package/lib/appui-react/tools/defineToolIcons.d.ts.map +1 -0
- package/lib/appui-react/tools/defineToolIcons.js +45 -0
- package/lib/appui-react/tools/defineToolIcons.js.map +1 -0
- package/lib/appui-react/uistate/AppUiSettings.d.ts +6 -0
- package/lib/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
- package/lib/appui-react/uistate/AppUiSettings.js +15 -0
- package/lib/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
- package/lib/appui-react/widgets/NavigationWidgetComposer.js +4 -1
- package/lib/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/appui-react/widgets/ToolWidgetComposer.d.ts.map +1 -1
- package/lib/appui-react/widgets/ToolWidgetComposer.js +3 -1
- package/lib/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/appui-react.d.ts.map +1 -1
- package/lib/appui-react.js +2 -0
- package/lib/appui-react.js.map +1 -1
- package/lib/cjs/appui-react/layout/_widgetopacity.scss +1 -1
- package/lib/cjs/appui-react/toolbar/new-toolbars/Surface.scss +1 -6
- package/lib/esm/appui-react/layout/_widgetopacity.scss +1 -1
- package/lib/esm/appui-react/toolbar/new-toolbars/Surface.scss +1 -6
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalFrontstageManager.js","sourceRoot":"","sources":["../../../src/appui-react/frontstage/InternalFrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport { IModelApp, InteractiveTool } from \"@itwin/core-frontend\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\nimport type { ContentControlActivatedEventArgs } from \"../content/ContentControl.js\";\nimport type { ContentGroup } from \"../content/ContentGroup.js\";\nimport type {\n ContentLayoutActivatedEventArgs,\n ContentLayoutDef,\n} from \"../content/ContentLayout.js\";\nimport type { NavigationAidActivatedEventArgs } from \"../navigationaids/NavigationAidControl.js\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelSizeChangedEventArgs,\n PanelStateChangedEventArgs,\n} from \"../stagepanels/StagePanelDef.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type {\n WidgetDef,\n WidgetStateChangedEventArgs,\n} from \"../widgets/WidgetDef.js\";\nimport { ToolInformation } from \"../toolsettings/ToolInformation.js\";\nimport type { ToolUiProvider } from \"../toolsettings/ToolUiProvider.js\";\nimport { FrontstageDef } from \"./FrontstageDef.js\";\nimport { FrontstageProvider } from \"./FrontstageProvider.js\";\nimport { TimeTracker } from \"../configurableui/TimeTracker.js\";\nimport type { WidgetState } from \"../widgets/WidgetState.js\";\nimport type {\n FrontstageActivatedEventArgs,\n FrontstageDeactivatedEventArgs,\n FrontstageReadyEventArgs,\n ModalFrontstageChangedEventArgs,\n ModalFrontstageClosedEventArgs,\n ModalFrontstageInfo,\n ModalFrontstageItem,\n ModalFrontstageRequestedCloseEventArgs,\n ToolActivatedEventArgs,\n ToolIconChangedEventArgs,\n} from \"../framework/FrameworkFrontstages.js\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager.js\";\nimport type { Frontstage } from \"./Frontstage.js\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState.js\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\n\n/** Frontstage Manager class.\n * @internal\n */\nexport class InternalFrontstageManager {\n private static _initialized = false;\n private static _isLoading = false;\n private static _activeToolId = \"\";\n private static _activeFrontstageDef: FrontstageDef | undefined;\n private static _frontstageDefs = new Map<string, FrontstageDef>();\n private static _modalFrontstages: ModalFrontstageItem[] =\n new Array<ModalFrontstageItem>();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\n private static _frontstages = new Map<string, Frontstage>();\n private static _nineZoneSize: SizeProps | undefined = undefined;\n\n private static _nestedFrontstages: FrontstageDef[] =\n new Array<FrontstageDef>();\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<\n string,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ToolInformation\n >();\n\n /** This should only be called within InternalFrontstageManager and its tests.\n * @internal\n */\n public static ensureToolInformationIsSet(toolId: string): void {\n if (this._toolInformationMap.has(toolId)) return;\n this._toolInformationMap.set(\n toolId,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n new ToolInformation(toolId)\n );\n }\n\n private static _handleSyncToolSettingsPropertiesEvent: ListenerType<\n typeof UiFramework.toolSettings.onSyncToolSettingsProperties\n > = (args) => {\n const provider = this.activeToolSettingsProvider;\n if (!provider) return;\n provider.syncToolSettingsProperties(args);\n };\n\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\n private static _handleReloadToolSettingsEvent: ListenerType<\n typeof UiFramework.toolSettings.onReloadToolSettingsProperties\n > = () => {\n const provider = this.activeToolSettingsProvider;\n if (!provider) return;\n provider.reloadPropertiesFromTool();\n };\n\n /** Initializes the InternalFrontstageManager\n * @internal\n */\n public static initialize() {\n if (this._initialized) return;\n\n IModelApp.toolAdmin.activeToolChanged.addListener((tool) => {\n // make sure tool settings properties are cached before creating ToolInformation\n UiFramework.toolSettings.clearToolSettingsData();\n if (tool instanceof InteractiveTool)\n UiFramework.toolSettings.initializeDataForTool(tool);\n\n // if the tool data is not already cached then see if there is data to cache\n this.ensureToolInformationIsSet(tool.toolId);\n UiFramework.frontstages.setActiveTool(tool);\n });\n UiFramework.toolSettings.onSyncToolSettingsProperties.addListener(\n this._handleSyncToolSettingsPropertiesEvent\n );\n UiFramework.toolSettings.onReloadToolSettingsProperties.addListener(\n this._handleReloadToolSettingsEvent\n );\n IModelApp.viewManager.onSelectedViewportChanged.addListener(\n this._handleSelectedViewportChanged\n );\n UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n frontstageDef.updateWidgetDefs();\n });\n\n this._initialized = true;\n }\n\n /** Handles a Viewport change & sets the active view accordingly */\n private static _handleSelectedViewportChanged: ListenerType<\n typeof IModelApp.viewManager.onSelectedViewportChanged\n > = (args) => {\n const frontstageDef = this.activeFrontstageDef;\n if (!args.current || !frontstageDef || UiFramework.frontstages.isLoading)\n return;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n frontstageDef.setActiveViewFromViewport(args.current);\n };\n\n /** @internal */\n public static get isInitialized(): boolean {\n return this._initialized;\n }\n public static set isInitialized(v: boolean) {\n this._initialized = v;\n }\n\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n public static get isLoading(): boolean {\n return this._isLoading;\n }\n\n /** @internal */\n public static get nineZoneSize() {\n return this._nineZoneSize;\n }\n\n public static set nineZoneSize(size) {\n this._nineZoneSize = size;\n }\n\n /** @internal */\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\n return this._frontstageDefs;\n }\n\n /** Get Frontstage Deactivated event. */\n public static readonly onFrontstageDeactivatedEvent =\n new BeUiEvent<FrontstageDeactivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageActivatedEvent =\n new BeUiEvent<FrontstageActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageReadyEvent =\n new BeUiEvent<FrontstageReadyEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Modal Frontstage Changed event. */\n public static readonly onModalFrontstageChangedEvent =\n new BeUiEvent<ModalFrontstageChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Modal Frontstage Closed event. */\n public static readonly onModalFrontstageClosedEvent =\n new BeUiEvent<ModalFrontstageClosedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n public static readonly onCloseModalFrontstageRequestedEvent =\n new BeUiEvent<ModalFrontstageRequestedCloseEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Tool Activated event. */\n public static readonly onToolActivatedEvent =\n new BeUiEvent<ToolActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get ToolSetting Reload event. */\n public static readonly onToolSettingsReloadEvent = new BeUiEvent<void>();\n\n /** Get Tool Panel Opened event.\n * @internal\n */\n public static readonly onToolPanelOpenedEvent = new BeUiEvent<void>();\n\n /** Get Tool Icon Changed event. */\n public static readonly onToolIconChangedEvent =\n new BeUiEvent<ToolIconChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Content Layout Activated event. */\n public static readonly onContentLayoutActivatedEvent =\n new BeUiEvent<ContentLayoutActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Content Control Activated event. */\n public static readonly onContentControlActivatedEvent =\n new BeUiEvent<ContentControlActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Navigation Aid Activated event. */\n public static readonly onNavigationAidActivatedEvent =\n new BeUiEvent<NavigationAidActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Widget State Changed event. */\n public static readonly onWidgetStateChangedEvent =\n new BeUiEvent<WidgetStateChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public static readonly onWidgetDefsUpdatedEvent = new BeUiEvent<void>();\n\n /** @internal */\n public static readonly onFrontstageNineZoneStateChangedEvent = new BeUiEvent<{\n frontstageDef: FrontstageDef;\n state: NineZoneState | undefined;\n }>();\n\n /** @internal */\n public static readonly onFrontstageRestoreLayoutEvent = new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** @internal */\n public static readonly onFrontstageWidgetsChangedEvent = new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** Get panel state changed event.\n * @alpha\n */\n public static readonly onPanelStateChangedEvent =\n new BeUiEvent<PanelStateChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get panel pinned changed event.\n * @alpha\n */\n public static readonly onPanelPinnedChangedEvent =\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n new BeUiEvent<PanelPinnedChangedEventArgs>();\n\n /** @internal */\n public static readonly onPanelSizeChangedEvent =\n new BeUiEvent<PanelSizeChangedEventArgs>();\n\n /** Clears the Frontstage map.\n */\n public static clearFrontstageDefs(): void {\n this._frontstageDefs.clear();\n this._activeFrontstageDef = undefined;\n }\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n */\n public static clearFrontstageProviders(): void {\n this._frontstageProviders.clear();\n UiFramework.frontstages.clearFrontstageDefs();\n }\n\n /** Clears the Frontstages, Frontstage Providers and the defs that may have been created from them. */\n public static clearFrontstages(): void {\n this._frontstages.clear();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n UiFramework.frontstages.clearFrontstageProviders();\n }\n\n private static getFrontstageKey(frontstageId: string) {\n return frontstageId;\n }\n\n /** @internal */\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\n if (!iModelId) return;\n const keysToRemove: string[] = [];\n this._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\n if (key.startsWith(`[${iModelId}]`)) keysToRemove.push(key);\n });\n keysToRemove.forEach((keyValue) => {\n this._frontstageDefs.delete(keyValue);\n });\n }\n\n public static addFrontstageProvider(\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n frontstageProvider: FrontstageProvider\n ): void {\n const key = this.getFrontstageKey(frontstageProvider.id);\n key && this._frontstageDefs.delete(key);\n this._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\n }\n\n public static addFrontstage(frontstage: Frontstage) {\n const key = this.getFrontstageKey(frontstage.id);\n key && this._frontstageDefs.delete(key);\n this._frontstages.set(frontstage.id, frontstage);\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\n * `getFrontstageDef` to get a FrontstageDef.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\n const key = this.getFrontstageKey(id);\n const frontstageDef = this._frontstageDefs.get(key);\n if (frontstageDef instanceof FrontstageDef) return frontstageDef;\n return undefined;\n }\n\n private static findFrontstageProvider(\n id?: string\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): FrontstageProvider | undefined {\n if (!id) {\n return undefined;\n }\n\n const provider = this._frontstageProviders.get(id);\n if (provider) {\n return provider;\n }\n\n const frontstage = this._frontstages.get(id);\n if (frontstage) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return new (class extends FrontstageProvider {\n public get id() {\n return frontstage?.id ?? \"\";\n }\n\n public frontstageConfig() {\n return frontstage;\n }\n })();\n }\n\n return undefined;\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n public static async getFrontstageDef(\n id?: string\n ): Promise<FrontstageDef | undefined> {\n if (!id) return UiFramework.frontstages.activeFrontstageDef;\n\n let frontstageDef = this.findFrontstageDef(id);\n if (frontstageDef) return frontstageDef;\n\n const frontstageProvider = this.findFrontstageProvider(id);\n if (frontstageProvider) {\n frontstageDef = await FrontstageDef.create(frontstageProvider);\n if (frontstageDef) {\n const key = this.getFrontstageKey(frontstageDef.id);\n this._frontstageDefs.set(key, frontstageDef);\n }\n return frontstageDef;\n }\n\n return undefined;\n }\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n public static get activeFrontstageDef(): FrontstageDef | undefined {\n return this._activeFrontstageDef;\n }\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n public static get activeFrontstageId(): string {\n const activeFrontstage = this._activeFrontstageDef;\n return activeFrontstage ? activeFrontstage.id : \"\";\n }\n\n public static hasFrontstage(frontstageId: string) {\n if (this.findFrontstageDef(frontstageId)) return true;\n if (this.findFrontstageProvider(frontstageId)) return true;\n return false;\n }\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\n const frontstageDef = await UiFramework.frontstages.getFrontstageDef(\n frontstageId\n );\n if (!frontstageDef) {\n Logger.logError(\n UiFramework.loggerCategory(\"InternalFrontstageManager\"),\n `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`\n );\n return;\n }\n\n return UiFramework.frontstages.setActiveFrontstageDef(frontstageDef);\n }\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n public static async setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void> {\n if (this._activeFrontstageDef === frontstageDef) return;\n\n this._isLoading = true;\n\n const deactivatedFrontstageDef = this._activeFrontstageDef;\n if (deactivatedFrontstageDef) {\n await deactivatedFrontstageDef.onDeactivated();\n\n const timeTracker = deactivatedFrontstageDef.timeTracker;\n UiFramework.frontstages.onFrontstageDeactivatedEvent.emit({\n deactivatedFrontstageDef,\n activatedFrontstageDef: frontstageDef,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n this._activeFrontstageDef = frontstageDef;\n\n if (frontstageDef) {\n await frontstageDef.onActivated();\n\n UiFramework.frontstages.onFrontstageActivatedEvent.emit({\n activatedFrontstageDef: frontstageDef,\n deactivatedFrontstageDef,\n });\n\n await frontstageDef.waitUntilReady();\n this._isLoading = false;\n frontstageDef.onFrontstageReady();\n UiFramework.frontstages.onFrontstageReadyEvent.emit({ frontstageDef });\n UiFramework.visibility.handleFrontstageReady();\n\n await frontstageDef.setActiveContent();\n }\n\n this._isLoading = false;\n }\n\n /** Deactivates the active FrontstageDef.\n */\n public static async deactivateFrontstageDef(): Promise<void> {\n await UiFramework.frontstages.setActiveFrontstageDef(undefined);\n }\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n public static get activeToolId(): string {\n return this._activeToolId;\n }\n\n /** Sets the active tool id */\n public static setActiveToolId(toolId: string): void {\n this._activeToolId = toolId;\n const toolSettingsProvider = this.activeToolSettingsProvider;\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\n if (toolSettingsProvider) toolSettingsProvider.initialize();\n UiFramework.frontstages.onToolActivatedEvent.emit({ toolId });\n }\n\n /** Sets the active tool */\n public static setActiveTool(tool: Tool): void {\n UiFramework.frontstages.setActiveToolId(tool.toolId);\n UiFramework.frontstages.onToolIconChangedEvent.emit({\n iconSpec: tool.iconSpec,\n });\n }\n\n /** Gets the active tool's [[ToolInformation]] */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public static get activeToolInformation(): ToolInformation | undefined {\n return this._toolInformationMap.get(UiFramework.frontstages.activeToolId);\n }\n\n /** Gets the Tool Setting React node of the active tool.\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.\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const activeToolInformation = UiFramework.frontstages.activeToolInformation;\n return activeToolInformation?.toolUiProvider;\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentLayoutDef Content layout to make active\n * @param contentGroup Content Group to make active\n */\n public static async setActiveLayout(\n contentLayoutDef: ContentLayoutDef,\n contentGroup: ContentGroup\n ): Promise<void> {\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (activeFrontstageDef) {\n this._isLoading = false;\n\n activeFrontstageDef.setContentLayoutAndGroup(\n contentLayoutDef,\n contentGroup\n );\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({\n contentLayout: contentLayoutDef,\n contentGroup,\n });\n\n await activeFrontstageDef.waitUntilReady();\n this._isLoading = false;\n\n await activeFrontstageDef.setActiveContent();\n }\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentGroup Content Group to make active\n */\n public static async setActiveContentGroup(\n contentGroup: ContentGroup\n ): Promise<void> {\n const contentLayoutDef =\n UiFramework.content.layouts.getForGroup(contentGroup);\n await this.setActiveLayout(contentLayoutDef, contentGroup);\n }\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n public static openModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n this.pushModalFrontstage(modalFrontstage);\n }\n\n private static pushModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n const timeTracker = new TimeTracker();\n timeTracker.startTiming();\n const frontstageItem: ModalFrontstageItem = {\n modalFrontstage,\n timeTracker,\n };\n this._modalFrontstages.push(frontstageItem);\n this.emitModalFrontstageChangedEvent();\n }\n\n /** Closes the top-most modal Frontstage.\n */\n public static closeModalFrontstage(): void {\n if (this._modalFrontstages.length > 0) {\n const topMostStageItem =\n this._modalFrontstages[this._modalFrontstages.length - 1];\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\n UiFramework.frontstages.onCloseModalFrontstageRequestedEvent.emit({\n modalFrontstage: topMostStageItem.modalFrontstage,\n stageCloseFunc: () => this.popModalFrontstage(),\n });\n else this.popModalFrontstage();\n }\n }\n\n private static popModalFrontstage(): void {\n const frontstageItem = this._modalFrontstages.pop();\n if (frontstageItem) {\n const modalFrontstage = frontstageItem.modalFrontstage;\n const timeTracker = frontstageItem.timeTracker;\n timeTracker.stopTiming();\n UiFramework.frontstages.onModalFrontstageClosedEvent.emit({\n modalFrontstage,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n this.emitModalFrontstageChangedEvent();\n\n UiFramework.visibility.handleFrontstageReady();\n }\n\n private static emitModalFrontstageChangedEvent(): void {\n UiFramework.frontstages.onModalFrontstageChangedEvent.emit({\n modalFrontstageCount: UiFramework.frontstages.modalFrontstageCount,\n });\n }\n\n /** Updates the top-most modal Frontstage.\n */\n public static updateModalFrontstage(): void {\n this.emitModalFrontstageChangedEvent();\n }\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\n if (this._modalFrontstages.length > 0) {\n const frontstageItem =\n this._modalFrontstages[this._modalFrontstages.length - 1];\n const modalFrontstage = frontstageItem.modalFrontstage;\n return modalFrontstage;\n } else {\n return undefined;\n }\n }\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n public static get modalFrontstageCount(): number {\n return this._modalFrontstages.length;\n }\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n public static setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ) {\n UiFramework.frontstages.onNavigationAidActivatedEvent.emit({\n navigationAidId,\n iModelConnection,\n });\n }\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\n const widgetDef = UiFramework.frontstages.findWidget(widgetId);\n if (widgetDef) {\n widgetDef.setWidgetState(state);\n return true;\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"InternalFrontstageManager\"),\n `setWidgetState: Could not find Widget with id of '${widgetId}'`\n );\n }\n\n return false;\n }\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n public static findWidget(widgetId: string): WidgetDef | undefined {\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!activeFrontstageDef) return undefined;\n\n return activeFrontstageDef.findWidgetDef(widgetId);\n }\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n public static async openNestedFrontstage(\n nestedFrontstage: FrontstageDef\n ): Promise<void> {\n if (UiFramework.frontstages.nestedFrontstageCount === 0)\n this._activePrimaryFrontstageDef = this._activeFrontstageDef;\n\n this.pushNestedFrontstage(nestedFrontstage);\n\n await UiFramework.frontstages.setActiveFrontstageDef(nestedFrontstage);\n }\n\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\n this._nestedFrontstages.push(nestedFrontstage);\n }\n\n /** Closes the top-most nested Frontstage.\n */\n public static async closeNestedFrontstage(): Promise<void> {\n this.popNestedFrontstage();\n\n if (UiFramework.frontstages.nestedFrontstageCount > 0) {\n await UiFramework.frontstages.setActiveFrontstageDef(\n UiFramework.frontstages.activeNestedFrontstage\n );\n } else {\n await UiFramework.frontstages.setActiveFrontstageDef(\n this._activePrimaryFrontstageDef\n );\n this._activePrimaryFrontstageDef = undefined;\n }\n }\n\n private static popNestedFrontstage(): void {\n this._nestedFrontstages.pop();\n }\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\n if (this._nestedFrontstages.length > 0)\n return this._nestedFrontstages[this._nestedFrontstages.length - 1];\n\n return undefined;\n }\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n public static get nestedFrontstageCount(): number {\n return this._nestedFrontstages.length;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InternalFrontstageManager.js","sourceRoot":"","sources":["../../../src/appui-react/frontstage/InternalFrontstageManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport { IModelApp, InteractiveTool } from \"@itwin/core-frontend\";\nimport { ToolUtilities } from \"@itwin/imodel-components-react\";\nimport type { ContentControlActivatedEventArgs } from \"../content/ContentControl.js\";\nimport type { ContentGroup } from \"../content/ContentGroup.js\";\nimport type {\n ContentLayoutActivatedEventArgs,\n ContentLayoutDef,\n} from \"../content/ContentLayout.js\";\nimport type { NavigationAidActivatedEventArgs } from \"../navigationaids/NavigationAidControl.js\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelSizeChangedEventArgs,\n PanelStateChangedEventArgs,\n} from \"../stagepanels/StagePanelDef.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type {\n WidgetDef,\n WidgetStateChangedEventArgs,\n} from \"../widgets/WidgetDef.js\";\nimport { ToolInformation } from \"../toolsettings/ToolInformation.js\";\nimport type { ToolUiProvider } from \"../toolsettings/ToolUiProvider.js\";\nimport { FrontstageDef } from \"./FrontstageDef.js\";\nimport { FrontstageProvider } from \"./FrontstageProvider.js\";\nimport { TimeTracker } from \"../configurableui/TimeTracker.js\";\nimport type { WidgetState } from \"../widgets/WidgetState.js\";\nimport type {\n FrontstageActivatedEventArgs,\n FrontstageDeactivatedEventArgs,\n FrontstageReadyEventArgs,\n ModalFrontstageChangedEventArgs,\n ModalFrontstageClosedEventArgs,\n ModalFrontstageInfo,\n ModalFrontstageItem,\n ModalFrontstageRequestedCloseEventArgs,\n ToolActivatedEventArgs,\n ToolIconChangedEventArgs,\n} from \"../framework/FrameworkFrontstages.js\";\nimport { UiItemsManager } from \"../ui-items-provider/UiItemsManager.js\";\nimport type { Frontstage } from \"./Frontstage.js\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState.js\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\n\n/** Frontstage Manager class.\n * @internal\n */\nexport class InternalFrontstageManager {\n private static _initialized = false;\n private static _isLoading = false;\n private static _activeToolId = \"\";\n private static _activeFrontstageDef: FrontstageDef | undefined;\n private static _frontstageDefs = new Map<string, FrontstageDef>();\n private static _modalFrontstages: ModalFrontstageItem[] =\n new Array<ModalFrontstageItem>();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private static _frontstageProviders = new Map<string, FrontstageProvider>();\n private static _frontstages = new Map<string, Frontstage>();\n private static _nineZoneSize: SizeProps | undefined = undefined;\n\n private static _nestedFrontstages: FrontstageDef[] =\n new Array<FrontstageDef>();\n private static _activePrimaryFrontstageDef: FrontstageDef | undefined;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private static _toolInformationMap: Map<string, ToolInformation> = new Map<\n string,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ToolInformation\n >();\n\n /** This should only be called within InternalFrontstageManager and its tests.\n * @internal\n */\n public static ensureToolInformationIsSet(toolId: string): void {\n if (this._toolInformationMap.has(toolId)) return;\n this._toolInformationMap.set(\n toolId,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n new ToolInformation(toolId)\n );\n }\n\n private static _handleSyncToolSettingsPropertiesEvent: ListenerType<\n typeof UiFramework.toolSettings.onSyncToolSettingsProperties\n > = (args) => {\n const provider = this.activeToolSettingsProvider;\n if (!provider) return;\n provider.syncToolSettingsProperties(args);\n };\n\n // pass on ReloadToolSettingsEvent from ToolAdmin so they are treated by UiProviders\n private static _handleReloadToolSettingsEvent: ListenerType<\n typeof UiFramework.toolSettings.onReloadToolSettingsProperties\n > = () => {\n const provider = this.activeToolSettingsProvider;\n if (!provider) return;\n provider.reloadPropertiesFromTool();\n };\n\n /** Initializes the InternalFrontstageManager\n * @internal\n */\n public static initialize() {\n if (this._initialized) return;\n\n IModelApp.toolAdmin.activeToolChanged.addListener((tool) => {\n // make sure tool settings properties are cached before creating ToolInformation\n UiFramework.toolSettings.clearToolSettingsData();\n if (tool instanceof InteractiveTool)\n UiFramework.toolSettings.initializeDataForTool(tool);\n\n // if the tool data is not already cached then see if there is data to cache\n this.ensureToolInformationIsSet(tool.toolId);\n UiFramework.frontstages.setActiveTool(tool);\n });\n UiFramework.toolSettings.onSyncToolSettingsProperties.addListener(\n this._handleSyncToolSettingsPropertiesEvent\n );\n UiFramework.toolSettings.onReloadToolSettingsProperties.addListener(\n this._handleReloadToolSettingsEvent\n );\n IModelApp.viewManager.onSelectedViewportChanged.addListener(\n this._handleSelectedViewportChanged\n );\n UiItemsManager.onUiProviderRegisteredEvent.addListener(() => {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n frontstageDef.updateWidgetDefs();\n });\n\n this._initialized = true;\n }\n\n /** Handles a Viewport change & sets the active view accordingly */\n private static _handleSelectedViewportChanged: ListenerType<\n typeof IModelApp.viewManager.onSelectedViewportChanged\n > = (args) => {\n const frontstageDef = this.activeFrontstageDef;\n if (!args.current || !frontstageDef || UiFramework.frontstages.isLoading)\n return;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n frontstageDef.setActiveViewFromViewport(args.current);\n };\n\n /** @internal */\n public static get isInitialized(): boolean {\n return this._initialized;\n }\n public static set isInitialized(v: boolean) {\n this._initialized = v;\n }\n\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n public static get isLoading(): boolean {\n return this._isLoading;\n }\n\n /** @internal */\n public static get nineZoneSize() {\n return this._nineZoneSize;\n }\n\n public static set nineZoneSize(size) {\n this._nineZoneSize = size;\n }\n\n /** @internal */\n public static get frontstageDefs(): ReadonlyMap<string, FrontstageDef> {\n return this._frontstageDefs;\n }\n\n /** Get Frontstage Deactivated event. */\n public static readonly onFrontstageDeactivatedEvent =\n new BeUiEvent<FrontstageDeactivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageActivatedEvent =\n new BeUiEvent<FrontstageActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Frontstage Activated event. */\n public static readonly onFrontstageReadyEvent =\n new BeUiEvent<FrontstageReadyEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Modal Frontstage Changed event. */\n public static readonly onModalFrontstageChangedEvent =\n new BeUiEvent<ModalFrontstageChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Modal Frontstage Closed event. */\n public static readonly onModalFrontstageClosedEvent =\n new BeUiEvent<ModalFrontstageClosedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n public static readonly onCloseModalFrontstageRequestedEvent =\n new BeUiEvent<ModalFrontstageRequestedCloseEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Tool Activated event. */\n public static readonly onToolActivatedEvent =\n new BeUiEvent<ToolActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get ToolSetting Reload event. */\n public static readonly onToolSettingsReloadEvent = new BeUiEvent<void>();\n\n /** Get Tool Panel Opened event.\n * @internal\n */\n public static readonly onToolPanelOpenedEvent = new BeUiEvent<void>();\n\n /** Get Tool Icon Changed event. */\n public static readonly onToolIconChangedEvent =\n new BeUiEvent<ToolIconChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Content Layout Activated event. */\n public static readonly onContentLayoutActivatedEvent =\n new BeUiEvent<ContentLayoutActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Content Control Activated event. */\n public static readonly onContentControlActivatedEvent =\n new BeUiEvent<ContentControlActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Navigation Aid Activated event. */\n public static readonly onNavigationAidActivatedEvent =\n new BeUiEvent<NavigationAidActivatedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get Widget State Changed event. */\n public static readonly onWidgetStateChangedEvent =\n new BeUiEvent<WidgetStateChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** @internal */\n public static readonly onWidgetDefsUpdatedEvent = new BeUiEvent<void>();\n\n /** @internal */\n public static readonly onFrontstageNineZoneStateChangedEvent = new BeUiEvent<{\n frontstageDef: FrontstageDef;\n state: NineZoneState | undefined;\n }>();\n\n /** @internal */\n public static readonly onFrontstageRestoreLayoutEvent = new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** @internal */\n public static readonly onFrontstageWidgetsChangedEvent = new BeUiEvent<{\n frontstageDef: FrontstageDef;\n }>();\n\n /** Get panel state changed event.\n * @alpha\n */\n public static readonly onPanelStateChangedEvent =\n new BeUiEvent<PanelStateChangedEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n\n /** Get panel pinned changed event.\n * @alpha\n */\n public static readonly onPanelPinnedChangedEvent =\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n new BeUiEvent<PanelPinnedChangedEventArgs>();\n\n /** @internal */\n public static readonly onPanelSizeChangedEvent =\n new BeUiEvent<PanelSizeChangedEventArgs>();\n\n /** Clears the Frontstage map.\n */\n public static clearFrontstageDefs(): void {\n this._frontstageDefs.clear();\n this._activeFrontstageDef = undefined;\n }\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n */\n public static clearFrontstageProviders(): void {\n this._frontstageProviders.clear();\n UiFramework.frontstages.clearFrontstageDefs();\n }\n\n /** Clears the Frontstages, Frontstage Providers and the defs that may have been created from them. */\n public static clearFrontstages(): void {\n this._frontstages.clear();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n UiFramework.frontstages.clearFrontstageProviders();\n }\n\n private static getFrontstageKey(frontstageId: string) {\n return frontstageId;\n }\n\n /** @internal */\n public static clearFrontstageDefsForIModelId(iModelId: string | undefined) {\n if (!iModelId) return;\n const keysToRemove: string[] = [];\n this._frontstageDefs.forEach((_: FrontstageDef, key: string) => {\n if (key.startsWith(`[${iModelId}]`)) keysToRemove.push(key);\n });\n keysToRemove.forEach((keyValue) => {\n this._frontstageDefs.delete(keyValue);\n });\n }\n\n public static addFrontstageProvider(\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n frontstageProvider: FrontstageProvider\n ): void {\n const key = this.getFrontstageKey(frontstageProvider.id);\n key && this._frontstageDefs.delete(key);\n this._frontstageProviders.set(frontstageProvider.id, frontstageProvider);\n }\n\n public static addFrontstage(frontstage: Frontstage) {\n const key = this.getFrontstageKey(frontstage.id);\n key && this._frontstageDefs.delete(key);\n this._frontstages.set(frontstage.id, frontstage);\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned.\n * If the FrontstageDef has not been cached by FrontstageDef then it will not be found. See async function\n * `getFrontstageDef` to get a FrontstageDef.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n private static findFrontstageDef(id: string): FrontstageDef | undefined {\n const key = this.getFrontstageKey(id);\n const frontstageDef = this._frontstageDefs.get(key);\n if (frontstageDef instanceof FrontstageDef) return frontstageDef;\n return undefined;\n }\n\n private static findFrontstageProvider(\n id?: string\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): FrontstageProvider | undefined {\n if (!id) {\n return undefined;\n }\n\n const provider = this._frontstageProviders.get(id);\n if (provider) {\n return provider;\n }\n\n const frontstage = this._frontstages.get(id);\n if (frontstage) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return new (class extends FrontstageProvider {\n public get id() {\n return frontstage?.id ?? \"\";\n }\n\n public frontstageConfig() {\n return frontstage;\n }\n })();\n }\n\n return undefined;\n }\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n public static async getFrontstageDef(\n id?: string\n ): Promise<FrontstageDef | undefined> {\n if (!id) return UiFramework.frontstages.activeFrontstageDef;\n\n let frontstageDef = this.findFrontstageDef(id);\n if (frontstageDef) return frontstageDef;\n\n const frontstageProvider = this.findFrontstageProvider(id);\n if (frontstageProvider) {\n frontstageDef = await FrontstageDef.create(frontstageProvider);\n if (frontstageDef) {\n const key = this.getFrontstageKey(frontstageDef.id);\n this._frontstageDefs.set(key, frontstageDef);\n }\n return frontstageDef;\n }\n\n return undefined;\n }\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n public static get activeFrontstageDef(): FrontstageDef | undefined {\n return this._activeFrontstageDef;\n }\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n public static get activeFrontstageId(): string {\n const activeFrontstage = this._activeFrontstageDef;\n return activeFrontstage ? activeFrontstage.id : \"\";\n }\n\n public static hasFrontstage(frontstageId: string) {\n if (this.findFrontstageDef(frontstageId)) return true;\n if (this.findFrontstageProvider(frontstageId)) return true;\n return false;\n }\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n public static async setActiveFrontstage(frontstageId: string): Promise<void> {\n const frontstageDef = await UiFramework.frontstages.getFrontstageDef(\n frontstageId\n );\n if (!frontstageDef) {\n Logger.logError(\n UiFramework.loggerCategory(\"InternalFrontstageManager\"),\n `setActiveFrontstage: Could not load a FrontstageDef with id of '${frontstageId}'`\n );\n return;\n }\n\n return UiFramework.frontstages.setActiveFrontstageDef(frontstageDef);\n }\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n public static async setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void> {\n if (this._activeFrontstageDef === frontstageDef) return;\n\n this._isLoading = true;\n\n const deactivatedFrontstageDef = this._activeFrontstageDef;\n if (deactivatedFrontstageDef) {\n await deactivatedFrontstageDef.onDeactivated();\n\n const timeTracker = deactivatedFrontstageDef.timeTracker;\n UiFramework.frontstages.onFrontstageDeactivatedEvent.emit({\n deactivatedFrontstageDef,\n activatedFrontstageDef: frontstageDef,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n this._activeFrontstageDef = frontstageDef;\n\n if (frontstageDef) {\n await frontstageDef.onActivated();\n\n UiFramework.frontstages.onFrontstageActivatedEvent.emit({\n activatedFrontstageDef: frontstageDef,\n deactivatedFrontstageDef,\n });\n\n await frontstageDef.waitUntilReady();\n this._isLoading = false;\n frontstageDef.onFrontstageReady();\n UiFramework.frontstages.onFrontstageReadyEvent.emit({ frontstageDef });\n UiFramework.visibility.handleFrontstageReady();\n\n await frontstageDef.setActiveContent();\n }\n\n this._isLoading = false;\n }\n\n /** Deactivates the active FrontstageDef.\n */\n public static async deactivateFrontstageDef(): Promise<void> {\n await UiFramework.frontstages.setActiveFrontstageDef(undefined);\n }\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n public static get activeToolId(): string {\n return this._activeToolId;\n }\n\n /** Sets the active tool id */\n public static setActiveToolId(toolId: string): void {\n this._activeToolId = toolId;\n const toolSettingsProvider = this.activeToolSettingsProvider;\n // ensure the toolSettingsProvider is initialized before emitting onToolActivatedEvent\n if (toolSettingsProvider) toolSettingsProvider.initialize();\n UiFramework.frontstages.onToolActivatedEvent.emit({ toolId });\n }\n\n /** Sets the active tool */\n public static setActiveTool(tool: Tool): void {\n const toolType = IModelApp.tools.find(tool.toolId);\n\n const iconElement =\n toolType && ToolUtilities.isWithIcon(toolType)\n ? toolType.iconElement\n : undefined;\n\n UiFramework.frontstages.setActiveToolId(tool.toolId);\n UiFramework.frontstages.onToolIconChangedEvent.emit({\n iconSpec: tool.iconSpec,\n iconElement,\n });\n }\n\n /** Gets the active tool's [[ToolInformation]] */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public static get activeToolInformation(): ToolInformation | undefined {\n return this._toolInformationMap.get(UiFramework.frontstages.activeToolId);\n }\n\n /** Gets the Tool Setting React node of the active tool.\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.\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public static get activeToolSettingsProvider(): ToolUiProvider | undefined {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const activeToolInformation = UiFramework.frontstages.activeToolInformation;\n return activeToolInformation?.toolUiProvider;\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentLayoutDef Content layout to make active\n * @param contentGroup Content Group to make active\n */\n public static async setActiveLayout(\n contentLayoutDef: ContentLayoutDef,\n contentGroup: ContentGroup\n ): Promise<void> {\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (activeFrontstageDef) {\n this._isLoading = false;\n\n activeFrontstageDef.setContentLayoutAndGroup(\n contentLayoutDef,\n contentGroup\n );\n UiFramework.frontstages.onContentLayoutActivatedEvent.emit({\n contentLayout: contentLayoutDef,\n contentGroup,\n });\n\n await activeFrontstageDef.waitUntilReady();\n this._isLoading = false;\n\n await activeFrontstageDef.setActiveContent();\n }\n }\n\n /** Sets the active layout, content group and active content.\n * @param contentGroup Content Group to make active\n */\n public static async setActiveContentGroup(\n contentGroup: ContentGroup\n ): Promise<void> {\n const contentLayoutDef =\n UiFramework.content.layouts.getForGroup(contentGroup);\n await this.setActiveLayout(contentLayoutDef, contentGroup);\n }\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n public static openModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n this.pushModalFrontstage(modalFrontstage);\n }\n\n private static pushModalFrontstage(\n modalFrontstage: ModalFrontstageInfo\n ): void {\n const timeTracker = new TimeTracker();\n timeTracker.startTiming();\n const frontstageItem: ModalFrontstageItem = {\n modalFrontstage,\n timeTracker,\n };\n this._modalFrontstages.push(frontstageItem);\n this.emitModalFrontstageChangedEvent();\n }\n\n /** Closes the top-most modal Frontstage.\n */\n public static closeModalFrontstage(): void {\n if (this._modalFrontstages.length > 0) {\n const topMostStageItem =\n this._modalFrontstages[this._modalFrontstages.length - 1];\n if (topMostStageItem.modalFrontstage.notifyCloseRequest)\n UiFramework.frontstages.onCloseModalFrontstageRequestedEvent.emit({\n modalFrontstage: topMostStageItem.modalFrontstage,\n stageCloseFunc: () => this.popModalFrontstage(),\n });\n else this.popModalFrontstage();\n }\n }\n\n private static popModalFrontstage(): void {\n const frontstageItem = this._modalFrontstages.pop();\n if (frontstageItem) {\n const modalFrontstage = frontstageItem.modalFrontstage;\n const timeTracker = frontstageItem.timeTracker;\n timeTracker.stopTiming();\n UiFramework.frontstages.onModalFrontstageClosedEvent.emit({\n modalFrontstage,\n totalTime: timeTracker.getTotalTimeSeconds(),\n engagementTime: timeTracker.getEngagementTimeSeconds(),\n idleTime: timeTracker.getIdleTimeSeconds(),\n });\n }\n\n this.emitModalFrontstageChangedEvent();\n\n UiFramework.visibility.handleFrontstageReady();\n }\n\n private static emitModalFrontstageChangedEvent(): void {\n UiFramework.frontstages.onModalFrontstageChangedEvent.emit({\n modalFrontstageCount: UiFramework.frontstages.modalFrontstageCount,\n });\n }\n\n /** Updates the top-most modal Frontstage.\n */\n public static updateModalFrontstage(): void {\n this.emitModalFrontstageChangedEvent();\n }\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n public static get activeModalFrontstage(): ModalFrontstageInfo | undefined {\n if (this._modalFrontstages.length > 0) {\n const frontstageItem =\n this._modalFrontstages[this._modalFrontstages.length - 1];\n const modalFrontstage = frontstageItem.modalFrontstage;\n return modalFrontstage;\n } else {\n return undefined;\n }\n }\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n public static get modalFrontstageCount(): number {\n return this._modalFrontstages.length;\n }\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n public static setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ) {\n UiFramework.frontstages.onNavigationAidActivatedEvent.emit({\n navigationAidId,\n iModelConnection,\n });\n }\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n public static setWidgetState(widgetId: string, state: WidgetState): boolean {\n const widgetDef = UiFramework.frontstages.findWidget(widgetId);\n if (widgetDef) {\n widgetDef.setWidgetState(state);\n return true;\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"InternalFrontstageManager\"),\n `setWidgetState: Could not find Widget with id of '${widgetId}'`\n );\n }\n\n return false;\n }\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n public static findWidget(widgetId: string): WidgetDef | undefined {\n const activeFrontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!activeFrontstageDef) return undefined;\n\n return activeFrontstageDef.findWidgetDef(widgetId);\n }\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n public static async openNestedFrontstage(\n nestedFrontstage: FrontstageDef\n ): Promise<void> {\n if (UiFramework.frontstages.nestedFrontstageCount === 0)\n this._activePrimaryFrontstageDef = this._activeFrontstageDef;\n\n this.pushNestedFrontstage(nestedFrontstage);\n\n await UiFramework.frontstages.setActiveFrontstageDef(nestedFrontstage);\n }\n\n private static pushNestedFrontstage(nestedFrontstage: FrontstageDef): void {\n this._nestedFrontstages.push(nestedFrontstage);\n }\n\n /** Closes the top-most nested Frontstage.\n */\n public static async closeNestedFrontstage(): Promise<void> {\n this.popNestedFrontstage();\n\n if (UiFramework.frontstages.nestedFrontstageCount > 0) {\n await UiFramework.frontstages.setActiveFrontstageDef(\n UiFramework.frontstages.activeNestedFrontstage\n );\n } else {\n await UiFramework.frontstages.setActiveFrontstageDef(\n this._activePrimaryFrontstageDef\n );\n this._activePrimaryFrontstageDef = undefined;\n }\n }\n\n private static popNestedFrontstage(): void {\n this._nestedFrontstages.pop();\n }\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n public static get activeNestedFrontstage(): FrontstageDef | undefined {\n if (this._nestedFrontstages.length > 0)\n return this._nestedFrontstages[this._nestedFrontstages.length - 1];\n\n return undefined;\n }\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n public static get nestedFrontstageCount(): number {\n return this._nestedFrontstages.length;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardShortcutUtilities.d.ts","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"KeyboardShortcutUtilities.d.ts","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,yBAAiB,yBAAyB,CAAC;IACzC,wDAAwD;IACxD,SAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACzC,qBAAqB,CAevB;CACF"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module KeyboardShortcut
|
|
7
7
|
*/
|
|
8
|
+
import { ToolUtilities } from "@itwin/imodel-components-react";
|
|
8
9
|
import { IModelApp } from "@itwin/core-frontend";
|
|
9
10
|
/** Helper class to create keyboard shortcuts.
|
|
10
11
|
* @beta
|
|
@@ -13,14 +14,18 @@ export var KeyboardShortcutUtilities;
|
|
|
13
14
|
(function (KeyboardShortcutUtilities) {
|
|
14
15
|
/** Creates an shortcut from the specified tool type. */
|
|
15
16
|
function createForTool(key, toolType, overrides) {
|
|
17
|
+
const icon = ToolUtilities.isWithIcon(toolType)
|
|
18
|
+
? toolType.iconElement
|
|
19
|
+
: undefined;
|
|
16
20
|
return {
|
|
17
21
|
key,
|
|
18
|
-
|
|
22
|
+
iconSpec: toolType.iconSpec,
|
|
19
23
|
label: () => toolType.flyover,
|
|
20
24
|
description: () => toolType.description,
|
|
21
25
|
execute: () => {
|
|
22
26
|
void IModelApp.tools.run(toolType.toolId);
|
|
23
27
|
},
|
|
28
|
+
...(icon ? { icon } : {}),
|
|
24
29
|
...overrides,
|
|
25
30
|
};
|
|
26
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardShortcutUtilities.js","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutUtilities.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;
|
|
1
|
+
{"version":3,"file":"KeyboardShortcutUtilities.js","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutUtilities.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAiB,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,MAAM,KAAW,yBAAyB,CAsBzC;AAtBD,WAAiB,yBAAyB;IACxC,wDAAwD;IACxD,SAAgB,aAAa,CAC3B,GAAW,EACX,QAAkB,EAClB,SAA0C;QAE1C,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,QAAQ,CAAC,WAAW;YACtB,CAAC,CAAC,SAAS,CAAC;QACd,OAAO;YACL,GAAG;YACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO;YAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW;YACvC,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAnBe,uCAAa,gBAmB5B,CAAA;AACH,CAAC,EAtBgB,yBAAyB,KAAzB,yBAAyB,QAsBzC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module KeyboardShortcut\n */\n\nimport { ToolUtilities } from \"@itwin/imodel-components-react\";\nimport type { KeyboardShortcutProps } from \"./KeyboardShortcutProps.js\";\nimport { IModelApp, type ToolType } from \"@itwin/core-frontend\";\n\n/** Helper class to create keyboard shortcuts.\n * @beta\n */\nexport namespace KeyboardShortcutUtilities {\n /** Creates an shortcut from the specified tool type. */\n export function createForTool(\n key: string,\n toolType: ToolType,\n overrides?: Partial<KeyboardShortcutProps>\n ): KeyboardShortcutProps {\n const icon = ToolUtilities.isWithIcon(toolType)\n ? toolType.iconElement\n : undefined;\n return {\n key,\n iconSpec: toolType.iconSpec,\n label: () => toolType.flyover,\n description: () => toolType.description,\n execute: () => {\n void IModelApp.tools.run(toolType.toolId);\n },\n ...(icon ? { icon } : {}),\n ...overrides,\n };\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardPopup.d.ts","sourceRoot":"","sources":["../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;WACW;AACX,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG;IACxD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC;IACvD,0EAA0E;IAC1E,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB,GAAG,iBAAiB,CAAC;IAClB,+DAA+D;IAC/D,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEL,UAAU,cAAc;IACtB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,aAAa,CAChD,cAAc,EACd,cAAc,CACf;IACC,gBAAgB;IAChB,OAAuB,WAAW,6BAAkB;IACpD,gBAAgB;IACD,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC;IACjE,SAAyB,KAAK;;;;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAOlB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,OAAO;IAMC,MAAM;CAwCvB;AAED;WACW;AACX,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC;IACxD,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CACrC;AAED;WACW;AACX,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"CardPopup.d.ts","sourceRoot":"","sources":["../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;WACW;AACX,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG;IACxD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC;IACvD,0EAA0E;IAC1E,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB,GAAG,iBAAiB,CAAC;IAClB,+DAA+D;IAC/D,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEL,UAAU,cAAc;IACtB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,aAAa,CAChD,cAAc,EACd,cAAc,CACf;IACC,gBAAgB;IAChB,OAAuB,WAAW,6BAAkB;IACpD,gBAAgB;IACD,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC;IACjE,SAAyB,KAAK;;;;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAOlB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,OAAO;IAMC,MAAM;CAwCvB;AAED;WACW;AACX,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC;IACxD,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CACrC;AAED;WACW;AACX,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,qBA+CpC"}
|
|
@@ -82,6 +82,8 @@ export function Card(props) {
|
|
|
82
82
|
content),
|
|
83
83
|
props.items && (React.createElement(React.Fragment, null,
|
|
84
84
|
React.createElement("div", { className: "uifw-card-separator" }),
|
|
85
|
-
React.createElement(ToolbarWithOverflow, { expandsTo: Direction.Bottom, panelAlignment: ToolbarPanelAlignment.Start, items: props.items, useDragInteraction: true,
|
|
85
|
+
React.createElement(ToolbarWithOverflow, { expandsTo: Direction.Bottom, panelAlignment: ToolbarPanelAlignment.Start, items: props.items, useDragInteraction: true,
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
87
|
+
toolbarOpacitySetting: ToolbarOpacitySetting.Transparent, onItemExecuted: props.onItemExecuted })))));
|
|
86
88
|
}
|
|
87
89
|
//# sourceMappingURL=CardPopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Popup\n */\n\nimport \"./CardPopup.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { Key } from \"ts-key-enum\";\nimport type { CommonToolbarItem, PropertyRecord } from \"@itwin/appui-abstract\";\nimport type { RelativePosition } from \"@itwin/appui-abstract\";\nimport type { Orientation } from \"@itwin/components-react\";\nimport {\n Direction,\n PropertyValueRendererManager,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport type { RequireAtLeastOne } from \"@itwin/core-bentley\";\nimport { DivWithOutsideClick, MessageRenderer } from \"@itwin/core-react\";\nimport { FocusTrap, Point } from \"@itwin/core-react/internal\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup.js\";\nimport type { PopupContentType, PopupPropsBase } from \"./PopupManager.js\";\nimport { isReactContent, PopupManager } from \"./PopupManager.js\";\nimport { PositionPopup } from \"./PositionPopup.js\";\nimport { ToolbarWithOverflow } from \"../toolbar/ToolbarWithOverflow.js\";\nimport type { ToolbarItem } from \"../toolbar/ToolbarItem.js\";\nimport { mapToPlacement, type Placement } from \"../utils/Placement.js\";\nimport { WrapperContext } from \"../configurableui/ConfigurableUiContent.js\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\n\n/** Props for defining a CardPopup editor.\n * @beta */\nexport type CardPopupProps = Omit<PopupPropsBase, \"el\"> & {\n content: PopupContentType;\n title: string | PropertyRecord | undefined;\n items: CommonToolbarItem[] | ToolbarItem[] | undefined;\n /** @deprecated in 4.16.0. Not used by the {@link CardPopup} component. */\n orientation: Orientation;\n onCancel: () => void;\n onItemExecuted: (item: any) => void;\n el?: HTMLElement;\n} & RequireAtLeastOne<{\n /** @deprecated in 4.16.0. Use `placement` property instead. */\n relativePosition: RelativePosition;\n placement: Placement;\n }>;\n\ninterface CardPopupState {\n size: SizeProps;\n}\n\n/** Popup component for Input Editor\n * @beta\n */\nexport class CardPopup extends React.PureComponent<\n CardPopupProps,\n CardPopupState\n> {\n /** @internal */\n public static override contextType = WrapperContext;\n /** @internal */\n public declare context: React.ContextType<typeof WrapperContext>;\n public override readonly state = {\n size: { width: -1, height: -1 },\n };\n\n private _onSizeKnown = (newSize: SizeProps) => {\n if (\n newSize.height === this.state.size.height &&\n newSize.width === this.state.size.width\n )\n return;\n this.setState({ size: newSize });\n };\n\n private _handleKeyDown = (event: React.KeyboardEvent): void => {\n switch (event.key) {\n case Key.Escape.valueOf():\n this._cancel();\n break;\n }\n };\n\n private _cancel() {\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n }\n\n public override render() {\n let point = PopupManager.getPopupPosition(\n this.props.el ?? this.context,\n this.props.pt,\n new Point(),\n this.state.size\n );\n const popupRect = CursorPopup.getPopupRect(\n point,\n this.props.offset,\n this.state.size,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.props.placement ?? mapToPlacement(this.props.relativePosition)\n );\n point = new Point(popupRect.left, popupRect.top);\n\n return (\n <PositionPopup\n key={this.props.id}\n className={classnames(\"uifw-no-border\", \"uifw-card\")}\n point={point}\n onSizeKnown={this._onSizeKnown}\n >\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <DivWithOutsideClick\n onOutsideClick={this.props.onCancel}\n onKeyDown={this._handleKeyDown}\n >\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\n <Card\n content={this.props.content}\n title={this.props.title}\n items={this.props.items}\n onItemExecuted={this.props.onItemExecuted}\n />\n </FocusTrap>\n </DivWithOutsideClick>\n </PositionPopup>\n );\n }\n}\n\n/** Props defining a Card component\n * @beta */\nexport interface CardProps {\n content: PopupContentType;\n title: string | PropertyRecord | undefined;\n items?: CommonToolbarItem[] | ToolbarItem[] | undefined;\n onItemExecuted: (item: any) => void;\n}\n\n/** Card component\n * @beta */\nexport function Card(props: CardProps) {\n let titleNode: React.ReactNode;\n if (props.title) {\n if (typeof props.title === \"string\")\n titleNode = <Text variant=\"leading\">{props.title}</Text>;\n else {\n const propertyValueRendererManager =\n PropertyValueRendererManager.defaultManager;\n const titleValue = propertyValueRendererManager.render(props.title);\n titleNode = <Text variant=\"leading\">{titleValue}</Text>;\n }\n }\n\n const content = isReactContent(props.content) ? (\n props.content.reactNode\n ) : (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <MessageRenderer message={props.content} />\n );\n\n return (\n <>\n <div className=\"uifw-card-content\">\n {props.title && (\n <>\n {titleNode}\n <div className=\"uifw-card-gap\" />\n </>\n )}\n {content}\n </div>\n {props.items && (\n <>\n <div className=\"uifw-card-separator\" />\n <ToolbarWithOverflow\n expandsTo={Direction.Bottom}\n panelAlignment={ToolbarPanelAlignment.Start}\n items={props.items}\n useDragInteraction={true}\n toolbarOpacitySetting={ToolbarOpacitySetting.Transparent}\n onItemExecuted={props.onItemExecuted}\n />\n </>\n )}\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Popup\n */\n\nimport \"./CardPopup.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { Key } from \"ts-key-enum\";\nimport type { CommonToolbarItem, PropertyRecord } from \"@itwin/appui-abstract\";\nimport type { RelativePosition } from \"@itwin/appui-abstract\";\nimport type { Orientation } from \"@itwin/components-react\";\nimport {\n Direction,\n PropertyValueRendererManager,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport type { RequireAtLeastOne } from \"@itwin/core-bentley\";\nimport { DivWithOutsideClick, MessageRenderer } from \"@itwin/core-react\";\nimport { FocusTrap, Point } from \"@itwin/core-react/internal\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup.js\";\nimport type { PopupContentType, PopupPropsBase } from \"./PopupManager.js\";\nimport { isReactContent, PopupManager } from \"./PopupManager.js\";\nimport { PositionPopup } from \"./PositionPopup.js\";\nimport { ToolbarWithOverflow } from \"../toolbar/ToolbarWithOverflow.js\";\nimport type { ToolbarItem } from \"../toolbar/ToolbarItem.js\";\nimport { mapToPlacement, type Placement } from \"../utils/Placement.js\";\nimport { WrapperContext } from \"../configurableui/ConfigurableUiContent.js\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\n\n/** Props for defining a CardPopup editor.\n * @beta */\nexport type CardPopupProps = Omit<PopupPropsBase, \"el\"> & {\n content: PopupContentType;\n title: string | PropertyRecord | undefined;\n items: CommonToolbarItem[] | ToolbarItem[] | undefined;\n /** @deprecated in 4.16.0. Not used by the {@link CardPopup} component. */\n orientation: Orientation;\n onCancel: () => void;\n onItemExecuted: (item: any) => void;\n el?: HTMLElement;\n} & RequireAtLeastOne<{\n /** @deprecated in 4.16.0. Use `placement` property instead. */\n relativePosition: RelativePosition;\n placement: Placement;\n }>;\n\ninterface CardPopupState {\n size: SizeProps;\n}\n\n/** Popup component for Input Editor\n * @beta\n */\nexport class CardPopup extends React.PureComponent<\n CardPopupProps,\n CardPopupState\n> {\n /** @internal */\n public static override contextType = WrapperContext;\n /** @internal */\n public declare context: React.ContextType<typeof WrapperContext>;\n public override readonly state = {\n size: { width: -1, height: -1 },\n };\n\n private _onSizeKnown = (newSize: SizeProps) => {\n if (\n newSize.height === this.state.size.height &&\n newSize.width === this.state.size.width\n )\n return;\n this.setState({ size: newSize });\n };\n\n private _handleKeyDown = (event: React.KeyboardEvent): void => {\n switch (event.key) {\n case Key.Escape.valueOf():\n this._cancel();\n break;\n }\n };\n\n private _cancel() {\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n }\n\n public override render() {\n let point = PopupManager.getPopupPosition(\n this.props.el ?? this.context,\n this.props.pt,\n new Point(),\n this.state.size\n );\n const popupRect = CursorPopup.getPopupRect(\n point,\n this.props.offset,\n this.state.size,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.props.placement ?? mapToPlacement(this.props.relativePosition)\n );\n point = new Point(popupRect.left, popupRect.top);\n\n return (\n <PositionPopup\n key={this.props.id}\n className={classnames(\"uifw-no-border\", \"uifw-card\")}\n point={point}\n onSizeKnown={this._onSizeKnown}\n >\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <DivWithOutsideClick\n onOutsideClick={this.props.onCancel}\n onKeyDown={this._handleKeyDown}\n >\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\n <Card\n content={this.props.content}\n title={this.props.title}\n items={this.props.items}\n onItemExecuted={this.props.onItemExecuted}\n />\n </FocusTrap>\n </DivWithOutsideClick>\n </PositionPopup>\n );\n }\n}\n\n/** Props defining a Card component\n * @beta */\nexport interface CardProps {\n content: PopupContentType;\n title: string | PropertyRecord | undefined;\n items?: CommonToolbarItem[] | ToolbarItem[] | undefined;\n onItemExecuted: (item: any) => void;\n}\n\n/** Card component\n * @beta */\nexport function Card(props: CardProps) {\n let titleNode: React.ReactNode;\n if (props.title) {\n if (typeof props.title === \"string\")\n titleNode = <Text variant=\"leading\">{props.title}</Text>;\n else {\n const propertyValueRendererManager =\n PropertyValueRendererManager.defaultManager;\n const titleValue = propertyValueRendererManager.render(props.title);\n titleNode = <Text variant=\"leading\">{titleValue}</Text>;\n }\n }\n\n const content = isReactContent(props.content) ? (\n props.content.reactNode\n ) : (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <MessageRenderer message={props.content} />\n );\n\n return (\n <>\n <div className=\"uifw-card-content\">\n {props.title && (\n <>\n {titleNode}\n <div className=\"uifw-card-gap\" />\n </>\n )}\n {content}\n </div>\n {props.items && (\n <>\n <div className=\"uifw-card-separator\" />\n <ToolbarWithOverflow\n expandsTo={Direction.Bottom}\n panelAlignment={ToolbarPanelAlignment.Start}\n items={props.items}\n useDragInteraction={true}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n toolbarOpacitySetting={ToolbarOpacitySetting.Transparent}\n onItemExecuted={props.onItemExecuted}\n />\n </>\n )}\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG;IAC3D,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB,GAAG,iBAAiB,CAAC;IAClB,+DAA+D;IAC/D,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEL,UAAU,iBAAiB;IACzB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CACnD,iBAAiB,EACjB,iBAAiB,CAClB;IACC,gBAAgB;IAChB,OAAuB,WAAW,6BAAkB;IACpD,gBAAgB;IACD,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC;IAEjE,SAAyB,KAAK;;;;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAOlB;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,OAAO;IAMC,MAAM;
|
|
1
|
+
{"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG;IAC3D,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,EAAE,CAAC,EAAE,WAAW,CAAC;CAClB,GAAG,iBAAiB,CAAC;IAClB,+DAA+D;IAC/D,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC,CAAC;AAEL,UAAU,iBAAiB;IACzB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CACnD,iBAAiB,EACjB,iBAAiB,CAClB;IACC,gBAAgB;IAChB,OAAuB,WAAW,6BAAkB;IACpD,gBAAgB;IACD,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC;IAEjE,SAAyB,KAAK;;;;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAOlB;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,OAAO;IAMC,MAAM;CA0CvB"}
|
|
@@ -52,7 +52,9 @@ export class ToolbarPopup extends React.PureComponent {
|
|
|
52
52
|
return (React.createElement(PositionPopup, { key: this.props.id, className: "uifw-no-border", point: point, onSizeKnown: this._onSizeKnown },
|
|
53
53
|
React.createElement(DivWithOutsideClick, { onOutsideClick: this.props.onCancel, onKeyDown: this._handleKeyDown },
|
|
54
54
|
React.createElement(FocusTrap, { active: true, returnFocusOnDeactivate: true },
|
|
55
|
-
React.createElement(Toolbar, { expandsTo: Direction.Bottom, panelAlignment: ToolbarPanelAlignment.Start, items: this.props.items, useDragInteraction: true,
|
|
55
|
+
React.createElement(Toolbar, { expandsTo: Direction.Bottom, panelAlignment: ToolbarPanelAlignment.Start, items: this.props.items, useDragInteraction: true,
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
57
|
+
toolbarOpacitySetting: ToolbarOpacitySetting.Defaults, onItemExecuted: this.props.onItemExecuted })))));
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
//# sourceMappingURL=ToolbarPopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Popup\n */\n\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { RelativePosition } from \"@itwin/appui-abstract\";\nimport type { RequireAtLeastOne } from \"@itwin/core-bentley\";\nimport { DivWithOutsideClick } from \"@itwin/core-react\";\nimport { FocusTrap, Point } from \"@itwin/core-react/internal\";\nimport type { Orientation } from \"@itwin/components-react\";\nimport {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup.js\";\nimport type { PopupPropsBase } from \"./PopupManager.js\";\nimport { PopupManager } from \"./PopupManager.js\";\nimport { PositionPopup } from \"./PositionPopup.js\";\nimport type { ToolbarItem } from \"../toolbar/ToolbarItem.js\";\nimport { Toolbar } from \"../toolbar/Toolbar.js\";\nimport { WrapperContext } from \"../configurableui/ConfigurableUiContent.js\";\nimport { mapToPlacement, type Placement } from \"../utils/Placement.js\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\n\n/** Props for a popup toolbar\n * @beta\n */\nexport type ToolbarPopupProps = Omit<PopupPropsBase, \"el\"> & {\n items: ToolbarItem[];\n orientation: Orientation;\n onCancel: () => void;\n onItemExecuted: (item: any) => void;\n el?: HTMLElement;\n} & RequireAtLeastOne<{\n /** @deprecated in 4.16.0. Use `placement` property instead. */\n relativePosition: RelativePosition;\n placement: Placement;\n }>;\n\ninterface ToolbarPopupState {\n size: SizeProps;\n}\n\n/** Popup component for Toolbar\n * @beta\n */\nexport class ToolbarPopup extends React.PureComponent<\n ToolbarPopupProps,\n ToolbarPopupState\n> {\n /** @internal */\n public static override contextType = WrapperContext;\n /** @internal */\n public declare context: React.ContextType<typeof WrapperContext>;\n\n public override readonly state = {\n size: { width: -1, height: -1 },\n };\n\n private _onSizeKnown = (newSize: SizeProps) => {\n if (\n this.state.size.width === newSize.width &&\n this.state.size.height === newSize.height\n )\n return;\n this.setState({ size: newSize });\n };\n\n private _handleKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>\n ): void => {\n switch (event.key) {\n case Key.Escape.valueOf():\n this._cancel();\n break;\n }\n };\n\n private _cancel() {\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n }\n\n public override render() {\n let point = PopupManager.getPopupPosition(\n this.props.el ?? this.context,\n this.props.pt,\n new Point(),\n this.state.size\n );\n const popupRect = CursorPopup.getPopupRect(\n point,\n this.props.offset,\n this.state.size,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.props.placement ?? mapToPlacement(this.props.relativePosition)\n );\n point = new Point(popupRect.left, popupRect.top);\n return (\n <PositionPopup\n key={this.props.id}\n className=\"uifw-no-border\"\n point={point}\n onSizeKnown={this._onSizeKnown}\n >\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <DivWithOutsideClick\n onOutsideClick={this.props.onCancel}\n onKeyDown={this._handleKeyDown}\n >\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\n <Toolbar\n expandsTo={Direction.Bottom}\n panelAlignment={ToolbarPanelAlignment.Start}\n items={this.props.items}\n useDragInteraction={true}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n toolbarOpacitySetting={ToolbarOpacitySetting.Defaults}\n onItemExecuted={this.props.onItemExecuted}\n />\n </FocusTrap>\n </DivWithOutsideClick>\n </PositionPopup>\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolItemDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/shared/ToolItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolItemDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/shared/ToolItemDef.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKpD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,mBAAmB;IAC3C,MAAM,EAAE,MAAM,CAAM;gBAGzB,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,kBAAkB;IAerC,IAAW,EAAE,IAAI,MAAM,CAEtB;IAED;;OAEG;WACW,iBAAiB,CAC7B,IAAI,EAAE,OAAO,IAAI,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,WAAW;CAaf"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* @module Item
|
|
7
7
|
*/
|
|
8
8
|
import { IModelApp } from "@itwin/core-frontend";
|
|
9
|
+
import { ToolUtilities } from "@itwin/imodel-components-react";
|
|
9
10
|
import { ActionButtonItemDef } from "./ActionButtonItemDef.js";
|
|
10
11
|
/* eslint-disable @typescript-eslint/no-deprecated */
|
|
11
12
|
/** An Item that starts the execution of a Tool.
|
|
@@ -32,15 +33,15 @@ export class ToolItemDef extends ActionButtonItemDef {
|
|
|
32
33
|
* @deprecated in 4.15.0. Use {@link ToolbarItemUtilities.createForTool} instead.
|
|
33
34
|
*/
|
|
34
35
|
static getItemDefForTool(tool, icon, ...args) {
|
|
36
|
+
const iconElement = ToolUtilities.isWithIcon(tool)
|
|
37
|
+
? tool.iconElement
|
|
38
|
+
: undefined;
|
|
35
39
|
return new ToolItemDef({
|
|
36
40
|
toolId: tool.toolId,
|
|
37
|
-
|
|
38
|
-
? icon
|
|
39
|
-
: tool.iconSpec && tool.iconSpec.length > 0
|
|
40
|
-
? tool.iconSpec
|
|
41
|
-
: undefined,
|
|
41
|
+
iconSpec: icon ?? tool.iconSpec,
|
|
42
42
|
label: () => tool.flyover,
|
|
43
43
|
description: () => tool.description,
|
|
44
|
+
...(iconElement ? { icon: iconElement } : {}),
|
|
44
45
|
execute: async () => IModelApp.tools.run(tool.toolId, ...args),
|
|
45
46
|
});
|
|
46
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/shared/ToolItemDef.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,qDAAqD;AAErD;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,mBAAmB;IAC3C,MAAM,GAAW,EAAE,CAAC;IAE3B,YACE,aAA4B,EAC5B,cAAmC;QAEnC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAErC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG;gBACrB,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,cAAc,EAAE,aAAa,CAAC,cAAc;aAC7C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,iBAAiB,CAC7B,IAAiB,EACjB,IAAa,EACb,GAAG,IAAW;QAEd,
|
|
1
|
+
{"version":3,"file":"ToolItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/shared/ToolItemDef.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,qDAAqD;AAErD;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,mBAAmB;IAC3C,MAAM,GAAW,EAAE,CAAC;IAE3B,YACE,aAA4B,EAC5B,cAAmC;QAEnC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAErC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG;gBACrB,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,cAAc,EAAE,aAAa,CAAC,cAAc;aAC7C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,iBAAiB,CAC7B,IAAiB,EACjB,IAAa,EACb,GAAG,IAAW;QAEd,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,WAAW;YAClB,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,IAAI,WAAW,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC/B,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;YACzB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW;YACnC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Item\n */\n\nimport type { Tool } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { OnItemExecutedFunc } from \"@itwin/appui-abstract\";\nimport { ToolUtilities } from \"@itwin/imodel-components-react\";\nimport { ActionButtonItemDef } from \"./ActionButtonItemDef.js\";\nimport type { ToolItemProps } from \"./ItemProps.js\";\nimport type { ToolbarItemUtilities } from \"../toolbar/ToolbarItemUtilities.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** An Item that starts the execution of a Tool.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItemUtilities.createForTool} instead.\n */\nexport class ToolItemDef extends ActionButtonItemDef {\n public toolId: string = \"\";\n\n constructor(\n toolItemProps: ToolItemProps,\n onItemExecuted?: OnItemExecutedFunc\n ) {\n super(toolItemProps, onItemExecuted);\n\n if (toolItemProps.execute) {\n this._commandHandler = {\n execute: toolItemProps.execute,\n parameters: toolItemProps.parameters,\n getCommandArgs: toolItemProps.getCommandArgs,\n };\n }\n\n this.toolId = toolItemProps.toolId;\n }\n\n public get id(): string {\n return this.toolId;\n }\n\n /** Create a ToolItemDef that will run a registered tool.\n * @deprecated in 4.15.0. Use {@link ToolbarItemUtilities.createForTool} instead.\n */\n public static getItemDefForTool(\n tool: typeof Tool,\n icon?: string,\n ...args: any[]\n ): ToolItemDef {\n const iconElement = ToolUtilities.isWithIcon(tool)\n ? tool.iconElement\n : undefined;\n return new ToolItemDef({\n toolId: tool.toolId,\n iconSpec: icon ?? tool.iconSpec,\n label: () => tool.flyover,\n description: () => tool.description,\n ...(iconElement ? { icon: iconElement } : {}),\n execute: async () => IModelApp.tools.run(tool.toolId, ...args),\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolAssistanceField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,4BAA4B,CAAC;AAsBpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,iCAAiC,CAAC;AAUzC;;GAEG;AAEH,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,gFAAgF;IAChF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0FAA0F;IAC1F,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gFAAgF;IAChF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,2FAA2F;IAC3F,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAElE,UAAU,KACR,SAAQ,IAAI,CACR,wBAAwB,EACtB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,uBAAuB,CAC1B,EACD,OAAO,CACL,IAAI,CACF,wBAAwB,EACtB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,uBAAuB,CAC1B,CACF,EACD,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACnD;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;
|
|
1
|
+
{"version":3,"file":"ToolAssistanceField.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAaH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,4BAA4B,CAAC;AAsBpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,iCAAiC,CAAC;AAUzC;;GAEG;AAEH,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IAC3D,gFAAgF;IAChF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0FAA0F;IAC1F,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gFAAgF;IAChF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,2FAA2F;IAC3F,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAElE,UAAU,KACR,SAAQ,IAAI,CACR,wBAAwB,EACtB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,uBAAuB,CAC1B,EACD,OAAO,CACL,IAAI,CACF,wBAAwB,EACtB,uBAAuB,GACvB,qBAAqB,GACrB,qBAAqB,GACrB,uBAAuB,CAC1B,CACF,EACD,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACnD;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAcD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,qBA4T/C"}
|
|
@@ -49,6 +49,7 @@ export function ToolAssistanceField(props) {
|
|
|
49
49
|
return {
|
|
50
50
|
instructions: undefined,
|
|
51
51
|
toolIconSpec: "",
|
|
52
|
+
toolIconElement: undefined,
|
|
52
53
|
showPromptAtCursor: defaultPromptAtCursor,
|
|
53
54
|
mouseTouchTabIndex: 0,
|
|
54
55
|
};
|
|
@@ -119,6 +120,7 @@ export function ToolAssistanceField(props) {
|
|
|
119
120
|
setState((prev) => ({
|
|
120
121
|
...prev,
|
|
121
122
|
toolIconSpec: args.iconSpec,
|
|
123
|
+
toolIconElement: args.iconElement,
|
|
122
124
|
}));
|
|
123
125
|
open();
|
|
124
126
|
});
|
|
@@ -203,9 +205,9 @@ export function ToolAssistanceField(props) {
|
|
|
203
205
|
}));
|
|
204
206
|
void uiStateStorage.saveSetting(toolAssistanceKey, showPromptAtCursorKey, checked);
|
|
205
207
|
} })))))) : undefined)) },
|
|
206
|
-
React.createElement(Button, { styleType: "borderless", startIcon: instructions ? (
|
|
208
|
+
React.createElement(Button, { styleType: "borderless", startIcon: instructions ? (state.toolIconElement ?? (
|
|
207
209
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
208
|
-
React.createElement(Icon, { iconSpec: state.toolIconSpec })) : (React.createElement(React.Fragment, null)), className: classnames("uifw-statusFields-toolAssistance-toolAssistanceField", props.className), title: tooltip, style: props.style, labelProps: { className: "prompt" } },
|
|
210
|
+
React.createElement(Icon, { iconSpec: state.toolIconSpec }))) : (React.createElement(React.Fragment, null)), className: classnames("uifw-statusFields-toolAssistance-toolAssistanceField", props.className), title: tooltip, style: props.style, labelProps: { className: "prompt" } },
|
|
209
211
|
prompt,
|
|
210
212
|
React.createElement(StatusBarPopover.ExpandIndicator, null))));
|
|
211
213
|
}
|