@azure/communication-react 1.24.0-alpha-202501300015 → 1.24.0-alpha-202502010017

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 (88) hide show
  1. package/dist/communication-react.d.ts +3 -2
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-B7usiRRs.js → ChatMessageComponentAsRichTextEditBox-B69n5di0.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-B7usiRRs.js.map → ChatMessageComponentAsRichTextEditBox-B69n5di0.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BUOpEC0L.js → RichTextSendBoxWrapper-CAzmoL1D.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BUOpEC0L.js.map → RichTextSendBoxWrapper-CAzmoL1D.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-BYO_RzRh.js → index--34qf-o2.js} +237 -480
  7. package/dist/dist-cjs/communication-react/index--34qf-o2.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/communication-react/src/index.d.ts +1 -2
  12. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  13. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +3 -1
  14. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -7
  16. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  19. package/dist/dist-esm/react-components/src/components/ParticipantList.js +11 -23
  20. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +6 -18
  22. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/StartRealTimeTextButton.d.ts +3 -2
  24. package/dist/dist-esm/react-components/src/components/StartRealTimeTextButton.js +1 -1
  25. package/dist/dist-esm/react-components/src/components/StartRealTimeTextButton.js.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/TogetherModeOverlay.js +24 -40
  27. package/dist/dist-esm/react-components/src/components/TogetherModeOverlay.js.map +1 -1
  28. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +1 -3
  29. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  30. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.d.ts +3 -2
  31. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.js +4 -72
  32. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.d.ts +0 -1
  34. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +4 -17
  36. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +1 -20
  38. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  39. package/dist/dist-esm/react-components/src/components/VideoGallery.js +11 -36
  40. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +1 -2
  42. package/dist/dist-esm/react-components/src/components/VideoTile.js +6 -39
  43. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.d.ts +10 -1
  45. package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.js +34 -5
  46. package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/components/utils.js +1 -13
  48. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  49. package/dist/dist-esm/react-components/src/index.d.ts +1 -1
  50. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  51. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +1 -1
  52. package/dist/dist-esm/react-components/src/theming/icons.js +0 -6
  53. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  54. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  55. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -3
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +0 -21
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +24 -38
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +5 -23
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +1 -2
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +1 -85
  67. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  68. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +0 -1
  69. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  70. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -8
  71. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  72. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +16 -2
  73. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +16 -1
  74. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  75. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -2
  76. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +0 -8
  77. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  78. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  79. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -2
  80. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -8
  81. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  82. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +39 -5
  83. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  84. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +38 -8
  85. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  86. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  87. package/package.json +4 -4
  88. package/dist/dist-cjs/communication-react/index-BYO_RzRh.js.map +0 -1
@@ -188,7 +188,7 @@ function getDefaultExportFromCjs (x) {
188
188
  // Copyright (c) Microsoft Corporation.
189
189
  // Licensed under the MIT License.
190
190
  // GENERATED FILE. DO NOT EDIT MANUALLY.
191
- var telemetryVersion = '1.24.0-alpha-202501300015';
191
+ var telemetryVersion = '1.24.0-alpha-202502010017';
192
192
 
193
193
 
194
194
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -7544,7 +7544,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
7544
7544
  wordBreak: 'break-word'
7545
7545
  });
7546
7546
 
7547
- 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={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={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={label:"Turn on RTT for this call",tooltipOnContent:"RTT is turned on 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"},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"}};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,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,captionsSettingsModal:captionsSettingsModal$n,spokenLanguages:spokenLanguages$n,captionLanguages:captionLanguages$n,startCaptionsButton:startCaptionsButton$n,startRealTimeTextButton:startRealTimeTextButton,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};
7547
+ 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={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={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={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"},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"}};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,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,captionsSettingsModal:captionsSettingsModal$n,spokenLanguages:spokenLanguages$n,captionLanguages:captionLanguages$n,startCaptionsButton:startCaptionsButton$n,startRealTimeTextButton:startRealTimeTextButton,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};
7548
7548
 
7549
7549
  // Copyright (c) Microsoft Corporation.
7550
7550
  // Licensed under the MIT License.
@@ -8078,13 +8078,9 @@ const customNotificationIconName = {
8078
8078
  breakoutRoomJoined: 'NotificationBarBreakoutRoomJoined',
8079
8079
  /* @conditional-compile-remove(breakout-rooms) */
8080
8080
  breakoutRoomClosingSoon: 'NotificationBarBreakoutRoomClosingSoon',
8081
- /* @conditional-compile-remove(media-access) */
8082
8081
  capabilityTurnVideoOnPresent: 'ControlButtonCameraOff',
8083
- /* @conditional-compile-remove(media-access) */
8084
8082
  capabilityTurnVideoOnAbsent: 'ControlButtonCameraProhibited',
8085
- /* @conditional-compile-remove(media-access) */
8086
8083
  capabilityUnmuteMicPresent: 'ControlButtonMicOff',
8087
- /* @conditional-compile-remove(media-access) */
8088
8084
  capabilityUnmuteMicAbsent: 'ControlButtonMicProhibited',
8089
8085
  /* @conditional-compile-remove(together-mode) */
8090
8086
  togetherModeStarted: 'NotificationBarTogetherModeIcon',
@@ -8141,19 +8137,13 @@ const nullToUndefined = (value) => (value === null ? undefined : value);
8141
8137
  /**
8142
8138
  * @private
8143
8139
  */
8144
- const formatMoreButtonAriaDescription = (displayName, isMuted, isHandRaised, state, isSpeaking, strings,
8145
- /* @conditional-compile-remove(media-access) */
8146
- isMicDisabled,
8147
- /* @conditional-compile-remove(media-access) */
8148
- isCameraDisabled) => {
8140
+ const formatMoreButtonAriaDescription = (displayName, isMuted, isHandRaised, state, isSpeaking, strings, isMicDisabled, isCameraDisabled) => {
8149
8141
  const mutedState = isMuted
8150
8142
  ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantMutedStateMutedAriaLabel
8151
8143
  : strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantMutedStateUnmutedAriaLabel;
8152
8144
  const handRaisedState = isHandRaised ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantHandRaisedAriaLabel : undefined;
8153
8145
  const isSpeakingState = isSpeaking ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantIsSpeakingAriaLabel : undefined;
8154
- /* @conditional-compile-remove(media-access) */
8155
8146
  const micDisabledState = isMicDisabled ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantMicDisabledAriaLabel : undefined;
8156
- /* @conditional-compile-remove(media-access) */
8157
8147
  const cameraDisabledState = isCameraDisabled ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantCameraDisabledAriaLabel : undefined;
8158
8148
  const description = (strings === null || strings === undefined ? undefined : strings.moreOptionsButtonAriaLabel)
8159
8149
  ? _formatString(strings === null || strings === undefined ? undefined : strings.moreOptionsButtonAriaLabel, {
@@ -8162,9 +8152,7 @@ isCameraDisabled) => {
8162
8152
  isHandRaised: handRaisedState !== null && handRaisedState !== undefined ? handRaisedState : ' ',
8163
8153
  state: state !== null && state !== undefined ? state : ' ',
8164
8154
  isSpeaking: isSpeakingState !== null && isSpeakingState !== undefined ? isSpeakingState : ' ',
8165
- /* @conditional-compile-remove(media-access) */
8166
8155
  micDisabledState: micDisabledState !== null && micDisabledState !== undefined ? micDisabledState : ' ',
8167
- /* @conditional-compile-remove(media-access) */
8168
8156
  cameraDisabledState: cameraDisabledState !== null && cameraDisabledState !== undefined ? cameraDisabledState : ' '
8169
8157
  })
8170
8158
  : '';
@@ -8792,13 +8780,9 @@ const DEFAULT_COMPONENT_ICONS = {
8792
8780
  ControlButtonScreenShareStop: React.createElement(reactIcons.ShareScreenStop20Filled, null),
8793
8781
  ControlButtonRaiseHand: React.createElement(ControlButtonRaiseHandIcon, null),
8794
8782
  ControlButtonLowerHand: React.createElement(ControlButtonLowerHandIcon, null),
8795
- /* @conditional-compile-remove(media-access) */
8796
8783
  ControlButtonMicProhibited: React.createElement(reactIcons.MicProhibited20Filled, null),
8797
- /* @conditional-compile-remove(media-access) */
8798
8784
  ControlButtonMicProhibitedSmall: React.createElement(reactIcons.MicProhibited16Filled, null),
8799
- /* @conditional-compile-remove(media-access) */
8800
8785
  ControlButtonCameraProhibited: React.createElement(reactIcons.VideoProhibited20Filled, null),
8801
- /* @conditional-compile-remove(media-access) */
8802
8786
  ControlButtonCameraProhibitedSmall: React.createElement(reactIcons.VideoProhibited16Filled, null),
8803
8787
  RaiseHandContextualMenuItem: React.createElement(reactIcons.HandRight20Regular, null),
8804
8788
  LowerHandContextualMenuItem: React.createElement(reactIcons.HandRightOff20Regular, null),
@@ -8863,7 +8847,6 @@ const DEFAULT_COMPONENT_ICONS = {
8863
8847
  SendBoxSend: React.createElement(reactIcons.Send20Regular, null),
8864
8848
  SendBoxSendHovered: React.createElement(reactIcons.Send20Filled, null),
8865
8849
  VideoTileMicOff: React.createElement(reactIcons.MicOff16Filled, null),
8866
- /* @conditional-compile-remove(media-access) */
8867
8850
  VideoTileCameraOff: React.createElement(reactIcons.VideoProhibited16Filled, null),
8868
8851
  DialpadBackspace: React.createElement(reactIcons.Backspace20Regular, null),
8869
8852
  /* @conditional-compile-remove(call-readiness) */
@@ -15502,11 +15485,13 @@ const ChatMessageActionFlyout = (props) => {
15502
15485
  onClick: props.onRemoveClick
15503
15486
  }
15504
15487
  ];
15505
- // only show read by x of x if more than 3 participants in total including myself
15488
+ // only show read by x of y if more than 3 participants in total including myself
15489
+ // only show read by x of y if less than 20 participants in total including myself. This is because read by is not supported for 20 or more participants.
15506
15490
  // TODO: change strings.messageReadCount to be required if we can fallback to our own en-us strings for anything that Contoso doesn't provide
15507
15491
  if (props.remoteParticipantsCount &&
15508
15492
  messageReadByCount !== undefined &&
15509
15493
  props.remoteParticipantsCount >= 2 &&
15494
+ props.remoteParticipantsCount < 19 &&
15510
15495
  props.showMessageStatus &&
15511
15496
  props.strings.messageReadCount &&
15512
15497
  props.messageStatus !== 'failed') {
@@ -16413,7 +16398,7 @@ class _ErrorBoundary extends React.Component {
16413
16398
  // Copyright (c) Microsoft Corporation.
16414
16399
  // Licensed under the MIT License.
16415
16400
  /* @conditional-compile-remove(rich-text-editor) */
16416
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B7usiRRs.js'); }));
16401
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B69n5di0.js'); }));
16417
16402
  /**
16418
16403
  * @private
16419
16404
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -16421,7 +16406,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
16421
16406
  *
16422
16407
  * @conditional-compile-remove(rich-text-editor)
16423
16408
  */
16424
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B7usiRRs.js'); });
16409
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B69n5di0.js'); });
16425
16410
  /**
16426
16411
  * @private
16427
16412
  */
@@ -18006,16 +17991,13 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
18006
17991
  const displayName = formatDisplayName(participant.displayName);
18007
17992
  const callingPalette = theme.callingPalette;
18008
17993
  const isPinned = pinnedParticipants && (pinnedParticipants === null || pinnedParticipants === undefined ? undefined : pinnedParticipants.includes(participant.userId));
18009
- const showRenderIconTrampoline = () => {
18010
- /* @conditional-compile-remove(media-access) */
18011
- return !!((callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isScreenSharing) ||
18012
- (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isMuted) ||
18013
- (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.raisedHand) ||
18014
- isPinned ||
18015
- !((callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isAudioPermitted : true) ||
18016
- !((callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isVideoPermitted : true));
18017
- };
18018
- const onRenderIcon = showRenderIconTrampoline()
17994
+ const isScreenSharing = callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isScreenSharing;
17995
+ const isMuted = callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isMuted;
17996
+ const hasRaisedHand = callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.raisedHand;
17997
+ const isAudioPermitted = (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isAudioPermitted : true;
17998
+ const isVideoPermitted = (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isVideoPermitted : true;
17999
+ const shouldRenderParticipantIcon = isScreenSharing || isMuted || hasRaisedHand || isPinned || !isAudioPermitted || !isVideoPermitted;
18000
+ const onRenderIcon = shouldRenderParticipantIcon
18019
18001
  ? () => {
18020
18002
  var _a, _b;
18021
18003
  return (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.5rem' } },
@@ -18032,13 +18014,10 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
18032
18014
  callingParticipant.isScreenSharing && (React.createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$2, ariaLabel: strings.sharingIconLabel })),
18033
18015
  callingParticipant.spotlight && React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 }),
18034
18016
  isPinned && React.createElement(react.Icon, { iconName: "ParticipantItemPinned", className: iconStyles$2 }),
18035
- /* @conditional-compile-remove(media-access) */ callingParticipant.mediaAccess &&
18036
- !callingParticipant.mediaAccess.isVideoPermitted ? (React.createElement(react.Icon, { iconName: "ControlButtonCameraProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18037
- /* @conditional-compile-remove(media-access) */ callingParticipant.mediaAccess &&
18038
- !((_b = callingParticipant.mediaAccess) === null || _b === undefined ? undefined : _b.isAudioPermitted) ? (React.createElement(react.Icon, { iconName: "ControlButtonMicProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18039
- /* @conditional-compile-remove(media-access) */ (callingParticipant.mediaAccess
18040
- ? callingParticipant.mediaAccess.isAudioPermitted
18041
- : true) && callingParticipant.isMuted ? (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined));
18017
+ callingParticipant.mediaAccess && !callingParticipant.mediaAccess.isVideoPermitted ? (React.createElement(react.Icon, { iconName: "ControlButtonCameraProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18018
+ callingParticipant.mediaAccess && !((_b = callingParticipant.mediaAccess) === null || _b === undefined ? undefined : _b.isAudioPermitted) ? (React.createElement(react.Icon, { iconName: "ControlButtonMicProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18019
+ (callingParticipant.mediaAccess ? callingParticipant.mediaAccess.isAudioPermitted : true) &&
18020
+ callingParticipant.isMuted ? (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined));
18042
18021
  }
18043
18022
  : () => null;
18044
18023
  const onRenderAvatarWithRaiseHand = (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.raisedHand) && onRenderAvatar
@@ -18049,9 +18028,7 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
18049
18028
  displayName: displayName !== null && displayName !== undefined ? displayName : '',
18050
18029
  connectionState: (_b = formatParticipantStateString(callingParticipant, strings)) !== null && _b !== undefined ? _b : '',
18051
18030
  mutedState: (_c = (callingParticipant.isMuted ? strings === null || strings === undefined ? undefined : strings.mutedIconLabel : undefined)) !== null && _c !== undefined ? _c : '',
18052
- /* @conditional-compile-remove(media-access) */
18053
18031
  micDisabledState: (_e = (((_d = callingParticipant.mediaAccess) === null || _d === undefined ? undefined : _d.isAudioPermitted) === false ? strings === null || strings === undefined ? undefined : strings.micDisabledIconLabel : undefined)) !== null && _e !== undefined ? _e : '',
18054
- /* @conditional-compile-remove(media-access) */
18055
18032
  cameraDisabledState: (_g = (((_f = callingParticipant.mediaAccess) === null || _f === undefined ? undefined : _f.isVideoPermitted) === false ? strings === null || strings === undefined ? undefined : strings.cameraDisabledIconLabel : undefined)) !== null && _g !== undefined ? _g : '',
18056
18033
  sharingState: (_h = (callingParticipant.isScreenSharing ? strings === null || strings === undefined ? undefined : strings.sharingIconLabel : undefined)) !== null && _h !== undefined ? _h : '',
18057
18034
  handRaisedState: (_p = (((_j = callingParticipant.raisedHand) === null || _j === undefined ? undefined : _j.raisedHandOrderPosition)
@@ -18646,26 +18623,15 @@ const callingComponentLogger = logger.createClientLogger('communication-react:ca
18646
18623
  * @private
18647
18624
  */
18648
18625
  const useVideoStreamLifecycleMaintainer = (props) => {
18649
- const { isMirrored, isScreenSharingOn, isStreamAvailable, onCreateStreamView, onDisposeStreamView, renderElementExists, scalingMode, streamId,
18650
- /* @conditional-compile-remove(media-access) */
18651
- isVideoPermitted } = props;
18626
+ const { isMirrored, isScreenSharingOn, isStreamAvailable, onCreateStreamView, onDisposeStreamView, renderElementExists, scalingMode, streamId, isVideoPermitted } = props;
18652
18627
  const [videoStreamViewResult, setVideoStreamViewResult] = React.useState();
18653
- const createStreamViewTrampoline = React.useCallback((isStreamAvailable, renderElementExists,
18654
- /* @conditional-compile-remove(media-access) */ isVideoPermitted) => {
18628
+ React.useEffect(() => {
18655
18629
  var _a;
18656
- /* @conditional-compile-remove(media-access) */
18657
- if (isVideoPermitted === false) {
18658
- return;
18659
- }
18660
- if (isStreamAvailable && !renderElementExists) {
18630
+ if (isVideoPermitted !== false && isStreamAvailable && !renderElementExists) {
18661
18631
  (_a = onCreateStreamView === null || onCreateStreamView === undefined ? undefined : onCreateStreamView({ isMirrored, scalingMode })) === null || _a === undefined ? undefined : _a.then((result) => {
18662
18632
  result && setVideoStreamViewResult(result);
18663
18633
  });
18664
18634
  }
18665
- }, [isMirrored, onCreateStreamView, scalingMode]);
18666
- React.useEffect(() => {
18667
- createStreamViewTrampoline(isStreamAvailable, renderElementExists,
18668
- /* @conditional-compile-remove(media-access) */ isVideoPermitted);
18669
18635
  // Always clean up element to make tile up to date and be able to dispose correctly
18670
18636
  return () => {
18671
18637
  if (renderElementExists) {
@@ -18687,8 +18653,6 @@ const useVideoStreamLifecycleMaintainer = (props) => {
18687
18653
  renderElementExists,
18688
18654
  scalingMode,
18689
18655
  streamId,
18690
- createStreamViewTrampoline,
18691
- /* @conditional-compile-remove(media-access) */
18692
18656
  isVideoPermitted
18693
18657
  ]);
18694
18658
  // The execution order for above useEffect is onCreateRemoteStreamView =>(async time gap) RenderElement generated => element disposed => onDisposeRemoteStreamView
@@ -18744,15 +18708,7 @@ const useRemoteVideoStreamLifecycleMaintainer = (props) => {
18744
18708
  */
18745
18709
  const useVideoTileContextualMenuProps = (props) => {
18746
18710
  var _a;
18747
- const { participant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, spotlightedParticipantUserIds = [], isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, myUserId, onMuteParticipant,
18748
- /* @conditional-compile-remove(media-access) */
18749
- onForbidAudio,
18750
- /* @conditional-compile-remove(media-access) */
18751
- onPermitAudio,
18752
- /* @conditional-compile-remove(media-access) */
18753
- onForbidVideo,
18754
- /* @conditional-compile-remove(media-access) */
18755
- onPermitVideo } = props;
18711
+ const { participant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, spotlightedParticipantUserIds = [], isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, myUserId, onMuteParticipant, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = props;
18756
18712
  const scalingMode = React.useMemo(() => {
18757
18713
  var _a;
18758
18714
  return (_a = props.participant.videoStream) === null || _a === undefined ? undefined : _a.scalingMode;
@@ -18774,7 +18730,6 @@ const useVideoTileContextualMenuProps = (props) => {
18774
18730
  disabled: participant.isMuted
18775
18731
  });
18776
18732
  }
18777
- /* @conditional-compile-remove(media-access) */
18778
18733
  if (participant.canAudioBeForbidden &&
18779
18734
  participant.mediaAccess &&
18780
18735
  !participant.mediaAccess.isAudioPermitted &&
@@ -18791,7 +18746,6 @@ const useVideoTileContextualMenuProps = (props) => {
18791
18746
  ariaLabel: strings === null || strings === undefined ? undefined : strings.permitAudioTileMenuLabel
18792
18747
  });
18793
18748
  }
18794
- /* @conditional-compile-remove(media-access) */
18795
18749
  if (participant.canAudioBeForbidden && ((_a = participant.mediaAccess) === null || _a === undefined ? undefined : _a.isAudioPermitted) && onForbidAudio) {
18796
18750
  items.push({
18797
18751
  key: 'forbidAudio',
@@ -18805,7 +18759,6 @@ const useVideoTileContextualMenuProps = (props) => {
18805
18759
  ariaLabel: strings === null || strings === undefined ? undefined : strings.forbidAudioTileMenuLabel
18806
18760
  });
18807
18761
  }
18808
- /* @conditional-compile-remove(media-access) */
18809
18762
  if (participant.canVideoBeForbidden &&
18810
18763
  participant.mediaAccess &&
18811
18764
  !participant.mediaAccess.isVideoPermitted &&
@@ -18822,7 +18775,6 @@ const useVideoTileContextualMenuProps = (props) => {
18822
18775
  ariaLabel: strings === null || strings === undefined ? undefined : strings.permitVideoTileMenuLabel
18823
18776
  });
18824
18777
  }
18825
- /* @conditional-compile-remove(media-access) */
18826
18778
  if (participant.canVideoBeForbidden && ((_b = participant.mediaAccess) === null || _b === undefined ? undefined : _b.isVideoPermitted) && onForbidVideo) {
18827
18779
  items.push({
18828
18780
  key: 'forbidVideo',
@@ -18980,19 +18932,12 @@ const useVideoTileContextualMenuProps = (props) => {
18980
18932
  onStartSpotlight,
18981
18933
  onUpdateScalingMode,
18982
18934
  view,
18983
- /* @conditional-compile-remove(media-access) */
18984
18935
  participant.canAudioBeForbidden,
18985
- /* @conditional-compile-remove(media-access) */
18986
18936
  participant.canVideoBeForbidden,
18987
- /* @conditional-compile-remove(media-access) */
18988
18937
  participant.mediaAccess,
18989
- /* @conditional-compile-remove(media-access) */
18990
18938
  onPermitAudio,
18991
- /* @conditional-compile-remove(media-access) */
18992
18939
  onForbidAudio,
18993
- /* @conditional-compile-remove(media-access) */
18994
18940
  onPermitVideo,
18995
- /* @conditional-compile-remove(media-access) */
18996
18941
  onForbidVideo
18997
18942
  ]);
18998
18943
  return contextualMenuProps;
@@ -19374,18 +19319,10 @@ const videoTileMoreMenuProps = {
19374
19319
  const VideoTileMoreOptionsButton = (props) => {
19375
19320
  const locale = useLocale$1().strings.videoTile;
19376
19321
  const theme = useTheme();
19377
- const { contextualMenu, canShowContextMenuButton, participantDisplayName, participantHandRaised, participantIsSpeaking, participantState, participantIsMuted,
19378
- /* @conditional-compile-remove(media-access) */
19379
- isMicDisabled,
19380
- /* @conditional-compile-remove(media-access) */
19381
- isCameraDisabled } = props;
19322
+ const { contextualMenu, canShowContextMenuButton, participantDisplayName, participantHandRaised, participantIsSpeaking, participantState, participantIsMuted, isMicDisabled, isCameraDisabled } = props;
19382
19323
  const [moreButtonAiraDescription, setMoreButtonAriaDescription] = React.useState('');
19383
19324
  React.useEffect(() => {
19384
- setMoreButtonAriaDescription(formatMoreButtonAriaDescription(participantDisplayName, participantIsMuted, participantHandRaised, participantState, participantIsSpeaking, locale,
19385
- /* @conditional-compile-remove(media-access) */
19386
- isMicDisabled,
19387
- /* @conditional-compile-remove(media-access) */
19388
- isCameraDisabled));
19325
+ setMoreButtonAriaDescription(formatMoreButtonAriaDescription(participantDisplayName, participantIsMuted, participantHandRaised, participantState, participantIsSpeaking, locale, isMicDisabled, isCameraDisabled));
19389
19326
  }, [
19390
19327
  participantDisplayName,
19391
19328
  participantHandRaised,
@@ -19393,9 +19330,7 @@ const VideoTileMoreOptionsButton = (props) => {
19393
19330
  participantIsSpeaking,
19394
19331
  participantState,
19395
19332
  locale,
19396
- /* @conditional-compile-remove(media-access) */
19397
19333
  isMicDisabled,
19398
- /* @conditional-compile-remove(media-access) */
19399
19334
  isCameraDisabled
19400
19335
  ]);
19401
19336
  if (!contextualMenu) {
@@ -19412,9 +19347,7 @@ const VideoTileMoreOptionsButton = (props) => {
19412
19347
  * @public
19413
19348
  */
19414
19349
  const VideoTile = (props) => {
19415
- const { children, displayName, initialsName, isMirrored, isMuted, isSpotlighted, isPinned, onRenderPlaceholder, renderElement, overlay: reactionOverlay, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, raisedHand, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX, contextualMenu,
19416
- /* @conditional-compile-remove(media-access) */
19417
- mediaAccess } = props;
19350
+ const { children, displayName, initialsName, isMirrored, isMuted, isSpotlighted, isPinned, onRenderPlaceholder, renderElement, overlay: reactionOverlay, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, raisedHand, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX, contextualMenu, mediaAccess } = props;
19418
19351
  const [isHovered, setIsHovered] = React.useState(false);
19419
19352
  const [isFocused, setIsFocused] = React.useState(false);
19420
19353
  // need to set a default otherwise the resizeObserver will get stuck in an infinite loop.
@@ -19507,17 +19440,7 @@ const VideoTile = (props) => {
19507
19440
  const canShowContextMenuButton = isHovered || isFocused;
19508
19441
  let raisedHandBackgroundColor = '';
19509
19442
  raisedHandBackgroundColor = callingPalette.raiseHandGold;
19510
- const participantMediaAccessIcons = React.useMemo(() => canShowLabel || participantStateString
19511
- ? getMediaAccessIconsTrampoline(showMuteIndicator, isMuted,
19512
- /* @conditional-compile-remove(media-access) */
19513
- mediaAccess)
19514
- : undefined, [
19515
- canShowLabel,
19516
- isMuted,
19517
- /* @conditional-compile-remove(media-access) */ mediaAccess,
19518
- participantStateString,
19519
- showMuteIndicator
19520
- ]);
19443
+ const participantMediaAccessIcons = React.useMemo(() => canShowLabel || participantStateString ? getMediaAccessIcons(showMuteIndicator, isMuted, mediaAccess) : undefined, [canShowLabel, isMuted, mediaAccess, participantStateString, showMuteIndicator]);
19521
19444
  const canShowParticipantIcons = participantMediaAccessIcons || isSpotlighted || isPinned;
19522
19445
  return (React.createElement(react.Stack, Object.assign({ "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
19523
19446
  background: theme.palette.neutralLighter,
@@ -19550,11 +19473,7 @@ const VideoTile = (props) => {
19550
19473
  React.createElement(react.Icon, { iconName: "VideoTileSpotlighted" }))),
19551
19474
  isPinned && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19552
19475
  React.createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) }))))),
19553
- React.createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu, participantDisplayName: displayName, participantHandRaised: !!raisedHand, participantIsMuted: isMuted, participantState: participantStateString, participantIsSpeaking: isSpeaking, canShowContextMenuButton: canShowContextMenuButton,
19554
- /* @conditional-compile-remove(media-access) */
19555
- isMicDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isAudioPermitted) === false,
19556
- /* @conditional-compile-remove(media-access) */
19557
- isCameraDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isVideoPermitted) === false })))),
19476
+ React.createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu, participantDisplayName: displayName, participantHandRaised: !!raisedHand, participantIsMuted: isMuted, participantState: participantStateString, participantIsSpeaking: isSpeaking, canShowContextMenuButton: canShowContextMenuButton, isMicDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isAudioPermitted) === false, isCameraDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isVideoPermitted) === false })))),
19558
19477
  children && (React.createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === undefined ? undefined : styles.overlayContainer) }, children)),
19559
19478
  raisedHand && (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.2rem' }, className: raiseHandContainerStyles(theme, !canShowLabel) },
19560
19479
  React.createElement(react.Stack.Item, null,
@@ -19562,21 +19481,16 @@ const VideoTile = (props) => {
19562
19481
  React.createElement(react.Stack.Item, null,
19563
19482
  React.createElement(RaisedHandIcon, null)))))));
19564
19483
  };
19565
- const getMediaAccessIconsTrampoline = (showMuteIndicator, isMuted, mediaAccess) => {
19566
- /* @conditional-compile-remove(media-access) */
19484
+ const getMediaAccessIcons = (showMuteIndicator, isMuted, mediaAccess) => {
19567
19485
  const cameraForbidIcon = mediaAccess && !(mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isVideoPermitted) ? (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19568
19486
  React.createElement(react.Icon, { iconName: "ControlButtonCameraProhibitedSmall" }))) : undefined;
19569
- /* @conditional-compile-remove(media-access) */
19570
19487
  const micOffIcon = (mediaAccess ? mediaAccess.isAudioPermitted : true) && showMuteIndicator && isMuted ? (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19571
19488
  React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))) : undefined;
19572
- /* @conditional-compile-remove(media-access) */
19573
19489
  const micForbidIcon = mediaAccess && !(mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isAudioPermitted) && showMuteIndicator ? (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19574
19490
  React.createElement(react.Icon, { iconName: "ControlButtonMicProhibitedSmall" }))) : undefined;
19575
- /* @conditional-compile-remove(media-access) */
19576
19491
  if (!(cameraForbidIcon || micOffIcon || micForbidIcon)) {
19577
19492
  return undefined;
19578
19493
  }
19579
- /* @conditional-compile-remove(media-access) */
19580
19494
  return (React.createElement(React.Fragment, null,
19581
19495
  cameraForbidIcon,
19582
19496
  micOffIcon,
@@ -20226,6 +20140,11 @@ const REACTION_TRAVEL_HEIGHT = 0.35 * REM_TO_PX_MULTIPLIER;
20226
20140
  */
20227
20141
  const REACTION_MAX_TRAVEL_HEIGHT = 0.5 * REM_TO_PX_MULTIPLIER;
20228
20142
  /* @conditional-compile-remove(together-mode) */
20143
+ /**
20144
+ * The maximum width for displaying the participant's display name.
20145
+ */
20146
+ const MAX_DISPLAY_NAME_WIDTH = 150;
20147
+ /* @conditional-compile-remove(together-mode) */
20229
20148
  /**
20230
20149
  * Sets the seating position for a participant in Together Mode.
20231
20150
  *
@@ -20350,15 +20269,25 @@ const togetherModeParticipantStatusContainer = (backgroundColor, borderRadius) =
20350
20269
  * @private
20351
20270
  */
20352
20271
  const togetherModeParticipantDisplayName = (isParticipantHovered, participantSeatingWidth, color) => {
20353
- const MIN_DISPLAY_NAME_WIDTH = 100;
20272
+ // expands the display name width when participant is hovered or clicked on else make it 70% of the participant seating width
20273
+ const width = isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH
20274
+ ? 'fit-content'
20275
+ : _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER);
20276
+ // For smaller displays, the display name is hidden only participant is hovered or clicked on for mobile view
20277
+ const showDisplayName = isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH
20278
+ ? 'inline-block'
20279
+ : 'none';
20354
20280
  return {
20355
20281
  textOverflow: 'ellipsis',
20356
- flexGrow: 1, // Allow text to grow within available space
20357
- overflow: isParticipantHovered ? 'visible' : 'hidden',
20358
20282
  whiteSpace: 'nowrap',
20359
20283
  textAlign: 'center',
20360
20284
  color,
20361
- display: isParticipantHovered || participantSeatingWidth > MIN_DISPLAY_NAME_WIDTH ? 'inline-block' : 'none' // Completely remove the element when hidden
20285
+ overflow: isParticipantHovered ? 'visible' : 'hidden',
20286
+ width,
20287
+ display: showDisplayName,
20288
+ fontSize: `${_pxToRem(13)}`,
20289
+ lineHeight: `${_pxToRem(20)}`,
20290
+ maxWidth: isParticipantHovered ? 'fit-content' : _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER)
20362
20291
  };
20363
20292
  };
20364
20293
  /* @conditional-compile-remove(together-mode) */
@@ -20367,7 +20296,7 @@ const togetherModeParticipantDisplayName = (isParticipantHovered, participantSea
20367
20296
  */
20368
20297
  const togetherModeParticipantEmojiSpriteStyle = (emojiSize, emojiScaledSize, participantSeatWidth) => {
20369
20298
  const participantSeatWidthInPixel = parseFloat(participantSeatWidth) * REM_TO_PX_MULTIPLIER;
20370
- const emojiScaledSizeInPercent = (emojiScaledSize / participantSeatWidthInPixel) * 100;
20299
+ const emojiScaledSizeInPercent = 100 - (emojiScaledSize / participantSeatWidthInPixel) * 100;
20371
20300
  return {
20372
20301
  width: `${emojiSize}`,
20373
20302
  position: 'absolute',
@@ -20375,6 +20304,20 @@ const togetherModeParticipantEmojiSpriteStyle = (emojiSize, emojiScaledSize, par
20375
20304
  left: `${emojiScaledSizeInPercent / 2}%`
20376
20305
  };
20377
20306
  };
20307
+ /* @conditional-compile-remove(together-mode) */
20308
+ /**
20309
+ * The style for the transition of the participant status container in Together Mode.
20310
+ * @private
20311
+ */
20312
+ const participantStatusTransitionStyle = {
20313
+ position: 'absolute',
20314
+ bottom: `${_pxToRem(2)}`,
20315
+ width: 'fit-content',
20316
+ textAlign: 'center',
20317
+ transform: 'translate(-50%)',
20318
+ transition: 'width 0.3s ease, transform 0.3s ease',
20319
+ left: '50%'
20320
+ };
20378
20321
 
20379
20322
  // Copyright (c) Microsoft Corporation.
20380
20323
  // Licensed under the MIT License.
@@ -20397,7 +20340,7 @@ const TogetherModeOverlay = React.memo((props) => {
20397
20340
  * It updates the togetherModeParticipantStatus state when there's a change in the remoteParticipants, localParticipant,
20398
20341
  * raisedHand, spotlight, isMuted, displayName, or hoveredParticipantID.
20399
20342
  */
20400
- React.useMemo(() => {
20343
+ const updatedParticipantStatus = React.useMemo(() => {
20401
20344
  const allParticipants = [...remoteParticipants, localParticipant];
20402
20345
  const participantsWithVideoAvailable = allParticipants.filter((p) => { var _a; return ((_a = p.videoStream) === null || _a === undefined ? undefined : _a.isAvailable) && togetherModeSeatPositions[p.userId]; });
20403
20346
  const updatedSignals = {};
@@ -20420,16 +20363,13 @@ const TogetherModeOverlay = React.memo((props) => {
20420
20363
  }
20421
20364
  // This is used to remove the participants bounding box from the DOM when they are no longer in the stream
20422
20365
  const participantsNotInTogetherModeStream = Object.keys(togetherModeParticipantStatus).filter((id) => !updatedSignals[id]);
20423
- setTogetherModeParticipantStatus((prevSignals) => {
20424
- const newSignals = Object.assign(Object.assign({}, prevSignals), updatedSignals);
20425
- const newSignalsLength = Object.keys(newSignals).length;
20426
- participantsNotInTogetherModeStream.forEach((id) => {
20427
- delete newSignals[id];
20428
- });
20429
- const hasChanges = Object.keys(newSignals).some((key) => JSON.stringify(newSignals[key]) !== JSON.stringify(prevSignals[key]) ||
20430
- newSignalsLength !== Object.keys(prevSignals).length);
20431
- return hasChanges ? newSignals : prevSignals;
20366
+ const newSignals = Object.assign(Object.assign({}, togetherModeParticipantStatus), updatedSignals);
20367
+ participantsNotInTogetherModeStream.forEach((id) => {
20368
+ delete newSignals[id];
20432
20369
  });
20370
+ const hasSignalingChange = Object.keys(newSignals).some((key) => JSON.stringify(newSignals[key]) !== JSON.stringify(togetherModeParticipantStatus[key]));
20371
+ const updateTogetherModeParticipantStatusState = hasSignalingChange || Object.keys(newSignals).length !== Object.keys(togetherModeParticipantStatus).length;
20372
+ return updateTogetherModeParticipantStatusState ? newSignals : togetherModeParticipantStatus;
20433
20373
  }, [
20434
20374
  remoteParticipants,
20435
20375
  localParticipant,
@@ -20439,29 +20379,24 @@ const TogetherModeOverlay = React.memo((props) => {
20439
20379
  locale.strings.videoGallery.displayNamePlaceholder,
20440
20380
  hoveredParticipantID
20441
20381
  ]);
20442
- /*
20443
- * When a larger participant scene switches to a smaller group in Together Mode,
20444
- * participant video streams remain available because their video is still active,
20445
- * even though they are not visible in the Together Mode stream.
20446
- * Therefore, we rely on the updated seating position values to identify who is included in the Together Mode stream.
20447
- * The Together mode seat position will only contain seat coordinates of participants who are visible in the Together Mode stream.
20448
- */
20449
- React.useMemo(() => {
20450
- const removedVisibleParticipants = Object.keys(togetherModeParticipantStatus).filter((participantId) => !togetherModeSeatPositions[participantId]);
20451
- setTogetherModeParticipantStatus((prevSignals) => {
20452
- const newSignals = Object.assign({}, prevSignals);
20453
- removedVisibleParticipants.forEach((participantId) => {
20454
- delete newSignals[participantId];
20455
- });
20456
- // Trigger a re-render only if changes occurred
20457
- const hasChanges = Object.keys(newSignals).length !== Object.keys(prevSignals).length;
20458
- return hasChanges ? newSignals : prevSignals;
20459
- });
20460
- }, [togetherModeParticipantStatus, togetherModeSeatPositions]);
20382
+ React.useEffect(() => {
20383
+ if (hoveredParticipantID && !updatedParticipantStatus[hoveredParticipantID]) {
20384
+ setHoveredParticipantID('');
20385
+ }
20386
+ setTogetherModeParticipantStatus(updatedParticipantStatus);
20387
+ }, [hoveredParticipantID, updatedParticipantStatus]);
20461
20388
  return (React.createElement("div", { style: { position: 'absolute', width: '100%', height: '100%' } }, Object.values(togetherModeParticipantStatus).map((participantStatus) => {
20462
20389
  var _a, _b;
20463
20390
  return participantStatus.id && (React.createElement("div", { key: participantStatus.id, style: Object.assign({}, getTogetherModeParticipantOverlayStyle(participantStatus.seatPositionStyle)), onMouseEnter: () => setHoveredParticipantID(participantStatus.id), onMouseLeave: () => setHoveredParticipantID('') },
20464
20391
  React.createElement("div", null,
20392
+ participantStatus.showDisplayName && (React.createElement("div", { style: Object.assign({}, participantStatusTransitionStyle) },
20393
+ React.createElement("div", { style: Object.assign({}, togetherModeParticipantStatusContainer(callingPalette.videoTileLabelBackgroundLight, theme.effects.roundedCorner4)) },
20394
+ participantStatus.isHandRaised && React.createElement(RaisedHandIcon, null),
20395
+ participantStatus.showDisplayName && (React.createElement(react.Text, { style: Object.assign({}, togetherModeParticipantDisplayName(hoveredParticipantID === participantStatus.id, parseFloat(participantStatus.seatPositionStyle.seatPosition.width), participantStatus.displayName ? theme.palette.neutralSecondary : 'inherit')) }, participantStatus.displayName)),
20396
+ participantStatus.isMuted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20397
+ React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
20398
+ participantStatus.isSpotlighted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20399
+ React.createElement(react.Icon, { iconName: "VideoTileSpotlighted" })))))),
20465
20400
  ((_a = participantStatus.reaction) === null || _a === undefined ? undefined : _a.reactionType) && (
20466
20401
  // First div - Section that fixes the travel height and applies the movement animation
20467
20402
  // Second div - Responsible for ensuring the sprite emoji is always centered in the participant seat position
@@ -20470,15 +20405,7 @@ const TogetherModeOverlay = React.memo((props) => {
20470
20405
  REACTION_MAX_TRAVEL_HEIGHT, parseFloat(participantStatus.seatPositionStyle.seatPosition.height) * REACTION_TRAVEL_HEIGHT) },
20471
20406
  React.createElement("div", { style: Object.assign({}, togetherModeParticipantEmojiSpriteStyle(emojiSize, participantStatus.scaledSize || 1, participantStatus.seatPositionStyle.seatPosition.width)) },
20472
20407
  React.createElement("div", { style: spriteAnimationStyles(REACTION_NUMBER_OF_ANIMATION_FRAMES, participantStatus.scaledSize || 1, (_b = (participantStatus.reaction &&
20473
- getEmojiResource(participantStatus === null || participantStatus === undefined ? undefined : participantStatus.reaction.reactionType, reactionResources))) !== null && _b !== undefined ? _b : '') })))),
20474
- participantStatus.showDisplayName && (React.createElement("div", null,
20475
- React.createElement("div", { style: Object.assign({}, togetherModeParticipantStatusContainer(callingPalette.videoTileLabelBackgroundLight, theme.effects.roundedCorner4)) },
20476
- participantStatus.isHandRaised && React.createElement(RaisedHandIcon, null),
20477
- participantStatus.showDisplayName && (React.createElement(react.Text, { style: Object.assign({}, togetherModeParticipantDisplayName(hoveredParticipantID === participantStatus.id, parseFloat(participantStatus.seatPositionStyle.seatPosition.width), participantStatus.displayName ? theme.palette.neutralSecondary : 'inherit')) }, participantStatus.displayName)),
20478
- participantStatus.isMuted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20479
- React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
20480
- participantStatus.isSpotlighted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20481
- React.createElement(react.Icon, { iconName: "VideoTileSpotlighted" })))))))));
20408
+ getEmojiResource(participantStatus === null || participantStatus === undefined ? undefined : participantStatus.reaction.reactionType, reactionResources))) !== null && _b !== undefined ? _b : '') })))))));
20482
20409
  })));
20483
20410
  });
20484
20411
 
@@ -20567,15 +20494,7 @@ const MeetingReactionOverlay = (props) => {
20567
20494
  const _RemoteVideoTile = React.memo((props) => {
20568
20495
  var _a, _b;
20569
20496
  const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
20570
- isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant, spotlightedParticipantUserIds, isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, onMuteParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings, reactionResources, streamId,
20571
- /* @conditional-compile-remove(media-access) */
20572
- onForbidAudio,
20573
- /* @conditional-compile-remove(media-access) */
20574
- onPermitAudio,
20575
- /* @conditional-compile-remove(media-access) */
20576
- onForbidVideo,
20577
- /* @conditional-compile-remove(media-access) */
20578
- onPermitVideo } = props;
20497
+ isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant, spotlightedParticipantUserIds, isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, onMuteParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings, reactionResources, streamId, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = props;
20579
20498
  const remoteVideoStreamProps = React.useMemo(() => ({
20580
20499
  isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === undefined ? undefined : remoteVideoViewOptions.isMirrored,
20581
20500
  isScreenSharingOn,
@@ -20587,7 +20506,6 @@ const _RemoteVideoTile = React.memo((props) => {
20587
20506
  renderElementExists: !!renderElement,
20588
20507
  scalingMode: remoteVideoViewOptions === null || remoteVideoViewOptions === undefined ? undefined : remoteVideoViewOptions.scalingMode,
20589
20508
  streamId,
20590
- /* @conditional-compile-remove(media-access) */
20591
20509
  isVideoPermitted: remoteParticipant.mediaAccess ? remoteParticipant.mediaAccess.isVideoPermitted : true
20592
20510
  }), [
20593
20511
  isAvailable,
@@ -20600,7 +20518,6 @@ const _RemoteVideoTile = React.memo((props) => {
20600
20518
  renderElement,
20601
20519
  userId,
20602
20520
  streamId,
20603
- /* @conditional-compile-remove(media-access) */
20604
20521
  remoteParticipant.mediaAccess
20605
20522
  ]);
20606
20523
  // Handle creating, destroying and updating the video stream as necessary
@@ -20621,10 +20538,10 @@ const _RemoteVideoTile = React.memo((props) => {
20621
20538
  onStopSpotlight,
20622
20539
  maxParticipantsToSpotlight,
20623
20540
  onMuteParticipant,
20624
- /* @conditional-compile-remove(media-access) */ onForbidAudio,
20625
- /* @conditional-compile-remove(media-access) */ onPermitAudio,
20626
- /* @conditional-compile-remove(media-access) */ onForbidVideo,
20627
- /* @conditional-compile-remove(media-access) */ onPermitVideo
20541
+ onForbidAudio,
20542
+ onPermitAudio,
20543
+ onForbidVideo,
20544
+ onPermitVideo
20628
20545
  });
20629
20546
  const videoTileContextualMenuProps = React.useMemo(() => {
20630
20547
  if (menuKind !== 'contextual' || !contextualMenuProps) {
@@ -20669,9 +20586,7 @@ const _RemoteVideoTile = React.memo((props) => {
20669
20586
  return (React.createElement(react.Stack, { tabIndex: menuKind === 'drawer' ? 0 : undefined, onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined, style: remoteVideoTileWrapperStyle },
20670
20587
  React.createElement(VideoTile, Object.assign({ key: userId, userId: userId, initialsName: (_b = formatInitialsName()) !== null && _b !== undefined ? _b : '', renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: remoteParticipant.isMuted, raisedHand: remoteParticipant.raisedHand, isSpeaking: remoteParticipant.isSpeaking, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, showLabel: props.showLabel, alwaysShowLabelBackground: props.alwaysShowLabelBackground, participantState: participantState }, videoTileContextualMenuProps, { isPinned: props.isPinned, onLongTouch: props.onLongTouch
20671
20588
  ? props.onLongTouch
20672
- : () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps$1(contextualMenuProps, () => setDrawerMenuItemProps([]))), isSpotlighted: isSpotlighted, overlay: reactionOverlay,
20673
- /* @conditional-compile-remove(media-access) */
20674
- mediaAccess: remoteParticipant.mediaAccess })),
20589
+ : () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps$1(contextualMenuProps, () => setDrawerMenuItemProps([]))), isSpotlighted: isSpotlighted, overlay: reactionOverlay, mediaAccess: remoteParticipant.mediaAccess })),
20675
20590
  drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
20676
20591
  React.createElement(react.Stack, { styles: drawerMenuWrapperStyles },
20677
20592
  React.createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItemProps([]), items: drawerMenuItemProps, heading: displayName }))))));
@@ -20776,9 +20691,7 @@ const LocalScreenShare = React.memo((props) => {
20776
20691
  ? locale.strings.videoGallery.displayNamePlaceholder
20777
20692
  : localParticipant === null || localParticipant === undefined ? undefined : localParticipant.displayName;
20778
20693
  const loadingMessage = locale.strings.videoGallery.localScreenShareLoadingMessage;
20779
- return (React.createElement(VideoTile, { displayName: displayName, isMuted: localParticipant === null || localParticipant === undefined ? undefined : localParticipant.isMuted, renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isAvailable === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }),
20780
- /* @conditional-compile-remove(media-access) */
20781
- mediaAccess: localParticipant.mediaAccess }));
20694
+ return (React.createElement(VideoTile, { displayName: displayName, isMuted: localParticipant === null || localParticipant === undefined ? undefined : localParticipant.isMuted, renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isAvailable === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }), mediaAccess: localParticipant.mediaAccess }));
20782
20695
  });
20783
20696
 
20784
20697
  // Copyright (c) Microsoft Corporation.
@@ -20883,9 +20796,7 @@ const LocalVideoCameraCycleButton = (props) => {
20883
20796
  * @internal
20884
20797
  */
20885
20798
  const _LocalVideoTile = React.memo((props) => {
20886
- const { isAvailable, isMuted, onCreateLocalStreamView, onDisposeLocalStreamView, localVideoViewOptions, renderElement, userId, showLabel, alwaysShowLabelBackground, displayName, initialsName, onRenderAvatar, showMuteIndicator, styles, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription, raisedHand, reaction, isSpotlighted, spotlightedParticipantUserIds, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, menuKind, strings, reactionResources, isScreenSharingOn,
20887
- /* @conditional-compile-remove(media-access) */
20888
- mediaAccess } = props;
20799
+ const { isAvailable, isMuted, onCreateLocalStreamView, onDisposeLocalStreamView, localVideoViewOptions, renderElement, userId, showLabel, alwaysShowLabelBackground, displayName, initialsName, onRenderAvatar, showMuteIndicator, styles, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription, raisedHand, reaction, isSpotlighted, spotlightedParticipantUserIds, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, menuKind, strings, reactionResources, isScreenSharingOn, mediaAccess } = props;
20889
20800
  const theme = useTheme();
20890
20801
  const localVideoStreamProps = React.useMemo(() => ({
20891
20802
  isMirrored: localVideoViewOptions === null || localVideoViewOptions === undefined ? undefined : localVideoViewOptions.isMirrored,
@@ -20894,7 +20805,6 @@ const _LocalVideoTile = React.memo((props) => {
20894
20805
  onDisposeLocalStreamView,
20895
20806
  renderElementExists: !!renderElement,
20896
20807
  scalingMode: localVideoViewOptions === null || localVideoViewOptions === undefined ? undefined : localVideoViewOptions.scalingMode,
20897
- /* @conditional-compile-remove(media-access) */
20898
20808
  isVideoPermitted: mediaAccess ? mediaAccess.isVideoPermitted : true
20899
20809
  }), [
20900
20810
  isAvailable,
@@ -20903,7 +20813,6 @@ const _LocalVideoTile = React.memo((props) => {
20903
20813
  onCreateLocalStreamView,
20904
20814
  onDisposeLocalStreamView,
20905
20815
  renderElement,
20906
- /* @conditional-compile-remove(media-access) */
20907
20816
  mediaAccess
20908
20817
  ]);
20909
20818
  // Handle creating, destroying and updating the video stream as necessary
@@ -20975,8 +20884,7 @@ const _LocalVideoTile = React.memo((props) => {
20975
20884
  React.createElement(react.Spinner, { label: strings === null || strings === undefined ? undefined : strings.waitingScreenText, ariaLive: "assertive", labelPosition: "bottom", role: "alert", styles: loadSpinnerStyles(theme, false) })));
20976
20885
  }, [strings === null || strings === undefined ? undefined : strings.waitingScreenText, theme]);
20977
20886
  return (React.createElement(react.Stack, { "data-ui-id": "local-video-tile", className: react.mergeStyles({ width: '100%', height: '100%' }), onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined },
20978
- React.createElement(VideoTile, Object.assign({ key: userId !== null && userId !== undefined ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, alwaysShowLabelBackground: alwaysShowLabelBackground, displayName: displayName, initialsName: initialsName, styles: videoTileStyles, onRenderPlaceholder: props.participantsCount === 1 && !isScreenSharingOn ? onRenderAvatarOneParticipant : onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, raisedHand: raisedHand, isSpotlighted: isSpotlighted }, videoTileContextualMenuProps, { onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))), overlay: videoTileOverlay,
20979
- /* @conditional-compile-remove(media-access) */ mediaAccess: mediaAccess }), drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
20887
+ React.createElement(VideoTile, Object.assign({ key: userId !== null && userId !== undefined ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, alwaysShowLabelBackground: alwaysShowLabelBackground, displayName: displayName, initialsName: initialsName, styles: videoTileStyles, onRenderPlaceholder: props.participantsCount === 1 && !isScreenSharingOn ? onRenderAvatarOneParticipant : onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, raisedHand: raisedHand, isSpotlighted: isSpotlighted }, videoTileContextualMenuProps, { onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))), overlay: videoTileOverlay, mediaAccess: mediaAccess }), drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
20980
20888
  React.createElement(react.Stack, { styles: drawerMenuWrapperStyles },
20981
20889
  React.createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItemProps([]), items: drawerMenuItemProps })))))));
20982
20890
  });
