@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.
Files changed (70) hide show
  1. package/lib/cjs/common/storage/default/defaultCacheManager.js +34 -0
  2. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
  3. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
  4. package/lib/cjs/common/telemetry/TelemetryConstants.js +13 -0
  5. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +31 -18
  6. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
  7. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
  8. package/lib/cjs/components/footerstateful/FooterStateful.js +5 -13
  9. package/lib/cjs/components/headerstateful/HeaderStateful.js +10 -4
  10. package/lib/cjs/components/livechatwidget/common/authHelper.js +16 -3
  11. package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
  12. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
  13. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +49 -17
  14. package/lib/cjs/components/livechatwidget/common/startChat.js +12 -3
  15. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +85 -48
  16. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +6 -4
  17. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  18. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +20 -4
  19. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
  20. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  21. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  22. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  23. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  24. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +1 -1
  25. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +11 -4
  26. package/lib/cjs/contexts/createReducer.js +2 -2
  27. package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
  28. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  29. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
  30. package/lib/esm/common/telemetry/TelemetryConstants.js +13 -0
  31. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +29 -13
  32. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
  33. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
  34. package/lib/esm/components/footerstateful/FooterStateful.js +5 -13
  35. package/lib/esm/components/headerstateful/HeaderStateful.js +10 -4
  36. package/lib/esm/components/livechatwidget/common/authHelper.js +14 -3
  37. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
  38. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
  39. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +49 -17
  40. package/lib/esm/components/livechatwidget/common/startChat.js +13 -4
  41. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +85 -48
  42. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +5 -4
  43. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  44. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +15 -2
  45. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  46. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  47. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  48. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  49. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  50. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +1 -1
  51. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +9 -4
  52. package/lib/esm/contexts/createReducer.js +2 -2
  53. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  54. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  55. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  56. package/lib/types/common/telemetry/TelemetryConstants.d.ts +5 -1
  57. package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
  58. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -2
  59. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  60. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  61. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  62. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  63. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
  64. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  65. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  66. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  67. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -1
  68. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +1 -1
  69. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  70. 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
- fontSize: 18
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
- fontSize: 18
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
- fontSize: 18,
203
- marginLeft: "5px"
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
- color: "blue",
799
- fontSize: 16,
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
- color: "blue",
810
- fontSize: 16,
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
- color: "blue",
821
- fontSize: 16,
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-minimize-button",
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
- closeButtonAriaLabel: "Close Button",
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); // set auth token to chat sdk before start chat
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 { Constants } from "../../../common/Constants";
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$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.id) || "oc-lcw";
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 _chatSDK$omnichannelC, _props$controlProps2, _props$controlProps3, _props$controlProps4, _props$controlProps5, _props$controlProps7, _props$chatConfig, _props$chatConfig$Cha, _props$controlProps8, _props$reconnectChatP, _props$chatConfig2, _props$chatConfig2$Li;
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$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.skipChatButtonRendering) || false
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$controlProps4 = props.controlProps) !== null && _props$controlProps4 !== void 0 && _props$controlProps4.widgetInstanceId && !isNullOrEmptyString((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.widgetInstanceId)) {
117
- var _props$controlProps6;
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$controlProps6 = props.controlProps) === null || _props$controlProps6 === void 0 ? void 0 : _props$controlProps6.widgetInstanceId
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$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.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);
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$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
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
- } // Check if auth settings enabled, do not connect to existing chat from cache during refresh/re-load
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 === false) {
150
- var _state$domainStates;
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
- if (!isUndefinedOrEmpty((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext) && state.appStates.conversationState === ConversationState.Active) {
153
- var _state$domainStates2;
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
- const optionalParams = {
156
- liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
157
- };
158
- initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams);
159
- return;
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$reconnectChatP4;
195
+ var _props$reconnectChatP5;
173
196
 
174
197
  BroadcastService.postMessage({
175
198
  eventName: BroadcastEvent.ChatInitiated
176
199
  });
177
200
 
178
- if ((_props$reconnectChatP4 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP4 !== void 0 && _props$reconnectChatP4.reconnectId && !state.appStates.reconnectId) {
179
- var _props$reconnectChatP5, _props$reconnectChatP6, _props$reconnectChatP7;
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$reconnectChatP5 = props.reconnectChatPaneProps) === null || _props$reconnectChatP5 === void 0 ? void 0 : _props$reconnectChatP5.isReconnectEnabled, (_props$reconnectChatP6 = props.reconnectChatPaneProps) === null || _props$reconnectChatP6 === void 0 ? void 0 : _props$reconnectChatP6.reconnectId, initStartChat, (_props$reconnectChatP7 = props.reconnectChatPaneProps) === null || _props$reconnectChatP7 === void 0 ? void 0 : _props$reconnectChatP7.redirectInSameWindow);
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
- setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter);
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$omnichannelC6, _chatSDK$omnichannelC7, _props$controlProps11;
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$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps9;
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$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$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.widgetInstanceId) ?? ""); // Chat not found in cache
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$omnichannelC4, _chatSDK$omnichannelC5, _props$controlProps10;
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$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) ?? "");
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$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$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
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$controlProps12, _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps13;
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,
@@ -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: white;
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,4 @@
1
+ export const defaultAdaptiveCardStyles = {
2
+ background: "white",
3
+ color: "black"
4
+ };
@@ -61,6 +61,7 @@ export const activityStatusMiddleware = () => next => args => {
61
61
  args: args,
62
62
  role: current_role,
63
63
  name: current_name
64
- }));
64
+ })) // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
+ ;
65
66
  }
66
67
  };
@@ -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["SET_PREVIOUS_FOCUSED_ELEMENT"] = 6] = "SET_PREVIOUS_FOCUSED_ELEMENT";
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";