@microsoft/omnichannel-chat-widget 0.1.0-main.7338c17 → 0.1.0-main.7375e33

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 (162) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +52 -6
  5. package/lib/cjs/common/telemetry/TelemetryConstants.js +56 -6
  6. package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
  7. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -6
  8. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  9. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  10. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +33 -13
  11. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -5
  12. package/lib/cjs/common/utils.js +76 -2
  13. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  14. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -4
  15. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -40
  16. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  17. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  18. package/lib/cjs/components/headerstateful/HeaderStateful.js +13 -10
  19. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  20. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +27 -23
  21. package/lib/cjs/components/livechatwidget/common/endChat.js +141 -50
  22. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +1 -1
  23. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +47 -9
  24. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +107 -22
  25. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +6 -17
  26. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -9
  27. package/lib/cjs/components/livechatwidget/common/startChat.js +143 -51
  28. package/lib/cjs/{assets/assets.d.js → components/livechatwidget/interfaces/IAuthProps.js} +0 -0
  29. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +235 -79
  30. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  31. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +5 -10
  32. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +19 -3
  33. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +80 -0
  34. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  35. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  36. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  37. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  38. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  39. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  40. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  41. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  42. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  43. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  44. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  45. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  46. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +9 -7
  47. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +8 -3
  48. package/lib/cjs/contexts/createReducer.js +16 -10
  49. package/lib/cjs/controller/componentController.js +5 -5
  50. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  51. package/lib/esm/assets/Audios.js +1 -0
  52. package/lib/esm/assets/Icons.js +11 -0
  53. package/lib/esm/common/Constants.js +48 -5
  54. package/lib/esm/common/telemetry/TelemetryConstants.js +52 -5
  55. package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
  56. package/lib/esm/common/telemetry/TelemetryManager.js +15 -6
  57. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  58. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  59. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +36 -14
  60. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -5
  61. package/lib/esm/common/utils.js +55 -1
  62. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  63. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -7
  64. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -36
  65. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  66. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  67. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -11
  68. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  69. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +25 -24
  70. package/lib/esm/components/livechatwidget/common/endChat.js +139 -50
  71. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +1 -1
  72. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +42 -11
  73. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +98 -23
  74. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +5 -14
  75. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -9
  76. package/lib/esm/components/livechatwidget/common/startChat.js +142 -54
  77. package/lib/esm/components/livechatwidget/interfaces/IAuthProps.js +1 -0
  78. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +221 -79
  79. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  80. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +7 -11
  81. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +20 -4
  82. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +72 -0
  83. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  84. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  85. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  86. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  87. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  88. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  89. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  90. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  91. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  92. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  93. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  94. package/lib/esm/contexts/common/ConversationState.js +4 -2
  95. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +9 -7
  96. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +8 -3
  97. package/lib/esm/contexts/createReducer.js +16 -9
  98. package/lib/esm/controller/componentController.js +5 -5
  99. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  100. package/lib/types/assets/Audios.d.ts +1 -0
  101. package/lib/types/assets/Icons.d.ts +11 -0
  102. package/lib/types/common/Constants.d.ts +26 -2
  103. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  104. package/lib/types/common/telemetry/TelemetryConstants.d.ts +40 -4
  105. package/lib/types/common/telemetry/TelemetryHelper.d.ts +3 -1
  106. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  107. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  108. package/lib/types/common/utils.d.ts +6 -0
  109. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  110. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  111. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  112. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  113. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  114. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  115. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  116. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  117. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
  118. package/lib/types/components/livechatwidget/interfaces/IAuthProps.d.ts +4 -0
  119. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  120. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -1
  121. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  122. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  123. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  124. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  125. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  126. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  127. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -2
  128. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  129. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  130. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  131. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  132. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  133. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  134. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -1
  135. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +10 -8
  136. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  137. package/package.json +9 -11
  138. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  139. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  140. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  141. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  142. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  143. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  144. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  145. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  146. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  147. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  148. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  149. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  150. package/lib/esm/assets/assets.d.js +0 -0
  151. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  152. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  153. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  154. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  155. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  156. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  157. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  158. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  159. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  160. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  161. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  162. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -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,10 @@ _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
