@microsoft/omnichannel-chat-widget 0.1.0-main.cf54410 → 0.1.0-main.d48dae2

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 (184) hide show
  1. package/README.md +259 -0
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +52 -6
  5. package/lib/cjs/common/telemetry/TelemetryConstants.js +61 -5
  6. package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
  7. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -6
  8. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  9. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  10. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +33 -13
  11. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -5
  12. package/lib/cjs/common/utils.js +76 -2
  13. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  14. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -4
  15. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -42
  16. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  17. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  18. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  19. package/lib/cjs/components/headerstateful/HeaderStateful.js +13 -10
  20. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  21. package/lib/cjs/{assets/assets.d.js → components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js} +0 -0
  22. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  23. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -1
  24. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +32 -32
  25. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +25 -24
  26. package/lib/cjs/components/livechatwidget/common/endChat.js +142 -51
  27. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  28. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +47 -9
  29. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +115 -22
  30. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +6 -17
  31. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -9
  32. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  33. package/lib/cjs/components/livechatwidget/common/startChat.js +176 -57
  34. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  35. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +246 -78
  36. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  37. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  38. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  39. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +8 -13
  40. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -5
  41. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  42. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +80 -0
  43. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  44. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  45. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  46. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  47. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  48. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  49. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  50. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  51. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  52. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  53. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  54. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  55. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +9 -7
  56. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +8 -3
  57. package/lib/cjs/contexts/createReducer.js +16 -10
  58. package/lib/cjs/controller/componentController.js +5 -5
  59. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  60. package/lib/esm/assets/Audios.js +1 -0
  61. package/lib/esm/assets/Icons.js +11 -0
  62. package/lib/esm/common/Constants.js +48 -5
  63. package/lib/esm/common/telemetry/TelemetryConstants.js +57 -4
  64. package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
  65. package/lib/esm/common/telemetry/TelemetryManager.js +15 -6
  66. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  67. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  68. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +36 -14
  69. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -5
  70. package/lib/esm/common/utils.js +55 -1
  71. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  72. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -7
  73. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -38
  74. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  75. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  76. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  77. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -11
  78. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  79. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  80. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  81. package/lib/esm/components/livechatwidget/common/createAdapter.js +10 -2
  82. package/lib/esm/components/livechatwidget/common/createMarkdown.js +32 -31
  83. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +23 -25
  84. package/lib/esm/components/livechatwidget/common/endChat.js +139 -50
  85. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  86. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +42 -11
  87. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +104 -22
  88. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +5 -14
  89. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -9
  90. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  91. package/lib/esm/components/livechatwidget/common/startChat.js +170 -56
  92. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  93. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +232 -79
  94. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  95. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  96. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  97. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -13
  98. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -6
  99. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  100. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +72 -0
  101. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  102. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  103. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  104. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  105. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  106. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  107. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  108. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  109. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  110. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  111. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  112. package/lib/esm/contexts/common/ConversationState.js +4 -2
  113. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +9 -7
  114. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +8 -3
  115. package/lib/esm/contexts/createReducer.js +16 -9
  116. package/lib/esm/controller/componentController.js +5 -5
  117. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  118. package/lib/types/assets/Audios.d.ts +1 -0
  119. package/lib/types/assets/Icons.d.ts +11 -0
  120. package/lib/types/common/Constants.d.ts +26 -2
  121. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  122. package/lib/types/common/telemetry/TelemetryConstants.d.ts +44 -2
  123. package/lib/types/common/telemetry/TelemetryHelper.d.ts +3 -1
  124. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  125. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  126. package/lib/types/common/utils.d.ts +7 -1
  127. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  128. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  129. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  130. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  131. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  132. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  133. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  134. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  135. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  136. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  137. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  138. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  139. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  140. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  141. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -1
  142. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  143. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  144. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  145. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  146. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  147. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  148. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  149. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -2
  150. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  151. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  152. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  153. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  154. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  155. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  156. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -1
  157. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +10 -8
  158. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  159. package/package.json +9 -11
  160. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  161. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  162. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  163. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  164. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  165. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  166. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  167. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  168. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  169. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  170. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  171. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  172. package/lib/esm/assets/assets.d.js +0 -0
  173. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  174. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  175. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  176. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  177. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  178. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  179. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  180. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  181. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  182. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  183. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  184. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.PreChatSurveyPaneStateful = void 0;
7
7
 
