@azure/communication-react 1.3.2-alpha-202208100014.0 → 1.3.2-alpha-202208110020.0

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 (52) hide show
  1. package/dist/communication-react.d.ts +2 -0
  2. package/dist/dist-cjs/communication-react/index.js +170 -42
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts.map +1 -1
  6. package/dist/dist-esm/react-components/src/components/CameraButton.js +3 -1
  7. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  8. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts.map +1 -1
  9. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +1 -1
  10. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  11. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +1 -1
  12. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +9 -4
  13. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  14. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -1
  15. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +3 -3
  17. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts.map +1 -1
  19. package/dist/dist-esm/react-components/src/components/StreamMedia.js +1 -1
  20. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +1 -1
  22. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/VideoGallery.js +46 -16
  25. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.d.ts +8 -0
  27. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.d.ts.map +1 -1
  28. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +17 -0
  29. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  30. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -2
  31. package/dist/dist-esm/react-components/src/types/OnRender.d.ts +3 -0
  32. package/dist/dist-esm/react-components/src/types/OnRender.d.ts.map +1 -1
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +2 -2
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts.map +1 -1
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +2 -1
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts.map +1 -1
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +4 -2
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  41. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts.map +1 -1
  42. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +26 -2
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +2 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts +40 -0
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts.map +1 -0
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js +64 -0
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js.map +1 -0
  50. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +4 -4
  51. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  52. package/package.json +8 -8
@@ -3586,6 +3586,8 @@ export declare type CustomAvatarOptions = {
3586
3586
  styles?: IStyleFunctionOrObject<IPersonaStyleProps, IPersonaStyles>;
3587
3587
  /** Display name to be used in Persona */
3588
3588
  text?: string;
3589
+ /** State for the participant to be displayed in the defaultPlaceHolder */
3590
+ participantState?: ParticipantState;
3589
3591
  };
3590
3592
 
3591
3593
  /**
@@ -192,7 +192,7 @@ const fromFlatCommunicationIdentifier = (id) => {
192
192
  // Copyright (c) Microsoft Corporation.
193
193
  // Licensed under the MIT license.
194
194
  // GENERATED FILE. DO NOT EDIT MANUALLY.
195
- var telemetryVersion = '1.3.2-alpha-202208100014.0';
195
+ var telemetryVersion = '1.3.2-alpha-202208110020.0';
196
196
 
197
197
  // Copyright (c) Microsoft Corporation.
198
198
  /**
@@ -958,7 +958,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
958
958
  wordBreak: 'break-word'
959
959
  });
960
960
 
961
- var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On Hold"};var typingIndicator$d={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$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={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$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={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$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"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:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={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:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",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.",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."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var HoldButton$e={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Connecting...",participantStateRinging:"Ringing...",participantStateHold:"On Hold"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,HoldButton:HoldButton$e,videoTile:videoTile};
961
+ var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On Hold"};var typingIndicator$d={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$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={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$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={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$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"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:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={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:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",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.",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."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var HoldButton$e={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On Hold"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,HoldButton:HoldButton$e,videoTile:videoTile};
962
962
 
963
963
  var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$c={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$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$c={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$c={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$c={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$c={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options"};var errorBar$c={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:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted 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.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",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."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$c={placeholderText:"Enter a number"};var HoldButton$d={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_GB$1 = {participantItem:participantItem$c,typingIndicator:typingIndicator$c,sendBox:sendBox$c,messageStatusIndicator:messageStatusIndicator$c,endCallButton:endCallButton$c,cameraButton:cameraButton$c,microphoneButton:microphoneButton$c,devicesButton:devicesButton$c,participantsButton:participantsButton$c,screenShareButton:screenShareButton$c,messageThread:messageThread$c,errorBar:errorBar$c,videoGallery:videoGallery$c,dialpad:dialpad$c,HoldButton:HoldButton$d};
964
964
 
@@ -4316,7 +4316,7 @@ const StreamMedia = (props) => {
4316
4316
  };
4317
4317
  }, [videoStreamElement]);
4318
4318
  return (React__default['default'].createElement("div", { className: container() },
4319
- React__default['default'].createElement("div", { className: react.mergeStyles(isMirrored && pipEnabled ? invertedVideoInPipStyle(theme) : mediaContainer(theme), styles === null || styles === void 0 ? void 0 : styles.root), ref: containerEl }),
4319
+ React__default['default'].createElement("div", { "data-ui-id": "stream-media-container", className: react.mergeStyles(isMirrored && pipEnabled ? invertedVideoInPipStyle(theme) : mediaContainer(theme), styles === null || styles === void 0 ? void 0 : styles.root), ref: containerEl }),
4320
4320
  loadingState === 'loading' && (React__default['default'].createElement("div", { className: loadingSpinnerContainer() },
4321
4321
  React__default['default'].createElement(react.Spinner, { "data-ui-id": "stream-media-loading-spinner", styles: loadSpinnerStyles })))));
4322
4322
  };
@@ -4342,6 +4342,23 @@ const participantItemContainerStyle = (options) => {
4342
4342
  const menuButtonContainerStyle = {
4343
4343
  width: '1.5rem'
4344
4344
  };
4345
+ /**
4346
+ * @private
4347
+ */
4348
+ const participantStateMaxWidth = '5rem';
4349
+ /**
4350
+ * @private
4351
+ */
4352
+ const participantStateStringStyles = {
4353
+ maxWidth: participantStateMaxWidth,
4354
+ overflow: 'hidden',
4355
+ textOverflow: 'ellipsis',
4356
+ whiteSpace: 'nowrap',
4357
+ lineHeight: 'normal',
4358
+ paddingLeft: '1rem',
4359
+ marginLeft: 'auto',
4360
+ marginRight: 0
4361
+ };
4345
4362
  /**
4346
4363
  * @private
4347
4364
  */
