@microsoft/omnichannel-chat-widget 0.1.0-main.86df755 → 0.1.0-main.a7e4e7d

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 (163) hide show
  1. package/README.md +227 -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 +38 -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 +42 -3
  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 +30 -2
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +9 -2
  17. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -54
  18. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  19. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  20. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +1 -1
  21. package/lib/cjs/components/headerstateful/HeaderStateful.js +11 -8
  22. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  23. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +42 -46
  24. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +14 -0
  25. package/lib/cjs/components/livechatwidget/common/endChat.js +116 -49
  26. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  27. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +33 -9
  28. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +105 -20
  29. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -7
  30. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +26 -24
  31. package/lib/cjs/components/livechatwidget/common/startChat.js +151 -53
  32. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  33. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +131 -32
  34. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  35. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  36. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  37. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +26 -10
  38. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +10 -4
  39. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  40. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  41. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  42. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +9 -46
  43. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  44. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  45. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  46. package/lib/cjs/contexts/common/ConversationState.js +3 -2
  47. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +11 -7
  48. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +12 -4
  49. package/lib/cjs/contexts/createReducer.js +35 -10
  50. package/lib/cjs/controller/componentController.js +2 -2
  51. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  52. package/lib/esm/assets/Audios.js +1 -0
  53. package/lib/esm/assets/Icons.js +11 -0
  54. package/lib/esm/common/Constants.js +34 -3
  55. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  56. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  57. package/lib/esm/common/telemetry/TelemetryConstants.js +38 -2
  58. package/lib/esm/common/telemetry/TelemetryHelper.js +22 -5
  59. package/lib/esm/common/telemetry/TelemetryManager.js +22 -9
  60. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  61. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  62. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +50 -15
  63. package/lib/esm/common/telemetry/loggers/consoleLogger.js +9 -5
  64. package/lib/esm/common/utils.js +19 -1
  65. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  66. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +10 -2
  67. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -50
  68. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  69. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  70. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +1 -1
  71. package/lib/esm/components/headerstateful/HeaderStateful.js +12 -9
  72. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  73. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +40 -47
  74. package/lib/esm/components/livechatwidget/common/disposeTelemetryLoggers.js +4 -0
  75. package/lib/esm/components/livechatwidget/common/endChat.js +110 -46
  76. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  77. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +29 -9
  78. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +94 -20
  79. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -3
  80. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +23 -22
  81. package/lib/esm/components/livechatwidget/common/startChat.js +146 -52
  82. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  83. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +122 -35
  84. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  85. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  86. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  87. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +25 -10
  88. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -5
  89. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  90. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  91. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  92. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +7 -44
  93. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  94. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  95. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  96. package/lib/esm/contexts/common/ConversationState.js +3 -2
  97. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +11 -7
  98. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +12 -4
  99. package/lib/esm/contexts/createReducer.js +35 -9
  100. package/lib/esm/controller/componentController.js +2 -2
  101. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  102. package/lib/types/assets/Audios.d.ts +1 -0
  103. package/lib/types/assets/Icons.d.ts +11 -0
  104. package/lib/types/common/Constants.d.ts +19 -1
  105. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  106. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  107. package/lib/types/common/telemetry/TelemetryConstants.d.ts +27 -1
  108. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  109. package/lib/types/common/telemetry/TelemetryManager.d.ts +1 -0
  110. package/lib/types/common/telemetry/definitions/Contracts.d.ts +3 -0
  111. package/lib/types/common/telemetry/definitions/Payload.d.ts +15 -9
  112. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
  113. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
  114. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +12 -0
  115. package/lib/types/common/utils.d.ts +3 -0
  116. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  117. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  118. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  119. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -0
  120. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  121. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -2
  122. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  123. package/lib/types/components/livechatwidget/common/startChat.d.ts +1 -1
  124. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  125. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  126. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -1
  127. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  128. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  129. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -0
  130. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  131. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  132. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  133. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  134. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  135. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +4 -0
  136. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +12 -8
  137. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  138. package/package.json +11 -11
  139. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  140. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  141. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  142. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  143. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  144. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  145. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  146. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  147. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  148. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  149. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  150. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  151. package/lib/esm/assets/assets.d.js +0 -0
  152. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  153. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  154. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  155. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  156. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  157. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  158. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  159. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  160. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  161. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  162. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  163. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.handleUnauthenticatedReconnectChat = exports.getReconnectIdForAuthenticatedChat = void 0;
6
+ exports.startUnauthenticatedReconnectChat = exports.handleUnauthenticatedReconnectChat = exports.handleRedirectUnauthenticatedReconnectChat = exports.getReconnectIdForAuthenticatedChat = exports.getChatReconnectContext = void 0;
7
7
 
8
8
  require("regenerator-runtime/runtime");
