@microsoft/omnichannel-chat-widget 0.1.0-main.cf54410 → 0.1.0-main.dbc1afa
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/README.md +227 -0
- package/lib/cjs/assets/Audios.js +8 -0
- package/lib/cjs/assets/Icons.js +28 -0
- package/lib/cjs/common/Constants.js +38 -6
- package/lib/cjs/common/telemetry/TelemetryConstants.js +42 -4
- package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
- package/lib/cjs/common/telemetry/TelemetryManager.js +17 -6
- package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
- package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
- package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +33 -13
- package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -5
- package/lib/cjs/common/utils.js +30 -2
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +1 -1
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -41
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
- package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +1 -1
- package/lib/cjs/components/headerstateful/HeaderStateful.js +11 -8
- package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +16 -21
- package/lib/cjs/components/livechatwidget/common/endChat.js +116 -57
- package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +32 -7
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +105 -20
- package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +6 -17
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
- package/lib/cjs/components/livechatwidget/common/startChat.js +101 -49
- package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +114 -29
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
- package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
- package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -10
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +10 -4
- package/lib/cjs/{assets/assets.d.js → components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js} +0 -0
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
- package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +9 -46
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
- package/lib/cjs/contexts/common/ConversationState.js +3 -2
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +7 -7
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +7 -2
- package/lib/cjs/contexts/createReducer.js +8 -10
- package/lib/cjs/controller/componentController.js +2 -2
- package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
- package/lib/esm/assets/Audios.js +1 -0
- package/lib/esm/assets/Icons.js +11 -0
- package/lib/esm/common/Constants.js +34 -5
- package/lib/esm/common/telemetry/TelemetryConstants.js +38 -3
- package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
- package/lib/esm/common/telemetry/TelemetryManager.js +15 -6
- package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
- package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
- package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +36 -14
- package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -5
- package/lib/esm/common/utils.js +19 -1
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +1 -1
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -37
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
- package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +1 -1
- package/lib/esm/components/headerstateful/HeaderStateful.js +12 -9
- package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +14 -22
- package/lib/esm/components/livechatwidget/common/endChat.js +110 -54
- package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +29 -8
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +94 -20
- package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +5 -14
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
- package/lib/esm/components/livechatwidget/common/startChat.js +99 -50
- package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +105 -29
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
- package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
- package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -10
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -5
- package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +7 -44
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
- package/lib/esm/contexts/common/ConversationState.js +3 -2
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +7 -7
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +7 -2
- package/lib/esm/contexts/createReducer.js +8 -9
- package/lib/esm/controller/componentController.js +2 -2
- package/lib/esm/plugins/newMessageEventHandler.js +82 -0
- package/lib/types/assets/Audios.d.ts +1 -0
- package/lib/types/assets/Icons.d.ts +11 -0
- package/lib/types/common/Constants.d.ts +19 -2
- package/lib/types/common/interfaces/IContextDataStore.d.ts +1 -1
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +26 -1
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
- package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
- package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
- package/lib/types/common/utils.d.ts +3 -0
- package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
- package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
- package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
- package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -2
- package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +1 -1
- package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
- package/lib/types/contexts/common/ConversationState.d.ts +3 -2
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +7 -7
- package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
- package/package.json +9 -11
- package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
- package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
- package/lib/cjs/assets/icons/audioIcon.svg +0 -6
- package/lib/cjs/assets/icons/blankIcon.svg +0 -6
- package/lib/cjs/assets/icons/excelIcon.svg +0 -6
- package/lib/cjs/assets/icons/imageIcon.svg +0 -6
- package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
- package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
- package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
- package/lib/cjs/assets/icons/videoIcon.svg +0 -6
- package/lib/cjs/assets/icons/visioIcon.svg +0 -6
- package/lib/cjs/assets/icons/wordIcon.svg +0 -6
- package/lib/esm/assets/assets.d.js +0 -0
- package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
- package/lib/esm/assets/icons/archiveIcon.svg +0 -3
- package/lib/esm/assets/icons/audioIcon.svg +0 -6
- package/lib/esm/assets/icons/blankIcon.svg +0 -6
- package/lib/esm/assets/icons/excelIcon.svg +0 -6
- package/lib/esm/assets/icons/imageIcon.svg +0 -6
- package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
- package/lib/esm/assets/icons/pdfIcon.svg +0 -6
- package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
- package/lib/esm/assets/icons/videoIcon.svg +0 -6
- package/lib/esm/assets/icons/visioIcon.svg +0 -6
- package/lib/esm/assets/icons/wordIcon.svg +0 -6
|
@@ -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,53 +25,68 @@ 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
|
|
|
30
|
-
var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
|
|
31
|
-
|
|
32
34
|
var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
|
|
33
35
|
|
|
34
|
-
var
|
|
36
|
+
var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
|
|
37
|
+
|
|
38
|
+
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
35
39
|
|
|
36
40
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
let optionalParams = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
+
|
|
37
43
|
const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
44
|
+
var _props$reconnectChatP;
|
|
45
|
+
|
|
38
46
|
if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
|
|
39
47
|
return;
|
|
40
|
-
} //
|
|
48
|
+
} // Redirecting if unauthenticated reconnect chat expired
|
|
41
49
|
|
|
42
50
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const showPrechat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat ? preChatSurveyResponse && state.appStates.proactiveChatStates.proactiveChatEnablePrechat : preChatSurveyResponse; // Getting reconnectId for authenticated chat
|
|
51
|
+
if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
52
|
+
var _props$reconnectChatP2, _props$reconnectChatP3;
|
|
46
53
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (reconnectId) {
|
|
50
|
-
dispatch({
|
|
51
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
52
|
-
payload: reconnectId
|
|
53
|
-
});
|
|
54
|
-
dispatch({
|
|
55
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
56
|
-
payload: _ConversationState.ConversationState.ReconnectChat
|
|
57
|
-
});
|
|
58
|
-
} else if (showPrechat) {
|
|
59
|
-
dispatch({
|
|
60
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
|
|
61
|
-
payload: preChatSurveyResponse
|
|
62
|
-
});
|
|
63
|
-
dispatch({
|
|
64
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
65
|
-
payload: _ConversationState.ConversationState.Prechat
|
|
66
|
-
});
|
|
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);
|
|
67
55
|
} else {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
+
}
|
|
73
90
|
}
|
|
74
91
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
92
|
|
|
@@ -78,27 +95,48 @@ exports.prepareStartChat = prepareStartChat;
|
|
|
78
95
|
|
|
79
96
|
const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedState) => {
|
|
80
97
|
try {
|
|
81
|
-
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
|
+
}
|
|
82
114
|
|
|
83
115
|
try {
|
|
84
116
|
_TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
|
|
85
117
|
|
|
86
|
-
_TelemetryHelper.TelemetryHelper.
|
|
118
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
87
119
|
Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
|
|
88
120
|
});
|
|
89
121
|
|
|
90
|
-
|
|
122
|
+
optionalParams = Object.assign({}, params, optionalParams);
|
|
123
|
+
await chatSDK.startChat(optionalParams);
|
|
124
|
+
isStartChatSuccessful = true;
|
|
91
125
|
} catch (error) {
|
|
92
|
-
_TelemetryHelper.TelemetryHelper.
|
|
126
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
93
127
|
Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
|
|
94
128
|
ExceptionDetails: {
|
|
95
129
|
exception: `Failed to setup startChat: ${error}`
|
|
96
130
|
}
|
|
97
131
|
});
|
|
132
|
+
|
|
133
|
+
isStartChatSuccessful = false;
|
|
98
134
|
}
|
|
99
135
|
|
|
100
136
|
const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
|
|
101
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));
|
|
102
140
|
|
|
103
141
|
if (!persistedState) {
|
|
104
142
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -120,10 +158,12 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedSta
|
|
|
120
158
|
await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
|
|
121
159
|
await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
|
|
122
160
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
161
|
+
if (isStartChatSuccessful) {
|
|
162
|
+
dispatch({
|
|
163
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
164
|
+
payload: _ConversationState.ConversationState.Active
|
|
165
|
+
});
|
|
166
|
+
}
|
|
127
167
|
} else {
|
|
128
168
|
dispatch({
|
|
129
169
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_STATE,
|
|
@@ -139,9 +179,9 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedSta
|
|
|
139
179
|
});
|
|
140
180
|
} catch (ex) {
|
|
141
181
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
142
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
182
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadFailed,
|
|
143
183
|
ExceptionDetails: {
|
|
144
|
-
Exception: `
|
|
184
|
+
Exception: `Widget load Failed: ${ex}`
|
|
145
185
|
}
|
|
146
186
|
});
|
|
147
187
|
|
|
@@ -165,24 +205,36 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedSta
|
|
|
165
205
|
exports.initStartChat = initStartChat;
|
|
166
206
|
|
|
167
207
|
const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
168
|
-
var _DataStoreManager$cli, _persistedState$
|
|
208
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _DataStoreManager$cli, _persistedState$domai6;
|
|
169
209
|
|
|
170
|
-
const
|
|
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");
|
|
171
212
|
const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
|
|
172
213
|
|
|
173
|
-
if (persistedState !== null && persistedState !== void 0 && (_persistedState$
|
|
174
|
-
var _persistedState$
|
|
214
|
+
if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai6 = persistedState.domainStates) !== null && _persistedState$domai6 !== void 0 && _persistedState$domai6.liveChatContext) {
|
|
215
|
+
var _persistedState$domai7;
|
|
175
216
|
|
|
176
217
|
dispatch({
|
|
177
218
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
178
219
|
payload: _ConversationState.ConversationState.Loading
|
|
179
220
|
});
|
|
180
221
|
const optionalParams = {
|
|
181
|
-
liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$
|
|
222
|
+
liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai7 = persistedState.domainStates) === null || _persistedState$domai7 === void 0 ? void 0 : _persistedState$domai7.liveChatContext
|
|
182
223
|
};
|
|
183
224
|
await initStartChat(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
|
|
184
225
|
return true;
|
|
185
226
|
} else {
|
|
186
227
|
return false;
|
|
187
228
|
}
|
|
229
|
+
};
|
|
230
|
+
|
|
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
|
+
}
|
|
188
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,
|
|
19
|
+
const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWindow) => {
|
|
20
20
|
dispatch({
|
|
21
21
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
|
|
22
22
|
payload: {
|
|
23
|
-
proactiveChatBodyTitle:
|
|
24
|
-
proactiveChatEnablePrechat:
|
|
23
|
+
proactiveChatBodyTitle: notificationConfig && notificationConfig.message ? notificationConfig.message : "",
|
|
24
|
+
proactiveChatEnablePrechat: enablePreChat ?? false,
|
|
25
25
|
proactiveChatInNewWindow: inNewWindow ?? false
|
|
26
26
|
}
|
|
27
27
|
});
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.LiveChatWidgetStateful = void 0;
|
|
7
7
|
|
|
8
|
+
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
9
|
+
|
|
8
10
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
9
11
|
|
|
10
12
|
var _react = require("@fluentui/react");
|
|
@@ -29,6 +31,8 @@ var _ConfirmationPaneStateful = _interopRequireDefault(require("../../confirmati
|
|
|
29
31
|
|
|
30
32
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
31
33
|
|
|
34
|
+
var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
|
|
35
|
+
|
|
32
36
|
var _EmailTranscriptPaneStateful = _interopRequireDefault(require("../../emailtranscriptpanestateful/EmailTranscriptPaneStateful"));
|
|
33
37
|
|
|
34
38
|
var _HeaderStateful = _interopRequireDefault(require("../../headerstateful/HeaderStateful"));
|
|
@@ -49,6 +53,8 @@ var _ProactiveChatPaneStateful = _interopRequireDefault(require("../../proactive
|
|
|
49
53
|
|
|
50
54
|
var _ReconnectChatPaneStateful = _interopRequireDefault(require("../../reconnectchatpanestateful/ReconnectChatPaneStateful"));
|
|
51
55
|
|
|
56
|
+
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
57
|
+
|
|
52
58
|
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
53
59
|
|
|
54
60
|
var _WebChatContainerStateful = _interopRequireDefault(require("../../webchatcontainerstateful/WebChatContainerStateful"));
|
|
@@ -59,6 +65,8 @@ var _createInternetConnectionChangeHandler = require("../common/createInternetCo
|
|
|
59
65
|
|
|
60
66
|
var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
|
|
61
67
|
|
|
68
|
+
var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
|
|
69
|
+
|
|
62
70
|
var _endChat = require("../common/endChat");
|
|
63
71
|
|
|
64
72
|
var _getGeneralStylesForButton = require("../common/getGeneralStylesForButton");
|
|
@@ -81,12 +89,6 @@ var _useChatContextStore = _interopRequireDefault(require("../../../hooks/useCha
|
|
|
81
89
|
|
|
82
90
|
var _useChatSDKStore = _interopRequireDefault(require("../../../hooks/useChatSDKStore"));
|
|
83
91
|
|
|
84
|
-
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
85
|
-
|
|
86
|
-
var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
|
|
87
|
-
|
|
88
|
-
var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
|
|
89
|
-
|
|
90
92
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
91
93
|
|
|
92
94
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -96,7 +98,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
96
98
|
function _extends() { _extends = Object.assign || 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); }
|
|
97
99
|
|
|
98
100
|
const LiveChatWidgetStateful = props => {
|
|
99
|
-
var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps5, _props$componentOverr, _props$controlProps6, _props$componentOverr2, _props$controlProps7, _props$componentOverr3, _props$controlProps8, _props$componentOverr4, _props$controlProps9, _props$componentOverr5, _props$controlProps10, _props$componentOverr6, _props$controlProps11, _props$controlProps12, _props$controlProps13, _props$
|
|
101
|
+
var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps5, _props$componentOverr, _props$controlProps6, _props$componentOverr2, _props$controlProps7, _props$componentOverr3, _props$controlProps8, _props$componentOverr4, _props$controlProps9, _props$componentOverr5, _props$controlProps10, _props$componentOverr6, _props$controlProps11, _props$componentOverr7, _props$controlProps12, _props$controlProps13, _props$componentOverr8, _props$controlProps14, _props$componentOverr9, _props$controlProps15, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
|
|
100
102
|
|
|
101
103
|
const [state, dispatch] = (0, _useChatContextStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
102
104
|
|
|
@@ -105,12 +107,14 @@ const LiveChatWidgetStateful = props => {
|
|
|
105
107
|
...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
|
|
106
108
|
}); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
107
109
|
|
|
108
|
-
const chatSDK = (0, _useChatSDKStore.default)();
|
|
110
|
+
const chatSDK = (0, _useChatSDKStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
111
|
+
|
|
109
112
|
const [voiceVideoCallingSDK, setVoiceVideoCallingSDK] = (0, _react2.useState)(undefined);
|
|
110
113
|
const {
|
|
111
114
|
Composer
|
|
112
115
|
} = _botframeworkWebchat.Components;
|
|
113
|
-
const canStartProactiveChat = (0, _react2.useRef)(true);
|
|
116
|
+
const canStartProactiveChat = (0, _react2.useRef)(true);
|
|
117
|
+
const canEndChat = (0, _react2.useRef)(true); // Process general styles
|
|
114
118
|
|
|
115
119
|
const generalStyles = {
|
|
116
120
|
root: Object.assign({}, (0, _getGeneralStylesForButton.getGeneralStylesForButton)(state), (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyles)
|
|
@@ -132,6 +136,10 @@ const LiveChatWidgetStateful = props => {
|
|
|
132
136
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
|
|
133
137
|
payload: ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.skipChatButtonRendering) || false
|
|
134
138
|
});
|
|
139
|
+
dispatch({
|
|
140
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
141
|
+
payload: false
|
|
142
|
+
});
|
|
135
143
|
(0, _initCallingSdk.initCallingSdk)(chatSDK, setVoiceVideoCallingSDK).then(sdkCreated => {
|
|
136
144
|
sdkCreated && dispatch({
|
|
137
145
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
@@ -142,7 +150,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
142
150
|
if (!((_props$controlProps3 = props.controlProps) !== null && _props$controlProps3 !== void 0 && _props$controlProps3.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
143
151
|
var _props$reconnectChatP2;
|
|
144
152
|
|
|
145
|
-
(0, _reconnectChatHelper.
|
|
153
|
+
(0, _reconnectChatHelper.startUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, _startChat.initStartChat);
|
|
146
154
|
} // Initialize global dir
|
|
147
155
|
|
|
148
156
|
|
|
@@ -152,13 +160,11 @@ const LiveChatWidgetStateful = props => {
|
|
|
152
160
|
payload: globalDir
|
|
153
161
|
});
|
|
154
162
|
|
|
155
|
-
if ((_state$domainStates = state.domainStates) !== null && _state$domainStates !== void 0 && _state$domainStates.
|
|
163
|
+
if ((_state$domainStates = state.domainStates) !== null && _state$domainStates !== void 0 && _state$domainStates.liveChatContext) {
|
|
156
164
|
var _state$domainStates2;
|
|
157
165
|
|
|
158
166
|
const optionalParams = {
|
|
159
|
-
liveChatContext:
|
|
160
|
-
chatToken: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.chatToken
|
|
161
|
-
}
|
|
167
|
+
liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
|
|
162
168
|
};
|
|
163
169
|
(0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
|
|
164
170
|
}
|
|
@@ -168,9 +174,9 @@ const LiveChatWidgetStateful = props => {
|
|
|
168
174
|
var _props$reconnectChatP3;
|
|
169
175
|
|
|
170
176
|
if ((_props$reconnectChatP3 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP3 !== void 0 && _props$reconnectChatP3.reconnectId && !state.appStates.reconnectId) {
|
|
171
|
-
var _props$reconnectChatP4;
|
|
177
|
+
var _props$reconnectChatP4, _props$reconnectChatP5;
|
|
172
178
|
|
|
173
|
-
(0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(dispatch, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId, _startChat.initStartChat);
|
|
179
|
+
(0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId, _startChat.initStartChat, (_props$reconnectChatP5 = props.reconnectChatPaneProps) === null || _props$reconnectChatP5 === void 0 ? void 0 : _props$reconnectChatP5.redirectInSameWindow);
|
|
174
180
|
} else {
|
|
175
181
|
(0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK).then(authReconnectId => {
|
|
176
182
|
if (authReconnectId && !state.appStates.reconnectId) {
|
|
@@ -183,6 +189,12 @@ const LiveChatWidgetStateful = props => {
|
|
|
183
189
|
payload: _ConversationState.ConversationState.ReconnectChat
|
|
184
190
|
});
|
|
185
191
|
} else {
|
|
192
|
+
const chatStartedSkippingChatButtonRendering = {
|
|
193
|
+
eventName: _TelemetryConstants.BroadcastEvent.StartChatSkippingChatButtonRendering
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
_omnichannelChatComponents.BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
|
|
197
|
+
|
|
186
198
|
dispatch({
|
|
187
199
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
188
200
|
payload: _ConversationState.ConversationState.Loading
|
|
@@ -194,15 +206,80 @@ const LiveChatWidgetStateful = props => {
|
|
|
194
206
|
}
|
|
195
207
|
}, [state.appStates.skipChatButtonRendering]);
|
|
196
208
|
(0, _react2.useEffect)(() => {
|
|
209
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2;
|
|
210
|
+
|
|
211
|
+
// Add the custom context on receiving the SetCustomContext event
|
|
212
|
+
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.SetCustomContext).subscribe(msg => {
|
|
213
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
214
|
+
Event: _TelemetryConstants.TelemetryEvent.CustomContextReceived,
|
|
215
|
+
Description: "CustomContext received."
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
dispatch({
|
|
219
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
|
|
220
|
+
payload: msg === null || msg === void 0 ? void 0 : msg.payload
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
|
|
197
224
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName("StartProactiveChat").subscribe(msg => {
|
|
225
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
226
|
+
Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
|
|
227
|
+
Description: "Start proactive chat event received."
|
|
228
|
+
});
|
|
229
|
+
|
|
198
230
|
if (canStartProactiveChat.current) {
|
|
199
231
|
var _msg$payload, _msg$payload2, _msg$payload3;
|
|
200
232
|
|
|
201
|
-
(0, _startProactiveChat.startProactiveChat)(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.
|
|
233
|
+
(0, _startProactiveChat.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);
|
|
234
|
+
} else {
|
|
235
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
236
|
+
Event: _TelemetryConstants.TelemetryEvent.ChatAlreadyTriggered,
|
|
237
|
+
Description: "Start proactive chat method called, when chat was already triggered."
|
|
238
|
+
});
|
|
202
239
|
}
|
|
240
|
+
}); // start chat from SDK Event
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
_omnichannelChatComponents.BroadcastService.getMessageByEventName("StartChat").subscribe(() => {
|
|
244
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
245
|
+
Event: _TelemetryConstants.TelemetryEvent.StartChatEventRecevied,
|
|
246
|
+
Description: "Start chat event received."
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
if (state.appStates.isMinimized) {
|
|
250
|
+
dispatch({
|
|
251
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
252
|
+
payload: false
|
|
253
|
+
});
|
|
254
|
+
} else {
|
|
255
|
+
(0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
|
|
256
|
+
}
|
|
257
|
+
}); // end chat from SDK Event
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
_omnichannelChatComponents.BroadcastService.getMessageByEventName("EndChat").subscribe(async () => {
|
|
261
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
262
|
+
Event: _TelemetryConstants.TelemetryEvent.EndChatEventReceived,
|
|
263
|
+
Description: "End chat event received."
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
if (canEndChat.current) {
|
|
267
|
+
(0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
268
|
+
} else {
|
|
269
|
+
const skipEndChatSDK = true;
|
|
270
|
+
const skipCloseChat = false;
|
|
271
|
+
(0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
|
|
272
|
+
}
|
|
273
|
+
}); // Listen to end chat event from other tabs
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
const endChatEventName = (0, _utils.getWidgetEndChatEventName)(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);
|
|
277
|
+
|
|
278
|
+
_omnichannelChatComponents.BroadcastService.getMessageByEventName(endChatEventName).subscribe(async () => {
|
|
279
|
+
(0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
|
|
203
280
|
});
|
|
204
281
|
|
|
205
|
-
window.addEventListener("beforeunload",
|
|
282
|
+
window.addEventListener("beforeunload", () => {
|
|
206
283
|
(0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
|
|
207
284
|
});
|
|
208
285
|
|
|
@@ -212,11 +289,12 @@ const LiveChatWidgetStateful = props => {
|
|
|
212
289
|
}, []);
|
|
213
290
|
(0, _react2.useEffect)(() => {
|
|
214
291
|
canStartProactiveChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Closed;
|
|
292
|
+
canEndChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Active;
|
|
215
293
|
|
|
216
294
|
if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
|
|
217
295
|
chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
|
|
218
296
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
219
|
-
eventName:
|
|
297
|
+
eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
|
|
220
298
|
});
|
|
221
299
|
});
|
|
222
300
|
} // Track the message count
|
|
@@ -241,7 +319,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
241
319
|
});
|
|
242
320
|
const customEvent = {
|
|
243
321
|
elementType: _omnichannelChatComponents.ElementType.Custom,
|
|
244
|
-
eventName:
|
|
322
|
+
eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
|
|
245
323
|
payload: 0
|
|
246
324
|
};
|
|
247
325
|
|
|
@@ -252,7 +330,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
252
330
|
if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
|
|
253
331
|
const customEvent = {
|
|
254
332
|
elementType: _omnichannelChatComponents.ElementType.Custom,
|
|
255
|
-
eventName:
|
|
333
|
+
eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
|
|
256
334
|
payload: `${state.appStates.unreadMessageCount}`
|
|
257
335
|
};
|
|
258
336
|
|
|
@@ -268,9 +346,13 @@ const LiveChatWidgetStateful = props => {
|
|
|
268
346
|
}, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
|
|
269
347
|
const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
|
|
270
348
|
|
|
271
|
-
const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
|
|
349
|
+
const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat) => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
272
353
|
|
|
273
|
-
|
|
354
|
+
|
|
355
|
+
const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
274
356
|
|
|
275
357
|
const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
276
358
|
|
|
@@ -280,8 +362,11 @@ const LiveChatWidgetStateful = props => {
|
|
|
280
362
|
const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props); // publish chat widget state
|
|
281
363
|
|
|
282
364
|
(0, _react2.useEffect)(() => {
|
|
365
|
+
var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic;
|
|
366
|
+
|
|
367
|
+
const widgetStateEventName = (0, _utils.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);
|
|
283
368
|
const chatWidgetStateChangeEvent = {
|
|
284
|
-
eventName:
|
|
369
|
+
eventName: widgetStateEventName,
|
|
285
370
|
payload: { ...state
|
|
286
371
|
}
|
|
287
372
|
};
|
|
@@ -309,15 +394,15 @@ const LiveChatWidgetStateful = props => {
|
|
|
309
394
|
})), !((_props$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.hideLoadingPane) && (0, _componentController.shouldShowLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr4 = props.componentOverrides) === null || _props$componentOverr4 === void 0 ? void 0 : _props$componentOverr4.loadingPane) || /*#__PURE__*/_react2.default.createElement(_LoadingPaneStateful.default, props.loadingPaneProps)), !((_props$controlProps9 = props.controlProps) !== null && _props$controlProps9 !== void 0 && _props$controlProps9.hideOutOfOfficeHoursPane) && (0, _componentController.shouldShowOutOfOfficeHoursPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr5 = props.componentOverrides) === null || _props$componentOverr5 === void 0 ? void 0 : _props$componentOverr5.outOfOfficeHoursPane) || /*#__PURE__*/_react2.default.createElement(_OOOHPaneStateful.default, props.outOfOfficeHoursPaneProps)), !((_props$controlProps10 = props.controlProps) !== null && _props$controlProps10 !== void 0 && _props$controlProps10.hideReconnectChatPane) && (0, _componentController.shouldShowReconnectChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr6 = props.componentOverrides) === null || _props$componentOverr6 === void 0 ? void 0 : _props$componentOverr6.reconnectChatPane) || /*#__PURE__*/_react2.default.createElement(_ReconnectChatPaneStateful.default, {
|
|
310
395
|
reconnectChatProps: props.reconnectChatPaneProps,
|
|
311
396
|
initStartChat: initStartChatRelay
|
|
312
|
-
})), !((_props$controlProps11 = props.controlProps) !== null && _props$controlProps11 !== void 0 && _props$controlProps11.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
|
|
397
|
+
})), !((_props$controlProps11 = props.controlProps) !== null && _props$controlProps11 !== void 0 && _props$controlProps11.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr7 = props.componentOverrides) === null || _props$componentOverr7 === void 0 ? void 0 : _props$componentOverr7.preChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
|
|
313
398
|
surveyProps: props.preChatSurveyPaneProps,
|
|
314
399
|
initStartChat: initStartChatRelay
|
|
315
|
-
}), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
|
|
400
|
+
})), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
|
|
316
401
|
voiceVideoCallingSdk: voiceVideoCallingSDK
|
|
317
|
-
}, props.callingContainerProps)), !((_props$controlProps13 = props.controlProps) !== null && _props$controlProps13 !== void 0 && _props$controlProps13.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$
|
|
402
|
+
}, props.callingContainerProps)), !((_props$controlProps13 = props.controlProps) !== null && _props$controlProps13 !== void 0 && _props$controlProps13.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, props.webChatContainerProps)), !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
|
|
318
403
|
setPostChatContext: setPostChatContextRelay,
|
|
319
|
-
|
|
320
|
-
}))), !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$
|
|
404
|
+
prepareEndChat: prepareEndChatRelay
|
|
405
|
+
}))), !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr12 = props.componentOverrides) === null || _props$componentOverr12 === void 0 ? void 0 : _props$componentOverr12.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane))));
|
|
321
406
|
};
|
|
322
407
|
|
|
323
408
|
exports.LiveChatWidgetStateful = LiveChatWidgetStateful;
|
|
@@ -46,7 +46,7 @@ const LoadingPaneStateful = props => {
|
|
|
46
46
|
firstElement[0].focus();
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
_TelemetryHelper.TelemetryHelper.
|
|
49
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
50
50
|
Event: _TelemetryConstants.TelemetryEvent.LoadingPaneLoaded,
|
|
51
51
|
Description: "Loading pane loaded."
|
|
52
52
|
});
|
|
@@ -5,10 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.OutOfOfficeHoursPaneStateful = void 0;
|
|
7
7
|
|
|
8
|
+
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
9
|
+
|
|
8
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
|
|
10
12
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
13
|
|
|
14
|
+
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
15
|
+
|
|
12
16
|
var _defaultgeneralOOOHPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralOOOHPaneStyleProps");
|
|
13
17
|
|
|
14
18
|
var _utils = require("../../common/utils");
|
|
@@ -41,6 +45,10 @@ const OutOfOfficeHoursPaneStateful = props => {
|
|
|
41
45
|
if (firstElement && firstElement[0]) {
|
|
42
46
|
firstElement[0].focus();
|
|
43
47
|
}
|
|
48
|
+
|
|
49
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
50
|
+
Event: _TelemetryConstants.TelemetryEvent.OutOfOfficePaneLoaded
|
|
51
|
+
});
|
|
44
52
|
}, []);
|
|
45
53
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.OutOfOfficeHoursPane, {
|
|
46
54
|
componentOverrides: props.componentOverrides,
|
|
@@ -15,6 +15,10 @@ var _utils = require("../../common/utils");
|
|
|
15
15
|
|
|
16
16
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
17
17
|
|
|
18
|
+
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
19
|
+
|
|
20
|
+
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
21
|
+
|
|
18
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
23
|
|
|
20
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -46,6 +50,10 @@ const PostChatLoadingPaneStateful = props => {
|
|
|
46
50
|
if (firstElement && firstElement[0]) {
|
|
47
51
|
firstElement[0].focus();
|
|
48
52
|
}
|
|
53
|
+
|
|
54
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
55
|
+
Event: _TelemetryConstants.TelemetryEvent.PostChatSurveyLoadingPaneLoaded
|
|
56
|
+
});
|
|
49
57
|
}, []);
|
|
50
58
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.LoadingPane, {
|
|
51
59
|
componentOverrides: props.componentOverrides,
|