@@ -4375,7 +4392,9 @@ const meContainerStyle = {
4375
4392
  * @public
4376
4393
  */
4377
4394
  const ParticipantItem = (props) => {
4378
- const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip } = props;
4395
+ const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip
4396
+ /* @conditional-compile-remove(PSTN-calls) */
4397
+ } = props;
4379
4398
  const [itemHovered, setItemHovered] = React.useState(false);
4380
4399
  const [menuHidden, setMenuHidden] = React.useState(true);
4381
4400
  const containerRef = React.useRef(null);
@@ -4411,11 +4430,14 @@ const ParticipantItem = (props) => {
4411
4430
  onClick === null || onClick === void 0 ? void 0 : onClick(props);
4412
4431
  }
4413
4432
  }, tabIndex: 0 },
4414
- React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles({ width: `calc(100% - ${menuButtonContainerStyle.width})`, alignItems: 'center' }) },
4433
+ React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles({
4434
+ width: `calc(100% - ${!me && participantStateString ? participantStateMaxWidth : menuButtonContainerStyle.width})`,
4435
+ alignItems: 'center'
4436
+ }) },
4415
4437
  avatar,
4416
4438
  me && React__default['default'].createElement(react.Text, { className: meTextStyle }, strings.isMeText),
4417
4439
  React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(infoContainerStyle) }, onRenderIcon && onRenderIcon(props))),
4418
- !me && participantStateString ? (React__default['default'].createElement(react.Text, null, participantStateString)) : (React__default['default'].createElement("div", null, menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
4440
+ !me && participantStateString ? (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStringStyles) }, participantStateString)) : (React__default['default'].createElement("div", null, menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
4419
4441
  menuButton,
4420
4442
  React__default['default'].createElement(react.ContextualMenu, { items: menuItems, hidden: menuHidden, target: containerRef, onItemClick: onDismissMenu, onDismiss: onDismissMenu, directionalHint: react.DirectionalHint.bottomRightEdge, className: contextualMenuStyle, calloutProps: {
4421
4443
  preventDismissOnEvent: _preventDismissOnEvent
@@ -4751,7 +4773,7 @@ const displayNameStyle = {
4751
4773
  /**
4752
4774
  * @private
4753
4775
  */
4754
- const participantStateStyle = {
4776
+ const participantStateStyle$1 = {
4755
4777
  textAlign: 'center',
4756
4778
  paddingTop: '0.5rem',
4757
4779
  fontWeight: 600,
@@ -4815,7 +4837,7 @@ const DefaultPlaceholder = (props) => {
4815
4837
  return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
4816
4838
  React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles },
4817
4839
  React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }),
4818
- participantStateString && React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, participantStateString))));
4840
+ participantStateString && React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle$1) }, participantStateString))));
4819
4841
  };
