@microsoft/omnichannel-chat-widget 0.1.0-main.488d6f1 → 0.1.0-main.592da7b

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 (115) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/common/Constants.js +50 -6
  3. package/lib/cjs/common/telemetry/TelemetryConstants.js +52 -6
  4. package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
  5. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -6
  6. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  7. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  8. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +33 -13
  9. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -5
  10. package/lib/cjs/common/utils.js +30 -2
  11. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  12. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -4
  13. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -41
  14. package/lib/cjs/components/footerstateful/FooterStateful.js +1 -2
  15. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  16. package/lib/cjs/components/headerstateful/HeaderStateful.js +1 -7
  17. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +12 -15
  18. package/lib/cjs/components/livechatwidget/common/endChat.js +68 -13
  19. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +1 -1
  20. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +27 -6
  21. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +105 -20
  22. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +6 -17
  23. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
  24. package/lib/cjs/components/livechatwidget/common/startChat.js +95 -27
  25. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +213 -56
  26. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  27. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +5 -6
  28. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +19 -3
  29. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +80 -0
  30. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  31. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  32. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  33. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  34. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  35. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  36. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  37. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  38. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  39. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  40. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +9 -7
  41. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +8 -2
  42. package/lib/cjs/contexts/createReducer.js +16 -10
  43. package/lib/cjs/controller/componentController.js +1 -1
  44. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  45. package/lib/esm/common/Constants.js +46 -5
  46. package/lib/esm/common/telemetry/TelemetryConstants.js +48 -5
  47. package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
  48. package/lib/esm/common/telemetry/TelemetryManager.js +15 -6
  49. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  50. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  51. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +36 -14
  52. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -5
  53. package/lib/esm/common/utils.js +19 -1
  54. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  55. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -7
  56. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -36
  57. package/lib/esm/components/footerstateful/FooterStateful.js +1 -2
  58. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  59. package/lib/esm/components/headerstateful/HeaderStateful.js +1 -7
  60. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +12 -16
  61. package/lib/esm/components/livechatwidget/common/endChat.js +65 -15
  62. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +1 -1
  63. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +22 -6
  64. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +94 -20
  65. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +5 -14
  66. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
  67. package/lib/esm/components/livechatwidget/common/startChat.js +94 -31
  68. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +197 -55
  69. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  70. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +7 -8
  71. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +20 -4
  72. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +72 -0
  73. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  74. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  75. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  76. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  77. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  78. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  79. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  80. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  81. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  82. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  83. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +9 -7
  84. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +8 -2
  85. package/lib/esm/contexts/createReducer.js +16 -9
  86. package/lib/esm/controller/componentController.js +1 -1
  87. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  88. package/lib/types/common/Constants.d.ts +25 -2
  89. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  90. package/lib/types/common/telemetry/TelemetryConstants.d.ts +37 -4
  91. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  92. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  93. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  94. package/lib/types/common/utils.d.ts +3 -0
  95. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +4 -4
  96. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  97. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  98. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -2
  99. package/lib/types/components/livechatwidget/common/startChat.d.ts +2 -1
  100. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  101. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +1 -1
  102. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -0
  103. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  104. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  105. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  106. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  107. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  108. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  109. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  110. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  111. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  112. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -0
  113. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +10 -8
  114. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  115. package/package.json +9 -11
