@itwin/appui-react 3.3.0-dev.71 → 3.3.0-dev.72

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.
Files changed (73) hide show
  1. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts +26 -0
  2. package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  3. package/lib/cjs/appui-react/messages/ActivityMessage.js +64 -5
  4. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  5. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
  6. package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +3 -11
  8. package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  9. package/lib/cjs/appui-react/messages/MessageManager.d.ts +17 -0
  10. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/messages/MessageManager.js +44 -0
  12. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  13. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
  14. package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js +33 -28
  16. package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  17. package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
  18. package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js +1 -0
  20. package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  21. package/lib/cjs/appui-react/messages/StickyMessage.d.ts +1 -0
  22. package/lib/cjs/appui-react/messages/StickyMessage.d.ts.map +1 -1
  23. package/lib/cjs/appui-react/messages/StickyMessage.js +8 -6
  24. package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
  25. package/lib/cjs/appui-react/messages/ToastMessage.d.ts +1 -0
  26. package/lib/cjs/appui-react/messages/ToastMessage.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/messages/ToastMessage.js +7 -5
  28. package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
  29. package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
  30. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +2 -8
  31. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/statusbar/StatusBar.js +26 -24
  33. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  34. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -0
  36. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  37. package/lib/esm/appui-react/messages/ActivityMessage.d.ts +26 -0
  38. package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +1 -1
  39. package/lib/esm/appui-react/messages/ActivityMessage.js +63 -7
  40. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  41. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
  42. package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
  43. package/lib/esm/appui-react/messages/ActivityMessagePopup.js +4 -12
  44. package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
  45. package/lib/esm/appui-react/messages/MessageManager.d.ts +17 -0
  46. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  47. package/lib/esm/appui-react/messages/MessageManager.js +44 -0
  48. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  49. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
  50. package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
  51. package/lib/esm/appui-react/messages/StatusMessageRenderer.js +33 -28
  52. package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
  53. package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
  54. package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
  55. package/lib/esm/appui-react/messages/StatusMessagesContainer.js +1 -0
  56. package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
  57. package/lib/esm/appui-react/messages/StickyMessage.d.ts +1 -0
  58. package/lib/esm/appui-react/messages/StickyMessage.d.ts.map +1 -1
  59. package/lib/esm/appui-react/messages/StickyMessage.js +9 -7
  60. package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
  61. package/lib/esm/appui-react/messages/ToastMessage.d.ts +1 -0
  62. package/lib/esm/appui-react/messages/ToastMessage.d.ts.map +1 -1
  63. package/lib/esm/appui-react/messages/ToastMessage.js +8 -6
  64. package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
  65. package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
  66. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +2 -8
  67. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  68. package/lib/esm/appui-react/statusbar/StatusBar.js +26 -24
  69. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  70. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  71. package/lib/esm/appui-react/statusfields/MessageCenter.js +1 -0
  72. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  73. package/package.json +32 -32
@@ -10,62 +10,67 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.StatusMessageRenderer = void 0;
11
11
  require("./StatusMessageRenderer.scss");
12
12
  const React = require("react");
13
- const classnames_1 = require("classnames");
14
13
  const MessageManager_1 = require("./MessageManager");
15
- const StatusMessagesContainer_1 = require("./StatusMessagesContainer");
14
+ const ActivityMessage_1 = require("./ActivityMessage");
16
15
  /** Message Popup React component that renders one or more Toast or Sticky messages and an Activity message without a StatusBar.
17
16
  * @note This component was formerly named MessageRenderer in previous releases.
18
17
  * @public
18
+ * @deprecated Use `toaster` from iTwinui-react to display status messages.
19
19
  */
20
- function StatusMessageRenderer(props) {
21
- const [messages, setMessages] = React.useState(MessageManager_1.MessageManager.activeMessageManager.messages);
20
+ function StatusMessageRenderer({ closeMessage, cancelActivityMessage: cancelActivityMessageProp, dismissActivityMessage, }) {
21
+ const messages = React.useRef([]);
22
22
  const [activityMessageInfo, setActivityMessageInfo] = React.useState(undefined);
23
- const [isActivityMessageVisible, setIsActivityMessageVisible] = React.useState(false);
23
+ const updateMessages = () => {
24
+ const updatedMessages = [...messages.current];
25
+ messages.current.forEach((m) => {
26
+ if (!MessageManager_1.MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {
27
+ m.close();
28
+ const index = updatedMessages.findIndex((msg) => msg.id === m.id);
29
+ updatedMessages.splice(index, 1);
30
+ }
31
+ });
32
+ messages.current = updatedMessages;
33
+ };
24
34
  React.useEffect(() => {
25
- const handleMessageAddedEvent = (_args) => {
26
- setMessages(MessageManager_1.MessageManager.activeMessageManager.messages);
35
+ const handleMessageAddedEvent = ({ message }) => {
36
+ updateMessages();
37
+ const messagesToAdd = MessageManager_1.MessageManager.activeMessageManager.messages.filter((msg) => !messages.current.find((m) => m.id === msg.id));
38
+ messagesToAdd.forEach((msg) => {
39
+ const displayedMessage = MessageManager_1.MessageManager.displayMessage(message, { onRemove: () => onRemove(msg.id) }, { placement: "top", order: "descending" });
40
+ if (!!displayedMessage)
41
+ messages.current.push({ close: displayedMessage.close, id: msg.id });
42
+ });
27
43
  };
28
44
  return MessageManager_1.MessageManager.onMessageAddedEvent.addListener(handleMessageAddedEvent);
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
46
  }, []);
30
47
  React.useEffect(() => {
31
48
  /** Respond to clearing the message list */
32
- const handleMessagesUpdatedEvent = () => {
33
- setMessages(MessageManager_1.MessageManager.activeMessageManager.messages);
34
- };
35
- return MessageManager_1.MessageManager.onMessagesUpdatedEvent.addListener(handleMessagesUpdatedEvent);
49
+ return MessageManager_1.MessageManager.onMessagesUpdatedEvent.addListener(updateMessages);
36
50
  }, []);
37
51
  React.useEffect(() => {
38
52
  const handleActivityMessageUpdatedEvent = (args) => {
39
53
  setActivityMessageInfo(args);
40
- if (args.restored)
41
- setIsActivityMessageVisible(true);
42
54
  };
43
55
  return MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);
44
- }, [isActivityMessageVisible]);
56
+ }, []);
45
57
  React.useEffect(() => {
46
58
  const handleActivityMessageCancelledEvent = () => {
47
59
  setActivityMessageInfo(undefined);
48
- setIsActivityMessageVisible(false);
49
60
  };
50
61
  return MessageManager_1.MessageManager.onActivityMessageCancelledEvent.addListener(handleActivityMessageCancelledEvent);
51
62
  }, []);
52
- const closeMessage = React.useCallback((id) => {
63
+ const onRemove = React.useCallback((id) => {
53
64
  MessageManager_1.MessageManager.activeMessageManager.remove(id);
54
65
  MessageManager_1.MessageManager.updateMessages();
55
- props.closeMessage && props.closeMessage(id);
56
- }, [props]);
66
+ closeMessage === null || closeMessage === void 0 ? void 0 : closeMessage(id);
67
+ }, [closeMessage]);
57
68
  const cancelActivityMessage = React.useCallback(() => {
58
69
  MessageManager_1.MessageManager.endActivityMessage(false);
59
- props.cancelActivityMessage && props.cancelActivityMessage();
60
- }, [props]);
61
- const dismissActivityMessage = React.useCallback(() => {
62
- setIsActivityMessageVisible(false);
63
- props.dismissActivityMessage && props.dismissActivityMessage();
64
- }, [props]);
65
- if (!(activityMessageInfo && isActivityMessageVisible) && messages.length === 0)
66
- return null;
67
- return (React.createElement("div", { className: (0, classnames_1.default)("uifw-message-renderer", props.className), style: props.style },
68
- React.createElement(StatusMessagesContainer_1.StatusMessagesContainer, { messages: messages, activityMessageInfo: activityMessageInfo, isActivityMessageVisible: isActivityMessageVisible, toastTarget: null, closeMessage: closeMessage, cancelActivityMessage: cancelActivityMessage, dismissActivityMessage: dismissActivityMessage })));
70
+ cancelActivityMessageProp && cancelActivityMessageProp();
71
+ }, [cancelActivityMessageProp]);
72
+ (0, ActivityMessage_1.useActivityMessage)({ activityMessageInfo, cancelActivityMessage, dismissActivityMessage });
73
+ return React.createElement(React.Fragment, null);
69
74
  }
