@microsoft/omnichannel-chat-widget 0.1.0-main.edd8c2a → 0.1.0-main.f514612

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 (237) 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/storage/default/defaultCacheManager.js +34 -0
  8. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
  9. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
  10. package/lib/cjs/common/telemetry/TelemetryConstants.js +67 -4
  11. package/lib/cjs/common/telemetry/TelemetryHelper.js +22 -4
  12. package/lib/cjs/common/telemetry/TelemetryManager.js +28 -9
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  14. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  15. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +48 -15
  16. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +9 -5
  17. package/lib/cjs/common/utils.js +89 -2
  18. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  19. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -4
  20. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -54
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  22. package/lib/cjs/components/footerstateful/FooterStateful.js +5 -13
  23. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  24. package/lib/cjs/components/headerstateful/HeaderStateful.js +14 -10
  25. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
  26. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  27. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  28. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
  29. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  30. package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
  31. package/lib/cjs/components/livechatwidget/common/authHelper.js +65 -0
  32. package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
  33. package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
  34. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
  35. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +32 -32
  36. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +46 -26
  37. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +14 -0
  38. package/lib/cjs/components/livechatwidget/common/endChat.js +142 -43
  39. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  40. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +51 -10
  41. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +144 -39
  42. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -7
  43. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +22 -24
  44. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  45. package/lib/cjs/components/livechatwidget/common/startChat.js +207 -41
  46. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  47. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +324 -71
  48. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  49. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  50. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  51. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  52. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -5
  53. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  54. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +96 -2
  55. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
  56. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  57. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  58. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  59. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  60. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  61. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  62. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  63. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  64. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  65. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  66. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  67. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  68. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  69. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  70. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  71. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  72. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +13 -7
  73. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +20 -5
  74. package/lib/cjs/contexts/createReducer.js +44 -10
  75. package/lib/cjs/controller/componentController.js +5 -5
  76. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  77. package/lib/esm/assets/Audios.js +1 -0
  78. package/lib/esm/assets/Icons.js +11 -0
  79. package/lib/esm/common/Constants.js +50 -3
  80. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  81. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  82. package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
  83. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  84. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
  85. package/lib/esm/common/telemetry/TelemetryConstants.js +63 -3
  86. package/lib/esm/common/telemetry/TelemetryHelper.js +22 -5
  87. package/lib/esm/common/telemetry/TelemetryManager.js +22 -9
  88. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  89. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  90. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +50 -15
  91. package/lib/esm/common/telemetry/loggers/consoleLogger.js +9 -5
  92. package/lib/esm/common/utils.js +64 -1
  93. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  94. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -7
  95. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -50
  96. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  97. package/lib/esm/components/footerstateful/FooterStateful.js +5 -13
  98. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  99. package/lib/esm/components/headerstateful/HeaderStateful.js +15 -11
  100. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
  101. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  102. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  103. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
  104. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  105. package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
  106. package/lib/esm/components/livechatwidget/common/authHelper.js +50 -0
  107. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
  108. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
  109. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
  110. package/lib/esm/components/livechatwidget/common/createMarkdown.js +32 -31
  111. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +44 -27
  112. package/lib/esm/components/livechatwidget/common/disposeTelemetryLoggers.js +4 -0
  113. package/lib/esm/components/livechatwidget/common/endChat.js +139 -42
  114. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  115. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +45 -11
  116. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +134 -41
  117. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -3
  118. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +19 -22
  119. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  120. package/lib/esm/components/livechatwidget/common/startChat.js +195 -39
  121. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  122. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +307 -76
  123. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  124. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  125. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  126. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  127. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -6
  128. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  129. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +86 -2
  130. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  131. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  132. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  133. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  134. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  135. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  136. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  137. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  138. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  139. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  140. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  141. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  142. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  143. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  144. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  145. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  146. package/lib/esm/contexts/common/ConversationState.js +4 -2
  147. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +13 -7
  148. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -5
  149. package/lib/esm/contexts/createReducer.js +44 -9
  150. package/lib/esm/controller/componentController.js +5 -5
  151. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  152. package/lib/types/assets/Audios.d.ts +1 -0
  153. package/lib/types/assets/Icons.d.ts +11 -0
  154. package/lib/types/common/Constants.d.ts +27 -1
  155. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  156. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  157. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  158. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  159. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  160. package/lib/types/common/telemetry/TelemetryConstants.d.ts +49 -2
  161. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  162. package/lib/types/common/telemetry/TelemetryManager.d.ts +1 -0
  163. package/lib/types/common/telemetry/definitions/Contracts.d.ts +3 -0
  164. package/lib/types/common/telemetry/definitions/Payload.d.ts +15 -9
  165. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
  166. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
  167. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +12 -0
  168. package/lib/types/common/utils.d.ts +8 -1
  169. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  170. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  171. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  172. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  173. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  174. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  175. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  176. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  177. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  178. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  179. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -0
  180. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  181. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  182. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  183. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  184. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  185. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  186. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  187. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  188. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -1
  189. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  190. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  191. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  192. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  193. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  194. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  195. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  196. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  197. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
  198. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  199. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  200. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  201. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  202. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  203. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  204. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  205. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  206. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  207. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  208. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +5 -1
  209. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +14 -8
  210. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  211. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  212. package/package.json +13 -12
  213. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  214. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  215. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  216. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  217. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  218. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  219. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  220. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  221. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  222. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  223. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  224. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  225. package/lib/esm/assets/assets.d.js +0 -0
  226. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  227. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  228. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  229. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  230. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  231. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  232. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  233. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  234. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  235. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  236. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  237. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -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
