@microsoft/omnichannel-chat-widget 0.1.0-main.07f52ee → 0.1.0-main.20562ae

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 (109) hide show
  1. package/README.md +3 -11
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +4 -0
  5. package/lib/cjs/common/telemetry/TelemetryConstants.js +32 -3
  6. package/lib/cjs/common/telemetry/TelemetryManager.js +7 -5
  7. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  8. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -39
  9. package/lib/cjs/components/footerstateful/FooterStateful.js +3 -3
  10. package/lib/cjs/components/headerstateful/HeaderStateful.js +11 -8
  11. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  12. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +11 -7
  13. package/lib/cjs/components/livechatwidget/common/endChat.js +101 -57
  14. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +1 -1
  15. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +25 -7
  16. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +7 -6
  17. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
  18. package/lib/cjs/components/livechatwidget/common/startChat.js +5 -1
  19. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  20. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +72 -21
  21. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  22. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -3
  23. package/lib/cjs/{assets/assets.d.js → components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js} +0 -0
  24. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  25. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  26. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +9 -46
  27. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  28. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  29. package/lib/cjs/contexts/common/ConversationState.js +3 -2
  30. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +15 -16
  31. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +5 -1
  32. package/lib/cjs/contexts/createReducer.js +0 -10
  33. package/lib/cjs/controller/componentController.js +2 -2
  34. package/lib/cjs/plugins/newMessageEventHandler.js +102 -0
  35. package/lib/esm/assets/Audios.js +1 -0
  36. package/lib/esm/assets/Icons.js +11 -0
  37. package/lib/esm/common/Constants.js +4 -0
  38. package/lib/esm/common/telemetry/TelemetryConstants.js +28 -2
  39. package/lib/esm/common/telemetry/TelemetryManager.js +6 -5
  40. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  41. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -35
  42. package/lib/esm/components/footerstateful/FooterStateful.js +3 -3
  43. package/lib/esm/components/headerstateful/HeaderStateful.js +12 -9
  44. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  45. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +11 -9
  46. package/lib/esm/components/livechatwidget/common/endChat.js +100 -55
  47. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +1 -1
  48. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +23 -8
  49. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -3
  50. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
  51. package/lib/esm/components/livechatwidget/common/startChat.js +4 -1
  52. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  53. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +67 -19
  54. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  55. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +8 -4
  56. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  57. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  58. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  59. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +7 -44
  60. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  61. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  62. package/lib/esm/contexts/common/ConversationState.js +3 -2
  63. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +15 -16
  64. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +5 -1
  65. package/lib/esm/contexts/createReducer.js +0 -9
  66. package/lib/esm/controller/componentController.js +2 -2
  67. package/lib/esm/plugins/newMessageEventHandler.js +84 -0
  68. package/lib/types/assets/Audios.d.ts +1 -0
  69. package/lib/types/assets/Icons.d.ts +11 -0
  70. package/lib/types/common/Constants.d.ts +2 -0
  71. package/lib/types/common/telemetry/TelemetryConstants.d.ts +19 -1
  72. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  73. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  74. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  75. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  76. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  77. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  78. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  79. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  80. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  81. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  82. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +15 -16
  83. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  84. package/package.json +5 -6
  85. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  86. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  87. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  88. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  89. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  90. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  91. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  92. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  93. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  94. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  95. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  96. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  97. package/lib/esm/assets/assets.d.js +0 -0
  98. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  99. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  100. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  101. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  102. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  103. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  104. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  105. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  106. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  107. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  108. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  109. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.endChat = void 0;
6
+ exports.prepareEndChat = exports.endChat = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
9
 
@@ -13,69 +13,113 @@ var _ConversationState = require("../../../contexts/common/ConversationState");
13
13
 
14
14
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
15
15
 
16
- var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
17
-
18
- var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
19
-
20
16
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
21
17
 
