@microsoft/omnichannel-chat-widget 0.1.0-main.8b6c0d8 → 0.1.0-main.a60f242

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 (183) hide show
  1. package/README.md +259 -0
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +52 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +14 -0
  6. package/lib/cjs/{assets/assets.d.js → common/interfaces/IContextDataStore.js} +0 -0
  7. package/lib/cjs/common/telemetry/TelemetryConstants.js +59 -4
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +22 -4
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +28 -9
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  12. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +48 -15
  13. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +9 -5
  14. package/lib/cjs/common/utils.js +76 -2
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +28 -5
  17. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -54
  18. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  19. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  20. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  21. package/lib/cjs/components/headerstateful/HeaderStateful.js +13 -10
  22. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  23. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +49 -47
  24. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +14 -0
  25. package/lib/cjs/components/livechatwidget/common/endChat.js +142 -43
  26. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  27. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +49 -11
  28. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +105 -20
  29. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -7
  30. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +22 -24
  31. package/lib/cjs/components/livechatwidget/common/startChat.js +174 -41
  32. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  33. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +249 -67
  34. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  35. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  36. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  37. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  38. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -5
  39. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  40. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +80 -0
  41. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  42. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  43. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  44. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  45. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  46. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  47. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  48. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  49. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  50. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  51. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  52. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  53. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +13 -7
  54. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +13 -5
  55. package/lib/cjs/contexts/createReducer.js +43 -10
  56. package/lib/cjs/controller/componentController.js +5 -5
  57. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  58. package/lib/esm/assets/Audios.js +1 -0
  59. package/lib/esm/assets/Icons.js +11 -0
  60. package/lib/esm/common/Constants.js +48 -3
  61. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  62. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  63. package/lib/esm/common/telemetry/TelemetryConstants.js +55 -3
  64. package/lib/esm/common/telemetry/TelemetryHelper.js +22 -5
  65. package/lib/esm/common/telemetry/TelemetryManager.js +22 -9
  66. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  67. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  68. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +50 -15
  69. package/lib/esm/common/telemetry/loggers/consoleLogger.js +9 -5
  70. package/lib/esm/common/utils.js +55 -1
  71. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  72. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +31 -8
  73. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +7 -50
  74. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  75. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  76. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  77. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -11
  78. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  79. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +47 -48
  80. package/lib/esm/components/livechatwidget/common/disposeTelemetryLoggers.js +4 -0
  81. package/lib/esm/components/livechatwidget/common/endChat.js +139 -42
  82. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  83. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +43 -12
  84. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +94 -20
  85. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -3
  86. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +19 -22
  87. package/lib/esm/components/livechatwidget/common/startChat.js +167 -39
  88. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  89. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +235 -71
  90. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  91. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  92. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  93. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  94. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -6
  95. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  96. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +72 -0
  97. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  98. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  99. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  100. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  101. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  102. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  103. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  104. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  105. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  106. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  107. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  108. package/lib/esm/contexts/common/ConversationState.js +4 -2
  109. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +13 -7
  110. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +13 -5
  111. package/lib/esm/contexts/createReducer.js +43 -9
  112. package/lib/esm/controller/componentController.js +5 -5
  113. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  114. package/lib/types/assets/Audios.d.ts +1 -0
  115. package/lib/types/assets/Icons.d.ts +11 -0
  116. package/lib/types/common/Constants.d.ts +26 -1
  117. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  118. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  119. package/lib/types/common/telemetry/TelemetryConstants.d.ts +43 -2
  120. package/lib/types/common/telemetry/TelemetryHelper.d.ts +3 -1
  121. package/lib/types/common/telemetry/TelemetryManager.d.ts +1 -0
  122. package/lib/types/common/telemetry/definitions/Contracts.d.ts +3 -0
  123. package/lib/types/common/telemetry/definitions/Payload.d.ts +15 -9
  124. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
  125. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
  126. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +12 -0
  127. package/lib/types/common/utils.d.ts +6 -0
  128. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  129. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  130. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  131. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  132. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -0
  133. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  134. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -2
  135. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  136. package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -2
  137. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  138. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  139. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -1
  140. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  141. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  142. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -0
  143. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  144. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  145. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  146. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  147. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  148. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -2
  149. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  150. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  151. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  152. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  153. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  154. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  155. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +5 -1
  156. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +14 -8
  157. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  158. package/package.json +11 -11
  159. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  160. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  161. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  162. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  163. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  164. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  165. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  166. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  167. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  168. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  169. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  170. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  171. package/lib/esm/assets/assets.d.js +0 -0
  172. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  173. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  174. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  175. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  176. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  177. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  178. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  179. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  180. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  181. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  182. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  183. 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");