4820
4842
  const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
4821
4843
  /**
@@ -4897,7 +4919,7 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
4897
4919
  isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator,
4898
4920
  /* @conditional-compile-remove(one-to-n-calling) */
4899
4921
  /* @conditional-compile-remove(PSTN-calls) */
4900
- state } = props;
4922
+ participantState } = props;
4901
4923
  const remoteVideoStreamProps = React.useMemo(() => ({
4902
4924
  isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
4903
4925
  isScreenSharingOn,
@@ -4928,12 +4950,12 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
4928
4950
  // Returning `undefined` results in the placeholder with avatar being shown
4929
4951
  return undefined;
4930
4952
  }
4931
- return React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving ? 'none' : 'loading' });
4953
+ return (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' }));
4932
4954
  }, [renderElement, isReceiving]);
4933
4955
  return (React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, showLabel: props.showLabel, personaMinSize: props.personaMinSize,
4934
4956
  /* @conditional-compile-remove(one-to-n-calling) */
4935
4957
  /* @conditional-compile-remove(PSTN-calls) */
4936
- participantState: state }));
4958
+ participantState: participantState }));
4937
4959
  });
4938
4960
 
4939
4961
  // Copyright (c) Microsoft Corporation.
@@ -5361,7 +5383,7 @@ const RemoteScreenShare = React__default['default'].memo((props) => {
5361
5383
  participant: displayName
5362
5384
  })
5363
5385
  : '';
5364
- return (React__default['default'].createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving ? 'none' : 'loading' })) : undefined, onRenderPlaceholder: () => React__default['default'].createElement(LoadingSpinner, { loadingMessage: loadingMessage }) }));
5386
+ return (React__default['default'].createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React__default['default'].createElement(LoadingSpinner, { loadingMessage: loadingMessage }) }));
5365
5387
  });
