@microsoft/omnichannel-chat-widget 0.1.0-main.edd8c2a → 0.1.0-main.fdf1fdf

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 (216) 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 +54 -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 +61 -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 +89 -2
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -4
  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 +14 -10
  22. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
  23. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  24. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  25. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
  26. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  27. package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
  28. package/lib/cjs/components/livechatwidget/common/authHelper.js +52 -0
  29. package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
  30. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +32 -32
  31. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +30 -24
  32. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +14 -0
  33. package/lib/cjs/components/livechatwidget/common/endChat.js +142 -43
  34. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  35. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +51 -10
  36. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +144 -39
  37. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -7
  38. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +22 -24
  39. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  40. package/lib/cjs/components/livechatwidget/common/startChat.js +198 -41
  41. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  42. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +299 -72
  43. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  44. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  45. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  46. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  47. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -5
  48. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  49. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +91 -0
  50. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
  51. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  52. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  53. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  54. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  55. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  56. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  57. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  58. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  59. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  60. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  61. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  62. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  63. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  64. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  65. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +13 -7
  66. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +12 -4
  67. package/lib/cjs/contexts/createReducer.js +44 -10
  68. package/lib/cjs/controller/componentController.js +5 -5
  69. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  70. package/lib/esm/assets/Audios.js +1 -0
  71. package/lib/esm/assets/Icons.js +11 -0
  72. package/lib/esm/common/Constants.js +50 -3
  73. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  74. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  75. package/lib/esm/common/telemetry/TelemetryConstants.js +57 -3
  76. package/lib/esm/common/telemetry/TelemetryHelper.js +22 -5
  77. package/lib/esm/common/telemetry/TelemetryManager.js +22 -9
  78. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  79. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  80. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +50 -15
  81. package/lib/esm/common/telemetry/loggers/consoleLogger.js +9 -5
  82. package/lib/esm/common/utils.js +64 -1
  83. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  84. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -7
  85. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -50
  86. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  87. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  88. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  89. package/lib/esm/components/headerstateful/HeaderStateful.js +15 -11
  90. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
  91. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  92. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  93. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
  94. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  95. package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
  96. package/lib/esm/components/livechatwidget/common/authHelper.js +39 -0
  97. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
  98. package/lib/esm/components/livechatwidget/common/createMarkdown.js +32 -31
  99. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +28 -25
  100. package/lib/esm/components/livechatwidget/common/disposeTelemetryLoggers.js +4 -0
  101. package/lib/esm/components/livechatwidget/common/endChat.js +139 -42
  102. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  103. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +45 -11
  104. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +134 -41
  105. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -3
  106. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +19 -22
  107. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  108. package/lib/esm/components/livechatwidget/common/startChat.js +186 -39
  109. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  110. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +283 -77
  111. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  112. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  113. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  114. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  115. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -6
  116. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  117. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +82 -0
  118. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  119. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  120. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  121. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  122. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  123. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  124. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  125. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  126. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  127. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  128. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  129. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  130. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  131. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  132. package/lib/esm/contexts/common/ConversationState.js +4 -2
  133. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +13 -7
  134. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +12 -4
  135. package/lib/esm/contexts/createReducer.js +44 -9
  136. package/lib/esm/controller/componentController.js +5 -5
  137. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  138. package/lib/types/assets/Audios.d.ts +1 -0
  139. package/lib/types/assets/Icons.d.ts +11 -0
  140. package/lib/types/common/Constants.d.ts +27 -1
  141. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  142. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  143. package/lib/types/common/telemetry/TelemetryConstants.d.ts +45 -2
  144. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  145. package/lib/types/common/telemetry/TelemetryManager.d.ts +1 -0
  146. package/lib/types/common/telemetry/definitions/Contracts.d.ts +3 -0
  147. package/lib/types/common/telemetry/definitions/Payload.d.ts +15 -9
  148. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
  149. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
  150. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +12 -0
  151. package/lib/types/common/utils.d.ts +8 -1
  152. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  153. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  154. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  155. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  156. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  157. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  158. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  159. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  160. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  161. package/lib/types/components/livechatwidget/common/authHelper.d.ts +4 -0
  162. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -0
  163. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  164. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  165. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  166. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  167. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  168. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  169. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  170. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  171. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -1
  172. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  173. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  174. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  175. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  176. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  177. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  178. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  179. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  180. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  181. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  182. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  183. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  184. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  185. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  186. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  187. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  188. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +5 -1
  189. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +14 -8
  190. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  191. package/package.json +13 -12
  192. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  193. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  194. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  195. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  196. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  197. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  198. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  199. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  200. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  201. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  202. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  203. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  204. package/lib/esm/assets/assets.d.js +0 -0
  205. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  206. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  207. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  208. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  209. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  210. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  211. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  212. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  213. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  214. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  215. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  216. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.LiveChatWidgetStateful = void 0;
7
7
 
8
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
+
8
10
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
11
 