+
161
+ _defineProperty(Constants, "PostChatLoadingDurationInMs", 2000);
162
+
147
163
  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
164
  export class HtmlIdNames {}
149
165
 
@@ -253,6 +269,15 @@ export let ChatSDKError;
253
269
  ChatSDKError["WidgetUseOutsideOperatingHour"] = "WidgetUseOutsideOperatingHour";
254
270
  })(ChatSDKError || (ChatSDKError = {}));
255
271
 
272
+ export let EnvironmentVersion;
273
+
274
+ (function (EnvironmentVersion) {
275
+ EnvironmentVersion["prod"] = "prod";
276
+ EnvironmentVersion["dogfood"] = "df";
277
+ EnvironmentVersion["int"] = "int";
278
+ EnvironmentVersion["test"] = "test";
279
+ })(EnvironmentVersion || (EnvironmentVersion = {}));
280
+
256
281
  export class TranscriptConstants {}
257
282
 
258
283
  _defineProperty(TranscriptConstants, "ChatTranscriptsBodyColor", "#F5F5F5");
@@ -273,4 +298,22 @@ _defineProperty(TranscriptConstants, "InternalMode", "internal");
273
298
 
274
299
  _defineProperty(TranscriptConstants, "AgentDialogColor", "#2266E3");
275
300
 
276
- _defineProperty(TranscriptConstants, "AgentFontColor", "white");
301
+ _defineProperty(TranscriptConstants, "AgentFontColor", "white");
302
+
303
+ export class AriaTelemetryConstants {}
304
+
305
+ _defineProperty(AriaTelemetryConstants, "GERMANY_ENDPOINT", "https://de.pipe.aria.microsoft.com/Collector/3.0/");
306
+
307
+ _defineProperty(AriaTelemetryConstants, "GCCH_ENDPOINT", "https://tb.pipe.aria.microsoft.com/Collector/3.0/");
308
+
309
+ _defineProperty(AriaTelemetryConstants, "DOD_ENDPOINT", "https://pf.pipe.aria.microsoft.com/Collector/3.0");
310
+
311
+ _defineProperty(AriaTelemetryConstants, "EUROPE_ENDPOINT", "https://eu-mobile.events.data.microsoft.com/Collector/3.0/");
312
+
313
+ _defineProperty(AriaTelemetryConstants, "MOONCAKE_ENDPOINT", "");
314
+
315
+ _defineProperty(AriaTelemetryConstants, "Public", "Public");
316
+
317
+ _defineProperty(AriaTelemetryConstants, "EU", "Europe");
318
+
319
+ _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,35 @@ 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["ClosePopoutWindow"] = "ClosePopoutWindow";
52
+ })(BroadcastEvent || (BroadcastEvent = {}));
53
+
25
54
  export let TelemetryEvent;
26
55
 