@@ -21869,9 +21777,9 @@ const DefaultLayout = (props) => {
21869
21777
  return (React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: rootLayoutStyle$1, tokens: videoGalleryLayoutGap },
21870
21778
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
21871
21779
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
21872
- overflowGalleryTrampoline$4(overflowGallery, props.overflowGalleryPosition)));
21780
+ overflowGalleryTrampoline$3(overflowGallery, props.overflowGalleryPosition)));
21873
21781
  };
21874
- const overflowGalleryTrampoline$4 = (gallery, galleryPosition) => {
21782
+ const overflowGalleryTrampoline$3 = (gallery, galleryPosition) => {
21875
21783
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
21876
21784
  };
21877
21785
 
@@ -22724,9 +22632,9 @@ const FloatingLocalVideoLayout = (props) => {
22724
22632
  React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: innerLayoutStyle, tokens: videoGalleryLayoutGap },
22725
22633
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22726
22634
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
22727
- overflowGalleryTrampoline$3(overflowGallery, props.overflowGalleryPosition))));
22635
+ overflowGalleryTrampoline$2(overflowGallery, props.overflowGalleryPosition))));
22728
22636
  };
22729
- const overflowGalleryTrampoline$3 = (gallery, galleryPosition) => {
22637
+ const overflowGalleryTrampoline$2 = (gallery, galleryPosition) => {
22730
22638
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22731
22639
  };
22732
22640
 
@@ -22819,9 +22727,9 @@ const SpeakerVideoLayout = (props) => {
22819
22727
  React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: innerLayoutStyle, tokens: videoGalleryLayoutGap },
22820
22728
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22821
22729
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
22822
- overflowGalleryTrampoline$2(overflowGallery, props.overflowGalleryPosition))));
22730
+ overflowGalleryTrampoline$1(overflowGallery, props.overflowGalleryPosition))));
22823
22731
  };