22
18
  var _WebChatStoreLoader = require("../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
23
19
 
24
20
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
25
21
 
22
+ var _PostChatSurveyMode = require("../../postchatsurveypanestateful/enums/PostChatSurveyMode");
23
+
24
+ var _Constants = require("../../../common/Constants");
25
+
26
26
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter) => {
28
- try {
29
- var _props$webChatContain;
30
-
31
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
32
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
33
- });
34
-
35
- await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
36
- adapter === null || adapter === void 0 ? void 0 : adapter.end();
37
- setAdapter(undefined);
38
- setWebChatStyles({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
39
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
40
- });
41
- _WebChatStoreLoader.WebChatStoreLoader.store = null;
42
- dispatch({
43
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
44
- payload: _ConversationState.ConversationState.Closed
45
- });
46
- dispatch({
47
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
48
- payload: false
49
- });
50
- dispatch({
51
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
52
- payload: undefined
53
- });
54
- dispatch({
55
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
56
- payload: null
57
- });
58
- dispatch({
59
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
60
- payload: undefined
61
- });
62
- dispatch({
63
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
64
- payload: undefined
65
- });
66
-
67
- _omnichannelChatComponents.BroadcastService.postMessage({
68
- eventName: "EndChat"
69
- });
70
- } catch (ex) {
71
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
72
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
73
- ExceptionDetails: {
74
- exception: ex
75
- }
76
- });
77
-
78
- _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "End Chat Call Failed: " + ex);
27
+ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
28
+ var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4;
29
+
30
+ const isPostChatEnabled = (_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.msdyn_postconversationsurveyenable;
31
+ const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode;
32
+ const conversationDetails = await chatSDK.getConversationDetails();
33
+
34
+ if (isPostChatEnabled === "true" && (conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.canRenderPostChat) === _Constants.Constants.truePascal) {
35
+ const skipEndChatSDK = false;
36
+ const skipCloseChat = true;
37
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
38
+
39
+ if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
40
+ const loadPostChatEvent = {
41
+ eventName: _TelemetryConstants.BroadcastEvent.LoadPostChatSurvey
42
+ };
43
+
44
+ _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
45
+ } else if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
46
+ dispatch({
47
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
48
+ payload: _ConversationState.ConversationState.InActive
49
+ });
50
+ }
51
+ } else {
52
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
53
+ }
54
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
+
56
+
57
+ exports.prepareEndChat = prepareEndChat;
58
+
59
+ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat) => {
60
+ if (!skipEndChatSDK) {
61
+ try {
62
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
63
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
64
+ });
65
+
66
+ await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
67
+ } catch (ex) {
68
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
69
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
70
+ ExceptionDetails: {
71
+ exception: ex
72
+ }
73
+ });
74
+ }
75
+ }
76
+
77
+ if (!skipCloseChat) {
78
+ try {
79
+ var _props$webChatContain;
80
+
81
+ adapter === null || adapter === void 0 ? void 0 : adapter.end();
82
+ setAdapter(undefined);
83
+ setWebChatStyles({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
84
+ ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
85
+ });
86
+ _WebChatStoreLoader.WebChatStoreLoader.store = null;
87
+ dispatch({
88
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
89
+ payload: _ConversationState.ConversationState.Closed
90
+ });
91
+ dispatch({
92
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
93
+ payload: false
94
+ });
95
+ dispatch({
96
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
97
+ payload: undefined
98
+ });
99
+ dispatch({
100
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
101
+ payload: null
102
+ });
103
+ dispatch({
104
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
105
+ payload: undefined
106
+ });
107
+ dispatch({
108
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
109
+ payload: undefined
110
+ });
111
+
112
+ _omnichannelChatComponents.BroadcastService.postMessage({
113
+ eventName: _TelemetryConstants.BroadcastEvent.EndChat
114
+ });
115
+ } catch (error) {
116
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
117
+ Event: _TelemetryConstants.TelemetryEvent.CloseChatMethodException,
118
+ ExceptionDetails: {
119
+ exception: `Failed to endChat: ${error}`
120
+ }
121
+ });
122
+ }
79
123
  }
80
124
  };
81
125
 
