@microsoft/omnichannel-chat-widget 1.7.5-main.290ba08 → 1.7.6-main.aac589b

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.
Files changed (71) hide show
  1. package/lib/cjs/common/telemetry/TelemetryConstants.js +32 -0
  2. package/lib/cjs/common/telemetry/TelemetryHelper.js +10 -0
  3. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +15 -1
  4. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +14 -2
  5. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +12 -0
  6. package/lib/cjs/components/footerstateful/FooterStateful.js +15 -0
  7. package/lib/cjs/components/headerstateful/HeaderStateful.js +16 -2
  8. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +36 -3
  9. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +20 -2
  10. package/lib/cjs/components/notificationpanestateful/NotificationPaneStateful.js +21 -7
  11. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +12 -1
  12. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +14 -3
  13. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +13 -0
  14. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +12 -0
  15. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +12 -1
  16. package/lib/cjs/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +19 -8
  17. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +14 -1
  18. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +2 -1
  19. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +1 -0
  20. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +7 -7
  21. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +4 -4
  22. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +7 -4
  23. package/lib/cjs/plugins/createChatTranscript.js +15 -6
  24. package/lib/esm/common/telemetry/TelemetryConstants.js +32 -0
  25. package/lib/esm/common/telemetry/TelemetryHelper.js +10 -0
  26. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +15 -1
  27. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +14 -3
  28. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +13 -1
  29. package/lib/esm/components/footerstateful/FooterStateful.js +14 -0
  30. package/lib/esm/components/headerstateful/HeaderStateful.js +16 -2
  31. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +36 -3
  32. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -2
  33. package/lib/esm/components/notificationpanestateful/NotificationPaneStateful.js +21 -7
  34. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +12 -1
  35. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +14 -3
  36. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +13 -1
  37. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +11 -0
  38. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +12 -1
  39. package/lib/esm/components/startchaterrorpanestateful/StartChatErrorPaneStateful.js +19 -8
  40. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +14 -1
  41. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +2 -1
  42. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +1 -0
  43. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +7 -7
  44. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +4 -4
  45. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +7 -4
  46. package/lib/esm/plugins/createChatTranscript.js +15 -6
  47. package/lib/types/common/telemetry/TelemetryConstants.d.ts +33 -1
  48. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -1
  49. package/lib/types/common/telemetry/definitions/Contracts.d.ts +1 -1
  50. package/lib/types/common/telemetry/definitions/Payload.d.ts +14 -1
  51. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  52. package/lib/types/components/footerstateful/downloadtranscriptstateful/interfaces/IWebChatTranscriptConfig.d.ts +1 -0
  53. package/lib/types/components/livechatwidget/common/authHelper.d.ts +1 -1
  54. package/lib/types/components/livechatwidget/common/createAdapter.d.ts +1 -1
  55. package/lib/types/components/livechatwidget/common/createDownloadTranscriptProps.d.ts +2 -1
  56. package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
  57. package/lib/types/components/livechatwidget/common/getMockChatSDKIfApplicable.d.ts +1 -1
  58. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +2 -2
  59. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  60. package/lib/types/components/livechatwidget/common/startChat.d.ts +2 -2
  61. package/lib/types/components/livechatwidget/common/startChatErrorHandler.d.ts +1 -1
  62. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
  63. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  64. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +1 -1
  65. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.d.ts +2 -1
  66. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -1
  67. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  68. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.d.ts +1 -1
  69. package/lib/types/hooks/useChatSDKStore.d.ts +1 -1
  70. package/lib/types/hooks/useDebounce.d.ts +1 -1
  71. package/package.json +17 -8
@@ -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)();
@@ -103,6 +111,10 @@ const EmailTranscriptPaneStateful = props => {
103
111
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
104
112
  Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptLoaded
105
113
  });
114
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
115
+ Event: _TelemetryConstants.TelemetryEvent.UXEmailTranscriptPaneCompleted,
116
+ ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
117
+ });
106
118
  }, [initialEmail]);
107
119
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_DimLayer.DimLayer, {
108
120
  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;
@@ -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)();
@@ -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$appSta6;
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$appSta6 = inMemoryState.appStates) === null || _inMemoryState$appSta6 === void 0 ? void 0 : _inMemoryState$appSta6.chatDisconnectEventReceived;
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) === true ?? false // Draggable by default, unless explicitly 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 _utils = require("../../common/utils");
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 _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
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;
@@ -6,16 +6,23 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = exports.OutOfOfficeHoursPaneStateful = 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 _defaultgeneralOOOHPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralOOOHPaneStyleProps");
12
- var _utils = require("../../common/utils");
13
13
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  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); }
16
16
  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; }
