@microsoft/omnichannel-chat-widget 1.7.5-main.290ba08 → 1.7.6-main.9b09b06
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/facades/FacadeChatSDK.js +11 -1
- package/lib/cjs/common/telemetry/TelemetryConstants.js +32 -0
- package/lib/cjs/common/telemetry/TelemetryHelper.js +10 -0
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +15 -1
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +14 -2
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +16 -2
- package/lib/cjs/components/footerstateful/FooterStateful.js +15 -0
- package/lib/cjs/components/headerstateful/HeaderStateful.js +16 -2
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +3 -2
- package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +5 -3
- package/lib/cjs/components/livechatwidget/interfaces/IFeatureConfigProps.js +1 -0
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +37 -4
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +20 -2
- package/lib/cjs/components/notificationpanestateful/NotificationPaneStateful.js +21 -7
- package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +12 -1
- package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +14 -3
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +13 -0
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +12 -0
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +12 -1
- package/lib/cjs/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +19 -8
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +14 -1
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +2 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +1 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +7 -7
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +4 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +7 -4
- package/lib/cjs/plugins/createChatTranscript.js +15 -6
- package/lib/esm/common/facades/FacadeChatSDK.js +11 -1
- package/lib/esm/common/telemetry/TelemetryConstants.js +32 -0
- package/lib/esm/common/telemetry/TelemetryHelper.js +10 -0
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +15 -1
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +14 -3
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +17 -3
- package/lib/esm/components/footerstateful/FooterStateful.js +14 -0
- package/lib/esm/components/headerstateful/HeaderStateful.js +16 -2
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +3 -2
- package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +5 -3
- package/lib/esm/components/livechatwidget/interfaces/IFeatureConfigProps.js +1 -0
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +37 -4
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -2
- package/lib/esm/components/notificationpanestateful/NotificationPaneStateful.js +21 -7
- package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +12 -1
- package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +14 -3
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +13 -1
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +11 -0
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +12 -1
- package/lib/esm/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +19 -8
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +14 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +1 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +7 -7
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +4 -4
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +7 -4
- package/lib/esm/plugins/createChatTranscript.js +15 -6
- package/lib/types/common/facades/FacadeChatSDK.d.ts +2 -1
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +33 -1
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -1
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +1 -1
- package/lib/types/common/telemetry/definitions/Payload.d.ts +14 -1
- package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
- package/lib/types/components/footerstateful/downloadtranscriptstateful/interfaces/IWebChatTranscriptConfig.d.ts +1 -0
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/createAdapter.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/createDownloadTranscriptProps.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/createInternetConnectionChangeHandler.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/getMockChatSDKIfApplicable.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +2 -2
- package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/startChat.d.ts +2 -2
- package/lib/types/components/livechatwidget/common/startChatErrorHandler.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/interfaces/IFeatureConfigProps.d.ts +3 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +9 -7
- package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.d.ts +1 -1
- package/lib/types/hooks/useChatSDKStore.d.ts +1 -1
- package/lib/types/hooks/useDebounce.d.ts +1 -1
- package/package.json +17 -8
|
@@ -26,7 +26,7 @@ class FacadeChatSDK {
|
|
|
26
26
|
isTokenSet() {
|
|
27
27
|
return !(0, _utils.isNullOrEmptyString)(this.token);
|
|
28
28
|
}
|
|
29
|
-
constructor(input) {
|
|
29
|
+
constructor(input, disableReauthentication) {
|
|
30
30
|
_defineProperty(this, "chatSDK", void 0);
|
|
31
31
|
_defineProperty(this, "chatConfig", void 0);
|
|
32
32
|
_defineProperty(this, "token", "");
|
|
@@ -34,11 +34,13 @@ class FacadeChatSDK {
|
|
|
34
34
|
_defineProperty(this, "isAuthenticated", void 0);
|
|
35
35
|
_defineProperty(this, "getAuthToken", void 0);
|
|
36
36
|
_defineProperty(this, "sdkMocked", void 0);
|
|
37
|
+
_defineProperty(this, "disableReauthentication", void 0);
|
|
37
38
|
this.chatSDK = input.chatSDK;
|
|
38
39
|
this.chatConfig = input.chatConfig;
|
|
39
40
|
this.getAuthToken = input.getAuthToken;
|
|
40
41
|
this.isAuthenticated = input.isAuthenticated;
|
|
41
42
|
this.sdkMocked = input.isSDKMocked;
|
|
43
|
+
this.disableReauthentication = disableReauthentication;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
//set default expiration to zero, for undefined or missed exp in jwt
|
|
@@ -103,6 +105,14 @@ class FacadeChatSDK {
|
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
107
|
async tokenRing() {
|
|
108
|
+
if (this.disableReauthentication === true) {
|
|
109
|
+
// facade feature is disabled, so we are bypassing the re authentication and let it fail.
|
|
110
|
+
return {
|
|
111
|
+
result: true,
|
|
112
|
+
message: "Facade is disabled"
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
|
|
106
116
|
// this is needed for storybooks, specifically for reconnect pane which requires authentication bypass
|
|
107
117
|
if (this.sdkMocked === true) {
|
|
108
118
|
return {
|
|
@@ -141,6 +141,7 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
141
141
|
TelemetryEvent["ConfirmationCancelButtonClicked"] = "ConfirmationCancelButtonClicked";
|
|
142
142
|
TelemetryEvent["ConfirmationConfirmButtonClicked"] = "ConfirmationConfirmButtonClicked";
|
|
143
143
|
TelemetryEvent["LoadingPaneLoaded"] = "LoadingPaneLoaded";
|
|
144
|
+
TelemetryEvent["LoadingPaneUnloaded"] = "LoadingPaneUnloaded";
|
|
144
145
|
TelemetryEvent["StartChatErrorPaneLoaded"] = "StartChatErrorPaneLoaded";
|
|
145
146
|
TelemetryEvent["EmailTranscriptLoaded"] = "EmailTranscriptLoaded";
|
|
146
147
|
TelemetryEvent["OutOfOfficePaneLoaded"] = "OutOfOfficePaneLoaded";
|
|
@@ -173,6 +174,7 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
173
174
|
TelemetryEvent["SetBotAuthProviderNotFound"] = "SetBotAuthProviderNotFound";
|
|
174
175
|
TelemetryEvent["BotAuthActivityUndefinedSignInId"] = "BotAuthActivityUndefinedSignInId";
|
|
175
176
|
TelemetryEvent["ThirdPartyCookiesBlocked"] = "ThirdPartyCookiesBlocked";
|
|
177
|
+
TelemetryEvent["ParticipantsRemovedEvent"] = "ParticipantsRemovedEvent";
|
|
176
178
|
TelemetryEvent["ProcessingHTMLTextMiddlewareFailed"] = "ProcessingHTMLTextMiddlewareFailed";
|
|
177
179
|
TelemetryEvent["ProcessingSanitizationMiddlewareFailed"] = "ProcessingSanitizationMiddlewareFailed";
|
|
178
180
|
TelemetryEvent["FormatTagsMiddlewareJSONStringifyFailed"] = "FormatTagsMiddlewareJSONStringifyFailed";
|
|
@@ -224,6 +226,36 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
224
226
|
TelemetryEvent["NewTokenFailed"] = "NewTokenFailed";
|
|
225
227
|
TelemetryEvent["NewTokenExpired"] = "NewTokenExpired";
|
|
226
228
|
TelemetryEvent["TokenEmptyOrSame"] = "TokenEmptyOrSame";
|
|
229
|
+
TelemetryEvent["UXFooterStart"] = "UXFooterStart";
|
|
230
|
+
TelemetryEvent["UXFooterCompleted"] = "UXFooterCompleted";
|
|
231
|
+
TelemetryEvent["UXHeaderStart"] = "UXHeaderStart";
|
|
232
|
+
TelemetryEvent["UXHeaderCompleted"] = "UXHeaderCompleted";
|
|
233
|
+
TelemetryEvent["UXLoadingPaneStart"] = "UXLoadingPaneStart";
|
|
234
|
+
TelemetryEvent["UXLoadingPaneCompleted"] = "UXLoadingPaneCompleted";
|
|
235
|
+
TelemetryEvent["UXNotificationPaneStart"] = "UXNotificationPaneStart";
|
|
236
|
+
TelemetryEvent["UXNotificationPaneCompleted"] = "UXNotificationPaneCompleted";
|
|
237
|
+
TelemetryEvent["UXOOHPaneStart"] = "UXOOHPaneStart";
|
|
238
|
+
TelemetryEvent["UXOOHPaneCompleted"] = "UXOOHPaneCompleted";
|
|
239
|
+
TelemetryEvent["UXPostChatLoadingPaneStart"] = "UXPostChatLoadingPaneStart";
|
|
240
|
+
TelemetryEvent["UXPostChatLoadingPaneCompleted"] = "UXPostChatLoadingPaneCompleted";
|
|
241
|
+
TelemetryEvent["UXPrechatPaneStart"] = "UXPrechatPaneStart";
|
|
242
|
+
TelemetryEvent["UXPrechatPaneCompleted"] = "UXPrechatPaneCompleted";
|
|
243
|
+
TelemetryEvent["UXProactiveChatPaneStart"] = "UXProactiveChatPaneStart";
|
|
244
|
+
TelemetryEvent["UXProactiveChatCompleted"] = "UXProactiveChatCompleted";
|
|
245
|
+
TelemetryEvent["UXReconnectChatPaneStart"] = "UXReconnectChatPaneStart";
|
|
246
|
+
TelemetryEvent["UXReconnectChatCompleted"] = "UXReconnectChatCompleted";
|
|
247
|
+
TelemetryEvent["UXStartChatErrorPaneStart"] = "UXStartChatErrorPaneStart";
|
|
248
|
+
TelemetryEvent["UXStartChatErrorCompleted"] = "UXStartChatErrorCompleted";
|
|
249
|
+
TelemetryEvent["UXEmailTranscriptPaneStart"] = "UXEmailTranscriptPaneStart";
|
|
250
|
+
TelemetryEvent["UXEmailTranscriptPaneCompleted"] = "UXEmailTranscriptPaneCompleted";
|
|
251
|
+
TelemetryEvent["UXWebchatContainerStart"] = "UXWebchatContainerStart";
|
|
252
|
+
TelemetryEvent["UXWebchatContainerCompleted"] = "UXWebchatContainerCompleted";
|
|
253
|
+
TelemetryEvent["UXLCWChatButtonStart"] = "UXLCWChatButtonStart";
|
|
254
|
+
TelemetryEvent["UXLCWChatButtonCompleted"] = "UXLCWChatButtonCompleted";
|
|
255
|
+
TelemetryEvent["UXConfirmationPaneStart"] = "UXConfirmationPaneStart";
|
|
256
|
+
TelemetryEvent["UXConfirmationPaneCompleted"] = "UXConfirmationPaneCompleted";
|
|
257
|
+
TelemetryEvent["UXLivechatwidgetStart"] = "UXLivechatwidgetStart";
|
|
258
|
+
TelemetryEvent["UXLivechatwidgetCompleted"] = "UXLivechatwidgetCompleted";
|
|
227
259
|
})(TelemetryEvent || (exports.TelemetryEvent = TelemetryEvent = {}));
|
|
228
260
|
class TelemetryConstants {
|
|
229
261
|
static map(eventTypeOrScenarioType) {
|
|
@@ -220,6 +220,16 @@ _defineProperty(TelemetryHelper, "logLoadingEvent", (logLevel, payload) => {
|
|
|
220
220
|
};
|
|
221
221
|
_omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
|
|
222
222
|
});
|
|
223
|
+
_defineProperty(TelemetryHelper, "logUIEvent", (logLevel, payload) => {
|
|
224
|
+
const telemetryEvent = {
|
|
225
|
+
eventName: (payload === null || payload === void 0 ? void 0 : payload.Event) ?? "",
|
|
226
|
+
logLevel: logLevel,
|
|
227
|
+
payload: {
|
|
228
|
+
...payload
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
_omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
|
|
232
|
+
});
|
|
223
233
|
_defineProperty(TelemetryHelper, "logActionEvent", (logLevel, payload) => {
|
|
224
234
|
const telemetryEvent = {
|
|
225
235
|
eventName: (payload === null || payload === void 0 ? void 0 : payload.Event) ?? "",
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.ChatButtonStateful = void 0;
|
|
7
7
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _utils = require("../../common/utils");
|
|
9
10
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
10
11
|
var _Constants = require("../../common/Constants");
|
|
11
12
|
var _ConversationState = require("../../contexts/common/ConversationState");
|
|
@@ -13,13 +14,22 @@ var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetAct
|
|
|
13
14
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
14
15
|
var _TelemetryManager = require("../../common/telemetry/TelemetryManager");
|
|
15
16
|
var _defaultOutOfOfficeChatButtonStyleProps = require("./common/styleProps/defaultOutOfOfficeChatButtonStyleProps");
|
|
16
|
-
var _utils = require("../../common/utils");
|
|
17
17
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
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); }
|
|
20
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; }
|
|
21
|
+
let uiTimer;
|
|
21
22
|
const ChatButtonStateful = props => {
|
|
22
23
|
var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP, _props$buttonProps, _props$buttonProps$co, _props$buttonProps2, _props$buttonProps2$c, _props$buttonProps3, _props$buttonProps3$c;
|
|
24
|
+
// this is to ensure the telemetry is set only once and start the load timer
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
uiTimer = (0, _utils.createTimer)();
|
|
27
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
28
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLCWChatButtonStart
|
|
29
|
+
});
|
|
30
|
+
}, []);
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
33
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
24
34
|
const {
|
|
25
35
|
buttonProps,
|
|
@@ -101,6 +111,10 @@ const ChatButtonStateful = props => {
|
|
|
101
111
|
payload: true
|
|
102
112
|
});
|
|
103
113
|
}
|
|
114
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
115
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLCWChatButtonCompleted,
|
|
116
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
117
|
+
});
|
|
104
118
|
}, []);
|
|
105
119
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.ChatButton, {
|
|
106
120
|
componentOverrides: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.componentOverrides,
|
|
@@ -5,19 +5,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.ConfirmationPaneStateful = void 0;
|
|
7
7
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
8
|
-
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
9
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
9
|
var _utils = require("../../common/utils");
|
|
10
|
+
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
|
+
var _Constants = require("../../common/Constants");
|
|
11
12
|
var _DimLayer = require("../dimlayer/DimLayer");
|
|
12
13
|
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
13
14
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
14
15
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
15
|
-
var _Constants = require("../../common/Constants");
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
19
|
+
let uiTimer;
|
|
20
|
+
|
|
19
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
22
|
const ConfirmationPaneStateful = props => {
|
|
23
|
+
(0, _react.useEffect)(() => {
|
|
24
|
+
uiTimer = (0, _utils.createTimer)();
|
|
25
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
26
|
+
Event: _TelemetryConstants.TelemetryEvent.UXConfirmationPaneStart
|
|
27
|
+
});
|
|
28
|
+
}, []);
|
|
21
29
|
const initialTabIndexMap = new Map();
|
|
22
30
|
let elements = [];
|
|
23
31
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
@@ -84,6 +92,10 @@ const ConfirmationPaneStateful = props => {
|
|
|
84
92
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
85
93
|
Event: _TelemetryConstants.TelemetryEvent.ConfirmationPaneLoaded
|
|
86
94
|
});
|
|
95
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
96
|
+
Event: _TelemetryConstants.TelemetryEvent.UXConfirmationPaneCompleted,
|
|
97
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
98
|
+
});
|
|
87
99
|
}, []);
|
|
88
100
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_DimLayer.DimLayer, {
|
|
89
101
|
brightness: (controlProps === null || controlProps === void 0 ? void 0 : controlProps.brightnessValueOnDim) ?? "0.2"
|
|
@@ -20,8 +20,16 @@ var _useFacadeChatSDKStore = _interopRequireDefault(require("../../hooks/useFaca
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
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); }
|
|
22
22
|
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; }
|
|
23
|
+
let uiTimer;
|
|
23
24
|
const EmailTranscriptPaneStateful = props => {
|
|
24
25
|
var _props$controlProps;
|
|
26
|
+
// this is to ensure the telemetry is set only once and start the load timer
|
|
27
|
+
(0, _react.useEffect)(() => {
|
|
28
|
+
uiTimer = (0, _utils.createTimer)();
|
|
29
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
30
|
+
Event: _TelemetryConstants.TelemetryEvent.UXEmailTranscriptPaneStart
|
|
31
|
+
});
|
|
32
|
+
}, []);
|
|
25
33
|
const initialTabIndexMap = new Map();
|
|
26
34
|
let elements = [];
|
|
27
35
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
@@ -53,22 +61,24 @@ const EmailTranscriptPaneStateful = props => {
|
|
|
53
61
|
attachmentMessage: (props === null || props === void 0 ? void 0 : props.attachmentMessage) ?? "The following attachment was uploaded during the conversation:"
|
|
54
62
|
};
|
|
55
63
|
try {
|
|
64
|
+
var _state$domainStates2, _state$domainStates2$;
|
|
56
65
|
await (facadeChatSDK === null || facadeChatSDK === void 0 ? void 0 : facadeChatSDK.emailLiveChatTranscript(chatTranscriptBody, {
|
|
57
66
|
liveChatContext
|
|
58
67
|
}));
|
|
59
|
-
_NotificationHandler.NotificationHandler.notifySuccess(_NotificationScenarios.NotificationScenarios.EmailAddressSaved, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts === null || _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts === void 0 ? void 0 : _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_SUCCESS);
|
|
68
|
+
_NotificationHandler.NotificationHandler.notifySuccess(_NotificationScenarios.NotificationScenarios.EmailAddressSaved, (state === null || state === void 0 ? void 0 : (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : (_state$domainStates2$ = _state$domainStates2.middlewareLocalizedTexts) === null || _state$domainStates2$ === void 0 ? void 0 : _state$domainStates2$.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_SUCCESS) ?? (_defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts === null || _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts === void 0 ? void 0 : _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_SUCCESS));
|
|
60
69
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
61
70
|
Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptSent,
|
|
62
71
|
Description: "Transcript sent to email successfully."
|
|
63
72
|
});
|
|
64
73
|
} catch (ex) {
|
|
74
|
+
var _state$domainStates3, _state$domainStates3$;
|
|
65
75
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
66
76
|
Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptFailed,
|
|
67
77
|
ExceptionDetails: {
|
|
68
78
|
exception: ex
|
|
69
79
|
}
|
|
70
80
|
});
|
|
71
|
-
const message = (0, _utils.formatTemplateString)(_defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_ERROR, [email]);
|
|
81
|
+
const message = (0, _utils.formatTemplateString)((state === null || state === void 0 ? void 0 : (_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : (_state$domainStates3$ = _state$domainStates3.middlewareLocalizedTexts) === null || _state$domainStates3$ === void 0 ? void 0 : _state$domainStates3$.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_ERROR) ?? _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_FILE_EMAIL_ADDRESS_RECORDED_ERROR, [email]);
|
|
72
82
|
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.EmailTranscriptError, (props === null || props === void 0 ? void 0 : props.bannerMessageOnError) ?? message);
|
|
73
83
|
}
|
|
74
84
|
}, [props.attachmentMessage, props.bannerMessageOnError, facadeChatSDK, state.domainStates.liveChatContext]);
|
|
@@ -103,6 +113,10 @@ const EmailTranscriptPaneStateful = props => {
|
|
|
103
113
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
104
114
|
Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptLoaded
|
|
105
115
|
});
|
|
116
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
117
|
+
Event: _TelemetryConstants.TelemetryEvent.UXEmailTranscriptPaneCompleted,
|
|
118
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
119
|
+
});
|
|
106
120
|
}, [initialEmail]);
|
|
107
121
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_DimLayer.DimLayer, {
|
|
108
122
|
brightness: (controlProps === null || controlProps === void 0 ? void 0 : controlProps.brightnessValueOnDim) ?? "0.2"
|
|
@@ -15,15 +15,24 @@ var _Audios = require("../../assets/Audios");
|
|
|
15
15
|
var _NotificationHandler = require("../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
|
|
16
16
|
var _NotificationScenarios = require("../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
|
|
17
17
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
18
|
+
var _utils = require("../../common/utils");
|
|
18
19
|
var _DownloadTranscriptStateful = require("./downloadtranscriptstateful/DownloadTranscriptStateful");
|
|
19
20
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
20
21
|
var _useFacadeChatSDKStore = _interopRequireDefault(require("../../hooks/useFacadeChatSDKStore"));
|
|
21
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
23
|
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); }
|
|
23
24
|
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; }
|
|
25
|
+
let uiTimer;
|
|
26
|
+
|
|
24
27
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
28
|
const FooterStateful = props => {
|
|
26
29
|
var _footerProps$controlP3;
|
|
30
|
+
(0, _react.useEffect)(() => {
|
|
31
|
+
uiTimer = (0, _utils.createTimer)();
|
|
32
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
33
|
+
Event: _TelemetryConstants.TelemetryEvent.UXFooterStart
|
|
34
|
+
});
|
|
35
|
+
}, []);
|
|
27
36
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
28
37
|
// hideFooterDisplay - the purpose of this is to keep the footer always "active",
|
|
29
38
|
// but hide it visually in certain states (e.g., loading state) and show in some other states (e.g. active state).
|
|
@@ -100,6 +109,12 @@ const FooterStateful = props => {
|
|
|
100
109
|
}
|
|
101
110
|
}
|
|
102
111
|
}, [state.appStates.conversationState]);
|
|
112
|
+
(0, _react.useEffect)(() => {
|
|
113
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
114
|
+
Event: _TelemetryConstants.TelemetryEvent.UXFooterCompleted,
|
|
115
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
116
|
+
});
|
|
117
|
+
}, []);
|
|
103
118
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !hideFooterDisplay && /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Footer, {
|
|
104
119
|
componentOverrides: footerProps === null || footerProps === void 0 ? void 0 : footerProps.componentOverrides,
|
|
105
120
|
controlProps: controlProps,
|
|
@@ -6,20 +6,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.HeaderStateful = void 0;
|
|
7
7
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _Constants = require("../../common/Constants");
|
|
9
10
|
var _ConversationState = require("../../contexts/common/ConversationState");
|
|
11
|
+
var _DraggableEventEmitter = _interopRequireDefault(require("../draggable/DraggableEventEmitter"));
|
|
10
12
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
13
|
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
12
14
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
15
|
+
var _utils = require("../../common/utils");
|
|
13
16
|
var _defaultOutOfOfficeHeaderStyleProps = require("./common/styleProps/defaultOutOfOfficeHeaderStyleProps");
|
|
14
17
|
var _useChatAdapterStore = _interopRequireDefault(require("../../hooks/useChatAdapterStore"));
|
|
15
18
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
16
|
-
var _Constants = require("../../common/Constants");
|
|
17
|
-
var _DraggableEventEmitter = _interopRequireDefault(require("../draggable/DraggableEventEmitter"));
|
|
18
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
20
|
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); }
|
|
20
21
|
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; }
|
|
22
|
+
let uiTimer;
|
|
21
23
|
const HeaderStateful = props => {
|
|
22
24
|
var _state$domainStates$l, _state$domainStates$l2, _state$domainStates, _headerProps$controlP, _headerProps$controlP2, _headerProps$controlP3, _outOfOfficeHeaderPro, _state$domainStates3;
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
uiTimer = (0, _utils.createTimer)();
|
|
27
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
28
|
+
Event: _TelemetryConstants.TelemetryEvent.UXHeaderStart
|
|
29
|
+
});
|
|
30
|
+
}, []);
|
|
23
31
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
24
32
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
33
|
const [adapter] = (0, _useChatAdapterStore.default)();
|
|
@@ -114,6 +122,12 @@ const HeaderStateful = props => {
|
|
|
114
122
|
elementId: outOfOperatingHours || state.appStates.conversationState === _ConversationState.ConversationState.OutOfOffice ? outOfOfficeControlProps.id : controlProps.id,
|
|
115
123
|
targetWindow: props.draggableEventEmitterTargetWindow ?? window
|
|
116
124
|
};
|
|
125
|
+
(0, _react.useEffect)(() => {
|
|
126
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
127
|
+
Event: _TelemetryConstants.TelemetryEvent.UXHeaderCompleted,
|
|
128
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
129
|
+
});
|
|
130
|
+
}, []);
|
|
117
131
|
if (props.draggable === true) {
|
|
118
132
|
var _generalStyleProps;
|
|
119
133
|
const styleProps = outOfOperatingHours || state.appStates.conversationState === _ConversationState.ConversationState.OutOfOffice ? outOfOfficeStyleProps : headerProps === null || headerProps === void 0 ? void 0 : headerProps.styleProps;
|
|
@@ -20,13 +20,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
20
20
|
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); }
|
|
21
21
|
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; }
|
|
22
22
|
const LiveChatWidget = props => {
|
|
23
|
-
var _props$mock, _props$chatConfig, _props$chatConfig$Liv;
|
|
23
|
+
var _props$mock, _props$featureConfigP, _props$chatConfig, _props$chatConfig$Liv;
|
|
24
24
|
const reducer = (0, _createReducer.createReducer)();
|
|
25
25
|
const [state, dispatch] = (0, _react.useReducer)(reducer, (0, _LiveChatWidgetContextInitialState.getLiveChatWidgetContextInitialState)(props));
|
|
26
26
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
27
|
const [adapter, setAdapter] = (0, _react.useState)(undefined);
|
|
28
28
|
const [facadeChatSDK, setFacadeChatSDK] = (0, _react.useState)(undefined);
|
|
29
29
|
const chatSDK = (0, _getMockChatSDKIfApplicable.getMockChatSDKIfApplicable)(props.chatSDK, props === null || props === void 0 ? void 0 : (_props$mock = props.mock) === null || _props$mock === void 0 ? void 0 : _props$mock.type);
|
|
30
|
+
const disableReauthentication = ((_props$featureConfigP = props.featureConfigProps) === null || _props$featureConfigP === void 0 ? void 0 : _props$featureConfigP.disableReauthentication) === true;
|
|
30
31
|
(0, _overridePropsOnMockIfApplicable.default)(props);
|
|
31
32
|
if (!props.chatConfig) {
|
|
32
33
|
throw new Error("chatConfig is required");
|
|
@@ -43,7 +44,7 @@ const LiveChatWidget = props => {
|
|
|
43
44
|
"getAuthToken": props === null || props === void 0 ? void 0 : props.getAuthToken,
|
|
44
45
|
//when type is not undefined, it means the SDK is mocked
|
|
45
46
|
"isSDKMocked": !(0, _utils.isNullOrUndefined)(props === null || props === void 0 ? void 0 : (_props$mock2 = props.mock) === null || _props$mock2 === void 0 ? void 0 : _props$mock2.type)
|
|
46
|
-
}));
|
|
47
|
+
}, disableReauthentication));
|
|
47
48
|
}
|
|
48
49
|
return /*#__PURE__*/_react.default.createElement(_FacadeChatSDKStore.FacadeChatSDKStore.Provider, {
|
|
49
50
|
value: [facadeChatSDK, setFacadeChatSDK]
|
|
@@ -20,19 +20,21 @@ const isInternetConnected = async () => {
|
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
const createInternetConnectionChangeHandler = async
|
|
23
|
+
const createInternetConnectionChangeHandler = async state => {
|
|
24
24
|
const handler = async () => {
|
|
25
25
|
const connected = await isInternetConnected();
|
|
26
26
|
if (!connected) {
|
|
27
|
+
var _state$domainStates, _state$domainStates$m;
|
|
27
28
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
28
29
|
Event: _TelemetryConstants.TelemetryEvent.NetworkDisconnected
|
|
29
30
|
});
|
|
30
|
-
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.InternetConnection, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION);
|
|
31
|
+
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.InternetConnection, (state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$m = _state$domainStates.middlewareLocalizedTexts) === null || _state$domainStates$m === void 0 ? void 0 : _state$domainStates$m.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION) ?? _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION);
|
|
31
32
|
} else {
|
|
33
|
+
var _state$domainStates2, _state$domainStates2$;
|
|
32
34
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
33
35
|
Event: _TelemetryConstants.TelemetryEvent.NetworkReconnected
|
|
34
36
|
});
|
|
35
|
-
_NotificationHandler.NotificationHandler.notifySuccess(_NotificationScenarios.NotificationScenarios.InternetConnection, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE);
|
|
37
|
+
_NotificationHandler.NotificationHandler.notifySuccess(_NotificationScenarios.NotificationScenarios.InternetConnection, (state === null || state === void 0 ? void 0 : (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : (_state$domainStates2$ = _state$domainStates2.middlewareLocalizedTexts) === null || _state$domainStates2$ === void 0 ? void 0 : _state$domainStates2$.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE) ?? _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE);
|
|
36
38
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
37
39
|
eventName: _TelemetryConstants.BroadcastEvent.NetworkReconnected
|
|
38
40
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -62,8 +62,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
62
62
|
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); }
|
|
63
63
|
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; }
|
|
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
|
+
let uiTimer;
|
|
65
66
|
const LiveChatWidgetStateful = props => {
|
|
66
67
|
var _props$webChatContain, _props$styleProps, _props$controlProps, _props$controlProps3, _state$appStates7, _props$webChatContain5, _state$appStates14, _props$webChatContain7, _props$webChatContain8, _props$controlProps12, _props$draggableChatW, _props$draggableChatW2, _props$draggableChatW3, _props$draggableChatW4, _props$draggableChatW5, _livechatProps$webCha, _props$webChatContain9, _props$webChatContain10, _props$webChatContain11, _props$webChatContain12, _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
|
+
(0, _react2.useEffect)(() => {
|
|
69
|
+
uiTimer = (0, _utils.createTimer)();
|
|
70
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
71
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLivechatwidgetStart
|
|
72
|
+
});
|
|
73
|
+
}, []);
|
|
67
74
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
68
75
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
76
|
const [adapter, setAdapter] = (0, _useChatAdapterStore.default)();
|
|
@@ -220,7 +227,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
220
227
|
state.domainStates.confirmationState = _Constants.ConfirmationState.NotSet;
|
|
221
228
|
setupClientDataStore();
|
|
222
229
|
(0, _registerTelemetryLoggers.registerTelemetryLoggers)(props, dispatch);
|
|
223
|
-
(0, _createInternetConnectionChangeHandler.createInternetConnectionChangeHandler)();
|
|
230
|
+
(0, _createInternetConnectionChangeHandler.createInternetConnectionChangeHandler)(state);
|
|
224
231
|
dispatch({
|
|
225
232
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID,
|
|
226
233
|
payload: widgetElementId
|
|
@@ -582,6 +589,26 @@ const LiveChatWidgetStateful = props => {
|
|
|
582
589
|
eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
|
|
583
590
|
});
|
|
584
591
|
});
|
|
592
|
+
facadeChatSDK === null || facadeChatSDK === void 0 ? void 0 : facadeChatSDK.onAgentEndSession(event => {
|
|
593
|
+
var _inMemoryState$appSta6;
|
|
594
|
+
const inMemoryState = (0, _createReducer.executeReducer)(state, {
|
|
595
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.GET_IN_MEMORY_STATE,
|
|
596
|
+
payload: null
|
|
597
|
+
});
|
|
598
|
+
if ("participantsRemoved" in event && (inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$appSta6 = inMemoryState.appStates) === null || _inMemoryState$appSta6 === void 0 ? void 0 : _inMemoryState$appSta6.conversationState) === _ConversationState.ConversationState.Active) {
|
|
599
|
+
setWebChatStyles(styles => {
|
|
600
|
+
return {
|
|
601
|
+
...styles,
|
|
602
|
+
hideSendBox: true
|
|
603
|
+
};
|
|
604
|
+
});
|
|
605
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
606
|
+
Event: _TelemetryConstants.TelemetryEvent.ParticipantsRemovedEvent,
|
|
607
|
+
Description: "Participants removed event received."
|
|
608
|
+
});
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
|
+
});
|
|
585
612
|
}
|
|
586
613
|
if (state.appStates.conversationState === _ConversationState.ConversationState.InActive) {
|
|
587
614
|
var _props$webChatContain2, _props$webChatContain3;
|
|
@@ -711,13 +738,13 @@ const LiveChatWidgetStateful = props => {
|
|
|
711
738
|
|
|
712
739
|
// Handle Chat disconnect cases
|
|
713
740
|
(0, _react2.useEffect)(() => {
|
|
714
|
-
var _inMemoryState$
|
|
741
|
+
var _inMemoryState$appSta7;
|
|
715
742
|
const inMemoryState = (0, _createReducer.executeReducer)(state, {
|
|
716
743
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.GET_IN_MEMORY_STATE,
|
|
717
744
|
payload: null
|
|
718
745
|
});
|
|
719
746
|
(0, _chatDisconnectHelper.handleChatDisconnect)(props, inMemoryState, setWebChatStyles);
|
|
720
|
-
const chatDisconnectState = inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$
|
|
747
|
+
const chatDisconnectState = inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$appSta7 = inMemoryState.appStates) === null || _inMemoryState$appSta7 === void 0 ? void 0 : _inMemoryState$appSta7.chatDisconnectEventReceived;
|
|
721
748
|
if (chatDisconnectState && adapter) {
|
|
722
749
|
try {
|
|
723
750
|
adapter.end();
|
|
@@ -739,6 +766,12 @@ const LiveChatWidgetStateful = props => {
|
|
|
739
766
|
payload: (_props$webChatContain6 = props.webChatContainerProps) === null || _props$webChatContain6 === void 0 ? void 0 : _props$webChatContain6.renderingMiddlewareProps
|
|
740
767
|
});
|
|
741
768
|
}, [(_props$webChatContain7 = props.webChatContainerProps) === null || _props$webChatContain7 === void 0 ? void 0 : _props$webChatContain7.renderingMiddlewareProps]);
|
|
769
|
+
(0, _react2.useEffect)(() => {
|
|
770
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
771
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLivechatwidgetCompleted,
|
|
772
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
773
|
+
});
|
|
774
|
+
}, []);
|
|
742
775
|
const initiateEndChatOnBrowserUnload = () => {
|
|
743
776
|
var _DataStoreManager$cli;
|
|
744
777
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
@@ -783,7 +816,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
783
816
|
const chatWidgetDraggableConfig = {
|
|
784
817
|
elementId: widgetElementId,
|
|
785
818
|
channel: ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.widgetInstanceId) ?? "lcw",
|
|
786
|
-
disabled: ((_props$draggableChatW = props.draggableChatWidgetProps) === null || _props$draggableChatW === void 0 ? void 0 : _props$draggableChatW.disabled)
|
|
819
|
+
disabled: ((_props$draggableChatW = props.draggableChatWidgetProps) === null || _props$draggableChatW === void 0 ? void 0 : _props$draggableChatW.disabled) !== true // Draggable by default, unless explicitly disabled
|
|
787
820
|
};
|
|
788
821
|
|
|
789
822
|
// Disable receiving IDraggableEvent in current window
|
|
@@ -6,19 +6,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.LoadingPaneStateful = void 0;
|
|
7
7
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _utils = require("../../common/utils");
|
|
9
10
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
10
11
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
11
12
|
var _defaultgeneralLoadingPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralLoadingPaneStyleProps");
|
|
12
|
-
var
|
|
13
|
+
var _errorUILoadingPaneStyleProps = require("./common/errorUIStyleProps/errorUILoadingPaneStyleProps");
|
|
13
14
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
14
15
|
var _useWindowDimensions = _interopRequireDefault(require("../../hooks/useWindowDimensions"));
|
|
15
|
-
var _errorUILoadingPaneStyleProps = require("./common/errorUIStyleProps/errorUILoadingPaneStyleProps");
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
19
|
+
let uiTimer;
|
|
20
|
+
|
|
19
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
22
|
const LoadingPaneStateful = props => {
|
|
21
23
|
var _loadingPaneProps$sty, _startChatErrorPanePr, _startChatErrorPanePr2;
|
|
24
|
+
(0, _react.useEffect)(() => {
|
|
25
|
+
uiTimer = (0, _utils.createTimer)();
|
|
26
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
27
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLoadingPaneStart
|
|
28
|
+
});
|
|
29
|
+
}, []);
|
|
22
30
|
const [state] = (0, _useChatContextStore.default)();
|
|
23
31
|
const {
|
|
24
32
|
loadingPaneProps,
|
|
@@ -61,6 +69,16 @@ const LoadingPaneStateful = props => {
|
|
|
61
69
|
Event: _TelemetryConstants.TelemetryEvent.LoadingPaneLoaded,
|
|
62
70
|
Description: "Loading pane loaded."
|
|
63
71
|
});
|
|
72
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
73
|
+
Event: _TelemetryConstants.TelemetryEvent.UXLoadingPaneCompleted,
|
|
74
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
75
|
+
});
|
|
76
|
+
return () => {
|
|
77
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
78
|
+
Event: _TelemetryConstants.TelemetryEvent.LoadingPaneUnloaded,
|
|
79
|
+
Description: "Loading pane unmount."
|
|
80
|
+
});
|
|
81
|
+
};
|
|
64
82
|
}, []);
|
|
65
83
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.LoadingPane, {
|
|
66
84
|
componentOverrides: loadingPaneProps === null || loadingPaneProps === void 0 ? void 0 : loadingPaneProps.componentOverrides,
|
|
@@ -4,23 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.NotificationPaneStateful = void 0;
|
|
7
|
+
var _Constants = require("../../common/Constants");
|
|
8
|
+
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
7
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
8
11
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
9
|
-
var _botframeworkWebchat = require("botframework-webchat");
|
|
10
12
|
var _NotificationScenarios = require("../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
|
|
11
|
-
var _useChatAdapterStore = _interopRequireDefault(require("../../hooks/useChatAdapterStore"));
|
|
12
|
-
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
13
13
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
14
|
-
var
|
|
15
|
-
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
16
|
-
var _Constants = require("../../common/Constants");
|
|
17
|
-
var _defaultChatDisconnectStyleProps = require("./defaultProps/defaultChatDisconnectStyleProps");
|
|
14
|
+
var _utils = require("../../common/utils");
|
|
18
15
|
var _defaultChatDisconnectControlProps = require("./defaultProps/defaultChatDisconnectControlProps");
|
|
16
|
+
var _defaultChatDisconnectStyleProps = require("./defaultProps/defaultChatDisconnectStyleProps");
|
|
17
|
+
var _botframeworkWebchat = require("botframework-webchat");
|
|
18
|
+
var _useChatAdapterStore = _interopRequireDefault(require("../../hooks/useChatAdapterStore"));
|
|
19
|
+
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
19
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
21
|
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); }
|
|
21
22
|
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; }
|
|
23
|
+
let uiTimer;
|
|
22
24
|
const NotificationPaneStateful = props => {
|
|
23
25
|
var _state$domainStates, _state$domainStates3;
|
|
26
|
+
(0, _react.useEffect)(() => {
|
|
27
|
+
uiTimer = (0, _utils.createTimer)();
|
|
28
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
29
|
+
Event: _TelemetryConstants.TelemetryEvent.UXNotificationPaneStart
|
|
30
|
+
});
|
|
31
|
+
}, []);
|
|
24
32
|
const {
|
|
25
33
|
notificationPaneProps,
|
|
26
34
|
notificationScenarioType,
|
|
@@ -170,6 +178,12 @@ const NotificationPaneStateful = props => {
|
|
|
170
178
|
// TODO additional scenarios to be added...
|
|
171
179
|
}
|
|
172
180
|
|
|
181
|
+
(0, _react.useEffect)(() => {
|
|
182
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
183
|
+
Event: _TelemetryConstants.TelemetryEvent.UXNotificationPaneCompleted,
|
|
184
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
185
|
+
});
|
|
186
|
+
}, []);
|
|
173
187
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.NotificationPane, genericPropsObj);
|
|
174
188
|
};
|
|
175
189
|
exports.NotificationPaneStateful = NotificationPaneStateful;
|