8
+ var _Constants = require("../../common/Constants");
9
+
8
10
  var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
11
 
10
12
  var _react = _interopRequireWildcard(require("react"));
@@ -17,8 +19,6 @@ var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetAct
17
19
 
18
20
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
19
21
 
20
- var _Constants = require("../../common/Constants");
21
-
22
22
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
23
23
 
24
24
  var _defaultGeneralPreChatSurveyPaneStyleProps = require("./common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps");
@@ -27,8 +27,6 @@ var _defaultPreChatSurveyLocalizedTexts = require("./common/defaultProps/default
27
27
 
28
28
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
29
29
 
30
- var _DataStoreManager = require("../../common/contextDataStore/DataStoreManager");
31
-
32
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
31
 
34
32
  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); }
@@ -65,7 +63,7 @@ const PreChatSurveyPaneStateful = props => {
65
63
  try {
66
64
  return (0, _utils.parseAdaptiveCardPayload)(payload, requiredFieldMissingMessage);
67
65
  } catch (ex) {
68
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
66
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
69
67
  Event: _TelemetryConstants.TelemetryEvent.ParseAdaptiveCardFailed,
70
68
  Description: "Adaptive Card JSON Parse Failed.",
71
69
  ExceptionDetails: {
@@ -93,13 +91,12 @@ const PreChatSurveyPaneStateful = props => {
93
91
  });
94
92
 
95
93
  try {
96
- var _DataStoreManager$cli, _persistedState$domai;
94
+ var _state$domainStates, _state$domainStates$t, _state$domainStates$t2, _persistedState$domai, _persistedState$appSt;
97
95
 
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 = {};
96
+ const persistedState = (0, _utils.getStateFromCache)(((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$t = _state$domainStates.telemetryInternalData) === null || _state$domainStates$t === void 0 ? void 0 : _state$domainStates$t.orgId) ?? "", ((_state$domainStates$t2 = state.domainStates.telemetryInternalData) === null || _state$domainStates$t2 === void 0 ? void 0 : _state$domainStates$t2.widgetId) ?? "");
97
+ let optionalParams = {}; //Connect to Active chats and chat is not popout
101
98
 
102
- if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai = persistedState.domainStates) !== null && _persistedState$domai !== void 0 && _persistedState$domai.liveChatContext) {
99
+ if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : _persistedState$domai.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active && !state.appStates.skipChatButtonRendering) {
103
100
  var _persistedState$domai2;
104
101
 
105
102
  optionalParams = {
@@ -109,9 +106,7 @@ const PreChatSurveyPaneStateful = props => {
109
106
  } else {
110
107
  const prechatResponseValues = (0, _utils.extractPreChatSurveyResponseValues)(state.domainStates.preChatSurveyResponse, values);
111
108
  optionalParams = {
112
- initContext: {
113
- preChatResponse: prechatResponseValues
114
- }
109
+ preChatResponse: prechatResponseValues
115
110
  };
116
111
  setPreChatResponseEmail(values);
117
112
  await initStartChat(optionalParams);
@@ -46,12 +46,20 @@ const ProactiveChatPaneStateful = props => {
46
46
  const handleProactiveChatInviteTimeout = () => {
47
47
  if (!timeoutRemoved) {
48
48
  setTimeoutRemoved(true);
49
+ dispatch({
50
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
51
+ payload: {
52
+ proactiveChatBodyTitle: "",
53
+ proactiveChatEnablePrechat: false,
54
+ proactiveChatInNewWindow: false
55
+ }
56
+ });
49
57
  dispatch({
50
58
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
51
59
  payload: _ConversationState.ConversationState.Closed
52
60
  });
53
61
 
54
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
62
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
55
63
  Event: _TelemetryConstants.TelemetryEvent.ProactiveChatRejected,
56
64
  ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed,
57
65
  Description: "Proactive chat invitation timed out."
@@ -75,14 +83,14 @@ const ProactiveChatPaneStateful = props => {
75
83
  if (state.appStates.proactiveChatStates.proactiveChatInNewWindow) {
76
84
  // TODO: BroadcastService: replace with the sdk broadcast service, when in place
77
85
  const startPopoutChatEvent = {
78
- eventName: "StartPopoutChat"
86
+ eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartPopoutChat
79
87
  };
80
88
 
81
89
  _omnichannelChatComponents.BroadcastService.postMessage(startPopoutChatEvent);
82
90
 
83
91
  dispatch({
84
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
85
- payload: true
92
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
93
+ payload: _ConversationState.ConversationState.Closed
86
94
  });
87
95
  } 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
96
  dispatch({
@@ -94,6 +102,12 @@ const ProactiveChatPaneStateful = props => {
94
102
  payload: _ConversationState.ConversationState.OutOfOffice
95
103
  });
96
104
  } else {
105
+ const proactiveChatStarted = {
106
+ eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartChat
107
+ };
108
+
109
+ _omnichannelChatComponents.BroadcastService.postMessage(proactiveChatStarted);
110
+
97
111
  await startChat();
98
112
  }
99
113
  },
@@ -105,13 +119,21 @@ const ProactiveChatPaneStateful = props => {
105
119
  Description: "Proactive chat closed."
106
120
  });
107
121
 
122
+ dispatch({
123
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
124
+ payload: {
125
+ proactiveChatBodyTitle: "",
126
+ proactiveChatEnablePrechat: false,
127
+ proactiveChatInNewWindow: false
128
+ }
129
+ });
108
130
  dispatch({
109
131
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
110
132
  payload: _ConversationState.ConversationState.Closed
111
133
  });
112
134
  },
113
135
  ...(proactiveChatProps === null || proactiveChatProps === void 0 ? void 0 : proactiveChatProps.controlProps),
114
- bodyTitleText: state.appStates.proactiveChatStates.proactiveChatBodyTitle ?? (proactiveChatProps === null || proactiveChatProps === void 0 ? void 0 : (_proactiveChatProps$c = proactiveChatProps.controlProps) === null || _proactiveChatProps$c === void 0 ? void 0 : _proactiveChatProps$c.bodyTitleText)
136
+ bodyTitleText: state.appStates.proactiveChatStates.proactiveChatBodyTitle ? state.appStates.proactiveChatStates.proactiveChatBodyTitle : proactiveChatProps === null || proactiveChatProps === void 0 ? void 0 : (_proactiveChatProps$c = proactiveChatProps.controlProps) === null || _proactiveChatProps$c === void 0 ? void 0 : _proactiveChatProps$c.bodyTitleText
115
137
  };
116
138
  (0, _react.useEffect)(() => {
117
139
  (0, _utils.setFocusOnElement)(document.getElementById(controlProps.id + "-startbutton"));
@@ -25,15 +25,53 @@ var _utils = require("../../common/utils");
25
25
 
26
26
  var _ = require("../..");
27
27
 
28
+ var _WebChatActionType = require("./webchatcontroller/enums/WebChatActionType");
29
+
30
+ var _WebChatStoreLoader = require("./webchatcontroller/WebChatStoreLoader");
31
+
32
+ var _Constants = require("../../common/Constants");
33
+
34
+ var _BotMagicCodeStore = require("./webchatcontroller/BotMagicCodeStore");
35
+
28
36
  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); }
29
37
 
30
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
39
 
40
+ const broadcastChannelMessageEvent = "message";
41
+
42
+ const postActivity = activity => {
43
+ // eslint-disable-line @typescript-eslint/no-explicit-any
44
+ return {
45
+ type: _WebChatActionType.WebChatActionType.DIRECT_LINE_POST_ACTIVITY,
46
+ meta: {
47
+ method: "keyboard"
48
+ },
49
+ payload: {
50
+ activity: {
51
+ channelData: undefined,
52
+ text: "",
53
+ textFormat: "plain",
54
+ type: _Constants.Constants.message,
55
+ ...activity
56
+ }
57
+ }
58
+ };
59
+ };
60
+
61
+ const createMagicCodeSuccessResponse = signin => {
62
+ return {
63
+ signin,
64
+ result: "Success"
65
+ };
66
+ };
67
+
32
68
  const WebChatContainerStateful = props => {
33
69
  const {
34
70
  BasicWebChat
35
71
  } = _botframeworkWebchat.Components;
36
72
  const [state, dispatch] = (0, _.useChatContextStore)();
73
+ const magicCodeBroadcastChannel = new BroadcastChannel(_Constants.Constants.magicCodeBroadcastChannel);
74
+ const magicCodeResponseBroadcastChannel = new BroadcastChannel(_Constants.Constants.magicCodeResponseBroadcastChannel);
37
75
  const containerStyles = {
38
76
  root: Object.assign({}, _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.containerStyles, props === null || props === void 0 ? void 0 : props.containerStyles, {
39
77
  display: state.appStates.isMinimized ? "none" : ""
@@ -58,6 +96,48 @@ const WebChatContainerStateful = props => {
58
96
  Event: _TelemetryConstants.TelemetryEvent.WebChatLoaded
59
97
  });
60
98
  }, []);
99
+ (0, _react2.useEffect)(() => {
100
+ const eventListener = event => {
101
+ // eslint-disable-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-function
102
+ const {
103
+ data
104
+ } = event;
105
+
106
+ if (_BotMagicCodeStore.BotMagicCodeStore.botOAuthSignInId === data.signin) {
107
+ const {
108
+ signin,
109
+ code
110
+ } = data;
111
+ const text = `${code}`;
112
+ const action = postActivity({
113
+ text,
114
+ channelData: {
115
+ tags: [_Constants.Constants.hiddenTag]
116
+ }
117
+ });
118
+
119
+ _WebChatStoreLoader.WebChatStoreLoader.store.dispatch(action);
120
+
121
+ const response = createMagicCodeSuccessResponse(signin);
122
+ magicCodeResponseBroadcastChannel.postMessage(response);
123
+
124
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
125
+ Event: _TelemetryConstants.TelemetryEvent.SuppressBotMagicCodeSucceeded
126
+ });
127
+
128
+ _BotMagicCodeStore.BotMagicCodeStore.botOAuthSignInId = "";
129
+ magicCodeBroadcastChannel.close();
130
+ magicCodeResponseBroadcastChannel.close();
131
+ } else {
132
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
133
+ Event: _TelemetryConstants.TelemetryEvent.SuppressBotMagicCodeFailed,
134
+ Description: "Signin does not match"
135
+ });
136
+ }
137
+ };
138
+
139
+ magicCodeBroadcastChannel.addEventListener(broadcastChannelMessageEvent, eventListener);
140
+ }, []);
61
141
  return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("style", null, `
62
142
  .ms_lcw_webchat_received_message img.webchat__markdown__external-link-icon {
63
143
  background-image : url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjI1MDEgNC41MDAxN0gxMC43NDk1QzExLjE2MzcgNC41MDAxNyAxMS40OTk1IDQuODM1OTYgMTEuNDk5NSA1LjI1MDE3QzExLjQ5OTUgNS42Mjk4NiAxMS4yMTczIDUuOTQzNjYgMTAuODUxMyA1Ljk5MzMyTDEwLjc0OTUgNi4wMDAxN0g3LjI0OTc0QzYuMDcwNzkgNS45OTk2MSA1LjEwMzQ5IDYuOTA2NTYgNS4wMDc4NiA4LjA2MTEyTDUuMDAwMjggOC4yMjAwM0w1LjAwMzEyIDE2Ljc1MDdDNS4wMDM0MyAxNy45NDE1IDUuOTI4ODUgMTguOTE2MSA3LjA5OTY2IDE4Ljk5NDlMNy4yNTM3MSAxOS4wMDAxTDE1Ljc1MTggMTguOTg4NEMxNi45NDE1IDE4Ljk4NjggMTcuOTE0NSAxOC4wNjIgMTcuOTkzNSAxNi44OTIzTDE3Ljk5ODcgMTYuNzM4NFYxMy4yMzIxQzE3Ljk5ODcgMTIuODE3OSAxOC4zMzQ1IDEyLjQ4MjEgMTguNzQ4NyAxMi40ODIxQzE5LjEyODQgMTIuNDgyMSAxOS40NDIyIDEyLjc2NDMgMTkuNDkxOCAxMy4xMzAzTDE5LjQ5ODcgMTMuMjMyMVYxNi43Mzg0QzE5LjQ5ODcgMTguNzQwNyAxNy45MjkzIDIwLjM3NjkgMTUuOTUyOCAyMC40ODI5TDE1Ljc1MzggMjAuNDg4NEw3LjI1ODI3IDIwLjUwMDFMNy4wNTQ5NSAyMC40OTQ5QzUuMTQyMzkgMjAuMzk1NCAzLjYwODk1IDE4Ljg2MjcgMy41MDgzNyAxNi45NTAyTDMuNTAzMTIgMTYuNzUxMUwzLjUwMDg5IDguMjUyN0wzLjUwNTI5IDguMDUwMkMzLjYwNTM5IDYuMTM3NDkgNS4xMzg2NyA0LjYwNDQ5IDcuMDUwOTYgNC41MDUyN0w3LjI1MDEgNC41MDAxN0gxMC43NDk1SDcuMjUwMVpNMTMuNzQ4MSAzLjAwMTQ2TDIwLjMwMTggMy4wMDE5N0wyMC40MDE0IDMuMDE1NzVMMjAuNTAyMiAzLjA0MzkzTDIwLjU1OSAzLjA2ODAzQzIwLjYxMjIgMy4wOTEyMiAyMC42NjM0IDMuMTIxNjMgMjAuNzExMSAzLjE1ODg1TDIwLjc4MDQgMy4yMjE1NkwyMC44NjQxIDMuMzIwMTRMMjAuOTE4MyAzLjQxMDI1TDIwLjk1NyAzLjUwMDU3TDIwLjk3NjIgMy41NjQ3NkwyMC45ODk4IDMuNjI4NjJMMjAuOTk5MiAzLjcyMjgyTDIwLjk5OTcgMTAuMjU1NEMyMC45OTk3IDEwLjY2OTYgMjAuNjYzOSAxMS4wMDU0IDIwLjI0OTcgMTEuMDA1NEMxOS44NyAxMS4wMDU0IDE5LjU1NjIgMTAuNzIzMiAxOS41MDY1IDEwLjM1NzFMMTkuNDk5NyAxMC4yNTU0TDE5LjQ5ODkgNS41NjE0N0wxMi4yNzk3IDEyLjc4NDdDMTIuMDEzNCAxMy4wNTEgMTEuNTk2OCAxMy4wNzUzIDExLjMwMzEgMTIuODU3NUwxMS4yMTkgMTIuNzg0OUMxMC45NTI3IDEyLjUxODcgMTAuOTI4NCAxMi4xMDIxIDExLjE0NjIgMTEuODA4NEwxMS4yMTg4IDExLjcyNDNMMTguNDM2OSA0LjUwMTQ2SDEzLjc0ODFDMTMuMzY4NCA0LjUwMTQ2IDEzLjA1NDYgNC4yMTkzMSAxMy4wMDUgMy44NTMyNEwxMi45OTgxIDMuNzUxNDZDMTIuOTk4MSAzLjM3MTc3IDEzLjI4MDMgMy4wNTc5NyAxMy42NDY0IDMuMDA4MzFMMTMuNzQ4MSAzLjAwMTQ2WiIgZmlsbD0iI0ZGRkZGRiIgLz48L3N2Zz4) !important;
@@ -14,6 +14,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
14
14
  class MockChatSDK {
15
15
  constructor() {
16
16
  _defineProperty(this, "sleep", ms => new Promise(r => setTimeout(r, ms)));
17
+
18
+ _defineProperty(this, "isMockModeOn", true);
17
19
  }
18
20
 
19
21
  async startChat() {
@@ -24,6 +26,10 @@ class MockChatSDK {
24
26
  return null;
25
27
  }
26
28
 
29
+ getChatToken() {
30
+ return null;
31
+ }
32
+
27
33
  createChatAdapter() {
28
34
  return new _mockadapter.default();
29
35
  } // 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
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BotMagicCodeStore = void 0;
7
+
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+
10
+ class BotMagicCodeStore {}
11
+
12
+ exports.BotMagicCodeStore = BotMagicCodeStore;
13
+
14
+ _defineProperty(BotMagicCodeStore, "botOAuthSignInId", "");
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createActivityMiddleware = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _TelemetryConstants = require("../../../../../common/telemetry/TelemetryConstants");
9
9
 
10
10
  var _Constants = require("../../../../../common/Constants");
11
11
 
@@ -15,16 +15,16 @@ var _DirectLineSenderRole = require("../../enums/DirectLineSenderRole");
15
15
 
16
16
  var _MessageType = require("../../enums/MessageType");
17
17
 
18
+ var _react = _interopRequireDefault(require("react"));
19
+
20
+ var _TelemetryHelper = require("../../../../../common/telemetry/TelemetryHelper");
21
+
18
22
  var _defaultSystemMessageStyles = require("./defaultStyles/defaultSystemMessageStyles");
19
23
 
20
24
  var _defaultUserMessageStyles = require("./defaultStyles/defaultUserMessageStyles");
21
25
 
22
26
  var _utils = require("../../../../../common/utils");
23
27
 
24
- var _TelemetryHelper = require("../../../../../common/telemetry/TelemetryHelper");
25
-
26
- var _TelemetryConstants = require("../../../../../common/telemetry/TelemetryConstants");
27
-
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
30
30
  /******
@@ -34,49 +34,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
34
34
  * 1. Renders system messages differently, according to Microsoft LiveChatWidget styles
35
35
  * 2. Changes the font size of user messages
36
36
  * 3. Decodes certain html characters that came through from chat services
37
- * 4. Triggers end conversation sequence when the chat thread is deleted
38
37
  ******/
39
38
  const loggedSystemMessages = new Array(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
39
 
41
- const handleThreadUpdate = channelData => {
42
- var _channelData$properti, _channelData$properti2;
43
-
44
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
45
- Event: _TelemetryConstants.TelemetryEvent.IC3ThreadUpdateEventReceived,
46
- Description: "IC3 ThreadUpdateEvent Received"
47
- });
48
-
49
- const postConversationEndedAction = () => {
50
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
51
- Event: _TelemetryConstants.TelemetryEvent.ConversationEndedThreadEventReceived,
52
- Description: "Conversation is ended by agent side or by timeout."
53
- });
54
- }; // If the Thread is deleted, then display post conversation survey if enabled.
55
-
56
-
57
- const isThreadDeleted = (channelData === null || channelData === void 0 ? void 0 : (_channelData$properti = channelData.properties) === null || _channelData$properti === void 0 ? void 0 : (_channelData$properti2 = _channelData$properti.isdeleted) === null || _channelData$properti2 === void 0 ? void 0 : _channelData$properti2.toLowerCase()) === _Constants.Constants.true;
58
-
59
- if (isThreadDeleted) {
60
- postConversationEndedAction();
61
- return;
62
- } //check if customer is still in the thread
63
-
64
-
65
- if (channelData.members && channelData.members.length > 0) {
66
- for (let i = 0; i < channelData.members.length; i++) {
67
- const id = channelData.members[i].id;
68
- const tag = channelData.members[i].tag; // In case of ACS customer is not removed from thread and has "left" tag
69
-
70
- if (id.startsWith(_Constants.Constants.visitorIdPrefix) && tag !== _Constants.Constants.left) {
71
- return;
72
- }
73
- }
74
- }
75
-
76
- postConversationEndedAction();
77
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
78
-
79
-
80
40
  const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
81
41
  var _card$activity, _card$activity$channe, _card$activity$channe2, _card$activity2, _card$activity2$chann, _card$activity3, _card$activity3$chann, _card$activity3$chann2, _card$activity4, _card$activity4$chann, _card$activity5, _card$activity5$chann, _card$nextVisibleActi, _card$nextVisibleActi2, _card$activity6, _card$activity6$chann, _card$activity7, _card$nextVisibleActi3, _card$activity8;
82
42
 
@@ -115,6 +75,16 @@ const handleSystemMessage = (next, args, card, systemMessageStyleProps) => {
115
75
  }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
76
 
117
77
 
78
+ const isTagIncluded = (card, tag) => {
79
+ return isDataTagsPresent(card) && card.activity.channelData.tags.includes(tag);
80
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
+
82
+
83
+ const isDataTagsPresent = card => {
84
+ return card && card.activity && card.activity.channelData && card.activity.channelData.tags && card.activity.channelData.tags.length > 0;
85
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+
87
+
118
88
  const createActivityMiddleware = (systemMessageStyleProps, userMessageStyleProps) => () => next => function () {
119
89
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
120
90
  args[_key] = arguments[_key];
@@ -123,19 +93,26 @@ const createActivityMiddleware = (systemMessageStyleProps, userMessageStyleProps
123
93
  const [card] = args;
124
94
 
125
95
  if (card.activity) {
126
- var _card$activity$from, _card$activity$channe4, _card$activity$channe5;
96
+ var _card$activity$from;
127
97
 
128
98
  if (((_card$activity$from = card.activity.from) === null || _card$activity$from === void 0 ? void 0 : _card$activity$from.role) === _DirectLineSenderRole.DirectLineSenderRole.Channel) {
129
99
  var _card$activity$channe3;
130
100
 
131
101
  if (((_card$activity$channe3 = card.activity.channelData) === null || _card$activity$channe3 === void 0 ? void 0 : _card$activity$channe3.type) === _MessageType.MessageTypes.Thread) {
132
- handleThreadUpdate(card.activity.channelData);
102
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
103
+ Event: _TelemetryConstants.TelemetryEvent.IC3ThreadUpdateEventReceived,
104
+ Description: "IC3 ThreadUpdateEvent Received"
105
+ });
133
106
  }
134
107
 
135
108
  return () => false;
136
109
  }
137
110
 
138
- if ((_card$activity$channe4 = card.activity.channelData) !== null && _card$activity$channe4 !== void 0 && (_card$activity$channe5 = _card$activity$channe4.tags) !== null && _card$activity$channe5 !== void 0 && _card$activity$channe5.includes(_Constants.Constants.systemMessageTag)) {
111
+ if (isTagIncluded(card, _Constants.Constants.hiddenTag)) {
112
+ return () => false;
113
+ }
114
+
115
+ if (isTagIncluded(card, _Constants.Constants.systemMessageTag)) {
139
116
  return handleSystemMessage(next, args, card, systemMessageStyleProps);
140
117
  } else if (card.activity.text && card.activity.type === _DirectLineActivityType.DirectLineActivityType.Message) {
141
118
  if (!card.activity.channelData.isHtmlEncoded && card.activity.channelId === _Constants.Constants.webchatChannelId) {
@@ -11,6 +11,8 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _FileAttachmentIconManager = require("../../../common/utils/FileAttachmentIconManager");
13
13
 
14
+ var _TelemetryConstants = require("../../../../../common/telemetry/TelemetryConstants");
15
+
14
16
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
15
17
 
16
18
  var _WebChatActionType = require("../../enums/WebChatActionType");
@@ -211,7 +213,7 @@ const createAttachmentMiddleware = enableInlinePlaying => {
211
213
  const errorData = "Unable to parse the adaptive card format";
212
214
 
213
215
  _omnichannelChatComponents.BroadcastService.postMessage({
214
- eventName: "InvalidAdaptiveCardFormat",
216
+ eventName: _TelemetryConstants.BroadcastEvent.InvalidAdaptiveCardFormat,
215
217
  payload: {
216
218
  Message: errorData,
217
219
  ExceptionDetails: e
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCardActionMiddleware = void 0;
7
+
8
+ var _BotMagicCodeStore = require("../../BotMagicCodeStore");
9
+
10
+ var CardActionType;
11
+
12
+ (function (CardActionType) {
13
+ CardActionType["OpenUrl"] = "openUrl";
14
+ CardActionType["SignIn"] = "signin";
15
+ })(CardActionType || (CardActionType = {}));
16
+
17
+ const validCardActionTypes = [CardActionType.OpenUrl, CardActionType.SignIn];
18
+ const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
19
+
20
+ const createCardActionMiddleware = botMagicCodeConfig => {
21
+ const cardActionMiddleware = () => next => function () {
22
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23
+ args[_key] = arguments[_key];
24
+ }
25
+
26
+ // eslint-disable-line @typescript-eslint/no-explicit-any
27
+ const [card] = args;
28
+
29
+ if (card.cardAction && validCardActionTypes.indexOf(card.cardAction.type) >= 0 && card.cardAction.value) {
30
+ // Override signin url only if fwdUrl is valid & feature is enabled
31
+ if ((botMagicCodeConfig === null || botMagicCodeConfig === void 0 ? void 0 : botMagicCodeConfig.disabled) === true && botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl) {
32
+ const baseUrl = window.location.origin;
33
+ const result = botOauthUrlRegex.exec(card.cardAction.value);
34
+
35
+ if (result) {
36
+ _BotMagicCodeStore.BotMagicCodeStore.botOAuthSignInId = `${result[1]}`;
37
+ } // fwdUrl must be on the same domain as the chat widget
38
+
39
+
40
+ if (botMagicCodeConfig !== null && botMagicCodeConfig !== void 0 && botMagicCodeConfig.fwdUrl.startsWith(baseUrl)) {
41
+ card.cardAction.value += `&fwdUrl=${botMagicCodeConfig.fwdUrl}`;
42
+ }
43
+ }
44
+ }
45
+
46
+ return next(...args);
47
+ };
48
+
49
+ return cardActionMiddleware;
50
+ };
51
+
52
+ exports.createCardActionMiddleware = createCardActionMiddleware;