22824
- const overflowGalleryTrampoline$2 = (gallery, galleryPosition) => {
22732
+ const overflowGalleryTrampoline$1 = (gallery, galleryPosition) => {
22825
22733
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22826
22734
  };
22827
22735
 
@@ -22913,9 +22821,9 @@ const LargeGalleryLayout = (props) => {
22913
22821
  return (React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: rootLayoutStyle$1, tokens: videoGalleryLayoutGap },
22914
22822
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22915
22823
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
22916
- overflowGalleryTrampoline$1(overflowGallery, props.overflowGalleryPosition)));
22824
+ overflowGalleryTrampoline(overflowGallery, props.overflowGalleryPosition)));
22917
22825
  };
22918
- const overflowGalleryTrampoline$1 = (gallery, galleryPosition) => {
22826
+ const overflowGalleryTrampoline = (gallery, galleryPosition) => {
22919
22827
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22920
22828
  };
22921
22829
  const calculateMaxTilesInLargeGrid = (parentWidth, parentHeight) => {
@@ -22936,61 +22844,8 @@ const calculateMaxTilesInLargeGrid = (parentWidth, parentHeight) => {
22936
22844
  * https://reactjs.org/docs/react-api.html#reactmemo
22937
22845
  */
22938
22846
  const TogetherModeLayout = (props) => {
22939
- const { remoteParticipants = [], dominantSpeakers, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth, parentHeight, overflowGalleryPosition = 'horizontalBottom', pinnedParticipantUserIds = [], togetherModeStreamComponent } = props;
22940
- const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
22941
- const isShort = parentHeight ? isShortHeight(parentHeight) : false;
22942
- const [indexesToRender, setIndexesToRender] = React.useState([]);
22943
- const childrenPerPage = React.useRef(4);
22944
- const { gridParticipants, overflowGalleryParticipants } = useOrganizedParticipants({
22945
- remoteParticipants,
22946
- dominantSpeakers,
22947
- maxGridParticipants: maxRemoteVideoStreams,
22948
- isScreenShareActive: !!screenShareComponent,
22949
- maxOverflowGalleryDominantSpeakers: screenShareComponent
22950
- ? childrenPerPage.current - (pinnedParticipantUserIds.length % childrenPerPage.current)
22951
- : childrenPerPage.current,
22952
- pinnedParticipantUserIds,
22953
- layout: 'floatingLocalVideo'
22954
- });
22955
- const { gridTiles, overflowGalleryTiles } = renderTiles(gridParticipants, onRenderRemoteParticipant, maxRemoteVideoStreams, indexesToRender, overflowGalleryParticipants, dominantSpeakers);
22956
- const layerHostId = reactHooks.useId('layerhost');
22957
- const togetherModeOverFlowGalleryTiles = React.useMemo(() => {
22958
- let newTiles = overflowGalleryTiles;
22959
- if (togetherModeStreamComponent) {
22960
- if (screenShareComponent) {
22961
- newTiles = gridTiles.concat(overflowGalleryTiles);
22962
- }
22963
- }
22964
- return newTiles;
22965
- }, [gridTiles, overflowGalleryTiles, screenShareComponent, togetherModeStreamComponent]);
22966
- const overflowGallery = React.useMemo(() => {
22967
- if (overflowGalleryTiles.length === 0 && !props.screenShareComponent) {
22968
- return null;
22969
- }
22970
- return (React.createElement(OverflowGallery, { isShort: isShort, onFetchTilesToRender: setIndexesToRender, isNarrow: isNarrow, shouldFloatLocalVideo: false, overflowGalleryElements: togetherModeOverFlowGalleryTiles, horizontalGalleryStyles: styles === null || styles === undefined ? undefined : styles.horizontalGallery, verticalGalleryStyles: styles === null || styles === undefined ? undefined : styles.verticalGallery, overflowGalleryPosition: overflowGalleryPosition, onChildrenPerPageChange: (n) => {
22971
- childrenPerPage.current = n;
22972
- }, parentWidth: parentWidth }));
22973
- }, [
22974
- overflowGalleryTiles.length,
22975
- props.screenShareComponent,
22976
- isShort,
22977
- isNarrow,
22978
- togetherModeOverFlowGalleryTiles,
22979
- styles === null || styles === undefined ? undefined : styles.horizontalGallery,
22980
- styles === null || styles === undefined ? undefined : styles.verticalGallery,
22981
- overflowGalleryPosition,
22982
- parentWidth
22983
- ]);
22984
- return screenShareComponent ? (React.createElement(react.Stack, { styles: rootLayoutStyle$1 },
22985
- React.createElement(react.LayerHost, { id: layerHostId, className: react.mergeStyles(layerHostStyle) }),
22986
- React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: innerLayoutStyle, tokens: videoGalleryLayoutGap },
22987
- props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22988
- screenShareComponent,
22989
- overflowGalleryTrampoline(overflowGallery, props.overflowGalleryPosition)))) : (React.createElement(react.Stack, null, props.togetherModeStreamComponent));
22990
- };
22991
- /* @conditional-compile-remove(together-mode) */
22992
- const overflowGalleryTrampoline = (gallery, galleryPosition) => {
22993
- return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22847
+ const { togetherModeStreamComponent } = props;
22848
+ return React.createElement(react.Stack, null, togetherModeStreamComponent);
22994
22849
  };
22995
22850
 
22996
22851
  // Copyright (c) Microsoft Corporation.
@@ -23091,15 +22946,7 @@ const VideoGallery = (props) => {
23091
22946
  /* @conditional-compile-remove(together-mode) */
23092
22947
  togetherModeSeatingCoordinates,
23093
22948
  /* @conditional-compile-remove(together-mode) */
23094
- onDisposeTogetherModeStreamView,
23095
- /* @conditional-compile-remove(media-access) */
23096
- onForbidAudio,
23097
- /* @conditional-compile-remove(media-access) */
23098
- onPermitAudio,
23099
- /* @conditional-compile-remove(media-access) */
23100
- onForbidVideo,
23101
- /* @conditional-compile-remove(media-access) */
23102
- onPermitVideo } = props;
22949
+ onDisposeTogetherModeStreamView, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = props;
23103
22950
  const ids = useIdentifiers();
23104
22951
  const theme = useTheme();
23105
22952
  const localeStrings = useLocale$1().strings.videoGallery;
@@ -23157,9 +23004,7 @@ const VideoGallery = (props) => {
23157
23004
  return layout === 'default' ? strings.localVideoLabel : isNarrow ? '' : strings.localVideoLabel;
23158
23005
  };
23159
23006
  return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key" },
23160
- React.createElement(_LocalVideoTile, { alwaysShowLabelBackground: videoTilesOptions === null || videoTilesOptions === undefined ? undefined : videoTilesOptions.alwaysShowLabelBackground, userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _a === undefined ? undefined : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _b === undefined ? undefined : _b.renderElement, displayName: showDisplayNameTrampoline(), initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: showLocalVideoTileLabel, showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles, raisedHand: localParticipant.raisedHand, reaction: localParticipant.reaction, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartLocalSpotlight, onStopSpotlight: onStopLocalSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, menuKind: remoteVideoTileMenu ? (remoteVideoTileMenu.kind === 'drawer' ? 'drawer' : 'contextual') : undefined, drawerMenuHostId: drawerMenuHostId, strings: strings, reactionResources: reactionResources, participantsCount: remoteParticipants.length + 1, isScreenSharingOn: localParticipant.isScreenSharingOn,
23161
- /* @conditional-compile-remove(media-access) */
23162
- mediaAccess: localParticipant.mediaAccess })));
23007
+ React.createElement(_LocalVideoTile, { alwaysShowLabelBackground: videoTilesOptions === null || videoTilesOptions === undefined ? undefined : videoTilesOptions.alwaysShowLabelBackground, userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _a === undefined ? undefined : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _b === undefined ? undefined : _b.renderElement, displayName: showDisplayNameTrampoline(), initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: showLocalVideoTileLabel, showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles, raisedHand: localParticipant.raisedHand, reaction: localParticipant.reaction, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartLocalSpotlight, onStopSpotlight: onStopLocalSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, menuKind: remoteVideoTileMenu ? (remoteVideoTileMenu.kind === 'drawer' ? 'drawer' : 'contextual') : undefined, drawerMenuHostId: drawerMenuHostId, strings: strings, reactionResources: reactionResources, participantsCount: remoteParticipants.length + 1, isScreenSharingOn: localParticipant.isScreenSharingOn, mediaAccess: localParticipant.mediaAccess })));
23163
23008
  }, [
23164
23009
  isNarrow,
23165
23010
  localParticipant,
@@ -23239,15 +23084,7 @@ const VideoGallery = (props) => {
23239
23084
  ? remoteVideoTileMenu.kind === 'drawer'
23240
23085
  ? 'drawer'
23241
23086
  : 'contextual'
23242
- : undefined, drawerMenuHostId: drawerMenuHostId, onPinParticipant: onPinParticipant, onUnpinParticipant: onUnpinParticipant, onUpdateScalingMode: onUpdateScalingMode, isPinned: isPinned, disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES$1, toggleAnnouncerString: toggleAnnouncerString, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartRemoteSpotlight, onStopSpotlight: onStopRemoteSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources, onMuteParticipant: onMuteParticipant,
23243
- /* @conditional-compile-remove(media-access) */
23244
- onForbidAudio: onForbidAudio,
23245
- /* @conditional-compile-remove(media-access) */
23246
- onPermitAudio: onPermitAudio,
23247
- /* @conditional-compile-remove(media-access) */
23248
- onForbidVideo: onForbidVideo,
23249
- /* @conditional-compile-remove(media-access) */
23250
- onPermitVideo: onPermitVideo }));
23087
+ : undefined, drawerMenuHostId: drawerMenuHostId, onPinParticipant: onPinParticipant, onUnpinParticipant: onUnpinParticipant, onUpdateScalingMode: onUpdateScalingMode, isPinned: isPinned, disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES$1, toggleAnnouncerString: toggleAnnouncerString, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartRemoteSpotlight, onStopSpotlight: onStopRemoteSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources, onMuteParticipant: onMuteParticipant, onForbidAudio: onForbidAudio, onPermitAudio: onPermitAudio, onForbidVideo: onForbidVideo, onPermitVideo: onPermitVideo }));
23251
23088
  }, [
23252
23089
  selectedScalingModeState,
23253
23090
  pinnedParticipants,
@@ -23270,13 +23107,9 @@ const VideoGallery = (props) => {
23270
23107
  maxParticipantsToSpotlight,
23271
23108
  reactionResources,
23272
23109
  onMuteParticipant,
23273
- /* @conditional-compile-remove(media-access) */
23274
23110
  onForbidAudio,
23275
- /* @conditional-compile-remove(media-access) */
23276
23111
  onPermitAudio,
23277
- /* @conditional-compile-remove(media-access) */
23278
23112
  onForbidVideo,
23279
- /* @conditional-compile-remove(media-access) */
23280
23113
  onPermitVideo,
23281
23114
  remoteVideoViewOptions
23282
23115
  ]);