10
12
  var _react = require("@fluentui/react");
@@ -29,6 +31,8 @@ var _ConfirmationPaneStateful = _interopRequireDefault(require("../../confirmati
29
31
 
30
32
  var _ConversationState = require("../../../contexts/common/ConversationState");
31
33
 
34
+ var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
35
+
32
36
  var _EmailTranscriptPaneStateful = _interopRequireDefault(require("../../emailtranscriptpanestateful/EmailTranscriptPaneStateful"));
33
37
 
34
38
  var _HeaderStateful = _interopRequireDefault(require("../../headerstateful/HeaderStateful"));
@@ -49,6 +53,8 @@ var _ProactiveChatPaneStateful = _interopRequireDefault(require("../../proactive
49
53
 
50
54
  var _ReconnectChatPaneStateful = _interopRequireDefault(require("../../reconnectchatpanestateful/ReconnectChatPaneStateful"));
51
55
 
56
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
57
+
52
58
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
53
59
 
54
60
  var _WebChatContainerStateful = _interopRequireDefault(require("../../webchatcontainerstateful/WebChatContainerStateful"));
@@ -59,6 +65,8 @@ var _createInternetConnectionChangeHandler = require("../common/createInternetCo
59
65
 
60
66
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
61
67
 
68
+ var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
69
+
62
70
  var _endChat = require("../common/endChat");
63
71
 
64
72
  var _getGeneralStylesForButton = require("../common/getGeneralStylesForButton");
@@ -81,16 +89,20 @@ var _useChatContextStore = _interopRequireDefault(require("../../../hooks/useCha
81
89
 
82
90
  var _useChatSDKStore = _interopRequireDefault(require("../../../hooks/useChatSDKStore"));
83
91
 
92
+ var _ActivityStreamHandler = require("../common/ActivityStreamHandler");
93
+
94
+ var _Constants = require("../../../common/Constants");
95
+
84
96
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
85
97
 
86
98
  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); }
87
99
 
88
100
  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; }
89
101
 
90
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
102
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
91
103
 
92
104
  const LiveChatWidgetStateful = props => {
93
- var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps5, _props$componentOverr, _props$controlProps6, _props$componentOverr2, _props$controlProps7, _props$componentOverr3, _props$controlProps8, _props$componentOverr4, _props$controlProps9, _props$componentOverr5, _props$controlProps10, _props$componentOverr6, _props$controlProps11, _props$controlProps12, _props$controlProps13, _props$componentOverr7, _props$controlProps14, _props$componentOverr8, _props$controlProps15, _props$componentOverr9, _props$componentOverr10, _props$componentOverr11;
105
+ var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps14, _props$controlProps15, _props$componentOverr, _props$controlProps16, _props$componentOverr2, _props$controlProps17, _props$componentOverr3, _props$controlProps18, _props$componentOverr4, _props$controlProps19, _props$componentOverr5, _props$controlProps20, _props$componentOverr6, _props$controlProps21, _props$componentOverr7, _props$controlProps22, _props$controlProps23, _props$componentOverr8, _props$controlProps24, _props$componentOverr9, _props$controlProps25, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
94
106
 
95
107
  const [state, dispatch] = (0, _useChatContextStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
108
 
@@ -99,7 +111,8 @@ const LiveChatWidgetStateful = props => {
99
111
  ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
100
112
  }); // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
113
 
102
- const chatSDK = (0, _useChatSDKStore.default)();
114
+ const chatSDK = (0, _useChatSDKStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
+
103
116
  const [voiceVideoCallingSDK, setVoiceVideoCallingSDK] = (0, _react2.useState)(undefined);
104
117
  const {
105
118
  Composer
@@ -112,58 +125,117 @@ const LiveChatWidgetStateful = props => {
112
125
  _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer = (0, _utils.createTimer)();
113
126
  const widgetElementId = ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.id) || "oc-lcw";
114
127
  const currentMessageCountRef = (0, _react2.useRef)(0);
128
+ let widgetStateEventName = "";
129
+
130
+ const initiateEndChatOnBrowserUnload = () => {
131
+ var _DataStoreManager$cli;
132
+
133
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
134
+ Event: _TelemetryConstants.TelemetryEvent.BrowserUnloadEventStarted,
135
+ Description: "Browser unload event received."
136
+ });
137
+
138
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false); // Clean local storage
139
+
140
+ (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.removeData(widgetStateEventName, "localStorage"); //Dispose calling instance
141
+
142
+ if (voiceVideoCallingSDK) {
143
+ voiceVideoCallingSDK === null || voiceVideoCallingSDK === void 0 ? void 0 : voiceVideoCallingSDK.close();
144
+ } //Message for clearing window[popouTab]
145
+
146
+
147
+ _omnichannelChatComponents.BroadcastService.postMessage({
148
+ eventName: _TelemetryConstants.BroadcastEvent.ClosePopoutWindow
149
+ });
150
+ };
151
+
115
152
  (0, _react2.useEffect)(() => {
116
- var _props$controlProps2, _props$controlProps3, _props$reconnectChatP, _props$controlProps4, _props$chatConfig, _props$chatConfig$Cha, _state$domainStates;
153
+ var _chatSDK$omnichannelC, _props$controlProps2, _props$controlProps3, _props$controlProps4, _props$controlProps5, _props$controlProps7, _props$chatConfig, _props$chatConfig$Cha, _props$controlProps8, _props$reconnectChatP, _props$chatConfig2, _props$chatConfig2$Li;
117
154
 
155
+ const broadcastServiceChannelName = (0, _utils.getBroadcastChannelName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? "");
156
+ (0, _omnichannelChatComponents.BroadcastServiceInitialize)(broadcastServiceChannelName);
118
157
  (0, _registerTelemetryLoggers.registerTelemetryLoggers)(props, dispatch);
119
158
  (0, _createInternetConnectionChangeHandler.createInternetConnectionChangeHandler)();
159
+ _DataStoreManager.DataStoreManager.clientDataStore = props.contextDataStore ?? undefined;
120
160
  dispatch({
121
161
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID,
122
162
  payload: widgetElementId
123
163
  });
124
164
  dispatch({
125
165
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
126
- payload: ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.skipChatButtonRendering) || false
166
+ payload: ((_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.skipChatButtonRendering) || false
167
+ });
168
+ dispatch({
169
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
170
+ payload: false
127
171
  });
172
+
173
+ if ((_props$controlProps4 = props.controlProps) !== null && _props$controlProps4 !== void 0 && _props$controlProps4.widgetInstanceId && !(0, _utils.isNullOrEmptyString)((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.widgetInstanceId)) {
174
+ var _props$controlProps6;
175
+
176
+ dispatch({
177
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID,
178
+ payload: (_props$controlProps6 = props.controlProps) === null || _props$controlProps6 === void 0 ? void 0 : _props$controlProps6.widgetInstanceId
179
+ });
180
+ }
181
+
128
182
  (0, _initCallingSdk.initCallingSdk)(chatSDK, setVoiceVideoCallingSDK).then(sdkCreated => {
129
183
  sdkCreated && dispatch({
130
184
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
131
185
  payload: true
132
186
  });
187
+ }); // Initialize global dir
188
+
189
+ const globalDir = ((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.dir) ?? (0, _utils.getLocaleDirection)((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Cha = _props$chatConfig.ChatWidgetLanguage) === null || _props$chatConfig$Cha === void 0 ? void 0 : _props$chatConfig$Cha.msdyn_localeid);
190
+ dispatch({
191
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR,
192
+ payload: globalDir
133
193
  });
134
194
 
135
- if (!((_props$controlProps3 = props.controlProps) !== null && _props$controlProps3 !== void 0 && _props$controlProps3.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
136
- var _props$reconnectChatP2;
195
+ if (!((_props$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
196
+ var _props$reconnectChatP2, _props$reconnectChatP3;
197
+
198
+ (0, _reconnectChatHelper.startUnauthenticatedReconnectChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.reconnectId, _startChat.initStartChat);
199
+ return;
200
+ } // Check if auth settings enabled, do not connect to existing chat from cache during refresh/re-load
201
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
202
+
203
+
204
+ const isAuthenticationSettingsEnabled = (_props$chatConfig2 = props.chatConfig) !== null && _props$chatConfig2 !== void 0 && (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) !== null && _props$chatConfig2$Li !== void 0 && _props$chatConfig2$Li.msdyn_javascriptclientfunction ? true : false;
137
205
 
138
- (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(dispatch, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, _startChat.initStartChat);
139
- } // Initialize global dir
206
+ if (isAuthenticationSettingsEnabled === false) {
207
+ var _state$domainStates;
208
+
209
+ if (!(0, _utils.isUndefinedOrEmpty)((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext) && state.appStates.conversationState === _ConversationState.ConversationState.Active) {
210
+ var _state$domainStates2;
211
+
212
+ const optionalParams = {
213
+ liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
214
+ };
215
+ (0, _startChat.initStartChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams);
216
+ return;
217
+ }
218
+ } // All other case should show start chat button, skipChatButtonRendering will take care of it own
140
219
 
141
220
 
142
- const globalDir = ((_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.dir) ?? (0, _utils.getLocaleDirection)((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Cha = _props$chatConfig.ChatWidgetLanguage) === null || _props$chatConfig$Cha === void 0 ? void 0 : _props$chatConfig$Cha.msdyn_localeid);
143
221
  dispatch({
144
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR,
145
- payload: globalDir
222
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
223
+ payload: _ConversationState.ConversationState.Closed
146
224
  });
225
+ }, []); // useEffect for when skip chat button rendering
147
226
 
148
- if ((_state$domainStates = state.domainStates) !== null && _state$domainStates !== void 0 && _state$domainStates.chatToken) {
149
- var _state$domainStates2;
150
-
151
- const optionalParams = {
152
- liveChatContext: {
153
- chatToken: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.chatToken
154
- }
155
- };
156
- (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
157
- }
158
- }, []);
159
227
  (0, _react2.useEffect)(() => {
160
228
  if (state.appStates.skipChatButtonRendering) {
161
- var _props$reconnectChatP3;
229
+ var _props$reconnectChatP4;
230
+
231
+ _omnichannelChatComponents.BroadcastService.postMessage({
232
+ eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
233
+ });
162
234
 
163
- if ((_props$reconnectChatP3 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP3 !== void 0 && _props$reconnectChatP3.reconnectId && !state.appStates.reconnectId) {
164
- var _props$reconnectChatP4;
235
+ if ((_props$reconnectChatP4 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP4 !== void 0 && _props$reconnectChatP4.reconnectId && !state.appStates.reconnectId) {
236
+ var _props$reconnectChatP5, _props$reconnectChatP6, _props$reconnectChatP7;
165
237
 
166
- (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(dispatch, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId, _startChat.initStartChat);
238
+ (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$reconnectChatP5 = props.reconnectChatPaneProps) === null || _props$reconnectChatP5 === void 0 ? void 0 : _props$reconnectChatP5.isReconnectEnabled, (_props$reconnectChatP6 = props.reconnectChatPaneProps) === null || _props$reconnectChatP6 === void 0 ? void 0 : _props$reconnectChatP6.reconnectId, _startChat.initStartChat, (_props$reconnectChatP7 = props.reconnectChatPaneProps) === null || _props$reconnectChatP7 === void 0 ? void 0 : _props$reconnectChatP7.redirectInSameWindow);
167
239
  } else {
168
240
  (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK).then(authReconnectId => {
169
241
  if (authReconnectId && !state.appStates.reconnectId) {
@@ -176,51 +248,183 @@ const LiveChatWidgetStateful = props => {
176
248
  payload: _ConversationState.ConversationState.ReconnectChat
177
249
  });
178
250
  } else {
179
- dispatch({
180
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
181
- payload: _ConversationState.ConversationState.Loading
182
- });
183
- (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter);
251
+ const chatStartedSkippingChatButtonRendering = {
252
+ eventName: _TelemetryConstants.BroadcastEvent.StartChatSkippingChatButtonRendering
253
+ };
254
+
255
+ _omnichannelChatComponents.BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
256
+
257
+ (0, _startChat.setPreChatAndInitiateChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter);
184
258
  }
185
259
  });
186
260
  }
187
261
  }
188
- }, [state.appStates.skipChatButtonRendering]);
262
+ }, [state.appStates.skipChatButtonRendering]); // useEffect for when skip chat button rendering
263
+
189
264
  (0, _react2.useEffect)(() => {
190
- _omnichannelChatComponents.BroadcastService.getMessageByEventName("StartProactiveChat").subscribe(msg => {
191
- if (canStartProactiveChat.current) {
265
+ var _chatSDK$omnichannelC6, _chatSDK$omnichannelC7, _props$controlProps11;
266
+
267
+ // Add the custom context on receiving the SetCustomContext event
268
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.SetCustomContext).subscribe(msg => {
269
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
270
+ Event: _TelemetryConstants.TelemetryEvent.CustomContextReceived,
271
+ Description: "CustomContext received."
272
+ });
273
+
274
+ dispatch({
275
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
276
+ payload: msg === null || msg === void 0 ? void 0 : msg.payload
277
+ });
278
+ });
279
+
280
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartProactiveChat).subscribe(msg => {
281
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
282
+ Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
283
+ Description: "Start proactive chat event received."
284
+ });
285
+
286
+ if (canStartProactiveChat.current === true) {
192
287
  var _msg$payload, _msg$payload2, _msg$payload3;
193
288
 
194
- (0, _startProactiveChat.startProactiveChat)(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.bodyTitle, msg === null || msg === void 0 ? void 0 : (_msg$payload2 = msg.payload) === null || _msg$payload2 === void 0 ? void 0 : _msg$payload2.showPrechat, msg === null || msg === void 0 ? void 0 : (_msg$payload3 = msg.payload) === null || _msg$payload3 === void 0 ? void 0 : _msg$payload3.inNewWindow);
289
+ (0, _startProactiveChat.startProactiveChat)(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.notificationConfig, msg === null || msg === void 0 ? void 0 : (_msg$payload2 = msg.payload) === null || _msg$payload2 === void 0 ? void 0 : _msg$payload2.enablePreChat, msg === null || msg === void 0 ? void 0 : (_msg$payload3 = msg.payload) === null || _msg$payload3 === void 0 ? void 0 : _msg$payload3.inNewWindow);
290
+ } else {
291
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
292
+ Event: _TelemetryConstants.TelemetryEvent.ChatAlreadyTriggered,
293
+ Description: "Start proactive chat method called, when chat was already triggered."
294
+ });
195
295
  }
196
- });
197
- }, []);
198
- (0, _react2.useEffect)(() => {
199
- if (state.appStates.conversationState !== _ConversationState.ConversationState.Closed) {
200
- canStartProactiveChat.current = false;
201
- }
296
+ }); // Start chat from SDK Event
297
+
298
+
299
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartChat).subscribe(() => {
300
+ var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps9;
301
+
302
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
303
+ Event: _TelemetryConstants.TelemetryEvent.StartChatEventRecevied,
304
+ Description: "Start chat event received."
305
+ });
306
+
307
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.widgetInstanceId) ?? ""); // Chat not found in cache
308
+
309
+ if (persistedState === undefined) {
310
+ _omnichannelChatComponents.BroadcastService.postMessage({
311
+ eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
312
+ });
313
+
314
+ (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
315
+ return;
316
+ } // Chat exist in cache
317
+
318
+
319
+ if (persistedState) {
320
+ var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4;
321
+
322
+ // Only initiate new chat if widget state in cache in one of the followings
323
+ if (persistedState.appStates.conversationState === _ConversationState.ConversationState.Closed || persistedState.appStates.conversationState === _ConversationState.ConversationState.InActive || persistedState.appStates.conversationState === _ConversationState.ConversationState.Postchat) {
324
+ _omnichannelChatComponents.BroadcastService.postMessage({
325
+ eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
326
+ });
327
+
328
+ (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
329
+ return;
330
+ } // If minimized, maximize the chat
331
+
332
+
333
+ dispatch({
334
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
335
+ payload: false
336
+ });
202
337
 
203
- if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
204
- chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
205
338
  _omnichannelChatComponents.BroadcastService.postMessage({
206
- eventName: "NewMessageNotification"
339
+ eventName: _TelemetryConstants.BroadcastEvent.MaximizeChat,
340
+ payload: {
341
+ height: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : (_persistedState$domai2 = _persistedState$domai.widgetSize) === null || _persistedState$domai2 === void 0 ? void 0 : _persistedState$domai2.height,
342
+ width: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai3 = persistedState.domainStates) === null || _persistedState$domai3 === void 0 ? void 0 : (_persistedState$domai4 = _persistedState$domai3.widgetSize) === null || _persistedState$domai4 === void 0 ? void 0 : _persistedState$domai4.width
343
+ }
207
344
  });
345
+ }
346
+ }); // End chat
347
+
348
+
349
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChat).subscribe(async () => {
350
+ if (state.appStates.skipChatButtonRendering !== true) {
351
+ var _chatSDK$omnichannelC4, _chatSDK$omnichannelC5, _props$controlProps10;
352
+
353
+ // This is to ensure to get latest state from cache in multitab
354
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC5 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC5 === void 0 ? void 0 : _chatSDK$omnichannelC5.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps10 = props.controlProps) === null || _props$controlProps10 === void 0 ? void 0 : _props$controlProps10.widgetInstanceId) ?? "");
355
+
356
+ if (persistedState && persistedState.appStates.conversationState === _ConversationState.ConversationState.Active) {
357
+ (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
358
+ } else {
359
+ const skipEndChatSDK = true;
360
+ const skipCloseChat = false;
361
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
362
+ }
363
+ }
364
+
365
+ _omnichannelChatComponents.BroadcastService.postMessage({
366
+ eventName: _TelemetryConstants.BroadcastEvent.CloseChat
208
367
  });
209
- } // Track the message count
368
+ }); // End chat on browser unload
369
+
370
+
371
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChatOnBrowserUnload).subscribe(() => {
372
+ initiateEndChatOnBrowserUnload();
373
+ }); // Listen to end chat event from other tabs
374
+
375
+
376
+ const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC6 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC6 === void 0 ? void 0 : _chatSDK$omnichannelC6.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC7 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC7 === void 0 ? void 0 : _chatSDK$omnichannelC7.widgetId, ((_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
210
377
 
378
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(endChatEventName).subscribe(async () => {
379
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
380
+ return;
381
+ }); // When conversation ended by agent
211
382
 
212
- if (state.appStates.conversationState == _ConversationState.ConversationState.Active) {
383
+
384
+ if (state.appStates.conversationEndedByAgent) {
385
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
386
+ } //Listen to WidgetSize, used for minimize to maximize
387
+
388
+
389
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName("WidgetSize").subscribe(msg => {
390
+ dispatch({
391
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_SIZE,
392
+ payload: msg === null || msg === void 0 ? void 0 : msg.payload
393
+ });
394
+ });
395
+
396
+ return () => {
397
+ (0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
398
+ };
399
+ }, []);
400
+ (0, _react2.useEffect)(() => {
401
+ // On new message
402
+ if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
213
403
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
404
+ // Track the message count
214
405
  currentMessageCountRef.current++;
215
406
  dispatch({
216
407
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
217
408
  payload: currentMessageCountRef.current + 1
409
+ }); // New message notification
410
+
411
+ _omnichannelChatComponents.BroadcastService.postMessage({
412
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
218
413
  });
219
414
  });
220
415
  }
221
- }, [state.appStates.conversationState]); // Reset the UnreadMessageCount when minimized is toggled and broadcast it.
416
+ }, [state.appStates.conversationState]);
417
+ (0, _react2.useEffect)(() => {
418
+ canStartProactiveChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Closed && !state.appStates.proactiveChatStates.proactiveChatInNewWindow;
419
+ }, [state.appStates.conversationState, state.appStates.proactiveChatStates.proactiveChatInNewWindow]); // Reset the UnreadMessageCount when minimized is toggled and broadcast it.
222
420
 
