@azure/communication-react 1.28.0-alpha-202506070019 → 1.28.0-alpha-202506120019

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 (68) hide show
  1. package/README.md +2 -2
  2. package/dist/communication-react.d.ts +3 -1
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BLQjFCiz.js → ChatMessageComponentAsRichTextEditBox-ngP-K5bA.js} +8 -9
  4. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-ngP-K5bA.js.map +1 -0
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DKX9Hw77.js → RichTextSendBoxWrapper-CsGkX3is.js} +2 -2
  6. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DKX9Hw77.js.map → RichTextSendBoxWrapper-CsGkX3is.js.map} +1 -1
  7. package/dist/dist-cjs/communication-react/{index-B1nXGt3n.js → index-rf3tf-XH.js} +185 -93
  8. package/dist/dist-cjs/communication-react/index-rf3tf-XH.js.map +1 -0
  9. package/dist/dist-cjs/communication-react/index.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  12. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +5 -2
  13. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  14. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js +9 -6
  15. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +7 -9
  17. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -1
  19. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +1 -1
  21. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.d.ts +1 -1
  23. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +6 -6
  24. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.d.ts +4 -0
  26. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +12 -0
  27. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  28. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +1 -0
  29. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +4 -2
  30. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js +2 -2
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +6 -1
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +13 -13
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +3 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +1 -1
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +6 -1
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +12 -9
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +1 -1
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +30 -9
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +6 -1
  49. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +6 -2
  51. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  52. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +3 -1
  53. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +6 -2
  55. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js +3 -1
  57. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ImageUpload/ImageUploadUtils.js.map +1 -1
  58. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +1 -1
  59. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +9 -5
  61. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  62. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +31 -17
  63. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  64. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +8 -4
  65. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  66. package/package.json +4 -4
  67. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-BLQjFCiz.js.map +0 -1
  68. package/dist/dist-cjs/communication-react/index-B1nXGt3n.js.map +0 -1
@@ -187,7 +187,7 @@ function getDefaultExportFromCjs (x) {
187
187
  // Copyright (c) Microsoft Corporation.
188
188
  // Licensed under the MIT License.
189
189
  // GENERATED FILE. DO NOT EDIT MANUALLY.
190
- var telemetryVersion = '1.28.0-alpha-202506070019';
190
+ var telemetryVersion = '1.28.0-alpha-202506120019';
191
191
 
192
192
 
193
193
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -2221,8 +2221,11 @@ class ProxyDeviceManager {
2221
2221
  navigator.permissions.query({ name: 'camera' }),
2222
2222
  navigator.permissions.query({ name: 'microphone' })
2223
2223
  ]);
2224
- hasCameraPermission = cameraPermissions.state === 'granted';
2225
- hasMicPermission = micPermissions.state === 'granted';
2224
+ // Use logical OR to combine the SDK state with the Permissions API state.
2225
+ // This way we can get a more accurate picture of the device permission state.
2226
+ // If the SDK state is 'granted', we don't need to check the Permissions API state.
2227
+ hasCameraPermission || (hasCameraPermission = cameraPermissions.state === 'granted');
2228
+ hasMicPermission || (hasMicPermission = micPermissions.state === 'granted');
2226
2229
  }
2227
2230
  catch (e) {
2228
2231
  console.info('Permissions API is not supported by browser', e);
@@ -7563,7 +7566,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
7563
7566
  wordBreak: 'break-word'
7564
7567
  });
7565
7568
 