@@ -12,6 +12,10 @@ var _defaultMiddlewareLocalizedTexts = require("../../components/webchatcontaine
12
12
  const getLiveChatWidgetContextInitialState = props => {
13
13
  var _props$webChatContain;
14
14
 
15
+ if (props !== null && props !== void 0 && props.liveChatContextFromCache) {
16
+ return props === null || props === void 0 ? void 0 : props.liveChatContextFromCache;
17
+ }
18
+
15
19
  const LiveChatWidgetContextInitialState = {
16
20
  domainStates: {
17
21
  liveChatConfig: props.chatConfig,
@@ -23,7 +27,9 @@ const getLiveChatWidgetContextInitialState = props => {
23
27
  postChatContext: undefined,
24
28
  telemetryInternalData: {},
25
29
  globalDir: "ltr",
26
- liveChatContext: undefined
30
+ liveChatContext: undefined,
31
+ customContext: undefined,
32
+ widgetSize: undefined
27
33
  },
28
34
  appStates: {
29
35
  conversationState: _ConversationState.ConversationState.Closed,
@@ -56,7 +62,7 @@ const getLiveChatWidgetContextInitialState = props => {
56
62
  focusChatButton: false
57
63
  }
58
64
  };
59
- return props.liveChatContextFromCache ?? LiveChatWidgetContextInitialState;
65
+ return LiveChatWidgetContextInitialState;
60
66
  };
61
67
 
62
68
  exports.getLiveChatWidgetContextInitialState = getLiveChatWidgetContextInitialState;
@@ -7,8 +7,6 @@ exports.createReducer = void 0;
7
7
 
8
8
  var _LiveChatWidgetActionType = require("./common/LiveChatWidgetActionType");
9
9
 
10
- var _TelemetryManager = require("../common/telemetry/TelemetryManager");
11
-
12
10
  /* eslint-disable indent */
13
11
  const createReducer = () => {
14
12
  const reducer = (state, action) => {
@@ -71,6 +69,14 @@ const createReducer = () => {
71
69
  }
72
70
  };
73
71
 
72
+ case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT:
73
+ return { ...state,
74
+ domainStates: { ...state.domainStates,
75
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
+ customContext: action.payload
77
+ }
78
+ };
79
+
74
80
  case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT:
75
81
  return { ...state,
76
82
  appStates: { ...state.appStates,
@@ -93,13 +99,6 @@ const createReducer = () => {
93
99
  }
94
100
  };
95
101
 
96
- case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT:
97
- return { ...state,
98
- appStates: { ...state.appStates,
99
- shouldShowPostChat: action.payload
100
- }
101
- };
102
-
103
102
  case _LiveChatWidgetActionType.LiveChatWidgetActionType.SHOW_CALLING_CONTAINER:
104
103
  return { ...state,
105
104
  uiStates: { ...state.uiStates,
@@ -197,7 +196,6 @@ const createReducer = () => {
197
196
  };
198
197
 
199
198
  case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA:
200
- _TelemetryManager.TelemetryManager.InternalTelemetryData = action.payload;
201
199
  return { ...state,
202
200
  domainStates: { ...state.domainStates,
203
201
  telemetryInternalData: action.payload
@@ -237,6 +235,14 @@ const createReducer = () => {
237
235
  }
238
236
  };
239
237
 
238
+ case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_SIZE:
239
+ return { ...state,
240
+ domainStates: { ...state.domainStates,
241
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
242
+ widgetSize: action.payload
243
+ }
244
+ };
245
+
240
246
  default:
241
247
  return state;
242
248
  }
@@ -8,7 +8,7 @@ exports.shouldShowWebChatContainer = exports.shouldShowReconnectChatPane = expor
8
8
  var _ConversationState = require("../contexts/common/ConversationState");
9
9
 
10
10
  const shouldShowChatButton = state => {
11
- return state.appStates.isMinimized || state.appStates.conversationState === _ConversationState.ConversationState.Closed;
11
+ return (state.appStates.isMinimized || state.appStates.conversationState === _ConversationState.ConversationState.Closed) && state.appStates.skipChatButtonRendering == false; // Do not show chat button in case of popout
12
12
  };
13
13
 
14
14
  exports.shouldShowChatButton = shouldShowChatButton;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createOnNewAdapterActivityHandler = void 0;
7
+
8
+ var _TelemetryConstants = require("../common/telemetry/TelemetryConstants");
9
+
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+
12
+ var _Constants = require("../common/Constants");
13
+
14
+ var _TelemetryHelper = require("../common/telemetry/TelemetryHelper");
15
+
16
+ const createOnNewAdapterActivityHandler = (chatId, userId) => {
17
+ const onNewAdapterActivityHandler = activity => {
18
+ var _activity$channelData, _activity$channelData2, _activity$channelData3;
19
+
20
+ const isActivityMessage = (activity === null || activity === void 0 ? void 0 : activity.type) === _Constants.Constants.message;
21
+ const isNotHistoryMessage = isActivityMessage && !(activity !== null && activity !== void 0 && (_activity$channelData = activity.channelData) !== null && _activity$channelData !== void 0 && (_activity$channelData2 = _activity$channelData.tags) !== null && _activity$channelData2 !== void 0 && _activity$channelData2.includes(_Constants.Constants.historyMessageTag)) && !(activity !== null && activity !== void 0 && (_activity$channelData3 = activity.channelData) !== null && _activity$channelData3 !== void 0 && _activity$channelData3.fromList);
22
+
23
+ if (isNotHistoryMessage) {
24
+ raiseMessageEvent(activity);
25
+ }
26
+ };
27
+
28
+ const raiseMessageEvent = activity => {
29
+ if ((activity === null || activity === void 0 ? void 0 : activity.type) === _Constants.Constants.message) {
30
+ var _text, _text2, _activity$channelData4, _activity$from;
31
+
32
+ const payload = {
33
+ // To identify hidden contents vs empty content
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ text: (activity === null || activity === void 0 ? void 0 : (_text = activity.text) === null || _text === void 0 ? void 0 : _text.length) >= 1 ? `*contents hidden (${activity === null || activity === void 0 ? void 0 : (_text2 = activity.text) === null || _text2 === void 0 ? void 0 : _text2.length} chars)*` : "",
36
+ type: activity === null || activity === void 0 ? void 0 : activity.type,
37
+ timestamp: activity === null || activity === void 0 ? void 0 : activity.timestamp,
38
+ userId: userId,
39
+ tags: activity === null || activity === void 0 ? void 0 : (_activity$channelData4 = activity.channelData) === null || _activity$channelData4 === void 0 ? void 0 : _activity$channelData4.tags,
40
+ messageType: ""
41
+ };
42
+
43
+ if ((activity === null || activity === void 0 ? void 0 : (_activity$from = activity.from) === null || _activity$from === void 0 ? void 0 : _activity$from.role) === _Constants.Constants.userMessageTag) {
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ payload.messageType = _Constants.Constants.userMessageTag;
46
+ const newMessageSentEvent = {
47
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageSent,
48
+ payload: payload
49
+ };
50
+
51
+ _omnichannelChatComponents.BroadcastService.postMessage(newMessageSentEvent);
52
+
53
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
54
+ Event: _TelemetryConstants.TelemetryEvent.MessageSent,
55
+ Description: "New message sent"
56
+ });
57
+ } else {
58
+ var _activity$channelData5, _activity$channelData6;
59
+
60
+ if (activity !== null && activity !== void 0 && (_activity$channelData5 = activity.channelData) !== null && _activity$channelData5 !== void 0 && (_activity$channelData6 = _activity$channelData5.tags) !== null && _activity$channelData6 !== void 0 && _activity$channelData6.includes(_Constants.Constants.systemMessageTag)) {
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ payload.messageType = _Constants.Constants.systemMessageTag;
63
+ } else {
64
+ var _activity$channelData7, _activity$channelData8, _activity$channelData9;
65
+
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ const messageHasNoText = !(activity !== null && activity !== void 0 && activity.text); // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+
69
+ const messageHasNoTags = !(activity !== null && activity !== void 0 && activity.channelData) || !(activity !== null && activity !== void 0 && (_activity$channelData7 = activity.channelData) !== null && _activity$channelData7 !== void 0 && _activity$channelData7.tags) || (activity === null || activity === void 0 ? void 0 : (_activity$channelData8 = activity.channelData) === null || _activity$channelData8 === void 0 ? void 0 : (_activity$channelData9 = _activity$channelData8.tags) === null || _activity$channelData9 === void 0 ? void 0 : _activity$channelData9.length) === 0; // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+
71
+ const messageHasNoAttachments = !(activity !== null && activity !== void 0 && activity.attachments) || (activity === null || activity === void 0 ? void 0 : activity.attachments.length) === 0;
72
+
73
+ if (messageHasNoTags && messageHasNoText && messageHasNoAttachments) {
74
+ return;
75
+ }
76
+
77
+ payload.messageType = _Constants.Constants.userMessageTag;
78
+ }
79
+
80
+ const newMessageReceivedEvent = {
81
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageReceived,
82
+ payload: payload
83
+ };
84
+
85
+ _omnichannelChatComponents.BroadcastService.postMessage(newMessageReceivedEvent);
86
+
87
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
88
+ Event: _TelemetryConstants.TelemetryEvent.MessageReceived,
89
+ Description: "New message received",
90
+ Data: payload
91
+ });
92
+ }
93
+ }
94
+ };
95
+
96
+ return onNewAdapterActivityHandler;
97
+ };
98
+
99
+ exports.createOnNewAdapterActivityHandler = createOnNewAdapterActivityHandler;
@@ -4,12 +4,20 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
4
4
 
5
5
  export class Constants {}
6
6
 
7
+ _defineProperty(Constants, "magicCodeBroadcastChannel", "MagicCodeChannel");
8
+
9
+ _defineProperty(Constants, "magicCodeResponseBroadcastChannel", "MagicCodeResponseChannel");
10
+
7
11
  _defineProperty(Constants, "systemMessageTag", "system");
8
12
 
9
13
  _defineProperty(Constants, "userMessageTag", "user");
10
14
 
15
+ _defineProperty(Constants, "historyMessageTag", "history");
16
+
11
17
  _defineProperty(Constants, "agentEndConversationMessageTag", "agentendconversation");
12
18
 
19
+ _defineProperty(Constants, "supervisorForceCloseMessageTag", "supervisorforceclosedconversation");
20
+
13
21
  _defineProperty(Constants, "receivedMessageClassName", "ms_lcw_webchat_received_message");
14
22
 
15
23
  _defineProperty(Constants, "sentMessageClassName", "ms_lcw_webchat_sent_message");
@@ -32,8 +40,6 @@ _defineProperty(Constants, "false", "false");
32
40
 
33
41
  _defineProperty(Constants, "maximumUnreadMessageCount", 99);
34
42
 
35
- _defineProperty(Constants, "widgetStateDataKey", "LcwChatWidgetState");
36
-
37
43
  _defineProperty(Constants, "channelIdKey", "ChannelId-");
38
44
 
39
45
  _defineProperty(Constants, "ChannelId", "lcw");
@@ -68,6 +74,14 @@ _defineProperty(Constants, "averageWaitTimeMessageTag", "averagewaittime");
68
74
 
69
75
  _defineProperty(Constants, "message", "message");
70
76
 
77
+ _defineProperty(Constants, "hiddenTag", "Hidden");
78
+
79
+ _defineProperty(Constants, "prefixTimestampTag", "ServerMessageTimestamp_");
80
+
81
+ _defineProperty(Constants, "acsChannel", "ACS_CHANNEL");
82
+
83
+ _defineProperty(Constants, "publicMessageTag", "public");
84
+
71
85
  _defineProperty(Constants, "supportedAdaptiveCardContentTypes", ["application/vnd.microsoft.card.adaptive", "application/vnd.microsoft.card.audio", "application/vnd.microsoft.card.hero", "application/vnd.microsoft.card.receipt", "application/vnd.microsoft.card.thumbnail", "application/vnd.microsoft.card.signin", "application/vnd.microsoft.card.oauth"]);
72
86
 
73
87
  _defineProperty(Constants, "maxUploadFileSize", "500000");
@@ -118,8 +132,6 @@ _defineProperty(Constants, "InputSubmit", "InputSubmit");
118
132
 
119
133
  _defineProperty(Constants, "ReconnectIdAttributeName", "oc.reconnectid");
120
134
 
121
- _defineProperty(Constants, "redirectPageRequest", "redirectPageRequest");
122
-
123
135
  _defineProperty(Constants, "LiveChatWidget", "LiveChatWidgetNew");
124
136
 
125
137
  _defineProperty(Constants, "GuidPattern", "xx-x-4m-ym-xxx");
@@ -144,6 +156,8 @@ _defineProperty(Constants, "internetConnectionTestUrl", "https://ocsdk-prod.azur
144
156
 
145
157
  _defineProperty(Constants, "internetConnectionTestUrlText", "Omnichannel Connect Test");
146
158
 
159
+ _defineProperty(Constants, "ChatWidgetStateChangedPrefix", "ChatWidgetStateChanged");
160
+
147
161
  export const Regex = (_class = class Regex {}, _defineProperty(_class, "EmailRegex", "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"), _class);
148
162
  export class HtmlIdNames {}
149
163
 
@@ -253,6 +267,15 @@ export let ChatSDKError;
253
267
  ChatSDKError["WidgetUseOutsideOperatingHour"] = "WidgetUseOutsideOperatingHour";
254
268
  })(ChatSDKError || (ChatSDKError = {}));
255
269
 
270
+ export let EnvironmentVersion;
271
+
272
+ (function (EnvironmentVersion) {
273
+ EnvironmentVersion["prod"] = "prod";
274
+ EnvironmentVersion["dogfood"] = "df";
275
+ EnvironmentVersion["int"] = "int";
276
+ EnvironmentVersion["test"] = "test";
277
+ })(EnvironmentVersion || (EnvironmentVersion = {}));
278
+
256
279
  export class TranscriptConstants {}
257
280
 
258
281
  _defineProperty(TranscriptConstants, "ChatTranscriptsBodyColor", "#F5F5F5");
@@ -273,4 +296,22 @@ _defineProperty(TranscriptConstants, "InternalMode", "internal");
273
296
 
274
297
  _defineProperty(TranscriptConstants, "AgentDialogColor", "#2266E3");
275
298
 
276
- _defineProperty(TranscriptConstants, "AgentFontColor", "white");
299
+ _defineProperty(TranscriptConstants, "AgentFontColor", "white");
300
+
301
+ export class AriaTelemetryConstants {}
302
+
303
+ _defineProperty(AriaTelemetryConstants, "GERMANY_ENDPOINT", "https://de.pipe.aria.microsoft.com/Collector/3.0/");
304
+
305
+ _defineProperty(AriaTelemetryConstants, "GCCH_ENDPOINT", "https://tb.pipe.aria.microsoft.com/Collector/3.0/");
306
+
307
+ _defineProperty(AriaTelemetryConstants, "DOD_ENDPOINT", "https://pf.pipe.aria.microsoft.com/Collector/3.0");
308
+
309
+ _defineProperty(AriaTelemetryConstants, "EUROPE_ENDPOINT", "https://eu-mobile.events.data.microsoft.com/Collector/3.0/");
310
+
311
+ _defineProperty(AriaTelemetryConstants, "MOONCAKE_ENDPOINT", "");
312
+
313
+ _defineProperty(AriaTelemetryConstants, "Public", "Public");
314
+
315
+ _defineProperty(AriaTelemetryConstants, "EU", "Europe");
316
+
317
+ _defineProperty(AriaTelemetryConstants, "lcwEUDomainNames", ["crm4.omnichannelengagementhub.com", "crm12.omnichannelengagementhub.com", "crm16.omnichannelengagementhub.com", "crm17.omnichannelengagementhub.com", "crm19.omnichannelengagementhub.com"]);
@@ -13,7 +13,7 @@ export let ScenarioType;
13
13
  ScenarioType["ACS_ADAPTER"] = "LCW_ACSAdapterEvents";
14
14
  })(ScenarioType || (ScenarioType = {}));