@@ -23289,7 +23122,7 @@ const VideoGallery = (props) => {
23289
23122
  ? localScreenShareStreamComponent
23290
23123
  : undefined;
23291
23124
  /* @conditional-compile-remove(together-mode) */
23292
- const togetherModeStreamComponent = React.useMemo(() => (React.createElement(TogetherModeStream, { startTogetherModeEnabled: startTogetherModeEnabled, isTogetherModeActive: isTogetherModeActive, onCreateTogetherModeStreamView: onCreateTogetherModeStreamView, onStartTogetherMode: onStartTogetherMode, onDisposeTogetherModeStreamView: onDisposeTogetherModeStreamView, onSetTogetherModeSceneSize: onSetTogetherModeSceneSize, togetherModeStreams: togetherModeStreams, seatingCoordinates: togetherModeSeatingCoordinates, localParticipant: localParticipant, remoteParticipants: remoteParticipants, reactionResources: reactionResources, screenShareComponent: screenShareComponent, containerWidth: containerWidth, containerHeight: containerHeight })), [
23125
+ const togetherModeStreamComponent = React.useMemo(() => (React.createElement(TogetherModeStream, { startTogetherModeEnabled: startTogetherModeEnabled, isTogetherModeActive: isTogetherModeActive, onCreateTogetherModeStreamView: onCreateTogetherModeStreamView, onStartTogetherMode: onStartTogetherMode, onDisposeTogetherModeStreamView: onDisposeTogetherModeStreamView, onSetTogetherModeSceneSize: onSetTogetherModeSceneSize, togetherModeStreams: togetherModeStreams, seatingCoordinates: togetherModeSeatingCoordinates, localParticipant: localParticipant, remoteParticipants: remoteParticipants, reactionResources: reactionResources, containerWidth: containerWidth, containerHeight: containerHeight })), [
23293
23126
  startTogetherModeEnabled,
23294
23127
  isTogetherModeActive,
23295
23128
  onCreateTogetherModeStreamView,
@@ -23301,7 +23134,6 @@ const VideoGallery = (props) => {
23301
23134
  localParticipant,
23302
23135
  remoteParticipants,
23303
23136
  reactionResources,
23304
- screenShareComponent,
23305
23137
  containerWidth,
23306
23138
  containerHeight
23307
23139
  ]);
@@ -23324,9 +23156,7 @@ const VideoGallery = (props) => {
23324
23156
  pinnedParticipantUserIds: pinnedParticipants,
23325
23157
  overflowGalleryPosition,
23326
23158
  localVideoTileSize,
23327
- spotlightedParticipantUserIds: spotlightedParticipants,
23328
- /* @conditional-compile-remove(together-mode) */
23329
- togetherModeStreamComponent
23159
+ spotlightedParticipantUserIds: spotlightedParticipants
23330
23160
  }), [
23331
23161
  remoteParticipants,
23332
23162
  localParticipant,
@@ -23343,9 +23173,7 @@ const VideoGallery = (props) => {
23343
23173
  pinnedParticipants,
23344
23174
  overflowGalleryPosition,
23345
23175
  localVideoTileSize,
23346
- spotlightedParticipants,
23347
- /* @conditional-compile-remove(together-mode) */
23348
- togetherModeStreamComponent
23176
+ spotlightedParticipants
23349
23177
  ]);
23350
23178
  const videoGalleryLayout = React.useMemo(() => {
23351
23179
  if (screenShareParticipant && layout === 'focusedContent') {
@@ -23364,15 +23192,17 @@ const VideoGallery = (props) => {
23364
23192
  /* @conditional-compile-remove(together-mode) */
23365
23193
  // Teams users can switch to Together mode layout only if they have the capability,
23366
23194
  // while ACS users can do so only if Together mode is enabled.
23367
- if (layout === 'togetherMode' && canSwitchToTogetherModeLayout) {
23368
- return React.createElement(TogetherModeLayout, Object.assign({}, layoutProps));
23195
+ if (!screenShareComponent && layout === 'togetherMode' && canSwitchToTogetherModeLayout) {
23196
+ return React.createElement(TogetherModeLayout, { togetherModeStreamComponent: togetherModeStreamComponent });
23369
23197
  }
23370
23198
  return React.createElement(DefaultLayout, Object.assign({}, layoutProps));
23371
23199
  }, [
23372
23200
  /* @conditional-compile-remove(together-mode) */ canSwitchToTogetherModeLayout,
23373
23201
  layout,
23374
23202
  layoutProps,
23375
- screenShareParticipant
23203
+ screenShareComponent,
23204
+ screenShareParticipant,
23205
+ /* @conditional-compile-remove(together-mode) */ togetherModeStreamComponent
23376
23206
  ]);
23377
23207
  return (React.createElement("div", {
23378
23208
  // We don't assign an drawer menu host id to the VideoGallery when a drawerMenuHostId is assigned from props
@@ -27274,7 +27104,7 @@ const StartRealTimeTextButton = (props) => {
27274
27104
  const onRenderStartIcon = () => {
27275
27105
  return React.createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "RealTimeTextIcon" });
27276
27106
  };
27277
- return (React.createElement(ControlBarButton, Object.assign({}, props, { strings: strings, onClick: onStartRealTimeText, onRenderOffIcon: onRenderStartIcon, disabled: isRealTimeTextOn })));
27107
+ return (React.createElement(ControlBarButton, Object.assign({}, props, { strings: strings, onClick: onStartRealTimeText, onRenderOffIcon: onRenderStartIcon, disabled: props.disabled || isRealTimeTextOn })));
27278
27108
  };
27279
27109
 
27280
27110
  // Copyright (c) Microsoft Corporation.
@@ -32132,7 +31962,7 @@ const AttachmentDownloadErrorBar = (props) => {
32132
31962
  /**
32133
31963
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
32134
31964
  */
32135
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BUOpEC0L.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
31965
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CAzmoL1D.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
32136
31966
  /**
32137
31967
  * @private
32138
31968
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -32140,7 +31970,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
32140
31970
  *
32141
31971
  /* @conditional-compile-remove(rich-text-editor-composite-support)
32142
31972
  */
32143
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BUOpEC0L.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
31973
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CAzmoL1D.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
32144
31974
  /**
32145
31975
  * @private
32146
31976
  */
@@ -33060,7 +32890,6 @@ const memoizeState = memoizeOne((userId, deviceManager, calls, latestErrors, lat
33060
32890
  callAgent: { displayName },
33061
32891
  calls,
33062
32892
  latestErrors,
33063
- /* @conditional-compile-remove(breakout-rooms) */ /* @conditional-compile-remove(media-access) */
33064
32893
  latestNotifications: latestNotifications !== null && latestNotifications !== undefined ? latestNotifications : {},
33065
32894
  alternateCallerId,
33066
32895
  environmentInfo
@@ -33832,11 +33661,6 @@ const getEnvironmentInfo = (state) => state.environmentInfo;
33832
33661
  */
33833
33662
  const getSelectedVideoEffect = (state) => state.selectedVideoBackgroundEffect;
33834
33663
  /** @private */
33835
- const getCaptionsKind = (state) => {
33836
- var _a;
33837
- return (_a = state.call) === null || _a === undefined ? undefined : _a.captionsFeature.captionsKind;
33838
- };
33839
- /** @private */
33840
33664
  const getCaptionsStatus = (state) => {
33841
33665
  var _a;
33842
33666
  return (_a = state.call) === null || _a === undefined ? undefined : _a.captionsFeature.isCaptionsFeatureActive;
@@ -33903,7 +33727,22 @@ const getAlternateCallerId = (state) => state.alternateCallerId;
33903
33727
  const getIsRoomsCall = (state) => state.isRoomsCall;
33904
33728
  /** @private */
33905
33729
  const getVideoBackgroundImages = (state) => state.videoBackgroundImages;
33906
- /* @conditional-compile-remove(media-access) */
33730
+ /* @conditional-compile-remove(together-mode) */
33731
+ /**
33732
+ * @private
33733
+ * Gets the together mode streams state.
33734
+ * @param state - The current state of the call adapter.
33735
+ * @returns The together mode streams state or undefined.
33736
+ */
33737
+ const getIsTogetherModeActive = (state) => { var _a; return (_a = state.call) === null || _a === undefined ? undefined : _a.togetherMode.isActive; };
33738
+ /* @conditional-compile-remove(together-mode) */
33739
+ /**
33740
+ * @private
33741
+ * Gets local participant's user id.
33742
+ * @param state - The current state of the call adapter.
33743
+ * @returns The local participant's user id or undefined.
33744
+ */
33745
+ const getLocalUserId = (state) => state.userId;
33907
33746
  /** @private */
33908
33747
  const getMediaAccessSetting = (state) => { var _a; return (_a = state.call) === null || _a === undefined ? undefined : _a.meetingMediaAccess; };
33909
33748
 
@@ -34100,49 +33939,41 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
34100
33939
  onMuteAllRemoteParticipants: () => __awaiter$q(undefined, undefined, undefined, function* () {
34101
33940
  yield adapter.muteAllRemoteParticipants();
34102
33941
  }),
34103
- /* @conditional-compile-remove(media-access) */
34104
33942
  onForbidAudio: ((_a = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _a === undefined ? undefined : _a.isPresent)
34105
33943
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34106
33944
  yield adapter.forbidAudio(userIds);
34107
33945
  })
34108
33946
  : undefined,
34109
- /* @conditional-compile-remove(media-access) */
34110
33947
  onPermitAudio: ((_b = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _b === undefined ? undefined : _b.isPresent)
34111
33948
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34112
33949
  yield adapter.permitAudio(userIds);
34113
33950
  })
34114
33951
  : undefined,
34115
- /* @conditional-compile-remove(media-access) */
34116
33952
  onForbidOthersAudio: ((_c = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _c === undefined ? undefined : _c.isPresent)
34117
33953
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34118
33954
  yield adapter.forbidOthersAudio();
34119
33955
  })
34120
33956
  : undefined,
34121
- /* @conditional-compile-remove(media-access) */
34122
33957
  onPermitOthersAudio: ((_d = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _d === undefined ? undefined : _d.isPresent)
34123
33958
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34124
33959
  yield adapter.permitOthersAudio();
34125
33960
  })
34126
33961
  : undefined,
34127
- /* @conditional-compile-remove(media-access) */
34128
33962
  onForbidVideo: ((_e = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _e === undefined ? undefined : _e.isPresent)
34129
33963
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34130
33964
  yield adapter.forbidVideo(userIds);
34131
33965
  })
34132
33966
  : undefined,
34133
- /* @conditional-compile-remove(media-access) */
34134
33967
  onPermitVideo: ((_f = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _f === undefined ? undefined : _f.isPresent)
34135
33968
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34136
33969
  yield adapter.permitVideo(userIds);
34137
33970
  })
34138
33971
  : undefined,
34139
- /* @conditional-compile-remove(media-access) */
34140
33972
  onForbidOthersVideo: ((_g = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _g === undefined ? undefined : _g.isPresent)
34141
33973
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34142
33974
  yield adapter.forbidOthersVideo();
34143
33975
  })
34144
33976
  : undefined,
34145
- /* @conditional-compile-remove(media-access) */
34146
33977
  onPermitOthersVideo: ((_h = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _h === undefined ? undefined : _h.isPresent)
34147
33978
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34148
33979
  yield adapter.permitOthersVideo();
@@ -35480,7 +35311,7 @@ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments,
35480
35311
  * @private
35481
35312
  */
35482
35313
  const DesktopMoreButton = (props) => {
35483
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
35314
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
35484
35315
  const localeStrings = useLocale();
35485
35316
  const holdButtonProps = usePropsFor$1(HoldButton);
35486
35317
  const startCaptionsButtonProps = usePropsFor$1(StartCaptionsButton);
@@ -35499,6 +35330,14 @@ const DesktopMoreButton = (props) => {
35499
35330
  const allowDtmfDialer = showDtmfDialer(callees);
35500
35331
  const isTeamsMeeting = useSelector$1(getIsTeamsMeeting);
35501
35332
  const teamsMeetingCoordinates = useSelector$1(getTeamsMeetingCoordinates);
35333
+ /* @conditional-compile-remove(together-mode) */
35334
+ const isTogetherModeActive = useSelector$1(getIsTogetherModeActive);
35335
+ /* @conditional-compile-remove(together-mode) */
35336
+ const participantCapability = useSelector$1(getCapabilites);
35337
+ /* @conditional-compile-remove(together-mode) */
35338
+ const participantId = useSelector$1(getLocalUserId);
35339
+ /* @conditional-compile-remove(together-mode) */
35340
+ const isTeamsCall = useSelector$1(getIsTeamsCall);
35502
35341
  const [dtmfDialerChecked, setDtmfDialerChecked] = React.useState((_b = props.dtmfDialerPresent) !== null && _b !== undefined ? _b : false);
35503
35342
  const moreButtonStrings = React.useMemo(() => ({
35504
35343
  label: localeStrings.strings.call.moreButtonCallingLabel,
@@ -35796,6 +35635,26 @@ const DesktopMoreButton = (props) => {
35796
35635
  styles: { root: { lineHeight: 0 } }
35797
35636
  }
35798
35637
  };
35638
+ /* @conditional-compile-remove(together-mode) */
35639
+ const togetherModeOption = {
35640
+ key: 'togetherModeSelectionKey',
35641
+ text: localeStrings.strings.call.moreButtonTogetherModeLayoutLabel,
35642
+ canCheck: true,
35643
+ itemProps: {
35644
+ styles: buttonFlyoutIncreasedSizeStyles
35645
+ },
35646
+ isChecked: props.userSetGalleryLayout === 'togetherMode',
35647
+ onClick: () => {
35648
+ props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');
35649
+ setFocusedContentOn(false);
35650
+ },
35651
+ disabled: !(((participantId === null || participantId === undefined ? undefined : participantId.kind) === 'microsoftTeamsUser' && ((_e = participantCapability === null || participantCapability === undefined ? undefined : participantCapability.startTogetherMode) === null || _e === undefined ? undefined : _e.isPresent)) ||
35652
+ isTogetherModeActive),
35653
+ iconProps: {
35654
+ iconName: 'TogetherModeLayout',
35655
+ styles: { root: { lineHeight: 0 } }
35656
+ }
35657
+ };
35799
35658
  /* @conditional-compile-remove(overflow-top-composite) */
35800
35659
  const overflowGalleryOption = {
35801
35660
  key: 'topKey',
@@ -35822,12 +35681,16 @@ const DesktopMoreButton = (props) => {
35822
35681
  }
35823
35682
  };
35824
35683
  /* @conditional-compile-remove(large-gallery) */
35825
- (_f = (_e = galleryOptions.subMenuProps) === null || _e === undefined ? undefined : _e.items) === null || _f === undefined ? undefined : _f.push(largeGalleryOption);
35684
+ (_g = (_f = galleryOptions.subMenuProps) === null || _f === undefined ? undefined : _f.items) === null || _g === undefined ? undefined : _g.push(largeGalleryOption);
35826
35685
  /* @conditional-compile-remove(gallery-layout-composite) */
35827
- (_h = (_g = galleryOptions.subMenuProps) === null || _g === undefined ? undefined : _g.items) === null || _h === undefined ? undefined : _h.push(galleryOption);
35686
+ (_j = (_h = galleryOptions.subMenuProps) === null || _h === undefined ? undefined : _h.items) === null || _j === undefined ? undefined : _j.push(galleryOption);
35828
35687
  /* @conditional-compile-remove(overflow-top-composite) */
35829
- (_k = (_j = galleryOptions.subMenuProps) === null || _j === undefined ? undefined : _j.items) === null || _k === undefined ? undefined : _k.push(overflowGalleryOption);
35830
- if (props.callControls === true || ((_l = props.callControls) === null || _l === undefined ? undefined : _l.galleryControlsButton) !== false) {
35688
+ (_l = (_k = galleryOptions.subMenuProps) === null || _k === undefined ? undefined : _k.items) === null || _l === undefined ? undefined : _l.push(overflowGalleryOption);
35689
+ /* @conditional-compile-remove(together-mode) */
35690
+ if (isTeamsCall || isTeamsMeeting) {
35691
+ (_o = (_m = galleryOptions.subMenuProps) === null || _m === undefined ? undefined : _m.items) === null || _o === undefined ? undefined : _o.push(togetherModeOption);
35692
+ }
35693
+ if (props.callControls === true || ((_p = props.callControls) === null || _p === undefined ? undefined : _p.galleryControlsButton) !== false) {
35831
35694
  moreButtonContextualMenuItems.push(galleryOptions);
35832
35695
  }
35833
35696
  }
@@ -36682,7 +36545,7 @@ const inferCallWithChatControlOptions = (callWithChatControls) => {
36682
36545
  };
36683
36546
  /** @private */
36684
36547
  const MoreDrawer = (props) => {
36685
- var _a, _b, _c, _d, _e, _f, _g;
36548
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
36686
36549
  const theme = react.useTheme();
36687
36550
  const callAdapter = useAdapter();
36688
36551
  const drawerMenuItems = [];
@@ -36696,6 +36559,15 @@ const MoreDrawer = (props) => {
36696
36559
  const allowDtmfDialer = showDtmfDialer(callees, participants, props.dtmfDialerOptions);
36697
36560
  const [dtmfDialerChecked, setDtmfDialerChecked] = React.useState((_a = props.dtmfDialerPresent) !== null && _a !== undefined ? _a : false);
36698
36561
  const raiseHandButtonProps = usePropsFor$1(RaiseHandButton);
36562
+ /* @conditional-compile-remove(together-mode) */
36563
+ const participantCapability = useSelector$1(getCapabilites);
36564
+ /* @conditional-compile-remove(together-mode) */
36565
+ const participantId = useSelector$1(getLocalUserId);
36566
+ /* @conditional-compile-remove(together-mode) */
36567
+ const isTogetherModeActive = useSelector$1(getIsTogetherModeActive);
36568
+ /* @conditional-compile-remove(together-mode) */
36569
+ const isTeamsCall = useSelector$1(getIsTeamsCall);
36570
+ const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());
36699
36571
  const onSpeakerItemClick = React.useCallback((_ev, itemKey) => {
36700
36572
  const selected = speakers === null || speakers === undefined ? undefined : speakers.find((speaker) => speaker.id === itemKey);
36701
36573
  if (selected) {
@@ -36713,8 +36585,8 @@ const MoreDrawer = (props) => {
36713
36585
  drawerMenuItems.push({
36714
36586
  itemKey: 'reactions',
36715
36587
  onRendererContent: () => (React.createElement(_ReactionDrawerMenuItem, { onReactionClick: (reaction) => __awaiter$j(undefined, undefined, undefined, function* () {
36716
- var _h;
36717
- (_h = props.onReactionClick) === null || _h === undefined ? undefined : _h.call(props, reaction);
36588
+ var _k;
36589
+ (_k = props.onReactionClick) === null || _k === undefined ? undefined : _k.call(props, reaction);
36718
36590
  onLightDismiss();
36719
36591
  }), reactionResources: props.reactionResources }))
36720
36592
  });
@@ -36851,8 +36723,28 @@ const MoreDrawer = (props) => {
36851
36723
  },
36852
36724
  secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined
36853
36725
  };
36726
+ /* @conditional-compile-remove(together-mode) */
36727
+ const togetherModeOption = {
36728
+ itemKey: 'togetherModeSelectionKey',
36729
+ text: localeStrings.strings.call.moreButtonTogetherModeLayoutLabel,
36730
+ onItemClick: () => {
36731
+ props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');
36732
+ onLightDismiss();
36733
+ },
36734
+ iconProps: {
36735
+ iconName: 'TogetherModeLayout',
36736
+ styles: { root: { lineHeight: 0 } }
36737
+ },
36738
+ disabled: !(((participantId === null || participantId === undefined ? undefined : participantId.kind) === 'microsoftTeamsUser' && ((_d = participantCapability === null || participantCapability === undefined ? undefined : participantCapability.startTogetherMode) === null || _d === undefined ? undefined : _d.isPresent)) ||
36739
+ isTogetherModeActive),
36740
+ secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined
36741
+ };
36854
36742
  /* @conditional-compile-remove(gallery-layout-composite) */
36855
- (_d = galleryLayoutOptions.subMenuProps) === null || _d === undefined ? undefined : _d.push(galleryOption);
36743
+ (_e = galleryLayoutOptions.subMenuProps) === null || _e === undefined ? undefined : _e.push(galleryOption);
36744
+ /* @conditional-compile-remove(together-mode) */
36745
+ if (isTeamsCall || isTeamsMeeting) {
36746
+ (_f = galleryLayoutOptions.subMenuProps) === null || _f === undefined ? undefined : _f.push(togetherModeOption);
36747
+ }
36856
36748
  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === undefined ? undefined : drawerSelectionOptions.galleryControlsButton)) {
36857
36749
  drawerMenuItems.push(galleryLayoutOptions);
36858
36750
  }
@@ -36878,7 +36770,7 @@ const MoreDrawer = (props) => {
36878
36770
  iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }
36879
36771
  });
36880
36772
  }
36881
- const role = (_e = callAdapter.getState().call) === null || _e === undefined ? undefined : _e.role;
36773
+ const role = (_g = callAdapter.getState().call) === null || _g === undefined ? undefined : _g.role;
36882
36774
  const hideRaiseHandButtonInRoomsCall = callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
36883
36775
  if (drawerSelectionOptions !== false &&
36884
36776
  isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === undefined ? undefined : drawerSelectionOptions.raiseHandButton) &&
@@ -36902,7 +36794,6 @@ const MoreDrawer = (props) => {
36902
36794
  }
36903
36795
  });
36904
36796
  }
36905
- const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());
36906
36797
  const teamsMeetingCoordinates = getTeamsMeetingCoordinates(callAdapter.getState());
36907
36798
  if (drawerSelectionOptions !== false &&
36908
36799
  isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === undefined ? undefined : drawerSelectionOptions.teamsMeetingPhoneCallButton) &&
@@ -36931,8 +36822,8 @@ const MoreDrawer = (props) => {
36931
36822
  const startCaptionsButtonProps = usePropsFor$1(StartCaptionsButton);
36932
36823
  const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = React.useState(false);
36933
36824
  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = React.useState(false);
36934
- const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_f = captionSettingsProp.currentSpokenLanguage) !== null && _f !== undefined ? _f : 'en-us');
36935
- const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_g = captionSettingsProp.currentCaptionLanguage) !== null && _g !== undefined ? _g : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
36825
+ const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_h = captionSettingsProp.currentSpokenLanguage) !== null && _h !== undefined ? _h : 'en-us');
36826
+ const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_j = captionSettingsProp.currentCaptionLanguage) !== null && _j !== undefined ? _j : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
36936
36827
  const onToggleChange = React.useCallback(() => __awaiter$j(undefined, undefined, undefined, function* () {
36937
36828
  if (!captionSettingsProp.isCaptionsFeatureActive) {
36938
36829
  yield startCaptionsButtonProps.onStartCaptions({
@@ -37916,25 +37807,7 @@ const canRemoveParticipants = (role) => {
37916
37807
  const PEOPLE_SIDE_PANE_ID = 'people';
37917
37808
  /** @private */
37918
37809
  const usePeoplePane = (props) => {
37919
- const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned, spotlightedParticipantUserIds, onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onStopAllSpotlight, maxParticipantsToSpotlight, onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem, onMuteAllRemoteParticipants,
37920
- /* @conditional-compile-remove(media-access) */
37921
- onForbidAudio,
37922
- /* @conditional-compile-remove(media-access) */
37923
- onPermitAudio,
37924
- /* @conditional-compile-remove(media-access) */
37925
- onForbidOthersAudio,
37926
- /* @conditional-compile-remove(media-access) */
37927
- onPermitOthersAudio,
37928
- /* @conditional-compile-remove(media-access) */
37929
- onForbidVideo,
37930
- /* @conditional-compile-remove(media-access) */
37931
- onPermitVideo,
37932
- /* @conditional-compile-remove(media-access) */
37933
- onForbidOthersVideo,
37934
- /* @conditional-compile-remove(media-access) */
37935
- onPermitOthersVideo,
37936
- /* @conditional-compile-remove(media-access) */
37937
- meetingMediaAccess, sidePaneDismissButtonRef, chatButtonPresent } = props;
37810
+ const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned, spotlightedParticipantUserIds, onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onStopAllSpotlight, maxParticipantsToSpotlight, onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem, onMuteAllRemoteParticipants, onForbidAudio, onPermitAudio, onForbidOthersAudio, onPermitOthersAudio, onForbidVideo, onPermitVideo, onForbidOthersVideo, onPermitOthersVideo, meetingMediaAccess, sidePaneDismissButtonRef, chatButtonPresent } = props;
37938
37811
  const closePane = React.useCallback(() => {
37939
37812
  var _a;
37940
37813
  updateSidePaneRenderer(undefined);
@@ -37958,30 +37831,22 @@ const usePeoplePane = (props) => {
37958
37831
  onMuteAllRemoteParticipants && onMuteAllRemoteParticipants();
37959
37832
  setShowMuteAllPrompt(false);
37960
37833
  }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
37961
- /* @conditional-compile-remove(media-access) */
37962
37834
  const [showForbidOthersAudioPrompt, setShowForbidOthersAudioPrompt] = React.useState(false);
37963
- /* @conditional-compile-remove(media-access) */
37964
37835
  const [showPermitOthersAudioPrompt, setShowPermitOthersAudioPrompt] = React.useState(false);
37965
- /* @conditional-compile-remove(media-access) */
37966
37836
  const [showForbidOthersVideoPrompt, setShowForbidOthersVideoPrompt] = React.useState(false);
37967
- /* @conditional-compile-remove(media-access) */
37968
37837
  const [showPermitOthersVideoPrompt, setShowPermitOthersVideoPrompt] = React.useState(false);
37969
- /* @conditional-compile-remove(media-access) */
37970
37838
  const onForbidAllAttendeesPromptConfirm = React.useCallback(() => {
37971
37839
  onForbidOthersAudio && onForbidOthersAudio();
37972
37840
  setShowForbidOthersAudioPrompt(false);
37973
37841
  }, [onForbidOthersAudio, setShowForbidOthersAudioPrompt]);
37974
- /* @conditional-compile-remove(media-access) */
37975
37842
  const onPermitAllAttendeesPromptConfirm = React.useCallback(() => {
37976
37843
  onPermitOthersAudio && onPermitOthersAudio();
37977
37844
  setShowPermitOthersAudioPrompt(false);
37978
37845
  }, [onPermitOthersAudio, setShowPermitOthersAudioPrompt]);
37979
- /* @conditional-compile-remove(media-access) */
37980
37846
  const onForbidOthersVideoPromptConfirm = React.useCallback(() => {
37981
37847
  onForbidOthersVideo && onForbidOthersVideo();
37982
37848
  setShowForbidOthersVideoPrompt(false);
37983
37849
  }, [onForbidOthersVideo, setShowForbidOthersVideoPrompt]);
37984
- /* @conditional-compile-remove(media-access) */
37985
37850
  const onPermitOthersVideoPromptConfirm = React.useCallback(() => {
37986
37851
  onPermitOthersVideo && onPermitOthersVideo();
37987
37852
  setShowPermitOthersVideoPrompt(false);
@@ -38013,9 +37878,7 @@ const usePeoplePane = (props) => {
38013
37878
  disabled: isAllMuted
38014
37879
  });
38015
37880
  }
38016
- /* @conditional-compile-remove(media-access) */
38017
37881
  let hasAttendee = false;
38018
- /* @conditional-compile-remove(media-access) */
38019
37882
  if (remoteParticipants) {
38020
37883
  for (const participant of Object.values(remoteParticipants)) {
38021
37884
  if (participant.role && participant.role === 'Attendee') {
@@ -38024,11 +37887,8 @@ const usePeoplePane = (props) => {
38024
37887
  }
38025
37888
  }
38026
37889
  }
38027
- /* @conditional-compile-remove(media-access) */
38028
37890
  const isMeetingAudioPermitted = meetingMediaAccess ? meetingMediaAccess.isAudioPermitted : true;
38029
- /* @conditional-compile-remove(media-access) */
38030
37891
  const isMeetingVideoPermitted = meetingMediaAccess ? meetingMediaAccess.isVideoPermitted : true;
38031
- /* @conditional-compile-remove(media-access) */
38032
37892
  if (onForbidOthersAudio && remoteParticipants) {
38033
37893
  hasAttendee &&
38034
37894
  isMeetingAudioPermitted &&
@@ -38047,7 +37907,6 @@ const usePeoplePane = (props) => {
38047
37907
  disabled: !hasAttendee
38048
37908
  });
38049
37909
  }
38050
- /* @conditional-compile-remove(media-access) */
38051
37910
  if (onPermitOthersAudio && remoteParticipants) {
38052
37911
  hasAttendee &&
38053
37912
  !isMeetingAudioPermitted &&
@@ -38066,7 +37925,6 @@ const usePeoplePane = (props) => {
38066
37925
  disabled: !hasAttendee
38067
37926
  });
38068
37927
  }
38069
- /* @conditional-compile-remove(media-access) */
38070
37928
  if (onForbidOthersVideo && remoteParticipants) {
38071
37929
  hasAttendee &&
38072
37930
  isMeetingVideoPermitted &&
@@ -38085,7 +37943,6 @@ const usePeoplePane = (props) => {
38085
37943
  disabled: !hasAttendee
38086
37944
  });
38087
37945
  }
38088
- /* @conditional-compile-remove(media-access) */
38089
37946
  if (onPermitOthersVideo && remoteParticipants) {
38090
37947
  hasAttendee &&
38091
37948
  !isMeetingVideoPermitted &&
@@ -38121,26 +37978,17 @@ const usePeoplePane = (props) => {
38121
37978
  }, [
38122
37979
  onMuteAllRemoteParticipants,
38123
37980
  remoteParticipants,
38124
- /* @conditional-compile-remove(media-access) */
38125
37981
  meetingMediaAccess,
38126
- /* @conditional-compile-remove(media-access) */
38127
37982
  onForbidOthersAudio,
38128
- /* @conditional-compile-remove(media-access) */
38129
37983
  onPermitOthersAudio,
38130
- /* @conditional-compile-remove(media-access) */
38131
37984
  onForbidOthersVideo,
38132
- /* @conditional-compile-remove(media-access) */
38133
37985
  onPermitOthersVideo,
38134
37986
  onStopAllSpotlight,
38135
37987
  spotlightedParticipantUserIds,
38136
37988
  localeStrings.muteAllMenuLabel,
38137
- /* @conditional-compile-remove(media-access) */
38138
37989
  localeStrings.forbidOthersAudioMenuLabel,
38139
- /* @conditional-compile-remove(media-access) */
38140
37990
  localeStrings.permitOthersAudioMenuLabel,
38141
- /* @conditional-compile-remove(media-access) */
38142
37991
  localeStrings.forbidOthersVideoMenuLabel,
38143
- /* @conditional-compile-remove(media-access) */
38144
37992
  localeStrings.permitOthersVideoMenuLabel,
38145
37993
  localeStrings.stopAllSpotlightMenuLabel
38146
37994
  ]);
@@ -38178,9 +38026,7 @@ const usePeoplePane = (props) => {
38178
38026
  disabled: isMuted
38179
38027
  });
38180
38028
  }
38181
- /* @conditional-compile-remove(media-access) */
38182
38029
  const remoteParticipant = remoteParticipants === null || remoteParticipants === undefined ? undefined : remoteParticipants[participantId];
38183
- /* @conditional-compile-remove(media-access) */
38184
38030
  if ((remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) &&
38185
38031
  !remoteParticipant.mediaAccess.isAudioPermitted &&
38186
38032
  (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' &&
@@ -38199,7 +38045,6 @@ const usePeoplePane = (props) => {
38199
38045
  ariaLabel: localeStrings.permitAudioMenuLabel
38200
38046
  });
38201
38047
  }
38202
- /* @conditional-compile-remove(media-access) */
38203
38048
  if (((_a = remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) === null || _a === undefined ? undefined : _a.isAudioPermitted) && (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' && onForbidAudio) {
38204
38049
  _defaultMenuItems.push({
38205
38050
  key: 'forbid-audio',
@@ -38215,7 +38060,6 @@ const usePeoplePane = (props) => {
38215
38060
  ariaLabel: localeStrings.forbidAudioMenuLabel
38216
38061
  });
38217
38062
  }
38218
- /* @conditional-compile-remove(media-access) */
38219
38063
  if ((remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) &&
38220
38064
  !remoteParticipant.mediaAccess.isVideoPermitted &&
38221
38065
  (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' &&
@@ -38234,7 +38078,6 @@ const usePeoplePane = (props) => {
38234
38078
  ariaLabel: localeStrings.permitVideoMenuLabel
38235
38079
  });
38236
38080
  }
38237
- /* @conditional-compile-remove(media-access) */
38238
38081
  if (((_b = remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) === null || _b === undefined ? undefined : _b.isVideoPermitted) && (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' && onForbidVideo) {
38239
38082
  _defaultMenuItems.push({
38240
38083
  key: 'forbid-video',
@@ -38351,22 +38194,14 @@ const usePeoplePane = (props) => {
38351
38194
  spotlightedParticipantUserIds,
38352
38195
  onMuteParticipant,
38353
38196
  remoteParticipants,
38354
- /* @conditional-compile-remove(media-access) */
38355
38197
  onPermitAudio,
38356
- /* @conditional-compile-remove(media-access) */
38357
38198
  onForbidAudio,
38358
- /* @conditional-compile-remove(media-access) */
38359
38199
  onPermitVideo,
38360
- /* @conditional-compile-remove(media-access) */
38361
38200
  onForbidVideo,
38362
38201
  onFetchParticipantMenuItems,
38363
- /* @conditional-compile-remove(media-access) */
38364
38202
  localeStrings.permitAudioMenuLabel,
38365
- /* @conditional-compile-remove(media-access) */
38366
38203
  localeStrings.forbidAudioMenuLabel,
38367
- /* @conditional-compile-remove(media-access) */
38368
38204
  localeStrings.permitVideoMenuLabel,
38369
- /* @conditional-compile-remove(media-access) */
38370
38205
  localeStrings.forbidVideoMenuLabel,
38371
38206
  localeStrings.stopSpotlightOnSelfMenuLabel,
38372
38207
  localeStrings.stopSpotlightMenuLabel,
@@ -38392,57 +38227,33 @@ const usePeoplePane = (props) => {
38392
38227
  const onRenderContent = React.useCallback(() => {
38393
38228
  return (React.createElement(React.Fragment, null,
38394
38229
  React.createElement(Prompt, Object.assign({}, muteAllPromptLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onMuteAllPromptConfirm(), isOpen: showMuteAllPrompt, onCancel: () => setShowMuteAllPrompt(false) })),
38395
- /* @conditional-compile-remove(media-access) */
38396
38230
  React.createElement(Prompt, { heading: localeStrings.forbidOthersAudioDialogTitle, text: localeStrings.forbidOthersAudioDialogContent, confirmButtonLabel: localeStrings.forbidOthersAudioConfirmButtonLabel, cancelButtonLabel: localeStrings.forbidOthersAudioCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onForbidAllAttendeesPromptConfirm(), isOpen: showForbidOthersAudioPrompt, onCancel: () => setShowForbidOthersAudioPrompt(false) }),
38397
- /* @conditional-compile-remove(media-access) */
38398
38231
  React.createElement(Prompt, { heading: localeStrings.permitOthersAudioDialogTitle, text: localeStrings.permitOthersAudioDialogContent, confirmButtonLabel: localeStrings.permitOthersAudioConfirmButtonLabel, cancelButtonLabel: localeStrings.permitOthersAudioCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onPermitAllAttendeesPromptConfirm(), isOpen: showPermitOthersAudioPrompt, onCancel: () => setShowForbidOthersAudioPrompt(false) }),
38399
- /* @conditional-compile-remove(media-access) */
38400
38232
  React.createElement(Prompt, { heading: localeStrings.forbidOthersVideoDialogTitle, text: localeStrings.forbidOthersVideoDialogContent, confirmButtonLabel: localeStrings.forbidOthersVideoConfirmButtonLabel, cancelButtonLabel: localeStrings.forbidOthersVideoCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onForbidOthersVideoPromptConfirm(), isOpen: showForbidOthersVideoPrompt, onCancel: () => setShowForbidOthersVideoPrompt(false) }),
38401
- /* @conditional-compile-remove(media-access) */
38402
38233
  React.createElement(Prompt, { heading: localeStrings.permitOthersVideoDialogTitle, text: localeStrings.permitOthersVideoDialogContent, confirmButtonLabel: localeStrings.permitOthersVideoConfirmButtonLabel, cancelButtonLabel: localeStrings.permitOthersVideoCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onPermitOthersVideoPromptConfirm(), isOpen: showPermitOthersVideoPrompt, onCancel: () => setShowForbidOthersVideoPrompt(false) }),
38403
38234
  React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants, role: role, alternateCallerId: alternateCallerId })));
38404
38235
  }, [
38405
38236
  muteAllPromptLabels,
38406
38237
  showMuteAllPrompt,
38407
- /* @conditional-compile-remove(media-access) */
38408
38238
  localeStrings.forbidOthersAudioDialogTitle,
38409
- /* @conditional-compile-remove(media-access) */
38410
38239
  localeStrings.forbidOthersAudioDialogContent,
38411
- /* @conditional-compile-remove(media-access) */
38412
38240
  localeStrings.forbidOthersAudioConfirmButtonLabel,
38413
- /* @conditional-compile-remove(media-access) */
38414
38241
  localeStrings.forbidOthersAudioCancelButtonLabel,
38415
- /* @conditional-compile-remove(media-access) */
38416
38242
  localeStrings.permitOthersAudioDialogTitle,
38417
- /* @conditional-compile-remove(media-access) */
38418
38243
  localeStrings.permitOthersAudioDialogContent,
38419
- /* @conditional-compile-remove(media-access) */
38420
38244
  localeStrings.permitOthersAudioConfirmButtonLabel,
38421
- /* @conditional-compile-remove(media-access) */
38422
38245
  localeStrings.permitOthersAudioCancelButtonLabel,
38423
- /* @conditional-compile-remove(media-access) */
38424
38246
  localeStrings.forbidOthersVideoDialogTitle,
38425
- /* @conditional-compile-remove(media-access) */
38426
38247
  localeStrings.forbidOthersVideoDialogContent,
38427
- /* @conditional-compile-remove(media-access) */
38428
38248
  localeStrings.forbidOthersVideoConfirmButtonLabel,
38429
- /* @conditional-compile-remove(media-access) */
38430
38249
  localeStrings.forbidOthersVideoCancelButtonLabel,
38431
- /* @conditional-compile-remove(media-access) */
38432
38250
  localeStrings.permitOthersVideoDialogTitle,
38433
- /* @conditional-compile-remove(media-access) */
38434
38251
  localeStrings.permitOthersVideoDialogContent,
38435
- /* @conditional-compile-remove(media-access) */
38436
38252
  localeStrings.permitOthersVideoConfirmButtonLabel,
38437
- /* @conditional-compile-remove(media-access) */
38438
38253
  localeStrings.permitOthersVideoCancelButtonLabel,
38439
- /* @conditional-compile-remove(media-access) */
38440
38254
  showForbidOthersAudioPrompt,
38441
- /* @conditional-compile-remove(media-access) */
38442
38255
  showPermitOthersAudioPrompt,
38443
- /* @conditional-compile-remove(media-access) */
38444
38256
  showForbidOthersVideoPrompt,
38445
- /* @conditional-compile-remove(media-access) */
38446
38257
  showPermitOthersVideoPrompt,
38447
38258
  inviteLink,
38448
38259
  onFetchAvatarPersonaData,
@@ -38455,13 +38266,9 @@ const usePeoplePane = (props) => {
38455
38266
  role,
38456
38267
  alternateCallerId,
38457
38268
  onMuteAllPromptConfirm,
38458
- /* @conditional-compile-remove(media-access) */
38459
38269
  onForbidAllAttendeesPromptConfirm,
38460
- /* @conditional-compile-remove(media-access) */
38461
38270
  onPermitAllAttendeesPromptConfirm,
38462
- /* @conditional-compile-remove(media-access) */
38463
38271
  onForbidOthersVideoPromptConfirm,
38464
- /* @conditional-compile-remove(media-access) */
38465
38272
  onPermitOthersVideoPromptConfirm
38466
38273
  ]);
38467
38274
  const sidePaneRenderer = React.useMemo(() => ({
@@ -39156,32 +38963,26 @@ const CapabilitiesChangedNotificationBar = (props) => {
39156
38963
  })));
39157
38964
  };
39158
38965
  const getCapabilityChangedNotificationString = (notification, strings) => {
39159
- var _e, _f, _g, _h;
38966
+ var _a, _b, _c, _d;
39160
38967
  switch (notification.capabilityName) {
39161
- case 'turnVideoOn':
39162
- /* @conditional-compile-remove(media-access) */
39163
- return undefined;
39164
- case 'unmuteMic':
39165
- /* @conditional-compile-remove(media-access) */
39166
- return undefined;
39167
38968
  case 'shareScreen':
39168
38969
  if (notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Presenter') {
39169
- return (_e = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _e === undefined ? undefined : _e.grantedDueToRoleChangeToPresenter;
38970
+ return (_a = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _a === undefined ? undefined : _a.grantedDueToRoleChangeToPresenter;
39170
38971
  }
39171
38972
  if (!notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Attendee') {
39172
- return (_f = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _f === undefined ? undefined : _f.lostDueToRoleChangeToAttendee;
38973
+ return (_b = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _b === undefined ? undefined : _b.lostDueToRoleChangeToAttendee;
39173
38974
  }
39174
38975
  break;
39175
38976
  case 'viewAttendeeNames':
39176
38977
  if (!notification.isPresent &&
39177
38978
  notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged' &&
39178
38979
  notification.role === 'Attendee') {
39179
- return (_g = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _g === undefined ? undefined : _g.hideAttendeeNameAttendee;
38980
+ return (_c = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _c === undefined ? undefined : _c.hideAttendeeNameAttendee;
39180
38981
  }
39181
38982
  if (!notification.isPresent &&
39182
38983
  notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged' &&
39183
38984
  notification.role === 'Presenter') {
39184
- return (_h = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _h === undefined ? undefined : _h.hideAttendeeNamePresenter;
38985
+ return (_d = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _d === undefined ? undefined : _d.hideAttendeeNamePresenter;
39185
38986
  }
39186
38987
  }
39187
38988
  return undefined;
@@ -39492,7 +39293,7 @@ const MAX_PINNED_REMOTE_VIDEO_TILES = 4;
39492
39293
  * @private
39493
39294
  */
39494
39295
  const CallArrangement = (props) => {
39495
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
39296
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
39496
39297
  const containerClassName = React.useMemo(() => {
39497
39298
  return props.mobileView ? containerStyleMobile : containerStyleDesktop;
39498
39299
  }, [props.mobileView]);
@@ -39555,15 +39356,7 @@ const CallArrangement = (props) => {
39555
39356
  const videoGalleryProps = usePropsFor$1(VideoGallery);
39556
39357
  const muteAllHandlers = useHandlers();
39557
39358
  const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;
39558
- const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onMuteParticipant, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant,
39559
- /* @conditional-compile-remove(media-access) */
39560
- onForbidAudio,
39561
- /* @conditional-compile-remove(media-access) */
39562
- onPermitAudio,
39563
- /* @conditional-compile-remove(media-access) */
39564
- onForbidVideo,
39565
- /* @conditional-compile-remove(media-access) */
39566
- onPermitVideo } = videoGalleryProps;
39359
+ const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onMuteParticipant, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = videoGalleryProps;
39567
39360
  const [showTeamsMeetingConferenceModal, setShowTeamsMeetingConferenceModal] = React.useState(false);
39568
39361
  const toggleTeamsMeetingConferenceModal = React.useCallback(() => {
39569
39362
  setShowTeamsMeetingConferenceModal(!showTeamsMeetingConferenceModal);
@@ -39637,14 +39430,10 @@ const CallArrangement = (props) => {
39637
39430
  stopAllSpotlightWithPrompt,
39638
39431
  spotlightedParticipants
39639
39432
  ]);
39640
- /* @conditional-compile-remove(media-access) */
39641
39433
  const meetingMediaAccess = useSelector$1(getMediaAccessSetting);
39642
- /* @conditional-compile-remove(media-access) */
39643
39434
  const canForbidOthersAudio = !!((_b = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _b === undefined ? undefined : _b.isPresent);
39644
- /* @conditional-compile-remove(media-access) */
39645
39435
  const canForbidOthersVideo = !!((_c = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _c === undefined ? undefined : _c.isPresent);
39646
39436
  const onToggleParticipantMicPeoplePaneProps = React.useMemo(() => {
39647
- /* @conditional-compile-remove(media-access) */
39648
39437
  return {
39649
39438
  onForbidAudio: canForbidOthersAudio ? onForbidAudio : undefined,
39650
39439
  onPermitAudio: canForbidOthersAudio ? onPermitAudio : undefined,
@@ -39657,17 +39446,17 @@ const CallArrangement = (props) => {
39657
39446
  meetingMediaAccess
39658
39447
  };
39659
39448
  }, [
39660
- /* @conditional-compile-remove(media-access) */ canForbidOthersAudio,
39661
- /* @conditional-compile-remove(media-access) */ onForbidAudio,
39662
- /* @conditional-compile-remove(media-access) */ onPermitAudio,
39663
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onForbidOthersAudio,
39664
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onPermitOthersAudio,
39665
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onForbidOthersVideo,
39666
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onPermitOthersVideo,
39667
- /* @conditional-compile-remove(media-access) */ canForbidOthersVideo,
39668
- /* @conditional-compile-remove(media-access) */ onForbidVideo,
39669
- /* @conditional-compile-remove(media-access) */ onPermitVideo,
39670
- /* @conditional-compile-remove(media-access) */ meetingMediaAccess
39449
+ canForbidOthersAudio,
39450
+ onForbidAudio,
39451
+ onPermitAudio,
39452
+ muteAllHandlers.onForbidOthersAudio,
39453
+ muteAllHandlers.onPermitOthersAudio,
39454
+ muteAllHandlers.onForbidOthersVideo,
39455
+ muteAllHandlers.onPermitOthersVideo,
39456
+ canForbidOthersVideo,
39457
+ onForbidVideo,
39458
+ onPermitVideo,
39459
+ meetingMediaAccess
39671
39460
  ]);
39672
39461
  const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, peoplePaneProps), spotlightPeoplePaneProps), onMuteParticipantPeoplePaneProps), pinPeoplePaneProps), onToggleParticipantMicPeoplePaneProps));
39673
39462
  const togglePeoplePane = React.useCallback(() => {
@@ -39734,10 +39523,11 @@ const CallArrangement = (props) => {
39734
39523
  if ((isVideoPaneOpen || !isCameraOn) && (props.errorBarProps || props.showErrorNotifications)) {
39735
39524
  filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter((e) => e.type !== 'unableToStartVideoEffect');
39736
39525
  }
39737
- const isTeamsCaptions = useSelector$1(getCaptionsKind) === 'TeamsCaptions';
39738
39526
  const isTeamsMeeting = useSelector$1(getIsTeamsMeeting);
39739
39527
  const isTeamsCall = useSelector$1(getIsTeamsCall);
39740
- const useTeamsCaptions = isTeamsMeeting || isTeamsCall || isTeamsCaptions;
39528
+ // Teams captions are only available in Teams meetings or Teams calls.
39529
+ // For Teams Meetings, we need to check if the capability is present.
39530
+ const useTeamsCaptions = (isTeamsMeeting && ((_d = capabilities === null || capabilities === undefined ? undefined : capabilities.setCaptionLanguage) === null || _d === undefined ? undefined : _d.isPresent)) || isTeamsCall;
39741
39531
  const hasJoinedCall = useSelector$1(getCallStatus) === 'Connected';
39742
39532
  const isCaptionsOn = useSelector$1(getCaptionsStatus);
39743
39533
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);
@@ -39745,7 +39535,7 @@ const CallArrangement = (props) => {
39745
39535
  const galleryContainerStyles = React.useMemo(() => {
39746
39536
  var _a;
39747
39537
  return Object.assign(Object.assign({}, mediaGalleryContainerStyles$1), (((_a = props === null || props === undefined ? undefined : props.captionsOptions) === null || _a === undefined ? undefined : _a.height) === 'full' ? { root: { postion: 'absolute' } } : {}));
39748
- }, [(_d = props === null || props === undefined ? undefined : props.captionsOptions) === null || _d === undefined ? undefined : _d.height]);
39538
+ }, [(_e = props === null || props === undefined ? undefined : props.captionsOptions) === null || _e === undefined ? undefined : _e.height]);
39749
39539
  if (isTeamsMeeting) {
39750
39540
  filteredLatestErrorNotifications
39751
39541
  .filter((notification) => notification.type === 'teamsMeetingCallNetworkQualityLow')
@@ -39758,8 +39548,8 @@ const CallArrangement = (props) => {
39758
39548
  const verticalControlBar = props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;
39759
39549
  // Filter out shareScreen capability notifications if on mobile
39760
39550
  const filteredCapabilitesChangedNotifications = props.mobileView
39761
- ? (_e = props.capabilitiesChangedNotificationBarProps) === null || _e === undefined ? undefined : _e.capabilitiesChangedNotifications.filter((notification) => notification.capabilityName !== 'shareScreen')
39762
- : (_f = props.capabilitiesChangedNotificationBarProps) === null || _f === undefined ? undefined : _f.capabilitiesChangedNotifications;
39551
+ ? (_f = props.capabilitiesChangedNotificationBarProps) === null || _f === undefined ? undefined : _f.capabilitiesChangedNotifications.filter((notification) => notification.capabilityName !== 'shareScreen')
39552
+ : (_g = props.capabilitiesChangedNotificationBarProps) === null || _g === undefined ? undefined : _g.capabilitiesChangedNotifications;
39763
39553
  /* @conditional-compile-remove(breakout-rooms) */
39764
39554
  const notificationStackStrings = useCompositeStringsForNotificationStackStrings(locale);
39765
39555
  let latestNotifications = props.latestNotifications;
@@ -39779,17 +39569,17 @@ const CallArrangement = (props) => {
39779
39569
  return (React.createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles), id: props.id },
39780
39570
  React.createElement(react.Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
39781
39571
  React.createElement(react.Stack, { reversed: true, horizontal: verticalControlBar, grow: true, styles: callArrangementContainerStyles(verticalControlBar) },
39782
- ((_g = props.callControlProps) === null || _g === undefined ? undefined : _g.options) !== false && !isMobileWithActivePane && (React.createElement(react.Stack, { verticalAlign: 'center', className: react.mergeStyles({
39572
+ ((_h = props.callControlProps) === null || _h === undefined ? undefined : _h.options) !== false && !isMobileWithActivePane && (React.createElement(react.Stack, { verticalAlign: 'center', className: react.mergeStyles({
39783
39573
  zIndex: CONTROL_BAR_Z_INDEX,
39784
39574
  padding: verticalControlBar ? '0.25rem' : 'unset'
39785
- }) }, isLegacyCallControlEnabled((_h = props.callControlProps) === null || _h === undefined ? undefined : _h.options) ? (React.createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { ref: controlBarRef, callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby, disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) || hasJoinedCall,
39575
+ }) }, isLegacyCallControlEnabled((_j = props.callControlProps) === null || _j === undefined ? undefined : _j.options) ? (React.createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { ref: controlBarRef, callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby, disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) || hasJoinedCall,
39786
39576
  /* @conditional-compile-remove(rtt) */
39787
39577
  isRealTimeTextSupported: hasJoinedCall,
39788
39578
  /* @conditional-compile-remove(rtt) */
39789
39579
  onStartRealTimeText: onStartRealTimeText,
39790
39580
  /* @conditional-compile-remove(rtt) */
39791
39581
  startRealTimeTextButtonChecked: openRealTimeText, useTeamsCaptions: useTeamsCaptions, isCaptionsOn: isCaptionsOn, onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef, onStopLocalSpotlight: !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined, onToggleTeamsMeetingConferenceModal: toggleTeamsMeetingConferenceModal, teamsMeetingConferenceModalPresent: showTeamsMeetingConferenceModal, sidePaneDismissButtonRef: sidePaneDismissButtonRef }))))),
39792
- ((_j = props.callControlProps) === null || _j === undefined ? undefined : _j.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
39582
+ ((_k = props.callControlProps) === null || _k === undefined ? undefined : _k.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
39793
39583
  React.createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked, disableButtonsForHoldScreen: isInLocalHold, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) || hasJoinedCall,
39794
39584
  /* @conditional-compile-remove(rtt) */
39795
39585
  isRealTimeTextSupported: hasJoinedCall,
@@ -39820,7 +39610,7 @@ const CallArrangement = (props) => {
39820
39610
  React.createElement(SidePane, { mobileView: props.mobileView, maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, minWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
39821
39611
  ? undefined
39822
39612
  : togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
39823
- isDisabled$4((_k = props.callControlProps.options) === null || _k === undefined ? undefined : _k.participantsButton), onChatButtonClicked: (_l = props.mobileChatTabHeader) === null || _l === undefined ? undefined : _l.onClick, disableChatButton: (_m = props.mobileChatTabHeader) === null || _m === undefined ? undefined : _m.disabled, showAddPeopleButton: !!props.callControlProps.callInvitationURL, ariaLabel: isVideoEffectsPaneOpen ? locale.strings.call.videoEffectsPaneAriaLabel : undefined }),
39613
+ isDisabled$4((_l = props.callControlProps.options) === null || _l === undefined ? undefined : _l.participantsButton), onChatButtonClicked: (_m = props.mobileChatTabHeader) === null || _m === undefined ? undefined : _m.onClick, disableChatButton: (_o = props.mobileChatTabHeader) === null || _o === undefined ? undefined : _o.disabled, showAddPeopleButton: !!props.callControlProps.callInvitationURL, ariaLabel: isVideoEffectsPaneOpen ? locale.strings.call.videoEffectsPaneAriaLabel : undefined }),
39824
39614
  props.mobileView && (React.createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !isSidePaneOpen, styles: pipStyles, strings: modalStrings, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition, onDismissSidePane: () => {
39825
39615
  closePeoplePane();
39826
39616
  if (props.onCloseChatPane) {
@@ -43519,13 +43309,9 @@ class AzureCommunicationCallAdapter {
43519
43309
  this.stopAllSpotlight.bind(this);
43520
43310
  this.muteParticipant.bind(this);
43521
43311
  this.muteAllRemoteParticipants.bind(this);
43522
- /* @conditional-compile-remove(media-access) */
43523
43312
  this.forbidOthersAudio.bind(this);
43524
- /* @conditional-compile-remove(media-access) */
43525
43313
  this.permitOthersAudio.bind(this);
43526
- /* @conditional-compile-remove(media-access) */
43527
43314
  this.forbidOthersAudio.bind(this);
43528
- /* @conditional-compile-remove(media-access) */
43529
43315
  this.permitOthersAudio.bind(this);
43530
43316
  }
43531
43317
  dispose() {
@@ -44062,56 +43848,48 @@ class AzureCommunicationCallAdapter {
44062
43848
  this.handlers.onStopAllSpotlight();
44063
43849
  });
44064
43850
  }
44065
- /* @conditional-compile-remove(media-access) */
44066
43851
  forbidAudio(userIds) {
44067
43852
  return __awaiter$7(this, undefined, undefined, function* () {
44068
43853
  var _a, _b;
44069
43854
  (_b = (_a = this.handlers).onForbidAudio) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44070
43855
  });
44071
43856
  }
44072
- /* @conditional-compile-remove(media-access) */
44073
43857
  permitAudio(userIds) {
44074
43858
  return __awaiter$7(this, undefined, undefined, function* () {
44075
43859
  var _a, _b;
44076
43860
  (_b = (_a = this.handlers).onPermitAudio) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44077
43861
  });
44078
43862
  }
44079
- /* @conditional-compile-remove(media-access) */
44080
43863
  forbidOthersAudio() {
44081
43864
  return __awaiter$7(this, undefined, undefined, function* () {
44082
43865
  var _a, _b;
44083
43866
  (_b = (_a = this.handlers).onForbidOthersAudio) === null || _b === undefined ? undefined : _b.call(_a);
44084
43867
  });
44085
43868
  }
44086
- /* @conditional-compile-remove(media-access) */
44087
43869
  permitOthersAudio() {
44088
43870
  return __awaiter$7(this, undefined, undefined, function* () {
44089
43871
  var _a, _b;
44090
43872
  (_b = (_a = this.handlers).onPermitOthersAudio) === null || _b === undefined ? undefined : _b.call(_a);
44091
43873
  });
44092
43874
  }
44093
- /* @conditional-compile-remove(media-access) */
44094
43875
  forbidVideo(userIds) {
44095
43876
  return __awaiter$7(this, undefined, undefined, function* () {
44096
43877
  var _a, _b;
44097
43878
  (_b = (_a = this.handlers).onForbidVideo) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44098
43879
  });
44099
43880
  }
44100
- /* @conditional-compile-remove(media-access) */
44101
43881
  permitVideo(userIds) {
44102
43882
  return __awaiter$7(this, undefined, undefined, function* () {
44103
43883
  var _a, _b;
44104
43884
  (_b = (_a = this.handlers).onPermitVideo) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44105
43885
  });
44106
43886
  }
44107
- /* @conditional-compile-remove(media-access) */
44108
43887
  forbidOthersVideo() {
44109
43888
  return __awaiter$7(this, undefined, undefined, function* () {
44110
43889
  var _a, _b;
44111
43890
  (_b = (_a = this.handlers).onForbidOthersVideo) === null || _b === undefined ? undefined : _b.call(_a);
44112
43891
  });
44113
43892
  }
44114
- /* @conditional-compile-remove(media-access) */
44115
43893
  permitOthersVideo() {
44116
43894
  return __awaiter$7(this, undefined, undefined, function* () {
44117
43895
  var _a, _b;
@@ -44298,17 +44076,12 @@ class AzureCommunicationCallAdapter {
44298
44076
  transferAccepted(args) {
44299
44077
  this.emitter.emit('transferAccepted', args);
44300
44078
  }
44301
- capabilitiesChangedunmuteMicTrampoline(data) {
44302
- /* @conditional-compile-remove(media-access) */
44303
- return;
44304
- }
44305
44079
  capabilitiesChanged(data) {
44306
44080
  var _a, _b;
44307
44081
  if (((_a = data.newValue.turnVideoOn) === null || _a === undefined ? undefined : _a.isPresent) === false) {
44308
44082
  // stopCamera is handled by web sdk when video hard muted.
44309
44083
  this.disposeLocalVideoStreamView();
44310
44084
  }
44311
- this.capabilitiesChangedunmuteMicTrampoline(data);
44312
44085
  if (((_b = data.newValue.shareScreen) === null || _b === undefined ? undefined : _b.isPresent) === false) {
44313
44086
  this.stopScreenShare();
44314
44087
  }
@@ -45021,49 +44794,41 @@ class CallWithChatBackedCallAdapter {
45021
44794
  return this.callWithChatAdapter.returnFromBreakoutRoom();
45022
44795
  });
45023
44796
  }
45024
- /* @conditional-compile-remove(media-access) */
45025
44797
  forbidAudio(userIds) {
45026
44798
  return __awaiter$6(this, undefined, undefined, function* () {
45027
44799
  return this.callWithChatAdapter.forbidAudio(userIds);
45028
44800
  });
45029
44801
  }
45030
- /* @conditional-compile-remove(media-access) */
45031
44802
  permitAudio(userIds) {
45032
44803
  return __awaiter$6(this, undefined, undefined, function* () {
45033
44804
  return this.callWithChatAdapter.permitAudio(userIds);
45034
44805
  });
45035
44806
  }
45036
- /* @conditional-compile-remove(media-access) */
45037
44807
  forbidOthersAudio() {
45038
44808
  return __awaiter$6(this, undefined, undefined, function* () {
45039
44809
  return this.callWithChatAdapter.forbidOthersAudio();
45040
44810
  });
45041
44811
  }
45042
- /* @conditional-compile-remove(media-access) */
45043
44812
  permitOthersAudio() {
45044
44813
  return __awaiter$6(this, undefined, undefined, function* () {
45045
44814
  return this.callWithChatAdapter.permitOthersAudio();
45046
44815
  });
45047
44816
  }
45048
- /* @conditional-compile-remove(media-access) */
45049
44817
  forbidVideo(userIds) {
45050
44818
  return __awaiter$6(this, undefined, undefined, function* () {
45051
44819
  return this.callWithChatAdapter.forbidAudio(userIds);
45052
44820
  });
45053
44821
  }
45054
- /* @conditional-compile-remove(media-access) */
45055
44822
  permitVideo(userIds) {
45056
44823
  return __awaiter$6(this, undefined, undefined, function* () {
45057
44824
  return this.callWithChatAdapter.permitAudio(userIds);
45058
44825
  });
45059
44826
  }
45060
- /* @conditional-compile-remove(media-access) */
45061
44827
  forbidOthersVideo() {
45062
44828
  return __awaiter$6(this, undefined, undefined, function* () {
45063
44829
  return this.callWithChatAdapter.forbidOthersAudio();
45064
44830
  });
45065
44831
  }
45066
- /* @conditional-compile-remove(media-access) */
45067
44832
  permitOthersVideo() {
45068
44833
  return __awaiter$6(this, undefined, undefined, function* () {
45069
44834
  return this.callWithChatAdapter.permitOthersAudio();
@@ -46359,49 +46124,41 @@ class AzureCommunicationCallWithChatAdapter {
46359
46124
  }
46360
46125
  });
46361
46126
  }
46362
- /* @conditional-compile-remove(media-access) */
46363
46127
  forbidAudio(userIds) {
46364
46128
  return __awaiter$4(this, undefined, undefined, function* () {
46365
46129
  return this.callAdapter.forbidAudio(userIds);
46366
46130
  });
46367
46131
  }
46368
- /* @conditional-compile-remove(media-access) */
46369
46132
  permitAudio(userIds) {
46370
46133
  return __awaiter$4(this, undefined, undefined, function* () {
46371
46134
  return this.callAdapter.permitAudio(userIds);
46372
46135
  });
46373
46136
  }
46374
- /* @conditional-compile-remove(media-access) */
46375
46137
  forbidOthersAudio() {
46376
46138
  return __awaiter$4(this, undefined, undefined, function* () {
46377
46139
  return this.callAdapter.forbidOthersAudio();
46378
46140
  });
46379
46141
  }
46380
- /* @conditional-compile-remove(media-access) */
46381
46142
  permitOthersAudio() {
46382
46143
  return __awaiter$4(this, undefined, undefined, function* () {
46383
46144
  return this.callAdapter.permitOthersAudio();
46384
46145
  });
46385
46146
  }
46386
- /* @conditional-compile-remove(media-access) */
46387
46147
  forbidVideo(userIds) {
46388
46148
  return __awaiter$4(this, undefined, undefined, function* () {
46389
46149
  return this.callAdapter.forbidVideo(userIds);
46390
46150
  });
46391
46151
  }
46392
- /* @conditional-compile-remove(media-access) */
46393
46152
  permitVideo(userIds) {
46394
46153
  return __awaiter$4(this, undefined, undefined, function* () {
46395
46154
  return this.callAdapter.permitVideo(userIds);
46396
46155
  });
46397
46156
  }
46398
- /* @conditional-compile-remove(media-access) */
46399
46157
  forbidOthersVideo() {
46400
46158
  return __awaiter$4(this, undefined, undefined, function* () {
46401
46159
  return this.callAdapter.forbidOthersVideo();
46402
46160
  });
46403
46161
  }
46404
- /* @conditional-compile-remove(media-access) */
46405
46162
  permitOthersVideo() {
46406
46163
  return __awaiter$4(this, undefined, undefined, function* () {
46407
46164
  return this.callAdapter.permitOthersVideo();
@@ -47609,4 +47366,4 @@ exports.useTeamsCall = useTeamsCall;
47609
47366
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
47610
47367
  exports.useTeamsCallAgent = useTeamsCallAgent;
47611
47368
  exports.useTheme = useTheme;
47612
- //# sourceMappingURL=index-BYO_RzRh.js.map
47369
+ //# sourceMappingURL=index--34qf-o2.js.map