@azure/communication-react 1.18.0-alpha-202407060013 → 1.18.0-alpha-202407090014

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 (45) hide show
  1. package/dist/communication-react.d.ts +17 -4
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-DMEk2o-G.js → ChatMessageComponentAsRichTextEditBox-RrIa2t97.js} +62 -17
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-RrIa2t97.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-ByJFtf0Z.js → RichTextSendBoxWrapper-Bz_1ebsD.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-ByJFtf0Z.js.map → RichTextSendBoxWrapper-Bz_1ebsD.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-BPO9X27C.js → index-DGXoGo4W.js} +242 -94
  7. package/dist/dist-cjs/communication-react/index-DGXoGo4W.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +42 -4
  12. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  13. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +34 -8
  14. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  15. package/dist/dist-esm/chat-stateful-client/src/ResourceDownloadQueue.js +3 -0
  16. package/dist/dist-esm/chat-stateful-client/src/ResourceDownloadQueue.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +4 -0
  18. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +7 -1
  19. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.d.ts +4 -0
  21. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +62 -15
  22. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +1 -3
  24. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +18 -0
  26. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +0 -4
  28. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +7 -35
  29. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  30. package/dist/dist-esm/react-components/src/components/styles/Common.style.d.ts +4 -0
  31. package/dist/dist-esm/react-components/src/components/styles/Common.style.js +4 -0
  32. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +18 -0
  34. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.d.ts +17 -1
  36. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +70 -4
  37. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  38. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -1
  39. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +28 -16
  40. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +3 -1
  42. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
  43. package/package.json +1 -1
  44. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-DMEk2o-G.js.map +0 -1
  45. package/dist/dist-cjs/communication-react/index-BPO9X27C.js.map +0 -1
@@ -175,7 +175,7 @@ function getDefaultExportFromCjs (x) {
175
175
  // Copyright (c) Microsoft Corporation.
176
176
  // Licensed under the MIT License.
177
177
  // GENERATED FILE. DO NOT EDIT MANUALLY.
178
- var telemetryVersion = '1.18.0-alpha-202407060013';
178
+ var telemetryVersion = '1.18.0-alpha-202407090014';
179
179
 
180
180
 
181
181
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -5932,7 +5932,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
5932
5932
  wordBreak: 'break-word'
5933
5933
  });
5934
5934
 
5935
- var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{status} {author} said {message}",messageContentMineAriaText:"{status} You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted.",mutedByRemoteParticipant:"You were muted by another participant."};var notificationStack={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",closeButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",closeButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",closeButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",closeButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",closeButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",closeButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",closeButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",closeButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var MeetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollGeoData:"{country}, {city}",meetingConferencePhoneInfoModalTollFree:"(Toll-free)",meetingConferencePhoneInfoModalToll:"(Toll)"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notificationStack:notificationStack,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,MeetingConferencePhoneInfo:MeetingConferencePhoneInfo$k};
5935
+ var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{status} {author} said {message}",messageContentMineAriaText:"{status} You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentUploadsPendingError:"Uploading... Please wait."};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted.",mutedByRemoteParticipant:"You were muted by another participant."};var notificationStack={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",closeButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",closeButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",closeButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",closeButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",closeButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",closeButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",closeButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",closeButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var MeetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollGeoData:"{country}, {city}",meetingConferencePhoneInfoModalTollFree:"(Toll-free)",meetingConferencePhoneInfoModalToll:"(Toll)"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notificationStack:notificationStack,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,MeetingConferencePhoneInfo:MeetingConferencePhoneInfo$k};
5936
5936
 
5937
5937
  // Copyright (c) Microsoft Corporation.
5938
5938
  // Licensed under the MIT License.
@@ -9510,15 +9510,21 @@ const isAttachmentUploadCompleted = (attachmentsWithProgress) => {
9510
9510
  };
9511
9511
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
9512
9512
  /**
9513
- * @private
9513
+ * @internal
9514
9514
  */
9515
9515
  // Before sending the image, we need to add the image id we get back after uploading the images to the message content.