@@ -87,10 +95,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
87
95
 
88
96
  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
97
 
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); }
98
+ 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
99
 
92
100
  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;
101
+ var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps5, _props$controlProps6, _props$componentOverr, _props$controlProps7, _props$componentOverr2, _props$controlProps8, _props$componentOverr3, _props$controlProps9, _props$componentOverr4, _props$controlProps10, _props$componentOverr5, _props$controlProps11, _props$componentOverr6, _props$controlProps12, _props$componentOverr7, _props$controlProps13, _props$controlProps14, _props$componentOverr8, _props$controlProps15, _props$componentOverr9, _props$controlProps16, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
94
102
 
95
103
  const [state, dispatch] = (0, _useChatContextStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
104
 
@@ -99,7 +107,8 @@ const LiveChatWidgetStateful = props => {
99
107
  ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
100
108
  }); // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
109
 
102
- const chatSDK = (0, _useChatSDKStore.default)();
110
+ const chatSDK = (0, _useChatSDKStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
+
103
112
  const [voiceVideoCallingSDK, setVoiceVideoCallingSDK] = (0, _react2.useState)(undefined);
104
113
  const {
105
114
  Composer
@@ -112,11 +121,42 @@ const LiveChatWidgetStateful = props => {
112
121
  _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer = (0, _utils.createTimer)();
113
122
  const widgetElementId = ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.id) || "oc-lcw";
114
123
  const currentMessageCountRef = (0, _react2.useRef)(0);
124
+ let widgetStateEventName = "";
125
+
126
+ const initiateEndChatOnBrowserUnload = () => {
127
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _DataStoreManager$cli;
128
+
129
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
130
+ Event: _TelemetryConstants.TelemetryEvent.BrowserUnloadEventStarted,
131
+ Description: "Browser unload event received."
132
+ });
133
+
134
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId); // End chat if the chat is still active and browser closed
135
+
136
+ if (persistedState.appStates.conversationState === _ConversationState.ConversationState.Active) {
137
+ //Browser close scenario/no room for PCS/so just end chat and notify agent immidiately
138
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
139
+ } // Clean local storage
140
+
141
+
142
+ (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.removeData(widgetStateEventName, "localStorage"); //Dispose calling instance
143
+
144
+ if (voiceVideoCallingSDK) {
145
+ voiceVideoCallingSDK === null || voiceVideoCallingSDK === void 0 ? void 0 : voiceVideoCallingSDK.close();
146
+ } //Message for clearing window[popouTab]
147
+
148
+
149
+ _omnichannelChatComponents.BroadcastService.postMessage({
150
+ eventName: _TelemetryConstants.BroadcastEvent.ClosePopoutWindow
151
+ });
152
+ };
153
+
115
154
  (0, _react2.useEffect)(() => {
116
- var _props$controlProps2, _props$controlProps3, _props$reconnectChatP, _props$controlProps4, _props$chatConfig, _props$chatConfig$Cha, _state$domainStates;
155
+ var _props$controlProps2, _props$controlProps3, _props$chatConfig, _props$chatConfig$Cha, _props$controlProps4, _props$reconnectChatP, _props$chatConfig2, _props$chatConfig2$Li;
117
156
 
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
@@ -125,45 +165,67 @@ const LiveChatWidgetStateful = props => {
125
165
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
126
166
  payload: ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.skipChatButtonRendering) || false
127
167
  });
