@azure/communication-react 1.3.3-alpha-202208310017.0 → 1.3.3-alpha-202209030014.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.
- package/dist/communication-react.d.ts +23 -5
- package/dist/dist-cjs/communication-react/index.js +315 -303
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/chat-component-bindings/src/utils/constants.d.ts +4 -0
- package/dist/dist-esm/chat-component-bindings/src/utils/constants.js +4 -0
- package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
- package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +8 -0
- package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Announcer.d.ts +2 -2
- package/dist/dist-esm/react-components/src/components/Announcer.js +1 -1
- package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +1 -1
- package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +2 -46
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js +9 -6
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/index.js +1 -0
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js +3 -0
- package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +3 -3
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +13 -15
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +3 -7
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.d.ts +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +3 -6
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js +8 -5
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +10 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +32 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +15 -5
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +4 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +6 -5
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js +3 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +8 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js +9 -5
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +17 -6
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +7 -5
- package/package.json +8 -8
@@ -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.3-alpha-
|
195
|
+
var telemetryVersion = '1.3.3-alpha-202209030014.0';
|
196
196
|
|
197
197
|
// Copyright (c) Microsoft Corporation.
|
198
198
|
/**
|
@@ -957,7 +957,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
957
957
|
wordBreak: 'break-word'
|
958
958
|
});
|
959
959
|
|
960
|
-
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On
|
960
|
+
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={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,videoTile:videoTile};
|
961
961
|
|
962
962
|
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};
|
963
963
|
|
@@ -2189,7 +2189,7 @@ const VoiceOverButton = (props) => {
|
|
2189
2189
|
|
2190
2190
|
// Copyright (c) Microsoft Corporation.
|
2191
2191
|
/**
|
2192
|
-
* @
|
2192
|
+
* @internal
|
2193
2193
|
* Announcer component to maker aria announcements on actions
|
2194
2194
|
*/
|
2195
2195
|
const Announcer = (props) => {
|
@@ -2275,12 +2275,6 @@ const useLocaleFileCardStringsTrampoline = () => {
|
|
2275
2275
|
/* @conditional-compile-remove(file-sharing) */
|
2276
2276
|
return useLocale$1().strings.sendBox;
|
2277
2277
|
};
|
2278
|
-
/**
|
2279
|
-
* Identify if a participant state if part of the Calling states or Hold states.
|
2280
|
-
*/
|
2281
|
-
const _isParticipantStateCallingOrHold = (participantState) => {
|
2282
|
-
return !!participantState && ['Idle', 'Connecting', 'EarlyMedia', 'Ringing', 'Hold'].includes(participantState);
|
2283
|
-
};
|
2284
2278
|
|
2285
2279
|
// Copyright (c) Microsoft Corporation.
|
2286
2280
|
/**
|
@@ -4813,9 +4807,10 @@ const overlayContainerStyles = {
|
|
4813
4807
|
*/
|
4814
4808
|
const tileInfoContainerStyle = react.mergeStyles({
|
4815
4809
|
position: 'absolute',
|
4816
|
-
bottom: '0
|
4817
|
-
left: '0
|
4818
|
-
|
4810
|
+
bottom: '0',
|
4811
|
+
left: '0',
|
4812
|
+
padding: '0.5rem',
|
4813
|
+
width: '100%'
|
4819
4814
|
});
|
4820
4815
|
/**
|
4821
4816
|
* @private
|
@@ -4853,30 +4848,27 @@ const displayNameStyle = {
|
|
4853
4848
|
/**
|
4854
4849
|
* @private
|
4855
4850
|
*/
|
4856
|
-
const iconContainerStyle = {
|
4857
|
-
|
4851
|
+
const iconContainerStyle = (theme) => ({
|
4852
|
+
margin: 'auto',
|
4858
4853
|
alignItems: 'center',
|
4859
4854
|
'& svg': {
|
4860
|
-
display: 'block'
|
4855
|
+
display: 'block',
|
4856
|
+
color: theme.palette.neutralPrimary
|
4861
4857
|
}
|
4862
|
-
};
|
4858
|
+
});
|
4863
4859
|
/**
|
4864
4860
|
* @private
|
4865
4861
|
*/
|
4866
|
-
const participantStateStringStyles = (
|
4862
|
+
const participantStateStringStyles = (theme) => {
|
4867
4863
|
return {
|
4868
|
-
|
4869
|
-
|
4870
|
-
color: 'inherit',
|
4871
|
-
width: showLabel ? 'auto' : '100%',
|
4872
|
-
marginRight: showLabel ? 0 : 'none',
|
4873
|
-
marginLeft: showLabel ? 'auto' : 'none',
|
4864
|
+
minWidth: 'max-content',
|
4865
|
+
color: theme.palette.black,
|
4874
4866
|
fontSize: '0.75rem',
|
4875
4867
|
lineHeight: 'normal',
|
4876
4868
|
overflow: 'hidden',
|
4877
4869
|
textOverflow: 'ellipsis',
|
4878
4870
|
whiteSpace: 'nowrap',
|
4879
|
-
padding: '0.
|
4871
|
+
padding: '0.1rem'
|
4880
4872
|
};
|
4881
4873
|
};
|
4882
4874
|
|
@@ -4955,13 +4947,13 @@ const VideoTile = (props) => {
|
|
4955
4947
|
height: '100%'
|
4956
4948
|
}
|
4957
4949
|
}, styles === null || styles === void 0 ? void 0 : styles.root) },
|
4958
|
-
isVideoRendered ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, isMirrored && { transform: 'scaleX(-1)' }, styles === null || styles === void 0 ? void 0 : styles.videoContainer) }, renderElement)) : (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles) }, onRenderPlaceholder ? (onRenderPlaceholder(userId !== null && userId !== void 0 ? userId : '', placeholderOptions, DefaultPlaceholder)) : (React__default['default'].createElement(DefaultPlaceholder, Object.assign({}, placeholderOptions))))),
|
4950
|
+
isVideoRendered ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, isMirrored && { transform: 'scaleX(-1)' }, styles === null || styles === void 0 ? void 0 : styles.videoContainer) }, renderElement)) : (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles), style: { opacity: participantStateString ? 0.4 : 1 } }, onRenderPlaceholder ? (onRenderPlaceholder(userId !== null && userId !== void 0 ? userId : '', placeholderOptions, DefaultPlaceholder)) : (React__default['default'].createElement(DefaultPlaceholder, Object.assign({}, placeholderOptions))))),
|
4959
4951
|
(canShowLabel || participantStateString) && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoContainerStyle, tokens: tileInfoContainerTokens },
|
4960
|
-
|
4961
|
-
React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName }, displayName),
|
4962
|
-
|
4963
|
-
|
4964
|
-
|
4952
|
+
React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoStyle },
|
4953
|
+
canShowLabel && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName, style: { color: participantStateString ? theme.palette.neutralSecondary : 'inherit' } }, displayName)),
|
4954
|
+
participantStateString && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStringStyles(theme)) }, bracketedParticipantString(participantStateString, !!canShowLabel))),
|
4955
|
+
showMuteIndicator && isMuted && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle(theme)) },
|
4956
|
+
React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" })))))),
|
4965
4957
|
children && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === void 0 ? void 0 : styles.overlayContainer) }, children)))));
|
4966
4958
|
};
|
4967
4959
|
const participantStateStringTrampoline = (props, locale) => {
|
@@ -4983,184 +4975,8 @@ const tileInfoContainerTokens = {
|
|
4983
4975
|
// We need to allow the children to set their own margins
|
4984
4976
|
childrenGap: 'none'
|
4985
4977
|
};
|
4986
|
-
|
4987
|
-
|
4988
|
-
/**
|
4989
|
-
* @private
|
4990
|
-
*/
|
4991
|
-
const videoGalleryOuterDivStyle = react.mergeStyles({ position: 'relative', width: '100%', height: '100%' });
|
4992
|
-
/**
|
4993
|
-
* @private
|
4994
|
-
*/
|
4995
|
-
const videoGalleryContainerStyle = {
|
4996
|
-
root: { position: 'relative', height: '100%', width: '100%', padding: '0.5rem' }
|
4997
|
-
};
|
4998
|
-
/**
|
4999
|
-
* Small floating modal width and height in rem for small screen
|
5000
|
-
*/
|
5001
|
-
const SMALL_FLOATING_MODAL_SIZE_PX = { width: 64, height: 88 };
|
5002
|
-
/**
|
5003
|
-
* Large floating modal width and height in rem for large screen
|
5004
|
-
*/
|
5005
|
-
const LARGE_FLOATING_MODAL_SIZE_PX = { width: 160, height: 120 };
|
5006
|
-
/**
|
5007
|
-
* @private
|
5008
|
-
* z-index to ensure that the local video tile is above the video gallery.
|
5009
|
-
*/
|
5010
|
-
const LOCAL_VIDEO_TILE_ZINDEX = 2;
|
5011
|
-
/**
|
5012
|
-
* @private
|
5013
|
-
*/
|
5014
|
-
const floatingLocalVideoModalStyle = (theme, isNarrow) => {
|
5015
|
-
return react.concatStyleSets({
|
5016
|
-
main: localVideoTileContainerStyle(theme, isNarrow)
|
5017
|
-
}, {
|
5018
|
-
main: {
|
5019
|
-
boxShadow: theme.effects.elevation8,
|
5020
|
-
':focus-within': {
|
5021
|
-
boxShadow: theme.effects.elevation16,
|
5022
|
-
border: `${_pxToRem(2)} solid ${theme.palette.neutralPrimary}`
|
5023
|
-
}
|
5024
|
-
}
|
5025
|
-
}, localVideoModalStyles);
|
5026
|
-
};
|
5027
|
-
/**
|
5028
|
-
* Padding equal to the amount the modal should stay inside the bounds of the container.
|
5029
|
-
* i.e. if this is 8px, the modal should always be at least 8px inside the container at all times on all sides.
|
5030
|
-
* @private
|
5031
|
-
*/
|
5032
|
-
const localVideoTileOuterPaddingPX = 8;
|
5033
|
-
/**
|
5034
|
-
* @private
|
5035
|
-
*/
|
5036
|
-
const localVideoTileContainerStyle = (theme, isNarrow) => {
|
5037
|
-
return Object.assign({ minWidth: isNarrow ? _pxToRem(SMALL_FLOATING_MODAL_SIZE_PX.width) : _pxToRem(LARGE_FLOATING_MODAL_SIZE_PX.width), minHeight: isNarrow ? _pxToRem(SMALL_FLOATING_MODAL_SIZE_PX.height) : _pxToRem(LARGE_FLOATING_MODAL_SIZE_PX.height), position: 'absolute', bottom: _pxToRem(localVideoTileOuterPaddingPX), borderRadius: theme.effects.roundedCorner4, overflow: 'hidden' }, (theme.rtl
|
5038
|
-
? { left: _pxToRem(localVideoTileOuterPaddingPX) }
|
5039
|
-
: { right: _pxToRem(localVideoTileOuterPaddingPX) }));
|
5040
|
-
};
|
5041
|
-
/**
|
5042
|
-
* @private
|
5043
|
-
*/
|
5044
|
-
const localVideoTileWithControlsContainerStyle = (theme, isNarrow) => {
|
5045
|
-
return react.concatStyleSets(localVideoTileContainerStyle(theme, isNarrow), {
|
5046
|
-
root: { boxShadow: theme.effects.elevation8 }
|
5047
|
-
});
|
5048
|
-
};
|
5049
|
-
/**
|
5050
|
-
* @private
|
5051
|
-
*/
|
5052
|
-
const floatingLocalVideoTileStyle = {
|
5053
|
-
root: {
|
5054
|
-
position: 'absolute',
|
5055
|
-
zIndex: LOCAL_VIDEO_TILE_ZINDEX,
|
5056
|
-
height: '100%',
|
5057
|
-
width: '100%'
|
5058
|
-
}
|
5059
|
-
};
|
5060
|
-
/**
|
5061
|
-
* @private
|
5062
|
-
*/
|
5063
|
-
const horizontalGalleryContainerStyle = (shouldFloatLocalVideo, isNarrow) => {
|
5064
|
-
return {
|
5065
|
-
minHeight: isNarrow
|
5066
|
-
? `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`
|
5067
|
-
: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5068
|
-
width: shouldFloatLocalVideo
|
5069
|
-
? isNarrow
|
5070
|
-
? `calc(100% - ${_pxToRem(SMALL_FLOATING_MODAL_SIZE_PX.width)})`
|
5071
|
-
: `calc(100% - ${_pxToRem(LARGE_FLOATING_MODAL_SIZE_PX.width)})`
|
5072
|
-
: '100%',
|
5073
|
-
paddingRight: '0.5rem'
|
5074
|
-
};
|
5075
|
-
};
|
5076
|
-
/**
|
5077
|
-
* @private
|
5078
|
-
*/
|
5079
|
-
const horizontalGalleryStyle = (isNarrow) => {
|
5080
|
-
return {
|
5081
|
-
children: isNarrow ? SMALL_HORIZONTAL_GALLERY_TILE_STYLE : LARGE_HORIZONTAL_GALLERY_TILE_STYLE
|
5082
|
-
};
|
5083
|
-
};
|
5084
|
-
/**
|
5085
|
-
* Small horizontal gallery tile size in rem
|
5086
|
-
* @private
|
5087
|
-
*/
|
5088
|
-
const SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM = { height: 5.5, width: 5.5 };
|
5089
|
-
/**
|
5090
|
-
* Large horizontal gallery tile size in rem
|
5091
|
-
* @private
|
5092
|
-
*/
|
5093
|
-
const LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM = { height: 7.5, width: 10 };
|
5094
|
-
/**
|
5095
|
-
* @private
|
5096
|
-
*/
|
5097
|
-
const SMALL_HORIZONTAL_GALLERY_TILE_STYLE = {
|
5098
|
-
minHeight: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5099
|
-
minWidth: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`,
|
5100
|
-
maxHeight: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5101
|
-
maxWidth: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`
|
5102
|
-
};
|
5103
|
-
/**
|
5104
|
-
* @private
|
5105
|
-
*/
|
5106
|
-
const LARGE_HORIZONTAL_GALLERY_TILE_STYLE = {
|
5107
|
-
minHeight: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5108
|
-
minWidth: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`,
|
5109
|
-
maxHeight: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5110
|
-
maxWidth: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`
|
5111
|
-
};
|
5112
|
-
/**
|
5113
|
-
* @private
|
5114
|
-
*/
|
5115
|
-
const layerHostStyle = {
|
5116
|
-
position: 'absolute',
|
5117
|
-
left: 0,
|
5118
|
-
top: 0,
|
5119
|
-
width: '100%',
|
5120
|
-
height: '100%',
|
5121
|
-
overflow: 'hidden',
|
5122
|
-
// pointer events for layerHost set to none to make descendants interactive
|
5123
|
-
pointerEvents: 'none'
|
5124
|
-
};
|
5125
|
-
/**
|
5126
|
-
* @private
|
5127
|
-
*/
|
5128
|
-
const localVideoCameraCycleButtonStyles = (theme) => {
|
5129
|
-
return {
|
5130
|
-
root: {
|
5131
|
-
position: 'absolute',
|
5132
|
-
width: _pxToRem(32),
|
5133
|
-
height: _pxToRem(32),
|
5134
|
-
right: '0rem',
|
5135
|
-
top: '0rem',
|
5136
|
-
color: '#FFFFFF',
|
5137
|
-
zIndex: 2,
|
5138
|
-
background: 'rgba(0,0,0,0.4)',
|
5139
|
-
borderRadius: theme.effects.roundedCorner2
|
5140
|
-
},
|
5141
|
-
rootFocused: {
|
5142
|
-
// styles to remove the unwanted white highlight and blue colour after tapping on button.
|
5143
|
-
color: '#FFFFFF',
|
5144
|
-
background: 'rgba(0,0,0,0.4)' // sets opacity of background to be visible on all backdrops in video stream.
|
5145
|
-
},
|
5146
|
-
icon: {
|
5147
|
-
paddingLeft: _pxToRem(3),
|
5148
|
-
paddingRight: _pxToRem(3),
|
5149
|
-
margin: 0
|
5150
|
-
},
|
5151
|
-
flexContainer: {
|
5152
|
-
paddingBottom: _pxToRem(8)
|
5153
|
-
}
|
5154
|
-
};
|
5155
|
-
};
|
5156
|
-
/**
|
5157
|
-
* Styles for the local video tile modal when it is focused, will cause keyboard move icon to appear over video
|
5158
|
-
* @private
|
5159
|
-
*/
|
5160
|
-
const localVideoModalStyles = {
|
5161
|
-
keyboardMoveIconContainer: {
|
5162
|
-
zIndex: LOCAL_VIDEO_TILE_ZINDEX + 1 // zIndex to set the keyboard movement Icon above the other layers in the video tile.
|
5163
|
-
}
|
4978
|
+
const bracketedParticipantString = (participantString, withBrackets) => {
|
4979
|
+
return withBrackets ? `(${participantString})` : participantString;
|
5164
4980
|
};
|
5165
4981
|
|
5166
4982
|
// Copyright (c) Microsoft Corporation.
|
@@ -5174,9 +4990,6 @@ const localVideoModalStyles = {
|
|
5174
4990
|
const _RemoteVideoTile = React__default['default'].memo((props) => {
|
5175
4991
|
const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
|
5176
4992
|
isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator } = props;
|
5177
|
-
const containerRef = React__default['default'].useRef(null);
|
5178
|
-
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
5179
|
-
const containerWidth = _useContainerWidth(containerRef);
|
5180
4993
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
5181
4994
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
5182
4995
|
isScreenSharingOn,
|
@@ -5209,45 +5022,11 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
5209
5022
|
}
|
5210
5023
|
return (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' }));
|
5211
5024
|
}, [renderElement, isReceiving]);
|
5212
|
-
|
5213
|
-
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
5214
|
-
return canShowLabel(props.participantState, props.showLabel, containerWidth);
|
5215
|
-
}, [
|
5025
|
+
return (React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, showLabel: props.showLabel,
|
5216
5026
|
/* @conditional-compile-remove(one-to-n-calling) */
|
5217
5027
|
/* @conditional-compile-remove(PSTN-calls) */
|
5218
|
-
|
5219
|
-
props
|
5220
|
-
]);
|
5221
|
-
return (
|
5222
|
-
// IMPORTANT: This div needs to be a flex so that the children take up its full width and height
|
5223
|
-
React__default['default'].createElement("div", { ref: containerRef, style: { display: 'flex', flexGrow: 1 } },
|
5224
|
-
React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, showLabel: showLabelTrampoline,
|
5225
|
-
/* @conditional-compile-remove(one-to-n-calling) */
|
5226
|
-
/* @conditional-compile-remove(PSTN-calls) */
|
5227
|
-
participantState: props.participantState })));
|
5028
|
+
participantState: props.participantState }));
|
5228
5029
|
});
|
5229
|
-
/* @conditional-compile-remove(one-to-n-calling) */
|
5230
|
-
/* @conditional-compile-remove(PSTN-calls) */
|
5231
|
-
/**
|
5232
|
-
* Determines if a label should be shown for a remote video tile.
|
5233
|
-
* When the remote video tile is rendered as a small tile in horizontal gallery,
|
5234
|
-
* we hide the participants name if they are in hold/connecting states.
|
5235
|
-
*/
|
5236
|
-
const canShowLabel = (participantState, showLabel, containerWidth) => {
|
5237
|
-
// if showLabel has been explicitly set to false, don't show the label
|
5238
|
-
if (showLabel === false) {
|
5239
|
-
return showLabel;
|
5240
|
-
}
|
5241
|
-
// If the participant state is in calling or hold and
|
5242
|
-
// the container width is less than the small horizontal gallery tile size,
|
5243
|
-
// don't show the label (participant name)
|
5244
|
-
if (_isParticipantStateCallingOrHold(participantState)) {
|
5245
|
-
if (containerWidth && containerWidth / 16 <= SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.width) {
|
5246
|
-
return false;
|
5247
|
-
}
|
5248
|
-
}
|
5249
|
-
return showLabel;
|
5250
|
-
};
|
5251
5030
|
|
5252
5031
|
// Copyright (c) Microsoft Corporation.
|
5253
5032
|
// Licensed under the MIT license.
|
@@ -5397,6 +5176,185 @@ const calculateChildrenPerPage = (args) => {
|
|
5397
5176
|
return Math.floor((childrenSpace + gapWidth) / (childWidth + gapWidth));
|
5398
5177
|
};
|
5399
5178
|
|
5179
|
+
// Copyright (c) Microsoft Corporation.
|
5180
|
+
/**
|
5181
|
+
* @private
|
5182
|
+
*/
|
5183
|
+
const videoGalleryOuterDivStyle = react.mergeStyles({ position: 'relative', width: '100%', height: '100%' });
|
5184
|
+
/**
|
5185
|
+
* @private
|
5186
|
+
*/
|
5187
|
+
const videoGalleryContainerStyle = {
|
5188
|
+
root: { position: 'relative', height: '100%', width: '100%', padding: '0.5rem' }
|
5189
|
+
};
|
5190
|
+
/**
|
5191
|
+
* Small floating modal width and height in rem for small screen
|
5192
|
+
*/
|
5193
|
+
const SMALL_FLOATING_MODAL_SIZE_PX = { width: 64, height: 88 };
|
5194
|
+
/**
|
5195
|
+
* Large floating modal width and height in rem for large screen
|
5196
|
+
*/
|
5197
|
+
const LARGE_FLOATING_MODAL_SIZE_PX = { width: 160, height: 120 };
|
5198
|
+
/**
|
5199
|
+
* @private
|
5200
|
+
* z-index to ensure that the local video tile is above the video gallery.
|
5201
|
+
*/
|
5202
|
+
const LOCAL_VIDEO_TILE_ZINDEX = 2;
|
5203
|
+
/**
|
5204
|
+
* @private
|
5205
|
+
*/
|
5206
|
+
const floatingLocalVideoModalStyle = (theme, isNarrow) => {
|
5207
|
+
return react.concatStyleSets({
|
5208
|
+
main: localVideoTileContainerStyle(theme, isNarrow)
|
5209
|
+
}, {
|
5210
|
+
main: {
|
5211
|
+
boxShadow: theme.effects.elevation8,
|
5212
|
+
':focus-within': {
|
5213
|
+
boxShadow: theme.effects.elevation16,
|
5214
|
+
border: `${_pxToRem(2)} solid ${theme.palette.neutralPrimary}`
|
5215
|
+
}
|
5216
|
+
}
|
5217
|
+
}, localVideoModalStyles);
|
5218
|
+
};
|
5219
|
+
/**
|
5220
|
+
* Padding equal to the amount the modal should stay inside the bounds of the container.
|
5221
|
+
* i.e. if this is 8px, the modal should always be at least 8px inside the container at all times on all sides.
|
5222
|
+
* @private
|
5223
|
+
*/
|
5224
|
+
const localVideoTileOuterPaddingPX = 8;
|
5225
|
+
/**
|
5226
|
+
* @private
|
5227
|
+
*/
|
5228
|
+
const localVideoTileContainerStyle = (theme, isNarrow) => {
|
5229
|
+
return Object.assign({ minWidth: isNarrow ? _pxToRem(SMALL_FLOATING_MODAL_SIZE_PX.width) : _pxToRem(LARGE_FLOATING_MODAL_SIZE_PX.width), minHeight: isNarrow ? _pxToRem(SMALL_FLOATING_MODAL_SIZE_PX.height) : _pxToRem(LARGE_FLOATING_MODAL_SIZE_PX.height), position: 'absolute', bottom: _pxToRem(localVideoTileOuterPaddingPX), borderRadius: theme.effects.roundedCorner4, overflow: 'hidden' }, (theme.rtl
|
5230
|
+
? { left: _pxToRem(localVideoTileOuterPaddingPX) }
|
5231
|
+
: { right: _pxToRem(localVideoTileOuterPaddingPX) }));
|
5232
|
+
};
|
5233
|
+
/**
|
5234
|
+
* @private
|
5235
|
+
*/
|
5236
|
+
const localVideoTileWithControlsContainerStyle = (theme, isNarrow) => {
|
5237
|
+
return react.concatStyleSets(localVideoTileContainerStyle(theme, isNarrow), {
|
5238
|
+
root: { boxShadow: theme.effects.elevation8 }
|
5239
|
+
});
|
5240
|
+
};
|
5241
|
+
/**
|
5242
|
+
* @private
|
5243
|
+
*/
|
5244
|
+
const floatingLocalVideoTileStyle = {
|
5245
|
+
root: {
|
5246
|
+
position: 'absolute',
|
5247
|
+
zIndex: LOCAL_VIDEO_TILE_ZINDEX,
|
5248
|
+
height: '100%',
|
5249
|
+
width: '100%'
|
5250
|
+
}
|
5251
|
+
};
|
5252
|
+
/**
|
5253
|
+
* @private
|
5254
|
+
*/
|
5255
|
+
const horizontalGalleryContainerStyle = (shouldFloatLocalVideo, isNarrow) => {
|
5256
|
+
return {
|
5257
|
+
minHeight: isNarrow
|
5258
|
+
? `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`
|
5259
|
+
: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5260
|
+
width: shouldFloatLocalVideo
|
5261
|
+
? isNarrow
|
5262
|
+
? `calc(100% - ${_pxToRem(SMALL_FLOATING_MODAL_SIZE_PX.width)})`
|
5263
|
+
: `calc(100% - ${_pxToRem(LARGE_FLOATING_MODAL_SIZE_PX.width)})`
|
5264
|
+
: '100%',
|
5265
|
+
paddingRight: '0.5rem'
|
5266
|
+
};
|
5267
|
+
};
|
5268
|
+
/**
|
5269
|
+
* @private
|
5270
|
+
*/
|
5271
|
+
const horizontalGalleryStyle = (isNarrow) => {
|
5272
|
+
return {
|
5273
|
+
children: isNarrow ? SMALL_HORIZONTAL_GALLERY_TILE_STYLE : LARGE_HORIZONTAL_GALLERY_TILE_STYLE
|
5274
|
+
};
|
5275
|
+
};
|
5276
|
+
/**
|
5277
|
+
* Small horizontal gallery tile size in rem
|
5278
|
+
* @private
|
5279
|
+
*/
|
5280
|
+
const SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM = { height: 5.5, width: 5.5 };
|
5281
|
+
/**
|
5282
|
+
* Large horizontal gallery tile size in rem
|
5283
|
+
* @private
|
5284
|
+
*/
|
5285
|
+
const LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM = { height: 7.5, width: 10 };
|
5286
|
+
/**
|
5287
|
+
* @private
|
5288
|
+
*/
|
5289
|
+
const SMALL_HORIZONTAL_GALLERY_TILE_STYLE = {
|
5290
|
+
minHeight: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5291
|
+
minWidth: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`,
|
5292
|
+
maxHeight: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5293
|
+
maxWidth: `${SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`
|
5294
|
+
};
|
5295
|
+
/**
|
5296
|
+
* @private
|
5297
|
+
*/
|
5298
|
+
const LARGE_HORIZONTAL_GALLERY_TILE_STYLE = {
|
5299
|
+
minHeight: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5300
|
+
minWidth: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`,
|
5301
|
+
maxHeight: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.height}rem`,
|
5302
|
+
maxWidth: `${LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.width}rem`
|
5303
|
+
};
|
5304
|
+
/**
|
5305
|
+
* @private
|
5306
|
+
*/
|
5307
|
+
const layerHostStyle = {
|
5308
|
+
position: 'absolute',
|
5309
|
+
left: 0,
|
5310
|
+
top: 0,
|
5311
|
+
width: '100%',
|
5312
|
+
height: '100%',
|
5313
|
+
overflow: 'hidden',
|
5314
|
+
// pointer events for layerHost set to none to make descendants interactive
|
5315
|
+
pointerEvents: 'none'
|
5316
|
+
};
|
5317
|
+
/**
|
5318
|
+
* @private
|
5319
|
+
*/
|
5320
|
+
const localVideoCameraCycleButtonStyles = (theme) => {
|
5321
|
+
return {
|
5322
|
+
root: {
|
5323
|
+
position: 'absolute',
|
5324
|
+
width: _pxToRem(32),
|
5325
|
+
height: _pxToRem(32),
|
5326
|
+
right: '0rem',
|
5327
|
+
top: '0rem',
|
5328
|
+
color: '#FFFFFF',
|
5329
|
+
zIndex: 2,
|
5330
|
+
background: 'rgba(0,0,0,0.4)',
|
5331
|
+
borderRadius: theme.effects.roundedCorner2
|
5332
|
+
},
|
5333
|
+
rootFocused: {
|
5334
|
+
// styles to remove the unwanted white highlight and blue colour after tapping on button.
|
5335
|
+
color: '#FFFFFF',
|
5336
|
+
background: 'rgba(0,0,0,0.4)' // sets opacity of background to be visible on all backdrops in video stream.
|
5337
|
+
},
|
5338
|
+
icon: {
|
5339
|
+
paddingLeft: _pxToRem(3),
|
5340
|
+
paddingRight: _pxToRem(3),
|
5341
|
+
margin: 0
|
5342
|
+
},
|
5343
|
+
flexContainer: {
|
5344
|
+
paddingBottom: _pxToRem(8)
|
5345
|
+
}
|
5346
|
+
};
|
5347
|
+
};
|
5348
|
+
/**
|
5349
|
+
* Styles for the local video tile modal when it is focused, will cause keyboard move icon to appear over video
|
5350
|
+
* @private
|
5351
|
+
*/
|
5352
|
+
const localVideoModalStyles = {
|
5353
|
+
keyboardMoveIconContainer: {
|
5354
|
+
zIndex: LOCAL_VIDEO_TILE_ZINDEX + 1 // zIndex to set the keyboard movement Icon above the other layers in the video tile.
|
5355
|
+
}
|
5356
|
+
};
|
5357
|
+
|
5400
5358
|
// Copyright (c) Microsoft Corporation.
|
5401
5359
|
/**
|
5402
5360
|
* @private
|
@@ -7299,7 +7257,7 @@ const DrawerMenuItem = (props) => {
|
|
7299
7257
|
const onClick = (ev) => props.onItemClick && props.onItemClick(ev, props.itemKey);
|
7300
7258
|
const onKeyPress = (ev) => onClick && submitWithKeyboard(ev, onClick);
|
7301
7259
|
const secondaryIcon = props.secondaryIconProps ? (React__default['default'].createElement(MenuItemIcon, Object.assign({}, props.secondaryIconProps))) : props.subMenuProps ? (React__default['default'].createElement(MenuItemIcon, { iconName: "ChevronRight" })) : undefined;
|
7302
|
-
return (React__default['default'].createElement(react.Stack, { tabIndex: 0, role: "menuitem", horizontal: true, className: react.mergeStyles(drawerMenuItemRootStyles(theme.palette.neutralLight, theme.fonts.small), props.disabled ? disabledDrawerMenuItemRootStyles(theme.palette.neutralQuaternaryAlt) : undefined, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), onKeyPress: onKeyPress, onClick: onClick, tokens: menuItemChildrenGap },
|
7260
|
+
return (React__default['default'].createElement(react.Stack, { tabIndex: 0, role: "menuitem", horizontal: true, className: react.mergeStyles(drawerMenuItemRootStyles(theme.palette.neutralLight, theme.fonts.small), props.disabled ? disabledDrawerMenuItemRootStyles(theme.palette.neutralQuaternaryAlt) : undefined, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), onKeyPress: props.disabled ? undefined : onKeyPress, onClick: props.disabled ? undefined : onClick, tokens: menuItemChildrenGap },
|
7303
7261
|
props.iconProps && (React__default['default'].createElement(react.Stack.Item, { role: "presentation", styles: props.disabled ? { root: { color: theme.palette.neutralTertiaryAlt } } : undefined },
|
7304
7262
|
React__default['default'].createElement(MenuItemIcon, Object.assign({}, props.iconProps)))),
|
7305
7263
|
React__default['default'].createElement(react.Stack.Item, { styles: drawerMenuItemTextStyles, grow: true },
|
@@ -7774,6 +7732,9 @@ const iconButtonStyles = (theme) => {
|
|
7774
7732
|
return {
|
7775
7733
|
root: {
|
7776
7734
|
color: `${theme.palette.black}`
|
7735
|
+
},
|
7736
|
+
icon: {
|
7737
|
+
height: 'auto'
|
7777
7738
|
}
|
7778
7739
|
};
|
7779
7740
|
};
|
@@ -8796,6 +8757,10 @@ const MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS = 8000;
|
|
8796
8757
|
* @private
|
8797
8758
|
*/
|
8798
8759
|
const PARTICIPANTS_THRESHOLD = 20;
|
8760
|
+
/**
|
8761
|
+
* @private
|
8762
|
+
*/
|
8763
|
+
const MINUTE_IN_MS = 1000 * 60;
|
8799
8764
|
/**
|
8800
8765
|
* @private
|
8801
8766
|
*
|
@@ -8839,6 +8804,7 @@ const compareMessages = (firstMessage, secondMessage) => {
|
|
8839
8804
|
const updateMessagesWithAttached = (chatMessagesWithStatus) => {
|
8840
8805
|
chatMessagesWithStatus.sort(compareMessages);
|
8841
8806
|
chatMessagesWithStatus.forEach((message, index, messages) => {
|
8807
|
+
var _a, _b;
|
8842
8808
|
if (message.messageType !== 'chat') {
|
8843
8809
|
return;
|
8844
8810
|
}
|
@@ -8853,9 +8819,15 @@ const updateMessagesWithAttached = (chatMessagesWithStatus) => {
|
|
8853
8819
|
const nextMessage = index === messages.length - 1 ? undefined : messages[index + 1];
|
8854
8820
|
const previousSenderId = (previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.messageType) === 'chat' ? previousMessage.senderId : undefined;
|
8855
8821
|
const nextSenderId = (nextMessage === null || nextMessage === void 0 ? void 0 : nextMessage.messageType) === 'chat' ? nextMessage.senderId : undefined;
|
8822
|
+
const timediff = new Date((_a = message === null || message === void 0 ? void 0 : message.createdOn) !== null && _a !== void 0 ? _a : '').getTime() - new Date((_b = previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.createdOn) !== null && _b !== void 0 ? _b : '').getTime();
|
8823
|
+
const diffMins = Math.round(timediff / MINUTE_IN_MS); // minutes
|
8856
8824
|
if (previousSenderId !== message.senderId) {
|
8857
8825
|
attached = message.senderId === nextSenderId ? 'top' : false;
|
8858
8826
|
}
|
8827
|
+
else if (diffMins && diffMins >= 5) {
|
8828
|
+
// if there are more than or equal to 5 mins time gap between messages do not attach and show time stamp
|
8829
|
+
attached = false;
|
8830
|
+
}
|
8859
8831
|
else {
|
8860
8832
|
attached = message.senderId === nextSenderId ? true : 'bottom';
|
8861
8833
|
}
|
@@ -12791,7 +12763,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
12791
12763
|
*/
|
12792
12764
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
12793
12765
|
|
12794
|
-
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close
|
12766
|
+
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
12795
12767
|
|
12796
12768
|
var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButton:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
|
12797
12769
|
|
@@ -14454,7 +14426,8 @@ const END_CALL_PAGES = [
|
|
14454
14426
|
|
14455
14427
|
// Copyright (c) Microsoft Corporation.
|
14456
14428
|
const ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;
|
14457
|
-
const
|
14429
|
+
const REMOTE_PSTN_USER_HUNG_UP = 560000;
|
14430
|
+
const REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];
|
14458
14431
|
/**
|
14459
14432
|
* @private
|
14460
14433
|
*/
|
@@ -14499,11 +14472,24 @@ var CallEndReasons;
|
|
14499
14472
|
CallEndReasons[CallEndReasons["REMOVED_FROM_CALL"] = 2] = "REMOVED_FROM_CALL";
|
14500
14473
|
})(CallEndReasons || (CallEndReasons = {}));
|
14501
14474
|
const getCallEndReason = (call) => {
|
14502
|
-
var _a, _b;
|
14503
|
-
|
14475
|
+
var _a, _b, _c;
|
14476
|
+
const remoteParticipantsEndedArray = Array.from(Object.values(call.remoteParticipantsEnded));
|
14477
|
+
/**
|
14478
|
+
* Handle the special case in a PSTN call where removing the last user kicks the caller out of the call.
|
14479
|
+
* The code and subcode is the same as when a user is removed from a teams interop call.
|
14480
|
+
* Hence, we look at the last remote participant removed to determine if the last participant removed was a phone number.
|
14481
|
+
* If yes, the caller was kicked out of the call, but we need to show them that they left the call.
|
14482
|
+
* Note: This check will only work for 1:1 PSTN Calls. The subcode is different for 1:N PSTN calls, and we do not need to handle that case.
|
14483
|
+
*/
|
14484
|
+
if (remoteParticipantsEndedArray.length === 1 &&
|
14485
|
+
communicationCommon.isPhoneNumberIdentifier(remoteParticipantsEndedArray[0].identifier) &&
|
14486
|
+
((_a = call.callEndReason) === null || _a === void 0 ? void 0 : _a.subCode) !== REMOTE_PSTN_USER_HUNG_UP) {
|
14487
|
+
return CallEndReasons.LEFT_CALL;
|
14488
|
+
}
|
14489
|
+
if (((_b = call.callEndReason) === null || _b === void 0 ? void 0 : _b.subCode) && call.callEndReason.subCode === ACCESS_DENIED_TEAMS_MEETING_SUB_CODE) {
|
14504
14490
|
return CallEndReasons.ACCESS_DENIED;
|
14505
14491
|
}
|
14506
|
-
if (((
|
14492
|
+
if (((_c = call.callEndReason) === null || _c === void 0 ? void 0 : _c.subCode) && REMOVED_FROM_CALL_SUB_CODES.includes(call.callEndReason.subCode)) {
|
14507
14493
|
return CallEndReasons.REMOVED_FROM_CALL;
|
14508
14494
|
}
|
14509
14495
|
if (call.callEndReason) {
|
@@ -14610,6 +14596,19 @@ const disableCallControls = (callControlOptions, disabledControls) => {
|
|
14610
14596
|
}
|
14611
14597
|
return newOptions;
|
14612
14598
|
};
|
14599
|
+
/**
|
14600
|
+
* Check if a disabled object is provided for a button and returns if the button is disabled.
|
14601
|
+
*
|
14602
|
+
* @param option
|
14603
|
+
* @returns whether a button is disabled
|
14604
|
+
* @private
|
14605
|
+
*/
|
14606
|
+
const isDisabled$2 = (option) => {
|
14607
|
+
if (typeof option !== 'boolean') {
|
14608
|
+
return !!(option === null || option === void 0 ? void 0 : option.disabled);
|
14609
|
+
}
|
14610
|
+
return option;
|
14611
|
+
};
|
14613
14612
|
|
14614
14613
|
// Copyright (c) Microsoft Corporation.
|
14615
14614
|
// Licensed under the MIT license.
|
@@ -14978,9 +14977,9 @@ const Participants = (props) => {
|
|
14978
14977
|
var _a;
|
14979
14978
|
return concatButtonBaseStyles(props.increaseFlyoutItemSize ? participantButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
|
14980
14979
|
}, [props.increaseFlyoutItemSize, props.styles]);
|
14981
|
-
return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$
|
14980
|
+
return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$1(props.option) || props.disabled, styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile })));
|
14982
14981
|
};
|
14983
|
-
const isDisabled$
|
14982
|
+
const isDisabled$1 = (option) => {
|
14984
14983
|
if (option === undefined || option === true || option === false) {
|
14985
14984
|
return false;
|
14986
14985
|
}
|
@@ -14994,11 +14993,11 @@ const ScreenShare = (props) => {
|
|
14994
14993
|
const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
|
14995
14994
|
const screenShareButtonDisabled = () => {
|
14996
14995
|
/* @conditional-compile-remove(PSTN-calls) */
|
14997
|
-
return (screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) ? screenShareButtonProps.disabled : isDisabled
|
14996
|
+
return (screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) ? screenShareButtonProps.disabled : isDisabled(props.option);
|
14998
14997
|
};
|
14999
14998
|
return (React__default['default'].createElement(ScreenShareButton, Object.assign({ "data-ui-id": "call-composite-screenshare-button" }, screenShareButtonProps, { showLabel: props.displayType !== 'compact', disabled: screenShareButtonDisabled() || props.disabled, styles: styles })));
|
15000
14999
|
};
|
15001
|
-
const isDisabled
|
15000
|
+
const isDisabled = (option) => {
|
15002
15001
|
if (option === undefined || option === true || option === false) {
|
15003
15002
|
return false;
|
15004
15003
|
}
|
@@ -15179,7 +15178,7 @@ const CallControls = (props) => {
|
|
15179
15178
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15180
15179
|
const moreButtonContextualMenuItems = () => {
|
15181
15180
|
const items = [];
|
15182
|
-
if (props.isMobile && props.onPeopleButtonClicked) {
|
15181
|
+
if (props.isMobile && props.onPeopleButtonClicked && isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton)) {
|
15183
15182
|
items.push({
|
15184
15183
|
key: 'peopleButtonKey',
|
15185
15184
|
text: localeStrings.component.strings.participantsButton.label,
|
@@ -15192,6 +15191,7 @@ const CallControls = (props) => {
|
|
15192
15191
|
itemProps: {
|
15193
15192
|
styles: buttonFlyoutIncreasedSizeStyles
|
15194
15193
|
},
|
15194
|
+
disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.participantsButton),
|
15195
15195
|
['data-ui-id']: 'call-composite-more-menu-people-button'
|
15196
15196
|
});
|
15197
15197
|
}
|
@@ -15205,7 +15205,7 @@ const CallControls = (props) => {
|
|
15205
15205
|
itemProps: {
|
15206
15206
|
styles: buttonFlyoutIncreasedSizeStyles
|
15207
15207
|
},
|
15208
|
-
disabled: isDisabled(options === null || options === void 0 ? void 0 : options.holdButton),
|
15208
|
+
disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.holdButton),
|
15209
15209
|
['data-ui-id']: 'hold-button'
|
15210
15210
|
});
|
15211
15211
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -15243,27 +15243,21 @@ const CallControls = (props) => {
|
|
15243
15243
|
React__default['default'].createElement(SendDtmfDialpad, { isMobile: !!props.isMobile, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
|
15244
15244
|
React__default['default'].createElement(react.Stack.Item, null,
|
15245
15245
|
React__default['default'].createElement(ControlBar, { layout: "horizontal", styles: controlBarStyles(theme.semanticColors.bodyBackground) },
|
15246
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.microphoneButton) })),
|
15247
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.cameraButton) })),
|
15248
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
|
15246
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) })),
|
15247
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) })),
|
15248
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
|
15249
15249
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) &&
|
15250
15250
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15251
|
-
!props.isMobile && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
|
15251
|
+
!props.isMobile && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
|
15252
15252
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15253
|
-
React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })),
|
15254
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.devicesButton) })),
|
15253
|
+
React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) })),
|
15254
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) })),
|
15255
15255
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15256
15256
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
|
15257
15257
|
customButtons['primary'],
|
15258
15258
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
|
15259
15259
|
};
|
15260
15260
|
const isEnabled$2 = (option) => option !== false;
|
15261
|
-
const isDisabled = (option) => {
|
15262
|
-
if (typeof option !== 'boolean') {
|
15263
|
-
return !!(option === null || option === void 0 ? void 0 : option.disabled);
|
15264
|
-
}
|
15265
|
-
return option;
|
15266
|
-
};
|
15267
15261
|
|
15268
15262
|
// Copyright (c) Microsoft Corporation.
|
15269
15263
|
/**
|
@@ -15854,6 +15848,7 @@ const AddPeopleDropdown = (props) => {
|
|
15854
15848
|
const theme = react.useTheme();
|
15855
15849
|
const { inviteLink, strings, mobileView, onAddParticipant, alternateCallerId } = props;
|
15856
15850
|
const [showDialpad, setShowDialpad] = React.useState(false);
|
15851
|
+
const [announcerStrings, setAnnouncerStrings] = React.useState();
|
15857
15852
|
const menuStyleThemed = React.useMemo(() => themedMenuStyle(theme), [theme]);
|
15858
15853
|
const copyLinkButtonStylesThemed = React.useMemo(() => themedCopyLinkButtonStyles(theme, mobileView), [mobileView, theme]);
|
15859
15854
|
const defaultMenuProps = React.useMemo(() => {
|
@@ -15863,6 +15858,10 @@ const AddPeopleDropdown = (props) => {
|
|
15863
15858
|
useTargetWidth: true,
|
15864
15859
|
calloutProps: {
|
15865
15860
|
preventDismissOnEvent: _preventDismissOnEvent
|
15861
|
+
},
|
15862
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
15863
|
+
onMenuOpened(contextualMenu) {
|
15864
|
+
setAnnouncerStrings(undefined);
|
15866
15865
|
}
|
15867
15866
|
};
|
15868
15867
|
if (inviteLink) {
|
@@ -15871,7 +15870,10 @@ const AddPeopleDropdown = (props) => {
|
|
15871
15870
|
text: strings.copyInviteLinkButtonLabel,
|
15872
15871
|
itemProps: { styles: copyLinkButtonStylesThemed },
|
15873
15872
|
iconProps: { iconName: 'Link', style: iconStyles },
|
15874
|
-
onClick: () =>
|
15873
|
+
onClick: () => {
|
15874
|
+
setAnnouncerStrings(strings.copyInviteLinkActionedAriaLabel);
|
15875
|
+
copy__default['default'](inviteLink);
|
15876
|
+
}
|
15875
15877
|
});
|
15876
15878
|
}
|
15877
15879
|
// only show the dialpad option when alternateCallerId is set
|
@@ -15887,12 +15889,13 @@ const AddPeopleDropdown = (props) => {
|
|
15887
15889
|
}
|
15888
15890
|
return menuProps;
|
15889
15891
|
}, [
|
15892
|
+
menuStyleThemed,
|
15893
|
+
inviteLink,
|
15894
|
+
alternateCallerId,
|
15890
15895
|
strings.copyInviteLinkButtonLabel,
|
15896
|
+
strings.copyInviteLinkActionedAriaLabel,
|
15891
15897
|
strings.openDialpadButtonLabel,
|
15892
|
-
copyLinkButtonStylesThemed
|
15893
|
-
inviteLink,
|
15894
|
-
menuStyleThemed,
|
15895
|
-
alternateCallerId
|
15898
|
+
copyLinkButtonStylesThemed
|
15896
15899
|
]);
|
15897
15900
|
const onDismissDialpad = () => {
|
15898
15901
|
setShowDialpad(false);
|
@@ -15906,6 +15909,7 @@ const AddPeopleDropdown = (props) => {
|
|
15906
15909
|
}, [defaultMenuProps, setAddPeopleDrawerMenuItems]);
|
15907
15910
|
if (mobileView) {
|
15908
15911
|
return (React__default['default'].createElement(react.Stack, null,
|
15912
|
+
React__default['default'].createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
|
15909
15913
|
React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
|
15910
15914
|
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" })),
|
15911
15915
|
addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-add-people-dropdown" },
|
@@ -15913,6 +15917,7 @@ const AddPeopleDropdown = (props) => {
|
|
15913
15917
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }))));
|
15914
15918
|
}
|
15915
15919
|
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Stack, null,
|
15920
|
+
React__default['default'].createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
|
15916
15921
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId })),
|
15917
15922
|
React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
15918
15923
|
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" })))));
|
@@ -16151,8 +16156,8 @@ const TabHeader = (props) => {
|
|
16151
16156
|
}, [theme, haveMultipleTabs]);
|
16152
16157
|
return (React__default['default'].createElement(react.Stack, { horizontal: true, grow: true, styles: mobilePaneControlBarStyle },
|
16153
16158
|
React__default['default'].createElement(react.DefaultButton, { ariaLabel: strings.returnToCallButtonAriaLabel, ariaDescription: strings.returnToCallButtonAriaDescription, onClick: onClose, styles: mobilePaneBackButtonStyles, onRenderIcon: () => React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: "ChevronLeft" }), autoFocus: true }),
|
16154
|
-
React__default['default'].createElement(react.Stack.Item, { grow: true }, onChatButtonClicked && (React__default['default'].createElement(react.DefaultButton, { onClick: onChatButtonClicked, styles: mobilePaneButtonStylesThemed, checked: activeTab === 'chat', role: 'tab' }, strings.chatButtonLabel))),
|
16155
|
-
React__default['default'].createElement(react.Stack.Item, { grow: true }, onPeopleButtonClicked && (React__default['default'].createElement(react.DefaultButton, { onClick: onPeopleButtonClicked, styles: mobilePaneButtonStylesThemed, checked: activeTab === 'people', role: 'tab' }, strings.peopleButtonLabel))),
|
16159
|
+
React__default['default'].createElement(react.Stack.Item, { grow: true }, onChatButtonClicked && (React__default['default'].createElement(react.DefaultButton, { onClick: onChatButtonClicked, styles: mobilePaneButtonStylesThemed, checked: activeTab === 'chat', role: 'tab', disabled: props.disableChatButton }, strings.chatButtonLabel))),
|
16160
|
+
React__default['default'].createElement(react.Stack.Item, { grow: true }, onPeopleButtonClicked && (React__default['default'].createElement(react.DefaultButton, { onClick: onPeopleButtonClicked, styles: mobilePaneButtonStylesThemed, checked: activeTab === 'people', role: 'tab', disabled: props.disablePeopleButton }, strings.peopleButtonLabel))),
|
16156
16161
|
React__default['default'].createElement(react.DefaultButton, { styles: mobilePaneHiddenIconStyles, onRenderIcon: () => React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: "ChevronLeft" }) })));
|
16157
16162
|
};
|
16158
16163
|
|
@@ -16199,6 +16204,7 @@ var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
16199
16204
|
*/
|
16200
16205
|
/** @beta */
|
16201
16206
|
const CallPane = (props) => {
|
16207
|
+
var _a;
|
16202
16208
|
const [drawerMenuItems, setDrawerMenuItems] = React.useState([]);
|
16203
16209
|
const hidden = props.activePane === 'none';
|
16204
16210
|
const paneStyles = hidden ? hiddenStyles : props.mobileView ? availableSpaceStyles : sidePaneStyles;
|
@@ -16210,7 +16216,7 @@ const CallPane = (props) => {
|
|
16210
16216
|
};
|
16211
16217
|
const strings = getStrings();
|
16212
16218
|
const theme = useTheme();
|
16213
|
-
const header = props.activePane === 'none' ? null : props.mobileView ? (React__default['default'].createElement(TabHeader, Object.assign({}, props, { strings: strings, activeTab: props.activePane }))) : (React__default['default'].createElement(SidePaneHeader, Object.assign({}, props, { strings: strings, headingText: props.activePane === 'people' ? strings.peoplePaneTitle : '' })));
|
16219
|
+
const header = props.activePane === 'none' ? null : props.mobileView ? (React__default['default'].createElement(TabHeader, Object.assign({}, props, { strings: strings, activeTab: props.activePane, disablePeopleButton: isDisabled$2((_a = props.callControls) === null || _a === void 0 ? void 0 : _a.participantsButton) }))) : (React__default['default'].createElement(SidePaneHeader, Object.assign({}, props, { strings: strings, headingText: props.activePane === 'people' ? strings.peoplePaneTitle : '' })));
|
16214
16220
|
/**
|
16215
16221
|
* In a Call Composite when a participant is removed, we must remove them from the call.
|
16216
16222
|
*/
|
@@ -16336,7 +16342,7 @@ const CallArrangement = (props) => {
|
|
16336
16342
|
const callPaneContent = React.useCallback(() => {
|
16337
16343
|
var _a;
|
16338
16344
|
if (adapter && _isInCall(callStatus) && activePane === 'people') {
|
16339
|
-
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 }));
|
16345
|
+
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, callControls: typeof props.callControlProps.options !== 'boolean' ? props.callControlProps.options : undefined, modalLayerHostId: props.modalLayerHostId, activePane: activePane, mobileView: props.mobileView, inviteLink: props.callControlProps.callInvitationURL }));
|
16340
16346
|
}
|
16341
16347
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
16342
16348
|
}, [
|
@@ -17280,11 +17286,12 @@ const resumeButtonStyles = {
|
|
17280
17286
|
*/
|
17281
17287
|
const holdPaneLabelStyles = {
|
17282
17288
|
root: {
|
17283
|
-
color: '
|
17289
|
+
color: 'inherit',
|
17284
17290
|
fontWeight: 600,
|
17285
17291
|
fontHeight: _pxToRem(22),
|
17286
17292
|
fontSize: _pxToRem(16),
|
17287
|
-
|
17293
|
+
marginTop: '0.5rem',
|
17294
|
+
marginBottom: '1.5rem'
|
17288
17295
|
}
|
17289
17296
|
};
|
17290
17297
|
/**
|
@@ -17294,7 +17301,7 @@ const holdPaneLabelStyles = {
|
|
17294
17301
|
*/
|
17295
17302
|
const holdPaneTimerStyles = {
|
17296
17303
|
root: {
|
17297
|
-
color: '
|
17304
|
+
color: 'inherit',
|
17298
17305
|
fontWeight: 600,
|
17299
17306
|
fontSize: _pxToRem(20),
|
17300
17307
|
lineHeight: _pxToRem(28),
|
@@ -17310,7 +17317,7 @@ const paneStyles = {
|
|
17310
17317
|
root: {
|
17311
17318
|
width: '100%',
|
17312
17319
|
height: '100%',
|
17313
|
-
background: '
|
17320
|
+
background: 'inherit'
|
17314
17321
|
}
|
17315
17322
|
};
|
17316
17323
|
/**
|
@@ -17323,7 +17330,9 @@ const holdPaneContentStyles = {
|
|
17323
17330
|
display: 'flex',
|
17324
17331
|
margin: 'auto',
|
17325
17332
|
flexDirection: 'column',
|
17326
|
-
justifyContent: 'center'
|
17333
|
+
justifyContent: 'center',
|
17334
|
+
alignContent: 'center',
|
17335
|
+
alignItems: 'center'
|
17327
17336
|
}
|
17328
17337
|
};
|
17329
17338
|
|
@@ -17360,14 +17369,11 @@ const HoldPane = () => {
|
|
17360
17369
|
clearInterval(interval);
|
17361
17370
|
};
|
17362
17371
|
}, [startTime]);
|
17363
|
-
const resumeSpinner = () => {
|
17364
|
-
return React__default['default'].createElement(react.Spinner, { label: strings.resumingCallButtonLabel, labelPosition: 'right' });
|
17365
|
-
};
|
17366
17372
|
return (React__default['default'].createElement(react.Stack, { styles: paneStyles },
|
17367
17373
|
React__default['default'].createElement(react.Stack, { horizontal: true, styles: holdPaneContentStyles },
|
17368
17374
|
React__default['default'].createElement(react.Text, { styles: holdPaneTimerStyles }, elapsedTime),
|
17369
17375
|
React__default['default'].createElement(react.Text, { styles: holdPaneLabelStyles }, strings.holdScreenLabel),
|
17370
|
-
React__default['default'].createElement(react.PrimaryButton, { text: !resumingCall ? strings.resumeCallButtonLabel :
|
17376
|
+
React__default['default'].createElement(react.PrimaryButton, { text: !resumingCall ? strings.resumeCallButtonLabel : strings.resumingCallButtonLabel, ariaLabel: !resumingCall ? strings.resumeCallButtonAriaLabel : strings.resumingCallButtonAriaLabel, styles: resumeButtonStyles, disabled: resumingCall, onClick: () => __awaiter$6(void 0, void 0, void 0, function* () {
|
17371
17377
|
setResumingCall(true);
|
17372
17378
|
try {
|
17373
17379
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
@@ -17377,7 +17383,7 @@ const HoldPane = () => {
|
|
17377
17383
|
setResumingCall(false);
|
17378
17384
|
throw e;
|
17379
17385
|
}
|
17380
|
-
}), "data-ui-id": "hold-page-resume-call-button" }
|
17386
|
+
}), "data-ui-id": "hold-page-resume-call-button" }))));
|
17381
17387
|
};
|
17382
17388
|
const getMinutes = (time) => {
|
17383
17389
|
return Math.floor(getSeconds(time) / 60);
|
@@ -18633,7 +18639,7 @@ const CallWithChatControlBar = (props) => {
|
|
18633
18639
|
if (options === false) {
|
18634
18640
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
18635
18641
|
}
|
18636
|
-
const chatButton = (React__default['default'].createElement(ChatButtonWithUnreadMessagesBadge, { chatAdapter: props.chatAdapter, checked: props.chatButtonChecked, showLabel: options.displayType !== 'compact', isChatPaneVisible: props.chatButtonChecked, onClick: props.onChatButtonClicked, disabled: props.disableButtonsForLobbyPage, strings: chatButtonStrings, styles: commonButtonStyles, newMessageLabel: callWithChatStrings.chatButtonNewMessageNotificationLabel }));
|
18642
|
+
const chatButton = (React__default['default'].createElement(ChatButtonWithUnreadMessagesBadge, { chatAdapter: props.chatAdapter, checked: props.chatButtonChecked, showLabel: options.displayType !== 'compact', isChatPaneVisible: props.chatButtonChecked, onClick: props.onChatButtonClicked, disabled: props.disableButtonsForLobbyPage || isDisabled$2(options.chatButton), strings: chatButtonStrings, styles: commonButtonStyles, newMessageLabel: callWithChatStrings.chatButtonNewMessageNotificationLabel }));
|
18637
18643
|
return (React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles) },
|
18638
18644
|
React__default['default'].createElement(react.Stack.Item, { grow: true },
|
18639
18645
|
React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
@@ -18642,14 +18648,14 @@ const CallWithChatControlBar = (props) => {
|
|
18642
18648
|
React__default['default'].createElement(ControlBar, { layout: "horizontal", styles: centerContainerStyles },
|
18643
18649
|
isEnabled$1(options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
|
18644
18650
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
18645
|
-
disabled: props.disableButtonsForHoldScreen })),
|
18651
|
+
disabled: props.disableButtonsForHoldScreen || isDisabled$2(options.microphoneButton) })),
|
18646
18652
|
isEnabled$1(options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
|
18647
18653
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
18648
|
-
disabled: props.disableButtonsForHoldScreen })),
|
18654
|
+
disabled: props.disableButtonsForHoldScreen || isDisabled$2(options.cameraButton) })),
|
18649
18655
|
props.mobileView && isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton,
|
18650
18656
|
isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles,
|
18651
18657
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
18652
|
-
disabled: props.disableButtonsForHoldScreen })),
|
18658
|
+
disabled: props.disableButtonsForHoldScreen || isDisabled$2(options.screenShareButton) })),
|
18653
18659
|
/* @conditional-compile-remove(control-bar-button-injection) */
|
18654
18660
|
(_a = customButtons['primary']) === null || _a === void 0 ? void 0 :
|
18655
18661
|
_a.props.children.slice(0, props.mobileView
|
@@ -18668,7 +18674,7 @@ const CallWithChatControlBar = (props) => {
|
|
18668
18674
|
_b.props.children.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
|
18669
18675
|
return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.key, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
|
18670
18676
|
}),
|
18671
|
-
isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React__default['default'].createElement(PeopleButton, { checked: props.peopleButtonChecked, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-with-chat-composite-people-button", disabled: props.disableButtonsForLobbyPage, strings: peopleButtonStrings, styles: commonButtonStyles })),
|
18677
|
+
isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React__default['default'].createElement(PeopleButton, { checked: props.peopleButtonChecked, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-with-chat-composite-people-button", disabled: props.disableButtonsForLobbyPage || isDisabled$2(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles })),
|
18672
18678
|
isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton))));
|
18673
18679
|
};
|
18674
18680
|
const desktopButtonContainerStyle = {
|
@@ -19057,7 +19063,8 @@ const MoreDrawer = (props) => {
|
|
19057
19063
|
},
|
19058
19064
|
text: mic.name,
|
19059
19065
|
onItemClick: onMicrophoneItemClick,
|
19060
|
-
secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined
|
19066
|
+
secondaryIconProps: isDeviceSelected(mic, props.selectedMicrophone) ? { iconName: 'Accept' } : undefined,
|
19067
|
+
disabled: drawerSelectionOptions !== false ? isDisabled$2(drawerSelectionOptions.microphoneButton) : undefined
|
19061
19068
|
})),
|
19062
19069
|
secondaryText: (_b = props.selectedMicrophone) === null || _b === void 0 ? void 0 : _b.name
|
19063
19070
|
});
|
@@ -19067,14 +19074,16 @@ const MoreDrawer = (props) => {
|
|
19067
19074
|
itemKey: 'people',
|
19068
19075
|
text: props.strings.peopleButtonLabel,
|
19069
19076
|
iconProps: { iconName: 'MoreDrawerPeople' },
|
19070
|
-
onItemClick: props.onPeopleButtonClicked
|
19077
|
+
onItemClick: props.onPeopleButtonClicked,
|
19078
|
+
disabled: drawerSelectionOptions !== false ? isDisabled$2(drawerSelectionOptions.peopleButton) : undefined
|
19071
19079
|
});
|
19072
19080
|
}
|
19073
19081
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
19074
|
-
if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.
|
19082
|
+
if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.holdButton)) {
|
19075
19083
|
drawerMenuItems.push({
|
19076
19084
|
itemKey: 'holdButtonKey',
|
19077
|
-
disabled: props.disableButtonsForHoldScreen
|
19085
|
+
disabled: props.disableButtonsForHoldScreen ||
|
19086
|
+
(drawerSelectionOptions !== false ? isDisabled$2(drawerSelectionOptions.holdButton) : undefined),
|
19078
19087
|
text: localeStrings.component.strings.holdButton.tooltipOffContent,
|
19079
19088
|
onItemClick: () => {
|
19080
19089
|
holdButtonProps.onToggleHold();
|
@@ -19084,7 +19093,7 @@ const MoreDrawer = (props) => {
|
|
19084
19093
|
}
|
19085
19094
|
/*@conditional-compile-remove(PSTN-calls) */
|
19086
19095
|
// dtmf tone sending only works for 1:1 PSTN call
|
19087
|
-
if (drawerSelectionOptions !== false &&
|
19096
|
+
if (drawerSelectionOptions !== false && props.onClickShowDialpad) {
|
19088
19097
|
drawerMenuItems.push({
|
19089
19098
|
itemKey: 'showDialpadKey',
|
19090
19099
|
disabled: props.disableButtonsForHoldScreen,
|
@@ -19156,6 +19165,7 @@ var __awaiter$1 = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
19156
19165
|
* @private
|
19157
19166
|
*/
|
19158
19167
|
const CallWithChatPane = (props) => {
|
19168
|
+
var _a, _b;
|
19159
19169
|
const [drawerMenuItems, setDrawerMenuItems] = React.useState([]);
|
19160
19170
|
const hidden = props.activePane === 'none';
|
19161
19171
|
const paneStyles = hidden ? hiddenStyles : props.mobileView ? availableSpaceStyles : sidePaneStyles;
|
@@ -19163,7 +19173,7 @@ const CallWithChatPane = (props) => {
|
|
19163
19173
|
const theme = useTheme();
|
19164
19174
|
/* @conditional-compile-remove(PSTN-calls) */
|
19165
19175
|
const alternateCallerId = props.callAdapter.getState().alternateCallerId;
|
19166
|
-
const header = props.activePane === 'none' ? null : props.mobileView ? (React__default['default'].createElement(TabHeader, Object.assign({}, props, { strings: callWithChatStrings, activeTab: props.activePane }))) : (React__default['default'].createElement(SidePaneHeader, Object.assign({}, props, { strings: callWithChatStrings, headingText: props.activePane === 'chat'
|
19176
|
+
const header = props.activePane === 'none' ? null : props.mobileView ? (React__default['default'].createElement(TabHeader, Object.assign({}, props, { strings: callWithChatStrings, activeTab: props.activePane, disableChatButton: isDisabled$2((_a = props.callControls) === null || _a === void 0 ? void 0 : _a.chatButton), disablePeopleButton: isDisabled$2((_b = props.callControls) === null || _b === void 0 ? void 0 : _b.peopleButton) }))) : (React__default['default'].createElement(SidePaneHeader, Object.assign({}, props, { strings: callWithChatStrings, headingText: props.activePane === 'chat'
|
19167
19177
|
? callWithChatStrings.chatPaneTitle
|
19168
19178
|
: props.activePane === 'people'
|
19169
19179
|
? callWithChatStrings.peoplePaneTitle
|
@@ -19232,6 +19242,7 @@ const CallWithChatScreen = (props) => {
|
|
19232
19242
|
setCurrentPage(newState.page);
|
19233
19243
|
setCurrentCallState((_a = newState.call) === null || _a === void 0 ? void 0 : _a.state);
|
19234
19244
|
};
|
19245
|
+
updateCallWithChatPage(callWithChatAdapter.getState());
|
19235
19246
|
callWithChatAdapter.onStateChange(updateCallWithChatPage);
|
19236
19247
|
return () => {
|
19237
19248
|
callWithChatAdapter.offStateChange(updateCallWithChatPage);
|
@@ -19337,7 +19348,7 @@ const CallWithChatScreen = (props) => {
|
|
19337
19348
|
React__default['default'].createElement(CallComposite, Object.assign({}, props, { formFactor: formFactor, options: { callControls: false }, adapter: callAdapter, fluentTheme: fluentTheme }))),
|
19338
19349
|
chatProps.adapter && callAdapter && hasJoinedCall && (React__default['default'].createElement(CallWithChatPane, { chatCompositeProps: chatProps, inviteLink: props.joinInvitationURL, onClose: closePane, chatAdapter: chatProps.adapter, callAdapter: callAdapter, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, onChatButtonClicked: showShowChatTabHeaderButton(props.callControls) ? selectChat : undefined, onPeopleButtonClicked: showShowPeopleTabHeaderButton(props.callControls) ? selectPeople : undefined, modalLayerHostId: modalLayerHostId, mobileView: mobileView, activePane: activePane,
|
19339
19350
|
/* @conditional-compile-remove(file-sharing) */
|
19340
|
-
fileSharing: props.fileSharing, rtl: props.rtl }))),
|
19351
|
+
fileSharing: props.fileSharing, rtl: props.rtl, callControls: typeof props.callControls !== 'boolean' ? props.callControls : undefined }))),
|
19341
19352
|
showControlBar && !isMobileWithActivePane && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
|
19342
19353
|
React__default['default'].createElement(react.Stack.Item, { styles: controlBarContainerStyles$1 },
|
19343
19354
|
React__default['default'].createElement(CallWithChatControlBar, { callAdapter: callAdapter, chatAdapter: chatProps.adapter, chatButtonChecked: activePane === 'chat', onChatButtonClicked: toggleChat, peopleButtonChecked: activePane === 'people', onPeopleButtonClicked: togglePeople, onMoreButtonClicked: onMoreButtonClicked, mobileView: mobileView, disableButtonsForLobbyPage: isInLobbyOrConnecting,
|
@@ -19377,7 +19388,8 @@ const CallWithChatComposite = (props) => {
|
|
19377
19388
|
};
|
19378
19389
|
const hasJoinedCallFn = (page, callStatus) => {
|
19379
19390
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
|
19380
|
-
return (page === 'call' && callStatus === 'Connected'
|
19391
|
+
return ((page === 'call' && (callStatus === 'Connected' || callStatus === 'RemoteHold')) ||
|
19392
|
+
(page === 'hold' && callStatus === 'LocalHold'));
|
19381
19393
|
};
|
19382
19394
|
const showShowChatTabHeaderButton = (callControls) => {
|
19383
19395
|
if (callControls === undefined || callControls === true) {
|