27
56
  (function (TelemetryEvent) {
@@ -70,7 +99,10 @@ export let TelemetryEvent;
70
99
  TelemetryEvent["PrechatSurveyLoaded"] = "PrechatSurveyLoaded";
71
100
  TelemetryEvent["PrechatSubmitted"] = "PrechatSubmitted";
72
101
  TelemetryEvent["StartChatSDKCall"] = "StartChatCall";
73
- TelemetryEvent["EndChatSDKCall"] = "EndChatCall";
102
+ TelemetryEvent["StartChatEventRecevied"] = "StartChatEventReceived";
103
+ TelemetryEvent["EndChatSDKCall"] = "EndChatSDKCall";
104
+ TelemetryEvent["EndChatEventReceived"] = "EndChatEventReceived";
105
+ TelemetryEvent["WindowClosed"] = "WindowClosed";
74
106
  TelemetryEvent["OnNewMessageFailed"] = "OnNewMessageFailed";
75
107
  TelemetryEvent["OnNewMessageAudioNotificationFailed"] = "OnNewMessageAudioNotificationFailed";
76
108
  TelemetryEvent["DownloadTranscriptResponseNullOrUndefined"] = "DownloadTranscriptResponseNullOrUndefined";
@@ -84,6 +116,7 @@ export let TelemetryEvent;
84
116
  TelemetryEvent["LoadingPaneLoaded"] = "LoadingPaneLoaded";
85
117
  TelemetryEvent["EmailTranscriptLoaded"] = "EmailTranscriptLoaded";
86
118
  TelemetryEvent["OutOfOfficePaneLoaded"] = "OutOfOfficePaneLoaded";
119
+ TelemetryEvent["PostChatSurveyLoadingPaneLoaded"] = "PostChatSurveyLoadingPaneLoaded";
87
120
  TelemetryEvent["PostChatSurveyLoaded"] = "PostChatSurveyLoaded";
88
121
  TelemetryEvent["ConfirmationPaneLoaded"] = "ConfirmationPaneLoaded";
89
122
  TelemetryEvent["ProactiveChatPaneLoaded"] = "ProactiveChatPaneLoaded";
@@ -94,6 +127,10 @@ export let TelemetryEvent;
94
127
  TelemetryEvent["EmailTranscriptButtonClicked"] = "EmailTranscriptButtonClicked";
95
128
  TelemetryEvent["EmailTranscriptCancelButtonClicked"] = "EmailTranscriptCancelButtonClicked";
96
129
  TelemetryEvent["AudioToggleButtonClicked"] = "AudioToggleButtonClicked";
130
+ TelemetryEvent["SuppressBotMagicCodeSucceeded"] = "SuppressBotMagicCodeSucceeded";
131
+ TelemetryEvent["SuppressBotMagicCodeFailed"] = "SuppressBotMagicCodeFailed";
132
+ TelemetryEvent["GetConversationDetailsException"] = "GetConversationDetailsException";
133
+ TelemetryEvent["BrowserUnloadEventStarted"] = "BrowserUnloadEventStarted";
97
134
  TelemetryEvent["ProcessingHTMLTextMiddlewareFailed"] = "ProcessingHTMLTextMiddlewareFailed";
98
135
  TelemetryEvent["ProcessingSanitizationMiddlewareFailed"] = "ProcessingSanitizationMiddlewareFailed";
99
136
  TelemetryEvent["FormatTagsMiddlewareJSONStringifyFailed"] = "FormatTagsMiddlewareJSONStringifyFailed";
@@ -105,6 +142,7 @@ export let TelemetryEvent;
105
142
  TelemetryEvent["InvalidConfiguration"] = "InvalidConfiguration";
106
143
  TelemetryEvent["SendTypingIndicatorSucceeded"] = "SendTypingIndicatorSucceeded";
107
144
  TelemetryEvent["SendTypingIndicatorFailed"] = "SendTypingIndicatorFailed";
145
+ TelemetryEvent["WebChatEvent"] = "WebChatEvent";
108
146
  TelemetryEvent["PreChatSurveyStartChatMethodFailed"] = "PreChatSurveyStartChatMethodFailed";
109
147
  TelemetryEvent["ChatAlreadyTriggered"] = "ChatAlreadyTriggered";
110
148
  TelemetryEvent["StartProactiveChatEventReceived"] = "StartProactiveChatEventReceived";
@@ -113,12 +151,12 @@ export let TelemetryEvent;
113
151
  TelemetryEvent["ProactiveChatRejected"] = "ProactiveChatRejected";
114
152
  TelemetryEvent["IncomingProactiveChatScreenLoaded"] = "IncomingProactiveChatScreenLoaded";
115
153
  TelemetryEvent["ProactiveChatClosed"] = "ProactiveChatClosed";
116
- TelemetryEvent["ProactiveChatStartChat"] = "ProactiveChatStartChat";
117
- TelemetryEvent["ProactiveChatStartPopoutChat"] = "ProactiveChatStartPopoutChat";
118
154
  TelemetryEvent["ReconnectChatContinueConversation"] = "ReconnectChatContinueConversation";
119
155
  TelemetryEvent["ReconnectChatStartNewConversation"] = "ReconnectChatStartNewConversation";
120
156
  TelemetryEvent["ReconnectChatMinimize"] = "ReconnectChatMinimize";
121
- TelemetryEvent["ChatWidgetStateChanged"] = "ChatWidgetStateChanged";
157
+ TelemetryEvent["MessageSent"] = "MessageSent";
158
+ TelemetryEvent["MessageReceived"] = "MessageReceived";
159
+ TelemetryEvent["CustomContextReceived"] = "CustomContextReceived";
122
160
  })(TelemetryEvent || (TelemetryEvent = {}));