7566
- var participantItem$n={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",handRaisedIconLabel:"Hand raised - Position {position}",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",participantItemAriaLabel:"{displayName}, {handRaisedState}, {mutedState}, {micDisabledState}, {cameraDisabledState}, {sharingState}, {connectionState}",participantItemWithMoreOptionsAriaLabel:"{displayName}, {handRaisedState}, {mutedState}, {micDisabledState}, {cameraDisabledState}, {sharingState}, {connectionState}, More Options",attendeeRole:"Attendee",micDisabledIconLabel:"Micophone disabled",cameraDisabledIconLabel:"Camera disabled"};var ParticipantList$o={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$n={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$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is 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",richTextToolbarAriaLabel:"Message Formatting Toolbar",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var realTimeTextModal$n={realTimeTextModalAriaLabel:"Turn on RTT Modal",realTimeTextModalTitle:"Turn on RTT?",realTimeTextModalText:"Real-time text (RTT) will be turned on for everyone in the meeting.",realTimeTextConfirmButtonLabel:"Turn on",realTimeTextCancelButtonLabel:"Cancel",realTimeTextCloseModalButtonAriaLabel:"Close RTT Modal"};var captionsBanner$n={captionsBannerSpinnerText:"Starting captions...",realTimeTextInputBoxDefaultText:"Type message in real time",realTimeTextInputErrorMessage:"Message can not exceed 2000 characters",realTimeTextBannerTitle:"RTT",realTimeTextBannerContent:"RTT (real-time text) is enabled for all participants for the entire duration of the meeting.",realTimeTextBannerLinkLabel:"Learn more",captionsOnlyContainerTitle:"Captions",realTimeTextOnlyContainerTitle:"Real-Time Text",captionsAndRealTimeTextContainerTitle:"Captions and Real-Time Text",expandButtonAriaLabel:"Expand",minimizeButtonAriaLabel:"Collapse"};var mentionPopover$n={mentionPopoverHeader:"Suggestions"};var imageOverlay$n={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close",overlayVisibleMessage:"Image Details Overlay"};var messageStatusIndicator$n={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$n={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$n={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",offSplitButtonAriaLabel:"Turn on camera",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",cameraButtonAriaDescription:"camera options"};var microphoneButton$n={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 mic",offSplitButtonAriaLabel:"Unmute mic",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute mic",onSplitButtonMicrophonePrimaryAction:"Mute mic",microphonePrimaryActionSplitButtonTitle:"Use microphone",microphoneAriaDescription:"Audio options",deepNoiseSuppressionTitle:"Noise suppression",deepNoiseSuppressionOnAnnouncement:"Deep noise suppression has been turned on",deepNoiseSuppressionOffAnnouncement:"Deep noise suppression has been turned off"};var devicesButton$n={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$n={label:"People",ariaLabel:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$n={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$n={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$n={label:"React",ariaLabel:"React",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var realTimeText$n={isTypingText:"RTT typing"};var captionsSettingsModal$n={captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting"};var spokenLanguages$n={"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"};var captionLanguages$n={ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"};var startCaptionsButton$n={onLabel:"Turn on captions",offLabel:"Turn off captions",tooltipOnContent:"Turn off captions",tooltipOffContent:"Turn on captions"};var startRealTimeTextButton$n={label:"Turn on RTT for this call",tooltipOffContent:"Turn on RTT for this call"};var messageThread$n={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:"Message from {author}",editedMessageLiveAuthorIntro:"Edited message from {author}",editedMessageLocalUserLiveAuthorIntro:"Edited message",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:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var errorBar$n={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.",teamsMeetingCallNetworkQualityLow:"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$n={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",dismissButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",dismissButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",dismissButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",dismissButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",dismissButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",dismissButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",dismissButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",dismissButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close"},teamsMeetingCallNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close",message:"Join this call from your phone for better sound. You can continue viewing the meeting on this device.",primaryButtonLabel:"Join by Phone"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",dismissButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"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.",dismissButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",dismissButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",dismissButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",dismissButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",dismissButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"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.",dismissButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",dismissButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",dismissButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",dismissButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",dismissButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",dismissButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",dismissButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",dismissButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",dismissButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",dismissButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",dismissButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",dismissButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",dismissButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",dismissButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpened:{title:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomChanged:{title:"Your breakout room has changed",message:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomClosed:{title:"Your breakout room has closed",message:"We'll move you back to your meeting in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpenedPromptJoin:{title:"Join breakout room?",message:"You've been assigned to a breakout room.",dismissButtonAriaLabel:"Close",primaryButtonLabel:"Join room",secondaryButtonLabel:"Later"},breakoutRoomJoined:{title:"You have joined a breakout room.",dismissButtonAriaLabel:"Close"},breakoutRoomClosingSoon:{title:"Room time limit about to expire.",message:"This room will close in 30 seconds",dismissButtonAriaLabel:"Close"},capabilityTurnVideoOnPresent:{title:"Your camera has been enabled",message:"Turn it on if you'd like to share video.",dismissButtonAriaLabel:"Close"},capabilityTurnVideoOnAbsent:{title:"Your camera has been disabled",message:"You can no longer share video.",dismissButtonAriaLabel:"Close"},capabilityUnmuteMicPresent:{title:"Your mic has been enabled",message:"Unmute if you'd like to speak.",dismissButtonAriaLabel:"Close"},capabilityUnmuteMicAbsent:{title:"Your mic has been disabled",message:"You can no longer unmute.",dismissButtonAriaLabel:"Close"},togetherModeStarted:{title:"Togethermode has started",dismissButtonAriaLabel:"Close"},togetherModeEnded:{title:"Togethermode has ended",dismissButtonAriaLabel:"Close"},transcriptionError:{title:"Something went wrong with transcription.",message:"Transcription has stopped. please try again later",dismissButtonAriaLabel:"Close"},transcriptionStartedByYou:{title:"Transcription has started.",message:"Started by you. Let everyone know they are being transcribed.",dismissButtonAriaLabel:"Close"}};var videoGallery$n={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localScreenShareLoadingMessage:"Loading your 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",waitingScreenText:"Waiting for others to join",forbidAudio:"Disable mic",permitAudio:"Allow mic",forbidAudioTileMenuLabel:"Disable mic",permitAudioTileMenuLabel:"Allow mic",forbidVideo:"Disable camera",permitVideo:"Allow camera",forbidVideoTileMenuLabel:"Disable camera",permitVideoTileMenuLabel:"Allow camera"};var dialpad$n={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$n={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$n={participantStateRinging:"Calling...",participantReconnecting:"Reconnecting...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options {displayName} {isMuted} {micDisabledState} {cameraDisabledState} {isHandRaised} {state} {isSpeaking}",moreOptionsParticipantMutedStateMutedAriaLabel:"muted",moreOptionsParticipantMutedStateUnmutedAriaLabel:"unmuted",moreOptionsParticipantHandRaisedAriaLabel:"Hand raised",moreOptionsParticipantIsSpeakingAriaLabel:"Speaking",moreOptionsParticipantMicDisabledAriaLabel:"Microphone disabled",moreOptionsParticipantCameraDisabledAriaLabel:"Camera disabled"};var CameraAndMicrophoneSitePermissionsRequest$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$o={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$o={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$o={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$n={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$n={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$n={leftNavButtonAriaLabel:"previous page {current} of {total}",rightNavButtonAriaLabel:"next page {current} of {total}"};var meetingConferencePhoneInfo$n={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 IncomingCallNotification$o={incomingCallNotificationPlaceholderId:"Unknown User",incomingCallNotificationPlaceholderAlert:"{callerName} is calling",incomingCallNoticicationAcceptWithAudioAriaLabel:"Accept with audio",incomingCallNoticicationAcceptWithVideoAriaLabel:"Accept with video",incomingCallNoticicationRejectAriaLabel:"Reject",incomingCallNotificationAcceptButtonLabel:"Accept",incomingCallNotificationRejectButtonLabel:"Decline",incomingCallNotificationAccceptWithVideoButtonLabel:"Accept with Video",incomingCallNotificationDismissButtonAriaLabel:"Dismiss"};var en_US$1 = {participantItem:participantItem$n,ParticipantList:ParticipantList$o,typingIndicator:typingIndicator$n,sendBox:sendBox$n,richTextSendBox:richTextSendBox$n,realTimeTextModal:realTimeTextModal$n,captionsBanner:captionsBanner$n,mentionPopover:mentionPopover$n,imageOverlay:imageOverlay$n,messageStatusIndicator:messageStatusIndicator$n,endCallButton:endCallButton$n,cameraButton:cameraButton$n,microphoneButton:microphoneButton$n,devicesButton:devicesButton$n,participantsButton:participantsButton$n,screenShareButton:screenShareButton$n,raiseHandButton:raiseHandButton$n,reactionButton:reactionButton$n,realTimeText:realTimeText$n,captionsSettingsModal:captionsSettingsModal$n,spokenLanguages:spokenLanguages$n,captionLanguages:captionLanguages$n,startCaptionsButton:startCaptionsButton$n,startRealTimeTextButton:startRealTimeTextButton$n,messageThread:messageThread$n,errorBar:errorBar$n,notificationStack:notificationStack$n,videoGallery:videoGallery$n,dialpad:dialpad$n,holdButton:holdButton$n,videoTile:videoTile$n,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$n,CameraSitePermissionsRequest:CameraSitePermissionsRequest$n,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$n,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$n,CameraSitePermissionsCheck:CameraSitePermissionsCheck$n,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$n,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$n,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$n,CameraSitePermissionsDenied:CameraSitePermissionsDenied$n,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$n,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$n,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$n,UnsupportedBrowser:UnsupportedBrowser$o,UnsupportedBrowserVersion:UnsupportedBrowserVersion$o,UnsupportedOperatingSystem:UnsupportedOperatingSystem$o,BrowserPermissionDenied:BrowserPermissionDenied$n,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$n,verticalGallery:verticalGallery$n,meetingConferencePhoneInfo:meetingConferencePhoneInfo$n,IncomingCallNotification:IncomingCallNotification$o};
7569
+ var participantItem$n={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",handRaisedIconLabel:"Hand raised - Position {position}",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",participantItemAriaLabel:"{displayName}, {handRaisedState}, {mutedState}, {micDisabledState}, {cameraDisabledState}, {sharingState}, {connectionState}",participantItemWithMoreOptionsAriaLabel:"{displayName}, {handRaisedState}, {mutedState}, {micDisabledState}, {cameraDisabledState}, {sharingState}, {connectionState}, More Options",attendeeRole:"Attendee",micDisabledIconLabel:"Micophone disabled",cameraDisabledIconLabel:"Camera disabled"};var ParticipantList$o={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$n={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$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is 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",richTextToolbarAriaLabel:"Message Formatting Toolbar",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var realTimeTextModal$n={realTimeTextModalAriaLabel:"Turn on RTT Modal",realTimeTextModalTitle:"Turn on RTT?",realTimeTextModalText:"Real-time text (RTT) will be turned on for everyone in the meeting.",realTimeTextConfirmButtonLabel:"Turn on",realTimeTextCancelButtonLabel:"Cancel",realTimeTextCloseModalButtonAriaLabel:"Close RTT Modal"};var captionsBanner$n={captionsBannerSpinnerText:"Starting captions...",realTimeTextInputBoxDefaultText:"Type message in real time",realTimeTextInputErrorMessage:"Message can not exceed 2000 characters",realTimeTextBannerTitle:"RTT",realTimeTextBannerContent:"RTT (real-time text) is enabled for all participants for the entire duration of the meeting.",realTimeTextBannerLinkLabel:"Learn more",captionsOnlyContainerTitle:"Captions",realTimeTextOnlyContainerTitle:"Real-Time Text",captionsAndRealTimeTextContainerTitle:"Captions and Real-Time Text",expandButtonAriaLabel:"Expand",minimizeButtonAriaLabel:"Collapse"};var mentionPopover$n={mentionPopoverHeader:"Suggestions"};var imageOverlay$n={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close",overlayVisibleMessage:"Image Details Overlay"};var messageStatusIndicator$n={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$n={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$n={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",offSplitButtonAriaLabel:"Turn on camera",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",cameraButtonAriaDescription:"camera options"};var microphoneButton$n={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 mic",offSplitButtonAriaLabel:"Unmute mic",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute mic",onSplitButtonMicrophonePrimaryAction:"Mute mic",microphonePrimaryActionSplitButtonTitle:"Use microphone",microphoneAriaDescription:"Audio options",deepNoiseSuppressionTitle:"Noise suppression",deepNoiseSuppressionOnAnnouncement:"Deep noise suppression has been turned on",deepNoiseSuppressionOffAnnouncement:"Deep noise suppression has been turned off"};var devicesButton$n={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$n={label:"People",ariaLabel:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$n={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$n={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$n={label:"React",ariaLabel:"React",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var realTimeText$n={isTypingText:"RTT typing"};var captionsSettingsModal$n={captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting"};var spokenLanguages$n={"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"};var captionLanguages$n={ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"};var startCaptionsButton$n={onLabel:"Turn on captions",offLabel:"Turn off captions",tooltipOnContent:"Turn off captions",tooltipOffContent:"Turn on captions"};var startRealTimeTextButton$n={label:"Turn on RTT for this call",tooltipOffContent:"Turn on RTT for this call"};var messageThread$n={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:"Message from {author}",editedMessageLiveAuthorIntro:"Edited message from {author}",editedMessageLocalUserLiveAuthorIntro:"Edited message",messageContentAriaText:"{status} {author} said {message}",messageContentMineAriaText:"{status} You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxEmptyWarningText:"Please type a message to continue",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:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var errorBar$n={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.",teamsMeetingCallNetworkQualityLow:"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$n={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",dismissButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",dismissButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",dismissButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",dismissButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",dismissButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",dismissButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",dismissButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",dismissButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close"},teamsMeetingCallNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close",message:"Join this call from your phone for better sound. You can continue viewing the meeting on this device.",primaryButtonLabel:"Join by Phone"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",dismissButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"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.",dismissButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",dismissButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",dismissButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",dismissButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",dismissButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"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.",dismissButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",dismissButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",dismissButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",dismissButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",dismissButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",dismissButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",dismissButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",dismissButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",dismissButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",dismissButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",dismissButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",dismissButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",dismissButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",dismissButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpened:{title:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomChanged:{title:"Your breakout room has changed",message:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomClosed:{title:"Your breakout room has closed",message:"We'll move you back to your meeting in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpenedPromptJoin:{title:"Join breakout room?",message:"You've been assigned to a breakout room.",dismissButtonAriaLabel:"Close",primaryButtonLabel:"Join room",secondaryButtonLabel:"Later"},breakoutRoomJoined:{title:"You have joined a breakout room.",dismissButtonAriaLabel:"Close"},breakoutRoomClosingSoon:{title:"Room time limit about to expire.",message:"This room will close in 30 seconds",dismissButtonAriaLabel:"Close"},capabilityTurnVideoOnPresent:{title:"Your camera has been enabled",message:"Turn it on if you'd like to share video.",dismissButtonAriaLabel:"Close"},capabilityTurnVideoOnAbsent:{title:"Your camera has been disabled",message:"You can no longer share video.",dismissButtonAriaLabel:"Close"},capabilityUnmuteMicPresent:{title:"Your mic has been enabled",message:"Unmute if you'd like to speak.",dismissButtonAriaLabel:"Close"},capabilityUnmuteMicAbsent:{title:"Your mic has been disabled",message:"You can no longer unmute.",dismissButtonAriaLabel:"Close"},togetherModeStarted:{title:"Togethermode has started",dismissButtonAriaLabel:"Close"},togetherModeEnded:{title:"Togethermode has ended",dismissButtonAriaLabel:"Close"},transcriptionError:{title:"Something went wrong with transcription.",message:"Transcription has stopped. please try again later",dismissButtonAriaLabel:"Close"},transcriptionStartedByYou:{title:"Transcription has started.",message:"Started by you. Let everyone know they are being transcribed.",dismissButtonAriaLabel:"Close"}};var videoGallery$n={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localScreenShareLoadingMessage:"Loading your 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",waitingScreenText:"Waiting for others to join",forbidAudio:"Disable mic",permitAudio:"Allow mic",forbidAudioTileMenuLabel:"Disable mic",permitAudioTileMenuLabel:"Allow mic",forbidVideo:"Disable camera",permitVideo:"Allow camera",forbidVideoTileMenuLabel:"Disable camera",permitVideoTileMenuLabel:"Allow camera"};var dialpad$n={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$n={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$n={participantStateRinging:"Calling...",participantReconnecting:"Reconnecting...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options {displayName} {isMuted} {micDisabledState} {cameraDisabledState} {isHandRaised} {state} {isSpeaking}",moreOptionsParticipantMutedStateMutedAriaLabel:"muted",moreOptionsParticipantMutedStateUnmutedAriaLabel:"unmuted",moreOptionsParticipantHandRaisedAriaLabel:"Hand raised",moreOptionsParticipantIsSpeakingAriaLabel:"Speaking",moreOptionsParticipantMicDisabledAriaLabel:"Microphone disabled",moreOptionsParticipantCameraDisabledAriaLabel:"Camera disabled"};var CameraAndMicrophoneSitePermissionsRequest$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$n={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$o={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$o={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$o={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$n={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$n={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$n={leftNavButtonAriaLabel:"previous page {current} of {total}",rightNavButtonAriaLabel:"next page {current} of {total}"};var meetingConferencePhoneInfo$n={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 IncomingCallNotification$o={incomingCallNotificationPlaceholderId:"Unknown User",incomingCallNotificationPlaceholderAlert:"{callerName} is calling",incomingCallNoticicationAcceptWithAudioAriaLabel:"Accept with audio",incomingCallNoticicationAcceptWithVideoAriaLabel:"Accept with video",incomingCallNoticicationRejectAriaLabel:"Reject",incomingCallNotificationAcceptButtonLabel:"Accept",incomingCallNotificationRejectButtonLabel:"Decline",incomingCallNotificationAccceptWithVideoButtonLabel:"Accept with Video",incomingCallNotificationDismissButtonAriaLabel:"Dismiss"};var en_US$1 = {participantItem:participantItem$n,ParticipantList:ParticipantList$o,typingIndicator:typingIndicator$n,sendBox:sendBox$n,richTextSendBox:richTextSendBox$n,realTimeTextModal:realTimeTextModal$n,captionsBanner:captionsBanner$n,mentionPopover:mentionPopover$n,imageOverlay:imageOverlay$n,messageStatusIndicator:messageStatusIndicator$n,endCallButton:endCallButton$n,cameraButton:cameraButton$n,microphoneButton:microphoneButton$n,devicesButton:devicesButton$n,participantsButton:participantsButton$n,screenShareButton:screenShareButton$n,raiseHandButton:raiseHandButton$n,reactionButton:reactionButton$n,realTimeText:realTimeText$n,captionsSettingsModal:captionsSettingsModal$n,spokenLanguages:spokenLanguages$n,captionLanguages:captionLanguages$n,startCaptionsButton:startCaptionsButton$n,startRealTimeTextButton:startRealTimeTextButton$n,messageThread:messageThread$n,errorBar:errorBar$n,notificationStack:notificationStack$n,videoGallery:videoGallery$n,dialpad:dialpad$n,holdButton:holdButton$n,videoTile:videoTile$n,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$n,CameraSitePermissionsRequest:CameraSitePermissionsRequest$n,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$n,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$n,CameraSitePermissionsCheck:CameraSitePermissionsCheck$n,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$n,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$n,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$n,CameraSitePermissionsDenied:CameraSitePermissionsDenied$n,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$n,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$n,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$n,UnsupportedBrowser:UnsupportedBrowser$o,UnsupportedBrowserVersion:UnsupportedBrowserVersion$o,UnsupportedOperatingSystem:UnsupportedOperatingSystem$o,BrowserPermissionDenied:BrowserPermissionDenied$n,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$n,verticalGallery:verticalGallery$n,meetingConferencePhoneInfo:meetingConferencePhoneInfo$n,IncomingCallNotification:IncomingCallNotification$o};
7567
7570
 
7568
7571
  // Copyright (c) Microsoft Corporation.
7569
7572
  // Licensed under the MIT License.
@@ -14014,7 +14017,7 @@ const RichTextSendBoxErrors = (props) => {
14014
14017
  /* @conditional-compile-remove(file-sharing-acs) */
14015
14018
  attachmentProgressError,
14016
14019
  /* @conditional-compile-remove(file-sharing-acs) */
14017
- attachmentUploadsPendingError, systemMessage, textTooLongMessage } = props;
14020
+ attachmentUploadsPendingError, systemMessage, textValidationErrorMessage } = props;
14018
14021
  const [sendBoxError, setSendBoxError] = React.useState(undefined);
14019
14022
  React.useEffect(() => {
14020
14023
  if (systemMessage && !isMessageEmpty$1(systemMessage)) {
@@ -14022,16 +14025,16 @@ const RichTextSendBoxErrors = (props) => {
14022
14025
  }
14023
14026
  }, [systemMessage]);
14024
14027
  React.useEffect(() => {
14025
- if (textTooLongMessage && !isMessageEmpty$1(textTooLongMessage)) {
14026
- setSendBoxError({ message: textTooLongMessage, timestamp: Date.now() });
14028
+ if (textValidationErrorMessage && !isMessageEmpty$1(textValidationErrorMessage)) {
14029
+ setSendBoxError({ message: textValidationErrorMessage, timestamp: Date.now() });
14027
14030
  }
14028
- }, [textTooLongMessage]);
14031
+ }, [textValidationErrorMessage]);
14029
14032
  React.useEffect(() => {
14030
- if ((textTooLongMessage === undefined || isMessageEmpty$1(textTooLongMessage)) &&
14033
+ if ((textValidationErrorMessage === undefined || isMessageEmpty$1(textValidationErrorMessage)) &&
14031
14034
  (systemMessage === undefined || isMessageEmpty$1(systemMessage))) {
14032
14035
  setSendBoxError(undefined);
14033
14036
  }
14034
- }, [systemMessage, textTooLongMessage]);
14037
+ }, [systemMessage, textValidationErrorMessage]);
14035
14038
  React.useEffect(() => {
14036
14039
  setSendBoxError((prev) => {
14037
14040
  const errors = [];
@@ -14299,7 +14302,7 @@ const RichTextSendBox = (props) => {
14299
14302
  }
14300
14303
  : undefined,
14301
14304
  systemMessage: systemMessage,
14302
- textTooLongMessage: contentTooLongMessage
14305
+ textValidationErrorMessage: contentTooLongMessage
14303
14306
  };
14304
14307
  }, [
14305
14308
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -14938,6 +14941,16 @@ function getMessageState(messageText,
14938
14941
  ? 'too long'
14939
14942
  : 'OK';
14940
14943
  }
14944
+ /**
14945
+ * @private
14946
+ */
14947
+ const getTextValidationErrorMessage = (messageState, tooLongString, tooShortString, imageOverflow = false) => {
14948
+ return messageState === 'too long' || imageOverflow
14949
+ ? _formatString(tooLongString, { limitNumber: `${MAXIMUM_LENGTH_OF_MESSAGE}` })
14950
+ : messageState === 'too short'
14951
+ ? tooShortString
14952
+ : undefined;
14953
+ };
14941
14954
  /* @conditional-compile-remove(file-sharing-acs) */
14942
14955
  /**
14943
14956
  * @private
@@ -16287,9 +16300,13 @@ const ChatMessageComponentAsEditBox = (props) => {
16287
16300
  const setText = (event, newValue) => {
16288
16301
  setTextValue(newValue !== null && newValue !== void 0 ? newValue : '');
16289
16302
  };
16290
- const textTooLongMessage = messageState === 'too long'
16291
- ? _formatString(strings.editBoxTextLimit, { limitNumber: `${MAXIMUM_LENGTH_OF_MESSAGE}` })
16292
- : undefined;
16303
+ const textValidationErrorMessage = React.useMemo(() => {
16304
+ return getTextValidationErrorMessage(messageState, strings.editBoxTextLimit, strings.editBoxEmptyWarningText);
16305
+ }, [
16306
+ messageState,
16307
+ strings.editBoxTextLimit,
16308
+ strings.editBoxEmptyWarningText,
16309
+ ]);
16293
16310
  const iconClassName = React.useCallback((isHover) => {
16294
16311
  const color = isHover ? theme.palette.accent : theme.palette.neutralSecondary;
16295
16312
  return react.mergeStyles(inputBoxIcon, { color });
@@ -16329,7 +16346,7 @@ const ChatMessageComponentAsEditBox = (props) => {
16329
16346
  onSubmit(textValue,
16330
16347
  /* @conditional-compile-remove(file-sharing-acs) */
16331
16348
  attachmentMetadata);
16332
- }, supportNewline: false, maxLength: MAXIMUM_LENGTH_OF_MESSAGE, errorMessage: textTooLongMessage, styles: editBoxStyles,
16349
+ }, supportNewline: false, maxLength: MAXIMUM_LENGTH_OF_MESSAGE, errorMessage: textValidationErrorMessage, styles: editBoxStyles,
16333
16350
  /* @conditional-compile-remove(mention) */
16334
16351
  mentionLookupOptions: mentionLookupOptions }),
16335
16352
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: editChatMessageButtonsStackStyle, tokens: { childrenGap: '0.25rem' } },
@@ -16392,7 +16409,7 @@ class _ErrorBoundary extends React.Component {
16392
16409
  // Copyright (c) Microsoft Corporation.
16393
16410
  // Licensed under the MIT License.
16394
16411
  /* @conditional-compile-remove(rich-text-editor) */
16395
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BLQjFCiz.js'); }));
16412
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-ngP-K5bA.js'); }));
16396
16413
  /**
16397
16414
  * @private
16398
16415
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -16400,7 +16417,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
16400
16417
  *
16401
16418
  * @conditional-compile-remove(rich-text-editor)
16402
16419
  */
16403
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BLQjFCiz.js'); });
16420
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-ngP-K5bA.js'); });
16404
16421
  /**
16405
16422
  * @private
16406
16423
  */
@@ -31842,7 +31859,7 @@ const AttachmentUploadButton = (props) => {
31842
31859
  // To ensure that `onChange` is fired even if the same file is picked again.
31843
31860
  e.currentTarget.value = '';
31844
31861
  }, onChange: (e) => {
31845
- onChange && onChange(e.currentTarget.files);
31862
+ onChange === null || onChange === void 0 ? void 0 : onChange(e.currentTarget.files);
31846
31863
  } })));
31847
31864
  };
31848
31865
  /* @conditional-compile-remove(file-sharing-acs) */
@@ -32254,7 +32271,7 @@ const AttachmentDownloadErrorBar = (props) => {
32254
32271
  /**
32255
32272
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
32256
32273
  */
32257
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DKX9Hw77.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
32274
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CsGkX3is.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
32258
32275
  /**
32259
32276
  * @private
32260
32277
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -32262,7 +32279,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
32262
32279
  *
32263
32280
  /* @conditional-compile-remove(rich-text-editor-composite-support)
32264
32281
  */
32265
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DKX9Hw77.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
32282
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CsGkX3is.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
32266
32283
  /**
32267
32284
  * @private
32268
32285
  */
@@ -32527,7 +32544,9 @@ const deleteInlineImageFromServer = (imageId, adapter) => {
32527
32544
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
32528
32545
  // This function is used to delete the inline image that existed before editing starts
32529
32546
  const deleteExistingInlineImageForEditBox = (imageId, messageId, adapter) => {
32530
- messageId !== SEND_BOX_UPLOADS_KEY_VALUE && deleteInlineImageFromServer(imageId, adapter);
32547
+ if (messageId !== SEND_BOX_UPLOADS_KEY_VALUE) {
32548
+ deleteInlineImageFromServer(imageId, adapter);
32549
+ }
32531
32550
  };
32532
32551
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
32533
32552
  /**
@@ -33621,15 +33640,27 @@ const isDisabled$4 = (option) => {
33621
33640
  return option.disabled;
33622
33641
  };
33623
33642
  /* @conditional-compile-remove(call-readiness) */
33643
+ const isAndroidWebView = (environmentInfo) => {
33644
+ var _a, _b;
33645
+ const ua = navigator.userAgent || '';
33646
+ return (((_b = (_a = environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment) === null || _a === void 0 ? void 0 : _a.browser) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'chrome webview' ||
33647
+ (/Android/.test(ua) && /Version\/[\d.]+/.test(ua) && /wv/.test(ua)));
33648
+ };
33649
+ /* @conditional-compile-remove(call-readiness) */
33624
33650
  /**
33625
33651
  * @returns Permissions state for the camera.
33626
33652
  */
33627
- const queryCameraPermissionFromPermissionsAPI = () => __awaiter$r(void 0, void 0, void 0, function* () {
33653
+ const queryCameraPermissionFromPermissionsAPI = (environmentInfo) => __awaiter$r(void 0, void 0, void 0, function* () {
33654
+ // Android WebView does not support permissions API, nor does it throw an error when trying to access it,
33655
+ // in actuality the API always returns 'prompt' which is not correct.
33656
+ if (isAndroidWebView(environmentInfo)) {
33657
+ return 'unsupported';
33658
+ }
33628
33659
  try {
33629
33660
  return (yield navigator.permissions.query({ name: 'camera' })).state;
33661
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33630
33662
  }
33631
33663
  catch (e) {
33632
- console.info('permissions API is not supported by browser', e);
33633
33664
  return 'unsupported';
33634
33665
  }
33635
33666
  });
@@ -33637,12 +33668,17 @@ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$r(void 0, void 0
33637
33668
  /**
33638
33669
  * @returns Permissions state for the microphone.
33639
33670
  */
33640
- const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$r(void 0, void 0, void 0, function* () {
33671
+ const queryMicrophonePermissionFromPermissionsAPI = (environmentInfo) => __awaiter$r(void 0, void 0, void 0, function* () {
33672
+ // Android WebView does not support permissions API, nor does it throw an error when trying to access it,
33673
+ // in actuality the API always returns 'prompt' which is not correct.
33674
+ if (isAndroidWebView(environmentInfo)) {
33675
+ return 'unsupported';
33676
+ }
33641
33677
  try {
33642
33678
  return (yield navigator.permissions.query({ name: 'microphone' })).state;
33679
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33643
33680
  }
33644
33681
  catch (e) {
33645
- console.info('permissions API is not supported by browser', e);
33646
33682
  return 'unsupported';
33647
33683
  }
33648
33684
  });
@@ -33654,13 +33690,17 @@ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$r(void 0, vo
33654
33690
  * If permission API is not supported on this browser, permission state is set to unsupported.
33655
33691
  * @private
33656
33692
  */
33657
- const getDevicePermissionState = (setVideoState, setAudioState) => __awaiter$r(void 0, void 0, void 0, function* () {
33693
+ const getDevicePermissionState = (environmentInfo, setVideoState, setAudioState, previousVideoState, previousAudioState) => __awaiter$r(void 0, void 0, void 0, function* () {
33658
33694
  const [cameraResult, microphoneResult] = yield Promise.all([
33659
- queryCameraPermissionFromPermissionsAPI(),
33660
- queryMicrophonePermissionFromPermissionsAPI()
33695
+ queryCameraPermissionFromPermissionsAPI(environmentInfo),
33696
+ queryMicrophonePermissionFromPermissionsAPI(environmentInfo)
33661
33697
  ]);
33662
- setVideoState(cameraResult);
33663
- setAudioState(microphoneResult);
33698
+ if (cameraResult !== previousVideoState) {
33699
+ setVideoState(cameraResult);
33700
+ }
33701
+ if (microphoneResult !== previousAudioState) {
33702
+ setAudioState(microphoneResult);
33703
+ }
33664
33704
  });
33665
33705
  /* @conditional-compile-remove(unsupported-browser) */
33666
33706
  const isUnsupportedEnvironment = (environmentInfo, unsupportedBrowserVersionOptedIn) => {
@@ -34125,7 +34165,12 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
34125
34165
  yield adapter.stopScreenShare();
34126
34166
  }),
34127
34167
  onToggleCamera: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
34128
- isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
34168
+ if (isCameraOn(adapter.getState())) {
34169
+ yield adapter.stopCamera();
34170
+ }
34171
+ else {
34172
+ yield adapter.startCamera(options);
34173
+ }
34129
34174
  }),
34130
34175
  onToggleMicrophone: () => __awaiter$q(void 0, void 0, void 0, function* () {
34131
34176
  var _l;
@@ -34463,11 +34508,15 @@ const CaptionsBannerMoreButton = (props) => {
34463
34508
  ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent
34464
34509
  : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,
34465
34510
  onClick: () => {
34466
- startCaptionsButtonProps.checked
34467
- ? stopCaptions()
34468
- : startCaptionsButtonProps.currentSpokenLanguage !== ''
34469
- ? startCaptions()
34470
- : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();
34511
+ if (startCaptionsButtonProps.checked) {
34512
+ stopCaptions();
34513
+ }
34514
+ else if (startCaptionsButtonProps.currentSpokenLanguage !== '') {
34515
+ startCaptions();
34516
+ }
34517
+ else if (props.onCaptionsSettingsClick) {
34518
+ props.onCaptionsSettingsClick();
34519
+ }
34471
34520
  },
34472
34521
  iconProps: {
34473
34522
  iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',
@@ -34704,7 +34753,7 @@ const EndCall = (props) => {
34704
34753
  setShowHangUpConfirm(!showHangUpConfirm);
34705
34754
  }, [showHangUpConfirm]);
34706
34755
  const onHangUpConfirm = React.useCallback((hangUpForEveryone) => {
34707
- onHangUp && onHangUp(hangUpForEveryone);
34756
+ onHangUp === null || onHangUp === void 0 ? void 0 : onHangUp(hangUpForEveryone);
34708
34757
  toggleConfirm();
34709
34758
  }, [onHangUp, toggleConfirm]);
34710
34759
  const hangUpOverride = React.useCallback((forEveryone) => __awaiter$o(void 0, void 0, void 0, function* () {
@@ -35654,11 +35703,17 @@ const DesktopMoreButton = (props) => {
35654
35703
  ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent
35655
35704
  : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,
35656
35705
  onClick: () => {
35657
- startCaptionsButtonProps.checked
35658
- ? startCaptionsButtonProps.onStopCaptions()
35659
- : startCaptionsButtonProps.currentSpokenLanguage !== ''
35660
- ? startCaptions()
35661
- : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();
35706
+ if (startCaptionsButtonProps.checked) {
35707
+ startCaptionsButtonProps.onStopCaptions();
35708
+ }
35709
+ else {
35710
+ if (startCaptionsButtonProps.currentSpokenLanguage !== '') {
35711
+ startCaptions();
35712
+ }
35713
+ else if (props.onCaptionsSettingsClick) {
35714
+ props.onCaptionsSettingsClick();
35715
+ }
35716
+ }
35662
35717
  },
35663
35718
  iconProps: {
35664
35719
  iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',
@@ -35738,7 +35793,8 @@ const DesktopMoreButton = (props) => {
35738
35793
  ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn
35739
35794
  : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,
35740
35795
  onClick: () => {
35741
- props.onSetDialpadPage && props.onSetDialpadPage();
35796
+ var _a;
35797
+ (_a = props.onSetDialpadPage) === null || _a === void 0 ? void 0 : _a.call(props);
35742
35798
  setDtmfDialerChecked(!dtmfDialerChecked);
35743
35799
  },
35744
35800
  iconProps: {
@@ -35761,7 +35817,8 @@ const DesktopMoreButton = (props) => {
35761
35817
  },
35762
35818
  text: localeStrings.strings.call.phoneCallMoreButtonLabel,
35763
35819
  onClick: () => {
35764
- props.onMeetingPhoneInfoClick && props.onMeetingPhoneInfoClick();
35820
+ var _a;
35821
+ (_a = props.onMeetingPhoneInfoClick) === null || _a === void 0 ? void 0 : _a.call(props);
35765
35822
  },
35766
35823
  iconProps: {
35767
35824
  iconName: 'PhoneNumberButton',
@@ -35800,7 +35857,8 @@ const DesktopMoreButton = (props) => {
35800
35857
  },
35801
35858
  isChecked: props.userSetGalleryLayout === 'floatingLocalVideo',
35802
35859
  onClick: () => {
35803
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');
35860
+ var _a;
35861
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'floatingLocalVideo');
35804
35862
  setFocusedContentOn(false);
35805
35863
  },
35806
35864
  iconProps: {
@@ -35817,7 +35875,8 @@ const DesktopMoreButton = (props) => {
35817
35875
  },
35818
35876
  isChecked: props.userSetGalleryLayout === 'speaker',
35819
35877
  onClick: () => {
35820
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('speaker');
35878
+ var _a;
35879
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'speaker');
35821
35880
  setFocusedContentOn(false);
35822
35881
  },
35823
35882
  iconProps: {
@@ -35834,14 +35893,14 @@ const DesktopMoreButton = (props) => {
35834
35893
  },
35835
35894
  isChecked: focusedContentOn,
35836
35895
  onClick: () => {
35837
- var _a;
35896
+ var _a, _b, _c;
35838
35897
  if (focusedContentOn === false) {
35839
35898
  setPreviousLayout((_a = props.userSetGalleryLayout) !== null && _a !== void 0 ? _a : 'floatingLocalVideo');
35840
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');
35899
+ (_b = props.onUserSetGalleryLayout) === null || _b === void 0 ? void 0 : _b.call(props, 'focusedContent');
35841
35900
  setFocusedContentOn(true);
35842
35901
  }
35843
35902
  else {
35844
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout(previousLayout);
35903
+ (_c = props.onUserSetGalleryLayout) === null || _c === void 0 ? void 0 : _c.call(props, previousLayout);
35845
35904
  setFocusedContentOn(false);
35846
35905
  }
35847
35906
  },
@@ -35866,7 +35925,8 @@ const DesktopMoreButton = (props) => {
35866
35925
  },
35867
35926
  isChecked: props.userSetGalleryLayout === 'default',
35868
35927
  onClick: () => {
35869
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');
35928
+ var _a;
35929
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'default');
35870
35930
  setFocusedContentOn(false);
35871
35931
  },
35872
35932
  iconProps: {
@@ -35884,7 +35944,8 @@ const DesktopMoreButton = (props) => {
35884
35944
  },
35885
35945
  isChecked: props.userSetGalleryLayout === 'largeGallery',
35886
35946
  onClick: () => {
35887
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('largeGallery');
35947
+ var _a;
35948
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'largeGallery');
35888
35949
  setFocusedContentOn(false);
35889
35950
  },
35890
35951
  iconProps: {
@@ -35901,7 +35962,8 @@ const DesktopMoreButton = (props) => {
35901
35962
  },
35902
35963
  isChecked: props.userSetGalleryLayout === 'togetherMode',
35903
35964
  onClick: () => {
35904
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');
35965
+ var _a;
35966
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'togetherMode');
35905
35967
  setFocusedContentOn(false);
35906
35968
  },
35907
35969
  disabled: !(((participantId === null || participantId === void 0 ? void 0 : participantId.kind) === 'microsoftTeamsUser' && ((_e = participantCapability === null || participantCapability === void 0 ? void 0 : participantCapability.startTogetherMode) === null || _e === void 0 ? void 0 : _e.isPresent)) ||
@@ -35926,12 +35988,13 @@ const DesktopMoreButton = (props) => {
35926
35988
  },
35927
35989
  isChecked: galleryPositionTop,
35928
35990
  onClick: () => {
35991
+ var _a, _b;
35929
35992
  if (galleryPositionTop === false) {
35930
- props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('horizontalTop');
35993
+ (_a = props.onUserSetOverflowGalleryPositionChange) === null || _a === void 0 ? void 0 : _a.call(props, 'horizontalTop');
35931
35994
  setGalleryPositionTop(true);
35932
35995
  }
35933
35996
  else {
35934
- props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('Responsive');
35997
+ (_b = props.onUserSetOverflowGalleryPositionChange) === null || _b === void 0 ? void 0 : _b.call(props, 'Responsive');
35935
35998
  setGalleryPositionTop(false);
35936
35999
  }
35937
36000
  }
@@ -36870,7 +36933,8 @@ const MoreDrawer = (props) => {
36870
36933
  itemKey: 'dynamicSelectionKey',
36871
36934
  text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,
36872
36935
  onItemClick: () => {
36873
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');
36936
+ var _a;
36937
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'floatingLocalVideo');
36874
36938
  onLightDismiss();
36875
36939
  },
36876
36940
  iconProps: {
@@ -36883,7 +36947,8 @@ const MoreDrawer = (props) => {
36883
36947
  itemKey: 'focusedContentSelectionKey',
36884
36948
  text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,
36885
36949
  onItemClick: () => {
36886
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');
36950
+ var _a;
36951
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'focusedContent');
36887
36952
  onLightDismiss();
36888
36953
  },
36889
36954
  iconProps: {
@@ -36899,7 +36964,8 @@ const MoreDrawer = (props) => {
36899
36964
  itemKey: 'defaultSelectionKey',
36900
36965
  text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,
36901
36966
  onItemClick: () => {
36902
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');
36967
+ var _a;
36968
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'default');
36903
36969
  onLightDismiss();
36904
36970
  },
36905
36971
  iconProps: {
@@ -36912,7 +36978,8 @@ const MoreDrawer = (props) => {
36912
36978
  itemKey: 'togetherModeSelectionKey',
36913
36979
  text: localeStrings.strings.call.moreButtonTogetherModeLayoutLabel,
36914
36980
  onItemClick: () => {
36915
- props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');
36981
+ var _a;
36982
+ (_a = props.onUserSetGalleryLayout) === null || _a === void 0 ? void 0 : _a.call(props, 'togetherMode');
36916
36983
  onLightDismiss();
36917
36984
  },
36918
36985
  iconProps: {
@@ -38025,7 +38092,7 @@ const usePeoplePane = (props) => {
38025
38092
  localeStrings.muteAllCancelButtonLabel
38026
38093
  ]);
38027
38094
  const onMuteAllPromptConfirm = React.useCallback(() => {
38028
- onMuteAllRemoteParticipants && onMuteAllRemoteParticipants();
38095
+ onMuteAllRemoteParticipants === null || onMuteAllRemoteParticipants === void 0 ? void 0 : onMuteAllRemoteParticipants();
38029
38096
  setShowMuteAllPrompt(false);
38030
38097
  }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
38031
38098
  const [showForbidOthersAudioPrompt, setShowForbidOthersAudioPrompt] = React.useState(false);
@@ -38033,19 +38100,19 @@ const usePeoplePane = (props) => {
38033
38100
  const [showForbidOthersVideoPrompt, setShowForbidOthersVideoPrompt] = React.useState(false);
38034
38101
  const [showPermitOthersVideoPrompt, setShowPermitOthersVideoPrompt] = React.useState(false);
38035
38102
  const onForbidAllAttendeesPromptConfirm = React.useCallback(() => {
38036
- onForbidOthersAudio && onForbidOthersAudio();
38103
+ onForbidOthersAudio === null || onForbidOthersAudio === void 0 ? void 0 : onForbidOthersAudio();
38037
38104
  setShowForbidOthersAudioPrompt(false);
38038
38105
  }, [onForbidOthersAudio, setShowForbidOthersAudioPrompt]);
38039
38106
  const onPermitAllAttendeesPromptConfirm = React.useCallback(() => {
38040
- onPermitOthersAudio && onPermitOthersAudio();
38107
+ onPermitOthersAudio === null || onPermitOthersAudio === void 0 ? void 0 : onPermitOthersAudio();
38041
38108
  setShowPermitOthersAudioPrompt(false);
38042
38109
  }, [onPermitOthersAudio, setShowPermitOthersAudioPrompt]);
38043
38110
  const onForbidOthersVideoPromptConfirm = React.useCallback(() => {
38044
- onForbidOthersVideo && onForbidOthersVideo();
38111
+ onForbidOthersVideo === null || onForbidOthersVideo === void 0 ? void 0 : onForbidOthersVideo();
38045
38112
  setShowForbidOthersVideoPrompt(false);
38046
38113
  }, [onForbidOthersVideo, setShowForbidOthersVideoPrompt]);
38047
38114
  const onPermitOthersVideoPromptConfirm = React.useCallback(() => {
38048
- onPermitOthersVideo && onPermitOthersVideo();
38115
+ onPermitOthersVideo === null || onPermitOthersVideo === void 0 ? void 0 : onPermitOthersVideo();
38049
38116
  setShowPermitOthersVideoPrompt(false);
38050
38117
  }, [onPermitOthersVideo, setShowPermitOthersVideoPrompt]);
38051
38118
  const sidePaneHeaderMenuProps = React.useMemo(() => {
@@ -38087,8 +38154,7 @@ const usePeoplePane = (props) => {
38087
38154
  const isMeetingAudioPermitted = meetingMediaAccess ? meetingMediaAccess.isAudioPermitted : true;
38088
38155
  const isMeetingVideoPermitted = meetingMediaAccess ? meetingMediaAccess.isVideoPermitted : true;
38089
38156
  if (onForbidOthersAudio && remoteParticipants) {
38090
- hasAttendee &&
38091
- isMeetingAudioPermitted &&
38157
+ if (hasAttendee && isMeetingAudioPermitted) {
38092
38158
  menuItems.push({
38093
38159
  ['data-ui-id']: 'people-pane-forbid-all-attendees-audio',
38094
38160
  key: 'forbidOthersAudio',
@@ -38103,10 +38169,10 @@ const usePeoplePane = (props) => {
38103
38169
  ariaLabel: localeStrings.forbidOthersAudioMenuLabel,
38104
38170
  disabled: !hasAttendee
38105
38171
  });
38172
+ }
38106
38173
  }
38107
38174
  if (onPermitOthersAudio && remoteParticipants) {
38108
- hasAttendee &&
38109
- !isMeetingAudioPermitted &&
38175
+ if (hasAttendee && !isMeetingAudioPermitted) {
38110
38176
  menuItems.push({
38111
38177
  ['data-ui-id']: 'people-pane-permit-all-attendees-audio',
38112
38178
  key: 'permitOthersAudio',
@@ -38121,10 +38187,10 @@ const usePeoplePane = (props) => {
38121
38187
  ariaLabel: localeStrings.permitOthersAudioMenuLabel,
38122
38188
  disabled: !hasAttendee
38123
38189
  });
38190
+ }
38124
38191
  }
38125
38192
  if (onForbidOthersVideo && remoteParticipants) {
38126
- hasAttendee &&
38127
- isMeetingVideoPermitted &&
38193
+ if (hasAttendee && isMeetingVideoPermitted) {
38128
38194
  menuItems.push({
38129
38195
  ['data-ui-id']: 'people-pane-forbid-all-attendees-video',
38130
38196
  key: 'forbidOthersVideo',
@@ -38139,10 +38205,10 @@ const usePeoplePane = (props) => {
38139
38205
  ariaLabel: localeStrings.forbidOthersVideoMenuLabel,
38140
38206
  disabled: !hasAttendee
38141
38207
  });
38208
+ }
38142
38209
  }
38143
38210
  if (onPermitOthersVideo && remoteParticipants) {
38144
- hasAttendee &&
38145
- !isMeetingVideoPermitted &&
38211
+ if (hasAttendee && !isMeetingVideoPermitted) {
38146
38212
  menuItems.push({
38147
38213
  ['data-ui-id']: 'people-pane-permit-all-attendees-video',
38148
38214
  key: 'permitOthersVideo',
@@ -38157,6 +38223,7 @@ const usePeoplePane = (props) => {
38157
38223
  ariaLabel: localeStrings.permitOthersVideoMenuLabel,
38158
38224
  disabled: !hasAttendee
38159
38225
  });
38226
+ }
38160
38227
  }
38161
38228
  if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
38162
38229
  menuItems.push({
@@ -38878,7 +38945,9 @@ const useVideoEffectsPane = (updateSidePaneRenderer, mobileView, latestErrors, o
38878
38945
  const onRenderContent = React.useCallback(() => {
38879
38946
  return (React.createElement(VideoEffectsPaneContent, { onDismissError: onDismissError, activeVideoEffectError: latestVideoEffectError, activeVideoEffectChange: () => {
38880
38947
  // Clear any existing video effects error when the user clicks on a new video effect
38881
- latestVideoEffectError && (onDismissError === null || onDismissError === void 0 ? void 0 : onDismissError(latestVideoEffectError));
38948
+ if (latestVideoEffectError) {
38949
+ onDismissError === null || onDismissError === void 0 ? void 0 : onDismissError(latestVideoEffectError);
38950
+ }
38882
38951
  }, updateFocusHandle: updateFocusHandle, backgroundImages: backgroundImages }));
38883
38952
  }, [latestVideoEffectError, onDismissError, updateFocusHandle, backgroundImages]);
38884
38953
  const sidePaneRenderer = React.useMemo(() => ({
@@ -40027,9 +40096,9 @@ const ExpandedLocalVideoTile = (props) => {
40027
40096
  const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;
40028
40097
  const renderElement = videoStream === null || videoStream === void 0 ? void 0 : videoStream.renderElement;
40029
40098
  React.useEffect(() => {
40099
+ var _a;
40030
40100
  if (videoStream && isVideoReady) {
40031
- props.onCreateLocalStreamView &&
40032
- props.onCreateLocalStreamView(localVideoViewOptions$1).catch((err) => console.log('Can not render video', err));
40101
+ (_a = props.onCreateLocalStreamView) === null || _a === void 0 ? void 0 : _a.call(props, localVideoViewOptions$1).catch((err) => console.log('Can not render video', err));
40033
40102
  }
40034
40103
  }, [isVideoReady, videoStream, props, renderElement]);
40035
40104
  return (React.createElement(react.Stack, { horizontalAlign: "center", verticalAlign: "center", styles: containerStyles$1, grow: true },
@@ -41093,7 +41162,12 @@ const LocalPreview = (props) => {
41093
41162
  const isLocalMicrophoneEnabled = useSelector$1(getLocalMicrophoneEnabled);
41094
41163
  const adapter = useAdapter();
41095
41164
  const onToggleMic = React.useCallback(() => __awaiter$d(void 0, void 0, void 0, function* () {
41096
- isLocalMicrophoneEnabled ? adapter.mute() : adapter.unmute();
41165
+ if (isLocalMicrophoneEnabled) {
41166
+ adapter.mute();
41167
+ }
41168
+ else {
41169
+ adapter.unmute();
41170
+ }
41097
41171
  }), [adapter, isLocalMicrophoneEnabled]);
41098
41172
  const hasNoSpeakers = !devicesButtonProps.speakers.length;
41099
41173
  const hasNoDevices = devicesButtonProps.cameras.length === 0 &&
@@ -41491,13 +41565,14 @@ const ConfigurationPage = (props) => {
41491
41565
  const options = useAdaptedSelector(getSelector$1(DevicesButton));
41492
41566
  const localDeviceSettingsHandlers = useHandlers();
41493
41567
  const { video: cameraPermissionGranted, audio: microphonePermissionGranted } = useSelector$1(devicePermissionSelector);
41568
+ const environmentInfo = useSelector$1(getEnvironmentInfo);
41494
41569
  /* @conditional-compile-remove(call-readiness) */
41495
41570
  // use permission API to get video and audio permission state
41496
41571
  const [videoState, setVideoState] = React.useState(undefined);
41497
41572
  /* @conditional-compile-remove(call-readiness) */
41498
41573
  const [audioState, setAudioState] = React.useState(undefined);
41499
41574
  /* @conditional-compile-remove(call-readiness) */
41500
- getDevicePermissionState(setVideoState, setAudioState);
41575
+ getDevicePermissionState(environmentInfo, setVideoState, setAudioState, videoState, audioState);
41501
41576
  const configContainerRef = React.useRef(null);
41502
41577
  const configWidth = _useContainerWidth(configContainerRef);
41503
41578
  /**
@@ -41507,7 +41582,6 @@ const ConfigurationPage = (props) => {
41507
41582
  const stackConfig = !!configWidth && configWidth < 450;
41508
41583
  const errorBarProps = usePropsFor$1(ErrorBar);
41509
41584
  const microphones = useSelector$1(getMicrophones);
41510
- const environmentInfo = useSelector$1(getEnvironmentInfo);
41511
41585
  let disableStartCallButton = (!microphonePermissionGranted || (microphones === null || microphones === void 0 ? void 0 : microphones.length) === 0) &&
41512
41586
  joinCallOptions.microphoneCheck === 'requireMicrophoneAvailable';
41513
41587
  const role = useSelector$1(getRole);
@@ -41566,7 +41640,7 @@ const ConfigurationPage = (props) => {
41566
41640
  const callDescription = locale.strings.call.configurationPageCallDetails && (React.createElement(react.Stack.Item, { className: mobileView ? callDetailsStyleMobile(theme) : callDetailsStyleDesktop(theme) }, locale.strings.call.configurationPageCallDetails));
41567
41641
  const mobileWithPreview = mobileView && role !== 'Consumer';
41568
41642
  /* @conditional-compile-remove(call-readiness) */
41569
- const permissionsState = {
41643
+ const permissionsState = React.useMemo(() => ({
41570
41644
  // fall back to using cameraPermissionGranted and microphonePermissionGranted if permission API is not supported
41571
41645
  camera: videoState && videoState !== 'unsupported'
41572
41646
  ? cameraPermissionGranted !== false
@@ -41586,7 +41660,7 @@ const ConfigurationPage = (props) => {
41586
41660
  ? 'granted'
41587
41661
  : 'prompt'
41588
41662
  : 'denied'
41589
- };
41663
+ }), [videoState, audioState, cameraPermissionGranted, microphonePermissionGranted]);
41590
41664
  /* @conditional-compile-remove(call-readiness) */
41591
41665
  const networkErrors = errorBarProps.activeErrorMessages.filter((message) => message.type === 'callNetworkQualityLow');
41592
41666
  /* @conditional-compile-remove(call-readiness) */
@@ -41596,9 +41670,11 @@ const ConfigurationPage = (props) => {
41596
41670
  /* @conditional-compile-remove(call-readiness) */
41597
41671
  const [minimumFallbackTimerElapsed, setMinimumFallbackTimerElapsed] = React.useState(false);
41598
41672
  /* @conditional-compile-remove(call-readiness) */
41599
- setTimeout(() => {
41600
- setMinimumFallbackTimerElapsed(true);
41601
- }, 2000);
41673
+ React.useEffect(() => {
41674
+ setTimeout(() => {
41675
+ setMinimumFallbackTimerElapsed(true);
41676
+ }, 2000);
41677
+ }, []);
41602
41678
  /* @conditional-compile-remove(call-readiness) */
41603
41679
  const forceShowingCheckPermissions = !minimumFallbackTimerElapsed;
41604
41680
  const { toggleVideoEffectsPane, closeVideoEffectsPane, isVideoEffectsPaneOpen } = useVideoEffectsPane(props.updateSidePaneRenderer, mobileView, props.latestErrors, props.onDismissError);
@@ -44295,7 +44371,7 @@ class AzureCommunicationCallAdapter {
44295
44371
  });
44296
44372
  removed.forEach((participant) => {
44297
44373
  const subscriber = this.participantSubscribers.get(toFlatCommunicationIdentifier(participant.identifier));
44298
- subscriber && subscriber.unsubscribeAll();
44374
+ subscriber === null || subscriber === void 0 ? void 0 : subscriber.unsubscribeAll();
44299
44375
  this.participantSubscribers.delete(toFlatCommunicationIdentifier(participant.identifier));
44300
44376
  });
44301
44377
  }
@@ -44403,7 +44479,9 @@ class AzureCommunicationCallAdapter {
44403
44479
  }
44404
44480
  callIdChanged() {
44405
44481
  var _a;
44406
- ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id) && this.emitter.emit('callIdChanged', { callId: this.call.id });
44482
+ if ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id) {
44483
+ this.emitter.emit('callIdChanged', { callId: this.call.id });
44484
+ }
44407
44485
  }
44408
44486
  resetDiagnosticsForwarder(newCall) {
44409
44487
  if (this.diagnosticsForwarder) {
@@ -44875,7 +44953,9 @@ class CallWithChatBackedCallAdapter {
44875
44953
  };
44876
44954
  this.offStateChange = (handler) => {
44877
44955
  const convertedHandler = this.eventStore.get(handler);
44878
- convertedHandler && this.callWithChatAdapter.offStateChange(convertedHandler);
44956
+ if (convertedHandler) {
44957
+ this.callWithChatAdapter.offStateChange(convertedHandler);
44958
+ }
44879
44959
  };
44880
44960
  this.getState = () => callAdapterStateFromCallWithChatAdapterState(this.callWithChatAdapter.getState());
44881
44961
  this.dispose = () => this.callWithChatAdapter.dispose();
@@ -45167,14 +45247,18 @@ class CallWithChatBackedChatAdapter {
45167
45247
  this.dispose = () => this.callWithChatAdapter.dispose();
45168
45248
  this.onStateChange = (handler) => {
45169
45249
  const convertedHandler = (state) => {
45170
- !!state.chat && handler(chatAdapterStateFromCallWithChatAdapterState(state));
45250
+ if (state.chat) {
45251
+ handler(chatAdapterStateFromCallWithChatAdapterState(state));
45252
+ }
45171
45253
  };
45172
45254
  this.callWithChatAdapter.onStateChange(convertedHandler);
45173
45255
  this.eventStore.set(handler, convertedHandler);
45174
45256
  };
45175
45257
  this.offStateChange = (handler) => {
45176
45258
  const convertedHandler = this.eventStore.get(handler);
45177
- convertedHandler && this.callWithChatAdapter.offStateChange(convertedHandler);
45259
+ if (convertedHandler) {
45260
+ this.callWithChatAdapter.offStateChange(convertedHandler);
45261
+ }
45178
45262
  };
45179
45263
  this.getState = () => chatAdapterStateFromCallWithChatAdapterState(this.callWithChatAdapter.getState());
45180
45264
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
@@ -45471,7 +45555,12 @@ const CallWithChatScreen = (props) => {
45471
45555
  }, [closeChat, isOnHold]);
45472
45556
  const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentCallState !== null && currentCallState !== void 0 ? currentCallState : 'None'));
45473
45557
  const toggleChat = React.useCallback(() => {
45474
- isChatOpen || !hasJoinedCall ? closeChat() : openChat();
45558
+ if (isChatOpen || !hasJoinedCall) {
45559
+ closeChat();
45560
+ }
45561
+ else {
45562
+ openChat();
45563
+ }
45475
45564
  }, [closeChat, hasJoinedCall, isChatOpen, openChat]);
45476
45565
  const callWithChatStrings = useCallWithChatCompositeStrings();
45477
45566
  const chatButtonStrings = React.useMemo(() => ({
@@ -46730,11 +46819,15 @@ class TeamsMeetingLinkProvider {
46730
46819
  const chatThreadPromise = new Promise((resolve) => {
46731
46820
  this.callAdapterPromise.then((callAdapter) => {
46732
46821
  // Ensure function is idempotent by removing any existing subscription.
46733
- this.callAdapterSubscription && callAdapter.offStateChange(this.callAdapterSubscription);
46822
+ if (this.callAdapterSubscription) {
46823
+ callAdapter.offStateChange(this.callAdapterSubscription);
46824
+ }
46734
46825
  this.callAdapterSubscription = (state) => {
46735
46826
  var _a, _b, _c;
46736
46827
  if (((_a = state.call) === null || _a === void 0 ? void 0 : _a.state) === 'Connected' && ((_b = state.call.info) === null || _b === void 0 ? void 0 : _b.threadId)) {
46737
- this.callAdapterSubscription && callAdapter.offStateChange(this.callAdapterSubscription);
46828
+ if (this.callAdapterSubscription) {
46829
+ callAdapter.offStateChange(this.callAdapterSubscription);
46830
+ }
46738
46831
  this.callAdapterSubscription = undefined;
46739
46832
  resolve((_c = state.call.info) === null || _c === void 0 ? void 0 : _c.threadId);
46740
46833
  }
@@ -47572,7 +47665,6 @@ exports.IncomingCallNotification = IncomingCallNotification$n;
47572
47665
  exports.IncomingCallStack = IncomingCallStack;
47573
47666
  exports.InputBoxButton = InputBoxButton;
47574
47667
  exports.LocalizationProvider = LocalizationProvider$1;
47575
- exports.MAXIMUM_LENGTH_OF_MESSAGE = MAXIMUM_LENGTH_OF_MESSAGE;
47576
47668
  exports.MessageStatusIndicator = MessageStatusIndicator;
47577
47669
  exports.MessageThread = MessageThread;
47578
47670
  exports.MicrophoneButton = MicrophoneButton;
@@ -47602,7 +47694,6 @@ exports.VideoGallery = VideoGallery;
47602
47694
  exports.VideoTile = VideoTile;
47603
47695
  exports._AttachmentUploadCards = _AttachmentUploadCards;
47604
47696
  exports._IdentifierProvider = _IdentifierProvider;
47605
- exports._formatString = _formatString;
47606
47697
  exports.attachmentMetadataReducer = attachmentMetadataReducer;
47607
47698
  exports.attachmentUploadCardsStyles = attachmentUploadCardsStyles;
47608
47699
  exports.createAzureCommunicationCallAdapter = createAzureCommunicationCallAdapter;
@@ -47630,6 +47721,7 @@ exports.getMessageWithAttachmentMetadata = getMessageWithAttachmentMetadata;
47630
47721
  exports.getPreviousInlineImages = getPreviousInlineImages;
47631
47722
  exports.getSelector = getSelector$1;
47632
47723
  exports.getSelector$1 = getSelector;
47724
+ exports.getTextValidationErrorMessage = getTextValidationErrorMessage;
47633
47725
  exports.hasIncompleteAttachmentUploads = hasIncompleteAttachmentUploads;
47634
47726
  exports.imageOverlayTheme = imageOverlayTheme;
47635
47727
  exports.inlineImageIds = inlineImageIds;
@@ -47665,4 +47757,4 @@ exports.useTeamsCall = useTeamsCall;
47665
47757
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
47666
47758
  exports.useTeamsCallAgent = useTeamsCallAgent;
47667
47759
  exports.useTheme = useTheme;
47668
- //# sourceMappingURL=index-B1nXGt3n.js.map
47760
+ //# sourceMappingURL=index-rf3tf-XH.js.map