Last active
January 23, 2024 19:50
-
-
Save rangerz/4dc892e497003b9ea52c5ca361dd80ab to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */ | |
import { ChatReconnectIconBase64, CloseChatButtonIconBase64, ModernChatIconBase64, ProactiveChatBannerBase64 } from "@microsoft/omnichannel-chat-components"; | |
import { ILiveChatWidgetProps } from "../../interfaces/ILiveChatWidgetProps"; | |
import { ITelemetryConfig } from "../../../../common/telemetry/interfaces/ITelemetryConfig"; | |
import MockAdapter from "../../../webchatcontainerstateful/common/mockadapter"; | |
import { NewMessageNotificationSoundBase64 } from "../../../../assets/Audios"; | |
import { OmnichannelChatSDK } from "@microsoft/omnichannel-chat-sdk"; | |
import { WebChatStoreLoader } from "../../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader"; | |
import { activityStatusMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware"; | |
import { createActivityMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware"; | |
import createAttachmentMiddleware from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware"; | |
import { createAvatarMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware"; | |
import { createMarkdown } from "../createMarkdown"; | |
import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger"; | |
import { groupActivitiesMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware"; | |
import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware"; | |
// eslint-disable-next-line @typescript-eslint/no-unused-vars | |
export const dummyDefaultProps: ILiveChatWidgetProps = { | |
audioNotificationProps: { | |
audioSrc: NewMessageNotificationSoundBase64 | |
}, | |
callingContainerProps: { | |
controlProps: { | |
id: "oc-lcw-callingcontainer", | |
isIncomingCall: false, | |
dir: "ltr", | |
incomingCallControlProps: { | |
id: "oc-lcw-incomingcall", | |
dir: "ltr", | |
ariaLabel: "Incoming call area", | |
hideAudioCall: false, | |
hideVideoCall: false, | |
hideDeclineCall: false, | |
hideIncomingCallTitle: false, | |
onDeclineCallClick: () => { }, // Detailed implementation omitted | |
onAudioCallClick: () => { }, // Detailed implementation omitted | |
onVideoCallClick: () => { }, // Detailed implementation omitted | |
middleGroup: { gap: 5, children: [] }, | |
leftGroup: { gap: 5, children: [] }, | |
rightGroup: { gap: 5, children: [] }, | |
declineCallButtonProps: { | |
id: "callRejectButton", | |
type: "icon", | |
ariaLabel: "Reject call", | |
iconName: "DeclineCall", | |
iconSize: 20 | |
}, | |
audioCallButtonProps: { | |
id: "callAcceptButton", | |
type: "icon", | |
ariaLabel: "Accept voice call", | |
iconName: "IncomingCall", | |
iconSize: 20 | |
}, | |
videoCallButtonProps: { | |
id: "videoCallAcceptButton", | |
type: "icon", | |
ariaLabel: "Accept video Call", | |
iconName: "Video", | |
iconSize: 20 | |
}, | |
incomingCallTitle: { | |
id: "incomingCallMessage", | |
text: "Incoming Call" | |
} | |
}, | |
currentCallControlProps: { | |
id: "currentCall-container", | |
nonActionIds: { | |
currentCallActionGroupId: "currentCall-actionicons", | |
currentCallFooterId: "currentCall-footer", | |
remoteVideoTileId: "remoteVideo", | |
selfVideoTileId: "selfVideo", | |
videoTileGroupId: "currentCall-body" | |
}, | |
hideMicButton: false, | |
hideVideoButton: false, | |
hideEndCallButton: false, | |
videoCallDisabled: false, | |
hideCallTimer: false, | |
onEndCallClick: () => { }, // Detailed implementation omitted | |
onMicCallClick: () => { }, // Detailed implementation omitted | |
onVideoOffClick: () => { }, // Detailed implementation omitted | |
middleGroup: { gap: 1, children: [] }, | |
leftGroup: { gap: 1, children: [] }, | |
rightGroup: { gap: 1, children: [] }, | |
endCallButtonProps: { | |
id: "callRejectButton", | |
type: "icon", | |
ariaLabel: "End Call", | |
iconName: "DeclineCall", | |
iconSize: 18 | |
}, | |
micButtonProps: { | |
id: "toggleAudio", | |
type: "icon", | |
ariaLabel: "Mute", | |
toggleAriaLabel: "Unmute", | |
iconName: "Microphone", | |
toggleIconName: "MicOff2", | |
iconSize: 18 | |
}, | |
videoButtonProps: { | |
id: "toggleVideo", | |
type: "icon", | |
ariaLabel: "Turn on camera", | |
toggleAriaLabel: "Turn off camera", | |
iconName: "Video", | |
toggleIconName: "VideoOff", | |
iconSize: 18 | |
}, | |
callTimerProps: { | |
id: "oc-lcw-CurrentCall-timer", | |
showHours: false, | |
timerStyles: { | |
color: "#FFFFFF", | |
textAlign: "center", | |
backgroundColor: "#3d3c3c", | |
height: "45px", | |
width: "50px", | |
lineHeight: "40px", | |
borderRadius: "2px", | |
margin: "1px" | |
} | |
} | |
}, | |
hideCallingContainer: false | |
}, | |
styleProps: { | |
generalStyleProps: { | |
generalStyleProps: { | |
background: "#000", | |
width: "100%", | |
zIndex: 100, | |
boxShadow: "0px 0px 2px rgba(0, 0, 0, 0.16), 0px 4px 8px rgba(0, 0, 0, 0.12)" | |
} | |
}, | |
className: undefined, | |
incomingCallStyleProps: { | |
generalStyleProps: { | |
background: "#000", | |
padding: "5px", | |
height: "60px" | |
}, | |
audioCallButtonStyleProps: { | |
borderRadius: "50%", | |
backgroundColor: "#008000", | |
lineHeight: "40px", | |
height: "40px", | |
width: "40px", | |
icon: { | |
fontSize: 18, | |
color: "#FFFFFF" | |
} | |
}, | |
audioCallButtonHoverStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
videoCallButtonStyleProps: { | |
borderRadius: "50%", | |
backgroundColor: "#008000", | |
lineHeight: "40px", | |
height: "40px", | |
width: "40px", | |
icon: { | |
fontSize: 18, | |
color: "#FFFFFF" | |
} | |
}, | |
videoCallButtonHoverStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
declineCallButtonHoverStyleProps: { | |
filter: "brightness(0.8)", | |
border: "1px solid #000" | |
}, | |
declineCallButtonStyleProps: { | |
borderRadius: "50%", | |
backgroundColor: "#DC0000", | |
lineHeight: "40px", | |
height: "40px", | |
width: "40px", | |
marginLeft: "5px", | |
icon: { | |
fontSize: 18, | |
color: "#FFFFFF" | |
}, | |
}, | |
incomingCallTitleStyleProps: { | |
margin: "0 5px", | |
color: "#FFFFFF", | |
fontSize: 12, | |
fontFamily: "Segoe UI, Arial, sans-serif" | |
}, | |
itemFocusStyleProps: { | |
outline: "2px solid #FFFFFF", | |
} | |
}, | |
currentCallStyleProps: { | |
generalStyleProps: { | |
background: "#292828", | |
minHeight: "55px", | |
width: "100%", | |
borderRadius: "0 0 3px 3px" | |
}, | |
micButtonStyleProps: { | |
borderRadius: "2px", | |
color: "#FFFFFF", | |
backgroundColor: "#3d3c3c", | |
height: "45px", | |
width: "50px", | |
margin: "1px" | |
}, | |
micButtonHoverStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
videoOffButtonStyleProps: { | |
borderRadius: "2px", | |
color: "#FFFFFF", | |
backgroundColor: "#3d3c3c", | |
height: "45px", | |
width: "50px", | |
margin: "1px" | |
}, | |
videoOffButtonHoverStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
endCallButtonHoverStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
endCallButtonStyleProps: { | |
borderRadius: "2px", | |
color: "#FFFFFF", | |
backgroundColor: "#DC0000", | |
lineHeight: "50px", | |
height: "45px", | |
width: "50px", | |
fontSize: "18px" | |
}, | |
videoTileStyleProps: { | |
width: "100%", | |
marginLeft: "auto", | |
marginRight: "auto", | |
position: "relative" | |
}, | |
videoTileStyleWithVideoProps: { | |
minHeight: "180px", | |
width: "100%", | |
marginLeft: "auto", | |
marginRight: "auto", | |
position: "relative" | |
}, | |
remoteVideoStyleProps: { | |
height: "100%", | |
width: "100%", | |
overflow: "hidden" | |
}, | |
selfVideoStyleProps: { | |
position: "absolute", | |
right: "8px", | |
bottom: "8px", | |
width: "80px", | |
minHeight: "50px", | |
overflow: "hidden", | |
borderRadius: "2px" | |
}, | |
selfVideoMaximizeStyleProps: { | |
position: "relative", | |
width: "100%", | |
minHeight: "50px", | |
overflow: "hidden", | |
borderRadius: "2px", | |
}, | |
itemFocusStyleProps: { | |
outline: "2px solid #fff" | |
} | |
} | |
} | |
}, | |
chatButtonProps: { | |
componentOverrides: { | |
title: undefined, | |
subtitle: undefined, | |
notificationBubble: undefined, | |
iconContainer: undefined, | |
textContainer: undefined | |
}, | |
controlProps: { | |
id: "oc-lcw-chat-button", | |
dir: "ltr", | |
role: "button", | |
ariaLabel: "live chat button", | |
titleText: "Let's Chat!", | |
subtitleText: "We're online.", | |
unreadMessageCount: "0", | |
onClick: () => { }, // Detailed implementation omitted | |
hideChatButton: false, | |
hideChatIcon: false, | |
hideChatTextContainer: false, | |
hideChatSubtitle: false, | |
hideChatTitle: false, | |
hideNotificationBubble: true, | |
unreadMessageString: "new messages", | |
largeUnreadMessageString: "99+", | |
ariaLabelUnreadMessageString: "you have new messages" | |
}, | |
styleProps: { | |
generalStyleProps: { | |
height: "60px", | |
width: "180px", | |
borderRadius: "100px 100px 100px 99px", | |
position: "absolute", | |
backgroundColor: "#fff", | |
borderColor: "#fff", | |
borderStyle: "solid", | |
borderWidth: "1px", | |
boxShadow: "0 0 4px rgb(102 102 102 / 50%)", | |
margin: "3px 3px 3px 3px", | |
cursor: "pointer", | |
bottom: "0px", | |
display: "flex", | |
right: "0px", | |
padding: "0px", | |
selectors: { | |
":hover": { | |
backgroundColor: "lightgrey" | |
}, | |
":focus": { | |
outline: "dotted 2px #000" | |
} | |
} | |
}, | |
// BUG: NOT IMPLEMENTED chatButtonHoveredStyleProps: IStyle; | |
iconStyleProps: { | |
backgroundColor: "#315FA2", | |
borderStyle: "solid", | |
borderRadius: "50%", | |
borderColor: "transparent", | |
borderWidth: "1px", | |
align: "center", | |
width: "62px", | |
height: "60px", | |
margin: "-2px -2px -2px -3px", | |
justifyContent: "center", | |
backgroundSize: "65% 65%", | |
backgroundImage: `url(${ModernChatIconBase64})`, | |
display: "flex", | |
backgroundRepeat: "no-repeat", | |
backgroundPosition: "center" | |
}, | |
notificationBubbleStyleProps: { | |
backgroundColor: "#cc4a31", | |
borderRadius: "50%", | |
color: "#fff", | |
padding: "1px", | |
fontWeight: "bold", | |
lineHeight: "22px", | |
fontStyle: "normal", | |
top: "-5px", | |
textAlign: "center", | |
position: "absolute", | |
fontSize: "14px", | |
fontFamily: "Segoe UI,Arial,sans-serif", | |
minHeight: "24px", | |
minWidth: "24px" | |
}, | |
textContainerStyleProps: { | |
flexDirection: "column", | |
justifyContent: "center", | |
display: "flex" | |
}, | |
titleStyleProps: { | |
fontWeight: "bold", | |
fontSize: "16px", | |
height: "22px", | |
color: "#262626", | |
textOverflow: "ellipsis !important", | |
lineHeight: "19px", | |
fontFamily: "'Segoe UI',Arial,sans-serif", | |
display: "block", | |
margin: "0px 14px 0px 14px", | |
width: "90px", | |
cursor: "pointer", | |
overflow: "hidden", | |
padding: "0px", | |
whiteSpace: "nowrap" | |
}, | |
subtitleStyleProps: { | |
fontSize: "12px", | |
fontWeight: "200", | |
color: "#666", | |
overflow: "hidden", | |
padding: "0px", | |
fontFamily: "'Segoe UI',Arial,sans-serif", | |
display: "block", | |
alignItems: "center", | |
margin: "0px 14px 0px 14px", | |
textOverflow: "ellipsis !important", | |
width: "90px", | |
whiteSpace: "nowrap", | |
cursor: "pointer" | |
}, | |
classNames: { | |
titleClassName: undefined, | |
subtitleClassName: undefined, | |
textContainerClassName: undefined, | |
notificationBubbleClassName: undefined, | |
iconContainerClassName: undefined | |
} | |
} | |
}, | |
chatConfig: undefined, | |
chatSDK: undefined as unknown as OmnichannelChatSDK, // Mandatory | |
componentOverrides: { | |
chatButton: undefined, | |
confirmationPane: undefined, | |
footer: undefined, | |
emailTranscriptPane: undefined, | |
header: undefined, | |
loadingPane: undefined, | |
outOfOfficeHoursPane: undefined, | |
postChatLoadingPane: undefined, | |
proactiveChatPane: undefined, | |
reconnectChatPane: undefined, | |
webChatContainer: undefined, | |
}, | |
confirmationPaneProps: { | |
componentOverrides: { | |
title: undefined, | |
subtitle: undefined, | |
confirmButton: undefined, | |
cancelButton: undefined | |
}, | |
controlProps: { | |
id: "oc-lcw-confirmation-pane", | |
dir: "ltr", | |
hideConfirmationPane: false, | |
hideTitle: false, | |
titleText: "Close chat", | |
hideSubtitle: false, | |
subtitleText: "Do you really want to close this chat?", | |
hideConfirmButton: false, | |
confirmButtonText: "Close", | |
confirmButtonAriaLabel: "Close Chat", | |
hideCancelButton: false, | |
cancelButtonText: "Cancel", | |
cancelButtonAriaLabel: "Cancel. Return to Chat", | |
brightnessValueOnDim: "0.2", | |
onConfirm: () => { }, // Detailed implementation omitted | |
onCancel: () => { } // Detailed implementation omitted | |
}, | |
styleProps: { | |
generalStyleProps: { | |
display: "flex", | |
minHeight: "160px", | |
maxHeight: "300px", | |
boxSizing: "border-box", | |
backgroundColor: "#FFFFFF", | |
borderRadius: "2px", | |
color: "black", | |
fontFamily: "Segoe UI, Arial, sans-serif", | |
fontSize: "14px", | |
padding: "10px 20px", | |
position: "absolute", | |
justifyContent: "center", | |
alignItems: "center", | |
flexFlow: "column", | |
zIndex: "9999", | |
left: "26px", | |
right: "26px" | |
}, | |
titleStyleProps: { | |
color: "#323130", | |
fontFamily: "Segoe UI, Arial, sans-serif", | |
fontSize: "16px", | |
fontWeight: "500", | |
margin: "10px 0 0 0", | |
width: "100%", | |
textAlign: "center" | |
}, | |
subtitleStyleProps: { | |
color: "#605e5c", | |
fontFamily: "Segoe UI, Arial, sans-serif", | |
fontSize: "14px", | |
fontWeight: "400", | |
margin: "14px 0px", | |
width: "100%", | |
textAlign: "center" | |
}, | |
buttonGroupStyleProps: { | |
display: "flex", | |
width: "auto", | |
height: "auto", | |
boxSizing: "border-box", | |
flexFlow: "row", | |
justifyContent: "center", | |
alignItems: "center", | |
gap: "10px", | |
marginBottom: "10px" | |
}, | |
confirmButtonStyleProps: { | |
backgroundColor: "rgba(9,72,159,1)", | |
color: "#FFFFFF", | |
fontFamily: "Segoe UI, Arial, sans-serif", | |
fontSize: "14px", | |
fontWeight: "500", | |
height: "32px", | |
width: "80px" | |
}, | |
confirmButtonHoveredStyleProps: { | |
backgroundColor: "rgba(9,72,159,0.8)" | |
}, | |
confirmButtonFocusedStyleProps: { | |
border: "2px dotted #000" | |
}, | |
cancelButtonStyleProps: { | |
backgroundColor: "#FFFFFF", | |
fontFamily: "Segoe UI, Arial, sans-serif", | |
fontSize: "14px", | |
fontWeight: "500", | |
height: "32px", | |
width: "80px" | |
}, | |
cancelButtonHoveredStyleProps: { | |
backgroundColor: "#EFEFEF" | |
}, | |
cancelButtonFocusedStyleProps: { | |
border: "2px dotted #000" | |
}, | |
classNames: { | |
titleClassName: undefined, | |
subtitleClassName: undefined, | |
buttonGroupClassName: undefined, | |
confirmButtonClassName: undefined, | |
cancelButtonClassName: undefined | |
} | |
}, | |
confirmationPaneLocalizedTexts: { | |
CLOSE_CONFIRMATION_DIALOG_TITLE_FOR_EMAIL_AND_DOWNLOAD_TRANSCRIPT_ENABLED: "Want a copy of this chat?", | |
CLOSE_CONFIRMATION_DIALOG_DESCRIPTION_FOR_EMAIL_AND_DOWNLOAD_TRANSCRIPT_ENABLED: "Select Cancel and then select the download or email icon", | |
CLOSE_CONFIRMATION_DIALOG_TITLE_FOR_EMAIL_TRANSCRIPT_ENABLED: "Want a copy of this chat?", | |
CLOSE_CONFIRMATION_DIALOG_DESCRIPTION_FOR_EMAIL_TRANSCRIPT_ENABLED: "Select Cancel and then select the email icon.", | |
CLOSE_CONFIRMATION_DIALOG_TITLE_FOR_DOWNLOAD_TRANSCRIPT_ENABLED: "Want a copy of this chat?", | |
CLOSE_CONFIRMATION_DIALOG_DESCRIPTION_FOR_DOWNLOAD_TRANSCRIPT_ENABLED: "Select Cancel and then select the download icon.", | |
CLOSE_CONFIRMATION_DIALOG_TITLE_DEFAULT: "Close Chat", | |
CLOSE_CONFIRMATION_DIALOG_DESCRIPTION_DEFAULT: "Do you really want to close this chat?" | |
} | |
}, | |
controlProps: { | |
id: "oc-lcw", | |
hideCallingContainer: false, | |
hideChatButton: false, | |
hideConfirmationPane: false, | |
hideErrorUIPane: false, | |
hideFooter: false, | |
hideHeader: false, | |
hideLoadingPane: false, | |
hideOutOfOfficeHoursPane: false, | |
hidePostChatLoadingPane: false, | |
hidePreChatSurveyPane: false, | |
hideProactiveChatPane: false, | |
hideReconnectChatPane: false, | |
hideWebChatContainer: false, | |
hideStartChatButton: false | |
}, | |
directLine: new MockAdapter(), | |
downloadTranscriptProps: { | |
bannerMessageOnError: "Download transcript failed.", | |
renderMarkDown: undefined, | |
attachmentMessage: "The following attachment was uploaded during the conversation:", | |
webChatTranscript: { | |
disabled: false, | |
fileName: "transcript", | |
pageTitle: "Customer Transcript", | |
attachmentMessage: "The following attachment was uploaded during the conversation: ", | |
networkOnlineMessage: "Connection restored. Please refresh the page", | |
networkOfflineMessage: "Network Error. Please make sure you are connected to the internet.", | |
} | |
}, | |
emailTranscriptPane: { | |
componentOverrides: { | |
title: undefined, | |
subtitle: undefined, | |
input: undefined, | |
invalidInputErrorMessage: undefined, | |
sendButton: undefined, | |
cancelButton: undefined | |
}, | |
controlProps: { | |
id: "oclcw-emailTranscriptDialogContainer", | |
dir: "ltr", | |
hideInputValidationPane: false, | |
inputValidationPaneAriaLabel: "Email Chat Transcript Pane", | |
hideTitle: false, | |
titleText: "Email this chat transcript", | |
hideSubtitle: false, | |
subtitleText: "This will be sent after your chat ends.", | |
inputId: "oclcw-emailTranscriptDialogTextField", | |
inputInitialText: "", | |
hideInput: false, | |
inputAriaLabel: "Email this chat transcript. This will be sent after your chat ends. Email address text area", | |
inputWithErrorMessageBorderColor: "rgb(164, 38, 44)", | |
invalidInputErrorMessageText: "Enter a valid email address.", | |
isButtonGroupHorizontal: true, | |
hideSendButton: false, | |
enableSendButton: undefined, | |
sendButtonText: "Send", | |
sendButtonAriaLabel: "Send", | |
hideCancelButton: false, | |
cancelButtonText: "Cancel", | |
cancelButtonAriaLabel: "Cancel", | |
brightnessValueOnDim: "0.2", | |
onSend: undefined, | |
onCancel: undefined, | |
checkInput: undefined, | |
}, | |
styleProps: { | |
generalStyleProps: { | |
backgroundColor: "#fff", | |
borderBottomLeftRadius: "4px", | |
borderBottomRightRadius: "4px", | |
borderColor: "rgba(138, 141, 145, .24)", | |
borderTop: "solid", | |
borderTopWidth: "1px", | |
bottom: "0", | |
left: "0", | |
minHeight: "180px", | |
padding: "10px", | |
position: "absolute", | |
width: "100%", | |
zIndex: "9999" | |
}, | |
headerGroupStyleProps: { | |
marginBottom: "15px" | |
}, | |
titleStyleProps: { | |
color: "#323130", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "18px", | |
fontWeight: "500", | |
marginBottom: "5px" | |
}, | |
subtitleStyleProps: { | |
color: "#262626", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "14px", | |
lineHeight: "16px", | |
marginBottom: "10px" | |
}, | |
inputStyleProps: { | |
boxSizing: "border-box", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "16px", | |
fontWeight: "400", | |
textIndent: "10px", | |
width: "100%" | |
}, | |
invalidInputErrorMessageStyleProps: { | |
color: "#a4262c", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "12px", | |
height: "16px,", | |
lineHeight: "16px", | |
marginTop: "4px" | |
}, | |
buttonGroupStyleProps: { | |
gap: "10px" | |
}, | |
sendButtonStyleProps: { | |
color: "rgb(255, 255, 255)", | |
cursor: "pointer", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "14px", | |
fontWeight: "500", | |
lineHeight: "19px", | |
textOverflow: "ellipsis", | |
whiteSpace: "nowrap" | |
}, | |
sendButtonHoveredStyleProps: {}, | |
cancelButtonStyleProps: { | |
border: "solid", | |
borderColor: "#e0e3e6", | |
borderWidth: "2px", | |
boxSizing: "border-box", | |
color: "#000", | |
cursor: "pointer", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "14px", | |
fontWeight: "500", | |
lineHeight: "19px", | |
textOverflow: "ellipsis", | |
whiteSpace: "nowrap" | |
}, | |
cancelButtonHoveredStyleProps: {}, | |
classNames: { | |
containerClassName: undefined, | |
headerGroupClassName: undefined, | |
titleClassName: undefined, | |
subtitleClassName: undefined, | |
inputClassName: undefined, | |
invalidInputErrorMessageClassName: undefined, | |
buttonGroupClassName: undefined, | |
sendButtonClassName: undefined, | |
cancelButtonClassName: undefined | |
} | |
}, | |
bannerMessageOnError: "Email transcript to <email> failed.", | |
attachmentMessage: "The following attachment was uploaded during the conversation:" | |
}, | |
footerProps: { | |
componentOverrides: { | |
DownloadTranscriptButton: undefined, | |
EmailTranscriptButton: undefined, | |
AudioNotificationButton: undefined | |
}, | |
controlProps: { // BUG | |
id: "oc-lcw-footer", | |
leftGroup: { children: [] }, | |
middleGroup: { children: [] }, | |
rightGroup: { children: [] }, | |
hideDownloadTranscriptButton: false, | |
hideEmailTranscriptButton: false, | |
hideAudioNotificationButton: false, | |
onDownloadTranscriptClick: () => { }, // Detailed implementation omitted | |
onEmailTranscriptClick: () => { }, // Detailed implementation omitted | |
onAudioNotificationClick: () => { }, // Detailed implementation omitted | |
downloadTranscriptButtonProps: { | |
id: "oc-lcw-footer-downloadtranscript-button", | |
type: "icon", | |
iconName: "Download", | |
ariaLabel: "Download chat transcript", | |
isAudioMuted: undefined, | |
iconSize: undefined, | |
imageIconProps: undefined, | |
toggleIconName: undefined, | |
imageToggleIconProps: undefined, | |
toggleAriaLabel: undefined, | |
text: "Download chat transcript", | |
onClick: undefined, | |
className: undefined, | |
disabled: undefined | |
}, | |
emailTranscriptButtonProps: { | |
id: "oc-lcw-footer-emailtranscript-button", | |
type: "icon", | |
iconName: "Mail", | |
ariaLabel: "Email Transcript", | |
isAudioMuted: undefined, | |
iconSize: undefined, | |
imageIconProps: undefined, | |
toggleIconName: undefined, | |
imageToggleIconProps: undefined, | |
toggleAriaLabel: undefined, | |
text: "Email Transcript", | |
onClick: undefined, | |
className: undefined, | |
disabled: undefined | |
}, | |
audioNotificationButtonProps: { | |
id: "oc-lcw-footer-audionotification-button", | |
type: "icon", | |
ariaLabel: "Turn sound off", | |
toggleAriaLabel: "Turn sound on", | |
iconName: "Volume3", | |
toggleIconName: "Volume0", | |
isAudioMuted: undefined, | |
iconSize: undefined, | |
imageIconProps: undefined, | |
imageToggleIconProps: undefined, | |
text: "Audio Notification off", | |
onClick: undefined, | |
className: undefined, | |
disabled: undefined | |
}, | |
dir: "ltr" | |
}, | |
styleProps: { | |
generalStyleProps: { | |
background: "#fff", | |
borderRadius: "0 0 4px 4px", | |
minHeight: "25px", | |
width: "100%", | |
minWidth: "250px", | |
padding: "5px" | |
}, | |
downloadTranscriptButtonStyleProps: { | |
icon: { | |
color: "blue", | |
fontSize: 16, | |
}, | |
height: "25px", | |
lineHeight: "25px", | |
width: "25px" | |
}, | |
downloadTranscriptButtonHoverStyleProps: { | |
filter: "brightness(0.8)", | |
backgroundColor: "#C8C8C8" | |
}, | |
emailTranscriptButtonStyleProps: { | |
cicon: { | |
color: "blue", | |
fontSize: 16, | |
}, | |
height: "25px", | |
lineHeight: "25px", | |
width: "25px" | |
}, | |
emailTranscriptButtonHoverStyleProps: { | |
filter: "brightness(0.8)", | |
backgroundColor: "#C8C8C8" | |
}, | |
audioNotificationButtonStyleProps: { | |
icon: { | |
color: "blue", | |
fontSize: 16, | |
}, | |
height: "25px", | |
lineHeight: "25px", | |
width: "25px" | |
}, | |
audioNotificationButtonHoverStyleProps: { | |
filter: "brightness(0.8)", | |
backgroundColor: "#C8C8C8" | |
}, | |
footerItemFocusStyleProps: { | |
border: "2px dotted #000" | |
} | |
} | |
}, | |
headerProps: { | |
componentOverrides: { | |
headerIcon: undefined, | |
headerTitle: undefined, | |
headerMinimizeButton: undefined, | |
headerCloseButton: undefined | |
}, | |
controlProps: { | |
id: "oc-lcw-header", | |
leftGroup: { children: [] }, | |
middleGroup: { children: [] }, | |
rightGroup: { children: [] }, | |
hideIcon: false, | |
hideTitle: false, | |
hideMinimizeButton: false, | |
hideCloseButton: false, | |
onMinimizeClick: () => { }, // Detailed implementation omitted | |
onCloseClick: () => { }, // Detailed implementation omitted | |
minimizeButtonProps: { | |
id: "oc-lcw-header-minimize-button", | |
type: "icon", | |
iconName: "ChromeMinimize", | |
ariaLabel: "Minimize", | |
imageIconProps: undefined, | |
text: "Minimize", | |
onClick: undefined, | |
className: undefined | |
}, | |
closeButtonProps: { | |
id: "oc-lcw-header-close-button", | |
type: "icon", | |
iconName: "ChromeClose", | |
ariaLabel: "Close", | |
imageIconProps: undefined, | |
text: "Close", | |
onClick: undefined, | |
className: undefined | |
}, | |
headerIconProps: { | |
id: "oc-lcw-header-icon", | |
src: ModernChatIconBase64, | |
alt: "Chat Icon", | |
className: undefined | |
}, | |
headerTitleProps: { | |
id: "oc-lcw-header-title", | |
text: "Let's Chat", | |
className: undefined | |
}, | |
dir: "ltr" | |
}, | |
styleProps: { | |
generalStyleProps: { | |
background: "#315fa2", | |
borderRadius: "4px 4px 0 0", | |
padding: "5px", | |
minHeight: "50px", | |
width: "100%", | |
minWidth: "250px" | |
}, | |
iconStyleProps: { | |
height: "30px", | |
width: "30px", | |
margin: "5px 10px" | |
}, | |
titleStyleProps: { | |
fontSize: 16, | |
fontFamily: "Segoe UI, Arial, sans-serif", | |
fontWeight: "450", | |
color: "#FFFFFF", | |
padding: "3px 0" | |
}, | |
minimizeButtonStyleProps: { | |
color: "#FFFFFF", | |
margin: "5px 0", | |
fontSize: "12px" | |
}, | |
closeButtonStyleProps: { | |
color: "#FFFFFF", | |
margin: "5px 0", | |
fontSize: "12px" | |
}, | |
closeButtonHoverStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
minimizeButtonHoverStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
headerItemFocusStyleProps: { | |
border: "2px dotted #000" | |
} | |
} | |
}, | |
loadingPaneProps: { | |
componentOverrides: { | |
icon: undefined, | |
title: undefined, | |
subtitle: undefined, | |
spinner: undefined, | |
spinnerText: undefined | |
}, | |
controlProps: { | |
id: "oc-lcw-loading-pane", | |
role: undefined, | |
dir: "auto", | |
hideLoadingPane: false, | |
hideIcon: false, | |
hideTitle: false, | |
titleText: "Welcome to", | |
hideSubtitle: false, | |
subtitleText: "live chat support ...", | |
hideSpinner: false, | |
spinnerSize: undefined, | |
hideSpinnerText: false, | |
spinnerText: "Loading ..." | |
}, | |
styleProps: { | |
generalStyleProps: { | |
width: "100%", | |
height: "100%", | |
borderStyle: "solid", | |
backgroundColor: "#315fa2", | |
borderColor: "#F1F1F1", | |
justifyContent: "center", | |
alignItems: "center", | |
position: "initial", | |
left: "0%", | |
top: "0%", | |
borderRadius: "0 0 4px 4px", | |
borderWidth: "0px", | |
}, | |
titleStyleProps: { | |
fontFamily: "'Segoe UI',Arial,sans-serif", | |
fontWeight: "normal", | |
fontSize: "14px", | |
color: "#F1F1F1", | |
margin: "0px 0px 0px 0px", | |
textAlign: "center", | |
display: "flex", | |
order: 2, | |
alignSelf: "auto" | |
}, | |
subtitleStyleProps: { | |
fontFamily: "'Segoe UI',Arial,sans-serif", | |
fontWeight: "bold", | |
fontSize: "18px", | |
color: "#F1F1F1", | |
margin: "0px 0px 50px 10px", | |
textAlign: "center", | |
display: "flex", | |
order: 3, | |
alignSelf: "auto" | |
}, | |
iconStyleProps: { | |
borderRadius: "50%", | |
backgroundColor: "#F1F1F1", | |
boxShadow: "0px 0px 0.5px 7px #3F75AB", | |
width: "86px", | |
height: "86px", | |
margin: "0px 0px 20px 0px", | |
display: "flex", | |
order: 1, | |
alignSelf: "auto", | |
overflow: "visible" | |
}, | |
iconImageProps: { | |
src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2lpKSI+DQo8cGF0aCBkPSJNMTUuMTk3MSAxNi4yNzI1VjI1Ljg1MjRDMTUuMTk3MSAyNy4zODExIDE1Ljg0MDEgMjcuNTIwMSAxNi45ODMyIDI3LjUyMDFMMjYuNzA4NCAyNy41NjQ5TDMxLjAwMzkgMzIuMzEyM1YyNy41NjQ5SDMxLjg5N0MzMi4xNzQzIDI3LjU2MzcgMzIuNDQ4NyAyNy41MDc3IDMyLjcwNDUgMjcuNDAwMUMzMi45NjAzIDI3LjI5MjQgMzMuMTkyNSAyNy4xMzUzIDMzLjM4NzggMjYuOTM3NUMzMy41ODMxIDI2LjczOTggMzMuNzM3NyAyNi41MDU0IDMzLjg0MjcgMjYuMjQ3N0MzMy45NDc4IDI1Ljk5IDM0LjAwMTMgMjUuNzE0IDM0LjAwMDEgMjUuNDM1NVYxNi4zMDM4QzM0LjAwMTMgMTYuMDI1NCAzMy45NDc4IDE1Ljc0OTQgMzMuODQyNyAxNS40OTE3QzMzLjczNzcgMTUuMjM0IDMzLjU4MzEgMTQuOTk5NiAzMy4zODc4IDE0LjgwMThDMzMuMTkyNSAxNC42MDQxIDMyLjk2MDMgMTQuNDQ2OSAzMi43MDQ1IDE0LjMzOTNDMzIuNDQ4NyAxNC4yMzE2IDMyLjE3NDMgMTQuMTc1NiAzMS44OTcgMTQuMTc0NEwxNy4zMDQ3IDE0LjE0MzFDMTcuMDI2OSAxNC4xNDM3IDE2Ljc1MiAxNC4xOTkyIDE2LjQ5NTcgMTQuMzA2NkMxNi4yMzk0IDE0LjQxNCAxNi4wMDY3IDE0LjU3MTEgMTUuODEwOSAxNC43Njg5QzE1LjYxNTIgMTQuOTY2NyAxNS40NjAyIDE1LjIwMTMgMTUuMzU0OCAxNS40NTkzQzE1LjI0OTUgMTUuNzE3MyAxNS4xOTU5IDE1Ljk5MzYgMTUuMTk3MSAxNi4yNzI1WiIgZmlsbD0iI0Q2RDZENiIvPg0KPC9nPg0KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjFfZGlpKSI+DQo8cGF0aCBkPSJNMjcuODczNSA2LjY5ODg3VjE4Ljg0MDlDMjcuODczNSAyMC43Nzg1IDI3LjA1NzIgMjAuOTU0NiAyNS42MDU4IDIwLjk1NDZMMTMuMjU4IDIxLjAxMTRMNy44MDQxNCAyNy4wMjg1VjIxLjAxMTRINi42NzAyN0M2LjMxODEyIDIxLjAwOTkgNS45Njk3MSAyMC45Mzg5IDUuNjQ0OTMgMjAuODAyNUM1LjMyMDE2IDIwLjY2NjEgNS4wMjUzOCAyMC40NjY4IDQuNzc3NDIgMjAuMjE2MkM0LjUyOTQ2IDE5Ljk2NTYgNC4zMzMxOSAxOS42Njg1IDQuMTk5OCAxOS4zNDE5QzQuMDY2NDIgMTkuMDE1MiAzLjk5ODUzIDE4LjY2NTUgNC4wMDAwMiAxOC4zMTI1VjYuNzM4NjRDMy45OTg1MyA2LjM4NTcxIDQuMDY2NDIgNi4wMzU5NSA0LjE5OTggNS43MDkzMUM0LjMzMzE5IDUuMzgyNjcgNC41Mjk0NiA1LjA4NTU3IDQuNzc3NDIgNC44MzQ5NUM1LjAyNTM4IDQuNTg0MzQgNS4zMjAxNiA0LjM4NTEzIDUuNjQ0OTMgNC4yNDg2OUM1Ljk2OTcxIDQuMTEyMjUgNi4zMTgxMiA0LjA0MTI2IDYuNjcwMjcgNC4wMzk3N0wyNS4xOTc2IDRDMjUuNTUwMiA0LjAwMDc0IDI1Ljg5OTMgNC4wNzExOCAyNi4yMjQ3IDQuMjA3MjlDMjYuNTUwMSA0LjM0MzM5IDI2Ljg0NTYgNC41NDI0OSAyNy4wOTQxIDQuNzkzMThDMjcuMzQyNyA1LjA0Mzg2IDI3LjUzOTUgNS4zNDEyMiAyNy42NzMyIDUuNjY4MjNDMjcuODA3IDUuOTk1MjMgMjcuODc1IDYuMzQ1NDYgMjcuODczNSA2LjY5ODg3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIvPg0KPC9nPg0KPGRlZnM+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2lpIiB4PSIxNS4xOTcxIiB5PSIxNC4xNDMxIiB3aWR0aD0iMTguODAzMSIgaGVpZ2h0PSIxOC4xNjkzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+DQo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC4yIiBkeT0iLTAuMiIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTcgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC41IiBkeT0iLTAuNSIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTYgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9ImVmZmVjdDFfaW5uZXJTaGFkb3ciIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPC9maWx0ZXI+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2RpaSIgeD0iMCIgeT0iMCIgd2lkdGg9IjM5Ljg3MzYiIGhlaWdodD0iMzkuMDI4NSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPg0KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+DQo8ZmVPZmZzZXQgZHg9IjQiIGR5PSI0Ii8+DQo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI0Ii8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMiIgZHk9Ii0yIi8+DQo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIi8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4xNyAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0ic2hhcGUiIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+DQo8ZmVPZmZzZXQgZHg9Ii0xIiBkeT0iLTEiLz4NCjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiLz4NCjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwLjE2IDAiLz4NCjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJlZmZlY3QyX2lubmVyU2hhZG93IiByZXN1bHQ9ImVmZmVjdDNfaW5uZXJTaGFkb3ciLz4NCjwvZmlsdGVyPg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iLTAuMzk1MDAxIiB5MT0iMjMuMTI4MiIgeDI9IjIwLjEwNTgiIHkyPSIzNy44NDc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjRUZFRkVGIi8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIi8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPC9kZWZzPg0KPC9zdmc+DQo=", | |
imageFit: 0, | |
width: "86px", | |
height: "86px", | |
shouldFadeIn: false, | |
shouldStartVisible: true | |
}, | |
spinnerStyleProps: { | |
width: "42px", | |
height: "42px", | |
margin: "0px 0px 0px 0px", | |
display: "flex", | |
order: 4, | |
alignSelf: "auto" | |
}, | |
spinnerTextStyleProps: { | |
fontFamily: "'Segoe UI',Arial,sans-serif", | |
fontWeight: "normal", | |
fontSize: "9px", | |
color: "#F1F1F1", | |
margin: "0px 0px 0px 5px", | |
textAlign: "center", | |
order: 5, | |
alignSelf: "auto" | |
}, | |
classNames: { | |
iconClassName: undefined, | |
titleClassName: undefined, | |
subtitleClassName: undefined, | |
spinnerClassName: undefined, | |
spinnerTextClassName: undefined | |
} | |
} | |
}, | |
outOfOfficeChatButtonProps: { // Same interface as chatButtonProps, thus omitting undefined attributes here | |
componentOverrides: undefined, | |
controlProps: { | |
// ...[Existing chat button control props] | |
id: "oc-lcw-chat-button", | |
titleText: "We're Offline", | |
subtitleText: "No agents available", | |
onClick: () => { } // Detailed implementation omitted | |
}, | |
styleProps: { | |
// ...[Existing chat button style props] | |
iconStyleProps: { | |
backgroundColor: "#000000" | |
} | |
} | |
}, | |
outOfOfficeHeaderProps: { // Same interface as headerProps, thus omitting undefined attributes here | |
componentOverrides: undefined, | |
controlProps: { | |
// ...[Existing chat button control props] | |
id: "oc-lcw-header", | |
headerTitleProps: { | |
text: "We're Offline" | |
}, | |
onMinimizeClick: () => { } // Detailed implementation omitted | |
}, | |
styleProps: { | |
// ...[Existing chat button style props] | |
generalStyleProps: { | |
// ...[Existing chat button general style props] | |
borderRadius: "0px", | |
backgroundColor: "#000000", | |
height: "40px" | |
}, | |
titleStyleProps: { | |
// ...[Existing chat button title style props] | |
margin: "0 0 0 10px", | |
color: "#FFFFFF" | |
} | |
} | |
}, | |
outOfOfficeHoursPaneProps: { | |
componentOverrides: { | |
title: undefined | |
}, | |
controlProps: { | |
id: "oc-lcw-outofofficehours-pane", | |
role: undefined, | |
dir: "auto", | |
hideOOOHPane: false, | |
hideTitle: false, | |
titleText: "Thanks for contacting us. You have reached us outside of our operating hours. An agent will respond when we open. Please see link https://microsoft.com", | |
openLinkInNewTab: true | |
}, | |
styleProps: { | |
generalStyleProps: { | |
borderStyle: "solid", | |
width: "100%", | |
height: "100%", | |
borderRadius: "0px 0px 4px 4px", | |
borderWidth: "3px", | |
backgroundColor: "#FFFFFF", | |
borderColor: "#F1F1F1", | |
position: "absolute", | |
justifyContent: "center", | |
alignItems: "stretch", | |
flexFlow: "column wrap" | |
}, | |
titleStyleProps: { | |
fontFamily: "'Segoe UI',Arial,sans-serif", | |
fontWeight: "normal", | |
fontSize: "14px", | |
color: "#000000", | |
textAlign: "center", | |
alignSelf: "auto" | |
}, | |
classNames: { | |
containerClassName: undefined, | |
titleClassName: undefined | |
} | |
} | |
}, | |
postChatLoadingPaneProps: { // Same interface as loadingPaneProps, thus omitting undefined attributes here | |
componentOverrides: undefined, | |
controlProps: { | |
// ...[Existing loading pane control props] | |
id: "oc-lcw-postchatloading-pane", | |
hideIcon: true, | |
hideTitle: true, | |
hideSpinner: true, | |
hideSpinnerText: true, | |
subtitleText: "Please take a moment to give us feedback about your chat experience. We are loading the survey for you now." | |
}, | |
styleProps: { | |
// ...[Existing loading pane style props] | |
generalStyleProps: { | |
position: "initial", | |
width: "100%", | |
height: "100%", | |
left: "0%", | |
top: "0%", | |
borderRadius: "0 0 4px 4px", | |
borderWidth: "0px", | |
backgroundColor: "#315FA2" | |
} | |
} | |
}, | |
postChatSurveyPaneProps: { | |
controlProps: { | |
id: "oc-lcw-postchatsurvey-pane", | |
role: undefined, | |
title: "Post chat survey pane", | |
surveyURL: "" | |
}, | |
styleProps: { | |
generalStyleProps: { | |
borderStyle: "solid", | |
borderRadius: "0 0 4px 4px", | |
borderWidth: "3px", | |
backgroundColor: "#FFFFFF", | |
borderColor: "#F1F1F1", | |
position: "initial", | |
height: "100%", | |
width: "100%", | |
left: "0%", | |
top: "0%", | |
display: "contents" | |
} | |
}, | |
isCustomerVoiceSurveyCompact: undefined | |
}, | |
preChatSurveyPaneProps: { | |
controlProps: { | |
id: "oc-lcw-prechatsurveypane-default", | |
dir: "auto", | |
hidePreChatSurveyPane: false, | |
adaptiveCardHostConfig: "{\"fontFamily\":\"Segoe UI, Helvetica Neue, sans-serif\",\"containerStyles\":{\"default\":{\"foregroundColors\":{\"default\":{\"default\":\"#000000\"}},\"backgroundColor\":\"#FFFFFF\"}},\"actions\":{\"actionsOrientation\":\"Vertical\",\"actionAlignment\":\"stretch\"}}", | |
payload: "{\"$schema\":\"http://adaptivecards.io/schemas/adaptive-card.json\",\"type\":\"AdaptiveCard\",\"version\":\"1.1\",\"body\":[{\"type\":\"TextBlock\",\"weight\":\"bolder\",\"text\":\"Please answer below questions.\"},{\"type\":\"Input.Text\",\"id\":\"1e5e4e7a-8f0b-ec11-b6e6-000d3a305d38\",\"label\":\"name pls?\",\"maxLength\":100,\"isRequired\":true,\"errorMessage\":\"Name is required\"},{\"type\":\"Input.Text\",\"id\":\"7f8f5d6d-995e-ec11-8f8f-000d3a31376e\",\"label\":\"multi\\nmulti\\nmulti\",\"style\":\"text\",\"isMultiline\":true,\"maxLength\":250},{\"type\":\"Input.ChoiceSet\",\"id\":\"e4bdf7cb-995e-ec11-8f8f-000d3a31376e\",\"label\":\"options\",\"isMultiSelect\":false,\"value\":\"1\",\"style\":\"compact\",\"choices\":[{\"title\":\"one\",\"value\":\"1\"},{\"title\":\"two\",\"value\":\"2\"},{\"title\":\"three\",\"value\":\"3\"}]},{\"type\":\"Input.Toggle\",\"id\":\"b26011d2-995e-ec11-8f8f-000d3a31376e\",\"title\":\"consent\",\"valueOn\":\"True\",\"valueOff\":\"False\",\"value\":\"false\"},{\"type\":\"TextBlock\",\"isSubtle\":true,\"text\":\"Fields marked with * are mandatory.\",\"wrap\":true}],\"actions\":[{\"type\":\"Action.Submit\",\"title\":\"Submit\",\"data\":{\"Type\":\"InputSubmit\"}}]}", | |
onSubmit: function () {} // Detailed implementation omitted | |
}, | |
styleProps: { | |
generalStyleProps: { | |
borderStyle: "solid", | |
borderRadius: "4px", | |
borderWidth: "0px", | |
backgroundColor: "#FFFFFF", | |
borderColor: "#F1F1F1", | |
overflowY: "auto", | |
height: "inherit", | |
width: "inherit" | |
}, | |
customButtonStyleProps: { | |
backgroundColor: "rgb(49, 95, 162)", | |
color: "#FFFFFF", | |
fontFamily: "Segoe UI, Arial, sans-serif", | |
fontSize: "15px", | |
height: "48px" | |
}, | |
adaptiveCardContainerStyleProps: { | |
border: "1px solid #ECECEC", | |
borderRadius: "4px", | |
margin: "3%" | |
}, | |
customTextInputStyleProps: { | |
height: "20px" | |
}, | |
customMultilineTextInputStyleProps: { | |
height: "52px" | |
} | |
} | |
}, | |
proactiveChatPaneProps: { | |
componentOverrides: { | |
title: undefined, | |
subtitle: undefined, | |
closeButton: undefined, | |
bodyTitle: undefined, | |
startButton: undefined | |
}, | |
controlProps: { | |
id: "oc-lcw-proactivechat", | |
dir: "ltr", | |
hideProactiveChatPane: false, | |
proactiveChatPaneAriaLabel: "Proactive Chat Pane", | |
hideTitle: false, | |
titleText: "Welcome to", | |
hideSubtitle: false, | |
subtitleText: "Live chat support!", | |
hideCloseButton: false, | |
closeButtonProps: { | |
id: "oc-lcw-proactivechat-closebutton", | |
type: "icon", | |
iconName: "ChromeClose", | |
ariaLabel: "Close", | |
imageIconProps: undefined, | |
text: "Close", | |
onClick: undefined, | |
className: undefined, | |
hideButtonTitle: true | |
}, | |
isBodyContainerHorizantal: false, | |
hideBodyTitle: false, | |
bodyTitleText: "Hi! Have any questions? I am here to help.", | |
hideStartButton: false, | |
startButtonText: "Chat Now", | |
startButtonAriaLabel: "Chat Now", | |
onClose: () => { }, // Detailed implementation omitted | |
onStart: () => { } // Detailed implementation omitted | |
}, | |
styleProps: { | |
generalStyleProps: { | |
backgroundColor: "rgb(255, 255, 255)", | |
borderRadius: "8px", | |
boxShadow: "0 0 4px rgb(102 102 102 / 50%)", | |
bottom: "0", | |
height: "auto", | |
margin: "3px", | |
minHeight: "133px", | |
position: "absolute", | |
right: "0", | |
width: "245px", | |
zIndex: "9999" | |
}, | |
headerContainerStyleProps: { | |
backgroundColor: "rgb(49, 95, 162)", | |
backgroundImage: `url(${ProactiveChatBannerBase64})`, | |
backgroundPosition: "initial", | |
backgroundRepeat: "no-repeat", | |
borderTopLeftRadius: "inherit", | |
borderTopRightRadius: "inherit", | |
height: "90px", | |
padding: "10px 16px 10px 16px" | |
}, | |
textContainerStyleProps: { | |
color: "rgb(255, 255, 255)", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "14px", | |
fontStyle: "normal", | |
fontWeight: "400", | |
lineHeight: "19px", | |
width: "95%" | |
}, | |
titleStyleProps: { | |
color: "rgb(255, 255, 255)", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
}, | |
subtitleStyleProps: { | |
color: "rgb(255, 255, 255)", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "18px", | |
fontWeight: "600" | |
}, | |
closeButtonStyleProps: { | |
backgroundImage: `url(${CloseChatButtonIconBase64})`, | |
backgroundPosition: "center", | |
backgroundRepeat: "no-repeat", | |
color: "#605e5c", | |
cursor: "pointer", | |
height: "14px", | |
lineHeight: "14px", | |
textAlign: "center", | |
width: "14px", | |
zIndex: "inherit" | |
}, | |
closeButtonHoveredStyleProps: { | |
backgroundColor: "", | |
color: "" | |
}, | |
bodyContainerStyleProps: {}, | |
bodyTitleStyleProps: { | |
color: "rgb(0, 0, 0)", | |
display: "inline-block", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "14px", | |
lineHeight: "19px", | |
padding: "16px", | |
overflow: "hidden", | |
wordBreak: "break-word" | |
}, | |
startButtonStyleProps: { | |
backgroundColor: "rgb(49, 95, 162)", | |
borderRadius: "40px", | |
color: "rgb(255, 255, 255)", | |
cursor: "pointer", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
margin: "20px 16px 20px 16px", | |
padding: "6px 23px 6px 23px", | |
width: "50%", | |
zIndex: "inherit" | |
}, | |
startButtonHoveredStyleProps: { | |
backgroundColor: "", | |
color: "" | |
}, | |
classNames: { | |
containerClassName: undefined, | |
headerContainerClassName: undefined, | |
textContainerClassName: undefined, | |
titleClassName: undefined, | |
subtitleClassName: undefined, | |
closeButtonClassName: undefined, | |
bodyContainerClassName: undefined, | |
bodyTitleClassName: undefined, | |
startButtonClassName: undefined | |
} | |
}, | |
ProactiveChatInviteTimeoutInMs: 60000 | |
}, | |
reconnectChatPaneProps: { | |
componentOverrides: { | |
title: undefined, | |
subtitle: undefined, | |
icon: undefined, | |
continueChatButton: undefined, | |
startNewChatButton: undefined | |
}, | |
controlProps: { | |
id: "oc-lcw-reconnectchat-pane", | |
dir: "ltr", | |
hideReconnectChatPane: false, | |
reconnectChatPaneAriaLabel: "Reconnect Chat Pane", | |
hideTitle: false, | |
titleText: "Previous session detected", | |
hideSubtitle: false, | |
subtitleText: "We have detected a previous chat session. Would you like to continue with your previous session?", | |
hideIcon: false, | |
iconAriaLabel: "Reconnect Chat Pane Icon", | |
isButtonGroupHorizontal: false, | |
hideContinueChatButton: false, | |
continueChatButtonText: "Continue conversation", | |
continueChatButtonAriaLabel: "Continue conversation", | |
hideStartNewChatButton: false, | |
startNewChatButtonText: "Start new conversation", | |
startNewChatButtonAriaLabel: "Start new conversation", | |
onContinueChat: () => { }, // Detailed implementation omitted | |
onStartNewChat: () => { }, // Detailed implementation omitted | |
onMinimize: () => { } // Detailed implementation omitted | |
}, | |
styleProps: { | |
generalStyleProps: { | |
backgroundColor: "rgb(255, 255, 255)", | |
borderColor: "#E6E6E6", | |
borderRadius: "4px", | |
borderStyle: "solid", | |
borderWidth: "3px", | |
padding: "15px", | |
height: "100%", | |
width: "100%" | |
}, | |
wrapperStyleProps: { | |
backgroundColor: "rgb(255, 255, 255)", | |
borderColor: "#E6E6E6", | |
borderRadius: "0 8px 8px 8px", | |
borderStyle: "solid", | |
borderWidth: "1px", | |
padding: "20px", | |
width: "100%" | |
}, | |
titleStyleProps: { | |
color: "rgb(0, 0, 0)", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "16px", | |
fontWeight: "600", | |
lineHeight: "19px" | |
}, | |
subtitleStyleProps: { | |
color: "rgb(0, 0, 0)", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "16px", | |
fontWeight: "400", | |
lineHeight: "19px" | |
}, | |
iconStyleProps: { | |
backgroundImage: `url(${ChatReconnectIconBase64})`, | |
backgroundPosition: "center", | |
backgroundRepeat: "no-repeat", | |
backgroundSize: "200px", | |
height: "130px", | |
margin: "0 auto", | |
width: "130px" | |
}, | |
buttonGroupStyleProps: { | |
alignItems: "stretch" | |
}, | |
continueChatButtonStyleProps: { | |
backgroundColor: "rgb(49, 95, 162)", | |
color: "rgb(255, 255, 255)", | |
cursor: "pointer", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "16px", | |
fontWeight: "600", | |
height: "60px", | |
marginBottom: "5px", | |
padding: "4px 10px 5px 10px" | |
}, | |
continueChatButtonHoveredStyleProps: { | |
filter: "brightness(0.8)" | |
}, | |
startNewChatButtonStyleProps: { | |
backgroundColor: "rgb(0, 0, 0)", | |
color: "rgb(255, 255, 255)", | |
cursor: "pointer", | |
fontFamily: "'Segoe UI', Arial, sans-serif", | |
fontSize: "16px", | |
fontWeight: "600", | |
height: "60px", | |
padding: "4px 10px 5px 10px" | |
}, | |
startNewChatButtonHoveredStyleProps: { | |
backgroundColor: "rgb(132, 132, 130)" | |
}, | |
classNames: { | |
containerClassName: undefined, | |
wrapperClassName: undefined, | |
titleClassName: undefined, | |
subtitleClassName: undefined, | |
iconClassName: undefined, | |
buttonGroupClassName: undefined, | |
continueChatButtonClassName: undefined, | |
startNewChatButtonClassName: undefined | |
} | |
}, | |
reconnectId: undefined, | |
redirectInSameWindow: undefined | |
}, | |
startChatErrorPaneProps: { | |
controlProps: { | |
titleText: "We are unable to load chat at this time.", | |
subtitleText: "Please try again later." | |
} | |
}, | |
styleProps: { | |
generalStyles: { | |
position: "absolute", | |
justifyContent: "center", | |
alignItems: "center", | |
// Below general style is for chat button only | |
boxShadow: "0px 0px 2px rgba(0, 0, 0, 0.16), 0px 4px 8px rgba(0, 0, 0, 0.12)", | |
MozBoxShadow: "0px 0px 2px rgba(0, 0, 0, 0.16), 0px 4px 8px rgba(0, 0, 0, 0.12)", | |
WebkitBoxShadow: "0px 0px 2px rgba(0, 0, 0, 0.16), 0px 4px 8px rgba(0, 0, 0, 0.12)", | |
borderRadius: "4px", | |
padding: "0.5" | |
}, | |
className: undefined | |
}, | |
webChatContainerProps: { | |
containerStyles: { | |
height: "100%", | |
width: "100%", | |
overflowY: "hidden" | |
}, | |
webChatStyles: { | |
// For the full list of WebChat StyleOptions, see https://github.com/microsoft/BotFramework-WebChat/blob/main/packages/api/src/StyleOptions.ts | |
avatarSize: 32, | |
backgroundColor: "#F7F7F9", | |
botAvatarBackgroundColor: "#315FA2", | |
botAvatarInitials: "WC", | |
bubbleBackground: "#315FA2", | |
bubbleBorderRadius: 4, | |
bubbleBorderWidth: 0, | |
bubbleFromUserBackground: "#FFFFFF", | |
bubbleFromUserBorderRadius: 4, | |
bubbleFromUserBorderWidth: 1, | |
bubbleFromUserTextColor: "Black", | |
bubbleImageHeight: 240, | |
bubbleMaxWidth: 250, | |
bubbleMinHeight: 34, | |
bubbleMinWidth: 20, | |
bubbleTextColor: "#FFFFFF", | |
hideSendBox: false, | |
hideUploadButton: true, | |
primaryFont: "Segoe UI, Arial, sans-serif", | |
rootHeight: "100%", | |
rootWidth: "100%", | |
sendBoxTextWrap: true, | |
sendBoxHeight: 60, | |
sendBoxMaxHeight: 96, | |
sendBoxBackground: "#FFFFFF", | |
showAvatarInGroup: true, | |
suggestedActionsStackedHeight: 125, | |
suggestedActionsStackedOverflow: "scroll" as any, // eslint-disable-line @typescript-eslint/no-explicit-any | |
typingAnimationDuration: 3500 | |
}, | |
webChatProps: { | |
// "core" props: language-neutral, SHOULD work on React Native (if we work on that later) | |
activityMiddleware: createActivityMiddleware(), | |
activityStatusMiddleware: activityStatusMiddleware, | |
attachmentForScreenReaderMiddleware: undefined, | |
attachmentMiddleware: createAttachmentMiddleware(true), | |
avatarMiddleware: createAvatarMiddleware(), | |
cardActionMiddleware: undefined, | |
children: undefined, | |
dir: "ltr", | |
disabled: undefined, | |
downscaleImageToDataURL: undefined, | |
grammars: undefined, | |
groupActivitiesMiddleware: groupActivitiesMiddleware as any, | |
internalErrorBoxClass: undefined, | |
internalRenderErrorBox: undefined, | |
locale: "en-US", | |
onTelemetry: createWebChatTelemetry(), | |
overrideLocalizedStrings: undefined, | |
renderMarkdown: createMarkdown(false, false), | |
scrollToEndButtonMiddleware: undefined, | |
selectVoice: undefined, | |
sendTypingIndicator: undefined, | |
store: WebChatStoreLoader.store, | |
toastMiddleware: undefined, | |
typingIndicatorMiddleware: typingIndicatorMiddleware, | |
userID: undefined, | |
username: undefined, | |
// "api" props: these stuff probably only works when in a web browser | |
extraStyleSet: undefined, | |
nonce: undefined, | |
styleSet: undefined, | |
suggestedActionsAccessKey: undefined, | |
webSpeechPonyfillFactory: undefined, | |
// "bundle" props: these stuff are not available if you "decompose" or "recompose" Web Chat. | |
// I.e. not using composition mode (or <Composer>). | |
className: undefined, | |
role: undefined, | |
}, | |
directLine: undefined, | |
storeMiddlewares: undefined, // Additional store middlewares | |
renderingMiddlewareProps: { | |
timestampDir: "ltr", | |
disableActivityMiddleware: false, | |
disableAttachmentMiddleware: false, | |
disableActivityStatusMiddleware: false, | |
disableAvatarMiddleware: false, | |
disableGroupActivitiesMiddleware: false, | |
disableTypingIndicatorMiddleware: false, | |
hideSendboxOnConversationEnd: true, | |
userMessageStyleProps: { | |
fontSize: "14px" | |
}, | |
systemMessageStyleProps: { | |
maxWidth: "100%", | |
color: "#605E5C", | |
background: "transparent", | |
fontSize: "12px", | |
borderRadius: 0, | |
minHeight: "auto", | |
fontFamily: "Segoe UI", | |
lineHeight: "16px", | |
padding: "0px 10px 0 10px" | |
}, | |
userMessageBoxStyles: { | |
maxWidth: "90%" | |
}, | |
systemMessageBoxStyles: { | |
maxWidth: "90%" | |
}, | |
typingIndicatorStyleProps: { | |
marginLeft: "10px", | |
marginBottom: "5px", | |
display: "flex", | |
transition: "all .5s ease", | |
alignItems: "center" | |
}, | |
typingIndicatorBubbleStyleProps: { | |
height: "6px", | |
width: "6px", | |
borderRadius: "6px", | |
background: "#315FA2", | |
animationDuration: "2s", | |
animationName: "bounce", | |
animationTimingFunction: "ease", | |
animationIterationCount: "infinite", | |
marginRight: "2px" | |
}, | |
typingIndicatorMessageStyleProps: { | |
fontFamily: "\"Segoe UI\", Arial, sans-serif", | |
background: "transparent", | |
fontSize: "12px", | |
lineHeight: "15px", | |
color: "#605e5c", | |
marginLeft: "6px" | |
}, | |
avatarStyleProps: { | |
width: "32px", | |
height: "32px", | |
borderRadius: "16px", | |
textAlign: "center", | |
backgroundColor: "#315FA2" | |
}, | |
avatarTextStyleProps: { | |
margin: "0", | |
fontFamily: "\"Segoe UI\", Arial, sans-serif", | |
fontWeight: 600, | |
fontSize: "13px", | |
lineHeight: "18px", | |
color: "#FFFFFF", | |
paddingTop: "7px", | |
WebkitUserSelect: "none", | |
MozUserSelect: "none", | |
userSelect: "none" | |
}, | |
timestampContentStyleProps: { | |
color: "#565452", | |
fontFamily: "\"Segoe UI\", Arial, sans-serif", | |
background: "transparent", | |
fontSize: "11px", | |
lineHeight: "15px", | |
paddingTop: 0 | |
}, | |
timestampFailedTextStyleProps: { | |
fontFamily: "\"Segoe UI\", Arial, sans-serif", | |
background: "transparent", | |
fontSize: "11px", | |
lineHeight: "15px", | |
paddingTop: 0, | |
color: "#A80000" | |
}, | |
timestampRetryTextStyleProps: { | |
fontFamily: "\"Segoe UI\", Arial, sans-serif", | |
background: "transparent", | |
fontSize: "11px", | |
lineHeight: "15px", | |
paddingTop: 0, | |
color: "#0063B1", | |
cursor: "pointer" | |
}, | |
attachmentProps: { | |
webChatAttachmentId: "oc-lcw-webchat-attachment", | |
adaptiveCardAttachmentId: "ms_lcw_webchat_adaptive_card", | |
enableInlinePlaying: true | |
}, | |
attachmentDividerStyles: { | |
margin: "0", | |
height: "1px", | |
border: "0px", | |
backgroundColor: "#E8EAEC" | |
}, | |
attachmentStyles: { | |
display: "flex", | |
alignItems: "center", | |
background: "transparent", | |
fontSize: "12px", | |
lineHeight: "16px", | |
boxSizing: "border-box", | |
borderRadius: "2px", | |
wordBreak: "break-all" | |
}, | |
attachmentIconStyles: { | |
direction: "rtl", | |
padding: "0 0 0 8px", | |
lineHeight: 0 | |
}, | |
attachmentAdaptiveCardStyles: { | |
borderStyle: "solid", | |
borderColor: "rgb(230, 230, 230)", | |
borderWidth: "1px" | |
}, | |
attachmentFileNameStyles: { | |
minHeight: "15px", | |
marginLeft: "5px", | |
marginRight: "5px", | |
color: "#000000 !important" | |
}, | |
attachmentDownloadIconStyles: { | |
height: "12px", | |
width: "12px", | |
marginLeft: "auto !important", | |
padding: "2px !important", | |
fill: "#000000 !important" | |
}, | |
attachmentContentStyles: { | |
width: "200px" | |
}, | |
attachmentSizeStyles: { | |
display: "none" | |
}, | |
receivedMessageAnchorStyles: { | |
color: "white", | |
filter: "none" | |
} | |
}, | |
localizedTexts: { | |
/* | |
MIDDLEWARE_BANNER_FILE parameters: | |
{0} = File limit size | |
{1} = File extension | |
{2} = File name | |
*/ | |
MIDDLEWARE_BANNER_FILE_NULL_ERROR: "There was an error uploading the file, please try again.", | |
MIDDLEWARE_BANNER_FILE_SIZE_WITHOUT_EXTENSION_ERROR: "File {2} exceeds the allowed limit of {0} MB and please upload the file with an appropriate file extension.", | |
MIDDLEWARE_BANNER_FILE_SIZE_EXTENSION_ERROR: "File {2} exceeds the allowed limit of {0} MB and {1} files are not supported.", | |
MIDDLEWARE_BANNER_FILE_WITHOUT_EXTENSION: "File upload error. Please upload the file {2} with an appropriate file extension.", | |
MIDDLEWARE_BANNER_FILE_EXTENSION_ERROR: "{1} files are not supported.", | |
MIDDLEWARE_BANNER_FILE_SIZE_ERROR: "File {2} exceeds the allowed limit of {0} MB.", | |
MIDDLEWARE_BANNER_FILE_IS_EMPTY_ERROR: "This file {2} can't be attached because it's empty. Please try again with a different file.", | |
MIDDLEWARE_BANNER_ERROR_MESSAGE: "Upload failed, please try again.", | |
MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE: "You're back online.", | |
MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION: "Unable to connect—please check your internet connection.", | |
MIDDLEWARE_MAX_CHARACTER_COUNT_EXCEEDED: "This message is too long. Please shorten your message to avoid sending failure.", | |
MIDDLEWARE_TYPING_INDICATOR_ONE: "{0} is typing ...", | |
MIDDLEWARE_TYPING_INDICATOR_TWO: "{0} and {1} are typing ...", | |
MIDDLEWARE_TYPING_INDICATOR_MULTIPLE: "{0} agents are typing ...", | |
MIDDLEWARE_MESSAGE_SENDING: "Sending ...", | |
MIDDLEWARE_MESSAGE_DELIVERED: "Sent", | |
MIDDLEWARE_MESSAGE_NOT_DELIVERED: "Not Delivered", | |
MIDDLEWARE_MESSAGE_RETRY: "Retry", | |
PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required", | |
MARKDOWN_EXTERNAL_LINK_ALT: "Opens in a new window; external.", | |
MIDDLEWARE_BANNER_CHAT_DISCONNECT: "Your conversation has been disconnected. For additional assistance, please start a new chat." | |
}, | |
botMagicCode: { | |
disabled: false, | |
fwdUrl: "" | |
}, | |
adaptiveCardStyles: { | |
background: "white", | |
color: "black", | |
anchorColor: "blue", | |
textWhiteSpace: "normal", | |
buttonWhiteSpace: "normal" | |
}, | |
hyperlinkTextOverride: false | |
}, | |
telemetryConfig: undefined as unknown as ITelemetryConfig, | |
getAuthToken: undefined, | |
initialCustomContext: undefined | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment