@microsoft/omnichannel-chat-widget 0.1.0-main.89c6531 → 0.1.0-main.9e62ed8

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 (174) hide show
  1. package/README.md +259 -0
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +50 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +14 -0
  6. package/lib/cjs/{assets/assets.d.js → common/interfaces/IContextDataStore.js} +0 -0
  7. package/lib/cjs/common/telemetry/TelemetryConstants.js +55 -5
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -6
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  12. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +33 -13
  13. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -5
  14. package/lib/cjs/common/utils.js +30 -2
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +16 -4
  17. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -54
  18. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  19. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  20. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  21. package/lib/cjs/components/headerstateful/HeaderStateful.js +11 -8
  22. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  23. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +23 -22
  24. package/lib/cjs/components/livechatwidget/common/endChat.js +116 -49
  25. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  26. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +40 -11
  27. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +105 -20
  28. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -5
  29. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +26 -24
  30. package/lib/cjs/components/livechatwidget/common/startChat.js +151 -53
  31. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  32. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +228 -44
  33. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  34. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  35. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  36. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +26 -10
  37. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -4
  38. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  39. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +80 -0
  40. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  41. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  42. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  43. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  44. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  45. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  46. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  47. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  48. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  49. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  50. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  51. package/lib/cjs/contexts/common/ConversationState.js +3 -2
  52. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +12 -7
  53. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +11 -3
  54. package/lib/cjs/contexts/createReducer.js +36 -10
  55. package/lib/cjs/controller/componentController.js +3 -3
  56. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  57. package/lib/esm/assets/Audios.js +1 -0
  58. package/lib/esm/assets/Icons.js +11 -0
  59. package/lib/esm/common/Constants.js +46 -3
  60. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  61. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  62. package/lib/esm/common/telemetry/TelemetryConstants.js +51 -4
  63. package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
  64. package/lib/esm/common/telemetry/TelemetryManager.js +15 -6
  65. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  66. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  67. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +36 -14
  68. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -5
  69. package/lib/esm/common/utils.js +19 -1
  70. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  71. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +18 -7
  72. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -50
  73. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  74. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  75. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  76. package/lib/esm/components/headerstateful/HeaderStateful.js +12 -9
  77. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  78. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +21 -23
  79. package/lib/esm/components/livechatwidget/common/endChat.js +111 -46
  80. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  81. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +34 -11
  82. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +94 -20
  83. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -4
  84. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +23 -22
  85. package/lib/esm/components/livechatwidget/common/startChat.js +146 -52
  86. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  87. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +212 -45
  88. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  89. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  90. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  91. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +25 -10
  92. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +25 -5
  93. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  94. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +72 -0
  95. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  96. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  97. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  98. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  99. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  100. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  101. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  102. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  103. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  104. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  105. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  106. package/lib/esm/contexts/common/ConversationState.js +3 -2
  107. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +12 -7
  108. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +11 -3
  109. package/lib/esm/contexts/createReducer.js +36 -9
  110. package/lib/esm/controller/componentController.js +3 -3
  111. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  112. package/lib/types/assets/Audios.d.ts +1 -0
  113. package/lib/types/assets/Icons.d.ts +11 -0
  114. package/lib/types/common/Constants.d.ts +25 -1
  115. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  116. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  117. package/lib/types/common/telemetry/TelemetryConstants.d.ts +39 -2
  118. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  119. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  120. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  121. package/lib/types/common/utils.d.ts +3 -0
  122. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  123. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  124. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  125. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  126. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -2
  127. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  128. package/lib/types/components/livechatwidget/common/startChat.d.ts +1 -1
  129. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  130. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  131. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -0
  132. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  133. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  134. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -0
  135. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  136. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  137. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  138. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  139. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  140. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  141. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  142. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  143. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  144. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  145. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  146. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +4 -0
  147. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +13 -8
  148. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  149. package/package.json +11 -11
  150. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  151. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  152. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  153. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  154. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  155. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  156. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  157. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  158. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  159. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  160. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  161. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  162. package/lib/esm/assets/assets.d.js +0 -0
  163. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  164. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  165. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  166. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  167. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  168. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  169. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  170. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  171. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  172. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  173. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  174. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -5,8 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.dummyDefaultProps = void 0;
7
7
 
8
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
+
8
10
  var _mockadapter = _interopRequireDefault(require("../../../webchatcontainerstateful/common/mockadapter"));
9
11
 