123
161
 
124
162
  export class TelemetryConstants {
@@ -134,6 +172,7 @@ export class TelemetryConstants {
134
172
  case TelemetryEvent.LCWChatButtonShow:
135
173
  case TelemetryEvent.PrechatSurveyLoaded:
136
174
  case TelemetryEvent.LoadingPaneLoaded:
175
+ case TelemetryEvent.PostChatSurveyLoadingPaneLoaded:
137
176
  case TelemetryEvent.PostChatSurveyLoaded:
138
177
  case TelemetryEvent.EmailTranscriptLoaded:
139
178
  case TelemetryEvent.OutOfOfficePaneLoaded:
@@ -160,15 +199,23 @@ export class TelemetryConstants {
160
199
  case TelemetryEvent.PreChatSurveyStartChatMethodFailed:
161
200
  case TelemetryEvent.HeaderCloseButtonClicked:
162
201
  case TelemetryEvent.HeaderMinimizeButtonClicked:
202
+ case TelemetryEvent.MessageSent:
203
+ case TelemetryEvent.MessageReceived:
204
+ case TelemetryEvent.CustomContextReceived:
205
+ case TelemetryEvent.BrowserUnloadEventStarted:
163
206
  return ScenarioType.ACTIONS;
164
207
 
165
208
  case TelemetryEvent.StartChatSDKCall:
209
+ case TelemetryEvent.StartChatEventRecevied:
166
210
  case TelemetryEvent.StartChatMethodException:
167
211
  case TelemetryEvent.CloseChatMethodException:
212
+ case TelemetryEvent.StartProactiveChatEventReceived:
168
213
  case TelemetryEvent.StartProactiveChatMethodFailed:
169
214
  case TelemetryEvent.OnNewMessageFailed:
170
215
  case TelemetryEvent.OnNewMessageAudioNotificationFailed:
171
216
  case TelemetryEvent.GetConversationDetailsCallFailed:
217
+ case TelemetryEvent.EndChatSDKCall:
218
+ case TelemetryEvent.EndChatEventReceived:
172
219
  case TelemetryEvent.EndChatSDKCallFailed:
173
220
  case TelemetryEvent.PostChatContextCallFailed:
174
221
  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) {
@@ -1,5 +1,7 @@
1
- import { Constants, LocaleConstants } from "./Constants";
1
+ import { AriaTelemetryConstants, Constants, LocaleConstants } from "./Constants";
2
+ import { DataStoreManager } from "./contextDataStore/DataStoreManager";
2
3
  import { KeyCodes } from "./KeyCodes";
4
+ import { BroadcastEvent } from "./telemetry/TelemetryConstants";
3
5
 
4
6
  const getElementBySelector = selector => {
5
7
  let element;
@@ -276,4 +278,56 @@ export const createTimer = () => {
276
278
  }
277
279
 
278
280
  };
281
+ }; // Returns the domain of the org
282
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
283
+
284
+ export const getDomain = hostValue => {
285
+ for (let i = 0; i < AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
286
+ if (hostValue.endsWith(AriaTelemetryConstants.lcwEUDomainNames[i])) {
287
+ return AriaTelemetryConstants.EU;
288
+ }
289
+ }
290
+
291
+ return AriaTelemetryConstants.Public;
292
+ };
293
+ export const getWidgetCacheId = (orgId, widgetId) => {
294
+ return `${Constants.ChatWidgetStateChangedPrefix}_${orgId}_${widgetId}`;
295
+ };
296
+ export const getWidgetEndChatEventName = (orgId, widgetId) => {
297
+ return `${BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
298
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
299
+
300
+ export const getStateFromCache = (orgId, widgetId) => {
301
+ // Getting updated state from cache
302
+ try {
303
+ if (DataStoreManager.clientDataStore) {
304
+ var _DataStoreManager$cli;
305
+
306
+ const widgetStateEventName = getWidgetCacheId(orgId, widgetId);
307
+ const widgetStateFromCache = (_DataStoreManager$cli = DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
308
+ const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
309
+ return persistedState;
310
+ } else {
311
+ return null;
312
+ }
313
+ } catch (error) {
314
+ console.log(error);
315
+ return null;
316
+ }
317
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
318
+
319
+ export const isUndefinedOrEmpty = object => {
320
+ if (object) {
321
+ if (Object.keys(object).length === 0) {
322
+ return true;
323
+ }
324
+
325
+ return false;
326
+ } else {
327
+ return true;
328
+ }
329
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
330
+
331
+ export const addDelayInMs = ms => {
332
+ return new Promise(resolve => setTimeout(resolve, ms));
279
333
  };
@@ -177,6 +177,20 @@ export const CallingContainerStateful = props => {
177
177
  });
178
178
  }
179
179
  });
180
+ window.addEventListener("beforeunload", () => {
181
+ if (state.uiStates.isIncomingCall) {
182
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.rejectCall();
183
+ } else {
184
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.stopCall();
185
+ }
186
+
187
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.close();
188
+ dispatch({
189
+ type: LiveChatWidgetActionType.SET_E2VV_ENABLED,
190
+ payload: false
191
+ });
192
+ resetCallingStates(true);
193
+ });
180
194
  }, []);
181
195
  const controlProps = {
182
196
  id: "oc-lcw-callingcontainer",
@@ -1,6 +1,6 @@
1
- import { LogLevel, TelemetryEvent } from "../../common/telemetry/TelemetryConstants";
2
- import React, { useEffect, useState } from "react";
3
- import { ChatButton } from "@microsoft/omnichannel-chat-components";
1
+ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../../common/telemetry/TelemetryConstants";
2
+ import React, { useEffect, useRef, useState } from "react";
3
+ import { BroadcastService, ChatButton } from "@microsoft/omnichannel-chat-components";
4
4
  import { Constants } from "../../common/Constants";
5
5
  import { setFocusOnElement } from "../../common/utils";
6
6
  import { ConversationState } from "../../contexts/common/ConversationState";
@@ -10,7 +10,7 @@ import { TelemetryTimers } from "../../common/telemetry/TelemetryManager";
10
10
  import { defaultOutOfOfficeChatButtonStyleProps } from "./common/styleProps/defaultOutOfOfficeChatButtonStyleProps";
11
11
  import useChatContextStore from "../../hooks/useChatContextStore";
12
12
  export const ChatButtonStateful = props => {
13
- var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP;
13
+ var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP, _props$buttonProps, _props$buttonProps$co, _props$buttonProps2, _props$buttonProps2$c, _props$buttonProps3, _props$buttonProps3$c;
14
14
 
15
15
  const [state, dispatch] = useChatContextStore();
16
16
  const {
@@ -20,20 +20,26 @@ export const ChatButtonStateful = props => {
20
20
  } = props; //Setting OutOfOperatingHours Flag
21
21
 
22
22
  const [outOfOperatingHours, setOutOfOperatingHours] = useState(((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.OutOfOperatingHours) === "True");
23
+ const proactiveChatInNewWindow = useRef(state.appStates.proactiveChatStates.proactiveChatInNewWindow);
23
24
  const outOfOfficeStyleProps = Object.assign({}, defaultOutOfOfficeChatButtonStyleProps, outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.styleProps);
24
25
  const controlProps = {
25
26
  id: "oc-lcw-chat-button",
26
27
  dir: state.domainStates.globalDir,
27
28
  titleText: "Let's Chat!",
28
29
  subtitleText: "We're online.",
29
- hideNotificationBubble: !(state.appStates.isMinimized === true && state.appStates.unreadMessageCount > 0) || (buttonProps === null || buttonProps === void 0 ? void 0 : (_buttonProps$controlP = buttonProps.controlProps) === null || _buttonProps$controlP === void 0 ? void 0 : _buttonProps$controlP.hideNotificationBubble) === true,
30
- unreadMessageCount: state.appStates.unreadMessageCount ? state.appStates.unreadMessageCount > Constants.maximumUnreadMessageCount ? Constants.maximumUnreadMessageCount.toString() + "+" : state.appStates.unreadMessageCount.toString() : "0",
30
+ hideNotificationBubble: (buttonProps === null || buttonProps === void 0 ? void 0 : (_buttonProps$controlP = buttonProps.controlProps) === null || _buttonProps$controlP === void 0 ? void 0 : _buttonProps$controlP.hideNotificationBubble) === true || state.appStates.isMinimized === false,
31
+ unreadMessageCount: state.appStates.unreadMessageCount ? state.appStates.unreadMessageCount > Constants.maximumUnreadMessageCount ? (_props$buttonProps = props.buttonProps) === null || _props$buttonProps === void 0 ? void 0 : (_props$buttonProps$co = _props$buttonProps.controlProps) === null || _props$buttonProps$co === void 0 ? void 0 : _props$buttonProps$co.largeUnreadMessageString : state.appStates.unreadMessageCount.toString() : "0",
31
32
  onClick: async () => {
32
33
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
33
34
  Event: TelemetryEvent.LCWChatButtonClicked
34
35
  });
35
36
 
36
- if (state.appStates.isMinimized) {
37
+ if (proactiveChatInNewWindow.current) {
38
+ const proactiveChatIsInPopoutModeEvent = {
39
+ eventName: BroadcastEvent.ProactiveChatIsInPopoutMode
40
+ };
41
+ BroadcastService.postMessage(proactiveChatIsInPopoutModeEvent);
42
+ } else if (state.appStates.isMinimized) {
37
43
  dispatch({
38
44
  type: LiveChatWidgetActionType.SET_MINIMIZED,
39
45
  payload: false
@@ -42,6 +48,7 @@ export const ChatButtonStateful = props => {
42
48
  await startChat();
43
49
  }
44
50
  },
51
+ unreadMessageString: (_props$buttonProps2 = props.buttonProps) === null || _props$buttonProps2 === void 0 ? void 0 : (_props$buttonProps2$c = _props$buttonProps2.controlProps) === null || _props$buttonProps2$c === void 0 ? void 0 : _props$buttonProps2$c.unreadMessageString,
45
52
  ...(buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.controlProps)
46
53
  };
47
54
  const outOfOfficeControlProps = {
@@ -50,6 +57,10 @@ export const ChatButtonStateful = props => {
50
57
  titleText: "We're Offline",
51
58
  subtitleText: "No agents available",
52
59
  onClick: async () => {
60
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
61
+ Event: TelemetryEvent.LCWChatButtonClicked
62
+ });
63
+
53
64
  if (state.appStates.isMinimized) {
54
65
  dispatch({
55
66
  type: LiveChatWidgetActionType.SET_MINIMIZED,
@@ -62,6 +73,7 @@ export const ChatButtonStateful = props => {
62
73
  });
63
74
  }
64
75
  },
76
+ unreadMessageString: (_props$buttonProps3 = props.buttonProps) === null || _props$buttonProps3 === void 0 ? void 0 : (_props$buttonProps3$c = _props$buttonProps3.controlProps) === null || _props$buttonProps3$c === void 0 ? void 0 : _props$buttonProps3$c.unreadMessageString,
65
77
  ...(outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.controlProps)
66
78
  };
67
79
  useEffect(() => {
@@ -83,6 +95,9 @@ export const ChatButtonStateful = props => {
83
95
  });
84
96
  }
85
97
  }, []);
98
+ useEffect(() => {
99
+ proactiveChatInNewWindow.current = state.appStates.proactiveChatStates.proactiveChatInNewWindow;
100
+ }, [state.appStates.proactiveChatStates.proactiveChatInNewWindow]);
86
101
  return /*#__PURE__*/React.createElement(ChatButton, {
87
102
  componentOverrides: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.componentOverrides,
88
103
  controlProps: outOfOperatingHours ? outOfOfficeControlProps : controlProps,