@microsoft/omnichannel-chat-widget 0.1.0-main.eb80fb1 → 0.1.0-main.f514612

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 (177) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/common/Constants.js +54 -6
  3. package/lib/cjs/common/storage/default/defaultCacheManager.js +34 -0
  4. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
  5. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
  6. package/lib/cjs/common/telemetry/TelemetryConstants.js +64 -6
  7. package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
  8. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -6
  9. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  11. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +33 -13
  12. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -5
  13. package/lib/cjs/common/utils.js +89 -2
  14. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  15. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -4
  16. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -40
  17. package/lib/cjs/components/footerstateful/FooterStateful.js +2 -10
  18. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  19. package/lib/cjs/components/headerstateful/HeaderStateful.js +14 -10
  20. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
  21. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  22. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  23. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
  24. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  25. package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
  26. package/lib/cjs/components/livechatwidget/common/authHelper.js +65 -0
  27. package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
  28. package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
  29. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
  30. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +32 -32
  31. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +34 -19
  32. package/lib/cjs/components/livechatwidget/common/endChat.js +141 -50
  33. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +1 -1
  34. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +51 -9
  35. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +144 -39
  36. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +6 -17
  37. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -9
  38. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  39. package/lib/cjs/components/livechatwidget/common/startChat.js +171 -51
  40. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +308 -81
  41. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  42. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +5 -10
  43. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +19 -3
  44. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +96 -2
  45. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
  46. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  47. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  48. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  49. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  50. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  51. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  52. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  53. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  54. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  55. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  56. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  57. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  58. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  59. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  60. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  61. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +10 -7
  62. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +17 -4
  63. package/lib/cjs/contexts/createReducer.js +24 -10
  64. package/lib/cjs/controller/componentController.js +5 -5
  65. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  66. package/lib/esm/common/Constants.js +50 -5
  67. package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
  68. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  69. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
  70. package/lib/esm/common/telemetry/TelemetryConstants.js +60 -5
  71. package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
  72. package/lib/esm/common/telemetry/TelemetryManager.js +15 -6
  73. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  74. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  75. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +36 -14
  76. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -5
  77. package/lib/esm/common/utils.js +64 -1
  78. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  79. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -7
  80. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +6 -36
  81. package/lib/esm/components/footerstateful/FooterStateful.js +2 -10
  82. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  83. package/lib/esm/components/headerstateful/HeaderStateful.js +15 -11
  84. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
  85. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  86. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  87. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
  88. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  89. package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
  90. package/lib/esm/components/livechatwidget/common/authHelper.js +50 -0
  91. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
  92. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
  93. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
  94. package/lib/esm/components/livechatwidget/common/createMarkdown.js +32 -31
  95. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +34 -20
  96. package/lib/esm/components/livechatwidget/common/endChat.js +139 -50
  97. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +1 -1
  98. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +46 -11
  99. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +134 -41
  100. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +5 -14
  101. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -9
  102. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  103. package/lib/esm/components/livechatwidget/common/startChat.js +165 -54
  104. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +293 -84
  105. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  106. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +7 -11
  107. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +20 -4
  108. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +86 -2
  109. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  110. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  111. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  112. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  113. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  114. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  115. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  116. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  117. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  118. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  119. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  120. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  121. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  122. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  123. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  124. package/lib/esm/contexts/common/ConversationState.js +4 -2
  125. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +10 -7
  126. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +15 -4
  127. package/lib/esm/contexts/createReducer.js +24 -9
  128. package/lib/esm/controller/componentController.js +5 -5
  129. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  130. package/lib/types/common/Constants.d.ts +27 -2
  131. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  132. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  133. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  134. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  135. package/lib/types/common/telemetry/TelemetryConstants.d.ts +46 -4
  136. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  137. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  138. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  139. package/lib/types/common/utils.d.ts +8 -1
  140. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  141. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  142. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  143. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  144. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  145. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  146. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  147. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  148. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  149. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  150. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  151. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  152. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  153. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  154. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  155. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  156. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -1
  157. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  158. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  159. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  160. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  161. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  162. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
  163. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  164. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  165. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  166. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  167. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  168. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  169. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  170. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  171. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  172. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  173. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -1
  174. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +11 -8
  175. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  176. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  177. package/package.json +11 -12
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _WebChatActionType = require("../../enums/WebChatActionType");
9
+
10
+ var _Constants = require("../../../../../common/Constants");
11
+
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
13
+ const createMessageTimeStampMiddleware = _ref => {
14
+ let {
15
+ dispatch
16
+ } = _ref;
17
+ return next => action => {
18
+ if (isApplicable(action)) {
19
+ return next(evaluateTagsAndOverrideTimeStamp(action));
20
+ }
21
+
22
+ return next(action);
23
+ };
24
+ };
25
+
26
+ const isApplicable = action => {
27
+ return action.type === _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && isPVAConversation(action) && isPayloadValid(action) && isValidChannel(action);
28
+ };
29
+
30
+ const isPayloadValid = action => {
31
+ var _action$payload;
32
+
33
+ return action === null || action === void 0 ? void 0 : (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.activity;
34
+ };
35
+
36
+ const isValidChannel = action => {
37
+ var _action$payload2, _action$payload2$acti;
38
+
39
+ return (action === null || action === void 0 ? void 0 : (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : (_action$payload2$acti = _action$payload2.activity) === null || _action$payload2$acti === void 0 ? void 0 : _action$payload2$acti.channelId) === _Constants.Constants.acsChannel;
40
+ };
41
+
42
+ const isPVAConversation = action => {
43
+ return !isTagIncluded(action, _Constants.Constants.systemMessageTag) && !isTagIncluded(action, _Constants.Constants.publicMessageTag) && !isRoleUserOn(action);
44
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+
46
+
47
+ const isTagIncluded = (action, tag) => {
48
+ return isDataTagsPresent(action) && action.payload.activity.channelData.tags.includes(tag);
49
+ };
50
+
51
+ const isRoleUserOn = action => {
52
+ var _action$payload3, _action$payload3$acti, _action$payload3$acti2;
53
+
54
+ return (action === null || action === void 0 ? void 0 : (_action$payload3 = action.payload) === null || _action$payload3 === void 0 ? void 0 : (_action$payload3$acti = _action$payload3.activity) === null || _action$payload3$acti === void 0 ? void 0 : (_action$payload3$acti2 = _action$payload3$acti.from) === null || _action$payload3$acti2 === void 0 ? void 0 : _action$payload3$acti2.role) === _Constants.Constants.userMessageTag;
55
+ };
56
+
57
+ const overrideTimeStamp = (timestampOriginal, timeStampNew) => {
58
+ return isTimestampValid(timeStampNew) ? timeStampNew : timestampOriginal;
59
+ };
60
+
61
+ const isTimestampValid = timeStamp => {
62
+ const regex = /(\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(T)(\d{2})(:{1})(\d{2})(:{1})(\d{2})(.\d+)([Z]{1}))/;
63
+ return regex.test(timeStamp);
64
+ };
65
+
66
+ const isDataTagsPresent = action => {
67
+ var _action$payload4, _action$payload4$acti, _action$payload4$acti2;
68
+
69
+ return (action === null || action === void 0 ? void 0 : (_action$payload4 = action.payload) === null || _action$payload4 === void 0 ? void 0 : (_action$payload4$acti = _action$payload4.activity) === null || _action$payload4$acti === void 0 ? void 0 : (_action$payload4$acti2 = _action$payload4$acti.channelData) === null || _action$payload4$acti2 === void 0 ? void 0 : _action$payload4$acti2.tags) && action.payload.activity.channelData.tags.length > 0;
70
+ };
71
+
72
+ const evaluateTagsAndOverrideTimeStamp = action => {
73
+ const tagValue = tagLookup(action, _Constants.Constants.prefixTimestampTag);
74
+
75
+ if (tagValue) {
76
+ const newTimestamp = extractTimeStamp(tagValue);
77
+ action.payload.activity.timestamp = overrideTimeStamp(action.payload.activity.timestamp, newTimestamp);
78
+ }
79
+
80
+ return action;
81
+ };
82
+
83
+ const extractTimeStamp = timeStamp => {
84
+ if (timeStamp && timeStamp.length > 0) {
85
+ const ts = timeStamp.split(_Constants.Constants.prefixTimestampTag);
86
+
87
+ if (ts && ts.length > 1) {
88
+ return ts[1];
89
+ }
90
+ }
91
+
92
+ return timeStamp;
93
+ };
94
+
95
+ const tagLookup = (action, tag) => {
96
+ if (!isDataTagsPresent(action)) {
97
+ return null;
98
+ }
99
+
100
+ const tags = action.payload.activity.channelData.tags;
101
+ let value;
102
+
103
+ if (tags && tags.length > 0) {
104
+ for (let i = 0; i < tags.length; i++) {
105
+ value = tags[i];
106
+
107
+ if (value && value.indexOf(tag) > -1) {
108
+ return value;
109
+ }
110
+ }
111
+ }
112
+
113
+ return null;
114
+ };
115
+
116
+ var _default = createMessageTimeStampMiddleware;
117
+ exports.default = _default;
@@ -28,22 +28,22 @@ const createConversationEndMiddleware = conversationEndCallback => _ref => {
28
28
  var _action$payload;
29
29
 
30
30
  if ((action === null || action === void 0 ? void 0 : action.type) == _WebChatActionType.WebChatActionType.DIRECT_LINE_INCOMING_ACTIVITY && (_action$payload = action.payload) !== null && _action$payload !== void 0 && _action$payload.activity) {
31
- var _activity$from, _activity$from2, _activity$channelData5, _activity$channelData6;
31
+ var _activity$from, _activity$from2, _activity$channelData7, _activity$channelData8;
32
32
 
33
33
  const activity = action.payload.activity;
34
34
 
35
35
  if (((_activity$from = activity.from) === null || _activity$from === void 0 ? void 0 : _activity$from.role) === _DirectLineSenderRole.DirectLineSenderRole.Bot && activity.channelId === "ACS_CHANNEL") {
36
- var _activity$channelData, _activity$channelData2, _activity$channelData3, _activity$channelData4;
36
+ var _activity$channelData, _activity$channelData2, _activity$channelData3, _activity$channelData4, _activity$channelData5, _activity$channelData6;
37
37
 
38
38
  // ACS
39
- if ((_activity$channelData = activity.channelData) !== null && _activity$channelData !== void 0 && (_activity$channelData2 = _activity$channelData.tags) !== null && _activity$channelData2 !== void 0 && _activity$channelData2.includes(_Constants.Constants.systemMessageTag) && (_activity$channelData3 = activity.channelData) !== null && _activity$channelData3 !== void 0 && (_activity$channelData4 = _activity$channelData3.tags) !== null && _activity$channelData4 !== void 0 && _activity$channelData4.includes(_Constants.Constants.agentEndConversationMessageTag)) {
39
+ if ((_activity$channelData = activity.channelData) !== null && _activity$channelData !== void 0 && (_activity$channelData2 = _activity$channelData.tags) !== null && _activity$channelData2 !== void 0 && _activity$channelData2.includes(_Constants.Constants.systemMessageTag) && ((_activity$channelData3 = activity.channelData) !== null && _activity$channelData3 !== void 0 && (_activity$channelData4 = _activity$channelData3.tags) !== null && _activity$channelData4 !== void 0 && _activity$channelData4.includes(_Constants.Constants.agentEndConversationMessageTag) || (_activity$channelData5 = activity.channelData) !== null && _activity$channelData5 !== void 0 && (_activity$channelData6 = _activity$channelData5.tags) !== null && _activity$channelData6 !== void 0 && _activity$channelData6.includes(_Constants.Constants.supervisorForceCloseMessageTag))) {
40
40
  conversationEndCallback();
41
41
  }
42
- } else if (((_activity$from2 = activity.from) === null || _activity$from2 === void 0 ? void 0 : _activity$from2.role) === _DirectLineSenderRole.DirectLineSenderRole.Channel && ((_activity$channelData5 = activity.channelData) === null || _activity$channelData5 === void 0 ? void 0 : _activity$channelData5.type) === _MessageType.MessageTypes.Thread && (_activity$channelData6 = activity.channelData) !== null && _activity$channelData6 !== void 0 && _activity$channelData6.properties) {
43
- var _activity$channelData7, _activity$channelData8, _activity$channelData9, _activity$channelData10;
42
+ } else if (((_activity$from2 = activity.from) === null || _activity$from2 === void 0 ? void 0 : _activity$from2.role) === _DirectLineSenderRole.DirectLineSenderRole.Channel && ((_activity$channelData7 = activity.channelData) === null || _activity$channelData7 === void 0 ? void 0 : _activity$channelData7.type) === _MessageType.MessageTypes.Thread && (_activity$channelData8 = activity.channelData) !== null && _activity$channelData8 !== void 0 && _activity$channelData8.properties) {
43
+ var _activity$channelData9, _activity$channelData10, _activity$channelData11, _activity$channelData12;
44
44
 
45
45
  // IC3
46
- if (((_activity$channelData7 = activity.channelData) === null || _activity$channelData7 === void 0 ? void 0 : (_activity$channelData8 = _activity$channelData7.properties) === null || _activity$channelData8 === void 0 ? void 0 : _activity$channelData8.isdeleted) === _Constants.Constants.truePascal || !((_activity$channelData9 = activity.channelData) !== null && _activity$channelData9 !== void 0 && (_activity$channelData10 = _activity$channelData9.properties) !== null && _activity$channelData10 !== void 0 && _activity$channelData10.containsExternalEntitiesListeningAll)) {
46
+ if (((_activity$channelData9 = activity.channelData) === null || _activity$channelData9 === void 0 ? void 0 : (_activity$channelData10 = _activity$channelData9.properties) === null || _activity$channelData10 === void 0 ? void 0 : _activity$channelData10.isdeleted) === _Constants.Constants.truePascal || !((_activity$channelData11 = activity.channelData) !== null && _activity$channelData11 !== void 0 && (_activity$channelData12 = _activity$channelData11.properties) !== null && _activity$channelData12 !== void 0 && _activity$channelData12.containsExternalEntitiesListeningAll)) {
47
47
  conversationEndCallback();
48
48
  }
49
49
  }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createWebChatTelemetry = createWebChatTelemetry;
7
+
8
+ var _TelemetryConstants = require("../../../../common/telemetry/TelemetryConstants");
9
+
10
+ var _TelemetryHelper = require("../../../../common/telemetry/TelemetryHelper");
11
+
12
+ function createWebChatTelemetry() {
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const handleTelemetry = event => {
15
+ const {
16
+ level
17
+ } = event;
18
+ const loglevel = level ? level.toUpperCase() : "";
19
+
20
+ switch (loglevel) {
21
+ case _TelemetryConstants.LogLevel.DEBUG:
22
+ _TelemetryHelper.TelemetryHelper.logWebChatEvent(_TelemetryConstants.LogLevel.DEBUG, event);
23
+
24
+ break;
25
+
26
+ case _TelemetryConstants.LogLevel.WARN:
27
+ _TelemetryHelper.TelemetryHelper.logWebChatEvent(_TelemetryConstants.LogLevel.WARN, event);
28
+
29
+ break;
30
+
31
+ case _TelemetryConstants.LogLevel.ERROR:
32
+ _TelemetryHelper.TelemetryHelper.logWebChatEvent(_TelemetryConstants.LogLevel.ERROR, event);
33
+
34
+ break;
35
+
36
+ case _TelemetryConstants.LogLevel.INFO:
37
+ default:
38
+ _TelemetryHelper.TelemetryHelper.logWebChatEvent(_TelemetryConstants.LogLevel.INFO, event);
39
+
40
+ break;
41
+ }
42
+ };
43
+
44
+ return handleTelemetry;
45
+ }
@@ -14,6 +14,8 @@ exports.ConversationState = ConversationState;
14
14
  ConversationState[ConversationState["OutOfOffice"] = 3] = "OutOfOffice";
15
15
  ConversationState[ConversationState["ProactiveChat"] = 4] = "ProactiveChat";
16
16
  ConversationState[ConversationState["Active"] = 5] = "Active";
17
- ConversationState[ConversationState["Postchat"] = 6] = "Postchat";
18
- ConversationState[ConversationState["Closed"] = 7] = "Closed";
17
+ ConversationState[ConversationState["InActive"] = 6] = "InActive";
18
+ ConversationState[ConversationState["PostchatLoading"] = 7] = "PostchatLoading";
19
+ ConversationState[ConversationState["Postchat"] = 8] = "Postchat";
20
+ ConversationState[ConversationState["Closed"] = 9] = "Closed";
19
21
  })(ConversationState || (exports.ConversationState = ConversationState = {}));
@@ -17,13 +17,13 @@ exports.LiveChatWidgetActionType = LiveChatWidgetActionType;
17
17
  LiveChatWidgetActionType[LiveChatWidgetActionType["SET_PREVIOUS_FOCUSED_ELEMENT"] = 6] = "SET_PREVIOUS_FOCUSED_ELEMENT";
18
18
  LiveChatWidgetActionType[LiveChatWidgetActionType["SET_OUTSIDE_OPERATING_HOURS"] = 7] = "SET_OUTSIDE_OPERATING_HOURS";
19
19
  LiveChatWidgetActionType[LiveChatWidgetActionType["SET_PRE_CHAT_SURVEY_RESPONSE"] = 8] = "SET_PRE_CHAT_SURVEY_RESPONSE";
20
- LiveChatWidgetActionType[LiveChatWidgetActionType["SET_SHOW_CONFIRMATION"] = 9] = "SET_SHOW_CONFIRMATION";
21
- LiveChatWidgetActionType[LiveChatWidgetActionType["SET_SHOW_EMAIL_TRANSCRIPT_PANE"] = 10] = "SET_SHOW_EMAIL_TRANSCRIPT_PANE";
22
- LiveChatWidgetActionType[LiveChatWidgetActionType["SET_PRECHAT_RESPONSE_EMAIL"] = 11] = "SET_PRECHAT_RESPONSE_EMAIL";
23
- LiveChatWidgetActionType[LiveChatWidgetActionType["SET_AUDIO_NOTIFICATION"] = 12] = "SET_AUDIO_NOTIFICATION";
24
- LiveChatWidgetActionType[LiveChatWidgetActionType["SET_E2VV_ENABLED"] = 13] = "SET_E2VV_ENABLED";
25
- LiveChatWidgetActionType[LiveChatWidgetActionType["SET_POST_CHAT_CONTEXT"] = 14] = "SET_POST_CHAT_CONTEXT";
26
- LiveChatWidgetActionType[LiveChatWidgetActionType["SET_SHOULD_SHOW_POST_CHAT"] = 15] = "SET_SHOULD_SHOW_POST_CHAT";
20
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_CUSTOM_CONTEXT"] = 9] = "SET_CUSTOM_CONTEXT";
21
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_SHOW_CONFIRMATION"] = 10] = "SET_SHOW_CONFIRMATION";
22
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_SHOW_EMAIL_TRANSCRIPT_PANE"] = 11] = "SET_SHOW_EMAIL_TRANSCRIPT_PANE";
23
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_PRECHAT_RESPONSE_EMAIL"] = 12] = "SET_PRECHAT_RESPONSE_EMAIL";
24
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_AUDIO_NOTIFICATION"] = 13] = "SET_AUDIO_NOTIFICATION";
25
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_E2VV_ENABLED"] = 14] = "SET_E2VV_ENABLED";
26
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_POST_CHAT_CONTEXT"] = 15] = "SET_POST_CHAT_CONTEXT";
27
27
  LiveChatWidgetActionType[LiveChatWidgetActionType["SHOW_CALLING_CONTAINER"] = 16] = "SHOW_CALLING_CONTAINER";
28
28
  LiveChatWidgetActionType[LiveChatWidgetActionType["SET_INCOMING_CALL"] = 17] = "SET_INCOMING_CALL";
29
29
  LiveChatWidgetActionType[LiveChatWidgetActionType["DISABLE_VIDEO_CALL"] = 18] = "DISABLE_VIDEO_CALL";
@@ -39,4 +39,7 @@ exports.LiveChatWidgetActionType = LiveChatWidgetActionType;
39
39
  LiveChatWidgetActionType[LiveChatWidgetActionType["SET_CONVERSATION_ENDED_BY_AGENT"] = 28] = "SET_CONVERSATION_ENDED_BY_AGENT";
40
40
  LiveChatWidgetActionType[LiveChatWidgetActionType["SET_WIDGET_STATE"] = 29] = "SET_WIDGET_STATE";
41
41
  LiveChatWidgetActionType[LiveChatWidgetActionType["SET_LIVE_CHAT_CONTEXT"] = 30] = "SET_LIVE_CHAT_CONTEXT";
42
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_BOT_OAUTH_SIGNIN_ID"] = 31] = "SET_BOT_OAUTH_SIGNIN_ID";
43
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_WIDGET_SIZE"] = 32] = "SET_WIDGET_SIZE";
44
+ LiveChatWidgetActionType[LiveChatWidgetActionType["SET_WIDGET_INSTANCE_ID"] = 33] = "SET_WIDGET_INSTANCE_ID";
42
45
  })(LiveChatWidgetActionType || (exports.LiveChatWidgetActionType = LiveChatWidgetActionType = {}));
@@ -9,8 +9,19 @@ var _ConversationState = require("./ConversationState");
9
9
 
10
10
  var _defaultMiddlewareLocalizedTexts = require("../../components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
11
11
 
12
+ var _utils = require("../../common/utils");
13
+
14
+ var _defaultClientDataStoreProvider = require("../../common/storage/default/defaultClientDataStoreProvider");
15
+
12
16
  const getLiveChatWidgetContextInitialState = props => {
13
- var _props$webChatContain;
17
+ var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps, _props$webChatContain;
18
+
19
+ const widgetCacheId = (0, _utils.getWidgetCacheId)(props === null || props === void 0 ? void 0 : (_props$chatSDK = props.chatSDK) === null || _props$chatSDK === void 0 ? void 0 : (_props$chatSDK$omnich = _props$chatSDK.omnichannelConfig) === null || _props$chatSDK$omnich === void 0 ? void 0 : _props$chatSDK$omnich.orgId, props === null || props === void 0 ? void 0 : (_props$chatSDK2 = props.chatSDK) === null || _props$chatSDK2 === void 0 ? void 0 : (_props$chatSDK2$omnic = _props$chatSDK2.omnichannelConfig) === null || _props$chatSDK2$omnic === void 0 ? void 0 : _props$chatSDK2$omnic.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
20
+ const initialState = (0, _defaultClientDataStoreProvider.defaultClientDataStoreProvider)().getData(widgetCacheId, "localStorage");
21
+
22
+ if (!(0, _utils.isNullOrUndefined)(initialState)) {
23
+ return JSON.parse(initialState);
24
+ }
14
25
 
15
26
  const LiveChatWidgetContextInitialState = {
16
27
  domainStates: {
@@ -23,14 +34,16 @@ const getLiveChatWidgetContextInitialState = props => {
23
34
  postChatContext: undefined,
24
35
  telemetryInternalData: {},
25
36
  globalDir: "ltr",
26
- liveChatContext: undefined
37
+ liveChatContext: undefined,
38
+ customContext: undefined,
39
+ widgetSize: undefined,
40
+ widgetInstanceId: ""
27
41
  },
28
42
  appStates: {
29
43
  conversationState: _ConversationState.ConversationState.Closed,
30
44
  isMinimized: false,
31
45
  previousElementOnFocusBeforeModalOpen: null,
32
46
  outsideOperatingHours: false,
33
- shouldShowPostChat: false,
34
47
  preChatResponseEmail: "",
35
48
  isAudioMuted: null,
36
49
  newMessage: false,
@@ -56,7 +69,7 @@ const getLiveChatWidgetContextInitialState = props => {
56
69
  focusChatButton: false
57
70
  }
58
71
  };
59
- return props.liveChatContextFromCache ?? LiveChatWidgetContextInitialState;
72
+ return LiveChatWidgetContextInitialState;
60
73
  };
61
74
 
62
75
  exports.getLiveChatWidgetContextInitialState = getLiveChatWidgetContextInitialState;
@@ -7,8 +7,6 @@ exports.createReducer = void 0;
7
7
 
8
8
  var _LiveChatWidgetActionType = require("./common/LiveChatWidgetActionType");
9
9
 
10
- var _TelemetryManager = require("../common/telemetry/TelemetryManager");
11
-
12
10
  /* eslint-disable indent */
13
11
  const createReducer = () => {
14
12
  const reducer = (state, action) => {
@@ -71,6 +69,14 @@ const createReducer = () => {
71
69
  }
72
70
  };
73
71
 
72
+ case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT:
73
+ return { ...state,
74
+ domainStates: { ...state.domainStates,
75
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
+ customContext: action.payload
77
+ }
78
+ };
79
+
74
80
  case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT:
75
81
  return { ...state,
76
82
  appStates: { ...state.appStates,
@@ -93,13 +99,6 @@ const createReducer = () => {
93
99
  }
94
100
  };
95
101
 
96
- case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT:
97
- return { ...state,
98
- appStates: { ...state.appStates,
99
- shouldShowPostChat: action.payload
100
- }
101
- };
102
-
103
102
  case _LiveChatWidgetActionType.LiveChatWidgetActionType.SHOW_CALLING_CONTAINER:
104
103
  return { ...state,
105
104
  uiStates: { ...state.uiStates,
@@ -197,7 +196,6 @@ const createReducer = () => {
197
196
  };
198
197
 
199
198
  case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA:
200
- _TelemetryManager.TelemetryManager.InternalTelemetryData = action.payload;
201
199
  return { ...state,
202
200
  domainStates: { ...state.domainStates,
203
201
  telemetryInternalData: action.payload
@@ -237,6 +235,22 @@ const createReducer = () => {
237
235
  }
238
236
  };
239
237
 
238
+ case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_SIZE:
239
+ return { ...state,
240
+ domainStates: { ...state.domainStates,
241
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
242
+ widgetSize: action.payload
243
+ }
244
+ };
245
+
246
+ case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID:
247
+ return { ...state,
248
+ domainStates: { ...state.domainStates,
249
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
250
+ widgetInstanceId: action.payload
251
+ }
252
+ };
253
+
240
254
  default:
241
255
  return state;
242
256
  }
@@ -8,7 +8,7 @@ exports.shouldShowWebChatContainer = exports.shouldShowReconnectChatPane = expor
8
8
  var _ConversationState = require("../contexts/common/ConversationState");
9
9
 
10
10
  const shouldShowChatButton = state => {
11
- return state.appStates.isMinimized || state.appStates.conversationState === _ConversationState.ConversationState.Closed;
11
+ return (state.appStates.isMinimized || state.appStates.conversationState === _ConversationState.ConversationState.Closed) && state.appStates.skipChatButtonRendering == false; // Do not show chat button in case of popout
12
12
  };
13
13
 
14
14
  exports.shouldShowChatButton = shouldShowChatButton;
@@ -26,7 +26,7 @@ const shouldShowHeader = state => {
26
26
  exports.shouldShowHeader = shouldShowHeader;
27
27
 
28
28
  const shouldShowFooter = state => {
29
- return !state.appStates.isMinimized && state.appStates.conversationState === _ConversationState.ConversationState.Active;
29
+ return !state.appStates.isMinimized && (state.appStates.conversationState === _ConversationState.ConversationState.Active || state.appStates.conversationState === _ConversationState.ConversationState.InActive);
30
30
  };
31
31
 
32
32
  exports.shouldShowFooter = shouldShowFooter;
@@ -38,13 +38,13 @@ const shouldShowEmailTranscriptPane = state => {
38
38
  exports.shouldShowEmailTranscriptPane = shouldShowEmailTranscriptPane;
39
39
 
40
40
  const shouldShowWebChatContainer = state => {
41
- return state.appStates.conversationState === _ConversationState.ConversationState.Active;
41
+ return state.appStates.conversationState === _ConversationState.ConversationState.Active || state.appStates.conversationState === _ConversationState.ConversationState.InActive;
42
42
  };
43
43
 
44
44
  exports.shouldShowWebChatContainer = shouldShowWebChatContainer;
45
45
 
46
46
  const shouldShowLoadingPane = state => {
47
- return !state.appStates.isMinimized && !state.appStates.shouldShowPostChat && state.appStates.conversationState === _ConversationState.ConversationState.Loading;
47
+ return !state.appStates.isMinimized && state.appStates.conversationState === _ConversationState.ConversationState.Loading;
48
48
  };
49
49
 
50
50
  exports.shouldShowLoadingPane = shouldShowLoadingPane;
@@ -56,7 +56,7 @@ const shouldShowReconnectChatPane = state => {
56
56
  exports.shouldShowReconnectChatPane = shouldShowReconnectChatPane;
57
57
 
58
58
  const shouldShowPostChatLoadingPane = state => {
59
- return !state.appStates.isMinimized && state.appStates.shouldShowPostChat && state.appStates.conversationState === _ConversationState.ConversationState.Loading;
59
+ return !state.appStates.isMinimized && state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading;
60
60
  };
61
61
 
62
62
  exports.shouldShowPostChatLoadingPane = shouldShowPostChatLoadingPane;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createOnNewAdapterActivityHandler = void 0;
7
+
8
+ var _TelemetryConstants = require("../common/telemetry/TelemetryConstants");
9
+
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+
12
+ var _Constants = require("../common/Constants");
13
+
14
+ var _TelemetryHelper = require("../common/telemetry/TelemetryHelper");
15
+
16
+ const createOnNewAdapterActivityHandler = (chatId, userId) => {
17
+ const onNewAdapterActivityHandler = activity => {
18
+ var _activity$channelData, _activity$channelData2, _activity$channelData3;
19
+
20
+ const isActivityMessage = (activity === null || activity === void 0 ? void 0 : activity.type) === _Constants.Constants.message;
21
+ const isNotHistoryMessage = isActivityMessage && !(activity !== null && activity !== void 0 && (_activity$channelData = activity.channelData) !== null && _activity$channelData !== void 0 && (_activity$channelData2 = _activity$channelData.tags) !== null && _activity$channelData2 !== void 0 && _activity$channelData2.includes(_Constants.Constants.historyMessageTag)) && !(activity !== null && activity !== void 0 && (_activity$channelData3 = activity.channelData) !== null && _activity$channelData3 !== void 0 && _activity$channelData3.fromList);
22
+
23
+ if (isNotHistoryMessage) {
24
+ raiseMessageEvent(activity);
25
+ }
26
+ };
27
+
28
+ const raiseMessageEvent = activity => {
29
+ if ((activity === null || activity === void 0 ? void 0 : activity.type) === _Constants.Constants.message) {
30
+ var _text, _text2, _activity$channelData4, _activity$from;
31
+
32
+ const payload = {
33
+ // To identify hidden contents vs empty content
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ text: (activity === null || activity === void 0 ? void 0 : (_text = activity.text) === null || _text === void 0 ? void 0 : _text.length) >= 1 ? `*contents hidden (${activity === null || activity === void 0 ? void 0 : (_text2 = activity.text) === null || _text2 === void 0 ? void 0 : _text2.length} chars)*` : "",
36
+ type: activity === null || activity === void 0 ? void 0 : activity.type,
37
+ timestamp: activity === null || activity === void 0 ? void 0 : activity.timestamp,
38
+ userId: userId,
39
+ tags: activity === null || activity === void 0 ? void 0 : (_activity$channelData4 = activity.channelData) === null || _activity$channelData4 === void 0 ? void 0 : _activity$channelData4.tags,
40
+ messageType: ""
41
+ };
42
+
43
+ if ((activity === null || activity === void 0 ? void 0 : (_activity$from = activity.from) === null || _activity$from === void 0 ? void 0 : _activity$from.role) === _Constants.Constants.userMessageTag) {
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ payload.messageType = _Constants.Constants.userMessageTag;
46
+ const newMessageSentEvent = {
47
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageSent,
48
+ payload: payload
49
+ };
50
+
51
+ _omnichannelChatComponents.BroadcastService.postMessage(newMessageSentEvent);
52
+
53
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
54
+ Event: _TelemetryConstants.TelemetryEvent.MessageSent,
55
+ Description: "New message sent"
56
+ });
57
+ } else {
58
+ var _activity$channelData5, _activity$channelData6;
59
+
60
+ if (activity !== null && activity !== void 0 && (_activity$channelData5 = activity.channelData) !== null && _activity$channelData5 !== void 0 && (_activity$channelData6 = _activity$channelData5.tags) !== null && _activity$channelData6 !== void 0 && _activity$channelData6.includes(_Constants.Constants.systemMessageTag)) {
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ payload.messageType = _Constants.Constants.systemMessageTag;
63
+ } else {
64
+ var _activity$channelData7, _activity$channelData8, _activity$channelData9;
65
+
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ const messageHasNoText = !(activity !== null && activity !== void 0 && activity.text); // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+
69
+ const messageHasNoTags = !(activity !== null && activity !== void 0 && activity.channelData) || !(activity !== null && activity !== void 0 && (_activity$channelData7 = activity.channelData) !== null && _activity$channelData7 !== void 0 && _activity$channelData7.tags) || (activity === null || activity === void 0 ? void 0 : (_activity$channelData8 = activity.channelData) === null || _activity$channelData8 === void 0 ? void 0 : (_activity$channelData9 = _activity$channelData8.tags) === null || _activity$channelData9 === void 0 ? void 0 : _activity$channelData9.length) === 0; // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+
71
+ const messageHasNoAttachments = !(activity !== null && activity !== void 0 && activity.attachments) || (activity === null || activity === void 0 ? void 0 : activity.attachments.length) === 0;
72
+
73
+ if (messageHasNoTags && messageHasNoText && messageHasNoAttachments) {
74
+ return;
75
+ }
76
+
77
+ payload.messageType = _Constants.Constants.userMessageTag;
78
+ }
79
+
80
+ const newMessageReceivedEvent = {
81
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageReceived,
82
+ payload: payload
83
+ };
84
+
85
+ _omnichannelChatComponents.BroadcastService.postMessage(newMessageReceivedEvent);
86
+
87
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
88
+ Event: _TelemetryConstants.TelemetryEvent.MessageReceived,
89
+ Description: "New message received",
90
+ Data: payload
91
+ });
92
+ }
93
+ }
94
+ };
95
+
96
+ return onNewAdapterActivityHandler;
97
+ };
98
+
99
+ exports.createOnNewAdapterActivityHandler = createOnNewAdapterActivityHandler;
@@ -4,12 +4,20 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
4
4
 
5
5
  export class Constants {}
6
6
 
7
+ _defineProperty(Constants, "magicCodeBroadcastChannel", "MagicCodeChannel");
8
+
9
+ _defineProperty(Constants, "magicCodeResponseBroadcastChannel", "MagicCodeResponseChannel");
10
+
7
11
  _defineProperty(Constants, "systemMessageTag", "system");
8
12
 
9
13
  _defineProperty(Constants, "userMessageTag", "user");
10
14
 
15
+ _defineProperty(Constants, "historyMessageTag", "history");
16
+
11
17
  _defineProperty(Constants, "agentEndConversationMessageTag", "agentendconversation");
12
18
 
19
+ _defineProperty(Constants, "supervisorForceCloseMessageTag", "supervisorforceclosedconversation");
20
+
13
21
  _defineProperty(Constants, "receivedMessageClassName", "ms_lcw_webchat_received_message");
14
22
 
15
23
  _defineProperty(Constants, "sentMessageClassName", "ms_lcw_webchat_sent_message");
@@ -32,8 +40,6 @@ _defineProperty(Constants, "false", "false");
32
40
 
33
41
  _defineProperty(Constants, "maximumUnreadMessageCount", 99);
34
42
 
35
- _defineProperty(Constants, "widgetStateDataKey", "LcwChatWidgetState");
36
-
37
43
  _defineProperty(Constants, "channelIdKey", "ChannelId-");
38
44
 
39
45
  _defineProperty(Constants, "ChannelId", "lcw");
@@ -68,6 +74,14 @@ _defineProperty(Constants, "averageWaitTimeMessageTag", "averagewaittime");
68
74
 
69
75
  _defineProperty(Constants, "message", "message");
70
76
 
77
+ _defineProperty(Constants, "hiddenTag", "Hidden");
78
+
79
+ _defineProperty(Constants, "prefixTimestampTag", "ServerMessageTimestamp_");
80
+
81
+ _defineProperty(Constants, "acsChannel", "ACS_CHANNEL");
82
+
83
+ _defineProperty(Constants, "publicMessageTag", "public");
84
+
71
85
  _defineProperty(Constants, "supportedAdaptiveCardContentTypes", ["application/vnd.microsoft.card.adaptive", "application/vnd.microsoft.card.audio", "application/vnd.microsoft.card.hero", "application/vnd.microsoft.card.receipt", "application/vnd.microsoft.card.thumbnail", "application/vnd.microsoft.card.signin", "application/vnd.microsoft.card.oauth"]);
72
86
 
73
87
  _defineProperty(Constants, "maxUploadFileSize", "500000");
@@ -118,8 +132,6 @@ _defineProperty(Constants, "InputSubmit", "InputSubmit");
118
132
 
119
133
  _defineProperty(Constants, "ReconnectIdAttributeName", "oc.reconnectid");
120
134
 
121
- _defineProperty(Constants, "redirectPageRequest", "redirectPageRequest");
122
-
123
135
  _defineProperty(Constants, "LiveChatWidget", "LiveChatWidgetNew");
124
136
 
125
137
  _defineProperty(Constants, "GuidPattern", "xx-x-4m-ym-xxx");
@@ -144,6 +156,12 @@ _defineProperty(Constants, "internetConnectionTestUrl", "https://ocsdk-prod.azur
144
156
 
145
157
  _defineProperty(Constants, "internetConnectionTestUrlText", "Omnichannel Connect Test");
146
158
 
159
+ _defineProperty(Constants, "ChatWidgetStateChangedPrefix", "ChatWidgetStateChanged");
160
+
161
+ _defineProperty(Constants, "PostChatLoadingDurationInMs", 2000);
162
+
163
+ _defineProperty(Constants, "BrowserUnloadConfirmationMessage", "Do you want to leave chat?");
164
+
147
165
  export const Regex = (_class = class Regex {}, _defineProperty(_class, "EmailRegex", "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"), _class);
148
166
  export class HtmlIdNames {}
149
167
 
@@ -253,6 +271,15 @@ export let ChatSDKError;
253
271
  ChatSDKError["WidgetUseOutsideOperatingHour"] = "WidgetUseOutsideOperatingHour";
254
272
  })(ChatSDKError || (ChatSDKError = {}));
255
273
 
274
+ export let EnvironmentVersion;
275
+
276
+ (function (EnvironmentVersion) {
277
+ EnvironmentVersion["prod"] = "prod";
278
+ EnvironmentVersion["dogfood"] = "df";
279
+ EnvironmentVersion["int"] = "int";
280
+ EnvironmentVersion["test"] = "test";
281
+ })(EnvironmentVersion || (EnvironmentVersion = {}));
282
+
256
283
  export class TranscriptConstants {}
257
284
 
258
285
  _defineProperty(TranscriptConstants, "ChatTranscriptsBodyColor", "#F5F5F5");
@@ -273,4 +300,22 @@ _defineProperty(TranscriptConstants, "InternalMode", "internal");
273
300
 
274
301
  _defineProperty(TranscriptConstants, "AgentDialogColor", "#2266E3");
275
302
 
276
- _defineProperty(TranscriptConstants, "AgentFontColor", "white");
303
+ _defineProperty(TranscriptConstants, "AgentFontColor", "white");
304
+
305
+ export class AriaTelemetryConstants {}
306
+
307
+ _defineProperty(AriaTelemetryConstants, "GERMANY_ENDPOINT", "https://de.pipe.aria.microsoft.com/Collector/3.0/");
308
+
309
+ _defineProperty(AriaTelemetryConstants, "GCCH_ENDPOINT", "https://tb.pipe.aria.microsoft.com/Collector/3.0/");
310
+
311
+ _defineProperty(AriaTelemetryConstants, "DOD_ENDPOINT", "https://pf.pipe.aria.microsoft.com/Collector/3.0");
312
+
313
+ _defineProperty(AriaTelemetryConstants, "EUROPE_ENDPOINT", "https://eu-mobile.events.data.microsoft.com/Collector/3.0/");
314
+
315
+ _defineProperty(AriaTelemetryConstants, "MOONCAKE_ENDPOINT", "");
316
+
317
+ _defineProperty(AriaTelemetryConstants, "Public", "Public");
318
+
319
+ _defineProperty(AriaTelemetryConstants, "EU", "Europe");
320
+
321
+ _defineProperty(AriaTelemetryConstants, "lcwEUDomainNames", ["crm4.omnichannelengagementhub.com", "crm12.omnichannelengagementhub.com", "crm16.omnichannelengagementhub.com", "crm17.omnichannelengagementhub.com", "crm19.omnichannelengagementhub.com"]);
@@ -0,0 +1,19 @@
1
+ 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; }
2
+
3
+ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
4
+ import { getWidgetCacheId } from "../../utils";
5
+ import { defaultClientDataStoreProvider } from "./defaultClientDataStoreProvider";
6
+ export class defaultCacheManager {}
7
+
8
+ _defineProperty(defaultCacheManager, "InternalCache", {});
9
+
10
+ export const registerBroadcastServiceForLocalStorage = (orgid, widgetId, widgetInstanceId) => {
11
+ const widgetCacheId = getWidgetCacheId(orgid, widgetId, widgetInstanceId);
12
+ BroadcastService.getMessageByEventName(widgetCacheId).subscribe(msg => {
13
+ try {
14
+ defaultClientDataStoreProvider().setData(widgetCacheId, JSON.stringify(msg.payload), "localStorage");
15
+ } catch (error) {
16
+ console.error("Error in setting data to localstorage", error);
17
+ }
18
+ });
19
+ };