@microsoft/omnichannel-chat-widget 0.1.0-main.8b6c0d8 → 0.1.0-main.8cded52

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 (205) 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 +54 -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 +61 -4
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +22 -4
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +28 -9
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  12. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +48 -15
  13. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +9 -5
  14. package/lib/cjs/common/utils.js +89 -2
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +28 -5
  17. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -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 +14 -10
  22. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
  23. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  24. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  25. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
  26. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  27. package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
  28. package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
  29. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +32 -32
  30. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +50 -48
  31. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +14 -0
  32. package/lib/cjs/components/livechatwidget/common/endChat.js +142 -43
  33. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  34. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +51 -10
  35. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +115 -22
  36. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -7
  37. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +22 -24
  38. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  39. package/lib/cjs/components/livechatwidget/common/startChat.js +225 -40
  40. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  41. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +296 -69
  42. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  43. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  44. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  45. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  46. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -5
  47. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  48. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +80 -0
  49. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  50. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  51. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  52. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  53. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  54. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  55. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  56. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  57. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  58. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  59. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  60. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  61. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +14 -7
  62. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +14 -5
  63. package/lib/cjs/contexts/createReducer.js +51 -10
  64. package/lib/cjs/controller/componentController.js +5 -5
  65. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  66. package/lib/esm/assets/Audios.js +1 -0
  67. package/lib/esm/assets/Icons.js +11 -0
  68. package/lib/esm/common/Constants.js +50 -3
  69. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  70. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  71. package/lib/esm/common/telemetry/TelemetryConstants.js +57 -3
  72. package/lib/esm/common/telemetry/TelemetryHelper.js +22 -5
  73. package/lib/esm/common/telemetry/TelemetryManager.js +22 -9
  74. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  75. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  76. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +50 -15
  77. package/lib/esm/common/telemetry/loggers/consoleLogger.js +9 -5
  78. package/lib/esm/common/utils.js +64 -1
  79. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  80. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +31 -8
  81. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -50
  82. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  83. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  84. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  85. package/lib/esm/components/headerstateful/HeaderStateful.js +15 -11
  86. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
  87. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  88. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  89. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
  90. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  91. package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
  92. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
  93. package/lib/esm/components/livechatwidget/common/createMarkdown.js +32 -31
  94. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +48 -49
  95. package/lib/esm/components/livechatwidget/common/disposeTelemetryLoggers.js +4 -0
  96. package/lib/esm/components/livechatwidget/common/endChat.js +139 -42
  97. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  98. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +45 -11
  99. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +104 -22
  100. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -3
  101. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +19 -22
  102. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  103. package/lib/esm/components/livechatwidget/common/startChat.js +212 -37
  104. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  105. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +280 -74
  106. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  107. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  108. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  109. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  110. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -6
  111. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  112. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +72 -0
  113. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  114. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  115. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  116. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  117. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  118. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  119. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  120. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  121. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  122. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  123. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  124. package/lib/esm/contexts/common/ConversationState.js +4 -2
  125. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +14 -7
  126. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +14 -5
  127. package/lib/esm/contexts/createReducer.js +51 -9
  128. package/lib/esm/controller/componentController.js +5 -5
  129. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  130. package/lib/types/assets/Audios.d.ts +1 -0
  131. package/lib/types/assets/Icons.d.ts +11 -0
  132. package/lib/types/common/Constants.d.ts +27 -1
  133. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  134. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  135. package/lib/types/common/telemetry/TelemetryConstants.d.ts +45 -2
  136. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  137. package/lib/types/common/telemetry/TelemetryManager.d.ts +1 -0
  138. package/lib/types/common/telemetry/definitions/Contracts.d.ts +3 -0
  139. package/lib/types/common/telemetry/definitions/Payload.d.ts +15 -9
  140. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
  141. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
  142. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +12 -0
  143. package/lib/types/common/utils.d.ts +8 -1
  144. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  145. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  146. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  147. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  148. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  149. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  150. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  151. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  152. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  153. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -0
  154. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  155. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  156. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  157. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  158. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  159. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  160. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  161. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  162. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -1
  163. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  164. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  165. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  166. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  167. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  168. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  169. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  170. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  171. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  172. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  173. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  174. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  175. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  176. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  177. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +6 -1
  178. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +15 -8
  179. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  180. package/package.json +13 -12
  181. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  182. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  183. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  184. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  185. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  186. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  187. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  188. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  189. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  190. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  191. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  192. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  193. package/lib/esm/assets/assets.d.js +0 -0
  194. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  195. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  196. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  197. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  198. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  199. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  200. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  201. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  202. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  203. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  204. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  205. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -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,17 @@ 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"));