+ }
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.prepareStartChat = exports.initStartChat = void 0;
7
-
8
- var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
6
+ exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStartChat = void 0;
9
7
 
10
8
  var _Constants = require("../../../common/Constants");
11
9
 
10
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
11
+
12
12
  var _ConversationState = require("../../../contexts/common/ConversationState");
13
13
 
14
14
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
@@ -23,20 +23,46 @@ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
23
23
 
24
24
  var _createAdapter = require("./createAdapter");
25
25
 
26
+ var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
27
+
26
28
  var _utils = require("../../../common/utils");
27
29
 
28
30
  var _reconnectChatHelper = require("./reconnectChatHelper");
29
31
 
32
+ var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
33
+
30
34
  var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
31
35
 
32
- var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
36
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
37
+
38
+ var _ActivityStreamHandler = require("./ActivityStreamHandler");
39
+
40
+ var _authHelper = require("./authHelper");
33
41
 
34
42
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ let optionalParams = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+
45
+ let widgetInstanceId; // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
+
35
47
  const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
36
- // Getting PreChat Survey Context
37
- const parseToJson = false;
38
- const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
39
- const showPrechat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat ? preChatSurveyResponse && state.appStates.proactiveChatStates.proactiveChatEnablePrechat : preChatSurveyResponse; // Getting reconnectId for authenticated chat
48
+ var _props$controlProps, _props$reconnectChatP;
49
+
50
+ optionalParams = {}; //Resetting to ensure no stale values
51
+
52
+ widgetInstanceId = props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId; // Can connect to existing chat session
53
+
54
+ if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
55
+ return;
56
+ } // Redirecting if unauthenticated reconnect chat expired
57
+
58
+
59
+ if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
60
+ var _props$reconnectChatP2, _props$reconnectChatP3, _props$reconnectChatP4;
61
+
62
+ await (0, _reconnectChatHelper.handleRedirectUnauthenticatedReconnectChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.reconnectId, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.redirectInSameWindow);
63
+ return;
64
+ } // Getting reconnectId for authenticated chat
65
+
40
66
 
41
67
  const reconnectId = await (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK);
42
68
 
@@ -49,7 +75,26 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
49
75
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
50
76
  payload: _ConversationState.ConversationState.ReconnectChat
51
77
  });
52
- } else if (showPrechat) {
78
+ return;
79
+ } // Setting Proactive chat settings
80
+
81
+
82
+ const isProactiveChat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat;
83
+ const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat; //Setting PreChat and intiate chat
84
+
85
+ setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat);
86
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
+
88
+
89
+ exports.prepareStartChat = prepareStartChat;
90
+
91
+ const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState) => {
92
+ // Getting prechat Survey Context
93
+ const parseToJson = false;
94
+ const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
95
+ const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse;
96
+
97
+ if (showPrechat) {
53
98
  dispatch({
54
99
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
55
100
  payload: preChatSurveyResponse
@@ -58,57 +103,118 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
58
103
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
59
104
  payload: _ConversationState.ConversationState.Prechat
60
105
  });
61
- } else {
62
- dispatch({
63
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
64
- payload: _ConversationState.ConversationState.Loading
65
- });
66
- await initStartChat(chatSDK, dispatch, setAdapter);
67
- }
106
+ return;
107
+ } //Initiate start chat
108
+
109
+
110
+ dispatch({
111
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
112
+ payload: _ConversationState.ConversationState.Loading
113
+ });
114
+ await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
68
115
  }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
