@microsoft/omnichannel-chat-widget 0.1.0-main.3d1c026 → 0.1.0-main.47ede4d

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 (125) hide show
  1. package/README.md +227 -0
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +6 -0
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +14 -0
  6. package/lib/cjs/{assets/assets.d.js → common/interfaces/IContextDataStore.js} +0 -0
  7. package/lib/cjs/common/telemetry/TelemetryConstants.js +25 -4
  8. package/lib/cjs/common/telemetry/TelemetryManager.js +7 -5
  9. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  10. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +24 -35
  11. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  12. package/lib/cjs/components/footerstateful/FooterStateful.js +3 -3
  13. package/lib/cjs/components/headerstateful/HeaderStateful.js +12 -3
  14. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  15. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +11 -7
  16. package/lib/cjs/components/livechatwidget/common/endChat.js +65 -53
  17. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  18. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +24 -12
  19. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +23 -5
  20. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +26 -24
  21. package/lib/cjs/components/livechatwidget/common/startChat.js +77 -27
  22. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  23. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +37 -20
  24. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  25. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  26. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +28 -11
  27. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +10 -4
  28. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  29. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  30. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  31. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +9 -46
  32. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  33. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  34. package/lib/cjs/contexts/common/ConversationState.js +3 -2
  35. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +2 -0
  36. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +7 -2
  37. package/lib/cjs/contexts/createReducer.js +13 -3
  38. package/lib/cjs/controller/componentController.js +2 -2
  39. package/lib/cjs/plugins/newMessageEventHandler.js +102 -0
  40. package/lib/esm/assets/Audios.js +1 -0
  41. package/lib/esm/assets/Icons.js +11 -0
  42. package/lib/esm/common/Constants.js +6 -0
  43. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  44. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  45. package/lib/esm/common/telemetry/TelemetryConstants.js +21 -3
  46. package/lib/esm/common/telemetry/TelemetryManager.js +6 -5
  47. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  48. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +22 -34
  49. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  50. package/lib/esm/components/footerstateful/FooterStateful.js +3 -3
  51. package/lib/esm/components/headerstateful/HeaderStateful.js +13 -4
  52. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  53. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +11 -9
  54. package/lib/esm/components/livechatwidget/common/endChat.js +64 -49
  55. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  56. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +21 -12
  57. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +20 -4
  58. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +23 -22
  59. package/lib/esm/components/livechatwidget/common/startChat.js +71 -23
  60. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  61. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +33 -17
  62. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  63. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  64. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +26 -10
  65. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -5
  66. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  67. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  68. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  69. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +7 -44
  70. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  71. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  72. package/lib/esm/contexts/common/ConversationState.js +3 -2
  73. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +2 -0
  74. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +7 -2
  75. package/lib/esm/contexts/createReducer.js +13 -2
  76. package/lib/esm/controller/componentController.js +2 -2
  77. package/lib/esm/plugins/newMessageEventHandler.js +84 -0
  78. package/lib/types/assets/Audios.d.ts +1 -0
  79. package/lib/types/assets/Icons.d.ts +11 -0
  80. package/lib/types/common/Constants.d.ts +3 -0
  81. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  82. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  83. package/lib/types/common/telemetry/TelemetryConstants.d.ts +16 -1
  84. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +4 -1
  85. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  86. package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
  87. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  88. package/lib/types/components/livechatwidget/common/startChat.d.ts +1 -1
  89. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  90. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -1
  91. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  92. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  93. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  94. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  95. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  96. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  97. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
  98. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +3 -1
  99. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  100. package/package.json +5 -6
  101. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  102. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  103. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  104. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  105. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  106. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  107. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  108. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  109. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  110. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  111. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  112. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  113. package/lib/esm/assets/assets.d.js +0 -0
  114. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  115. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  116. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  117. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  118. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  119. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  120. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  121. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  122. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  123. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  124. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  125. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -5,12 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.prepareStartChat = exports.initStartChat = void 0;
7
7
 
8
- var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
-
10
8
  var _Constants = require("../../../common/Constants");
11
9
 
10
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
11
+
12
12
  var _ConversationState = require("../../../contexts/common/ConversationState");
13
13
 
14
+ var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
15
+
14
16
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
15
17
 
16
18
  var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
@@ -23,17 +25,23 @@ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
23
25
 