69
+
70
+ var _Constants = require("../../../common/Constants");
59
71
 
60
72
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
61
73
 
62
74
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
75
  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;
76
+ 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
77
 
66
78
  const localizedTexts = { ..._defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts,
67
79
  ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.localizedTexts)
@@ -80,6 +92,11 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
80
92
  const conversationEndCallback = async () => {
81
93
  var _props$webChatContain4, _props$webChatContain5;
82
94
 
95
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
96
+ Event: _TelemetryConstants.TelemetryEvent.ConversationEndedThreadEventReceived,
97
+ Description: "Conversation is ended by agent side or by timeout."
98
+ });
99
+
83
100
  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
101
  setWebChatStyles(styles => {
85
102
  return { ...styles,
@@ -88,26 +105,48 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
88
105
  });
89
106
  }
90
107
 
91
- if (isPostChatEnabled === "true" && postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
108
+ if (isPostChatEnabled === "true") {
109
+ if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
110
+ _WebChatStoreLoader.WebChatStoreLoader.store = null;
111
+ dispatch({
112
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
113
+ payload: _ConversationState.ConversationState.PostchatLoading
114
+ });
115
+ await (0, _utils.addDelayInMs)(_Constants.Constants.PostChatLoadingDurationInMs);
116
+ const loadPostChatEvent = {
117
+ eventName: _TelemetryConstants.BroadcastEvent.LoadPostChatSurvey
118
+ };
119
+
120
+ _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
121
+ } else if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
122
+ dispatch({
123
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
124
+ payload: _ConversationState.ConversationState.InActive
125
+ });
126
+ }
127
+ } else {
92
128
  dispatch({
93
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT,
94
- payload: true
129
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
130
+ payload: _ConversationState.ConversationState.InActive
95
131
  });
96
132
  dispatch({
97
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
98
- payload: _ConversationState.ConversationState.Loading
133
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
134
+ payload: true
99
135
  });
100
- await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
101
136
  }
102
137
 
103
138
  dispatch({
104
139
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
105
140
  payload: undefined
106
141
  });
142
+ dispatch({
143
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
144
+ payload: undefined
145
+ });
107
146
  };
108
147
 
109
148
  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
149
+ _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
150
  ...(((_props$webChatContain6 = props.webChatContainerProps) === null || _props$webChatContain6 === void 0 ? void 0 : _props$webChatContain6.storeMiddlewares) ?? []));
112
151
  _WebChatStoreLoader.WebChatStoreLoader.store = webChatStore;
113
152
  } // Initialize the remaining Web Chat props
@@ -124,7 +163,9 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
124
163
  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
164
  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
165
  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)
166
+ onTelemetry: (0, _WebChatLogger.createWebChatTelemetry)(),
167
+ cardActionMiddleware: (0, _cardActionMiddleware.createCardActionMiddleware)(((_props$webChatContain21 = props.webChatContainerProps) === null || _props$webChatContain21 === void 0 ? void 0 : _props$webChatContain21.botMagicCode) || undefined),
168
+ ...((_props$webChatContain22 = props.webChatContainerProps) === null || _props$webChatContain22 === void 0 ? void 0 : _props$webChatContain22.webChatProps)
128
169
  };
129
170
  return webChatProps;
130
171
  };
@@ -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,10 +41,20 @@ 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
- var _props$reconnectChatP, _props$reconnectChatP2;
47
+ var _props$chatConfig, _props$reconnectChatP;
48
+
49
+ let authClientFunction = undefined;
46
50
 
