/** @packageDocumentation * @module Notification */ import { XAndY } from "@bentley/geometry-core"; import { ActivityMessageDetails, MessageBoxIconType, MessageBoxType, MessageBoxValue, OutputMessagePriority, ToolAssistanceInstructions, ToolTipOptions } from "@bentley/imodeljs-frontend"; import { MessageSeverity, UiEvent } from "@bentley/ui-core"; import { NotifyMessageDetailsType, NotifyMessageType } from "./ReactNotifyMessageDetails"; import { StatusMessageManager } from "./StatusMessageManager"; /** [[MessageAddedEvent]] arguments. * @public */ export interface MessageAddedEventArgs { /** Message details for the message added */ message: NotifyMessageDetailsType; } /** Activity Message Event arguments. * @public */ export interface ActivityMessageEventArgs { /** Current message for the activity */ message: NotifyMessageType; /** Current percentage for the activity */ percentage: number; /** Message details set by calling NotificationManager.setupActivityMessage */ details?: ActivityMessageDetails; /** Indicates whether the activity message popup is being restored */ restored?: boolean; } /** Input Field Message Event arguments. * @public */ export interface InputFieldMessageEventArgs { /** Target HTML element for the Input Field message */ target: Element; /** Message to be displayed near the input field */ messageText: NotifyMessageType; /** Detailed message to be displayed near the input field */ detailedMessage: NotifyMessageType; /** Priority of the input field message */ priority: OutputMessagePriority; } /** Tool Assistance Changed event arguments. * @public */ export interface ToolAssistanceChangedEventArgs { /** Tool Assistance instructions for the active tool */ instructions: ToolAssistanceInstructions | undefined; } /** Message Added Event class. * @public */ export declare class MessageAddedEvent extends UiEvent { } /** Messages Updated Event class. * @public */ export declare class MessagesUpdatedEvent extends UiEvent<{}> { } /** Activity Message Added Event class. * @public */ export declare class ActivityMessageUpdatedEvent extends UiEvent { } /** Activity Message Cancelled Event class. * @public */ export declare class ActivityMessageCancelledEvent extends UiEvent<{}> { } /** Input Field Message Added Event class * @public */ export declare class InputFieldMessageAddedEvent extends UiEvent { } /** Input Field Message Removed Event class. * @public */ export declare class InputFieldMessageRemovedEvent extends UiEvent<{}> { } /** Open Message Center Event class. * @public */ export declare class OpenMessageCenterEvent extends UiEvent<{}> { } /** Tool Assistance Changed event class * @public */ export declare class ToolAssistanceChangedEvent extends UiEvent { } /** The MessageManager class manages messages and prompts. It is used by the [[AppNotificationManager]] class. * @public */ export declare class MessageManager { private static _maxCachedMessages; private static _maxDisplayedStickyMessages; private static _messages; private static _ongoingActivityMessage; private static _lastMessage?; private static _activeMessageManager; /** The MessageAddedEvent is fired when a message is added via outputMessage(). */ static readonly onMessageAddedEvent: MessageAddedEvent; /** The MessagesUpdatedEvent is fired when a message is added or the messages are cleared. */ static readonly onMessagesUpdatedEvent: MessagesUpdatedEvent; /** The ActivityMessageUpdatedEvent is fired when an Activity message updates via outputActivityMessage(). */ static readonly onActivityMessageUpdatedEvent: ActivityMessageUpdatedEvent; /** The ActivityMessageCancelledEvent is fired when an Activity message is cancelled via * endActivityMessage(ActivityMessageEndReason.Cancelled) or * by the user clicking the 'Cancel' link. */ static readonly onActivityMessageCancelledEvent: ActivityMessageCancelledEvent; static readonly onInputFieldMessageAddedEvent: InputFieldMessageAddedEvent; static readonly onInputFieldMessageRemovedEvent: InputFieldMessageRemovedEvent; static readonly onOpenMessageCenterEvent: OpenMessageCenterEvent; /** The ToolAssistanceChangedEvent is fired when a tool calls IModelApp.notifications.setToolAssistance(). * @public */ static readonly onToolAssistanceChangedEvent: ToolAssistanceChangedEvent; /** List of messages as NotifyMessageDetailsType. */ static get messages(): Readonly; /** Manager of active messages. */ static get activeMessageManager(): StatusMessageManager; /** Clear the message list. */ static clearMessages(): void; /** Update the message list. */ static updateMessages(): void; /** Set the maximum number of cached message. */ static setMaxCachedMessages(max: number): void; /** The maximum number of displayed Sticky messages. */ static get maxDisplayedStickyMessages(): number; static set maxDisplayedStickyMessages(max: number); /** Output a message and/or alert to the user. * @param message Details about the message to output. */ static outputMessage(message: NotifyMessageDetailsType): void; /** Output a message and/or alert to the user. * @param message Details about the message to output. */ static addMessage(message: NotifyMessageDetailsType): void; /** Add a message to the Message Center. * @param message Details about the message to output. */ static addToMessageCenter(message: NotifyMessageDetailsType): void; /** Checks number of messages against the maximum. */ private static checkMaxCachedMessages; /** * Sets details for setting up an Activity message. * @param details Details for setup of ActivityMessage * @returns true if details is valid and can be used to display ActivityMessage */ static setupActivityMessageDetails(details: ActivityMessageDetails): boolean; /** * Output an activity message to the user. * @param message The message text. * @param percentComplete The percentage of completion. * @return true if the message was displayed, false if the message could not be displayed. */ static outputActivityMessage(message: NotifyMessageType, percentComplete: number): boolean; /** * Sets values on _OngoingActivityMessage to be referenced when displaying * an ActivityMessage. * @param message Message of the process that ActivityMessage is tracking * @param percentage Progress made by activity in percentage * @param restored True if original ActivityMessage has been closed and * is now being restored from the status bar. * @returns true if details is valid and can be used to display ActivityMessage */ static setupActivityMessageValues(message: NotifyMessageType, percentage: number, restored?: boolean): boolean; /** * Dismisses current ActivityMessage and ends activity if canceled. * @param isCompleted True if the activity was completed, false if it was canceled * @returns True if both ActivityMessage and activity process are ended. */ static endActivityMessage(isCompleted: boolean): boolean; /** * Ends processing for activity according to message definition. * @param isCompleted True if the activity was completed, false if it was canceled */ private static endActivityProcessing; /** * Displays an input field message near target element. * @param target The currently focused or recently focused element to place the * input field message near. * @param messageText Text to display in the message. * @param detailedMessage Optional detailed message text to display. * @param priority Optional message priority which controls icon to display. */ static displayInputFieldMessage(target: HTMLElement, messageText: NotifyMessageType, detailedMessage?: NotifyMessageType, priority?: OutputMessagePriority): void; /** * Hides the currently displayed input field message. */ static hideInputFieldMessage(): void; /** * Opens message center. */ static openMessageCenter(): void; /** Output a prompt to the user. A 'prompt' indicates an action the user should take to proceed. */ static outputPrompt(prompt: string): void; /** Gets an icon CSS class name based on a given NotifyMessageDetailsType. */ static getIconClassName(details: NotifyMessageDetailsType): string; /** Gets a [[MessageSeverity]] based on a given NotifyMessageDetailsType. */ static getSeverity(details: NotifyMessageDetailsType): MessageSeverity; /** Gets a MessageBoxIconType based on a given NotifyMessageDetailsType. */ static getIconType(details: NotifyMessageDetailsType): MessageBoxIconType; /** Output a MessageBox and wait for response from the user. * @param mbType The MessageBox type. * @param message The message to display. * @param icon The MessageBox icon type. * @return the response from the user. */ static openMessageBox(mbType: MessageBoxType, message: NotifyMessageType, icon: MessageBoxIconType): Promise; /** @internal */ static showAlertMessageBox(messageDetails: NotifyMessageDetailsType): void; private static standardMessageBox; /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt. * @param instructions The tool assistance instructions. * @public */ static setToolAssistance(instructions: ToolAssistanceInstructions | undefined): void; /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip. * @param htmlElement The HTMLElement that anchors the tooltip. * @param message What to display inside the tooltip. * @param location An optional location, relative to the origin of htmlElement, for the tooltip. If undefined, center of `htmlElement`. * @param options Options that supply additional information about how the tooltip should function. */ static openToolTip(htmlElement: HTMLElement, message: NotifyMessageType, location?: XAndY, options?: ToolTipOptions): void; /** @internal */ static closeAllMessages(): void; } //# sourceMappingURL=MessageManager.d.ts.map