223
421
  (0, _react2.useEffect)(() => {
422
+ if (state.appStates.isMinimized) {
423
+ _ActivityStreamHandler.ActivityStreamHandler.cork();
424
+ } else {
425
+ setTimeout(() => _ActivityStreamHandler.ActivityStreamHandler.uncork(), 500);
426
+ }
427
+
224
428
  currentMessageCountRef.current = -1;
225
429
  dispatch({
226
430
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
@@ -228,7 +432,7 @@ const LiveChatWidgetStateful = props => {
228
432
  });
229
433
  const customEvent = {
230
434
  elementType: _omnichannelChatComponents.ElementType.Custom,
231
- eventName: "UnreadMessageCount",
435
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
232
436
  payload: 0
233
437
  };
234
438
 
@@ -236,10 +440,10 @@ const LiveChatWidgetStateful = props => {
236
440
  }, [state.appStates.isMinimized]); // Broadcast the UnreadMessageCount state on any change.
237
441
 
238
442
  (0, _react2.useEffect)(() => {
239
- if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
443
+ if (state.appStates.isMinimized === true && state.appStates.unreadMessageCount > 0) {
240
444
  const customEvent = {
241
445
  elementType: _omnichannelChatComponents.ElementType.Custom,
242
- eventName: "UnreadMessageCount",
446
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
243
447
  payload: `${state.appStates.unreadMessageCount}`
244
448
  };
245
449
 
@@ -252,28 +456,51 @@ const LiveChatWidgetStateful = props => {
252
456
  setWebChatStyles({ ...webChatStyles,
253
457
  ...((_props$webChatContain2 = props.webChatContainerProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.webChatStyles)
254
458
  });
255
- }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
459
+ }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]); // Publish chat widget state
460
+
461
+ (0, _react2.useEffect)(() => {
462
+ var _props$controlProps12, _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps13;
463
+
464
+ // Only activate these windows events when conversation state is active and chat widget is in popout mode
465
+ // Ghost chat scenarios
466
+ if (state.appStates.conversationState === _ConversationState.ConversationState.Active && ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.skipChatButtonRendering) === true) {
467
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
468
+ window.onbeforeunload = function () {
469
+ const prompt = _Constants.Constants.BrowserUnloadConfirmationMessage;
470
+ return prompt;
471
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
472
+
473
+
474
+ window.onunload = function () {
475
+ initiateEndChatOnBrowserUnload();
476
+ };
477
+ }
478
+
479
+ widgetStateEventName = (0, _utils.getWidgetCacheId)(props === null || props === void 0 ? void 0 : (_props$chatSDK = props.chatSDK) === null || _props$chatSDK === void 0 ? void 0 : (_props$chatSDK$omnich = _props$chatSDK.omnichannelConfig) === null || _props$chatSDK$omnich === void 0 ? void 0 : _props$chatSDK$omnich.orgId, props === null || props === void 0 ? void 0 : (_props$chatSDK2 = props.chatSDK) === null || _props$chatSDK2 === void 0 ? void 0 : (_props$chatSDK2$omnic = _props$chatSDK2.omnichannelConfig) === null || _props$chatSDK2$omnic === void 0 ? void 0 : _props$chatSDK2$omnic.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps13 = props.controlProps) === null || _props$controlProps13 === void 0 ? void 0 : _props$controlProps13.widgetInstanceId) ?? "");
480
+ const chatWidgetStateChangeEvent = {
481
+ eventName: widgetStateEventName,
482
+ payload: { ...state
483
+ }
484
+ };
485
+
486
+ _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
487
+ }, [state]);
256
488
  const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
257
489
 
258
- const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
490
+ const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
259
491
 
260
- const endChatRelay = () => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
261
492
 
262
- const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
493
+ const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab); // eslint-disable-next-line @typescript-eslint/no-explicit-any
263
494
 
264
495
 
265
- const initStartChatRelay = optionalParams => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
496
+ const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
266
497
 
267
- const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props); // publish chat widget state
498
+ const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
268
499
 
269
- const chatWidgetStateChangeEvent = {
270
- eventName: "ChatWidgetStateChanged",
271
- payload: { ...state
272
- }
273
- };
274
500
 
275
- _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
501
+ const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams, persistedState);
276
502
 
503
+ const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props);
277
504
  return /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
278
505
  styleOptions: webChatStyles,
279
506
  directLine: ((_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
@@ -281,29 +508,29 @@ const LiveChatWidgetStateful = props => {
281
508
  id: widgetElementId,
282
509
  styles: generalStyles,
283
510
  className: (_props$styleProps2 = props.styleProps) === null || _props$styleProps2 === void 0 ? void 0 : _props$styleProps2.className
284
- }, !((_props$controlProps5 = props.controlProps) !== null && _props$controlProps5 !== void 0 && _props$controlProps5.hideChatButton) && (0, _componentController.shouldShowChatButton)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.chatButton) || /*#__PURE__*/_react2.default.createElement(_ChatButtonStateful.default, {
511
+ }, !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideChatButton) && !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.skipChatButtonRendering) && (0, _componentController.shouldShowChatButton)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.chatButton) || /*#__PURE__*/_react2.default.createElement(_ChatButtonStateful.default, {
285
512
  buttonProps: props.chatButtonProps,
286
513
  outOfOfficeButtonProps: props.outOfOfficeChatButtonProps,
287
514
  startChat: prepareStartChatRelay
288
- })), !((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.hideProactiveChatPane) && (0, _componentController.shouldShowProactiveChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.proactiveChatPane) || /*#__PURE__*/_react2.default.createElement(_ProactiveChatPaneStateful.default, {
515
+ })), !((_props$controlProps16 = props.controlProps) !== null && _props$controlProps16 !== void 0 && _props$controlProps16.hideProactiveChatPane) && (0, _componentController.shouldShowProactiveChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.proactiveChatPane) || /*#__PURE__*/_react2.default.createElement(_ProactiveChatPaneStateful.default, {
289
516
  proactiveChatProps: props.proactiveChatPaneProps,
290
517
  startChat: prepareStartChatRelay
291
- })), !((_props$controlProps7 = props.controlProps) !== null && _props$controlProps7 !== void 0 && _props$controlProps7.hideHeader) && (0, _componentController.shouldShowHeader)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr3 = props.componentOverrides) === null || _props$componentOverr3 === void 0 ? void 0 : _props$componentOverr3.header) || /*#__PURE__*/_react2.default.createElement(_HeaderStateful.default, {
518
+ })), !((_props$controlProps17 = props.controlProps) !== null && _props$controlProps17 !== void 0 && _props$controlProps17.hideHeader) && (0, _componentController.shouldShowHeader)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr3 = props.componentOverrides) === null || _props$componentOverr3 === void 0 ? void 0 : _props$componentOverr3.header) || /*#__PURE__*/_react2.default.createElement(_HeaderStateful.default, {
292
519
  headerProps: props.headerProps,
293
520
  outOfOfficeHeaderProps: props.outOfOfficeHeaderProps,
294
521
  endChat: endChatRelay
295
- })), !((_props$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.hideLoadingPane) && (0, _componentController.shouldShowLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr4 = props.componentOverrides) === null || _props$componentOverr4 === void 0 ? void 0 : _props$componentOverr4.loadingPane) || /*#__PURE__*/_react2.default.createElement(_LoadingPaneStateful.default, props.loadingPaneProps)), !((_props$controlProps9 = props.controlProps) !== null && _props$controlProps9 !== void 0 && _props$controlProps9.hideOutOfOfficeHoursPane) && (0, _componentController.shouldShowOutOfOfficeHoursPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr5 = props.componentOverrides) === null || _props$componentOverr5 === void 0 ? void 0 : _props$componentOverr5.outOfOfficeHoursPane) || /*#__PURE__*/_react2.default.createElement(_OOOHPaneStateful.default, props.outOfOfficeHoursPaneProps)), !((_props$controlProps10 = props.controlProps) !== null && _props$controlProps10 !== void 0 && _props$controlProps10.hideReconnectChatPane) && (0, _componentController.shouldShowReconnectChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr6 = props.componentOverrides) === null || _props$componentOverr6 === void 0 ? void 0 : _props$componentOverr6.reconnectChatPane) || /*#__PURE__*/_react2.default.createElement(_ReconnectChatPaneStateful.default, {
522
+ })), !((_props$controlProps18 = props.controlProps) !== null && _props$controlProps18 !== void 0 && _props$controlProps18.hideLoadingPane) && (0, _componentController.shouldShowLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr4 = props.componentOverrides) === null || _props$componentOverr4 === void 0 ? void 0 : _props$componentOverr4.loadingPane) || /*#__PURE__*/_react2.default.createElement(_LoadingPaneStateful.default, props.loadingPaneProps)), !((_props$controlProps19 = props.controlProps) !== null && _props$controlProps19 !== void 0 && _props$controlProps19.hideOutOfOfficeHoursPane) && (0, _componentController.shouldShowOutOfOfficeHoursPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr5 = props.componentOverrides) === null || _props$componentOverr5 === void 0 ? void 0 : _props$componentOverr5.outOfOfficeHoursPane) || /*#__PURE__*/_react2.default.createElement(_OOOHPaneStateful.default, props.outOfOfficeHoursPaneProps)), !((_props$controlProps20 = props.controlProps) !== null && _props$controlProps20 !== void 0 && _props$controlProps20.hideReconnectChatPane) && (0, _componentController.shouldShowReconnectChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr6 = props.componentOverrides) === null || _props$componentOverr6 === void 0 ? void 0 : _props$componentOverr6.reconnectChatPane) || /*#__PURE__*/_react2.default.createElement(_ReconnectChatPaneStateful.default, {
296
523
  reconnectChatProps: props.reconnectChatPaneProps,
297
524
  initStartChat: initStartChatRelay
298
- })), !((_props$controlProps11 = props.controlProps) !== null && _props$controlProps11 !== void 0 && _props$controlProps11.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
525
+ })), !((_props$controlProps21 = props.controlProps) !== null && _props$controlProps21 !== void 0 && _props$controlProps21.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr7 = props.componentOverrides) === null || _props$componentOverr7 === void 0 ? void 0 : _props$componentOverr7.preChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
299
526
  surveyProps: props.preChatSurveyPaneProps,