47
- if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.isReconnectEnabled && (_props$reconnectChatP2 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP2 !== void 0 && _props$reconnectChatP2.authClientFunction // TODO: Implement this after storage is in place
51
+ if ((_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && _props$chatConfig.LiveChatConfigAuthSettings) {
52
+ var _props$chatConfig2, _props$chatConfig2$Li;
53
+
54
+ authClientFunction = ((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) === null || _props$chatConfig2$Li === void 0 ? void 0 : _props$chatConfig2$Li.msdyn_javascriptclientfunction) ?? undefined;
55
+ }
56
+
57
+ if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.isReconnectEnabled && authClientFunction // TODO: Implement this after storage is in place
48
58
 
49
59
  /* && !isLoadWithState() */
50
60
  ) {
@@ -61,33 +71,116 @@ const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
61
71
 
62
72
  exports.getReconnectIdForAuthenticatedChat = getReconnectIdForAuthenticatedChat;
63
73
 
64
- const handleUnauthenticatedReconnectChat = async (dispatch, reconnectId, initStartChat) => {
65
- const reconnectAvailabilityResponse = await getChatReconnectContext(reconnectId);
74
+ const handleUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat, redirectInSameWindow) => {
75
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
66
76
 
67
- if (reconnectAvailabilityResponse && reconnectAvailabilityResponse.redirectURL) {
68
- redirectPage(reconnectAvailabilityResponse.redirectURL);
77
+ if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
78
+ await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
69
79
  } else {
70
- const optionalParams = {
71
- reconnectId: reconnectId
72
- };
80
+ await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
81
+ }
82
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
+
84
+
85
+ exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
86
+
87
+ const startUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat) => {
88
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
89
+
90
+ if (!shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
91
+ await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
92
+ }
93
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+
95
+
96
+ exports.startUnauthenticatedReconnectChat = startUnauthenticatedReconnectChat;
97
+
98
+ const setReconnectIdAndStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat) => {
99
+ const startUnauthenticatedReconnectChat = {
100
+ eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
101
+ };
102
+
103
+ _omnichannelChatComponents.BroadcastService.postMessage(startUnauthenticatedReconnectChat);
104
+
105
+ const optionalParams = {
106
+ reconnectId: reconnectId
107
+ };
108
+ dispatch({
109
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
110
+ payload: reconnectId
111
+ });
112
+ dispatch({
113
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
114
+ payload: _ConversationState.ConversationState.Loading
115
+ });
116
+ await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, optionalParams);
117
+ };
118
+
119
+ const redirectPage = (redirectURL, redirectInSameWindow) => {
120
+ const redirectPageRequest = {
121
+ eventName: _TelemetryConstants.BroadcastEvent.RedirectPageRequest,
122
+ payload: {
123
+ redirectURL: redirectURL
124
+ }
125
+ };
126
+
127
+ _omnichannelChatComponents.BroadcastService.postMessage(redirectPageRequest);
128
+
129
+ if (redirectInSameWindow) {
130
+ window.location.href = redirectURL;
131
+ }
132
+ };
133
+
134
+ const shouldRedirectOrStartNewChat = reconnectAvailabilityResponse => {
135
+ return reconnectAvailabilityResponse && !reconnectAvailabilityResponse.reconnectId;
136
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
137
+
138
+
139
+ const startNewChatEmptyRedirectionUrl = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat) => {
140
+ const startUnauthenticatedReconnectChat = {
141
+ eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
142
+ };
143
+
144
+ _omnichannelChatComponents.BroadcastService.postMessage(startUnauthenticatedReconnectChat); // Getting PreChat Survey Context
145
+
146
+
147
+ const parseToJson = false;
148
+ const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
149
+
150
+ if (preChatSurveyResponse) {
73
151
  dispatch({
74
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
75
- payload: reconnectId
152
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
153
+ payload: preChatSurveyResponse
76
154
  });
155
+ dispatch({
156
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
157
+ payload: _ConversationState.ConversationState.Prechat
158
+ });
159
+ } else {
77
160
  dispatch({
78
161
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
79
162
  payload: _ConversationState.ConversationState.Loading
80
163
  });
81
- await initStartChat(optionalParams);
164
+ await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
82
165
  }
83
- };
166
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
167
 
85
- exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
86
168
 
87
- const redirectPage = newUrl => {
88
- const data = {
89
- messageName: _Constants.Constants.redirectPageRequest,
90
- newUrl: newUrl
91
- };
92
- window.parent.postMessage(data, "*");
169
+ const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, reconnectId, redirectInSameWindow) => {
170
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
171
+
172
+ if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
173
+ await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
174
+ }
175
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
176
+
177
+
178
+ exports.handleRedirectUnauthenticatedReconnectChat = handleRedirectUnauthenticatedReconnectChat;
179
+
180
+ const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow) => {
181
+ if (reconnectAvailabilityResponse.redirectURL) {
182
+ redirectPage(reconnectAvailabilityResponse.redirectURL, redirectInSameWindow);
183
+ } else {
184
+ await startNewChatEmptyRedirectionUrl(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat);
185
+ }
93
186
  };
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.registerTelemetryLoggers = void 0;
7
7
 
