@microsoft/omnichannel-chat-widget 0.1.0-main.7a3ed6a → 0.1.0-main.84a7035

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 (159) hide show
  1. package/README.md +227 -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 +38 -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 +37 -3
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +22 -4
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +22 -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 +31 -1
  13. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +3 -0
  14. package/lib/cjs/common/utils.js +15 -2
  15. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +8 -1
  16. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -54
  17. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  18. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  19. package/lib/cjs/components/headerstateful/HeaderStateful.js +11 -8
  20. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  21. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +43 -35
  22. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +14 -0
  23. package/lib/cjs/components/livechatwidget/common/endChat.js +102 -50
  24. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  25. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +29 -9
  26. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +105 -20
  27. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -7
  28. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +26 -24
  29. package/lib/cjs/components/livechatwidget/common/startChat.js +113 -54
  30. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  31. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +101 -32
  32. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  33. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  34. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  35. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +28 -11
  36. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +10 -4
  37. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  38. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  39. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  40. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +9 -46
  41. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  42. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  43. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +44 -0
  44. package/lib/cjs/contexts/common/ConversationState.js +3 -2
  45. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +15 -12
  46. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +11 -4
  47. package/lib/cjs/contexts/createReducer.js +27 -10
  48. package/lib/cjs/controller/componentController.js +2 -2
  49. package/lib/cjs/plugins/newMessageEventHandler.js +102 -0
  50. package/lib/esm/assets/Audios.js +1 -0
  51. package/lib/esm/assets/Icons.js +11 -0
  52. package/lib/esm/common/Constants.js +34 -3
  53. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  54. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  55. package/lib/esm/common/telemetry/TelemetryConstants.js +33 -2
  56. package/lib/esm/common/telemetry/TelemetryHelper.js +22 -5
  57. package/lib/esm/common/telemetry/TelemetryManager.js +17 -9
  58. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +3 -3
  59. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  60. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +32 -3
  61. package/lib/esm/common/telemetry/loggers/consoleLogger.js +3 -0
  62. package/lib/esm/common/utils.js +11 -1
  63. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +9 -1
  64. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -50
  65. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  66. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  67. package/lib/esm/components/headerstateful/HeaderStateful.js +12 -9
  68. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  69. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +41 -36
  70. package/lib/esm/components/livechatwidget/common/disposeTelemetryLoggers.js +4 -0
  71. package/lib/esm/components/livechatwidget/common/endChat.js +100 -47
  72. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  73. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +25 -9
  74. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +94 -20
  75. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -3
  76. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +23 -22
  77. package/lib/esm/components/livechatwidget/common/startChat.js +108 -51
  78. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  79. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +94 -33
  80. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  81. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  82. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  83. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +26 -10
  84. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -5
  85. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  86. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  87. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  88. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +7 -44
  89. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  90. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  91. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +31 -0
  92. package/lib/esm/contexts/common/ConversationState.js +3 -2
  93. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +15 -12
  94. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +11 -4
  95. package/lib/esm/contexts/createReducer.js +27 -9
  96. package/lib/esm/controller/componentController.js +2 -2
  97. package/lib/esm/plugins/newMessageEventHandler.js +84 -0
  98. package/lib/types/assets/Audios.d.ts +1 -0
  99. package/lib/types/assets/Icons.d.ts +11 -0
  100. package/lib/types/common/Constants.d.ts +19 -1
  101. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  102. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  103. package/lib/types/common/telemetry/TelemetryConstants.d.ts +24 -1
  104. package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -0
  105. package/lib/types/common/telemetry/TelemetryManager.d.ts +1 -0
  106. package/lib/types/common/telemetry/definitions/Contracts.d.ts +3 -0
  107. package/lib/types/common/telemetry/definitions/Payload.d.ts +3 -0
  108. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +1 -0
  109. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +2 -0
  110. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +12 -0
  111. package/lib/types/common/utils.d.ts +1 -0
  112. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  113. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  114. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  115. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -0
  116. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  117. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -2
  118. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  119. package/lib/types/components/livechatwidget/common/startChat.d.ts +1 -1
  120. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  121. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  122. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -1
  123. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  124. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  125. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -0
  126. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  127. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  128. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  129. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  130. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  131. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -0
  132. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +15 -12
  133. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  134. package/package.json +11 -11
  135. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  136. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  137. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  138. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  139. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  140. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  141. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  142. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  143. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  144. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  145. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  146. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  147. package/lib/esm/assets/assets.d.js +0 -0
  148. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  149. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  150. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  151. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  152. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  153. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  154. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  155. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  156. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  157. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  158. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  159. 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");