9516
9516
  const addUploadedImagesToMessage = (message, uploadInlineImages) => {
9517
+ if (message === '') {
9518
+ return message;
9519
+ }
9517
9520
  const document = new DOMParser().parseFromString(message !== null && message !== void 0 ? message : '', 'text/html');
9518
9521
  document.querySelectorAll('img').forEach((img) => {
9519
- var _a, _b;
9520
- img.id = (_b = (_a = uploadInlineImages.find((imageUpload) => !imageUpload.error && imageUpload.url === img.src)) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : '';
9521
- img.src = '';
9522
+ var _a;
9523
+ if (!img.id) {
9524
+ const uploadInlineImage = uploadInlineImages.find((imageUpload) => !imageUpload.error && (imageUpload.url === img.src || imageUpload.id === img.id));
9525
+ img.id = (_a = uploadInlineImage === null || uploadInlineImage === void 0 ? void 0 : uploadInlineImage.id) !== null && _a !== void 0 ? _a : '';
9526
+ img.src = '';
9527
+ }
9522
9528
  });
9523
9529
  const newMessage = document.body.innerHTML;
9524
9530
  return newMessage;
@@ -9559,6 +9565,66 @@ hasCompletedAttachmentUploads, hasError, disabled }) => {
9559
9565
  hasError ||
9560
9566
  disabled);
9561
9567
  };
9568
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
9569
+ /**
9570
+ * @internal
9571
+ */
9572
+ const cancelInlineImageUpload = (imageSrcArray, imageUploadsInProgress, onCancelInlineImageUpload) => {
9573
+ if (imageSrcArray && imageUploadsInProgress && (imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.length) > 0) {
9574
+ imageUploadsInProgress === null || imageUploadsInProgress === void 0 ? void 0 : imageUploadsInProgress.map((uploadImage) => {
9575
+ if (uploadImage.url && imageSrcArray && !(imageSrcArray === null || imageSrcArray === void 0 ? void 0 : imageSrcArray.includes(uploadImage.url))) {
9576
+ onCancelInlineImageUpload === null || onCancelInlineImageUpload === void 0 ? void 0 : onCancelInlineImageUpload(uploadImage.id);
9577
+ }
9578
+ });
9579
+ }
9580
+ };
9581
+ /* @conditional-compile-remove(file-sharing-acs) */
9582
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
9583
+ /**
9584
+ * @internal
9585
+ */
9586
+ const toAttachmentMetadata = (attachmentsWithProgress,
9587
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ attachmentType) => {
9588
+ return attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.filter((attachment) => {
9589
+ var _a;
9590
+ return !('error' in attachment) && !((_a = attachment.error) === null || _a === void 0 ? void 0 : _a.message);
9591
+ }).map((attachment) => {
9592
+ let url = attachment.url || '';
9593
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
9594
+ if (attachmentType === 'image') {
9595
+ url = '';
9596
+ }
9597
+ return {
9598
+ id: attachment.id,
9599
+ name: attachment.name,
9600
+ url,
9601
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
9602
+ attachmentType: attachmentType
9603
+ };
9604
+ });
9605
+ };
9606
+ /* @conditional-compile-remove(file-sharing-acs) */
9607
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
9608
+ /**
9609
+ * @internal
9610
+ */
9611
+ const insertAttachmentsAndImages = (content, attachments, imageUploadsInProgress) => {
9612
+ if (!attachments && !imageUploadsInProgress) {
9613
+ return { content, attachmentArray: undefined };
9614
+ }
9615
+ /* @conditional-compile-remove(file-sharing-acs) */
9616
+ let attachmentArray = toAttachmentMetadata(attachments);
9617
+ let newContent = content;
9618
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
9619
+ if (imageUploadsInProgress) {
9620
+ newContent = addUploadedImagesToMessage(content, imageUploadsInProgress);
9621
+ const imageArray = toAttachmentMetadata(imageUploadsInProgress, 'image');
9622
+ if (imageArray) {
9623
+ attachmentArray = attachmentArray ? attachmentArray === null || attachmentArray === void 0 ? void 0 : attachmentArray.concat(imageArray) : imageArray;
9624
+ }
9625
+ }
9626
+ return { content: newContent, attachmentArray };
9627
+ };
9562
9628
 
9563
9629
  // Copyright (c) Microsoft Corporation.
9564
9630
  // Licensed under the MIT License.
@@ -12015,8 +12081,8 @@ const RichTextSendBox = (props) => {
12015
12081
  }
12016
12082
  setContent(newValue);
12017
12083
  }, [
12018
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ onCancelInlineImageUpload,
12019
12084
  setContent,
12085
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ onCancelInlineImageUpload,
12020
12086
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadsInProgress
12021
12087
  ]);