24
26
  var _createAdapter = require("./createAdapter");
25
27
 
28
+ var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
29
+
26
30
  var _utils = require("../../../common/utils");
27
31
 
28
32
  var _reconnectChatHelper = require("./reconnectChatHelper");
29
33
 
30
- var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
31
-
32
34
  var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
33
35
 
36
+ var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
37
+
34
38
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
39
  const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
36
- // Getting PreChat Survey Context
40
+ if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
41
+ return;
42
+ } // Getting PreChat Survey Context
43
+
44
+
37
45
  const parseToJson = false;
38
46
  const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
39
47
  const showPrechat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat ? preChatSurveyResponse && state.appStates.proactiveChatStates.proactiveChatEnablePrechat : preChatSurveyResponse; // Getting reconnectId for authenticated chat
@@ -70,19 +78,20 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
70
78
 
71
79
  exports.prepareStartChat = prepareStartChat;
72
80
 
73
- const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
81
+ const initStartChat = async (chatSDK, dispatch, setAdapter, params, persistedState) => {
74
82
  try {
75
- var _TelemetryTimers$Widg;
83
+ var _newAdapter$activity$, _TelemetryTimers$Widg;
76
84
 
77
85
  try {
78
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
86
+ _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
87
+
88
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
79
89
  Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
80
90
  });
81
91
 
82
92
  await chatSDK.startChat(params);
83
- _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
84
93
  } catch (error) {
85
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
94
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
86
95
  Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
87
96
  ExceptionDetails: {
88
97
  exception: `Failed to setup startChat: ${error}`
@@ -91,24 +100,41 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
91
100
  }
92
101
 
93
102
  const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
94
- setAdapter(newAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
103
+ setAdapter(newAdapter);
104
+ const chatToken = await chatSDK.getChatToken();
105
+ newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe((0, _newMessageEventHandler.createOnNewAdapterActivityHandler)(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
95
106
 
96
- if (chatSDK !== null && chatSDK !== void 0 && chatSDK.getVoiceVideoCalling) {
107
+ if (!persistedState) {
97
108
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
- const chatToken = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatToken());
109
+ if (chatSDK !== null && chatSDK !== void 0 && chatSDK.getVoiceVideoCalling) {
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
+ const chatToken = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatToken());
112
+ dispatch({
113
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
114
+ payload: chatToken
115
+ });
116
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
117
+
118
+
119
+ const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
99
120
  dispatch({
100
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
101
- payload: chatToken
121
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
122
+ payload: liveChatContext
102
123
  });
103
- }
124
+ await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
125
+ await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
104
126
 
105
- await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, false);
106
- await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
107
-
108
- dispatch({
109
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
110
- payload: _ConversationState.ConversationState.Active
111
- });
127
+ dispatch({
128
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
129
+ payload: _ConversationState.ConversationState.Active
130
+ });
131
+ } else {
132
+ dispatch({
133
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_STATE,
134
+ payload: persistedState
135
+ });
136
+ await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
137
+ }
112
138
 
113
139
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
114
140
  Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
@@ -117,9 +143,9 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
117
143
  });
118
144
  } catch (ex) {
119
145
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
120
- Event: _TelemetryConstants.TelemetryEvent.StartChatFailed,
146
+ Event: _TelemetryConstants.TelemetryEvent.WidgetLoadFailed,
121
147
  ExceptionDetails: {
122
- Exception: `Start Chat Failed: ${ex}`
148
+ Exception: `Widget load Failed: ${ex}`
123
149
  }
124
150
  });
125
151
 
@@ -137,6 +163,30 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, params) => {
137
163
  });
138
164
  }
139
165
  }
140
- };
166
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
167
+
141
168
 
142
- exports.initStartChat = initStartChat;
169
+ exports.initStartChat = initStartChat;
170
+
171
+ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
172
+ var _DataStoreManager$cli, _persistedState$domai;
173
+
174
+ const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(_Constants.Constants.widgetStateDataKey, "localStorage");
175
+ const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
176
+
177
+ if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai = persistedState.domainStates) !== null && _persistedState$domai !== void 0 && _persistedState$domai.liveChatContext) {
178
+ var _persistedState$domai2;
179
+
180
+ dispatch({
181
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
182
+ payload: _ConversationState.ConversationState.Loading
183
+ });
184
+ const optionalParams = {
185
+ liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai2 = persistedState.domainStates) === null || _persistedState$domai2 === void 0 ? void 0 : _persistedState$domai2.liveChatContext
186
+ };
187
+ await initStartChat(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
188
+ return true;
189
+ } else {
190
+ return false;
191
+ }
192
+ };
@@ -16,12 +16,12 @@ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
16
16
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
17
17
 