5366
5388
  const LoadingSpinner = (props) => {
5367
5389
  return (React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: loadingStyle },
@@ -6139,7 +6161,7 @@ const modalMaxDragPosition = { x: localVideoTileOuterPaddingPX, y: localVideoTil
6139
6161
  * @public
6140
6162
  */
6141
6163
  const VideoGallery = (props) => {
6142
- var _a, _b, _c, _d;
6164
+ var _a, _b, _c, _d, _e;
6143
6165
  const { localParticipant, remoteParticipants = [], localVideoViewOptions, remoteVideoViewOptions, dominantSpeakers, onRenderLocalVideoTile, onRenderRemoteVideoTile, onCreateLocalStreamView, onDisposeLocalStreamView, onCreateRemoteStreamView, onDisposeRemoteStreamView, styles, layout, onRenderAvatar, showMuteIndicator, maxRemoteVideoStreams = DEFAULT_MAX_REMOTE_VIDEO_STREAMS, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps } = props;
6144
6166
  const ids = useIdentifiers();
6145
6167
  const theme = useTheme();
@@ -6153,6 +6175,8 @@ const VideoGallery = (props) => {
6153
6175
  const isNarrow = containerWidth ? isNarrowWidth(containerWidth) : false;
6154
6176
  const visibleVideoParticipants = React.useRef([]);
6155
6177
  const visibleAudioParticipants = React.useRef([]);
6178
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6179
+ const visibleCallingParticipants = React.useRef([]);
6156
6180
  const modalWidth = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.width : LARGE_FLOATING_MODAL_SIZE_PX.width;
6157
6181
  const modalHeight = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.height : LARGE_FLOATING_MODAL_SIZE_PX.height;
6158
6182
  // The minimum drag position is the top left of the video gallery. i.e. the modal (PiP) should not be able
@@ -6171,10 +6195,20 @@ const VideoGallery = (props) => {
6171
6195
  lastVisibleParticipants: visibleVideoParticipants.current,
6172
6196
  maxDominantSpeakers: maxRemoteVideoStreams
6173
6197
  }).slice(0, maxRemoteVideoStreams);
6198
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6199
+ visibleCallingParticipants.current = smartDominantSpeakerParticipants({
6200
+ participants: (_b = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => p.state === ('Connecting' ))) !== null && _b !== void 0 ? _b : [],
6201
+ dominantSpeakers,
6202
+ lastVisibleParticipants: visibleCallingParticipants.current,
6203
+ maxDominantSpeakers: 0
6204
+ });
6174
6205
  // This set will be used to filter out participants already in visibleVideoParticipants
6175
6206
  const visibleVideoParticipantsSet = new Set(visibleVideoParticipants.current.map((p) => p.userId));
6207
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6208
+ const visibleCallingParticipantsSet = new Set(visibleCallingParticipants.current.map((p) => p.userId));
6176
6209
  visibleAudioParticipants.current = smartDominantSpeakerParticipants({
6177
- participants: (_b = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => !visibleVideoParticipantsSet.has(p.userId))) !== null && _b !== void 0 ? _b : [],
6210
+ participants: (_c = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => !visibleVideoParticipantsSet.has(p.userId) &&
6211
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !visibleCallingParticipantsSet.has(p.userId))) !== null && _c !== void 0 ? _c : [],
6178
6212
  dominantSpeakers,
6179
6213
  lastVisibleParticipants: visibleAudioParticipants.current,
6180
6214
  maxDominantSpeakers: MAX_AUDIO_DOMINANT_SPEAKERS
@@ -6215,7 +6249,9 @@ const VideoGallery = (props) => {
6215
6249
  ]);
6216
6250
  const defaultOnRenderVideoTile = React.useCallback((participant, isVideoParticipant) => {
6217
6251
  const remoteVideoStream = participant.videoStream;
6218
- return (React__default['default'].createElement(_RemoteVideoTile, Object.assign({ key: participant.userId }, participant, { onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, isReceiving: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isReceiving : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: isVideoParticipant ? remoteVideoViewOptions : undefined, onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator })));
6252
+ return (React__default['default'].createElement(_RemoteVideoTile, Object.assign({ key: participant.userId }, participant, { onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, isReceiving: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isReceiving : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: isVideoParticipant ? remoteVideoViewOptions : undefined, onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator,
6253
+ /* @conditional-compile-remove(PSTN-calls) */
6254
+ participantState: participant.state })));
6219
6255
  }, [onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, onRenderAvatar, showMuteIndicator]);
6220
6256
  const videoTiles = onRenderRemoteVideoTile
6221
6257
  ? visibleVideoParticipants.current.map((participant) => onRenderRemoteVideoTile(participant))
@@ -6227,25 +6263,38 @@ const VideoGallery = (props) => {
6227
6263
  : visibleAudioParticipants.current.map((participant) => {
6228
6264
  return defaultOnRenderVideoTile(participant, false);
6229
6265
  });
6266
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6267
+ const callingTiles = onRenderRemoteVideoTile
6268
+ ? visibleCallingParticipants.current.map((participant) => onRenderRemoteVideoTile(participant))
6269
+ : visibleCallingParticipants.current.map((participant) => {
6270
+ return defaultOnRenderVideoTile(participant, false);
6271
+ });
6230
6272
  const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
6231
6273
  const screenShareActive = screenShareParticipant || (localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.isScreenSharingOn);
6232
- let gridTiles = [];
6233
- let horizontalGalleryTiles = [];
6234
- if (screenShareActive) {
6235
- // If screen sharing is active, assign video and audio participants as horizontal gallery participants
6236
- horizontalGalleryTiles = videoTiles.concat(audioTiles);
6237
- }
6238
- else {
6239
- // If screen sharing is not active, then assign all video tiles as grid tiles.
6240
- // If there are no video tiles, then assign audio tiles as grid tiles.
6241
- gridTiles = videoTiles.length > 0 ? videoTiles : audioTiles;
6242
- horizontalGalleryTiles = videoTiles.length > 0 ? audioTiles : [];
6243
- }
6274
+ const createGridTiles = () => {
6275
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6276
+ return videoTiles.length > 0 ? videoTiles : audioTiles.concat(callingTiles);
6277
+ };
6278
+ const gridTiles = createGridTiles();
6279
+ const createHorizontalGalleryTiles = () => {
6280
+ if (screenShareActive) {
6281
+ // If screen sharing is active, assign video and audio participants as horizontal gallery participants
6282
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6283
+ return videoTiles.concat(audioTiles.concat(callingTiles));
6284
+ }
6285
+ else {
6286
+ // If screen sharing is not active, then assign all video tiles as grid tiles.
6287
+ // If there are no video tiles, then assign audio tiles as grid tiles.
6288
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6289
+ return videoTiles.length > 0 ? audioTiles.concat(callingTiles) : [];
6290
+ }
6291
+ };
6292
+ const horizontalGalleryTiles = createHorizontalGalleryTiles();
6244
6293
  if (!shouldFloatLocalVideo && localParticipant) {
6245
6294
  gridTiles.push(localVideoTile);
6246
6295
  }
6247
6296
  const localScreenShareStreamComponent = React__default['default'].createElement(LocalScreenShare, { localParticipant: localParticipant });
6248
- const remoteScreenShareComponent = screenShareParticipant && (React__default['default'].createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (_c = screenShareParticipant.screenShareStream) === null || _c === void 0 ? void 0 : _c.renderElement, onCreateRemoteStreamView: onCreateRemoteStreamView, onDisposeRemoteStreamView: onDisposeRemoteStreamView, isReceiving: (_d = screenShareParticipant.screenShareStream) === null || _d === void 0 ? void 0 : _d.isReceiving })));
6297
+ const remoteScreenShareComponent = screenShareParticipant && (React__default['default'].createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (_d = screenShareParticipant.screenShareStream) === null || _d === void 0 ? void 0 : _d.renderElement, onCreateRemoteStreamView: onCreateRemoteStreamView, onDisposeRemoteStreamView: onDisposeRemoteStreamView, isReceiving: (_e = screenShareParticipant.screenShareStream) === null || _e === void 0 ? void 0 : _e.isReceiving })));
6249
6298
  const horizontalGalleryPresent = horizontalGalleryTiles && horizontalGalleryTiles.length > 0;