12022
12088
  const hasContent = React.useMemo(() => {
@@ -12026,28 +12092,6 @@ const RichTextSendBox = (props) => {
12026
12092
  const plainTextContent = (_a = editorComponentRef.current) === null || _a === void 0 ? void 0 : _a.getPlainContent();
12027
12093
  return sanitizeText(contentValue !== null && contentValue !== void 0 ? contentValue : '').length > 0 && sanitizeText(plainTextContent !== null && plainTextContent !== void 0 ? plainTextContent : '').length > 0;
12028
12094
  }, [contentValue]);
12029
- /* @conditional-compile-remove(file-sharing-acs) */
12030
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
12031
- const toAttachmentMetadata = React.useCallback((attachmentsWithProgress,
12032
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ attachmentType) => {
12033
- return attachmentsWithProgress === null || attachmentsWithProgress === void 0 ? void 0 : attachmentsWithProgress.filter((attachment) => {
12034
- var _a;
12035
- return !('error' in attachment) && !((_a = attachment.error) === null || _a === void 0 ? void 0 : _a.message);
12036
- }).map((attachment) => {
12037
- let url = attachment.url || '';
12038
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
12039
- if (attachmentType === 'image') {
12040
- url = '';
12041
- }
12042
- return {
12043
- id: attachment.id,
12044
- name: attachment.name,
12045
- url,
12046
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
12047
- attachmentType: attachmentType
12048
- };
12049
- });
12050
- }, []);
12051
12095
  const sendMessageOnClick = React.useCallback(() => {
12052
12096
  var _a, _b;
12053
12097
  if (disabled || contentValueOverflow) {
@@ -12071,15 +12115,12 @@ const RichTextSendBox = (props) => {
12071
12115
  /* @conditional-compile-remove(file-sharing-acs) */ isAttachmentUploadCompleted(attachments) ||
12072
12116
  /* @conditional-compile-remove(rich-text-editor-image-upload) */ isAttachmentUploadCompleted(imageUploadsInProgress)) {
12073
12117
  /* @conditional-compile-remove(file-sharing-acs) */
12074
- let attachmentArray = toAttachmentMetadata(attachments);
12075
12118
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
12076
- if (imageUploadsInProgress) {
12077
- const imageArray = toAttachmentMetadata(imageUploadsInProgress, 'image');
12078
- if (imageArray) {
12079
- message = addUploadedImagesToMessage(message, imageUploadsInProgress);
12080
- attachmentArray = attachmentArray === null || attachmentArray === void 0 ? void 0 : attachmentArray.concat(imageArray);
12081
- }
12082
- }
12119
+ const { content, attachmentArray } = insertAttachmentsAndImages(contentValue,
12120
+ /* @conditional-compile-remove(file-sharing-acs) */ attachments,
12121
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ imageUploadsInProgress);
12122
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
12123
+ message = content;
12083
12124
  onSendMessage(message,
12084
12125
  /* @conditional-compile-remove(file-sharing-acs) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */
12085
12126
  {
@@ -12105,9 +12146,6 @@ const RichTextSendBox = (props) => {
12105
12146
  /* @conditional-compile-remove(file-sharing-acs) */
12106
12147
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
12107
12148
  strings.attachmentUploadsPendingError,
12108
- /* @conditional-compile-remove(file-sharing-acs) */
12109
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
12110
- toAttachmentMetadata,
12111
12149
  onSendMessage
12112
12150
  ]);
12113
12151
  const hasErrorMessage = React.useMemo(() => {
@@ -12289,6 +12327,26 @@ const MessageStatusIndicatorIconStyle = react.mergeStyles({
12289
12327
  height: `${MESSAGE_STATUS_INDICATOR_SIZE_REM}rem`
12290
12328
  });
12291
12329
 
12330
+ // Copyright (c) Microsoft Corporation.
12331
+ // Licensed under the MIT License.
12332
+ /**
12333
+ * @private
12334
+ */
12335
+ const scrollbarStyles = {
12336
+ '::-webkit-scrollbar, *::-webkit-scrollbar': {
12337
+ width: '0.3rem',
12338
+ height: '0.3rem'
12339
+ },
12340
+ '::-webkit-scrollbar-thumb, *::-webkit-scrollbar-thumb': {
12341
+ borderRadius: '10px',
12342
+ background: 'rgba(150, 150, 150)'
12343
+ }
12344
+ };
12345
+ /**
12346
+ * @private
12347
+ */
12348
+ const ERROR_IMAGE_SVG_PATH = 'M2.85 2.15a.5.5 0 1 0-.7.7l1.4 1.41A2.99 2.99 0 0 0 3 6v8a3 3 0 0 0 3 3h8c.65 0 1.25-.2 1.74-.55l1.4 1.4a.5.5 0 0 0 .71-.7l-15-15Zm6.56 7.97a1.5 1.5 0 0 0-.46.31l-4.67 4.59A2 2 0 0 1 4 14V6a2 2 0 0 1 .28-1.02l5.13 5.14ZM6 16a2 2 0 0 1-1.01-.27l4.66-4.58c.2-.2.5-.2.7 0l4.66 4.58A2 2 0 0 1 14 16H6ZM16 6v7.88l.9.9A3 3 0 0 0 17 14V6a3 3 0 0 0-3-3H6a3 3 0 0 0-.78.1l.9.9H14a2 2 0 0 1 2 2Zm-2 1.5a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0Zm-1 0a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0Z';
12349
+
12292
12350
  // Copyright (c) Microsoft Corporation.
12293
12351
  // Licensed under the MIT License.
12294
12352
  // Minimum chat bubble width. This matches the minimum chat bubble width from FluentUI
@@ -12482,6 +12540,23 @@ const useChatMessageStyles = reactComponents.makeStyles({
12482
12540
  top: '0',
12483
12541
  left: '0',
12484
12542
  display: 'block'
12543
+ },
12544
+ '& .broken-image-wrapper': {
12545
+ width: '12rem',
12546
+ height: '12rem',
12547
+ marginTop: '0.75rem',
12548
+ display: 'flex',
12549
+ justifyContent: 'center',
12550
+ alignItems: 'center',
12551
+ outline: `1px solid ${reactComponents.tokens.colorNeutralForegroundDisabled}`,
12552
+ backgroundColor: reactComponents.tokens.colorNeutralBackground2
12553
+ },
12554
+ '& .broken-image-wrapper:after': {
12555
+ content: `''`,
12556
+ maskImage: `url("data:image/svg+xml,%3Csvg width='3rem' height='3rem' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='currentColor'%3E%3Cpath d='${ERROR_IMAGE_SVG_PATH}' fill='currentColor' /%3E%3C/svg%3E");`,
12557
+ width: '3rem',
12558
+ height: '3rem',
12559
+ backgroundColor: `${reactComponents.tokens.colorNeutralForeground2}`
12485
12560
  }
12486
12561
  },
12487
12562
  bodyWithoutAvatar: {
@@ -14161,7 +14236,7 @@ class _ErrorBoundary extends React.Component {
14161
14236
  // Copyright (c) Microsoft Corporation.
14162
14237
  // Licensed under the MIT License.
14163
14238
  /* @conditional-compile-remove(rich-text-editor) */
14164
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DMEk2o-G.js'); }));
14239
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-RrIa2t97.js'); }));
14165
14240
  /**
14166
14241
  * @private
14167
14242
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -14169,7 +14244,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
14169
14244
  *
14170
14245
  * @conditional-compile-remove(rich-text-editor)
14171
14246
  */
14172
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DMEk2o-G.js'); });
14247
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-RrIa2t97.js'); });
14173
14248
  /**
14174
14249
  * @private
14175
14250
  */
@@ -14185,7 +14260,13 @@ const ChatMessageComponentAsEditBoxPicker = (props) => {
14185
14260
  React.createElement(React.Suspense, { fallback: simpleEditBox },
14186
14261
  React.createElement(ChatMessageComponentAsRichTextEditBox, Object.assign({}, props, {
14187
14262
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
14188
- onPaste: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onPaste })))));
14263
+ onPaste: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onPaste,
14264
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
14265
+ onUploadInlineImage: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onUploadInlineImage,
14266
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
14267
+ imageUploadsInProgress: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.imageUploadsInProgress,
14268
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
14269
+ onCancelInlineImageUpload: richTextEditorOptions === null || richTextEditorOptions === void 0 ? void 0 : richTextEditorOptions.onCancelInlineImageUpload })))));
14189
14270
  }
14190
14271
  return simpleEditBox;
14191
14272
  };
@@ -14246,9 +14327,7 @@ const ChatMyMessageComponent = (props) => {
14246
14327
  message.messageId &&
14247
14328
  (yield props.onUpdateMessage(message.messageId, text,
14248
14329
  /* @conditional-compile-remove(file-sharing-acs) */
14249
- {
14250
- attachments: attachments
14251
- }));
14330
+ { attachments: attachments }));
14252
14331
  setIsEditing(false);