168
+ dispatch({
169
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
170
+ payload: false
171
+ });
128
172
  (0, _initCallingSdk.initCallingSdk)(chatSDK, setVoiceVideoCallingSDK).then(sdkCreated => {
129
173
  sdkCreated && dispatch({
130
174
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
131
175
  payload: true
132
176
  });
177
+ }); // Initialize global dir
178
+
179
+ const globalDir = ((_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.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);
180
+ dispatch({
181
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR,
182
+ payload: globalDir
133
183
  });
134
184
 
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) {
185
+ if (!((_props$controlProps4 = props.controlProps) !== null && _props$controlProps4 !== void 0 && _props$controlProps4.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
136
186
  var _props$reconnectChatP2;
137
187
 
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
188
+ (0, _reconnectChatHelper.startUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, _startChat.initStartChat);
189
+ return;
190
+ } // Check if auth settings enabled, do not connect to existing chat from cache during refresh/re-load
191
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
192
+
193
+
194
+ 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;
195
+
196
+ if (!isAuthenticationSettingsEnabled) {
197
+ var _state$domainStates;
198
+
199
+ if (!(0, _utils.isUndefinedOrEmpty)((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext) && state.appStates.conversationState === _ConversationState.ConversationState.Active) {
200
+ var _state$domainStates2;
201
+
202
+ const optionalParams = {
203
+ liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
204
+ };
205
+ (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
206
+ return;
207
+ }
208
+ } // All other case should show start chat button, skipChatButtonRendering will take care of it own
140
209
 
141
210
 
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
211
  dispatch({
144
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR,
145
- payload: globalDir
212
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
213
+ payload: _ConversationState.ConversationState.Closed
146
214
  });
215
+ }, []); // useEffect for when skip chat button rendering
147
216
 
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
217
  (0, _react2.useEffect)(() => {
160
218
  if (state.appStates.skipChatButtonRendering) {
161
219
  var _props$reconnectChatP3;
162
220
 
221
+ _omnichannelChatComponents.BroadcastService.postMessage({
222
+ eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
223
+ });
224
+
163
225
  if ((_props$reconnectChatP3 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP3 !== void 0 && _props$reconnectChatP3.reconnectId && !state.appStates.reconnectId) {
164
- var _props$reconnectChatP4;
226
+ var _props$reconnectChatP4, _props$reconnectChatP5;
165
227
 
166
- (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(dispatch, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId, _startChat.initStartChat);
228
+ (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId, _startChat.initStartChat, (_props$reconnectChatP5 = props.reconnectChatPaneProps) === null || _props$reconnectChatP5 === void 0 ? void 0 : _props$reconnectChatP5.redirectInSameWindow);
167
229
  } else {
168
230
  (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK).then(authReconnectId => {
169
231
  if (authReconnectId && !state.appStates.reconnectId) {
@@ -176,49 +238,161 @@ const LiveChatWidgetStateful = props => {
176
238
  payload: _ConversationState.ConversationState.ReconnectChat
177
239
  });
178
240
  } else {
179
- dispatch({
180
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
181
- payload: _ConversationState.ConversationState.Loading
182
- });
183
- (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter);
241
+ const chatStartedSkippingChatButtonRendering = {
242
+ eventName: _TelemetryConstants.BroadcastEvent.StartChatSkippingChatButtonRendering
243
+ };
244
+
245
+ _omnichannelChatComponents.BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
246
+
247
+ (0, _startChat.setPreChatAndInitiateChat)(chatSDK, dispatch, setAdapter);
184
248
  }
185
249
  });
186
250
  }
187
251
  }
188
- }, [state.appStates.skipChatButtonRendering]);
252
+ }, [state.appStates.skipChatButtonRendering]); // useEffect for when skip chat button rendering
253
+
189
254
  (0, _react2.useEffect)(() => {
190
- _omnichannelChatComponents.BroadcastService.getMessageByEventName("StartProactiveChat").subscribe(msg => {
255
+ var _chatSDK$omnichannelC7, _chatSDK$omnichannelC8;
256
+
257
+ // Add the custom context on receiving the SetCustomContext event
258
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.SetCustomContext).subscribe(msg => {
259
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
260
+ Event: _TelemetryConstants.TelemetryEvent.CustomContextReceived,
261
+ Description: "CustomContext received."
262
+ });
263
+
264
+ dispatch({
265
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
266
+ payload: msg === null || msg === void 0 ? void 0 : msg.payload
267
+ });
268
+ });
269
+
270
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartProactiveChat).subscribe(msg => {
271
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
272
+ Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
273
+ Description: "Start proactive chat event received."
274
+ });
275
+
191
276
  if (canStartProactiveChat.current) {
192
277
  var _msg$payload, _msg$payload2, _msg$payload3;
193
278
 
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);
279
+ (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);
280
+ } else {
281
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
282
+ Event: _TelemetryConstants.TelemetryEvent.ChatAlreadyTriggered,
283
+ Description: "Start proactive chat method called, when chat was already triggered."
284
+ });
195
285
  }