6250
6299
  const layerHostId = reactHooks.useId('layerhost');
6251
6300
  return (React__default['default'].createElement("div", { "data-ui-id": ids.videoGallery, ref: containerRef, className: react.mergeStyles(videoGalleryOuterDivStyle, styles === null || styles === void 0 ? void 0 : styles.root) },
@@ -6725,7 +6774,9 @@ const CameraButton = (props) => {
6725
6774
  const [announcerString, setAnnouncerString] = React.useState(undefined);
6726
6775
  let disabled = props.disabled || waitForCamera;
6727
6776
  /* @conditional-compile-remove(rooms) */
6728
- disabled = disabled || !_usePermissions().cameraButton;
6777
+ const permissions = _usePermissions();
6778
+ /* @conditional-compile-remove(rooms) */
6779
+ disabled = disabled || !permissions.cameraButton;
6729
6780
  const onRenderCameraOnIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOn" }));
6730
6781
  const onRenderCameraOffIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOff" }));
6731
6782
  if (waitForCamera && strings.tooltipVideoLoadingContent) {
@@ -7805,7 +7856,7 @@ const DialpadContainer = (props) => {
7805
7856
  onChange(onDisplayDialpadInput ? onDisplayDialpadInput(modifiedInput) : formatPhoneNumber(modifiedInput));
7806
7857
  }
7807
7858
  };
7808
- return (React__default['default'].createElement("div", { className: react.mergeStyles(containerStyles$1(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), "data-test-id": "dialpadContainer" },
7859
+ return (React__default['default'].createElement("div", { className: react.mergeStyles(containerStyles$1(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), "data-test-id": "dialpadContainer", "data-ui-id": "dialpadContainer" },
7809
7860
  React__default['default'].createElement(react.TextField, { styles: react.concatStyleSets(textFieldStyles(theme), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.textField), value: onDisplayDialpadInput ? onDisplayDialpadInput(textValue) : formatPhoneNumber(textValue),
7810
7861
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7811
7862
  onChange: (e) => {
@@ -15484,7 +15535,7 @@ const AddPeopleDropdown = (props) => {
15484
15535
  itemProps: { styles: copyLinkButtonStylesThemed },
15485
15536
  iconProps: { iconName: PeoplePaneOpenDialpadIconNameTrampoline(), style: iconStyles },
15486
15537
  onClick: () => setShowDialpad(true),
15487
- 'data-ui-id': 'call-with-chat-composite-dial-phone-number-button'
15538
+ 'data-ui-id': 'call-dial-phone-number-button'
15488
15539
  });
15489
15540
  }
15490
15541
  return menuProps;
@@ -15509,15 +15560,15 @@ const AddPeopleDropdown = (props) => {
15509
15560
  if (mobileView) {
15510
15561
  return (React__default['default'].createElement(react.Stack, null,
15511
15562
  React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
15512
- React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-with-chat-composite-add-people-button" })),
15513
- addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-with-chat-composite-add-people-dropdown" },
15563
+ React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" })),
15564
+ addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-add-people-dropdown" },
15514
15565
  React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
15515
15566
  alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }))));
15516
15567
  }
15517
15568
  return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Stack, null,
15518
15569
  alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId })),
15519
15570
  React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
15520
- React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-with-chat-composite-add-people-button" })))));
15571
+ React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" })))));
15521
15572
  };
15522
15573
  function PeoplePaneOpenDialpadIconNameTrampoline() {
15523
15574
  /* @conditional-compile-remove(PSTN-calls) */
@@ -15923,8 +15974,9 @@ const CallArrangement = (props) => {
15923
15974
  };
15924
15975
  /* @conditional-compile-remove(one-to-n-calling) */
15925
15976
  const callPaneContent = () => {
15977
+ var _a;
15926
15978
  if (adapter && callStatus === 'Connected') {
15927
- return (React__default['default'].createElement(CallPane, { callAdapter: adapter, onClose: closePane, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onPeopleButtonClicked: showShowPeopleTabHeaderButton$1(props.callControlProps.options) ? selectPeople : undefined, modalLayerHostId: props.modalLayerHostId, activePane: activePane, mobileView: props.mobileView, inviteLink: props.callControlProps.callInvitationURL }));
15979
+ return (React__default['default'].createElement(CallPane, { callAdapter: adapter, onClose: closePane, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems, onPeopleButtonClicked: showShowPeopleTabHeaderButton$1(props.callControlProps.options) ? selectPeople : undefined, modalLayerHostId: props.modalLayerHostId, activePane: activePane, mobileView: props.mobileView, inviteLink: props.callControlProps.callInvitationURL }));
15928
15980
  }
15929
15981
  return React__default['default'].createElement(React__default['default'].Fragment, null);
15930
15982
  };
@@ -15971,6 +16023,61 @@ const localVideoCameraCycleButtonSelector = reselect.createSelector([getDeviceMa
15971
16023
  };
15972
16024
  });
15973
16025
 
16026
+ // Copyright (c) Microsoft Corporation.
16027
+ const videoBaseStyle = react.mergeStyles({
16028
+ border: 0
16029
+ });
16030
+ /**
16031
+ * @private
16032
+ */
16033
+ react.mergeStyles(videoBaseStyle, {
16034
+ width: '100%',
16035
+ height: '100%'
16036
+ });
16037
+ /**
16038
+ * @private
16039
+ */
16040
+ react.mergeStyles(videoBaseStyle, {
16041
+ width: '100%',
16042
+ height: 0,
16043
+ position: 'relative',
16044
+ paddingTop: '56.25%' /* default to 16:9 Aspect Ratio for now*/
16045
+ });
16046
+ /**
16047
+ * @private
16048
+ */
16049
+ react.mergeStyles({
16050
+ position: 'absolute',
16051
+ top: 0,
16052
+ left: 0,
16053
+ width: '100%',
16054
+ height: '100%'
16055
+ });
16056
+ /**
16057
+ * @private
16058
+ */
16059
+ react.mergeStyles({
16060
+ height: '100%',
16061
+ width: '15%'
16062
+ });
16063
+ /**
16064
+ * @private
16065
+ */
16066
+ react.mergeStyles({
16067
+ height: '100%',
16068
+ width: '85%',
16069
+ position: 'relative'
16070
+ });
16071
+ /**
16072
+ * @private
16073
+ */
16074
+ const participantStateStyle = {
16075
+ textAlign: 'center',
16076
+ paddingTop: '0.5rem',
16077
+ fontWeight: 400,
16078
+ fontSize: '0.75rem'
16079
+ };
16080
+
15974
16081
  // Copyright (c) Microsoft Corporation.
15975
16082
  const VideoGalleryStyles = {
15976
16083
  root: {
@@ -15996,8 +16103,26 @@ const MediaGallery = (props) => {
15996
16103
  const cameraSwitcherProps = React.useMemo(() => {
15997
16104
  return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);
15998
16105
  }, [cameraSwitcherCallback, cameraSwitcherCameras]);
15999
- const onRenderAvatar = React.useCallback((userId, options) => (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
16000
- React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })))), [props.onFetchAvatarPersonaData]);
16106
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16107
+ const locale = useLocale().component;
16108
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16109
+ const videoTileStrings = locale.strings.videoTile;
16110
+ const onRenderAvatar = React.useCallback((userId, options) => {
16111
+ return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
16112
+ React__default['default'].createElement(react.Stack, { styles: { root: { margin: 'auto', maxHeight: '100%' } } },
16113
+ React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })),
16114
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16115
+ (options === null || options === void 0 ? void 0 : options.participantState) === 'Ringing' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateConnecting)),
16116
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16117
+ (options === null || options === void 0 ? void 0 : options.participantState) === 'Connecting' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateRinging)),
16118
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16119
+ (options === null || options === void 0 ? void 0 : options.participantState) === 'Hold' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateHold)))));
16120
+ }, [
16121
+ props.onFetchAvatarPersonaData,
16122
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateConnecting,
16123
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateRinging,
16124
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateHold
16125
+ ]);
16001
16126
  useLocalVideoStartTrigger(!!props.isVideoStreamOn);