8
- var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
9
-
10
8
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
11
9
 
10
+ var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
11
+
12
12
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
13
13
 
14
14
  var _defaultAriaConfig = require("../../../common/telemetry/defaultConfigs/defaultAriaConfig");
@@ -17,10 +17,6 @@ var _defaultTelemetryInternalData = require("../../../common/telemetry/defaultCo
17
17
 
18
18
  var _defaultTelemetryConfiguration = require("../../../common/telemetry/defaultConfigs/defaultTelemetryConfiguration");
19
19
 
20
- var _package = _interopRequireDefault(require("@microsoft/omnichannel-chat-sdk/package.json"));
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
20
  const registerTelemetryLoggers = (props, dispatch) => {
25
21
  var _props$liveChatContex, _props$liveChatContex2;
26
22
 
@@ -33,6 +29,8 @@ const registerTelemetryLoggers = (props, dispatch) => {
33
29
 
34
30
  _TelemetryManager.TelemetryManager.InternalTelemetryData = (_props$liveChatContex3 = props.liveChatContextFromCache) === null || _props$liveChatContex3 === void 0 ? void 0 : (_props$liveChatContex4 = _props$liveChatContex3.domainStates) === null || _props$liveChatContex4 === void 0 ? void 0 : _props$liveChatContex4.telemetryInternalData;
35
31
  } else {
32
+ var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$chatSDK3, _props$chatSDK3$omnic;
33
+
36
34
  let telemetryData = { ..._defaultTelemetryInternalData.defaultInternalTelemetryData,
37
35
  telemetryConfig: Object.assign({}, _defaultTelemetryConfiguration.defaultTelemetryConfiguration, telemetryConfig),
38
36
  ariaConfig: Object.assign({}, _defaultAriaConfig.defaultAriaConfig, telemetryConfig === null || telemetryConfig === void 0 ? void 0 : telemetryConfig.ariaConfigurations)
@@ -43,7 +41,13 @@ const registerTelemetryLoggers = (props, dispatch) => {
43
41
  }
44
42
 
45
43
  telemetryData = _TelemetryHelper.TelemetryHelper.addWidgetDataToTelemetry(telemetryConfig, telemetryData);
46
- telemetryData.OCChatSDKVersion = _package.default.version;
44
+ telemetryData.OCChatSDKVersion = telemetryConfig.OCChatSDKVersion ?? "0.0.0-0";
45
+ telemetryData.chatComponentVersion = telemetryConfig.chatComponentVersion ?? "0.0.0-0";
46
+ telemetryData.chatWidgetVersion = telemetryConfig.chatWidgetVersion ?? "0.0.0-0";
47
+ telemetryData.orgId = (_props$chatSDK = props.chatSDK) === null || _props$chatSDK === void 0 ? void 0 : (_props$chatSDK$omnich = _props$chatSDK.omnichannelConfig) === null || _props$chatSDK$omnich === void 0 ? void 0 : _props$chatSDK$omnich.orgId;
48
+ telemetryData.widgetId = (_props$chatSDK2 = props.chatSDK) === null || _props$chatSDK2 === void 0 ? void 0 : (_props$chatSDK2$omnic = _props$chatSDK2.omnichannelConfig) === null || _props$chatSDK2$omnic === void 0 ? void 0 : _props$chatSDK2$omnic.widgetId;
49
+ telemetryData.orgUrl = (_props$chatSDK3 = props.chatSDK) === null || _props$chatSDK3 === void 0 ? void 0 : (_props$chatSDK3$omnic = _props$chatSDK3.omnichannelConfig) === null || _props$chatSDK3$omnic === void 0 ? void 0 : _props$chatSDK3$omnic.orgUrl;
50
+ _TelemetryManager.TelemetryManager.InternalTelemetryData = telemetryData;
47
51
  dispatch({
48
52
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA,
49
53
  payload: telemetryData
@@ -7,27 +7,31 @@ exports.setPostChatContextAndLoadSurvey = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
9
 
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+
12
+ var _ConversationState = require("../../../contexts/common/ConversationState");
13
+
10
14
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
11
15
 
12
16
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
13
17
 
14
- var _ConversationState = require("../../../contexts/common/ConversationState");
15
-
16
18
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
- const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, loadSurvey) => {
19
+ const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat) => {
18
20
  try {
19
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
- const context = await chatSDK.getPostChatSurveyContext();
21
-
22
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
23
- Event: _TelemetryConstants.TelemetryEvent.PostChatContextCallSucceed,
24
- Description: "Postchat context call succeed."
25
- });
26
-
27
- dispatch({
28
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
29
- payload: context
30
- });
21
+ if (!persistedChat) {
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ const context = await chatSDK.getPostChatSurveyContext();
24
+
25
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
26
+ Event: _TelemetryConstants.TelemetryEvent.PostChatContextCallSucceed,
27
+ Description: "Postchat context call succeed."
28
+ });
29
+
30
+ dispatch({
31
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
32
+ payload: context
33
+ });
34
+ }
31
35
  } catch (ex) {
32
36
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
33
37
  Event: _TelemetryConstants.TelemetryEvent.PostChatContextCallFailed,
@@ -35,21 +39,15 @@ const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, loadSurvey) =>
35
39
  exception: ex
36
40
  }
37
41
  });