70
75
  exports.StatusMessageRenderer = StatusMessageRenderer;
71
76
  //# sourceMappingURL=StatusMessageRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusMessageRenderer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessageRenderer.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 \"./StatusMessageRenderer.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"./MessageManager\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { StatusMessage } from \"./StatusMessageManager\";\r\nimport { StatusMessagesContainer } from \"./StatusMessagesContainer\";\r\n\r\n/** Properties for [[StatusMessageRenderer]] component\r\n * @public\r\n */\r\nexport interface StatusMessageRendererProps extends CommonProps {\r\n closeMessage?: (id: string) => void;\r\n cancelActivityMessage?: () => void;\r\n dismissActivityMessage?: () => void;\r\n}\r\n\r\n/** Message Popup React component that renders one or more Toast or Sticky messages and an Activity message without a StatusBar.\r\n * @note This component was formerly named MessageRenderer in previous releases.\r\n * @public\r\n */\r\nexport function StatusMessageRenderer(props: StatusMessageRendererProps) {\r\n const [messages, setMessages] = React.useState<ReadonlyArray<StatusMessage>>(MessageManager.activeMessageManager.messages);\r\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<ActivityMessageEventArgs | undefined>(undefined);\r\n const [isActivityMessageVisible, setIsActivityMessageVisible] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n const handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\r\n setMessages(MessageManager.activeMessageManager.messages);\r\n };\r\n\r\n return MessageManager.onMessageAddedEvent.addListener(handleMessageAddedEvent);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n /** Respond to clearing the message list */\r\n const handleMessagesUpdatedEvent = () => {\r\n setMessages(MessageManager.activeMessageManager.messages);\r\n };\r\n\r\n return MessageManager.onMessagesUpdatedEvent.addListener(handleMessagesUpdatedEvent);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n setActivityMessageInfo(args);\r\n if (args.restored)\r\n setIsActivityMessageVisible(true);\r\n };\r\n\r\n return MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);\r\n }, [isActivityMessageVisible]);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageCancelledEvent = () => {\r\n setActivityMessageInfo(undefined);\r\n setIsActivityMessageVisible(false);\r\n };\r\n\r\n return MessageManager.onActivityMessageCancelledEvent.addListener(handleActivityMessageCancelledEvent);\r\n }, []);\r\n\r\n const closeMessage = React.useCallback((id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n props.closeMessage && props.closeMessage(id);\r\n }, [props]);\r\n\r\n const cancelActivityMessage = React.useCallback(() => {\r\n MessageManager.endActivityMessage(false);\r\n props.cancelActivityMessage && props.cancelActivityMessage();\r\n }, [props]);\r\n\r\n const dismissActivityMessage = React.useCallback(() => {\r\n setIsActivityMessageVisible(false);\r\n props.dismissActivityMessage && props.dismissActivityMessage();\r\n }, [props]);\r\n\r\n if (!(activityMessageInfo && isActivityMessageVisible) && messages.length === 0)\r\n return null;\r\n\r\n return (\r\n <div className={classnames(\"uifw-message-renderer\", props.className)} style={props.style}>\r\n <StatusMessagesContainer\r\n messages={messages}\r\n activityMessageInfo={activityMessageInfo}\r\n isActivityMessageVisible={isActivityMessageVisible}\r\n toastTarget={null}\r\n closeMessage={closeMessage}\r\n cancelActivityMessage={cancelActivityMessage}\r\n dismissActivityMessage={dismissActivityMessage}\r\n />\r\n\r\n </div>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"StatusMessageRenderer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessageRenderer.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 \"./StatusMessageRenderer.scss\";\r\nimport * as React from \"react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"./MessageManager\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { useActivityMessage } from \"./ActivityMessage\";\r\n\r\n/** Message type for the [[StatusMessageRenderer]] React component\r\n * @internal\r\n */\r\ninterface StatusMessageRendererrMessage {\r\n close: () => void;\r\n id: string;\r\n}\r\n\r\n/** Properties for [[StatusMessageRenderer]] component\r\n * @public\r\n */\r\nexport interface StatusMessageRendererProps extends CommonProps {\r\n closeMessage?: (id: string) => void;\r\n cancelActivityMessage?: () => void;\r\n dismissActivityMessage?: () => void;\r\n}\r\n\r\n/** Message Popup React component that renders one or more Toast or Sticky messages and an Activity message without a StatusBar.\r\n * @note This component was formerly named MessageRenderer in previous releases.\r\n * @public\r\n * @deprecated Use `toaster` from iTwinui-react to display status messages.\r\n */\r\nexport function StatusMessageRenderer({\r\n closeMessage,\r\n cancelActivityMessage: cancelActivityMessageProp,\r\n dismissActivityMessage,\r\n}: StatusMessageRendererProps) {\r\n const messages = React.useRef<StatusMessageRendererrMessage[]>([]);\r\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<ActivityMessageEventArgs | undefined>(undefined);\r\n\r\n const updateMessages = () => {\r\n const updatedMessages = [...messages.current];\r\n messages.current.forEach((m) => {\r\n if (!MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {\r\n m.close();\r\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\r\n updatedMessages.splice(index, 1);\r\n }\r\n });\r\n\r\n messages.current = updatedMessages;\r\n };\r\n\r\n React.useEffect(() => {\r\n const handleMessageAddedEvent = ({ message }: MessageAddedEventArgs) => {\r\n updateMessages();\r\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !messages.current.find((m) => m.id === msg.id));\r\n messagesToAdd.forEach((msg) => {\r\n const displayedMessage = MessageManager.displayMessage(\r\n message,\r\n { onRemove: () => onRemove(msg.id) },\r\n { placement: \"top\", order: \"descending\" }\r\n );\r\n if(!!displayedMessage)\r\n messages.current.push({close: displayedMessage.close, id: msg.id});\r\n });\r\n };\r\n\r\n return MessageManager.onMessageAddedEvent.addListener(handleMessageAddedEvent);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n /** Respond to clearing the message list */\r\n return MessageManager.onMessagesUpdatedEvent.addListener(updateMessages);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n setActivityMessageInfo(args);\r\n };\r\n\r\n return MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageCancelledEvent = () => {\r\n setActivityMessageInfo(undefined);\r\n };\r\n\r\n return MessageManager.onActivityMessageCancelledEvent.addListener(handleActivityMessageCancelledEvent);\r\n }, []);\r\n\r\n const onRemove = React.useCallback((id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n closeMessage?.(id);\r\n }, [closeMessage]);\r\n\r\n const cancelActivityMessage = React.useCallback(() => {\r\n MessageManager.endActivityMessage(false);\r\n cancelActivityMessageProp && cancelActivityMessageProp();\r\n }, [cancelActivityMessageProp]);\r\n\r\n useActivityMessage({activityMessageInfo, cancelActivityMessage, dismissActivityMessage});\r\n\r\n return <></>;\r\n}\r\n"]}
@@ -19,6 +19,7 @@ export interface StatusMessagesContainerProps {
19
19
  }
