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

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