@microsoft/omnichannel-chat-widget 0.1.0-main.24bd1e6 → 0.1.0-main.34fc37e
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.
- package/lib/cjs/common/Constants.js +2 -0
- package/lib/cjs/common/telemetry/TelemetryConstants.js +2 -0
- package/lib/cjs/common/utils.js +20 -7
- package/lib/cjs/components/headerstateful/HeaderStateful.js +4 -3
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
- package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
- package/lib/cjs/components/livechatwidget/common/authHelper.js +52 -0
- package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
- package/lib/cjs/components/livechatwidget/common/createMarkdown.js +31 -30
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +8 -3
- package/lib/cjs/components/livechatwidget/common/endChat.js +3 -3
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +5 -2
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +55 -35
- package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
- package/lib/cjs/components/livechatwidget/common/startChat.js +46 -22
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +110 -47
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +11 -0
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -0
- package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +1 -0
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -1
- package/lib/cjs/contexts/createReducer.js +8 -0
- package/lib/esm/common/Constants.js +2 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +2 -0
- package/lib/esm/common/utils.js +14 -5
- package/lib/esm/components/headerstateful/HeaderStateful.js +4 -3
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
- package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
- package/lib/esm/components/livechatwidget/common/authHelper.js +39 -0
- package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
- package/lib/esm/components/livechatwidget/common/createMarkdown.js +31 -30
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +8 -3
- package/lib/esm/components/livechatwidget/common/endChat.js +3 -3
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +5 -2
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +56 -37
- package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
- package/lib/esm/components/livechatwidget/common/startChat.js +42 -23
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +109 -49
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +10 -0
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -0
- package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +1 -0
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -1
- package/lib/esm/contexts/createReducer.js +8 -0
- package/lib/types/common/Constants.d.ts +1 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +2 -0
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -1
- package/lib/types/common/utils.d.ts +5 -4
- package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
- package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +4 -0
- package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -4
- package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
- package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
- package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +1 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
- package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +2 -1
- package/package.json +4 -3
|
@@ -12,15 +12,20 @@ import { createTimer, getStateFromCache, isUndefinedOrEmpty } from "../../../com
|
|
|
12
12
|
import { getReconnectIdForAuthenticatedChat, handleRedirectUnauthenticatedReconnectChat } from "./reconnectChatHelper";
|
|
13
13
|
import { setPostChatContextAndLoadSurvey } from "./setPostChatContextAndLoadSurvey";
|
|
14
14
|
import { updateSessionDataForTelemetry } from "./updateSessionDataForTelemetry";
|
|
15
|
-
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
15
|
+
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
16
|
+
import { ActivityStreamHandler } from "./ActivityStreamHandler";
|
|
17
|
+
import { handleAuthentication } from "./authHelper"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
18
|
|
|
17
19
|
let optionalParams = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
20
|
|
|
21
|
+
let widgetInstanceId; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
|
|
19
23
|
const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
20
|
-
var _props$reconnectChatP;
|
|
24
|
+
var _props$controlProps, _props$reconnectChatP;
|
|
21
25
|
|
|
22
26
|
optionalParams = {}; //Resetting to ensure no stale values
|
|
23
|
-
|
|
27
|
+
|
|
28
|
+
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
|
|
24
29
|
|
|
25
30
|
if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
|
|
26
31
|
return;
|
|
@@ -28,9 +33,9 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
28
33
|
|
|
29
34
|
|
|
30
35
|
if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
31
|
-
var _props$reconnectChatP2, _props$reconnectChatP3;
|
|
36
|
+
var _props$reconnectChatP2, _props$reconnectChatP3, _props$reconnectChatP4;
|
|
32
37
|
|
|
33
|
-
await handleRedirectUnauthenticatedReconnectChat(chatSDK, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.
|
|
38
|
+
await 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);
|
|
34
39
|
return;
|
|
35
40
|
} // Getting reconnectId for authenticated chat
|
|
36
41
|
|
|
@@ -47,19 +52,17 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
47
52
|
payload: ConversationState.ReconnectChat
|
|
48
53
|
});
|
|
49
54
|
return;
|
|
50
|
-
} //
|
|
51
|
-
|
|
55
|
+
} // Setting Proactive chat settings
|
|
52
56
|
|
|
53
|
-
setCustomContextParams(props, chatSDK); // Setting Proactive chat settings
|
|
54
57
|
|
|
55
58
|
const isProactiveChat = state.appStates.conversationState === ConversationState.ProactiveChat;
|
|
56
59
|
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat; //Setting PreChat and intiate chat
|
|
57
60
|
|
|
58
|
-
setPreChatAndInitiateChat(chatSDK, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat);
|
|
61
|
+
setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat);
|
|
59
62
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
63
|
|
|
61
64
|
|
|
62
|
-
const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState) => {
|
|
65
|
+
const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState) => {
|
|
63
66
|
// Getting prechat Survey Context
|
|
64
67
|
const parseToJson = false;
|
|
65
68
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
@@ -82,11 +85,11 @@ const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProact
|
|
|
82
85
|
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
83
86
|
payload: ConversationState.Loading
|
|
84
87
|
});
|
|
85
|
-
await initStartChat(chatSDK, dispatch, setAdapter);
|
|
88
|
+
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
|
|
86
89
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
90
|
|
|
88
91
|
|
|
89
|
-
const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedState) => {
|
|
92
|
+
const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, params, persistedState) => {
|
|
90
93
|
try {
|
|
91
94
|
var _newAdapter$activity$, _TelemetryTimers$Widg;
|
|
92
95
|
|
|
@@ -109,9 +112,12 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedSta
|
|
|
109
112
|
TelemetryTimers.WidgetLoadTimer = createTimer();
|
|
110
113
|
TelemetryHelper.logSDKEvent(LogLevel.INFO, {
|
|
111
114
|
Event: TelemetryEvent.StartChatSDKCall
|
|
112
|
-
}); // Set
|
|
115
|
+
}); // Set custom context params
|
|
113
116
|
|
|
114
|
-
|
|
117
|
+
setCustomContextParams(chatSDK);
|
|
118
|
+
optionalParams = Object.assign({}, params, optionalParams); // set auth token to chat sdk before start chat
|
|
119
|
+
|
|
120
|
+
await handleAuthentication(chatSDK, chatConfig, getAuthToken);
|
|
115
121
|
await chatSDK.startChat(optionalParams);
|
|
116
122
|
isStartChatSuccessful = true;
|
|
117
123
|
} catch (error) {
|
|
@@ -162,6 +168,7 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedSta
|
|
|
162
168
|
await updateSessionDataForTelemetry(chatSDK, dispatch); // Set app state to Active
|
|
163
169
|
|
|
164
170
|
if (isStartChatSuccessful) {
|
|
171
|
+
ActivityStreamHandler.uncork();
|
|
165
172
|
dispatch({
|
|
166
173
|
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
167
174
|
payload: ConversationState.Active
|
|
@@ -194,19 +201,20 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedSta
|
|
|
194
201
|
}
|
|
195
202
|
} finally {
|
|
196
203
|
optionalParams = {};
|
|
204
|
+
widgetInstanceId = "";
|
|
197
205
|
}
|
|
198
206
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
199
207
|
|
|
200
208
|
|
|
201
209
|
const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
202
|
-
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _persistedState$domai6, _persistedState$appSt;
|
|
210
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps2, _persistedState$domai6, _persistedState$appSt;
|
|
203
211
|
|
|
204
212
|
// By pass this function in case of popout chat
|
|
205
213
|
if (state.appStates.skipChatButtonRendering === true) {
|
|
206
214
|
return false;
|
|
207
215
|
}
|
|
208
216
|
|
|
209
|
-
const persistedState = 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); //Connect to only active chat session
|
|
217
|
+
const persistedState = 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
|
|
210
218
|
|
|
211
219
|
if (persistedState && !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.Active) {
|
|
212
220
|
var _persistedState$domai7;
|
|
@@ -218,7 +226,7 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
218
226
|
const optionalParams = {
|
|
219
227
|
liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai7 = persistedState.domainStates) === null || _persistedState$domai7 === void 0 ? void 0 : _persistedState$domai7.liveChatContext
|
|
220
228
|
};
|
|
221
|
-
await initStartChat(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
|
|
229
|
+
await initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams, persistedState);
|
|
222
230
|
return true;
|
|
223
231
|
} else {
|
|
224
232
|
return false;
|
|
@@ -226,17 +234,28 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
226
234
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
227
235
|
|
|
228
236
|
|
|
229
|
-
const setCustomContextParams =
|
|
230
|
-
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4,
|
|
237
|
+
const setCustomContextParams = chatSDK => {
|
|
238
|
+
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _persistedState$domai8;
|
|
231
239
|
|
|
232
240
|
// Add custom context only for unauthenticated chat
|
|
233
|
-
const persistedState = 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);
|
|
241
|
+
const persistedState = 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 ?? "");
|
|
242
|
+
|
|
243
|
+
if (!isUndefinedOrEmpty(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext)) {
|
|
244
|
+
var _persistedState$domai9, _persistedState$domai10;
|
|
234
245
|
|
|
235
|
-
|
|
236
|
-
|
|
246
|
+
if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai9 = persistedState.domainStates.liveChatConfig) !== null && _persistedState$domai9 !== void 0 && _persistedState$domai9.LiveChatConfigAuthSettings) {
|
|
247
|
+
const errorMessage = "Use of custom context with authenticated chat is deprecated. The chat would not go through.";
|
|
248
|
+
TelemetryHelper.logSDKEvent(LogLevel.WARN, {
|
|
249
|
+
Event: TelemetryEvent.StartChatMethodException,
|
|
250
|
+
ExceptionDetails: {
|
|
251
|
+
exception: errorMessage
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
throw new Error(errorMessage);
|
|
255
|
+
}
|
|
237
256
|
|
|
238
257
|
optionalParams = Object.assign({}, optionalParams, {
|
|
239
|
-
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$
|
|
258
|
+
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai10 = persistedState.domainStates) === null || _persistedState$domai10 === void 0 ? void 0 : _persistedState$domai10.customContext
|
|
240
259
|
});
|
|
241
260
|
}
|
|
242
261
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import { BroadcastEvent, LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
|
|
4
|
-
import { BroadcastService, decodeComponentString } from "@microsoft/omnichannel-chat-components";
|
|
4
|
+
import { BroadcastService, decodeComponentString, BroadcastServiceInitialize } from "@microsoft/omnichannel-chat-components";
|
|
5
5
|
import { Stack } from "@fluentui/react";
|
|
6
6
|
import React, { useEffect, useRef, useState } from "react";
|
|
7
|
-
import { createTimer, getLocaleDirection, getStateFromCache, getWidgetCacheId, getWidgetEndChatEventName, isUndefinedOrEmpty } from "../../../common/utils";
|
|
7
|
+
import { createTimer, getBroadcastChannelName, getLocaleDirection, getStateFromCache, getWidgetCacheId, getWidgetEndChatEventName, isNullOrEmptyString, isUndefinedOrEmpty } from "../../../common/utils";
|
|
8
8
|
import { getReconnectIdForAuthenticatedChat, handleUnauthenticatedReconnectChat, startUnauthenticatedReconnectChat } from "../common/reconnectChatHelper";
|
|
9
9
|
import { initStartChat, prepareStartChat, setPreChatAndInitiateChat } from "../common/startChat";
|
|
10
10
|
import { shouldShowCallingContainer, shouldShowChatButton, shouldShowConfirmationPane, shouldShowEmailTranscriptPane, shouldShowHeader, shouldShowLoadingPane, shouldShowOutOfOfficeHoursPane, shouldShowPostChatLoadingPane, shouldShowPostChatSurveyPane, shouldShowPreChatSurveyPane, shouldShowProactiveChatPane, shouldShowReconnectChatPane, shouldShowWebChatContainer } from "../../../controller/componentController";
|
|
@@ -43,8 +43,10 @@ import { startProactiveChat } from "../common/startProactiveChat";
|
|
|
43
43
|
import useChatAdapterStore from "../../../hooks/useChatAdapterStore";
|
|
44
44
|
import useChatContextStore from "../../../hooks/useChatContextStore";
|
|
45
45
|
import useChatSDKStore from "../../../hooks/useChatSDKStore";
|
|
46
|
+
import { ActivityStreamHandler } from "../common/ActivityStreamHandler";
|
|
47
|
+
import { Constants } from "../../../common/Constants";
|
|
46
48
|
export const LiveChatWidgetStateful = props => {
|
|
47
|
-
var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$
|
|
49
|
+
var _props$webChatContain, _props$styleProps, _chatSDK$omnichannelC, _props$controlProps, _props$controlProps2, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps14, _props$controlProps15, _props$componentOverr, _props$controlProps16, _props$componentOverr2, _props$controlProps17, _props$componentOverr3, _props$controlProps18, _props$componentOverr4, _props$controlProps19, _props$componentOverr5, _props$controlProps20, _props$componentOverr6, _props$controlProps21, _props$componentOverr7, _props$controlProps22, _props$controlProps23, _props$componentOverr8, _props$controlProps24, _props$componentOverr9, _props$controlProps25, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
|
|
48
50
|
|
|
49
51
|
const [state, dispatch] = useChatContextStore(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
52
|
|
|
@@ -64,25 +66,21 @@ export const LiveChatWidgetStateful = props => {
|
|
|
64
66
|
const generalStyles = {
|
|
65
67
|
root: Object.assign({}, getGeneralStylesForButton(state), (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyles)
|
|
66
68
|
};
|
|
69
|
+
const broadcastServiceChannelName = getBroadcastChannelName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
|
|
70
|
+
BroadcastServiceInitialize(broadcastServiceChannelName);
|
|
67
71
|
TelemetryTimers.LcwLoadToChatButtonTimer = createTimer();
|
|
68
|
-
const widgetElementId = ((_props$
|
|
72
|
+
const widgetElementId = ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.id) || "oc-lcw";
|
|
69
73
|
const currentMessageCountRef = useRef(0);
|
|
70
74
|
let widgetStateEventName = "";
|
|
71
75
|
|
|
72
76
|
const initiateEndChatOnBrowserUnload = () => {
|
|
73
|
-
var
|
|
77
|
+
var _DataStoreManager$cli;
|
|
74
78
|
|
|
75
79
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
76
80
|
Event: TelemetryEvent.BrowserUnloadEventStarted,
|
|
77
81
|
Description: "Browser unload event received."
|
|
78
82
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (persistedState.appStates.conversationState === ConversationState.Active) {
|
|
82
|
-
//Browser close scenario/no room for PCS/so just end chat and notify agent immidiately
|
|
83
|
-
endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
|
|
84
|
-
} // Clean local storage
|
|
85
|
-
|
|
83
|
+
endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false); // Clean local storage
|
|
86
84
|
|
|
87
85
|
(_DataStoreManager$cli = DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.removeData(widgetStateEventName, "localStorage"); //Dispose calling instance
|
|
88
86
|
|
|
@@ -97,7 +95,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
97
95
|
};
|
|
98
96
|
|
|
99
97
|
useEffect(() => {
|
|
100
|
-
var _props$
|
|
98
|
+
var _props$controlProps3, _props$controlProps4, _props$controlProps5, _props$controlProps7, _props$chatConfig, _props$chatConfig$Cha, _props$controlProps8, _props$reconnectChatP, _props$chatConfig2, _props$chatConfig2$Li, _props$reconnectChatP4;
|
|
101
99
|
|
|
102
100
|
registerTelemetryLoggers(props, dispatch);
|
|
103
101
|
createInternetConnectionChangeHandler();
|
|
@@ -108,12 +106,22 @@ export const LiveChatWidgetStateful = props => {
|
|
|
108
106
|
});
|
|
109
107
|
dispatch({
|
|
110
108
|
type: LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
|
|
111
|
-
payload: ((_props$
|
|
109
|
+
payload: ((_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.skipChatButtonRendering) || false
|
|
112
110
|
});
|
|
113
111
|
dispatch({
|
|
114
112
|
type: LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
115
113
|
payload: false
|
|
116
114
|
});
|
|
115
|
+
|
|
116
|
+
if ((_props$controlProps4 = props.controlProps) !== null && _props$controlProps4 !== void 0 && _props$controlProps4.widgetInstanceId && !isNullOrEmptyString((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.widgetInstanceId)) {
|
|
117
|
+
var _props$controlProps6;
|
|
118
|
+
|
|
119
|
+
dispatch({
|
|
120
|
+
type: LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID,
|
|
121
|
+
payload: (_props$controlProps6 = props.controlProps) === null || _props$controlProps6 === void 0 ? void 0 : _props$controlProps6.widgetInstanceId
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
117
125
|
initCallingSdk(chatSDK, setVoiceVideoCallingSDK).then(sdkCreated => {
|
|
118
126
|
sdkCreated && dispatch({
|
|
119
127
|
type: LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
@@ -121,24 +129,42 @@ export const LiveChatWidgetStateful = props => {
|
|
|
121
129
|
});
|
|
122
130
|
}); // Initialize global dir
|
|
123
131
|
|
|
124
|
-
const globalDir = ((_props$
|
|
132
|
+
const globalDir = ((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.dir) ?? getLocaleDirection((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Cha = _props$chatConfig.ChatWidgetLanguage) === null || _props$chatConfig$Cha === void 0 ? void 0 : _props$chatConfig$Cha.msdyn_localeid);
|
|
125
133
|
dispatch({
|
|
126
134
|
type: LiveChatWidgetActionType.SET_GLOBAL_DIR,
|
|
127
135
|
payload: globalDir
|
|
128
136
|
});
|
|
129
137
|
|
|
130
|
-
if (!((_props$
|
|
131
|
-
var _props$reconnectChatP2;
|
|
138
|
+
if (!((_props$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
139
|
+
var _props$reconnectChatP2, _props$reconnectChatP3;
|
|
132
140
|
|
|
133
|
-
startUnauthenticatedReconnectChat(chatSDK, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, initStartChat);
|
|
141
|
+
startUnauthenticatedReconnectChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_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, initStartChat);
|
|
134
142
|
return;
|
|
135
|
-
} //
|
|
143
|
+
} // Checks if reconnectId is present for auth chat. If it is present, then it shows reconnect chat pane,
|
|
144
|
+
// where customer can choose to continue previous conversation or start new conversation
|
|
136
145
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
137
146
|
|
|
138
147
|
|
|
139
148
|
const isAuthenticationSettingsEnabled = (_props$chatConfig2 = props.chatConfig) !== null && _props$chatConfig2 !== void 0 && (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) !== null && _props$chatConfig2$Li !== void 0 && _props$chatConfig2$Li.msdyn_javascriptclientfunction ? true : false;
|
|
140
149
|
|
|
141
|
-
if (!isAuthenticationSettingsEnabled) {
|
|
150
|
+
if (!state.appStates.skipChatButtonRendering && state.appStates.conversationState === ConversationState.Active && isAuthenticationSettingsEnabled === true && (_props$reconnectChatP4 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP4 !== void 0 && _props$reconnectChatP4.isReconnectEnabled) {
|
|
151
|
+
getReconnectIdForAuthenticatedChat(props, chatSDK).then(authReconnectId => {
|
|
152
|
+
if (authReconnectId && !state.appStates.reconnectId) {
|
|
153
|
+
dispatch({
|
|
154
|
+
type: LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
155
|
+
payload: authReconnectId
|
|
156
|
+
});
|
|
157
|
+
dispatch({
|
|
158
|
+
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
159
|
+
payload: ConversationState.ReconnectChat
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return;
|
|
164
|
+
} // Check if auth settings enabled, do not connect to existing chat from cache during refresh/re-load
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
if (isAuthenticationSettingsEnabled === false) {
|
|
142
168
|
var _state$domainStates;
|
|
143
169
|
|
|
144
170
|
if (!isUndefinedOrEmpty((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext) && state.appStates.conversationState === ConversationState.Active) {
|
|
@@ -147,7 +173,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
147
173
|
const optionalParams = {
|
|
148
174
|
liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
|
|
149
175
|
};
|
|
150
|
-
initStartChat(chatSDK, dispatch, setAdapter, optionalParams);
|
|
176
|
+
initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams);
|
|
151
177
|
return;
|
|
152
178
|
}
|
|
153
179
|
} // All other case should show start chat button, skipChatButtonRendering will take care of it own
|
|
@@ -161,16 +187,16 @@ export const LiveChatWidgetStateful = props => {
|
|
|
161
187
|
|
|
162
188
|
useEffect(() => {
|
|
163
189
|
if (state.appStates.skipChatButtonRendering) {
|
|
164
|
-
var _props$
|
|
190
|
+
var _props$reconnectChatP5;
|
|
165
191
|
|
|
166
192
|
BroadcastService.postMessage({
|
|
167
193
|
eventName: BroadcastEvent.ChatInitiated
|
|
168
194
|
});
|
|
169
195
|
|
|
170
|
-
if ((_props$
|
|
171
|
-
var _props$
|
|
196
|
+
if ((_props$reconnectChatP5 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP5 !== void 0 && _props$reconnectChatP5.reconnectId && !state.appStates.reconnectId) {
|
|
197
|
+
var _props$reconnectChatP6, _props$reconnectChatP7, _props$reconnectChatP8;
|
|
172
198
|
|
|
173
|
-
handleUnauthenticatedReconnectChat(chatSDK, dispatch, setAdapter, (_props$
|
|
199
|
+
handleUnauthenticatedReconnectChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$reconnectChatP6 = props.reconnectChatPaneProps) === null || _props$reconnectChatP6 === void 0 ? void 0 : _props$reconnectChatP6.isReconnectEnabled, (_props$reconnectChatP7 = props.reconnectChatPaneProps) === null || _props$reconnectChatP7 === void 0 ? void 0 : _props$reconnectChatP7.reconnectId, initStartChat, (_props$reconnectChatP8 = props.reconnectChatPaneProps) === null || _props$reconnectChatP8 === void 0 ? void 0 : _props$reconnectChatP8.redirectInSameWindow);
|
|
174
200
|
} else {
|
|
175
201
|
getReconnectIdForAuthenticatedChat(props, chatSDK).then(authReconnectId => {
|
|
176
202
|
if (authReconnectId && !state.appStates.reconnectId) {
|
|
@@ -187,7 +213,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
187
213
|
eventName: BroadcastEvent.StartChatSkippingChatButtonRendering
|
|
188
214
|
};
|
|
189
215
|
BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
|
|
190
|
-
setPreChatAndInitiateChat(chatSDK, dispatch, setAdapter);
|
|
216
|
+
setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter);
|
|
191
217
|
}
|
|
192
218
|
});
|
|
193
219
|
}
|
|
@@ -195,7 +221,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
195
221
|
}, [state.appStates.skipChatButtonRendering]); // useEffect for when skip chat button rendering
|
|
196
222
|
|
|
197
223
|
useEffect(() => {
|
|
198
|
-
var _chatSDK$
|
|
224
|
+
var _chatSDK$omnichannelC6, _chatSDK$omnichannelC7, _props$controlProps11;
|
|
199
225
|
|
|
200
226
|
// Add the custom context on receiving the SetCustomContext event
|
|
201
227
|
BroadcastService.getMessageByEventName(BroadcastEvent.SetCustomContext).subscribe(msg => {
|
|
@@ -214,7 +240,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
214
240
|
Description: "Start proactive chat event received."
|
|
215
241
|
});
|
|
216
242
|
|
|
217
|
-
if (canStartProactiveChat.current) {
|
|
243
|
+
if (canStartProactiveChat.current === true) {
|
|
218
244
|
var _msg$payload, _msg$payload2, _msg$payload3;
|
|
219
245
|
|
|
220
246
|
startProactiveChat(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.notificationConfig, msg === null || msg === void 0 ? void 0 : (_msg$payload2 = msg.payload) === null || _msg$payload2 === void 0 ? void 0 : _msg$payload2.enablePreChat, msg === null || msg === void 0 ? void 0 : (_msg$payload3 = msg.payload) === null || _msg$payload3 === void 0 ? void 0 : _msg$payload3.inNewWindow);
|
|
@@ -227,24 +253,36 @@ export const LiveChatWidgetStateful = props => {
|
|
|
227
253
|
}); // Start chat from SDK Event
|
|
228
254
|
|
|
229
255
|
BroadcastService.getMessageByEventName(BroadcastEvent.StartChat).subscribe(() => {
|
|
230
|
-
var _chatSDK$
|
|
256
|
+
var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps9;
|
|
231
257
|
|
|
232
258
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
233
259
|
Event: TelemetryEvent.StartChatEventRecevied,
|
|
234
260
|
Description: "Start chat event received."
|
|
235
261
|
});
|
|
236
|
-
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
262
|
+
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.widgetInstanceId) ?? ""); // Chat not found in cache
|
|
237
263
|
|
|
238
|
-
if (persistedState
|
|
239
|
-
// Embedded mode
|
|
264
|
+
if (persistedState === undefined) {
|
|
240
265
|
BroadcastService.postMessage({
|
|
241
266
|
eventName: BroadcastEvent.ChatInitiated
|
|
242
267
|
});
|
|
243
268
|
prepareStartChat(props, chatSDK, state, dispatch, setAdapter);
|
|
244
|
-
|
|
269
|
+
return;
|
|
270
|
+
} // Chat exist in cache
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
if (persistedState) {
|
|
245
274
|
var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4;
|
|
246
275
|
|
|
247
|
-
//
|
|
276
|
+
// Only initiate new chat if widget state in cache in one of the followings
|
|
277
|
+
if (persistedState.appStates.conversationState === ConversationState.Closed || persistedState.appStates.conversationState === ConversationState.InActive || persistedState.appStates.conversationState === ConversationState.Postchat) {
|
|
278
|
+
BroadcastService.postMessage({
|
|
279
|
+
eventName: BroadcastEvent.ChatInitiated
|
|
280
|
+
});
|
|
281
|
+
prepareStartChat(props, chatSDK, state, dispatch, setAdapter);
|
|
282
|
+
return;
|
|
283
|
+
} // If minimized, maximize the chat
|
|
284
|
+
|
|
285
|
+
|
|
248
286
|
dispatch({
|
|
249
287
|
type: LiveChatWidgetActionType.SET_MINIMIZED,
|
|
250
288
|
payload: false
|
|
@@ -261,10 +299,10 @@ export const LiveChatWidgetStateful = props => {
|
|
|
261
299
|
|
|
262
300
|
BroadcastService.getMessageByEventName(BroadcastEvent.InitiateEndChat).subscribe(async () => {
|
|
263
301
|
if (state.appStates.skipChatButtonRendering !== true) {
|
|
264
|
-
var _chatSDK$
|
|
302
|
+
var _chatSDK$omnichannelC4, _chatSDK$omnichannelC5, _props$controlProps10;
|
|
265
303
|
|
|
266
304
|
// This is to ensure to get latest state from cache in multitab
|
|
267
|
-
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
305
|
+
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC5 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC5 === void 0 ? void 0 : _chatSDK$omnichannelC5.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps10 = props.controlProps) === null || _props$controlProps10 === void 0 ? void 0 : _props$controlProps10.widgetInstanceId) ?? "");
|
|
268
306
|
|
|
269
307
|
if (persistedState && persistedState.appStates.conversationState === ConversationState.Active) {
|
|
270
308
|
prepareEndChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
@@ -284,9 +322,10 @@ export const LiveChatWidgetStateful = props => {
|
|
|
284
322
|
initiateEndChatOnBrowserUnload();
|
|
285
323
|
}); // Listen to end chat event from other tabs
|
|
286
324
|
|
|
287
|
-
const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
325
|
+
const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC6 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC6 === void 0 ? void 0 : _chatSDK$omnichannelC6.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC7 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC7 === void 0 ? void 0 : _chatSDK$omnichannelC7.widgetId, ((_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
|
|
288
326
|
BroadcastService.getMessageByEventName(endChatEventName).subscribe(async () => {
|
|
289
327
|
endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
|
|
328
|
+
return;
|
|
290
329
|
}); // When conversation ended by agent
|
|
291
330
|
|
|
292
331
|
if (state.appStates.conversationEndedByAgent) {
|
|
@@ -326,6 +365,12 @@ export const LiveChatWidgetStateful = props => {
|
|
|
326
365
|
}, [state.appStates.conversationState, state.appStates.proactiveChatStates.proactiveChatInNewWindow]); // Reset the UnreadMessageCount when minimized is toggled and broadcast it.
|
|
327
366
|
|
|
328
367
|
useEffect(() => {
|
|
368
|
+
if (state.appStates.isMinimized) {
|
|
369
|
+
ActivityStreamHandler.cork();
|
|
370
|
+
} else {
|
|
371
|
+
setTimeout(() => ActivityStreamHandler.uncork(), 500);
|
|
372
|
+
}
|
|
373
|
+
|
|
329
374
|
currentMessageCountRef.current = -1;
|
|
330
375
|
dispatch({
|
|
331
376
|
type: LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
|
|
@@ -358,9 +403,24 @@ export const LiveChatWidgetStateful = props => {
|
|
|
358
403
|
}, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]); // Publish chat widget state
|
|
359
404
|
|
|
360
405
|
useEffect(() => {
|
|
361
|
-
var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic;
|
|
406
|
+
var _props$controlProps12, _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps13;
|
|
407
|
+
|
|
408
|
+
// Only activate these windows events when conversation state is active and chat widget is in popout mode
|
|
409
|
+
// Ghost chat scenarios
|
|
410
|
+
if (state.appStates.conversationState === ConversationState.Active && ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.skipChatButtonRendering) === true) {
|
|
411
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
412
|
+
window.onbeforeunload = function () {
|
|
413
|
+
const prompt = Constants.BrowserUnloadConfirmationMessage;
|
|
414
|
+
return prompt;
|
|
415
|
+
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
window.onunload = function () {
|
|
419
|
+
initiateEndChatOnBrowserUnload();
|
|
420
|
+
};
|
|
421
|
+
}
|
|
362
422
|
|
|
363
|
-
widgetStateEventName = getWidgetCacheId(props === null || props === void 0 ? void 0 : (_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, props === null || props === void 0 ? void 0 : (_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);
|
|
423
|
+
widgetStateEventName = getWidgetCacheId(props === null || props === void 0 ? void 0 : (_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, props === null || props === void 0 ? void 0 : (_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, (props === null || props === void 0 ? void 0 : (_props$controlProps13 = props.controlProps) === null || _props$controlProps13 === void 0 ? void 0 : _props$controlProps13.widgetInstanceId) ?? "");
|
|
364
424
|
const chatWidgetStateChangeEvent = {
|
|
365
425
|
eventName: widgetStateEventName,
|
|
366
426
|
payload: { ...state
|
|
@@ -373,7 +433,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
373
433
|
const setPostChatContextRelay = () => setPostChatContextAndLoadSurvey(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
374
434
|
|
|
375
435
|
|
|
376
|
-
const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat) => endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
436
|
+
const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
377
437
|
|
|
378
438
|
|
|
379
439
|
const prepareEndChatRelay = (adapter, state) => prepareEndChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
@@ -381,7 +441,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
381
441
|
const prepareStartChatRelay = () => prepareStartChat(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
382
442
|
|
|
383
443
|
|
|
384
|
-
const initStartChatRelay = (optionalParams, persistedState) => initStartChat(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
|
|
444
|
+
const initStartChatRelay = (optionalParams, persistedState) => initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams, persistedState);
|
|
385
445
|
|
|
386
446
|
const confirmationPaneProps = initConfirmationPropsComposer(props);
|
|
387
447
|
return /*#__PURE__*/React.createElement(Composer, _extends({}, webChatProps, {
|
|
@@ -391,28 +451,28 @@ export const LiveChatWidgetStateful = props => {
|
|
|
391
451
|
id: widgetElementId,
|
|
392
452
|
styles: generalStyles,
|
|
393
453
|
className: (_props$styleProps2 = props.styleProps) === null || _props$styleProps2 === void 0 ? void 0 : _props$styleProps2.className
|
|
394
|
-
}, !((_props$
|
|
454
|
+
}, !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideChatButton) && !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.skipChatButtonRendering) && shouldShowChatButton(state) && (decodeComponentString((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.chatButton) || /*#__PURE__*/React.createElement(ChatButtonStateful, {
|
|
395
455
|
buttonProps: props.chatButtonProps,
|
|
396
456
|
outOfOfficeButtonProps: props.outOfOfficeChatButtonProps,
|
|
397
457
|
startChat: prepareStartChatRelay
|
|
398
|
-
})), !((_props$
|
|
458
|
+
})), !((_props$controlProps16 = props.controlProps) !== null && _props$controlProps16 !== void 0 && _props$controlProps16.hideProactiveChatPane) && shouldShowProactiveChatPane(state) && (decodeComponentString((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.proactiveChatPane) || /*#__PURE__*/React.createElement(ProactiveChatPaneStateful, {
|
|
399
459
|
proactiveChatProps: props.proactiveChatPaneProps,
|
|
400
460
|
startChat: prepareStartChatRelay
|
|
401
|
-
})), !((_props$
|
|
461
|
+
})), !((_props$controlProps17 = props.controlProps) !== null && _props$controlProps17 !== void 0 && _props$controlProps17.hideHeader) && shouldShowHeader(state) && (decodeComponentString((_props$componentOverr3 = props.componentOverrides) === null || _props$componentOverr3 === void 0 ? void 0 : _props$componentOverr3.header) || /*#__PURE__*/React.createElement(HeaderStateful, {
|
|
402
462
|
headerProps: props.headerProps,
|
|
403
463
|
outOfOfficeHeaderProps: props.outOfOfficeHeaderProps,
|
|
404
464
|
endChat: endChatRelay
|
|
405
|
-
})), !((_props$
|
|
465
|
+
})), !((_props$controlProps18 = props.controlProps) !== null && _props$controlProps18 !== void 0 && _props$controlProps18.hideLoadingPane) && shouldShowLoadingPane(state) && (decodeComponentString((_props$componentOverr4 = props.componentOverrides) === null || _props$componentOverr4 === void 0 ? void 0 : _props$componentOverr4.loadingPane) || /*#__PURE__*/React.createElement(LoadingPaneStateful, props.loadingPaneProps)), !((_props$controlProps19 = props.controlProps) !== null && _props$controlProps19 !== void 0 && _props$controlProps19.hideOutOfOfficeHoursPane) && shouldShowOutOfOfficeHoursPane(state) && (decodeComponentString((_props$componentOverr5 = props.componentOverrides) === null || _props$componentOverr5 === void 0 ? void 0 : _props$componentOverr5.outOfOfficeHoursPane) || /*#__PURE__*/React.createElement(OutOfOfficeHoursPaneStateful, props.outOfOfficeHoursPaneProps)), !((_props$controlProps20 = props.controlProps) !== null && _props$controlProps20 !== void 0 && _props$controlProps20.hideReconnectChatPane) && shouldShowReconnectChatPane(state) && (decodeComponentString((_props$componentOverr6 = props.componentOverrides) === null || _props$componentOverr6 === void 0 ? void 0 : _props$componentOverr6.reconnectChatPane) || /*#__PURE__*/React.createElement(ReconnectChatPaneStateful, {
|
|
406
466
|
reconnectChatProps: props.reconnectChatPaneProps,
|
|
407
467
|
initStartChat: initStartChatRelay
|
|
408
|
-
})), !((_props$
|
|
468
|
+
})), !((_props$controlProps21 = props.controlProps) !== null && _props$controlProps21 !== void 0 && _props$controlProps21.hidePreChatSurveyPane) && shouldShowPreChatSurveyPane(state) && (decodeComponentString((_props$componentOverr7 = props.componentOverrides) === null || _props$componentOverr7 === void 0 ? void 0 : _props$componentOverr7.preChatSurveyPane) || /*#__PURE__*/React.createElement(PreChatSurveyPaneStateful, {
|
|
409
469
|
surveyProps: props.preChatSurveyPaneProps,
|
|
410
470
|
initStartChat: initStartChatRelay
|
|
411
|
-
})), !((_props$
|
|
471
|
+
})), !((_props$controlProps22 = props.controlProps) !== null && _props$controlProps22 !== void 0 && _props$controlProps22.hideCallingContainer) && shouldShowCallingContainer(state) && /*#__PURE__*/React.createElement(CallingContainerStateful, _extends({
|
|
412
472
|
voiceVideoCallingSdk: voiceVideoCallingSDK
|
|
413
|
-
}, props.callingContainerProps)), !((_props$
|
|
473
|
+
}, props.callingContainerProps)), !((_props$controlProps23 = props.controlProps) !== null && _props$controlProps23 !== void 0 && _props$controlProps23.hideWebChatContainer) && shouldShowWebChatContainer(state) && (decodeComponentString((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.webChatContainer) || /*#__PURE__*/React.createElement(WebChatContainerStateful, props.webChatContainerProps)), !((_props$controlProps24 = props.controlProps) !== null && _props$controlProps24 !== void 0 && _props$controlProps24.hideConfirmationPane) && shouldShowConfirmationPane(state) && (decodeComponentString((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.confirmationPane) || /*#__PURE__*/React.createElement(ConfirmationPaneStateful, _extends({}, confirmationPaneProps, {
|
|
414
474
|
setPostChatContext: setPostChatContextRelay,
|
|
415
475
|
prepareEndChat: prepareEndChatRelay
|
|
416
|
-
}))), !((_props$
|
|
476
|
+
}))), !((_props$controlProps25 = props.controlProps) !== null && _props$controlProps25 !== void 0 && _props$controlProps25.hidePostChatLoadingPane) && shouldShowPostChatLoadingPane(state) && (decodeComponentString((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatLoadingPane) || /*#__PURE__*/React.createElement(PostChatLoadingPaneStateful, props.postChatLoadingPaneProps)), shouldShowPostChatSurveyPane(state) && (decodeComponentString((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.postChatSurveyPane) || /*#__PURE__*/React.createElement(PostChatSurveyPaneStateful, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), createFooter(props, state), shouldShowEmailTranscriptPane(state) && (decodeComponentString((_props$componentOverr12 = props.componentOverrides) === null || _props$componentOverr12 === void 0 ? void 0 : _props$componentOverr12.emailTranscriptPane) || /*#__PURE__*/React.createElement(EmailTranscriptPaneStateful, props.emailTranscriptPane))));
|
|
417
477
|
};
|
|
418
478
|
export default LiveChatWidgetStateful;
|
|
@@ -68,7 +68,7 @@ export const PreChatSurveyPaneStateful = props => {
|
|
|
68
68
|
try {
|
|
69
69
|
var _state$domainStates, _state$domainStates$t, _state$domainStates$t2, _persistedState$domai, _persistedState$appSt;
|
|
70
70
|
|
|
71
|
-
const persistedState = getStateFromCache(((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$t = _state$domainStates.telemetryInternalData) === null || _state$domainStates$t === void 0 ? void 0 : _state$domainStates$t.orgId) ?? "", ((_state$domainStates$t2 = state.domainStates.telemetryInternalData) === null || _state$domainStates$t2 === void 0 ? void 0 : _state$domainStates$t2.widgetId) ?? "");
|
|
71
|
+
const persistedState = getStateFromCache(((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$t = _state$domainStates.telemetryInternalData) === null || _state$domainStates$t === void 0 ? void 0 : _state$domainStates$t.orgId) ?? "", ((_state$domainStates$t2 = state.domainStates.telemetryInternalData) === null || _state$domainStates$t2 === void 0 ? void 0 : _state$domainStates$t2.widgetId) ?? "", state.domainStates.widgetInstanceId ?? "");
|
|
72
72
|
let optionalParams = {}; //Connect to Active chats and chat is not popout
|
|
73
73
|
|
|
74
74
|
if (persistedState && !isUndefinedOrEmpty(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : _persistedState$domai.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === ConversationState.Active && !state.appStates.skipChatButtonRendering) {
|
|
@@ -12,6 +12,7 @@ import { WebChatActionType } from "./webchatcontroller/enums/WebChatActionType";
|
|
|
12
12
|
import { WebChatStoreLoader } from "./webchatcontroller/WebChatStoreLoader";
|
|
13
13
|
import { Constants } from "../../common/Constants";
|
|
14
14
|
import { BotMagicCodeStore } from "./webchatcontroller/BotMagicCodeStore";
|
|
15
|
+
import { defaultAdaptiveCardStyles } from "./common/defaultStyles/defaultAdaptiveCardStyles";
|
|
15
16
|
const broadcastChannelMessageEvent = "message";
|
|
16
17
|
|
|
17
18
|
const postActivity = activity => {
|
|
@@ -41,6 +42,8 @@ const createMagicCodeSuccessResponse = signin => {
|
|
|
41
42
|
};
|
|
42
43
|
|
|
43
44
|
export const WebChatContainerStateful = props => {
|
|
45
|
+
var _props$adaptiveCardSt, _props$adaptiveCardSt2;
|
|
46
|
+
|
|
44
47
|
const {
|
|
45
48
|
BasicWebChat
|
|
46
49
|
} = Components;
|
|
@@ -109,6 +112,13 @@ export const WebChatContainerStateful = props => {
|
|
|
109
112
|
magicCodeBroadcastChannel.addEventListener(broadcastChannelMessageEvent, eventListener);
|
|
110
113
|
}, []);
|
|
111
114
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, `
|
|
115
|
+
|
|
116
|
+
.webchat__bubble__content>div#ms_lcw_webchat_adaptive_card {
|
|
117
|
+
background: ${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt = props.adaptiveCardStyles) === null || _props$adaptiveCardSt === void 0 ? void 0 : _props$adaptiveCardSt.background) ?? defaultAdaptiveCardStyles.background};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
div[class="ac-textBlock"]>p{color:${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt2 = props.adaptiveCardStyles) === null || _props$adaptiveCardSt2 === void 0 ? void 0 : _props$adaptiveCardSt2.color) ?? defaultAdaptiveCardStyles.color};}
|
|
121
|
+
|
|
112
122
|
.ms_lcw_webchat_received_message img.webchat__markdown__external-link-icon {
|
|
113
123
|
background-image : url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjI1MDEgNC41MDAxN0gxMC43NDk1QzExLjE2MzcgNC41MDAxNyAxMS40OTk1IDQuODM1OTYgMTEuNDk5NSA1LjI1MDE3QzExLjQ5OTUgNS42Mjk4NiAxMS4yMTczIDUuOTQzNjYgMTAuODUxMyA1Ljk5MzMyTDEwLjc0OTUgNi4wMDAxN0g3LjI0OTc0QzYuMDcwNzkgNS45OTk2MSA1LjEwMzQ5IDYuOTA2NTYgNS4wMDc4NiA4LjA2MTEyTDUuMDAwMjggOC4yMjAwM0w1LjAwMzEyIDE2Ljc1MDdDNS4wMDM0MyAxNy45NDE1IDUuOTI4ODUgMTguOTE2MSA3LjA5OTY2IDE4Ljk5NDlMNy4yNTM3MSAxOS4wMDAxTDE1Ljc1MTggMTguOTg4NEMxNi45NDE1IDE4Ljk4NjggMTcuOTE0NSAxOC4wNjIgMTcuOTkzNSAxNi44OTIzTDE3Ljk5ODcgMTYuNzM4NFYxMy4yMzIxQzE3Ljk5ODcgMTIuODE3OSAxOC4zMzQ1IDEyLjQ4MjEgMTguNzQ4NyAxMi40ODIxQzE5LjEyODQgMTIuNDgyMSAxOS40NDIyIDEyLjc2NDMgMTkuNDkxOCAxMy4xMzAzTDE5LjQ5ODcgMTMuMjMyMVYxNi43Mzg0QzE5LjQ5ODcgMTguNzQwNyAxNy45MjkzIDIwLjM3NjkgMTUuOTUyOCAyMC40ODI5TDE1Ljc1MzggMjAuNDg4NEw3LjI1ODI3IDIwLjUwMDFMNy4wNTQ5NSAyMC40OTQ5QzUuMTQyMzkgMjAuMzk1NCAzLjYwODk1IDE4Ljg2MjcgMy41MDgzNyAxNi45NTAyTDMuNTAzMTIgMTYuNzUxMUwzLjUwMDg5IDguMjUyN0wzLjUwNTI5IDguMDUwMkMzLjYwNTM5IDYuMTM3NDkgNS4xMzg2NyA0LjYwNDQ5IDcuMDUwOTYgNC41MDUyN0w3LjI1MDEgNC41MDAxN0gxMC43NDk1SDcuMjUwMVpNMTMuNzQ4MSAzLjAwMTQ2TDIwLjMwMTggMy4wMDE5N0wyMC40MDE0IDMuMDE1NzVMMjAuNTAyMiAzLjA0MzkzTDIwLjU1OSAzLjA2ODAzQzIwLjYxMjIgMy4wOTEyMiAyMC42NjM0IDMuMTIxNjMgMjAuNzExMSAzLjE1ODg1TDIwLjc4MDQgMy4yMjE1NkwyMC44NjQxIDMuMzIwMTRMMjAuOTE4MyAzLjQxMDI1TDIwLjk1NyAzLjUwMDU3TDIwLjk3NjIgMy41NjQ3NkwyMC45ODk4IDMuNjI4NjJMMjAuOTk5MiAzLjcyMjgyTDIwLjk5OTcgMTAuMjU1NEMyMC45OTk3IDEwLjY2OTYgMjAuNjYzOSAxMS4wMDU0IDIwLjI0OTcgMTEuMDA1NEMxOS44NyAxMS4wMDU0IDE5LjU1NjIgMTAuNzIzMiAxOS41MDY1IDEwLjM1NzFMMTkuNDk5NyAxMC4yNTU0TDE5LjQ5ODkgNS41NjE0N0wxMi4yNzk3IDEyLjc4NDdDMTIuMDEzNCAxMy4wNTEgMTEuNTk2OCAxMy4wNzUzIDExLjMwMzEgMTIuODU3NUwxMS4yMTkgMTIuNzg0OUMxMC45NTI3IDEyLjUxODcgMTAuOTI4NCAxMi4xMDIxIDExLjE0NjIgMTEuODA4NEwxMS4yMTg4IDExLjcyNDNMMTguNDM2OSA0LjUwMTQ2SDEzLjc0ODFDMTMuMzY4NCA0LjUwMTQ2IDEzLjA1NDYgNC4yMTkzMSAxMy4wMDUgMy44NTMyNEwxMi45OTgxIDMuNzUxNDZDMTIuOTk4MSAzLjM3MTc3IDEzLjI4MDMgMy4wNTc5NyAxMy42NDY0IDMuMDA4MzFMMTMuNzQ4MSAzLjAwMTQ2WiIgZmlsbD0iI0ZGRkZGRiIgLz48L3N2Zz4) !important;
|
|
114
124
|
height: '.75em';
|
|
@@ -2,11 +2,13 @@ import MockAdapter from "../mockadapter";
|
|
|
2
2
|
import { defaultWebChatStatefulContainerStyles } from "../defaultStyles/defaultWebChatStatefulContainerStyles";
|
|
3
3
|
import { defaultWebChatStatefulProps } from "./defaultWebChatStatefulProps";
|
|
4
4
|
import { defaultWebChatStatefulStyles } from "../defaultStyles/defaultWebChatContainerStatefulStyles";
|
|
5
|
+
import { defaultAdaptiveCardStyles } from "../defaultStyles/defaultAdaptiveCardStyles";
|
|
5
6
|
export const defaultWebChatContainerStatefulProps = {
|
|
6
7
|
webChatStyles: defaultWebChatStatefulStyles,
|
|
7
8
|
webChatProps: defaultWebChatStatefulProps,
|
|
8
9
|
containerStyles: defaultWebChatStatefulContainerStyles,
|
|
9
10
|
disableNewLineMarkdownSupport: false,
|
|
10
11
|
disableMarkdownMessageFormatting: false,
|
|
11
|
-
directLine: new MockAdapter()
|
|
12
|
+
directLine: new MockAdapter(),
|
|
13
|
+
adaptiveCardStyles: defaultAdaptiveCardStyles
|
|
12
14
|
};
|