14253
14332
  });
14254
14333
  }, [message, props]);
@@ -22857,22 +22936,6 @@ const _VideoBackgroundEffectsPicker = (props) => {
22857
22936
  })));
22858
22937
  };
22859
22938
 
22860
- // Copyright (c) Microsoft Corporation.
22861
- // Licensed under the MIT License.
22862
- /**
22863
- * @private
22864
- */
22865
- const scrollbarStyles = {
22866
- '::-webkit-scrollbar, *::-webkit-scrollbar': {
22867
- width: '0.3rem',
22868
- height: '0.3rem'
22869
- },
22870
- '::-webkit-scrollbar-thumb, *::-webkit-scrollbar-thumb': {
22871
- borderRadius: '10px',
22872
- background: 'rgba(150, 150, 150)'
22873
- }
22874
- };
22875
-
22876
22939
  // Copyright (c) Microsoft Corporation.
22877
22940
  // Licensed under the MIT License.
22878
22941
  /**
@@ -24643,19 +24706,38 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
24643
24706
  // affecting conditional-compile-remove(attachment-upload)
24644
24707
  onSendMessage: function (content, options) {
24645
24708
  return __awaiter$w(this, void 0, void 0, function* () {
24709
+ var _a, _b;
24646
24710
  const sendMessageRequest = {
24647
24711
  content,
24648
24712
  senderDisplayName: chatClient.getState().displayName
24649
24713
  };
24650
24714
  /* @conditional-compile-remove(file-sharing-acs) */
