@microsoft/omnichannel-chat-widget 1.7.4 → 1.7.5
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/telemetry/TelemetryConstants.js +31 -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 +12 -0
- package/lib/cjs/components/footerstateful/FooterStateful.js +15 -0
- package/lib/cjs/components/headerstateful/HeaderStateful.js +16 -2
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +7 -7
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +35 -2
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +14 -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/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/index.js +115 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.js +3 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +3 -4
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/toastMiddleware.js +2 -3
- package/lib/cjs/index.js +25 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +31 -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 +13 -1
- package/lib/esm/components/footerstateful/FooterStateful.js +14 -0
- package/lib/esm/components/headerstateful/HeaderStateful.js +16 -2
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +4 -4
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +35 -2
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +13 -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/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/index.js +10 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.js +2 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/toastMiddleware.js +2 -3
- package/lib/esm/index.js +2 -1
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +32 -1
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -0
- package/lib/types/common/telemetry/definitions/Payload.d.ts +13 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.d.ts +1 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/index.d.ts +10 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.d.ts +1 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +1 -2
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/toastMiddleware.d.ts +1 -2
- package/lib/types/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -17,9 +17,17 @@ var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatCo
|
|
|
17
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
18
|
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
19
|
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
|
+
let uiTimer;
|
|
21
|
+
|
|
20
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
23
|
const ProactiveChatPaneStateful = props => {
|
|
22
24
|
var _proactiveChatProps$c;
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
uiTimer = (0, _utils.createTimer)();
|
|
27
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
28
|
+
Event: _TelemetryConstants.TelemetryEvent.UXProactiveChatPaneStart
|
|
29
|
+
});
|
|
30
|
+
}, []);
|
|
23
31
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
24
32
|
const {
|
|
25
33
|
proactiveChatProps,
|
|
@@ -121,6 +129,10 @@ const ProactiveChatPaneStateful = props => {
|
|
|
121
129
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
122
130
|
Event: _TelemetryConstants.TelemetryEvent.ProactiveChatPaneLoaded
|
|
123
131
|
});
|
|
132
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
133
|
+
Event: _TelemetryConstants.TelemetryEvent.UXProactiveChatCompleted,
|
|
134
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
135
|
+
});
|
|
124
136
|
return () => {
|
|
125
137
|
clearTimeout(timeoutEvent);
|
|
126
138
|
};
|
|
@@ -6,17 +6,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.ReconnectChatPaneStateful = 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 _ConversationState = require("../../contexts/common/ConversationState");
|
|
10
11
|
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
11
12
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
12
13
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
13
|
-
var _utils = require("../../common/utils");
|
|
14
14
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
15
15
|
var _useFacadeChatSDKStore = _interopRequireDefault(require("../../hooks/useFacadeChatSDKStore"));
|
|
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;
|
|
19
20
|
const ReconnectChatPaneStateful = props => {
|
|
21
|
+
(0, _react.useEffect)(() => {
|
|
22
|
+
uiTimer = (0, _utils.createTimer)();
|
|
23
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
24
|
+
Event: _TelemetryConstants.TelemetryEvent.UXReconnectChatPaneStart,
|
|
25
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
26
|
+
});
|
|
27
|
+
}, []);
|
|
20
28
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
21
29
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
30
|
//const chatSDK: any = useChatSDKStore();
|
|
@@ -100,6 +108,9 @@ const ReconnectChatPaneStateful = props => {
|
|
|
100
108
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
101
109
|
Event: _TelemetryConstants.TelemetryEvent.ReconnectChatPaneLoaded
|
|
102
110
|
});
|
|
111
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
112
|
+
Event: _TelemetryConstants.TelemetryEvent.UXReconnectChatCompleted
|
|
113
|
+
});
|
|
103
114
|
}, []);
|
|
104
115
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.ReconnectChatPane, {
|
|
105
116
|
componentOverrides: reconnectChatProps === null || reconnectChatProps === void 0 ? void 0 : reconnectChatProps.componentOverrides,
|
|
@@ -4,24 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.StartChatErrorPaneStateful = void 0;
|
|
7
|
+
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
7
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
9
9
|
var _utils = require("../../common/utils");
|
|
10
|
-
var
|
|
10
|
+
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
|
+
var _Constants = require("../../common/Constants");
|
|
12
|
+
var _StartChatFailureType = require("../../contexts/common/StartChatFailureType");
|
|
11
13
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
12
|
-
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
13
14
|
var _defaultStartChatErrorPaneGeneralStyleProps = require("./common/defaultStartChatErrorPaneGeneralStyleProps");
|
|
14
|
-
var _defaultStartChatErrorPaneTitleStyleProps = require("./common/defaultStartChatErrorPaneTitleStyleProps");
|
|
15
|
-
var _defaultStartChatErrorPaneSubtitleStyleProps = require("./common/defaultStartChatErrorPaneSubtitleStyleProps");
|
|
16
|
-
var _defaultStartChatErrorPaneIconStyleProps = require("./common/defaultStartChatErrorPaneIconStyleProps");
|
|
17
15
|
var _defaultStartChatErrorPaneIconImageProps = require("./common/defaultStartChatErrorPaneIconImageProps");
|
|
18
|
-
var
|
|
19
|
-
var
|
|
16
|
+
var _defaultStartChatErrorPaneIconStyleProps = require("./common/defaultStartChatErrorPaneIconStyleProps");
|
|
17
|
+
var _defaultStartChatErrorPaneSubtitleStyleProps = require("./common/defaultStartChatErrorPaneSubtitleStyleProps");
|
|
18
|
+
var _defaultStartChatErrorPaneTitleStyleProps = require("./common/defaultStartChatErrorPaneTitleStyleProps");
|
|
19
|
+
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
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 StartChatErrorPaneStateful = startChatErrorPaneProps => {
|
|
24
25
|
var _startChatErrorPanePr, _startChatErrorPanePr2, _startChatErrorPanePr3, _startChatErrorPanePr4, _startChatErrorPanePr5, _startChatErrorPanePr6, _startChatErrorPanePr7, _startChatErrorPanePr8, _startChatErrorPanePr9, _startChatErrorPanePr10, _startChatErrorPanePr11;
|
|
26
|
+
(0, _react.useEffect)(() => {
|
|
27
|
+
uiTimer = (0, _utils.createTimer)();
|
|
28
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
29
|
+
Event: _TelemetryConstants.TelemetryEvent.UXStartChatErrorPaneStart
|
|
30
|
+
});
|
|
31
|
+
}, []);
|
|
25
32
|
const [state] = (0, _useChatContextStore.default)();
|
|
26
33
|
const generalStyleProps = Object.assign({}, _defaultStartChatErrorPaneGeneralStyleProps.defaultStartChatErrorPaneGeneralStyleProps, startChatErrorPaneProps === null || startChatErrorPaneProps === void 0 ? void 0 : (_startChatErrorPanePr = startChatErrorPaneProps.styleProps) === null || _startChatErrorPanePr === void 0 ? void 0 : _startChatErrorPanePr.generalStyleProps);
|
|
27
34
|
const titleStyleProps = Object.assign({}, _defaultStartChatErrorPaneTitleStyleProps.defaultStartChatErrorPaneTitleStyleProps, startChatErrorPaneProps === null || startChatErrorPaneProps === void 0 ? void 0 : (_startChatErrorPanePr2 = startChatErrorPaneProps.styleProps) === null || _startChatErrorPanePr2 === void 0 ? void 0 : _startChatErrorPanePr2.titleStyleProps);
|
|
@@ -70,6 +77,10 @@ const StartChatErrorPaneStateful = startChatErrorPaneProps => {
|
|
|
70
77
|
Event: _TelemetryConstants.TelemetryEvent.StartChatErrorPaneLoaded,
|
|
71
78
|
Description: "Start chat error pane loaded."
|
|
72
79
|
});
|
|
80
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
81
|
+
Event: _TelemetryConstants.TelemetryEvent.UXStartChatErrorCompleted,
|
|
82
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
83
|
+
});
|
|
73
84
|
}, []);
|
|
74
85
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.LoadingPane, {
|
|
75
86
|
componentOverrides: startChatErrorPaneProps === null || startChatErrorPaneProps === void 0 ? void 0 : startChatErrorPaneProps.componentOverrides,
|
|
@@ -7,6 +7,7 @@ exports.default = exports.WebChatContainerStateful = void 0;
|
|
|
7
7
|
var _react = require("@fluentui/react");
|
|
8
8
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
9
9
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _utils = require("../../common/utils");
|
|
10
11
|
var _BotMagicCodeStore = require("./webchatcontroller/BotMagicCodeStore");
|
|
11
12
|
var _botframeworkWebchat = require("botframework-webchat");
|
|
12
13
|
var _Constants = require("../../common/Constants");
|
|
@@ -23,12 +24,12 @@ var _defaultSentMessageAnchorStyles = require("./webchatcontroller/middlewares/r
|
|
|
23
24
|
var _defaultSystemMessageBoxStyles = require("./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles");
|
|
24
25
|
var _defaultUserMessageBoxStyles = require("./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles");
|
|
25
26
|
var _defaultWebChatContainerStatefulProps = require("./common/defaultProps/defaultWebChatContainerStatefulProps");
|
|
26
|
-
var _utils = require("../../common/utils");
|
|
27
27
|
var _ = require("../..");
|
|
28
28
|
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); }
|
|
29
29
|
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; }
|
|
30
30
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
31
31
|
|
|
32
|
+
let uiTimer;
|
|
32
33
|
const broadcastChannelMessageEvent = "message";
|
|
33
34
|
const postActivity = activity => {
|
|
34
35
|
// eslint-disable-line @typescript-eslint/no-explicit-any
|
|
@@ -56,6 +57,12 @@ const createMagicCodeSuccessResponse = signin => {
|
|
|
56
57
|
};
|
|
57
58
|
const WebChatContainerStateful = props => {
|
|
58
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;
|
|
60
|
+
(0, _react2.useEffect)(() => {
|
|
61
|
+
uiTimer = (0, _utils.createTimer)();
|
|
62
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
63
|
+
Event: _TelemetryConstants.TelemetryEvent.UXWebchatContainerCompleted
|
|
64
|
+
});
|
|
65
|
+
}, []);
|
|
59
66
|
const {
|
|
60
67
|
BasicWebChat
|
|
61
68
|
} = _botframeworkWebchat.Components;
|
|
@@ -151,6 +158,12 @@ const WebChatContainerStateful = props => {
|
|
|
151
158
|
};
|
|
152
159
|
magicCodeBroadcastChannel.addEventListener(broadcastChannelMessageEvent, eventListener);
|
|
153
160
|
}, []);
|
|
161
|
+
(0, _react2.useEffect)(() => {
|
|
162
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
163
|
+
Event: _TelemetryConstants.TelemetryEvent.UXWebchatContainerCompleted,
|
|
164
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
165
|
+
});
|
|
166
|
+
}, []);
|
|
154
167
|
return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("style", null, `
|
|
155
168
|
.webchat__stacked-layout__content .ac-pushButton {
|
|
156
169
|
cursor: pointer;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createAttachmentMiddleware = void 0;
|
|
7
7
|
var _Constants = require("../../../../../common/Constants");
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _FileAttachmentIconManager = require("../../../common/utils/FileAttachmentIconManager");
|
|
@@ -199,5 +199,4 @@ const createAttachmentMiddleware = enableInlinePlaying => {
|
|
|
199
199
|
};
|
|
200
200
|
return attachmentMiddleware;
|
|
201
201
|
};
|
|
202
|
-
|
|
203
|
-
exports.default = _default;
|
|
202
|
+
exports.createAttachmentMiddleware = createAttachmentMiddleware;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _activityMiddleware = require("./activityMiddleware");
|
|
7
|
+
Object.keys(_activityMiddleware).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _activityMiddleware[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _activityMiddleware[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _activityStatusMiddleware = require("./activityStatusMiddleware");
|
|
18
|
+
Object.keys(_activityStatusMiddleware).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _activityStatusMiddleware[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _activityStatusMiddleware[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _attachmentMiddleware = require("./attachmentMiddleware");
|
|
29
|
+
Object.keys(_attachmentMiddleware).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _attachmentMiddleware[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _attachmentMiddleware[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _avatarMiddleware = require("./avatarMiddleware");
|
|
40
|
+
Object.keys(_avatarMiddleware).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _avatarMiddleware[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _avatarMiddleware[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var _cardActionMiddleware = require("./cardActionMiddleware");
|
|
51
|
+
Object.keys(_cardActionMiddleware).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _cardActionMiddleware[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _cardActionMiddleware[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
var _groupActivitiesMiddleware = require("./groupActivitiesMiddleware");
|
|
62
|
+
Object.keys(_groupActivitiesMiddleware).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _groupActivitiesMiddleware[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _groupActivitiesMiddleware[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
var _messageSequenceIdOverrideMiddleware = require("./messageSequenceIdOverrideMiddleware");
|
|
73
|
+
Object.keys(_messageSequenceIdOverrideMiddleware).forEach(function (key) {
|
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
|
75
|
+
if (key in exports && exports[key] === _messageSequenceIdOverrideMiddleware[key]) return;
|
|
76
|
+
Object.defineProperty(exports, key, {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
get: function () {
|
|
79
|
+
return _messageSequenceIdOverrideMiddleware[key];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
var _messageTimestampMiddleware = require("./messageTimestampMiddleware");
|
|
84
|
+
Object.keys(_messageTimestampMiddleware).forEach(function (key) {
|
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
|
86
|
+
if (key in exports && exports[key] === _messageTimestampMiddleware[key]) return;
|
|
87
|
+
Object.defineProperty(exports, key, {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return _messageTimestampMiddleware[key];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
var _toastMiddleware = require("./toastMiddleware");
|
|
95
|
+
Object.keys(_toastMiddleware).forEach(function (key) {
|
|
96
|
+
if (key === "default" || key === "__esModule") return;
|
|
97
|
+
if (key in exports && exports[key] === _toastMiddleware[key]) return;
|
|
98
|
+
Object.defineProperty(exports, key, {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () {
|
|
101
|
+
return _toastMiddleware[key];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
var _typingIndicatorMiddleware = require("./typingIndicatorMiddleware");
|
|
106
|
+
Object.keys(_typingIndicatorMiddleware).forEach(function (key) {
|
|
107
|
+
if (key === "default" || key === "__esModule") return;
|
|
108
|
+
if (key in exports && exports[key] === _typingIndicatorMiddleware[key]) return;
|
|
109
|
+
Object.defineProperty(exports, key, {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
get: function () {
|
|
112
|
+
return _typingIndicatorMiddleware[key];
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createMessageSequenceIdOverrideMiddleware = void 0;
|
|
7
7
|
var _WebChatActionType = require("../../enums/WebChatActionType");
|
|
8
8
|
var _Constants = require("../../../../../common/Constants");
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
|
|
@@ -18,6 +18,7 @@ const createMessageSequenceIdOverrideMiddleware = _ref => {
|
|
|
18
18
|
return next(action);
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
+
exports.createMessageSequenceIdOverrideMiddleware = createMessageSequenceIdOverrideMiddleware;
|
|
21
22
|
const isApplicable = action => {
|
|
22
23
|
return action.type === _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isValidChannel(action) && isWebSequenceIdPresent(action) && lookupOriginalMessageId(action) !== undefined;
|
|
23
24
|
};
|
|
@@ -60,6 +61,4 @@ const extractOriginalMessageId = action => {
|
|
|
60
61
|
const lookupOriginalMessageId = action => {
|
|
61
62
|
var _action$payload4, _action$payload4$acti, _action$payload4$acti2, _action$payload4$acti3;
|
|
62
63
|
return action === null || action === void 0 ? void 0 : (_action$payload4 = action.payload) === null || _action$payload4 === void 0 ? void 0 : (_action$payload4$acti = _action$payload4.activity) === null || _action$payload4$acti === void 0 ? void 0 : (_action$payload4$acti2 = _action$payload4$acti.channelData) === null || _action$payload4$acti2 === void 0 ? void 0 : (_action$payload4$acti3 = _action$payload4$acti2.metadata) === null || _action$payload4$acti3 === void 0 ? void 0 : _action$payload4$acti3.OriginalMessageId;
|
|
63
|
-
};
|
|
64
|
-
var _default = createMessageSequenceIdOverrideMiddleware;
|
|
65
|
-
exports.default = _default;
|
|
64
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createMessageTimeStampMiddleware = void 0;
|
|
7
7
|
var _WebChatActionType = require("../../enums/WebChatActionType");
|
|
8
8
|
var _Constants = require("../../../../../common/Constants");
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
|
|
@@ -18,6 +18,7 @@ const createMessageTimeStampMiddleware = _ref => {
|
|
|
18
18
|
return next(action);
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
+
exports.createMessageTimeStampMiddleware = createMessageTimeStampMiddleware;
|
|
21
22
|
const isApplicable = action => {
|
|
22
23
|
return action.type === _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isPVAConversation(action) && isPayloadValid(action) && isValidChannel(action);
|
|
23
24
|
};
|
|
@@ -84,6 +85,4 @@ const tagLookup = (action, tag) => {
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
return null;
|
|
87
|
-
};
|
|
88
|
-
var _default = createMessageTimeStampMiddleware;
|
|
89
|
-
exports.default = _default;
|
|
88
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createToastMiddleware = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _NotificationScenarios = require("../../enums/NotificationScenarios");
|
|
9
9
|
var _NotificationPaneStateful = _interopRequireDefault(require("../../../../notificationpanestateful/NotificationPaneStateful"));
|
|
@@ -31,5 +31,4 @@ const createToastMiddleware = (notificationPaneProps, endChat) => {
|
|
|
31
31
|
};
|
|
32
32
|
return toastMiddleware;
|
|
33
33
|
};
|
|
34
|
-
|
|
35
|
-
exports.default = _default;
|
|
34
|
+
exports.createToastMiddleware = createToastMiddleware;
|
package/lib/cjs/index.js
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
BroadcastService: true,
|
|
8
|
+
decodeComponentString: true,
|
|
9
|
+
encodeComponentString: true,
|
|
10
|
+
getWidgetCacheId: true,
|
|
11
|
+
getWidgetEndChatEventName: true,
|
|
12
|
+
ConversationState: true,
|
|
13
|
+
useChatContextStore: true,
|
|
14
|
+
useChatSDKStore: true,
|
|
15
|
+
useFacadeChatSDKStore: true,
|
|
16
|
+
LiveChatWidget: true,
|
|
17
|
+
getMockChatSDKIfApplicable: true
|
|
18
|
+
};
|
|
6
19
|
Object.defineProperty(exports, "BroadcastService", {
|
|
7
20
|
enumerable: true,
|
|
8
21
|
get: function () {
|
|
@@ -77,4 +90,16 @@ var _useChatSDKStore = _interopRequireDefault(require("./hooks/useChatSDKStore")
|
|
|
77
90
|
var _useFacadeChatSDKStore = _interopRequireDefault(require("./hooks/useFacadeChatSDKStore"));
|
|
78
91
|
var _LiveChatWidget = _interopRequireDefault(require("./components/livechatwidget/LiveChatWidget"));
|
|
79
92
|
var _getMockChatSDKIfApplicable = require("./components/livechatwidget/common/getMockChatSDKIfApplicable");
|
|
93
|
+
var _renderingmiddlewares = require("./components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares");
|
|
94
|
+
Object.keys(_renderingmiddlewares).forEach(function (key) {
|
|
95
|
+
if (key === "default" || key === "__esModule") return;
|
|
96
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
97
|
+
if (key in exports && exports[key] === _renderingmiddlewares[key]) return;
|
|
98
|
+
Object.defineProperty(exports, key, {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () {
|
|
101
|
+
return _renderingmiddlewares[key];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
80
105
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -167,6 +167,7 @@ export let TelemetryEvent;
|
|
|
167
167
|
TelemetryEvent["SetBotAuthProviderNotFound"] = "SetBotAuthProviderNotFound";
|
|
168
168
|
TelemetryEvent["BotAuthActivityUndefinedSignInId"] = "BotAuthActivityUndefinedSignInId";
|
|
169
169
|
TelemetryEvent["ThirdPartyCookiesBlocked"] = "ThirdPartyCookiesBlocked";
|
|
170
|
+
TelemetryEvent["ParticipantsRemovedEvent"] = "ParticipantsRemovedEvent";
|
|
170
171
|
TelemetryEvent["ProcessingHTMLTextMiddlewareFailed"] = "ProcessingHTMLTextMiddlewareFailed";
|
|
171
172
|
TelemetryEvent["ProcessingSanitizationMiddlewareFailed"] = "ProcessingSanitizationMiddlewareFailed";
|
|
172
173
|
TelemetryEvent["FormatTagsMiddlewareJSONStringifyFailed"] = "FormatTagsMiddlewareJSONStringifyFailed";
|
|
@@ -218,6 +219,36 @@ export let TelemetryEvent;
|
|
|
218
219
|
TelemetryEvent["NewTokenFailed"] = "NewTokenFailed";
|
|
219
220
|
TelemetryEvent["NewTokenExpired"] = "NewTokenExpired";
|
|
220
221
|
TelemetryEvent["TokenEmptyOrSame"] = "TokenEmptyOrSame";
|
|
222
|
+
TelemetryEvent["UXFooterStart"] = "UXFooterStart";
|
|
223
|
+
TelemetryEvent["UXFooterCompleted"] = "UXFooterCompleted";
|
|
224
|
+
TelemetryEvent["UXHeaderStart"] = "UXHeaderStart";
|
|
225
|
+
TelemetryEvent["UXHeaderCompleted"] = "UXHeaderCompleted";
|
|
226
|
+
TelemetryEvent["UXLoadingPaneStart"] = "UXLoadingPaneStart";
|
|
227
|
+
TelemetryEvent["UXLoadingPaneCompleted"] = "UXLoadingPaneCompleted";
|
|
228
|
+
TelemetryEvent["UXNotificationPaneStart"] = "UXNotificationPaneStart";
|
|
229
|
+
TelemetryEvent["UXNotificationPaneCompleted"] = "UXNotificationPaneCompleted";
|
|
230
|
+
TelemetryEvent["UXOOHPaneStart"] = "UXOOHPaneStart";
|
|
231
|
+
TelemetryEvent["UXOOHPaneCompleted"] = "UXOOHPaneCompleted";
|
|
232
|
+
TelemetryEvent["UXPostChatLoadingPaneStart"] = "UXPostChatLoadingPaneStart";
|
|
233
|
+
TelemetryEvent["UXPostChatLoadingPaneCompleted"] = "UXPostChatLoadingPaneCompleted";
|
|
234
|
+
TelemetryEvent["UXPrechatPaneStart"] = "UXPrechatPaneStart";
|
|
235
|
+
TelemetryEvent["UXPrechatPaneCompleted"] = "UXPrechatPaneCompleted";
|
|
236
|
+
TelemetryEvent["UXProactiveChatPaneStart"] = "UXProactiveChatPaneStart";
|
|
237
|
+
TelemetryEvent["UXProactiveChatCompleted"] = "UXProactiveChatCompleted";
|
|
238
|
+
TelemetryEvent["UXReconnectChatPaneStart"] = "UXReconnectChatPaneStart";
|
|
239
|
+
TelemetryEvent["UXReconnectChatCompleted"] = "UXReconnectChatCompleted";
|
|
240
|
+
TelemetryEvent["UXStartChatErrorPaneStart"] = "UXStartChatErrorPaneStart";
|
|
241
|
+
TelemetryEvent["UXStartChatErrorCompleted"] = "UXStartChatErrorCompleted";
|
|
242
|
+
TelemetryEvent["UXEmailTranscriptPaneStart"] = "UXEmailTranscriptPaneStart";
|
|
243
|
+
TelemetryEvent["UXEmailTranscriptPaneCompleted"] = "UXEmailTranscriptPaneCompleted";
|
|
244
|
+
TelemetryEvent["UXWebchatContainerStart"] = "UXWebchatContainerStart";
|
|
245
|
+
TelemetryEvent["UXWebchatContainerCompleted"] = "UXWebchatContainerCompleted";
|
|
246
|
+
TelemetryEvent["UXLCWChatButtonStart"] = "UXLCWChatButtonStart";
|
|
247
|
+
TelemetryEvent["UXLCWChatButtonCompleted"] = "UXLCWChatButtonCompleted";
|
|
248
|
+
TelemetryEvent["UXConfirmationPaneStart"] = "UXConfirmationPaneStart";
|
|
249
|
+
TelemetryEvent["UXConfirmationPaneCompleted"] = "UXConfirmationPaneCompleted";
|
|
250
|
+
TelemetryEvent["UXLivechatwidgetStart"] = "UXLivechatwidgetStart";
|
|
251
|
+
TelemetryEvent["UXLivechatwidgetCompleted"] = "UXLivechatwidgetCompleted";
|
|
221
252
|
})(TelemetryEvent || (TelemetryEvent = {}));
|
|
222
253
|
export class TelemetryConstants {
|
|
223
254
|
static map(eventTypeOrScenarioType) {
|
|
@@ -213,6 +213,16 @@ _defineProperty(TelemetryHelper, "logLoadingEvent", (logLevel, payload) => {
|
|
|
213
213
|
};
|
|
214
214
|
BroadcastService.postMessage(telemetryEvent);
|
|
215
215
|
});
|
|
216
|
+
_defineProperty(TelemetryHelper, "logUIEvent", (logLevel, payload) => {
|
|
217
|
+
const telemetryEvent = {
|
|
218
|
+
eventName: (payload === null || payload === void 0 ? void 0 : payload.Event) ?? "",
|
|
219
|
+
logLevel: logLevel,
|
|
220
|
+
payload: {
|
|
221
|
+
...payload
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
BroadcastService.postMessage(telemetryEvent);
|
|
225
|
+
});
|
|
216
226
|
_defineProperty(TelemetryHelper, "logActionEvent", (logLevel, payload) => {
|
|
217
227
|
const telemetryEvent = {
|
|
218
228
|
eventName: (payload === null || payload === void 0 ? void 0 : payload.Event) ?? "",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LogLevel, TelemetryEvent } from "../../common/telemetry/TelemetryConstants";
|
|
2
2
|
import React, { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { createTimer, setFocusOnElement } from "../../common/utils";
|
|
3
4
|
import { ChatButton } from "@microsoft/omnichannel-chat-components";
|
|
4
5
|
import { Constants } from "../../common/Constants";
|
|
5
6
|
import { ConversationState } from "../../contexts/common/ConversationState";
|
|
@@ -7,10 +8,19 @@ import { LiveChatWidgetActionType } from "../../contexts/common/LiveChatWidgetAc
|
|
|
7
8
|
import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
|
|
8
9
|
import { TelemetryTimers } from "../../common/telemetry/TelemetryManager";
|
|
9
10
|
import { defaultOutOfOfficeChatButtonStyleProps } from "./common/styleProps/defaultOutOfOfficeChatButtonStyleProps";
|
|
10
|
-
import { setFocusOnElement } from "../../common/utils";
|
|
11
11
|
import useChatContextStore from "../../hooks/useChatContextStore";
|
|
12
|
+
let uiTimer;
|
|
12
13
|
export const ChatButtonStateful = props => {
|
|
13
14
|
var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP, _props$buttonProps, _props$buttonProps$co, _props$buttonProps2, _props$buttonProps2$c, _props$buttonProps3, _props$buttonProps3$c;
|
|
15
|
+
// this is to ensure the telemetry is set only once and start the load timer
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
uiTimer = createTimer();
|
|
18
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
19
|
+
Event: TelemetryEvent.UXLCWChatButtonStart
|
|
20
|
+
});
|
|
21
|
+
}, []);
|
|
22
|
+
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
24
|
const [state, dispatch] = useChatContextStore();
|
|
15
25
|
const {
|
|
16
26
|
buttonProps,
|
|
@@ -92,6 +102,10 @@ export const ChatButtonStateful = props => {
|
|
|
92
102
|
payload: true
|
|
93
103
|
});
|
|
94
104
|
}
|
|
105
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
106
|
+
Event: TelemetryEvent.UXLCWChatButtonCompleted,
|
|
107
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
108
|
+
});
|
|
95
109
|
}, []);
|
|
96
110
|
return /*#__PURE__*/React.createElement(ChatButton, {
|
|
97
111
|
componentOverrides: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.componentOverrides,
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { LogLevel, TelemetryEvent } from "../../common/telemetry/TelemetryConstants";
|
|
2
|
-
import { ConfirmationPane } from "@microsoft/omnichannel-chat-components";
|
|
3
2
|
import React, { useEffect } from "react";
|
|
4
|
-
import { findAllFocusableElement, findParentFocusableElementsWithoutChildContainer, preventFocusToMoveOutOfElement, setFocusOnElement, setFocusOnSendBox, setTabIndices } from "../../common/utils";
|
|
3
|
+
import { createTimer, findAllFocusableElement, findParentFocusableElementsWithoutChildContainer, preventFocusToMoveOutOfElement, setFocusOnElement, setFocusOnSendBox, setTabIndices } from "../../common/utils";
|
|
4
|
+
import { ConfirmationPane } from "@microsoft/omnichannel-chat-components";
|
|
5
|
+
import { ConfirmationState } from "../../common/Constants";
|
|
5
6
|
import { DimLayer } from "../dimlayer/DimLayer";
|
|
6
7
|
import { LiveChatWidgetActionType } from "../../contexts/common/LiveChatWidgetActionType";
|
|
7
8
|
import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
|
|
8
9
|
import useChatContextStore from "../../hooks/useChatContextStore";
|
|
9
|
-
|
|
10
|
+
let uiTimer;
|
|
10
11
|
|
|
11
12
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
13
|
export const ConfirmationPaneStateful = props => {
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
uiTimer = createTimer();
|
|
16
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
17
|
+
Event: TelemetryEvent.UXConfirmationPaneStart
|
|
18
|
+
});
|
|
19
|
+
}, []);
|
|
13
20
|
const initialTabIndexMap = new Map();
|
|
14
21
|
let elements = [];
|
|
15
22
|
const [state, dispatch] = useChatContextStore();
|
|
@@ -76,6 +83,10 @@ export const ConfirmationPaneStateful = props => {
|
|
|
76
83
|
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
77
84
|
Event: TelemetryEvent.ConfirmationPaneLoaded
|
|
78
85
|
});
|
|
86
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
87
|
+
Event: TelemetryEvent.UXConfirmationPaneCompleted,
|
|
88
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
89
|
+
});
|
|
79
90
|
}, []);
|
|
80
91
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DimLayer, {
|
|
81
92
|
brightness: (controlProps === null || controlProps === void 0 ? void 0 : controlProps.brightnessValueOnDim) ?? "0.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LogLevel, TelemetryEvent } from "../../common/telemetry/TelemetryConstants";
|
|
2
2
|
import React, { useCallback, useEffect, useState } from "react";
|
|
3
|
-
import { findAllFocusableElement, findParentFocusableElementsWithoutChildContainer, formatTemplateString, preventFocusToMoveOutOfElement, setFocusOnElement, setFocusOnSendBox, setTabIndices } from "../../common/utils";
|
|
3
|
+
import { createTimer, findAllFocusableElement, findParentFocusableElementsWithoutChildContainer, formatTemplateString, preventFocusToMoveOutOfElement, setFocusOnElement, setFocusOnSendBox, setTabIndices } from "../../common/utils";
|
|
4
4
|
import { DimLayer } from "../dimlayer/DimLayer";
|
|
5
5
|
import { InputValidationPane } from "@microsoft/omnichannel-chat-components";
|
|
6
6
|
import { LiveChatWidgetActionType } from "../../contexts/common/LiveChatWidgetActionType";
|
|
@@ -11,8 +11,16 @@ import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
|
|
|
11
11
|
import { defaultMiddlewareLocalizedTexts } from "../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts";
|
|
12
12
|
import useChatContextStore from "../../hooks/useChatContextStore";
|
|
13
13
|
import useFacadeSDKStore from "../../hooks/useFacadeChatSDKStore";
|
|
14
|
+
let uiTimer;
|
|
14
15
|
export const EmailTranscriptPaneStateful = props => {
|
|
15
16
|
var _props$controlProps;
|
|
17
|
+
// this is to ensure the telemetry is set only once and start the load timer
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
uiTimer = createTimer();
|
|
20
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
21
|
+
Event: TelemetryEvent.UXEmailTranscriptPaneStart
|
|
22
|
+
});
|
|
23
|
+
}, []);
|
|
16
24
|
const initialTabIndexMap = new Map();
|
|
17
25
|
let elements = [];
|
|
18
26
|
const [state, dispatch] = useChatContextStore();
|
|
@@ -94,6 +102,10 @@ export const EmailTranscriptPaneStateful = props => {
|
|
|
94
102
|
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
95
103
|
Event: TelemetryEvent.EmailTranscriptLoaded
|
|
96
104
|
});
|
|
105
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
106
|
+
Event: TelemetryEvent.UXEmailTranscriptPaneCompleted,
|
|
107
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
108
|
+
});
|
|
97
109
|
}, [initialEmail]);
|
|
98
110
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DimLayer, {
|
|
99
111
|
brightness: (controlProps === null || controlProps === void 0 ? void 0 : controlProps.brightnessValueOnDim) ?? "0.2"
|
|
@@ -9,13 +9,21 @@ import { NewMessageNotificationSoundBase64 } from "../../assets/Audios";
|
|
|
9
9
|
import { NotificationHandler } from "../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler";
|
|
10
10
|
import { NotificationScenarios } from "../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios";
|
|
11
11
|
import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
|
|
12
|
+
import { createTimer } from "../../common/utils";
|
|
12
13
|
import { downloadTranscript } from "./downloadtranscriptstateful/DownloadTranscriptStateful";
|
|
13
14
|
import useChatContextStore from "../../hooks/useChatContextStore";
|
|
14
15
|
import useFacadeSDKStore from "../../hooks/useFacadeChatSDKStore";
|
|
16
|
+
let uiTimer;
|
|
15
17
|
|
|
16
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
19
|
export const FooterStateful = props => {
|
|
18
20
|
var _footerProps$controlP3;
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
uiTimer = createTimer();
|
|
23
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
24
|
+
Event: TelemetryEvent.UXFooterStart
|
|
25
|
+
});
|
|
26
|
+
}, []);
|
|
19
27
|
const [state, dispatch] = useChatContextStore();
|
|
20
28
|
// hideFooterDisplay - the purpose of this is to keep the footer always "active",
|
|
21
29
|
// but hide it visually in certain states (e.g., loading state) and show in some other states (e.g. active state).
|
|
@@ -92,6 +100,12 @@ export const FooterStateful = props => {
|
|
|
92
100
|
}
|
|
93
101
|
}
|
|
94
102
|
}, [state.appStates.conversationState]);
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
105
|
+
Event: TelemetryEvent.UXFooterCompleted,
|
|
106
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
107
|
+
});
|
|
108
|
+
}, []);
|
|
95
109
|
return /*#__PURE__*/React.createElement(React.Fragment, null, !hideFooterDisplay && /*#__PURE__*/React.createElement(Footer, {
|
|
96
110
|
componentOverrides: footerProps === null || footerProps === void 0 ? void 0 : footerProps.componentOverrides,
|
|
97
111
|
controlProps: controlProps,
|