@microsoft/omnichannel-chat-widget 0.1.0-main.34fc37e → 0.1.0-main.3aede09
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.
- package/lib/cjs/common/storage/default/defaultCacheManager.js +34 -0
- package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
- package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
- package/lib/cjs/common/telemetry/TelemetryConstants.js +6 -0
- package/lib/cjs/components/footerstateful/FooterStateful.js +1 -8
- package/lib/cjs/components/livechatwidget/common/authHelper.js +16 -3
- package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
- package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +3 -0
- package/lib/cjs/components/livechatwidget/common/startChat.js +12 -3
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +49 -41
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +6 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +10 -3
- package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
- package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
- package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +6 -0
- package/lib/esm/components/footerstateful/FooterStateful.js +1 -8
- package/lib/esm/components/livechatwidget/common/authHelper.js +14 -3
- package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
- package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +3 -0
- package/lib/esm/components/livechatwidget/common/startChat.js +13 -4
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +48 -41
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +5 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +8 -3
- package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
- package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
- package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +5 -1
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
- package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
- package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
- package/package.json +2 -2
|
@@ -44,7 +44,8 @@ import useChatAdapterStore from "../../../hooks/useChatAdapterStore";
|
|
|
44
44
|
import useChatContextStore from "../../../hooks/useChatContextStore";
|
|
45
45
|
import useChatSDKStore from "../../../hooks/useChatSDKStore";
|
|
46
46
|
import { ActivityStreamHandler } from "../common/ActivityStreamHandler";
|
|
47
|
-
import {
|
|
47
|
+
import { registerBroadcastServiceForLocalStorage } from "../../../common/storage/default/defaultCacheManager";
|
|
48
|
+
import { defaultClientDataStoreProvider } from "../../../common/storage/default/defaultClientDataStoreProvider";
|
|
48
49
|
export const LiveChatWidgetStateful = props => {
|
|
49
50
|
var _props$webChatContain, _props$styleProps, _chatSDK$omnichannelC, _props$controlProps, _props$controlProps2, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps14, _props$controlProps15, _props$componentOverr, _props$controlProps16, _props$componentOverr2, _props$controlProps17, _props$componentOverr3, _props$controlProps18, _props$componentOverr4, _props$controlProps19, _props$componentOverr5, _props$controlProps20, _props$componentOverr6, _props$controlProps21, _props$componentOverr7, _props$controlProps22, _props$controlProps23, _props$componentOverr8, _props$controlProps24, _props$componentOverr9, _props$controlProps25, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
|
|
50
51
|
|
|
@@ -95,30 +96,39 @@ export const LiveChatWidgetStateful = props => {
|
|
|
95
96
|
};
|
|
96
97
|
|
|
97
98
|
useEffect(() => {
|
|
98
|
-
var _props$
|
|
99
|
+
var _props$controlProps4, _props$controlProps5, _props$controlProps6, _props$controlProps8, _props$chatConfig, _props$chatConfig$Cha, _props$controlProps9, _props$reconnectChatP, _props$chatConfig2, _props$chatConfig2$Li, _props$reconnectChatP4, _state$domainStates;
|
|
100
|
+
|
|
101
|
+
// Add default localStorage support for widget
|
|
102
|
+
if (props.contextDataStore === undefined) {
|
|
103
|
+
var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps3;
|
|
104
|
+
|
|
105
|
+
registerBroadcastServiceForLocalStorage(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.widgetInstanceId) ?? "");
|
|
106
|
+
DataStoreManager.clientDataStore = defaultClientDataStoreProvider();
|
|
107
|
+
} else {
|
|
108
|
+
DataStoreManager.clientDataStore = props.contextDataStore;
|
|
109
|
+
}
|
|
99
110
|
|
|
100
111
|
registerTelemetryLoggers(props, dispatch);
|
|
101
112
|
createInternetConnectionChangeHandler();
|
|
102
|
-
DataStoreManager.clientDataStore = props.contextDataStore ?? undefined;
|
|
103
113
|
dispatch({
|
|
104
114
|
type: LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID,
|
|
105
115
|
payload: widgetElementId
|
|
106
116
|
});
|
|
107
117
|
dispatch({
|
|
108
118
|
type: LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
|
|
109
|
-
payload: ((_props$
|
|
119
|
+
payload: ((_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.skipChatButtonRendering) || false
|
|
110
120
|
});
|
|
111
121
|
dispatch({
|
|
112
122
|
type: LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
113
123
|
payload: false
|
|
114
124
|
});
|
|
115
125
|
|
|
116
|
-
if ((_props$
|
|
117
|
-
var _props$
|
|
126
|
+
if ((_props$controlProps5 = props.controlProps) !== null && _props$controlProps5 !== void 0 && _props$controlProps5.widgetInstanceId && !isNullOrEmptyString((_props$controlProps6 = props.controlProps) === null || _props$controlProps6 === void 0 ? void 0 : _props$controlProps6.widgetInstanceId)) {
|
|
127
|
+
var _props$controlProps7;
|
|
118
128
|
|
|
119
129
|
dispatch({
|
|
120
130
|
type: LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID,
|
|
121
|
-
payload: (_props$
|
|
131
|
+
payload: (_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.widgetInstanceId
|
|
122
132
|
});
|
|
123
133
|
}
|
|
124
134
|
|
|
@@ -129,13 +139,13 @@ export const LiveChatWidgetStateful = props => {
|
|
|
129
139
|
});
|
|
130
140
|
}); // Initialize global dir
|
|
131
141
|
|
|
132
|
-
const globalDir = ((_props$
|
|
142
|
+
const globalDir = ((_props$controlProps8 = props.controlProps) === null || _props$controlProps8 === void 0 ? void 0 : _props$controlProps8.dir) ?? getLocaleDirection((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Cha = _props$chatConfig.ChatWidgetLanguage) === null || _props$chatConfig$Cha === void 0 ? void 0 : _props$chatConfig$Cha.msdyn_localeid);
|
|
133
143
|
dispatch({
|
|
134
144
|
type: LiveChatWidgetActionType.SET_GLOBAL_DIR,
|
|
135
145
|
payload: globalDir
|
|
136
146
|
});
|
|
137
147
|
|
|
138
|
-
if (!((_props$
|
|
148
|
+
if (!((_props$controlProps9 = props.controlProps) !== null && _props$controlProps9 !== void 0 && _props$controlProps9.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
139
149
|
var _props$reconnectChatP2, _props$reconnectChatP3;
|
|
140
150
|
|
|
141
151
|
startUnauthenticatedReconnectChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.reconnectId, initStartChat);
|
|
@@ -161,21 +171,16 @@ export const LiveChatWidgetStateful = props => {
|
|
|
161
171
|
}
|
|
162
172
|
});
|
|
163
173
|
return;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (isAuthenticationSettingsEnabled === false) {
|
|
168
|
-
var _state$domainStates;
|
|
174
|
+
}
|
|
169
175
|
|
|
170
|
-
|
|
171
|
-
|
|
176
|
+
if (!state.appStates.skipChatButtonRendering && !isUndefinedOrEmpty((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext) && state.appStates.conversationState === ConversationState.Active) {
|
|
177
|
+
var _state$domainStates2;
|
|
172
178
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
+
const optionalParams = {
|
|
180
|
+
liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
|
|
181
|
+
};
|
|
182
|
+
initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams);
|
|
183
|
+
return;
|
|
179
184
|
} // All other case should show start chat button, skipChatButtonRendering will take care of it own
|
|
180
185
|
|
|
181
186
|
|
|
@@ -221,7 +226,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
221
226
|
}, [state.appStates.skipChatButtonRendering]); // useEffect for when skip chat button rendering
|
|
222
227
|
|
|
223
228
|
useEffect(() => {
|
|
224
|
-
var _chatSDK$
|
|
229
|
+
var _chatSDK$omnichannelC8, _chatSDK$omnichannelC9, _props$controlProps12;
|
|
225
230
|
|
|
226
231
|
// Add the custom context on receiving the SetCustomContext event
|
|
227
232
|
BroadcastService.getMessageByEventName(BroadcastEvent.SetCustomContext).subscribe(msg => {
|
|
@@ -253,13 +258,13 @@ export const LiveChatWidgetStateful = props => {
|
|
|
253
258
|
}); // Start chat from SDK Event
|
|
254
259
|
|
|
255
260
|
BroadcastService.getMessageByEventName(BroadcastEvent.StartChat).subscribe(() => {
|
|
256
|
-
var _chatSDK$
|
|
261
|
+
var _chatSDK$omnichannelC4, _chatSDK$omnichannelC5, _props$controlProps10;
|
|
257
262
|
|
|
258
263
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
259
264
|
Event: TelemetryEvent.StartChatEventRecevied,
|
|
260
265
|
Description: "Start chat event received."
|
|
261
266
|
});
|
|
262
|
-
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
267
|
+
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC5 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC5 === void 0 ? void 0 : _chatSDK$omnichannelC5.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps10 = props.controlProps) === null || _props$controlProps10 === void 0 ? void 0 : _props$controlProps10.widgetInstanceId) ?? ""); // Chat not found in cache
|
|
263
268
|
|
|
264
269
|
if (persistedState === undefined) {
|
|
265
270
|
BroadcastService.postMessage({
|
|
@@ -299,10 +304,10 @@ export const LiveChatWidgetStateful = props => {
|
|
|
299
304
|
|
|
300
305
|
BroadcastService.getMessageByEventName(BroadcastEvent.InitiateEndChat).subscribe(async () => {
|
|
301
306
|
if (state.appStates.skipChatButtonRendering !== true) {
|
|
302
|
-
var _chatSDK$
|
|
307
|
+
var _chatSDK$omnichannelC6, _chatSDK$omnichannelC7, _props$controlProps11;
|
|
303
308
|
|
|
304
309
|
// This is to ensure to get latest state from cache in multitab
|
|
305
|
-
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
310
|
+
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC6 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC6 === void 0 ? void 0 : _chatSDK$omnichannelC6.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC7 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC7 === void 0 ? void 0 : _chatSDK$omnichannelC7.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
|
|
306
311
|
|
|
307
312
|
if (persistedState && persistedState.appStates.conversationState === ConversationState.Active) {
|
|
308
313
|
prepareEndChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
@@ -322,7 +327,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
322
327
|
initiateEndChatOnBrowserUnload();
|
|
323
328
|
}); // Listen to end chat event from other tabs
|
|
324
329
|
|
|
325
|
-
const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
330
|
+
const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC8 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC8 === void 0 ? void 0 : _chatSDK$omnichannelC8.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC9 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC9 === void 0 ? void 0 : _chatSDK$omnichannelC9.widgetId, ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.widgetInstanceId) ?? "");
|
|
326
331
|
BroadcastService.getMessageByEventName(endChatEventName).subscribe(async () => {
|
|
327
332
|
endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
|
|
328
333
|
return;
|
|
@@ -403,23 +408,25 @@ export const LiveChatWidgetStateful = props => {
|
|
|
403
408
|
}, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]); // Publish chat widget state
|
|
404
409
|
|
|
405
410
|
useEffect(() => {
|
|
406
|
-
var _props$
|
|
411
|
+
var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps13;
|
|
407
412
|
|
|
408
413
|
// Only activate these windows events when conversation state is active and chat widget is in popout mode
|
|
409
414
|
// Ghost chat scenarios
|
|
410
|
-
if (state.appStates.conversationState === ConversationState.Active && ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.skipChatButtonRendering) === true) {
|
|
411
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
412
|
-
window.onbeforeunload = function () {
|
|
413
|
-
const prompt = Constants.BrowserUnloadConfirmationMessage;
|
|
414
|
-
return prompt;
|
|
415
|
-
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
window.onunload = function () {
|
|
419
|
-
initiateEndChatOnBrowserUnload();
|
|
420
|
-
};
|
|
421
|
-
}
|
|
422
415
|
|
|
416
|
+
/* COMMENTING THIS CODE FOR PARITY WITH OLD LCW
|
|
417
|
+
if (state.appStates.conversationState === ConversationState.Active &&
|
|
418
|
+
props.controlProps?.skipChatButtonRendering === true) {
|
|
419
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
420
|
+
|
|
421
|
+
window.onbeforeunload = function () {
|
|
422
|
+
const prompt = Constants.BrowserUnloadConfirmationMessage;
|
|
423
|
+
return prompt;
|
|
424
|
+
};
|
|
425
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
426
|
+
window.onunload = function () {
|
|
427
|
+
initiateEndChatOnBrowserUnload();
|
|
428
|
+
};
|
|
429
|
+
}*/
|
|
423
430
|
widgetStateEventName = getWidgetCacheId(props === null || props === void 0 ? void 0 : (_props$chatSDK = props.chatSDK) === null || _props$chatSDK === void 0 ? void 0 : (_props$chatSDK$omnich = _props$chatSDK.omnichannelConfig) === null || _props$chatSDK$omnich === void 0 ? void 0 : _props$chatSDK$omnich.orgId, props === null || props === void 0 ? void 0 : (_props$chatSDK2 = props.chatSDK) === null || _props$chatSDK2 === void 0 ? void 0 : (_props$chatSDK2$omnic = _props$chatSDK2.omnichannelConfig) === null || _props$chatSDK2$omnic === void 0 ? void 0 : _props$chatSDK2$omnic.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps13 = props.controlProps) === null || _props$controlProps13 === void 0 ? void 0 : _props$controlProps13.widgetInstanceId) ?? "");
|
|
424
431
|
const chatWidgetStateChangeEvent = {
|
|
425
432
|
eventName: widgetStateEventName,
|
|
@@ -13,6 +13,7 @@ import { WebChatStoreLoader } from "./webchatcontroller/WebChatStoreLoader";
|
|
|
13
13
|
import { Constants } from "../../common/Constants";
|
|
14
14
|
import { BotMagicCodeStore } from "./webchatcontroller/BotMagicCodeStore";
|
|
15
15
|
import { defaultAdaptiveCardStyles } from "./common/defaultStyles/defaultAdaptiveCardStyles";
|
|
16
|
+
import { defaultReceivedMessageAnchorStyles } from "./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles";
|
|
16
17
|
const broadcastChannelMessageEvent = "message";
|
|
17
18
|
|
|
18
19
|
const postActivity = activity => {
|
|
@@ -42,7 +43,7 @@ const createMagicCodeSuccessResponse = signin => {
|
|
|
42
43
|
};
|
|
43
44
|
|
|
44
45
|
export const WebChatContainerStateful = props => {
|
|
45
|
-
var _props$adaptiveCardSt, _props$adaptiveCardSt2;
|
|
46
|
+
var _props$adaptiveCardSt, _props$adaptiveCardSt2, _props$renderingMiddl, _props$renderingMiddl2, _props$renderingMiddl3, _props$renderingMiddl4;
|
|
46
47
|
|
|
47
48
|
const {
|
|
48
49
|
BasicWebChat
|
|
@@ -122,7 +123,8 @@ export const WebChatContainerStateful = props => {
|
|
|
122
123
|
.ms_lcw_webchat_received_message img.webchat__markdown__external-link-icon {
|
|
123
124
|
background-image : url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjI1MDEgNC41MDAxN0gxMC43NDk1QzExLjE2MzcgNC41MDAxNyAxMS40OTk1IDQuODM1OTYgMTEuNDk5NSA1LjI1MDE3QzExLjQ5OTUgNS42Mjk4NiAxMS4yMTczIDUuOTQzNjYgMTAuODUxMyA1Ljk5MzMyTDEwLjc0OTUgNi4wMDAxN0g3LjI0OTc0QzYuMDcwNzkgNS45OTk2MSA1LjEwMzQ5IDYuOTA2NTYgNS4wMDc4NiA4LjA2MTEyTDUuMDAwMjggOC4yMjAwM0w1LjAwMzEyIDE2Ljc1MDdDNS4wMDM0MyAxNy45NDE1IDUuOTI4ODUgMTguOTE2MSA3LjA5OTY2IDE4Ljk5NDlMNy4yNTM3MSAxOS4wMDAxTDE1Ljc1MTggMTguOTg4NEMxNi45NDE1IDE4Ljk4NjggMTcuOTE0NSAxOC4wNjIgMTcuOTkzNSAxNi44OTIzTDE3Ljk5ODcgMTYuNzM4NFYxMy4yMzIxQzE3Ljk5ODcgMTIuODE3OSAxOC4zMzQ1IDEyLjQ4MjEgMTguNzQ4NyAxMi40ODIxQzE5LjEyODQgMTIuNDgyMSAxOS40NDIyIDEyLjc2NDMgMTkuNDkxOCAxMy4xMzAzTDE5LjQ5ODcgMTMuMjMyMVYxNi43Mzg0QzE5LjQ5ODcgMTguNzQwNyAxNy45MjkzIDIwLjM3NjkgMTUuOTUyOCAyMC40ODI5TDE1Ljc1MzggMjAuNDg4NEw3LjI1ODI3IDIwLjUwMDFMNy4wNTQ5NSAyMC40OTQ5QzUuMTQyMzkgMjAuMzk1NCAzLjYwODk1IDE4Ljg2MjcgMy41MDgzNyAxNi45NTAyTDMuNTAzMTIgMTYuNzUxMUwzLjUwMDg5IDguMjUyN0wzLjUwNTI5IDguMDUwMkMzLjYwNTM5IDYuMTM3NDkgNS4xMzg2NyA0LjYwNDQ5IDcuMDUwOTYgNC41MDUyN0w3LjI1MDEgNC41MDAxN0gxMC43NDk1SDcuMjUwMVpNMTMuNzQ4MSAzLjAwMTQ2TDIwLjMwMTggMy4wMDE5N0wyMC40MDE0IDMuMDE1NzVMMjAuNTAyMiAzLjA0MzkzTDIwLjU1OSAzLjA2ODAzQzIwLjYxMjIgMy4wOTEyMiAyMC42NjM0IDMuMTIxNjMgMjAuNzExMSAzLjE1ODg1TDIwLjc4MDQgMy4yMjE1NkwyMC44NjQxIDMuMzIwMTRMMjAuOTE4MyAzLjQxMDI1TDIwLjk1NyAzLjUwMDU3TDIwLjk3NjIgMy41NjQ3NkwyMC45ODk4IDMuNjI4NjJMMjAuOTk5MiAzLjcyMjgyTDIwLjk5OTcgMTAuMjU1NEMyMC45OTk3IDEwLjY2OTYgMjAuNjYzOSAxMS4wMDU0IDIwLjI0OTcgMTEuMDA1NEMxOS44NyAxMS4wMDU0IDE5LjU1NjIgMTAuNzIzMiAxOS41MDY1IDEwLjM1NzFMMTkuNDk5NyAxMC4yNTU0TDE5LjQ5ODkgNS41NjE0N0wxMi4yNzk3IDEyLjc4NDdDMTIuMDEzNCAxMy4wNTEgMTEuNTk2OCAxMy4wNzUzIDExLjMwMzEgMTIuODU3NUwxMS4yMTkgMTIuNzg0OUMxMC45NTI3IDEyLjUxODcgMTAuOTI4NCAxMi4xMDIxIDExLjE0NjIgMTEuODA4NEwxMS4yMTg4IDExLjcyNDNMMTguNDM2OSA0LjUwMTQ2SDEzLjc0ODFDMTMuMzY4NCA0LjUwMTQ2IDEzLjA1NDYgNC4yMTkzMSAxMy4wMDUgMy44NTMyNEwxMi45OTgxIDMuNzUxNDZDMTIuOTk4MSAzLjM3MTc3IDEzLjI4MDMgMy4wNTc5NyAxMy42NDY0IDMuMDA4MzFMMTMuNzQ4MSAzLjAwMTQ2WiIgZmlsbD0iI0ZGRkZGRiIgLz48L3N2Zz4) !important;
|
|
124
125
|
height: '.75em';
|
|
125
|
-
marginLeft: '.25em';
|
|
126
|
+
marginLeft: '.25em';
|
|
127
|
+
filter:${(props === null || props === void 0 ? void 0 : (_props$renderingMiddl = props.renderingMiddlewareProps) === null || _props$renderingMiddl === void 0 ? void 0 : (_props$renderingMiddl2 = _props$renderingMiddl.receivedMessageAnchorStyles) === null || _props$renderingMiddl2 === void 0 ? void 0 : _props$renderingMiddl2.filter) ?? "none"};
|
|
126
128
|
}
|
|
127
129
|
pre {
|
|
128
130
|
white-space: pre-wrap;
|
|
@@ -135,7 +137,7 @@ export const WebChatContainerStateful = props => {
|
|
|
135
137
|
.ms_lcw_webchat_received_message a:visited,
|
|
136
138
|
.ms_lcw_webchat_received_message a:hover,
|
|
137
139
|
.ms_lcw_webchat_received_message a:active {
|
|
138
|
-
color:
|
|
140
|
+
color: ${(props === null || props === void 0 ? void 0 : (_props$renderingMiddl3 = props.renderingMiddlewareProps) === null || _props$renderingMiddl3 === void 0 ? void 0 : (_props$renderingMiddl4 = _props$renderingMiddl3.receivedMessageAnchorStyles) === null || _props$renderingMiddl4 === void 0 ? void 0 : _props$renderingMiddl4.color) ?? (defaultReceivedMessageAnchorStyles === null || defaultReceivedMessageAnchorStyles === void 0 ? void 0 : defaultReceivedMessageAnchorStyles.color)};
|
|
139
141
|
} `), /*#__PURE__*/React.createElement(Stack, {
|
|
140
142
|
styles: containerStyles
|
|
141
143
|
}, /*#__PURE__*/React.createElement(BasicWebChat, null)));
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { ConversationState } from "./ConversationState";
|
|
2
2
|
import { defaultMiddlewareLocalizedTexts } from "../../components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts";
|
|
3
|
+
import { getWidgetCacheId, isNullOrUndefined } from "../../common/utils";
|
|
4
|
+
import { defaultClientDataStoreProvider } from "../../common/storage/default/defaultClientDataStoreProvider";
|
|
3
5
|
export const getLiveChatWidgetContextInitialState = props => {
|
|
4
|
-
var _props$webChatContain;
|
|
6
|
+
var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps, _props$webChatContain;
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
const widgetCacheId = getWidgetCacheId(props === null || props === void 0 ? void 0 : (_props$chatSDK = props.chatSDK) === null || _props$chatSDK === void 0 ? void 0 : (_props$chatSDK$omnich = _props$chatSDK.omnichannelConfig) === null || _props$chatSDK$omnich === void 0 ? void 0 : _props$chatSDK$omnich.orgId, props === null || props === void 0 ? void 0 : (_props$chatSDK2 = props.chatSDK) === null || _props$chatSDK2 === void 0 ? void 0 : (_props$chatSDK2$omnic = _props$chatSDK2.omnichannelConfig) === null || _props$chatSDK2$omnic === void 0 ? void 0 : _props$chatSDK2$omnic.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
|
|
9
|
+
const initialState = defaultClientDataStoreProvider().getData(widgetCacheId, "localStorage");
|
|
10
|
+
|
|
11
|
+
if (!isNullOrUndefined(initialState)) {
|
|
12
|
+
return JSON.parse(initialState);
|
|
8
13
|
}
|
|
9
14
|
|
|
10
15
|
const LiveChatWidgetContextInitialState = {
|
|
@@ -79,6 +79,8 @@ export declare enum TelemetryEvent {
|
|
|
79
79
|
PostChatContextCallSucceed = "PostChatContextCallSucceed",
|
|
80
80
|
PostChatContextCallFailed = "PostChatContextCallFailed",
|
|
81
81
|
ParseAdaptiveCardFailed = "ParseAdaptiveCardFailed",
|
|
82
|
+
ClientDataStoreProviderFailed = "ClientDataStoreProviderFailed",
|
|
83
|
+
InMemoryDataStoreFailed = "InMemoryDataStoreFailed",
|
|
82
84
|
WebChatLoaded = "WebChatLoaded",
|
|
83
85
|
LCWChatButtonClicked = "LCWChatButtonClicked",
|
|
84
86
|
LCWChatButtonShow = "LCWChatButtonShow",
|
|
@@ -148,7 +150,9 @@ export declare enum TelemetryEvent {
|
|
|
148
150
|
ReconnectChatMinimize = "ReconnectChatMinimize",
|
|
149
151
|
MessageSent = "MessageSent",
|
|
150
152
|
MessageReceived = "MessageReceived",
|
|
151
|
-
CustomContextReceived = "CustomContextReceived"
|
|
153
|
+
CustomContextReceived = "CustomContextReceived",
|
|
154
|
+
NetworkDisconnected = "NetworkDisconnected",
|
|
155
|
+
NetworkReconnected = "NetworkReconnected"
|
|
152
156
|
}
|
|
153
157
|
export interface TelemetryInput {
|
|
154
158
|
scenarioType: ScenarioType;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import ChatConfig from "@microsoft/omnichannel-chat-sdk/lib/core/ChatConfig";
|
|
2
|
-
declare const
|
|
2
|
+
declare const getAuthClientFunction: (chatConfig: ChatConfig | undefined) => string | undefined;
|
|
3
|
+
declare const handleAuthentication: (chatSDK: any, chatConfig: ChatConfig | undefined, getAuthToken: ((authClientFunction?: string | undefined) => Promise<string | null>) | undefined) => Promise<boolean>;
|
|
3
4
|
declare const removeAuthTokenProvider: (chatSDK: any) => void;
|
|
4
|
-
export { handleAuthentication, removeAuthTokenProvider };
|
|
5
|
+
export { getAuthClientFunction, handleAuthentication, removeAuthTokenProvider };
|
package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IAttachmentProps } from "./IAttachmentProps";
|
|
2
1
|
import React from "react";
|
|
2
|
+
import { IAttachmentProps } from "./IAttachmentProps";
|
|
3
3
|
export interface IRenderingMiddlewareProps {
|
|
4
4
|
timestampDir?: "ltr" | "rtl" | "auto";
|
|
5
5
|
disableActivityMiddleware?: boolean;
|
|
@@ -28,4 +28,5 @@ export interface IRenderingMiddlewareProps {
|
|
|
28
28
|
attachmentDownloadIconStyles?: React.CSSProperties;
|
|
29
29
|
attachmentContentStyles?: React.CSSProperties;
|
|
30
30
|
attachmentSizeStyles?: React.CSSProperties;
|
|
31
|
+
receivedMessageAnchorStyles?: React.CSSProperties;
|
|
31
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const activityStatusMiddleware: () => (next: any) => (args: any) =>
|
|
1
|
+
export declare const activityStatusMiddleware: () => (next: any) => (args: any) => any;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { ILiveChatWidgetContext } from "./ILiveChatWidgetContext";
|
|
2
1
|
import { ILiveChatWidgetProps } from "../../components/livechatwidget/interfaces/ILiveChatWidgetProps";
|
|
3
|
-
export declare const getLiveChatWidgetContextInitialState: (props: ILiveChatWidgetProps) =>
|
|
2
|
+
export declare const getLiveChatWidgetContextInitialState: (props: ILiveChatWidgetProps) => any;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/omnichannel-chat-widget",
|
|
3
|
-
"version": "0.1.0-main.
|
|
3
|
+
"version": "0.1.0-main.3aede09",
|
|
4
4
|
"description": "Microsoft Omnichannel Chat Widget",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"types": "lib/types/index.d.ts",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@fluentui/react": "^8.49.1",
|
|
77
|
-
"@microsoft/omnichannel-chat-components": "0.1.0-main.
|
|
77
|
+
"@microsoft/omnichannel-chat-components": "0.1.0-main.5a87386",
|
|
78
78
|
"@microsoft/omnichannel-chat-sdk": "1.0.1-main.077d17c",
|
|
79
79
|
"abort-controller-es5": "^2.0.1",
|
|
80
80
|
"dompurify": "^2.3.4",
|