@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
@@ -3,6 +3,10 @@ import { defaultMiddlewareLocalizedTexts } from "../../components/webchatcontain
3
3
  export const getLiveChatWidgetContextInitialState = props => {
4
4
  var _props$webChatContain;
5
5
 
6
+ if (props !== null && props !== void 0 && props.liveChatContextFromCache) {
7
+ return props === null || props === void 0 ? void 0 : props.liveChatContextFromCache;
8
+ }
9
+
6
10
  const LiveChatWidgetContextInitialState = {
7
11
  domainStates: {
8
12
  liveChatConfig: props.chatConfig,
@@ -13,7 +17,8 @@ export const getLiveChatWidgetContextInitialState = props => {
13
17
  chatToken: undefined,
14
18
  postChatContext: undefined,
15
19
  telemetryInternalData: {},
16
- globalDir: "ltr"
20
+ globalDir: "ltr",
21
+ liveChatContext: undefined
17
22
  },
18
23
  appStates: {
19
24
  conversationState: ConversationState.Closed,
@@ -46,5 +51,5 @@ export const getLiveChatWidgetContextInitialState = props => {
46
51
  focusChatButton: false
47
52
  }
48
53
  };
49
- return props.liveChatContextFromCache ?? LiveChatWidgetContextInitialState;
54
+ return LiveChatWidgetContextInitialState;
50
55
  };
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable indent */
2
2
  import { LiveChatWidgetActionType } from "./common/LiveChatWidgetActionType";
3
- import { TelemetryManager } from "../common/telemetry/TelemetryManager";
4
3
  export const createReducer = () => {
5
4
  const reducer = (state, action) => {
6
5
  var _action$payload, _action$payload2, _action$payload3;
@@ -136,6 +135,7 @@ export const createReducer = () => {
136
135
  case LiveChatWidgetActionType.SET_CHAT_TOKEN:
137
136
  return { ...state,
138
137
  domainStates: { ...state.domainStates,
138
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
139
  chatToken: action.payload
140
140
  }
141
141
  };
@@ -187,7 +187,6 @@ export const createReducer = () => {
187
187
  };
188
188
 
189
189
  case LiveChatWidgetActionType.SET_TELEMETRY_DATA:
190
- TelemetryManager.InternalTelemetryData = action.payload;
191
190
  return { ...state,
192
191
  domainStates: { ...state.domainStates,
193
192
  telemetryInternalData: action.payload
@@ -208,6 +207,18 @@ export const createReducer = () => {
208
207
  }
209
208
  };
210
209
 
210
+ case LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT:
211
+ return { ...state,
212
+ domainStates: { ...state.domainStates,
213
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
214
+ liveChatContext: action.payload
215
+ }
216
+ };
217
+
218
+ case LiveChatWidgetActionType.SET_WIDGET_STATE:
219
+ return { ...action.payload
220
+ };
221
+
211
222
  case LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT:
212
223
  return { ...state,
213
224
  appStates: { ...state.appStates,
@@ -9,13 +9,13 @@ export const shouldShowHeader = state => {
9
9
  return !state.appStates.isMinimized && state.appStates.conversationState !== ConversationState.Closed && state.appStates.conversationState !== ConversationState.ProactiveChat;
10
10
  };
11
11
  export const shouldShowFooter = state => {
12
- return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.Active;
12
+ return !state.appStates.isMinimized && (state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive);
13
13
  };
14
14
  export const shouldShowEmailTranscriptPane = state => {
15
15
  return state.uiStates.showEmailTranscriptPane;
16
16
  };
17
17
  export const shouldShowWebChatContainer = state => {
18
- return state.appStates.conversationState === ConversationState.Active;
18
+ return state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive;
19
19
  };
20
20
  export const shouldShowLoadingPane = state => {
21
21
  return !state.appStates.isMinimized && !state.appStates.shouldShowPostChat && state.appStates.conversationState === ConversationState.Loading;
@@ -0,0 +1,84 @@
1
+ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../common/telemetry/TelemetryConstants";
2
+ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
3
+ import { Constants } from "../common/Constants";
4
+ import { TelemetryHelper } from "../common/telemetry/TelemetryHelper";
5
+ import { TelemetryManager } from "../common/telemetry/TelemetryManager";
6
+ export const createOnNewAdapterActivityHandler = (chatId, userId) => {
7
+ const onNewAdapterActivityHandler = activity => {
8
+ var _activity$channelData, _activity$channelData2, _activity$channelData3;
9
+
10
+ const isActivityMessage = (activity === null || activity === void 0 ? void 0 : activity.type) === Constants.message;
11
+ 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.historyMessageTag)) && !(activity !== null && activity !== void 0 && (_activity$channelData3 = activity.channelData) !== null && _activity$channelData3 !== void 0 && _activity$channelData3.fromList);
12
+
13
+ if (isNotHistoryMessage) {
14
+ raiseMessageEvent(activity);
15
+ }
16
+ };
17
+
18
+ const raiseMessageEvent = activity => {
19
+ if ((activity === null || activity === void 0 ? void 0 : activity.type) === Constants.message) {
20
+ var _TelemetryManager$Int, _activity$from;
21
+
22
+ const payload = {
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ text: activity === null || activity === void 0 ? void 0 : activity.text,
25
+ id: activity === null || activity === void 0 ? void 0 : activity.id,
26
+ type: activity === null || activity === void 0 ? void 0 : activity.type,
27
+ timestamp: activity === null || activity === void 0 ? void 0 : activity.timestamp,
28
+ chatId: chatId,
29
+ userId: userId,
30
+ conversationId: ((_TelemetryManager$Int = TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.conversationId) ?? "",
31
+ channelData: activity === null || activity === void 0 ? void 0 : activity.channelData,
32
+ messageType: ""
33
+ };
34
+
35
+ if ((activity === null || activity === void 0 ? void 0 : (_activity$from = activity.from) === null || _activity$from === void 0 ? void 0 : _activity$from.role) === Constants.userMessageTag) {
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ payload.messageType = Constants.userMessageTag;
38
+ const newMessageSentEvent = {
39
+ eventName: BroadcastEvent.NewMessageSent,
40
+ payload: payload
41
+ };
42
+ BroadcastService.postMessage(newMessageSentEvent);
43
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
44
+ Event: TelemetryEvent.MessageSent,
45
+ Description: "New message sent"
46
+ });
47
+ } else {
48
+ var _activity$channelData4, _activity$channelData5;
49
+
50
+ if (activity !== null && activity !== void 0 && (_activity$channelData4 = activity.channelData) !== null && _activity$channelData4 !== void 0 && (_activity$channelData5 = _activity$channelData4.tags) !== null && _activity$channelData5 !== void 0 && _activity$channelData5.includes(Constants.systemMessageTag)) {
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ payload.messageType = Constants.systemMessageTag;
53
+ } else {
54
+ var _activity$channelData6, _activity$channelData7, _activity$channelData8;
55
+
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ const messageHasNoText = !(activity !== null && activity !== void 0 && activity.text); // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
+
59
+ const messageHasNoTags = !(activity !== null && activity !== void 0 && activity.channelData) || !(activity !== null && activity !== void 0 && (_activity$channelData6 = activity.channelData) !== null && _activity$channelData6 !== void 0 && _activity$channelData6.tags) || (activity === null || activity === void 0 ? void 0 : (_activity$channelData7 = activity.channelData) === null || _activity$channelData7 === void 0 ? void 0 : (_activity$channelData8 = _activity$channelData7.tags) === null || _activity$channelData8 === void 0 ? void 0 : _activity$channelData8.length) === 0; // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
+
61
+ const messageHasNoAttachments = !(activity !== null && activity !== void 0 && activity.attachments) || (activity === null || activity === void 0 ? void 0 : activity.attachments.length) === 0;
62
+
63
+ if (messageHasNoTags && messageHasNoText && messageHasNoAttachments) {
64
+ return;
65
+ }
66
+
67
+ payload.messageType = Constants.userMessageTag;
68
+ }
69
+
70
+ const newMessageReceivedEvent = {
71
+ eventName: BroadcastEvent.NewMessageReceived,
72
+ payload: payload
73
+ };
74
+ BroadcastService.postMessage(newMessageReceivedEvent);
75
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
76
+ Event: TelemetryEvent.MessageReceived,
77
+ Description: "New message received"
78
+ });
79
+ }
80
+ }
81
+ };
82
+
83
+ return onNewAdapterActivityHandler;
84
+ };
@@ -0,0 +1 @@
1
+ export declare const NewMessageNotificationSoundBase64: string;
@@ -0,0 +1,11 @@
1
+ export declare const ArchiveIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDQ4IDIwNDgiIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjEycHgiPg0KPHBhdGggZD0iTTE3OTIgMHEyNyAwIDUwIDEwdDQwIDI3IDI4IDQxIDEwIDUwdjQ4MHEwIDQ1LTkgNzd0LTI0IDU4LTMxIDQ2LTMxIDQwLTIzIDQ0LTEwIDU1djk5MnEwIDI3LTEwIDUwdC0yNyA0MC00MSAyOC01MCAxMEgyNTZWMGgxNTM2ek02NDAgMTI4djM4NGgyNTZWMTI4SDY0MHptMTAyNCA4MDBxMC0zMS05LTU0dC0yNC00NC0zMS00MS0zMS00NS0yMy01OC0xMC03OFYxMjhoLTUxMnY1MTJINzY4djEyOEg2NDBWNjQwSDUxMlYxMjhIMzg0djE3OTJoMzg0di0xMjhoMTI4djEyOGg3NjhWOTI4em0xMjgtODAwaC0xMjh2NDgwcTAgMjQgNCA0MnQxMyAzMyAyMCAyOSAyNyAzMnExNS0xNyAyNi0zMXQyMC0zMCAxMy0zMyA1LTQyVjEyOHpNNjQwIDg5NmgxMjh2MTI4SDY0MFY4OTZ6bTAgMjU2aDEyOHYxMjhINjQwdi0xMjh6bTAgMjU2aDEyOHYxMjhINjQwdi0xMjh6bTEyOCAyNTZ2MTI4SDY0MHYtMTI4aDEyOHptMC03NjhWNzY4aDEyOHYxMjhINzY4em0wIDI1NnYtMTI4aDEyOHYxMjhINzY4em0wIDI1NnYtMTI4aDEyOHYxMjhINzY4em0wIDI1NnYtMTI4aDEyOHYxMjhINzY4eiIgLz4NCjwvc3ZnPg==";
2
+ export declare const AudioIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0xNzkyIDE0MDhxMCA2Mi0yOSAxMDl0LTc2IDgwLTEwNCA1MC0xMTEgMTdxLTU0IDAtMTExLTE3dC0xMDMtNDktNzYtODAtMzAtMTEwcTAtNjEgMjktMTA5dDc2LTgwIDEwNC01MCAxMTEtMTdxNTEgMCAxMDAgMTJ0OTIgMzlWMjI2TDc2OCA0NTB2MTIxNHEwIDYyLTI5IDEwOXQtNzYgODAtMTA0IDUwLTExMSAxN3EtNTQgMC0xMTEtMTd0LTEwMy00OS03Ni04MC0zMC0xMTBxMC02MSAyOS0xMDl0NzYtODAgMTA0LTUwIDExMS0xN3E1MSAwIDEwMCAxMnQ5MiAzOVYzNTBMMTc5MiA2MnYxMzQ2eiIgLz4NCjwvc3ZnPg==";
3
+ export declare const BlankIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik01NDkgMGgxMjQzdjE3NTVsLTI5MyAyOTNIMjU2VjI5M0w1NDkgMHptMTExNSAxNzAxVjEyOEg2MDNMMzg0IDM0N3YxNTczaDEwNjFsMjE5LTIxOXoiIC8+DQo8L3N2Zz4=";
4
+ export declare const ExcelIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0yMDQ4IDQ3NXYxNDQ1cTAgMjctMTAgNTB0LTI3IDQwLTQxIDI4LTUwIDEwSDY0MHEtMjcgMC01MC0xMHQtNDAtMjctMjgtNDEtMTAtNTB2LTI1NkgxMTVxLTI0IDAtNDQtOXQtMzctMjUtMjUtMzYtOS00NVY2MjdxMC0yNCA5LTQ0dDI1LTM3IDM2LTI1IDQ1LTloMzk3VjEyOHEwLTI3IDEwLTUwdDI3LTQwIDQxLTI4IDUwLTEwaDkzM3EyNiAwIDQ5IDl0NDIgMjhsMzQ3IDM0N3ExOCAxOCAyNyA0MXQxMCA1MHptLTM4NC0yNTZ2MTY1aDE2NWwtMTY1LTE2NXpNMjYxIDE0MjRoMTg5cTItNCAxMi0yM3QyNS00NSAyOS01NSAyOS01MyAyMy00MSAxMC0xN3EyNyA1OSA2MCAxMTh0NjUgMTE2aDE4N2wtMjA5LTMzOSAyMDUtMzMzSDcwN3EtMzEgNTctNjAgMTE0dC02MyAxMTJxLTI5LTU3LTU3LTExM3QtNTctMTEzSDI3OWwxOTkgMzM1LTIxNyAzMzd6bTM3OSA0OTZoMTI4MFY1MTJoLTI1NnEtMjcgMC01MC0xMHQtNDAtMjctMjgtNDEtMTAtNTBWMTI4SDY0MHYzODRoMzk3cTI0IDAgNDQgOXQzNyAyNSAyNSAzNiA5IDQ1djkyMnEwIDI0LTkgNDR0LTI1IDM3LTM2IDI1LTQ1IDlINjQwdjI1NnptNjQwLTEwMjRWNzY4aDUxMnYxMjhoLTUxMnptMCAyNTZ2LTEyOGg1MTJ2MTI4aC01MTJ6bTAgMjU2di0xMjhoNTEydjEyOGgtNTEyeiIgLz4NCjwvc3ZnPg==";
5
+ export declare const ImageIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0yNTYgMTkyMGgxNTM2djEyOEgxMjhWMGgxMTE1bDU0OSA1NDl2OTFoLTY0MFYxMjhIMjU2djE3OTJ6TTEyODAgNTEyaDI5M2wtMjkzLTI5M3YyOTN6bTc2OCAyNTZ2MTAyNEg2NDBWNzY4aDE0MDh6TTc2OCA4OTZ2NDIxbDMyMC0zMTkgNDE2IDQxNiAxNjAtMTYwIDI1NiAyNTZWODk2SDc2OHptOTg3IDc2OGgxMzlsLTIzMC0yMzAtNjkgNzAgMTYwIDE2MHptLTk4NyAwaDgwNWwtNDg1LTQ4Ni0zMjAgMzIxdjE2NXptOTYwLTUxMnEtMjYgMC00NS0xOXQtMTktNDVxMC0yNiAxOS00NXQ0NS0xOXEyNiAwIDQ1IDE5dDE5IDQ1cTAgMjYtMTkgNDV0LTQ1IDE5eiIgLz4NCjwvc3ZnPg==";
6
+ export declare const OneNoteIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0xOTYzIDEyOHEzNSAwIDYwIDI1dDI1IDYwdjE2MjJxMCAzNS0yNSA2MHQtNjAgMjVINTk3cS0zNSAwLTYwLTI1dC0yNS02MHYtMjk5SDg1cS0zNSAwLTYwLTI1dC0yNS02MFY1OTdxMC0zNSAyNS02MHQ2MC0yNWg0MjdWMjEzcTAtMzUgMjUtNjB0NjAtMjVoMTM2NnpNMzg5IDkzOWwyNDIgNDIwaDE1MlY2ODlINjM1djQyOUw0MDIgNjg5SDI0MXY2NzBoMTQ4VjkzOXptMTUzMSA4NTN2LTI1NmgtMjU2djI1NmgyNTZ6bTAtMzg0di0yNTZoLTI1NnYyNTZoMjU2em0wLTM4NFY3NjhoLTI1NnYyNTZoMjU2em0wLTM4NFYyNTZINjQwdjI1NmgyOTlxMzUgMCA2MCAyNXQyNSA2MHY4NTRxMCAzNS0yNSA2MHQtNjAgMjVINjQwdjI1Nmg4OTZWNjQwaDM4NHoiIC8+DQo8L3N2Zz4=";
7
+ export declare const PDFIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0xOTIwIDE2NjRoLTEyOHYzODRIMTI4di0zODRIMFY2NDBoMTI4VjBoMTI0M2w0MjEgNDIxdjIxOWgxMjh2MTAyNHpNMTQwOCAzODRoMTY1bC0xNjUtMTY1djE2NXpNMjU2IDY0MGgxNDA4VjUxMmgtMzg0VjEyOEgyNTZ2NTEyem0xNDA4IDEwMjRIMjU2djI1NmgxNDA4di0yNTZ6bTEyOC04OTZIMTI4djc2OGgxNjY0Vjc2OHpNNDQ4IDg5NnE0MCAwIDc1IDE1dDYxIDQxIDQxIDYxIDE1IDc1cTAgNDAtMTUgNzV0LTQxIDYxLTYxIDQxLTc1IDE1aC02NHYxMjhIMjU2Vjg5NmgxOTJ6bTAgMjU2cTI2IDAgNDUtMTl0MTktNDVxMC0yNi0xOS00NXQtNDUtMTloLTY0djEyOGg2NHptNDQ4LTI1NnE1MyAwIDk5IDIwdDgyIDU1IDU1IDgxIDIwIDEwMHEwIDUzLTIwIDk5dC01NSA4Mi04MSA1NS0xMDAgMjBINzY4Vjg5NmgxMjh6bTAgMzg0cTI3IDAgNTAtMTB0NDAtMjcgMjgtNDEgMTAtNTBxMC0yNy0xMC01MHQtMjctNDAtNDEtMjgtNTAtMTB2MjU2em0zODQtMzg0aDMyMHYxMjhoLTE5MnYxMjhoMTkydjEyOGgtMTkydjEyOGgtMTI4Vjg5NnoiIC8+DQo8L3N2Zz4=";
8
+ export declare const PowerpointIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0yMDQ4IDQ3NXYxNDQ1cTAgMjctMTAgNTB0LTI3IDQwLTQxIDI4LTUwIDEwSDY0MHEtMjcgMC01MC0xMHQtNDAtMjctMjgtNDEtMTAtNTB2LTI1NkgxMTVxLTI0IDAtNDQtOXQtMzctMjUtMjUtMzYtOS00NVY2MjdxMC0yNCA5LTQ0dDI1LTM3IDM2LTI1IDQ1LTloMzk3VjEyOHEwLTI3IDEwLTUwdDI3LTQwIDQxLTI4IDUwLTEwaDkzM3EyNiAwIDQ5IDl0NDIgMjhsMzQ3IDM0N3ExOCAxOCAyNyA0MXQxMCA1MHptLTM4NC0yNTZ2MTY1aDE2NWwtMTY1LTE2NXpNMzY4IDc1MnY2NzJoMTUwdi0yMjZoMTAwcTUyIDAgOTctMTV0NzgtNDYgNTMtNzIgMjAtOTdxMC01Ni0xNy05N3QtNTAtNjctNzYtMzktOTctMTNIMzY4em0xNTUyIDExNjhWNTEyaC0yNTZxLTI3IDAtNTAtMTB0LTQwLTI3LTI4LTQxLTEwLTUwVjEyOEg2NDB2Mzg0aDM5N3EyNCAwIDQ0IDl0MzcgMjUgMjUgMzYgOSA0NXY5MjJxMCAyNC05IDQ0dC0yNSAzNy0zNiAyNS00NSA5SDY0MHYyNTZoMTI4MHpNMTUzNiA2NDBxNzkgMCAxNDkgMzB0MTIyIDgyIDgzIDEyMyAzMCAxNDloLTM4NFY2NDB6bS0xMjggMTI4djM4NGgzODRxMCA4MC0zMCAxNDl0LTgyIDEyMi0xMjMgODMtMTQ5IDMwcS0zMyAwLTY1LTZ0LTYzLTE4Vjc5MnEzMS0xMSA2My0xN3Q2NS03em0tODA0IDMwMGgtODZWODgzaDkwcTQ3IDAgNzQgMjB0MjcgNzBxMCA1Mi0yOCA3M3QtNzcgMjJ6IiAvPg0KPC9zdmc+";
9
+ export declare const VideoIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0wIDI1NmgyMDQ4djE0MDhIMFYyNTZ6bTI1NiAxMjgwdi0xMjhIMTI4djEyOGgxMjh6bTAtMjU2di0xMjhIMTI4djEyOGgxMjh6bTAtMjU2Vjg5NkgxMjh2MTI4aDEyOHptMC0yNTZWNjQwSDEyOHYxMjhoMTI4em0wLTI1NlYzODRIMTI4djEyOGgxMjh6bTE0MDggNzg2VjM4NEgzODR2ODIzbDQxMS01NDkgNzQxIDg3OC0zMjktNTU4IDEzNy0xMzcgMzIwIDQ1N3ptMjU2IDIzOHYtMTI4aC0xMjh2MTI4aDEyOHptMC0yNTZ2LTEyOGgtMTI4djEyOGgxMjh6bTAtMjU2Vjg5NmgtMTI4djEyOGgxMjh6bTAtMjU2VjY0MGgtMTI4djEyOGgxMjh6bTAtMjU2VjM4NGgtMTI4djEyOGgxMjh6IiAvPg0KPC9zdmc+";
10
+ export declare const VisioIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0yMDQ4IDQ3NXYxNDQ1cTAgMjctMTAgNTB0LTI3IDQwLTQxIDI4LTUwIDEwSDY0MHEtMjcgMC01MC0xMHQtNDAtMjctMjgtNDEtMTAtNTB2LTI1NkgxMTVxLTI0IDAtNDQtOXQtMzctMjUtMjUtMzYtOS00NVY2MjdxMC0yNCA5LTQ0dDI1LTM3IDM2LTI1IDQ1LTloMzk3VjEyOHEwLTI3IDEwLTUwdDI3LTQwIDQxLTI4IDUwLTEwaDkzM3EyNiAwIDQ5IDl0NDIgMjhsMzQ3IDM0N3ExOCAxOCAyNyA0MXQxMCA1MHptLTM4NC0yNTZ2MTY1aDE2NWwtMTY1LTE2NXpNNDkzIDE0MjRoMTYzbDI1NS02NzJINzQ1bC0xNDcgNDI3cS01IDE2LTEwIDMxdC0xMSAzMXEtNDEtMTIzLTgyLTI0NHQtODQtMjQ1SDI0MWwyNDggNjYyIDQgMTB6bTE0NyA0OTZoMTI4MFY1MTJoLTI1NnEtMjcgMC01MC0xMHQtNDAtMjctMjgtNDEtMTAtNTBWMTI4SDY0MHYzODRoMzk3cTI0IDAgNDQgOXQzNyAyNSAyNSAzNiA5IDQ1djkyMnEwIDI0LTkgNDR0LTI1IDM3LTM2IDI1LTQ1IDlINjQwdjI1NnptOTYwLTEyODBsMTkyIDE5Mi0xMjggMTI4djQ0OGgtMjU2djEyOGgtMTI4di0zODRoMTI4djEyOGgxMjhWOTYwbC0xMjgtMTI4IDE5Mi0xOTJ6IiAvPg0KPC9zdmc+";
11
+ export declare const WordIcon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICAgdmlld0JveD0iMCAwIDIwNDggMjA0OCINCiAgICB3aWR0aD0iMTJweCINCiAgICBoZWlnaHQ9IjEycHgiPg0KICAgIDxwYXRoIGQ9Ik0yMDQ4IDQ3NXYxNDQ1cTAgMjctMTAgNTB0LTI3IDQwLTQxIDI4LTUwIDEwSDY0MHEtMjcgMC01MC0xMHQtNDAtMjctMjgtNDEtMTAtNTB2LTI1NkgxMTVxLTI0IDAtNDQtOXQtMzctMjUtMjUtMzYtOS00NVY2MjdxMC0yNCA5LTQ0dDI1LTM3IDM2LTI1IDQ1LTloMzk3VjEyOHEwLTI3IDEwLTUwdDI3LTQwIDQxLTI4IDUwLTEwaDkzM3EyNiAwIDQ5IDl0NDIgMjhsMzQ3IDM0N3ExOCAxOCAyNyA0MXQxMCA1MHptLTM4NC0yNTZ2MTY1aDE2NWwtMTY1LTE2NXpNMzIwIDE0MjRoMTYxcTItOCA5LTQzdDE4LTgzIDIxLTEwMyAyMi0xMDEgMTYtNzYgOC0zMWw3IDMwcTcgMzAgMTcgNzd0MjMgMTAwIDIzIDEwMyAxOSA4NCAxMCA0M2gxNjBsMTQ4LTY3Mkg4MzRsLTgwIDQzOC0xMDAtNDM4SDUwMmwtOTYgNDQwLTg2LTQ0MEgxNzBsMTUwIDY3MnptMzIwIDQ5NmgxMjgwVjUxMmgtMjU2cS0yNyAwLTUwLTEwdC00MC0yNy0yOC00MS0xMC01MFYxMjhINjQwdjM4NGgzOTdxMjQgMCA0NCA5dDM3IDI1IDI1IDM2IDkgNDV2OTIycTAgMjQtOSA0NHQtMjUgMzctMzYgMjUtNDUgOUg2NDB2MjU2em02NDAtMTAyNFY3NjhoNTEydjEyOGgtNTEyem0wIDI1NnYtMTI4aDUxMnYxMjhoLTUxMnptMCAyNTZ2LTEyOGg1MTJ2MTI4aC01MTJ6IiAvPg0KPC9zdmc+";
@@ -1,7 +1,9 @@
1
1
  export declare class Constants {
2
2
  static readonly systemMessageTag = "system";
3
3
  static readonly userMessageTag = "user";
4
+ static readonly historyMessageTag = "history";
4
5
  static readonly agentEndConversationMessageTag = "agentendconversation";
6
+ static readonly supervisorForceCloseMessageTag = "supervisorforceclosedconversation";
5
7
  static readonly receivedMessageClassName = "ms_lcw_webchat_received_message";
6
8
  static readonly sentMessageClassName = "ms_lcw_webchat_sent_message";
7
9
  static readonly webchatChannelId = "webchat";
@@ -13,6 +15,7 @@ export declare class Constants {
13
15
  static readonly true = "true";
14
16
  static readonly false = "false";
15
17
  static readonly maximumUnreadMessageCount = 99;
18
+ static readonly widgetStateDataKey = "LcwChatWidgetState";
16
19
  static readonly channelIdKey = "ChannelId-";
17
20
  static readonly ChannelId = "lcw";
18
21
  static readonly CustomerTag = "FromCustomer";
@@ -0,0 +1,4 @@
1
+ import { IContextDataStore } from "../interfaces/IContextDataStore";
2
+ export declare class DataStoreManager {
3
+ static clientDataStore?: IContextDataStore;
4
+ }
@@ -0,0 +1,14 @@
1
+ export interface IContextDataStore {
2
+ /**
3
+ * getData: Get data from data store
4
+ */
5
+ getData: (key: string, type: string) => any;
6
+ /**
7
+ * setData: Set data to data store
8
+ */
9
+ setData: (key: string, value: string) => void;
10
+ /**
11
+ * removeData: Remove data from data store by key
12
+ */
13
+ removeData?: (key: string) => void;
14
+ }
@@ -17,6 +17,18 @@ export declare enum LogLevel {
17
17
  WARN = "WARN",
18
18
  ERROR = "ERROR"
19
19
  }
20
+ export declare enum BroadcastEvent {
21
+ LoadPostChatSurvey = "LoadPostChatSurvey",
22
+ EndChat = "EndChat",
23
+ NewMessageNotification = "NewMessageNotification",
24
+ UnreadMessageCount = "UnreadMessageCount",
25
+ ChatWidgetStateChanged = "ChatWidgetStateChanged",
26
+ ProactiveChatStartChat = "ProactiveChatStartChat",
27
+ ProactiveChatStartPopoutChat = "ProactiveChatStartPopoutChat",
28
+ InvalidAdaptiveCardFormat = "InvalidAdaptiveCardFormat",
29
+ NewMessageSent = "NewMessageSent",
30
+ NewMessageReceived = "NewMessageReceived"
31
+ }
20
32
  export declare enum TelemetryEvent {
21
33
  CallAdded = "CallAdded",
22
34
  LocalVideoStreamAdded = "LocalVideoStreamAdded",
@@ -99,6 +111,8 @@ export declare enum TelemetryEvent {
99
111
  SendTypingIndicatorSucceeded = "SendTypingIndicatorSucceeded",
100
112
  SendTypingIndicatorFailed = "SendTypingIndicatorFailed",
101
113
  PreChatSurveyStartChatMethodFailed = "PreChatSurveyStartChatMethodFailed",
114
+ ChatAlreadyTriggered = "ChatAlreadyTriggered",
115
+ StartProactiveChatEventReceived = "StartProactiveChatEventReceived",
102
116
  StartProactiveChatMethodFailed = "StartProactiveChatMethodFailed",
103
117
  ProactiveChatAccepted = "ProactiveChatAccepted",
104
118
  ProactiveChatRejected = "ProactiveChatRejected",
@@ -107,7 +121,8 @@ export declare enum TelemetryEvent {
107
121
  ReconnectChatContinueConversation = "ReconnectChatContinueConversation",
108
122
  ReconnectChatStartNewConversation = "ReconnectChatStartNewConversation",
109
123
  ReconnectChatMinimize = "ReconnectChatMinimize",
110
- ChatWidgetStateChanged = "ChatWidgetStateChanged"
124
+ MessageSent = "MessageSent",
125
+ MessageReceived = "MessageReceived"
111
126
  }
112
127
  export interface TelemetryInput {
113
128
  scenarioType: ScenarioType;
@@ -6,6 +6,9 @@ export interface IConfirmationPaneStatefulParams extends IConfirmationPaneStatef
6
6
  setPostChatContext: () => Promise<void>;
7
7
  /**
8
8
  * endChat: Internal Prop injected for triggering end of a chat using chatSDK
9
+ * @param adapter : The chat adapter for the live chat session
10
+ * @param skipEndChatSDK : If set to true endchat will skip chatSDK endChat call
11
+ * @param skipCloseChat : If set to true endchat will skip closing the live chat instance
9
12
  */
10
- endChat: (adapter: any) => Promise<void>;
13
+ endChat: (adapter: any, skipEndChatSDK?: boolean, skipCloseChat?: boolean) => Promise<void>;
11
14
  }
@@ -12,6 +12,9 @@ export interface IHeaderStatefulParams {
12
12
  outOfOfficeHeaderProps?: IHeaderProps;
13
13
  /**
14
14
  * endChat: Internal Prop injected for triggering end of a chat using chatSDK
15
+ * @param adapter : The chat adapter for the live chat session
16
+ * @param skipEndChatSDK : If set to true endchat will skip chatSDK endChat call
17
+ * @param skipCloseChat : If set to true endchat will skip closing the live chat instance
15
18
  */
16
- endChat: (adapter: any) => Promise<void>;
19
+ endChat: (adapter: any, skipEndChatSDK?: boolean, skipCloseChat?: boolean) => Promise<void>;
17
20
  }
@@ -1,4 +1,4 @@
1
1
  import { Dispatch } from "react";
2
2
  import { ILiveChatWidgetAction } from "../../../contexts/common/ILiveChatWidgetAction";
3
3
  import { ILiveChatWidgetProps } from "../interfaces/ILiveChatWidgetProps";
4
- export declare const endChat: (props: ILiveChatWidgetProps, chatSDK: any, setAdapter: any, setWebChatStyles: any, dispatch: Dispatch<ILiveChatWidgetAction>, adapter: any) => Promise<void>;
4
+ export declare const endChat: (props: ILiveChatWidgetProps, chatSDK: any, setAdapter: any, setWebChatStyles: any, dispatch: Dispatch<ILiveChatWidgetAction>, adapter: any, skipEndChatSDK?: boolean | undefined, skipCloseChat?: boolean | undefined) => Promise<void>;
@@ -1,3 +1,3 @@
1
1
  import { Dispatch } from "react";
2
2
  import { ILiveChatWidgetAction } from "../../../contexts/common/ILiveChatWidgetAction";
3
- export declare const setPostChatContextAndLoadSurvey: (chatSDK: any, dispatch: Dispatch<ILiveChatWidgetAction>, loadSurvey: boolean) => Promise<void>;
3
+ export declare const setPostChatContextAndLoadSurvey: (chatSDK: any, dispatch: Dispatch<ILiveChatWidgetAction>, persistedChat?: boolean | undefined) => Promise<void>;
@@ -3,5 +3,5 @@ import { ILiveChatWidgetAction } from "../../../contexts/common/ILiveChatWidgetA
3
3
  import { ILiveChatWidgetContext } from "../../../contexts/common/ILiveChatWidgetContext";
4
4
  import { ILiveChatWidgetProps } from "../interfaces/ILiveChatWidgetProps";
5
5
  declare const prepareStartChat: (props: ILiveChatWidgetProps, chatSDK: any, state: ILiveChatWidgetContext, dispatch: Dispatch<ILiveChatWidgetAction>, setAdapter: any) => Promise<void>;
6
- declare const initStartChat: (chatSDK: any, dispatch: Dispatch<ILiveChatWidgetAction>, setAdapter: any, params?: any) => Promise<void>;
6
+ declare const initStartChat: (chatSDK: any, dispatch: Dispatch<ILiveChatWidgetAction>, setAdapter: any, params?: any, persistedState?: any) => Promise<void>;
7
7
  export { prepareStartChat, initStartChat };
@@ -1,3 +1,4 @@
1
1
  import { Dispatch } from "react";
2
2
  import { ILiveChatWidgetAction } from "../../../contexts/common/ILiveChatWidgetAction";
3
- export declare const startProactiveChat: (dispatch: Dispatch<ILiveChatWidgetAction>, bodyTitle?: string | undefined, showPrechat?: boolean | undefined, inNewWindow?: boolean | undefined) => void;
3
+ import { IProactiveChatNotificationConfig } from "../../proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig";
4
+ export declare const startProactiveChat: (dispatch: Dispatch<ILiveChatWidgetAction>, notificationConfig?: IProactiveChatNotificationConfig | undefined, enablePreChat?: boolean | undefined, inNewWindow?: boolean | undefined) => void;
@@ -20,6 +20,7 @@ import { ITelemetryConfig } from "../../../common/telemetry/interfaces/ITelemetr
20
20
  import { IWebChatContainerStatefulProps } from "../../webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps";
21
21
  import { OmnichannelChatSDK } from "@microsoft/omnichannel-chat-sdk";
22
22
  import { ILiveChatWidgetContext } from "../../../contexts/common/ILiveChatWidgetContext";
23
+ import { IContextDataStore } from "../../../common/interfaces/IContextDataStore";
23
24
  export interface ILiveChatWidgetProps {
24
25
  audioNotificationProps?: IAudioNotificationProps;
25
26
  callingContainerProps?: ICallingContainerProps;
@@ -44,7 +45,8 @@ export interface ILiveChatWidgetProps {
44
45
  proactiveChatPaneProps?: IProactiveChatPaneStatefulProps;
45
46
  reconnectChatPaneProps?: IReconnectChatPaneStatefulProps;
46
47
  styleProps?: ILiveChatWidgetStyleProps;
47
- telemetryConfig: ITelemetryConfig;
48
+ telemetryConfig?: ITelemetryConfig;
48
49
  webChatContainerProps?: IWebChatContainerStatefulProps;
49
50
  liveChatContextFromCache?: ILiveChatWidgetContext;
51
+ contextDataStore?: IContextDataStore;
50
52
  }
@@ -1,5 +1,5 @@
1
1
  import { IPreChatSurveyPaneProps } from "@microsoft/omnichannel-chat-components/lib/types/components/prechatsurveypane/interfaces/IPreChatSurveyPaneProps";
2
2
  export interface IPreChatSurveyPaneStatefulParams {
3
3
  surveyProps?: IPreChatSurveyPaneProps;
4
- initStartChat: (params?: any) => Promise<void>;
4
+ initStartChat: (params?: any, persistedState?: any) => Promise<void>;
5
5
  }
@@ -0,0 +1,3 @@
1
+ export interface IProactiveChatNotificationConfig {
2
+ message?: string;
3
+ }
@@ -3,6 +3,7 @@ export declare class MockChatSDK {
3
3
  protected sleep: (ms: any) => Promise<unknown>;
4
4
  startChat(): Promise<void>;
5
5
  endChat(): null;
6
+ getChatToken(): null;
6
7
  createChatAdapter(): MockAdapter;
7
8
  getPreChatSurvey(parseToJson: boolean): string;
8
9
  getConversationDetails(): {};
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * @param extension File extension
5
5
  */
6
- export declare const getFileAttachmentIconData: (extension: string) => any;
6
+ export declare const getFileAttachmentIconData: (extension: string) => unknown;
7
7
  export declare const isInlineMediaSupported: (attachmentName: string) => boolean;
@@ -5,7 +5,6 @@
5
5
  * 1. Renders system messages differently, according to Microsoft LiveChatWidget styles
6
6
  * 2. Changes the font size of user messages
7
7
  * 3. Decodes certain html characters that came through from chat services
8
- * 4. Triggers end conversation sequence when the chat thread is deleted
9
8
  ******/
10
9
  import React from "react";
11
10
  export declare const createActivityMiddleware: (systemMessageStyleProps?: React.CSSProperties | undefined, userMessageStyleProps?: React.CSSProperties | undefined) => () => (next: any) => (...args: any) => any;
@@ -5,6 +5,7 @@ export declare enum ConversationState {
5
5
  OutOfOffice = 3,
6
6
  ProactiveChat = 4,
7
7
  Active = 5,
8
- Postchat = 6,
9
- Closed = 7
8
+ InActive = 6,
9
+ Postchat = 7,
10
+ Closed = 8
10
11
  }
@@ -14,6 +14,7 @@ export interface ILiveChatWidgetContext {
14
14
  middlewareLocalizedTexts: ILiveChatWidgetLocalizedTexts | undefined;
15
15
  telemetryInternalData: IInternalTelemetryData;
16
16
  globalDir: "rtl" | "ltr";
17
+ liveChatContext: any;
17
18
  };
18
19
  appStates: {
19
20
  conversationState: ConversationState;
@@ -27,5 +27,7 @@ export declare enum LiveChatWidgetActionType {
27
27
  SET_RECONNECT_ID = 25,
28
28
  SET_UNREAD_MESSAGE_COUNT = 26,
29
29
  SET_FOCUS_CHAT_BUTTON = 27,
30
- SET_CONVERSATION_ENDED_BY_AGENT = 28
30
+ SET_CONVERSATION_ENDED_BY_AGENT = 28,
31
+ SET_WIDGET_STATE = 29,
32
+ SET_LIVE_CHAT_CONTEXT = 30
31
33
  }
@@ -0,0 +1,2 @@
1
+ import { IActivity } from "botframework-directlinejs";
2
+ export declare const createOnNewAdapterActivityHandler: (chatId: string, userId: string) => (activity: IActivity) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/omnichannel-chat-widget",
3
- "version": "0.1.0-main.3d1c026",
3
+ "version": "0.1.0-main.47ede4d",
4
4
  "description": "Microsoft Omnichannel Chat Widget",
5
5
  "main": "lib/cjs/index.js",
6
6
  "types": "lib/types/index.d.ts",
@@ -77,7 +77,7 @@
77
77
  },
78
78
  "dependencies": {
79
79
  "@fluentui/react": "^8.49.1",
80
- "@microsoft/omnichannel-chat-components": "0.1.0-main.ea06308",
80
+ "@microsoft/omnichannel-chat-components": "0.1.0-main.2eda736",
81
81
  "@microsoft/omnichannel-chat-sdk": "1.0.1-main.077d17c",
82
82
  "abort-controller-es5": "^2.0.1",
83
83
  "dompurify": "^2.3.4",
@@ -91,19 +91,18 @@
91
91
  "compose-storybook": "start-storybook -c stories/.storybook -p 9009",
92
92
  "build-composite-storybook": "build-storybook -c stories/.storybook -o storybook-build",
93
93
  "build-storybook": "build-storybook",
94
- "build": "yarn eslint . && yarn build:esm && yarn copy:esm && yarn build:cjs && yarn copy:cjs && tsc",
94
+ "build": "yarn lint && yarn build:esm && yarn build:cjs && tsc",
95
95
  "test:unit": "jest -c jest.config.unit.cjs --env=jsdom --runInBand --force-exit",
96
96
  "test:visual": "jest -c jest.config.visual.cjs",
97
97
  "test:all": "yarn test:unit && yarn test:visual",
98
98
  "build:esm": "babel ./src --config-file ./babel.esm.config.json --out-dir lib/esm --extensions .ts,.js,.tsx --ignore **/*.test.ts,**/*.stories.tsx,**/*.test.tsx",
99
99
  "build:cjs": "babel ./src --config-file ./babel.config.json --out-dir lib/cjs --extensions .ts,.js,.tsx --ignore **/*.test.ts,**/*.stories.tsx,**/*.test.tsx",
100
- "copy:cjs": "copyfiles -u 2 src/assets/audios/* lib/cjs/assets && copyfiles -u 2 src/assets/icons/* lib/cjs/assets",
101
- "copy:esm": "copyfiles -u 2 src/assets/audios/* lib/esm/assets && copyfiles -u 2 src/assets/icons/* lib/esm/assets",
102
100
  "verify": "yarn install && yarn build-storybook && yarn test:all && yarn build && yarn storybook",
103
101
  "testpack": "yarn build && yarn pack",
104
102
  "build-sample": "yarn build && webpack --config ./webpack.config.cjs",
105
103
  "build-sample:dev": "yarn build && webpack --config ./webpack.dev.config.cjs",
106
- "test:visual:build": "yarn build-storybook && yarn test:visual"
104
+ "test:visual:build": "yarn build-storybook && yarn test:visual",
105
+ "lint": "yarn eslint ."
107
106
  },
108
107
  "resolutions": {
109
108
  "**/url-parse": "1.5.9",
@@ -1,3 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048" width="12px" height="12px">
2
- <path d="M1792 0q27 0 50 10t40 27 28 41 10 50v480q0 45-9 77t-24 58-31 46-31 40-23 44-10 55v992q0 27-10 50t-27 40-41 28-50 10H256V0h1536zM640 128v384h256V128H640zm1024 800q0-31-9-54t-24-44-31-41-31-45-23-58-10-78V128h-512v512H768v128H640V640H512V128H384v1792h384v-128h128v128h768V928zm128-800h-128v480q0 24 4 42t13 33 20 29 27 32q15-17 26-31t20-30 13-33 5-42V128zM640 896h128v128H640V896zm0 256h128v128H640v-128zm0 256h128v128H640v-128zm128 256v128H640v-128h128zm0-768V768h128v128H768zm0 256v-128h128v128H768zm0 256v-128h128v128H768zm0 256v-128h128v128H768z" />
3
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M1792 1408q0 62-29 109t-76 80-104 50-111 17q-54 0-111-17t-103-49-76-80-30-110q0-61 29-109t76-80 104-50 111-17q51 0 100 12t92 39V226L768 450v1214q0 62-29 109t-76 80-104 50-111 17q-54 0-111-17t-103-49-76-80-30-110q0-61 29-109t76-80 104-50 111-17q51 0 100 12t92 39V350L1792 62v1346z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M549 0h1243v1755l-293 293H256V293L549 0zm1115 1701V128H603L384 347v1573h1061l219-219z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M2048 475v1445q0 27-10 50t-27 40-41 28-50 10H640q-27 0-50-10t-40-27-28-41-10-50v-256H115q-24 0-44-9t-37-25-25-36-9-45V627q0-24 9-44t25-37 36-25 45-9h397V128q0-27 10-50t27-40 41-28 50-10h933q26 0 49 9t42 28l347 347q18 18 27 41t10 50zm-384-256v165h165l-165-165zM261 1424h189q2-4 12-23t25-45 29-55 29-53 23-41 10-17q27 59 60 118t65 116h187l-209-339 205-333H707q-31 57-60 114t-63 112q-29-57-57-113t-57-113H279l199 335-217 337zm379 496h1280V512h-256q-27 0-50-10t-40-27-28-41-10-50V128H640v384h397q24 0 44 9t37 25 25 36 9 45v922q0 24-9 44t-25 37-36 25-45 9H640v256zm640-1024V768h512v128h-512zm0 256v-128h512v128h-512zm0 256v-128h512v128h-512z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M256 1920h1536v128H128V0h1115l549 549v91h-640V128H256v1792zM1280 512h293l-293-293v293zm768 256v1024H640V768h1408zM768 896v421l320-319 416 416 160-160 256 256V896H768zm987 768h139l-230-230-69 70 160 160zm-987 0h805l-485-486-320 321v165zm960-512q-26 0-45-19t-19-45q0-26 19-45t45-19q26 0 45 19t19 45q0 26-19 45t-45 19z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M1963 128q35 0 60 25t25 60v1622q0 35-25 60t-60 25H597q-35 0-60-25t-25-60v-299H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V213q0-35 25-60t60-25h1366zM389 939l242 420h152V689H635v429L402 689H241v670h148V939zm1531 853v-256h-256v256h256zm0-384v-256h-256v256h256zm0-384V768h-256v256h256zm0-384V256H640v256h299q35 0 60 25t25 60v854q0 35-25 60t-60 25H640v256h896V640h384z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M1920 1664h-128v384H128v-384H0V640h128V0h1243l421 421v219h128v1024zM1408 384h165l-165-165v165zM256 640h1408V512h-384V128H256v512zm1408 1024H256v256h1408v-256zm128-896H128v768h1664V768zM448 896q40 0 75 15t61 41 41 61 15 75q0 40-15 75t-41 61-61 41-75 15h-64v128H256V896h192zm0 256q26 0 45-19t19-45q0-26-19-45t-45-19h-64v128h64zm448-256q53 0 99 20t82 55 55 81 20 100q0 53-20 99t-55 82-81 55-100 20H768V896h128zm0 384q27 0 50-10t40-27 28-41 10-50q0-27-10-50t-27-40-41-28-50-10v256zm384-384h320v128h-192v128h192v128h-192v128h-128V896z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M2048 475v1445q0 27-10 50t-27 40-41 28-50 10H640q-27 0-50-10t-40-27-28-41-10-50v-256H115q-24 0-44-9t-37-25-25-36-9-45V627q0-24 9-44t25-37 36-25 45-9h397V128q0-27 10-50t27-40 41-28 50-10h933q26 0 49 9t42 28l347 347q18 18 27 41t10 50zm-384-256v165h165l-165-165zM368 752v672h150v-226h100q52 0 97-15t78-46 53-72 20-97q0-56-17-97t-50-67-76-39-97-13H368zm1552 1168V512h-256q-27 0-50-10t-40-27-28-41-10-50V128H640v384h397q24 0 44 9t37 25 25 36 9 45v922q0 24-9 44t-25 37-36 25-45 9H640v256h1280zM1536 640q79 0 149 30t122 82 83 123 30 149h-384V640zm-128 128v384h384q0 80-30 149t-82 122-123 83-149 30q-33 0-65-6t-63-18V792q31-11 63-17t65-7zm-804 300h-86V883h90q47 0 74 20t27 70q0 52-28 73t-77 22z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M0 256h2048v1408H0V256zm256 1280v-128H128v128h128zm0-256v-128H128v128h128zm0-256V896H128v128h128zm0-256V640H128v128h128zm0-256V384H128v128h128zm1408 786V384H384v823l411-549 741 878-329-558 137-137 320 457zm256 238v-128h-128v128h128zm0-256v-128h-128v128h128zm0-256V896h-128v128h128zm0-256V640h-128v128h128zm0-256V384h-128v128h128z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M2048 475v1445q0 27-10 50t-27 40-41 28-50 10H640q-27 0-50-10t-40-27-28-41-10-50v-256H115q-24 0-44-9t-37-25-25-36-9-45V627q0-24 9-44t25-37 36-25 45-9h397V128q0-27 10-50t27-40 41-28 50-10h933q26 0 49 9t42 28l347 347q18 18 27 41t10 50zm-384-256v165h165l-165-165zM493 1424h163l255-672H745l-147 427q-5 16-10 31t-11 31q-41-123-82-244t-84-245H241l248 662 4 10zm147 496h1280V512h-256q-27 0-50-10t-40-27-28-41-10-50V128H640v384h397q24 0 44 9t37 25 25 36 9 45v922q0 24-9 44t-25 37-36 25-45 9H640v256zm960-1280l192 192-128 128v448h-256v128h-128v-384h128v128h128V960l-128-128 192-192z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M2048 475v1445q0 27-10 50t-27 40-41 28-50 10H640q-27 0-50-10t-40-27-28-41-10-50v-256H115q-24 0-44-9t-37-25-25-36-9-45V627q0-24 9-44t25-37 36-25 45-9h397V128q0-27 10-50t27-40 41-28 50-10h933q26 0 49 9t42 28l347 347q18 18 27 41t10 50zm-384-256v165h165l-165-165zM320 1424h161q2-8 9-43t18-83 21-103 22-101 16-76 8-31l7 30q7 30 17 77t23 100 23 103 19 84 10 43h160l148-672H834l-80 438-100-438H502l-96 440-86-440H170l150 672zm320 496h1280V512h-256q-27 0-50-10t-40-27-28-41-10-50V128H640v384h397q24 0 44 9t37 25 25 36 9 45v922q0 24-9 44t-25 37-36 25-45 9H640v256zm640-1024V768h512v128h-512zm0 256v-128h512v128h-512zm0 256v-128h512v128h-512z" />
6
- </svg>
File without changes
@@ -1,3 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048" width="12px" height="12px">
2
- <path d="M1792 0q27 0 50 10t40 27 28 41 10 50v480q0 45-9 77t-24 58-31 46-31 40-23 44-10 55v992q0 27-10 50t-27 40-41 28-50 10H256V0h1536zM640 128v384h256V128H640zm1024 800q0-31-9-54t-24-44-31-41-31-45-23-58-10-78V128h-512v512H768v128H640V640H512V128H384v1792h384v-128h128v128h768V928zm128-800h-128v480q0 24 4 42t13 33 20 29 27 32q15-17 26-31t20-30 13-33 5-42V128zM640 896h128v128H640V896zm0 256h128v128H640v-128zm0 256h128v128H640v-128zm128 256v128H640v-128h128zm0-768V768h128v128H768zm0 256v-128h128v128H768zm0 256v-128h128v128H768zm0 256v-128h128v128H768z" />
3
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M1792 1408q0 62-29 109t-76 80-104 50-111 17q-54 0-111-17t-103-49-76-80-30-110q0-61 29-109t76-80 104-50 111-17q51 0 100 12t92 39V226L768 450v1214q0 62-29 109t-76 80-104 50-111 17q-54 0-111-17t-103-49-76-80-30-110q0-61 29-109t76-80 104-50 111-17q51 0 100 12t92 39V350L1792 62v1346z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M549 0h1243v1755l-293 293H256V293L549 0zm1115 1701V128H603L384 347v1573h1061l219-219z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M2048 475v1445q0 27-10 50t-27 40-41 28-50 10H640q-27 0-50-10t-40-27-28-41-10-50v-256H115q-24 0-44-9t-37-25-25-36-9-45V627q0-24 9-44t25-37 36-25 45-9h397V128q0-27 10-50t27-40 41-28 50-10h933q26 0 49 9t42 28l347 347q18 18 27 41t10 50zm-384-256v165h165l-165-165zM261 1424h189q2-4 12-23t25-45 29-55 29-53 23-41 10-17q27 59 60 118t65 116h187l-209-339 205-333H707q-31 57-60 114t-63 112q-29-57-57-113t-57-113H279l199 335-217 337zm379 496h1280V512h-256q-27 0-50-10t-40-27-28-41-10-50V128H640v384h397q24 0 44 9t37 25 25 36 9 45v922q0 24-9 44t-25 37-36 25-45 9H640v256zm640-1024V768h512v128h-512zm0 256v-128h512v128h-512zm0 256v-128h512v128h-512z" />
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- viewBox="0 0 2048 2048"
3
- width="12px"
4
- height="12px">
5
- <path d="M256 1920h1536v128H128V0h1115l549 549v91h-640V128H256v1792zM1280 512h293l-293-293v293zm768 256v1024H640V768h1408zM768 896v421l320-319 416 416 160-160 256 256V896H768zm987 768h139l-230-230-69 70 160 160zm-987 0h805l-485-486-320 321v165zm960-512q-26 0-45-19t-19-45q0-26 19-45t45-19q26 0 45 19t19 45q0 26-19 45t-45 19z" />
6
- </svg>