18
18
  // Defines startProactiveChat callback
19
- const startProactiveChat = (dispatch, bodyTitle, showPrechat, inNewWindow) => {
19
+ const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWindow) => {
20
20
  dispatch({
21
21
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
22
22
  payload: {
23
- proactiveChatBodyTitle: bodyTitle ?? "",
24
- proactiveChatEnablePrechat: showPrechat ?? false,
23
+ proactiveChatBodyTitle: notificationConfig && notificationConfig.message ? notificationConfig.message : "",
24
+ proactiveChatEnablePrechat: enablePreChat ?? false,
25
25
  proactiveChatInNewWindow: inNewWindow ?? false
26
26
  }
27
27
  });
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.LiveChatWidgetStateful = void 0;
7
7
 
8
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
+
8
10
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
11
 
10
12
  var _react = require("@fluentui/react");
@@ -29,6 +31,8 @@ var _ConfirmationPaneStateful = _interopRequireDefault(require("../../confirmati
29
31
 
30
32
  var _ConversationState = require("../../../contexts/common/ConversationState");
31
33
 
34
+ var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
35
+
32
36
  var _EmailTranscriptPaneStateful = _interopRequireDefault(require("../../emailtranscriptpanestateful/EmailTranscriptPaneStateful"));
33
37
 
34
38
  var _HeaderStateful = _interopRequireDefault(require("../../headerstateful/HeaderStateful"));
@@ -49,6 +53,8 @@ var _ProactiveChatPaneStateful = _interopRequireDefault(require("../../proactive
49
53
 
50
54
  var _ReconnectChatPaneStateful = _interopRequireDefault(require("../../reconnectchatpanestateful/ReconnectChatPaneStateful"));
51
55
 
56
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
57
+
52
58
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
53
59
 
54
60
  var _WebChatContainerStateful = _interopRequireDefault(require("../../webchatcontainerstateful/WebChatContainerStateful"));
@@ -59,6 +65,8 @@ var _createInternetConnectionChangeHandler = require("../common/createInternetCo
59
65
 
60
66
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
61
67
 
68
+ var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
69
+
62
70
  var _endChat = require("../common/endChat");
63
71
 
64
72
  var _getGeneralStylesForButton = require("../common/getGeneralStylesForButton");
@@ -81,10 +89,6 @@ var _useChatContextStore = _interopRequireDefault(require("../../../hooks/useCha
81
89
 
82
90
  var _useChatSDKStore = _interopRequireDefault(require("../../../hooks/useChatSDKStore"));
83
91
 
84
- var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
85
-
86
- var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
87
-
88
92
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
89
93
 
90
94
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -121,6 +125,7 @@ const LiveChatWidgetStateful = props => {
121
125
 
122
126
  (0, _registerTelemetryLoggers.registerTelemetryLoggers)(props, dispatch);
123
127
  (0, _createInternetConnectionChangeHandler.createInternetConnectionChangeHandler)();
128
+ _DataStoreManager.DataStoreManager.clientDataStore = props.contextDataStore ?? undefined;
124
129
  dispatch({
125
130
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID,
126
131
  payload: widgetElementId
@@ -192,14 +197,24 @@ const LiveChatWidgetStateful = props => {
192
197
  }, [state.appStates.skipChatButtonRendering]);
193
198
  (0, _react2.useEffect)(() => {
194
199
  _omnichannelChatComponents.BroadcastService.getMessageByEventName("StartProactiveChat").subscribe(msg => {
200
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
201
+ Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
202
+ Description: "Start proactive chat event received."
203
+ });
204
+
195
205
  if (canStartProactiveChat.current) {
196
206
  var _msg$payload, _msg$payload2, _msg$payload3;
197
207
 
198
- (0, _startProactiveChat.startProactiveChat)(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.bodyTitle, msg === null || msg === void 0 ? void 0 : (_msg$payload2 = msg.payload) === null || _msg$payload2 === void 0 ? void 0 : _msg$payload2.showPrechat, msg === null || msg === void 0 ? void 0 : (_msg$payload3 = msg.payload) === null || _msg$payload3 === void 0 ? void 0 : _msg$payload3.inNewWindow);
208
+ (0, _startProactiveChat.startProactiveChat)(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.notificationConfig, msg === null || msg === void 0 ? void 0 : (_msg$payload2 = msg.payload) === null || _msg$payload2 === void 0 ? void 0 : _msg$payload2.enablePreChat, msg === null || msg === void 0 ? void 0 : (_msg$payload3 = msg.payload) === null || _msg$payload3 === void 0 ? void 0 : _msg$payload3.inNewWindow);
209
+ } else {
210
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
211
+ Event: _TelemetryConstants.TelemetryEvent.ChatAlreadyTriggered,
212
+ Description: "Start proactive chat method called, when chat was already triggered."
213
+ });
199
214
  }
200
215
  });
201
216
 
202
- window.addEventListener("beforeunload", event => {
217
+ window.addEventListener("beforeunload", () => {
203
218
  (0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
204
219
  });
205
220
 
@@ -213,13 +228,13 @@ const LiveChatWidgetStateful = props => {
213
228
  if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
214
229
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
215
230
  _omnichannelChatComponents.BroadcastService.postMessage({
216
- eventName: "NewMessageNotification"
231
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
217
232
  });
218
233
  });
219
234
  } // Track the message count
220
235
 
221
236
 
222
- if (state.appStates.conversationState == _ConversationState.ConversationState.Active) {
237
+ if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
223
238
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
224
239
  currentMessageCountRef.current++;
225
240
  dispatch({
@@ -238,7 +253,7 @@ const LiveChatWidgetStateful = props => {
238
253
  });
239
254
  const customEvent = {
240
255
  elementType: _omnichannelChatComponents.ElementType.Custom,
241
- eventName: "UnreadMessageCount",
256
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
242
257
  payload: 0
243
258
  };
244
259
 
@@ -249,7 +264,7 @@ const LiveChatWidgetStateful = props => {
249
264
  if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
250
265
  const customEvent = {
251
266
  elementType: _omnichannelChatComponents.ElementType.Custom,
252
- eventName: "UnreadMessageCount",
267
+ eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
253
268
  payload: `${state.appStates.unreadMessageCount}`
254
269
  };
255
270
 
@@ -265,25 +280,27 @@ const LiveChatWidgetStateful = props => {
265
280
  }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
266
281
  const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
267
282
 
268
- const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
283
+ const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
284
+
269
285
 
270
- const endChatRelay = () => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
286
+ const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat) => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
271
287
 
272
288
  const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
273
289
 
274
290
 
275
- const initStartChatRelay = optionalParams => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
291
+ const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
276
292
 
277
293
  const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props); // publish chat widget state
278
294
 
279
- const chatWidgetStateChangeEvent = {
280
- eventName: _TelemetryConstants.TelemetryEvent.ChatWidgetStateChanged,
281
- payload: { ...state
282
- }
283
- };
284
-
285
- _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
295
+ (0, _react2.useEffect)(() => {
296
+ const chatWidgetStateChangeEvent = {
297
+ eventName: _TelemetryConstants.BroadcastEvent.ChatWidgetStateChanged,
298
+ payload: { ...state
299
+ }
300
+ };
286
301
 
302
+ _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
303
+ }, [state]);
287
304
  return /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
288
305
  styleOptions: webChatStyles,
289
306
  directLine: ((_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
@@ -46,7 +46,7 @@ const LoadingPaneStateful = props => {
46
46
  firstElement[0].focus();
47
47
  }
48
48
 
49
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
49
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
50
50
  Event: _TelemetryConstants.TelemetryEvent.LoadingPaneLoaded,
51
51
  Description: "Loading pane loaded."
52
52
  });
@@ -5,10 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.OutOfOfficeHoursPaneStateful = void 0;
7
7
 
8
+ var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
+
8
10
  var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
13
 
14
+ var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
15
+
12
16
  var _defaultgeneralOOOHPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralOOOHPaneStyleProps");
13
17
 
14
18
  var _utils = require("../../common/utils");
@@ -41,6 +45,10 @@ const OutOfOfficeHoursPaneStateful = props => {
41
45
  if (firstElement && firstElement[0]) {
42
46
  firstElement[0].focus();
43
47
  }
48
+
49
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
50
+ Event: _TelemetryConstants.TelemetryEvent.OutOfOfficePaneLoaded
51
+ });
44
52
  }, []);
45
53
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.OutOfOfficeHoursPane, {
46
54
  componentOverrides: props.componentOverrides,
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.PreChatSurveyPaneStateful = void 0;
7
7
 
8
+ var _Constants = require("../../common/Constants");
9
+
8
10
  var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
11
 
10
12
  var _react = _interopRequireWildcard(require("react"));
@@ -13,12 +15,12 @@ var _utils = require("../../common/utils");
13
15
 
14
16
  var _ConversationState = require("../../contexts/common/ConversationState");
15
17
 
18
+ var _DataStoreManager = require("../../common/contextDataStore/DataStoreManager");
19
+
16
20
  var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
17
21
 
18
22
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
19
23
 
20
- var _Constants = require("../../common/Constants");
21
-
22
24
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
23
25
 
24
26
  var _defaultGeneralPreChatSurveyPaneStyleProps = require("./common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps");
@@ -63,7 +65,7 @@ const PreChatSurveyPaneStateful = props => {
63
65
  try {
64
66
  return (0, _utils.parseAdaptiveCardPayload)(payload, requiredFieldMissingMessage);
65
67
  } catch (ex) {
66
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
68
+ _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.ERROR, {
67
69
  Event: _TelemetryConstants.TelemetryEvent.ParseAdaptiveCardFailed,
68
70
  Description: "Adaptive Card JSON Parse Failed.",
69
71
  ExceptionDetails: {
@@ -91,14 +93,29 @@ const PreChatSurveyPaneStateful = props => {
91
93
  });
92
94
 
93
95
  try {
94
- const prechatResponseValues = (0, _utils.extractPreChatSurveyResponseValues)(state.domainStates.preChatSurveyResponse, values);
95
- const optionalParams = {
96
- initContext: {
97
- preChatResponse: prechatResponseValues
98
- }
99
- };
100
- setPreChatResponseEmail(values);
101
- await initStartChat(optionalParams);
96
+ var _DataStoreManager$cli, _persistedState$domai;
97
+
98
+ const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(_Constants.Constants.widgetStateDataKey, "localStorage");
99
+ const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
100
+ let optionalParams = {};
101
+
102
+ if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai = persistedState.domainStates) !== null && _persistedState$domai !== void 0 && _persistedState$domai.liveChatContext) {
103
+ var _persistedState$domai2;
104
+
105
+ optionalParams = {
106
+ liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai2 = persistedState.domainStates) === null || _persistedState$domai2 === void 0 ? void 0 : _persistedState$domai2.liveChatContext
107
+ };
108
+ await initStartChat(optionalParams, persistedState);
109
+ } else {
110
+ const prechatResponseValues = (0, _utils.extractPreChatSurveyResponseValues)(state.domainStates.preChatSurveyResponse, values);
111
+ optionalParams = {
112
+ initContext: {
113
+ preChatResponse: prechatResponseValues
114
+ }
115
+ };
116
+ setPreChatResponseEmail(values);
117
+ await initStartChat(optionalParams);
118
+ }
102
119
  } catch (ex) {
103
120
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
104
121
  Event: _TelemetryConstants.TelemetryEvent.PreChatSurveyStartChatMethodFailed,
@@ -51,7 +51,7 @@ const ProactiveChatPaneStateful = props => {
51
51
  payload: _ConversationState.ConversationState.Closed
52
52
  });
53
53
 
54
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
54
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
55
55
  Event: _TelemetryConstants.TelemetryEvent.ProactiveChatRejected,
56
56
  ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed,
57
57
  Description: "Proactive chat invitation timed out."
@@ -75,14 +75,14 @@ const ProactiveChatPaneStateful = props => {
75
75
  if (state.appStates.proactiveChatStates.proactiveChatInNewWindow) {
76
76
  // TODO: BroadcastService: replace with the sdk broadcast service, when in place
77
77
  const startPopoutChatEvent = {
78
- eventName: "StartPopoutChat"
78
+ eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartPopoutChat
79
79
  };
80
80
 
81
81
  _omnichannelChatComponents.BroadcastService.postMessage(startPopoutChatEvent);
82
82
 
83
83
  dispatch({
84
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
85
- payload: true
84
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
85
+ payload: _ConversationState.ConversationState.Closed
86
86
  });
87
87
  } else if (((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.OutOfOperatingHours) === "True") {
88
88
  dispatch({
@@ -94,6 +94,12 @@ const ProactiveChatPaneStateful = props => {
94
94
  payload: _ConversationState.ConversationState.OutOfOffice
95
95
  });
96
96
  } else {
97
+ const proactiveChatStarted = {
98
+ eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartChat
99
+ };
100
+
101
+ _omnichannelChatComponents.BroadcastService.postMessage(proactiveChatStarted);
102
+
97
103
  await startChat();
98
104
  }
99
105
  },
@@ -24,6 +24,10 @@ class MockChatSDK {
24
24
  return null;
25
25
  }
26
26
 
27
+ getChatToken() {
28
+ return null;
29
+ }
30
+
27
31
  createChatAdapter() {
28
32
  return new _mockadapter.default();
29
33
  } // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -5,85 +5,63 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.isInlineMediaSupported = exports.getFileAttachmentIconData = void 0;
7
7
 
8
- var _BrowserVendor = require("../../webchatcontroller/enums/BrowserVendor");
8
+ var _Icons = require("../../../../assets/Icons");
9
9
 
10
10
  var _BrowserInfo = require("./BrowserInfo");
11
11
 
12
- var _archiveIcon = _interopRequireDefault(require("../../../../assets/icons/archiveIcon.svg"));
13
-
14
- var _audioIcon = _interopRequireDefault(require("../../../../assets/icons/audioIcon.svg"));
15
-
16
- var _blankIcon = _interopRequireDefault(require("../../../../assets/icons/blankIcon.svg"));
17
-
18
- var _videoIcon = _interopRequireDefault(require("../../../../assets/icons/videoIcon.svg"));
19
-
20
- var _imageIcon = _interopRequireDefault(require("../../../../assets/icons/imageIcon.svg"));
21
-
22
- var _wordIcon = _interopRequireDefault(require("../../../../assets/icons/wordIcon.svg"));
23
-
24
- var _oneNoteIcon = _interopRequireDefault(require("../../../../assets/icons/oneNoteIcon.svg"));
25
-
26
- var _powerpointIcon = _interopRequireDefault(require("../../../../assets/icons/powerpointIcon.svg"));
27
-
28
- var _visioIcon = _interopRequireDefault(require("../../../../assets/icons/visioIcon.svg"));
29
-
30
- var _pdfIcon = _interopRequireDefault(require("../../../../assets/icons/pdfIcon.svg"));
31
-
32
- var _excelIcon = _interopRequireDefault(require("../../../../assets/icons/excelIcon.svg"));
12
+ var _BrowserVendor = require("../../webchatcontroller/enums/BrowserVendor");
33
13
 
34
14
  var _Constants = require("../../../../common/Constants");
35
15
 
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
-
38
16
  const FileAttachmentIconMap = {
39
- "aac": _audioIcon.default,
40
- "aiff": _audioIcon.default,
41
- "alac": _audioIcon.default,
42
- "avchd": _videoIcon.default,
43
- "avi": _videoIcon.default,
44
- "bmp": _imageIcon.default,
45
- "doc": _wordIcon.default,
46
- "docx": _wordIcon.default,
47
- "flac": _audioIcon.default,
48
- "flv": _videoIcon.default,
49
- "gif": _imageIcon.default,
50
- "jiff": _imageIcon.default,
51
- "jpeg": _imageIcon.default,
52
- "jpg": _imageIcon.default,
53
- "mpe": _videoIcon.default,
54
- "mpeg": _videoIcon.default,
55
- "mpg": _videoIcon.default,
56
- "mpv": _videoIcon.default,
57
- "mp2": _audioIcon.default,
58
- "mp3": _audioIcon.default,
59
- "mp4": _videoIcon.default,
60
- "m4p": _videoIcon.default,
61
- "m4v": _videoIcon.default,
62
- "mov": _videoIcon.default,
63
- "one": _oneNoteIcon.default,
64
- "pcm": _audioIcon.default,
65
- "pdf": _pdfIcon.default,
66
- "png": _imageIcon.default,
67
- "ppt": _powerpointIcon.default,
68
- "pptx": _powerpointIcon.default,
69
- "qt": _videoIcon.default,
70
- "rar": _archiveIcon.default,
71
- "swf": _videoIcon.default,
72
- "tar": _archiveIcon.default,
73
- "tar.gz": _archiveIcon.default,
74
- "tgz": _archiveIcon.default,
75
- "txt": _blankIcon.default,
76
- "vsd": _visioIcon.default,
77
- "vsdx": _visioIcon.default,
78
- "wav": _audioIcon.default,
79
- "webm": _videoIcon.default,
80
- "wma": _audioIcon.default,
81
- "wmv": _videoIcon.default,
82
- "xls": _excelIcon.default,
83
- "xlsx": _excelIcon.default,
84
- "zip": _archiveIcon.default,
85
- "zipx": _archiveIcon.default,
86
- "7z": _archiveIcon.default
17
+ "aac": _Icons.AudioIcon,
18
+ "aiff": _Icons.AudioIcon,
19
+ "alac": _Icons.AudioIcon,
20
+ "avchd": _Icons.VideoIcon,
21
+ "avi": _Icons.VideoIcon,
22
+ "bmp": _Icons.ImageIcon,
23
+ "doc": _Icons.WordIcon,
24
+ "docx": _Icons.WordIcon,
25
+ "flac": _Icons.AudioIcon,
26
+ "flv": _Icons.VideoIcon,
27
+ "gif": _Icons.ImageIcon,
28
+ "jiff": _Icons.ImageIcon,
29
+ "jpeg": _Icons.ImageIcon,
30
+ "jpg": _Icons.ImageIcon,
31
+ "mpe": _Icons.VideoIcon,
32
+ "mpeg": _Icons.VideoIcon,
33
+ "mpg": _Icons.VideoIcon,
34
+ "mpv": _Icons.VideoIcon,
35
+ "mp2": _Icons.AudioIcon,
36
+ "mp3": _Icons.AudioIcon,
37
+ "mp4": _Icons.VideoIcon,
38
+ "m4p": _Icons.VideoIcon,
39
+ "m4v": _Icons.VideoIcon,
40
+ "mov": _Icons.VideoIcon,
41
+ "one": _Icons.OneNoteIcon,
42
+ "pcm": _Icons.AudioIcon,
43
+ "pdf": _Icons.PDFIcon,
44
+ "png": _Icons.ImageIcon,
45
+ "ppt": _Icons.PowerpointIcon,
46
+ "pptx": _Icons.PowerpointIcon,
47
+ "qt": _Icons.VideoIcon,
48
+ "rar": _Icons.ArchiveIcon,
49
+ "swf": _Icons.VideoIcon,
50
+ "tar": _Icons.ArchiveIcon,
51
+ "tar.gz": _Icons.ArchiveIcon,
52
+ "tgz": _Icons.ArchiveIcon,
53
+ "txt": _Icons.BlankIcon,
54
+ "vsd": _Icons.VisioIcon,
55
+ "vsdx": _Icons.VisioIcon,
56
+ "wav": _Icons.AudioIcon,
57
+ "webm": _Icons.VideoIcon,
58
+ "wma": _Icons.AudioIcon,
59
+ "wmv": _Icons.VideoIcon,
60
+ "xls": _Icons.ExcelIcon,
61
+ "xlsx": _Icons.ExcelIcon,
62
+ "zip": _Icons.ArchiveIcon,
63
+ "zipx": _Icons.ArchiveIcon,
64
+ "7z": _Icons.ArchiveIcon
87
65
  };
88
66
  /**
89
67
  * Get file attachment icon image depending on extension.
@@ -94,7 +72,7 @@ const FileAttachmentIconMap = {
94
72
  const getFileAttachmentIconData = extension => {
95
73
  const key = extension.startsWith(".") ? extension.slice(1) : extension || "";
96
74
 
97
- const icon = FileAttachmentIconMap[key.toLowerCase()] || _blankIcon.default;
75
+ const icon = FileAttachmentIconMap[key.toLowerCase()] || _Icons.BlankIcon;
98
76
 
99
77
  return icon;
100
78
  }; // Check if browser supports inline media playing for current media format