All notable changes to this project will be documented in this file.
- Added correct OCChatSDKTelemetryData type when telemetry event builder is alled for logSDKEvent
- Added Event broadcast from OOH pane when minimized so that iframe width height is adjusted
- Padding property to control the padding size choice input adaptive card form field
- Fixed resetting request id when getConversationDetails returns wrap or closed state
- For disconnected chats, perform a soft end chat.
- Audio button visibility state is tied to audio mute state.
- Restriction of the elements allowed to be render in the UI, to avoid security vulnerabilities.
- New Error Event to notify CX regarding Error in widget
- Padding property to control the padding size choice input adaptive card form field
- Uptake @microsoft/[email protected]
- Uptake @opentelemetry/[email protected]
- Uptake @azure/[email protected]
- Add mockChatSdk init call mock
- Export getMockChatSDKIfApplicable
- Fix to set the state of audio notification button through configuration props
- Fix to format the output when user do CTRL + COPY in transcript.html
- Add New adapter subscriber to ignore adaptive card message from rendering if it contains all invisible fields
- Add
mock
props to allow chat widget to run inmock mode
withDemoChatAdapter
- Expose
IBotAuthConfig
to support configuration offetchBotAuthConfigRetries
andfetchBotAuthConfigRetryInterval
- Patch for multitab scenarios with perf changes
- Improve load performance for startchat logic
- Added attachment in message received event payload
- Removed
PreChat Survey
rendering on loadingPersistent Chat
on an existing chat - Moved
AuthTokenAcquisition
to allowauth
http calls to Omnichannel service beforeStartChat
- Added
AuthTokenAcquisition
to happen duringStartChat
by default to supportpop-out chat
- When "offline" session recovers, detect if the session is active, otherwise hide send-box.
- Use of reconnectionId when calling reconnect API instead of orgId.
- Change LCW Designer default custom chat.
- Using default component for SlackMarkDown, to avoid problems with the code transpiled when using webpack5
- Uptake @microsoft/[email protected]
- Stopped logging the end chat exception when the conversation is disconnected or ended by the agent/bot.
- Updated dompurify version
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Removed postchat telemetry logs when postchat survey is disabled
- Add disclaimer note for prechat sample.
- Uptake @microsoft/[email protected]
- Updated
handleStartChatError
to logAuthenticatedChatConversationRetrievalFailure
as warning usinglogWidgetLoadCompleteWithError
instead of an error.
- Cleaning postsurvey state when ending the chat.
- Fixing disable strike through in markdown
- checking localStorage null or undefined
- Uptake @microsoft/[email protected]
- Add ability to pass external hosted URLs for the libraries of chat transcript
- Fixed an issue allowing multiple listeners to execute multiple times for the same event (GetLiveWorkItemDetail)
- Prechat payload from survey props get used when submitting response.
- Fixed external link icon color css issue for markdown messages.
- Fixed unread message count set to 0 on page refresh issue.
- Fixed the subsequent click issues in the multitab and popup modes when chat is in minimized state.
- Uptake @microsoft/[email protected]
- Send
omnichannel-chat-widget
as part ofocUserAgent
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Fix
suggestedActions
withto
property not rendering by passinguserID
toComposer
- Fix for handling properly close chat for persistent chat with postsurvey
- Fix for emoji characters showing for combination like :0 and :-0
- reverted - Fix
suggestedActions
withto
property not rendering by passinguserID
toComposer
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Fix system message dynamic themeing capability
- Fix systems messages are not being part of markdown rendering for active links
- Update banner message for browser storage unavailable.
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Running startChat SDK multiple times on an active chat without local storage is treated as a no-op
- Reconnecting to an unauthenticated popout reconnect chat with pre-chat survey configured does not present the pre-chat survey again
- Fix data
Data Masking
being enabled whenmsdyn_maskforcustomer
is set tofalse
anddataMaskingRules
is not empty. - Forcing failures on authenticated chats to be sent immediately during reconnect flow and don't allow to continue with the chat flow.
- Fix to handle pre-chat pane during reload and avoid the pane to be injected but no visible.
- Fix
ChatSDK.emailLiveChatTranscript()
not working afterChatSDK.endChat()
is called by not clearingliveChatContext
onchatTokenCleanUp
- Fix
ChatSDK.getLiveChatTranscript()
not working during post chat survey when user ends the conversation by retrevingliveChatContext
frominMemoryState
- For Auth Reconnect, setting
controlProps.hideReconnectChatPane
totrue
no longer hides the pane UI, but will completely skip the ReconnectPane rendering process. If there is a reconnectable chat, it will directly be rehydrated. If not, the chat button will show up - Uptake @microsoft/[email protected]
- Added
OCChatSDKVersion
,OCChatWidgetVersion
, andOCChatComponentsVersion
to base telemetry contract
- Fixed an issue where AdaptiveCard push button does not have
cursor: pointer
- Fixed an issue where StartChat event doesn't work after closing a refreshed chat
- Enabled customizations for the start chat error pane by adding new
IStartChatErrorPaneProps
interface - Added
PrepareEndChat
Telemetry Event to identify end chat workflow - Add specific error strings to start chat error pane for authentication related failure scenarios by including new texts to
IStartChatErrorPaneControlProps
- Fixed an issue, where after the agent end the chat and C2 sees the disconnect banner after toggling, refreshing the browser does not show the message box.
- Clear ChatSDK's internal
liveChatContext
whenconversationState
is set toClosed
onstartChat()
- A11Y fix for JAWS screen reader, not able to read/navigate messages when scan mode is activated
- Fix for InitiateEndChat event, which now updates state for confirmation pane, to enable close of the widget when clicking on the close button.
- Updated exception details on chat start to include http status code for all
WidgetLoadFailed
andWidgetLoadComplete
events with error - Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- [A11Y] Notification banner when e-mail address is introduced to receive transcript after chat ends
- Added
skipBroadcastChannelInit
prop to avoid duplicate initialization on BroadcastChannel
- Fixed an issue where invoking
StartChat
event will create different chats across all tabs - Fixed an issue where post chat does not load on first chat on a browser session
- Fixed widget crashing due to
BroadcastChannel
not supported onSafari
browsers below15.4
- Fixed an issue where Chat disconnect banner message is not showing localized text
- Fixed an issue where invoking
StartChat
opens pre-chat survey during out of operation hours - Fixed an issue where new chat starts even after reconnectUrl is being used
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Added customContext option in
StartChat
BroadcastEvent to pass in custom context variables synchronously - Add ability to block attachments on file scanning and on malicious files
- Fixed an issue where C2 voice/video feed does not end despite C2 ending the chat
- Added workaround to render all adaptive card texts properly
- Fixed an issue where agent post chat survey is used when customer closes the chat with only bot engagement
- Added toast middleware to override with custom notification pane for chat disconnect scenario
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Added new middleware (messageSequenceIdOverrideMiddleware) to ensure proper order of messages
- Added handling for OriginalMessageId in transcript component to fix sorting issues
- Uptake @microsoft/[email protected]
- Fixed an issue where sign-in card cannot be rendered
- Fixed an issue where video card cannot be rendered
- Fixed an issue where refreshing unauthenticated reconnect chat results in infinite loading
- Fixed an issue where unauthenticated reconnect chat doesn't work with valid reconnect id
- Fixed an issue where system message does not support html tags
- Uptake @microsoft/[email protected]
- Added parity to NewMessage event payload, and renamed
HistoryMessageReceived
toRehydrateMessageReceived
to avoid conflict with the same BroadcastEvent - Added Pull Request Template
- Fixed an issue where opening a chat right after agent ends the previous chat doesn't work
- Fixed an issue where opening/refreshing a persistent chat shows the Reconnect Pane
- Fixed SSO magic code due to incompatibility of broadcast channel
- Fixed an issue where custom context disappears after state cache expires
- Uptake @microsoft/[email protected]
- Add ability for widget to be draggable on desktop browser
- Added warning banner for third party cookies blocked alert
- Code refactor for event listening for custom context in pop-out mode
- Fixed texts in adaptive cards having same color with background
- Validations to avoid empty telemetry data.
- Used slack-markdown-it package for v1 parity
- Uptake @microsoft/[email protected]
- Exposed
adaptiveCardsHostConfig
from webchat and force button text wrap - Add ability to render transcript using
WebChat
- Added
OrganizationUrl
as a column in default logger - Adding
sentMessageAnchorStyles
customization for anchors
- [A11Y] Fix
aria-labels
on PreChatSurvey - Fix for storybooks issue with transcript properties
- Fix for visual tests
- Uptake @microsoft/[email protected]
- Added
enablePrechat
inProactiveChatStartPopoutChat
broadcast event - If
hidePreChatSurveyPane
is set, skip rendering prechat
- Fixed an issue where hideStartChatButton is true, and customer tries to reconnect from a new browser or InPrivate browser
- Fixed post chat survey not rendered for reconnect scnearios
- Fixed
ariaTelemetryLogger
not updatingcollectorUri
- Update
environmentVersion
to beprod
by default indefaultInternalTelemetryData
- Do not log OOOH errors as WidgetLoadFailure
- Added Broadcast event
ContactIdNotFound
when using OAuth 2.0 auth code grant
- Fixed custom context not showing for popout chat
- Fixed an issue where after ending chat and downloading transcript, a new chat cannot be started
- Uptake @microsoft/[email protected]
- Add
hyperlinkTextOverride
props to override anchor element'sinnerText
withhref
if they don't match to prevent URL spoofing
- Fixed an issue where data masking rule matching empty strings will cause infitnite loop
- Fixed custom context not showing for embed chat
- Fixed hyperlink not working in prechat pane
- Fixed multiple calls to EndChat when agent/bot ends conversation
- Reducing the number of duplicate logs for webchat client telemetry
- Fixed post chat survey is not rendering bot survey
- Code refactored for post chat survey
- Fixed popout chat is not showing Out of office pane
- Fixed popout chat is showing blank screen
- Better handling of end chat in case of multitab scenarios
- Prevent new chat creation failure after Proactive chat in Popout mode
- Fixed post chat having gap in popout mode
- Fixed initial custom context not being passed to OC
- Adding additional check for auth chats not to set custom context
- Fixed an issue where sending "InitiateEndChat" event doesn't end chat when no post chat is configured
- Fixed logging empty events
- Fixing reconnect message is appearing even after end chat
- Added MIDDLEWARE_BANNER_FILE parameter
{2}
to show the user the file name when an exception occurs, also implementing standard for parameter to keep backwards compatibility - Added initialCustomContext to ILiveChatWidgetProps
- Added
UpdateSessionDataForTelemetry
andUpdateConversationDataForTelemetry
inBroadcastEvents
- Fixed custom context not showing for embed chat
- Fixed hyperlink not working in prechat pane
- Uptake @microsoft/[email protected]
- Uptake @microsoft/[email protected]
- Added WebChat banner on chat disconnect depending on visibility events
- Stitched all components in chat-components package with default Omnichannel chat flow
- Exposed CSS style customizations on all UI components
- Hooked up with BotFramework WebChat and exposed all WebChat styles
- Included Omnichannel features by default, including pre chat, post chat, voice/video call, operating hours, etc.
- Added various documentations on features and package usages
- Fixed various bugs on chat flow and customizability
- Set resolution for 2.12.1 sanitize-html to prevent security vulnerabilities coming from webchat.
- Remove alert role from prechat component and use form role instead.
- Replacing
end call
shortcut key of pressingenter
withctrl + shift + h
to prevent call to end while sending message
- A11Y missing heading for header
- A11Y issue with buttons in reconnect pane.
- A11Y issue with missing H1 tag for input pane.
- A11Y issue with reconnect pane style when full screen mode is on.
- Uptake [email protected]
- Add ability to customize
PreChatSurveyPane
's toggle inputs usingIPreChatSurveyPaneToggleInputStyles
& Usebaseline
by default
- Fixed loading pane icon image fit
- Modify texts for email input validation
- Added tooltips for header and footer action bar buttons
- Added notification pane component to support chat disconnect notification customization
- Fixed PreChatPane not showing full text for toggle input text
- Added place holder for inputvalidationPane, to display the proper format of an email.
- Fixed font family issue with pre-chat survey pane
- Uptake [email protected]
- [A11Y] Support text spacing for chat button.
- [A11Y] Remove unnecessary region landmarks from header and footer.
- Fixed issue with markdown render which exposed the chat for XSS attacks.
- Moved ids and strings to Constants file
- Changed Footer vertical alignment to "center", and changed footer padding
- Added individual UI components like
Header
,Footer
, andChatButton
, etc. with customizablecontrolProps
andstyleProps
- Added
BroadcastService
to communicate with package consumer layer, and for telemetry purposes - Exposed
encodeComponentString
andencodeComponentString