300
527
  initStartChat: initStartChatRelay
301
- }), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
528
+ })), !((_props$controlProps22 = props.controlProps) !== null && _props$controlProps22 !== void 0 && _props$controlProps22.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
302
529
  voiceVideoCallingSdk: voiceVideoCallingSDK
303
- }, props.callingContainerProps)), !((_props$controlProps13 = props.controlProps) !== null && _props$controlProps13 !== void 0 && _props$controlProps13.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr7 = props.componentOverrides) === null || _props$componentOverr7 === void 0 ? void 0 : _props$componentOverr7.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, props.webChatContainerProps)), !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
530
+ }, props.callingContainerProps)), !((_props$controlProps23 = props.controlProps) !== null && _props$controlProps23 !== void 0 && _props$controlProps23.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, props.webChatContainerProps)), !((_props$controlProps24 = props.controlProps) !== null && _props$controlProps24 !== void 0 && _props$controlProps24.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
304
531
  setPostChatContext: setPostChatContextRelay,
305
- endChat: endChatRelay
306
- }))), !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane))));
532
+ prepareEndChat: prepareEndChatRelay
533
+ }))), !((_props$controlProps25 = props.controlProps) !== null && _props$controlProps25 !== void 0 && _props$controlProps25.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr12 = props.componentOverrides) === null || _props$componentOverr12 === void 0 ? void 0 : _props$componentOverr12.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane))));
307
534
  };