12
+ var _Audios = require("../../../../assets/Audios");
13
+
10
14
  var _WebChatStoreLoader = require("../../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
11
15
 
12
16
  var _activityStatusMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware");
@@ -23,13 +27,15 @@ var _groupActivitiesMiddleware = require("../../../webchatcontainerstateful/webc
23
27
 
24
28
  var _typingIndicatorMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware");
25
29
 
30
+ var _WebChatLogger = require("../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger");
31
+
26
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
33
 
28
34
  /* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */
29
35
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
36
  const dummyDefaultProps = {
31
37
  audioNotificationProps: {
32
- audioSrc: "assets/audios/newMessageNotification.mp3"
38
+ audioSrc: _Audios.NewMessageNotificationSoundBase64
33
39
  },
34
40
  callingContainerProps: {
35
41
  controlProps: {
@@ -268,18 +274,6 @@ const dummyDefaultProps = {
268
274
  width: "50px",
269
275
  fontSize: "18px"
270
276
  },
271
- currentCallTimerStyleProps: {
272
- borderRadius: "2px",
273
- margin: "1px",
274
- color: "#FFFFFF",
275
- paddingTop: "18px",
276
- fontSize: 12,
277
- fontFamily: "Segoe UI, Arial, sans-serif",
278
- backgroundColor: "darkgrey",
279
- height: "45px",
280
- width: "50px",
281
- textAlign: "center"
282
- },
283
277
  videoTileStyleProps: {
284
278
  width: "100%",
285
279
  marginLeft: "auto",
@@ -343,7 +337,9 @@ const dummyDefaultProps = {
343
337
  hideChatTextContainer: false,
344
338
  hideChatSubtitle: false,
345
339
  hideChatTitle: false,
346
- hideNotificationBubble: true
340
+ hideNotificationBubble: true,
341
+ unreadMessageString: "new messages",
342
+ largeUnreadMessageString: "99+"
347
343
  },
348
344
  styleProps: {
349
345
  generalStyleProps: {
@@ -384,7 +380,7 @@ const dummyDefaultProps = {
384
380
  margin: "-2px -2px -2px -3px",
385
381
  justifyContent: "center",
386
382
  backgroundSize: "65% 65%",
387
- backgroundImage: "assets/imgs/chat.svg",
383
+ backgroundImage: `url(${_omnichannelChatComponents.ModernChatIconBase64})`,
388
384
  display: "flex",
389
385
  backgroundRepeat: "no-repeat",
390
386
  backgroundPosition: "center"
@@ -905,7 +901,7 @@ const dummyDefaultProps = {
905
901
  },
906
902
  headerIconProps: {
907
903
  id: "oc-lcw-header-icon",
908
- src: "assets/imgs/chatIcon.svg",
904
+ src: _omnichannelChatComponents.ModernChatIconBase64,
909
905
  alt: "Chat Icon",
910
906
  className: undefined
911
907
  },
@@ -1030,7 +1026,7 @@ const dummyDefaultProps = {
1030
1026
  alignSelf: "auto"
1031
1027
  },
1032
1028
  iconImageProps: {
1033
- src: "assets/imgs/chat.svg",
1029
+ src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2lpKSI+DQo8cGF0aCBkPSJNMTUuMTk3MSAxNi4yNzI1VjI1Ljg1MjRDMTUuMTk3MSAyNy4zODExIDE1Ljg0MDEgMjcuNTIwMSAxNi45ODMyIDI3LjUyMDFMMjYuNzA4NCAyNy41NjQ5TDMxLjAwMzkgMzIuMzEyM1YyNy41NjQ5SDMxLjg5N0MzMi4xNzQzIDI3LjU2MzcgMzIuNDQ4NyAyNy41MDc3IDMyLjcwNDUgMjcuNDAwMUMzMi45NjAzIDI3LjI5MjQgMzMuMTkyNSAyNy4xMzUzIDMzLjM4NzggMjYuOTM3NUMzMy41ODMxIDI2LjczOTggMzMuNzM3NyAyNi41MDU0IDMzLjg0MjcgMjYuMjQ3N0MzMy45NDc4IDI1Ljk5IDM0LjAwMTMgMjUuNzE0IDM0LjAwMDEgMjUuNDM1NVYxNi4zMDM4QzM0LjAwMTMgMTYuMDI1NCAzMy45NDc4IDE1Ljc0OTQgMzMuODQyNyAxNS40OTE3QzMzLjczNzcgMTUuMjM0IDMzLjU4MzEgMTQuOTk5NiAzMy4zODc4IDE0LjgwMThDMzMuMTkyNSAxNC42MDQxIDMyLjk2MDMgMTQuNDQ2OSAzMi43MDQ1IDE0LjMzOTNDMzIuNDQ4NyAxNC4yMzE2IDMyLjE3NDMgMTQuMTc1NiAzMS44OTcgMTQuMTc0NEwxNy4zMDQ3IDE0LjE0MzFDMTcuMDI2OSAxNC4xNDM3IDE2Ljc1MiAxNC4xOTkyIDE2LjQ5NTcgMTQuMzA2NkMxNi4yMzk0IDE0LjQxNCAxNi4wMDY3IDE0LjU3MTEgMTUuODEwOSAxNC43Njg5QzE1LjYxNTIgMTQuOTY2NyAxNS40NjAyIDE1LjIwMTMgMTUuMzU0OCAxNS40NTkzQzE1LjI0OTUgMTUuNzE3MyAxNS4xOTU5IDE1Ljk5MzYgMTUuMTk3MSAxNi4yNzI1WiIgZmlsbD0iI0Q2RDZENiIvPg0KPC9nPg0KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjFfZGlpKSI+DQo8cGF0aCBkPSJNMjcuODczNSA2LjY5ODg3VjE4Ljg0MDlDMjcuODczNSAyMC43Nzg1IDI3LjA1NzIgMjAuOTU0NiAyNS42MDU4IDIwLjk1NDZMMTMuMjU4IDIxLjAxMTRMNy44MDQxNCAyNy4wMjg1VjIxLjAxMTRINi42NzAyN0M2LjMxODEyIDIxLjAwOTkgNS45Njk3MSAyMC45Mzg5IDUuNjQ0OTMgMjAuODAyNUM1LjMyMDE2IDIwLjY2NjEgNS4wMjUzOCAyMC40NjY4IDQuNzc3NDIgMjAuMjE2MkM0LjUyOTQ2IDE5Ljk2NTYgNC4zMzMxOSAxOS42Njg1IDQuMTk5OCAxOS4zNDE5QzQuMDY2NDIgMTkuMDE1MiAzLjk5ODUzIDE4LjY2NTUgNC4wMDAwMiAxOC4zMTI1VjYuNzM4NjRDMy45OTg1MyA2LjM4NTcxIDQuMDY2NDIgNi4wMzU5NSA0LjE5OTggNS43MDkzMUM0LjMzMzE5IDUuMzgyNjcgNC41Mjk0NiA1LjA4NTU3IDQuNzc3NDIgNC44MzQ5NUM1LjAyNTM4IDQuNTg0MzQgNS4zMjAxNiA0LjM4NTEzIDUuNjQ0OTMgNC4yNDg2OUM1Ljk2OTcxIDQuMTEyMjUgNi4zMTgxMiA0LjA0MTI2IDYuNjcwMjcgNC4wMzk3N0wyNS4xOTc2IDRDMjUuNTUwMiA0LjAwMDc0IDI1Ljg5OTMgNC4wNzExOCAyNi4yMjQ3IDQuMjA3MjlDMjYuNTUwMSA0LjM0MzM5IDI2Ljg0NTYgNC41NDI0OSAyNy4wOTQxIDQuNzkzMThDMjcuMzQyNyA1LjA0Mzg2IDI3LjUzOTUgNS4zNDEyMiAyNy42NzMyIDUuNjY4MjNDMjcuODA3IDUuOTk1MjMgMjcuODc1IDYuMzQ1NDYgMjcuODczNSA2LjY5ODg3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIvPg0KPC9nPg0KPGRlZnM+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2lpIiB4PSIxNS4xOTcxIiB5PSIxNC4xNDMxIiB3aWR0aD0iMTguODAzMSIgaGVpZ2h0PSIxOC4xNjkzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+DQo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC4yIiBkeT0iLTAuMiIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTcgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC41IiBkeT0iLTAuNSIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTYgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9ImVmZmVjdDFfaW5uZXJTaGFkb3ciIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPC9maWx0ZXI+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2RpaSIgeD0iMCIgeT0iMCIgd2lkdGg9IjM5Ljg3MzYiIGhlaWdodD0iMzkuMDI4NSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPg0KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+DQo8ZmVPZmZzZXQgZHg9IjQiIGR5PSI0Ii8+DQo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI0Ii8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMiIgZHk9Ii0yIi8+DQo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIi8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4xNyAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0ic2hhcGUiIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+DQo8ZmVPZmZzZXQgZHg9Ii0xIiBkeT0iLTEiLz4NCjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiLz4NCjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwLjE2IDAiLz4NCjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJlZmZlY3QyX2lubmVyU2hhZG93IiByZXN1bHQ9ImVmZmVjdDNfaW5uZXJTaGFkb3ciLz4NCjwvZmlsdGVyPg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iLTAuMzk1MDAxIiB5MT0iMjMuMTI4MiIgeDI9IjIwLjEwNTgiIHkyPSIzNy44NDc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjRUZFRkVGIi8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIi8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPC9kZWZzPg0KPC9zdmc+DQo=",
1034
1030
  imageFit: 0,
1035
1031
  width: "86px",
1036
1032
  height: "86px",
@@ -1238,7 +1234,7 @@ const dummyDefaultProps = {
1238
1234
  },
1239
1235
  headerContainerStyleProps: {
1240
1236
  backgroundColor: "rgb(49, 95, 162)",
1241
- backgroundImage: "assets/imgs/Proactive_banner.png",
1237
+ backgroundImage: `url(${_omnichannelChatComponents.ProactiveChatBannerBase64})`,
1242
1238
  backgroundPosition: "initial",
1243
1239
  backgroundRepeat: "no-repeat",
1244
1240
  borderTopLeftRadius: "inherit",
@@ -1266,7 +1262,7 @@ const dummyDefaultProps = {
1266
1262
  fontWeight: "600"
1267
1263
  },
1268
1264
  closeButtonStyleProps: {
1269
- backgroundImage: "assets/imgs/closeChatButton.svg",
1265
+ backgroundImage: `url(${_omnichannelChatComponents.CloseChatButtonIconBase64})`,
1270
1266
  backgroundPosition: "center",
1271
1267
  backgroundRepeat: "no-repeat",
1272
1268
  color: "#605e5c",
@@ -1389,7 +1385,7 @@ const dummyDefaultProps = {
1389
1385
  lineHeight: "19px"
1390
1386
  },
1391
1387
  iconStyleProps: {
1392
- backgroundImage: "assets/imgs//ChatReconnectPopupIcon.png",
1388
+ backgroundImage: `url(${_omnichannelChatComponents.ChatReconnectIconBase64})`,
1393
1389
  backgroundPosition: "center",
1394
1390
  backgroundRepeat: "no-repeat",
1395
1391
  backgroundSize: "200px",
@@ -1440,7 +1436,8 @@ const dummyDefaultProps = {
1440
1436
  },
1441
1437
  authClientFunction: undefined,
1442
1438
  isReconnectEnabled: undefined,
1443
- reconnectId: undefined
1439
+ reconnectId: undefined,
1440
+ redirectInSameWindow: undefined
1444
1441
  },
1445
1442
  styleProps: {
1446
1443
  generalStyles: {
@@ -1512,7 +1509,7 @@ const dummyDefaultProps = {
1512
1509
  internalErrorBoxClass: undefined,
1513
1510
  internalRenderErrorBox: undefined,
1514
1511
  locale: "en-US",
1515
- onTelemetry: undefined,
1512
+ onTelemetry: (0, _WebChatLogger.createWebChatTelemetry)(),
1516
1513
  overrideLocalizedStrings: undefined,
1517
1514
  renderMarkdown: (0, _createMarkdown.createMarkdown)(false, false),
1518
1515
  scrollToEndButtonMiddleware: undefined,
@@ -1702,6 +1699,10 @@ const dummyDefaultProps = {
1702
1699
  MIDDLEWARE_MESSAGE_RETRY: "Retry",
1703
1700
  PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required",
1704
1701
  MARKDOWN_EXTERNAL_LINK_ALT: "Opens in a new window; external."
1702
+ },
1703
+ botMagicCode: {
1704
+ disabled: false,
1705
+ fwdUrl: ""
1705
1706
  }
1706
1707
  },
1707
1708
  telemetryConfig: undefined
@@ -3,71 +3,138 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.endChat = void 0;
6
+ exports.prepareEndChat = exports.endChat = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
9
 
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+
10
12
  var _ConversationState = require("../../../contexts/common/ConversationState");
11
13
 
12
14
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
13
15
 
14
- var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
15
-
16
- var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
17
-
18
16
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
19
17
 
20
18
  var _WebChatStoreLoader = require("../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
21
19
 
22
20
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
23
21
 
24
- var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
22
+ var _PostChatSurveyMode = require("../../postchatsurveypanestateful/enums/PostChatSurveyMode");
23
+
24
+ var _Constants = require("../../../common/Constants");
25
+
26
+ var _utils = require("../../../common/utils");
25
27
 
26
28
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter) => {
28
- try {
29
- var _props$webChatContain;
30
-
31
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
32
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
33
- });
34
-
35
- await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
36
- adapter === null || adapter === void 0 ? void 0 : adapter.end();
37
- setAdapter(undefined);
38
- setWebChatStyles({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
39
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
40
- });
41
- _WebChatStoreLoader.WebChatStoreLoader.store = null;
42
- dispatch({
43
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
44
- payload: _ConversationState.ConversationState.Closed
45
- });
46
- dispatch({
47
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
48
- payload: undefined
49
- });
50
- dispatch({
51
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
52
- payload: null
53
- });
54
- dispatch({
55
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
56
- payload: undefined
57
- });
58
-
59
- _omnichannelChatComponents.BroadcastService.postMessage({
60
- eventName: "EndChat"
61
- });
62
- } catch (ex) {
63
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
64
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
65
- ExceptionDetails: {
66
- exception: ex
67
- }
68
- });
29
+ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
30
+ var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4;
31
+
32
+ const isPostChatEnabled = (_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.msdyn_postconversationsurveyenable;
33
+ const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode;
34
+ const conversationDetails = await chatSDK.getConversationDetails();
35
+
36
+ if (isPostChatEnabled === "true" && (conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.canRenderPostChat) === _Constants.Constants.truePascal) {
37
+ const skipEndChatSDK = false;
38
+ const skipCloseChat = true;
39
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, true);
40
+
41
+ if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
42
+ const loadPostChatEvent = {
43
+ eventName: _TelemetryConstants.BroadcastEvent.LoadPostChatSurvey
44
+ };
45
+
46
+ _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
47
+ } else if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
48
+ dispatch({
49
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
50
+ payload: _ConversationState.ConversationState.InActive
51
+ });
52
+ }
53
+ } else {
54
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, true);
55
+ }
56
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+
58
+
59
+ exports.prepareEndChat = prepareEndChat;
60
+
61
+ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => {
62
+ if (!skipEndChatSDK) {
63
+ try {
64
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
65
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
66
+ });
67
+
68
+ await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat()); // Need to clear these states immediately when chat ended from OC.
69
+
70
+ dispatch({
71
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
72
+ payload: undefined
73
+ });
74
+ dispatch({
75
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
76
+ payload: undefined
77
+ });
78
+ } catch (ex) {
79
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
80
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
81
+ ExceptionDetails: {
82
+ exception: ex
83
+ }
84
+ });
85
+
86
+ postMessageToOtherTab = false;
87
+ }
88
+ }
69
89
 
70
- _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "End Chat Call Failed: " + ex);
90
+ if (!skipCloseChat) {
91
+ try {
92
+ var _props$webChatContain;
93
+
94
+ adapter === null || adapter === void 0 ? void 0 : adapter.end();
95
+ setAdapter(undefined);
96
+ setWebChatStyles({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
97
+ ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
98
+ });
99
+ _WebChatStoreLoader.WebChatStoreLoader.store = null;
100
+ dispatch({
101
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
102
+ payload: _ConversationState.ConversationState.Closed
103
+ });
104
+ dispatch({
105
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
106
+ payload: false
107
+ });
108
+ dispatch({
109
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
110
+ payload: undefined
111
+ });
112
+ dispatch({
113
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
114
+ payload: null
115
+ });
116
+ dispatch({
117
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
118
+ payload: 0
119
+ });
120
+
121
+ if (postMessageToOtherTab) {
122
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2;
123
+
124
+ const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId);
125
+
126
+ _omnichannelChatComponents.BroadcastService.postMessage({
127
+ eventName: endChatEventName
128
+ });
129
+ }
130
+ } catch (error) {
131
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
132
+ Event: _TelemetryConstants.TelemetryEvent.CloseChatMethodException,
133
+ ExceptionDetails: {
134
+ exception: `Failed to endChat: ${error}`
135
+ }
136
+ });
137
+ }
71
138
  }
72
139
  };