9
9
 
10
10
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
11
11
 
12
- var _Constants = require("../../../common/Constants");
12
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
13
13
 
14
14
  var _ConversationState = require("../../../contexts/common/ConversationState");
15
15
 
@@ -41,6 +41,8 @@ const getChatReconnectContext = async (chatSDK, reconnectId) => {
41
41
  }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
42
 
43
43
 
44
+ exports.getChatReconnectContext = getChatReconnectContext;
45
+
44
46
  const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
45
47
  var _props$reconnectChatP, _props$reconnectChatP2;
46
48
 
@@ -61,33 +63,116 @@ const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
61
63
 
62
64
  exports.getReconnectIdForAuthenticatedChat = getReconnectIdForAuthenticatedChat;
63
65
 
64
- const handleUnauthenticatedReconnectChat = async (dispatch, reconnectId, initStartChat) => {
65
- const reconnectAvailabilityResponse = await getChatReconnectContext(reconnectId);
66
+ const handleUnauthenticatedReconnectChat = async (chatSDK, dispatch, setAdapter, reconnectId, initStartChat, redirectInSameWindow) => {
67
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
66
68
 
67
- if (reconnectAvailabilityResponse && reconnectAvailabilityResponse.redirectURL) {
68
- redirectPage(reconnectAvailabilityResponse.redirectURL);
69
+ if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
70
+ await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, dispatch, setAdapter, initStartChat, redirectInSameWindow);
69
71
  } else {
70
- const optionalParams = {
71
- reconnectId: reconnectId
72
- };
72
+ await setReconnectIdAndStartChat(chatSDK, dispatch, setAdapter, reconnectId, initStartChat);
73
+ }
74
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
+
76
+
77
+ exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
78
+
79
+ const startUnauthenticatedReconnectChat = async (chatSDK, dispatch, setAdapter, reconnectId, initStartChat) => {
80
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
81
+
82
+ if (!shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
83
+ await setReconnectIdAndStartChat(chatSDK, dispatch, setAdapter, reconnectId, initStartChat);
84
+ }
85
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+
87
+
88
+ exports.startUnauthenticatedReconnectChat = startUnauthenticatedReconnectChat;
89
+
90
+ const setReconnectIdAndStartChat = async (chatSDK, dispatch, setAdapter, reconnectId, initStartChat) => {
91
+ const startUnauthenticatedReconnectChat = {
92
+ eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
93
+ };
94
+
95
+ _omnichannelChatComponents.BroadcastService.postMessage(startUnauthenticatedReconnectChat);
96
+
97
+ const optionalParams = {
98
+ reconnectId: reconnectId
99
+ };
100
+ dispatch({
101
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
102
+ payload: reconnectId
103
+ });
104
+ dispatch({
105
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
106
+ payload: _ConversationState.ConversationState.Loading
107
+ });
108
+ await initStartChat(chatSDK, dispatch, setAdapter, optionalParams);
109
+ };
110
+
111
+ const redirectPage = (redirectURL, redirectInSameWindow) => {
112
+ const redirectPageRequest = {
113
+ eventName: _TelemetryConstants.BroadcastEvent.RedirectPageRequest,
114
+ payload: {
115
+ redirectURL: redirectURL
116
+ }
117
+ };
118
+
119
+ _omnichannelChatComponents.BroadcastService.postMessage(redirectPageRequest);
120
+
121
+ if (redirectInSameWindow) {
122
+ window.location.href = redirectURL;
123
+ }
124
+ };
125
+
126
+ const shouldRedirectOrStartNewChat = reconnectAvailabilityResponse => {
127
+ return reconnectAvailabilityResponse && !reconnectAvailabilityResponse.reconnectId;
128
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
129
+
130
+
131
+ const startNewChatEmptyRedirectionUrl = async (chatSDK, dispatch, setAdapter, initStartChat) => {
132
+ const startUnauthenticatedReconnectChat = {
133
+ eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
134
+ };
135
+
136
+ _omnichannelChatComponents.BroadcastService.postMessage(startUnauthenticatedReconnectChat); // Getting PreChat Survey Context
137
+
138
+
139
+ const parseToJson = false;
140
+ const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
141
+
142
+ if (preChatSurveyResponse) {
143
+ dispatch({
144
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
145
+ payload: preChatSurveyResponse
146
+ });
73
147
  dispatch({
74
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
75
- payload: reconnectId
148
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
149
+ payload: _ConversationState.ConversationState.Prechat
76
150
  });
151
+ } else {
77
152
  dispatch({
78
153
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
79
154
  payload: _ConversationState.ConversationState.Loading
80
155
  });
81
- await initStartChat(optionalParams);
156
+ await initStartChat(chatSDK, dispatch, setAdapter);
82
157
  }
83
- };
158
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
159
 
85
- exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
86
160
 
87
- const redirectPage = newUrl => {
88
- const data = {
89
- messageName: _Constants.Constants.redirectPageRequest,
90
- newUrl: newUrl
91
- };
92
- window.parent.postMessage(data, "*");
161
+ const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, dispatch, setAdapter, initStartChat, reconnectId, redirectInSameWindow) => {
162
+ const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
163
+
164
+ if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
165
+ await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, dispatch, setAdapter, initStartChat, redirectInSameWindow);
166
+ }
167
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
168
+
169
+
170
+ exports.handleRedirectUnauthenticatedReconnectChat = handleRedirectUnauthenticatedReconnectChat;
171
+
172
+ const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK, dispatch, setAdapter, initStartChat, redirectInSameWindow) => {
173
+ if (reconnectAvailabilityResponse.redirectURL) {
174
+ redirectPage(reconnectAvailabilityResponse.redirectURL, redirectInSameWindow);
175
+ } else {
176
+ await startNewChatEmptyRedirectionUrl(chatSDK, dispatch, setAdapter, initStartChat);
177
+ }
93
178
  };
@@ -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,19 @@ 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 => {
46
+ dispatch({
47
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
48
+ payload: _ConversationState.ConversationState.Loading
49
+ });
48
50
  dispatch({
49
51
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
50
52
  payload: _ConversationState.ConversationState.Postchat
51
53
  });
52
- }
54
+ });
53
55
  };
