@azure/communication-react 1.3.3-alpha-202209220018.0 → 1.3.3-alpha-202210070024.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 +258 -12
- package/dist/dist-cjs/communication-react/index.js +323 -113
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/identifier.d.ts +5 -0
- package/dist/dist-esm/acs-ui-common/src/identifier.js +10 -0
- package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -1
- package/dist/dist-esm/acs-ui-common/src/index.js +1 -1
- 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/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +7 -8
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +12 -4
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +2 -1
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +7 -0
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/index.d.ts +0 -1
- package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js +21 -1
- package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +4 -1
- package/dist/dist-esm/communication-react/src/index.js +2 -0
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/BrowserPermissionDenied.d.ts +69 -0
- package/dist/dist-esm/react-components/src/components/BrowserPermissionDenied.js +35 -0
- package/dist/dist-esm/react-components/src/components/BrowserPermissionDenied.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.d.ts +75 -0
- package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.js +57 -0
- package/dist/dist-esm/react-components/src/components/BrowserPermissionDeniedIOS.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/CameraButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.d.ts +71 -0
- package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.js +26 -0
- package/dist/dist-esm/react-components/src/components/DevicePermissionDropdown.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/DevicesButton.js +4 -2
- package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/DomainPermissions.d.ts +8 -0
- package/dist/dist-esm/react-components/src/components/DomainPermissions.js +4 -3
- package/dist/dist-esm/react-components/src/components/DomainPermissions.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.d.ts +4 -4
- package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js +2 -2
- package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/HoldButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js +2 -6
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +2 -2
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +3 -3
- package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +13 -4
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.d.ts +8 -0
- package/dist/dist-esm/react-components/src/components/index.js +6 -0
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.d.ts +58 -0
- package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js +144 -0
- package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js +5 -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/DomainPermissions.styles.d.ts +5 -1
- package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js +12 -1
- package/dist/dist-esm/react-components/src/components/styles/DomainPermissions.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +6 -0
- 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 +24 -2
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +5 -0
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js +15 -2
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
- package/dist/dist-esm/react-components/src/theming/icons.js +12 -1
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +8 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +10 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +15 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +27 -17
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.d.ts +15 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js +28 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageCameraDropdown.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.d.ts +15 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js +30 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationpageMicDropdown.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +59 -29
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +10 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +9 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +13 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +3 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +11 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +4 -4
- package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.d.ts +2 -5
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +26 -12
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +2 -0
- package/package.json +10 -10
@@ -188,11 +188,21 @@ const fromFlatCommunicationIdentifier = (id) => {
|
|
188
188
|
}
|
189
189
|
return { id };
|
190
190
|
};
|
191
|
+
/**
|
192
|
+
* Returns a CommunicationIdentifier.
|
193
|
+
* @internal
|
194
|
+
*/
|
195
|
+
const _toCommunicationIdentifier = (id) => {
|
196
|
+
if (typeof id === 'string') {
|
197
|
+
return fromFlatCommunicationIdentifier(id);
|
198
|
+
}
|
199
|
+
return id;
|
200
|
+
};
|
191
201
|
|
192
202
|
// Copyright (c) Microsoft Corporation.
|
193
203
|
// Licensed under the MIT license.
|
194
204
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
195
|
-
var telemetryVersion = '1.3.3-alpha-
|
205
|
+
var telemetryVersion = '1.3.3-alpha-202210070024.0';
|
196
206
|
|
197
207
|
// Copyright (c) Microsoft Corporation.
|
198
208
|
/**
|
@@ -619,7 +629,6 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
619
629
|
}
|
620
630
|
}
|
621
631
|
});
|
622
|
-
// FIXME: onStartCall API should use string, not the underlying SDK types.
|
623
632
|
const onStartCall = (participants, options) => {
|
624
633
|
return callAgent ? callAgent.startCall(participants, options) : undefined;
|
625
634
|
};
|
@@ -748,7 +757,8 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
748
757
|
yield disposeAllLocalPreviewViews(callClient);
|
749
758
|
});
|
750
759
|
const onRemoveParticipant = (userId) => __awaiter$v(void 0, void 0, void 0, function* () {
|
751
|
-
|
760
|
+
const participant = _toCommunicationIdentifier(userId);
|
761
|
+
yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
|
752
762
|
});
|
753
763
|
/* @conditional-compile-remove(PSTN-calls) */
|
754
764
|
const onAddParticipant = (participant, options) => __awaiter$v(void 0, void 0, void 0, function* () {
|
@@ -764,6 +774,12 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
764
774
|
});
|
765
775
|
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
766
776
|
const onSendDtmfTone = (dtmfTone) => __awaiter$v(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
|
777
|
+
/* @conditional-compile-remove(call-readiness) */
|
778
|
+
const askDevicePermission = (constrain) => __awaiter$v(void 0, void 0, void 0, function* () {
|
779
|
+
if (deviceManager) {
|
780
|
+
yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
|
781
|
+
}
|
782
|
+
});
|
767
783
|
return {
|
768
784
|
onHangUp,
|
769
785
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -785,7 +801,9 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
785
801
|
onStartLocalVideo,
|
786
802
|
onDisposeRemoteStreamView,
|
787
803
|
onDisposeLocalStreamView,
|
788
|
-
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone
|
804
|
+
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone,
|
805
|
+
/* @conditional-compile-remove(call-readiness) */
|
806
|
+
askDevicePermission
|
789
807
|
};
|
790
808
|
});
|
791
809
|
/**
|
@@ -978,7 +996,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
978
996
|
wordBreak: 'break-word'
|
979
997
|
});
|
980
998
|
|
981
|
-
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$d={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var DomainPermissions$1={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"
|
999
|
+
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$d={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var DomainPermissions$1={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Allow Access"};var UnsupportedBrowser$1={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLink:"Need help? Get troubleshooting help"};var BrowserPermissionDenied={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,holdButton:holdButton,videoTile:videoTile,DomainPermissions:DomainPermissions$1,UnsupportedBrowser:UnsupportedBrowser$1,BrowserPermissionDenied:BrowserPermissionDenied,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS};
|
982
1000
|
|
983
1001
|
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};
|
984
1002
|
|
@@ -1976,6 +1994,13 @@ const UnsupportedBrowserWarning = () => {
|
|
1976
1994
|
React__default['default'].createElement("div", { className: react.mergeStyles(scaledIconStyles(theme)) },
|
1977
1995
|
React__default['default'].createElement(reactIcons.Warning20Filled, null))));
|
1978
1996
|
};
|
1997
|
+
/* @conditional-compile-remove(call-readiness) */
|
1998
|
+
const BrowserPermissionDenied20Filled = () => {
|
1999
|
+
const theme = useTheme();
|
2000
|
+
return (React__default['default'].createElement(react.Stack, { horizontalAlign: 'center', styles: { root: { borderRadius: '100%', background: theme.palette.themeLighterAlt, padding: '2rem' } } },
|
2001
|
+
React__default['default'].createElement("div", { className: react.mergeStyles(scaledIconStyles(theme)) },
|
2002
|
+
React__default['default'].createElement(reactIcons.Important20Filled, null))));
|
2003
|
+
};
|
1979
2004
|
/**
|
1980
2005
|
* The default set of icons that are available to use in the UI components.
|
1981
2006
|
*
|
@@ -2050,7 +2075,9 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
2050
2075
|
/* @conditional-compile-remove(call-readiness) */
|
2051
2076
|
DomainPermissionMic: React__default['default'].createElement(DomainPermissionMic20Filled, null),
|
2052
2077
|
/* @conditional-compile-remove(unsupported-browser) */
|
2053
|
-
UnsupportedBrowserWarning: React__default['default'].createElement(UnsupportedBrowserWarning, null)
|
2078
|
+
UnsupportedBrowserWarning: React__default['default'].createElement(UnsupportedBrowserWarning, null),
|
2079
|
+
/* @conditional-compile-remove(call-readiness) */
|
2080
|
+
BrowserPermissionDeniedError: React__default['default'].createElement(BrowserPermissionDenied20Filled, null)
|
2054
2081
|
};
|
2055
2082
|
/* @conditional-compile-remove(unsupported-browser) */
|
2056
2083
|
const scaledIconStyles = (theme) => {
|
@@ -4085,7 +4112,6 @@ const MessageThread = (props) => {
|
|
4085
4112
|
// Fetch message until scrollTop reach the threshold for fetching new message
|
4086
4113
|
while (!isAllChatMessagesLoadedRef.current && chatScrollDivRef.current.scrollTop <= 500) {
|
4087
4114
|
isAllChatMessagesLoadedRef.current = yield onLoadPreviousChatMessages(numberOfChatMessagesToReload);
|
4088
|
-
// Release CPU resources for 200 milliseconds between each loop.
|
4089
4115
|
yield delay(200);
|
4090
4116
|
}
|
4091
4117
|
isLoadingChatMessagesRef.current = false;
|
@@ -4113,11 +4139,8 @@ const MessageThread = (props) => {
|
|
4113
4139
|
if (!chatScrollDivRef.current) {
|
4114
4140
|
return;
|
4115
4141
|
}
|
4116
|
-
|
4117
|
-
|
4118
|
-
chatScrollDivRef.current.scrollTop =
|
4119
|
-
chatScrollDivRef.current.scrollTop + currentHeight - previousHeightRef.current;
|
4120
|
-
}
|
4142
|
+
chatScrollDivRef.current.scrollTop =
|
4143
|
+
chatScrollDivRef.current.scrollHeight - (previousHeightRef.current - previousTopRef.current);
|
4121
4144
|
}, [messages]);
|
4122
4145
|
// Fetch more messages to make the scroll bar appear, infinity scroll is then handled in the handleScroll function.
|
4123
4146
|
React.useEffect(() => {
|
@@ -4568,10 +4591,20 @@ const participantStateStringTrampoline$1 = (props, strings) => {
|
|
4568
4591
|
};
|
4569
4592
|
|
4570
4593
|
// Copyright (c) Microsoft Corporation.
|
4594
|
+
/**
|
4595
|
+
* @internal
|
4596
|
+
*/
|
4597
|
+
const defaultPermissions = {
|
4598
|
+
cameraButton: true,
|
4599
|
+
microphoneButton: true,
|
4600
|
+
screenShare: true,
|
4601
|
+
removeParticipantButton: true
|
4602
|
+
};
|
4571
4603
|
/**
|
4572
4604
|
* @internal
|
4573
4605
|
*/
|
4574
4606
|
const presenterPermissions = {
|
4607
|
+
role: 'Presenter',
|
4575
4608
|
cameraButton: true,
|
4576
4609
|
microphoneButton: true,
|
4577
4610
|
screenShare: true,
|
@@ -4581,6 +4614,7 @@ const presenterPermissions = {
|
|
4581
4614
|
* @internal
|
4582
4615
|
*/
|
4583
4616
|
const consumerPermissions = {
|
4617
|
+
role: 'Consumer',
|
4584
4618
|
cameraButton: false,
|
4585
4619
|
microphoneButton: false,
|
4586
4620
|
screenShare: false,
|
@@ -4590,6 +4624,7 @@ const consumerPermissions = {
|
|
4590
4624
|
* @internal
|
4591
4625
|
*/
|
4592
4626
|
const attendeePermissions = {
|
4627
|
+
role: 'Attendee',
|
4593
4628
|
cameraButton: true,
|
4594
4629
|
microphoneButton: true,
|
4595
4630
|
screenShare: false,
|
@@ -4598,7 +4633,7 @@ const attendeePermissions = {
|
|
4598
4633
|
/**
|
4599
4634
|
* @internal
|
4600
4635
|
*/
|
4601
|
-
const PermissionsContext = React.createContext(
|
4636
|
+
const PermissionsContext = React.createContext(defaultPermissions);
|
4602
4637
|
/**
|
4603
4638
|
* @internal
|
4604
4639
|
*/
|
@@ -4621,9 +4656,10 @@ const _getPermissions = (role) => {
|
|
4621
4656
|
else if (role === 'Attendee') {
|
4622
4657
|
return attendeePermissions;
|
4623
4658
|
}
|
4624
|
-
else {
|
4659
|
+
else if (role === 'Presenter') {
|
4625
4660
|
return presenterPermissions;
|
4626
4661
|
}
|
4662
|
+
return defaultPermissions;
|
4627
4663
|
};
|
4628
4664
|
|
4629
4665
|
// Copyright (c) Microsoft Corporation.
|
@@ -6384,11 +6420,17 @@ const VideoGallery = (props) => {
|
|
6384
6420
|
lastVisibleParticipants: visibleAudioParticipants.current,
|
6385
6421
|
maxDominantSpeakers: MAX_AUDIO_DOMINANT_SPEAKERS
|
6386
6422
|
});
|
6423
|
+
/* @conditional-compile-remove(rooms) */
|
6424
|
+
const permissions = _usePermissions();
|
6387
6425
|
/**
|
6388
6426
|
* Utility function for memoized rendering of LocalParticipant.
|
6389
6427
|
*/
|
6390
6428
|
const localVideoTile = React.useMemo(() => {
|
6391
6429
|
var _a, _b;
|
6430
|
+
/* @conditional-compile-remove(rooms) */
|
6431
|
+
if (!permissions.cameraButton) {
|
6432
|
+
return undefined;
|
6433
|
+
}
|
6392
6434
|
if (onRenderLocalVideoTile) {
|
6393
6435
|
return onRenderLocalVideoTile(localParticipant);
|
6394
6436
|
}
|
@@ -6416,7 +6458,8 @@ const VideoGallery = (props) => {
|
|
6416
6458
|
strings.localVideoSelectedDescription,
|
6417
6459
|
strings.displayNamePlaceholder,
|
6418
6460
|
styles === null || styles === void 0 ? void 0 : styles.localVideo,
|
6419
|
-
theme.effects.roundedCorner4
|
6461
|
+
theme.effects.roundedCorner4,
|
6462
|
+
/* @conditional-compile-remove(rooms) */ permissions.cameraButton
|
6420
6463
|
]);
|
6421
6464
|
const defaultOnRenderVideoTile = React.useCallback((participant, isVideoParticipant) => {
|
6422
6465
|
const remoteVideoStream = participant.videoStream;
|
@@ -6461,7 +6504,7 @@ const VideoGallery = (props) => {
|
|
6461
6504
|
}
|
6462
6505
|
};
|
6463
6506
|
const horizontalGalleryTiles = createHorizontalGalleryTiles();
|
6464
|
-
if (!shouldFloatLocalVideo &&
|
6507
|
+
if (!shouldFloatLocalVideo && localVideoTile) {
|
6465
6508
|
gridTiles.push(localVideoTile);
|
6466
6509
|
}
|
6467
6510
|
const localScreenShareStreamComponent = React__default['default'].createElement(LocalScreenShare, { localParticipant: localParticipant });
|
@@ -6471,10 +6514,10 @@ const VideoGallery = (props) => {
|
|
6471
6514
|
return (React__default['default'].createElement("div", { "data-ui-id": ids.videoGallery, ref: containerRef, className: react.mergeStyles(videoGalleryOuterDivStyle, styles === null || styles === void 0 ? void 0 : styles.root) },
|
6472
6515
|
shouldFloatLocalVideo &&
|
6473
6516
|
!shouldFloatNonDraggableLocalVideo &&
|
6474
|
-
|
6517
|
+
localVideoTile &&
|
6475
6518
|
(horizontalGalleryPresent ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(localVideoTileContainerStyle(theme, isNarrow)) }, localVideoTile)) : (React__default['default'].createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS$1, styles: floatingLocalVideoModalStyle(theme, isNarrow), layerProps: { hostId: layerHostId }, maxDragPosition: modalMaxDragPosition, minDragPosition: modalMinDragPosition }, localVideoTile))),
|
6476
6519
|
// When we use showCameraSwitcherInLocalPreview it disables dragging to allow keyboard navigation.
|
6477
|
-
shouldFloatNonDraggableLocalVideo &&
|
6520
|
+
shouldFloatNonDraggableLocalVideo && localVideoTile && remoteParticipants.length > 0 && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(localVideoTileWithControlsContainerStyle(theme, isNarrow), {
|
6478
6521
|
boxShadow: theme.effects.elevation8,
|
6479
6522
|
zIndex: LOCAL_VIDEO_TILE_ZINDEX
|
6480
6523
|
}) }, localVideoTile)),
|
@@ -6697,9 +6740,9 @@ const ControlBarButton = (props) => {
|
|
6697
6740
|
/**
|
6698
6741
|
* This is a helper component to define and unify icon colors
|
6699
6742
|
*
|
6700
|
-
* @
|
6743
|
+
* @internal
|
6701
6744
|
*/
|
6702
|
-
const
|
6745
|
+
const _HighContrastAwareIcon = (props) => {
|
6703
6746
|
const { iconName, disabled } = props;
|
6704
6747
|
const theme = useTheme();
|
6705
6748
|
// setting colors for the icons using color from theme, so in dark mode or other accessibility modes, they have pre-defined contrast colors
|
@@ -6843,7 +6886,9 @@ const DevicesButton = (props) => {
|
|
6843
6886
|
const localeStrings = useLocale$1().strings.devicesButton;
|
6844
6887
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
6845
6888
|
const devicesButtonMenu = (_a = props.menuProps) !== null && _a !== void 0 ? _a : generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { styles: (_b = props.styles) === null || _b === void 0 ? void 0 : _b.menuStyles }), strings);
|
6846
|
-
const onRenderOptionsIcon = () =>
|
6889
|
+
const onRenderOptionsIcon = () => {
|
6890
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonOptions" });
|
6891
|
+
};
|
6847
6892
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { menuProps: devicesButtonMenu, menuIconProps: { hidden: true }, onRenderIcon: onRenderIcon !== null && onRenderIcon !== void 0 ? onRenderIcon : onRenderOptionsIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'devicesButtonLabel' })));
|
6848
6893
|
};
|
6849
6894
|
|
@@ -6877,8 +6922,8 @@ const CameraButton = (props) => {
|
|
6877
6922
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
6878
6923
|
const [announcerString, setAnnouncerString] = React.useState(undefined);
|
6879
6924
|
const disabled = props.disabled || waitForCamera;
|
6880
|
-
const onRenderCameraOnIcon = () => (React__default['default'].createElement(
|
6881
|
-
const onRenderCameraOffIcon = () => (React__default['default'].createElement(
|
6925
|
+
const onRenderCameraOnIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOn" }));
|
6926
|
+
const onRenderCameraOffIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOff" }));
|
6882
6927
|
if (waitForCamera && strings.tooltipVideoLoadingContent) {
|
6883
6928
|
strings.tooltipDisabledContent = strings.tooltipVideoLoadingContent;
|
6884
6929
|
}
|
@@ -7050,10 +7095,10 @@ const MicrophoneButton = (props) => {
|
|
7050
7095
|
(isSplit && !((_c = props.microphones) === null || _c === void 0 ? void 0 : _c.length) && !((_d = props.speakers) === null || _d === void 0 ? void 0 : _d.length)) ||
|
7051
7096
|
(!isSplit && props.microphones && ((_e = props.microphones) === null || _e === void 0 ? void 0 : _e.length) === 0);
|
7052
7097
|
const onRenderMicOnIcon = () => {
|
7053
|
-
return React__default['default'].createElement(
|
7098
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOn" });
|
7054
7099
|
};
|
7055
7100
|
const onRenderMicOffIcon = () => {
|
7056
|
-
return React__default['default'].createElement(
|
7101
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOff" });
|
7057
7102
|
};
|
7058
7103
|
const isMicOn = props.checked;
|
7059
7104
|
const splitButtonAriaString = isMicOn ? strings.onSplitButtonAriaLabel : strings.offSplitButtonAriaLabel;
|
@@ -7135,7 +7180,7 @@ const secondaryTextStyles$2 = {
|
|
7135
7180
|
root: {
|
7136
7181
|
margin: 'auto',
|
7137
7182
|
fontWeight: 400,
|
7138
|
-
paddingBottom:
|
7183
|
+
paddingBottom: _pxToRem(22)
|
7139
7184
|
}
|
7140
7185
|
};
|
7141
7186
|
/**
|
@@ -7148,11 +7193,22 @@ const linkTextStyles$1 = {
|
|
7148
7193
|
textAlign: 'inherit'
|
7149
7194
|
}
|
7150
7195
|
};
|
7196
|
+
/**
|
7197
|
+
* @internal
|
7198
|
+
*/
|
7199
|
+
const primaryButtonStyles = {
|
7200
|
+
root: {
|
7201
|
+
paddingTop: '1.5rem',
|
7202
|
+
paddingBottom: '1.5rem',
|
7203
|
+
borderRadius: '0.5rem',
|
7204
|
+
marginBottom: _pxToRem(22)
|
7205
|
+
}
|
7206
|
+
};
|
7151
7207
|
|
7152
7208
|
// Copyright (c) Microsoft Corporation.
|
7153
7209
|
/* @conditional-compile-remove(call-readiness) */
|
7154
7210
|
const DomainPermissionsContainer = (props) => {
|
7155
|
-
const { appName, onTroubleshootingClick, strings } = props;
|
7211
|
+
const { appName, onTroubleshootingClick, onAllowAccessClick, strings } = props;
|
7156
7212
|
const theme = react.useTheme();
|
7157
7213
|
return (React__default['default'].createElement(react.Stack, { style: { padding: '2rem', maxWidth: '25.375rem' } },
|
7158
7214
|
React__default['default'].createElement(react.Stack, { horizontal: true, style: { paddingBottom: '1rem' }, horizontalAlign: 'space-between' },
|
@@ -7165,6 +7221,7 @@ const DomainPermissionsContainer = (props) => {
|
|
7165
7221
|
React__default['default'].createElement(react.Stack, { styles: textContainerStyles },
|
7166
7222
|
React__default['default'].createElement(react.Text, { styles: primaryTextStyles }, _formatString(strings.primaryText, { appName: appName })),
|
7167
7223
|
React__default['default'].createElement(react.Text, { styles: secondaryTextStyles$2 }, strings.secondaryText),
|
7224
|
+
onAllowAccessClick && (React__default['default'].createElement(react.PrimaryButton, { styles: primaryButtonStyles, text: strings.primaryButtonText, onClick: onAllowAccessClick })),
|
7168
7225
|
React__default['default'].createElement(react.Link, { styles: linkTextStyles$1, onClick: onTroubleshootingClick }, strings.linkText))));
|
7169
7226
|
};
|
7170
7227
|
/**
|
@@ -7196,7 +7253,7 @@ const ParticipantsButton = (props) => {
|
|
7196
7253
|
var _a, _b, _c, _d;
|
7197
7254
|
const { callInvitationURL, styles, onMuteAll, onRenderIcon, onRenderParticipantList, participants, myUserId, excludeMe, onRenderParticipant, onRenderAvatar, onRemoveParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
|
7198
7255
|
const disabled = props.disabled;
|
7199
|
-
const onRenderPeopleIcon = () => (React__default['default'].createElement(
|
7256
|
+
const onRenderPeopleIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonParticipants" }));
|
7200
7257
|
const ids = useIdentifiers();
|
7201
7258
|
const onMuteAllCallback = React.useCallback(() => {
|
7202
7259
|
if (onMuteAll) {
|
@@ -7339,8 +7396,8 @@ const ScreenShareButton = (props) => {
|
|
7339
7396
|
const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
|
7340
7397
|
const theme = react.useTheme();
|
7341
7398
|
const styles = screenshareButtonStyles(theme);
|
7342
|
-
const onRenderScreenShareOnIcon = () => (React__default['default'].createElement(
|
7343
|
-
const onRenderScreenShareOffIcon = () => (React__default['default'].createElement(
|
7399
|
+
const onRenderScreenShareOnIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStop" }));
|
7400
|
+
const onRenderScreenShareOffIcon = () => (React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStart" }));
|
7344
7401
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { className: react.mergeStyles(styles, props.styles), onClick: (_a = props.onToggleScreenShare) !== null && _a !== void 0 ? _a : props.onClick, onRenderOnIcon: (_b = props.onRenderOnIcon) !== null && _b !== void 0 ? _b : onRenderScreenShareOnIcon, onRenderOffIcon: (_c = props.onRenderOffIcon) !== null && _c !== void 0 ? _c : onRenderScreenShareOffIcon, strings: strings, labelKey: (_d = props.labelKey) !== null && _d !== void 0 ? _d : 'screenShareButtonLabel', disabled: props.disabled })));
|
7345
7402
|
};
|
7346
7403
|
const screenshareButtonStyles = (theme) => ({
|
@@ -7924,7 +7981,11 @@ const iconButtonStyles = (theme) => {
|
|
7924
7981
|
color: `${theme.palette.black}`
|
7925
7982
|
},
|
7926
7983
|
icon: {
|
7927
|
-
height: 'auto'
|
7984
|
+
height: 'auto',
|
7985
|
+
// Needed to keep the icon vertically centered.
|
7986
|
+
'> span': {
|
7987
|
+
display: 'flex'
|
7988
|
+
}
|
7928
7989
|
}
|
7929
7990
|
};
|
7930
7991
|
};
|
@@ -8200,10 +8261,10 @@ const sanitizeInput = (input) => {
|
|
8200
8261
|
const HoldButton = (props) => {
|
8201
8262
|
const { onToggleHold, strings } = props;
|
8202
8263
|
const onRenderHoldIcon = () => {
|
8203
|
-
return React__default['default'].createElement(
|
8264
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "HoldCallButton" });
|
8204
8265
|
};
|
8205
8266
|
const onRenderResumeIcon = () => {
|
8206
|
-
return React__default['default'].createElement(
|
8267
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ResumeCall" });
|
8207
8268
|
};
|
8208
8269
|
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { strings: strings, onClick: onToggleHold !== null && onToggleHold !== void 0 ? onToggleHold : props.onClick, onRenderOnIcon: onRenderResumeIcon, onRenderOffIcon: onRenderHoldIcon })));
|
8209
8270
|
};
|
@@ -8283,6 +8344,29 @@ const UnsupportedBrowser = (props) => {
|
|
8283
8344
|
return React__default['default'].createElement(UnsupportedBrowserContainer, Object.assign({}, props, { strings: strings }));
|
8284
8345
|
};
|
8285
8346
|
|
8347
|
+
// Copyright (c) Microsoft Corporation.
|
8348
|
+
/**
|
8349
|
+
* A dropdown to trigger device permission prompt
|
8350
|
+
*
|
8351
|
+
* @internal
|
8352
|
+
*/
|
8353
|
+
const _DevicePermissionDropdown = (props) => {
|
8354
|
+
const { icon, askDevicePermission, constrain, strings, options, styles } = props;
|
8355
|
+
const onRenderPlaceholder = () => {
|
8356
|
+
return (React__default['default'].createElement(react.Stack, { horizontal: true, verticalAlign: "center" },
|
8357
|
+
icon,
|
8358
|
+
React__default['default'].createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.placeHolderText)));
|
8359
|
+
};
|
8360
|
+
const onRenderCaretDown = () => {
|
8361
|
+
return React__default['default'].createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.actionButtonContent);
|
8362
|
+
};
|
8363
|
+
return (React__default['default'].createElement(react.Dropdown, { placeholder: strings === null || strings === void 0 ? void 0 : strings.placeHolderText, label: strings === null || strings === void 0 ? void 0 : strings.label, onRenderPlaceholder: onRenderPlaceholder, onRenderCaretDown: onRenderCaretDown, onClick: () => {
|
8364
|
+
if (askDevicePermission) {
|
8365
|
+
askDevicePermission(constrain !== null && constrain !== void 0 ? constrain : { video: true, audio: true });
|
8366
|
+
}
|
8367
|
+
}, options: options !== null && options !== void 0 ? options : [], styles: styles }));
|
8368
|
+
};
|
8369
|
+
|
8286
8370
|
// Copyright (c) Microsoft Corporation.
|
8287
8371
|
// Licensed under the MIT license.
|
8288
8372
|
/**
|
@@ -8693,6 +8777,11 @@ const findSelector$1 = (component) => {
|
|
8693
8777
|
if (component === Dialpad) {
|
8694
8778
|
return emptySelector;
|
8695
8779
|
}
|
8780
|
+
/* @conditional-compile-remove(call-readiness) */
|
8781
|
+
// _DevicePermissionDropdown only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector
|
8782
|
+
if (component === _DevicePermissionDropdown) {
|
8783
|
+
return emptySelector;
|
8784
|
+
}
|
8696
8785
|
switch (component) {
|
8697
8786
|
case VideoGallery:
|
8698
8787
|
return videoGallerySelector;
|
@@ -11503,6 +11592,16 @@ class IncomingCallSubscriber {
|
|
11503
11592
|
}
|
11504
11593
|
|
11505
11594
|
// Copyright (c) Microsoft Corporation.
|
11595
|
+
// Licensed under the MIT license.
|
11596
|
+
(window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
11597
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
11598
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
11599
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
11600
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
11601
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
11602
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
11603
|
+
});
|
11604
|
+
};
|
11506
11605
|
/**
|
11507
11606
|
* ProxyCallAgent proxies CallAgent and saves any returned state in the given context. It will subscribe to all state
|
11508
11607
|
* updates in the CallAgent and in the contained Calls and RemoteParticipants. When dispose is called it will
|
@@ -11656,10 +11755,10 @@ class ProxyCallAgent {
|
|
11656
11755
|
};
|
11657
11756
|
}
|
11658
11757
|
case 'dispose': {
|
11758
|
+
/* @conditional-compile-remove(calling-beta-sdk) */
|
11659
11759
|
return () => {
|
11660
|
-
|
11661
|
-
|
11662
|
-
});
|
11760
|
+
target.dispose();
|
11761
|
+
this.unsubscribe();
|
11663
11762
|
};
|
11664
11763
|
}
|
11665
11764
|
/**
|
@@ -13030,7 +13129,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
13030
13129
|
*/
|
13031
13130
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
13032
13131
|
|
13033
|
-
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",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",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
13132
|
+
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",deniedPermissionToRoomDetails:"You do not have permission to join this room.",deniedPermissionToRoomTitle:"Permission denied to room",peopleButtonLabel:"People",peoplePaneTitle:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",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",roomNotFoundDetails:"Room ID provided is not valid.",roomNotFoundTitle:"Room not found",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
13034
13133
|
|
13035
13134
|
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};
|
13036
13135
|
|
@@ -14989,6 +15088,10 @@ const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
|
|
14989
15088
|
}),
|
14990
15089
|
onDisposeRemoteStreamView: (userId) => __awaiter$a(void 0, void 0, void 0, function* () {
|
14991
15090
|
return adapter.disposeStreamView(userId);
|
15091
|
+
}),
|
15092
|
+
/* @conditional-compile-remove(call-readiness) */
|
15093
|
+
askDevicePermission: (constrain) => __awaiter$a(void 0, void 0, void 0, function* () {
|
15094
|
+
return adapter.askDevicePermission(constrain);
|
14992
15095
|
})
|
14993
15096
|
}));
|
14994
15097
|
|
@@ -15151,13 +15254,21 @@ const Devices = (props) => {
|
|
15151
15254
|
const permissions = _usePermissions();
|
15152
15255
|
/* @conditional-compile-remove(rooms) */
|
15153
15256
|
const locale = useLocale();
|
15257
|
+
/* @conditional-compile-remove(rooms) */
|
15258
|
+
const onlyManageSpeakers = !permissions.microphoneButton && !permissions.cameraButton;
|
15259
|
+
/* @conditional-compile-remove(rooms) */
|
15260
|
+
const onRenderDevicesIcon = () => {
|
15261
|
+
return React__default['default'].createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "OptionsSpeaker" });
|
15262
|
+
};
|
15154
15263
|
return (React__default['default'].createElement(DevicesButton
|
15155
15264
|
/* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */
|
15156
15265
|
, Object.assign({
|
15157
15266
|
/* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */
|
15158
15267
|
persistMenu: true }, devicesButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, "data-ui-id": "calling-composite-devices-button", disabled: props.disabled,
|
15159
15268
|
/* @conditional-compile-remove(rooms) */
|
15160
|
-
strings: getLabelFromPermissions(permissions, locale)
|
15269
|
+
strings: getLabelFromPermissions(permissions, locale),
|
15270
|
+
/* @conditional-compile-remove(rooms) */
|
15271
|
+
onRenderIcon: onlyManageSpeakers ? onRenderDevicesIcon : undefined })));
|
15161
15272
|
};
|
15162
15273
|
/* @conditional-compile-remove(rooms) */
|
15163
15274
|
const getLabelFromPermissions = (permissions, locale) => {
|
@@ -15461,9 +15572,9 @@ const CallControls = (props) => {
|
|
15461
15572
|
const localeStrings = useLocale();
|
15462
15573
|
/* @conditional-compile-remove(one-to-n-calling) */
|
15463
15574
|
const peopleButtonStrings = React.useMemo(() => ({
|
15464
|
-
label: localeStrings.strings.
|
15465
|
-
tooltipOffContent: localeStrings.strings.
|
15466
|
-
tooltipOnContent: localeStrings.strings.
|
15575
|
+
label: localeStrings.strings.call.peopleButtonLabel,
|
15576
|
+
tooltipOffContent: localeStrings.strings.call.peopleButtonTooltipOpen,
|
15577
|
+
tooltipOnContent: localeStrings.strings.call.peopleButtonTooltipClose
|
15467
15578
|
}), [localeStrings]);
|
15468
15579
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
15469
15580
|
const moreButtonStrings = React.useMemo(() => ({
|
@@ -15500,19 +15611,21 @@ const CallControls = (props) => {
|
|
15500
15611
|
['data-ui-id']: 'call-composite-more-menu-people-button'
|
15501
15612
|
});
|
15502
15613
|
}
|
15503
|
-
|
15504
|
-
|
15505
|
-
|
15506
|
-
|
15507
|
-
|
15508
|
-
|
15509
|
-
|
15510
|
-
|
15511
|
-
|
15512
|
-
|
15513
|
-
|
15514
|
-
|
15515
|
-
|
15614
|
+
if (!isRoomsCallTrampoline()) {
|
15615
|
+
items.push({
|
15616
|
+
key: 'holdButtonKey',
|
15617
|
+
text: localeStrings.component.strings.holdButton.tooltipOffContent,
|
15618
|
+
onClick: () => {
|
15619
|
+
holdButtonProps.onToggleHold();
|
15620
|
+
},
|
15621
|
+
iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },
|
15622
|
+
itemProps: {
|
15623
|
+
styles: buttonFlyoutIncreasedSizeStyles
|
15624
|
+
},
|
15625
|
+
disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.holdButton),
|
15626
|
+
['data-ui-id']: 'hold-button'
|
15627
|
+
});
|
15628
|
+
}
|
15516
15629
|
/* @conditional-compile-remove(PSTN-calls) */
|
15517
15630
|
// dtmf tone sending only works for 1:1 PSTN call
|
15518
15631
|
if (alternateCallerId) {
|
@@ -15569,11 +15682,18 @@ const CallControls = (props) => {
|
|
15569
15682
|
React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) })),
|
15570
15683
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) })),
|
15571
15684
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15572
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
|
15685
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && moreButtonContextualMenuItems().length > 0 && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
|
15573
15686
|
customButtons['primary'],
|
15574
15687
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
|
15575
15688
|
};
|
15576
15689
|
const isEnabled$2 = (option) => option !== false;
|
15690
|
+
/** @private */
|
15691
|
+
const isRoomsCallTrampoline = () => {
|
15692
|
+
/* @conditional-compile-remove(rooms) */
|
15693
|
+
const rolePermissions = _usePermissions();
|
15694
|
+
/* @conditional-compile-remove(rooms) */
|
15695
|
+
return !!rolePermissions.role;
|
15696
|
+
};
|
15577
15697
|
|
15578
15698
|
// Copyright (c) Microsoft Corporation.
|
15579
15699
|
/**
|
@@ -15938,12 +16058,34 @@ const DRAG_OPTIONS = {
|
|
15938
16058
|
menu: react.ContextualMenu,
|
15939
16059
|
keepInBounds: true
|
15940
16060
|
};
|
15941
|
-
|
16061
|
+
/**
|
16062
|
+
* A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id
|
16063
|
+
* specified by `modalLayerHostId` prop
|
16064
|
+
* @private
|
16065
|
+
*/
|
16066
|
+
const ModalLocalAndRemotePIP = (props) => {
|
15942
16067
|
var _a;
|
15943
16068
|
const rootStyles = props.hidden ? hiddenStyle : PIPContainerStyle;
|
16069
|
+
/* @conditional-compile-remove(rooms) */
|
16070
|
+
const rolePermissions = _usePermissions();
|
15944
16071
|
const pictureInPictureProps = useSelector$1(localAndRemotePIPSelector);
|
15945
16072
|
const pictureInPictureHandlers = useHandlers();
|
15946
|
-
const localAndRemotePIP = React.useMemo(() =>
|
16073
|
+
const localAndRemotePIP = React.useMemo(() => {
|
16074
|
+
var _a;
|
16075
|
+
/* @conditional-compile-remove(rooms) */
|
16076
|
+
if (!rolePermissions.cameraButton && ((_a = pictureInPictureProps.dominantRemoteParticipant) === null || _a === void 0 ? void 0 : _a.userId)) {
|
16077
|
+
return React__default['default'].createElement(_RemoteVideoTile, Object.assign({}, pictureInPictureProps.dominantRemoteParticipant));
|
16078
|
+
}
|
16079
|
+
return React__default['default'].createElement(LocalAndRemotePIP, Object.assign({}, pictureInPictureProps, pictureInPictureHandlers));
|
16080
|
+
}, [
|
16081
|
+
pictureInPictureProps,
|
16082
|
+
pictureInPictureHandlers,
|
16083
|
+
/* @conditional-compile-remove(rooms) */ rolePermissions.cameraButton
|
16084
|
+
]);
|
16085
|
+
/* @conditional-compile-remove(rooms) */
|
16086
|
+
if (!rolePermissions.cameraButton && !pictureInPictureProps.dominantRemoteParticipant) {
|
16087
|
+
return null;
|
16088
|
+
}
|
15947
16089
|
const modalStylesThemed = react.concatStyleSets(modalStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.modal);
|
15948
16090
|
return (React__default['default'].createElement(react.Stack, { styles: rootStyles },
|
15949
16091
|
React__default['default'].createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS, styles: modalStylesThemed, layerProps: { hostId: props.modalLayerHostId }, minDragPosition: props.minDragPosition, maxDragPosition: props.maxDragPosition },
|
@@ -15951,15 +16093,6 @@ const _ModalLocalAndRemotePIP = (props) => {
|
|
15951
16093
|
// possession of the dominant remote participant video stream
|
15952
16094
|
!props.hidden && localAndRemotePIP)));
|
15953
16095
|
};
|
15954
|
-
/**
|
15955
|
-
* A wrapping component with a draggable {@link LocalAndRemotePIP} component that is bound to a LayerHost component with id
|
15956
|
-
* specified by `modalLayerHostId` prop
|
15957
|
-
* @private
|
15958
|
-
*/
|
15959
|
-
const ModalLocalAndRemotePIP = (props) => {
|
15960
|
-
return (React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
15961
|
-
React__default['default'].createElement(_ModalLocalAndRemotePIP, Object.assign({}, props), props.children)));
|
15962
|
-
};
|
15963
16096
|
|
15964
16097
|
// Copyright (c) Microsoft Corporation.
|
15965
16098
|
/**
|
@@ -16259,8 +16392,8 @@ const AddPeopleDropdown = (props) => {
|
|
16259
16392
|
if (mobileView) {
|
16260
16393
|
return (React__default['default'].createElement(react.Stack, null,
|
16261
16394
|
React__default['default'].createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
|
16262
|
-
React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
|
16263
|
-
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" })),
|
16395
|
+
defaultMenuProps.items.length > 0 && (React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
|
16396
|
+
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" }))),
|
16264
16397
|
addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-add-people-dropdown" },
|
16265
16398
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
|
16266
16399
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }))));
|
@@ -16268,8 +16401,8 @@ const AddPeopleDropdown = (props) => {
|
|
16268
16401
|
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Stack, null,
|
16269
16402
|
React__default['default'].createElement(Announcer, { ariaLive: 'assertive', announcementString: announcerStrings }),
|
16270
16403
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId })),
|
16271
|
-
React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
16272
|
-
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" })))));
|
16404
|
+
defaultMenuProps.items.length > 0 && (React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
16405
|
+
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" }))))));
|
16273
16406
|
};
|
16274
16407
|
function PeoplePaneOpenDialpadIconNameTrampoline() {
|
16275
16408
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -16587,7 +16720,8 @@ const CallPane = (props) => {
|
|
16587
16720
|
onAddParticipant: addParticipantToCall, setDrawerMenuItems: setDrawerMenuItems, strings: strings,
|
16588
16721
|
/* @conditional-compile-remove(PSTN-calls) */
|
16589
16722
|
alternateCallerId: alternateCallerId }))))))),
|
16590
|
-
props.mobileView && (React__default['default'].createElement(
|
16723
|
+
props.mobileView && (React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
16724
|
+
React__default['default'].createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !props.activePane, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition }))),
|
16591
16725
|
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles },
|
16592
16726
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems })))));
|
16593
16727
|
};
|
@@ -17067,6 +17201,44 @@ const optionIconStyles = react.mergeStyles({
|
|
17067
17201
|
verticalAlign: 'text-top'
|
17068
17202
|
});
|
17069
17203
|
|
17204
|
+
// Copyright (c) Microsoft Corporation.
|
17205
|
+
/**
|
17206
|
+
* @private
|
17207
|
+
*/
|
17208
|
+
const ConfigurationpageCameraDropdown = (props) => {
|
17209
|
+
/* @conditional-compile-remove(call-readiness) */
|
17210
|
+
const theme = useTheme();
|
17211
|
+
/* @conditional-compile-remove(call-readiness) */
|
17212
|
+
const devicePermissionDropdownStringsCamera = {
|
17213
|
+
placeHolderText: 'Enable Camera (optional)',
|
17214
|
+
actionButtonContent: 'Allow'
|
17215
|
+
};
|
17216
|
+
/* @conditional-compile-remove(call-readiness) */
|
17217
|
+
const cameraBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, Object.assign({ styles: dropDownStyles(theme), constrain: { video: true, audio: false }, strings: devicePermissionDropdownStringsCamera, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonCameraOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }, props.dropdownProps)));
|
17218
|
+
/* @conditional-compile-remove(call-readiness) */
|
17219
|
+
return React__default['default'].createElement(React__default['default'].Fragment, null, props.cameraPermissionGranted ? props.cameraGrantedDropdown : cameraBlockedDropdown);
|
17220
|
+
};
|
17221
|
+
|
17222
|
+
// Copyright (c) Microsoft Corporation.
|
17223
|
+
/**
|
17224
|
+
* @private
|
17225
|
+
*/
|
17226
|
+
const ConfigurationpageMicDropdown = (props) => {
|
17227
|
+
/* @conditional-compile-remove(call-readiness) */
|
17228
|
+
const theme = useTheme();
|
17229
|
+
/* @conditional-compile-remove(call-readiness) */
|
17230
|
+
const devicePermissionDropdownStringsMicrophone = {
|
17231
|
+
placeHolderText: 'Enable Microphone (required)',
|
17232
|
+
actionButtonContent: 'Allow'
|
17233
|
+
};
|
17234
|
+
/* @conditional-compile-remove(call-readiness) */
|
17235
|
+
const microphoneBlockedDropdown = (React__default['default'].createElement(_DevicePermissionDropdown, Object.assign({ styles: dropDownStyles(theme), constrain: { video: false, audio: true }, strings: devicePermissionDropdownStringsMicrophone, icon: React__default['default'].createElement(CallCompositeIcon, { iconName: "ControlButtonMicOn", style: { height: '1.25rem', marginRight: '0.625rem' } }) }, props.dropdownProps)));
|
17236
|
+
/* @conditional-compile-remove(call-readiness) */
|
17237
|
+
return React__default['default'].createElement(React__default['default'].Fragment, null,
|
17238
|
+
" ",
|
17239
|
+
props.micPermissionGranted ? props.micGrantedDropdown : microphoneBlockedDropdown);
|
17240
|
+
};
|
17241
|
+
|
17070
17242
|
// Copyright (c) Microsoft Corporation.
|
17071
17243
|
const getDropDownList = (list) => {
|
17072
17244
|
// Remove duplicates
|
@@ -17114,46 +17286,68 @@ const LocalDeviceSettings = (props) => {
|
|
17114
17286
|
var _a;
|
17115
17287
|
const theme = useTheme();
|
17116
17288
|
const locale = useLocale();
|
17289
|
+
/* @conditional-compile-remove(call-readiness) */
|
17290
|
+
const adapter = useAdapter();
|
17117
17291
|
const defaultPlaceHolder = locale.strings.call.defaultPlaceHolder;
|
17118
17292
|
const cameraLabel = locale.strings.call.cameraLabel;
|
17119
17293
|
const soundLabel = locale.strings.call.soundLabel;
|
17120
|
-
|
17121
|
-
|
17294
|
+
const cameraPermissionGranted = props.cameraPermissionGranted;
|
17295
|
+
const micPermissionGranted = props.microphonePermissionGranted;
|
17296
|
+
let roleCanUseCamera = true;
|
17297
|
+
let roleCanUseMic = true;
|
17122
17298
|
/* @conditional-compile-remove(rooms) */
|
17123
|
-
const
|
17299
|
+
const rolePermissions = _usePermissions();
|
17124
17300
|
/* @conditional-compile-remove(rooms) */
|
17125
|
-
|
17301
|
+
roleCanUseCamera = rolePermissions.cameraButton;
|
17126
17302
|
/* @conditional-compile-remove(rooms) */
|
17127
|
-
|
17303
|
+
roleCanUseMic = rolePermissions.microphoneButton;
|
17128
17304
|
// TODO: speaker permission is tied to microphone permission (when you request 'audio' permission using the SDK) its
|
17129
17305
|
// actually granting access to query both microphone and speaker. However the browser popup asks you explicity for
|
17130
17306
|
// 'microphone'. This needs investigation on how we want to handle this and maybe needs follow up with SDK team.
|
17307
|
+
/* @conditional-compile-remove(call-readiness) */
|
17308
|
+
React.useEffect(() => {
|
17309
|
+
if (cameraPermissionGranted) {
|
17310
|
+
adapter.queryCameras();
|
17311
|
+
}
|
17312
|
+
if (micPermissionGranted) {
|
17313
|
+
adapter.queryMicrophones();
|
17314
|
+
}
|
17315
|
+
adapter.querySpeakers();
|
17316
|
+
}, [adapter, cameraPermissionGranted, micPermissionGranted]);
|
17317
|
+
/* @conditional-compile-remove(call-readiness) */
|
17318
|
+
const dropdownProps = usePropsFor$1(_DevicePermissionDropdown);
|
17319
|
+
const cameraGrantedDropdown = (React__default['default'].createElement(react.Dropdown, { "data-ui-id": "call-composite-local-camera-settings", "aria-labelledby": 'call-composite-local-camera-settings-label', placeholder: defaultPlaceHolder, options: cameraPermissionGranted ? getDropDownList(props.cameras) : [{ key: 'deniedOrUnknown', text: '' }], styles: dropDownStyles(theme), disabled: !cameraPermissionGranted, errorMessage: props.cameraPermissionGranted === undefined || props.cameraPermissionGranted
|
17320
|
+
? undefined
|
17321
|
+
: locale.strings.call.cameraPermissionDenied, defaultSelectedKey: micPermissionGranted
|
17322
|
+
? props.selectedCamera
|
17323
|
+
? props.selectedCamera.id
|
17324
|
+
: props.cameras
|
17325
|
+
? (_a = props.cameras[0]) === null || _a === void 0 ? void 0 : _a.id
|
17326
|
+
: ''
|
17327
|
+
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17328
|
+
props.onSelectCamera(props.cameras[index !== null && index !== void 0 ? index : 0], localVideoViewOptions);
|
17329
|
+
}, onRenderTitle: (props) => onRenderTitle('Camera', props) }));
|
17330
|
+
const micGrantedDropdown = (React__default['default'].createElement(React__default['default'].Fragment, null, roleCanUseMic && (React__default['default'].createElement(react.Dropdown, { "aria-labelledby": 'call-composite-local-sound-settings-label', placeholder: defaultPlaceHolder, styles: dropDownStyles(theme), disabled: !micPermissionGranted, errorMessage: props.microphonePermissionGranted === undefined || props.microphonePermissionGranted
|
17331
|
+
? undefined
|
17332
|
+
: locale.strings.call.microphonePermissionDenied, options: micPermissionGranted ? getDropDownList(props.microphones) : [{ key: 'deniedOrUnknown', text: '' }], defaultSelectedKey: micPermissionGranted
|
17333
|
+
? props.selectedMicrophone
|
17334
|
+
? props.selectedMicrophone.id
|
17335
|
+
: defaultDeviceId(props.microphones)
|
17336
|
+
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17337
|
+
props.onSelectMicrophone(props.microphones[index !== null && index !== void 0 ? index : 0]);
|
17338
|
+
}, onRenderTitle: (props) => onRenderTitle('Microphone', props) }))));
|
17131
17339
|
return (React__default['default'].createElement(react.Stack, { "data-ui-id": "call-composite-device-settings", tokens: mainStackTokens },
|
17132
|
-
|
17133
|
-
React__default['default'].createElement(react.Label, { id: 'call-composite-local-camera-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !
|
17134
|
-
React__default['default'].createElement(
|
17135
|
-
|
17136
|
-
|
17137
|
-
? props.selectedCamera
|
17138
|
-
? props.selectedCamera.id
|
17139
|
-
: props.cameras
|
17140
|
-
? (_a = props.cameras[0]) === null || _a === void 0 ? void 0 : _a.id
|
17141
|
-
: ''
|
17142
|
-
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17143
|
-
props.onSelectCamera(props.cameras[index !== null && index !== void 0 ? index : 0], localVideoViewOptions);
|
17144
|
-
}, onRenderTitle: (props) => onRenderTitle('Camera', props) }))),
|
17340
|
+
roleCanUseCamera && (React__default['default'].createElement(react.Stack, null,
|
17341
|
+
React__default['default'].createElement(react.Label, { id: 'call-composite-local-camera-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !cameraPermissionGranted }, cameraLabel),
|
17342
|
+
React__default['default'].createElement(ConfigurationpageCameraDropdown, { cameraGrantedDropdown: cameraGrantedDropdown, cameraPermissionGranted: cameraPermissionGranted !== null && cameraPermissionGranted !== void 0 ? cameraPermissionGranted : false,
|
17343
|
+
/* @conditional-compile-remove(call-readiness) */
|
17344
|
+
dropdownProps: dropdownProps }))),
|
17145
17345
|
React__default['default'].createElement(react.Stack, null,
|
17146
|
-
React__default['default'].createElement(react.Label, { id: 'call-composite-local-sound-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !
|
17346
|
+
React__default['default'].createElement(react.Label, { id: 'call-composite-local-sound-settings-label', className: react.mergeStyles(dropDownStyles(theme).label), disabled: !micPermissionGranted }, soundLabel),
|
17147
17347
|
React__default['default'].createElement(react.Stack, { "data-ui-id": "call-composite-sound-settings", tokens: mainStackTokens },
|
17148
|
-
|
17149
|
-
|
17150
|
-
|
17151
|
-
? props.selectedMicrophone
|
17152
|
-
? props.selectedMicrophone.id
|
17153
|
-
: defaultDeviceId(props.microphones)
|
17154
|
-
: 'deniedOrUnknown', onChange: (event, option, index) => {
|
17155
|
-
props.onSelectMicrophone(props.microphones[index !== null && index !== void 0 ? index : 0]);
|
17156
|
-
}, onRenderTitle: (props) => onRenderTitle('Microphone', props) })),
|
17348
|
+
React__default['default'].createElement(ConfigurationpageMicDropdown, { micGrantedDropdown: micGrantedDropdown, micPermissionGranted: micPermissionGranted !== null && micPermissionGranted !== void 0 ? micPermissionGranted : false,
|
17349
|
+
/* @conditional-compile-remove(call-readiness) */
|
17350
|
+
dropdownProps: dropdownProps }),
|
17157
17351
|
React__default['default'].createElement(react.Dropdown, { "aria-labelledby": 'call-composite-local-sound-settings-label', placeholder: defaultPlaceHolder, styles: dropDownStyles(theme), disabled: props.speakers.length === 0, options: getDropDownList(props.speakers), defaultSelectedKey: props.selectedSpeaker ? props.selectedSpeaker.id : defaultDeviceId(props.speakers), onChange: (event, option, index) => {
|
17158
17352
|
props.onSelectSpeaker(props.speakers[index !== null && index !== void 0 ? index : 0]);
|
17159
17353
|
}, onRenderTitle: (props) => onRenderTitle('Speaker', props) })))));
|
@@ -18071,7 +18265,7 @@ class CallContext {
|
|
18071
18265
|
this.emitter.off('callEnded', handler);
|
18072
18266
|
}
|
18073
18267
|
updateClientState(clientState) {
|
18074
|
-
var _a
|
18268
|
+
var _a;
|
18075
18269
|
const call = this.callId ? clientState.calls[this.callId] : undefined;
|
18076
18270
|
const latestEndedCall = findLatestEndedCall(clientState.callsEnded);
|
18077
18271
|
// As the state is transitioning to a new state, trigger appropriate callback events.
|
@@ -18079,13 +18273,11 @@ class CallContext {
|
|
18079
18273
|
const newPage = getCallCompositePage(call, latestEndedCall);
|
18080
18274
|
if (!IsCallEndedPage(oldPage) && IsCallEndedPage(newPage)) {
|
18081
18275
|
this.emitter.emit('callEnded', {
|
18082
|
-
callId: this.callId
|
18083
|
-
callEndedCode: (_a = latestEndedCall === null || latestEndedCall === void 0 ? void 0 : latestEndedCall.callEndReason) === null || _a === void 0 ? void 0 : _a.code,
|
18084
|
-
callEndedSubCode: (_b = latestEndedCall === null || latestEndedCall === void 0 ? void 0 : latestEndedCall.callEndReason) === null || _b === void 0 ? void 0 : _b.subCode
|
18276
|
+
callId: this.callId
|
18085
18277
|
});
|
18086
18278
|
}
|
18087
18279
|
if (this.state.page) {
|
18088
|
-
this.setState(Object.assign(Object.assign({}, this.state), { userId: clientState.userId, displayName: (
|
18280
|
+
this.setState(Object.assign(Object.assign({}, this.state), { userId: clientState.userId, displayName: (_a = clientState.callAgent) === null || _a === void 0 ? void 0 : _a.displayName, call, page: newPage, endedCall: latestEndedCall, devices: clientState.deviceManager, latestErrors: clientState.latestErrors }));
|
18089
18281
|
}
|
18090
18282
|
}
|
18091
18283
|
}
|
@@ -18400,10 +18592,10 @@ class AzureCommunicationCallAdapter {
|
|
18400
18592
|
const idsToAdd = participants.map((participant) => {
|
18401
18593
|
// FIXME: `onStartCall` does not allow a Teams user.
|
18402
18594
|
// Need some way to return an error if a Teams user is provided.
|
18403
|
-
const backendId =
|
18595
|
+
const backendId = _toCommunicationIdentifier(participant);
|
18404
18596
|
if (communicationCommon.isPhoneNumberIdentifier(backendId)) {
|
18405
18597
|
if ((options === null || options === void 0 ? void 0 : options.alternateCallerId) === undefined) {
|
18406
|
-
throw new Error('
|
18598
|
+
throw new Error('Unable to start call, PSTN user present with no alternateCallerId.');
|
18407
18599
|
}
|
18408
18600
|
return backendId;
|
18409
18601
|
}
|
@@ -18429,7 +18621,10 @@ class AzureCommunicationCallAdapter {
|
|
18429
18621
|
}
|
18430
18622
|
removeParticipant(userId) {
|
18431
18623
|
return __awaiter$4(this, void 0, void 0, function* () {
|
18432
|
-
|
18624
|
+
let participant = userId;
|
18625
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18626
|
+
participant = _toCommunicationIdentifier(userId);
|
18627
|
+
this.handlers.onRemoveParticipant(participant);
|
18433
18628
|
});
|
18434
18629
|
}
|
18435
18630
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -19212,7 +19407,10 @@ class CallWithChatBackedCallAdapter {
|
|
19212
19407
|
};
|
19213
19408
|
this.leaveCall = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.leaveCall(); });
|
19214
19409
|
this.startCall = (participants, options) => {
|
19215
|
-
|
19410
|
+
let communicationParticipants = participants;
|
19411
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
19412
|
+
communicationParticipants = participants.map(_toCommunicationIdentifier);
|
19413
|
+
return this.callWithChatAdapter.startCall(communicationParticipants, options);
|
19216
19414
|
};
|
19217
19415
|
this.setCamera = (sourceId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setCamera(sourceId, options); });
|
19218
19416
|
this.setMicrophone = (sourceId) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.setMicrophone(sourceId); });
|
@@ -19227,7 +19425,12 @@ class CallWithChatBackedCallAdapter {
|
|
19227
19425
|
this.unmute = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.unmute(); });
|
19228
19426
|
this.startScreenShare = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.startScreenShare(); });
|
19229
19427
|
this.stopScreenShare = () => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.stopScreenShare(); });
|
19230
|
-
this.removeParticipant = (userId) => __awaiter$3(this, void 0, void 0, function* () {
|
19428
|
+
this.removeParticipant = (userId) => __awaiter$3(this, void 0, void 0, function* () {
|
19429
|
+
let participant = userId;
|
19430
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
19431
|
+
participant = _toCommunicationIdentifier(userId);
|
19432
|
+
yield this.callWithChatAdapter.removeParticipant(participant);
|
19433
|
+
});
|
19231
19434
|
this.createStreamView = (remoteUserId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.createStreamView(remoteUserId, options); });
|
19232
19435
|
this.disposeStreamView = (remoteUserId, options) => __awaiter$3(this, void 0, void 0, function* () { return yield this.callWithChatAdapter.disposeStreamView(remoteUserId, options); });
|
19233
19436
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -19621,7 +19824,8 @@ const CallWithChatPane = (props) => {
|
|
19621
19824
|
React__default['default'].createElement(react.Stack.Item, { verticalFill: true, styles: scrollableContainerContents },
|
19622
19825
|
React__default['default'].createElement(react.Stack, { styles: props.activePane === 'chat' ? availableSpaceStyles : hiddenStyles }, chatContent),
|
19623
19826
|
React__default['default'].createElement(react.Stack, { styles: props.activePane === 'people' ? availableSpaceStyles : hiddenStyles }, peopleContent)))),
|
19624
|
-
props.mobileView && (React__default['default'].createElement(
|
19827
|
+
props.mobileView && (React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
19828
|
+
React__default['default'].createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: hidden, styles: pipStyles, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition }))),
|
19625
19829
|
drawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
|
19626
19830
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItems([]), items: drawerMenuItems })))));
|
19627
19831
|
};
|
@@ -20039,7 +20243,10 @@ class AzureCommunicationCallWithChatAdapter {
|
|
20039
20243
|
}
|
20040
20244
|
/** Start a new Call. */
|
20041
20245
|
startCall(participants, options) {
|
20042
|
-
|
20246
|
+
let communicationParticipants = participants;
|
20247
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
20248
|
+
communicationParticipants = participants.map(_toCommunicationIdentifier);
|
20249
|
+
return this.callAdapter.startCall(communicationParticipants, options);
|
20043
20250
|
}
|
20044
20251
|
/**
|
20045
20252
|
* Subscribe to state change events.
|
@@ -20069,8 +20276,10 @@ class AzureCommunicationCallWithChatAdapter {
|
|
20069
20276
|
/** Remove a participant from the Call only. */
|
20070
20277
|
removeParticipant(userId) {
|
20071
20278
|
return __awaiter(this, void 0, void 0, function* () {
|
20072
|
-
|
20073
|
-
|
20279
|
+
let participant = userId;
|
20280
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
20281
|
+
participant = _toCommunicationIdentifier(userId);
|
20282
|
+
yield this.callAdapter.removeParticipant(participant);
|
20074
20283
|
});
|
20075
20284
|
}
|
20076
20285
|
setCamera(device, options) {
|
@@ -20638,6 +20847,7 @@ exports.TypingIndicator = TypingIndicator;
|
|
20638
20847
|
exports.UnsupportedBrowser = UnsupportedBrowser;
|
20639
20848
|
exports.VideoGallery = VideoGallery;
|
20640
20849
|
exports.VideoTile = VideoTile;
|
20850
|
+
exports._DevicePermissionDropdown = _DevicePermissionDropdown;
|
20641
20851
|
exports._IdentifierProvider = _IdentifierProvider;
|
20642
20852
|
exports.createAzureCommunicationCallAdapter = createAzureCommunicationCallAdapter;
|
20643
20853
|
exports.createAzureCommunicationCallAdapterFromClient = createAzureCommunicationCallAdapterFromClient;
|