@microsoft/omnichannel-chat-widget 0.1.0-main.07f52ee → 0.1.0-main.0d584e6

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