308
535
 
309
536
  exports.LiveChatWidgetStateful = LiveChatWidgetStateful;
@@ -46,7 +46,7 @@ const LoadingPaneStateful = props => {
46
46
  firstElement[0].focus();
47
47
  }
48
48
 
49
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
49
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
50
50
  Event: _TelemetryConstants.TelemetryEvent.LoadingPaneLoaded,
51
51
  Description: "Loading pane loaded."
52
52
  });
@@ -5,10 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.OutOfOfficeHoursPaneStateful = void 0;
7
7
 
8
+ var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
+
8
10
  var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
13
 
14
+ var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
15
+
12
16
  var _defaultgeneralOOOHPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralOOOHPaneStyleProps");
13
17
 
14
18
  var _utils = require("../../common/utils");
@@ -41,6 +45,10 @@ const OutOfOfficeHoursPaneStateful = props => {
41
45
  if (firstElement && firstElement[0]) {
42
46
  firstElement[0].focus();
43
47
  }
48
+
49
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
50
+ Event: _TelemetryConstants.TelemetryEvent.OutOfOfficePaneLoaded
51
+ });
44
52
  }, []);
45
53
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.OutOfOfficeHoursPane, {
46
54
  componentOverrides: props.componentOverrides,
@@ -15,6 +15,10 @@ var _utils = require("../../common/utils");
15
15
 
16
16
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
17
17
 
18
+ var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
19
+
20
+ var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
20
24
  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); }
@@ -46,6 +50,10 @@ const PostChatLoadingPaneStateful = props => {
46
50
  if (firstElement && firstElement[0]) {
47
51
  firstElement[0].focus();
48
52
  }
53
+
54
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
55
+ Event: _TelemetryConstants.TelemetryEvent.PostChatSurveyLoadingPaneLoaded
56
+ });
49
57
  }, []);
50
58
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.LoadingPane, {
51
59
  componentOverrides: props.componentOverrides,