15
15
 
16
- export let LogLevel;
16
+ export let LogLevel; // Events used in certain functionalities that are not being logged
17
17
 
18
18
  (function (LogLevel) {
19
19
  LogLevel["INFO"] = "INFO";
@@ -22,6 +22,34 @@ export let LogLevel;
22
22
  LogLevel["ERROR"] = "ERROR";
23
23
  })(LogLevel || (LogLevel = {}));
24
24
 
25
+ export let BroadcastEvent; // Events being logged
26
+
27
+ (function (BroadcastEvent) {
28
+ BroadcastEvent["LoadPostChatSurvey"] = "LoadPostChatSurvey";
29
+ BroadcastEvent["ChatEnded"] = "ChatEnded";
30
+ BroadcastEvent["NewMessageNotification"] = "NewMessageNotification";
31
+ BroadcastEvent["UnreadMessageCount"] = "UnreadMessageCount";
32
+ BroadcastEvent["StartProactiveChat"] = "StartProactiveChat";
33
+ BroadcastEvent["ProactiveChatStartChat"] = "ProactiveChatStartChat";
34
+ BroadcastEvent["ProactiveChatStartPopoutChat"] = "ProactiveChatStartPopoutChat";
35
+ BroadcastEvent["ProactiveChatIsInPopoutMode"] = "ProactiveChatIsInPopoutMode";
36
+ BroadcastEvent["ResetProactiveChatParams"] = "ResetProactiveChatParams";
37
+ BroadcastEvent["InvalidAdaptiveCardFormat"] = "InvalidAdaptiveCardFormat";
38
+ BroadcastEvent["NewMessageSent"] = "NewMessageSent";
39
+ BroadcastEvent["NewMessageReceived"] = "NewMessageReceived";
40
+ BroadcastEvent["RedirectPageRequest"] = "RedirectPageRequest";
41
+ BroadcastEvent["StartChat"] = "StartChat";
42
+ BroadcastEvent["StartChatSkippingChatButtonRendering"] = "StartChatSkippingChatButtonRendering";
43
+ BroadcastEvent["StartUnauthenticatedReconnectChat"] = "StartUnauthenticatedReconnectChat";
44
+ BroadcastEvent["InitiateEndChat"] = "InitiateEndChat";
45
+ BroadcastEvent["SetCustomContext"] = "SetCustomContext";
46
+ BroadcastEvent["ChatRetrievedFromCache"] = "ChatRetrievedFromCache";
47
+ BroadcastEvent["MaximizeChat"] = "MaximizeChat";
48
+ BroadcastEvent["ChatInitiated"] = "ChatInitiated";
49
+ BroadcastEvent["CloseChat"] = "CloseChat";
50
+ BroadcastEvent["InitiateEndChatOnBrowserUnload"] = "InitiateEndChatOnBrowserUnload";
51
+ })(BroadcastEvent || (BroadcastEvent = {}));
52
+
25
53
  export let TelemetryEvent;
