@microsoft/omnichannel-chat-widget 1.3.1-main.da9dc59 → 1.4.1-main.22cb7d3

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 (74) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/assets/Icons.js +8 -2
  3. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +2 -22
  4. package/lib/cjs/common/utils.js +19 -2
  5. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -1
  6. package/lib/cjs/components/livechatwidget/common/createAdapter.js +5 -0
  7. package/lib/cjs/components/livechatwidget/common/endChat.js +77 -17
  8. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +6 -0
  9. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +1 -1
  10. package/lib/cjs/components/livechatwidget/common/renderSurveyHelpers.js +11 -9
  11. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +52 -33
  12. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +5 -2
  13. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +32 -13
  14. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +6 -3
  15. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +3 -0
  16. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +1 -0
  17. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +40 -101
  18. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Attachment.js +92 -0
  19. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentContent.js +17 -0
  20. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentIcon.js +21 -0
  21. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/DownloadBlockedAttachment.js +36 -0
  22. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/FileScanStatus.js +14 -0
  23. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/MaliciousAttachment.js +24 -0
  24. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/ScanInProgressAttachment.js +24 -0
  25. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Spinner.js +41 -0
  26. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +1 -0
  27. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -1
  28. package/lib/cjs/contexts/createReducer.js +8 -0
  29. package/lib/esm/assets/Icons.js +4 -1
  30. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +2 -22
  31. package/lib/esm/common/utils.js +16 -0
  32. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +5 -2
  33. package/lib/esm/components/livechatwidget/common/createAdapter.js +5 -0
  34. package/lib/esm/components/livechatwidget/common/endChat.js +76 -20
  35. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +6 -0
  36. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +1 -1
  37. package/lib/esm/components/livechatwidget/common/renderSurveyHelpers.js +11 -9
  38. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +55 -36
  39. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +6 -3
  40. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +32 -13
  41. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +6 -3
  42. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +3 -0
  43. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +1 -0
  44. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +36 -96
  45. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Attachment.js +84 -0
  46. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentContent.js +9 -0
  47. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentIcon.js +13 -0
  48. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/DownloadBlockedAttachment.js +28 -0
  49. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/FileScanStatus.js +7 -0
  50. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/MaliciousAttachment.js +16 -0
  51. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/ScanInProgressAttachment.js +16 -0
  52. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Spinner.js +33 -0
  53. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +1 -0
  54. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -1
  55. package/lib/esm/contexts/createReducer.js +8 -0
  56. package/lib/types/assets/Icons.d.ts +3 -0
  57. package/lib/types/common/utils.d.ts +9 -0
  58. package/lib/types/components/livechatwidget/common/endChat.d.ts +6 -2
  59. package/lib/types/components/livechatwidget/common/renderSurveyHelpers.d.ts +1 -1
  60. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  61. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  62. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.d.ts +1 -0
  63. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Attachment.d.ts +2 -0
  64. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentContent.d.ts +2 -0
  65. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentIcon.d.ts +2 -0
  66. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/DownloadBlockedAttachment.d.ts +2 -0
  67. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/FileScanStatus.d.ts +6 -0
  68. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/MaliciousAttachment.d.ts +2 -0
  69. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/ScanInProgressAttachment.d.ts +2 -0
  70. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Spinner.d.ts +2 -0
  71. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -1
  72. package/lib/types/contexts/common/ILiveChatWidgetLocalizedTexts.d.ts +16 -0
  73. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +2 -1
  74. package/package.json +5 -3