@@ -90,7 +98,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
90
98
  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); }
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$componentOverr, _props$controlProps6, _props$componentOverr2, _props$controlProps7, _props$componentOverr3, _props$controlProps8, _props$componentOverr4, _props$controlProps9, _props$componentOverr5, _props$controlProps10, _props$componentOverr6, _props$controlProps11, _props$componentOverr7, _props$controlProps12, _props$controlProps13, _props$componentOverr8, _props$controlProps14, _props$componentOverr9, _props$controlProps15, _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
 
@@ -104,7 +112,8 @@ const LiveChatWidgetStateful = props => {
104
112
  const {
105
113
  Composer
106
114
  } = _botframeworkWebchat.Components;
107
- const canStartProactiveChat = (0, _react2.useRef)(true); // Process general styles
115
+ const canStartProactiveChat = (0, _react2.useRef)(true);
116
+ const canEndChat = (0, _react2.useRef)(true); // Process general styles
108
117
 
109
118
  const generalStyles = {
110
119
  root: Object.assign({}, (0, _getGeneralStylesForButton.getGeneralStylesForButton)(state), (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyles)
@@ -117,6 +126,7 @@ const LiveChatWidgetStateful = props => {
117
126
 
118
127
  (0, _registerTelemetryLoggers.registerTelemetryLoggers)(props, dispatch);
119
128
  (0, _createInternetConnectionChangeHandler.createInternetConnectionChangeHandler)();
129
+ _DataStoreManager.DataStoreManager.clientDataStore = props.contextDataStore ?? undefined;
120
130
  dispatch({
121
131
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID,
122
132
  payload: widgetElementId
@@ -135,7 +145,7 @@ const LiveChatWidgetStateful = props => {
135
145
  if (!((_props$controlProps3 = props.controlProps) !== null && _props$controlProps3 !== void 0 && _props$controlProps3.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
136
146
  var _props$reconnectChatP2;
137
147
 
138
- (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(dispatch, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, _startChat.initStartChat);
148
+ (0, _reconnectChatHelper.startUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, _startChat.initStartChat);
139
149
  } // Initialize global dir
140
150
 
141
151
 
@@ -145,13 +155,11 @@ const LiveChatWidgetStateful = props => {
145
155
  payload: globalDir
146
156
  });
147
157
 
148
- if ((_state$domainStates = state.domainStates) !== null && _state$domainStates !== void 0 && _state$domainStates.chatToken) {
158
+ if ((_state$domainStates = state.domainStates) !== null && _state$domainStates !== void 0 && _state$domainStates.liveChatContext) {
149
159
  var _state$domainStates2;
150
160
 
151
161
  const optionalParams = {
152
- liveChatContext: {
153
- chatToken: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.chatToken
154
- }
162
+ liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
155
163
  };
156
164
  (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
157
165
  }
@@ -161,9 +169,9 @@ const LiveChatWidgetStateful = props => {
161
169
  var _props$reconnectChatP3;
162
170
 
163
171
  if ((_props$reconnectChatP3 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP3 !== void 0 && _props$reconnectChatP3.reconnectId && !state.appStates.reconnectId) {
164
- var _props$reconnectChatP4;
172
+ var _props$reconnectChatP4, _props$reconnectChatP5;
165
173
 
166
- (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(dispatch, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId, _startChat.initStartChat);
174
+ (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
175
  } else {
168
176
  (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK).then(authReconnectId => {
169
177
  if (authReconnectId && !state.appStates.reconnectId) {
@@ -176,6 +184,12 @@ const LiveChatWidgetStateful = props => {
176
184
  payload: _ConversationState.ConversationState.ReconnectChat
177
185
  });
178
186
  } else {
187
+ const chatStartedSkippingChatButtonRendering = {
188
+ eventName: _TelemetryConstants.BroadcastEvent.StartChatSkippingChatButtonRendering
189
+ };
190
+
191
+ _omnichannelChatComponents.BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
192
+
179
193
  dispatch({
180
194
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
181
195
  payload: _ConversationState.ConversationState.Loading
@@ -188,28 +202,78 @@ const LiveChatWidgetStateful = props => {
188
202
  }, [state.appStates.skipChatButtonRendering]);
189
203
  (0, _react2.useEffect)(() => {
190
204
  _omnichannelChatComponents.BroadcastService.getMessageByEventName("StartProactiveChat").subscribe(msg => {
205
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
206
+ Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
207
+ Description: "Start proactive chat event received."
208
+ });
209
+
191
210
  if (canStartProactiveChat.current) {
192
211
  var _msg$payload, _msg$payload2, _msg$payload3;
193
212
 
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);
213
+ (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);
214
+ } else {
215
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
216
+ Event: _TelemetryConstants.TelemetryEvent.ChatAlreadyTriggered,
217
+ Description: "Start proactive chat method called, when chat was already triggered."
218
+ });
219
+ }
220
+ }); // start chat from SDK Event
221
+
222
+
223
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName("StartChat").subscribe(() => {
224
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
225
+ Event: _TelemetryConstants.TelemetryEvent.StartChatEventRecevied,
226
+ Description: "Start chat event received."
227
+ });
228
+
229
+ if (state.appStates.isMinimized) {
230
+ dispatch({
231
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
232
+ payload: false
233
+ });
234
+ } else {
235
+ (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
236
+ }
237
+ }); // end chat from SDK Event
238
+
239
+
240
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName("EndChat").subscribe(async () => {
241
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
242
+ Event: _TelemetryConstants.TelemetryEvent.EndChatEventReceived,
243
+ Description: "End chat event received."
244
+ });
245
+
246
+ if (canEndChat.current) {
247
+ (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
248
+ } else {
249
+ const skipEndChatSDK = true;
250
+ const skipCloseChat = false;
251
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
195
252
  }
196
253
  });
254
+
255
+ window.addEventListener("beforeunload", () => {
256
+ (0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
257
+ });
258
+
259
+ if (state.appStates.conversationEndedByAgent) {
260
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
261
+ }
197
262
  }, []);
198
263
  (0, _react2.useEffect)(() => {
199
- if (state.appStates.conversationState !== _ConversationState.ConversationState.Closed) {
200
- canStartProactiveChat.current = false;
201
- }
264
+ canStartProactiveChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Closed;
265
+ canEndChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Active;
202
266
 
203
267
  if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
204
268
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
205
269
  _omnichannelChatComponents.BroadcastService.postMessage({
206
- eventName: "NewMessageNotification"
270
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
207
271
  });
208
272
  });
209
273
  } // Track the message count
210
274
 
211
275
 
212
- if (state.appStates.conversationState == _ConversationState.ConversationState.Active) {
276
+ if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
213
277
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
214
278
  currentMessageCountRef.current++;
215
279
  dispatch({
@@ -228,7 +292,7 @@ const LiveChatWidgetStateful = props => {
228
292
  });
229
293
  const customEvent = {
230
294
  elementType: _omnichannelChatComponents.ElementType.Custom,
231
- eventName: "UnreadMessageCount",
295
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
232
296
  payload: 0
233
297
  };
234
298
 
@@ -239,7 +303,7 @@ const LiveChatWidgetStateful = props => {
239
303
  if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
240
304
  const customEvent = {
241
305
  elementType: _omnichannelChatComponents.ElementType.Custom,
242
- eventName: "UnreadMessageCount",
306
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
243
307
  payload: `${state.appStates.unreadMessageCount}`
244
308
  };
245
309
 
@@ -255,25 +319,30 @@ const LiveChatWidgetStateful = props => {
255
319
  }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
256
320
  const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
257
321
 
258
- const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
322
+ const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
259
323
 
260
- const endChatRelay = () => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
324
+
325
+ 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
326
+
327
+
328
+ const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
261
329
 
262
330
  const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
263
331
 
264
332
 
265
- const initStartChatRelay = optionalParams => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
333
+ const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
266
334
 
267
335
  const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props); // publish chat widget state
268
336
 
269
- const chatWidgetStateChangeEvent = {
270
- eventName: "ChatWidgetStateChanged",
271
- payload: { ...state
272
- }
273
- };
274
-
275
- _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
337
+ (0, _react2.useEffect)(() => {
338
+ const chatWidgetStateChangeEvent = {
339
+ eventName: _TelemetryConstants.BroadcastEvent.ChatWidgetStateChanged,
340
+ payload: { ...state
341
+ }
342
+ };
276
343
 
344
+ _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
345
+ }, [state]);
277
346
  return /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
278
347
  styleOptions: webChatStyles,
279
348
  directLine: ((_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
@@ -295,15 +364,15 @@ const LiveChatWidgetStateful = props => {
295
364
  })), !((_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, {
296
365
  reconnectChatProps: props.reconnectChatPaneProps,
297
366
  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, {
367
+ })), !((_props$controlProps11 = props.controlProps) !== null && _props$controlProps11 !== void 0 && _props$controlProps11.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
368
  surveyProps: props.preChatSurveyPaneProps,
300
369
  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({
370
+ })), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
302
371
  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, {
372
+ }, props.callingContainerProps)), !((_props$controlProps13 = props.controlProps) !== null && _props$controlProps13 !== void 0 && _props$controlProps13.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$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.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
373
  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))));
374
+ prepareEndChat: prepareEndChatRelay
375
+ }))), !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.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
376
  };
308
377
 
309
378
  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"));
@@ -13,12 +15,12 @@ var _utils = require("../../common/utils");
13
15
 
14
16
  var _ConversationState = require("../../contexts/common/ConversationState");
15
17
 
18
+ var _DataStoreManager = require("../../common/contextDataStore/DataStoreManager");
19
+
16
20
  var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
17
21
 
18
22
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
19
23
 
20
- var _Constants = require("../../common/Constants");
21
-
22
24
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
23
25
 
24
26
  var _defaultGeneralPreChatSurveyPaneStyleProps = require("./common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps");
@@ -63,7 +65,7 @@ const PreChatSurveyPaneStateful = props => {
63
65
  try {
64
66
  return (0, _utils.parseAdaptiveCardPayload)(payload, requiredFieldMissingMessage);
65
67
  } catch (ex) {
66
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
68
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
67
69
  Event: _TelemetryConstants.TelemetryEvent.ParseAdaptiveCardFailed,
68
70
  Description: "Adaptive Card JSON Parse Failed.",
69
71
  ExceptionDetails: {
@@ -91,14 +93,29 @@ const PreChatSurveyPaneStateful = props => {
91
93
  });
92
94
 
93
95
  try {
94
- const prechatResponseValues = (0, _utils.extractPreChatSurveyResponseValues)(state.domainStates.preChatSurveyResponse, values);
95
- const optionalParams = {
96
- initContext: {
97
- preChatResponse: prechatResponseValues
98
- }
99
- };
100
- setPreChatResponseEmail(values);
101
- await initStartChat(optionalParams);
96
+ var _DataStoreManager$cli, _persistedState$domai;
97
+
98
+ const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(_Constants.Constants.widgetStateDataKey, "localStorage");
99
+ const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
100
+ let optionalParams = {};
101
+
102
+ if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai = persistedState.domainStates) !== null && _persistedState$domai !== void 0 && _persistedState$domai.liveChatContext) {
103
+ var _persistedState$domai2;
104
+
105
+ optionalParams = {
106
+ liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai2 = persistedState.domainStates) === null || _persistedState$domai2 === void 0 ? void 0 : _persistedState$domai2.liveChatContext
107
+ };
108
+ await initStartChat(optionalParams, persistedState);
109
+ } else {
110
+ const prechatResponseValues = (0, _utils.extractPreChatSurveyResponseValues)(state.domainStates.preChatSurveyResponse, values);
111
+ optionalParams = {
112
+ initContext: {
113
+ preChatResponse: prechatResponseValues
114
+ }
115
+ };
116
+ setPreChatResponseEmail(values);
117
+ await initStartChat(optionalParams);
118
+ }
102
119
  } catch (ex) {
103
120
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
104
121
  Event: _TelemetryConstants.TelemetryEvent.PreChatSurveyStartChatMethodFailed,
@@ -51,7 +51,7 @@ const ProactiveChatPaneStateful = props => {
51
51
  payload: _ConversationState.ConversationState.Closed
52
52
  });
53
53
 
54
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
54
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
55
55
  Event: _TelemetryConstants.TelemetryEvent.ProactiveChatRejected,
56
56
  ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed,
57
57
  Description: "Proactive chat invitation timed out."
@@ -75,14 +75,14 @@ const ProactiveChatPaneStateful = props => {
75
75
  if (state.appStates.proactiveChatStates.proactiveChatInNewWindow) {
76
76
  // TODO: BroadcastService: replace with the sdk broadcast service, when in place
77
77
  const startPopoutChatEvent = {
78
- eventName: "StartPopoutChat"
78
+ eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartPopoutChat
79
79
  };
80
80
 
81
81
  _omnichannelChatComponents.BroadcastService.postMessage(startPopoutChatEvent);
82
82
 
83
83
  dispatch({
84
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
85
- payload: true
84
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
85
+ payload: _ConversationState.ConversationState.Closed
86
86
  });
87
87
  } else if (((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.OutOfOperatingHours) === "True") {
88
88
  dispatch({
@@ -94,6 +94,12 @@ const ProactiveChatPaneStateful = props => {
94
94
  payload: _ConversationState.ConversationState.OutOfOffice
95
95
  });
96
96
  } else {
97
+ const proactiveChatStarted = {
98
+ eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartChat
99
+ };
100
+
101
+ _omnichannelChatComponents.BroadcastService.postMessage(proactiveChatStarted);
102
+
97
103
  await startChat();
98
104
  }
99
105
  },
@@ -24,6 +24,10 @@ class MockChatSDK {
24
24
  return null;
25
25
  }
26
26
 
27
+ getChatToken() {
28
+ return null;
29
+ }
30
+
27
31
  createChatAdapter() {
28
32
  return new _mockadapter.default();
29
33
  } // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -5,85 +5,63 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.isInlineMediaSupported = exports.getFileAttachmentIconData = void 0;
7
7
 
8
- var _BrowserVendor = require("../../webchatcontroller/enums/BrowserVendor");
8
+ var _Icons = require("../../../../assets/Icons");
9
9
 
10
10
  var _BrowserInfo = require("./BrowserInfo");
11
11
 
12
- var _archiveIcon = _interopRequireDefault(require("../../../../assets/icons/archiveIcon.svg"));
13
-
14
- var _audioIcon = _interopRequireDefault(require("../../../../assets/icons/audioIcon.svg"));
15
-
16
- var _blankIcon = _interopRequireDefault(require("../../../../assets/icons/blankIcon.svg"));
17
-
18
- var _videoIcon = _interopRequireDefault(require("../../../../assets/icons/videoIcon.svg"));
19
-
20
- var _imageIcon = _interopRequireDefault(require("../../../../assets/icons/imageIcon.svg"));
21
-
22
- var _wordIcon = _interopRequireDefault(require("../../../../assets/icons/wordIcon.svg"));
23
-
24
- var _oneNoteIcon = _interopRequireDefault(require("../../../../assets/icons/oneNoteIcon.svg"));
25
-
26
- var _powerpointIcon = _interopRequireDefault(require("../../../../assets/icons/powerpointIcon.svg"));
27
-
28
- var _visioIcon = _interopRequireDefault(require("../../../../assets/icons/visioIcon.svg"));
29
-
30
- var _pdfIcon = _interopRequireDefault(require("../../../../assets/icons/pdfIcon.svg"));
31
-
32
- var _excelIcon = _interopRequireDefault(require("../../../../assets/icons/excelIcon.svg"));
12
+ var _BrowserVendor = require("../../webchatcontroller/enums/BrowserVendor");
33
13
 
34
14
  var _Constants = require("../../../../common/Constants");
35
15
 
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
-
38
16
  const FileAttachmentIconMap = {
39
- "aac": _audioIcon.default,
40
- "aiff": _audioIcon.default,
41
- "alac": _audioIcon.default,
42
- "avchd": _videoIcon.default,
43
- "avi": _videoIcon.default,
44
- "bmp": _imageIcon.default,
45
- "doc": _wordIcon.default,
46
- "docx": _wordIcon.default,
47
- "flac": _audioIcon.default,
48
- "flv": _videoIcon.default,
49
- "gif": _imageIcon.default,
50
- "jiff": _imageIcon.default,
51
- "jpeg": _imageIcon.default,
52
- "jpg": _imageIcon.default,
53
- "mpe": _videoIcon.default,
54
- "mpeg": _videoIcon.default,
55
- "mpg": _videoIcon.default,
56
- "mpv": _videoIcon.default,
57
- "mp2": _audioIcon.default,
58
- "mp3": _audioIcon.default,
59
- "mp4": _videoIcon.default,
60
- "m4p": _videoIcon.default,
61
- "m4v": _videoIcon.default,
62
- "mov": _videoIcon.default,
63
- "one": _oneNoteIcon.default,
64
- "pcm": _audioIcon.default,
65
- "pdf": _pdfIcon.default,
66
- "png": _imageIcon.default,
67
- "ppt": _powerpointIcon.default,
68
- "pptx": _powerpointIcon.default,
69
- "qt": _videoIcon.default,
70
- "rar": _archiveIcon.default,
71
- "swf": _videoIcon.default,
72
- "tar": _archiveIcon.default,
73
- "tar.gz": _archiveIcon.default,
74
- "tgz": _archiveIcon.default,
75
- "txt": _blankIcon.default,
76
- "vsd": _visioIcon.default,
77
- "vsdx": _visioIcon.default,
78
- "wav": _audioIcon.default,
79
- "webm": _videoIcon.default,
80
- "wma": _audioIcon.default,
81
- "wmv": _videoIcon.default,
82
- "xls": _excelIcon.default,
83
- "xlsx": _excelIcon.default,
84
- "zip": _archiveIcon.default,
85
- "zipx": _archiveIcon.default,
86
- "7z": _archiveIcon.default
17
+ "aac": _Icons.AudioIcon,
18
+ "aiff": _Icons.AudioIcon,
19
+ "alac": _Icons.AudioIcon,
20
+ "avchd": _Icons.VideoIcon,
21
+ "avi": _Icons.VideoIcon,
22
+ "bmp": _Icons.ImageIcon,
23
+ "doc": _Icons.WordIcon,
24
+ "docx": _Icons.WordIcon,
25
+ "flac": _Icons.AudioIcon,
26
+ "flv": _Icons.VideoIcon,
27
+ "gif": _Icons.ImageIcon,
28
+ "jiff": _Icons.ImageIcon,
29
+ "jpeg": _Icons.ImageIcon,
30
+ "jpg": _Icons.ImageIcon,
31
+ "mpe": _Icons.VideoIcon,
32
+ "mpeg": _Icons.VideoIcon,
33
+ "mpg": _Icons.VideoIcon,
34
+ "mpv": _Icons.VideoIcon,
35
+ "mp2": _Icons.AudioIcon,
36
+ "mp3": _Icons.AudioIcon,
37
+ "mp4": _Icons.VideoIcon,
38
+ "m4p": _Icons.VideoIcon,
39
+ "m4v": _Icons.VideoIcon,
40
+ "mov": _Icons.VideoIcon,
41
+ "one": _Icons.OneNoteIcon,
42
+ "pcm": _Icons.AudioIcon,
43
+ "pdf": _Icons.PDFIcon,
44
+ "png": _Icons.ImageIcon,
45
+ "ppt": _Icons.PowerpointIcon,
46
+ "pptx": _Icons.PowerpointIcon,
47
+ "qt": _Icons.VideoIcon,
48
+ "rar": _Icons.ArchiveIcon,
49
+ "swf": _Icons.VideoIcon,
50
+ "tar": _Icons.ArchiveIcon,
51
+ "tar.gz": _Icons.ArchiveIcon,
52
+ "tgz": _Icons.ArchiveIcon,
53
+ "txt": _Icons.BlankIcon,
54
+ "vsd": _Icons.VisioIcon,
55
+ "vsdx": _Icons.VisioIcon,
56
+ "wav": _Icons.AudioIcon,
57
+ "webm": _Icons.VideoIcon,
58
+ "wma": _Icons.AudioIcon,
59
+ "wmv": _Icons.VideoIcon,
60
+ "xls": _Icons.ExcelIcon,
61
+ "xlsx": _Icons.ExcelIcon,
62
+ "zip": _Icons.ArchiveIcon,
63
+ "zipx": _Icons.ArchiveIcon,
64
+ "7z": _Icons.ArchiveIcon
87
65
  };
88
66
  /**
89
67
  * Get file attachment icon image depending on extension.
@@ -94,7 +72,7 @@ const FileAttachmentIconMap = {
94
72
  const getFileAttachmentIconData = extension => {
95
73
  const key = extension.startsWith(".") ? extension.slice(1) : extension || "";
96
74
 
97
- const icon = FileAttachmentIconMap[key.toLowerCase()] || _blankIcon.default;
75
+ const icon = FileAttachmentIconMap[key.toLowerCase()] || _Icons.BlankIcon;
98
76
 
99
77
  return icon;
100
78
  }; // Check if browser supports inline media playing for current media format