196
- });
197
- }, []);
198
- (0, _react2.useEffect)(() => {
199
- if (state.appStates.conversationState !== _ConversationState.ConversationState.Closed) {
200
- canStartProactiveChat.current = false;
201
- }
286
+ }); // Start chat from SDK Event
287
+
288
+
289
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartChat).subscribe(() => {
290
+ var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4;
291
+
292
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
293
+ Event: _TelemetryConstants.TelemetryEvent.StartChatEventRecevied,
294
+ Description: "Start chat event received."
295
+ });
296
+
297
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.widgetId);
298
+
299
+ if (persistedState && (persistedState.appStates.conversationState === _ConversationState.ConversationState.Closed || persistedState.appStates.conversationState === _ConversationState.ConversationState.InActive || persistedState.appStates.conversationState === _ConversationState.ConversationState.Postchat)) {
300
+ // Embedded mode
301
+ _omnichannelChatComponents.BroadcastService.postMessage({
302
+ eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
303
+ });
304
+
305
+ (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
306
+ } else {
307
+ var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4;
308
+
309
+ // Minimize to Maximize
310
+ dispatch({
311
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
312
+ payload: false
313
+ });
202
314
 
203
- if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
204
- chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
205
315
  _omnichannelChatComponents.BroadcastService.postMessage({
206
- eventName: "NewMessageNotification"
316
+ eventName: _TelemetryConstants.BroadcastEvent.MaximizeChat,
317
+ payload: {
318
+ 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,
319
+ 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
320
+ }
207
321
  });
322
+ }
323
+ }); // End chat
324
+
325
+
326
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChat).subscribe(async () => {
327
+ if (state.appStates.skipChatButtonRendering !== true) {
328
+ var _chatSDK$omnichannelC5, _chatSDK$omnichannelC6;
329
+
330
+ // This is to ensure to get latest state from cache in multitab
331
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC5 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC5 === void 0 ? void 0 : _chatSDK$omnichannelC5.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC6 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC6 === void 0 ? void 0 : _chatSDK$omnichannelC6.widgetId);
332
+
333
+ if (persistedState && persistedState.appStates.conversationState === _ConversationState.ConversationState.Active) {
334
+ (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
335
+ } else {
336
+ const skipEndChatSDK = true;
337
+ const skipCloseChat = false;
338
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
339
+ }
340
+ }
341
+
342
+ _omnichannelChatComponents.BroadcastService.postMessage({
343
+ eventName: _TelemetryConstants.BroadcastEvent.CloseChat
208
344
  });
209
- } // Track the message count
345
+ }); // End chat on browser unload
346
+
210
347
 
348
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChatOnBrowserUnload).subscribe(() => {
349
+ initiateEndChatOnBrowserUnload();
350
+ }); // Listen to end chat event from other tabs
211
351
 
212
- if (state.appStates.conversationState == _ConversationState.ConversationState.Active) {
352
+
353
+ const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC7 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC7 === void 0 ? void 0 : _chatSDK$omnichannelC7.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC8 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC8 === void 0 ? void 0 : _chatSDK$omnichannelC8.widgetId);
354
+
355
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(endChatEventName).subscribe(async () => {
356
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
357
+ }); // When conversation ended by agent
358
+
359
+
360
+ if (state.appStates.conversationEndedByAgent) {
361
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
362
+ } //Listen to WidgetSize, used for minimize to maximize
363
+
364
+
365
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName("WidgetSize").subscribe(msg => {
366
+ dispatch({
367
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_SIZE,
368
+ payload: msg === null || msg === void 0 ? void 0 : msg.payload
369
+ });
370
+ });
371
+
372
+ return () => {
373
+ (0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
374
+ };
375
+ }, []);
376
+ (0, _react2.useEffect)(() => {
377
+ // On new message
378
+ if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
213
379
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
380
+ // Track the message count
214
381
  currentMessageCountRef.current++;
215
382
  dispatch({
216
383
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
217
384
  payload: currentMessageCountRef.current + 1
385
+ }); // New message notification
386
+
387
+ _omnichannelChatComponents.BroadcastService.postMessage({
388
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
218
389
  });
219
390
  });
220
391
  }
221
- }, [state.appStates.conversationState]); // Reset the UnreadMessageCount when minimized is toggled and broadcast it.
392
+ }, [state.appStates.conversationState]);
393
+ (0, _react2.useEffect)(() => {
394
+ canStartProactiveChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Closed && !state.appStates.proactiveChatStates.proactiveChatInNewWindow;
395
+ }, [state.appStates.conversationState, state.appStates.proactiveChatStates.proactiveChatInNewWindow]); // Reset the UnreadMessageCount when minimized is toggled and broadcast it.
222
396
 
223
397
  (0, _react2.useEffect)(() => {
224
398
  currentMessageCountRef.current = -1;
@@ -228,7 +402,7 @@ const LiveChatWidgetStateful = props => {
228
402
  });
229
403
  const customEvent = {
230
404
  elementType: _omnichannelChatComponents.ElementType.Custom,
231
- eventName: "UnreadMessageCount",
405
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
232
406
  payload: 0
233
407
  };
234
408
 
@@ -236,10 +410,10 @@ const LiveChatWidgetStateful = props => {
236
410
  }, [state.appStates.isMinimized]); // Broadcast the UnreadMessageCount state on any change.
237
411
 
238
412
  (0, _react2.useEffect)(() => {
239
- if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
413
+ if (state.appStates.isMinimized === true && state.appStates.unreadMessageCount > 0) {
240
414
  const customEvent = {
241
415
  elementType: _omnichannelChatComponents.ElementType.Custom,
242
- eventName: "UnreadMessageCount",
416
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
243
417
  payload: `${state.appStates.unreadMessageCount}`
244
418
  };
245
419
 
@@ -252,28 +426,36 @@ const LiveChatWidgetStateful = props => {
252
426
  setWebChatStyles({ ...webChatStyles,
253
427
  ...((_props$webChatContain2 = props.webChatContainerProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.webChatStyles)
254
428
  });
255
- }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
429
+ }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]); // Publish chat widget state
430
+
431
+ (0, _react2.useEffect)(() => {
432
+ var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic;
433
+
434
+ 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);
435
+ const chatWidgetStateChangeEvent = {
436
+ eventName: widgetStateEventName,
437
+ payload: { ...state
438
+ }
439
+ };
440
+
441
+ _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
442
+ }, [state]);
256
443
  const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
257
444
 
258
- const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
445
+ const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
259
446
 
260
- const endChatRelay = () => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
261
447
 
262
- const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
448
+ const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat) => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat); // eslint-disable-next-line @typescript-eslint/no-explicit-any
263
449
 
264
450
 
265
- const initStartChatRelay = optionalParams => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
451
+ const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
266
452
 
267
- const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props); // publish chat widget state
453
+ const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
268
454
 
269
- const chatWidgetStateChangeEvent = {
270
- eventName: "ChatWidgetStateChanged",
271
- payload: { ...state
272
- }
273
- };
274
455
 
275
- _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
456
+ const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
276
457
 
458
+ const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props);
277
459
  return /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
278
460
  styleOptions: webChatStyles,
279
461
  directLine: ((_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
@@ -281,29 +463,29 @@ const LiveChatWidgetStateful = props => {
281
463
  id: widgetElementId,
282
464
  styles: generalStyles,
283
465
  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, {
466
+ }, !((_props$controlProps5 = props.controlProps) !== null && _props$controlProps5 !== void 0 && _props$controlProps5.hideChatButton) && !((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.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
467
  buttonProps: props.chatButtonProps,
286
468
  outOfOfficeButtonProps: props.outOfOfficeChatButtonProps,
287
469
  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, {
470
+ })), !((_props$controlProps7 = props.controlProps) !== null && _props$controlProps7 !== void 0 && _props$controlProps7.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
471
  proactiveChatProps: props.proactiveChatPaneProps,
290
472
  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, {
473
+ })), !((_props$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.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
474
  headerProps: props.headerProps,
293
475
  outOfOfficeHeaderProps: props.outOfOfficeHeaderProps,
294
476
  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, {
477
+ })), !((_props$controlProps9 = props.controlProps) !== null && _props$controlProps9 !== void 0 && _props$controlProps9.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$controlProps10 = props.controlProps) !== null && _props$controlProps10 !== void 0 && _props$controlProps10.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$controlProps11 = props.controlProps) !== null && _props$controlProps11 !== void 0 && _props$controlProps11.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
478
  reconnectChatProps: props.reconnectChatPaneProps,
297
479
  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, {
480
+ })), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.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
481
  surveyProps: props.preChatSurveyPaneProps,