26
54
 
27
55
  (function (TelemetryEvent) {
@@ -70,7 +98,10 @@ export let TelemetryEvent;
70
98
  TelemetryEvent["PrechatSurveyLoaded"] = "PrechatSurveyLoaded";
71
99
  TelemetryEvent["PrechatSubmitted"] = "PrechatSubmitted";
72
100
  TelemetryEvent["StartChatSDKCall"] = "StartChatCall";
73
- TelemetryEvent["EndChatSDKCall"] = "EndChatCall";
101
+ TelemetryEvent["StartChatEventRecevied"] = "StartChatEventReceived";
102
+ TelemetryEvent["EndChatSDKCall"] = "EndChatSDKCall";
103
+ TelemetryEvent["EndChatEventReceived"] = "EndChatEventReceived";
104
+ TelemetryEvent["WindowClosed"] = "WindowClosed";
74
105
  TelemetryEvent["OnNewMessageFailed"] = "OnNewMessageFailed";
75
106
  TelemetryEvent["OnNewMessageAudioNotificationFailed"] = "OnNewMessageAudioNotificationFailed";
76
107
  TelemetryEvent["DownloadTranscriptResponseNullOrUndefined"] = "DownloadTranscriptResponseNullOrUndefined";
@@ -84,6 +115,7 @@ export let TelemetryEvent;
84
115
  TelemetryEvent["LoadingPaneLoaded"] = "LoadingPaneLoaded";
85
116
  TelemetryEvent["EmailTranscriptLoaded"] = "EmailTranscriptLoaded";
86
117
  TelemetryEvent["OutOfOfficePaneLoaded"] = "OutOfOfficePaneLoaded";
118
+ TelemetryEvent["PostChatSurveyLoadingPaneLoaded"] = "PostChatSurveyLoadingPaneLoaded";
87
119
  TelemetryEvent["PostChatSurveyLoaded"] = "PostChatSurveyLoaded";
88
120
  TelemetryEvent["ConfirmationPaneLoaded"] = "ConfirmationPaneLoaded";
89
121
  TelemetryEvent["ProactiveChatPaneLoaded"] = "ProactiveChatPaneLoaded";
@@ -94,6 +126,8 @@ export let TelemetryEvent;
94
126
  TelemetryEvent["EmailTranscriptButtonClicked"] = "EmailTranscriptButtonClicked";
95
127
  TelemetryEvent["EmailTranscriptCancelButtonClicked"] = "EmailTranscriptCancelButtonClicked";
96
128
  TelemetryEvent["AudioToggleButtonClicked"] = "AudioToggleButtonClicked";
129
+ TelemetryEvent["SuppressBotMagicCodeSucceeded"] = "SuppressBotMagicCodeSucceeded";
130
+ TelemetryEvent["SuppressBotMagicCodeFailed"] = "SuppressBotMagicCodeFailed";
97
131
  TelemetryEvent["ProcessingHTMLTextMiddlewareFailed"] = "ProcessingHTMLTextMiddlewareFailed";
98
132
  TelemetryEvent["ProcessingSanitizationMiddlewareFailed"] = "ProcessingSanitizationMiddlewareFailed";
99
133
  TelemetryEvent["FormatTagsMiddlewareJSONStringifyFailed"] = "FormatTagsMiddlewareJSONStringifyFailed";
@@ -105,6 +139,7 @@ export let TelemetryEvent;
105
139
  TelemetryEvent["InvalidConfiguration"] = "InvalidConfiguration";
106
140
  TelemetryEvent["SendTypingIndicatorSucceeded"] = "SendTypingIndicatorSucceeded";
107
141
  TelemetryEvent["SendTypingIndicatorFailed"] = "SendTypingIndicatorFailed";
142
+ TelemetryEvent["WebChatEvent"] = "WebChatEvent";
108
143
  TelemetryEvent["PreChatSurveyStartChatMethodFailed"] = "PreChatSurveyStartChatMethodFailed";
109
144
  TelemetryEvent["ChatAlreadyTriggered"] = "ChatAlreadyTriggered";
110
145
  TelemetryEvent["StartProactiveChatEventReceived"] = "StartProactiveChatEventReceived";
@@ -113,12 +148,12 @@ export let TelemetryEvent;
113
148
  TelemetryEvent["ProactiveChatRejected"] = "ProactiveChatRejected";
114
149
  TelemetryEvent["IncomingProactiveChatScreenLoaded"] = "IncomingProactiveChatScreenLoaded";
115
150
  TelemetryEvent["ProactiveChatClosed"] = "ProactiveChatClosed";
116
- TelemetryEvent["ProactiveChatStartChat"] = "ProactiveChatStartChat";
117
- TelemetryEvent["ProactiveChatStartPopoutChat"] = "ProactiveChatStartPopoutChat";
118
151
  TelemetryEvent["ReconnectChatContinueConversation"] = "ReconnectChatContinueConversation";
119
152
  TelemetryEvent["ReconnectChatStartNewConversation"] = "ReconnectChatStartNewConversation";
120
153
  TelemetryEvent["ReconnectChatMinimize"] = "ReconnectChatMinimize";
121
- TelemetryEvent["ChatWidgetStateChanged"] = "ChatWidgetStateChanged";
154
+ TelemetryEvent["MessageSent"] = "MessageSent";
155
+ TelemetryEvent["MessageReceived"] = "MessageReceived";
156
+ TelemetryEvent["CustomContextReceived"] = "CustomContextReceived";
122
157
  })(TelemetryEvent || (TelemetryEvent = {}));