package/README.md CHANGED
@@ -125,7 +125,7 @@ These are components that are included in the ```@microsoft/omnichannel-chat-com
125
125
  | ProactiveChatSurveyPane | A pane that holds more information than a normal chat button and can be configured to proactively pop up | [IProactiveChatPaneProps](https://github.com/microsoft/omnichannel-chat-widget/blob/main/chat-components/src/components/proactivechatpane/interfaces/IProactiveChatPaneProps.ts) |
126
126
  | ReconnectChatPane | The pane that shows up when the customer is re-connecting to the chat to add additional conversation | [IReconnectChatPaneProps](https://github.com/microsoft/omnichannel-chat-widget/blob/main/chat-components/src/components/reconnectchatpane/interfaces/IReconnectChatPaneProps.ts) |
127
127
 
128
- > :warning: Because the components extend Microsoft's [Fluent UI](https://developer.microsoft.com/en-us/fluentui#/) components, the base interface for all the ```styleProps``` in the above table is [IStyle](https://github.com/microsoft/fluentui/blob/master/packages/merge-styles/src/IStyle.ts), which extends the [IRawStyleBase](https://docs.microsoft.com/en-us/javascript/api/merge-styles/irawstylebase?view=office-ui-fabric-react-latest) interface, which is the most useful reference.
128
+ > :warning: Because the components extend Microsoft's [Fluent UI](https://developer.microsoft.com/en-us/fluentui#/) components, the base interface for all the ```styleProps``` in the above table is [IStyle](https://github.com/microsoft/fluentui/blob/master/packages/merge-styles/src/IStyle.ts), which extends the [IRawStyleBase](https://github.com/microsoft/fluentui/blob/master/packages/merge-styles/src/IRawStyleBase.ts#L280) interface, which is the most useful reference.
129
129
 
130
130
  ### Stateful Components
131
131
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WordIcon = exports.VisioIcon = exports.VideoIcon = exports.PowerpointIcon = exports.PDFIcon = exports.OneNoteIcon = exports.NotificationAlertIcon = exports.ImageIcon = exports.ExcelIcon = exports.BlankIcon = exports.AudioIcon = exports.ArchiveIcon = exports.AlertIcon = void 0;
6
+ exports.WordIcon = exports.VisioIcon = exports.VideoIcon = exports.PowerpointIcon = exports.PDFIcon = exports.OneNoteIcon = exports.NotificationAlertIcon = exports.MaliciousFileIcon = exports.ImageIcon = exports.FileScanInProgressIcon = exports.ExcelIcon = exports.CrossIcon = exports.BlankIcon = exports.AudioIcon = exports.ArchiveIcon = exports.AlertIcon = void 0;
7
7
  const ArchiveIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDQ4IDIwNDgiIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiPg0KPHBhdGggZD0iTTE3OTIgMHEyNyAwIDUwIDEwdDQwIDI3IDI4IDQxIDEwIDUwdjQ4MHEwIDQ1LTkgNzd0LTI0IDU4LTMxIDQ2LTMxIDQwLTIzIDQ0LTEwIDU1djk5MnEwIDI3LTEwIDUwdC0yNyA0MC00MSAyOC01MCAxMEgyNTZWMGgxNTM2ek02NDAgMTI4djM4NGgyNTZWMTI4SDY0MHptMTAyNCA4MDBxMC0zMS05LTU0dC0yNC00NC0zMS00MS0zMS00NS0yMy01OC0xMC03OFYxMjhoLTUxMnY1MTJINzY4djEyOEg2NDBWNjQwSDUxMlYxMjhIMzg0djE3OTJoMzg0di0xMjhoMTI4djEyOGg3NjhWOTI4em0xMjgtODAwaC0xMjh2NDgwcTAgMjQgNCA0MnQxMyAzMyAyMCAyOSAyNyAzMnExNS0xNyAyNi0zMXQyMC0zMCAxMy0zMyA1LTQyVjEyOHpNNjQwIDg5NmgxMjh2MTI4SDY0MFY4OTZ6bTAgMjU2aDEyOHYxMjhINjQwdi0xMjh6bTAgMjU2aDEyOHYxMjhINjQwdi0xMjh6bTEyOCAyNTZ2MTI4SDY0MHYtMTI4aDEyOHptMC03NjhWNzY4aDEyOHYxMjhINzY4em0wIDI1NnYtMTI4aDEyOHYxMjhINzY4em0wIDI1NnYtMTI4aDEyOHYxMjhINzY4em0wIDI1NnYtMTI4aDEyOHYxMjhINzY4eiIgLz4NCjwvc3ZnPg==";
8
8
  exports.ArchiveIcon = ArchiveIcon;
9
9
  const AudioIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0xNzkyIDE0MDhxMCA2Mi0yOSAxMDl0LTc2IDgwLTEwNCA1MC0xMTEgMTdxLTU0IDAtMTExLTE3dC0xMDMtNDktNzYtODAtMzAtMTEwcTAtNjEgMjktMTA5dDc2LTgwIDEwNC01MCAxMTEtMTdxNTEgMCAxMDAgMTJ0OTIgMzlWMjI2TDc2OCA0NTB2MTIxNHEwIDYyLTI5IDEwOXQtNzYgODAtMTA0IDUwLTExMSAxN3EtNTQgMC0xMTEtMTd0LTEwMy00OS03Ni04MC0zMC0xMTBxMC02MSAyOS0xMDl0NzYtODAgMTA0LTUwIDExMS0xN3E1MSAwIDEwMCAxMnQ5MiAzOVYzNTBMMTc5MiA2MnYxMzQ2eiIgLz4NCjwvc3ZnPg==";
@@ -29,4 +29,10 @@ exports.WordIcon = WordIcon;
29
29
  const AlertIcon = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMC8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMtU1ZHLTIwMDEwOTA0L0RURC9zdmcxMC5kdGQnPjxzdmcgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIGlkPSJMYXllcl8xIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PHBhdGggZD0iTTEzLDE3aC0ydi0yaDJWMTd6IE0xMywxM2gtMlY3aDJWMTN6Ii8+PGc+PHBhdGggZD0iTTEyLDRjNC40LDAsOCwzLjYsOCw4cy0zLjYsOC04LDhzLTgtMy42LTgtOFM3LjYsNCwxMiw0IE0xMiwyQzYuNSwyLDIsNi41LDIsMTJjMCw1LjUsNC41LDEwLDEwLDEwczEwLTQuNSwxMC0xMCAgIEMyMiw2LjUsMTcuNSwyLDEyLDJMMTIsMnoiLz48L2c+PC9zdmc+";
30
30
  exports.AlertIcon = AlertIcon;
31
31
  const NotificationAlertIcon = "data:image/svg+xml;base64,PHN2ZyBhcmlhLWxhYmVsPSJXYXJuaW5nIiBoZWlnaHQ9IjE5IiB2aWV3Qm94PSIwIDAgMTkgMTkiIHdpZHRoPSIxOSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOS4zNzUgMEMxMC4yNDA5IDAgMTEuMDcxIDAuMTEwNjc3IDExLjg2NTIgMC4zMzIwMzFDMTIuNjY2IDAuNTUzMzg1IDEzLjQxNDcgMC44NjkxNDEgMTQuMTExMyAxLjI3OTNDMTQuODA3OSAxLjY4Mjk0IDE1LjQzOTUgMi4xNzEyMiAxNi4wMDU5IDIuNzQ0MTRDMTYuNTc4OCAzLjMxMDU1IDE3LjA2NzEgMy45NDIwNiAxNy40NzA3IDQuNjM4NjdDMTcuODgwOSA1LjMzNTI5IDE4LjE5NjYgNi4wODM5OCAxOC40MTggNi44ODQ3N0MxOC42MzkzIDcuNjc5MDQgMTguNzUgOC41MDkxMSAxOC43NSA5LjM3NUMxOC43NSAxMC4yNDA5IDE4LjYzOTMgMTEuMDc0MiAxOC40MTggMTEuODc1QzE4LjE5NjYgMTIuNjY5MyAxNy44ODA5IDEzLjQxNDcgMTcuNDcwNyAxNC4xMTEzQzE3LjA2NzEgMTQuODA3OSAxNi41Nzg4IDE1LjQ0MjcgMTYuMDA1OSAxNi4wMTU2QzE1LjQzOTUgMTYuNTgyIDE0LjgwNzkgMTcuMDcwMyAxNC4xMTEzIDE3LjQ4MDVDMTMuNDE0NyAxNy44ODQxIDEyLjY2NiAxOC4xOTY2IDExLjg2NTIgMTguNDE4QzExLjA3MSAxOC42MzkzIDEwLjI0MDkgMTguNzUgOS4zNzUgMTguNzVDOC41MDkxMSAxOC43NSA3LjY3NTc4IDE4LjYzOTMgNi44NzUgMTguNDE4QzYuMDgwNzMgMTguMTk2NiA1LjMzNTI5IDE3Ljg4NDEgNC42Mzg2NyAxNy40ODA1QzMuOTQyMDYgMTcuMDcwMyAzLjMwNzI5IDE2LjU4MiAyLjczNDM4IDE2LjAxNTZDMi4xNjc5NyAxNS40NDI3IDEuNjc5NjkgMTQuODA3OSAxLjI2OTUzIDE0LjExMTNDMC44NjU4ODUgMTMuNDE0NyAwLjU1MzM4NSAxMi42NjkzIDAuMzMyMDMxIDExLjg3NUMwLjExMDY3NyAxMS4wNzQyIDAgMTAuMjQwOSAwIDkuMzc1QzAgOC41MDkxMSAwLjExMDY3NyA3LjY3OTA0IDAuMzMyMDMxIDYuODg0NzdDMC41NTMzODUgNi4wODM5OCAwLjg2NTg4NSA1LjMzNTI5IDEuMjY5NTMgNC42Mzg2N0MxLjY3OTY5IDMuOTQyMDYgMi4xNjc5NyAzLjMxMDU1IDIuNzM0MzggMi43NDQxNEMzLjMwNzI5IDIuMTcxMjIgMy45NDIwNiAxLjY4Mjk0IDQuNjM4NjcgMS4yNzkzQzUuMzM1MjkgMC44NjkxNDEgNi4wODA3MyAwLjU1MzM4NSA2Ljg3NSAwLjMzMjAzMUM3LjY3NTc4IDAuMTEwNjc3IDguNTA5MTEgMCA5LjM3NSAwWk05LjM3NSAxNy41QzEwLjExNzIgMTcuNSAxMC44MzMzIDE3LjQwMjMgMTEuNTIzNCAxNy4yMDdDMTIuMjIwMSAxNy4wMTE3IDEyLjg2NzggMTYuNzM4MyAxMy40NjY4IDE2LjM4NjdDMTQuMDcyMyAxNi4wMzUyIDE0LjYyMjQgMTUuNjEyIDE1LjExNzIgMTUuMTE3MkMxNS42MTIgMTQuNjIyNCAxNi4wMzUyIDE0LjA3NTUgMTYuMzg2NyAxMy40NzY2QzE2LjczODMgMTIuODcxMSAxNy4wMTE3IDEyLjIyMzMgMTcuMjA3IDExLjUzMzJDMTcuNDAyMyAxMC44NDMxIDE3LjUgMTAuMTIzNyAxNy41IDkuMzc1QzE3LjUgOC42MzI4MSAxNy40MDIzIDcuOTE2NjcgMTcuMjA3IDcuMjI2NTZDMTcuMDExNyA2LjUyOTk1IDE2LjczODMgNS44ODIxNiAxNi4zODY3IDUuMjgzMkMxNi4wMzUyIDQuNjc3NzMgMTUuNjEyIDQuMTI3NiAxNS4xMTcyIDMuNjMyODFDMTQuNjIyNCAzLjEzODAyIDE0LjA3MjMgMi43MTQ4NCAxMy40NjY4IDIuMzYzMjhDMTIuODY3OCAyLjAxMTcyIDEyLjIyMDEgMS43MzgyOCAxMS41MjM0IDEuNTQyOTdDMTAuODMzMyAxLjM0NzY2IDEwLjExNzIgMS4yNSA5LjM3NSAxLjI1QzguNjI2MyAxLjI1IDcuOTA2OSAxLjM0NzY2IDcuMjE2OCAxLjU0Mjk3QzYuNTI2NjkgMS43MzgyOCA1Ljg3ODkxIDIuMDExNzIgNS4yNzM0NCAyLjM2MzI4QzQuNjc0NDggMi43MTQ4NCA0LjEyNzYgMy4xMzgwMiAzLjYzMjgxIDMuNjMyODFDMy4xMzgwMiA0LjEyNzYgMi43MTQ4NCA0LjY3NzczIDIuMzYzMjggNS4yODMyQzIuMDExNzIgNS44ODIxNiAxLjczODI4IDYuNTI5OTUgMS41NDI5NyA3LjIyNjU2QzEuMzQ3NjYgNy45MTY2NyAxLjI1IDguNjMyODEgMS4yNSA5LjM3NUMxLjI1IDEwLjExNzIgMS4zNDc2NiAxMC44MzY2IDEuNTQyOTcgMTEuNTMzMkMxLjczODI4IDEyLjIyMzMgMi4wMTE3MiAxMi44NzExIDIuMzYzMjggMTMuNDc2NkMyLjcxNDg0IDE0LjA3NTUgMy4xMzgwMiAxNC42MjI0IDMuNjMyODEgMTUuMTE3MkM0LjEyNzYgMTUuNjEyIDQuNjc0NDggMTYuMDM1MiA1LjI3MzQ0IDE2LjM4NjdDNS44Nzg5MSAxNi43MzgzIDYuNTI2NjkgMTcuMDExNyA3LjIxNjggMTcuMjA3QzcuOTA2OSAxNy40MDIzIDguNjI2MyAxNy41IDkuMzc1IDE3LjVaTTguNzUgNUgxMFYxMS4yNUg4Ljc1VjVaTTguNzUgMTIuNUgxMFYxMy43NUg4Ljc1VjEyLjVaIj48L3BhdGg+PC9zdmc+";
32
- exports.NotificationAlertIcon = NotificationAlertIcon;
32
+ exports.NotificationAlertIcon = NotificationAlertIcon;
33
+ const FileScanInProgressIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPHBhdGggZD0iTTYgMkM0Ljg5NTQzIDIgNCAyLjg5NTQzIDQgNFY5LjIwNzAzQzQuMzIyMjggOS4xMTU4OCA0LjY1NjU5IDkuMDUzMzcgNSA5LjAyMjQyVjRDNSAzLjQ0NzcyIDUuNDQ3NzIgMyA2IDNIMTBWNi41QzEwIDcuMzI4NDMgMTAuNjcxNiA4IDExLjUgOEgxNVYxNkMxNSAxNi41NTIzIDE0LjU1MjMgMTcgMTQgMTdIMTAuNDAwM0MxMC4yMTc0IDE3LjM1NzggOS45OTY0NyAxNy42OTI5IDkuNzQyODQgMThIMTRDMTUuMTA0NiAxOCAxNiAxNy4xMDQ2IDE2IDE2VjcuNDE0MjFDMTYgNy4wMTYzOSAxNS44NDIgNi42MzQ4NiAxNS41NjA3IDYuMzUzNTVMMTEuNjQ2NCAyLjQzOTM0QzExLjM2NTEgMi4xNTgwNCAxMC45ODM2IDIgMTAuNTg1OCAySDZaTTE0Ljc5MjkgN0gxMS41QzExLjIyMzkgNyAxMSA2Ljc3NjE0IDExIDYuNVYzLjIwNzExTDE0Ljc5MjkgN1pNMSAxNC41QzEgMTYuOTg1MyAzLjAxNDcyIDE5IDUuNSAxOUM3Ljk4NTI4IDE5IDEwIDE2Ljk4NTMgMTAgMTQuNUMxMCAxMi4wMTQ3IDcuOTg1MjggMTAgNS41IDEwQzMuMDE0NzIgMTAgMSAxMi4wMTQ3IDEgMTQuNVpNNy41IDExLjVDNy43NzYxNCAxMS41IDggMTEuNzIzOSA4IDEyVjEzLjVDOCAxMy43NzYxIDcuNzc2MTQgMTQgNy41IDE0SDZDNS43MjM4NiAxNCA1LjUgMTMuNzc2MSA1LjUgMTMuNUM1LjUgMTMuMjIzOSA1LjcyMzg2IDEzIDYgMTNINi40NjgyMUM2LjQxNzg3IDEyLjk3MjIgNi4zNjYyOCAxMi45NDY0IDYuMzEzNTUgMTIuOTIzQzYuMDY4MjQgMTIuODEzNyA1LjgwMzQ0IDEyLjc1NSA1LjUzNDk1IDEyLjc1MDNDNS4yNjY0NiAxMi43NDU2IDQuOTk5NzcgMTIuNzk1IDQuNzUwNzkgMTIuODk1NkM0LjUwMTggMTIuOTk2MiA0LjI3NTYzIDEzLjE0NTkgNC4wODU3NSAxMy4zMzU4QzMuODkwNDggMTMuNTMxIDMuNTczOSAxMy41MzEgMy4zNzg2NCAxMy4zMzU4QzMuMTgzMzggMTMuMTQwNSAzLjE4MzM4IDEyLjgyMzkgMy4zNzg2NCAxMi42Mjg3QzMuNjYzNDYgMTIuMzQzOSA0LjAwMjczIDEyLjExOTMgNC4zNzYyIDExLjk2ODRDNC43NDk2NyAxMS44MTc1IDUuMTQ5NzEgMTEuNzQzNCA1LjU1MjQ1IDExLjc1MDVDNS45NTUxOCAxMS43NTc1IDYuMzUyMzggMTEuODQ1NiA2LjcyMDM0IDEyLjAwOTRDNi44MTYxNyAxMi4wNTIxIDYuOTA5NTEgMTIuMDk5NyA3IDEyLjE1MTlWMTJDNyAxMS43MjM5IDcuMjIzODYgMTEuNSA3LjUgMTEuNVpNNi42MjM4IDE3LjAzMTZDNi4yNTAzMyAxNy4xODI1IDUuODUwMjkgMTcuMjU2NiA1LjQ0NzU1IDE3LjI0OTVDNS4wNDQ4MiAxNy4yNDI1IDQuNjQ3NjIgMTcuMTU0NCA0LjI3OTY2IDE2Ljk5MDZDNC4xODM4MyAxNi45NDc5IDQuMDkwNDkgMTYuOTAwMyA0IDE2Ljg0ODFWMTdDNCAxNy4yNzYxIDMuNzc2MTQgMTcuNSAzLjUgMTcuNUMzLjIyMzg2IDE3LjUgMyAxNy4yNzYxIDMgMTdWMTUuNUMzIDE1LjIyMzkgMy4yMjM4NiAxNSAzLjUgMTVINUM1LjI3NjE0IDE1IDUuNSAxNS4yMjM5IDUuNSAxNS41QzUuNSAxNS43NzYxIDUuMjc2MTQgMTYgNSAxNkg0LjUzMTc5QzQuNTgyMTMgMTYuMDI3OCA0LjYzMzcyIDE2LjA1MzYgNC42ODY0NSAxNi4wNzdDNC45MzE3NiAxNi4xODYzIDUuMTk2NTYgMTYuMjQ1IDUuNDY1MDUgMTYuMjQ5N0M1LjczMzU0IDE2LjI1NDQgNi4wMDAyMyAxNi4yMDUgNi4yNDkyMSAxNi4xMDQ0QzYuNDk4MiAxNi4wMDM4IDYuNzI0MzcgMTUuODU0MSA2LjkxNDI1IDE1LjY2NDJDNy4xMDk1MSAxNS40NjkgNy40MjYxIDE1LjQ2OSA3LjYyMTM2IDE1LjY2NDJDNy44MTY2MiAxNS44NTk1IDcuODE2NjIgMTYuMTc2MSA3LjYyMTM2IDE2LjM3MTNDNy4zMzY1NCAxNi42NTYxIDYuOTk3MjcgMTYuODgwNyA2LjYyMzggMTcuMDMxNloiIGZpbGw9IiMyMTIxMjEiIC8+DQo8L3N2Zz4=";
34
+ exports.FileScanInProgressIcon = FileScanInProgressIcon;
35
+ const MaliciousFileIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPHBhdGggZD0iTTQgNEM0IDIuODk1NDMgNC44OTU0MyAyIDYgMkgxMC41ODU4QzEwLjk4MzYgMiAxMS4zNjUxIDIuMTU4MDQgMTEuNjQ2NCAyLjQzOTM0TDE1LjU2MDcgNi4zNTM1NUMxNS44NDIgNi42MzQ4NiAxNiA3LjAxNjM5IDE2IDcuNDE0MjFWMTZDMTYgMTcuMTA0NiAxNS4xMDQ2IDE4IDE0IDE4SDkuNzQyODRDOS45OTY0NyAxNy42OTI5IDEwLjIxNzQgMTcuMzU3OCAxMC40MDAzIDE3SDE0QzE0LjU1MjMgMTcgMTUgMTYuNTUyMyAxNSAxNlY4SDExLjVDMTAuNjcxNiA4IDEwIDcuMzI4NDMgMTAgNi41VjNINkM1LjQ0NzcyIDMgNSAzLjQ0NzcyIDUgNFY5LjAyMjQyQzQuNjU2NTkgOS4wNTMzNyA0LjMyMjI4IDkuMTE1ODggNCA5LjIwNzAzVjRaTTExIDMuMjA3MTFWNi41QzExIDYuNzc2MTQgMTEuMjIzOSA3IDExLjUgN0gxNC43OTI5TDExIDMuMjA3MTFaTTguNjgxOTkgMTcuNjgyQzYuOTI0NjIgMTkuNDM5NCA0LjA3NTM5IDE5LjQzOTQgMi4zMTgwMiAxNy42ODJDMC41NjA2NTkgMTUuOTI0NiAwLjU2MDY1OSAxMy4wNzU0IDIuMzE4MDIgMTEuMzE4QzQuMDc1MzkgOS41NjA2NiA2LjkyNDYyIDkuNTYwNjYgOC42ODE5OSAxMS4zMThDMTAuNDM5NCAxMy4wNzU0IDEwLjQzOTQgMTUuOTI0NiA4LjY4MTk5IDE3LjY4MlpNMy40MDM3NSAxNy4zMDM0QzQuNzc0NjYgMTguMzMxMiA2LjcyODA5IDE4LjIyMTcgNy45NzQ4OCAxNi45NzQ5QzkuMjIxNjcgMTUuNzI4MSA5LjMzMTE2IDEzLjc3NDcgOC4zMDMzNyAxMi40MDM3TDMuNDAzNzUgMTcuMzAzNFpNMi42OTY2NCAxNi41OTYzTDcuNTk2MjYgMTEuNjk2NkM2LjIyNTM1IDEwLjY2ODggNC4yNzE5MiAxMC43NzgzIDMuMDI1MTMgMTIuMDI1MUMxLjc3ODM0IDEzLjI3MTkgMS42Njg4NSAxNS4yMjU0IDIuNjk2NjQgMTYuNTk2M1oiIGZpbGw9IiMyMTIxMjEiIC8+DQo8L3N2Zz4=";
36
+ exports.MaliciousFileIcon = MaliciousFileIcon;
37
+ const CrossIcon = "data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iIiBmaWxsPSJyZWQiIHN0cm9rZS13aWR0aD0iMyIgZm9jdXNhYmxlPSJmYWxzZSIgaGVpZ2h0PSIxNCIgcm9sZT0icHJlc2VudGF0aW9uIiB2aWV3Qm94PSIwIDAgMTQgMTQiIHdpZHRoPSIxNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy43MTA5NCA3TDEzLjEwMTYgMTIuMzk4NEwxMi4zOTg0IDEzLjEwMTZMNyA3LjcxMDk0TDEuNjAxNTYgMTMuMTAxNkwwLjg5ODQzOCAxMi4zOTg0TDYuMjg5MDYgN0wwLjg5ODQzOCAxLjYwMTU2TDEuNjAxNTYgMC44OTg0MzhMNyA2LjI4OTA2TDEyLjM5ODQgMC44OTg0MzhMMTMuMTAxNiAxLjYwMTU2TDcuNzEwOTQgN1oiPjwvcGF0aD48L3N2Zz4=";
38
+ exports.CrossIcon = CrossIcon;
@@ -9,29 +9,10 @@ var _AriaSDK = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/
9
9
  var _Enums = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/common/Enums");
10
10
  var _Constants = require("../../Constants");
11
11
  var _TelemetryManager = require("../TelemetryManager");
12
- const AWTDefaultConfiguration = {
13
- collectorUri: "https://browser.pipe.aria.microsoft.com/Collector/3.0/",
14
- cacheMemorySizeLimitInNumberOfEvents: 10000,
15
- disableCookiesUsage: false,
16
- canSendStatEvent: eventName => {
17
- return true;
18
- },
19
- // eslint-disable-line @typescript-eslint/no-unused-vars
20
- clockSkewRefreshDurationInMins: 0
21
- };
22
12
  const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUriForTelemetry, ariaTelemetryApplicationName) => {
23
13
  let _logger;
24
-
25
- // AWTLogManager is a global variable. Reset after a logEvent() is required to prevent collisions with other components using AWTLogManager.
26
- const resetAriaLogger = function () {
27
- let configuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : AWTDefaultConfiguration;
28
- _AriaSDK.AWTLogManager.flushAndTeardown();
29
- _AriaSDK.AWTLogManager._isInitialized = false; // eslint-disable-line @typescript-eslint/no-explicit-any
30
- _AriaSDK.AWTLogManager._isDestroyed = false; // eslint-disable-line @typescript-eslint/no-explicit-any
31
- _logger = _AriaSDK.AWTLogManager.initialize(ariaTelemetryKey, configuration);
32
- };
33
14
  const logger = () => {
34
- if (!(0, _utils.isNullOrEmptyString)(ariaTelemetryKey)) {
15
+ if ((0, _utils.isNullOrUndefined)(_logger) && !(0, _utils.isNullOrEmptyString)(ariaTelemetryKey)) {
35
16
  const configuration = {
36
17
  disableCookiesUsage: disabledCookieUsage
37
18
  };
@@ -51,7 +32,7 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
51
32
  }
52
33
  }
53
34
  try {
54
- resetAriaLogger(configuration);
35
+ _logger = _AriaSDK.AWTLogManager.initialize(ariaTelemetryKey, configuration);
55
36
  if (_logger === undefined) {
56
37
  _logger = _AriaSDK.AWTLogManager.getLogger(ariaTelemetryKey);
57
38
  }
@@ -93,7 +74,6 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
93
74
  eventProperties.properties[ariaTelemetryApplicationName] = nameProperty;
94
75
  }
95
76
  logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
96
- resetAriaLogger();
97
77
  } catch (error) {
98
78
  console.error("Error in logging telemetry to Aria logger:" + error);
99
79
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheIdfromProps = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getConversationDetailsCall = exports.getBroadcastChannelName = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.debounceLeading = exports.createTimer = exports.createFileAndDownload = exports.checkContactIdError = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
6
+ exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheIdfromProps = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getConversationDetailsCall = exports.getBroadcastChannelName = exports.formatTemplateString = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.debounceLeading = exports.createTimer = exports.createFileAndDownload = exports.checkContactIdError = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
7
7
  var _Constants = require("./Constants");
8
8
  var _TelemetryConstants = require("./telemetry/TelemetryConstants");
9
9
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
@@ -431,4 +431,21 @@ const createFileAndDownload = (fileName, blobData, mimeType) => {
431
431
  aElement.click();
432
432
  document.body.removeChild(aElement);
433
433
  };
434
- exports.createFileAndDownload = createFileAndDownload;
434
+
435
+ /**
436
+ *
437
+ * Replace placeholders with format {0}..{n} , in a string with values
438
+ *
439
+ * @param template String with placeholders to be replaced
440
+ * @param values array of values to replace the placeholders
441
+ * @returns formatted string with replaced values
442
+ */
443
+ // use of any for values as array of any type is passed
444
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
445
+ exports.createFileAndDownload = createFileAndDownload;
446
+ const formatTemplateString = (templateMessage, values) => {
447
+ return templateMessage.replace(/{(\d+)}/g, (match, index) => {
448
+ return typeof values[index] !== "undefined" ? values[index] : match;
449
+ });
450
+ };
451
+ exports.formatTemplateString = formatTemplateString;
@@ -16,6 +16,7 @@ var _Constants = require("../../common/Constants");
16
16
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
17
17
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
18
18
  var _useChatSDKStore = _interopRequireDefault(require("../../hooks/useChatSDKStore"));
19
+ var _defaultMiddlewareLocalizedTexts = require("../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
19
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -55,6 +56,7 @@ const EmailTranscriptPaneStateful = props => {
55
56
  };
56
57
  try {
57
58
  await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.emailLiveChatTranscript(chatTranscriptBody));
59
+ _NotificationHandler.NotificationHandler.notifySuccess(_NotificationScenarios.NotificationScenarios.EmailAddressSaved, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts === null || _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts === void 0 ? void 0 : _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_SUCCESS);
58
60
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
59
61
  Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptSent,
60
62
  Description: "Transcript sent to email successfully."
@@ -66,7 +68,8 @@ const EmailTranscriptPaneStateful = props => {
66
68
  exception: ex
67
69
  }
68
70
  });
69
- _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.EmailTranscriptError, (props === null || props === void 0 ? void 0 : props.bannerMessageOnError) ?? "Email transcript to " + email + " failed.");
71
+ const message = (0, _utils.formatTemplateString)(_defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_ERROR, [email]);
72
+ _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.EmailTranscriptError, (props === null || props === void 0 ? void 0 : props.bannerMessageOnError) ?? message);
70
73
  }
71
74
  },
72
75
  onCancel: () => {
@@ -28,6 +28,11 @@ const createAdapter = async chatSDK => {
28
28
  }
29
29
  }
30
30
  }
31
+ },
32
+ ACSAdapter: {
33
+ fileScan: {
34
+ disabled: false
35
+ }
31
36
  }
32
37
  };
33
38
  let adapter = await chatSDK.createChatAdapter(chatAdapterOptionalParams);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.prepareEndChat = exports.endChat = void 0;
6
+ exports.prepareEndChat = exports.endVoiceVideoCallIfOngoing = exports.endChatStateCleanUp = exports.endChat = exports.closeChatStateCleanUp = exports.callingStateCleanUp = void 0;
7
7
  var _Constants = require("../../../common/Constants");
8
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
9
  var _authHelper = require("./authHelper");
@@ -15,33 +15,42 @@ var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidget
15
15
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
16
16
  var _WebChatStoreLoader = require("../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
17
17
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
18
+ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
18
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
- const prepareEndChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, uwid) => {
20
+ const prepareEndChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter) => {
20
21
  try {
21
- var _conversationDetails$, _state$domainStates, _state$domainStates2;
22
+ var _conversationDetails$, _state$domainStates;
23
+ // Use Case: If call is ongoing, end the call by simulating end call button click
24
+ endVoiceVideoCallIfOngoing(chatSDK, dispatch);
22
25
  const conversationDetails = await (0, _utils.getConversationDetailsCall)(chatSDK);
23
26
 
24
- // Use Case : When post chat is not configured
27
+ // Use Case: When post chat is not configured
25
28
  if ((conversationDetails === null || conversationDetails === void 0 ? void 0 : (_conversationDetails$ = conversationDetails.canRenderPostChat) === null || _conversationDetails$ === void 0 ? void 0 : _conversationDetails$.toLowerCase()) === _Constants.Constants.false) {
26
29
  var _state$appStates;
27
30
  // If ended by customer, just close chat
28
31
  if ((state === null || state === void 0 ? void 0 : (_state$appStates = state.appStates) === null || _state$appStates === void 0 ? void 0 : _state$appStates.conversationEndedBy) === _Constants.ConversationEndEntity.Customer) {
29
- await endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, false, true, uwid);
32
+ await endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, false, true);
30
33
  }
31
- //Use Case: If ended by Agent, stay chat in InActive state
34
+ // Use Case: If ended by Agent, stay chat in InActive state
32
35
  return;
33
36
  }
34
37
 
35
- // Use Case : Can render post chat scenarios
36
- await (0, _renderSurveyHelpers.getPostChatContext)(chatSDK, state, dispatch);
38
+ // Register post chat participant type
39
+ if ((conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.participantType) === _Constants.ParticipantType.Bot || (conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.participantType) === _Constants.ParticipantType.User) {
40
+ dispatch({
41
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_PARTICIPANT_TYPE,
42
+ payload: conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.participantType
43
+ });
44
+ }
37
45
 
46
+ // Use Case: Can render post chat scenarios
38
47
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
- const postchatContext = state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.postChatContext;
48
+ const postchatContext = (await (0, _renderSurveyHelpers.getPostChatContext)(chatSDK, state, dispatch)) ?? (state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.postChatContext);
40
49
  if (postchatContext === undefined) {
41
50
  var _state$appStates2;
42
51
  // For Customer intiated conversations, just close chat widget
43
52
  if ((state === null || state === void 0 ? void 0 : (_state$appStates2 = state.appStates) === null || _state$appStates2 === void 0 ? void 0 : _state$appStates2.conversationEndedBy) === _Constants.ConversationEndEntity.Customer) {
44
- await endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, false, true, uwid);
53
+ await endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, false, true);
45
54
  return;
46
55
  }
47
56
 
@@ -52,10 +61,10 @@ const prepareEndChat = async (props, chatSDK, state, dispatch, setAdapter, setWe
52
61
  });
53
62
  return;
54
63
  }
55
- endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, true, true, uwid);
64
+ endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, true, true);
56
65
 
57
66
  // Initiate post chat render
58
- if (state !== null && state !== void 0 && (_state$domainStates2 = state.domainStates) !== null && _state$domainStates2 !== void 0 && _state$domainStates2.postChatContext) {
67
+ if (postchatContext) {
59
68
  await (0, _renderSurveyHelpers.initiatePostChat)(props, conversationDetails, state, dispatch, postchatContext);
60
69
  return;
61
70
  }
@@ -70,7 +79,7 @@ const prepareEndChat = async (props, chatSDK, state, dispatch, setAdapter, setWe
70
79
 
71
80
  //Close chat widget for any failure in embedded to allow to show start chat button
72
81
  if (((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.hideStartChatButton) === false) {
73
- await endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, false, true, uwid);
82
+ await endChat(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, false, false, true);
74
83
  }
75
84
  } finally {
76
85
  //Chat token clean up
@@ -80,8 +89,7 @@ const prepareEndChat = async (props, chatSDK, state, dispatch, setAdapter, setWe
80
89
 
81
90
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
91
  exports.prepareEndChat = prepareEndChat;
83
- const endChat = async function (props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) {
84
- let uwid = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : "";
92
+ const endChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => {
85
93
  if (!skipEndChatSDK && chatSDK.conversation) {
86
94
  try {
87
95
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
@@ -133,15 +141,40 @@ const endChat = async function (props, chatSDK, state, dispatch, setAdapter, set
133
141
  closeChatWidget(dispatch, props, state);
134
142
  }
135
143
  }
136
- if (postMessageToOtherTab && !(0, _utils.isNullOrEmptyString)(uwid)) {
144
+ if (postMessageToOtherTab) {
137
145
  const endChatEventName = await getEndChatEventName(chatSDK, props);
138
146
  _omnichannelChatComponents.BroadcastService.postMessage({
139
147
  eventName: endChatEventName,
140
- payload: uwid
148
+ payload: {
149
+ runtimeId: _TelemetryManager.TelemetryManager.InternalTelemetryData.lcwRuntimeId
150
+ }
141
151
  });
142
152
  }
143
153
  };
144
154
  exports.endChat = endChat;
155
+ const callingStateCleanUp = async dispatch => {
156
+ dispatch({
157
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SHOW_CALLING_CONTAINER,
158
+ payload: false
159
+ });
160
+ dispatch({
161
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_INCOMING_CALL,
162
+ payload: true
163
+ });
164
+ dispatch({
165
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.DISABLE_VIDEO_CALL,
166
+ payload: true
167
+ });
168
+ dispatch({
169
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.DISABLE_LOCAL_VIDEO,
170
+ payload: true
171
+ });
172
+ dispatch({
173
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.DISABLE_REMOTE_VIDEO,
174
+ payload: true
175
+ });
176
+ };
177
+ exports.callingStateCleanUp = callingStateCleanUp;
145
178
  const endChatStateCleanUp = async dispatch => {
146
179
  // Need to clear these states immediately when chat ended from OC.
147
180
  dispatch({
@@ -157,6 +190,7 @@ const endChatStateCleanUp = async dispatch => {
157
190
  payload: false
158
191
  });
159
192
  };
193
+ exports.endChatStateCleanUp = endChatStateCleanUp;
160
194
  const closeChatStateCleanUp = async dispatch => {
161
195
  dispatch({
162
196
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
@@ -192,6 +226,32 @@ const closeChatStateCleanUp = async dispatch => {
192
226
  }
193
227
  });
194
228
  };
229
+
230
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
231
+ exports.closeChatStateCleanUp = closeChatStateCleanUp;
232
+ const endVoiceVideoCallIfOngoing = async (chatSDK, dispatch) => {
233
+ let callId = "";
234
+ try {
235
+ const voiceVideoCallingSdk = await chatSDK.getVoiceVideoCalling();
236
+ if (voiceVideoCallingSdk && voiceVideoCallingSdk.isInACall()) {
237
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
238
+ callId = voiceVideoCallingSdk.callId;
239
+ voiceVideoCallingSdk.stopCall();
240
+ _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
241
+ Event: _TelemetryConstants.TelemetryEvent.EndCallButtonClick
242
+ }, callId);
243
+ callingStateCleanUp(dispatch);
244
+ }
245
+ } catch (error) {
246
+ _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.ERROR, {
247
+ Event: _TelemetryConstants.TelemetryEvent.EndCallButtonClickException,
248
+ ExceptionDetails: {
249
+ exception: `Failed to End Call: ${error}`
250
+ }
251
+ }, callId);
252
+ }
253
+ };
254
+ exports.endVoiceVideoCallIfOngoing = endVoiceVideoCallIfOngoing;
195
255
  const closeChatWidget = (dispatch, props, state) => {
196
256
  var _state$appStates3;
197
257
  if (state !== null && state !== void 0 && (_state$appStates3 = state.appStates) !== null && _state$appStates3 !== void 0 && _state$appStates3.hideStartChatButton) {
@@ -69,6 +69,12 @@ const initWebChatComposer = (props, state, dispatch, chatSDK, endChat) => {
69
69
  payload: _Constants.ConversationEndEntity.Agent
70
70
  });
71
71
  }
72
+ if ((conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.participantType) === _Constants.ParticipantType.Bot || (conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.participantType) === _Constants.ParticipantType.User) {
73
+ dispatch({
74
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_PARTICIPANT_TYPE,
75
+ payload: conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.participantType
76
+ });
77
+ }
72
78
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
73
79
  Event: _TelemetryConstants.TelemetryEvent.ConversationEndedThreadEventReceived,
74
80
  Description: "Conversation end by agent side or by timeout event received."
@@ -25,7 +25,7 @@ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initSta
25
25
  // Get chat reconnect context
26
26
  const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat);
27
27
 
28
- //Redirect if enabled
28
+ // Redirect if enabled
29
29
  if (reconnectChatContext !== null && reconnectChatContext !== void 0 && reconnectChatContext.redirectURL) {
30
30
  var _props$reconnectChatP;
31
31
  redirectPage(reconnectChatContext.redirectURL, (_props$reconnectChatP = props.reconnectChatPaneProps) === null || _props$reconnectChatP === void 0 ? void 0 : _props$reconnectChatP.redirectInSameWindow);
@@ -48,24 +48,25 @@ const setSurveyMode = async (props, participantType, state, dispatch) => {
48
48
  return;
49
49
  }
50
50
  };
51
- const renderSurvey = async (state, dispatch) => {
51
+
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ const renderSurvey = async (postChatContext, dispatch) => {
52
54
  if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
53
55
  setWidgetStateToInactive(dispatch);
54
56
  return;
55
57
  }
56
58
  if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
57
- await embedModePostChatWorkflow(state, dispatch);
59
+ await embedModePostChatWorkflow(postChatContext, dispatch);
58
60
  }
59
61
  };
60
62
 
61
63
  // Function for embed mode postchat workflow which is essentially same for both customer and agent
62
64
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
- const embedModePostChatWorkflow = async (state, dispatch) => {
64
- var _state$domainStates2;
65
+ const embedModePostChatWorkflow = async (postChatContext, dispatch) => {
65
66
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
66
67
  Event: _TelemetryConstants.TelemetryEvent.EmbedModePostChatWorkflowStarted
67
68
  });
68
- if (state !== null && state !== void 0 && (_state$domainStates2 = state.domainStates) !== null && _state$domainStates2 !== void 0 && _state$domainStates2.postChatContext) {
69
+ if (postChatContext) {
69
70
  dispatch({
70
71
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
71
72
  payload: _ConversationState.ConversationState.PostchatLoading
@@ -76,7 +77,7 @@ const embedModePostChatWorkflow = async (state, dispatch) => {
76
77
  payload: _ConversationState.ConversationState.Postchat
77
78
  });
78
79
  } else {
79
- const error = `Conversation was Ended but App State was not set correctly: postChatContext = ${state.domainStates.postChatContext}`;
80
+ const error = `Conversation was Ended but App State was not set correctly: postChatContext = ${postChatContext}`;
80
81
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
81
82
  Event: _TelemetryConstants.TelemetryEvent.AppStatesException,
82
83
  ExceptionDetails: {
@@ -92,7 +93,7 @@ const initiatePostChat = async (props, conversationDetailsParam, state, dispatch
92
93
  conversationDetails = conversationDetailsParam;
93
94
  const participantType = ((_conversationDetails = conversationDetails) === null || _conversationDetails === void 0 ? void 0 : _conversationDetails.participantType) ?? postchatContext.participantType;
94
95
  await setSurveyMode(props, participantType, state, dispatch);
95
- await renderSurvey(state, dispatch);
96
+ await renderSurvey(postchatContext, dispatch);
96
97
  };
97
98
 
98
99
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -107,8 +108,8 @@ const isPostChatEnabled = (props, state) => {
107
108
  exports.checkPostChatEnabled = isPostChatEnabled;
108
109
  const getPostChatContext = async (chatSDK, state, dispatch) => {
109
110
  try {
110
- var _state$domainStates3;
111
- if ((state === null || state === void 0 ? void 0 : (_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : _state$domainStates3.postChatContext) === undefined) {
111
+ var _state$domainStates2;
112
+ if ((state === null || state === void 0 ? void 0 : (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.postChatContext) === undefined) {
112
113
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
114
  const context = await chatSDK.getPostChatSurveyContext();
114
115
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
@@ -119,6 +120,7 @@ const getPostChatContext = async (chatSDK, state, dispatch) => {
119
120
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
120
121
  payload: context
121
122
  });
123
+ return context;
122
124
  }
123
125
  } catch (error) {
124
126
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {