@itwin/appui-react 4.0.0-dev.17 → 4.0.0-dev.18
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 +43 -18
- package/lib/cjs/appui-react/UiFramework.d.ts +10 -20
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +12 -24
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +4 -4
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts +0 -39
- package/lib/cjs/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialogManager.js +1 -61
- package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts +0 -30
- package/lib/cjs/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/ModalDialogManager.js +1 -44
- package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts +0 -39
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.js +1 -60
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkChildWindows.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkContent.d.ts +2 -2
- package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkControls.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkDialogs.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkToolSettings.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +1 -1
- package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +0 -32
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +1 -55
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +2 -3
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +34 -0
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +500 -0
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -0
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +6 -4
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +33 -6
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react.d.ts +0 -7
- package/lib/cjs/appui-react.d.ts.map +1 -1
- package/lib/cjs/appui-react.js +0 -7
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +10 -20
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +12 -24
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +4 -4
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts +0 -39
- package/lib/esm/appui-react/dialog/ContentDialogManager.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialogManager.js +0 -59
- package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts +0 -30
- package/lib/esm/appui-react/dialog/ModalDialogManager.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/ModalDialogManager.js +0 -42
- package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts +0 -39
- package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialogManager.js +0 -58
- package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkChildWindows.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkContent.d.ts +2 -2
- package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkControls.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkDialogs.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkToolSettings.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +1 -1
- package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts +0 -32
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +0 -53
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +2 -3
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +34 -0
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +496 -0
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -0
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +6 -4
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +33 -6
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react.d.ts +0 -7
- package/lib/esm/appui-react.d.ts.map +1 -1
- package/lib/esm/appui-react.js +0 -7
- package/lib/esm/appui-react.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +0 -45
- package/package.json +21 -13
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts +0 -74
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.d.ts.map +0 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +0 -107
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +0 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts +0 -66
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.d.ts.map +0 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js +0 -93
- package/lib/cjs/appui-react/configurableui/ConfigurableUiManager.js.map +0 -1
- package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts +0 -48
- package/lib/cjs/appui-react/content/ContentLayoutManager.d.ts.map +0 -1
- package/lib/cjs/appui-react/content/ContentLayoutManager.js +0 -69
- package/lib/cjs/appui-react/content/ContentLayoutManager.js.map +0 -1
- package/lib/cjs/appui-react/content/ContentViewManager.d.ts +0 -63
- package/lib/cjs/appui-react/content/ContentViewManager.d.ts.map +0 -1
- package/lib/cjs/appui-react/content/ContentViewManager.js +0 -96
- package/lib/cjs/appui-react/content/ContentViewManager.js.map +0 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts +0 -202
- package/lib/cjs/appui-react/frontstage/FrontstageManager.d.ts.map +0 -1
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js +0 -269
- package/lib/cjs/appui-react/frontstage/FrontstageManager.js.map +0 -1
- package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.d.ts +0 -44
- package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.d.ts.map +0 -1
- package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js +0 -64
- package/lib/cjs/appui-react/toolsettings/ToolSettingsManager.js.map +0 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts +0 -54
- package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +0 -1
- package/lib/cjs/appui-react/utils/UiShowHideManager.js +0 -108
- package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +0 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts +0 -74
- package/lib/esm/appui-react/childwindow/ChildWindowManager.d.ts.map +0 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js +0 -103
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +0 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts +0 -66
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.d.ts.map +0 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js +0 -89
- package/lib/esm/appui-react/configurableui/ConfigurableUiManager.js.map +0 -1
- package/lib/esm/appui-react/content/ContentLayoutManager.d.ts +0 -48
- package/lib/esm/appui-react/content/ContentLayoutManager.d.ts.map +0 -1
- package/lib/esm/appui-react/content/ContentLayoutManager.js +0 -65
- package/lib/esm/appui-react/content/ContentLayoutManager.js.map +0 -1
- package/lib/esm/appui-react/content/ContentViewManager.d.ts +0 -63
- package/lib/esm/appui-react/content/ContentViewManager.d.ts.map +0 -1
- package/lib/esm/appui-react/content/ContentViewManager.js +0 -92
- package/lib/esm/appui-react/content/ContentViewManager.js.map +0 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts +0 -202
- package/lib/esm/appui-react/frontstage/FrontstageManager.d.ts.map +0 -1
- package/lib/esm/appui-react/frontstage/FrontstageManager.js +0 -265
- package/lib/esm/appui-react/frontstage/FrontstageManager.js.map +0 -1
- package/lib/esm/appui-react/toolsettings/ToolSettingsManager.d.ts +0 -44
- package/lib/esm/appui-react/toolsettings/ToolSettingsManager.d.ts.map +0 -1
- package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js +0 -60
- package/lib/esm/appui-react/toolsettings/ToolSettingsManager.js.map +0 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.d.ts +0 -54
- package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +0 -1
- package/lib/esm/appui-react/utils/UiShowHideManager.js +0 -105
- package/lib/esm/appui-react/utils/UiShowHideManager.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkControls.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkControls.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ConfigurableUi\r\n */\r\nimport { ConfigurableUiControlConstructor, ConfigurableUiElement } from \"../configurableui/ConfigurableUiControl\";\r\n\r\n/**\r\n * [[UiFramework.controls]] interface\r\n * @
|
|
1
|
+
{"version":3,"file":"FrameworkControls.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkControls.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ConfigurableUi\r\n */\r\nimport { ConfigurableUiControlConstructor, ConfigurableUiElement } from \"../configurableui/ConfigurableUiControl\";\r\n\r\n/**\r\n * [[UiFramework.controls]] interface\r\n * @public\r\n */\r\nexport interface FrameworkControls {\r\n\r\n /** Registers a control implementing the [[ConfigurableUiElement]] interface.\r\n * These controls can be a\r\n * [[ContentControl]],\r\n * [[NavigationAidControl]],\r\n * [[StatusBarWidgetControl]],\r\n * [[WidgetControl]] or\r\n * [[ToolUiProvider]].\r\n * @param classId the class id of the control to register\r\n * @param constructor the constructor of the control to register\r\n */\r\n register(classId: string, constructor: ConfigurableUiControlConstructor): void;\r\n\r\n /** Determines if a control has been registered based on its classId.\r\n * @param classId the class id of the control to test\r\n * @returns true if the control is registered or false if not\r\n */\r\n isRegistered(classId: string): boolean;\r\n\r\n /** Unregisters a control that has been registered.\r\n * @param classId the class id of the control to unregister\r\n */\r\n unregister(classId: string): void;\r\n\r\n /** Creates a control registered by calling registerControl.\r\n * @param classId the class id of the control to create\r\n * @param uniqueId a unique id for the control\r\n * @param options options passed to the constructor of the control\r\n * @param controlId controlId which may not be unique across all control instances.\r\n * @returns the created control\r\n */\r\n create(classId: string, uniqueId: string, options?: any, controlId?: string): ConfigurableUiElement | undefined;\r\n\r\n /** Gets the HTML wrapper element for Configurable UI */\r\n getWrapperElement(): HTMLElement;\r\n\r\n /** Closes all UI popups currently open */\r\n closeUi(): void;\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkDialogs.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkDialogs.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,mEAA6E;AAE7E;;GAEG;AACH,MAAa,uBAAwB,SAAQ,sCAAkB;CAAI;AAAnE,0DAAmE;AAEnE;;GAEG;AACH,MAAa,0BAA2B,SAAQ,sCAAkB;CAAI;AAAtE,gEAAsE","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\nimport { DialogChangedEvent, DialogInfo } from \"../dialog/DialogManagerBase\";\r\n\r\n/** Modal Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ModalDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** Modeless Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ModelessDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** @public */\r\nexport interface ModelessDialogInfo {\r\n reactNode: React.ReactNode;\r\n zIndex: number;\r\n parentDocument: Document;\r\n}\r\n\r\n/**\r\n * Manages dialog access\r\n * @beta\r\n */\r\nexport interface FrameworkDialog {\r\n /** Get the array of modal dialogs */\r\n readonly dialogs: DialogInfo[];\r\n\r\n /** Open a modal dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog. If one is not provided, an id is generated.\r\n * @param parentDocument The Document used to determine the owning window.\r\n */\r\n open(dialog: React.ReactNode, id?: string, parentDocument?: Document): void;\r\n\r\n /** Close a modal dialog\r\n * @param dialog The Dialog to open. If one is not specified, the active dialog will be closed.\r\n */\r\n close(dialog?: React.ReactNode): void;\r\n\r\n /** Update the dialogs */\r\n update(): void;\r\n\r\n /** Get the active modal dialog */\r\n readonly active: React.ReactNode | undefined;\r\n\r\n /** Get the count of modal dialogs */\r\n readonly count: number;\r\n}\r\n\r\n/**\r\n * FrameworkDialog that manages the top most content.\r\n * @beta\r\n */\r\nexport interface FrameworkStackedDialog<DialogInfoType> extends FrameworkDialog {\r\n /** Handle a pointer down event on a modeless dialog */\r\n handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void;\r\n\r\n /** Get the z-index for a modeless dialog */\r\n getZIndex(id: string): number;\r\n\r\n getInfo(id: string): DialogInfoType | undefined;\r\n}\r\n\r\n/**\r\n * [[UiFramework.dialogs]] interface.\r\n * @
|
|
1
|
+
{"version":3,"file":"FrameworkDialogs.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkDialogs.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,mEAA6E;AAE7E;;GAEG;AACH,MAAa,uBAAwB,SAAQ,sCAAkB;CAAI;AAAnE,0DAAmE;AAEnE;;GAEG;AACH,MAAa,0BAA2B,SAAQ,sCAAkB;CAAI;AAAtE,gEAAsE","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\nimport { DialogChangedEvent, DialogInfo } from \"../dialog/DialogManagerBase\";\r\n\r\n/** Modal Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ModalDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** Modeless Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ModelessDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** @public */\r\nexport interface ModelessDialogInfo {\r\n reactNode: React.ReactNode;\r\n zIndex: number;\r\n parentDocument: Document;\r\n}\r\n\r\n/**\r\n * Manages dialog access\r\n * @beta\r\n */\r\nexport interface FrameworkDialog {\r\n /** Get the array of modal dialogs */\r\n readonly dialogs: DialogInfo[];\r\n\r\n /** Open a modal dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog. If one is not provided, an id is generated.\r\n * @param parentDocument The Document used to determine the owning window.\r\n */\r\n open(dialog: React.ReactNode, id?: string, parentDocument?: Document): void;\r\n\r\n /** Close a modal dialog\r\n * @param dialog The Dialog to open. If one is not specified, the active dialog will be closed.\r\n */\r\n close(dialog?: React.ReactNode): void;\r\n\r\n /** Update the dialogs */\r\n update(): void;\r\n\r\n /** Get the active modal dialog */\r\n readonly active: React.ReactNode | undefined;\r\n\r\n /** Get the count of modal dialogs */\r\n readonly count: number;\r\n}\r\n\r\n/**\r\n * FrameworkDialog that manages the top most content.\r\n * @beta\r\n */\r\nexport interface FrameworkStackedDialog<DialogInfoType> extends FrameworkDialog {\r\n /** Handle a pointer down event on a modeless dialog */\r\n handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void;\r\n\r\n /** Get the z-index for a modeless dialog */\r\n getZIndex(id: string): number;\r\n\r\n getInfo(id: string): DialogInfoType | undefined;\r\n}\r\n\r\n/**\r\n * [[UiFramework.dialogs]] interface.\r\n * @public\r\n */\r\nexport interface FrameworkDialogs {\r\n /**\r\n * Manage modal dialogs.\r\n * @beta\r\n */\r\n readonly modal: FrameworkDialog & {\r\n /** Modal Dialog Changed Event */\r\n readonly onModalDialogChangedEvent: ModalDialogChangedEvent;\r\n };\r\n\r\n /**\r\n * Manage modeless dialogs.\r\n * @beta\r\n */\r\n readonly modeless: FrameworkStackedDialog<ModelessDialogInfo> & {\r\n /** Modeless Dialog Changed Event */\r\n readonly onModelessDialogChangedEvent: ModelessDialogChangedEvent;\r\n };\r\n}\r\n"]}
|
|
@@ -147,7 +147,7 @@ export interface ModalFrontstageItem {
|
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
149
|
* [[UiFramework.frontstages]] interface
|
|
150
|
-
* @
|
|
150
|
+
* @public
|
|
151
151
|
*/
|
|
152
152
|
export interface FrameworkFrontstages {
|
|
153
153
|
/** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAgD;AAqBhD;;GAEG;AACH,MAAa,wBAAyB,SAAQ,wBAAqC;CAAI;AAAvF,4DAAuF;AAmBvF;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E;AAS/E;;GAEG;AACH,MAAa,2BAA4B,SAAQ,wBAAwC;CAAI;AAA7F,kEAA6F;AAiB7F;;;;;;GAMG;AACH,MAAa,kCAAmC,SAAQ,wBAA+C;CAAI;AAA3G,gFAA2G;AAY3G;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,kBAAmB,SAAQ,wBAA+B;CAAI;AAA3E,gDAA2E;AAS3E;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { IModelConnection, Tool } from \"@itwin/core-frontend\";\r\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentLayoutActivatedEvent } from \"../content/ContentLayout\";\r\nimport { FrontstageDef } from \"../frontstage/FrontstageDef\";\r\nimport { FrontstageProvider } from \"../frontstage/FrontstageProvider\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelPinnedChangedEventArgs, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { WidgetDef, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\nexport interface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n/**\r\n * [[UiFramework.frontstages]] interface\r\n * @beta\r\n */\r\nexport interface FrameworkFrontstages {\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n readonly isLoading: boolean;\r\n\r\n /** Get Frontstage Deactivated event. */\r\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\r\n\r\n /** Get Frontstage Activated event. */\r\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\r\n\r\n /** Get Frontstage Activated event. */\r\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\r\n\r\n /** Get Tool Activated event. */\r\n readonly onToolActivatedEvent: ToolActivatedEvent;\r\n\r\n /** Get ToolSetting Reload event. */\r\n readonly onToolSettingsReloadEvent: UiEvent<void>;\r\n\r\n /** Get Tool Icon Changed event. */\r\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\r\n\r\n /** Get Content Layout Activated event. */\r\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\r\n\r\n /** Get Content Control Activated event. */\r\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\r\n\r\n /** Get Navigation Aid Activated event. */\r\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\r\n\r\n /** Get Widget State Changed event. */\r\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\r\n\r\n /** Get panel state changed event.\r\n * @alpha\r\n */\r\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\r\n\r\n /** Get panel pinned changed event.\r\n * @alpha\r\n */\r\n readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n clearFrontstageDefs(): void;\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n clearFrontstageProviders(): void;\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n readonly activeFrontstageDef: FrontstageDef | undefined;\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n readonly activeFrontstageId: string;\r\n\r\n hasFrontstage(frontstageId: string): boolean;\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n setActiveFrontstage(frontstageId: string): Promise<void>;\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void>;\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n deactivateFrontstageDef(): Promise<void>;\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n readonly activeToolId: string;\r\n\r\n /** Sets the active tool id */\r\n setActiveToolId(toolId: string): void;\r\n\r\n /** Sets the active tool */\r\n setActiveTool(tool: Tool): void;\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n readonly activeToolInformation: ToolInformation | undefined;\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n closeModalFrontstage(): void;\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n updateModalFrontstage(): void;\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n readonly modalFrontstageCount: number;\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection): void;\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n setWidgetState(widgetId: string, state: WidgetState): boolean;\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n findWidget(widgetId: string): WidgetDef | undefined;\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n closeNestedFrontstage(): Promise<void>;\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n readonly activeNestedFrontstage: FrontstageDef | undefined;\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n readonly nestedFrontstageCount: number;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAgD;AAqBhD;;GAEG;AACH,MAAa,wBAAyB,SAAQ,wBAAqC;CAAI;AAAvF,4DAAuF;AAmBvF;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E;AAS/E;;GAEG;AACH,MAAa,2BAA4B,SAAQ,wBAAwC;CAAI;AAA7F,kEAA6F;AAiB7F;;;;;;GAMG;AACH,MAAa,kCAAmC,SAAQ,wBAA+C;CAAI;AAA3G,gFAA2G;AAY3G;;GAEG;AACH,MAAa,0BAA2B,SAAQ,wBAAuC;CAAI;AAA3F,gEAA2F;AAS3F;;GAEG;AACH,MAAa,kBAAmB,SAAQ,wBAA+B;CAAI;AAA3E,gDAA2E;AAS3E;;GAEG;AACH,MAAa,oBAAqB,SAAQ,wBAAiC;CAAI;AAA/E,oDAA+E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { IModelConnection, Tool } from \"@itwin/core-frontend\";\r\nimport { ToolInformation } from \"../toolsettings/ToolInformation\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ContentControlActivatedEvent } from \"../content/ContentControl\";\r\nimport { ContentLayoutActivatedEvent } from \"../content/ContentLayout\";\r\nimport { FrontstageDef } from \"../frontstage/FrontstageDef\";\r\nimport { FrontstageProvider } from \"../frontstage/FrontstageProvider\";\r\nimport { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl\";\r\nimport { PanelPinnedChangedEventArgs, PanelStateChangedEvent } from \"../stagepanels/StagePanelDef\";\r\nimport { WidgetDef, WidgetStateChangedEvent } from \"../widgets/WidgetDef\";\r\nimport { WidgetState } from \"../widgets/WidgetState\";\r\n\r\n/** Frontstage Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageActivatedEventArgs {\r\n deactivatedFrontstageDef?: FrontstageDef;\r\n activatedFrontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Activated Event class.\r\n * @public\r\n */\r\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> { }\r\n\r\n/** Frontstage Deactivated Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageDeactivatedEventArgs {\r\n /** Frontstage being deactivated */\r\n deactivatedFrontstageDef: FrontstageDef;\r\n /** Frontstage being activated */\r\n activatedFrontstageDef?: FrontstageDef;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Frontstage Deactivated Event class.\r\n * @public\r\n */\r\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> { }\r\n\r\n/** Frontstage Ready Event Args interface.\r\n * @public\r\n */\r\nexport interface FrontstageReadyEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** Frontstage Ready Event class.\r\n * @public\r\n */\r\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> { }\r\n\r\n/** Modal Frontstage Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageChangedEventArgs {\r\n modalFrontstageCount: number;\r\n}\r\n\r\n/** Modal Frontstage Stack Changed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> { }\r\n\r\n/** Modal Frontstage Closed Event Args interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageClosedEventArgs {\r\n /** Modal Frontstage being closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n\r\n /** Total time spent in frontstage */\r\n totalTime: number;\r\n /** Engagement time spent in frontstage */\r\n engagementTime: number;\r\n /** Idle time spent in frontstage */\r\n idleTime: number;\r\n}\r\n\r\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\r\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\r\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\r\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\r\n * any unsaved data.\r\n * @alpha\r\n */\r\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> { }\r\n\r\n/** Modal Frontstage RequestedClose Event Args interface.\r\n * @alpha\r\n */\r\nexport interface ModalFrontstageRequestedCloseEventArgs {\r\n /** Modal Frontstage that is to be closed */\r\n modalFrontstage: ModalFrontstageInfo;\r\n /** Function to call to close the stage */\r\n stageCloseFunc: () => void;\r\n}\r\n\r\n/** Modal Frontstage Closed Event class.\r\n * @public\r\n */\r\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> { }\r\n\r\n/** Tool Activated Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolActivatedEventArgs {\r\n toolId: string;\r\n}\r\n\r\n/** Tool Activated Event class.\r\n * @public\r\n */\r\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> { }\r\n\r\n/** Tool Icon Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface ToolIconChangedEventArgs {\r\n iconSpec: string;\r\n}\r\n\r\n/** Tool Icon Changed Event class.\r\n * @public\r\n */\r\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> { }\r\n\r\n/** Modal Frontstage information interface.\r\n * @public\r\n */\r\nexport interface ModalFrontstageInfo {\r\n title: string;\r\n content: React.ReactNode;\r\n appBarRight?: React.ReactNode;\r\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\r\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\r\n * @alpha */\r\n notifyCloseRequest?: boolean;\r\n}\r\n\r\n/** Modal Frontstage array item interface.\r\n * @internal\r\n */\r\nexport interface ModalFrontstageItem {\r\n modalFrontstage: ModalFrontstageInfo;\r\n timeTracker: TimeTracker;\r\n}\r\n\r\n/**\r\n * [[UiFramework.frontstages]] interface\r\n * @public\r\n */\r\nexport interface FrameworkFrontstages {\r\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\r\n readonly isLoading: boolean;\r\n\r\n /** Get Frontstage Deactivated event. */\r\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\r\n\r\n /** Get Frontstage Activated event. */\r\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\r\n\r\n /** Get Frontstage Activated event. */\r\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\r\n\r\n /** Get Modal Frontstage Changed event. */\r\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\r\n\r\n /** Get Modal Frontstage Closed event. */\r\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\r\n\r\n /** Get Modal Frontstage Requested Closed event.\r\n * @alpha\r\n */\r\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\r\n\r\n /** Get Tool Activated event. */\r\n readonly onToolActivatedEvent: ToolActivatedEvent;\r\n\r\n /** Get ToolSetting Reload event. */\r\n readonly onToolSettingsReloadEvent: UiEvent<void>;\r\n\r\n /** Get Tool Icon Changed event. */\r\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\r\n\r\n /** Get Content Layout Activated event. */\r\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\r\n\r\n /** Get Content Control Activated event. */\r\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\r\n\r\n /** Get Navigation Aid Activated event. */\r\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\r\n\r\n /** Get Widget State Changed event. */\r\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\r\n\r\n /** Get panel state changed event.\r\n * @alpha\r\n */\r\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\r\n\r\n /** Get panel pinned changed event.\r\n * @alpha\r\n */\r\n readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;\r\n\r\n /** Clears the Frontstage map.\r\n */\r\n clearFrontstageDefs(): void;\r\n\r\n /** Clears the Frontstage Providers and the defs that may have been created from them.\r\n */\r\n clearFrontstageProviders(): void;\r\n\r\n /** Add a Frontstage via a [[FrontstageProvider]].\r\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\r\n */\r\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\r\n\r\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\r\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\r\n * returned.\r\n * @param id Id of the Frontstage to find\r\n * @returns FrontstageDef with a given id if found, or undefined if not found.\r\n */\r\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\r\n\r\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\r\n * @return Active FrontstageDef, or undefined if one is not active.\r\n */\r\n readonly activeFrontstageDef: FrontstageDef | undefined;\r\n\r\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\r\n * @return Id of the active FrontstageDef, or blank if one is not active.\r\n */\r\n readonly activeFrontstageId: string;\r\n\r\n hasFrontstage(frontstageId: string): boolean;\r\n\r\n /** Sets the active FrontstageDef give the stageId.\r\n * @param frontstageId Id of the Frontstage to set active.\r\n * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.\r\n */\r\n setActiveFrontstage(frontstageId: string): Promise<void>;\r\n\r\n /** Sets the active FrontstageDef.\r\n * @param frontstageDef FrontstageDef to set active.\r\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\r\n */\r\n setActiveFrontstageDef(frontstageDef: FrontstageDef | undefined): Promise<void>;\r\n\r\n /** Deactivates the active FrontstageDef.\r\n */\r\n deactivateFrontstageDef(): Promise<void>;\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n readonly activeToolId: string;\r\n\r\n /** Sets the active tool id */\r\n setActiveToolId(toolId: string): void;\r\n\r\n /** Sets the active tool */\r\n setActiveTool(tool: Tool): void;\r\n\r\n /** Gets the active tool's [[ToolInformation]] */\r\n readonly activeToolInformation: ToolInformation | undefined;\r\n\r\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\r\n * @param modalFrontstage Information about the modal Frontstage\r\n */\r\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\r\n\r\n /** Closes the top-most modal Frontstage.\r\n */\r\n closeModalFrontstage(): void;\r\n\r\n /** Updates the top-most modal Frontstage.\r\n */\r\n updateModalFrontstage(): void;\r\n\r\n /** Gets the top-most modal Frontstage.\r\n * @returns Top-most modal Frontstage, or undefined if there is none.\r\n */\r\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\r\n\r\n /** Gets the number of modal Frontstages.\r\n * @returns Modal Frontstage count\r\n */\r\n readonly modalFrontstageCount: number;\r\n\r\n /** Sets the active Navigation Aid via its Id.\r\n * @param navigationAidId Id of the Navigation Aid to set as active\r\n * @param iModelConnection IModelConnection to query for view data\r\n */\r\n setActiveNavigationAid(navigationAidId: string, iModelConnection: IModelConnection): void;\r\n\r\n /** Sets the state of the widget with the given id\r\n * @param widgetId Id of the Widget for which to set the state\r\n * @param state New state of the widget\r\n * @returns true if the widget state was set successfully, or false if not.\r\n */\r\n setWidgetState(widgetId: string, state: WidgetState): boolean;\r\n\r\n /** Finds a widget with the given id in the active frontstage\r\n * @param widgetId Id of the Widget to find\r\n * @returns The WidgetDef with the given id, or undefined if not found.\r\n */\r\n findWidget(widgetId: string): WidgetDef | undefined;\r\n\r\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\r\n * @param nestedFrontstage Information about the nested Frontstage\r\n */\r\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\r\n\r\n /** Closes the top-most nested Frontstage.\r\n */\r\n closeNestedFrontstage(): Promise<void>;\r\n\r\n /** Gets the top-most nested Frontstage.\r\n * @returns Top-most nested Frontstage, or undefined if there is none.\r\n */\r\n readonly activeNestedFrontstage: FrontstageDef | undefined;\r\n\r\n /** Gets the number of nested Frontstages.\r\n * @returns Nested Frontstage count\r\n */\r\n readonly nestedFrontstageCount: number;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkKeyboardShortcuts.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkKeyboardShortcuts.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\nimport { FunctionKey, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemProps } from \"../shared/ItemProps\";\r\n\r\n/** Properties for a Keyboard Shortcut\r\n * @public\r\n */\r\nexport interface KeyboardShortcutProps extends ItemProps {\r\n /** The key that invokes the shortcut.\r\n * This is either an alphanumeric key, a function key or a special key.\r\n */\r\n key: string | FunctionKey | SpecialKey;\r\n\r\n /** The item to execute when this shortcut is invoked. Either 'item' or 'shortcuts' must be specified. */\r\n item?: ActionButtonItemDef;\r\n /** Nested array of shortcut props. Either 'item' or 'shortcuts' must be specified. */\r\n shortcuts?: KeyboardShortcutProps[];\r\n\r\n /** Indicates whether the Alt key required. Default - false */\r\n isAltKeyRequired?: boolean;\r\n /** Indicates whether the Ctrl key required. Default - false */\r\n isCtrlKeyRequired?: boolean;\r\n /** Indicates whether the Shift key required. Default - false */\r\n isShiftKeyRequired?: boolean;\r\n}\r\n\r\n/** Keyboard Shortcut used to execute an action\r\n * @public\r\n */\r\nexport interface FrameworkKeyboardShortcut extends ItemDefBase {\r\n /** Returns the id for this shortcut */\r\n readonly id: string;\r\n\r\n /** Returns the shortcut container */\r\n readonly shortcutContainer: FrameworkKeyboardShortcutContainer;\r\n\r\n /** Finds a shortcut with a given key in the shortcut's container */\r\n getShortcut(mapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Returns the shortcut's key map key used as the id */\r\n readonly keyMapKey: string;\r\n\r\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\r\n readonly item: ActionButtonItemDef | undefined;\r\n\r\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\r\n itemPicked(): void;\r\n\r\n /** Gets the keyboard key */\r\n readonly key: string;\r\n /** Gets whether the Alt key required. */\r\n readonly isAltKeyRequired: boolean;\r\n /** Gets whether the Ctrl key required. */\r\n readonly isCtrlKeyRequired: boolean;\r\n /** Gets whether the Shift key required. */\r\n readonly isShiftKeyRequired: boolean;\r\n /** Gets whether this is a Function key. */\r\n readonly isFunctionKey: boolean;\r\n /** Gets whether this is a Special key. */\r\n readonly isSpecialKey: boolean;\r\n\r\n}\r\n\r\n/** Keyboard Shortcut Container\r\n * @public\r\n */\r\nexport interface FrameworkKeyboardShortcutContainer {\r\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\r\n registerKey(keyMapKey: string, inShortcut: FrameworkKeyboardShortcut): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Finds a Keyboard Shortcut associated with a given key */\r\n findKey(keyMapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Determines if any Keyboard Shortcuts are available in this container */\r\n areKeyboardShortcutsAvailable(): boolean;\r\n\r\n /** Empties any Keyboard Shortcuts from this container */\r\n emptyData(): void;\r\n\r\n getAvailableKeyboardShortcuts(): FrameworkKeyboardShortcut[];\r\n\r\n /** Displays a menu for the Keyboard Shortcuts in this container */\r\n showShortcutsMenu(): void;\r\n}\r\n\r\n/**\r\n * [[UiFramework.keyboardShortcuts]] interface\r\n * @
|
|
1
|
+
{"version":3,"file":"FrameworkKeyboardShortcuts.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkKeyboardShortcuts.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\nimport { FunctionKey, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { ItemProps } from \"../shared/ItemProps\";\r\n\r\n/** Properties for a Keyboard Shortcut\r\n * @public\r\n */\r\nexport interface KeyboardShortcutProps extends ItemProps {\r\n /** The key that invokes the shortcut.\r\n * This is either an alphanumeric key, a function key or a special key.\r\n */\r\n key: string | FunctionKey | SpecialKey;\r\n\r\n /** The item to execute when this shortcut is invoked. Either 'item' or 'shortcuts' must be specified. */\r\n item?: ActionButtonItemDef;\r\n /** Nested array of shortcut props. Either 'item' or 'shortcuts' must be specified. */\r\n shortcuts?: KeyboardShortcutProps[];\r\n\r\n /** Indicates whether the Alt key required. Default - false */\r\n isAltKeyRequired?: boolean;\r\n /** Indicates whether the Ctrl key required. Default - false */\r\n isCtrlKeyRequired?: boolean;\r\n /** Indicates whether the Shift key required. Default - false */\r\n isShiftKeyRequired?: boolean;\r\n}\r\n\r\n/** Keyboard Shortcut used to execute an action\r\n * @public\r\n */\r\nexport interface FrameworkKeyboardShortcut extends ItemDefBase {\r\n /** Returns the id for this shortcut */\r\n readonly id: string;\r\n\r\n /** Returns the shortcut container */\r\n readonly shortcutContainer: FrameworkKeyboardShortcutContainer;\r\n\r\n /** Finds a shortcut with a given key in the shortcut's container */\r\n getShortcut(mapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Returns the shortcut's key map key used as the id */\r\n readonly keyMapKey: string;\r\n\r\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\r\n readonly item: ActionButtonItemDef | undefined;\r\n\r\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\r\n itemPicked(): void;\r\n\r\n /** Gets the keyboard key */\r\n readonly key: string;\r\n /** Gets whether the Alt key required. */\r\n readonly isAltKeyRequired: boolean;\r\n /** Gets whether the Ctrl key required. */\r\n readonly isCtrlKeyRequired: boolean;\r\n /** Gets whether the Shift key required. */\r\n readonly isShiftKeyRequired: boolean;\r\n /** Gets whether this is a Function key. */\r\n readonly isFunctionKey: boolean;\r\n /** Gets whether this is a Special key. */\r\n readonly isSpecialKey: boolean;\r\n\r\n}\r\n\r\n/** Keyboard Shortcut Container\r\n * @public\r\n */\r\nexport interface FrameworkKeyboardShortcutContainer {\r\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\r\n registerKey(keyMapKey: string, inShortcut: FrameworkKeyboardShortcut): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Finds a Keyboard Shortcut associated with a given key */\r\n findKey(keyMapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Determines if any Keyboard Shortcuts are available in this container */\r\n areKeyboardShortcutsAvailable(): boolean;\r\n\r\n /** Empties any Keyboard Shortcuts from this container */\r\n emptyData(): void;\r\n\r\n getAvailableKeyboardShortcuts(): FrameworkKeyboardShortcut[];\r\n\r\n /** Displays a menu for the Keyboard Shortcuts in this container */\r\n showShortcutsMenu(): void;\r\n}\r\n\r\n/**\r\n * [[UiFramework.keyboardShortcuts]] interface\r\n * @public\r\n */\r\nexport interface FrameworkKeyboardShortcuts {\r\n /** Loads Keyboard Shortcuts into the managed list */\r\n loadShortcuts(shortcutList: KeyboardShortcutProps[]): void;\r\n\r\n /** Loads a Keyboard Shortcut into the managed list */\r\n loadShortcut(shortcutProps: KeyboardShortcutProps): void;\r\n\r\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\r\n processKey(keyboardKey: string, isAltKeyPressed?: boolean, isCtrlKeyPressed?: boolean, isShiftKeyPressed?: boolean): boolean;\r\n\r\n /** Returns the managed list of Keyboard Shortcuts */\r\n readonly shortcutContainer: FrameworkKeyboardShortcutContainer;\r\n\r\n /** Returns a Keyboard Shortcut from the managed lists */\r\n getShortcut(keyMapKey: string): FrameworkKeyboardShortcut | undefined;\r\n\r\n /** Determines if focus is set to Home */\r\n readonly isFocusOnHome: boolean;\r\n\r\n /** Sets focus to Home */\r\n setFocusToHome(): void;\r\n\r\n /** Displays the Keyboard Shortcuts menu at the cursor */\r\n displayMenu(): void;\r\n\r\n /** Closes the Keyboard Shortcuts menu */\r\n closeMenu(): void;\r\n\r\n /** Returns the cursor X position, which is mouseEvent.pageX. */\r\n readonly cursorX: number;\r\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\r\n readonly cursorY: number;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkToolSettings.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAoF;AAWpF;;GAEG;AACH,MAAa,+BAAgC,SAAQ,wBAA4C;CAAI;AAArG,0EAAqG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ToolSettings\r\n */\r\nimport { DialogItem, DialogPropertySyncItem, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { InteractiveTool } from \"@itwin/core-frontend\";\r\n\r\n/** Sync Tool Settings Properties Event Args interface.\r\n * @public\r\n */\r\nexport interface SyncToolSettingsPropertiesEventArgs {\r\n toolId: string;\r\n syncProperties: DialogPropertySyncItem[];\r\n}\r\n\r\n/** Sync Tool Settings Properties Event class.\r\n * @public\r\n */\r\nexport class SyncToolSettingsPropertiesEvent extends UiEvent<SyncToolSettingsPropertiesEventArgs> { }\r\n\r\n/**\r\n * [[UiFramework.toolSettings]] interface\r\n * @
|
|
1
|
+
{"version":3,"file":"FrameworkToolSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkToolSettings.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,0DAAoF;AAWpF;;GAEG;AACH,MAAa,+BAAgC,SAAQ,wBAA4C;CAAI;AAArG,0EAAqG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ToolSettings\r\n */\r\nimport { DialogItem, DialogPropertySyncItem, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { InteractiveTool } from \"@itwin/core-frontend\";\r\n\r\n/** Sync Tool Settings Properties Event Args interface.\r\n * @public\r\n */\r\nexport interface SyncToolSettingsPropertiesEventArgs {\r\n toolId: string;\r\n syncProperties: DialogPropertySyncItem[];\r\n}\r\n\r\n/** Sync Tool Settings Properties Event class.\r\n * @public\r\n */\r\nexport class SyncToolSettingsPropertiesEvent extends UiEvent<SyncToolSettingsPropertiesEventArgs> { }\r\n\r\n/**\r\n * [[UiFramework.toolSettings]] interface\r\n * @public\r\n */\r\nexport interface FrameworkToolSettings {\r\n /** clear cached Tool Settings properties. */\r\n clearToolSettingsData(): void;\r\n\r\n /** Cache Tool Settings properties */\r\n initializeToolSettingsData(toolSettingsProperties: DialogItem[] | undefined, toolId?: string, toolLabel?: string, toolDescription?: string): boolean;\r\n\r\n /** Set of data used in Tool Settings for the specified tool. The tool specified should be the \"active\" tool.\r\n */\r\n initializeDataForTool(tool: InteractiveTool): void;\r\n\r\n /** Returns the toolSettings properties that can be used to populate the tool settings widget. */\r\n readonly toolSettingsProperties: DialogItem[];\r\n\r\n /** Returns true if the Tool Settings are to be auto populated from the toolSettingsProperties.\r\n * The setter is chiefly for testing.\r\n */\r\n useDefaultToolSettingsProvider: boolean;\r\n\r\n /** The name of the active tool. This is typically the flyover text specified for the tool. */\r\n activeToolLabel: string;\r\n\r\n /** Returns the description of the active tool. */\r\n readonly activeToolDescription: string;\r\n\r\n /** Get ToolSettings Properties sync event. */\r\n readonly onSyncToolSettingsProperties: SyncToolSettingsPropertiesEvent;\r\n readonly onReloadToolSettingsProperties: UiEvent<void>;\r\n\r\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\r\n * @return Id of the active tool, or blank if one is not active.\r\n */\r\n readonly toolIdForToolSettings: string;\r\n\r\n /**\r\n * Sets the focus on the ToolSettings UI element.\r\n */\r\n focusIntoToolSettings(): boolean;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkVisibility.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n/**\r\n * [[UiFramework.visibility]] interface\r\n * @
|
|
1
|
+
{"version":3,"file":"FrameworkVisibility.js","sourceRoot":"","sources":["../../../../src/appui-react/framework/FrameworkVisibility.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n/**\r\n * [[UiFramework.visibility]] interface\r\n * @public\r\n */\r\nexport interface FrameworkVisibility {\r\n /** Determines if the Ui is visible */\r\n isUiVisible: boolean;\r\n\r\n /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.\r\n * When true, the Ui automatically hides after a few seconds of inactivity.\r\n */\r\n autoHideUi: boolean;\r\n\r\n /** Determines whether the widget panels are shown and hidden. Defaults to false. */\r\n showHidePanels: boolean;\r\n\r\n /** Determines whether the status bar is shown and hidden. Defaults to false. */\r\n showHideFooter: boolean;\r\n\r\n /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */\r\n inactivityTime: number;\r\n\r\n /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */\r\n useProximityOpacity: boolean;\r\n\r\n /** Determines whether the opacity of a toolbar should snap. Defaults to false. */\r\n snapWidgetOpacity: boolean;\r\n\r\n /** Handler for when a Frontstage is ready */\r\n handleFrontstageReady(): void;\r\n\r\n /** Handler for when the mouse moves over the content area */\r\n handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Handler for when the mouse enters a widget */\r\n handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;\r\n\r\n /** Shows the Ui and resets the inactivity timer */\r\n showUiAndResetTimer(): void;\r\n\r\n /** Shows the Ui and cancels the inactivity timer */\r\n showUiAndCancelTimer(): void;\r\n}\r\n"]}
|
|
@@ -62,36 +62,4 @@ export declare class KeyboardShortcutContainer {
|
|
|
62
62
|
/** Displays a menu for the Keyboard Shortcuts in this container */
|
|
63
63
|
showShortcutsMenu(): void;
|
|
64
64
|
}
|
|
65
|
-
/** Keyboard Shortcut Manager
|
|
66
|
-
* @public
|
|
67
|
-
* @deprecated in 3.7. Use `UiFramework.keyboardShortcuts` property.
|
|
68
|
-
*/
|
|
69
|
-
export declare class KeyboardShortcutManager {
|
|
70
|
-
/** Initialize the Keyboard Shortcut manager
|
|
71
|
-
* @deprecated in 3.7. This is called internally.
|
|
72
|
-
*/
|
|
73
|
-
static initialize(): void;
|
|
74
|
-
/** Loads Keyboard Shortcuts into the managed list */
|
|
75
|
-
static loadKeyboardShortcuts(shortcutList: KeyboardShortcutProps[]): void;
|
|
76
|
-
/** Loads a Keyboard Shortcut into the managed list */
|
|
77
|
-
static loadKeyboardShortcut(shortcutProps: KeyboardShortcutProps): void;
|
|
78
|
-
/** Processes a keystroke and invokes a matching Keyboard Shortcut */
|
|
79
|
-
static processKey(keyboardKey: string, isAltKeyPressed?: boolean, isCtrlKeyPressed?: boolean, isShiftKeyPressed?: boolean): boolean;
|
|
80
|
-
/** Returns the managed list of Keyboard Shortcuts */
|
|
81
|
-
static get shortcutContainer(): KeyboardShortcutContainer;
|
|
82
|
-
/** Returns a Keyboard Shortcut from the managed lists */
|
|
83
|
-
static getShortcut(keyMapKey: string): KeyboardShortcut | undefined;
|
|
84
|
-
/** Determines if focus is set to Home */
|
|
85
|
-
static get isFocusOnHome(): boolean;
|
|
86
|
-
/** Sets focus to Home */
|
|
87
|
-
static setFocusToHome(): void;
|
|
88
|
-
/** Displays the Keyboard Shortcuts menu at the cursor */
|
|
89
|
-
static displayShortcutsMenu(): void;
|
|
90
|
-
/** Closes the Keyboard Shortcuts menu */
|
|
91
|
-
static closeShortcutsMenu(): void;
|
|
92
|
-
/** Returns the cursor X position, which is mouseEvent.pageX. */
|
|
93
|
-
static get cursorX(): number;
|
|
94
|
-
/** Returns the cursor Y position, which is mouseEvent.pageY. */
|
|
95
|
-
static get cursorY(): number;
|
|
96
|
-
}
|
|
97
65
|
//# sourceMappingURL=KeyboardShortcut.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAIhF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAE/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAC,CAAsB;IACpC,OAAO,CAAC,UAAU,CAA4B;IAE9C,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAkB;gBAE3B,KAAK,EAAE,qBAAqB;IA2CxC,uCAAuC;IACvC,IAAW,EAAE,IAAI,MAAM,CAA2B;IAElD,qCAAqC;IACrC,IAAW,iBAAiB,IAAI,yBAAyB,CAExD;IAED,oEAAoE;IAC7D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhE,wDAAwD;IACxD,IAAW,SAAS,IAAI,MAAM,CAG7B;IAED,wEAAwE;IACxE,IAAW,IAAI,IAAI,mBAAmB,GAAG,SAAS,CAEjD;IAED,uFAAuF;IAChF,UAAU,IAAI,IAAI;IAYzB,4BAA4B;IAC5B,IAAW,GAAG,IAAI,MAAM,CAAsB;IAC9C,yCAAyC;IACzC,IAAW,gBAAgB,IAAI,OAAO,CAAmC;IACzE,0CAA0C;IAC1C,IAAW,iBAAiB,IAAI,OAAO,CAAoC;IAC3E,2CAA2C;IAC3C,IAAW,kBAAkB,IAAI,OAAO,CAAqC;IAC7E,2CAA2C;IAC3C,IAAW,aAAa,IAAI,OAAO,CAAgC;IACnE,0CAA0C;IAC1C,IAAW,YAAY,IAAI,OAAO,CAA+B;CAElE;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,OAAO,CAAsE;IACrF,OAAO,CAAC,SAAS,CAAqD;IAEtE,oFAAoF;IAC7E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,SAAS;IAwBjG,4DAA4D;IACrD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D,2EAA2E;IACpE,6BAA6B,IAAI,OAAO;IAI/C,yDAAyD;IAClD,SAAS,IAAI,IAAI;IAKjB,6BAA6B,IAAI,gBAAgB,EAAE;IAI1D,4FAA4F;WAC9E,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAG,MAAM;IAahJ,mEAAmE;IAC5D,iBAAiB;CASzB"}
|
|
@@ -7,12 +7,11 @@
|
|
|
7
7
|
* @module KeyboardShortcut
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.KeyboardShortcutContainer = exports.KeyboardShortcut = void 0;
|
|
11
11
|
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
12
12
|
const ItemDefBase_1 = require("../shared/ItemDefBase");
|
|
13
13
|
const UiFramework_1 = require("../UiFramework");
|
|
14
14
|
const KeyboardShortcutMenu_1 = require("./KeyboardShortcutMenu");
|
|
15
|
-
const InternalKeyboardShortcut_1 = require("./InternalKeyboardShortcut");
|
|
16
15
|
/** Keyboard Shortcut used to execute an action
|
|
17
16
|
* @public
|
|
18
17
|
*/
|
|
@@ -175,57 +174,4 @@ class KeyboardShortcutContainer {
|
|
|
175
174
|
}
|
|
176
175
|
}
|
|
177
176
|
exports.KeyboardShortcutContainer = KeyboardShortcutContainer;
|
|
178
|
-
/** Keyboard Shortcut Manager
|
|
179
|
-
* @public
|
|
180
|
-
* @deprecated in 3.7. Use `UiFramework.keyboardShortcuts` property.
|
|
181
|
-
*/
|
|
182
|
-
class KeyboardShortcutManager {
|
|
183
|
-
/** Initialize the Keyboard Shortcut manager
|
|
184
|
-
* @deprecated in 3.7. This is called internally.
|
|
185
|
-
*/
|
|
186
|
-
static initialize() {
|
|
187
|
-
InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.initialize();
|
|
188
|
-
}
|
|
189
|
-
/** Loads Keyboard Shortcuts into the managed list */
|
|
190
|
-
static loadKeyboardShortcuts(shortcutList) {
|
|
191
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.loadShortcuts(shortcutList);
|
|
192
|
-
}
|
|
193
|
-
/** Loads a Keyboard Shortcut into the managed list */
|
|
194
|
-
static loadKeyboardShortcut(shortcutProps) {
|
|
195
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.loadShortcut(shortcutProps);
|
|
196
|
-
}
|
|
197
|
-
/** Processes a keystroke and invokes a matching Keyboard Shortcut */
|
|
198
|
-
static processKey(keyboardKey, isAltKeyPressed = false, isCtrlKeyPressed = false, isShiftKeyPressed = false) {
|
|
199
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.processKey(keyboardKey, isAltKeyPressed, isCtrlKeyPressed, isShiftKeyPressed);
|
|
200
|
-
}
|
|
201
|
-
/** Returns the managed list of Keyboard Shortcuts */
|
|
202
|
-
static get shortcutContainer() {
|
|
203
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.shortcutContainer;
|
|
204
|
-
}
|
|
205
|
-
/** Returns a Keyboard Shortcut from the managed lists */
|
|
206
|
-
static getShortcut(keyMapKey) {
|
|
207
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.getShortcut(keyMapKey);
|
|
208
|
-
}
|
|
209
|
-
/** Determines if focus is set to Home */
|
|
210
|
-
static get isFocusOnHome() {
|
|
211
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.isFocusOnHome;
|
|
212
|
-
}
|
|
213
|
-
/** Sets focus to Home */
|
|
214
|
-
static setFocusToHome() {
|
|
215
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.setFocusToHome();
|
|
216
|
-
}
|
|
217
|
-
/** Displays the Keyboard Shortcuts menu at the cursor */
|
|
218
|
-
static displayShortcutsMenu() {
|
|
219
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.displayMenu();
|
|
220
|
-
}
|
|
221
|
-
/** Closes the Keyboard Shortcuts menu */
|
|
222
|
-
static closeShortcutsMenu() {
|
|
223
|
-
return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.closeMenu();
|
|
224
|
-
}
|
|
225
|
-
/** Returns the cursor X position, which is mouseEvent.pageX. */
|
|
226
|
-
static get cursorX() { return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.cursorX; }
|
|
227
|
-
/** Returns the cursor Y position, which is mouseEvent.pageY. */
|
|
228
|
-
static get cursorY() { return InternalKeyboardShortcut_1.InternalKeyboardShortcutManager.cursorY; }
|
|
229
|
-
}
|
|
230
|
-
exports.KeyboardShortcutManager = KeyboardShortcutManager;
|
|
231
177
|
//# sourceMappingURL=KeyboardShortcut.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\n\r\nimport { FunctionKey, SpecialKey, UiError } from \"@itwin/appui-abstract\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { KeyboardShortcutProps } from \"../framework/FrameworkKeyboardShortcuts\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\r\nimport { InternalKeyboardShortcutManager as internal } from \"./InternalKeyboardShortcut\";\r\n\r\n/** Keyboard Shortcut used to execute an action\r\n * @public\r\n */\r\nexport class KeyboardShortcut extends ItemDefBase {\r\n\r\n private _key: string;\r\n private _item?: ActionButtonItemDef;\r\n private _shortcuts: KeyboardShortcutContainer;\r\n\r\n private _isAltKeyRequired: boolean = false;\r\n private _isCtrlKeyRequired: boolean = false;\r\n private _isShiftKeyRequired: boolean = false;\r\n private _isFunctionKey: boolean = false;\r\n private _isSpecialKey: boolean = false;\r\n\r\n constructor(props: KeyboardShortcutProps) {\r\n super(props);\r\n\r\n this._key = props.key;\r\n\r\n if (this._key in FunctionKey)\r\n this._isFunctionKey = true;\r\n if (this._key in SpecialKey)\r\n this._isSpecialKey = true;\r\n\r\n this._shortcuts = new KeyboardShortcutContainer();\r\n\r\n if (props.item) {\r\n this._item = props.item;\r\n\r\n // Copy over icon, label & tooltip from the item\r\n if (!this.iconSpec)\r\n this.iconSpec = this._item.iconSpec;\r\n if (!this.label)\r\n this.setLabel(this._item.label);\r\n if (!this.tooltip)\r\n this.setTooltip(this._item.tooltip);\r\n if (this.isDisabled === undefined)\r\n this.isDisabled = this._item.isDisabled;\r\n if (this.isHidden === undefined)\r\n this.isHidden = this._item.isHidden;\r\n } else if (props.shortcuts) {\r\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\r\n const shortcut = new KeyboardShortcut(childProps);\r\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\r\n });\r\n } else {\r\n throw new UiError(UiFramework.loggerCategory(this), `Either 'item' or 'shortcuts' must be specified for '${props.key}' key.`);\r\n }\r\n\r\n if (props.isAltKeyRequired !== undefined)\r\n this._isAltKeyRequired = props.isAltKeyRequired;\r\n if (props.isCtrlKeyRequired !== undefined)\r\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\r\n if (props.isShiftKeyRequired !== undefined)\r\n this._isShiftKeyRequired = props.isShiftKeyRequired;\r\n }\r\n\r\n /** Returns the id for this shortcut */\r\n public get id(): string { return this.keyMapKey; }\r\n\r\n /** Returns the shortcut container */\r\n public get shortcutContainer(): KeyboardShortcutContainer {\r\n return this._shortcuts;\r\n }\r\n\r\n /** Finds a shortcut with a given key in the shortcut's container */\r\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\r\n return this._shortcuts.findKey(mapKey);\r\n }\r\n\r\n /** Returns the shortcut's key map key used as the id */\r\n public get keyMapKey(): string {\r\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(this.key, this._isAltKeyRequired, this._isCtrlKeyRequired, this._isShiftKeyRequired);\r\n return keyMapKey;\r\n }\r\n\r\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\r\n public get item(): ActionButtonItemDef | undefined {\r\n return this._item;\r\n }\r\n\r\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\r\n public itemPicked(): void {\r\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\r\n this._shortcuts.showShortcutsMenu();\r\n } else {\r\n setTimeout(() => {\r\n // istanbul ignore else\r\n if (this._item)\r\n this._item.execute();\r\n });\r\n }\r\n }\r\n\r\n /** Gets the keyboard key */\r\n public get key(): string { return this._key; }\r\n /** Gets whether the Alt key required. */\r\n public get isAltKeyRequired(): boolean { return this._isAltKeyRequired; }\r\n /** Gets whether the Ctrl key required. */\r\n public get isCtrlKeyRequired(): boolean { return this._isCtrlKeyRequired; }\r\n /** Gets whether the Shift key required. */\r\n public get isShiftKeyRequired(): boolean { return this._isShiftKeyRequired; }\r\n /** Gets whether this is a Function key. */\r\n public get isFunctionKey(): boolean { return this._isFunctionKey; }\r\n /** Gets whether this is a Special key. */\r\n public get isSpecialKey(): boolean { return this._isSpecialKey; }\r\n\r\n}\r\n\r\n/** Keyboard Shortcut Container\r\n * @public\r\n */\r\nexport class KeyboardShortcutContainer {\r\n private _keyMap: Map<string, KeyboardShortcut> = new Map<string, KeyboardShortcut>();\r\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\r\n\r\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\r\n public registerKey(keyMapKey: string, inShortcut: KeyboardShortcut): KeyboardShortcut | undefined {\r\n let shortcut: KeyboardShortcut | undefined;\r\n\r\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\r\n shortcut = inShortcut;\r\n this._keyArray.push(shortcut);\r\n } else {\r\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\r\n return value.keyMapKey === keyMapKey;\r\n });\r\n // istanbul ignore else\r\n if (index >= 0) {\r\n shortcut = inShortcut;\r\n this._keyArray[index] = shortcut;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (shortcut)\r\n this._keyMap.set(keyMapKey, shortcut);\r\n\r\n return shortcut;\r\n }\r\n\r\n /** Finds a Keyboard Shortcut associated with a given key */\r\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\r\n return this._keyMap.get(keyMapKey);\r\n }\r\n\r\n /** Determines if any Keyboard Shortcuts are available in this container */\r\n public areKeyboardShortcutsAvailable(): boolean {\r\n return this._keyMap.size !== 0;\r\n }\r\n\r\n /** Empties any Keyboard Shortcuts from this container */\r\n public emptyData(): void {\r\n this._keyMap.clear();\r\n this._keyArray.length = 0;\r\n }\r\n\r\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\r\n return this._keyArray.slice();\r\n }\r\n\r\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\r\n public static generateKeyMapKey(keyboardKey: string, isAltKeyRequired: boolean, isCtrlKeyRequired: boolean, isShiftKeyRequired: boolean): string {\r\n let keyMapKey = keyboardKey;\r\n\r\n if (isAltKeyRequired)\r\n keyMapKey = `Alt+${keyMapKey}`;\r\n if (isShiftKeyRequired)\r\n keyMapKey = `Shift+${keyMapKey}`;\r\n if (isCtrlKeyRequired)\r\n keyMapKey = `Ctrl+${keyMapKey}`;\r\n\r\n return keyMapKey;\r\n }\r\n\r\n /** Displays a menu for the Keyboard Shortcuts in this container */\r\n public showShortcutsMenu() {\r\n const offset = 8;\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\r\n menuVisible: true,\r\n menuX: UiFramework.keyboardShortcuts.cursorX - offset,\r\n menuY: UiFramework.keyboardShortcuts.cursorY - offset,\r\n shortcuts: this.getAvailableKeyboardShortcuts(),\r\n });\r\n }\r\n}\r\n\r\n/** Keyboard Shortcut Manager\r\n * @public\r\n * @deprecated in 3.7. Use `UiFramework.keyboardShortcuts` property.\r\n */\r\nexport class KeyboardShortcutManager {\r\n /** Initialize the Keyboard Shortcut manager\r\n * @deprecated in 3.7. This is called internally.\r\n */\r\n public static initialize(): void {\r\n internal.initialize();\r\n }\r\n\r\n /** Loads Keyboard Shortcuts into the managed list */\r\n public static loadKeyboardShortcuts(shortcutList: KeyboardShortcutProps[]) {\r\n return internal.loadShortcuts(shortcutList);\r\n }\r\n\r\n /** Loads a Keyboard Shortcut into the managed list */\r\n public static loadKeyboardShortcut(shortcutProps: KeyboardShortcutProps) {\r\n return internal.loadShortcut(shortcutProps);\r\n }\r\n\r\n /** Processes a keystroke and invokes a matching Keyboard Shortcut */\r\n public static processKey(keyboardKey: string, isAltKeyPressed: boolean = false, isCtrlKeyPressed: boolean = false, isShiftKeyPressed: boolean = false): boolean {\r\n return internal.processKey(keyboardKey, isAltKeyPressed, isCtrlKeyPressed, isShiftKeyPressed);\r\n }\r\n\r\n /** Returns the managed list of Keyboard Shortcuts */\r\n public static get shortcutContainer(): KeyboardShortcutContainer {\r\n return internal.shortcutContainer;\r\n }\r\n\r\n /** Returns a Keyboard Shortcut from the managed lists */\r\n public static getShortcut(keyMapKey: string): KeyboardShortcut | undefined {\r\n return internal.getShortcut(keyMapKey);\r\n }\r\n\r\n /** Determines if focus is set to Home */\r\n public static get isFocusOnHome(): boolean {\r\n return internal.isFocusOnHome;\r\n }\r\n\r\n /** Sets focus to Home */\r\n public static setFocusToHome(): void {\r\n return internal.setFocusToHome();\r\n }\r\n\r\n /** Displays the Keyboard Shortcuts menu at the cursor */\r\n public static displayShortcutsMenu(): void {\r\n return internal.displayMenu();\r\n }\r\n\r\n /** Closes the Keyboard Shortcuts menu */\r\n public static closeShortcutsMenu(): void {\r\n return internal.closeMenu();\r\n }\r\n\r\n /** Returns the cursor X position, which is mouseEvent.pageX. */\r\n public static get cursorX(): number { return internal.cursorX; }\r\n /** Returns the cursor Y position, which is mouseEvent.pageY. */\r\n public static get cursorY(): number { return internal.cursorY; }\r\n}\r\n\r\n"]}
|
|
1
|
+
{"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../../src/appui-react/keyboardshortcut/KeyboardShortcut.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module KeyboardShortcut\r\n */\r\n\r\nimport { FunctionKey, SpecialKey, UiError } from \"@itwin/appui-abstract\";\r\nimport { ActionButtonItemDef } from \"../shared/ActionButtonItemDef\";\r\nimport { ItemDefBase } from \"../shared/ItemDefBase\";\r\nimport { KeyboardShortcutProps } from \"../framework/FrameworkKeyboardShortcuts\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu\";\r\n\r\n/** Keyboard Shortcut used to execute an action\r\n * @public\r\n */\r\nexport class KeyboardShortcut extends ItemDefBase {\r\n\r\n private _key: string;\r\n private _item?: ActionButtonItemDef;\r\n private _shortcuts: KeyboardShortcutContainer;\r\n\r\n private _isAltKeyRequired: boolean = false;\r\n private _isCtrlKeyRequired: boolean = false;\r\n private _isShiftKeyRequired: boolean = false;\r\n private _isFunctionKey: boolean = false;\r\n private _isSpecialKey: boolean = false;\r\n\r\n constructor(props: KeyboardShortcutProps) {\r\n super(props);\r\n\r\n this._key = props.key;\r\n\r\n if (this._key in FunctionKey)\r\n this._isFunctionKey = true;\r\n if (this._key in SpecialKey)\r\n this._isSpecialKey = true;\r\n\r\n this._shortcuts = new KeyboardShortcutContainer();\r\n\r\n if (props.item) {\r\n this._item = props.item;\r\n\r\n // Copy over icon, label & tooltip from the item\r\n if (!this.iconSpec)\r\n this.iconSpec = this._item.iconSpec;\r\n if (!this.label)\r\n this.setLabel(this._item.label);\r\n if (!this.tooltip)\r\n this.setTooltip(this._item.tooltip);\r\n if (this.isDisabled === undefined)\r\n this.isDisabled = this._item.isDisabled;\r\n if (this.isHidden === undefined)\r\n this.isHidden = this._item.isHidden;\r\n } else if (props.shortcuts) {\r\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\r\n const shortcut = new KeyboardShortcut(childProps);\r\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\r\n });\r\n } else {\r\n throw new UiError(UiFramework.loggerCategory(this), `Either 'item' or 'shortcuts' must be specified for '${props.key}' key.`);\r\n }\r\n\r\n if (props.isAltKeyRequired !== undefined)\r\n this._isAltKeyRequired = props.isAltKeyRequired;\r\n if (props.isCtrlKeyRequired !== undefined)\r\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\r\n if (props.isShiftKeyRequired !== undefined)\r\n this._isShiftKeyRequired = props.isShiftKeyRequired;\r\n }\r\n\r\n /** Returns the id for this shortcut */\r\n public get id(): string { return this.keyMapKey; }\r\n\r\n /** Returns the shortcut container */\r\n public get shortcutContainer(): KeyboardShortcutContainer {\r\n return this._shortcuts;\r\n }\r\n\r\n /** Finds a shortcut with a given key in the shortcut's container */\r\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\r\n return this._shortcuts.findKey(mapKey);\r\n }\r\n\r\n /** Returns the shortcut's key map key used as the id */\r\n public get keyMapKey(): string {\r\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(this.key, this._isAltKeyRequired, this._isCtrlKeyRequired, this._isShiftKeyRequired);\r\n return keyMapKey;\r\n }\r\n\r\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\r\n public get item(): ActionButtonItemDef | undefined {\r\n return this._item;\r\n }\r\n\r\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\r\n public itemPicked(): void {\r\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\r\n this._shortcuts.showShortcutsMenu();\r\n } else {\r\n setTimeout(() => {\r\n // istanbul ignore else\r\n if (this._item)\r\n this._item.execute();\r\n });\r\n }\r\n }\r\n\r\n /** Gets the keyboard key */\r\n public get key(): string { return this._key; }\r\n /** Gets whether the Alt key required. */\r\n public get isAltKeyRequired(): boolean { return this._isAltKeyRequired; }\r\n /** Gets whether the Ctrl key required. */\r\n public get isCtrlKeyRequired(): boolean { return this._isCtrlKeyRequired; }\r\n /** Gets whether the Shift key required. */\r\n public get isShiftKeyRequired(): boolean { return this._isShiftKeyRequired; }\r\n /** Gets whether this is a Function key. */\r\n public get isFunctionKey(): boolean { return this._isFunctionKey; }\r\n /** Gets whether this is a Special key. */\r\n public get isSpecialKey(): boolean { return this._isSpecialKey; }\r\n\r\n}\r\n\r\n/** Keyboard Shortcut Container\r\n * @public\r\n */\r\nexport class KeyboardShortcutContainer {\r\n private _keyMap: Map<string, KeyboardShortcut> = new Map<string, KeyboardShortcut>();\r\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\r\n\r\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\r\n public registerKey(keyMapKey: string, inShortcut: KeyboardShortcut): KeyboardShortcut | undefined {\r\n let shortcut: KeyboardShortcut | undefined;\r\n\r\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\r\n shortcut = inShortcut;\r\n this._keyArray.push(shortcut);\r\n } else {\r\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\r\n return value.keyMapKey === keyMapKey;\r\n });\r\n // istanbul ignore else\r\n if (index >= 0) {\r\n shortcut = inShortcut;\r\n this._keyArray[index] = shortcut;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (shortcut)\r\n this._keyMap.set(keyMapKey, shortcut);\r\n\r\n return shortcut;\r\n }\r\n\r\n /** Finds a Keyboard Shortcut associated with a given key */\r\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\r\n return this._keyMap.get(keyMapKey);\r\n }\r\n\r\n /** Determines if any Keyboard Shortcuts are available in this container */\r\n public areKeyboardShortcutsAvailable(): boolean {\r\n return this._keyMap.size !== 0;\r\n }\r\n\r\n /** Empties any Keyboard Shortcuts from this container */\r\n public emptyData(): void {\r\n this._keyMap.clear();\r\n this._keyArray.length = 0;\r\n }\r\n\r\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\r\n return this._keyArray.slice();\r\n }\r\n\r\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\r\n public static generateKeyMapKey(keyboardKey: string, isAltKeyRequired: boolean, isCtrlKeyRequired: boolean, isShiftKeyRequired: boolean): string {\r\n let keyMapKey = keyboardKey;\r\n\r\n if (isAltKeyRequired)\r\n keyMapKey = `Alt+${keyMapKey}`;\r\n if (isShiftKeyRequired)\r\n keyMapKey = `Shift+${keyMapKey}`;\r\n if (isCtrlKeyRequired)\r\n keyMapKey = `Ctrl+${keyMapKey}`;\r\n\r\n return keyMapKey;\r\n }\r\n\r\n /** Displays a menu for the Keyboard Shortcuts in this container */\r\n public showShortcutsMenu() {\r\n const offset = 8;\r\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\r\n menuVisible: true,\r\n menuX: UiFramework.keyboardShortcuts.cursorX - offset,\r\n menuY: UiFramework.keyboardShortcuts.cursorY - offset,\r\n shortcuts: this.getAvailableKeyboardShortcuts(),\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -170,10 +170,9 @@ class MessageManager {
|
|
|
170
170
|
};
|
|
171
171
|
itwinui_react_1.toaster.setSettings({ placement: "bottom", order: "ascending", ...settings });
|
|
172
172
|
const content = React.createElement(React.Fragment, null,
|
|
173
|
-
message.briefMessage,
|
|
173
|
+
message.briefMessage.reactNode || message.briefMessage,
|
|
174
174
|
message.detailedMessage &&
|
|
175
|
-
React.createElement(itwinui_react_1.Text, { variant: "small" },
|
|
176
|
-
React.createElement(React.Fragment, null, message.detailedMessage.reactNode || message.detailedMessage)));
|
|
175
|
+
React.createElement(itwinui_react_1.Text, { variant: "small", style: { display: "block" } }, message.detailedMessage.reactNode || message.detailedMessage));
|
|
177
176
|
switch (message.priority) {
|
|
178
177
|
case core_frontend_1.OutputMessagePriority.Warning:
|
|
179
178
|
return itwinui_react_1.toaster.warning(content, toastOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport { isEqual } from \"lodash\";\r\nimport * as React from \"react\";\r\nimport { XAndY } from \"@itwin/core-geometry\";\r\nimport {\r\n ActivityMessageDetails, IModelApp, MessageBoxIconType, MessageBoxType, MessageBoxValue, OutputMessageAlert, OutputMessagePriority,\r\n OutputMessageType, ToolAssistanceInstructions, ToolTipOptions,\r\n} from \"@itwin/core-frontend\";\r\nimport { MessageSeverity, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { IconSpec, MessageContainer, ReactMessage } from \"@itwin/core-react\";\r\nimport { ConfigurableUiActionId } from \"../configurableui/state\";\r\nimport { StandardMessageBox } from \"../dialog/StandardMessageBox\";\r\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { MessageSpan } from \"./MessageSpan\";\r\nimport { PointerMessage } from \"./Pointer\";\r\nimport { NotifyMessageDetailsType, NotifyMessageType } from \"./ReactNotifyMessageDetails\";\r\nimport { StatusMessageManager } from \"./StatusMessageManager\";\r\nimport { Text, toaster, ToastOptions } from \"@itwin/itwinui-react\";\r\nimport { ToasterSettings } from \"@itwin/itwinui-react/cjs/core/Toast/Toaster\";\r\nimport { SvgInfo, SvgStatusError, SvgStatusSuccess, SvgStatusWarning } from \"@itwin/itwinui-icons-react\";\r\n\r\nclass MessageBoxCallbacks {\r\n constructor(\r\n public readonly onFulfilled: (result: MessageBoxValue) => void,\r\n public readonly onRejected: (result: any) => void,\r\n ) { }\r\n\r\n public handleMessageBoxResult = (result: MessageBoxValue) => {\r\n this.onFulfilled(result);\r\n };\r\n}\r\n\r\n/** [[MessageAddedEvent]] arguments.\r\n * @public\r\n */\r\nexport interface MessageAddedEventArgs {\r\n /** Message details for the message added */\r\n message: NotifyMessageDetailsType;\r\n}\r\n\r\n/** Activity Message Event arguments.\r\n * @public\r\n */\r\nexport interface ActivityMessageEventArgs {\r\n /** Current message for the activity */\r\n message: NotifyMessageType;\r\n /** Current percentage for the activity */\r\n percentage: number;\r\n /** Message details set by calling NotificationManager.setupActivityMessage */\r\n details?: ActivityMessageDetails;\r\n /** Indicates whether the activity message popup is being restored */\r\n restored?: boolean;\r\n}\r\n\r\n/** Input Field Message Event arguments.\r\n * @public\r\n */\r\nexport interface InputFieldMessageEventArgs {\r\n /** Target HTML element for the Input Field message */\r\n target: Element;\r\n /** Message to be displayed near the input field */\r\n messageText: NotifyMessageType;\r\n /** Detailed message to be displayed near the input field */\r\n detailedMessage: NotifyMessageType;\r\n /** Priority of the input field message */\r\n priority: OutputMessagePriority;\r\n}\r\n\r\n/** Tool Assistance Changed event arguments.\r\n * @public\r\n */\r\nexport interface ToolAssistanceChangedEventArgs {\r\n /** Tool Assistance instructions for the active tool */\r\n instructions: ToolAssistanceInstructions | undefined;\r\n}\r\n\r\n/** Message Added Event class.\r\n * @public\r\n */\r\nexport class MessageAddedEvent extends UiEvent<MessageAddedEventArgs> { }\r\n\r\n/** Messages Updated Event class.\r\n * @public\r\n */\r\nexport class MessagesUpdatedEvent extends UiEvent<{}> { }\r\n\r\n/** Activity Message Added Event class.\r\n * @public\r\n */\r\nexport class ActivityMessageUpdatedEvent extends UiEvent<ActivityMessageEventArgs> { }\r\n\r\n/** Activity Message Cancelled Event class.\r\n * @public\r\n */\r\nexport class ActivityMessageCancelledEvent extends UiEvent<{}> { }\r\n\r\n/** Input Field Message Added Event class\r\n * @public\r\n */\r\nexport class InputFieldMessageAddedEvent extends UiEvent<InputFieldMessageEventArgs> { }\r\n\r\n/** Input Field Message Removed Event class.\r\n * @public\r\n */\r\nexport class InputFieldMessageRemovedEvent extends UiEvent<{}> { }\r\n\r\n/** Open Message Center Event class.\r\n * @public\r\n */\r\nexport class OpenMessageCenterEvent extends UiEvent<{}> { }\r\n\r\n/** Tool Assistance Changed event class\r\n * @public\r\n */\r\nexport class ToolAssistanceChangedEvent extends UiEvent<ToolAssistanceChangedEventArgs> { }\r\n\r\n/**\r\n * Keeps track of the current activity message, and updates whenever\r\n * setupActivityMessageDetails() or setupActivityMessageValues()\r\n * is called.\r\n * Used to display tracked progress in ActivityMessage.\r\n */\r\nclass OngoingActivityMessage {\r\n public message: NotifyMessageType = \"\";\r\n public percentage: number = 0;\r\n public details: ActivityMessageDetails = new ActivityMessageDetails(true, true, true);\r\n public isRestored: boolean = false;\r\n}\r\n\r\n/** The MessageManager class manages messages and prompts. It is used by the [[AppNotificationManager]] class.\r\n * @public\r\n */\r\nexport class MessageManager {\r\n private static _maxCachedMessages = 500;\r\n private static _maxDisplayedStickyMessages = 3;\r\n private static _messages: NotifyMessageDetailsType[] = [];\r\n private static _ongoingActivityMessage: OngoingActivityMessage = new OngoingActivityMessage();\r\n private static _lastMessage?: NotifyMessageDetailsType;\r\n private static _activeMessageManager = new StatusMessageManager();\r\n private static _animateOutToElement: HTMLElement | null;\r\n\r\n /** The MessageAddedEvent is fired when a message is added via outputMessage(). */\r\n public static readonly onMessageAddedEvent = new MessageAddedEvent();\r\n\r\n /** The MessagesUpdatedEvent is fired when a message is added or the messages are cleared. */\r\n public static readonly onMessagesUpdatedEvent = new MessagesUpdatedEvent();\r\n\r\n /** The ActivityMessageUpdatedEvent is fired when an Activity message updates via outputActivityMessage(). */\r\n public static readonly onActivityMessageUpdatedEvent = new ActivityMessageUpdatedEvent();\r\n\r\n /** The ActivityMessageCancelledEvent is fired when an Activity message is cancelled via\r\n * endActivityMessage(ActivityMessageEndReason.Cancelled) or\r\n * by the user clicking the 'Cancel' link.\r\n */\r\n public static readonly onActivityMessageCancelledEvent = new ActivityMessageCancelledEvent();\r\n\r\n public static readonly onInputFieldMessageAddedEvent = new InputFieldMessageAddedEvent();\r\n public static readonly onInputFieldMessageRemovedEvent = new InputFieldMessageRemovedEvent();\r\n\r\n public static readonly onOpenMessageCenterEvent = new OpenMessageCenterEvent();\r\n\r\n /** The ToolAssistanceChangedEvent is fired when a tool calls IModelApp.notifications.setToolAssistance().\r\n * @public\r\n */\r\n public static readonly onToolAssistanceChangedEvent = new ToolAssistanceChangedEvent();\r\n\r\n /** List of messages as NotifyMessageDetailsType. */\r\n public static get messages(): Readonly<NotifyMessageDetailsType[]> { return this._messages; }\r\n\r\n /** Manager of active messages. */\r\n public static get activeMessageManager(): StatusMessageManager { return this._activeMessageManager; }\r\n\r\n /** Clear the message list. */\r\n public static clearMessages(): void {\r\n this._messages.splice(0);\r\n this._activeMessageManager.initialize();\r\n\r\n this.onMessagesUpdatedEvent.emit({});\r\n this._lastMessage = undefined;\r\n }\r\n\r\n /** Update the message list. */\r\n public static updateMessages(): void {\r\n this.onMessagesUpdatedEvent.emit({});\r\n }\r\n\r\n /** Set the maximum number of cached message. */\r\n public static setMaxCachedMessages(max: number): void {\r\n this._maxCachedMessages = max;\r\n this.checkMaxCachedMessages();\r\n }\r\n\r\n /** The maximum number of displayed Sticky messages. */\r\n public static get maxDisplayedStickyMessages(): number { return this._maxDisplayedStickyMessages; }\r\n public static set maxDisplayedStickyMessages(max: number) { this._maxDisplayedStickyMessages = max; }\r\n\r\n /** Output a message and/or alert to the user.\r\n * @param message Details about the message to output.\r\n */\r\n public static outputMessage(message: NotifyMessageDetailsType): void {\r\n if (message.msgType === OutputMessageType.Pointer) {\r\n PointerMessage.showMessage(message);\r\n } else if (message.msgType === OutputMessageType.InputField) {\r\n if (message.inputField)\r\n MessageManager.displayInputFieldMessage(message.inputField, message.briefMessage, message.detailedMessage, message.priority);\r\n else\r\n message.msgType = OutputMessageType.Sticky; // Note: Changing the message.msgType here for InputField without inputField\r\n } else if (message.msgType === OutputMessageType.Alert) {\r\n if (message.openAlert === OutputMessageAlert.Balloon)\r\n message.msgType = OutputMessageType.Sticky; // Note: Changing the message.msgType here for Balloon\r\n else\r\n MessageManager.showAlertMessageBox(message);\r\n }\r\n\r\n MessageManager.addMessage(message);\r\n }\r\n\r\n /** Set the element where messages should be animated out to on exit.\r\n * @param element `HTMLElement` to animate out to.\r\n */\r\n public static registerAnimateOutToElement(element: HTMLElement | null) {\r\n this._animateOutToElement = element;\r\n }\r\n\r\n /** Display a message.\r\n * Works only with `Sticky` and `Toast` message types.\r\n * @param message Details about the message to display.\r\n * @param options Optionally override individual toast parameters.\r\n * @param settings Optionally override all toasts settings (i.e. placement or order).\r\n * @returns Object with reference to the message (i.e. to close it programmatically) if it was displayed.\r\n */\r\n public static displayMessage(message: NotifyMessageDetailsType, options?: ToastOptions, settings?: ToasterSettings) {\r\n if (message.msgType !== OutputMessageType.Sticky && message.msgType !== OutputMessageType.Toast) {\r\n return;\r\n }\r\n const toastOptions: ToastOptions = {\r\n hasCloseButton: true,\r\n duration: message.displayTime.milliseconds,\r\n type:\r\n message.msgType === OutputMessageType.Sticky\r\n ? \"persisting\"\r\n : \"temporary\",\r\n animateOutTo: this._animateOutToElement,\r\n ...options,\r\n };\r\n toaster.setSettings({ placement: \"bottom\", order: \"ascending\", ...settings });\r\n const content = <>\r\n {message.briefMessage}\r\n {message.detailedMessage &&\r\n <Text variant=\"small\"><>{(message.detailedMessage as ReactMessage).reactNode || message.detailedMessage}</></Text>\r\n }\r\n </>;\r\n switch (message.priority) {\r\n case OutputMessagePriority.Warning:\r\n return toaster.warning(content, toastOptions);\r\n case OutputMessagePriority.Info:\r\n return toaster.informational(content, toastOptions);\r\n case OutputMessagePriority.Error:\r\n case OutputMessagePriority.Fatal:\r\n return toaster.negative(content, toastOptions);\r\n default:\r\n return toaster.positive(content, toastOptions);\r\n }\r\n }\r\n\r\n /** Output a message and/or alert to the user.\r\n * @param message Details about the message to output.\r\n */\r\n public static addMessage(message: NotifyMessageDetailsType): void {\r\n if (!isEqual(message, this._lastMessage)) {\r\n this.addToMessageCenter(message);\r\n this._lastMessage = message;\r\n }\r\n\r\n this._activeMessageManager.add(message);\r\n\r\n this.onMessageAddedEvent.emit({ message });\r\n }\r\n\r\n /** Add a message to the Message Center.\r\n * @param message Details about the message to output.\r\n */\r\n public static addToMessageCenter(message: NotifyMessageDetailsType): void {\r\n this._messages.push(message);\r\n this.onMessagesUpdatedEvent.emit({});\r\n this.checkMaxCachedMessages();\r\n }\r\n\r\n /** Checks number of messages against the maximum. */\r\n private static checkMaxCachedMessages(): void {\r\n if (this._messages.length > this._maxCachedMessages) {\r\n const numToErase = this._maxCachedMessages / 4;\r\n this._messages.splice(0, numToErase);\r\n this.onMessagesUpdatedEvent.emit({});\r\n }\r\n }\r\n\r\n /**\r\n * Sets details for setting up an Activity message.\r\n * @param details Details for setup of ActivityMessage\r\n * @returns true if details is valid and can be used to display ActivityMessage\r\n */\r\n public static setupActivityMessageDetails(details: ActivityMessageDetails): boolean {\r\n this._ongoingActivityMessage.details = details;\r\n this._ongoingActivityMessage.isRestored = details.showDialogInitially;\r\n return true;\r\n }\r\n\r\n /**\r\n * Output an activity message to the user.\r\n * @param message The message text.\r\n * @param percentComplete The percentage of completion.\r\n * @return true if the message was displayed, false if the message could not be displayed.\r\n */\r\n public static outputActivityMessage(message: NotifyMessageType, percentComplete: number): boolean {\r\n return MessageManager.setupActivityMessageValues(message, percentComplete);\r\n }\r\n\r\n /**\r\n * Sets values on _OngoingActivityMessage to be referenced when displaying\r\n * an ActivityMessage.\r\n * @param message Message of the process that ActivityMessage is tracking\r\n * @param percentage Progress made by activity in percentage\r\n * @param restored True if original ActivityMessage has been closed and\r\n * is now being restored from the status bar.\r\n * @returns true if details is valid and can be used to display ActivityMessage\r\n */\r\n public static setupActivityMessageValues(message: NotifyMessageType, percentage: number, restored?: boolean): boolean {\r\n this._ongoingActivityMessage.message = message;\r\n this._ongoingActivityMessage.percentage = percentage;\r\n\r\n this.onActivityMessageUpdatedEvent.emit({\r\n message,\r\n percentage,\r\n details: this._ongoingActivityMessage.details,\r\n restored: (restored !== undefined) ? restored : this._ongoingActivityMessage.isRestored,\r\n });\r\n\r\n this._ongoingActivityMessage.isRestored = false;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Dismisses current ActivityMessage and ends activity if canceled.\r\n * @param isCompleted True if the activity was completed, false if it was canceled\r\n * @returns True if both ActivityMessage and activity process are ended.\r\n */\r\n public static endActivityMessage(isCompleted: boolean): boolean {\r\n this.endActivityProcessing(isCompleted);\r\n this.onActivityMessageCancelledEvent.emit({});\r\n return true;\r\n }\r\n\r\n /**\r\n * Ends processing for activity according to message definition.\r\n * @param isCompleted True if the activity was completed, false if it was canceled\r\n */\r\n private static endActivityProcessing(isCompleted: boolean): void {\r\n if (isCompleted)\r\n this._ongoingActivityMessage.details.onActivityCompleted();\r\n else\r\n this._ongoingActivityMessage.details.onActivityCancelled();\r\n }\r\n\r\n /**\r\n * Displays an input field message near target element.\r\n * @param target The currently focused or recently focused element to place the\r\n * input field message near.\r\n * @param messageText Text to display in the message.\r\n * @param detailedMessage Optional detailed message text to display.\r\n * @param priority Optional message priority which controls icon to display.\r\n */\r\n public static displayInputFieldMessage(target: HTMLElement, messageText: NotifyMessageType, detailedMessage: NotifyMessageType = \"\", priority = OutputMessagePriority.Error) {\r\n this.onInputFieldMessageAddedEvent.emit({\r\n target,\r\n messageText,\r\n detailedMessage,\r\n priority,\r\n });\r\n }\r\n\r\n /**\r\n * Hides the currently displayed input field message.\r\n */\r\n public static hideInputFieldMessage() {\r\n this.onInputFieldMessageRemovedEvent.emit({});\r\n }\r\n\r\n /**\r\n * Opens message center.\r\n */\r\n public static openMessageCenter() {\r\n this.onOpenMessageCenterEvent.emit({});\r\n }\r\n\r\n /** Output a prompt to the user. A 'prompt' indicates an action the user should take to proceed. */\r\n public static outputPrompt(prompt: string): void {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetToolPrompt, prompt, true);\r\n }\r\n\r\n /** Extracts the message severity from the message details and returns the corresponding React icon.\r\n * @param details NotifyMessageDetailsType\r\n * @returns IconSpec\r\n */\r\n public static getIconSpecFromDetails(details: NotifyMessageDetailsType): IconSpec {\r\n const severity = MessageManager.getSeverity(details);\r\n let iconSpec: IconSpec = <SvgStatusSuccess />;\r\n switch (severity) {\r\n case MessageSeverity.Error:\r\n case MessageSeverity.Fatal:\r\n iconSpec = <SvgStatusError />;\r\n break;\r\n case MessageSeverity.Warning:\r\n iconSpec = <SvgStatusWarning />;\r\n break;\r\n case MessageSeverity.Information:\r\n iconSpec = <SvgInfo />;\r\n break;\r\n }\r\n return iconSpec;\r\n }\r\n /** Gets an icon CSS class name based on a given NotifyMessageDetailsType.\r\n * @public\r\n * @deprecated in 4.0. Please use getIconSpecFromDetails instead.\r\n */\r\n public static getIconClassName(details: NotifyMessageDetailsType): string {\r\n const severity = MessageManager.getSeverity(details);\r\n const className = MessageContainer.getIconClassName(severity, false); // eslint-disable-line deprecation/deprecation\r\n const iconClassName = classnames(\"icon\", \"notifymessage-icon\", className);\r\n\r\n return iconClassName;\r\n }\r\n\r\n /** Gets a MessageSeverity based on a given NotifyMessageDetailsType. */\r\n public static getSeverity(details: NotifyMessageDetailsType): MessageSeverity {\r\n let severity = MessageSeverity.None;\r\n\r\n switch (details.priority) {\r\n case OutputMessagePriority.None:\r\n severity = MessageSeverity.Success;\r\n break;\r\n case OutputMessagePriority.Success:\r\n severity = MessageSeverity.Success;\r\n break;\r\n case OutputMessagePriority.Info:\r\n severity = MessageSeverity.Information;\r\n break;\r\n case OutputMessagePriority.Warning:\r\n severity = MessageSeverity.Warning;\r\n break;\r\n case OutputMessagePriority.Error:\r\n severity = MessageSeverity.Error;\r\n break;\r\n case OutputMessagePriority.Fatal:\r\n severity = MessageSeverity.Fatal;\r\n break;\r\n }\r\n\r\n return severity;\r\n }\r\n\r\n /** Gets a MessageBoxIconType based on a given NotifyMessageDetailsType. */\r\n public static getIconType(details: NotifyMessageDetailsType): MessageBoxIconType {\r\n let iconType = MessageBoxIconType.NoSymbol;\r\n\r\n switch (details.priority) {\r\n case OutputMessagePriority.None:\r\n iconType = MessageBoxIconType.NoSymbol;\r\n break;\r\n case OutputMessagePriority.Success:\r\n iconType = MessageBoxIconType.Success;\r\n break;\r\n case OutputMessagePriority.Info:\r\n iconType = MessageBoxIconType.Information;\r\n break;\r\n case OutputMessagePriority.Warning:\r\n iconType = MessageBoxIconType.Warning;\r\n break;\r\n case OutputMessagePriority.Error:\r\n iconType = MessageBoxIconType.Critical;\r\n break;\r\n case OutputMessagePriority.Fatal:\r\n iconType = MessageBoxIconType.Critical;\r\n break;\r\n }\r\n\r\n return iconType;\r\n }\r\n\r\n /** Output a MessageBox and wait for response from the user.\r\n * @param mbType The MessageBox type.\r\n * @param message The message to display.\r\n * @param icon The MessageBox icon type.\r\n * @return the response from the user.\r\n */\r\n public static async openMessageBox(mbType: MessageBoxType, message: NotifyMessageType, icon: MessageBoxIconType): Promise<MessageBoxValue> {\r\n const title = UiFramework.translate(\"general.alert\");\r\n\r\n return new Promise((onFulfilled: (result: MessageBoxValue) => void, onRejected: (reason: any) => void) => {\r\n const messageBoxCallbacks = new MessageBoxCallbacks(onFulfilled, onRejected);\r\n const messageElement = <MessageSpan message={message} />;\r\n UiFramework.dialogs.modal.open(this.standardMessageBox(mbType, icon, title, messageElement, messageBoxCallbacks));\r\n });\r\n }\r\n\r\n /** @internal */\r\n public static showAlertMessageBox(messageDetails: NotifyMessageDetailsType): void {\r\n const title = UiFramework.translate(\"general.alert\");\r\n const iconType = this.getIconType(messageDetails);\r\n const content = (\r\n <>\r\n <MessageSpan message={messageDetails.briefMessage} />\r\n {\r\n messageDetails.detailedMessage && (\r\n <p>\r\n <MessageSpan message={messageDetails.detailedMessage} />\r\n </p>\r\n )\r\n }\r\n </>\r\n );\r\n UiFramework.dialogs.modal.open(this.standardMessageBox(MessageBoxType.Ok, iconType, title, content));\r\n }\r\n\r\n private static standardMessageBox(mbType: MessageBoxType, iconType: MessageBoxIconType, title: string, messageElement: React.ReactNode, callbacks?: MessageBoxCallbacks): React.ReactNode {\r\n const onResult = (callbacks !== undefined) ? callbacks.handleMessageBoxResult : undefined;\r\n return (\r\n <StandardMessageBox\r\n opened={true}\r\n messageBoxType={mbType}\r\n iconType={iconType}\r\n title={title}\r\n onResult={onResult}\r\n >\r\n {messageElement}\r\n </StandardMessageBox>\r\n );\r\n }\r\n\r\n /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt.\r\n * @param instructions The tool assistance instructions.\r\n * @public\r\n */\r\n public static setToolAssistance(instructions: ToolAssistanceInstructions | undefined) {\r\n MessageManager.onToolAssistanceChangedEvent.emit({ instructions });\r\n }\r\n\r\n /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip.\r\n * @param htmlElement The HTMLElement that anchors the tooltip.\r\n * @param message What to display inside the tooltip.\r\n * @param location An optional location, relative to the origin of htmlElement, for the tooltip. If undefined, center of `htmlElement`.\r\n * @param options Options that supply additional information about how the tooltip should function.\r\n */\r\n public static openToolTip(htmlElement: HTMLElement, message: NotifyMessageType, location?: XAndY, options?: ToolTipOptions): void {\r\n IModelApp.notifications.toolTipLocation.setFrom(location);\r\n ElementTooltip.showTooltip(htmlElement, message, location, options);\r\n }\r\n\r\n /** @internal */\r\n public static closeAllMessages(): void {\r\n ElementTooltip.hideTooltip();\r\n PointerMessage.hideMessage();\r\n MessageManager.clearMessages();\r\n MessageManager.hideInputFieldMessage();\r\n MessageManager.endActivityMessage(false);\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"MessageManager.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/MessageManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport classnames from \"classnames\";\r\nimport { isEqual } from \"lodash\";\r\nimport * as React from \"react\";\r\nimport { XAndY } from \"@itwin/core-geometry\";\r\nimport {\r\n ActivityMessageDetails, IModelApp, MessageBoxIconType, MessageBoxType, MessageBoxValue, OutputMessageAlert, OutputMessagePriority,\r\n OutputMessageType, ToolAssistanceInstructions, ToolTipOptions,\r\n} from \"@itwin/core-frontend\";\r\nimport { MessageSeverity, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { IconSpec, MessageContainer, ReactMessage } from \"@itwin/core-react\";\r\nimport { ConfigurableUiActionId } from \"../configurableui/state\";\r\nimport { StandardMessageBox } from \"../dialog/StandardMessageBox\";\r\nimport { ElementTooltip } from \"../feedback/ElementTooltip\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { MessageSpan } from \"./MessageSpan\";\r\nimport { PointerMessage } from \"./Pointer\";\r\nimport { NotifyMessageDetailsType, NotifyMessageType } from \"./ReactNotifyMessageDetails\";\r\nimport { StatusMessageManager } from \"./StatusMessageManager\";\r\nimport { Text, toaster, ToastOptions } from \"@itwin/itwinui-react\";\r\nimport { ToasterSettings } from \"@itwin/itwinui-react/cjs/core/Toast/Toaster\";\r\nimport { SvgInfo, SvgStatusError, SvgStatusSuccess, SvgStatusWarning } from \"@itwin/itwinui-icons-react\";\r\n\r\nclass MessageBoxCallbacks {\r\n constructor(\r\n public readonly onFulfilled: (result: MessageBoxValue) => void,\r\n public readonly onRejected: (result: any) => void,\r\n ) { }\r\n\r\n public handleMessageBoxResult = (result: MessageBoxValue) => {\r\n this.onFulfilled(result);\r\n };\r\n}\r\n\r\n/** [[MessageAddedEvent]] arguments.\r\n * @public\r\n */\r\nexport interface MessageAddedEventArgs {\r\n /** Message details for the message added */\r\n message: NotifyMessageDetailsType;\r\n}\r\n\r\n/** Activity Message Event arguments.\r\n * @public\r\n */\r\nexport interface ActivityMessageEventArgs {\r\n /** Current message for the activity */\r\n message: NotifyMessageType;\r\n /** Current percentage for the activity */\r\n percentage: number;\r\n /** Message details set by calling NotificationManager.setupActivityMessage */\r\n details?: ActivityMessageDetails;\r\n /** Indicates whether the activity message popup is being restored */\r\n restored?: boolean;\r\n}\r\n\r\n/** Input Field Message Event arguments.\r\n * @public\r\n */\r\nexport interface InputFieldMessageEventArgs {\r\n /** Target HTML element for the Input Field message */\r\n target: Element;\r\n /** Message to be displayed near the input field */\r\n messageText: NotifyMessageType;\r\n /** Detailed message to be displayed near the input field */\r\n detailedMessage: NotifyMessageType;\r\n /** Priority of the input field message */\r\n priority: OutputMessagePriority;\r\n}\r\n\r\n/** Tool Assistance Changed event arguments.\r\n * @public\r\n */\r\nexport interface ToolAssistanceChangedEventArgs {\r\n /** Tool Assistance instructions for the active tool */\r\n instructions: ToolAssistanceInstructions | undefined;\r\n}\r\n\r\n/** Message Added Event class.\r\n * @public\r\n */\r\nexport class MessageAddedEvent extends UiEvent<MessageAddedEventArgs> { }\r\n\r\n/** Messages Updated Event class.\r\n * @public\r\n */\r\nexport class MessagesUpdatedEvent extends UiEvent<{}> { }\r\n\r\n/** Activity Message Added Event class.\r\n * @public\r\n */\r\nexport class ActivityMessageUpdatedEvent extends UiEvent<ActivityMessageEventArgs> { }\r\n\r\n/** Activity Message Cancelled Event class.\r\n * @public\r\n */\r\nexport class ActivityMessageCancelledEvent extends UiEvent<{}> { }\r\n\r\n/** Input Field Message Added Event class\r\n * @public\r\n */\r\nexport class InputFieldMessageAddedEvent extends UiEvent<InputFieldMessageEventArgs> { }\r\n\r\n/** Input Field Message Removed Event class.\r\n * @public\r\n */\r\nexport class InputFieldMessageRemovedEvent extends UiEvent<{}> { }\r\n\r\n/** Open Message Center Event class.\r\n * @public\r\n */\r\nexport class OpenMessageCenterEvent extends UiEvent<{}> { }\r\n\r\n/** Tool Assistance Changed event class\r\n * @public\r\n */\r\nexport class ToolAssistanceChangedEvent extends UiEvent<ToolAssistanceChangedEventArgs> { }\r\n\r\n/**\r\n * Keeps track of the current activity message, and updates whenever\r\n * setupActivityMessageDetails() or setupActivityMessageValues()\r\n * is called.\r\n * Used to display tracked progress in ActivityMessage.\r\n */\r\nclass OngoingActivityMessage {\r\n public message: NotifyMessageType = \"\";\r\n public percentage: number = 0;\r\n public details: ActivityMessageDetails = new ActivityMessageDetails(true, true, true);\r\n public isRestored: boolean = false;\r\n}\r\n\r\n/** The MessageManager class manages messages and prompts. It is used by the [[AppNotificationManager]] class.\r\n * @public\r\n */\r\nexport class MessageManager {\r\n private static _maxCachedMessages = 500;\r\n private static _maxDisplayedStickyMessages = 3;\r\n private static _messages: NotifyMessageDetailsType[] = [];\r\n private static _ongoingActivityMessage: OngoingActivityMessage = new OngoingActivityMessage();\r\n private static _lastMessage?: NotifyMessageDetailsType;\r\n private static _activeMessageManager = new StatusMessageManager();\r\n private static _animateOutToElement: HTMLElement | null;\r\n\r\n /** The MessageAddedEvent is fired when a message is added via outputMessage(). */\r\n public static readonly onMessageAddedEvent = new MessageAddedEvent();\r\n\r\n /** The MessagesUpdatedEvent is fired when a message is added or the messages are cleared. */\r\n public static readonly onMessagesUpdatedEvent = new MessagesUpdatedEvent();\r\n\r\n /** The ActivityMessageUpdatedEvent is fired when an Activity message updates via outputActivityMessage(). */\r\n public static readonly onActivityMessageUpdatedEvent = new ActivityMessageUpdatedEvent();\r\n\r\n /** The ActivityMessageCancelledEvent is fired when an Activity message is cancelled via\r\n * endActivityMessage(ActivityMessageEndReason.Cancelled) or\r\n * by the user clicking the 'Cancel' link.\r\n */\r\n public static readonly onActivityMessageCancelledEvent = new ActivityMessageCancelledEvent();\r\n\r\n public static readonly onInputFieldMessageAddedEvent = new InputFieldMessageAddedEvent();\r\n public static readonly onInputFieldMessageRemovedEvent = new InputFieldMessageRemovedEvent();\r\n\r\n public static readonly onOpenMessageCenterEvent = new OpenMessageCenterEvent();\r\n\r\n /** The ToolAssistanceChangedEvent is fired when a tool calls IModelApp.notifications.setToolAssistance().\r\n * @public\r\n */\r\n public static readonly onToolAssistanceChangedEvent = new ToolAssistanceChangedEvent();\r\n\r\n /** List of messages as NotifyMessageDetailsType. */\r\n public static get messages(): Readonly<NotifyMessageDetailsType[]> { return this._messages; }\r\n\r\n /** Manager of active messages. */\r\n public static get activeMessageManager(): StatusMessageManager { return this._activeMessageManager; }\r\n\r\n /** Clear the message list. */\r\n public static clearMessages(): void {\r\n this._messages.splice(0);\r\n this._activeMessageManager.initialize();\r\n\r\n this.onMessagesUpdatedEvent.emit({});\r\n this._lastMessage = undefined;\r\n }\r\n\r\n /** Update the message list. */\r\n public static updateMessages(): void {\r\n this.onMessagesUpdatedEvent.emit({});\r\n }\r\n\r\n /** Set the maximum number of cached message. */\r\n public static setMaxCachedMessages(max: number): void {\r\n this._maxCachedMessages = max;\r\n this.checkMaxCachedMessages();\r\n }\r\n\r\n /** The maximum number of displayed Sticky messages. */\r\n public static get maxDisplayedStickyMessages(): number { return this._maxDisplayedStickyMessages; }\r\n public static set maxDisplayedStickyMessages(max: number) { this._maxDisplayedStickyMessages = max; }\r\n\r\n /** Output a message and/or alert to the user.\r\n * @param message Details about the message to output.\r\n */\r\n public static outputMessage(message: NotifyMessageDetailsType): void {\r\n if (message.msgType === OutputMessageType.Pointer) {\r\n PointerMessage.showMessage(message);\r\n } else if (message.msgType === OutputMessageType.InputField) {\r\n if (message.inputField)\r\n MessageManager.displayInputFieldMessage(message.inputField, message.briefMessage, message.detailedMessage, message.priority);\r\n else\r\n message.msgType = OutputMessageType.Sticky; // Note: Changing the message.msgType here for InputField without inputField\r\n } else if (message.msgType === OutputMessageType.Alert) {\r\n if (message.openAlert === OutputMessageAlert.Balloon)\r\n message.msgType = OutputMessageType.Sticky; // Note: Changing the message.msgType here for Balloon\r\n else\r\n MessageManager.showAlertMessageBox(message);\r\n }\r\n\r\n MessageManager.addMessage(message);\r\n }\r\n\r\n /** Set the element where messages should be animated out to on exit.\r\n * @param element `HTMLElement` to animate out to.\r\n */\r\n public static registerAnimateOutToElement(element: HTMLElement | null) {\r\n this._animateOutToElement = element;\r\n }\r\n\r\n /** Display a message.\r\n * Works only with `Sticky` and `Toast` message types.\r\n * @param message Details about the message to display.\r\n * @param options Optionally override individual toast parameters.\r\n * @param settings Optionally override all toasts settings (i.e. placement or order).\r\n * @returns Object with reference to the message (i.e. to close it programmatically) if it was displayed.\r\n */\r\n public static displayMessage(message: NotifyMessageDetailsType, options?: ToastOptions, settings?: ToasterSettings) {\r\n if (message.msgType !== OutputMessageType.Sticky && message.msgType !== OutputMessageType.Toast) {\r\n return;\r\n }\r\n const toastOptions: ToastOptions = {\r\n hasCloseButton: true,\r\n duration: message.displayTime.milliseconds,\r\n type:\r\n message.msgType === OutputMessageType.Sticky\r\n ? \"persisting\"\r\n : \"temporary\",\r\n animateOutTo: this._animateOutToElement,\r\n ...options,\r\n };\r\n toaster.setSettings({ placement: \"bottom\", order: \"ascending\", ...settings });\r\n const content = <>\r\n {(message.briefMessage as ReactMessage).reactNode || message.briefMessage}\r\n {message.detailedMessage &&\r\n <Text variant=\"small\" style={{display: \"block\"}}>{(message.detailedMessage as ReactMessage).reactNode || message.detailedMessage}</Text>\r\n }\r\n </>;\r\n switch (message.priority) {\r\n case OutputMessagePriority.Warning:\r\n return toaster.warning(content, toastOptions);\r\n case OutputMessagePriority.Info:\r\n return toaster.informational(content, toastOptions);\r\n case OutputMessagePriority.Error:\r\n case OutputMessagePriority.Fatal:\r\n return toaster.negative(content, toastOptions);\r\n default:\r\n return toaster.positive(content, toastOptions);\r\n }\r\n }\r\n\r\n /** Output a message and/or alert to the user.\r\n * @param message Details about the message to output.\r\n */\r\n public static addMessage(message: NotifyMessageDetailsType): void {\r\n if (!isEqual(message, this._lastMessage)) {\r\n this.addToMessageCenter(message);\r\n this._lastMessage = message;\r\n }\r\n\r\n this._activeMessageManager.add(message);\r\n\r\n this.onMessageAddedEvent.emit({ message });\r\n }\r\n\r\n /** Add a message to the Message Center.\r\n * @param message Details about the message to output.\r\n */\r\n public static addToMessageCenter(message: NotifyMessageDetailsType): void {\r\n this._messages.push(message);\r\n this.onMessagesUpdatedEvent.emit({});\r\n this.checkMaxCachedMessages();\r\n }\r\n\r\n /** Checks number of messages against the maximum. */\r\n private static checkMaxCachedMessages(): void {\r\n if (this._messages.length > this._maxCachedMessages) {\r\n const numToErase = this._maxCachedMessages / 4;\r\n this._messages.splice(0, numToErase);\r\n this.onMessagesUpdatedEvent.emit({});\r\n }\r\n }\r\n\r\n /**\r\n * Sets details for setting up an Activity message.\r\n * @param details Details for setup of ActivityMessage\r\n * @returns true if details is valid and can be used to display ActivityMessage\r\n */\r\n public static setupActivityMessageDetails(details: ActivityMessageDetails): boolean {\r\n this._ongoingActivityMessage.details = details;\r\n this._ongoingActivityMessage.isRestored = details.showDialogInitially;\r\n return true;\r\n }\r\n\r\n /**\r\n * Output an activity message to the user.\r\n * @param message The message text.\r\n * @param percentComplete The percentage of completion.\r\n * @return true if the message was displayed, false if the message could not be displayed.\r\n */\r\n public static outputActivityMessage(message: NotifyMessageType, percentComplete: number): boolean {\r\n return MessageManager.setupActivityMessageValues(message, percentComplete);\r\n }\r\n\r\n /**\r\n * Sets values on _OngoingActivityMessage to be referenced when displaying\r\n * an ActivityMessage.\r\n * @param message Message of the process that ActivityMessage is tracking\r\n * @param percentage Progress made by activity in percentage\r\n * @param restored True if original ActivityMessage has been closed and\r\n * is now being restored from the status bar.\r\n * @returns true if details is valid and can be used to display ActivityMessage\r\n */\r\n public static setupActivityMessageValues(message: NotifyMessageType, percentage: number, restored?: boolean): boolean {\r\n this._ongoingActivityMessage.message = message;\r\n this._ongoingActivityMessage.percentage = percentage;\r\n\r\n this.onActivityMessageUpdatedEvent.emit({\r\n message,\r\n percentage,\r\n details: this._ongoingActivityMessage.details,\r\n restored: (restored !== undefined) ? restored : this._ongoingActivityMessage.isRestored,\r\n });\r\n\r\n this._ongoingActivityMessage.isRestored = false;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Dismisses current ActivityMessage and ends activity if canceled.\r\n * @param isCompleted True if the activity was completed, false if it was canceled\r\n * @returns True if both ActivityMessage and activity process are ended.\r\n */\r\n public static endActivityMessage(isCompleted: boolean): boolean {\r\n this.endActivityProcessing(isCompleted);\r\n this.onActivityMessageCancelledEvent.emit({});\r\n return true;\r\n }\r\n\r\n /**\r\n * Ends processing for activity according to message definition.\r\n * @param isCompleted True if the activity was completed, false if it was canceled\r\n */\r\n private static endActivityProcessing(isCompleted: boolean): void {\r\n if (isCompleted)\r\n this._ongoingActivityMessage.details.onActivityCompleted();\r\n else\r\n this._ongoingActivityMessage.details.onActivityCancelled();\r\n }\r\n\r\n /**\r\n * Displays an input field message near target element.\r\n * @param target The currently focused or recently focused element to place the\r\n * input field message near.\r\n * @param messageText Text to display in the message.\r\n * @param detailedMessage Optional detailed message text to display.\r\n * @param priority Optional message priority which controls icon to display.\r\n */\r\n public static displayInputFieldMessage(target: HTMLElement, messageText: NotifyMessageType, detailedMessage: NotifyMessageType = \"\", priority = OutputMessagePriority.Error) {\r\n this.onInputFieldMessageAddedEvent.emit({\r\n target,\r\n messageText,\r\n detailedMessage,\r\n priority,\r\n });\r\n }\r\n\r\n /**\r\n * Hides the currently displayed input field message.\r\n */\r\n public static hideInputFieldMessage() {\r\n this.onInputFieldMessageRemovedEvent.emit({});\r\n }\r\n\r\n /**\r\n * Opens message center.\r\n */\r\n public static openMessageCenter() {\r\n this.onOpenMessageCenterEvent.emit({});\r\n }\r\n\r\n /** Output a prompt to the user. A 'prompt' indicates an action the user should take to proceed. */\r\n public static outputPrompt(prompt: string): void {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetToolPrompt, prompt, true);\r\n }\r\n\r\n /** Extracts the message severity from the message details and returns the corresponding React icon.\r\n * @param details NotifyMessageDetailsType\r\n * @returns IconSpec\r\n */\r\n public static getIconSpecFromDetails(details: NotifyMessageDetailsType): IconSpec {\r\n const severity = MessageManager.getSeverity(details);\r\n let iconSpec: IconSpec = <SvgStatusSuccess />;\r\n switch (severity) {\r\n case MessageSeverity.Error:\r\n case MessageSeverity.Fatal:\r\n iconSpec = <SvgStatusError />;\r\n break;\r\n case MessageSeverity.Warning:\r\n iconSpec = <SvgStatusWarning />;\r\n break;\r\n case MessageSeverity.Information:\r\n iconSpec = <SvgInfo />;\r\n break;\r\n }\r\n return iconSpec;\r\n }\r\n /** Gets an icon CSS class name based on a given NotifyMessageDetailsType.\r\n * @public\r\n * @deprecated in 4.0. Please use getIconSpecFromDetails instead.\r\n */\r\n public static getIconClassName(details: NotifyMessageDetailsType): string {\r\n const severity = MessageManager.getSeverity(details);\r\n const className = MessageContainer.getIconClassName(severity, false); // eslint-disable-line deprecation/deprecation\r\n const iconClassName = classnames(\"icon\", \"notifymessage-icon\", className);\r\n\r\n return iconClassName;\r\n }\r\n\r\n /** Gets a MessageSeverity based on a given NotifyMessageDetailsType. */\r\n public static getSeverity(details: NotifyMessageDetailsType): MessageSeverity {\r\n let severity = MessageSeverity.None;\r\n\r\n switch (details.priority) {\r\n case OutputMessagePriority.None:\r\n severity = MessageSeverity.Success;\r\n break;\r\n case OutputMessagePriority.Success:\r\n severity = MessageSeverity.Success;\r\n break;\r\n case OutputMessagePriority.Info:\r\n severity = MessageSeverity.Information;\r\n break;\r\n case OutputMessagePriority.Warning:\r\n severity = MessageSeverity.Warning;\r\n break;\r\n case OutputMessagePriority.Error:\r\n severity = MessageSeverity.Error;\r\n break;\r\n case OutputMessagePriority.Fatal:\r\n severity = MessageSeverity.Fatal;\r\n break;\r\n }\r\n\r\n return severity;\r\n }\r\n\r\n /** Gets a MessageBoxIconType based on a given NotifyMessageDetailsType. */\r\n public static getIconType(details: NotifyMessageDetailsType): MessageBoxIconType {\r\n let iconType = MessageBoxIconType.NoSymbol;\r\n\r\n switch (details.priority) {\r\n case OutputMessagePriority.None:\r\n iconType = MessageBoxIconType.NoSymbol;\r\n break;\r\n case OutputMessagePriority.Success:\r\n iconType = MessageBoxIconType.Success;\r\n break;\r\n case OutputMessagePriority.Info:\r\n iconType = MessageBoxIconType.Information;\r\n break;\r\n case OutputMessagePriority.Warning:\r\n iconType = MessageBoxIconType.Warning;\r\n break;\r\n case OutputMessagePriority.Error:\r\n iconType = MessageBoxIconType.Critical;\r\n break;\r\n case OutputMessagePriority.Fatal:\r\n iconType = MessageBoxIconType.Critical;\r\n break;\r\n }\r\n\r\n return iconType;\r\n }\r\n\r\n /** Output a MessageBox and wait for response from the user.\r\n * @param mbType The MessageBox type.\r\n * @param message The message to display.\r\n * @param icon The MessageBox icon type.\r\n * @return the response from the user.\r\n */\r\n public static async openMessageBox(mbType: MessageBoxType, message: NotifyMessageType, icon: MessageBoxIconType): Promise<MessageBoxValue> {\r\n const title = UiFramework.translate(\"general.alert\");\r\n\r\n return new Promise((onFulfilled: (result: MessageBoxValue) => void, onRejected: (reason: any) => void) => {\r\n const messageBoxCallbacks = new MessageBoxCallbacks(onFulfilled, onRejected);\r\n const messageElement = <MessageSpan message={message} />;\r\n UiFramework.dialogs.modal.open(this.standardMessageBox(mbType, icon, title, messageElement, messageBoxCallbacks));\r\n });\r\n }\r\n\r\n /** @internal */\r\n public static showAlertMessageBox(messageDetails: NotifyMessageDetailsType): void {\r\n const title = UiFramework.translate(\"general.alert\");\r\n const iconType = this.getIconType(messageDetails);\r\n const content = (\r\n <>\r\n <MessageSpan message={messageDetails.briefMessage} />\r\n {\r\n messageDetails.detailedMessage && (\r\n <p>\r\n <MessageSpan message={messageDetails.detailedMessage} />\r\n </p>\r\n )\r\n }\r\n </>\r\n );\r\n UiFramework.dialogs.modal.open(this.standardMessageBox(MessageBoxType.Ok, iconType, title, content));\r\n }\r\n\r\n private static standardMessageBox(mbType: MessageBoxType, iconType: MessageBoxIconType, title: string, messageElement: React.ReactNode, callbacks?: MessageBoxCallbacks): React.ReactNode {\r\n const onResult = (callbacks !== undefined) ? callbacks.handleMessageBoxResult : undefined;\r\n return (\r\n <StandardMessageBox\r\n opened={true}\r\n messageBoxType={mbType}\r\n iconType={iconType}\r\n title={title}\r\n onResult={onResult}\r\n >\r\n {messageElement}\r\n </StandardMessageBox>\r\n );\r\n }\r\n\r\n /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt.\r\n * @param instructions The tool assistance instructions.\r\n * @public\r\n */\r\n public static setToolAssistance(instructions: ToolAssistanceInstructions | undefined) {\r\n MessageManager.onToolAssistanceChangedEvent.emit({ instructions });\r\n }\r\n\r\n /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip.\r\n * @param htmlElement The HTMLElement that anchors the tooltip.\r\n * @param message What to display inside the tooltip.\r\n * @param location An optional location, relative to the origin of htmlElement, for the tooltip. If undefined, center of `htmlElement`.\r\n * @param options Options that supply additional information about how the tooltip should function.\r\n */\r\n public static openToolTip(htmlElement: HTMLElement, message: NotifyMessageType, location?: XAndY, options?: ToolTipOptions): void {\r\n IModelApp.notifications.toolTipLocation.setFrom(location);\r\n ElementTooltip.showTooltip(htmlElement, message, location, options);\r\n }\r\n\r\n /** @internal */\r\n public static closeAllMessages(): void {\r\n ElementTooltip.hideTooltip();\r\n PointerMessage.hideMessage();\r\n MessageManager.clearMessages();\r\n MessageManager.hideInputFieldMessage();\r\n MessageManager.endActivityMessage(false);\r\n }\r\n\r\n}\r\n"]}
|