123
158
 
124
159
  export class TelemetryConstants {
@@ -134,6 +169,7 @@ export class TelemetryConstants {
134
169
  case TelemetryEvent.LCWChatButtonShow:
135
170
  case TelemetryEvent.PrechatSurveyLoaded:
136
171
  case TelemetryEvent.LoadingPaneLoaded:
172
+ case TelemetryEvent.PostChatSurveyLoadingPaneLoaded:
137
173
  case TelemetryEvent.PostChatSurveyLoaded:
138
174
  case TelemetryEvent.EmailTranscriptLoaded:
139
175
  case TelemetryEvent.OutOfOfficePaneLoaded:
@@ -160,15 +196,22 @@ export class TelemetryConstants {
160
196
  case TelemetryEvent.PreChatSurveyStartChatMethodFailed:
161
197
  case TelemetryEvent.HeaderCloseButtonClicked:
162
198
  case TelemetryEvent.HeaderMinimizeButtonClicked:
199
+ case TelemetryEvent.MessageSent:
200
+ case TelemetryEvent.MessageReceived:
201
+ case TelemetryEvent.CustomContextReceived:
163
202
  return ScenarioType.ACTIONS;
164
203
 
165
204
  case TelemetryEvent.StartChatSDKCall:
205
+ case TelemetryEvent.StartChatEventRecevied:
166
206
  case TelemetryEvent.StartChatMethodException:
167
207
  case TelemetryEvent.CloseChatMethodException:
208
+ case TelemetryEvent.StartProactiveChatEventReceived:
168
209
  case TelemetryEvent.StartProactiveChatMethodFailed:
169
210
  case TelemetryEvent.OnNewMessageFailed:
170
211
  case TelemetryEvent.OnNewMessageAudioNotificationFailed:
171
212
  case TelemetryEvent.GetConversationDetailsCallFailed:
213
+ case TelemetryEvent.EndChatSDKCall:
214
+ case TelemetryEvent.EndChatEventReceived:
172
215
  case TelemetryEvent.EndChatSDKCallFailed:
173
216
  case TelemetryEvent.PostChatContextCallFailed:
174
217
  case TelemetryEvent.PostChatContextCallSucceed:
@@ -1,6 +1,6 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
- import { ScenarioType } from "./TelemetryConstants";
3
+ import { ScenarioType, TelemetryEvent } from "./TelemetryConstants";
4
4
  import { newGuid } from "../utils";
5
5
  import { TelemetryManager } from "./TelemetryManager";
6
6
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
@@ -259,4 +259,16 @@ _defineProperty(TelemetryHelper, "logConfigDataEvent", (logLevel, payload) => {
259
259
  }
260
260
  };
261
261
  BroadcastService.postMessage(telemetryEvent);
262
+ });
263
+
264
+ _defineProperty(TelemetryHelper, "logWebChatEvent", (logLevel, payload) => {
265
+ const telemetryEvent = {
266
+ eventName: TelemetryEvent.WebChatEvent,
267
+ logLevel: logLevel,
268
+ payload: { ...payload,
269
+ type: TelemetryEvent.WebChatEvent,
270
+ scenarioType: ScenarioType.WEBCHAT
271
+ }
272
+ };
273
+ BroadcastService.postMessage(telemetryEvent);
262
274
  });
@@ -4,6 +4,8 @@ import { LogLevel, ScenarioType, TelemetryConstants, TelemetryEvent } from "./Te
4
4
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
5
5
  import { ariaTelemetryLogger } from "./loggers/ariaTelemetryLogger";
6
6
  import { consoleLogger } from "./loggers/consoleLogger";
7
+ import { defaultAriaConfig } from "./defaultConfigs/defaultAriaConfig";
8
+ import { TelemetryHelper } from "./TelemetryHelper";
7
9
  export class TelemetryTimers {}
8
10
 
9
11
  _defineProperty(TelemetryTimers, "LcwLoadToChatButtonTimer", void 0);
@@ -26,25 +28,25 @@ export const RegisterLoggers = () => {
26
28
  const registerLoggers = () => {
27
29
  var _TelemetryManager$Int, _TelemetryManager$Int2, _TelemetryManager$Int3, _TelemetryManager$Int4, _TelemetryManager$Int5, _TelemetryManager$Int6, _TelemetryManager$Int7, _TelemetryManager$Int8;
28
30
 
29
- if (!((_TelemetryManager$Int = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int !== void 0 && (_TelemetryManager$Int2 = _TelemetryManager$Int.telemetryConfig) !== null && _TelemetryManager$Int2 !== void 0 && _TelemetryManager$Int2.disableConsoleLog) || !((_TelemetryManager$Int3 = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int3 !== void 0 && (_TelemetryManager$Int4 = _TelemetryManager$Int3.telemetryConfig) !== null && _TelemetryManager$Int4 !== void 0 && _TelemetryManager$Int4.telemetryDisabled)) {
31
+ if (((_TelemetryManager$Int = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : (_TelemetryManager$Int2 = _TelemetryManager$Int.telemetryConfig) === null || _TelemetryManager$Int2 === void 0 ? void 0 : _TelemetryManager$Int2.disableConsoleLog) === false || ((_TelemetryManager$Int3 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int3 === void 0 ? void 0 : (_TelemetryManager$Int4 = _TelemetryManager$Int3.telemetryConfig) === null || _TelemetryManager$Int4 === void 0 ? void 0 : _TelemetryManager$Int4.telemetryDisabled) === false) {
30
32
  BroadcastService.getAnyMessage().subscribe(event => {
31
- if (event.payload && event.eventName !== TelemetryEvent.ChatWidgetStateChanged) {
33
+ if (event.payload && event.eventName in TelemetryEvent) {
32
34
  logTelemetry(event);
33
35
  }
34
36
  });
35
37
  }
36
38
 
37
- if (!((_TelemetryManager$Int5 = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int5 !== void 0 && (_TelemetryManager$Int6 = _TelemetryManager$Int5.telemetryConfig) !== null && _TelemetryManager$Int6 !== void 0 && _TelemetryManager$Int6.disableConsoleLog)) {
39
+ if (((_TelemetryManager$Int5 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int5 === void 0 ? void 0 : (_TelemetryManager$Int6 = _TelemetryManager$Int5.telemetryConfig) === null || _TelemetryManager$Int6 === void 0 ? void 0 : _TelemetryManager$Int6.disableConsoleLog) === false) {
38
40
  loggers.push(consoleLogger());
39
41
  }
40
42
 
41
- if (!((_TelemetryManager$Int7 = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int7 !== void 0 && (_TelemetryManager$Int8 = _TelemetryManager$Int7.telemetryConfig) !== null && _TelemetryManager$Int8 !== void 0 && _TelemetryManager$Int8.telemetryDisabled)) {
43
+ if (((_TelemetryManager$Int7 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int7 === void 0 ? void 0 : (_TelemetryManager$Int8 = _TelemetryManager$Int7.telemetryConfig) === null || _TelemetryManager$Int8 === void 0 ? void 0 : _TelemetryManager$Int8.telemetryDisabled) === false) {
42
44
  var _TelemetryManager$Int9, _TelemetryManager$Int18, _TelemetryManager$Int19;
43
45
 
44
46
  if ((_TelemetryManager$Int9 = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int9 !== void 0 && _TelemetryManager$Int9.ariaConfig) {
45
47
  var _TelemetryManager$Int10, _TelemetryManager$Int11, _TelemetryManager$Int12, _TelemetryManager$Int13, _TelemetryManager$Int14, _TelemetryManager$Int15, _TelemetryManager$Int16, _TelemetryManager$Int17;
46
48
 
47
- loggers.push(ariaTelemetryLogger(((_TelemetryManager$Int10 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int10 === void 0 ? void 0 : (_TelemetryManager$Int11 = _TelemetryManager$Int10.ariaConfig) === null || _TelemetryManager$Int11 === void 0 ? void 0 : _TelemetryManager$Int11.ariaTelemetryKey) ?? "", ((_TelemetryManager$Int12 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int12 === void 0 ? void 0 : (_TelemetryManager$Int13 = _TelemetryManager$Int12.ariaConfig) === null || _TelemetryManager$Int13 === void 0 ? void 0 : _TelemetryManager$Int13.disableCookieUsage) ?? false, ((_TelemetryManager$Int14 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int14 === void 0 ? void 0 : (_TelemetryManager$Int15 = _TelemetryManager$Int14.ariaConfig) === null || _TelemetryManager$Int15 === void 0 ? void 0 : _TelemetryManager$Int15.collectorUriForTelemetry) ?? "", ((_TelemetryManager$Int16 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int16 === void 0 ? void 0 : (_TelemetryManager$Int17 = _TelemetryManager$Int16.ariaConfig) === null || _TelemetryManager$Int17 === void 0 ? void 0 : _TelemetryManager$Int17.ariaTelemetryApplicationName) ?? "OmniChannelProd_Web"));
49
+ loggers.push(ariaTelemetryLogger(((_TelemetryManager$Int10 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int10 === void 0 ? void 0 : (_TelemetryManager$Int11 = _TelemetryManager$Int10.ariaConfig) === null || _TelemetryManager$Int11 === void 0 ? void 0 : _TelemetryManager$Int11.ariaTelemetryKey) ?? defaultAriaConfig.ariaTelemetryKey, ((_TelemetryManager$Int12 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int12 === void 0 ? void 0 : (_TelemetryManager$Int13 = _TelemetryManager$Int12.ariaConfig) === null || _TelemetryManager$Int13 === void 0 ? void 0 : _TelemetryManager$Int13.disableCookieUsage) ?? defaultAriaConfig.disableCookieUsage, ((_TelemetryManager$Int14 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int14 === void 0 ? void 0 : (_TelemetryManager$Int15 = _TelemetryManager$Int14.ariaConfig) === null || _TelemetryManager$Int15 === void 0 ? void 0 : _TelemetryManager$Int15.collectorUriForTelemetry) ?? defaultAriaConfig.collectorUriForTelemetry, ((_TelemetryManager$Int16 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int16 === void 0 ? void 0 : (_TelemetryManager$Int17 = _TelemetryManager$Int16.ariaConfig) === null || _TelemetryManager$Int17 === void 0 ? void 0 : _TelemetryManager$Int17.ariaTelemetryApplicationName) ?? defaultAriaConfig.ariaTelemetryApplicationName));
48
50
  }
49
51
 
50
52
  const customLoggers = (_TelemetryManager$Int18 = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int18 === void 0 ? void 0 : (_TelemetryManager$Int19 = _TelemetryManager$Int18.telemetryConfig) === null || _TelemetryManager$Int19 === void 0 ? void 0 : _TelemetryManager$Int19.telemetryLoggers;
@@ -67,8 +69,15 @@ export const RegisterLoggers = () => {
67
69
 
68
70
  const logTelemetry = telemetryEvent => {
69
71
  loggers.map(logger => {
72
+ var _payload;
73
+
70
74
  const logLevel = telemetryEvent.logLevel ?? LogLevel.INFO;
71
- logger.log(logLevel, parseInput(telemetryEvent === null || telemetryEvent === void 0 ? void 0 : telemetryEvent.payload));
75
+ const scenarioType = ((_payload = telemetryEvent.payload) === null || _payload === void 0 ? void 0 : _payload.scenarioType) ?? ScenarioType.UNDEFINED;
76
+ const telemetryInput = parseInput(telemetryEvent === null || telemetryEvent === void 0 ? void 0 : telemetryEvent.payload, scenarioType);
77
+ telemetryInput.telemetryInfo = {
78
+ telemetryInfo: TelemetryHelper.buildTelemetryEvent(logLevel, telemetryInput)
79
+ };
80
+ logger.log(logLevel, telemetryInput);
72
81
  });
73
82
  };
74
83
 
@@ -1,6 +1,6 @@
1
1
  export const defaultAriaConfig = {
2
2
  collectorUriForTelemetry: "",
3
3
  ariaTelemetryKey: "c7655518acf1403f93ff6b9f77942f0a-d01a02fd-6b50-4de3-a566-62eda11f93bc-7083",
4
- ariaTelemetryApplicationName: "",
4
+ ariaTelemetryApplicationName: "D365_Omnichannel_Client_Public_Prod",
5
5
  disableCookieUsage: true
6
6
  };
@@ -3,5 +3,8 @@ export const defaultTelemetryConfiguration = {
3
3
  telemetryDisabled: false,
4
4
  disableConsoleLog: false,
5
5
  telemetryLoggers: [],
6
- ariaConfigurations: defaultAriaConfig
6
+ ariaConfigurations: defaultAriaConfig,
7
+ chatWidgetVersion: "0.0.0-0",
8
+ chatComponentVersion: "0.0.0-0",
9
+ OCChatSDKVersion: "0.0.0-0"
7
10
  };
@@ -1,9 +1,9 @@
1
- import { isNullOrEmptyString, isNullOrUndefined } from "../../utils";
1
+ import { getDomain, isNullOrEmptyString, isNullOrUndefined } from "../../utils";
2
2
  import AWTEventProperties from "@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTEventProperties";
3
3
  import AWTLogManager from "@microsoft/omnichannel-chat-sdk/lib/external/aria/webjs/AWTLogManager";
4
4
  import { AWTPiiKind } from "@microsoft/omnichannel-chat-sdk/lib/external/aria/common/Enums";
5
- import { Constants } from "../../Constants";
6
- import { TelemetryHelper } from "../TelemetryHelper";
5
+ import { Constants, AriaTelemetryConstants, EnvironmentVersion } from "../../Constants";
6
+ import { TelemetryManager } from "../TelemetryManager";
7
7
  export const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUriForTelemetry, ariaTelemetryApplicationName) => {
8
8
  let _logger;
9
9
 
@@ -15,6 +15,21 @@ export const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, colle
15
15
 
16
16
  if (!isNullOrEmptyString(collectiorUriForTelemetry)) {
17
17
  configuration.collectorUri = collectiorUriForTelemetry;
18
+ } else {
19
+ if (TelemetryManager.InternalTelemetryData.environmentVersion == EnvironmentVersion.prod) {
20
+ var _TelemetryManager$Int;
21
+
22
+ const orgUrl = (_TelemetryManager$Int = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.orgUrl;
23
+
24
+ if (!isNullOrUndefined(orgUrl)) {
25
+ // If the given org is a Production EU org, modify the Aria collector uri
26
+ const region = getDomain(orgUrl);
27
+
28
+ if (region === AriaTelemetryConstants.EU) {
29
+ configuration.collectorUri = AriaTelemetryConstants.EUROPE_ENDPOINT;
30
+ }
31
+ }
32
+ }
18
33
  }
19
34
 
20
35
  try {
@@ -33,18 +48,25 @@ export const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, colle
33
48
 
34
49
  const ariaLogger = {
35
50
  log: (logLevel, telemetryInput) => {
36
- let property;
37
- const eventProperties = new AWTEventProperties();
38
- const event = TelemetryHelper.buildTelemetryEvent(logLevel, telemetryInput);
39
- eventProperties.setName(telemetryInput.scenarioType);
40
-
41
- for (const key of Object.keys(event)) {
42
- property = typeof event[key] === "object" ? JSON.stringify(event[key]) : event[key];
43
- eventProperties.setProperty(key, property);
44
- }
51
+ try {
52
+ let property;
53
+ const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo;
54
+ const eventProperties = new AWTEventProperties();
55
+ eventProperties.setName(telemetryInput.scenarioType);
45
56
 
46
- eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, Constants.LiveChatWidget, AWTPiiKind.GenericData);
47
- logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
57
+ if (telemetryInfo) {
58
+ for (const key of Object.keys(telemetryInfo)) {
59
+ property = typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key];
60
+ eventProperties.setProperty(key, property);
61
+ }
62
+
63
+ eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, Constants.LiveChatWidget, AWTPiiKind.GenericData);
64
+ }
65
+
66
+ logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
67
+ } catch (error) {
68
+ console.error("Error in logging telemetry to Aria logger:" + error);
69
+ }
48
70
  },
49
71
  dispose: () => {
50
72
  AWTLogManager.flush(function () {
@@ -4,27 +4,28 @@ export const consoleLogger = () => {
4
4
  const consoleLogger = {
5
5
  log: (logLevel, telemetryInput) => {
6
6
  const payload = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.payload && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.payload : "";
7
+ const telemetryInfo = telemetryInput !== null && telemetryInput !== void 0 && telemetryInput.telemetryInfo && Object.keys(telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo).length > 0 ? telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo : "";
7
8
 
8
9
  try {
9
10
  switch (logLevel) {
10
11
  case LogLevel.INFO:
11
- console.info(Constants.LiveChatWidget, payload);
12
+ console.info(Constants.LiveChatWidget, payload, telemetryInfo);
12
13
  break;
13
14
 
14
15
  case LogLevel.DEBUG:
15
- console.debug(Constants.LiveChatWidget, payload);
16
+ console.debug(Constants.LiveChatWidget, payload, telemetryInfo);
16
17
  break;
17
18
 
18
19
  case LogLevel.WARN:
19
- console.warn(Constants.LiveChatWidget, payload);
20
+ console.warn(Constants.LiveChatWidget, payload, telemetryInfo);
20
21
  break;
21
22
 
22
23
  case LogLevel.ERROR:
23
- console.error(Constants.LiveChatWidget, payload);
24
+ console.error(Constants.LiveChatWidget, payload, telemetryInfo);
24
25
  break;
25
26
 
26
27
  default:
27
- console.debug(Constants.LiveChatWidget, payload);
28
+ console.debug(Constants.LiveChatWidget, payload, telemetryInfo);
28
29
  break;
29
30
  }
30
31
  } catch (ex) {