@microsoft/omnichannel-chat-widget 1.7.8-main.7a07fc5 → 1.7.8-main.8428c08
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/common/Constants.js +66 -20
- package/lib/cjs/common/KeyCodes.js +6 -1
- package/lib/cjs/common/contextDataStore/DataStoreManager.js +6 -1
- package/lib/cjs/common/facades/FacadeChatSDK.js +392 -295
- package/lib/cjs/common/storage/default/defaultCacheManager.js +6 -3
- package/lib/cjs/common/telemetry/ScenarioMarker.js +66 -0
- package/lib/cjs/common/telemetry/TelemetryConstants.js +179 -148
- package/lib/cjs/common/telemetry/TelemetryHelper.js +281 -250
- package/lib/cjs/common/telemetry/TelemetryManager.js +31 -11
- package/lib/cjs/common/telemetry/defaultConfigs/defaultAppInsightsConfig.js +11 -0
- package/lib/cjs/common/telemetry/interfaces/IAppInsightsConfig.js +1 -0
- package/lib/cjs/common/telemetry/loggers/appInsightsLogger.js +119 -0
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +17 -14
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +5 -4
- package/lib/cjs/components/footerstateful/FooterStateful.js +13 -8
- package/lib/cjs/components/headerstateful/HeaderStateful.js +24 -14
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +71 -56
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -6
- package/lib/cjs/components/livechatwidget/common/Deferred.js +14 -6
- package/lib/cjs/components/livechatwidget/common/chatDisconnectHelper.js +3 -1
- package/lib/cjs/components/livechatwidget/common/endChat.js +4 -18
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +0 -5
- package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +3 -1
- package/lib/cjs/components/livechatwidget/common/renderSurveyHelpers.js +7 -4
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +7 -3
- package/lib/cjs/components/livechatwidget/common/startChat.js +5 -26
- package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.js +7 -6
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +28 -20
- package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +12 -8
- package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +31 -10
- package/lib/cjs/components/postchatsurveypanestateful/common/isValidSurveyUrl.js +28 -0
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -6
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -7
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +4 -3
- package/lib/cjs/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
- package/lib/cjs/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
- package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +62 -52
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +4 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +18 -6
- package/lib/cjs/firstresponselatency/Constants.js +13 -0
- package/lib/cjs/firstresponselatency/FirstMessageTrackerFromBot.js +118 -0
- package/lib/cjs/firstresponselatency/FirstResponseLatencyTracker.js +201 -0
- package/lib/cjs/firstresponselatency/util.js +98 -0
- package/lib/cjs/plugins/createChatTranscript.js +92 -62
- package/lib/cjs/plugins/newMessageEventHandler.js +102 -88
- package/lib/esm/common/Constants.js +64 -19
- package/lib/esm/common/KeyCodes.js +6 -1
- package/lib/esm/common/contextDataStore/DataStoreManager.js +6 -1
- package/lib/esm/common/facades/FacadeChatSDK.js +392 -295
- package/lib/esm/common/storage/default/defaultCacheManager.js +6 -1
- package/lib/esm/common/telemetry/ScenarioMarker.js +59 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +179 -148
- package/lib/esm/common/telemetry/TelemetryHelper.js +281 -250
- package/lib/esm/common/telemetry/TelemetryManager.js +31 -11
- package/lib/esm/common/telemetry/defaultConfigs/defaultAppInsightsConfig.js +4 -0
- package/lib/esm/common/telemetry/interfaces/IAppInsightsConfig.js +1 -0
- package/lib/esm/common/telemetry/loggers/appInsightsLogger.js +111 -0
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +17 -14
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +5 -4
- package/lib/esm/components/footerstateful/FooterStateful.js +13 -8
- package/lib/esm/components/headerstateful/HeaderStateful.js +24 -14
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +71 -56
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -6
- package/lib/esm/components/livechatwidget/common/Deferred.js +14 -6
- package/lib/esm/components/livechatwidget/common/chatDisconnectHelper.js +3 -1
- package/lib/esm/components/livechatwidget/common/endChat.js +4 -18
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +1 -6
- package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +3 -1
- package/lib/esm/components/livechatwidget/common/renderSurveyHelpers.js +7 -4
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +7 -3
- package/lib/esm/components/livechatwidget/common/startChat.js +6 -27
- package/lib/esm/components/livechatwidget/common/startChatErrorHandler.js +7 -6
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +28 -20
- package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +12 -8
- package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +31 -10
- package/lib/esm/components/postchatsurveypanestateful/common/isValidSurveyUrl.js +21 -0
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -6
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -7
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +4 -3
- package/lib/esm/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
- package/lib/esm/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
- package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +63 -52
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -6
- package/lib/esm/firstresponselatency/Constants.js +6 -0
- package/lib/esm/firstresponselatency/FirstMessageTrackerFromBot.js +112 -0
- package/lib/esm/firstresponselatency/FirstResponseLatencyTracker.js +194 -0
- package/lib/esm/firstresponselatency/util.js +87 -0
- package/lib/esm/plugins/createChatTranscript.js +92 -62
- package/lib/esm/plugins/newMessageEventHandler.js +100 -86
- package/lib/types/common/Constants.d.ts +5 -0
- package/lib/types/common/facades/FacadeChatSDK.d.ts +1 -0
- package/lib/types/common/telemetry/ScenarioMarker.d.ts +19 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +50 -33
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +5 -0
- package/lib/types/common/telemetry/defaultConfigs/defaultAppInsightsConfig.d.ts +2 -0
- package/lib/types/common/telemetry/interfaces/IAppInsightsConfig.d.ts +4 -0
- package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
- package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
- package/lib/types/common/telemetry/loggers/appInsightsLogger.d.ts +5 -0
- package/lib/types/components/callingcontainerstateful/CallingContainerStateful.d.ts +2 -1
- package/lib/types/components/chatbuttonstateful/ChatButtonStateful.d.ts +2 -1
- package/lib/types/components/confirmationpanestateful/ConfirmationPaneStateful.d.ts +2 -1
- package/lib/types/components/dimlayer/DimLayer.d.ts +2 -1
- package/lib/types/components/draggable/DraggableChatWidget.d.ts +2 -2
- package/lib/types/components/draggable/DraggableEventEmitter.d.ts +2 -2
- package/lib/types/components/draggable/DraggableEventReceiver.d.ts +2 -2
- package/lib/types/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.d.ts +2 -1
- package/lib/types/components/footerstateful/FooterStateful.d.ts +2 -1
- package/lib/types/components/footerstateful/audionotificationstateful/AudioNotificationStateful.d.ts +2 -1
- package/lib/types/components/headerstateful/HeaderStateful.d.ts +2 -1
- package/lib/types/components/livechatwidget/LiveChatWidget.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/createFooter.d.ts +2 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -0
- package/lib/types/components/loadingpanestateful/LoadingPaneStateful.d.ts +2 -1
- package/lib/types/components/notificationpanestateful/NotificationPaneStateful.d.ts +2 -1
- package/lib/types/components/ooohpanestateful/OOOHPaneStateful.d.ts +2 -1
- package/lib/types/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.d.ts +2 -1
- package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -1
- package/lib/types/components/postchatsurveypanestateful/common/isValidSurveyUrl.d.ts +2 -0
- package/lib/types/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.d.ts +2 -1
- package/lib/types/components/proactivechatpanestateful/ProactiveChatPaneStateful.d.ts +2 -1
- package/lib/types/components/reconnectchatpanestateful/ReconnectChatPaneStateful.d.ts +2 -1
- package/lib/types/components/startchaterrorpanestateful/StartChatErrorPaneStateful.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/WebChatContainerStateful.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +2 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Attachment.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentContent.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentIcon.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/DownloadBlockedAttachment.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/MaliciousAttachment.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/ScanInProgressAttachment.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Spinner.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.d.ts +2 -1
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -1
- package/lib/types/firstresponselatency/Constants.d.ts +30 -0
- package/lib/types/firstresponselatency/FirstMessageTrackerFromBot.d.ts +1 -0
- package/lib/types/firstresponselatency/FirstResponseLatencyTracker.d.ts +22 -0
- package/lib/types/firstresponselatency/util.d.ts +7 -0
- package/package.json +27 -13
|
@@ -7,7 +7,6 @@ exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStart
|
|
|
7
7
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
8
8
|
var _Constants = require("../../../common/Constants");
|
|
9
9
|
var _utils = require("../../../common/utils");
|
|
10
|
-
var _authHelper = require("./authHelper");
|
|
11
10
|
var _reconnectChatHelper = require("./reconnectChatHelper");
|
|
12
11
|
var _startChatErrorHandler = require("./startChatErrorHandler");
|
|
13
12
|
var _ActivityStreamHandler = require("./ActivityStreamHandler");
|
|
@@ -19,6 +18,7 @@ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
|
19
18
|
var _endChat = require("./endChat");
|
|
20
19
|
var _createAdapter = require("./createAdapter");
|
|
21
20
|
var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
|
|
21
|
+
var _FirstMessageTrackerFromBot = require("../../../firstresponselatency/FirstMessageTrackerFromBot");
|
|
22
22
|
var _liveChatConfigUtils = require("./liveChatConfigUtils");
|
|
23
23
|
var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
|
|
24
24
|
var _persistentChatHelper = require("./persistentChatHelper");
|
|
@@ -30,20 +30,6 @@ let widgetInstanceId;
|
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
31
|
let popoutWidgetInstanceId;
|
|
32
32
|
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
-
const setAuthenticationIfApplicable = async (props, facadeChatSDK) => {
|
|
35
|
-
const chatConfig = props === null || props === void 0 ? void 0 : props.chatConfig;
|
|
36
|
-
const getAuthToken = props === null || props === void 0 ? void 0 : props.getAuthToken;
|
|
37
|
-
const authClientFunction = (0, _authHelper.getAuthClientFunction)(chatConfig);
|
|
38
|
-
if (getAuthToken && authClientFunction) {
|
|
39
|
-
// set auth token to chat sdk before start chat
|
|
40
|
-
const authSuccess = await (0, _authHelper.handleAuthentication)(facadeChatSDK.getChatSDK(), chatConfig, getAuthToken);
|
|
41
|
-
if (!authSuccess.result) {
|
|
42
|
-
throw new Error(_Constants.WidgetLoadCustomErrorString.AuthenticationFailedErrorString);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
33
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
34
|
const prepareStartChat = async (props, facadeChatSDK, state, dispatch, setAdapter) => {
|
|
49
35
|
optionalParams = {}; //Resetting to ensure no stale values
|
|
@@ -71,11 +57,6 @@ const prepareStartChat = async (props, facadeChatSDK, state, dispatch, setAdapte
|
|
|
71
57
|
const isProactiveChat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat;
|
|
72
58
|
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
|
|
73
59
|
|
|
74
|
-
// Setting auth settings to OC API to retrieve existing persistent chat session before start chat if any
|
|
75
|
-
if ((0, _reconnectChatHelper.isPersistentEnabled)(props.chatConfig)) {
|
|
76
|
-
await setAuthenticationIfApplicable(props, facadeChatSDK);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
60
|
//Setting PreChat and intiate chat
|
|
80
61
|
await setPreChatAndInitiateChat(facadeChatSDK, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat, state, props);
|
|
81
62
|
};
|
|
@@ -151,6 +132,7 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
|
|
|
151
132
|
const optionalParams = {
|
|
152
133
|
isProactiveChat
|
|
153
134
|
};
|
|
135
|
+
(0, _FirstMessageTrackerFromBot.createTrackingForFirstMessage)();
|
|
154
136
|
await initStartChat(facadeChatSDK, dispatch, setAdapter, state, props, optionalParams);
|
|
155
137
|
};
|
|
156
138
|
|
|
@@ -174,14 +156,11 @@ const initStartChat = async (facadeChatSDK, dispatch, setAdapter, state, props,
|
|
|
174
156
|
|
|
175
157
|
//Start widget load timer
|
|
176
158
|
_TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
|
|
177
|
-
_TelemetryHelper.TelemetryHelper.
|
|
178
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
179
|
-
Description: "Widget
|
|
159
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
160
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetStartChatStarted,
|
|
161
|
+
Description: "Widget start chat started."
|
|
180
162
|
});
|
|
181
163
|
|
|
182
|
-
// Auth token retrieval needs to happen during start chat to support pop-out chat
|
|
183
|
-
await setAuthenticationIfApplicable(props, facadeChatSDK);
|
|
184
|
-
|
|
185
164
|
//Check if chat retrieved from cache
|
|
186
165
|
if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
|
|
187
166
|
var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
|
|
@@ -112,8 +112,9 @@ const logWidgetLoadFailed = ex => {
|
|
|
112
112
|
if (ex !== null && ex !== void 0 && ex.httpResponseStatusCode) {
|
|
113
113
|
exDetails.HttpResponseStatusCode = ex.httpResponseStatusCode;
|
|
114
114
|
}
|
|
115
|
-
_TelemetryHelper.TelemetryHelper.
|
|
116
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
115
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.ERROR, {
|
|
116
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetStartChatFailed,
|
|
117
|
+
Description: "Widget load complete with error",
|
|
117
118
|
ExceptionDetails: exDetails,
|
|
118
119
|
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$Widg = _TelemetryManager.TelemetryTimers.WidgetLoadTimer) === null || _TelemetryTimers$Widg === void 0 ? void 0 : _TelemetryTimers$Widg.milliSecondsElapsed
|
|
119
120
|
});
|
|
@@ -124,8 +125,8 @@ const logWidgetLoadComplete = additionalMessage => {
|
|
|
124
125
|
if (additionalMessage) {
|
|
125
126
|
descriptionString += `. ${additionalMessage}`;
|
|
126
127
|
}
|
|
127
|
-
_TelemetryHelper.TelemetryHelper.
|
|
128
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
128
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
129
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetStartChatCompleted,
|
|
129
130
|
Description: descriptionString,
|
|
130
131
|
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$Widg2 = _TelemetryManager.TelemetryTimers.WidgetLoadTimer) === null || _TelemetryTimers$Widg2 === void 0 ? void 0 : _TelemetryTimers$Widg2.milliSecondsElapsed
|
|
131
132
|
});
|
|
@@ -140,8 +141,8 @@ const logWidgetLoadCompleteWithError = ex => {
|
|
|
140
141
|
if (ex !== null && ex !== void 0 && ex.httpResponseStatusCode) {
|
|
141
142
|
exDetails.HttpResponseStatusCode = ex.httpResponseStatusCode;
|
|
142
143
|
}
|
|
143
|
-
_TelemetryHelper.TelemetryHelper.
|
|
144
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
144
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.ERROR, {
|
|
145
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetStartChatFailed,
|
|
145
146
|
Description: "Widget load complete with error",
|
|
146
147
|
ExceptionDetails: exDetails,
|
|
147
148
|
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$Widg3 = _TelemetryManager.TelemetryTimers.WidgetLoadTimer) === null || _TelemetryTimers$Widg3 === void 0 ? void 0 : _TelemetryTimers$Widg3.milliSecondsElapsed
|
|
@@ -64,11 +64,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
64
64
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
65
65
|
let uiTimer;
|
|
66
66
|
const LiveChatWidgetStateful = props => {
|
|
67
|
-
var _props$webChatContain, _props$styleProps, _props$webChatContain2, _props$webChatContain3, _props$controlProps, _props$controlProps3, _state$appStates7, _props$webChatContain7, _state$appStates14, _props$webChatContain9, _props$webChatContain10, _props$controlProps12, _props$draggableChatW, _props$draggableChatW2, _props$draggableChatW3, _props$draggableChatW4, _props$draggableChatW5, _livechatProps$webCha, _props$webChatContain11, _props$webChatContain12, _props$webChatContain13, _props$webChatContain14, _livechatProps$styleP, _livechatProps$contro, _livechatProps$contro2, _livechatProps$compon, _livechatProps$contro3, _livechatProps$compon2, _livechatProps$contro4, _livechatProps$compon3, _livechatProps$contro5, _livechatProps$compon4, _livechatProps$contro6, _livechatProps$compon5, _livechatProps$contro7, _livechatProps$compon6, _livechatProps$contro8, _livechatProps$compon7, _livechatProps$contro9, _livechatProps$compon8, _livechatProps$contro10, _livechatProps$contro11, _livechatProps$compon9, _livechatProps$contro12, _livechatProps$compon10, _livechatProps$contro13, _livechatProps$compon11, _livechatProps$compon12, _livechatProps$compon13;
|
|
67
|
+
var _props$webChatContain, _props$styleProps, _props$webChatContain2, _props$webChatContain3, _props$controlProps, _props$controlProps3, _state$appStates7, _props$webChatContain7, _state$appStates14, _props$webChatContain9, _props$webChatContain10, _props$controlProps12, _props$draggableChatW, _props$draggableChatW2, _props$draggableChatW3, _props$draggableChatW4, _props$draggableChatW5, _livechatProps$webCha, _props$webChatContain11, _props$webChatContain12, _props$webChatContain13, _props$webChatContain14, _props$webChatContain15, _props$webChatContain16, _props$webChatContain17, _props$webChatContain18, _livechatProps$styleP, _livechatProps$contro, _livechatProps$contro2, _livechatProps$compon, _livechatProps$contro3, _livechatProps$compon2, _livechatProps$contro4, _livechatProps$compon3, _livechatProps$contro5, _livechatProps$compon4, _livechatProps$contro6, _livechatProps$compon5, _livechatProps$contro7, _livechatProps$compon6, _livechatProps$contro8, _livechatProps$compon7, _livechatProps$contro9, _livechatProps$compon8, _livechatProps$contro10, _livechatProps$contro11, _livechatProps$compon9, _livechatProps$contro12, _livechatProps$compon10, _livechatProps$contro13, _livechatProps$compon11, _livechatProps$compon12, _livechatProps$compon13;
|
|
68
68
|
(0, _react2.useEffect)(() => {
|
|
69
69
|
uiTimer = (0, _utils.createTimer)();
|
|
70
|
-
_TelemetryHelper.TelemetryHelper.
|
|
71
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
70
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
71
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLiveChatWidgetStart,
|
|
72
|
+
Description: "Live chat widget loading started."
|
|
72
73
|
});
|
|
73
74
|
}, []);
|
|
74
75
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
@@ -319,7 +320,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
319
320
|
});
|
|
320
321
|
});
|
|
321
322
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartProactiveChat).subscribe(msg => {
|
|
322
|
-
_TelemetryHelper.TelemetryHelper.
|
|
323
|
+
_TelemetryHelper.TelemetryHelper.logActionEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
323
324
|
Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
|
|
324
325
|
Description: "Start proactive chat event received."
|
|
325
326
|
});
|
|
@@ -417,7 +418,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
417
418
|
|
|
418
419
|
// Start chat from SDK Event
|
|
419
420
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartChat).subscribe(msg => {
|
|
420
|
-
var _props$chatConfig5, _props$chatConfig5$Li, _props$chatConfig6, _props$chatConfig6$Li, _msg$payload5, _msg$payload6, _msg$payload7, _msg$payload9, _inMemoryState$appSta2, _inMemoryState$appSta3
|
|
421
|
+
var _props$chatConfig5, _props$chatConfig5$Li, _props$chatConfig6, _props$chatConfig6$Li, _msg$payload5, _msg$payload6, _msg$payload7, _msg$payload9, _inMemoryState$appSta2, _inMemoryState$appSta3;
|
|
421
422
|
// If chat is out of operating hours chat widget sets the conversation state to OutOfOffice.
|
|
422
423
|
if (typeof (props === null || props === void 0 ? void 0 : (_props$chatConfig5 = props.chatConfig) === null || _props$chatConfig5 === void 0 ? void 0 : (_props$chatConfig5$Li = _props$chatConfig5.LiveWSAndLiveChatEngJoin) === null || _props$chatConfig5$Li === void 0 ? void 0 : _props$chatConfig5$Li.OutOfOperatingHours) === "string" && (props === null || props === void 0 ? void 0 : (_props$chatConfig6 = props.chatConfig) === null || _props$chatConfig6 === void 0 ? void 0 : (_props$chatConfig6$Li = _props$chatConfig6.LiveWSAndLiveChatEngJoin) === null || _props$chatConfig6$Li === void 0 ? void 0 : _props$chatConfig6$Li.OutOfOperatingHours.toLowerCase()) === "true") {
|
|
423
424
|
(state === null || state === void 0 ? void 0 : state.appStates.isMinimized) && dispatch({
|
|
@@ -436,7 +437,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
436
437
|
}
|
|
437
438
|
if (msg !== null && msg !== void 0 && (_msg$payload7 = msg.payload) !== null && _msg$payload7 !== void 0 && _msg$payload7.customContext) {
|
|
438
439
|
var _msg$payload8;
|
|
439
|
-
_TelemetryHelper.TelemetryHelper.
|
|
440
|
+
_TelemetryHelper.TelemetryHelper.logActionEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
440
441
|
Event: _TelemetryConstants.TelemetryEvent.CustomContextReceived,
|
|
441
442
|
Description: "CustomContext received through startChat event."
|
|
442
443
|
});
|
|
@@ -445,8 +446,8 @@ const LiveChatWidgetStateful = props => {
|
|
|
445
446
|
payload: msg === null || msg === void 0 ? void 0 : (_msg$payload8 = msg.payload) === null || _msg$payload8 === void 0 ? void 0 : _msg$payload8.customContext
|
|
446
447
|
});
|
|
447
448
|
}
|
|
448
|
-
_TelemetryHelper.TelemetryHelper.
|
|
449
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
449
|
+
_TelemetryHelper.TelemetryHelper.logActionEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
450
|
+
Event: _TelemetryConstants.TelemetryEvent.StartChatEventReceived,
|
|
450
451
|
Description: "Start chat event received."
|
|
451
452
|
});
|
|
452
453
|
const inMemoryState = (0, _createReducer.executeReducer)(state, {
|
|
@@ -455,8 +456,14 @@ const LiveChatWidgetStateful = props => {
|
|
|
455
456
|
});
|
|
456
457
|
inMemoryState.domainStates.customContext = msg === null || msg === void 0 ? void 0 : (_msg$payload9 = msg.payload) === null || _msg$payload9 === void 0 ? void 0 : _msg$payload9.customContext;
|
|
457
458
|
|
|
458
|
-
|
|
459
|
-
|
|
459
|
+
/*
|
|
460
|
+
* If the conversation is in closed state then we start a new chat,
|
|
461
|
+
* else if the conversation is in active state then we maximize the chat
|
|
462
|
+
* If the conversation is in inactive or postchat state then we maximize the chat.
|
|
463
|
+
*
|
|
464
|
+
* To start a new chat, it needs to be called via the close button or close chat via SDK.
|
|
465
|
+
**/
|
|
466
|
+
if (((_inMemoryState$appSta2 = inMemoryState.appStates) === null || _inMemoryState$appSta2 === void 0 ? void 0 : _inMemoryState$appSta2.conversationState) === _ConversationState.ConversationState.Closed) {
|
|
460
467
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
461
468
|
eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
|
|
462
469
|
});
|
|
@@ -465,7 +472,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
465
472
|
}
|
|
466
473
|
|
|
467
474
|
// If minimized, maximize the chat
|
|
468
|
-
if ((inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$
|
|
475
|
+
if ((inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$appSta3 = inMemoryState.appStates) === null || _inMemoryState$appSta3 === void 0 ? void 0 : _inMemoryState$appSta3.isMinimized) === true) {
|
|
469
476
|
var _inMemoryState$domain, _inMemoryState$domain2, _inMemoryState$domain3, _inMemoryState$domain4;
|
|
470
477
|
dispatch({
|
|
471
478
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
@@ -484,7 +491,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
484
491
|
|
|
485
492
|
// End chat
|
|
486
493
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChat).subscribe(async () => {
|
|
487
|
-
_TelemetryHelper.TelemetryHelper.
|
|
494
|
+
_TelemetryHelper.TelemetryHelper.logSDKEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
488
495
|
Event: _TelemetryConstants.TelemetryEvent.EndChatEventReceived,
|
|
489
496
|
Description: "Received InitiateEndChat BroadcastEvent."
|
|
490
497
|
});
|
|
@@ -593,12 +600,12 @@ const LiveChatWidgetStateful = props => {
|
|
|
593
600
|
disablePolling: true
|
|
594
601
|
});
|
|
595
602
|
facadeChatSDK === null || facadeChatSDK === void 0 ? void 0 : facadeChatSDK.onAgentEndSession(event => {
|
|
596
|
-
var _inMemoryState$
|
|
603
|
+
var _inMemoryState$appSta4;
|
|
597
604
|
const inMemoryState = (0, _createReducer.executeReducer)(state, {
|
|
598
605
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.GET_IN_MEMORY_STATE,
|
|
599
606
|
payload: null
|
|
600
607
|
});
|
|
601
|
-
if ("participantsRemoved" in event && (inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$
|
|
608
|
+
if ("participantsRemoved" in event && (inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$appSta4 = inMemoryState.appStates) === null || _inMemoryState$appSta4 === void 0 ? void 0 : _inMemoryState$appSta4.conversationState) === _ConversationState.ConversationState.Active) {
|
|
602
609
|
setWebChatStyles(styles => {
|
|
603
610
|
return {
|
|
604
611
|
...styles,
|
|
@@ -741,13 +748,13 @@ const LiveChatWidgetStateful = props => {
|
|
|
741
748
|
|
|
742
749
|
// Handle Chat disconnect cases
|
|
743
750
|
(0, _react2.useEffect)(() => {
|
|
744
|
-
var _inMemoryState$
|
|
751
|
+
var _inMemoryState$appSta5;
|
|
745
752
|
const inMemoryState = (0, _createReducer.executeReducer)(state, {
|
|
746
753
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.GET_IN_MEMORY_STATE,
|
|
747
754
|
payload: null
|
|
748
755
|
});
|
|
749
756
|
(0, _chatDisconnectHelper.handleChatDisconnect)(props, inMemoryState, setWebChatStyles);
|
|
750
|
-
const chatDisconnectState = inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$
|
|
757
|
+
const chatDisconnectState = inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$appSta5 = inMemoryState.appStates) === null || _inMemoryState$appSta5 === void 0 ? void 0 : _inMemoryState$appSta5.chatDisconnectEventReceived;
|
|
751
758
|
if (chatDisconnectState && adapter) {
|
|
752
759
|
try {
|
|
753
760
|
adapter.end();
|
|
@@ -770,8 +777,9 @@ const LiveChatWidgetStateful = props => {
|
|
|
770
777
|
});
|
|
771
778
|
}, [(_props$webChatContain9 = props.webChatContainerProps) === null || _props$webChatContain9 === void 0 ? void 0 : _props$webChatContain9.renderingMiddlewareProps]);
|
|
772
779
|
(0, _react2.useEffect)(() => {
|
|
773
|
-
_TelemetryHelper.TelemetryHelper.
|
|
774
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
780
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
781
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLiveChatWidgetCompleted,
|
|
782
|
+
Description: "Live chat widget loading completed.",
|
|
775
783
|
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
776
784
|
});
|
|
777
785
|
}, []);
|
|
@@ -876,8 +884,8 @@ const LiveChatWidgetStateful = props => {
|
|
|
876
884
|
userID: userID,
|
|
877
885
|
styleOptions: {
|
|
878
886
|
...webChatStyles,
|
|
879
|
-
bubbleBackground: ((_props$webChatContain11 = props.webChatContainerProps) === null || _props$webChatContain11 === void 0 ? void 0 : (_props$webChatContain12 = _props$webChatContain11.
|
|
880
|
-
bubbleTextColor: ((_props$
|
|
887
|
+
bubbleBackground: ((_props$webChatContain11 = props.webChatContainerProps) === null || _props$webChatContain11 === void 0 ? void 0 : (_props$webChatContain12 = _props$webChatContain11.webChatStyles) === null || _props$webChatContain12 === void 0 ? void 0 : _props$webChatContain12.bubbleBackground) ?? ((_props$webChatContain13 = props.webChatContainerProps) === null || _props$webChatContain13 === void 0 ? void 0 : (_props$webChatContain14 = _props$webChatContain13.adaptiveCardStyles) === null || _props$webChatContain14 === void 0 ? void 0 : _props$webChatContain14.background) ?? _defaultAdaptiveCardStyles.defaultAdaptiveCardStyles.background,
|
|
888
|
+
bubbleTextColor: ((_props$webChatContain15 = props.webChatContainerProps) === null || _props$webChatContain15 === void 0 ? void 0 : (_props$webChatContain16 = _props$webChatContain15.webChatStyles) === null || _props$webChatContain16 === void 0 ? void 0 : _props$webChatContain16.bubbleTextColor) ?? ((_props$webChatContain17 = props.webChatContainerProps) === null || _props$webChatContain17 === void 0 ? void 0 : (_props$webChatContain18 = _props$webChatContain17.adaptiveCardStyles) === null || _props$webChatContain18 === void 0 ? void 0 : _props$webChatContain18.color) ?? _defaultAdaptiveCardStyles.defaultAdaptiveCardStyles.color
|
|
881
889
|
},
|
|
882
890
|
directLine: directLine
|
|
883
891
|
}), /*#__PURE__*/_react2.default.createElement(_react.Stack, {
|
|
@@ -7,11 +7,11 @@ exports.default = exports.OutOfOfficeHoursPaneStateful = void 0;
|
|
|
7
7
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _utils = require("../../common/utils");
|
|
10
|
+
var _dompurify = _interopRequireDefault(require("dompurify"));
|
|
10
11
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
12
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
12
13
|
var _defaultgeneralOOOHPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralOOOHPaneStyleProps");
|
|
13
14
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
14
|
-
var _dompurify = _interopRequireDefault(require("dompurify"));
|
|
15
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
16
|
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); }
|
|
17
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -20,8 +20,9 @@ const OutOfOfficeHoursPaneStateful = props => {
|
|
|
20
20
|
var _props$styleProps;
|
|
21
21
|
(0, _react.useEffect)(() => {
|
|
22
22
|
uiTimer = (0, _utils.createTimer)();
|
|
23
|
-
_TelemetryHelper.TelemetryHelper.
|
|
24
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
23
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
24
|
+
Event: _TelemetryConstants.TelemetryEvent.UXOutOfOfficeHoursPaneStart,
|
|
25
|
+
Description: "Out of office hours pane loading started."
|
|
25
26
|
});
|
|
26
27
|
}, []);
|
|
27
28
|
const [state] = (0, _useChatContextStore.default)();
|
|
@@ -38,15 +39,18 @@ const OutOfOfficeHoursPaneStateful = props => {
|
|
|
38
39
|
|
|
39
40
|
// Move focus to the first button
|
|
40
41
|
(0, _react.useEffect)(() => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
firstElement[0]
|
|
42
|
+
if (state.domainStates.widgetElementId !== null && state.domainStates.widgetElementId !== undefined && state.domainStates.widgetElementId.trim() !== "") {
|
|
43
|
+
const firstElement = (0, _utils.findAllFocusableElement)(`#${state.domainStates.widgetElementId}`);
|
|
44
|
+
if (firstElement && firstElement[0]) {
|
|
45
|
+
firstElement[0].focus();
|
|
46
|
+
}
|
|
44
47
|
}
|
|
45
48
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
46
49
|
Event: _TelemetryConstants.TelemetryEvent.OutOfOfficePaneLoaded
|
|
47
50
|
});
|
|
48
|
-
_TelemetryHelper.TelemetryHelper.
|
|
49
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
51
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
52
|
+
Event: _TelemetryConstants.TelemetryEvent.UXOutOfOfficeHoursPaneCompleted,
|
|
53
|
+
Description: "Out of office hours pane loading completed.",
|
|
50
54
|
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
51
55
|
});
|
|
52
56
|
}, []);
|
|
@@ -14,17 +14,19 @@ var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
|
14
14
|
var _defaultgeneralPostChatSurveyPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps");
|
|
15
15
|
var _utils = require("../../common/utils");
|
|
16
16
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
17
|
+
var _isValidSurveyUrl = _interopRequireDefault(require("./common/isValidSurveyUrl"));
|
|
17
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
19
|
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); }
|
|
19
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
21
|
const generateSurveyInviteLink = function (surveyInviteLink, isEmbed, locale, compact) {
|
|
21
22
|
let showMultiLingual = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
const surveyLinkParams = new URLSearchParams({
|
|
24
|
+
embed: isEmbed.toString(),
|
|
25
|
+
compact: (compact ?? true).toString(),
|
|
26
|
+
lang: locale ?? "en-us",
|
|
27
|
+
showmultilingual: (showMultiLingual ?? false).toString()
|
|
28
|
+
});
|
|
29
|
+
return `${surveyInviteLink}&${surveyLinkParams.toString()}`;
|
|
28
30
|
};
|
|
29
31
|
const PostChatSurveyPaneStateful = props => {
|
|
30
32
|
var _props$styleProps, _state$appStates, _props$controlProps;
|
|
@@ -54,6 +56,20 @@ const PostChatSurveyPaneStateful = props => {
|
|
|
54
56
|
surveyURL: ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.surveyURL) ?? surveyInviteLink,
|
|
55
57
|
...props.controlProps
|
|
56
58
|
};
|
|
59
|
+
if (controlProps.surveyURL) {
|
|
60
|
+
if (!(0, _isValidSurveyUrl.default)(controlProps.surveyURL)) {
|
|
61
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
62
|
+
Event: _TelemetryConstants.TelemetryEvent.PostChatSurveyUrlValidationFailed,
|
|
63
|
+
Description: `${controlProps.surveyURL} is not a valid Survey URL`
|
|
64
|
+
});
|
|
65
|
+
controlProps.surveyURL = "";
|
|
66
|
+
} else {
|
|
67
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
68
|
+
Event: _TelemetryConstants.TelemetryEvent.PostChatSurveyUrlValidationCompleted,
|
|
69
|
+
Description: `${controlProps.surveyURL} is a valid Survey URL`
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
57
73
|
|
|
58
74
|
// Move focus to the first button
|
|
59
75
|
(0, _react.useEffect)(() => {
|
|
@@ -77,12 +93,17 @@ const PostChatSurveyPaneStateful = props => {
|
|
|
77
93
|
Event: _TelemetryConstants.TelemetryEvent.CustomerVoiceResponsePageLoaded
|
|
78
94
|
});
|
|
79
95
|
} else if (data === _CustomerVoiceEvents.CustomerVoiceEvents.FormResponseSubmitted) {
|
|
80
|
-
_TelemetryHelper.TelemetryHelper.
|
|
81
|
-
Event: _TelemetryConstants.TelemetryEvent.CustomerVoiceFormResponseSubmitted
|
|
96
|
+
_TelemetryHelper.TelemetryHelper.logActionEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
97
|
+
Event: _TelemetryConstants.TelemetryEvent.CustomerVoiceFormResponseSubmitted,
|
|
98
|
+
Description: "Customer Voice form response submitted."
|
|
82
99
|
});
|
|
83
100
|
} else if (data === _CustomerVoiceEvents.CustomerVoiceEvents.FormResponseError) {
|
|
84
|
-
_TelemetryHelper.TelemetryHelper.
|
|
85
|
-
Event: _TelemetryConstants.TelemetryEvent.CustomerVoiceFormResponseError
|
|
101
|
+
_TelemetryHelper.TelemetryHelper.logActionEventToAllTelemetry(_TelemetryConstants.LogLevel.ERROR, {
|
|
102
|
+
Event: _TelemetryConstants.TelemetryEvent.CustomerVoiceFormResponseError,
|
|
103
|
+
Description: "Customer Voice form response error.",
|
|
104
|
+
ExceptionDetails: {
|
|
105
|
+
message: "Customer Voice form response error."
|
|
106
|
+
}
|
|
86
107
|
});
|
|
87
108
|
}
|
|
88
109
|
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _utils = require("../../../common/utils");
|
|
8
|
+
const validRootDomains = ["microsoft.com", "microsoft.us", "appsplatform.us", "powervirtualagents.cn"];
|
|
9
|
+
const isValidSurveyUrl = url => {
|
|
10
|
+
if ((0, _utils.isNullOrEmptyString)(url)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const objectUrl = new URL(url);
|
|
15
|
+
if (!objectUrl.origin || objectUrl.origin === "null") {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const validDomain = validRootDomains.find(domain => objectUrl.origin.endsWith(domain));
|
|
19
|
+
if (validDomain) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
} catch (error) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
};
|
|
27
|
+
var _default = isValidSurveyUrl;
|
|
28
|
+
exports.default = _default;
|
|
@@ -26,8 +26,9 @@ const PreChatSurveyPaneStateful = props => {
|
|
|
26
26
|
var _surveyProps$stylePro, _props$surveyProps, _props$surveyProps$co;
|
|
27
27
|
(0, _react.useEffect)(() => {
|
|
28
28
|
uiTimer = (0, _utils.createTimer)();
|
|
29
|
-
_TelemetryHelper.TelemetryHelper.
|
|
30
|
-
Event: _TelemetryConstants.TelemetryEvent.UXPrechatPaneStart
|
|
29
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
30
|
+
Event: _TelemetryConstants.TelemetryEvent.UXPrechatPaneStart,
|
|
31
|
+
Description: "Prechat survey pane loading started."
|
|
31
32
|
});
|
|
32
33
|
}, []);
|
|
33
34
|
|
|
@@ -76,8 +77,9 @@ const PreChatSurveyPaneStateful = props => {
|
|
|
76
77
|
payload: getAdaptiveCardPayload(state.domainStates.preChatSurveyResponse, requiredFieldMissingMessage),
|
|
77
78
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
78
79
|
onSubmit: async values => {
|
|
79
|
-
_TelemetryHelper.TelemetryHelper.
|
|
80
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
80
|
+
_TelemetryHelper.TelemetryHelper.logActionEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
81
|
+
Event: _TelemetryConstants.TelemetryEvent.PrechatSubmitCompleted,
|
|
82
|
+
Description: "Prechat survey submitted."
|
|
81
83
|
});
|
|
82
84
|
dispatch({
|
|
83
85
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
@@ -148,9 +150,10 @@ const PreChatSurveyPaneStateful = props => {
|
|
|
148
150
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
149
151
|
Event: _TelemetryConstants.TelemetryEvent.PrechatSurveyLoaded
|
|
150
152
|
});
|
|
151
|
-
_TelemetryHelper.TelemetryHelper.
|
|
153
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
152
154
|
Event: _TelemetryConstants.TelemetryEvent.UXPrechatPaneCompleted,
|
|
153
|
-
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
155
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed,
|
|
156
|
+
Description: "Prechat survey pane loading completed."
|
|
154
157
|
});
|
|
155
158
|
}, []);
|
|
156
159
|
|
|
@@ -24,8 +24,9 @@ const ProactiveChatPaneStateful = props => {
|
|
|
24
24
|
var _proactiveChatProps$c;
|
|
25
25
|
(0, _react.useEffect)(() => {
|
|
26
26
|
uiTimer = (0, _utils.createTimer)();
|
|
27
|
-
_TelemetryHelper.TelemetryHelper.
|
|
28
|
-
Event: _TelemetryConstants.TelemetryEvent.UXProactiveChatPaneStart
|
|
27
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
28
|
+
Event: _TelemetryConstants.TelemetryEvent.UXProactiveChatPaneStart,
|
|
29
|
+
Description: "Proactive chat pane loading started."
|
|
29
30
|
});
|
|
30
31
|
}, []);
|
|
31
32
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
@@ -50,8 +51,8 @@ const ProactiveChatPaneStateful = props => {
|
|
|
50
51
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
51
52
|
payload: _ConversationState.ConversationState.Closed
|
|
52
53
|
});
|
|
53
|
-
_TelemetryHelper.TelemetryHelper.
|
|
54
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
54
|
+
_TelemetryHelper.TelemetryHelper.logActionEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
55
|
+
Event: _TelemetryConstants.TelemetryEvent.ProactiveChatTimeOutCompleted,
|
|
55
56
|
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed,
|
|
56
57
|
Description: "Proactive chat invitation timed out."
|
|
57
58
|
});
|
|
@@ -129,9 +130,10 @@ const ProactiveChatPaneStateful = props => {
|
|
|
129
130
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
130
131
|
Event: _TelemetryConstants.TelemetryEvent.ProactiveChatPaneLoaded
|
|
131
132
|
});
|
|
132
|
-
_TelemetryHelper.TelemetryHelper.
|
|
133
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
134
|
-
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
133
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEventToAllTelemetry(_TelemetryConstants.LogLevel.INFO, {
|
|
134
|
+
Event: _TelemetryConstants.TelemetryEvent.UXProactiveChatPaneCompleted,
|
|
135
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed,
|
|
136
|
+
Description: "Proactive chat pane loading completed."
|
|
135
137
|
});
|
|
136
138
|
return () => {
|
|
137
139
|
clearTimeout(timeoutEvent);
|
|
@@ -4,13 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.WebChatContainerStateful = void 0;
|
|
7
|
+
var _Constants = require("../../common/Constants");
|
|
7
8
|
var _react = require("@fluentui/react");
|
|
8
9
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
9
10
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _utils = require("../../common/utils");
|
|
11
12
|
var _BotMagicCodeStore = require("./webchatcontroller/BotMagicCodeStore");
|
|
12
13
|
var _botframeworkWebchat = require("botframework-webchat");
|
|
13
|
-
var _Constants = require("../../common/Constants");
|
|
14
14
|
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
15
15
|
var _NotificationHandler = require("./webchatcontroller/notification/NotificationHandler");
|
|
16
16
|
var _NotificationScenarios = require("./webchatcontroller/enums/NotificationScenarios");
|
|
@@ -56,7 +56,7 @@ const createMagicCodeSuccessResponse = signin => {
|
|
|
56
56
|
};
|
|
57
57
|
};
|
|
58
58
|
const WebChatContainerStateful = props => {
|
|
59
|
-
var _webChatContainerProp, _webChatContainerProp2, _webChatContainerProp3, _webChatContainerProp4, _webChatContainerProp5, _webChatContainerProp6, _webChatContainerProp7, _props$webChatContain5, _props$webChatContain6, _defaultWebChatContai, _props$webChatContain7, _props$webChatContain8, _defaultWebChatContai2, _webChatContainerProp8, _webChatContainerProp9, _webChatContainerProp10, _webChatContainerProp11, _webChatContainerProp12, _webChatContainerProp13, _webChatContainerProp14, _webChatContainerProp15, _props$webChatContain9, _props$webChatContain10;
|
|
59
|
+
var _webChatContainerProp, _webChatContainerProp2, _webChatContainerProp3, _webChatContainerProp4, _webChatContainerProp5, _webChatContainerProp6, _webChatContainerProp7, _props$webChatContain5, _props$webChatContain6, _defaultWebChatContai, _props$webChatContain7, _props$webChatContain8, _defaultWebChatContai2, _webChatContainerProp8, _webChatContainerProp9, _webChatContainerProp10, _webChatContainerProp11, _webChatContainerProp12, _webChatContainerProp13, _webChatContainerProp14, _webChatContainerProp15, _webChatContainerProp16, _props$webChatContain9, _props$webChatContain10;
|
|
60
60
|
(0, _react2.useEffect)(() => {
|
|
61
61
|
uiTimer = (0, _utils.createTimer)();
|
|
62
62
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
@@ -241,8 +241,9 @@ const WebChatContainerStateful = props => {
|
|
|
241
241
|
color: ${(webChatContainerProps === null || webChatContainerProps === void 0 ? void 0 : (_webChatContainerProp14 = webChatContainerProps.renderingMiddlewareProps) === null || _webChatContainerProp14 === void 0 ? void 0 : (_webChatContainerProp15 = _webChatContainerProp14.sentMessageAnchorStyles) === null || _webChatContainerProp15 === void 0 ? void 0 : _webChatContainerProp15.color) ?? (_defaultSentMessageAnchorStyles.defaultSentMessageAnchorStyles === null || _defaultSentMessageAnchorStyles.defaultSentMessageAnchorStyles === void 0 ? void 0 : _defaultSentMessageAnchorStyles.defaultSentMessageAnchorStyles.color)};
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
+
// we had a nasty bug long time ago with crashing borders messing with the sendbox, so if customer adds this value, they need to deal with that
|
|
244
245
|
.webchat__bubble:not(.webchat__bubble--from-user) .webchat__bubble__content {
|
|
245
|
-
border-radius: 0 !important; /* Override border-radius */
|
|
246
|
+
border-radius: ${(webChatContainerProps === null || webChatContainerProps === void 0 ? void 0 : (_webChatContainerProp16 = webChatContainerProps.webChatStyles) === null || _webChatContainerProp16 === void 0 ? void 0 : _webChatContainerProp16.bubbleBorderRadius) ?? 0} !important; /* Override border-radius */
|
|
246
247
|
}
|
|
247
248
|
|
|
248
249
|
.webchat__stacked-layout_container>div {
|