24715
+ const fileAttachments = (_a = options === null || options === void 0 ? void 0 : options.attachments) === null || _a === void 0 ? void 0 : _a.filter((attachment) => {
24716
+ const file = attachment;
24717
+ return file.attachmentType === undefined;
24718
+ });
24651
24719
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
24720
+ let imageAttachments;
24721
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24722
+ (_b = options === null || options === void 0 ? void 0 : options.attachments) === null || _b === void 0 ? void 0 : _b.map((attachment) => {
24723
+ const image = attachment;
24724
+ if (image.attachmentType === 'image') {
24725
+ imageAttachments === undefined ? (imageAttachments = [image]) : imageAttachments.push(image);
24726
+ }
24727
+ });
24652
24728
  if (options &&
24653
24729
  'attachments' in options &&
24654
24730
  options.attachments &&
24655
- options.attachments[0] &&
24656
- !options.attachments[0].attachmentType) {
24731
+ /* @conditional-compile-remove(file-sharing-acs) */
24732
+ ((fileAttachments && fileAttachments.length > 0) ||
24733
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24734
+ (imageAttachments && imageAttachments.length > 0))) {
24657
24735
  const chatSDKOptions = {
24658
- metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) }),
24736
+ metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), {
24737
+ /* @conditional-compile-remove(file-sharing-acs) */
24738
+ fileSharingMetadata: JSON.stringify(fileAttachments) }),
24739
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24740
+ attachments: imageAttachments,
24659
24741
  type: options.type
24660
24742
  };
24661
24743
  yield chatThreadClient.sendMessage(sendMessageRequest, chatSDKOptions);
@@ -24684,10 +24766,29 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
24684
24766
  /* @conditional-compile-remove(file-sharing-acs) */
24685
24767
  options) {
24686
24768
  return __awaiter$w(this, void 0, void 0, function* () {
24769
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24770
+ let imageAttachments;
24771
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24772
+ // get image attachments from content, including the ones before the editing and newly added ones during editing.
24773
+ const document = new DOMParser().parseFromString(content !== null && content !== void 0 ? content : '', 'text/html');
24774
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24775
+ document.querySelectorAll('img').forEach((img) => {
24776
+ if (imageAttachments === undefined) {
24777
+ imageAttachments = [];
24778
+ }
24779
+ imageAttachments.push({
24780
+ id: img.id,
24781
+ attachmentType: 'image'
24782
+ });
24783
+ });
24784
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24785
+ content = document.body.innerHTML;
24687
24786
  const updateMessageOptions = {
24688
24787
  content,
24689
24788
  /* @conditional-compile-remove(file-sharing-acs) */
24690
- metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) })
24789
+ metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) }),
24790
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
24791
+ attachments: imageAttachments
24691
24792
  };
