@microsoft/omnichannel-chat-widget 0.1.0-main.cf54410 → 0.1.0-main.d5846c0
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 +48 -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 +8 -2
- 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 +132 -30
- 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 +26 -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 +44 -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 +9 -3
- 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 +121 -30
- 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 +25 -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 +32 -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
|
@@ -7,13 +7,13 @@ exports.setPostChatContextAndLoadSurvey = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
10
|
+
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
13
11
|
|
|
14
12
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
15
|
+
|
|
16
|
+
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
17
17
|
|
|
18
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
19
|
const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat) => {
|
|
@@ -39,7 +39,8 @@ const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat)
|
|
|
39
39
|
exception: ex
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
|
-
}
|
|
42
|
+
} // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
43
|
+
|
|
43
44
|
|
|
44
45
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName("LoadPostChatSurvey").subscribe(msg => {
|
|
45
46
|
dispatch({
|
|
@@ -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,97 @@ const LiveChatWidgetStateful = props => {
|
|
|
194
206
|
}
|
|
195
207
|
}, [state.appStates.skipChatButtonRendering]);
|
|
196
208
|
(0, _react2.useEffect)(() => {
|
|
197
|
-
|
|
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
|
+
|
|
224
|
+
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.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(_TelemetryConstants.BroadcastEvent.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(_TelemetryConstants.BroadcastEvent.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);
|
|
280
|
+
}); // Close popout window
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.ClosePopoutWindow).subscribe(() => {
|
|
284
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
285
|
+
Event: _TelemetryConstants.TelemetryEvent.ClosePopoutWindowEventRecevied,
|
|
286
|
+
Description: "Close popout window event received."
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
dispatch({
|
|
290
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
|
|
291
|
+
payload: {
|
|
292
|
+
proactiveChatBodyTitle: "",
|
|
293
|
+
proactiveChatEnablePrechat: false,
|
|
294
|
+
proactiveChatInNewWindow: false
|
|
295
|
+
}
|
|
296
|
+
});
|
|
203
297
|
});
|
|
204
298
|
|
|
205
|
-
window.addEventListener("beforeunload",
|
|
299
|
+
window.addEventListener("beforeunload", () => {
|
|
206
300
|
(0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
|
|
207
301
|
});
|
|
208
302
|
|
|
@@ -212,11 +306,12 @@ const LiveChatWidgetStateful = props => {
|
|
|
212
306
|
}, []);
|
|
213
307
|
(0, _react2.useEffect)(() => {
|
|
214
308
|
canStartProactiveChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Closed;
|
|
309
|
+
canEndChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Active;
|
|
215
310
|
|
|
216
311
|
if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
|
|
217
312
|
chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
|
|
218
313
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
219
|
-
eventName:
|
|
314
|
+
eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
|
|
220
315
|
});
|
|
221
316
|
});
|
|
222
317
|
} // Track the message count
|
|
@@ -241,7 +336,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
241
336
|
});
|
|
242
337
|
const customEvent = {
|
|
243
338
|
elementType: _omnichannelChatComponents.ElementType.Custom,
|
|
244
|
-
eventName:
|
|
339
|
+
eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
|
|
245
340
|
payload: 0
|
|
246
341
|
};
|
|
247
342
|
|
|
@@ -252,7 +347,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
252
347
|
if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
|
|
253
348
|
const customEvent = {
|
|
254
349
|
elementType: _omnichannelChatComponents.ElementType.Custom,
|
|
255
|
-
eventName:
|
|
350
|
+
eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
|
|
256
351
|
payload: `${state.appStates.unreadMessageCount}`
|
|
257
352
|
};
|
|
258
353
|
|
|
@@ -268,9 +363,13 @@ const LiveChatWidgetStateful = props => {
|
|
|
268
363
|
}, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
|
|
269
364
|
const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
|
|
270
365
|
|
|
271
|
-
const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
|
|
366
|
+
const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
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
370
|
|
|
273
|
-
|
|
371
|
+
|
|
372
|
+
const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
274
373
|
|
|
275
374
|
const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
276
375
|
|
|
@@ -280,8 +379,11 @@ const LiveChatWidgetStateful = props => {
|
|
|
280
379
|
const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props); // publish chat widget state
|
|
281
380
|
|
|
282
381
|
(0, _react2.useEffect)(() => {
|
|
382
|
+
var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic;
|
|
383
|
+
|
|
384
|
+
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
385
|
const chatWidgetStateChangeEvent = {
|
|
284
|
-
eventName:
|
|
386
|
+
eventName: widgetStateEventName,
|
|
285
387
|
payload: { ...state
|
|
286
388
|
}
|
|
287
389
|
};
|
|
@@ -309,15 +411,15 @@ const LiveChatWidgetStateful = props => {
|
|
|
309
411
|
})), !((_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
412
|
reconnectChatProps: props.reconnectChatPaneProps,
|
|
311
413
|
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, {
|
|
414
|
+
})), !((_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
415
|
surveyProps: props.preChatSurveyPaneProps,
|
|
314
416
|
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({
|
|
417
|
+
})), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
|
|
316
418
|
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$
|
|
419
|
+
}, 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
420
|
setPostChatContext: setPostChatContextRelay,
|
|
319
|
-
|
|
320
|
-
}))), !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$
|
|
421
|
+
prepareEndChat: prepareEndChatRelay
|
|
422
|
+
}))), !((_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
423
|
};
|
|
322
424
|
|
|
323
425
|
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
|
});
|