16002
16127
  const VideoGalleryMemoized = React.useMemo(() => {
16003
16128
  return (React__default['default'].createElement(VideoGallery, Object.assign({}, videoGalleryProps, { localVideoViewOptions: localVideoViewOptions$2, remoteVideoViewOptions: remoteVideoViewOptions, styles: VideoGalleryStyles, layout: "floatingLocalVideo", showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar })));
@@ -16362,9 +16487,11 @@ const LocalDeviceSettings = (props) => {
16362
16487
  let isSelectCamEnabled = props.cameraPermissionGranted;
16363
16488
  let isSelectMicEnabled = props.microphonePermissionGranted;
16364
16489
  /* @conditional-compile-remove(rooms) */
16365
- isSelectCamEnabled = isSelectCamEnabled && _usePermissions().cameraButton;
16490
+ const permissions = _usePermissions();
16491
+ /* @conditional-compile-remove(rooms) */
16492
+ isSelectCamEnabled = isSelectCamEnabled && permissions.cameraButton;
16366
16493
  /* @conditional-compile-remove(rooms) */
16367
- isSelectMicEnabled = isSelectMicEnabled && _usePermissions().microphoneButton;
16494
+ isSelectMicEnabled = isSelectMicEnabled && permissions.microphoneButton;
16368
16495
  // TODO: speaker permission is tied to microphone permission (when you request 'audio' permission using the SDK) its
16369
16496
  // actually granting access to query both microphone and speaker. However the browser popup asks you explicity for
16370
16497
  // 'microphone'. This needs investigation on how we want to handle this and maybe needs follow up with SDK team.
@@ -16802,7 +16929,8 @@ const LobbyPage = (props) => {
16802
16929
  modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React__default['default'].createElement(LobbyTile, Object.assign({}, lobbyProps, { overlayProps: overlayProps(strings, inLobby) })), dataUiId: 'lobby-page' }));
16803
16930
  };
16804
16931
  const disableLobbyPageControls = (callControlOptions) => {
16805
- let newOptions = callControlOptions;
16932
+ // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.
16933
+ let newOptions = callControlOptions instanceof Object ? Object.assign({}, callControlOptions) : callControlOptions;
16806
16934
  if (newOptions !== false) {
16807
16935
  if (newOptions === true || newOptions === undefined) {
16808
16936
  newOptions = {
@@ -17224,9 +17352,9 @@ class AzureCommunicationCallAdapter {
17224
17352
  });
17225
17353
  }
17226
17354
  _joinCall(audioOptions, videoOptions) {
17227
- const isTeamsMeeting = !('groupId' in this.locator);
17355
+ const isTeamsMeeting = 'teamsLink' in this.locator;
17228
17356
  /* @conditional-compile-remove(rooms) */
17229
- const isRoomsCall = !('roomId' in this.locator);
17357
+ const isRoomsCall = 'roomId' in this.locator;
17230
17358
  if (isTeamsMeeting) {
17231
17359
  return this.callAgent.join(this.locator, {
17232
17360
  audioOptions,