73
140
 
@@ -17,6 +17,11 @@ const initCallingSdk = async (chatSDK, setVoiceVideoCallingSDK) => {
17
17
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
18
  const callingSDK = await chatSDK.getVoiceVideoCalling();
19
19
  setVoiceVideoCallingSDK(callingSDK);
20
+
21
+ _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
22
+ Event: _TelemetryConstants.TelemetryEvent.CallingSDKLoadSuccess
23
+ });
24
+
20
25
  return true;
21
26
  }
22
27
 
@@ -5,14 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.initWebChatComposer = void 0;
7
7
 
8
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
+
8
10
  var _botframeworkWebchat = require("botframework-webchat");
9
11
 
12
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
13
+
10
14
  var _ConversationState = require("../../../contexts/common/ConversationState");
11
15
 
12
16
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
13
17
 
14
18
  var _PostChatSurveyMode = require("../../postchatsurveypanestateful/enums/PostChatSurveyMode");
15
19
 
20
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
21
+
16
22
  var _WebChatStoreLoader = require("../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
17
23
 
18
24
  var _attachmentProcessingMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware"));
@@ -37,6 +43,8 @@ var _createMarkdown = require("./createMarkdown");
37
43
 
38
44
  var _maxMessageSizeValidator = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator"));
39
45
 
46
+ var _WebChatLogger = require("../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger");
47
+
40
48
  var _defaultAttachmentProps = require("../../webchatcontainerstateful/common/defaultProps/defaultAttachmentProps");
41
49
 
42
50
  var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
@@ -55,13 +63,15 @@ var _preProcessingMiddleware = _interopRequireDefault(require("../../webchatcont
55
63
 
56
64
  var _sanitizationMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware"));
57
65
 
58
- var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
66
+ var _cardActionMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware");
67
+
68
+ var _messageTimestampMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware"));
59
69
 
60
70
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
61
71
 
62
72
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
73
  const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles) => {
64
- var _props$webChatContain, _props$webChatContain2, _props$webChatContain3, _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _state$domainStates$l8, _state$domainStates$l9, _props$webChatContain7, _props$webChatContain8, _state$domainStates$r, _state$domainStates$r2, _props$webChatContain9, _props$webChatContain10, _state$domainStates$r3, _state$domainStates$r4, _props$webChatContain11, _props$webChatContain12, _defaultWebChatContai, _props$webChatContain13, _props$webChatContain14, _props$webChatContain15, _props$webChatContain16, _state$domainStates$r5, _state$domainStates$r6, _props$webChatContain17, _props$webChatContain18, _defaultWebChatContai2, _props$webChatContain19, _props$webChatContain20, _defaultWebChatContai3, _props$webChatContain21;
74
+ var _props$webChatContain, _props$webChatContain2, _props$webChatContain3, _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _state$domainStates$l8, _state$domainStates$l9, _props$webChatContain7, _props$webChatContain8, _state$domainStates$r, _state$domainStates$r2, _props$webChatContain9, _props$webChatContain10, _state$domainStates$r3, _state$domainStates$r4, _props$webChatContain11, _props$webChatContain12, _defaultWebChatContai, _props$webChatContain13, _props$webChatContain14, _props$webChatContain15, _props$webChatContain16, _state$domainStates$r5, _state$domainStates$r6, _props$webChatContain17, _props$webChatContain18, _defaultWebChatContai2, _props$webChatContain19, _props$webChatContain20, _defaultWebChatContai3, _props$webChatContain21, _props$webChatContain22;
65
75
 
66
76
  const localizedTexts = { ..._defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts,
67
77
  ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.localizedTexts)
@@ -80,6 +90,11 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
80
90
  const conversationEndCallback = async () => {
81
91
  var _props$webChatContain4, _props$webChatContain5;
82
92
 
93
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
94
+ Event: _TelemetryConstants.TelemetryEvent.ConversationEndedThreadEventReceived,
95
+ Description: "Conversation is ended by agent side or by timeout."
96
+ });
97
+
83
98
  if ((props === null || props === void 0 ? void 0 : (_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : (_props$webChatContain5 = _props$webChatContain4.renderingMiddlewareProps) === null || _props$webChatContain5 === void 0 ? void 0 : _props$webChatContain5.hideSendboxOnConversationEnd) !== false) {
84
99
  setWebChatStyles(styles => {
85
100
  return { ...styles,
@@ -88,26 +103,38 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
88
103
  });
89
104
  }
90
105
 
91
- if (isPostChatEnabled === "true" && postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
106
+ if (isPostChatEnabled === "true") {
107
+ if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
108
+ const loadPostChatEvent = {
109
+ eventName: _TelemetryConstants.BroadcastEvent.LoadPostChatSurvey
110
+ };
111
+
112
+ _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
113
+ } else if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
114
+ dispatch({
115
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
116
+ payload: _ConversationState.ConversationState.InActive
117
+ });
118
+ }
119
+ } else {
92
120
  dispatch({
93
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT,
121
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
94
122
  payload: true
95
123
  });
96
- dispatch({
97
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
98
- payload: _ConversationState.ConversationState.Loading
99
- });
100
- await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
101
124
  }
102
125
 
103
126
  dispatch({
104
127
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
105
128
  payload: undefined
106
129
  });
130
+ dispatch({
131
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
132
+ payload: undefined
133
+ });
107
134
  };
108
135
 
109
136
  webChatStore = (0, _botframeworkWebchat.createStore)({}, //initial state
110
- _preProcessingMiddleware.default, _attachmentProcessingMiddleware.default, (0, _attachmentUploadValidatorMiddleware.default)((_state$domainStates$l5 = state.domainStates.liveChatConfig) === null || _state$domainStates$l5 === void 0 ? void 0 : _state$domainStates$l5.allowedFileExtensions, (_state$domainStates$l6 = state.domainStates.liveChatConfig) === null || _state$domainStates$l6 === void 0 ? void 0 : _state$domainStates$l6.maxUploadFileSize, localizedTexts), _channelDataMiddleware.default, (0, _conversationEndMiddleware.default)(conversationEndCallback), (0, _dataMaskingMiddleware.default)((_state$domainStates$l7 = state.domainStates.liveChatConfig) === null || _state$domainStates$l7 === void 0 ? void 0 : _state$domainStates$l7.DataMaskingInfo), _gifUploadMiddleware.default, _htmlPlayerMiddleware.default, _htmlTextMiddleware.default, (0, _maxMessageSizeValidator.default)(localizedTexts), _sanitizationMiddleware.default, // eslint-disable-next-line @typescript-eslint/no-explicit-any
137
+ _preProcessingMiddleware.default, _attachmentProcessingMiddleware.default, (0, _attachmentUploadValidatorMiddleware.default)((_state$domainStates$l5 = state.domainStates.liveChatConfig) === null || _state$domainStates$l5 === void 0 ? void 0 : _state$domainStates$l5.allowedFileExtensions, (_state$domainStates$l6 = state.domainStates.liveChatConfig) === null || _state$domainStates$l6 === void 0 ? void 0 : _state$domainStates$l6.maxUploadFileSize, localizedTexts), _channelDataMiddleware.default, (0, _conversationEndMiddleware.default)(conversationEndCallback), (0, _dataMaskingMiddleware.default)((_state$domainStates$l7 = state.domainStates.liveChatConfig) === null || _state$domainStates$l7 === void 0 ? void 0 : _state$domainStates$l7.DataMaskingInfo), _messageTimestampMiddleware.default, _gifUploadMiddleware.default, _htmlPlayerMiddleware.default, _htmlTextMiddleware.default, (0, _maxMessageSizeValidator.default)(localizedTexts), _sanitizationMiddleware.default, // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
138
  ...(((_props$webChatContain6 = props.webChatContainerProps) === null || _props$webChatContain6 === void 0 ? void 0 : _props$webChatContain6.storeMiddlewares) ?? []));
112
139
  _WebChatStoreLoader.WebChatStoreLoader.store = webChatStore;
113
140
  } // Initialize the remaining Web Chat props
@@ -124,7 +151,9 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
124
151
  avatarMiddleware: (_props$webChatContain15 = props.webChatContainerProps) !== null && _props$webChatContain15 !== void 0 && (_props$webChatContain16 = _props$webChatContain15.renderingMiddlewareProps) !== null && _props$webChatContain16 !== void 0 && _props$webChatContain16.disableAvatarMiddleware ? undefined : (0, _avatarMiddleware.createAvatarMiddleware)((_state$domainStates$r5 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r5 === void 0 ? void 0 : _state$domainStates$r5.avatarStyleProps, (_state$domainStates$r6 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r6 === void 0 ? void 0 : _state$domainStates$r6.avatarTextStyleProps),
125
152
  groupActivitiesMiddleware: (_props$webChatContain17 = props.webChatContainerProps) !== null && _props$webChatContain17 !== void 0 && (_props$webChatContain18 = _props$webChatContain17.renderingMiddlewareProps) !== null && _props$webChatContain18 !== void 0 && _props$webChatContain18.disableGroupActivitiesMiddleware ? undefined : (_defaultWebChatContai2 = _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatProps) === null || _defaultWebChatContai2 === void 0 ? void 0 : _defaultWebChatContai2.groupActivitiesMiddleware,
126
153
  typingIndicatorMiddleware: (_props$webChatContain19 = props.webChatContainerProps) !== null && _props$webChatContain19 !== void 0 && (_props$webChatContain20 = _props$webChatContain19.renderingMiddlewareProps) !== null && _props$webChatContain20 !== void 0 && _props$webChatContain20.disableTypingIndicatorMiddleware ? undefined : (_defaultWebChatContai3 = _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatProps) === null || _defaultWebChatContai3 === void 0 ? void 0 : _defaultWebChatContai3.typingIndicatorMiddleware,
127
- ...((_props$webChatContain21 = props.webChatContainerProps) === null || _props$webChatContain21 === void 0 ? void 0 : _props$webChatContain21.webChatProps)
154
+ onTelemetry: (0, _WebChatLogger.createWebChatTelemetry)(),
155
+ cardActionMiddleware: (0, _cardActionMiddleware.createCardActionMiddleware)(((_props$webChatContain21 = props.webChatContainerProps) === null || _props$webChatContain21 === void 0 ? void 0 : _props$webChatContain21.botMagicCode) || undefined),
156
+ ...((_props$webChatContain22 = props.webChatContainerProps) === null || _props$webChatContain22 === void 0 ? void 0 : _props$webChatContain22.webChatProps)
128
157
  };
129
158
  return webChatProps;
130
159
  };
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.handleUnauthenticatedReconnectChat = exports.getReconnectIdForAuthenticatedChat = void 0;
6
+ exports.startUnauthenticatedReconnectChat = exports.handleUnauthenticatedReconnectChat = exports.handleRedirectUnauthenticatedReconnectChat = exports.getReconnectIdForAuthenticatedChat = exports.getChatReconnectContext = void 0;
7
7
 
8
8
  require("regenerator-runtime/runtime");
9
9
 
10
10
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
11
11
 
12
- var _Constants = require("../../../common/Constants");
12
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
13
13
 
14
14
  var _ConversationState = require("../../../contexts/common/ConversationState");
15
15
 
@@ -41,6 +41,8 @@ const getChatReconnectContext = async (chatSDK, reconnectId) => {
41
41
  }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
42
 
43
43
 
44
+ exports.getChatReconnectContext = getChatReconnectContext;
45
+
44
46
  const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
45
47
  var _props$reconnectChatP, _props$reconnectChatP2;
46
48
 
@@ -61,33 +63,116 @@ const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
61
63
 
62
64
  exports.getReconnectIdForAuthenticatedChat = getReconnectIdForAuthenticatedChat;
63
65
 
64
- const handleUnauthenticatedReconnectChat = async (dispatch, reconnectId, initStartChat) => {
65
- const reconnectAvailabilityResponse = await getChatReconnectContext(reconnectId);
66
+ const handleUnauthenticatedReconnectChat = async (chatSDK, dispatch, setAdapter, reconnectId, initStartChat, redirectInSameWindow) => {
67
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
66
68
 
67
- if (reconnectAvailabilityResponse && reconnectAvailabilityResponse.redirectURL) {
68
- redirectPage(reconnectAvailabilityResponse.redirectURL);
69
+ if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
70
+ await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, dispatch, setAdapter, initStartChat, redirectInSameWindow);
69
71
  } else {
70
- const optionalParams = {
71
- reconnectId: reconnectId
72
- };
72
+ await setReconnectIdAndStartChat(chatSDK, dispatch, setAdapter, reconnectId, initStartChat);
73
+ }
74
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
+
76
+
77
+ exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
78
+
79
+ const startUnauthenticatedReconnectChat = async (chatSDK, dispatch, setAdapter, reconnectId, initStartChat) => {
80
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
81
+
82
+ if (!shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
83
+ await setReconnectIdAndStartChat(chatSDK, dispatch, setAdapter, reconnectId, initStartChat);
84
+ }
85
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+
87
+
88
+ exports.startUnauthenticatedReconnectChat = startUnauthenticatedReconnectChat;
89
+
90
+ const setReconnectIdAndStartChat = async (chatSDK, dispatch, setAdapter, reconnectId, initStartChat) => {
91
+ const startUnauthenticatedReconnectChat = {
92
+ eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
93
+ };
94
+
95
+ _omnichannelChatComponents.BroadcastService.postMessage(startUnauthenticatedReconnectChat);
96
+
97
+ const optionalParams = {
98
+ reconnectId: reconnectId
99
+ };
100
+ dispatch({
101
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
102
+ payload: reconnectId
103
+ });
104
+ dispatch({
105
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
106
+ payload: _ConversationState.ConversationState.Loading
107
+ });
108
+ await initStartChat(chatSDK, dispatch, setAdapter, optionalParams);
109
+ };
110
+
111
+ const redirectPage = (redirectURL, redirectInSameWindow) => {
112
+ const redirectPageRequest = {
113
+ eventName: _TelemetryConstants.BroadcastEvent.RedirectPageRequest,
114
+ payload: {
115
+ redirectURL: redirectURL
116
+ }
117
+ };
118
+
119
+ _omnichannelChatComponents.BroadcastService.postMessage(redirectPageRequest);
120
+
121
+ if (redirectInSameWindow) {
122
+ window.location.href = redirectURL;
123
+ }
124
+ };
125
+
126
+ const shouldRedirectOrStartNewChat = reconnectAvailabilityResponse => {
127
+ return reconnectAvailabilityResponse && !reconnectAvailabilityResponse.reconnectId;
128
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
129
+
130
+
131
+ const startNewChatEmptyRedirectionUrl = async (chatSDK, dispatch, setAdapter, initStartChat) => {
132
+ const startUnauthenticatedReconnectChat = {
133
+ eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
134
+ };
135
+
136
+ _omnichannelChatComponents.BroadcastService.postMessage(startUnauthenticatedReconnectChat); // Getting PreChat Survey Context
137
+
138
+
139
+ const parseToJson = false;
140
+ const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
141
+
142
+ if (preChatSurveyResponse) {
143
+ dispatch({
144
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
145
+ payload: preChatSurveyResponse
146
+ });
73
147
  dispatch({
74
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
75
- payload: reconnectId
148
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
149
+ payload: _ConversationState.ConversationState.Prechat
76
150
  });
151
+ } else {
77
152
  dispatch({
78
153
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
79
154
  payload: _ConversationState.ConversationState.Loading
80
155
  });
81
- await initStartChat(optionalParams);
156
+ await initStartChat(chatSDK, dispatch, setAdapter);
82
157
  }
83
- };
158
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
159
 
85
- exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
86
160
 
87
- const redirectPage = newUrl => {
88
- const data = {
89
- messageName: _Constants.Constants.redirectPageRequest,
90
- newUrl: newUrl
91
- };
92
- window.parent.postMessage(data, "*");
161
+ const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, dispatch, setAdapter, initStartChat, reconnectId, redirectInSameWindow) => {
162
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
163
+
164
+ if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
165
+ await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, dispatch, setAdapter, initStartChat, redirectInSameWindow);
166
+ }
167
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
168
+
169
+
170
+ exports.handleRedirectUnauthenticatedReconnectChat = handleRedirectUnauthenticatedReconnectChat;
171
+
172
+ const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK, dispatch, setAdapter, initStartChat, redirectInSameWindow) => {
173
+ if (reconnectAvailabilityResponse.redirectURL) {
174
+ redirectPage(reconnectAvailabilityResponse.redirectURL, redirectInSameWindow);
175
+ } else {
176
+ await startNewChatEmptyRedirectionUrl(chatSDK, dispatch, setAdapter, initStartChat);
177
+ }
93
178
  };