@azure/communication-react 1.3.2-alpha-202208040020.0 → 1.3.2-alpha-202208090015.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 +91 -1
- package/dist/dist-cjs/communication-react/index.js +480 -194
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/common.d.ts +20 -0
- package/dist/dist-esm/acs-ui-common/src/common.d.ts.map +1 -0
- package/dist/dist-esm/acs-ui-common/src/common.js +26 -0
- package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -0
- package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -0
- package/dist/dist-esm/acs-ui-common/src/index.d.ts.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/index.js +1 -0
- package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +2 -2
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +31 -5
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +1 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts.map +1 -1
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +14 -7
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +2 -14
- package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/DevicesButton.js +1 -1
- package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +9 -14
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/FileCard.js +2 -1
- package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.js +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +2 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +8 -2
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +1 -1
- package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +16 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js +38 -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 +1 -0
- package/dist/dist-esm/react-components/src/components/index.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.js +0 -1
- 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 +1 -1
- 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 +4 -0
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +9 -0
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/common.d.ts +0 -19
- package/dist/dist-esm/react-components/src/components/utils/common.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/common.js +0 -23
- package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/responsive.js +1 -1
- package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
- package/dist/dist-esm/react-components/src/index.d.ts +1 -1
- package/dist/dist-esm/react-components/src/index.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +3 -0
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +7 -1
- package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +10 -0
- package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +24 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.d.ts +11 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.js +23 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +24 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts +13 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +36 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts +17 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +90 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.d.ts +17 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js +32 -0
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts +18 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +53 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.d.ts +15 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js +54 -0
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +8 -38
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +9 -0
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.js +9 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.d.ts +5 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js +12 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +14 -2
- 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.2-alpha-
|
195
|
+
var telemetryVersion = '1.3.2-alpha-202208090015.0';
|
196
196
|
|
197
197
|
// Copyright (c) Microsoft Corporation.
|
198
198
|
/**
|
@@ -280,6 +280,32 @@ const createSafeReplacer = () => {
|
|
280
280
|
};
|
281
281
|
};
|
282
282
|
|
283
|
+
// Copyright (c) Microsoft Corporation.
|
284
|
+
// Licensed under the MIT license.
|
285
|
+
/**
|
286
|
+
* @internal
|
287
|
+
* Converts units of rem to units of pixels
|
288
|
+
* @param rem - units of rem
|
289
|
+
* @returns units of pixels
|
290
|
+
*/
|
291
|
+
const _convertRemToPx = (rem) => {
|
292
|
+
return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);
|
293
|
+
};
|
294
|
+
/**
|
295
|
+
* @internal
|
296
|
+
* Disable dismiss on resize to work around a couple Fluent UI bugs
|
297
|
+
* - The Callout is dismissed whenever *any child of window (inclusive)* is resized. In practice, this
|
298
|
+
* happens when we change the VideoGallery layout, or even when the video stream element is internally resized
|
299
|
+
* by the headless SDK.
|
300
|
+
* - We also want to prevent dismiss when chat pane is scrolling especially a new message is added.
|
301
|
+
* A side effect of this workaround is that the context menu stays open when window is resized, and may
|
302
|
+
* get detached from original target visually. That bug is preferable to the bug when this value is not set -
|
303
|
+
* The Callout (frequently) gets dismissed automatically.
|
304
|
+
*/
|
305
|
+
const _preventDismissOnEvent = (ev) => {
|
306
|
+
return ev.type === 'resize' || ev.type === 'scroll';
|
307
|
+
};
|
308
|
+
|
283
309
|
// Copyright (c) Microsoft Corporation.
|
284
310
|
// Licensed under the MIT license.
|
285
311
|
/**
|
@@ -932,7 +958,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
932
958
|
wordBreak: 'break-word'
|
933
959
|
});
|
934
960
|
|
935
|
-
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};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}",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
|
961
|
+
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var HoldButton$e={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Connecting...",participantStateRinging:"Ringing...",participantStateHold:"On Hold"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,HoldButton:HoldButton$e,videoTile:videoTile};
|
936
962
|
|
937
963
|
var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$c={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$c={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$c={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$c={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$c={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options"};var errorBar$c={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$c={placeholderText:"Enter a number"};var HoldButton$d={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_GB$1 = {participantItem:participantItem$c,typingIndicator:typingIndicator$c,sendBox:sendBox$c,messageStatusIndicator:messageStatusIndicator$c,endCallButton:endCallButton$c,cameraButton:cameraButton$c,microphoneButton:microphoneButton$c,devicesButton:devicesButton$c,participantsButton:participantsButton$c,screenShareButton:screenShareButton$c,messageThread:messageThread$c,errorBar:errorBar$c,videoGallery:videoGallery$c,dialpad:dialpad$c,HoldButton:HoldButton$d};
|
938
964
|
|
@@ -2238,29 +2264,6 @@ const SendBoxErrors = (props) => {
|
|
2238
2264
|
};
|
2239
2265
|
|
2240
2266
|
// Copyright (c) Microsoft Corporation.
|
2241
|
-
/**
|
2242
|
-
* Converts units of rem to units of pixels
|
2243
|
-
* @param rem - units of rem
|
2244
|
-
* @returns units of pixels
|
2245
|
-
*/
|
2246
|
-
const convertRemToPx = (rem) => {
|
2247
|
-
return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);
|
2248
|
-
};
|
2249
|
-
/**
|
2250
|
-
* Converts units of rem to units of pixels
|
2251
|
-
* @private
|
2252
|
-
* Disable dismiss on resize to work around a couple Fluent UI bugs
|
2253
|
-
* - The Callout is dismissed whenever *any child of window (inclusive)* is resized. In practice, this
|
2254
|
-
* happens when we change the VideoGallery layout, or even when the video stream element is internally resized
|
2255
|
-
* by the headless SDK.
|
2256
|
-
* - We also want to prevent dismiss when chat pane is scrolling especially a new message is added.
|
2257
|
-
* A side effect of this workaround is that the context menu stays open when window is resized, and may
|
2258
|
-
* get detached from original target visually. That bug is preferable to the bug when this value is not set -
|
2259
|
-
* The Callout (frequently) gets dismissed automatically.
|
2260
|
-
*/
|
2261
|
-
const preventDismissOnEvent = (ev) => {
|
2262
|
-
return ev.type === 'resize' || ev.type === 'scroll';
|
2263
|
-
};
|
2264
2267
|
/**
|
2265
2268
|
* Conditionally modify locale strings passed to the file card
|
2266
2269
|
* @returns file upload card strings
|
@@ -2336,7 +2339,8 @@ const _FileCard = (props) => {
|
|
2336
2339
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
2337
2340
|
React__default['default'].createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),
|
2338
2341
|
React__default['default'].createElement(react.Stack, { className: containerClassName, onClick: () => {
|
2339
|
-
|
2342
|
+
var _a;
|
2343
|
+
(_a = props.actionHandler) === null || _a === void 0 ? void 0 : _a.call(props);
|
2340
2344
|
} },
|
2341
2345
|
React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: fileInfoWrapperClassName },
|
2342
2346
|
React__default['default'].createElement(react.Stack, null,
|
@@ -3332,25 +3336,13 @@ const ChatMessageContent = (props) => {
|
|
3332
3336
|
const MessageContentAsRichTextHTML = (props) => {
|
3333
3337
|
const htmlToReactParser = new htmlToReact.Parser();
|
3334
3338
|
const liveAuthor = _formatString(props.liveAuthorIntro, { author: `${props.message.senderDisplayName}` });
|
3335
|
-
|
3336
|
-
? _formatString(props.messageContentAriaText, {
|
3337
|
-
author: `${props.message.senderDisplayName}`,
|
3338
|
-
message: props.message.content
|
3339
|
-
})
|
3340
|
-
: undefined;
|
3341
|
-
return (React__default['default'].createElement("div", { "data-ui-status": props.message.status, role: "text", "aria-text": messageAriaText },
|
3339
|
+
return (React__default['default'].createElement("div", { "data-ui-status": props.message.status, role: "text", "aria-text": props.messageContentAriaText },
|
3342
3340
|
React__default['default'].createElement(reactAriaLive.LiveMessage, { message: `${props.message.mine ? '' : liveAuthor} ${extractContent(props.message.content || '')}`, "aria-live": "polite" }),
|
3343
3341
|
htmlToReactParser.parse(props.message.content)));
|
3344
3342
|
};
|
3345
3343
|
const MessageContentAsText = (props) => {
|
3346
3344
|
const liveAuthor = _formatString(props.liveAuthorIntro, { author: `${props.message.senderDisplayName}` });
|
3347
|
-
|
3348
|
-
? _formatString(props.messageContentAriaText, {
|
3349
|
-
author: `${props.message.senderDisplayName}`,
|
3350
|
-
message: props.message.content
|
3351
|
-
})
|
3352
|
-
: undefined;
|
3353
|
-
return (React__default['default'].createElement("div", { "data-ui-status": props.message.status, role: "text", "aria-label": messageAriaText },
|
3345
|
+
return (React__default['default'].createElement("div", { "data-ui-status": props.message.status, role: "text", "aria-label": props.messageContentAriaText },
|
3354
3346
|
React__default['default'].createElement(reactAriaLive.LiveMessage, { message: `${props.message.mine ? '' : liveAuthor} ${props.message.content}`, "aria-live": "polite" }),
|
3355
3347
|
React__default['default'].createElement(Linkify__default['default'], { componentDecorator: (decoratedHref, decoratedText, key) => {
|
3356
3348
|
return (React__default['default'].createElement(react.Link, { target: "_blank", href: decoratedHref, key: key }, decoratedText));
|
@@ -3532,14 +3524,20 @@ const MessageBubble = (props) => {
|
|
3532
3524
|
locale,
|
3533
3525
|
fileDownloadHandler
|
3534
3526
|
]);
|
3535
|
-
const
|
3527
|
+
const messageContentAriaText = props.message.content
|
3528
|
+
? props.message.mine
|
3529
|
+
? _formatString(strings.messageContentMineAriaText, {
|
3530
|
+
message: props.message.content
|
3531
|
+
})
|
3532
|
+
: _formatString(strings.messageContentAriaText, {
|
3533
|
+
author: `${props.message.senderDisplayName}`,
|
3534
|
+
message: props.message.content
|
3535
|
+
})
|
3536
|
+
: undefined;
|
3536
3537
|
const chatMessage = (React__default['default'].createElement(React__default['default'].Fragment, null,
|
3537
|
-
React__default['default'].createElement("div", { ref: messageRef
|
3538
|
-
|
3539
|
-
|
3540
|
-
} },
|
3541
|
-
React__default['default'].createElement(reactNorthstar.Chat.Message, { "data-ui-id": "chat-composite-message", className: react.mergeStyles(messageContainerStyle), styles: messageContainerStyle, content: React__default['default'].createElement("div", { ref: messageContentRef, tabIndex: 0 },
|
3542
|
-
React__default['default'].createElement(ChatMessageContent, { message: message, liveAuthorIntro: strings.liveAuthorIntro, messageContentAriaText: strings.messageContentAriaText }),
|
3538
|
+
React__default['default'].createElement("div", { ref: messageRef },
|
3539
|
+
React__default['default'].createElement(reactNorthstar.Chat.Message, { "data-ui-id": "chat-composite-message", className: react.mergeStyles(messageContainerStyle), styles: messageContainerStyle, content: React__default['default'].createElement("div", { tabIndex: 0 },
|
3540
|
+
React__default['default'].createElement(ChatMessageContent, { message: message, liveAuthorIntro: strings.liveAuthorIntro, messageContentAriaText: messageContentAriaText }),
|
3543
3541
|
props.onRenderFileDownloads
|
3544
3542
|
? props.onRenderFileDownloads(userId, message)
|
3545
3543
|
: defaultOnRenderFileDownloads()), author: React__default['default'].createElement(reactNorthstar.Text, { className: chatMessageDateStyle }, message.senderDisplayName), mine: message.mine, timestamp: React__default['default'].createElement(reactNorthstar.Text, { "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: messageStatus === 'failed' ? (React__default['default'].createElement("div", { className: chatMessageFailedTagStyle(theme) }, strings.failToSendTag)) : message.editedOn ? (React__default['default'].createElement("div", { className: chatMessageEditedTagStyle(theme) }, strings.editedTag)) : undefined, positionActionMenu: false, actionMenu: actionMenuProps, onTouchStart: () => setWasInteractionByTouch(true), onPointerDown: () => setWasInteractionByTouch(false), onKeyDown: () => setWasInteractionByTouch(false), onBlur: () => setWasInteractionByTouch(false), onClick: () => {
|
@@ -3665,7 +3663,7 @@ const NARROW_WIDTH_REM = 30;
|
|
3665
3663
|
* @param containerWidthRem container width in rem
|
3666
3664
|
* @returns boolean
|
3667
3665
|
*/
|
3668
|
-
const isNarrowWidth = (containerWidthRem) => containerWidthRem <=
|
3666
|
+
const isNarrowWidth = (containerWidthRem) => containerWidthRem <= _convertRemToPx(NARROW_WIDTH_REM);
|
3669
3667
|
|
3670
3668
|
/**
|
3671
3669
|
* @private
|
@@ -4356,7 +4354,7 @@ const iconContainerStyle$1 = {
|
|
4356
4354
|
/**
|
4357
4355
|
* @private
|
4358
4356
|
*/
|
4359
|
-
const iconStyles$
|
4357
|
+
const iconStyles$3 = react.mergeStyles({
|
4360
4358
|
display: 'flex',
|
4361
4359
|
lineHeight: 0,
|
4362
4360
|
alignItems: 'center'
|
@@ -4402,7 +4400,7 @@ const ParticipantItem = (props) => {
|
|
4402
4400
|
const contextualMenuStyle = React.useMemo(() => react.mergeStyles({ background: theme.palette.neutralLighterAlt }, styles === null || styles === void 0 ? void 0 : styles.menu), [theme.palette.neutralLighterAlt, styles === null || styles === void 0 ? void 0 : styles.menu]);
|
4403
4401
|
const infoContainerStyle = React.useMemo(() => react.mergeStyles(iconContainerStyle$1, { color: theme.palette.neutralTertiary }, styles === null || styles === void 0 ? void 0 : styles.iconContainer), [theme.palette.neutralTertiary, styles === null || styles === void 0 ? void 0 : styles.iconContainer]);
|
4404
4402
|
const menuButton = React.useMemo(() => (React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: react.mergeStyles(menuButtonContainerStyle), title: menuTitle, "data-ui-id": ids.participantItemMenuButton },
|
4405
|
-
React__default['default'].createElement(react.Icon, { iconName: itemHovered ? 'ParticipantItemOptionsHovered' : 'ParticipantItemOptions', className: iconStyles$
|
4403
|
+
React__default['default'].createElement(react.Icon, { iconName: itemHovered ? 'ParticipantItemOptionsHovered' : 'ParticipantItemOptions', className: iconStyles$3 }))), [itemHovered, menuTitle, ids.participantItemMenuButton]);
|
4406
4404
|
const onDismissMenu = () => {
|
4407
4405
|
setItemHovered(false);
|
4408
4406
|
setMenuHidden(true);
|
@@ -4419,7 +4417,7 @@ const ParticipantItem = (props) => {
|
|
4419
4417
|
menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
|
4420
4418
|
menuButton,
|
4421
4419
|
React__default['default'].createElement(react.ContextualMenu, { items: menuItems, hidden: menuHidden, target: containerRef, onItemClick: onDismissMenu, onDismiss: onDismissMenu, directionalHint: react.DirectionalHint.bottomRightEdge, className: contextualMenuStyle, calloutProps: {
|
4422
|
-
preventDismissOnEvent
|
4420
|
+
preventDismissOnEvent: _preventDismissOnEvent
|
4423
4421
|
} })))));
|
4424
4422
|
};
|
4425
4423
|
|
@@ -4443,7 +4441,7 @@ const participantListItemStyle = {
|
|
4443
4441
|
/**
|
4444
4442
|
* @private
|
4445
4443
|
*/
|
4446
|
-
const iconStyles$
|
4444
|
+
const iconStyles$2 = react.mergeStyles({
|
4447
4445
|
display: 'flex',
|
4448
4446
|
lineHeight: 0,
|
4449
4447
|
alignItems: 'center'
|
@@ -4464,8 +4462,8 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
|
|
4464
4462
|
const menuItems = createParticipantMenuItems && createParticipantMenuItems(participant);
|
4465
4463
|
const onRenderIcon = (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.isScreenSharing) || (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.isMuted)
|
4466
4464
|
? () => (React__default['default'].createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.5rem' } },
|
4467
|
-
callingParticipant.isScreenSharing && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$
|
4468
|
-
callingParticipant.isMuted && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$
|
4465
|
+
callingParticipant.isScreenSharing && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$2, ariaLabel: strings.sharingIconLabel })),
|
4466
|
+
callingParticipant.isMuted && (React__default['default'].createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel }))))
|
4469
4467
|
: () => null;
|
4470
4468
|
const displayName = !participant.displayName ? strings.displayNamePlaceholder : participant.displayName;
|
4471
4469
|
return (React__default['default'].createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatar, onClick: () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant), showParticipantOverflowTooltip: showParticipantOverflowTooltip }));
|
@@ -4735,6 +4733,15 @@ const displayNameStyle = {
|
|
4735
4733
|
textOverflow: 'ellipsis',
|
4736
4734
|
maxWidth: '100%'
|
4737
4735
|
};
|
4736
|
+
/**
|
4737
|
+
* @private
|
4738
|
+
*/
|
4739
|
+
const participantStateStyle = {
|
4740
|
+
textAlign: 'center',
|
4741
|
+
paddingTop: '0.5rem',
|
4742
|
+
fontWeight: 600,
|
4743
|
+
fontSize: '0.75rem'
|
4744
|
+
};
|
4738
4745
|
/**
|
4739
4746
|
* @private
|
4740
4747
|
*/
|
@@ -4774,9 +4781,26 @@ const DEFAULT_PERSONA_MAX_SIZE_PX = 100;
|
|
4774
4781
|
// Coin min size is set PersonaSize.size32
|
4775
4782
|
const DEFAULT_PERSONA_MIN_SIZE_PX = 32;
|
4776
4783
|
const DefaultPlaceholder = (props) => {
|
4777
|
-
const { text, noVideoAvailableAriaLabel, coinSize,
|
4784
|
+
const { text, noVideoAvailableAriaLabel, coinSize, hidePersonaDetails, participantState, strings } = props;
|
4785
|
+
const participantStateString = React__default['default'].useMemo(() => {
|
4786
|
+
if (!strings) {
|
4787
|
+
return;
|
4788
|
+
}
|
4789
|
+
if (participantState === 'Connecting') {
|
4790
|
+
return strings === null || strings === void 0 ? void 0 : strings.participantStateConnecting;
|
4791
|
+
}
|
4792
|
+
else if (participantState === 'Ringing') {
|
4793
|
+
return strings === null || strings === void 0 ? void 0 : strings.participantStateRinging;
|
4794
|
+
}
|
4795
|
+
else if (participantState === 'Hold') {
|
4796
|
+
return strings === null || strings === void 0 ? void 0 : strings.participantStateHold;
|
4797
|
+
}
|
4798
|
+
return;
|
4799
|
+
}, [participantState, strings]);
|
4778
4800
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
|
4779
|
-
React__default['default'].createElement(react.
|
4801
|
+
React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles },
|
4802
|
+
React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }),
|
4803
|
+
participantStateString && React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, participantStateString))));
|
4780
4804
|
};
|
4781
4805
|
const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
|
4782
4806
|
/**
|
@@ -4787,7 +4811,13 @@ const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
|
|
4787
4811
|
* @public
|
4788
4812
|
*/
|
4789
4813
|
const VideoTile = (props) => {
|
4790
|
-
const { children, displayName, initialsName, isMirrored, isMuted, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX
|
4814
|
+
const { children, displayName, initialsName, isMirrored, isMuted, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX,
|
4815
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
4816
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
4817
|
+
participantState } = props;
|
4818
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
4819
|
+
// @conditional-compile-remove(PSTN-calls)
|
4820
|
+
const strings = Object.assign(Object.assign({}, useLocale$1().strings.videoTile), props.strings);
|
4791
4821
|
const [personaSize, setPersonaSize] = React.useState(100);
|
4792
4822
|
const videoTileRef = React.useRef(null);
|
4793
4823
|
const theme = useTheme();
|
@@ -4810,7 +4840,10 @@ const VideoTile = (props) => {
|
|
4810
4840
|
noVideoAvailableAriaLabel,
|
4811
4841
|
coinSize: personaSize,
|
4812
4842
|
styles: defaultPersonaStyles,
|
4813
|
-
hidePersonaDetails: true
|
4843
|
+
hidePersonaDetails: true,
|
4844
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
4845
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
4846
|
+
participantState: participantState
|
4814
4847
|
};
|
4815
4848
|
const videoHintWithBorderRadius = react.mergeStyles(videoHint, { borderRadius: theme.effects.roundedCorner4 });
|
4816
4849
|
const tileInfoStyle = React.useMemo(() => react.mergeStyles(isVideoRendered ? videoHintWithBorderRadius : disabledVideoHint, getVideoTileOverrideColor(isVideoRendered, theme, 'neutralPrimary'), styles === null || styles === void 0 ? void 0 : styles.displayNameContainer), [isVideoRendered, videoHintWithBorderRadius, theme, styles === null || styles === void 0 ? void 0 : styles.displayNameContainer]);
|
@@ -4824,7 +4857,10 @@ const VideoTile = (props) => {
|
|
4824
4857
|
borderRadius: theme.effects.roundedCorner4,
|
4825
4858
|
border: `0.25rem solid ${isSpeaking ? theme.palette.themePrimary : 'transparent'}`
|
4826
4859
|
}) }),
|
4827
|
-
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
|
4860
|
+
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, {
|
4861
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
4862
|
+
// @conditional-compile-remove(PSTN-calls)
|
4863
|
+
strings: strings }))))),
|
4828
4864
|
showLabel && (displayName || (showMuteIndicator && isMuted)) && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoContainerStyle },
|
4829
4865
|
React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoStyle },
|
4830
4866
|
displayName && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName }, displayName)),
|
@@ -4843,7 +4879,10 @@ const VideoTile = (props) => {
|
|
4843
4879
|
*/
|
4844
4880
|
const _RemoteVideoTile = React__default['default'].memo((props) => {
|
4845
4881
|
const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
|
4846
|
-
isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator
|
4882
|
+
isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator,
|
4883
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
4884
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
4885
|
+
state } = props;
|
4847
4886
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
4848
4887
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
4849
4888
|
isScreenSharingOn,
|
@@ -4876,7 +4915,10 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
4876
4915
|
}
|
4877
4916
|
return React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving ? 'none' : 'loading' });
|
4878
4917
|
}, [renderElement, isReceiving]);
|
4879
|
-
return (React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, showLabel: props.showLabel, personaMinSize: props.personaMinSize
|
4918
|
+
return (React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, showLabel: props.showLabel, personaMinSize: props.personaMinSize,
|
4919
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
4920
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
4921
|
+
participantState: state }));
|
4880
4922
|
});
|
4881
4923
|
|
4882
4924
|
// Copyright (c) Microsoft Corporation.
|
@@ -4996,8 +5038,8 @@ const ResponsiveHorizontalGallery = (props) => {
|
|
4996
5038
|
*/
|
4997
5039
|
const calculateChildrenPerPage = (args) => {
|
4998
5040
|
const { numberOfChildren, containerWidth, buttonWidthRem, childWidthRem, gapWidthRem } = args;
|
4999
|
-
const childWidth =
|
5000
|
-
const gapWidth =
|
5041
|
+
const childWidth = _convertRemToPx(childWidthRem);
|
5042
|
+
const gapWidth = _convertRemToPx(gapWidthRem);
|
5001
5043
|
/** First check how many children can fit in containerWidth.
|
5002
5044
|
* __________________________________
|
5003
5045
|
* | || |
|
@@ -5011,7 +5053,7 @@ const calculateChildrenPerPage = (args) => {
|
|
5011
5053
|
if (numberOfChildren <= numberOfChildrenInContainer) {
|
5012
5054
|
return numberOfChildrenInContainer;
|
5013
5055
|
}
|
5014
|
-
const buttonWidth =
|
5056
|
+
const buttonWidth = _convertRemToPx(buttonWidthRem);
|
5015
5057
|
/** We know we need to paginate. So we need to subtract the buttonWidth twice and gapWidth twice from
|
5016
5058
|
* containerWidth to compute childrenSpace
|
5017
5059
|
* <-----------containerWidth--------->
|
@@ -6518,7 +6560,7 @@ const generateDefaultDeviceMenuProps = (props, strings, isSelectCamAllowed = tru
|
|
6518
6560
|
maxWidth: '95%'
|
6519
6561
|
}
|
6520
6562
|
},
|
6521
|
-
preventDismissOnEvent
|
6563
|
+
preventDismissOnEvent: _preventDismissOnEvent
|
6522
6564
|
}
|
6523
6565
|
};
|
6524
6566
|
const menuItemStyles = react.merge(buttonFlyoutItemStyles, (_b = (_a = props.styles) === null || _a === void 0 ? void 0 : _a.menuItemStyles) !== null && _b !== void 0 ? _b : {});
|
@@ -6958,7 +7000,7 @@ const ParticipantsButton = (props) => {
|
|
6958
7000
|
styles: react.merge(participantsButtonMenuPropsStyle, styles === null || styles === void 0 ? void 0 : styles.menuStyles),
|
6959
7001
|
items: [],
|
6960
7002
|
calloutProps: {
|
6961
|
-
preventDismissOnEvent
|
7003
|
+
preventDismissOnEvent: _preventDismissOnEvent
|
6962
7004
|
}
|
6963
7005
|
};
|
6964
7006
|
if (participantCount > 0) {
|
@@ -6987,7 +7029,7 @@ const ParticipantsButton = (props) => {
|
|
6987
7029
|
},
|
6988
7030
|
// Disable dismiss on resize to work around a couple Fluent UI bugs
|
6989
7031
|
// See reasoning in the props for the parent menu.
|
6990
|
-
preventDismissOnEvent
|
7032
|
+
preventDismissOnEvent: _preventDismissOnEvent
|
6991
7033
|
}
|
6992
7034
|
},
|
6993
7035
|
'data-ui-id': ids.participantButtonPeopleMenuItem
|
@@ -7156,7 +7198,7 @@ const DrawerMenuItem = (props) => {
|
|
7156
7198
|
} }, props.secondaryText))),
|
7157
7199
|
secondaryIcon && React__default['default'].createElement(react.Stack.Item, null, secondaryIcon)));
|
7158
7200
|
};
|
7159
|
-
const MenuItemIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({ className: react.mergeStyles(iconStyles) }, props)));
|
7201
|
+
const MenuItemIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({ className: react.mergeStyles(iconStyles$1) }, props)));
|
7160
7202
|
const menuItemChildrenGap = { childrenGap: '0.5rem' };
|
7161
7203
|
const drawerMenuItemRootStyles = (hoverBackground, fontSize) => (Object.assign(Object.assign({}, fontSize), { height: '3rem', lineHeight: '3rem', padding: '0rem 0.75rem', cursor: 'pointer', ':hover, :focus': {
|
7162
7204
|
background: hoverBackground
|
@@ -7176,7 +7218,7 @@ const drawerMenuItemTextStyles = {
|
|
7176
7218
|
whiteSpace: 'nowrap'
|
7177
7219
|
}
|
7178
7220
|
};
|
7179
|
-
const iconStyles = {
|
7221
|
+
const iconStyles$1 = {
|
7180
7222
|
// Vertically center icons in the menu item. Using line-height does not work for centering fluent SVG icons.
|
7181
7223
|
display: 'flex',
|
7182
7224
|
alignItems: 'center',
|
@@ -7571,7 +7613,7 @@ const buttonStyles = (theme) => ({
|
|
7571
7613
|
const primaryContentStyles = (theme) => {
|
7572
7614
|
return {
|
7573
7615
|
fontSize: '1.25rem',
|
7574
|
-
fontWeight:
|
7616
|
+
fontWeight: theme.fonts.medium.fontWeight,
|
7575
7617
|
color: `${theme.palette.neutralPrimary}`
|
7576
7618
|
};
|
7577
7619
|
};
|
@@ -7667,7 +7709,6 @@ const formatPhoneNumber = (phoneNumber) => {
|
|
7667
7709
|
};
|
7668
7710
|
|
7669
7711
|
// Copyright (c) Microsoft Corporation.
|
7670
|
-
/* @conditional-compile-remove(dialpad) */
|
7671
7712
|
const DialpadButton = (props) => {
|
7672
7713
|
var _a, _b, _c, _d;
|
7673
7714
|
const theme = react.useTheme();
|
@@ -7678,7 +7719,6 @@ const DialpadButton = (props) => {
|
|
7678
7719
|
React__default['default'].createElement(react.Text, { className: react.mergeStyles(primaryContentStyles(theme), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.primaryContent) }, props.primaryContent),
|
7679
7720
|
React__default['default'].createElement(react.Text, { className: react.mergeStyles(secondaryContentStyles(theme), (_c = props.styles) === null || _c === void 0 ? void 0 : _c.secondaryContent) }, (_d = props.secondaryContent) !== null && _d !== void 0 ? _d : ' '))));
|
7680
7721
|
};
|
7681
|
-
/* @conditional-compile-remove(dialpad) */
|
7682
7722
|
const dialPadButtonsDefault = [
|
7683
7723
|
[
|
7684
7724
|
{ primaryContent: '1' },
|
@@ -7697,7 +7737,6 @@ const dialPadButtonsDefault = [
|
|
7697
7737
|
],
|
7698
7738
|
[{ primaryContent: '*' }, { primaryContent: '0', secondaryContent: '+' }, { primaryContent: '#' }]
|
7699
7739
|
];
|
7700
|
-
/* @conditional-compile-remove(dialpad) */
|
7701
7740
|
const DtmfTones = [
|
7702
7741
|
'Num1',
|
7703
7742
|
'Num2',
|
@@ -7712,7 +7751,6 @@ const DtmfTones = [
|
|
7712
7751
|
'Num0',
|
7713
7752
|
'Pound'
|
7714
7753
|
];
|
7715
|
-
/* @conditional-compile-remove(dialpad) */
|
7716
7754
|
const DialpadContainer = (props) => {
|
7717
7755
|
var _a, _b;
|
7718
7756
|
const theme = react.useTheme();
|
@@ -7797,11 +7835,12 @@ const DialpadContainer = (props) => {
|
|
7797
7835
|
const Dialpad = (props) => {
|
7798
7836
|
/* @conditional-compile-remove(dialpad) */
|
7799
7837
|
const localeStrings = useLocale$1().strings.dialpad;
|
7800
|
-
|
7801
|
-
|
7802
|
-
|
7803
|
-
|
7804
|
-
|
7838
|
+
const dialpadLocaleStringsTrampoline = () => {
|
7839
|
+
/* @conditional-compile-remove(dialpad) */
|
7840
|
+
return localeStrings;
|
7841
|
+
};
|
7842
|
+
const strings = Object.assign(Object.assign({}, dialpadLocaleStringsTrampoline()), props.strings);
|
7843
|
+
return React__default['default'].createElement(DialpadContainer, Object.assign({ strings: strings }, props));
|
7805
7844
|
};
|
7806
7845
|
|
7807
7846
|
// Copyright (c) Microsoft Corporation.
|
@@ -7849,15 +7888,15 @@ const _videoGalleryRemoteParticipantsMemo = (remoteParticipants) => {
|
|
7849
7888
|
return participant.state !== 'InLobby';
|
7850
7889
|
})
|
7851
7890
|
.map((participant) => {
|
7852
|
-
return memoizedFn(toFlatCommunicationIdentifier(participant.identifier), participant.isMuted, checkIsSpeaking(participant), participant.videoStreams, participant.displayName);
|
7891
|
+
return memoizedFn(toFlatCommunicationIdentifier(participant.identifier), participant.isMuted, checkIsSpeaking(participant), participant.videoStreams, participant.state, participant.displayName);
|
7853
7892
|
});
|
7854
7893
|
});
|
7855
7894
|
};
|
7856
|
-
const memoizedAllConvertRemoteParticipant = memoizeFnAll((userId, isMuted, isSpeaking, videoStreams, displayName) => {
|
7857
|
-
return convertRemoteParticipantToVideoGalleryRemoteParticipant(userId, isMuted, isSpeaking, videoStreams, displayName);
|
7895
|
+
const memoizedAllConvertRemoteParticipant = memoizeFnAll((userId, isMuted, isSpeaking, videoStreams, state, displayName) => {
|
7896
|
+
return convertRemoteParticipantToVideoGalleryRemoteParticipant(userId, isMuted, isSpeaking, videoStreams, state, displayName);
|
7858
7897
|
});
|
7859
7898
|
/** @private */
|
7860
|
-
const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted, isSpeaking, videoStreams, displayName) => {
|
7899
|
+
const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted, isSpeaking, videoStreams, state, displayName) => {
|
7861
7900
|
const rawVideoStreamsArray = Object.values(videoStreams);
|
7862
7901
|
let videoStream = undefined;
|
7863
7902
|
let screenShareStream = undefined;
|
@@ -7884,7 +7923,10 @@ const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted
|
|
7884
7923
|
isSpeaking,
|
7885
7924
|
videoStream,
|
7886
7925
|
screenShareStream,
|
7887
|
-
isScreenSharingOn: screenShareStream !== undefined && screenShareStream.isAvailable
|
7926
|
+
isScreenSharingOn: screenShareStream !== undefined && screenShareStream.isAvailable,
|
7927
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
7928
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
7929
|
+
state: convertRemoteParticipantStateToVideoGalleryRemoteParticipantState(state)
|
7888
7930
|
};
|
7889
7931
|
};
|
7890
7932
|
const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
|
@@ -7898,6 +7940,29 @@ const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
|
|
7898
7940
|
renderElement: (_b = stream.view) === null || _b === void 0 ? void 0 : _b.target
|
7899
7941
|
};
|
7900
7942
|
};
|
7943
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
7944
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
7945
|
+
/**
|
7946
|
+
* We convert the Communication Participant states to simpler states that can be used with VideoTiles/VideoGallery.
|
7947
|
+
*/
|
7948
|
+
const convertRemoteParticipantStateToVideoGalleryRemoteParticipantState = (state) => {
|
7949
|
+
// `Idle` is the first state of the participant.
|
7950
|
+
if (state === 'Idle' || state === 'Connecting') {
|
7951
|
+
return 'Connecting';
|
7952
|
+
}
|
7953
|
+
// `EarlyMedia` is a state when the media is played before a participant connects to the call.
|
7954
|
+
// It occurs immediately after the `Connecting` state.
|
7955
|
+
if (state === 'EarlyMedia' || state === 'Ringing') {
|
7956
|
+
return 'Ringing';
|
7957
|
+
}
|
7958
|
+
if (state === 'Hold') {
|
7959
|
+
return 'Hold';
|
7960
|
+
}
|
7961
|
+
if (state === 'Connected') {
|
7962
|
+
return 'Connected';
|
7963
|
+
}
|
7964
|
+
return;
|
7965
|
+
};
|
7901
7966
|
|
7902
7967
|
// Copyright (c) Microsoft Corporation.
|
7903
7968
|
/**
|
@@ -7924,7 +7989,7 @@ const videoGallerySelector = reselect.createSelector([
|
|
7924
7989
|
const noRemoteParticipants = [];
|
7925
7990
|
return {
|
7926
7991
|
screenShareParticipant: screenShareRemoteParticipant
|
7927
|
-
? convertRemoteParticipantToVideoGalleryRemoteParticipant(toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier), screenShareRemoteParticipant.isMuted, checkIsSpeaking(screenShareRemoteParticipant), screenShareRemoteParticipant.videoStreams, screenShareRemoteParticipant.displayName)
|
7992
|
+
? convertRemoteParticipantToVideoGalleryRemoteParticipant(toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier), screenShareRemoteParticipant.isMuted, checkIsSpeaking(screenShareRemoteParticipant), screenShareRemoteParticipant.videoStreams, screenShareRemoteParticipant.state, screenShareRemoteParticipant.displayName)
|
7928
7993
|
: undefined,
|
7929
7994
|
localParticipant: {
|
7930
7995
|
userId: identifier,
|
@@ -12517,7 +12582,13 @@ const COMPOSITE_ONLY_ICONS = {
|
|
12517
12582
|
NoticePageLeftCall: React__default['default'].createElement(reactIcons.CallEnd20Filled, null),
|
12518
12583
|
NoticePageRemovedFromCall: React__default['default'].createElement(reactIcons.Info20Filled, null),
|
12519
12584
|
/* @conditional-compile-remove(file-sharing) */
|
12520
|
-
SendBoxAttachFile: React__default['default'].createElement(reactIcons.Attach20Regular, null)
|
12585
|
+
SendBoxAttachFile: React__default['default'].createElement(reactIcons.Attach20Regular, null),
|
12586
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
12587
|
+
PeoplePaneAddPerson: React__default['default'].createElement(reactIcons.PersonAdd20Regular, null),
|
12588
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
12589
|
+
PeoplePaneOpenDialpad: React__default['default'].createElement(reactIcons.Dialpad20Regular, null),
|
12590
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
12591
|
+
DialpadStartCall: React__default['default'].createElement(reactIcons.Call20Regular, null)
|
12521
12592
|
};
|
12522
12593
|
/**
|
12523
12594
|
* The default set of icons that are available to used in the Composites.
|
@@ -12550,7 +12621,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
12550
12621
|
*/
|
12551
12622
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
12552
12623
|
|
12553
|
-
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"};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",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",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
12624
|
+
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 Dialpad"};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",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"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
12554
12625
|
|
12555
12626
|
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};
|
12556
12627
|
|
@@ -15155,8 +15226,324 @@ const copyLinkButtonStyles = {
|
|
15155
15226
|
/**
|
15156
15227
|
* @private
|
15157
15228
|
*/
|
15158
|
-
const
|
15229
|
+
const themedCopyLinkButtonStyles$1 = (mobileView, theme) => ({
|
15230
|
+
root: {
|
15231
|
+
minHeight: mobileView ? '3rem' : '2.5rem',
|
15232
|
+
borderRadius: mobileView ? theme.effects.roundedCorner6 : theme.effects.roundedCorner4
|
15233
|
+
}
|
15234
|
+
});
|
15235
|
+
|
15236
|
+
// Copyright (c) Microsoft Corporation.
|
15237
|
+
// Licensed under the MIT license.
|
15238
|
+
/**
|
15239
|
+
* Convert IContextualMenuItem to _DrawerMenuItemProps
|
15240
|
+
* @param contextualMenu - IContextualMenuItem to convert
|
15241
|
+
* @param onDrawerMenuItemClick - callback to call when converted DrawerMenuItem is clicked
|
15242
|
+
* @returns DrawerMenuItem
|
15243
|
+
* @private
|
15244
|
+
*/
|
15245
|
+
const convertContextualMenuItemToDrawerMenuItem = (contextualMenu, onDrawerMenuItemClick) => {
|
15246
|
+
return {
|
15247
|
+
itemKey: contextualMenu.key,
|
15248
|
+
onItemClick: () => {
|
15249
|
+
var _a;
|
15250
|
+
(_a = contextualMenu.onClick) === null || _a === void 0 ? void 0 : _a.call(contextualMenu);
|
15251
|
+
onDrawerMenuItemClick();
|
15252
|
+
},
|
15253
|
+
iconProps: contextualMenu.iconProps,
|
15254
|
+
text: contextualMenu.text,
|
15255
|
+
disabled: contextualMenu.disabled
|
15256
|
+
};
|
15257
|
+
};
|
15258
|
+
|
15259
|
+
// Copyright (c) Microsoft Corporation.
|
15260
|
+
// Licensed under the MIT license.
|
15261
|
+
/**
|
15262
|
+
* @private
|
15263
|
+
*/
|
15264
|
+
const themedCopyLinkButtonStyles = (theme, mobileView) => ({
|
15265
|
+
root: {
|
15266
|
+
minHeight: mobileView ? '3rem' : '2.5rem',
|
15267
|
+
borderRadius: mobileView ? theme.effects.roundedCorner6 : theme.effects.roundedCorner4,
|
15268
|
+
width: '100%'
|
15269
|
+
},
|
15270
|
+
textContainer: {
|
15271
|
+
display: 'contents'
|
15272
|
+
}
|
15273
|
+
});
|
15274
|
+
/**
|
15275
|
+
* @private
|
15276
|
+
*/
|
15277
|
+
const themedMenuStyle = (theme) => ({
|
15278
|
+
root: {
|
15279
|
+
borderRadius: theme.effects.roundedCorner6
|
15280
|
+
}
|
15281
|
+
});
|
15282
|
+
/**
|
15283
|
+
* @private
|
15284
|
+
*/
|
15285
|
+
const iconStyles = {
|
15286
|
+
// overwrite default line height which results in icons having different size
|
15287
|
+
lineHeight: '0',
|
15288
|
+
width: '1.125rem'
|
15289
|
+
};
|
15290
|
+
|
15291
|
+
// Copyright (c) Microsoft Corporation.
|
15292
|
+
// Licensed under the MIT license.
|
15293
|
+
/**
|
15294
|
+
* @private
|
15295
|
+
*/
|
15296
|
+
const themedDialpadModelStyle = (theme) => ({
|
15297
|
+
main: {
|
15298
|
+
borderRadius: theme.effects.roundedCorner6,
|
15299
|
+
padding: '1rem'
|
15300
|
+
}
|
15301
|
+
});
|
15302
|
+
/**
|
15303
|
+
* @private
|
15304
|
+
*/
|
15305
|
+
const themedDialpadStyle = (isMobile, theme) => ({
|
15306
|
+
root: {
|
15307
|
+
padding: 0,
|
15308
|
+
marginLeft: 0,
|
15309
|
+
marginRight: 0,
|
15310
|
+
maxWidth: '100%'
|
15311
|
+
},
|
15312
|
+
textField: {
|
15313
|
+
root: {
|
15314
|
+
borderBottom: `1px solid ${theme.palette.neutralTertiaryAlt}`
|
15315
|
+
},
|
15316
|
+
field: {
|
15317
|
+
backgroundColor: theme.palette.white,
|
15318
|
+
fontSize: theme.fonts.large.fontSize,
|
15319
|
+
padding: '1.063rem 0.5rem',
|
15320
|
+
textAlign: isMobile ? 'center' : 'left',
|
15321
|
+
paddingTop: 0
|
15322
|
+
}
|
15323
|
+
},
|
15324
|
+
primaryContent: {
|
15325
|
+
color: theme.palette.themeDarkAlt
|
15326
|
+
}
|
15327
|
+
});
|
15328
|
+
/**
|
15329
|
+
* @private
|
15330
|
+
*/
|
15331
|
+
const themedCallButtonStyle = (theme) => ({
|
15332
|
+
root: {
|
15333
|
+
fontWeight: theme.fonts.medium.fontWeight,
|
15334
|
+
fontSize: theme.fonts.medium.fontSize,
|
15335
|
+
width: '100%',
|
15336
|
+
height: '2.5rem',
|
15337
|
+
borderRadius: 3,
|
15338
|
+
padding: '0.625rem'
|
15339
|
+
},
|
15340
|
+
textContainer: {
|
15341
|
+
display: 'contents'
|
15342
|
+
}
|
15343
|
+
});
|
15159
15344
|
|
15345
|
+
// Copyright (c) Microsoft Corporation.
|
15346
|
+
// Licensed under the MIT license.
|
15347
|
+
/**
|
15348
|
+
* @private
|
15349
|
+
*/
|
15350
|
+
const compositeOuterContainerStyles = {
|
15351
|
+
root: {
|
15352
|
+
width: '100%',
|
15353
|
+
// Create a new stacking context so that DrawerMenu can be positioned absolutely.
|
15354
|
+
position: 'relative'
|
15355
|
+
}
|
15356
|
+
};
|
15357
|
+
/** @private */
|
15358
|
+
const callCompositeContainerStyles = {
|
15359
|
+
root: {
|
15360
|
+
// Start a new stacking context so that any `position:absolute` elements
|
15361
|
+
// inside the call composite do not compete with its siblings.
|
15362
|
+
position: 'relative'
|
15363
|
+
}
|
15364
|
+
};
|
15365
|
+
/** @private */
|
15366
|
+
const controlBarContainerStyles = {
|
15367
|
+
root: {
|
15368
|
+
// Start a new stacking context so that any `position:absolute` elements
|
15369
|
+
// inside the control bar do not compete with its siblings.
|
15370
|
+
position: 'relative'
|
15371
|
+
}
|
15372
|
+
};
|
15373
|
+
/** @private */
|
15374
|
+
const drawerContainerStyles$1 = {
|
15375
|
+
root: {
|
15376
|
+
position: 'absolute',
|
15377
|
+
top: 0,
|
15378
|
+
left: 0,
|
15379
|
+
width: '100%',
|
15380
|
+
height: '100%',
|
15381
|
+
// Any zIndex > 0 will work because this is the only absolutely
|
15382
|
+
// positioned element in the container.
|
15383
|
+
zIndex: 1
|
15384
|
+
}
|
15385
|
+
};
|
15386
|
+
|
15387
|
+
// Copyright (c) Microsoft Corporation.
|
15388
|
+
/** @private */
|
15389
|
+
const CallingDialpad = (props) => {
|
15390
|
+
const { strings, isMobile, showDialpad, onDismissDialpad } = props;
|
15391
|
+
const [textFieldInput, setTextFieldInput] = React.useState('');
|
15392
|
+
const theme = react.useTheme();
|
15393
|
+
const onDismissTriggered = () => {
|
15394
|
+
setTextFieldInput('');
|
15395
|
+
onDismissDialpad();
|
15396
|
+
};
|
15397
|
+
const onClickCall = () => {
|
15398
|
+
//place holder for adding calling functionality
|
15399
|
+
console.log(textFieldInput);
|
15400
|
+
};
|
15401
|
+
const dialpadModelStyle = React.useMemo(() => themedDialpadModelStyle(theme), [theme]);
|
15402
|
+
const dialpadStyle = React.useMemo(() => themedDialpadStyle(isMobile, theme), [theme, isMobile]);
|
15403
|
+
const callButtonStyle = React.useMemo(() => themedCallButtonStyle(theme), [theme]);
|
15404
|
+
const dialpadComponent = () => {
|
15405
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
15406
|
+
React__default['default'].createElement(Dialpad, { onChange: setTextFieldInput, styles: dialpadStyle }),
|
15407
|
+
React__default['default'].createElement(react.PrimaryButton, { text: strings.dialpadStartCallButtonLabel, onRenderIcon: () => DialpadStartCallIconTrampoline(), onClick: onClickCall, styles: callButtonStyle, disabled: textFieldInput === '' })));
|
15408
|
+
};
|
15409
|
+
if (isMobile) {
|
15410
|
+
return (React__default['default'].createElement(react.Stack, { "data-ui-id": "call-with-chat-composite-dialpad" }, showDialpad && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
|
15411
|
+
React__default['default'].createElement(_DrawerSurface, { onLightDismiss: onDismissTriggered },
|
15412
|
+
React__default['default'].createElement(react.Stack, { style: { padding: '16px' } }, dialpadComponent()))))));
|
15413
|
+
}
|
15414
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Modal, { titleAriaId: strings.dialpadModalAriaLabel, isOpen: showDialpad, onDismiss: onDismissTriggered, isBlocking: true, styles: dialpadModelStyle, "data-ui-id": "call-with-chat-composite-dialpad" },
|
15415
|
+
React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center" },
|
15416
|
+
React__default['default'].createElement(react.Text, null, strings.dialpadModalTitle),
|
15417
|
+
React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color: 'black' } })),
|
15418
|
+
React__default['default'].createElement(react.Stack, null, dialpadComponent()))));
|
15419
|
+
};
|
15420
|
+
function DialpadStartCallIconTrampoline() {
|
15421
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15422
|
+
return React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: "DialpadStartCall" });
|
15423
|
+
}
|
15424
|
+
|
15425
|
+
// Copyright (c) Microsoft Corporation.
|
15426
|
+
const mainScreenContainerStyle = {
|
15427
|
+
height: '100%',
|
15428
|
+
width: '100%'
|
15429
|
+
};
|
15430
|
+
/**
|
15431
|
+
* @private
|
15432
|
+
*/
|
15433
|
+
const mainScreenContainerStyleDesktop = react.mergeStyles(Object.assign(Object.assign({}, mainScreenContainerStyle), { minWidth: '30rem', minHeight: '22rem' // max height of min-height of composite pages (Configuration page)
|
15434
|
+
}));
|
15435
|
+
/**
|
15436
|
+
* @private
|
15437
|
+
*/
|
15438
|
+
const mainScreenContainerStyleMobile = react.mergeStyles(Object.assign(Object.assign({}, mainScreenContainerStyle), { minWidth: '17.5rem', minHeight: '13rem' // max height of min-height of composite pages (Configuration page & Call page)
|
15439
|
+
}));
|
15440
|
+
/** @private */
|
15441
|
+
const drawerContainerStyles = {
|
15442
|
+
root: {
|
15443
|
+
position: 'absolute',
|
15444
|
+
top: 0,
|
15445
|
+
left: 0,
|
15446
|
+
width: '100%',
|
15447
|
+
height: '100%',
|
15448
|
+
// Any zIndex > 0 will work because this is the only absolutely
|
15449
|
+
// positioned element in the container.
|
15450
|
+
zIndex: 1
|
15451
|
+
}
|
15452
|
+
};
|
15453
|
+
|
15454
|
+
// Copyright (c) Microsoft Corporation.
|
15455
|
+
/** @private */
|
15456
|
+
const AddPeopleDropdown = (props) => {
|
15457
|
+
const theme = react.useTheme();
|
15458
|
+
const { inviteLink, strings, mobileView } = props;
|
15459
|
+
const [showDialpad, setShowDialpad] = React.useState(false);
|
15460
|
+
const menuStyleThemed = React.useMemo(() => themedMenuStyle(theme), [theme]);
|
15461
|
+
const copyLinkButtonStylesThemed = React.useMemo(() => themedCopyLinkButtonStyles(theme, mobileView), [mobileView, theme]);
|
15462
|
+
const defaultMenuProps = React.useMemo(() => {
|
15463
|
+
const menuProps = {
|
15464
|
+
styles: menuStyleThemed,
|
15465
|
+
items: [],
|
15466
|
+
useTargetWidth: true,
|
15467
|
+
calloutProps: {
|
15468
|
+
preventDismissOnEvent: _preventDismissOnEvent
|
15469
|
+
}
|
15470
|
+
};
|
15471
|
+
if (inviteLink) {
|
15472
|
+
menuProps.items.push({
|
15473
|
+
key: 'InviteLinkKey',
|
15474
|
+
text: strings.copyInviteLinkButtonLabel,
|
15475
|
+
itemProps: { styles: copyLinkButtonStylesThemed },
|
15476
|
+
iconProps: { iconName: 'Link', style: iconStyles },
|
15477
|
+
onClick: () => copy__default['default'](inviteLink)
|
15478
|
+
});
|
15479
|
+
}
|
15480
|
+
menuProps.items.push({
|
15481
|
+
key: 'DialpadKey',
|
15482
|
+
text: strings.openDialpadButtonLabel,
|
15483
|
+
itemProps: { styles: copyLinkButtonStylesThemed },
|
15484
|
+
iconProps: { iconName: PeoplePaneOpenDialpadIconNameTrampoline(), style: iconStyles },
|
15485
|
+
onClick: () => setShowDialpad(true),
|
15486
|
+
'data-ui-id': 'call-with-chat-composite-dial-phone-number-button'
|
15487
|
+
});
|
15488
|
+
return menuProps;
|
15489
|
+
}, [
|
15490
|
+
strings.copyInviteLinkButtonLabel,
|
15491
|
+
strings.openDialpadButtonLabel,
|
15492
|
+
copyLinkButtonStylesThemed,
|
15493
|
+
inviteLink,
|
15494
|
+
menuStyleThemed
|
15495
|
+
]);
|
15496
|
+
const onDismissDialpad = () => {
|
15497
|
+
setShowDialpad(false);
|
15498
|
+
};
|
15499
|
+
const [addPeopleDrawerMenuItems, setAddPeopleDrawerMenuItems] = React.useState([]);
|
15500
|
+
const setDrawerMenuItemsForAddPeople = React.useMemo(() => {
|
15501
|
+
return () => {
|
15502
|
+
const drawerMenuItems = defaultMenuProps.items.map((contextualMenu) => convertContextualMenuItemToDrawerMenuItem(contextualMenu, () => setAddPeopleDrawerMenuItems([])));
|
15503
|
+
setAddPeopleDrawerMenuItems(drawerMenuItems);
|
15504
|
+
};
|
15505
|
+
}, [defaultMenuProps, setAddPeopleDrawerMenuItems]);
|
15506
|
+
if (mobileView) {
|
15507
|
+
return (React__default['default'].createElement(react.Stack, null,
|
15508
|
+
React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
|
15509
|
+
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-with-chat-composite-add-people-button" })),
|
15510
|
+
addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-with-chat-composite-add-people-dropdown" },
|
15511
|
+
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
|
15512
|
+
React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad })));
|
15513
|
+
}
|
15514
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Stack, null,
|
15515
|
+
React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
|
15516
|
+
React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
15517
|
+
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-with-chat-composite-add-people-button" })))));
|
15518
|
+
};
|
15519
|
+
function PeoplePaneOpenDialpadIconNameTrampoline() {
|
15520
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15521
|
+
return 'PeoplePaneOpenDialpad';
|
15522
|
+
}
|
15523
|
+
function PeoplePaneAddPersonIconTrampoline() {
|
15524
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15525
|
+
return React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: "PeoplePaneAddPerson" });
|
15526
|
+
}
|
15527
|
+
|
15528
|
+
// Copyright (c) Microsoft Corporation.
|
15529
|
+
/** @private */
|
15530
|
+
const AddPeopleButton = (props) => {
|
15531
|
+
const { inviteLink, mobileView, strings, participantList } = props;
|
15532
|
+
const theme = react.useTheme();
|
15533
|
+
React.useMemo(() => react.concatStyleSets(copyLinkButtonStyles, themedCopyLinkButtonStyles$1(mobileView, theme)), [mobileView, theme]);
|
15534
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15535
|
+
if (mobileView) {
|
15536
|
+
return React__default['default'].createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink });
|
15537
|
+
}
|
15538
|
+
else {
|
15539
|
+
return (React__default['default'].createElement(react.Stack, { tokens: peoplePaneContainerTokens },
|
15540
|
+
React__default['default'].createElement(AddPeopleDropdown, { strings: strings, mobileView: mobileView, inviteLink: inviteLink }),
|
15541
|
+
participantList));
|
15542
|
+
}
|
15543
|
+
};
|
15544
|
+
|
15545
|
+
// Copyright (c) Microsoft Corporation.
|
15546
|
+
// Licensed under the MIT license.
|
15160
15547
|
var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
15161
15548
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
15162
15549
|
return new (P || (P = Promise))(function (resolve, reject) {
|
@@ -15199,23 +15586,12 @@ const PeoplePaneContent = (props) => {
|
|
15199
15586
|
onParticipantClick: props.mobileView ? setDrawerMenuItemsForParticipant : undefined });
|
15200
15587
|
}, [participantListDefaultProps, props.mobileView, setDrawerMenuItemsForParticipant, onRemoveParticipant]);
|
15201
15588
|
const participantList = (React__default['default'].createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, title: props.strings.peoplePaneSubTitle }));
|
15202
|
-
const theme = react.useTheme();
|
15203
|
-
const copyLinkButtonStylesThemed = React.useMemo(() => react.concatStyleSets(copyLinkButtonStyles, {
|
15204
|
-
root: {
|
15205
|
-
minHeight: props.mobileView ? '3rem' : '2.5rem',
|
15206
|
-
borderRadius: props.mobileView ? theme.effects.roundedCorner6 : theme.effects.roundedCorner4
|
15207
|
-
}
|
15208
|
-
}), [props.mobileView, theme.effects.roundedCorner6, theme.effects.roundedCorner4]);
|
15209
15589
|
if (props.mobileView) {
|
15210
15590
|
return (React__default['default'].createElement(react.Stack, { verticalFill: true, styles: peoplePaneContainerStyle, tokens: peoplePaneContainerTokens },
|
15211
15591
|
React__default['default'].createElement(react.Stack.Item, { grow: true, styles: participantListContainerStyles }, participantList),
|
15212
|
-
|
15213
|
-
React__default['default'].createElement(react.PrimaryButton, { onClick: () => copy__default['default'](inviteLink), styles: copyLinkButtonStylesThemed, onRenderIcon: () => React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: "Link", style: linkIconStyles }), text: strings.copyInviteLinkButtonLabel })))));
|
15592
|
+
React__default['default'].createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings })));
|
15214
15593
|
}
|
15215
|
-
return (React__default['default'].createElement(
|
15216
|
-
inviteLink && (React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
15217
|
-
React__default['default'].createElement(react.DefaultButton, { text: strings.copyInviteLinkButtonLabel, onRenderIcon: () => React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: "Link", style: linkIconStyles }), onClick: () => copy__default['default'](inviteLink), styles: copyLinkButtonStylesThemed }))),
|
15218
|
-
participantList));
|
15594
|
+
return (React__default['default'].createElement(AddPeopleButton, { inviteLink: inviteLink, mobileView: props.mobileView, participantList: participantList, strings: strings }));
|
15219
15595
|
};
|
15220
15596
|
/**
|
15221
15597
|
* Create default contextual menu items for particant
|
@@ -15244,54 +15620,6 @@ const createDefaultContextualMenuItems = (participant, strings, onRemoveParticip
|
|
15244
15620
|
}
|
15245
15621
|
return menuItems;
|
15246
15622
|
};
|
15247
|
-
/**
|
15248
|
-
* Convert IContextualMenuItem to _DrawerMenuItemProps
|
15249
|
-
* @param contextualMenu - IContextualMenuItem to convert
|
15250
|
-
* @param onDrawerMenuItemClick - callback to call when converted DrawerMenuItem is clicked
|
15251
|
-
* @returns DrawerMenuItem
|
15252
|
-
*/
|
15253
|
-
const convertContextualMenuItemToDrawerMenuItem = (contextualMenu, onDrawerMenuItemClick) => {
|
15254
|
-
return {
|
15255
|
-
itemKey: contextualMenu.key,
|
15256
|
-
onItemClick: () => {
|
15257
|
-
var _a;
|
15258
|
-
(_a = contextualMenu.onClick) === null || _a === void 0 ? void 0 : _a.call(contextualMenu);
|
15259
|
-
onDrawerMenuItemClick();
|
15260
|
-
},
|
15261
|
-
iconProps: contextualMenu.iconProps,
|
15262
|
-
text: contextualMenu.text,
|
15263
|
-
disabled: contextualMenu.disabled
|
15264
|
-
};
|
15265
|
-
};
|
15266
|
-
|
15267
|
-
// Copyright (c) Microsoft Corporation.
|
15268
|
-
const mainScreenContainerStyle = {
|
15269
|
-
height: '100%',
|
15270
|
-
width: '100%'
|
15271
|
-
};
|
15272
|
-
/**
|
15273
|
-
* @private
|
15274
|
-
*/
|
15275
|
-
const mainScreenContainerStyleDesktop = react.mergeStyles(Object.assign(Object.assign({}, mainScreenContainerStyle), { minWidth: '30rem', minHeight: '22rem' // max height of min-height of composite pages (Configuration page)
|
15276
|
-
}));
|
15277
|
-
/**
|
15278
|
-
* @private
|
15279
|
-
*/
|
15280
|
-
const mainScreenContainerStyleMobile = react.mergeStyles(Object.assign(Object.assign({}, mainScreenContainerStyle), { minWidth: '17.5rem', minHeight: '13rem' // max height of min-height of composite pages (Configuration page & Call page)
|
15281
|
-
}));
|
15282
|
-
/** @private */
|
15283
|
-
const drawerContainerStyles$1 = {
|
15284
|
-
root: {
|
15285
|
-
position: 'absolute',
|
15286
|
-
top: 0,
|
15287
|
-
left: 0,
|
15288
|
-
width: '100%',
|
15289
|
-
height: '100%',
|
15290
|
-
// Any zIndex > 0 will work because this is the only absolutely
|
15291
|
-
// positioned element in the container.
|
15292
|
-
zIndex: 1
|
15293
|
-
}
|
15294
|
-
};
|
15295
15623
|
|
15296
15624
|
// Copyright (c) Microsoft Corporation.
|
15297
15625
|
/**
|
@@ -15479,7 +15807,7 @@ const CallPane = (props) => {
|
|
15479
15807
|
React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
15480
15808
|
React__default['default'].createElement(PeoplePaneContent, Object.assign({}, props, { onRemoveParticipant: removeParticipantFromCall, setDrawerMenuItems: setDrawerMenuItems, strings: strings }))))))),
|
15481
15809
|
props.mobileView && (React__default['default'].createElement(ModalLocalAndRemotePIP, { callAdapter: props.callAdapter, modalLayerHostId: props.modalLayerHostId, hidden: hidden, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition })),
|
15482
|
-
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles
|
15810
|
+
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles },
|
15483
15811
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems })))));
|
15484
15812
|
};
|
15485
15813
|
|
@@ -17698,48 +18026,6 @@ const getDesktopEndCallButtonStyles = (theme) => {
|
|
17698
18026
|
};
|
17699
18027
|
const isEnabled$1 = (option) => option !== false;
|
17700
18028
|
|
17701
|
-
// Copyright (c) Microsoft Corporation.
|
17702
|
-
// Licensed under the MIT license.
|
17703
|
-
/**
|
17704
|
-
* @private
|
17705
|
-
*/
|
17706
|
-
const compositeOuterContainerStyles = {
|
17707
|
-
root: {
|
17708
|
-
width: '100%',
|
17709
|
-
// Create a new stacking context so that DrawerMenu can be positioned absolutely.
|
17710
|
-
position: 'relative'
|
17711
|
-
}
|
17712
|
-
};
|
17713
|
-
/** @private */
|
17714
|
-
const callCompositeContainerStyles = {
|
17715
|
-
root: {
|
17716
|
-
// Start a new stacking context so that any `position:absolute` elements
|
17717
|
-
// inside the call composite do not compete with its siblings.
|
17718
|
-
position: 'relative'
|
17719
|
-
}
|
17720
|
-
};
|
17721
|
-
/** @private */
|
17722
|
-
const controlBarContainerStyles = {
|
17723
|
-
root: {
|
17724
|
-
// Start a new stacking context so that any `position:absolute` elements
|
17725
|
-
// inside the control bar do not compete with its siblings.
|
17726
|
-
position: 'relative'
|
17727
|
-
}
|
17728
|
-
};
|
17729
|
-
/** @private */
|
17730
|
-
const drawerContainerStyles = {
|
17731
|
-
root: {
|
17732
|
-
position: 'absolute',
|
17733
|
-
top: 0,
|
17734
|
-
left: 0,
|
17735
|
-
width: '100%',
|
17736
|
-
height: '100%',
|
17737
|
-
// Any zIndex > 0 will work because this is the only absolutely
|
17738
|
-
// positioned element in the container.
|
17739
|
-
zIndex: 1
|
17740
|
-
}
|
17741
|
-
};
|
17742
|
-
|
17743
18029
|
// Copyright (c) Microsoft Corporation.
|
17744
18030
|
// Licensed under the MIT license.
|
17745
18031
|
var __awaiter$3 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
@@ -18157,7 +18443,7 @@ const CallWithChatPane = (props) => {
|
|
18157
18443
|
React__default['default'].createElement(react.Stack, { styles: props.activePane === 'chat' ? availableSpaceStyles : hiddenStyles }, chatContent),
|
18158
18444
|
React__default['default'].createElement(react.Stack, { styles: props.activePane === 'people' ? availableSpaceStyles : hiddenStyles }, peopleContent)))),
|
18159
18445
|
props.mobileView && (React__default['default'].createElement(ModalLocalAndRemotePIP, { callAdapter: props.callAdapter, modalLayerHostId: props.modalLayerHostId, hidden: hidden, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition })),
|
18160
|
-
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles },
|
18446
|
+
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
|
18161
18447
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems })))));
|
18162
18448
|
};
|
18163
18449
|
|
@@ -18270,7 +18556,7 @@ const CallWithChatScreen = (props) => {
|
|
18270
18556
|
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, callControls: props.callControls, containerHeight: containerHeight, containerWidth: containerWidth })))),
|
18271
18557
|
showControlBar && showDrawer && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
|
18272
18558
|
React__default['default'].createElement(CallAdapterProvider, { adapter: callAdapter },
|
18273
|
-
React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles },
|
18559
|
+
React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
|
18274
18560
|
React__default['default'].createElement(PreparedMoreDrawer, { callControls: props.callControls, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked }))))),
|
18275
18561
|
// This layer host is for ModalLocalAndRemotePIP in CallWithChatPane. This LayerHost cannot be inside the CallWithChatPane
|
18276
18562
|
// because when the CallWithChatPane is hidden, ie. style property display is 'none', it takes up no space. This causes problems when dragging
|