300
482
  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({
483
+ })), !((_props$controlProps13 = props.controlProps) !== null && _props$controlProps13 !== void 0 && _props$controlProps13.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
302
484
  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, {
485
+ }, props.callingContainerProps)), !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.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$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.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
486
  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))));
487
+ prepareEndChat: prepareEndChatRelay
488
+ }))), !((_props$controlProps16 = props.controlProps) !== null && _props$controlProps16 !== void 0 && _props$controlProps16.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
489
  };
308
490
 
309
491
  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,
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.PreChatSurveyPaneStateful = void 0;
7
7
 
8
+ var _Constants = require("../../common/Constants");
9
+
8
10
  var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
11
 
10
12
  var _react = _interopRequireWildcard(require("react"));
@@ -17,8 +19,6 @@ var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetAct
17
19
 
18
20
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
19
21
 
20
- var _Constants = require("../../common/Constants");
21
-
22
22
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
23
23
 
24
24
  var _defaultGeneralPreChatSurveyPaneStyleProps = require("./common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps");
@@ -63,7 +63,7 @@ const PreChatSurveyPaneStateful = props => {
63
63
  try {
64
64
  return (0, _utils.parseAdaptiveCardPayload)(payload, requiredFieldMissingMessage);
65
65
  } catch (ex) {
66
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
66
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
67
67
  Event: _TelemetryConstants.TelemetryEvent.ParseAdaptiveCardFailed,
68
68
  Description: "Adaptive Card JSON Parse Failed.",
69
69
  ExceptionDetails: {
@@ -91,14 +91,26 @@ const PreChatSurveyPaneStateful = props => {
91
91
  });
92
92
 
93
93
  try {
94
- const prechatResponseValues = (0, _utils.extractPreChatSurveyResponseValues)(state.domainStates.preChatSurveyResponse, values);
95
- const optionalParams = {
96
- initContext: {
94
+ var _state$domainStates, _state$domainStates$t, _state$domainStates$t2, _persistedState$domai, _persistedState$appSt;
95
+
96
+ const persistedState = (0, _utils.getStateFromCache)(((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$t = _state$domainStates.telemetryInternalData) === null || _state$domainStates$t === void 0 ? void 0 : _state$domainStates$t.orgId) ?? "", ((_state$domainStates$t2 = state.domainStates.telemetryInternalData) === null || _state$domainStates$t2 === void 0 ? void 0 : _state$domainStates$t2.widgetId) ?? "");
97
+ let optionalParams = {}; //Connect to Active chats and chat is not popout
98
+
99
+ if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : _persistedState$domai.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active && !state.appStates.skipChatButtonRendering) {
100
+ var _persistedState$domai2;
101
+
102
+ optionalParams = {
103
+ liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai2 = persistedState.domainStates) === null || _persistedState$domai2 === void 0 ? void 0 : _persistedState$domai2.liveChatContext
104
+ };
105
+ await initStartChat(optionalParams, persistedState);
106
+ } else {
107
+ const prechatResponseValues = (0, _utils.extractPreChatSurveyResponseValues)(state.domainStates.preChatSurveyResponse, values);
108
+ optionalParams = {
97
109
  preChatResponse: prechatResponseValues
98
- }
99
- };
100
- setPreChatResponseEmail(values);
101
- await initStartChat(optionalParams);
110
+ };
111
+ setPreChatResponseEmail(values);
112
+ await initStartChat(optionalParams);
113
+ }
102
114
  } catch (ex) {
103
115
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
104
116
  Event: _TelemetryConstants.TelemetryEvent.PreChatSurveyStartChatMethodFailed,