116
 
70
117
 
71
- exports.prepareStartChat = prepareStartChat;
118
+ exports.setPreChatAndInitiateChat = setPreChatAndInitiateChat;
72
119
 
73
- const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
120
+ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, params, persistedState) => {
74
121
  try {
75
- var _TelemetryTimers$Widg;
122
+ var _newAdapter$activity$, _TelemetryTimers$Widg;
76
123
 
77
- try {
78
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
79
- Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
124
+ const authClientFunction = (0, _authHelper.getAuthClientFunction)(chatConfig);
125
+
126
+ if (getAuthToken && authClientFunction) {
127
+ // set auth token to chat sdk before start chat
128
+ const authSuccess = await (0, _authHelper.handleAuthentication)(chatSDK, chatConfig, getAuthToken);
129
+
130
+ if (!authSuccess) {
131
+ return;
132
+ }
133
+ }
134
+
135
+ let isStartChatSuccessful = false; //Check if chat retrieved from cache
136
+
137
+ if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
138
+ var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
139
+
140
+ _omnichannelChatComponents.BroadcastService.postMessage({
141
+ eventName: _TelemetryConstants.BroadcastEvent.ChatRetrievedFromCache,
142
+ payload: {
143
+ chatId: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : (_persistedState$domai2 = _persistedState$domai.liveChatContext) === null || _persistedState$domai2 === void 0 ? void 0 : (_persistedState$domai3 = _persistedState$domai2.chatToken) === null || _persistedState$domai3 === void 0 ? void 0 : _persistedState$domai3.chatId,
144
+ requestId: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai4 = persistedState.domainStates) === null || _persistedState$domai4 === void 0 ? void 0 : (_persistedState$domai5 = _persistedState$domai4.liveChatContext) === null || _persistedState$domai5 === void 0 ? void 0 : _persistedState$domai5.requestId
145
+ }
80
146
  });
147
+ }
81
148
 
82
- await chatSDK.startChat(params);
149
+ try {
150
+ //Start widget load timer
83
151
  _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
152
+
153
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
154
+ Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
155
+ }); // Set custom context params
156
+
157
+
158
+ setCustomContextParams(chatSDK);
159
+ optionalParams = Object.assign({}, params, optionalParams);
160
+ await chatSDK.startChat(optionalParams);
161
+ isStartChatSuccessful = true;
84
162
  } catch (error) {
85
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
163
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
86
164
  Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
87
165
  ExceptionDetails: {
88
166
  exception: `Failed to setup startChat: ${error}`
89
167
  }
90
168
  });
91
- }
92
169
 
93
- const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
94
- setAdapter(newAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
+ isStartChatSuccessful = false; // Resetting the widget state to Closed, for recent introduction of OC rate limiting(429 Error)
171
+ // TODO : How to diplay a proper UI message to customer to try after sometime at this point - cool down scenario
95
172
 
96
- if (chatSDK !== null && chatSDK !== void 0 && chatSDK.getVoiceVideoCalling) {
97
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
- const chatToken = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatToken());
99
173
  dispatch({
100
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
101
- payload: chatToken
174
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
175
+ payload: _ConversationState.ConversationState.Closed
102
176
  });
103
- }
177
+ return;
178
+ } // New adapter creation
104
179
 
105
- await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, false);
106
- await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
107
180
 
181
+ const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
182
+ setAdapter(newAdapter);
183
+ const chatToken = await chatSDK.getChatToken();
108
184
  dispatch({
109
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
110
- payload: _ConversationState.ConversationState.Active
185
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
186
+ payload: chatToken
111
187
  });