17
+ let uiTimer;
17
18
  const OutOfOfficeHoursPaneStateful = props => {
18
19
  var _props$styleProps;
20
+ (0, _react.useEffect)(() => {
21
+ uiTimer = (0, _utils.createTimer)();
22
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
23
+ Event: _TelemetryConstants.TelemetryEvent.UXOOHPaneStart
24
+ });
25
+ }, []);
19
26
  const [state] = (0, _useChatContextStore.default)();
20
27
  const generalStyleProps = Object.assign({}, _defaultgeneralOOOHPaneStyleProps.defaultGeneralStyleProps, (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyleProps);
21
28
  const styleProps = {
@@ -37,6 +44,10 @@ const OutOfOfficeHoursPaneStateful = props => {
37
44
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
38
45
  Event: _TelemetryConstants.TelemetryEvent.OutOfOfficePaneLoaded
39
46
  });
47
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
48
+ Event: _TelemetryConstants.TelemetryEvent.UXOOHPaneCompleted,
49
+ ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
50
+ });
40
51
  }, []);
41
52
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.OutOfOfficeHoursPane, {
42
53
  componentOverrides: props.componentOverrides,
@@ -4,18 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.PostChatLoadingPaneStateful = void 0;
7
+ var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _utils = require("../../common/utils");
8
10
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+ var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
9
12
  var _defaultgeneralPostChatLoadingPaneStyleProps = require("./common/defaultgeneralPostChatLoadingPaneStyleProps");
10
- var _utils = require("../../common/utils");
11
13
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
12
- var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
13
- var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  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); }
16
16
  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; }
17
+ let uiTimer;
17
18
  const PostChatLoadingPaneStateful = props => {
18
19
  var _props$styleProps;
20
+ (0, _react.useEffect)(() => {
21
+ uiTimer = (0, _utils.createTimer)();
22
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
23
+ Event: _TelemetryConstants.TelemetryEvent.UXPostChatLoadingPaneStart
24
+ });
25
+ }, []);
19
26
  const [state] = (0, _useChatContextStore.default)();
20
27
  const generalStyleProps = Object.assign({}, _defaultgeneralPostChatLoadingPaneStyleProps.defaultGeneralPostChatLoadingPaneStyleProps, (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyleProps);
21
28
  const styleProps = {
@@ -42,6 +49,10 @@ const PostChatLoadingPaneStateful = props => {
42
49
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
43
50
  Event: _TelemetryConstants.TelemetryEvent.PostChatSurveyLoadingPaneLoaded
44
51
  });
52
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
53
+ Event: _TelemetryConstants.TelemetryEvent.UXPostChatLoadingPaneCompleted,
54
+ ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
55
+ });
45
56
  }, []);
46
57
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.LoadingPane, {
47
58
  componentOverrides: props.componentOverrides,
@@ -19,9 +19,18 @@ var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatCo
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
+ let uiTimer;
23
+
22
24
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
25
  const PreChatSurveyPaneStateful = props => {
24
26
  var _surveyProps$stylePro, _props$surveyProps, _props$surveyProps$co;
27
+ (0, _react.useEffect)(() => {
28
+ uiTimer = (0, _utils.createTimer)();
29
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
30
+ Event: _TelemetryConstants.TelemetryEvent.UXPrechatPaneStart
31
+ });
32
+ }, []);
33
+
25
34
  // Set MarkDown global variable to be used for prechat adaptive cards
26
35
  window["markdownit"] = _markdownIt.default;
27
36
  const [state, dispatch] = (0, _useChatContextStore.default)();
@@ -144,6 +153,10 @@ const PreChatSurveyPaneStateful = props => {
144
153
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
145
154
  Event: _TelemetryConstants.TelemetryEvent.PrechatSurveyLoaded
146
155
  });
156
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
157
+ Event: _TelemetryConstants.TelemetryEvent.UXPrechatPaneCompleted,
158
+ ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
159
+ });
147
160
  }, []);
148
161
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.PreChatSurveyPane, {
149
162
  controlProps: controlProps,
@@ -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
  };