@@ -18,7 +18,7 @@ const initCallingSdk = async (chatSDK, setVoiceVideoCallingSDK) => {
18
18
  const callingSDK = await chatSDK.getVoiceVideoCalling();
19
19
  setVoiceVideoCallingSDK(callingSDK);
20
20
 
21
- _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.ERROR, {
21
+ _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
22
22
  Event: _TelemetryConstants.TelemetryEvent.CallingSDKLoadSuccess
23
23
  });
24
24
 
@@ -5,12 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.initWebChatComposer = void 0;
7
7
 
8
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
+
8
10
  var _botframeworkWebchat = require("botframework-webchat");
9
11
 
12
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
13
+
14
+ var _ConversationState = require("../../../contexts/common/ConversationState");
15
+
10
16
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
11
17
 
12
18
  var _PostChatSurveyMode = require("../../postchatsurveypanestateful/enums/PostChatSurveyMode");
13
19
 
20
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
21
+
14
22
  var _WebChatStoreLoader = require("../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
15
23
 
16
24
  var _attachmentProcessingMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware"));
@@ -53,8 +61,6 @@ var _preProcessingMiddleware = _interopRequireDefault(require("../../webchatcont
53
61
 
54
62
  var _sanitizationMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware"));
55
63
 
56
- var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
57
-
58
64
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
59
65
 
60
66
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -78,6 +84,11 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
78
84
  const conversationEndCallback = async () => {
79
85
  var _props$webChatContain4, _props$webChatContain5;
80
86
 
87
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
88
+ Event: _TelemetryConstants.TelemetryEvent.ConversationEndedThreadEventReceived,
89
+ Description: "Conversation is ended by agent side or by timeout."
90
+ });
91
+
81
92
  if ((props === null || props === void 0 ? void 0 : (_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : (_props$webChatContain5 = _props$webChatContain4.renderingMiddlewareProps) === null || _props$webChatContain5 === void 0 ? void 0 : _props$webChatContain5.hideSendboxOnConversationEnd) !== false) {
82
93
  setWebChatStyles(styles => {
83
94
  return { ...styles,
@@ -86,12 +97,19 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
86
97
  });
87
98
  }
88
99
 
89
- if (isPostChatEnabled === "true" && postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
90
- const loadPostChatEvent = {
91
- eventName: "LoadPostChatSurvey"
92
- };
100
+ if (isPostChatEnabled === "true") {
101
+ if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
102
+ const loadPostChatEvent = {
103
+ eventName: _TelemetryConstants.BroadcastEvent.LoadPostChatSurvey
104
+ };
93
105
 
94
- _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
106
+ _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
107
+ } else if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
108
+ dispatch({
109
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
110
+ payload: _ConversationState.ConversationState.InActive
111
+ });
112
+ }
95
113
  } else {
96
114
  dispatch({
97
115
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
@@ -5,22 +5,22 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.registerTelemetryLoggers = void 0;
7
7
 
8
- var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
9
-
10
8
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
11
9
 
10
+ var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
11
+
12
12
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
13
13
 
14
+ var _package = require("@microsoft/omnichannel-chat-components/package.json");
15
+
16
+ var _package2 = require("@microsoft/omnichannel-chat-sdk/package.json");
17
+
14
18
  var _defaultAriaConfig = require("../../../common/telemetry/defaultConfigs/defaultAriaConfig");
15
19
 
16
20
  var _defaultTelemetryInternalData = require("../../../common/telemetry/defaultConfigs/defaultTelemetryInternalData");
17
21
 
18
22
  var _defaultTelemetryConfiguration = require("../../../common/telemetry/defaultConfigs/defaultTelemetryConfiguration");
19
23
 
20
- var _package = require("@microsoft/omnichannel-chat-components/package.json");
21
-
22
- var _package2 = require("@microsoft/omnichannel-chat-sdk/package.json");
23
-
24
24
  const registerTelemetryLoggers = (props, dispatch) => {
25
25
  var _props$liveChatContex, _props$liveChatContex2;
26
26
 
@@ -59,6 +59,7 @@ const registerTelemetryLoggers = (props, dispatch) => {
59
59
  telemetryData.orgId = (_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;
60
60
  telemetryData.widgetId = (_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;
61
61
  telemetryData.orgUrl = (_props$chatSDK3 = props.chatSDK) === null || _props$chatSDK3 === void 0 ? void 0 : (_props$chatSDK3$omnic = _props$chatSDK3.omnichannelConfig) === null || _props$chatSDK3$omnic === void 0 ? void 0 : _props$chatSDK3$omnic.orgUrl;
62
+ _TelemetryManager.TelemetryManager.InternalTelemetryData = telemetryData;
62
63
  dispatch({
63
64
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA,
64
65
  payload: telemetryData
@@ -7,13 +7,13 @@ exports.setPostChatContextAndLoadSurvey = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
9
 
10
- var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
11
-
12
- var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
13
11
 
14
12
  var _ConversationState = require("../../../contexts/common/ConversationState");
15
13
 
16
- var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
14
+ var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
15
+
16
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
17
17
 
18
18
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
19
  const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat) => {
@@ -39,7 +39,8 @@ const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat)
39
39
  exception: ex
40
40
  }
41
41
  });
42
- }
42
+ } // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
+
43
44
 
44
45
  _omnichannelChatComponents.BroadcastService.getMessageByEventName("LoadPostChatSurvey").subscribe(msg => {
45
46
  dispatch({
@@ -25,6 +25,8 @@ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
25
25
 
26
26
  var _createAdapter = require("./createAdapter");
27
27
 
28
+ var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
29
+
28
30
  var _utils = require("../../../common/utils");
29
31
 
30
32
  var _reconnectChatHelper = require("./reconnectChatHelper");
@@ -78,7 +80,7 @@ exports.prepareStartChat = prepareStartChat;
78
80
 
79
81
  const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedState) => {
80
82
  try {
81
- var _TelemetryTimers$Widg;
83
+ var _newAdapter$activity$, _TelemetryTimers$Widg;
82
84
 
83
85
  try {
84
86
  _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
@@ -99,6 +101,8 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedSta
99
101
 
100
102
  const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
101
103
  setAdapter(newAdapter);
104
+ const chatToken = await chatSDK.getChatToken();
105
+ newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe((0, _newMessageEventHandler.createOnNewAdapterActivityHandler)(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
102
106
 
103
107
  if (!persistedState) {
104
108
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -16,12 +16,12 @@ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
16
16
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
17
17
 
18
18
  // Defines startProactiveChat callback
19
- const startProactiveChat = (dispatch, bodyTitle, showPrechat, inNewWindow) => {
19
+ const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWindow) => {
20
20
  dispatch({
21
21
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
22
22
  payload: {
23
- proactiveChatBodyTitle: bodyTitle ?? "",
24
- proactiveChatEnablePrechat: showPrechat ?? false,
23
+ proactiveChatBodyTitle: notificationConfig && notificationConfig.message ? notificationConfig.message : "",
24
+ proactiveChatEnablePrechat: enablePreChat ?? false,
25
25
  proactiveChatInNewWindow: inNewWindow ?? false
26
26
  }
27
27
  });
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.LiveChatWidgetStateful = void 0;
7
7
 
8
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
+
8
10
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
11
 
10
12
  var _react = require("@fluentui/react");
@@ -29,6 +31,8 @@ var _ConfirmationPaneStateful = _interopRequireDefault(require("../../confirmati
29
31
 
30
32
  var _ConversationState = require("../../../contexts/common/ConversationState");
31
33
 
34
+ var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
35
+
32
36
  var _EmailTranscriptPaneStateful = _interopRequireDefault(require("../../emailtranscriptpanestateful/EmailTranscriptPaneStateful"));
33
37
 
34
38
  var _HeaderStateful = _interopRequireDefault(require("../../headerstateful/HeaderStateful"));
@@ -49,6 +53,8 @@ var _ProactiveChatPaneStateful = _interopRequireDefault(require("../../proactive
49
53
 
50
54
  var _ReconnectChatPaneStateful = _interopRequireDefault(require("../../reconnectchatpanestateful/ReconnectChatPaneStateful"));
51
55
 
56
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
57
+
52
58
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
53
59
 
54
60
  var _WebChatContainerStateful = _interopRequireDefault(require("../../webchatcontainerstateful/WebChatContainerStateful"));
@@ -59,6 +65,8 @@ var _createInternetConnectionChangeHandler = require("../common/createInternetCo
59
65
 
60
66
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
61
67
 
68
+ var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
69
+
62
70
  var _endChat = require("../common/endChat");
63
71
 
64
72
  var _getGeneralStylesForButton = require("../common/getGeneralStylesForButton");
@@ -81,12 +89,6 @@ var _useChatContextStore = _interopRequireDefault(require("../../../hooks/useCha
81
89
 
82
90
  var _useChatSDKStore = _interopRequireDefault(require("../../../hooks/useChatSDKStore"));
83
91
 
84
- var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
85
-
86
- var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
87
-
88
- var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
89
-
90
92
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
91
93
 
92
94
  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); }
@@ -96,7 +98,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
96
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); }
97
99
 
98
100
  const LiveChatWidgetStateful = props => {
99
- var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps5, _props$componentOverr, _props$controlProps6, _props$componentOverr2, _props$controlProps7, _props$componentOverr3, _props$controlProps8, _props$componentOverr4, _props$controlProps9, _props$componentOverr5, _props$controlProps10, _props$componentOverr6, _props$controlProps11, _props$controlProps12, _props$controlProps13, _props$componentOverr7, _props$controlProps14, _props$componentOverr8, _props$controlProps15, _props$componentOverr9, _props$componentOverr10, _props$componentOverr11;
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;
100
102
 
101
103
  const [state, dispatch] = (0, _useChatContextStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
104
 
@@ -110,7 +112,8 @@ const LiveChatWidgetStateful = props => {
110
112
  const {
111
113
  Composer
112
114
  } = _botframeworkWebchat.Components;
113
- 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
114
117
 
115
118
  const generalStyles = {
116
119
  root: Object.assign({}, (0, _getGeneralStylesForButton.getGeneralStylesForButton)(state), (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyles)
@@ -195,14 +198,57 @@ const LiveChatWidgetStateful = props => {
195
198
  }, [state.appStates.skipChatButtonRendering]);
196
199
  (0, _react2.useEffect)(() => {
197
200
  _omnichannelChatComponents.BroadcastService.getMessageByEventName("StartProactiveChat").subscribe(msg => {
201
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
202
+ Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
203
+ Description: "Start proactive chat event received."
204
+ });
205
+
198
206
  if (canStartProactiveChat.current) {
199
207
  var _msg$payload, _msg$payload2, _msg$payload3;
200
208
 
201
- (0, _startProactiveChat.startProactiveChat)(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.bodyTitle, msg === null || msg === void 0 ? void 0 : (_msg$payload2 = msg.payload) === null || _msg$payload2 === void 0 ? void 0 : _msg$payload2.showPrechat, msg === null || msg === void 0 ? void 0 : (_msg$payload3 = msg.payload) === null || _msg$payload3 === void 0 ? void 0 : _msg$payload3.inNewWindow);
209
+ (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);
210
+ } else {
211
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
212
+ Event: _TelemetryConstants.TelemetryEvent.ChatAlreadyTriggered,
213
+ Description: "Start proactive chat method called, when chat was already triggered."
214
+ });
215
+ }
216
+ }); // start chat from SDK Event
217
+
218
+
219
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName("StartChat").subscribe(() => {
220
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
221
+ Event: _TelemetryConstants.TelemetryEvent.StartChatEventRecevied,
222
+ Description: "Start chat event received."
223
+ });
224
+
225
+ if (state.appStates.isMinimized) {
226
+ dispatch({
227
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
228
+ payload: false
229
+ });
230
+ } else {
231
+ (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
232
+ }
233
+ }); // end chat from SDK Event
234
+
235
+
236
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName("EndChat").subscribe(async () => {
237
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
238
+ Event: _TelemetryConstants.TelemetryEvent.EndChatEventReceived,
239
+ Description: "End chat event received."
240
+ });
241
+
242
+ if (canEndChat.current) {
243
+ (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
244
+ } else {
245
+ const skipEndChatSDK = true;
246
+ const skipCloseChat = false;
247
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
202
248
  }
203
249
  });
204
250
 
205
- window.addEventListener("beforeunload", event => {
251
+ window.addEventListener("beforeunload", () => {
206
252
  (0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
207
253
  });
208
254
 
@@ -212,11 +258,12 @@ const LiveChatWidgetStateful = props => {
212
258
  }, []);
213
259
  (0, _react2.useEffect)(() => {
214
260
  canStartProactiveChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Closed;
261
+ canEndChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Active;
215
262
 
216
263
  if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
217
264
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
218
265
  _omnichannelChatComponents.BroadcastService.postMessage({
219
- eventName: "NewMessageNotification"
266
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
220
267
  });
221
268
  });
222
269
  } // Track the message count
@@ -241,7 +288,7 @@ const LiveChatWidgetStateful = props => {
241
288
  });
242
289
  const customEvent = {
243
290
  elementType: _omnichannelChatComponents.ElementType.Custom,
244
- eventName: "UnreadMessageCount",
291
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
245
292
  payload: 0
246
293
  };
247
294
 
@@ -252,7 +299,7 @@ const LiveChatWidgetStateful = props => {
252
299
  if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
253
300
  const customEvent = {
254
301
  elementType: _omnichannelChatComponents.ElementType.Custom,
255
- eventName: "UnreadMessageCount",
302
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
256
303
  payload: `${state.appStates.unreadMessageCount}`
257
304
  };
258
305
 
@@ -268,9 +315,13 @@ const LiveChatWidgetStateful = props => {
268
315
  }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
269
316
  const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
270
317
 
271
- const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
318
+ const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
272
319
 
273
- const endChatRelay = () => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
320
+
321
+ 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
322
+
323
+
324
+ const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
274
325
 
275
326
  const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
276
327
 
@@ -281,7 +332,7 @@ const LiveChatWidgetStateful = props => {
281
332
 
282
333
  (0, _react2.useEffect)(() => {
283
334
  const chatWidgetStateChangeEvent = {
284
- eventName: _TelemetryConstants.TelemetryEvent.ChatWidgetStateChanged,
335
+ eventName: _TelemetryConstants.BroadcastEvent.ChatWidgetStateChanged,
285
336
  payload: { ...state
286
337
  }
287
338
  };
@@ -309,15 +360,15 @@ const LiveChatWidgetStateful = props => {
309
360
  })), !((_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, {
310
361
  reconnectChatProps: props.reconnectChatPaneProps,
311
362
  initStartChat: initStartChatRelay
312
- })), !((_props$controlProps11 = props.controlProps) !== null && _props$controlProps11 !== void 0 && _props$controlProps11.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
363
+ })), !((_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, {
313
364
  surveyProps: props.preChatSurveyPaneProps,
314
365
  initStartChat: initStartChatRelay
315
- }), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
366
+ })), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
316
367
  voiceVideoCallingSdk: voiceVideoCallingSDK
317
- }, props.callingContainerProps)), !((_props$controlProps13 = props.controlProps) !== null && _props$controlProps13 !== void 0 && _props$controlProps13.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr7 = props.componentOverrides) === null || _props$componentOverr7 === void 0 ? void 0 : _props$componentOverr7.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, props.webChatContainerProps)), !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
368
+ }, 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, {
318
369
  setPostChatContext: setPostChatContextRelay,
319
- endChat: endChatRelay
320
- }))), !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane))));
370
+ prepareEndChat: prepareEndChatRelay
371
+ }))), !((_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))));
321
372
  };
322
373
 
323
374
  exports.LiveChatWidgetStateful = LiveChatWidgetStateful;
@@ -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,
@@ -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
  },