24692
24793
  yield chatThreadClient.updateMessage(messageId, updateMessageOptions);
24693
24794
  });
@@ -25129,11 +25230,20 @@ const processChatMessageContent = (message) => {
25129
25230
  if (content) {
25130
25231
  const document = new DOMParser().parseFromString(content !== null && content !== void 0 ? content : '', 'text/html');
25131
25232
  document.querySelectorAll('img').forEach((img) => {
25132
- var _a, _b;
25233
+ var _a, _b, _c;
25133
25234
  const attachmentPreviewUrl = (_a = attachments.find((attachment) => attachment.id === img.id)) === null || _a === void 0 ? void 0 : _a.previewUrl;
25134
25235
  if (attachmentPreviewUrl) {
25135
25236
  const resourceCache = (_b = message.resourceCache) === null || _b === void 0 ? void 0 : _b[attachmentPreviewUrl];
25136
- img.src = getResourceSourceUrl(resourceCache);
25237
+ const src = getResourceSourceUrl(resourceCache);
25238
+ // if in error state
25239
+ if (src === undefined) {
25240
+ const brokenImageView = getBrokenImageViewNode(img);
25241
+ (_c = img.parentElement) === null || _c === void 0 ? void 0 : _c.replaceChild(brokenImageView, img);
25242
+ }
25243
+ else {
25244
+ // else in loading or success state
25245
+ img.setAttribute('src', src);
25246
+ }
25137
25247
  }
25138
25248
  });
25139
25249
  content = document.body.innerHTML;
@@ -25159,22 +25269,28 @@ const generateImageAttachmentImgHtml = (message, attachment) => {
25159
25269
  const contentType = extractAttachmentContentTypeFromName(attachment.name);
25160
25270
  const resourceCache = (_a = message.resourceCache) === null || _a === void 0 ? void 0 : _a[attachment.previewUrl];
25161
25271
  const src = getResourceSourceUrl(resourceCache);
25272
+ // if in error state
25273
+ if (src === undefined) {
25274
+ return `\r\n<p>${getBrokenImageViewNode()}</p>`;
25275
+ }
25276
+ // else in loading or success state
25162
25277
  return `\r\n<p><img alt="image" src="${src}" itemscope="${contentType}" id="${attachment.id}"></p>`;
25163
25278
  }
25164
25279
  return '';
25165
25280
  };
25166
25281
  const getResourceSourceUrl = (result) => {
25167
- let src = '';
25168
25282
  if (result) {
25169
- if (result.error || !result.sourceUrl) {
25170
- // In case of an error we set src to some invalid value to show broken image
25171
- src = 'blob://';
25283
+ if (!result.error && result.sourceUrl) {
25284
+ // return sourceUrl for success state
25285
+ return result.sourceUrl;
25172
25286
  }
25173
25287
  else {
25174
- src = result.sourceUrl;
25288
+ // return undefined for error state
25289
+ return undefined;
25175
25290
  }
25176
25291
  }
25177
- return src;
25292
+ // return empty string for loading state
25293
+ return '';
25178
25294
  };
25179
25295
  const extractAttachmentContentTypeFromName = (name) => {
25180
25296
  if (name === undefined) {
@@ -25308,6 +25424,17 @@ const sanitizedMessageContentType = (type) => {
25308
25424
  ? lowerCaseType
25309
25425
  : 'unknown';
25310
25426
  };
25427
+ const getBrokenImageViewNode = (img) => {
25428
+ var _a;
25429
+ const wrapper = document.createElement('div');
25430
+ Array.from((_a = img === null || img === void 0 ? void 0 : img.attributes) !== null && _a !== void 0 ? _a : []).forEach((attr) => {
25431
+ var _a;
25432
+ wrapper.setAttribute(attr.nodeName, (_a = attr.nodeValue) !== null && _a !== void 0 ? _a : '');
25433
+ });
25434
+ wrapper.setAttribute('class', 'broken-image-wrapper');
25435
+ wrapper.setAttribute('data-ui-id', 'broken-image-icon');
25436
+ return wrapper;
25437
+ };
25311
25438
  const isMessageValidToRender = (message) => {
25312
25439
  var _a, _b, _c, _d, _e;
25313
25440
  if (message.deletedOn) {
@@ -25781,6 +25908,9 @@ const fetchImageSource = (src, authentication, options) => __awaiter$v(void 0, v
25781
25908
  token = (yield authentication.credential.getToken()).token;
25782
25909
  }
25783
25910
  const response = yield fetchWithAuthentication(src, token, options);
25911
+ if (response.status >= 400) {
25912
+ throw new Error(`Failed to fetch image source. Status code: ${response.status}`);
25913
+ }
25784
25914
  const blob = yield response.blob();
25785
25915
  return URL.createObjectURL(blob);
25786
25916
  });
@@ -28372,7 +28502,7 @@ const AttachmentDownloadErrorBar = (props) => {
28372
28502
  /**
28373
28503
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
28374
28504
  */
28375
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-ByJFtf0Z.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
28505
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-Bz_1ebsD.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
28376
28506
  /**
28377
28507
  * @private
28378
28508
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -28380,13 +28510,15 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
28380
28510
  *
28381
28511
  /* @conditional-compile-remove(rich-text-editor-composite-support)
28382
28512
  */
28383
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-ByJFtf0Z.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
28513
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-Bz_1ebsD.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
28384
28514
  /**
28385
28515
  * @private
28386
28516
  */
28387
28517
  const SendBoxPicker = (props) => {
28388
28518
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
28389
28519
  const { richTextEditorOptions } = props;
28520
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28521
+ const { onPaste, onUploadInlineImage, imageUploadsInProgress, onCancelInlineImageUpload } = richTextEditorOptions || {};
28390
28522
  const sendBoxProps = usePropsFor$2(SendBox);
28391
28523
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
28392
28524
  const isRichTextEditorEnabled = React.useMemo(() => {
@@ -28397,7 +28529,7 @@ const SendBoxPicker = (props) => {
28397
28529
  if (isRichTextEditorEnabled) {
28398
28530
  return (React.createElement(_ErrorBoundary, { fallback: sendBox },
28399
28531
  React.createElement(React.Suspense, { fallback: sendBox },
28400
- React.createElement(RichTextSendBoxWrapper, Object.assign({}, props)))));
28532
+ React.createElement(RichTextSendBoxWrapper, Object.assign({}, props, { onPaste: onPaste, onUploadInlineImage: onUploadInlineImage, imageUploadsInProgress: imageUploadsInProgress, onCancelInlineImageUpload: onCancelInlineImageUpload })))));
28401
28533
  }
28402
28534
  return sendBox;
28403
28535
  };
@@ -28810,33 +28942,43 @@ const ChatScreen = (props) => {
28810
28942
  return;
28811
28943
  });
28812
28944
  }, [adapter, /* @conditional-compile-remove(rich-text-editor-image-upload) */ handleInlineImageUploadAction]);
28945
+ const onUpdateMessageHandler = React.useCallback((messageId, content) => __awaiter$m(void 0, void 0, void 0, function* () {
28946
+ yield messageThreadProps.onUpdateMessage(messageId, content);
28947
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28948
+ handleInlineImageUploadAction({ type: AttachmentUploadActionType.Clear });
28949
+ }), [/* @conditional-compile-remove(rich-text-editor-image-upload) */ handleInlineImageUploadAction, messageThreadProps]);
28950
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28951
+ const onCancelEditMessageHandler = React.useCallback(() => {
28952
+ handleInlineImageUploadAction({ type: AttachmentUploadActionType.Clear });
28953
+ }, [handleInlineImageUploadAction]);
28813
28954
  /* @conditional-compile-remove(file-sharing-acs) */
28814
28955
  const onCancelUploadHandler = React.useCallback((id) => {
28815
28956
  var _a, _b;
28816
28957
  handleUploadAction({ type: AttachmentUploadActionType.Remove, id });
28817
28958
  (_b = (_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handleAttachmentRemoval) === null || _b === void 0 ? void 0 : _b.call(_a, id);
28818
28959
  }, [attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions]);
28819
- /* @conditional-compile-remove(rich-text-editor-image-upload) */
28820
- const removeImageTags = React.useCallback((event) => {
28821
- event.content.querySelectorAll('img').forEach((image) => {
28822
- // If the image is the only child of its parent, remove all the parents of this img element.
28823
- let parentNode = image.parentElement;
28824
- let currentNode = image;
28825
- while ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.childNodes.length) === 1) {
28826
- currentNode = parentNode;
28827
- parentNode = parentNode.parentElement;
28828
- }
28829
- currentNode === null || currentNode === void 0 ? void 0 : currentNode.remove();
28830
- });
28831
- }, []);
28832
28960
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
28833
28961
  const richTextEditorOptions = React.useMemo(() => {
28834
28962
  return (options === null || options === void 0 ? void 0 : options.richTextEditor)
28835
28963
  ? {
28836
- /* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: removeImageTags
28964
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: undefined,
28965
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28966
+ onUploadInlineImage: onUploadInlineImage,
28967
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28968
+ imageUploadsInProgress: imageUploadsInProgress,
28969
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28970
+ onCancelInlineImageUpload: onCancelInlineImageUploadHandler
28837
28971
  }
28838
28972
  : undefined;
28839
- }, [options === null || options === void 0 ? void 0 : options.richTextEditor, removeImageTags]);
28973
+ }, [
28974
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28975
+ imageUploadsInProgress,
28976
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28977
+ onCancelInlineImageUploadHandler,
28978
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28979
+ onUploadInlineImage,
28980
+ options === null || options === void 0 ? void 0 : options.richTextEditor
28981
+ ]);
28840
28982
  return (React.createElement(react.Stack, { className: chatContainer, grow: true },
28841
28983
  (options === null || options === void 0 ? void 0 : options.topic) !== false && React.createElement(ChatHeader, Object.assign({}, headerProps)),
28842
28984
  React.createElement(react.Stack, { className: chatArea, tokens: participantListContainerPadding, horizontal: true, grow: true },
@@ -28846,7 +28988,9 @@ const ChatScreen = (props) => {
28846
28988
  React.createElement(AttachmentDownloadErrorBar, { onDismissDownloadErrorMessage: React.useCallback(() => {
28847
28989
  setDownloadErrorMessage('');
28848
28990
  }, []), attachmentDownloadErrorMessage: downloadErrorMessage || '' }),
28849
- React.createElement(MessageThread, Object.assign({}, messageThreadProps, { onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
28991
+ React.createElement(MessageThread, Object.assign({}, messageThreadProps, { onUpdateMessage: onUpdateMessageHandler,
28992
+ /* @conditional-compile-remove(rich-text-editor-image-upload) */
28993
+ onCancelEditMessage: onCancelEditMessageHandler, onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
28850
28994
  /* @conditional-compile-remove(file-sharing-acs) */
28851
28995
  onRenderAttachmentDownloads: onRenderAttachmentDownloads, inlineImageOptions: inlineImageOptions, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles,
28852
28996
  /* @conditional-compile-remove(rich-text-editor-composite-support) */
@@ -41921,6 +42065,7 @@ exports._IdentifierProvider = _IdentifierProvider;
41921
42065
  exports._formatString = _formatString;
41922
42066
  exports.attachmentMetadataReducer = attachmentMetadataReducer;
41923
42067
  exports.attachmentUploadCardsStyles = attachmentUploadCardsStyles;
42068
+ exports.cancelInlineImageUpload = cancelInlineImageUpload;
41924
42069
  exports.createAzureCommunicationCallAdapter = createAzureCommunicationCallAdapter;
41925
42070
  exports.createAzureCommunicationCallAdapterFromClient = createAzureCommunicationCallAdapterFromClient;
41926
42071
  exports.createAzureCommunicationCallWithChatAdapter = createAzureCommunicationCallWithChatAdapter;
@@ -41944,7 +42089,10 @@ exports.getMessageState = getMessageState;
41944
42089
  exports.getMessageWithAttachmentMetadata = getMessageWithAttachmentMetadata;
41945
42090
  exports.getSelector = getSelector$1;
41946
42091
  exports.getSelector$1 = getSelector;
42092
+ exports.hasIncompleteAttachmentUploads = hasIncompleteAttachmentUploads;
41947
42093
  exports.imageOverlayTheme = imageOverlayTheme;
42094
+ exports.insertAttachmentsAndImages = insertAttachmentsAndImages;
42095
+ exports.isAttachmentUploadCompleted = isAttachmentUploadCompleted;
41948
42096
  exports.lightTheme = lightTheme;
41949
42097
  exports.onRenderCancelIcon = onRenderCancelIcon;
41950
42098
  exports.onRenderSubmitIcon = onRenderSubmitIcon;
@@ -41972,4 +42120,4 @@ exports.useTeamsCall = useTeamsCall;
41972
42120
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
41973
42121
  exports.useTeamsCallAgent = useTeamsCallAgent;
41974
42122
  exports.useTheme = useTheme;
41975
- //# sourceMappingURL=index-BPO9X27C.js.map
42123
+ //# sourceMappingURL=index-DGXoGo4W.js.map