20
20
  /** Component that renders one or more Toast, Sticky or Activity messages
21
21
  * @internal
22
+ * @deprecated
22
23
  */
23
24
  export declare function StatusMessagesContainer(props: StatusMessagesContainerProps): JSX.Element | null;
24
25
  //# sourceMappingURL=StatusMessagesContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusMessagesContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAO5D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC1D,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,sBAkE1E"}
1
+ {"version":3,"file":"StatusMessagesContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAO5D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC1D,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,sBAqE1E"}
@@ -18,6 +18,7 @@ const ActivityMessage_1 = require("./ActivityMessage");
18
18
  const core_react_1 = require("@itwin/core-react");
19
19
  /** Component that renders one or more Toast, Sticky or Activity messages
20
20
  * @internal
21
+ * @deprecated
21
22
  */
22
23
  function StatusMessagesContainer(props) {
23
24
  const [containerElement, setContainerElement] = React.useState(null);
@@ -1 +1 @@
1
- {"version":3,"file":"StatusMessagesContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.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 \"./StatusMessagesContainer.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { StatusMessage } from \"./StatusMessageManager\";\r\nimport { ActivityMessageEventArgs } from \"./MessageManager\";\r\nimport { OutputMessageType } from \"@itwin/core-frontend\";\r\nimport { ToastMessage } from \"./ToastMessage\";\r\nimport { StickyMessage } from \"./StickyMessage\";\r\nimport { ActivityMessage } from \"./ActivityMessage\";\r\nimport { useLayoutResizeObserver } from \"@itwin/core-react\";\r\n\r\n/** Properties for [[StatusMessagesContainer]] component\r\n * @internal\r\n */\r\nexport interface StatusMessagesContainerProps {\r\n messages: ReadonlyArray<StatusMessage>;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n isActivityMessageVisible: boolean;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n cancelActivityMessage: () => void;\r\n dismissActivityMessage: () => void;\r\n}\r\n\r\n/** Component that renders one or more Toast, Sticky or Activity messages\r\n * @internal\r\n */\r\nexport function StatusMessagesContainer(props: StatusMessagesContainerProps) {\r\n const [containerElement, setContainerElement] = React.useState<HTMLDivElement | null>(null);\r\n const isMountedRef = React.useRef(false);\r\n\r\n React.useEffect(() => {\r\n if (!isMountedRef.current && containerRef.current) {\r\n isMountedRef.current = true;\r\n setContainerElement(containerRef.current);\r\n }\r\n }, []);\r\n\r\n const messages = props.messages;\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const [, height] = useLayoutResizeObserver(containerElement);\r\n const [addScroll, setAddScroll] = React.useState(false);\r\n\r\n React.useLayoutEffect(() => {\r\n // istanbul ignore else\r\n if (containerElement) {\r\n // istanbul ignore next\r\n const windowHeight = containerElement.ownerDocument.defaultView?.innerHeight ?? 800;\r\n const maxHeight = Math.floor(windowHeight * .66);\r\n setAddScroll((height ?? 0) >= maxHeight);\r\n }\r\n }, [height, containerElement]);\r\n\r\n if (!(props.activityMessageInfo && props.isActivityMessageVisible) && props.messages.length === 0)\r\n return null;\r\n\r\n return (\r\n <div ref={containerRef} className={classnames(\"uifw-statusbar-messages-container\", addScroll && \"uifw-scrollable\")}>\r\n <ul className=\"uifw-statusbar-message-list\">\r\n {messages.length > 0 &&\r\n messages.map((message: StatusMessage) => {\r\n let messageNode = null;\r\n if (message.messageDetails.msgType === OutputMessageType.Toast) {\r\n messageNode = (\r\n <li key={message.id}>\r\n <ToastMessage id={message.id} messageDetails={message.messageDetails} severity={message.severity}\r\n closeMessage={props.closeMessage} toastTarget={props.toastTarget} />\r\n </li>\r\n );\r\n } else if (message.messageDetails.msgType === OutputMessageType.Sticky) {\r\n messageNode = (\r\n <li key={message.id}>\r\n <StickyMessage id={message.id} messageDetails={message.messageDetails} severity={message.severity}\r\n closeMessage={props.closeMessage} />\r\n </li>\r\n );\r\n }\r\n return messageNode;\r\n })\r\n }\r\n {(props.activityMessageInfo !== undefined && props.isActivityMessageVisible) &&\r\n <li key=\"activity-message\">\r\n <ActivityMessage\r\n activityMessageInfo={props.activityMessageInfo}\r\n cancelActivityMessage={props.cancelActivityMessage}\r\n dismissActivityMessage={props.dismissActivityMessage}\r\n />\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n );\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"StatusMessagesContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.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 \"./StatusMessagesContainer.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { StatusMessage } from \"./StatusMessageManager\";\r\nimport { ActivityMessageEventArgs } from \"./MessageManager\";\r\nimport { OutputMessageType } from \"@itwin/core-frontend\";\r\nimport { ToastMessage } from \"./ToastMessage\";\r\nimport { StickyMessage } from \"./StickyMessage\";\r\nimport { ActivityMessage } from \"./ActivityMessage\";\r\nimport { useLayoutResizeObserver } from \"@itwin/core-react\";\r\n\r\n/** Properties for [[StatusMessagesContainer]] component\r\n * @internal\r\n */\r\nexport interface StatusMessagesContainerProps {\r\n messages: ReadonlyArray<StatusMessage>;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n isActivityMessageVisible: boolean;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n cancelActivityMessage: () => void;\r\n dismissActivityMessage: () => void;\r\n}\r\n\r\n/** Component that renders one or more Toast, Sticky or Activity messages\r\n * @internal\r\n * @deprecated\r\n */\r\nexport function StatusMessagesContainer(props: StatusMessagesContainerProps) {\r\n const [containerElement, setContainerElement] = React.useState<HTMLDivElement | null>(null);\r\n const isMountedRef = React.useRef(false);\r\n\r\n React.useEffect(() => {\r\n if (!isMountedRef.current && containerRef.current) {\r\n isMountedRef.current = true;\r\n setContainerElement(containerRef.current);\r\n }\r\n }, []);\r\n\r\n const messages = props.messages;\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const [, height] = useLayoutResizeObserver(containerElement);\r\n const [addScroll, setAddScroll] = React.useState(false);\r\n\r\n React.useLayoutEffect(() => {\r\n // istanbul ignore else\r\n if (containerElement) {\r\n // istanbul ignore next\r\n const windowHeight = containerElement.ownerDocument.defaultView?.innerHeight ?? 800;\r\n const maxHeight = Math.floor(windowHeight * .66);\r\n setAddScroll((height ?? 0) >= maxHeight);\r\n }\r\n }, [height, containerElement]);\r\n\r\n if (!(props.activityMessageInfo && props.isActivityMessageVisible) && props.messages.length === 0)\r\n return null;\r\n\r\n return (\r\n <div ref={containerRef} className={classnames(\"uifw-statusbar-messages-container\", addScroll && \"uifw-scrollable\")}>\r\n <ul className=\"uifw-statusbar-message-list\">\r\n {messages.length > 0 &&\r\n messages.map((message: StatusMessage) => {\r\n let messageNode = null;\r\n if (message.messageDetails.msgType === OutputMessageType.Toast) {\r\n messageNode = (\r\n <li key={message.id}>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToastMessage id={message.id} messageDetails={message.messageDetails} severity={message.severity}\r\n closeMessage={props.closeMessage} toastTarget={props.toastTarget} />\r\n </li>\r\n );\r\n } else if (message.messageDetails.msgType === OutputMessageType.Sticky) {\r\n messageNode = (\r\n <li key={message.id}>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <StickyMessage id={message.id} messageDetails={message.messageDetails} severity={message.severity}\r\n closeMessage={props.closeMessage} />\r\n </li>\r\n );\r\n }\r\n return messageNode;\r\n })\r\n }\r\n {(props.activityMessageInfo !== undefined && props.isActivityMessageVisible) &&\r\n <li key=\"activity-message\">\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ActivityMessage\r\n activityMessageInfo={props.activityMessageInfo}\r\n cancelActivityMessage={props.cancelActivityMessage}\r\n dismissActivityMessage={props.dismissActivityMessage}\r\n />\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n );\r\n\r\n}\r\n"]}
@@ -16,6 +16,7 @@ export interface StickyMessageProps {
16
16
  }
17
17
  /** Sticky Message React component
18
18
  * @public
19
+ * @deprecated
19
20
  */
20
21
  export declare function StickyMessage(props: StickyMessageProps): JSX.Element;
21
22
  //# sourceMappingURL=StickyMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StickyMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAIjF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,eAgCtD"}
1
+ {"version":3,"file":"StickyMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,eAgDtD"}
@@ -12,15 +12,15 @@ require("./StickyMessage.scss");
12
12
  const React = require("react");
13
13
  const classnames_1 = require("classnames");
14
14
  const appui_layout_react_1 = require("@itwin/appui-layout-react");
15
- const Toast_1 = require("@itwin/itwinui-react/cjs/core/Toast/Toast");
16
15
  const MessageLabel_1 = require("./MessageLabel");
17
- const getToastCategory_1 = require("./getToastCategory");
16
+ const HollowIcon_1 = require("./HollowIcon");
17
+ const core_react_1 = require("@itwin/core-react");
18
18
  /** Sticky Message React component
19
19
  * @public
20
+ * @deprecated
20
21
  */
21
22
  function StickyMessage(props) {
22
23
  const { id, messageDetails, severity, closeMessage } = props;
23
- const category = (0, getToastCategory_1.getToastCategory)(severity);
24
24
  const [closing, setClosing] = React.useState(false);
25
25
  const handleClose = () => {
26
26
  setClosing(true);
@@ -28,10 +28,12 @@ function StickyMessage(props) {
28
28
  };
29
29
  const classNames = (0, classnames_1.default)("uifw-statusbar-sticky-message", closing && "uifw-closing");
30
30
  return (React.createElement("div", { className: classNames },
31
- React.createElement(Toast_1.ToastPresentation, { category: category, hasCloseButton: true, onClose: handleClose, content: React.createElement(appui_layout_react_1.MessageLayout, null,
31
+ React.createElement(appui_layout_react_1.Message // eslint-disable-line deprecation/deprecation
32
+ , { status: appui_layout_react_1.StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon_1.HollowIcon, { iconSpec: core_react_1.MessageContainer.getIconClassName(severity, true) }) },
33
+ React.createElement(appui_layout_react_1.MessageLayout, { buttons: React.createElement(appui_layout_react_1.MessageButton, { onClick: handleClose, className: "uifw-statusbar-sticky-close" },
34
+ React.createElement(core_react_1.Icon, { iconSpec: "icon-close" })) },
32
35
  React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
33
- messageDetails.detailedMessage &&
34
- React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" })) })));
36
+ messageDetails.detailedMessage && (React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))))));
35
37
  }
36
38
  exports.StickyMessage = StickyMessage;
37
39
  //# sourceMappingURL=StickyMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,gCAA8B;AAC9B,+BAA+B;AAC/B,2CAAoC;AAEpC,kEAA0D;AAC1D,qEAA8E;AAE9E,iDAA8C;AAC9C,yDAAsD;AAYtD;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAA,mCAAgB,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,+BAA+B,EAC/B,OAAO,IAAI,cAAc,CAC1B,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU;QACxB,oBAAC,yBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,IAAI,EACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EACL,oBAAC,kCAAa;gBACZ,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,GAElB,CACE,CACP,CAAC;AACJ,CAAC;AAhCD,sCAgCC","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 \"./StickyMessage.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport { MessageLayout } from \"@itwin/appui-layout-react\";\r\nimport { ToastPresentation } from \"@itwin/itwinui-react/cjs/core/Toast/Toast\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { getToastCategory } from \"./getToastCategory\";\r\n\r\n/** Properties for a [[StickyMessage]]\r\n * @public\r\n */\r\nexport interface StickyMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Sticky Message React component\r\n * @public\r\n */\r\nexport function StickyMessage(props: StickyMessageProps) {\r\n const { id, messageDetails, severity, closeMessage } = props;\r\n const category = getToastCategory(severity);\r\n const [closing, setClosing] = React.useState(false);\r\n\r\n const handleClose = () => {\r\n setClosing(true);\r\n setTimeout(() => closeMessage(id), 500);\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-statusbar-sticky-message\",\r\n closing && \"uifw-closing\",\r\n );\r\n\r\n return (\r\n <div className={classNames}>\r\n <ToastPresentation\r\n category={category}\r\n hasCloseButton={true}\r\n onClose={handleClose}\r\n content={\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,gCAA8B;AAC9B,+BAA+B;AAC/B,2CAAoC;AAEpC,kEAKmC;AAEnC,iDAA8C;AAC9C,6CAA0C;AAC1C,kDAA2D;AAY3D;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,+BAA+B,EAC/B,OAAO,IAAI,cAAc,CAC1B,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU;QACxB,oBAAC,4BAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,kCAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,uBAAU,IACT,QAAQ,EAAE,6BAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,kCAAa,IACZ,OAAO,EACL,oBAAC,kCAAa,IACZ,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,6BAA6B;oBAEvC,oBAAC,iBAAI,IAAC,QAAQ,EAAC,YAAY,GAAG,CAChB;gBAGlB,oBAAC,2BAAY,IACX,OAAO,EAAE,cAAc,CAAC,YAAY,EACpC,SAAS,EAAC,8BAA8B,GACxC;gBACD,cAAc,CAAC,eAAe,IAAI,CACjC,oBAAC,2BAAY,IACX,OAAO,EAAE,cAAc,CAAC,eAAe,EACvC,SAAS,EAAC,iCAAiC,GAC3C,CACH,CACa,CACR,CACN,CACP,CAAC;AACJ,CAAC;AAhDD,sCAgDC","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 \"./StickyMessage.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageButton,\r\n MessageLayout,\r\n StatusHelpers,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { Icon, MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[StickyMessage]]\r\n * @public\r\n */\r\nexport interface StickyMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Sticky Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function StickyMessage(props: StickyMessageProps) {\r\n const { id, messageDetails, severity, closeMessage } = props;\r\n const [closing, setClosing] = React.useState(false);\r\n\r\n const handleClose = () => {\r\n setClosing(true);\r\n setTimeout(() => closeMessage(id), 500);\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-statusbar-sticky-message\",\r\n closing && \"uifw-closing\",\r\n );\r\n\r\n return (\r\n <div className={classNames}>\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout\r\n buttons={\r\n <MessageButton\r\n onClick={handleClose}\r\n className=\"uifw-statusbar-sticky-close\"\r\n >\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n }\r\n >\r\n <MessageLabel\r\n message={messageDetails.briefMessage}\r\n className=\"uifw-statusbar-message-brief\"\r\n />\r\n {messageDetails.detailedMessage && (\r\n <MessageLabel\r\n message={messageDetails.detailedMessage}\r\n className=\"uifw-statusbar-message-detailed\"\r\n />\r\n )}\r\n </MessageLayout>\r\n </Message>\r\n </div>\r\n );\r\n}\r\n"]}
@@ -16,6 +16,7 @@ export interface ToastMessageProps {
16
16
  }
17
17
  /** Toast Message React component
18
18
  * @public
19
+ * @deprecated
19
20
  */
20
21
  export declare function ToastMessage(props: ToastMessageProps): JSX.Element;
21
22
  //# sourceMappingURL=ToastMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAIjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eAwBpD"}
1
+ {"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eA2BpD"}
@@ -10,20 +10,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.ToastMessage = void 0;
11
11
  const React = require("react");
12
12
  const appui_layout_react_1 = require("@itwin/appui-layout-react");
13
- const Toast_1 = require("@itwin/itwinui-react/cjs/core/Toast/Toast");
14
13
  const MessageLabel_1 = require("./MessageLabel");
15
- const getToastCategory_1 = require("./getToastCategory");
14
+ const HollowIcon_1 = require("./HollowIcon");
15
+ const core_react_1 = require("@itwin/core-react");
16
16
  /** Toast Message React component
17
17
  * @public
18
+ * @deprecated
18
19
  */
19
20
  function ToastMessage(props) {
20
21
  const { id, messageDetails, severity, toastTarget, closeMessage } = props;
21
- const category = (0, getToastCategory_1.getToastCategory)(severity);
22
22
  return (React.createElement(appui_layout_react_1.Toast // eslint-disable-line deprecation/deprecation
23
- , { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(Toast_1.ToastPresentation, { category: category, content: React.createElement(appui_layout_react_1.MessageLayout, null,
23
+ , { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(appui_layout_react_1.Message // eslint-disable-line deprecation/deprecation
24
+ , { status: appui_layout_react_1.StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon_1.HollowIcon, { iconSpec: core_react_1.MessageContainer.getIconClassName(severity, true) }) },
25
+ React.createElement(appui_layout_react_1.MessageLayout, null,
24
26
  React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
25
27
  messageDetails.detailedMessage &&
26
- React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" })) }) }));
28
+ React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))) }));
27
29
  }
28
30
  exports.ToastMessage = ToastMessage;
29
31
  //# sourceMappingURL=ToastMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,kEAAiE;AACjE,qEAA8E;AAE9E,iDAA8C;AAC9C,yDAAsD;AAatD;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAA,mCAAgB,EAAC,QAAQ,CAAC,CAAC;IAE5C,OAAO,CACL,oBAAC,0BAAK,CAAC,8CAA8C;QACnD,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY,EAChD,OAAO,EACL,oBAAC,yBAAiB,IAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EACL,oBAAC,kCAAa;gBACZ,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,GAElB,GAEJ,CACH,CAAC;AACJ,CAAC;AAxBD,oCAwBC","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 * as React from \"react\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport { MessageLayout, Toast } from \"@itwin/appui-layout-react\";\r\nimport { ToastPresentation } from \"@itwin/itwinui-react/cjs/core/Toast/Toast\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { getToastCategory } from \"./getToastCategory\";\r\n\r\n/** Properties for a [[ToastMessage]]\r\n * @public\r\n */\r\nexport interface ToastMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Toast Message React component\r\n * @public\r\n */\r\nexport function ToastMessage(props: ToastMessageProps) {\r\n const { id, messageDetails, severity, toastTarget, closeMessage } = props;\r\n const category = getToastCategory(severity);\r\n\r\n return (\r\n <Toast // eslint-disable-line deprecation/deprecation\r\n animateOutTo={toastTarget}\r\n onAnimatedOut={() => closeMessage(id)}\r\n timeout={messageDetails.displayTime.milliseconds}\r\n content={\r\n <ToastPresentation\r\n category={category}\r\n content={\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n }\r\n />\r\n }\r\n />\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,kEAKmC;AAEnC,iDAA8C;AAC9C,6CAA0C;AAC1C,kDAAqD;AAarD;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE1E,OAAO,CACL,oBAAC,0BAAK,CAAC,8CAA8C;QACnD,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY,EAChD,OAAO,EACL,oBAAC,4BAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,kCAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,uBAAU,IACT,QAAQ,EAAE,6BAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,kCAAa;gBACZ,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,CACR,GAEZ,CACH,CAAC;AACJ,CAAC;AA3BD,oCA2BC","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 * as React from \"react\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageLayout,\r\n StatusHelpers,\r\n Toast,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[ToastMessage]]\r\n * @public\r\n */\r\nexport interface ToastMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Toast Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function ToastMessage(props: ToastMessageProps) {\r\n const { id, messageDetails, severity, toastTarget, closeMessage } = props;\r\n\r\n return (\r\n <Toast // eslint-disable-line deprecation/deprecation\r\n animateOutTo={toastTarget}\r\n onAnimatedOut={() => closeMessage(id)}\r\n timeout={messageDetails.displayTime.milliseconds}\r\n content={\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n </Message>\r\n }\r\n />\r\n );\r\n}\r\n"]}
@@ -3,5 +3,5 @@
3
3
  */
4
4
  import { MessageSeverity } from "@itwin/appui-abstract";
5
5
  /** @internal */
6
- export declare function getToastCategory(severity: MessageSeverity): "informational" | "warning" | "negative" | "positive";
6
+ export declare function getToastCategory(severity: MessageSeverity): "positive" | "negative" | "informational" | "warning";
7
7
  //# sourceMappingURL=getToastCategory.d.ts.map
@@ -6,16 +6,12 @@ import * as React from "react";
6
6
  import { CommonDivProps, CommonProps } from "@itwin/core-react";
7
7
  import { ActivityMessageEventArgs } from "../messages/MessageManager";
8
8
  import { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from "./StatusBarWidgetControl";
9
- import { StatusMessage } from "../messages/StatusMessageManager";
10
9
  /** State for the [[StatusBar]] React component
11
10
  * @internal
12
11
  */
13
12
  interface StatusBarState {
14
13
  openWidget: StatusBarFieldId;
15
- messages: ReadonlyArray<StatusMessage>;
16
14
  activityMessageInfo: ActivityMessageEventArgs | undefined;
17
- isActivityMessageVisible: boolean;
18
- toastTarget: HTMLElement | null;
19
15
  }
20
16
  /** Properties for the [[StatusBar]] React component
21
17
  * @public
@@ -28,12 +24,14 @@ export interface StatusBarProps extends CommonProps {
28
24
  * @public
29
25
  */
30
26
  export declare class StatusBar extends React.Component<StatusBarProps, StatusBarState> {
27
+ private messages;
31
28
  /** @internal */
32
29
  constructor(props: StatusBarProps);
33
30
  render(): React.ReactNode;
34
31
  componentDidMount(): void;
35
32
  componentWillUnmount(): void;
36
33
  private _handleMessageAddedEvent;
34
+ private _updateMessages;
37
35
  /** Respond to clearing the message list */
38
36
  private _handleMessagesUpdatedEvent;
39
37
  /**
@@ -50,10 +48,6 @@ export declare class StatusBar extends React.Component<StatusBarProps, StatusBar
50
48
  * Ends canceled process and dismisses ActivityMessage
51
49
  */
52
50
  private _cancelActivityMessage;
53
- /**
54
- * Dismisses ActivityMessage
55
- */
56
- private _dismissActivityMessage;
57
51
  private _handleOpenWidget;
58
52
  private _closeMessage;
59
53
  private _handleToastTargetRef;
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAKjE;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC1D,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAE5E,gBAAgB;gBACJ,KAAK,EAAE,cAAc;IAYjB,MAAM,IAAI,KAAK,CAAC,SAAS;IAuCzB,iBAAiB;IAUjB,oBAAoB;IAOpC,OAAO,CAAC,wBAAwB,CAE9B;IAEF,2CAA2C;IAC3C,OAAO,CAAC,2BAA2B,CAEjC;IAEF;;;OAGG;IACH,OAAO,CAAC,kCAAkC,CAKxC;IAEF;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAI1C;IAEF,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAG5B;IAEF;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAI7B;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,qBAAqB,CAE3B;CACH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,eAGzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,eAG3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,2CAK3B,CAAC"}
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAKhH;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;CACzB;AAUD;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAA0B;IAE1C,gBAAgB;gBACJ,KAAK,EAAE,cAAc;IASjB,MAAM,IAAI,KAAK,CAAC,SAAS;IAuCzB,iBAAiB;IASjB,oBAAoB;IAOpC,OAAO,CAAC,wBAAwB,CAQ9B;IAEF,OAAO,CAAC,eAAe,CAUrB;IAEF,2CAA2C;IAC3C,OAAO,CAAC,2BAA2B,CAEjC;IAEF;;;OAGG;IACH,OAAO,CAAC,kCAAkC,CAIxC;IAEF;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAI1C;IAEF,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAE5B;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,qBAAqB,CAE3B;CACH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,eAGzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,eAG3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,2CAK3B,CAAC"}
@@ -15,7 +15,7 @@ const appui_layout_react_1 = require("@itwin/appui-layout-react");
15
15
  const MessageManager_1 = require("../messages/MessageManager");
16
16
  const SafeAreaContext_1 = require("../safearea/SafeAreaContext");
17
17
  const UiShowHideManager_1 = require("../utils/UiShowHideManager");
18
- const StatusMessagesContainer_1 = require("../messages/StatusMessagesContainer");
18
+ const ActivityMessage_1 = require("../messages/ActivityMessage");
19
19
  /** Status Bar React component.
20
20
  * @public
21
21
  */
@@ -23,29 +23,46 @@ class StatusBar extends React.Component {
23
23
  /** @internal */
24
24
  constructor(props) {
25
25
  super(props);
26
+ this.messages = [];
26
27
  this._handleMessageAddedEvent = (_args) => {
27
- this.setState({ messages: MessageManager_1.MessageManager.activeMessageManager.messages });
28
+ this._updateMessages();
29
+ const messagesToAdd = MessageManager_1.MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));
30
+ messagesToAdd.forEach((msg) => {
31
+ const displayedMessage = MessageManager_1.MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });
32
+ if (!!displayedMessage)
33
+ this.messages.push({ close: displayedMessage.close, id: msg.id });
34
+ });
35
+ };
36
+ this._updateMessages = () => {
37
+ const updatedMessages = [...this.messages];
38
+ this.messages.forEach((m) => {
39
+ if (!MessageManager_1.MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {
40
+ m.close();
41
+ const index = updatedMessages.findIndex((msg) => msg.id === m.id);
42
+ updatedMessages.splice(index, 1);
43
+ }
44
+ });
45
+ this.messages = updatedMessages;
28
46
  };
29
47
  /** Respond to clearing the message list */
30
48
  this._handleMessagesUpdatedEvent = () => {
31
- this.setState({ messages: MessageManager_1.MessageManager.activeMessageManager.messages });
49
+ this._updateMessages();
32
50
  };
33
51
  /**
34
52
  * Sets state of the status bar to updated values reflecting activity progress.
35
53
  * @param args New values to set for ActivityMessage
36
54
  */
37
55
  this._handleActivityMessageUpdatedEvent = (args) => {
38
- this.setState((prevState) => ({
56
+ this.setState({
39
57
  activityMessageInfo: args,
40
- isActivityMessageVisible: args.restored ? true : prevState.isActivityMessageVisible,
41
- }));
58
+ });
42
59
  };
43
60
  /**
44
61
  * Hides ActivityMessage after cancellation
45
62
  */
46
63
  this._handleActivityMessageCancelledEvent = () => {
47
64
  this.setState({
48
- isActivityMessageVisible: false,
65
+ activityMessageInfo: undefined,
49
66
  });
50
67
  };
51
68
  /**
@@ -53,15 +70,6 @@ class StatusBar extends React.Component {
53
70
  */
54
71
  this._cancelActivityMessage = () => {
55
72
  MessageManager_1.MessageManager.endActivityMessage(false);
56
- this._dismissActivityMessage();
57
- };
58
- /**
59
- * Dismisses ActivityMessage
60
- */
61
- this._dismissActivityMessage = () => {
62
- this.setState({
63
- isActivityMessageVisible: false,
64
- });
65
73
  };
66
74
  this._handleOpenWidget = (openWidget) => {
67
75
  this.setState({
@@ -73,14 +81,11 @@ class StatusBar extends React.Component {
73
81
  MessageManager_1.MessageManager.updateMessages();
74
82
  };
75
83
  this._handleToastTargetRef = (toastTarget) => {
76
- this.setState({ toastTarget });
84
+ MessageManager_1.MessageManager.registerAnimateOutToElement(toastTarget);
77
85
  };
78
86
  this.state = {
79
87
  openWidget: null,
80
- messages: MessageManager_1.MessageManager.activeMessageManager.messages,
81
88
  activityMessageInfo: undefined,
82
- isActivityMessageVisible: false,
83
- toastTarget: null,
84
89
  };
85
90
  }
86
91
  render() {
@@ -109,7 +114,6 @@ class StatusBar extends React.Component {
109
114
  MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);
110
115
  MessageManager_1.MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);
111
116
  MessageManager_1.MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);
112
- MessageManager_1.MessageManager.activeMessageManager.initialize();
113
117
  MessageManager_1.MessageManager.updateMessages();
114
118
  }
115
119
  componentWillUnmount() {
@@ -119,9 +123,7 @@ class StatusBar extends React.Component {
119
123
  MessageManager_1.MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);
120
124
  }
121
125
  getFooterMessages() {
122
- if (!(this.state.activityMessageInfo && this.state.isActivityMessageVisible) && this.state.messages.length === 0)
123
- return null;
124
- return (React.createElement(StatusMessagesContainer_1.StatusMessagesContainer, { messages: this.state.messages, activityMessageInfo: this.state.activityMessageInfo, isActivityMessageVisible: this.state.isActivityMessageVisible, toastTarget: this.state.toastTarget, closeMessage: this._closeMessage, cancelActivityMessage: this._cancelActivityMessage, dismissActivityMessage: this._dismissActivityMessage }));
126
+ return (React.createElement(ActivityMessage_1.CustomActivityMessageRenderer, { settings: { placement: "bottom" }, activityMessageInfo: this.state.activityMessageInfo, cancelActivityMessage: this._cancelActivityMessage }));
125
127
  }
126
128
  }
127
129
  exports.StatusBar = StatusBar;
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.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 StatusBar\r\n */\r\n\r\nimport \"./StatusBar.scss\";\r\nimport * as React from \"react\";\r\nimport { CommonDivProps, CommonProps, Div } from \"@itwin/core-react\";\r\nimport { Footer } from \"@itwin/appui-layout-react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from \"./StatusBarWidgetControl\";\r\nimport { StatusMessage } from \"../messages/StatusMessageManager\";\r\nimport { StatusMessagesContainer } from \"../messages/StatusMessagesContainer\";\r\n\r\n// cspell:ignore safearea\r\n\r\n/** State for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarState {\r\n openWidget: StatusBarFieldId;\r\n messages: ReadonlyArray<StatusMessage>;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n isActivityMessageVisible: boolean;\r\n toastTarget: HTMLElement | null;\r\n}\r\n\r\n/** Properties for the [[StatusBar]] React component\r\n * @public\r\n */\r\nexport interface StatusBarProps extends CommonProps {\r\n widgetControl?: StatusBarWidgetControl;\r\n isInFooterMode: boolean;\r\n}\r\n\r\n/** Status Bar React component.\r\n * @public\r\n */\r\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\r\n\r\n /** @internal */\r\n constructor(props: StatusBarProps) {\r\n super(props);\r\n\r\n this.state = {\r\n openWidget: null,\r\n messages: MessageManager.activeMessageManager.messages,\r\n activityMessageInfo: undefined,\r\n isActivityMessageVisible: false,\r\n toastTarget: null,\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let footerSections: React.ReactNode = null;\r\n const widgetControl = this.props.widgetControl;\r\n\r\n // istanbul ignore else\r\n if (widgetControl && widgetControl.getReactNode) {\r\n footerSections = widgetControl.getReactNode({\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n });\r\n }\r\n\r\n return (\r\n <StatusBarContext.Provider value={{\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n }}>\r\n <SafeAreaContext.Consumer>\r\n {(safeAreaInsets) => (\r\n <Footer // eslint-disable-line deprecation/deprecation\r\n className={this.props.className}\r\n messages={this.getFooterMessages()}\r\n isInFooterMode={this.props.isInFooterMode}\r\n onMouseEnter={UiShowHideManager.handleWidgetMouseEnter}\r\n safeAreaInsets={safeAreaInsets}\r\n style={this.props.style}\r\n >\r\n {footerSections}\r\n </Footer>\r\n )}\r\n </SafeAreaContext.Consumer>\r\n </StatusBarContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);\r\n\r\n MessageManager.activeMessageManager.initialize();\r\n MessageManager.updateMessages();\r\n }\r\n\r\n public override componentWillUnmount() {\r\n MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);\r\n }\r\n\r\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\r\n this.setState({ messages: MessageManager.activeMessageManager.messages });\r\n };\r\n\r\n /** Respond to clearing the message list */\r\n private _handleMessagesUpdatedEvent = () => {\r\n this.setState({ messages: MessageManager.activeMessageManager.messages });\r\n };\r\n\r\n /**\r\n * Sets state of the status bar to updated values reflecting activity progress.\r\n * @param args New values to set for ActivityMessage\r\n */\r\n private _handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n this.setState((prevState) => ({\r\n activityMessageInfo: args,\r\n isActivityMessageVisible: args.restored ? true : prevState.isActivityMessageVisible,\r\n }));\r\n };\r\n\r\n /**\r\n * Hides ActivityMessage after cancellation\r\n */\r\n private _handleActivityMessageCancelledEvent = () => {\r\n this.setState({\r\n isActivityMessageVisible: false,\r\n });\r\n };\r\n\r\n private getFooterMessages(): React.ReactNode {\r\n if (!(this.state.activityMessageInfo && this.state.isActivityMessageVisible) && this.state.messages.length === 0)\r\n return null;\r\n\r\n return (\r\n <StatusMessagesContainer\r\n messages={this.state.messages}\r\n activityMessageInfo={this.state.activityMessageInfo}\r\n isActivityMessageVisible={this.state.isActivityMessageVisible}\r\n toastTarget={this.state.toastTarget}\r\n closeMessage={this._closeMessage}\r\n cancelActivityMessage={this._cancelActivityMessage}\r\n dismissActivityMessage={this._dismissActivityMessage}\r\n />\r\n );\r\n }\r\n\r\n /**\r\n * Ends canceled process and dismisses ActivityMessage\r\n */\r\n private _cancelActivityMessage = () => {\r\n MessageManager.endActivityMessage(false);\r\n this._dismissActivityMessage();\r\n };\r\n\r\n /**\r\n * Dismisses ActivityMessage\r\n */\r\n private _dismissActivityMessage = () => {\r\n this.setState({\r\n isActivityMessageVisible: false,\r\n });\r\n };\r\n\r\n private _handleOpenWidget = (openWidget: StatusBarFieldId) => {\r\n this.setState({\r\n openWidget,\r\n });\r\n };\r\n\r\n private _closeMessage = (id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n };\r\n\r\n private _handleToastTargetRef = (toastTarget: HTMLElement | null) => {\r\n this.setState({ toastTarget });\r\n };\r\n}\r\n\r\n/** StatusBar With Space Between Items React functional component\r\n * @public\r\n */\r\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-space-between\"} />;\r\n}\r\n\r\n/** StatusBar Left Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarLeftSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-left\"} />;\r\n}\r\n\r\n/** StatusBar Center Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarCenterSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-center\"} />;\r\n}\r\n\r\n/** StatusBar Right Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarRightSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-right\"} />;\r\n}\r\n\r\n/** Context providing values for StatusFieldProps and MessageCenterFieldProps\r\n * @internal\r\n */\r\nexport const StatusBarContext = React.createContext<StatusBarWidgetControlArgs>({ // eslint-disable-line @typescript-eslint/naming-convention\r\n isInFooterMode: true,\r\n onOpenWidget: /* istanbul ignore next */ () => { },\r\n openWidget: \"\",\r\n toastTargetRef: { current: null },\r\n});\r\n"]}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4BAA0B;AAC1B,+BAA+B;AAC/B,kDAAqE;AACrE,kEAAmD;AACnD,+DAA6G;AAC7G,iEAA8D;AAC9D,kEAA+D;AAE/D,iEAA4E;AA4B5E;;GAEG;AACH,MAAa,SAAU,SAAQ,KAAK,CAAC,SAAyC;IAG5E,gBAAgB;IAChB,YAAY,KAAqB;QAC/B,KAAK,CAAC,KAAK,CAAC,CAAC;QAJP,aAAQ,GAAuB,EAAE,CAAC;QAmElC,6BAAwB,GAAG,CAAC,KAA4B,EAAE,EAAE;YAClE,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,+BAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAChI,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5B,MAAM,gBAAgB,GAAG,+BAAc,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3H,IAAG,CAAC,CAAC,gBAAgB;oBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAC,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1B,IAAI,CAAC,+BAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE;oBAChF,CAAC,CAAC,KAAK,EAAE,CAAC;oBACV,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClE,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;QAClC,CAAC,CAAC;QAEF,2CAA2C;QACnC,gCAA2B,GAAG,GAAG,EAAE;YACzC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;QAEF;;;WAGG;QACK,uCAAkC,GAAG,CAAC,IAA8B,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,CAAC;gBACZ,mBAAmB,EAAE,IAAI;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;WAEG;QACK,yCAAoC,GAAG,GAAG,EAAE;YAClD,IAAI,CAAC,QAAQ,CAAC;gBACZ,mBAAmB,EAAE,SAAS;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC;QAQF;;WAEG;QACK,2BAAsB,GAAG,GAAG,EAAE;YACpC,+BAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,UAA4B,EAAE,EAAE;YAC3D,IAAI,CAAC,QAAQ,CAAC;gBACZ,UAAU;aACX,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,EAAU,EAAE,EAAE;YACrC,+BAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/C,+BAAc,CAAC,cAAc,EAAE,CAAC;QAClC,CAAC,CAAC;QAEM,0BAAqB,GAAG,CAAC,WAA+B,EAAE,EAAE;YAClE,+BAAc,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC;QArIA,IAAI,CAAC,KAAK,GAAG;YACX,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,SAAS;SAC/B,CAAC;IACJ,CAAC;IAEe,MAAM;QACpB,IAAI,cAAc,GAAoB,IAAI,CAAC;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAE/C,uBAAuB;QACvB,IAAI,aAAa,IAAI,aAAa,CAAC,YAAY,EAAE;YAC/C,cAAc,GAAG,aAAa,CAAC,YAAY,CAAC;gBAC1C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;gBACzC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;gBACjC,cAAc,EAAE,IAAI,CAAC,qBAAqB;gBAC1C,YAAY,EAAE,IAAI,CAAC,iBAAiB;aACrC,CAAC,CAAC;SACJ;QAED,OAAO,CACL,oBAAC,wBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE;gBAChC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;gBACzC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;gBACjC,cAAc,EAAE,IAAI,CAAC,qBAAqB;gBAC1C,YAAY,EAAE,IAAI,CAAC,iBAAiB;aACrC;YACC,oBAAC,iCAAe,CAAC,QAAQ,QACtB,CAAC,cAAc,EAAE,EAAE,CAAC,CACnB,oBAAC,2BAAM,CAAC,8CAA8C;gBACpD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAClC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACzC,YAAY,EAAE,qCAAiB,CAAC,sBAAsB,EACtD,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAEtB,cAAc,CACR,CACV,CACwB,CACD,CAC7B,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,+BAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9E,+BAAc,CAAC,6BAA6B,CAAC,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAClG,+BAAc,CAAC,+BAA+B,CAAC,WAAW,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACtG,+BAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEpF,+BAAc,CAAC,cAAc,EAAE,CAAC;IAClC,CAAC;IAEe,oBAAoB;QAClC,+BAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACjF,+BAAc,CAAC,6BAA6B,CAAC,cAAc,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACrG,+BAAc,CAAC,+BAA+B,CAAC,cAAc,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACzG,+BAAc,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACzF,CAAC;IAgDO,iBAAiB;QACvB,OAAO,CACL,oBAAC,+CAA6B,IAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,GAAI,CAC5K,CAAC;IACJ,CAAC;CAuBF;AA7ID,8BA6IC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAqB;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,oBAAC,gBAAG,OAAK,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,GAAI,CAAC;AACtG,CAAC;AAHD,sDAGC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,KAAqB;IACxD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,oBAAC,gBAAG,OAAK,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,GAAI,CAAC;AAC7F,CAAC;AAHD,oDAGC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,KAAqB;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,oBAAC,gBAAG,OAAK,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,GAAI,CAAC;AAC/F,CAAC;AAHD,wDAGC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAqB;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACzC,OAAO,oBAAC,gBAAG,OAAK,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,GAAI,CAAC;AAC9F,CAAC;AAHD,sDAGC;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAA6B;IAC9E,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC;IAClD,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAClC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./StatusBar.scss\";\r\nimport * as React from \"react\";\r\nimport { CommonDivProps, CommonProps, Div } from \"@itwin/core-react\";\r\nimport { Footer } from \"@itwin/appui-layout-react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from \"./StatusBarWidgetControl\";\r\nimport { CustomActivityMessageRenderer } from \"../messages/ActivityMessage\";\r\n\r\n// cspell:ignore safearea\r\n\r\n/** State for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarState {\r\n openWidget: StatusBarFieldId;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n}\r\n\r\n/** Properties for the [[StatusBar]] React component\r\n * @public\r\n */\r\nexport interface StatusBarProps extends CommonProps {\r\n widgetControl?: StatusBarWidgetControl;\r\n isInFooterMode: boolean;\r\n}\r\n\r\n/** Message type for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarMessage {\r\n close: () => void;\r\n id: string;\r\n}\r\n\r\n/** Status Bar React component.\r\n * @public\r\n */\r\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\r\n private messages: StatusBarMessage[] = [];\r\n\r\n /** @internal */\r\n constructor(props: StatusBarProps) {\r\n super(props);\r\n\r\n this.state = {\r\n openWidget: null,\r\n activityMessageInfo: undefined,\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let footerSections: React.ReactNode = null;\r\n const widgetControl = this.props.widgetControl;\r\n\r\n // istanbul ignore else\r\n if (widgetControl && widgetControl.getReactNode) {\r\n footerSections = widgetControl.getReactNode({\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n });\r\n }\r\n\r\n return (\r\n <StatusBarContext.Provider value={{\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n }}>\r\n <SafeAreaContext.Consumer>\r\n {(safeAreaInsets) => (\r\n <Footer // eslint-disable-line deprecation/deprecation\r\n className={this.props.className}\r\n messages={this.getFooterMessages()}\r\n isInFooterMode={this.props.isInFooterMode}\r\n onMouseEnter={UiShowHideManager.handleWidgetMouseEnter}\r\n safeAreaInsets={safeAreaInsets}\r\n style={this.props.style}\r\n >\r\n {footerSections}\r\n </Footer>\r\n )}\r\n </SafeAreaContext.Consumer>\r\n </StatusBarContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);\r\n\r\n MessageManager.updateMessages();\r\n }\r\n\r\n public override componentWillUnmount() {\r\n MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);\r\n }\r\n\r\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\r\n this._updateMessages();\r\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));\r\n messagesToAdd.forEach((msg) => {\r\n const displayedMessage = MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });\r\n if(!!displayedMessage)\r\n this.messages.push({close: displayedMessage.close, id: msg.id});\r\n });\r\n };\r\n\r\n private _updateMessages = () => {\r\n const updatedMessages = [...this.messages];\r\n this.messages.forEach((m) => {\r\n if (!MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {\r\n m.close();\r\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\r\n updatedMessages.splice(index, 1);\r\n }\r\n });\r\n this.messages = updatedMessages;\r\n };\r\n\r\n /** Respond to clearing the message list */\r\n private _handleMessagesUpdatedEvent = () => {\r\n this._updateMessages();\r\n };\r\n\r\n /**\r\n * Sets state of the status bar to updated values reflecting activity progress.\r\n * @param args New values to set for ActivityMessage\r\n */\r\n private _handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n this.setState({\r\n activityMessageInfo: args,\r\n });\r\n };\r\n\r\n /**\r\n * Hides ActivityMessage after cancellation\r\n */\r\n private _handleActivityMessageCancelledEvent = () => {\r\n this.setState({\r\n activityMessageInfo: undefined,\r\n });\r\n };\r\n\r\n private getFooterMessages(): React.ReactNode {\r\n return (\r\n <CustomActivityMessageRenderer settings={{placement: \"bottom\"}} activityMessageInfo={this.state.activityMessageInfo} cancelActivityMessage={this._cancelActivityMessage} />\r\n );\r\n }\r\n\r\n /**\r\n * Ends canceled process and dismisses ActivityMessage\r\n */\r\n private _cancelActivityMessage = () => {\r\n MessageManager.endActivityMessage(false);\r\n };\r\n\r\n private _handleOpenWidget = (openWidget: StatusBarFieldId) => {\r\n this.setState({\r\n openWidget,\r\n });\r\n };\r\n\r\n private _closeMessage = (id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n };\r\n\r\n private _handleToastTargetRef = (toastTarget: HTMLElement | null) => {\r\n MessageManager.registerAnimateOutToElement(toastTarget);\r\n };\r\n}\r\n\r\n/** StatusBar With Space Between Items React functional component\r\n * @public\r\n */\r\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-space-between\"} />;\r\n}\r\n\r\n/** StatusBar Left Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarLeftSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-left\"} />;\r\n}\r\n\r\n/** StatusBar Center Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarCenterSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-center\"} />;\r\n}\r\n\r\n/** StatusBar Right Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarRightSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-right\"} />;\r\n}\r\n\r\n/** Context providing values for StatusFieldProps and MessageCenterFieldProps\r\n * @internal\r\n */\r\nexport const StatusBarContext = React.createContext<StatusBarWidgetControlArgs>({ // eslint-disable-line @typescript-eslint/naming-convention\r\n isInFooterMode: true,\r\n onOpenWidget: /* istanbul ignore next */ () => { },\r\n openWidget: \"\",\r\n toastTargetRef: { current: null },\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,oCAAoC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;IAClG,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,uBAAuB;IAetC,gBAAgB;IACA,iBAAiB;IAKjC,gBAAgB;IACA,oBAAoB;IAapC,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAwDzC,OAAO,CAAC,gBAAgB,CAMtB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,mBAAmB,CAOzB;IAEF,OAAO,CAAC,4BAA4B,CAOlC;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;CAKtB"}
1
+ {"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,oCAAoC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;IAClG,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,uBAAuB;IAetC,gBAAgB;IACA,iBAAiB;IAMjC,gBAAgB;IACA,oBAAoB;IAapC,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAwDzC,OAAO,CAAC,gBAAgB,CAMtB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,mBAAmB,CAOzB;IAEF,OAAO,CAAC,4BAA4B,CAOlC;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;CAKtB"}