@microsoft/omnichannel-chat-widget 0.1.0-main.5854782 → 0.1.0-main.60c3e17
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 +13 -0
- package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +31 -18
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
- package/lib/cjs/components/footerstateful/FooterStateful.js +5 -13
- package/lib/cjs/components/headerstateful/HeaderStateful.js +10 -4
- 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 +49 -17
- package/lib/cjs/components/livechatwidget/common/startChat.js +12 -3
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +85 -48
- package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +6 -4
- package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +20 -4
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
- package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
- 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/LiveChatWidgetActionType.js +1 -1
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +11 -4
- package/lib/cjs/contexts/createReducer.js +2 -2
- 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 +13 -0
- package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +29 -13
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
- package/lib/esm/components/footerstateful/FooterStateful.js +5 -13
- package/lib/esm/components/headerstateful/HeaderStateful.js +10 -4
- 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 +49 -17
- package/lib/esm/components/livechatwidget/common/startChat.js +13 -4
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +85 -48
- package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +5 -4
- package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +15 -2
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
- 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/LiveChatWidgetActionType.js +1 -1
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +9 -4
- package/lib/esm/contexts/createReducer.js +2 -2
- 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/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -2
- package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
- package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
- 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/ILiveChatWidgetContext.d.ts +1 -1
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +1 -1
- package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
- package/package.json +3 -3
|
@@ -166,24 +166,28 @@ export const dummyDefaultProps = {
|
|
|
166
166
|
},
|
|
167
167
|
audioCallButtonStyleProps: {
|
|
168
168
|
borderRadius: "50%",
|
|
169
|
-
color: "#FFFFFF",
|
|
170
169
|
backgroundColor: "#008000",
|
|
171
170
|
lineHeight: "40px",
|
|
172
171
|
height: "40px",
|
|
173
172
|
width: "40px",
|
|
174
|
-
|
|
173
|
+
icon: {
|
|
174
|
+
fontSize: 18,
|
|
175
|
+
color: "#FFFFFF"
|
|
176
|
+
}
|
|
175
177
|
},
|
|
176
178
|
audioCallButtonHoverStyleProps: {
|
|
177
179
|
filter: "brightness(0.8)"
|
|
178
180
|
},
|
|
179
181
|
videoCallButtonStyleProps: {
|
|
180
182
|
borderRadius: "50%",
|
|
181
|
-
color: "#FFFFFF",
|
|
182
183
|
backgroundColor: "#008000",
|
|
183
184
|
lineHeight: "40px",
|
|
184
185
|
height: "40px",
|
|
185
186
|
width: "40px",
|
|
186
|
-
|
|
187
|
+
icon: {
|
|
188
|
+
fontSize: 18,
|
|
189
|
+
color: "#FFFFFF"
|
|
190
|
+
}
|
|
187
191
|
},
|
|
188
192
|
videoCallButtonHoverStyleProps: {
|
|
189
193
|
filter: "brightness(0.8)"
|
|
@@ -194,13 +198,15 @@ export const dummyDefaultProps = {
|
|
|
194
198
|
},
|
|
195
199
|
declineCallButtonStyleProps: {
|
|
196
200
|
borderRadius: "50%",
|
|
197
|
-
color: "#FFFFFF",
|
|
198
201
|
backgroundColor: "#DC0000",
|
|
199
202
|
lineHeight: "40px",
|
|
200
203
|
height: "40px",
|
|
201
204
|
width: "40px",
|
|
202
|
-
|
|
203
|
-
|
|
205
|
+
marginLeft: "5px",
|
|
206
|
+
icon: {
|
|
207
|
+
fontSize: 18,
|
|
208
|
+
color: "#FFFFFF"
|
|
209
|
+
}
|
|
204
210
|
},
|
|
205
211
|
incomingCallTitleStyleProps: {
|
|
206
212
|
margin: "0 5px",
|
|
@@ -318,7 +324,8 @@ export const dummyDefaultProps = {
|
|
|
318
324
|
hideChatTitle: false,
|
|
319
325
|
hideNotificationBubble: true,
|
|
320
326
|
unreadMessageString: "new messages",
|
|
321
|
-
largeUnreadMessageString: "99+"
|
|
327
|
+
largeUnreadMessageString: "99+",
|
|
328
|
+
ariaLabelUnreadMessageString: "you have new messages"
|
|
322
329
|
},
|
|
323
330
|
styleProps: {
|
|
324
331
|
generalStyleProps: {
|
|
@@ -770,6 +777,7 @@ export const dummyDefaultProps = {
|
|
|
770
777
|
},
|
|
771
778
|
audioNotificationButtonProps: {
|
|
772
779
|
id: "oc-lcw-footer-audionotification-button",
|
|
780
|
+
type: "icon",
|
|
773
781
|
ariaLabel: "Turn sound off",
|
|
774
782
|
toggleAriaLabel: "Turn sound on",
|
|
775
783
|
iconName: "Volume3",
|
|
@@ -795,8 +803,10 @@ export const dummyDefaultProps = {
|
|
|
795
803
|
padding: "0 10px 5px 10px"
|
|
796
804
|
},
|
|
797
805
|
downloadTranscriptButtonStyleProps: {
|
|
798
|
-
|
|
799
|
-
|
|
806
|
+
icon: {
|
|
807
|
+
color: "blue",
|
|
808
|
+
fontSize: 16
|
|
809
|
+
},
|
|
800
810
|
height: "25px",
|
|
801
811
|
lineHeight: "25px",
|
|
802
812
|
width: "25px"
|
|
@@ -806,8 +816,10 @@ export const dummyDefaultProps = {
|
|
|
806
816
|
backgroundColor: "#C8C8C8"
|
|
807
817
|
},
|
|
808
818
|
emailTranscriptButtonStyleProps: {
|
|
809
|
-
|
|
810
|
-
|
|
819
|
+
cicon: {
|
|
820
|
+
color: "blue",
|
|
821
|
+
fontSize: 16
|
|
822
|
+
},
|
|
811
823
|
height: "25px",
|
|
812
824
|
lineHeight: "25px",
|
|
813
825
|
width: "25px"
|
|
@@ -817,8 +829,10 @@ export const dummyDefaultProps = {
|
|
|
817
829
|
backgroundColor: "#C8C8C8"
|
|
818
830
|
},
|
|
819
831
|
audioNotificationButtonStyleProps: {
|
|
820
|
-
|
|
821
|
-
|
|
832
|
+
icon: {
|
|
833
|
+
color: "blue",
|
|
834
|
+
fontSize: 16
|
|
835
|
+
},
|
|
822
836
|
height: "25px",
|
|
823
837
|
lineHeight: "25px",
|
|
824
838
|
width: "25px"
|
|
@@ -869,7 +883,7 @@ export const dummyDefaultProps = {
|
|
|
869
883
|
className: undefined
|
|
870
884
|
},
|
|
871
885
|
closeButtonProps: {
|
|
872
|
-
id: "oc-lcw-header-
|
|
886
|
+
id: "oc-lcw-header-close-button",
|
|
873
887
|
type: "icon",
|
|
874
888
|
iconName: "ChromeClose",
|
|
875
889
|
ariaLabel: "Close",
|
|
@@ -1165,7 +1179,8 @@ export const dummyDefaultProps = {
|
|
|
1165
1179
|
backgroundColor: "#FFFFFF",
|
|
1166
1180
|
borderColor: "#F1F1F1"
|
|
1167
1181
|
}
|
|
1168
|
-
}
|
|
1182
|
+
},
|
|
1183
|
+
isCustomerVoiceSurveyCompact: undefined
|
|
1169
1184
|
},
|
|
1170
1185
|
proactiveChatPaneProps: {
|
|
1171
1186
|
componentOverrides: {
|
|
@@ -1185,7 +1200,17 @@ export const dummyDefaultProps = {
|
|
|
1185
1200
|
hideSubtitle: false,
|
|
1186
1201
|
subtitleText: "Live chat support!",
|
|
1187
1202
|
hideCloseButton: false,
|
|
1188
|
-
|
|
1203
|
+
closeButtonProps: {
|
|
1204
|
+
id: "oc-lcw-proactivechat-closebutton",
|
|
1205
|
+
type: "icon",
|
|
1206
|
+
iconName: "ChromeClose",
|
|
1207
|
+
ariaLabel: "Close",
|
|
1208
|
+
imageIconProps: undefined,
|
|
1209
|
+
text: "Close",
|
|
1210
|
+
onClick: undefined,
|
|
1211
|
+
className: undefined,
|
|
1212
|
+
hideButtonTitle: true
|
|
1213
|
+
},
|
|
1189
1214
|
isBodyContainerHorizantal: false,
|
|
1190
1215
|
hideBodyTitle: false,
|
|
1191
1216
|
bodyTitleText: "Hi! Have any questions? I am here to help.",
|
|
@@ -1654,6 +1679,9 @@ export const dummyDefaultProps = {
|
|
|
1654
1679
|
},
|
|
1655
1680
|
attachmentSizeStyles: {
|
|
1656
1681
|
display: "none"
|
|
1682
|
+
},
|
|
1683
|
+
receivedMessageAnchorStyles: {
|
|
1684
|
+
color: "white"
|
|
1657
1685
|
}
|
|
1658
1686
|
},
|
|
1659
1687
|
localizedTexts: {
|
|
@@ -1681,6 +1709,10 @@ export const dummyDefaultProps = {
|
|
|
1681
1709
|
botMagicCode: {
|
|
1682
1710
|
disabled: false,
|
|
1683
1711
|
fwdUrl: ""
|
|
1712
|
+
},
|
|
1713
|
+
adaptiveCardStyles: {
|
|
1714
|
+
background: "white",
|
|
1715
|
+
color: "black"
|
|
1684
1716
|
}
|
|
1685
1717
|
},
|
|
1686
1718
|
telemetryConfig: undefined,
|
|
@@ -14,7 +14,7 @@ import { setPostChatContextAndLoadSurvey } from "./setPostChatContextAndLoadSurv
|
|
|
14
14
|
import { updateSessionDataForTelemetry } from "./updateSessionDataForTelemetry";
|
|
15
15
|
import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
16
16
|
import { ActivityStreamHandler } from "./ActivityStreamHandler";
|
|
17
|
-
import { handleAuthentication } from "./authHelper"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
+
import { getAuthClientFunction, handleAuthentication } from "./authHelper"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
18
|
|
|
19
19
|
let optionalParams = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
20
|
|
|
@@ -93,6 +93,17 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
93
93
|
try {
|
|
94
94
|
var _newAdapter$activity$, _TelemetryTimers$Widg;
|
|
95
95
|
|
|
96
|
+
const authClientFunction = getAuthClientFunction(chatConfig);
|
|
97
|
+
|
|
98
|
+
if (getAuthToken && authClientFunction) {
|
|
99
|
+
// set auth token to chat sdk before start chat
|
|
100
|
+
const authSuccess = await handleAuthentication(chatSDK, chatConfig, getAuthToken);
|
|
101
|
+
|
|
102
|
+
if (!authSuccess) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
96
107
|
let isStartChatSuccessful = false; //Check if chat retrieved from cache
|
|
97
108
|
|
|
98
109
|
if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
|
|
@@ -115,9 +126,7 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
115
126
|
}); // Set custom context params
|
|
116
127
|
|
|
117
128
|
setCustomContextParams(chatSDK);
|
|
118
|
-
optionalParams = Object.assign({}, params, optionalParams);
|
|
119
|
-
|
|
120
|
-
await handleAuthentication(chatSDK, chatConfig, getAuthToken);
|
|
129
|
+
optionalParams = Object.assign({}, params, optionalParams);
|
|
121
130
|
await chatSDK.startChat(optionalParams);
|
|
122
131
|
isStartChatSuccessful = true;
|
|
123
132
|
} catch (error) {
|
|
@@ -44,9 +44,10 @@ 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
|
-
var _props$webChatContain, _props$styleProps, _props$controlProps, _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
|
+
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
|
|
|
51
52
|
const [state, dispatch] = useChatContextStore(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
53
|
|
|
@@ -66,8 +67,10 @@ export const LiveChatWidgetStateful = props => {
|
|
|
66
67
|
const generalStyles = {
|
|
67
68
|
root: Object.assign({}, getGeneralStylesForButton(state), (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyles)
|
|
68
69
|
};
|
|
70
|
+
const broadcastServiceChannelName = getBroadcastChannelName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
|
|
71
|
+
BroadcastServiceInitialize(broadcastServiceChannelName);
|
|
69
72
|
TelemetryTimers.LcwLoadToChatButtonTimer = createTimer();
|
|
70
|
-
const widgetElementId = ((_props$
|
|
73
|
+
const widgetElementId = ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.id) || "oc-lcw";
|
|
71
74
|
const currentMessageCountRef = useRef(0);
|
|
72
75
|
let widgetStateEventName = "";
|
|
73
76
|
|
|
@@ -93,32 +96,39 @@ export const LiveChatWidgetStateful = props => {
|
|
|
93
96
|
};
|
|
94
97
|
|
|
95
98
|
useEffect(() => {
|
|
96
|
-
var
|
|
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
|
+
}
|
|
97
110
|
|
|
98
|
-
const broadcastServiceChannelName = getBroadcastChannelName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? "");
|
|
99
|
-
BroadcastServiceInitialize(broadcastServiceChannelName);
|
|
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,35 +139,48 @@ 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);
|
|
142
152
|
return;
|
|
143
|
-
} //
|
|
153
|
+
} // Checks if reconnectId is present for auth chat. If it is present, then it shows reconnect chat pane,
|
|
154
|
+
// where customer can choose to continue previous conversation or start new conversation
|
|
144
155
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
145
156
|
|
|
146
157
|
|
|
147
158
|
const isAuthenticationSettingsEnabled = (_props$chatConfig2 = props.chatConfig) !== null && _props$chatConfig2 !== void 0 && (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) !== null && _props$chatConfig2$Li !== void 0 && _props$chatConfig2$Li.msdyn_javascriptclientfunction ? true : false;
|
|
148
159
|
|
|
149
|
-
if (isAuthenticationSettingsEnabled ===
|
|
150
|
-
|
|
160
|
+
if (!state.appStates.skipChatButtonRendering && state.appStates.conversationState === ConversationState.Active && isAuthenticationSettingsEnabled === true && (_props$reconnectChatP4 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP4 !== void 0 && _props$reconnectChatP4.isReconnectEnabled) {
|
|
161
|
+
getReconnectIdForAuthenticatedChat(props, chatSDK).then(authReconnectId => {
|
|
162
|
+
if (authReconnectId && !state.appStates.reconnectId) {
|
|
163
|
+
dispatch({
|
|
164
|
+
type: LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
165
|
+
payload: authReconnectId
|
|
166
|
+
});
|
|
167
|
+
dispatch({
|
|
168
|
+
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
169
|
+
payload: ConversationState.ReconnectChat
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
151
175
|
|
|
152
|
-
|
|
153
|
-
|
|
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;
|
|
154
178
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
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;
|
|
161
184
|
} // All other case should show start chat button, skipChatButtonRendering will take care of it own
|
|
162
185
|
|
|
163
186
|
|
|
@@ -169,16 +192,16 @@ export const LiveChatWidgetStateful = props => {
|
|
|
169
192
|
|
|
170
193
|
useEffect(() => {
|
|
171
194
|
if (state.appStates.skipChatButtonRendering) {
|
|
172
|
-
var _props$
|
|
195
|
+
var _props$reconnectChatP5;
|
|
173
196
|
|
|
174
197
|
BroadcastService.postMessage({
|
|
175
198
|
eventName: BroadcastEvent.ChatInitiated
|
|
176
199
|
});
|
|
177
200
|
|
|
178
|
-
if ((_props$
|
|
179
|
-
var _props$
|
|
201
|
+
if ((_props$reconnectChatP5 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP5 !== void 0 && _props$reconnectChatP5.reconnectId && !state.appStates.reconnectId) {
|
|
202
|
+
var _props$reconnectChatP6, _props$reconnectChatP7, _props$reconnectChatP8;
|
|
180
203
|
|
|
181
|
-
handleUnauthenticatedReconnectChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$
|
|
204
|
+
handleUnauthenticatedReconnectChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$reconnectChatP6 = props.reconnectChatPaneProps) === null || _props$reconnectChatP6 === void 0 ? void 0 : _props$reconnectChatP6.isReconnectEnabled, (_props$reconnectChatP7 = props.reconnectChatPaneProps) === null || _props$reconnectChatP7 === void 0 ? void 0 : _props$reconnectChatP7.reconnectId, initStartChat, (_props$reconnectChatP8 = props.reconnectChatPaneProps) === null || _props$reconnectChatP8 === void 0 ? void 0 : _props$reconnectChatP8.redirectInSameWindow);
|
|
182
205
|
} else {
|
|
183
206
|
getReconnectIdForAuthenticatedChat(props, chatSDK).then(authReconnectId => {
|
|
184
207
|
if (authReconnectId && !state.appStates.reconnectId) {
|
|
@@ -191,11 +214,23 @@ export const LiveChatWidgetStateful = props => {
|
|
|
191
214
|
payload: ConversationState.ReconnectChat
|
|
192
215
|
});
|
|
193
216
|
} else {
|
|
217
|
+
var _state$domainStates3;
|
|
218
|
+
|
|
194
219
|
const chatStartedSkippingChatButtonRendering = {
|
|
195
220
|
eventName: BroadcastEvent.StartChatSkippingChatButtonRendering
|
|
196
221
|
};
|
|
197
222
|
BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
|
|
198
|
-
|
|
223
|
+
|
|
224
|
+
if (!isUndefinedOrEmpty((_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : _state$domainStates3.liveChatContext) && state.appStates.conversationState === ConversationState.Active) {
|
|
225
|
+
var _state$domainStates4;
|
|
226
|
+
|
|
227
|
+
const optionalParams = {
|
|
228
|
+
liveChatContext: (_state$domainStates4 = state.domainStates) === null || _state$domainStates4 === void 0 ? void 0 : _state$domainStates4.liveChatContext
|
|
229
|
+
};
|
|
230
|
+
initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams);
|
|
231
|
+
} else {
|
|
232
|
+
setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter);
|
|
233
|
+
}
|
|
199
234
|
}
|
|
200
235
|
});
|
|
201
236
|
}
|
|
@@ -203,7 +238,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
203
238
|
}, [state.appStates.skipChatButtonRendering]); // useEffect for when skip chat button rendering
|
|
204
239
|
|
|
205
240
|
useEffect(() => {
|
|
206
|
-
var _chatSDK$
|
|
241
|
+
var _chatSDK$omnichannelC8, _chatSDK$omnichannelC9, _props$controlProps12;
|
|
207
242
|
|
|
208
243
|
// Add the custom context on receiving the SetCustomContext event
|
|
209
244
|
BroadcastService.getMessageByEventName(BroadcastEvent.SetCustomContext).subscribe(msg => {
|
|
@@ -235,13 +270,13 @@ export const LiveChatWidgetStateful = props => {
|
|
|
235
270
|
}); // Start chat from SDK Event
|
|
236
271
|
|
|
237
272
|
BroadcastService.getMessageByEventName(BroadcastEvent.StartChat).subscribe(() => {
|
|
238
|
-
var _chatSDK$
|
|
273
|
+
var _chatSDK$omnichannelC4, _chatSDK$omnichannelC5, _props$controlProps10;
|
|
239
274
|
|
|
240
275
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
241
276
|
Event: TelemetryEvent.StartChatEventRecevied,
|
|
242
277
|
Description: "Start chat event received."
|
|
243
278
|
});
|
|
244
|
-
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
279
|
+
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
|
|
245
280
|
|
|
246
281
|
if (persistedState === undefined) {
|
|
247
282
|
BroadcastService.postMessage({
|
|
@@ -281,10 +316,10 @@ export const LiveChatWidgetStateful = props => {
|
|
|
281
316
|
|
|
282
317
|
BroadcastService.getMessageByEventName(BroadcastEvent.InitiateEndChat).subscribe(async () => {
|
|
283
318
|
if (state.appStates.skipChatButtonRendering !== true) {
|
|
284
|
-
var _chatSDK$
|
|
319
|
+
var _chatSDK$omnichannelC6, _chatSDK$omnichannelC7, _props$controlProps11;
|
|
285
320
|
|
|
286
321
|
// This is to ensure to get latest state from cache in multitab
|
|
287
|
-
const persistedState = getStateFromCache(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
322
|
+
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) ?? "");
|
|
288
323
|
|
|
289
324
|
if (persistedState && persistedState.appStates.conversationState === ConversationState.Active) {
|
|
290
325
|
prepareEndChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
@@ -304,7 +339,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
304
339
|
initiateEndChatOnBrowserUnload();
|
|
305
340
|
}); // Listen to end chat event from other tabs
|
|
306
341
|
|
|
307
|
-
const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$
|
|
342
|
+
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) ?? "");
|
|
308
343
|
BroadcastService.getMessageByEventName(endChatEventName).subscribe(async () => {
|
|
309
344
|
endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
|
|
310
345
|
return;
|
|
@@ -385,23 +420,25 @@ export const LiveChatWidgetStateful = props => {
|
|
|
385
420
|
}, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]); // Publish chat widget state
|
|
386
421
|
|
|
387
422
|
useEffect(() => {
|
|
388
|
-
var _props$
|
|
423
|
+
var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps13;
|
|
389
424
|
|
|
390
425
|
// Only activate these windows events when conversation state is active and chat widget is in popout mode
|
|
391
426
|
// Ghost chat scenarios
|
|
392
|
-
if (state.appStates.conversationState === ConversationState.Active && ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.skipChatButtonRendering) === true) {
|
|
393
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
394
|
-
window.onbeforeunload = function () {
|
|
395
|
-
const prompt = Constants.BrowserUnloadConfirmationMessage;
|
|
396
|
-
return prompt;
|
|
397
|
-
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
window.onunload = function () {
|
|
401
|
-
initiateEndChatOnBrowserUnload();
|
|
402
|
-
};
|
|
403
|
-
}
|
|
404
427
|
|
|
428
|
+
/* COMMENTING THIS CODE FOR PARITY WITH OLD LCW
|
|
429
|
+
if (state.appStates.conversationState === ConversationState.Active &&
|
|
430
|
+
props.controlProps?.skipChatButtonRendering === true) {
|
|
431
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
432
|
+
|
|
433
|
+
window.onbeforeunload = function () {
|
|
434
|
+
const prompt = Constants.BrowserUnloadConfirmationMessage;
|
|
435
|
+
return prompt;
|
|
436
|
+
};
|
|
437
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
438
|
+
window.onunload = function () {
|
|
439
|
+
initiateEndChatOnBrowserUnload();
|
|
440
|
+
};
|
|
441
|
+
}*/
|
|
405
442
|
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) ?? "");
|
|
406
443
|
const chatWidgetStateChangeEvent = {
|
|
407
444
|
eventName: widgetStateEventName,
|
|
@@ -5,18 +5,19 @@ import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
|
|
|
5
5
|
import { defaultGeneralPostChatSurveyPaneStyleProps } from "./common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps";
|
|
6
6
|
import { findAllFocusableElement } from "../../common/utils";
|
|
7
7
|
import useChatContextStore from "../../hooks/useChatContextStore";
|
|
8
|
+
import { PostChatSurveyMode } from "./enums/PostChatSurveyMode";
|
|
8
9
|
export const PostChatSurveyPaneStateful = props => {
|
|
9
|
-
var _props$styleProps, _props$controlProps;
|
|
10
|
-
|
|
11
|
-
const [state] = useChatContextStore(); // ToDo : TASK 2628392 Fix PostChat iframe reloading on Minimize
|
|
10
|
+
var _state$domainStates$l, _state$domainStates$l2, _props$styleProps, _props$controlProps;
|
|
12
11
|
|
|
12
|
+
const [state] = useChatContextStore();
|
|
13
|
+
const postChatSurveyMode = (_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.msdyn_postconversationsurveymode;
|
|
13
14
|
const generalStyleProps = Object.assign({}, defaultGeneralPostChatSurveyPaneStyleProps, (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyleProps, {
|
|
14
15
|
display: state.appStates.isMinimized ? "none" : ""
|
|
15
16
|
});
|
|
16
17
|
let surveyInviteLink = "";
|
|
17
18
|
|
|
18
19
|
if (state.domainStates.postChatContext.surveyInviteLink) {
|
|
19
|
-
surveyInviteLink = state.domainStates.postChatContext.surveyInviteLink + "&lang=" + (state.domainStates.postChatContext.formsProLocale ?? "en");
|
|
20
|
+
surveyInviteLink = state.domainStates.postChatContext.surveyInviteLink + "&embed=" + (postChatSurveyMode === PostChatSurveyMode.Embed).toString() + "&compact=" + (props.isCustomerVoiceSurveyCompact ?? true).toString() + "&lang=" + (state.domainStates.postChatContext.formsProLocale ?? "en") + "&showmultilingual=false";
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
const styleProps = { ...props.styleProps,
|
package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2,6 +2,7 @@ import { Stack } from "@fluentui/react";
|
|
|
2
2
|
import { LogLevel, TelemetryEvent } from "../../common/telemetry/TelemetryConstants";
|
|
3
3
|
import React, { useEffect } from "react";
|
|
4
4
|
import { Components } from "botframework-webchat";
|
|
5
|
+
import { BroadcastChannel } from "broadcast-channel";
|
|
5
6
|
import { LiveChatWidgetActionType } from "../../contexts/common/LiveChatWidgetActionType";
|
|
6
7
|
import { TelemetryHelper } from "../../common/telemetry/TelemetryHelper";
|
|
7
8
|
import { defaultMiddlewareLocalizedTexts } from "./common/defaultProps/defaultMiddlewareLocalizedTexts";
|
|
@@ -12,6 +13,8 @@ import { WebChatActionType } from "./webchatcontroller/enums/WebChatActionType";
|
|
|
12
13
|
import { WebChatStoreLoader } from "./webchatcontroller/WebChatStoreLoader";
|
|
13
14
|
import { Constants } from "../../common/Constants";
|
|
14
15
|
import { BotMagicCodeStore } from "./webchatcontroller/BotMagicCodeStore";
|
|
16
|
+
import { defaultAdaptiveCardStyles } from "./common/defaultStyles/defaultAdaptiveCardStyles";
|
|
17
|
+
import { defaultReceivedMessageAnchorStyles } from "./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles";
|
|
15
18
|
const broadcastChannelMessageEvent = "message";
|
|
16
19
|
|
|
17
20
|
const postActivity = activity => {
|
|
@@ -41,6 +44,8 @@ const createMagicCodeSuccessResponse = signin => {
|
|
|
41
44
|
};
|
|
42
45
|
|
|
43
46
|
export const WebChatContainerStateful = props => {
|
|
47
|
+
var _props$adaptiveCardSt, _props$adaptiveCardSt2, _props$renderingMiddl, _props$renderingMiddl2, _props$renderingMiddl3, _props$renderingMiddl4;
|
|
48
|
+
|
|
44
49
|
const {
|
|
45
50
|
BasicWebChat
|
|
46
51
|
} = Components;
|
|
@@ -109,10 +114,18 @@ export const WebChatContainerStateful = props => {
|
|
|
109
114
|
magicCodeBroadcastChannel.addEventListener(broadcastChannelMessageEvent, eventListener);
|
|
110
115
|
}, []);
|
|
111
116
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, `
|
|
117
|
+
|
|
118
|
+
.webchat__bubble__content>div#ms_lcw_webchat_adaptive_card {
|
|
119
|
+
background: ${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt = props.adaptiveCardStyles) === null || _props$adaptiveCardSt === void 0 ? void 0 : _props$adaptiveCardSt.background) ?? defaultAdaptiveCardStyles.background};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
div[class="ac-textBlock"]>p{color:${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt2 = props.adaptiveCardStyles) === null || _props$adaptiveCardSt2 === void 0 ? void 0 : _props$adaptiveCardSt2.color) ?? defaultAdaptiveCardStyles.color};}
|
|
123
|
+
|
|
112
124
|
.ms_lcw_webchat_received_message img.webchat__markdown__external-link-icon {
|
|
113
125
|
background-image : url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjI1MDEgNC41MDAxN0gxMC43NDk1QzExLjE2MzcgNC41MDAxNyAxMS40OTk1IDQuODM1OTYgMTEuNDk5NSA1LjI1MDE3QzExLjQ5OTUgNS42Mjk4NiAxMS4yMTczIDUuOTQzNjYgMTAuODUxMyA1Ljk5MzMyTDEwLjc0OTUgNi4wMDAxN0g3LjI0OTc0QzYuMDcwNzkgNS45OTk2MSA1LjEwMzQ5IDYuOTA2NTYgNS4wMDc4NiA4LjA2MTEyTDUuMDAwMjggOC4yMjAwM0w1LjAwMzEyIDE2Ljc1MDdDNS4wMDM0MyAxNy45NDE1IDUuOTI4ODUgMTguOTE2MSA3LjA5OTY2IDE4Ljk5NDlMNy4yNTM3MSAxOS4wMDAxTDE1Ljc1MTggMTguOTg4NEMxNi45NDE1IDE4Ljk4NjggMTcuOTE0NSAxOC4wNjIgMTcuOTkzNSAxNi44OTIzTDE3Ljk5ODcgMTYuNzM4NFYxMy4yMzIxQzE3Ljk5ODcgMTIuODE3OSAxOC4zMzQ1IDEyLjQ4MjEgMTguNzQ4NyAxMi40ODIxQzE5LjEyODQgMTIuNDgyMSAxOS40NDIyIDEyLjc2NDMgMTkuNDkxOCAxMy4xMzAzTDE5LjQ5ODcgMTMuMjMyMVYxNi43Mzg0QzE5LjQ5ODcgMTguNzQwNyAxNy45MjkzIDIwLjM3NjkgMTUuOTUyOCAyMC40ODI5TDE1Ljc1MzggMjAuNDg4NEw3LjI1ODI3IDIwLjUwMDFMNy4wNTQ5NSAyMC40OTQ5QzUuMTQyMzkgMjAuMzk1NCAzLjYwODk1IDE4Ljg2MjcgMy41MDgzNyAxNi45NTAyTDMuNTAzMTIgMTYuNzUxMUwzLjUwMDg5IDguMjUyN0wzLjUwNTI5IDguMDUwMkMzLjYwNTM5IDYuMTM3NDkgNS4xMzg2NyA0LjYwNDQ5IDcuMDUwOTYgNC41MDUyN0w3LjI1MDEgNC41MDAxN0gxMC43NDk1SDcuMjUwMVpNMTMuNzQ4MSAzLjAwMTQ2TDIwLjMwMTggMy4wMDE5N0wyMC40MDE0IDMuMDE1NzVMMjAuNTAyMiAzLjA0MzkzTDIwLjU1OSAzLjA2ODAzQzIwLjYxMjIgMy4wOTEyMiAyMC42NjM0IDMuMTIxNjMgMjAuNzExMSAzLjE1ODg1TDIwLjc4MDQgMy4yMjE1NkwyMC44NjQxIDMuMzIwMTRMMjAuOTE4MyAzLjQxMDI1TDIwLjk1NyAzLjUwMDU3TDIwLjk3NjIgMy41NjQ3NkwyMC45ODk4IDMuNjI4NjJMMjAuOTk5MiAzLjcyMjgyTDIwLjk5OTcgMTAuMjU1NEMyMC45OTk3IDEwLjY2OTYgMjAuNjYzOSAxMS4wMDU0IDIwLjI0OTcgMTEuMDA1NEMxOS44NyAxMS4wMDU0IDE5LjU1NjIgMTAuNzIzMiAxOS41MDY1IDEwLjM1NzFMMTkuNDk5NyAxMC4yNTU0TDE5LjQ5ODkgNS41NjE0N0wxMi4yNzk3IDEyLjc4NDdDMTIuMDEzNCAxMy4wNTEgMTEuNTk2OCAxMy4wNzUzIDExLjMwMzEgMTIuODU3NUwxMS4yMTkgMTIuNzg0OUMxMC45NTI3IDEyLjUxODcgMTAuOTI4NCAxMi4xMDIxIDExLjE0NjIgMTEuODA4NEwxMS4yMTg4IDExLjcyNDNMMTguNDM2OSA0LjUwMTQ2SDEzLjc0ODFDMTMuMzY4NCA0LjUwMTQ2IDEzLjA1NDYgNC4yMTkzMSAxMy4wMDUgMy44NTMyNEwxMi45OTgxIDMuNzUxNDZDMTIuOTk4MSAzLjM3MTc3IDEzLjI4MDMgMy4wNTc5NyAxMy42NDY0IDMuMDA4MzFMMTMuNzQ4MSAzLjAwMTQ2WiIgZmlsbD0iI0ZGRkZGRiIgLz48L3N2Zz4) !important;
|
|
114
126
|
height: '.75em';
|
|
115
|
-
marginLeft: '.25em';
|
|
127
|
+
marginLeft: '.25em';
|
|
128
|
+
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"};
|
|
116
129
|
}
|
|
117
130
|
pre {
|
|
118
131
|
white-space: pre-wrap;
|
|
@@ -125,7 +138,7 @@ export const WebChatContainerStateful = props => {
|
|
|
125
138
|
.ms_lcw_webchat_received_message a:visited,
|
|
126
139
|
.ms_lcw_webchat_received_message a:hover,
|
|
127
140
|
.ms_lcw_webchat_received_message a:active {
|
|
128
|
-
color:
|
|
141
|
+
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)};
|
|
129
142
|
} `), /*#__PURE__*/React.createElement(Stack, {
|
|
130
143
|
styles: containerStyles
|
|
131
144
|
}, /*#__PURE__*/React.createElement(BasicWebChat, null)));
|
|
@@ -2,11 +2,13 @@ import MockAdapter from "../mockadapter";
|
|
|
2
2
|
import { defaultWebChatStatefulContainerStyles } from "../defaultStyles/defaultWebChatStatefulContainerStyles";
|
|
3
3
|
import { defaultWebChatStatefulProps } from "./defaultWebChatStatefulProps";
|
|
4
4
|
import { defaultWebChatStatefulStyles } from "../defaultStyles/defaultWebChatContainerStatefulStyles";
|
|
5
|
+
import { defaultAdaptiveCardStyles } from "../defaultStyles/defaultAdaptiveCardStyles";
|
|
5
6
|
export const defaultWebChatContainerStatefulProps = {
|
|
6
7
|
webChatStyles: defaultWebChatStatefulStyles,
|
|
7
8
|
webChatProps: defaultWebChatStatefulProps,
|
|
8
9
|
containerStyles: defaultWebChatStatefulContainerStyles,
|
|
9
10
|
disableNewLineMarkdownSupport: false,
|
|
10
11
|
disableMarkdownMessageFormatting: false,
|
|
11
|
-
directLine: new MockAdapter()
|
|
12
|
+
directLine: new MockAdapter(),
|
|
13
|
+
adaptiveCardStyles: defaultAdaptiveCardStyles
|
|
12
14
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -7,7 +7,7 @@ export let LiveChatWidgetActionType;
|
|
|
7
7
|
LiveChatWidgetActionType[LiveChatWidgetActionType["SET_GLOBAL_DIR"] = 3] = "SET_GLOBAL_DIR";
|
|
8
8
|
LiveChatWidgetActionType[LiveChatWidgetActionType["SET_MINIMIZED"] = 4] = "SET_MINIMIZED";
|
|
9
9
|
LiveChatWidgetActionType[LiveChatWidgetActionType["SET_CONVERSATION_STATE"] = 5] = "SET_CONVERSATION_STATE";
|
|
10
|
-
LiveChatWidgetActionType[LiveChatWidgetActionType["
|
|
10
|
+
LiveChatWidgetActionType[LiveChatWidgetActionType["SET_PREVIOUS_FOCUSED_ELEMENT_ID"] = 6] = "SET_PREVIOUS_FOCUSED_ELEMENT_ID";
|
|
11
11
|
LiveChatWidgetActionType[LiveChatWidgetActionType["SET_OUTSIDE_OPERATING_HOURS"] = 7] = "SET_OUTSIDE_OPERATING_HOURS";
|
|
12
12
|
LiveChatWidgetActionType[LiveChatWidgetActionType["SET_PRE_CHAT_SURVEY_RESPONSE"] = 8] = "SET_PRE_CHAT_SURVEY_RESPONSE";
|
|
13
13
|
LiveChatWidgetActionType[LiveChatWidgetActionType["SET_CUSTOM_CONTEXT"] = 9] = "SET_CUSTOM_CONTEXT";
|