@microsoft/omnichannel-chat-widget 0.1.0-main.86df755 → 0.1.0-main.886e5cf

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 (186) hide show
  1. package/README.md +259 -0
  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 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +14 -0
  6. package/lib/cjs/{assets/assets.d.js → common/interfaces/IContextDataStore.js} +0 -0
  7. package/lib/cjs/common/telemetry/TelemetryConstants.js +59 -4
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +22 -4
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +28 -9
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  12. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +48 -15
  13. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +9 -5
  14. package/lib/cjs/common/utils.js +76 -2
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +28 -5
  17. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -54
  18. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  19. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  20. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  21. package/lib/cjs/components/headerstateful/HeaderStateful.js +13 -10
  22. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  23. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +53 -48
  24. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +14 -0
  25. package/lib/cjs/components/livechatwidget/common/endChat.js +142 -43
  26. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  27. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +48 -11
  28. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +107 -22
  29. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -7
  30. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +22 -24
  31. package/lib/cjs/components/livechatwidget/common/startChat.js +179 -41
  32. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  33. package/lib/cjs/components/livechatwidget/interfaces/IAuthProps.js +1 -0
  34. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +249 -67
  35. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  36. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  37. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  38. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  39. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -5
  40. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  41. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +80 -0
  42. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  43. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  44. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  45. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  46. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  47. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  48. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  49. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  50. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  51. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  52. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  53. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  54. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +13 -7
  55. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +13 -5
  56. package/lib/cjs/contexts/createReducer.js +43 -10
  57. package/lib/cjs/controller/componentController.js +5 -5
  58. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  59. package/lib/esm/assets/Audios.js +1 -0
  60. package/lib/esm/assets/Icons.js +11 -0
  61. package/lib/esm/common/Constants.js +48 -3
  62. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  63. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  64. package/lib/esm/common/telemetry/TelemetryConstants.js +55 -3
  65. package/lib/esm/common/telemetry/TelemetryHelper.js +22 -5
  66. package/lib/esm/common/telemetry/TelemetryManager.js +22 -9
  67. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  68. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  69. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +50 -15
  70. package/lib/esm/common/telemetry/loggers/consoleLogger.js +9 -5
  71. package/lib/esm/common/utils.js +55 -1
  72. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  73. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +31 -8
  74. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -50
  75. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  76. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  77. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  78. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -11
  79. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  80. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +51 -49
  81. package/lib/esm/components/livechatwidget/common/disposeTelemetryLoggers.js +4 -0
  82. package/lib/esm/components/livechatwidget/common/endChat.js +139 -42
  83. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  84. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +42 -12
  85. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +98 -23
  86. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -3
  87. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +19 -22
  88. package/lib/esm/components/livechatwidget/common/startChat.js +172 -39
  89. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  90. package/lib/esm/components/livechatwidget/interfaces/IAuthProps.js +1 -0
  91. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +235 -71
  92. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  93. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  94. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  95. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  96. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -6
  97. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  98. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +72 -0
  99. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  100. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  101. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  102. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  103. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  104. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  105. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  106. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  107. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  108. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  109. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  110. package/lib/esm/contexts/common/ConversationState.js +4 -2
  111. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +13 -7
  112. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +13 -5
  113. package/lib/esm/contexts/createReducer.js +43 -9
  114. package/lib/esm/controller/componentController.js +5 -5
  115. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  116. package/lib/types/assets/Audios.d.ts +1 -0
  117. package/lib/types/assets/Icons.d.ts +11 -0
  118. package/lib/types/common/Constants.d.ts +26 -1
  119. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  120. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  121. package/lib/types/common/telemetry/TelemetryConstants.d.ts +43 -2
  122. package/lib/types/common/telemetry/TelemetryHelper.d.ts +3 -1
  123. package/lib/types/common/telemetry/TelemetryManager.d.ts +1 -0
  124. package/lib/types/common/telemetry/definitions/Contracts.d.ts +3 -0
  125. package/lib/types/common/telemetry/definitions/Payload.d.ts +15 -9
  126. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
  127. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
  128. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +12 -0
  129. package/lib/types/common/utils.d.ts +6 -0
  130. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  131. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  132. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  133. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  134. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -0
  135. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  136. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  137. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  138. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  139. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  140. package/lib/types/components/livechatwidget/interfaces/IAuthProps.d.ts +4 -0
  141. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  142. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -1
  143. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  144. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  145. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  146. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  147. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  148. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  149. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  150. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  151. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -2
  152. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  153. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  154. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  155. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  156. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  157. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  158. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +5 -1
  159. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +14 -8
  160. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  161. package/package.json +11 -11
  162. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  163. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  164. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  165. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  166. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  167. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  168. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  169. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  170. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  171. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  172. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  173. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  174. package/lib/esm/assets/assets.d.js +0 -0
  175. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  176. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  177. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  178. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  179. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  180. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  181. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  182. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  183. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  184. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  185. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  186. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -109,6 +109,8 @@ class TelemetryHelper {
109
109
  static conformToLoadContract(level, input) {
110
110
  const payload = input.payload;
111
111
  return TelemetryHelper.populate(level, payload, event => {
112
+ var _TelemetryManager$Int11, _TelemetryManager$Int12, _TelemetryManager$Int13;
113
+
112
114
  event.Event = payload.Event;
113
115
  event.ResourcePath = payload.ResourcePath;
114
116
  event.WidgetState = payload.WidgetState;
@@ -116,16 +118,19 @@ class TelemetryHelper {
116
118
  event.ChatType = payload.ChatType;
117
119
  event.ElapsedTimeInMilliseconds = payload.ElapsedTimeInMilliseconds;
118
120
  event.ExceptionDetails = JSON.stringify(payload.ExceptionDetails);
121
+ event.OCChatSDKVersion = ((_TelemetryManager$Int11 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int11 === void 0 ? void 0 : _TelemetryManager$Int11.OCChatSDKVersion) ?? "";
122
+ event.OCChatWidgetVersion = ((_TelemetryManager$Int12 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int12 === void 0 ? void 0 : _TelemetryManager$Int12.chatWidgetVersion) ?? "";
123
+ event.OCChatComponentsVersion = ((_TelemetryManager$Int13 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int13 === void 0 ? void 0 : _TelemetryManager$Int13.chatComponentVersion) ?? "";
119
124
  });
120
125
  }
121
126
 
122
127
  static conformToIC3ClientContract(level, input) {
123
128
  const payload = input.payload;
124
129
  return TelemetryHelper.populate(level, payload, event => {
125
- var _TelemetryManager$Int11;
130
+ var _TelemetryManager$Int14;
126
131
 
127
132
  event.Event = payload.Event;
128
- event.IC3ClientVersion = (_TelemetryManager$Int11 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int11 === void 0 ? void 0 : _TelemetryManager$Int11.IC3ClientVersion;
133
+ event.IC3ClientVersion = (_TelemetryManager$Int14 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int14 === void 0 ? void 0 : _TelemetryManager$Int14.IC3ClientVersion;
129
134
  event.SubscriptionId = payload.SubscriptionId;
130
135
  event.EndpointUrl = payload.EndpointUrl;
131
136
  event.EndpointId = payload.EndpointId;
@@ -249,14 +254,14 @@ _defineProperty(TelemetryHelper, "logActionEvent", (logLevel, payload) => {
249
254
  });
250
255
 
251
256
  _defineProperty(TelemetryHelper, "logSDKEvent", (logLevel, payload) => {
252
- var _TelemetryManager$Int12;
257
+ var _TelemetryManager$Int15;
253
258
 
254
259
  const telemetryEvent = {
255
260
  eventName: (payload === null || payload === void 0 ? void 0 : payload.Event) ?? "",
256
261
  logLevel: logLevel,
257
262
  payload: { ...payload,
258
263
  TransactionId: (0, _utils.newGuid)(),
259
- RequestId: (_TelemetryManager$Int12 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int12 === void 0 ? void 0 : _TelemetryManager$Int12.currentRequestId
264
+ RequestId: (_TelemetryManager$Int15 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int15 === void 0 ? void 0 : _TelemetryManager$Int15.currentRequestId
260
265
  }
261
266
  };
262
267
 
@@ -271,5 +276,18 @@ _defineProperty(TelemetryHelper, "logConfigDataEvent", (logLevel, payload) => {
271
276
  }
272
277
  };
273
278
 
279
+ _omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
280
+ });
281
+
282
+ _defineProperty(TelemetryHelper, "logWebChatEvent", (logLevel, payload) => {
283
+ const telemetryEvent = {
284
+ eventName: _TelemetryConstants.TelemetryEvent.WebChatEvent,
285
+ logLevel: logLevel,
286
+ payload: { ...payload,
287
+ type: _TelemetryConstants.TelemetryEvent.WebChatEvent,
288
+ scenarioType: _TelemetryConstants.ScenarioType.WEBCHAT
289
+ }
290
+ };
291
+
274
292
  _omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
275
293
  });
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TelemetryTimers = exports.TelemetryManager = exports.RegisterLoggers = void 0;
6
+ exports.disposeLoggers = exports.TelemetryTimers = exports.TelemetryManager = exports.RegisterLoggers = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("./TelemetryConstants");
9
9
 
@@ -13,6 +13,10 @@ var _ariaTelemetryLogger = require("./loggers/ariaTelemetryLogger");
13
13
 
14
14
  var _consoleLogger = require("./loggers/consoleLogger");
15
15
 
16
+ var _defaultAriaConfig = require("./defaultConfigs/defaultAriaConfig");
17
+
18
+ var _TelemetryHelper = require("./TelemetryHelper");
19
+
16
20
  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; }
17
21
 
18
22
  class TelemetryTimers {}
@@ -31,31 +35,39 @@ exports.TelemetryManager = TelemetryManager;
31
35
 
32
36
  _defineProperty(TelemetryManager, "InternalTelemetryData", void 0);
33
37
 
34
- const RegisterLoggers = () => {
35
- const loggers = [];
38
+ const loggers = [];
39
+
40
+ const disposeLoggers = () => {
41
+ loggers.map(logger => {
42
+ logger.dispose();
43
+ });
44
+ };
45
+
46
+ exports.disposeLoggers = disposeLoggers;
36
47
 
48
+ const RegisterLoggers = () => {
37
49
  const registerLoggers = () => {
38
50
  var _TelemetryManager$Int, _TelemetryManager$Int2, _TelemetryManager$Int3, _TelemetryManager$Int4, _TelemetryManager$Int5, _TelemetryManager$Int6, _TelemetryManager$Int7, _TelemetryManager$Int8;
39
51
 
40
- 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)) {
52
+ 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) {
41
53
  _omnichannelChatComponents.BroadcastService.getAnyMessage().subscribe(event => {
42
- if (event.payload) {
54
+ if (event.payload && event.eventName in _TelemetryConstants.TelemetryEvent) {
43
55
  logTelemetry(event);
44
56
  }
45
57
  });
46
58
  }
47
59
 
48
- if (!((_TelemetryManager$Int5 = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int5 !== void 0 && (_TelemetryManager$Int6 = _TelemetryManager$Int5.telemetryConfig) !== null && _TelemetryManager$Int6 !== void 0 && _TelemetryManager$Int6.disableConsoleLog)) {
60
+ 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) {
49
61
  loggers.push((0, _consoleLogger.consoleLogger)());
50
62
  }
51
63
 
52
- if (!((_TelemetryManager$Int7 = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int7 !== void 0 && (_TelemetryManager$Int8 = _TelemetryManager$Int7.telemetryConfig) !== null && _TelemetryManager$Int8 !== void 0 && _TelemetryManager$Int8.telemetryDisabled)) {
64
+ 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) {
53
65
  var _TelemetryManager$Int9, _TelemetryManager$Int18, _TelemetryManager$Int19;
54
66
 
55
67
  if ((_TelemetryManager$Int9 = TelemetryManager.InternalTelemetryData) !== null && _TelemetryManager$Int9 !== void 0 && _TelemetryManager$Int9.ariaConfig) {
56
68
  var _TelemetryManager$Int10, _TelemetryManager$Int11, _TelemetryManager$Int12, _TelemetryManager$Int13, _TelemetryManager$Int14, _TelemetryManager$Int15, _TelemetryManager$Int16, _TelemetryManager$Int17;
57
69
 
58
- loggers.push((0, _ariaTelemetryLogger.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"));
70
+ loggers.push((0, _ariaTelemetryLogger.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.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.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.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.defaultAriaConfig.ariaTelemetryApplicationName));
59
71
  }
60
72
 
61
73
  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;
@@ -78,8 +90,15 @@ const RegisterLoggers = () => {
78
90
 
79
91
  const logTelemetry = telemetryEvent => {
80
92
  loggers.map(logger => {
93
+ var _payload;
94
+
81
95
  const logLevel = telemetryEvent.logLevel ?? _TelemetryConstants.LogLevel.INFO;
82
- logger.log(logLevel, parseInput(telemetryEvent === null || telemetryEvent === void 0 ? void 0 : telemetryEvent.payload));
96
+ const scenarioType = ((_payload = telemetryEvent.payload) === null || _payload === void 0 ? void 0 : _payload.scenarioType) ?? _TelemetryConstants.ScenarioType.UNDEFINED;
97
+ const telemetryInput = parseInput(telemetryEvent === null || telemetryEvent === void 0 ? void 0 : telemetryEvent.payload, scenarioType);
98
+ telemetryInput.telemetryInfo = {
99
+ telemetryInfo: _TelemetryHelper.TelemetryHelper.buildTelemetryEvent(logLevel, telemetryInput)
100
+ };
101
+ logger.log(logLevel, telemetryInput);
83
102
  });
84
103
  };
85
104
 
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.defaultAriaConfig = void 0;
7
7
  const defaultAriaConfig = {
8
- collectorUriForTelemetry: "https://browser.pipe.aria.microsoft.com/Collector/3.0/",
9
- ariaTelemetryKey: "1574efd98545488983328fac0c9bcb59-45c2ff50-ebcc-473d-949d-e3134ef2189e-6906",
10
- ariaTelemetryApplicationName: "D365_Omnichannel_Client_Sandbox",
8
+ collectorUriForTelemetry: "",
9
+ ariaTelemetryKey: "c7655518acf1403f93ff6b9f77942f0a-d01a02fd-6b50-4de3-a566-62eda11f93bc-7083",
10
+ ariaTelemetryApplicationName: "D365_Omnichannel_Client_Public_Prod",
11
11
  disableCookieUsage: true
12
12
  };
13
13
  exports.defaultAriaConfig = defaultAriaConfig;
@@ -11,6 +11,9 @@ const defaultTelemetryConfiguration = {
11
11
  telemetryDisabled: false,
12
12
  disableConsoleLog: false,
13
13
  telemetryLoggers: [],
14
- ariaConfigurations: _defaultAriaConfig.defaultAriaConfig
14
+ ariaConfigurations: _defaultAriaConfig.defaultAriaConfig,
15
+ chatWidgetVersion: "0.0.0-0",
16
+ chatComponentVersion: "0.0.0-0",
17
+ OCChatSDKVersion: "0.0.0-0"
15
18
  };
16
19
  exports.defaultTelemetryConfiguration = defaultTelemetryConfiguration;
@@ -15,7 +15,7 @@ var _Enums = require("@microsoft/omnichannel-chat-sdk/lib/external/aria/common/E
15
15
 
16
16
  var _Constants = require("../../Constants");
17
17
 
18
- var _TelemetryHelper = require("../TelemetryHelper");
18
+ var _TelemetryManager = require("../TelemetryManager");
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
@@ -30,9 +30,32 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
30
30
 
31
31
  if (!(0, _utils.isNullOrEmptyString)(collectiorUriForTelemetry)) {
32
32
  configuration.collectorUri = collectiorUriForTelemetry;
33
+ } else {
34
+ if (_TelemetryManager.TelemetryManager.InternalTelemetryData.environmentVersion == _Constants.EnvironmentVersion.prod) {
35
+ var _TelemetryManager$Int;
36
+
37
+ const orgUrl = (_TelemetryManager$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.orgUrl;
38
+
39
+ if (!(0, _utils.isNullOrUndefined)(orgUrl)) {
40
+ // If the given org is a Production EU org, modify the Aria collector uri
41
+ const region = (0, _utils.getDomain)(orgUrl);
42
+
43
+ if (region === _Constants.AriaTelemetryConstants.EU) {
44
+ configuration.collectorUri = _Constants.AriaTelemetryConstants.EUROPE_ENDPOINT;
45
+ }
46
+ }
47
+ }
33
48
  }
34
49
 
35
- _logger = _AWTLogManager.default.initialize(ariaTelemetryKey, configuration);
50
+ try {
51
+ _logger = _AWTLogManager.default.initialize(ariaTelemetryKey, configuration);
52
+
53
+ if (_logger === undefined) {
54
+ _logger = _AWTLogManager.default.getLogger(ariaTelemetryKey);
55
+ }
56
+ } catch (error) {
57
+ console.log(error);
58
+ }
36
59
  }
37
60
 
38
61
  return _logger;
@@ -40,20 +63,30 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
40
63
 
41
64
  const ariaLogger = {
42
65
  log: (logLevel, telemetryInput) => {
43
- let property;
44
- const eventProperties = new _AWTEventProperties.default();
45
-
46
- const event = _TelemetryHelper.TelemetryHelper.buildTelemetryEvent(logLevel, telemetryInput);
47
-
48
- eventProperties.setName(telemetryInput.scenarioType);
49
-
50
- for (const key of Object.keys(event)) {
51
- property = typeof event[key] === "object" ? JSON.stringify(event[key]) : event[key];
52
- eventProperties.setProperty(key, property);
66
+ try {
67
+ let property;
68
+ const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : telemetryInput.telemetryInfo;
69
+ const eventProperties = new _AWTEventProperties.default();
70
+ eventProperties.setName(telemetryInput.scenarioType);
71
+
72
+ if (telemetryInfo) {
73
+ for (const key of Object.keys(telemetryInfo)) {
74
+ property = typeof telemetryInfo[key] === "object" ? JSON.stringify(telemetryInfo[key]) : telemetryInfo[key];
75
+ eventProperties.setProperty(key, property);
76
+ }
77
+
78
+ eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, _Constants.Constants.LiveChatWidget, _Enums.AWTPiiKind.GenericData);
79
+ }
80
+
81
+ logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
82
+ } catch (error) {
83
+ console.error("Error in logging telemetry to Aria logger:" + error);
53
84
  }
54
-
55
- eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, _Constants.Constants.LiveChatWidget, _Enums.AWTPiiKind.GenericData);
56
- logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
85
+ },
86
+ dispose: () => {
87
+ _AWTLogManager.default.flush(function () {
88
+ console.log("Aria logger disposed");
89
+ });
57
90
  }
58
91
  };
59
92
  return ariaLogger;
@@ -13,32 +13,36 @@ const consoleLogger = () => {
13
13
  const consoleLogger = {
14
14
  log: (logLevel, telemetryInput) => {
15
15
  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 : "";
16
+ 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 : "";
16
17
 
17
18
  try {
18
19
  switch (logLevel) {
19
20
  case _TelemetryConstants.LogLevel.INFO:
20
- console.info(_Constants.Constants.LiveChatWidget, payload);
21
+ console.info(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
21
22
  break;
22
23
 
23
24
  case _TelemetryConstants.LogLevel.DEBUG:
24
- console.debug(_Constants.Constants.LiveChatWidget, payload);
25
+ console.debug(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
25
26
  break;
26
27
 
27
28
  case _TelemetryConstants.LogLevel.WARN:
28
- console.warn(_Constants.Constants.LiveChatWidget, payload);
29
+ console.warn(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
29
30
  break;
30
31
 
31
32
  case _TelemetryConstants.LogLevel.ERROR:
32
- console.error(_Constants.Constants.LiveChatWidget, payload);
33
+ console.error(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
33
34
  break;
34
35
 
35
36
  default:
36
- console.debug(_Constants.Constants.LiveChatWidget, payload);
37
+ console.debug(_Constants.Constants.LiveChatWidget, payload, telemetryInfo);
37
38
  break;
38
39
  }
39
40
  } catch (ex) {
40
41
  console.error("An unexpected error occurred in the Telemetry client: " + ex);
41
42
  }
43
+ },
44
+ dispose: () => {
45
+ console.log("disposing loggers");
42
46
  }
43
47
  };
44
48
  return consoleLogger;
@@ -3,12 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getTimestampHourMinute = exports.getLocaleDirection = exports.getIconText = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = void 0;
6
+ exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
7
7
 
8
8
  var _Constants = require("./Constants");
9
9
 
10
+ var _DataStoreManager = require("./contextDataStore/DataStoreManager");
11
+
10
12
  var _KeyCodes = require("./KeyCodes");
11
13
 
14
+ var _TelemetryConstants = require("./telemetry/TelemetryConstants");
15
+
12
16
  const getElementBySelector = selector => {
13
17
  let element;
14
18
 
@@ -332,6 +336,76 @@ const createTimer = () => {
332
336
  }
333
337
 
334
338
  };
339
+ }; // Returns the domain of the org
340
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
341
+
342
+
343
+ exports.createTimer = createTimer;
344
+
345
+ const getDomain = hostValue => {
346
+ for (let i = 0; i < _Constants.AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
347
+ if (hostValue.endsWith(_Constants.AriaTelemetryConstants.lcwEUDomainNames[i])) {
348
+ return _Constants.AriaTelemetryConstants.EU;
349
+ }
350
+ }
351
+
352
+ return _Constants.AriaTelemetryConstants.Public;
353
+ };
354
+
355
+ exports.getDomain = getDomain;
356
+
357
+ const getWidgetCacheId = (orgId, widgetId) => {
358
+ return `${_Constants.Constants.ChatWidgetStateChangedPrefix}_${orgId}_${widgetId}`;
359
+ };
360
+
361
+ exports.getWidgetCacheId = getWidgetCacheId;
362
+
363
+ const getWidgetEndChatEventName = (orgId, widgetId) => {
364
+ return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
365
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
366
+
367
+
368
+ exports.getWidgetEndChatEventName = getWidgetEndChatEventName;
369
+
370
+ const getStateFromCache = (orgId, widgetId) => {
371
+ // Getting updated state from cache
372
+ try {
373
+ if (_DataStoreManager.DataStoreManager.clientDataStore) {
374
+ var _DataStoreManager$cli;
375
+
376
+ const widgetStateEventName = getWidgetCacheId(orgId, widgetId);
377
+ const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
378
+ const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
379
+ return persistedState;
380
+ } else {
381
+ return null;
382
+ }
383
+ } catch (error) {
384
+ console.log(error);
385
+ return null;
386
+ }
387
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
388
+
389
+
390
+ exports.getStateFromCache = getStateFromCache;
391
+
392
+ const isUndefinedOrEmpty = object => {
393
+ if (object) {
394
+ if (Object.keys(object).length === 0) {
395
+ return true;
396
+ }
397
+
398
+ return false;
399
+ } else {
400
+ return true;
401
+ }
402
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
403
+
404
+
405
+ exports.isUndefinedOrEmpty = isUndefinedOrEmpty;
406
+
407
+ const addDelayInMs = ms => {
408
+ return new Promise(resolve => setTimeout(resolve, ms));
335
409
  };
336
410
 
337
- exports.createTimer = createTimer;
411
+ exports.addDelayInMs = addDelayInMs;
@@ -206,6 +206,20 @@ const CallingContainerStateful = props => {
206
206
  });
207
207
  }
208
208
  });
209
+ window.addEventListener("beforeunload", () => {
210
+ if (state.uiStates.isIncomingCall) {
211
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.rejectCall();
212
+ } else {
213
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.stopCall();
214
+ }
215
+
216
+ voiceVideoCallingSdk === null || voiceVideoCallingSdk === void 0 ? void 0 : voiceVideoCallingSdk.close();
217
+ dispatch({
218
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
219
+ payload: false
220
+ });
221
+ resetCallingStates(true);
222
+ });
209
223
  }, []);
210
224
  const controlProps = {
211
225
  id: "oc-lcw-callingcontainer",
@@ -34,7 +34,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
34
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
35
 
36
36
  const ChatButtonStateful = props => {
37
- var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP;
37
+ var _state$domainStates$l, _state$domainStates$l2, _buttonProps$controlP, _props$buttonProps, _props$buttonProps$co, _props$buttonProps2, _props$buttonProps2$c, _props$buttonProps3, _props$buttonProps3$c;
38
38
 
39
39
  const [state, dispatch] = (0, _useChatContextStore.default)();
40
40
  const {
@@ -44,20 +44,27 @@ const ChatButtonStateful = props => {
44
44
  } = props; //Setting OutOfOperatingHours Flag
45
45
 
46
46
  const [outOfOperatingHours, setOutOfOperatingHours] = (0, _react.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");
47
+ const proactiveChatInNewWindow = (0, _react.useRef)(state.appStates.proactiveChatStates.proactiveChatInNewWindow);
47
48
  const outOfOfficeStyleProps = Object.assign({}, _defaultOutOfOfficeChatButtonStyleProps.defaultOutOfOfficeChatButtonStyleProps, outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.styleProps);
48
49
  const controlProps = {
49
50
  id: "oc-lcw-chat-button",
50
51
  dir: state.domainStates.globalDir,
51
52
  titleText: "Let's Chat!",
52
53
  subtitleText: "We're online.",
53
- 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,
54
- unreadMessageCount: state.appStates.unreadMessageCount ? state.appStates.unreadMessageCount > _Constants.Constants.maximumUnreadMessageCount ? _Constants.Constants.maximumUnreadMessageCount.toString() + "+" : state.appStates.unreadMessageCount.toString() : "0",
54
+ 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,
55
+ unreadMessageCount: state.appStates.unreadMessageCount ? state.appStates.unreadMessageCount > _Constants.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",
55
56
  onClick: async () => {
56
57
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
57
58
  Event: _TelemetryConstants.TelemetryEvent.LCWChatButtonClicked
58
59
  });
59
60
 
60
- if (state.appStates.isMinimized) {
61
+ if (proactiveChatInNewWindow.current) {
62
+ const proactiveChatIsInPopoutModeEvent = {
63
+ eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatIsInPopoutMode
64
+ };
65
+
66
+ _omnichannelChatComponents.BroadcastService.postMessage(proactiveChatIsInPopoutModeEvent);
67
+ } else if (state.appStates.isMinimized) {
61
68
  dispatch({
62
69
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
63
70
  payload: false
@@ -66,6 +73,7 @@ const ChatButtonStateful = props => {
66
73
  await startChat();
67
74
  }
68
75
  },
76
+ 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,
69
77
  ...(buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.controlProps)
70
78
  };
71
79
  const outOfOfficeControlProps = {
@@ -74,6 +82,10 @@ const ChatButtonStateful = props => {
74
82
  titleText: "We're Offline",
75
83
  subtitleText: "No agents available",
76
84
  onClick: async () => {
85
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
86
+ Event: _TelemetryConstants.TelemetryEvent.LCWChatButtonClicked
87
+ });
88
+
77
89
  if (state.appStates.isMinimized) {
78
90
  dispatch({
79
91
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
@@ -86,6 +98,7 @@ const ChatButtonStateful = props => {
86
98
  });
87
99
  }
88
100
  },
101
+ 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,
89
102
  ...(outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.controlProps)
90
103
  };
91
104
  (0, _react.useEffect)(() => {
@@ -98,8 +111,18 @@ const ChatButtonStateful = props => {
98
111
  ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed
99
112
  });
100
113
 
101
- (0, _utils.setFocusOnElement)(document.getElementById((controlProps === null || controlProps === void 0 ? void 0 : controlProps.id) ?? "oc-lcw-chat-button"));
114
+ if (state.uiStates.focusChatButton) {
115
+ (0, _utils.setFocusOnElement)(document.getElementById((controlProps === null || controlProps === void 0 ? void 0 : controlProps.id) ?? "oc-lcw-chat-button"));
116
+ } else {
117
+ dispatch({
118
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_FOCUS_CHAT_BUTTON,
119
+ payload: true
120
+ });
121
+ }
102
122
  }, []);
123
+ (0, _react.useEffect)(() => {
124
+ proactiveChatInNewWindow.current = state.appStates.proactiveChatStates.proactiveChatInNewWindow;
125
+ }, [state.appStates.proactiveChatStates.proactiveChatInNewWindow]);
103
126
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.ChatButton, {
104
127
  componentOverrides: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.componentOverrides,
105
128
  controlProps: outOfOperatingHours ? outOfOfficeControlProps : controlProps,
@@ -7,15 +7,11 @@ exports.default = exports.ConfirmationPaneStateful = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
9
 
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _utils = require("../../common/utils");
13
-
14
10
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
15
11
 
16
- var _Constants = require("../../common/Constants");
12
+ var _react = _interopRequireWildcard(require("react"));
17
13
 
18
- var _ConversationState = require("../../contexts/common/ConversationState");
14
+ var _utils = require("../../common/utils");
19
15
 
20
16
  var _DimLayer = require("../dimlayer/DimLayer");
21
17
 
@@ -25,16 +21,12 @@ var _NotificationHandler = require("../webchatcontainerstateful/webchatcontrolle
25
21
 
26
22
  var _NotificationScenarios = require("../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
27
23
 
28
- var _PostChatSurveyMode = require("../postchatsurveypanestateful/enums/PostChatSurveyMode");
29
-
30
24
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
31
25
 
32
26
  var _useChatAdapterStore = _interopRequireDefault(require("../../hooks/useChatAdapterStore"));
33
27
 
34
28
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
35
29
 
36
- var _useChatSDKStore = _interopRequireDefault(require("../../hooks/useChatSDKStore"));
37
-
38
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
31
 
40
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -43,26 +35,19 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
43
35
 
44
36
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
37
  const ConfirmationPaneStateful = props => {
46
- var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4;
47
-
48
38
  const initialTabIndexMap = new Map();
49
39
  let elements = [];
50
40
  const [state, dispatch] = (0, _useChatContextStore.default)();
51
41
  const {
52
- setPostChatContext,
53
- endChat
42
+ prepareEndChat
54
43
  } = props; // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
44
 
56
- const chatSDK = (0, _useChatSDKStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
-
58
45
  const [adapter] = (0, _useChatAdapterStore.default)();
59
- const isPostChatEnabled = (_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.msdyn_postconversationsurveyenable;
60
- const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode;
61
46
  const controlProps = {
62
47
  id: "oc-lcw-confirmation-pane",
63
48
  dir: state.domainStates.globalDir,
64
49
  onConfirm: async () => {
65
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
50
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
66
51
  Event: _TelemetryConstants.TelemetryEvent.ConfirmationConfirmButtonClicked,
67
52
  Description: "Confirmation pane Confirm button clicked"
68
53
  });
@@ -73,40 +58,8 @@ const ConfirmationPaneStateful = props => {
73
58
  });
74
59
 
75
60
  try {
76
- //ToDo: End Chat before PostChat Context and conversation Details is set once the getPostChatContext request ID fetch issue is fixed
77
- const conversationDetails = await chatSDK.getConversationDetails(); // ToDo: Replace with CanRenderPostChat once available in conversationDetails API response
78
-
79
- if (isPostChatEnabled === "true" && postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed && conversationDetails.canRenderPostChat === _Constants.Constants.truePascal) {
80
- dispatch({
81
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT,
82
- payload: true
83
- });
84
- dispatch({
85
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
86
- payload: _ConversationState.ConversationState.Loading
87
- });
88
- await setPostChatContext();
89
-
90
- if (state.domainStates.postChatContext) {
91
- dispatch({
92
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
93
- payload: _ConversationState.ConversationState.Postchat
94
- });
95
- }
96
- } else {
97
- (0, _utils.setTabIndices)(elements, initialTabIndexMap, true);
98
-
99
- try {
100
- await endChat(adapter);
101
- } catch (error) {
102
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
103
- Event: _TelemetryConstants.TelemetryEvent.CloseChatMethodException,
104
- ExceptionDetails: {
105
- exception: `Failed to endChat: ${error}`
106
- }
107
- });
108
- }
109
- }
61
+ (0, _utils.setTabIndices)(elements, initialTabIndexMap, true);
62
+ await prepareEndChat(adapter, state);
110
63
  } catch (ex) {
111
64
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
112
65
  Event: _TelemetryConstants.TelemetryEvent.GetConversationDetailsCallFailed,
@@ -119,7 +72,7 @@ const ConfirmationPaneStateful = props => {
119
72
  }
120
73
  },
121
74
  onCancel: () => {
122
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
75
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
123
76
  Event: _TelemetryConstants.TelemetryEvent.ConfirmationCancelButtonClicked,
124
77
  Description: "Confirmation pane Cancel button clicked."
125
78
  });
@@ -95,8 +95,8 @@ const EmailTranscriptPaneStateful = props => {
95
95
  },
96
96
  onCancel: () => {
97
97
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
98
- Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptButtonClicked,
99
- Description: "Email Transcript button clicked."
98
+ Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptCancelButtonClicked,
99
+ Description: "Email Transcript cancel button clicked."
100
100
  });
101
101
 
102
102
  closeEmailTranscriptPane();