54
56
 
55
57
  exports.setPostChatContextAndLoadSurvey = setPostChatContextAndLoadSurvey;
@@ -5,12 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.prepareStartChat = exports.initStartChat = void 0;
7
7
 
8
- var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
-
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
+ var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
15
+
14
16
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
15
17
 
16
18
  var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
@@ -23,93 +25,153 @@ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
23
25
 
24
26
  var _createAdapter = require("./createAdapter");
25
27
 
28
+ var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
29
+
26
30
  var _utils = require("../../../common/utils");
27
31
 
28
32
  var _reconnectChatHelper = require("./reconnectChatHelper");
29
33
 
34
+ var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
35
+
30
36
  var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
31
37
 
32
- var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
38
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
33
39
 
34
40
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ let optionalParams = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+
35
43
  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
44
+ var _props$reconnectChatP;
40
45
 
41
- const reconnectId = await (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK);
46
+ if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
47
+ return;
48
+ } // Redirecting if unauthenticated reconnect chat expired
42
49
 
43
- if (reconnectId) {
44
- dispatch({
45
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
46
- payload: reconnectId
47
- });
48
- dispatch({
49
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
50
- payload: _ConversationState.ConversationState.ReconnectChat
51
- });
52
- } else if (showPrechat) {
53
- dispatch({
54
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
55
- payload: preChatSurveyResponse
56
- });
57
- dispatch({
58
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
59
- payload: _ConversationState.ConversationState.Prechat
60
- });
50
+
51
+ if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
52
+ var _props$reconnectChatP2, _props$reconnectChatP3;
53
+
54
+ await (0, _reconnectChatHelper.handleRedirectUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.redirectInSameWindow);
61
55
  } else {
62
- dispatch({
63
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
64
- payload: _ConversationState.ConversationState.Loading
65
- });
66
- await initStartChat(chatSDK, dispatch, setAdapter);
56
+ // Getting PreChat Survey Context
57
+ const parseToJson = false;
58
+ const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
59
+ const showPrechat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat ? preChatSurveyResponse && state.appStates.proactiveChatStates.proactiveChatEnablePrechat : preChatSurveyResponse; // Getting reconnectId for authenticated chat
60
+
61
+ const reconnectId = await (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK);
62
+
63
+ if (reconnectId) {
64
+ dispatch({
65
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
66
+ payload: reconnectId
67
+ });
68
+ dispatch({
69
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
70
+ payload: _ConversationState.ConversationState.ReconnectChat
71
+ });
72
+ } else if (showPrechat) {
73
+ dispatch({
74
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
75
+ payload: preChatSurveyResponse
76
+ });
77
+ dispatch({
78
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
79
+ payload: _ConversationState.ConversationState.Prechat
80
+ });
81
+ setCustomContextParams(props, state);
82
+ } else {
83
+ dispatch({
84
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
85
+ payload: _ConversationState.ConversationState.Loading
86
+ });
87
+ setCustomContextParams(props, state);
88
+ await initStartChat(chatSDK, dispatch, setAdapter);
89
+ }
67
90
  }
68
91
  }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
92
 
70
93
 
71
94
  exports.prepareStartChat = prepareStartChat;
72
95
 