38
- }
39
- /* -true: setPostChatContextAndLoadSurvey is called after passing all checks from ConfirmationPane and endChatMiddleware in usual scenario.
40
- -false: Below if condition is needed for multi-tab scenarios. So when agent ends a chat and customer has opened chat in multiple tabs,
41
- all tabs should show post chat survey as per existing functionality. But when an agent end a conversation, Omnichannel SDK
42
- getPostChatSurveyContext returns as invalid conversation. To avoid that, caching the survey url is needed after chat starts and
43
- in this case loadSurvey is false
44
- */
42
+ } // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
43
 
46
44
 
47
- if (loadSurvey) {
45
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName("LoadPostChatSurvey").subscribe(msg => {
48
46
  dispatch({
49
47
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
50
48
  payload: _ConversationState.ConversationState.Postchat
51
49
  });
52
- }
50
+ });
53
51
  };
54
52
 
55
53
  exports.setPostChatContextAndLoadSurvey = setPostChatContextAndLoadSurvey;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.shareObservable = shareObservable;
7
+
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ function shareObservable(observable) {
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ let observers = []; // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+
13
+ let subscription; // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+
15
+ return new window.Observable(observer => {
16
+ if (!subscription) {
17
+ subscription = observable.subscribe({
18
+ complete() {
19
+ observers.forEach(observer => observer.complete());
20
+ },
21
+
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ error(err) {
24
+ observers.forEach(observer => observer.error(err));
25
+ },
26
+
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ next(value) {
29
+ observers.forEach(observer => observer.next(value));
30
+ }
31
+
32
+ });
33
+ }
34
+
35
+ observers.push(observer);
36
+ return () => {
37
+ observers = observers.filter(o => o !== observer);
38
+
39
+ if (!observers.length) {
40
+ subscription.unsubscribe();
41
+ subscription = null;
42
+ }
43
+ };
44
+ });
45
+ }