188
+ newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe((0, _newMessageEventHandler.createOnNewAdapterActivityHandler)(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
189
+
190
+ if (persistedState) {
191
+ dispatch({
192
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_STATE,
193
+ payload: persistedState
194
+ });
195
+ await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
196
+ return;
197
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
198
+
199
+
200
+ const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
201
+ dispatch({
202
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
203
+ payload: liveChatContext
204
+ }); // Set post chat context in state, no survey load
205
+
206
+ await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // Updating chat session detail for telemetry
207
+
208
+ await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
209
+
210
+ if (isStartChatSuccessful) {
211
+ _ActivityStreamHandler.ActivityStreamHandler.uncork();
212
+
213
+ dispatch({
214
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
215
+ payload: _ConversationState.ConversationState.Active
216
+ });
217
+ }
112
218
 
113
219
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
114
220
  Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
@@ -117,9 +223,9 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
117
223
  });
118
224
  } catch (ex) {
119
225
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
120
- Event: _TelemetryConstants.TelemetryEvent.StartChatFailed,
226
+ Event: _TelemetryConstants.TelemetryEvent.WidgetLoadFailed,
121
227
  ExceptionDetails: {
122
- Exception: `Start Chat Failed: ${ex}`
228
+ Exception: `Widget load Failed: ${ex}`
123
229
  }
124
230
  });
125
231
 
@@ -136,7 +242,67 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
136
242
  payload: _ConversationState.ConversationState.OutOfOffice
137
243
  });
138
244
  }
245
+ } finally {
246
+ optionalParams = {};
247
+ widgetInstanceId = "";
248
+ }
249
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
250
+
251
+
252
+ exports.initStartChat = initStartChat;
253
+
254
+ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
255
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps2, _persistedState$domai6, _persistedState$appSt;
256
+
257
+ // By pass this function in case of popout chat
258
+ if (state.appStates.skipChatButtonRendering === true) {
259
+ return false;
260
+ }
261
+
262
+ const persistedState = (0, _utils.getStateFromCache)(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, (props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? ""); //Connect to only active chat session
263
+
264
+ if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai6 = persistedState.domainStates) === null || _persistedState$domai6 === void 0 ? void 0 : _persistedState$domai6.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active) {
265
+ var _persistedState$domai7;
266
+
267
+ dispatch({
268
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
269
+ payload: _ConversationState.ConversationState.Loading
270
+ });
271
+ const optionalParams = {
272
+ liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai7 = persistedState.domainStates) === null || _persistedState$domai7 === void 0 ? void 0 : _persistedState$domai7.liveChatContext
273
+ };
274
+ await initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams, persistedState);
275
+ return true;
276
+ } else {
277
+ return false;
139
278
  }
140
- };
279
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
280
+
141
281
 
142
- exports.initStartChat = initStartChat;
282
+ const setCustomContextParams = chatSDK => {
283
+ var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _persistedState$domai8;
284
+
285
+ // Add custom context only for unauthenticated chat
286
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.widgetId, widgetInstanceId ?? "");
287
+
288
+ if (!(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext)) {
289
+ var _persistedState$domai9, _persistedState$domai10;
290
+
291
+ if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai9 = persistedState.domainStates.liveChatConfig) !== null && _persistedState$domai9 !== void 0 && _persistedState$domai9.LiveChatConfigAuthSettings) {
292
+ const errorMessage = "Use of custom context with authenticated chat is deprecated. The chat would not go through.";
293
+
294
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.WARN, {
295
+ Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
296
+ ExceptionDetails: {
297
+ exception: errorMessage
298
+ }
299
+ });
300
+
301
+ throw new Error(errorMessage);
302
+ }
303
+
304
+ optionalParams = Object.assign({}, optionalParams, {
305
+ customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai10 = persistedState.domainStates) === null || _persistedState$domai10 === void 0 ? void 0 : _persistedState$domai10.customContext
306
+ });
307
+ }
308
+ };
@@ -16,12 +16,12 @@ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
16
16
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
17
17
 
18
18
  // Defines startProactiveChat callback
19
- const startProactiveChat = (dispatch, bodyTitle, showPrechat, inNewWindow) => {
19
+ const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWindow) => {
20
20
  dispatch({
21
21
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
22
22
  payload: {
23
- proactiveChatBodyTitle: bodyTitle ?? "",
24
- proactiveChatEnablePrechat: showPrechat ?? false,
23
+ proactiveChatBodyTitle: notificationConfig && notificationConfig.message ? notificationConfig.message : "",
24
+ proactiveChatEnablePrechat: enablePreChat ?? false,
25
25
  proactiveChatInNewWindow: inNewWindow ?? false
26
26
  }
27
27
  });