73
- const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
96
+ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedState) => {
74
97
  try {
75
- var _TelemetryTimers$Widg;
98
+ var _newAdapter$activity$, _TelemetryTimers$Widg;
99
+
100
+ let isStartChatSuccessful = false;
101
+
102
+ if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
103
+ var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
104
+
105
+ // Broadcasting limited cached chat details
106
+ _omnichannelChatComponents.BroadcastService.postMessage({
107
+ eventName: _TelemetryConstants.BroadcastEvent.ChatRetrievedFromCache,
108
+ payload: {
109
+ 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,
110
+ 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
111
+ }
112
+ });
113
+ }
76
114
 
77
115
  try {
78
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
116
+ _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
117
+
118
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
79
119
  Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
80
120
  });
81
121
 
82
- await chatSDK.startChat(params);
83
- _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
122
+ optionalParams = Object.assign({}, params, optionalParams);
123
+ await chatSDK.startChat(optionalParams);
124
+ isStartChatSuccessful = true;
84
125
  } catch (error) {
85
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
126
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
86
127
  Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
87
128
  ExceptionDetails: {
88
129
  exception: `Failed to setup startChat: ${error}`
89
130
  }
90
131
  });
132
+
133
+ isStartChatSuccessful = false;
91
134
  }
92
135
 
93
136
  const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
94
- setAdapter(newAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
137
+ setAdapter(newAdapter);
138
+ const chatToken = await chatSDK.getChatToken();
139
+ 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));
95
140
 
96
- if (chatSDK !== null && chatSDK !== void 0 && chatSDK.getVoiceVideoCalling) {
141
+ if (!persistedState) {
97
142
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
- const chatToken = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatToken());
143
+ if (chatSDK !== null && chatSDK !== void 0 && chatSDK.getVoiceVideoCalling) {
144
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
145
+ const chatToken = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatToken());
146
+ dispatch({
147
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
148
+ payload: chatToken
149
+ });
150
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
151
+
152
+
153
+ const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
99
154
  dispatch({
100
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
101
- payload: chatToken
155
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
156
+ payload: liveChatContext
102
157
  });
158
+ await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
159
+ await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
160
+
161
+ if (isStartChatSuccessful) {
162
+ dispatch({
163
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
164
+ payload: _ConversationState.ConversationState.Active
165
+ });
166
+ }
167
+ } else {
168
+ dispatch({
169
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_STATE,
170
+ payload: persistedState
171
+ });
172
+ await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
103
173
  }
104
174
 
105
- await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, false);
106
- await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
107
-
108
- dispatch({
109
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
110
- payload: _ConversationState.ConversationState.Active
111
- });
112
-
113
175
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
114
176
  Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
115
177
  Description: "Widget load complete",
@@ -117,9 +179,9 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
117
179
  });
118
180
  } catch (ex) {
119
181
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
120
- Event: _TelemetryConstants.TelemetryEvent.StartChatFailed,
182
+ Event: _TelemetryConstants.TelemetryEvent.WidgetLoadFailed,
121
183
  ExceptionDetails: {
122
- Exception: `Start Chat Failed: ${ex}`
184
+ Exception: `Widget load Failed: ${ex}`
123
185
  }
124
186
  });
125
187
 
@@ -137,6 +199,42 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
137
199
  });
138
200
  }
139
201
  }
202
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
+
204
+
205
+ exports.initStartChat = initStartChat;
206
+
207
+ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
208
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _DataStoreManager$cli, _persistedState$domai6;
209
+
210
+ const widgetStateEventName = (0, _utils.getWidgetCacheId)((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) ?? "");
211
+ const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
212
+ const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
213
+
214
+ if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai6 = persistedState.domainStates) !== null && _persistedState$domai6 !== void 0 && _persistedState$domai6.liveChatContext) {
215
+ var _persistedState$domai7;
216
+
217
+ dispatch({
218
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
219
+ payload: _ConversationState.ConversationState.Loading
220
+ });
221
+ const optionalParams = {
222
+ liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai7 = persistedState.domainStates) === null || _persistedState$domai7 === void 0 ? void 0 : _persistedState$domai7.liveChatContext
223
+ };
224
+ await initStartChat(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
225
+ return true;
226
+ } else {
227
+ return false;
228
+ }
140
229
  };
141
230
 
142
- exports.initStartChat = initStartChat;
231
+ const setCustomContextParams = (props, state) => {
232
+ var _props$chatConfig, _state$domainStates;
233
+
234
+ // Add custom context if any only for unauthenticated chat
235
+ if (!((_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && _props$chatConfig.LiveChatConfigAuthSettings) && (_state$domainStates = state.domainStates) !== null && _state$domainStates !== void 0 && _state$domainStates.customContext) {
236
+ optionalParams = Object.assign({}, optionalParams, {
237
+ customContext: state.domainStates.customContext
238
+ });
239
+ }
240
+ };
@@ -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
  });