@azure/communication-react 1.3.2-alpha-202208100014.0 → 1.3.3-alpha-202208160041.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/CHANGELOG.md +10 -5
- package/dist/communication-react.d.ts +47 -4
- package/dist/dist-cjs/communication-react/index.js +577 -124
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +2 -3
- 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.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +2 -2
- package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.js +1 -1
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/CameraButton.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/CameraButton.js +3 -1
- package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts +3 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +5 -5
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/HoldButton.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantItem.js +9 -4
- package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +3 -3
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/StreamMedia.js +1 -1
- package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +46 -16
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.d.ts +8 -0
- package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +17 -0
- package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +3 -0
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts.map +1 -1
- package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +5 -5
- package/dist/dist-esm/react-components/src/theming/icons.js +5 -5
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/OnRender.d.ts +3 -0
- package/dist/dist-esm/react-components/src/types/OnRender.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +13 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +16 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +10 -2
- 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 +8 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +67 -1
- 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/HoldPane.d.ts +12 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +72 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +4 -2
- 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/MediaGallery.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +26 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +11 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.d.ts.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/CallComposite/pages/HoldPage.d.ts +15 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +27 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.d.ts +32 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js +73 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts +40 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js +64 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +5 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +5 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +23 -6
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +8 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +7 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +4 -0
- 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/CallingDialpad.js +5 -5
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite → common}/MoreButton.d.ts +0 -0
- package/dist/dist-esm/react-composites/src/composites/common/MoreButton.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/{CallWithChatComposite → common}/MoreButton.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts +16 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +36 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.d.ts +11 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.d.ts.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js +38 -0
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +5 -1
- package/package.json +8 -8
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/MoreButton.d.ts.map +0 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/MoreButton.js.map +0 -1
@@ -192,7 +192,7 @@ const fromFlatCommunicationIdentifier = (id) => {
|
|
192
192
|
// Copyright (c) Microsoft Corporation.
|
193
193
|
// Licensed under the MIT license.
|
194
194
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
195
|
-
var telemetryVersion = '1.3.
|
195
|
+
var telemetryVersion = '1.3.3-alpha-202208160041.0';
|
196
196
|
|
197
197
|
// Copyright (c) Microsoft Corporation.
|
198
198
|
/**
|
@@ -405,7 +405,7 @@ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
405
405
|
*
|
406
406
|
* @internal
|
407
407
|
*/
|
408
|
-
const _isInCall = (callStatus) => !!callStatus && !['None', 'Disconnected', 'Connecting'].includes(callStatus);
|
408
|
+
const _isInCall = (callStatus) => !!callStatus && !['None', 'Disconnected', 'Connecting', 'LocalHold', 'RemoteHold', 'Ringing'].includes(callStatus);
|
409
409
|
/**
|
410
410
|
* Check if the call state represents being in the lobby or waiting to be admitted.
|
411
411
|
*
|
@@ -759,7 +759,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
759
759
|
yield (call === null || call === void 0 ? void 0 : call.addParticipant(participant));
|
760
760
|
}
|
761
761
|
});
|
762
|
-
/* @conditional-compile-remove(dialpad) */
|
762
|
+
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
763
763
|
const onSendDtmfTone = (dtmfTone) => __awaiter$t(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
|
764
764
|
return {
|
765
765
|
onHangUp,
|
@@ -782,8 +782,7 @@ const createDefaultCallingHandlers = memoizeOne__default['default']((callClient,
|
|
782
782
|
onStartLocalVideo,
|
783
783
|
onDisposeRemoteStreamView,
|
784
784
|
onDisposeLocalStreamView,
|
785
|
-
/* @conditional-compile-remove(dialpad) */
|
786
|
-
onSendDtmfTone
|
785
|
+
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */ onSendDtmfTone
|
787
786
|
};
|
788
787
|
});
|
789
788
|
/**
|
@@ -958,7 +957,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
958
957
|
wordBreak: 'break-word'
|
959
958
|
});
|
960
959
|
|
961
|
-
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On Hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var
|
960
|
+
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On Hold"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On Hold"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,holdButton:holdButton,videoTile:videoTile};
|
962
961
|
|
963
962
|
var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$c={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$c={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$c={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$c={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$c={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options"};var errorBar$c={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad$c={placeholderText:"Enter a number"};var HoldButton$d={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_GB$1 = {participantItem:participantItem$c,typingIndicator:typingIndicator$c,sendBox:sendBox$c,messageStatusIndicator:messageStatusIndicator$c,endCallButton:endCallButton$c,cameraButton:cameraButton$c,microphoneButton:microphoneButton$c,devicesButton:devicesButton$c,participantsButton:participantsButton$c,screenShareButton:screenShareButton$c,messageThread:messageThread$c,errorBar:errorBar$c,videoGallery:videoGallery$c,dialpad:dialpad$c,HoldButton:HoldButton$d};
|
964
963
|
|
@@ -1939,13 +1938,13 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
1939
1938
|
ParticipantItemOptionsHovered: React__default['default'].createElement(reactIcons.MoreHorizontal20Filled, null),
|
1940
1939
|
ParticipantItemScreenShareStart: React__default['default'].createElement(reactIcons.ShareScreenStart20Filled, null),
|
1941
1940
|
/* @conditional-compile-remove(PSTN-calls) */
|
1942
|
-
HoldCall: React__default['default'].createElement(reactIcons.
|
1941
|
+
HoldCall: React__default['default'].createElement(reactIcons.Pause20Regular, null),
|
1943
1942
|
/* @conditional-compile-remove(PSTN-calls) */
|
1944
|
-
ResumeCall: React__default['default'].createElement(reactIcons.
|
1943
|
+
ResumeCall: React__default['default'].createElement(reactIcons.Play20Regular, null),
|
1945
1944
|
SendBoxSend: React__default['default'].createElement(reactIcons.Send20Regular, null),
|
1946
1945
|
SendBoxSendHovered: React__default['default'].createElement(reactIcons.Send20Filled, null),
|
1947
1946
|
VideoTileMicOff: React__default['default'].createElement(reactIcons.MicOff16Filled, null),
|
1948
|
-
/* @conditional-compile-remove(dialpad) */
|
1947
|
+
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
1949
1948
|
BackSpace: React__default['default'].createElement(reactIcons.Backspace20Regular, null)
|
1950
1949
|
};
|
1951
1950
|
|
@@ -4316,7 +4315,7 @@ const StreamMedia = (props) => {
|
|
4316
4315
|
};
|
4317
4316
|
}, [videoStreamElement]);
|
4318
4317
|
return (React__default['default'].createElement("div", { className: container() },
|
4319
|
-
React__default['default'].createElement("div", { className: react.mergeStyles(isMirrored && pipEnabled ? invertedVideoInPipStyle(theme) : mediaContainer(theme), styles === null || styles === void 0 ? void 0 : styles.root), ref: containerEl }),
|
4318
|
+
React__default['default'].createElement("div", { "data-ui-id": "stream-media-container", className: react.mergeStyles(isMirrored && pipEnabled ? invertedVideoInPipStyle(theme) : mediaContainer(theme), styles === null || styles === void 0 ? void 0 : styles.root), ref: containerEl }),
|
4320
4319
|
loadingState === 'loading' && (React__default['default'].createElement("div", { className: loadingSpinnerContainer() },
|
4321
4320
|
React__default['default'].createElement(react.Spinner, { "data-ui-id": "stream-media-loading-spinner", styles: loadSpinnerStyles })))));
|
4322
4321
|
};
|
@@ -4342,6 +4341,23 @@ const participantItemContainerStyle = (options) => {
|
|
4342
4341
|
const menuButtonContainerStyle = {
|
4343
4342
|
width: '1.5rem'
|
4344
4343
|
};
|
4344
|
+
/**
|
4345
|
+
* @private
|
4346
|
+
*/
|
4347
|
+
const participantStateMaxWidth = '5rem';
|
4348
|
+
/**
|
4349
|
+
* @private
|
4350
|
+
*/
|
4351
|
+
const participantStateStringStyles = {
|
4352
|
+
maxWidth: participantStateMaxWidth,
|
4353
|
+
overflow: 'hidden',
|
4354
|
+
textOverflow: 'ellipsis',
|
4355
|
+
whiteSpace: 'nowrap',
|
4356
|
+
lineHeight: 'normal',
|
4357
|
+
paddingLeft: '1rem',
|
4358
|
+
marginLeft: 'auto',
|
4359
|
+
marginRight: 0
|
4360
|
+
};
|
4345
4361
|
/**
|
4346
4362
|
* @private
|
4347
4363
|
*/
|
@@ -4375,7 +4391,9 @@ const meContainerStyle = {
|
|
4375
4391
|
* @public
|
4376
4392
|
*/
|
4377
4393
|
const ParticipantItem = (props) => {
|
4378
|
-
const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip
|
4394
|
+
const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip
|
4395
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
4396
|
+
} = props;
|
4379
4397
|
const [itemHovered, setItemHovered] = React.useState(false);
|
4380
4398
|
const [menuHidden, setMenuHidden] = React.useState(true);
|
4381
4399
|
const containerRef = React.useRef(null);
|
@@ -4411,11 +4429,14 @@ const ParticipantItem = (props) => {
|
|
4411
4429
|
onClick === null || onClick === void 0 ? void 0 : onClick(props);
|
4412
4430
|
}
|
4413
4431
|
}, tabIndex: 0 },
|
4414
|
-
React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles({
|
4432
|
+
React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles({
|
4433
|
+
width: `calc(100% - ${!me && participantStateString ? participantStateMaxWidth : menuButtonContainerStyle.width})`,
|
4434
|
+
alignItems: 'center'
|
4435
|
+
}) },
|
4415
4436
|
avatar,
|
4416
4437
|
me && React__default['default'].createElement(react.Text, { className: meTextStyle }, strings.isMeText),
|
4417
4438
|
React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(infoContainerStyle) }, onRenderIcon && onRenderIcon(props))),
|
4418
|
-
!me && participantStateString ? (React__default['default'].createElement(react.Text,
|
4439
|
+
!me && participantStateString ? (React__default['default'].createElement(react.Text, { "data-ui-id": "participant-item-state-string", className: react.mergeStyles(participantStateStringStyles) }, participantStateString)) : (React__default['default'].createElement("div", null, menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
|
4419
4440
|
menuButton,
|
4420
4441
|
React__default['default'].createElement(react.ContextualMenu, { items: menuItems, hidden: menuHidden, target: containerRef, onItemClick: onDismissMenu, onDismiss: onDismissMenu, directionalHint: react.DirectionalHint.bottomRightEdge, className: contextualMenuStyle, calloutProps: {
|
4421
4442
|
preventDismissOnEvent: _preventDismissOnEvent
|
@@ -4751,7 +4772,7 @@ const displayNameStyle = {
|
|
4751
4772
|
/**
|
4752
4773
|
* @private
|
4753
4774
|
*/
|
4754
|
-
const participantStateStyle = {
|
4775
|
+
const participantStateStyle$1 = {
|
4755
4776
|
textAlign: 'center',
|
4756
4777
|
paddingTop: '0.5rem',
|
4757
4778
|
fontWeight: 600,
|
@@ -4815,7 +4836,7 @@ const DefaultPlaceholder = (props) => {
|
|
4815
4836
|
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
|
4816
4837
|
React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles },
|
4817
4838
|
React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }),
|
4818
|
-
participantStateString && React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, participantStateString))));
|
4839
|
+
participantStateString && React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle$1) }, participantStateString))));
|
4819
4840
|
};
|
4820
4841
|
const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
|
4821
4842
|
/**
|
@@ -4897,7 +4918,7 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
4897
4918
|
isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator,
|
4898
4919
|
/* @conditional-compile-remove(one-to-n-calling) */
|
4899
4920
|
/* @conditional-compile-remove(PSTN-calls) */
|
4900
|
-
|
4921
|
+
participantState } = props;
|
4901
4922
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
4902
4923
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
4903
4924
|
isScreenSharingOn,
|
@@ -4928,12 +4949,12 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
4928
4949
|
// Returning `undefined` results in the placeholder with avatar being shown
|
4929
4950
|
return undefined;
|
4930
4951
|
}
|
4931
|
-
return React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving ? '
|
4952
|
+
return (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' }));
|
4932
4953
|
}, [renderElement, isReceiving]);
|
4933
4954
|
return (React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, showLabel: props.showLabel, personaMinSize: props.personaMinSize,
|
4934
4955
|
/* @conditional-compile-remove(one-to-n-calling) */
|
4935
4956
|
/* @conditional-compile-remove(PSTN-calls) */
|
4936
|
-
participantState:
|
4957
|
+
participantState: participantState }));
|
4937
4958
|
});
|
4938
4959
|
|
4939
4960
|
// Copyright (c) Microsoft Corporation.
|
@@ -5361,7 +5382,7 @@ const RemoteScreenShare = React__default['default'].memo((props) => {
|
|
5361
5382
|
participant: displayName
|
5362
5383
|
})
|
5363
5384
|
: '';
|
5364
|
-
return (React__default['default'].createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving ? '
|
5385
|
+
return (React__default['default'].createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React__default['default'].createElement(LoadingSpinner, { loadingMessage: loadingMessage }) }));
|
5365
5386
|
});
|
5366
5387
|
const LoadingSpinner = (props) => {
|
5367
5388
|
return (React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: loadingStyle },
|
@@ -6139,7 +6160,7 @@ const modalMaxDragPosition = { x: localVideoTileOuterPaddingPX, y: localVideoTil
|
|
6139
6160
|
* @public
|
6140
6161
|
*/
|
6141
6162
|
const VideoGallery = (props) => {
|
6142
|
-
var _a, _b, _c, _d;
|
6163
|
+
var _a, _b, _c, _d, _e;
|
6143
6164
|
const { localParticipant, remoteParticipants = [], localVideoViewOptions, remoteVideoViewOptions, dominantSpeakers, onRenderLocalVideoTile, onRenderRemoteVideoTile, onCreateLocalStreamView, onDisposeLocalStreamView, onCreateRemoteStreamView, onDisposeRemoteStreamView, styles, layout, onRenderAvatar, showMuteIndicator, maxRemoteVideoStreams = DEFAULT_MAX_REMOTE_VIDEO_STREAMS, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps } = props;
|
6144
6165
|
const ids = useIdentifiers();
|
6145
6166
|
const theme = useTheme();
|
@@ -6153,6 +6174,8 @@ const VideoGallery = (props) => {
|
|
6153
6174
|
const isNarrow = containerWidth ? isNarrowWidth(containerWidth) : false;
|
6154
6175
|
const visibleVideoParticipants = React.useRef([]);
|
6155
6176
|
const visibleAudioParticipants = React.useRef([]);
|
6177
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6178
|
+
const visibleCallingParticipants = React.useRef([]);
|
6156
6179
|
const modalWidth = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.width : LARGE_FLOATING_MODAL_SIZE_PX.width;
|
6157
6180
|
const modalHeight = isNarrow ? SMALL_FLOATING_MODAL_SIZE_PX.height : LARGE_FLOATING_MODAL_SIZE_PX.height;
|
6158
6181
|
// The minimum drag position is the top left of the video gallery. i.e. the modal (PiP) should not be able
|
@@ -6171,10 +6194,20 @@ const VideoGallery = (props) => {
|
|
6171
6194
|
lastVisibleParticipants: visibleVideoParticipants.current,
|
6172
6195
|
maxDominantSpeakers: maxRemoteVideoStreams
|
6173
6196
|
}).slice(0, maxRemoteVideoStreams);
|
6197
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6198
|
+
visibleCallingParticipants.current = smartDominantSpeakerParticipants({
|
6199
|
+
participants: (_b = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => p.state === ('Connecting' ))) !== null && _b !== void 0 ? _b : [],
|
6200
|
+
dominantSpeakers,
|
6201
|
+
lastVisibleParticipants: visibleCallingParticipants.current,
|
6202
|
+
maxDominantSpeakers: 0
|
6203
|
+
});
|
6174
6204
|
// This set will be used to filter out participants already in visibleVideoParticipants
|
6175
6205
|
const visibleVideoParticipantsSet = new Set(visibleVideoParticipants.current.map((p) => p.userId));
|
6206
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6207
|
+
const visibleCallingParticipantsSet = new Set(visibleCallingParticipants.current.map((p) => p.userId));
|
6176
6208
|
visibleAudioParticipants.current = smartDominantSpeakerParticipants({
|
6177
|
-
participants: (
|
6209
|
+
participants: (_c = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => !visibleVideoParticipantsSet.has(p.userId) &&
|
6210
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !visibleCallingParticipantsSet.has(p.userId))) !== null && _c !== void 0 ? _c : [],
|
6178
6211
|
dominantSpeakers,
|
6179
6212
|
lastVisibleParticipants: visibleAudioParticipants.current,
|
6180
6213
|
maxDominantSpeakers: MAX_AUDIO_DOMINANT_SPEAKERS
|
@@ -6215,7 +6248,9 @@ const VideoGallery = (props) => {
|
|
6215
6248
|
]);
|
6216
6249
|
const defaultOnRenderVideoTile = React.useCallback((participant, isVideoParticipant) => {
|
6217
6250
|
const remoteVideoStream = participant.videoStream;
|
6218
|
-
return (React__default['default'].createElement(_RemoteVideoTile, Object.assign({ key: participant.userId }, participant, { onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, isReceiving: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isReceiving : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: isVideoParticipant ? remoteVideoViewOptions : undefined, onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator
|
6251
|
+
return (React__default['default'].createElement(_RemoteVideoTile, Object.assign({ key: participant.userId }, participant, { onCreateRemoteStreamView: isVideoParticipant ? onCreateRemoteStreamView : undefined, onDisposeRemoteStreamView: isVideoParticipant ? onDisposeRemoteStreamView : undefined, isAvailable: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isAvailable : false, isReceiving: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.isReceiving : false, renderElement: isVideoParticipant ? remoteVideoStream === null || remoteVideoStream === void 0 ? void 0 : remoteVideoStream.renderElement : undefined, remoteVideoViewOptions: isVideoParticipant ? remoteVideoViewOptions : undefined, onRenderAvatar: onRenderAvatar, showMuteIndicator: showMuteIndicator,
|
6252
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
6253
|
+
participantState: participant.state })));
|
6219
6254
|
}, [onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, onRenderAvatar, showMuteIndicator]);
|
6220
6255
|
const videoTiles = onRenderRemoteVideoTile
|
6221
6256
|
? visibleVideoParticipants.current.map((participant) => onRenderRemoteVideoTile(participant))
|
@@ -6227,25 +6262,38 @@ const VideoGallery = (props) => {
|
|
6227
6262
|
: visibleAudioParticipants.current.map((participant) => {
|
6228
6263
|
return defaultOnRenderVideoTile(participant, false);
|
6229
6264
|
});
|
6265
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6266
|
+
const callingTiles = onRenderRemoteVideoTile
|
6267
|
+
? visibleCallingParticipants.current.map((participant) => onRenderRemoteVideoTile(participant))
|
6268
|
+
: visibleCallingParticipants.current.map((participant) => {
|
6269
|
+
return defaultOnRenderVideoTile(participant, false);
|
6270
|
+
});
|
6230
6271
|
const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
|
6231
6272
|
const screenShareActive = screenShareParticipant || (localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.isScreenSharingOn);
|
6232
|
-
|
6233
|
-
|
6234
|
-
|
6235
|
-
|
6236
|
-
|
6237
|
-
|
6238
|
-
|
6239
|
-
|
6240
|
-
|
6241
|
-
|
6242
|
-
|
6243
|
-
|
6273
|
+
const createGridTiles = () => {
|
6274
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6275
|
+
return videoTiles.length > 0 ? videoTiles : audioTiles.concat(callingTiles);
|
6276
|
+
};
|
6277
|
+
const gridTiles = createGridTiles();
|
6278
|
+
const createHorizontalGalleryTiles = () => {
|
6279
|
+
if (screenShareActive) {
|
6280
|
+
// If screen sharing is active, assign video and audio participants as horizontal gallery participants
|
6281
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6282
|
+
return videoTiles.concat(audioTiles.concat(callingTiles));
|
6283
|
+
}
|
6284
|
+
else {
|
6285
|
+
// If screen sharing is not active, then assign all video tiles as grid tiles.
|
6286
|
+
// If there are no video tiles, then assign audio tiles as grid tiles.
|
6287
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6288
|
+
return videoTiles.length > 0 ? audioTiles.concat(callingTiles) : [];
|
6289
|
+
}
|
6290
|
+
};
|
6291
|
+
const horizontalGalleryTiles = createHorizontalGalleryTiles();
|
6244
6292
|
if (!shouldFloatLocalVideo && localParticipant) {
|
6245
6293
|
gridTiles.push(localVideoTile);
|
6246
6294
|
}
|
6247
6295
|
const localScreenShareStreamComponent = React__default['default'].createElement(LocalScreenShare, { localParticipant: localParticipant });
|
6248
|
-
const remoteScreenShareComponent = screenShareParticipant && (React__default['default'].createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (
|
6296
|
+
const remoteScreenShareComponent = screenShareParticipant && (React__default['default'].createElement(RemoteScreenShare, Object.assign({}, screenShareParticipant, { renderElement: (_d = screenShareParticipant.screenShareStream) === null || _d === void 0 ? void 0 : _d.renderElement, onCreateRemoteStreamView: onCreateRemoteStreamView, onDisposeRemoteStreamView: onDisposeRemoteStreamView, isReceiving: (_e = screenShareParticipant.screenShareStream) === null || _e === void 0 ? void 0 : _e.isReceiving })));
|
6249
6297
|
const horizontalGalleryPresent = horizontalGalleryTiles && horizontalGalleryTiles.length > 0;
|
6250
6298
|
const layerHostId = reactHooks.useId('layerhost');
|
6251
6299
|
return (React__default['default'].createElement("div", { "data-ui-id": ids.videoGallery, ref: containerRef, className: react.mergeStyles(videoGalleryOuterDivStyle, styles === null || styles === void 0 ? void 0 : styles.root) },
|
@@ -6725,7 +6773,9 @@ const CameraButton = (props) => {
|
|
6725
6773
|
const [announcerString, setAnnouncerString] = React.useState(undefined);
|
6726
6774
|
let disabled = props.disabled || waitForCamera;
|
6727
6775
|
/* @conditional-compile-remove(rooms) */
|
6728
|
-
|
6776
|
+
const permissions = _usePermissions();
|
6777
|
+
/* @conditional-compile-remove(rooms) */
|
6778
|
+
disabled = disabled || !permissions.cameraButton;
|
6729
6779
|
const onRenderCameraOnIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOn" }));
|
6730
6780
|
const onRenderCameraOffIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonCameraOff" }));
|
6731
6781
|
if (waitForCamera && strings.tooltipVideoLoadingContent) {
|
@@ -7770,7 +7820,7 @@ const DialpadContainer = (props) => {
|
|
7770
7820
|
var _a, _b;
|
7771
7821
|
const theme = react.useTheme();
|
7772
7822
|
const [textValue, setTextValue] = React.useState('');
|
7773
|
-
const { onSendDtmfTone, onClickDialpadButton, onDisplayDialpadInput, onChange } = props;
|
7823
|
+
const { onSendDtmfTone, onClickDialpadButton, onDisplayDialpadInput, onChange, showDeleteButton = true } = props;
|
7774
7824
|
const sanitizeInput = (input) => {
|
7775
7825
|
// remove non-valid characters from input: letters,special characters excluding +, *,#
|
7776
7826
|
return input.replace(/[^\d*#+]/g, '');
|
@@ -7805,7 +7855,7 @@ const DialpadContainer = (props) => {
|
|
7805
7855
|
onChange(onDisplayDialpadInput ? onDisplayDialpadInput(modifiedInput) : formatPhoneNumber(modifiedInput));
|
7806
7856
|
}
|
7807
7857
|
};
|
7808
|
-
return (React__default['default'].createElement("div", { className: react.mergeStyles(containerStyles$1(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), "data-test-id": "dialpadContainer" },
|
7858
|
+
return (React__default['default'].createElement("div", { className: react.mergeStyles(containerStyles$1(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root), "data-test-id": "dialpadContainer", "data-ui-id": "dialpadContainer" },
|
7809
7859
|
React__default['default'].createElement(react.TextField, { styles: react.concatStyleSets(textFieldStyles(theme), (_b = props.styles) === null || _b === void 0 ? void 0 : _b.textField), value: onDisplayDialpadInput ? onDisplayDialpadInput(textValue) : formatPhoneNumber(textValue),
|
7810
7860
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
7811
7861
|
onChange: (e) => {
|
@@ -7817,7 +7867,7 @@ const DialpadContainer = (props) => {
|
|
7817
7867
|
}
|
7818
7868
|
}, placeholder: props.strings.placeholderText, "data-test-id": "dialpad-input", onRenderSuffix: () => {
|
7819
7869
|
var _a;
|
7820
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null, textValue.length !== 0 && (React__default['default'].createElement(react.IconButton, { ariaLabel: props.strings.deleteButtonAriaLabel, onClick: deleteNumbers, styles: react.concatStyleSets(iconButtonStyles(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.deleteIcon), iconProps: { iconName: 'BackSpace' } }))));
|
7870
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null, showDeleteButton && textValue.length !== 0 && (React__default['default'].createElement(react.IconButton, { ariaLabel: props.strings.deleteButtonAriaLabel, onClick: deleteNumbers, styles: react.concatStyleSets(iconButtonStyles(theme), (_a = props.styles) === null || _a === void 0 ? void 0 : _a.deleteIcon), iconProps: { iconName: 'BackSpace' } }))));
|
7821
7871
|
} }),
|
7822
7872
|
React__default['default'].createElement(react.FocusZone, null, dialPadButtonsDefault.map((rows, rowIndex) => {
|
7823
7873
|
return (React__default['default'].createElement(react.Stack, { horizontal: true, key: `row_${rowIndex}`, horizontalAlign: "stretch" }, rows.map((button, columnIndex) => (React__default['default'].createElement(DialpadButton, { key: `button_${columnIndex}`,
|
@@ -7848,10 +7898,10 @@ const DialpadContainer = (props) => {
|
|
7848
7898
|
* @beta
|
7849
7899
|
*/
|
7850
7900
|
const Dialpad = (props) => {
|
7851
|
-
/* @conditional-compile-remove(dialpad) */
|
7901
|
+
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
7852
7902
|
const localeStrings = useLocale$1().strings.dialpad;
|
7853
7903
|
const dialpadLocaleStringsTrampoline = () => {
|
7854
|
-
/* @conditional-compile-remove(dialpad) */
|
7904
|
+
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
7855
7905
|
return localeStrings;
|
7856
7906
|
};
|
7857
7907
|
const strings = Object.assign(Object.assign({}, dialpadLocaleStringsTrampoline()), props.strings);
|
@@ -8284,7 +8334,7 @@ const getSelector$1 = (component) => {
|
|
8284
8334
|
return findSelector$1(component);
|
8285
8335
|
};
|
8286
8336
|
const findSelector$1 = (component) => {
|
8287
|
-
/* @conditional-compile-remove(dialpad) */
|
8337
|
+
/* @conditional-compile-remove(dialpad) */ /* @conditional-compile-remove(PSTN-calls) */
|
8288
8338
|
// Dialpad only has handlers currently and doesn't require any props from the stateful layer so return the emptySelector
|
8289
8339
|
if (component === Dialpad) {
|
8290
8340
|
return emptySelector;
|
@@ -12613,7 +12663,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
12613
12663
|
*/
|
12614
12664
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
12615
12665
|
|
12616
|
-
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
12666
|
+
var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumeCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
|
12617
12667
|
|
12618
12668
|
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};
|
12619
12669
|
|
@@ -14346,6 +14396,10 @@ const getCallCompositePage = (call, previousCall) => {
|
|
14346
14396
|
else if (_isInCall(call === null || call === void 0 ? void 0 : call.state)) {
|
14347
14397
|
return 'call';
|
14348
14398
|
}
|
14399
|
+
else if ((call === null || call === void 0 ? void 0 : call.state) === 'LocalHold') {
|
14400
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
14401
|
+
return 'hold';
|
14402
|
+
}
|
14349
14403
|
else {
|
14350
14404
|
// When the call object has been constructed after clicking , but before 'connecting' has been
|
14351
14405
|
// set on the call object, we continue to show the configuration screen.
|
@@ -14412,6 +14466,10 @@ const createCompositeHandlers = memoizeOne__default['default']((adapter) => ({
|
|
14412
14466
|
onAddParticipant: (participant, options) => __awaiter$9(void 0, void 0, void 0, function* () {
|
14413
14467
|
return yield adapter.addParticipant(participant, options);
|
14414
14468
|
}),
|
14469
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
14470
|
+
onSendDtmfTone: (dtmfTone) => __awaiter$9(void 0, void 0, void 0, function* () {
|
14471
|
+
yield adapter.sendDtmfTone(dtmfTone);
|
14472
|
+
}),
|
14415
14473
|
onRemoveParticipant: (userId) => __awaiter$9(void 0, void 0, void 0, function* () {
|
14416
14474
|
yield adapter.removeParticipant(userId);
|
14417
14475
|
}),
|
@@ -14770,6 +14828,12 @@ const icon$2 = () => React__default['default'].createElement(CallCompositeIcon,
|
|
14770
14828
|
/** @beta */
|
14771
14829
|
const People = (props) => {
|
14772
14830
|
const { strings, onRenderOnIcon, onRenderOffIcon, onClick } = props;
|
14831
|
+
/* @conditional-compile-remove(rooms) */
|
14832
|
+
let disabled = props.disabled;
|
14833
|
+
/* @conditional-compile-remove(rooms) */
|
14834
|
+
const permissions = _usePermissions();
|
14835
|
+
/* @conditional-compile-remove(rooms) */
|
14836
|
+
disabled = disabled || !permissions.participantList;
|
14773
14837
|
const theme = useTheme();
|
14774
14838
|
const styles = React.useMemo(() => {
|
14775
14839
|
var _a;
|
@@ -14779,7 +14843,125 @@ const People = (props) => {
|
|
14779
14843
|
}
|
14780
14844
|
}, (_a = props.styles) !== null && _a !== void 0 ? _a : {}, controlButtonBaseStyle);
|
14781
14845
|
}, [props.styles, theme.palette.neutralLight]);
|
14782
|
-
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { "data-ui-id": "call-composite-participants-button", strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon$2, onRenderOffIcon: onRenderOffIcon !== null && onRenderOffIcon !== void 0 ? onRenderOffIcon : icon$2, onClick: onClick, styles: styles
|
14846
|
+
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { "data-ui-id": "call-composite-participants-button", strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon$2, onRenderOffIcon: onRenderOffIcon !== null && onRenderOffIcon !== void 0 ? onRenderOffIcon : icon$2, onClick: onClick, styles: styles,
|
14847
|
+
/* @conditional-compile-remove(rooms) */
|
14848
|
+
disabled: disabled })));
|
14849
|
+
};
|
14850
|
+
|
14851
|
+
// Copyright (c) Microsoft Corporation.
|
14852
|
+
const icon$1 = () => React__default['default'].createElement(reactIcons.MoreHorizontal20Filled, { key: 'chatOnIconKey', primaryFill: "currentColor" });
|
14853
|
+
/**
|
14854
|
+
* @private
|
14855
|
+
*/
|
14856
|
+
const MoreButton = (props) => {
|
14857
|
+
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'optionsButtonLabelKey', showLabel: props.showLabel, onRenderOnIcon: icon$1, onRenderOffIcon: icon$1, onClick: props.onClick, "data-ui-id": 'call-with-chat-composite-more-button' })));
|
14858
|
+
};
|
14859
|
+
|
14860
|
+
// Copyright (c) Microsoft Corporation.
|
14861
|
+
// Licensed under the MIT license.
|
14862
|
+
/**
|
14863
|
+
* @private
|
14864
|
+
*/
|
14865
|
+
const themeddialpadModalStyle$1 = (theme) => ({
|
14866
|
+
main: {
|
14867
|
+
borderRadius: theme.effects.roundedCorner6,
|
14868
|
+
padding: '1rem'
|
14869
|
+
}
|
14870
|
+
});
|
14871
|
+
/**
|
14872
|
+
* @private
|
14873
|
+
*/
|
14874
|
+
const themedDialpadStyle$1 = (isMobile, theme) => ({
|
14875
|
+
root: {
|
14876
|
+
padding: 0,
|
14877
|
+
marginLeft: 0,
|
14878
|
+
marginRight: 0,
|
14879
|
+
maxWidth: '100%'
|
14880
|
+
},
|
14881
|
+
textField: {
|
14882
|
+
root: {
|
14883
|
+
borderBottom: `1px solid ${theme.palette.neutralTertiaryAlt}`
|
14884
|
+
},
|
14885
|
+
field: {
|
14886
|
+
backgroundColor: theme.palette.white,
|
14887
|
+
fontSize: theme.fonts.large.fontSize,
|
14888
|
+
padding: '1.063rem 0.5rem',
|
14889
|
+
textAlign: 'center',
|
14890
|
+
paddingTop: 0
|
14891
|
+
}
|
14892
|
+
},
|
14893
|
+
primaryContent: {
|
14894
|
+
color: theme.palette.themeDarkAlt
|
14895
|
+
}
|
14896
|
+
});
|
14897
|
+
|
14898
|
+
// Copyright (c) Microsoft Corporation.
|
14899
|
+
// Licensed under the MIT license.
|
14900
|
+
/**
|
14901
|
+
* @private
|
14902
|
+
*/
|
14903
|
+
const compositeOuterContainerStyles = {
|
14904
|
+
root: {
|
14905
|
+
width: '100%',
|
14906
|
+
// Create a new stacking context so that DrawerMenu can be positioned absolutely.
|
14907
|
+
position: 'relative'
|
14908
|
+
}
|
14909
|
+
};
|
14910
|
+
/** @private */
|
14911
|
+
const callCompositeContainerStyles = {
|
14912
|
+
root: {
|
14913
|
+
// Start a new stacking context so that any `position:absolute` elements
|
14914
|
+
// inside the call composite do not compete with its siblings.
|
14915
|
+
position: 'relative'
|
14916
|
+
}
|
14917
|
+
};
|
14918
|
+
/** @private */
|
14919
|
+
const controlBarContainerStyles$1 = {
|
14920
|
+
root: {
|
14921
|
+
// Start a new stacking context so that any `position:absolute` elements
|
14922
|
+
// inside the control bar do not compete with its siblings.
|
14923
|
+
position: 'relative'
|
14924
|
+
}
|
14925
|
+
};
|
14926
|
+
/** @private */
|
14927
|
+
const drawerContainerStyles$1 = {
|
14928
|
+
root: {
|
14929
|
+
position: 'absolute',
|
14930
|
+
top: 0,
|
14931
|
+
left: 0,
|
14932
|
+
width: '100%',
|
14933
|
+
height: '100%',
|
14934
|
+
// Any zIndex > 0 will work because this is the only absolutely
|
14935
|
+
// positioned element in the container.
|
14936
|
+
zIndex: 1
|
14937
|
+
}
|
14938
|
+
};
|
14939
|
+
|
14940
|
+
// Copyright (c) Microsoft Corporation.
|
14941
|
+
/** @private */
|
14942
|
+
const SendDtmfDialpad = (props) => {
|
14943
|
+
const dialpadProps = usePropsFor$1(Dialpad);
|
14944
|
+
const { strings, isMobile, showDialpad, onDismissDialpad } = props;
|
14945
|
+
const theme = react.useTheme();
|
14946
|
+
const onDismissTriggered = () => {
|
14947
|
+
onDismissDialpad();
|
14948
|
+
};
|
14949
|
+
const dialpadModalStyle = React.useMemo(() => themeddialpadModalStyle$1(theme), [theme]);
|
14950
|
+
const dialpadStyle = React.useMemo(() => themedDialpadStyle$1(isMobile, theme), [theme, isMobile]);
|
14951
|
+
const dialpadStrings = {
|
14952
|
+
placeholderText: ''
|
14953
|
+
};
|
14954
|
+
if (isMobile) {
|
14955
|
+
return (React__default['default'].createElement(react.Stack, null, showDialpad && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
|
14956
|
+
React__default['default'].createElement(_DrawerSurface, { onLightDismiss: onDismissTriggered },
|
14957
|
+
React__default['default'].createElement(react.Stack, { style: { padding: '1rem' } },
|
14958
|
+
React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false }))))))));
|
14959
|
+
}
|
14960
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Modal, { titleAriaId: strings.dialpadModalAriaLabel, isOpen: showDialpad, onDismiss: onDismissTriggered, isBlocking: true, styles: dialpadModalStyle },
|
14961
|
+
React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "end", verticalAlign: "center" },
|
14962
|
+
React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color: theme.palette.black } })),
|
14963
|
+
React__default['default'].createElement(react.Stack, null,
|
14964
|
+
React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: dialpadStrings }))))));
|
14783
14965
|
};
|
14784
14966
|
|
14785
14967
|
// Copyright (c) Microsoft Corporation.
|
@@ -14798,6 +14980,51 @@ const CallControls = (props) => {
|
|
14798
14980
|
tooltipOffContent: localeStrings.strings.callWithChat.peopleButtonTooltipOpen,
|
14799
14981
|
tooltipOnContent: localeStrings.strings.callWithChat.peopleButtonTooltipClose
|
14800
14982
|
}), [localeStrings]);
|
14983
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
14984
|
+
const moreButtonStrings = React.useMemo(() => ({
|
14985
|
+
label: localeStrings.strings.call.moreButtonCallingLabel,
|
14986
|
+
tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip
|
14987
|
+
}), [localeStrings]);
|
14988
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
14989
|
+
const dialpadStrings = React.useMemo(() => ({
|
14990
|
+
dialpadModalAriaLabel: localeStrings.strings.call.dialpadModalAriaLabel,
|
14991
|
+
dialpadCloseModalButtonAriaLabel: localeStrings.strings.call.dialpadCloseModalButtonAriaLabel
|
14992
|
+
}), [localeStrings]);
|
14993
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
14994
|
+
const holdButtonProps = usePropsFor$1(HoldButton);
|
14995
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
|
14996
|
+
const moreButtonContextualMenuItems = () => {
|
14997
|
+
const items = [];
|
14998
|
+
if (props.isMobile && props.onPeopleButtonClicked) {
|
14999
|
+
items.push({
|
15000
|
+
key: 'peopleButtonKey',
|
15001
|
+
text: localeStrings.component.strings.participantsButton.label,
|
15002
|
+
onClick: () => {
|
15003
|
+
if (props.onPeopleButtonClicked) {
|
15004
|
+
props.onPeopleButtonClicked();
|
15005
|
+
}
|
15006
|
+
},
|
15007
|
+
iconProps: { iconName: 'ControlButtonParticipants', styles: { root: { lineHeight: 0 } } },
|
15008
|
+
itemProps: {
|
15009
|
+
styles: buttonFlyoutIncreasedSizeStyles
|
15010
|
+
}
|
15011
|
+
});
|
15012
|
+
}
|
15013
|
+
items.push({
|
15014
|
+
key: 'holdButtonKey',
|
15015
|
+
text: localeStrings.component.strings.holdButton.tooltipOffContent,
|
15016
|
+
onClick: () => {
|
15017
|
+
holdButtonProps.onToggleHold();
|
15018
|
+
},
|
15019
|
+
iconProps: { iconName: 'HoldCall', styles: { root: { lineHeight: 0 } } },
|
15020
|
+
itemProps: {
|
15021
|
+
styles: buttonFlyoutIncreasedSizeStyles
|
15022
|
+
}
|
15023
|
+
});
|
15024
|
+
return items;
|
15025
|
+
};
|
15026
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15027
|
+
const [showDialpad, setShowDialpad] = React.useState(false);
|
14801
15028
|
const theme = react.useTheme();
|
14802
15029
|
/* @conditional-compile-remove(control-bar-button-injection) */
|
14803
15030
|
const customButtons = React.useMemo(() => generateCustomControlBarButtons(onFetchCustomButtonPropsTrampoline$1(options), options === null || options === void 0 ? void 0 : options.displayType), [options]);
|
@@ -14805,16 +15032,25 @@ const CallControls = (props) => {
|
|
14805
15032
|
if (props.options === false) {
|
14806
15033
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
14807
15034
|
}
|
15035
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15036
|
+
const onDismissDialpad = () => {
|
15037
|
+
setShowDialpad(false);
|
15038
|
+
};
|
14808
15039
|
return (React__default['default'].createElement(react.Stack, { horizontalAlign: "center" },
|
15040
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
15041
|
+
React__default['default'].createElement(SendDtmfDialpad, { isMobile: !!props.isMobile, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
|
14809
15042
|
React__default['default'].createElement(react.Stack.Item, null,
|
14810
15043
|
React__default['default'].createElement(ControlBar, { layout: "horizontal", styles: controlBarStyles(theme.semanticColors.bodyBackground) },
|
14811
15044
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) && React__default['default'].createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
|
14812
15045
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
|
14813
15046
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType })),
|
14814
|
-
isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) &&
|
15047
|
+
isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) &&
|
15048
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */ !props.isMobile && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile })) && (
|
14815
15049
|
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
|
14816
15050
|
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-with-chat-composite-people-button", disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton), strings: peopleButtonStrings })),
|
14817
15051
|
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 })),
|
15052
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
|
15053
|
+
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 })),
|
14818
15054
|
customButtons['primary'],
|
14819
15055
|
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 })))));
|
14820
15056
|
};
|
@@ -14841,7 +15077,7 @@ const callStatusSelector = reselect.createSelector([getCallStatus, getIsScreenSh
|
|
14841
15077
|
// Copyright (c) Microsoft Corporation.
|
14842
15078
|
// Licensed under the MIT license.
|
14843
15079
|
/** @private */
|
14844
|
-
const controlBarContainerStyles
|
15080
|
+
const controlBarContainerStyles = {
|
14845
15081
|
paddingTop: '0.25rem',
|
14846
15082
|
paddingBottom: '0.25rem',
|
14847
15083
|
// @TODO: this should be exposed through a custom CallComposite Theme API that extends the fluent theme with semantic values
|
@@ -14860,7 +15096,7 @@ const NOTIFICATION_CONTAINER_Z_INDEX = Math.max(CONTROL_BAR_Z_INDEX, VIDEO_GALLE
|
|
14860
15096
|
/**
|
14861
15097
|
* @private
|
14862
15098
|
*/
|
14863
|
-
const callControlsContainerStyles = react.mergeStyles(controlBarContainerStyles
|
15099
|
+
const callControlsContainerStyles = react.mergeStyles(controlBarContainerStyles, {
|
14864
15100
|
zIndex: CONTROL_BAR_Z_INDEX
|
14865
15101
|
});
|
14866
15102
|
const containerStyle$2 = {
|
@@ -15285,7 +15521,7 @@ const iconStyles = {
|
|
15285
15521
|
/**
|
15286
15522
|
* @private
|
15287
15523
|
*/
|
15288
|
-
const
|
15524
|
+
const themeddialpadModalStyle = (theme) => ({
|
15289
15525
|
main: {
|
15290
15526
|
borderRadius: theme.effects.roundedCorner6,
|
15291
15527
|
padding: '1rem'
|
@@ -15334,48 +15570,6 @@ const themedCallButtonStyle = (theme) => ({
|
|
15334
15570
|
}
|
15335
15571
|
});
|
15336
15572
|
|
15337
|
-
// Copyright (c) Microsoft Corporation.
|
15338
|
-
// Licensed under the MIT license.
|
15339
|
-
/**
|
15340
|
-
* @private
|
15341
|
-
*/
|
15342
|
-
const compositeOuterContainerStyles = {
|
15343
|
-
root: {
|
15344
|
-
width: '100%',
|
15345
|
-
// Create a new stacking context so that DrawerMenu can be positioned absolutely.
|
15346
|
-
position: 'relative'
|
15347
|
-
}
|
15348
|
-
};
|
15349
|
-
/** @private */
|
15350
|
-
const callCompositeContainerStyles = {
|
15351
|
-
root: {
|
15352
|
-
// Start a new stacking context so that any `position:absolute` elements
|
15353
|
-
// inside the call composite do not compete with its siblings.
|
15354
|
-
position: 'relative'
|
15355
|
-
}
|
15356
|
-
};
|
15357
|
-
/** @private */
|
15358
|
-
const controlBarContainerStyles = {
|
15359
|
-
root: {
|
15360
|
-
// Start a new stacking context so that any `position:absolute` elements
|
15361
|
-
// inside the control bar do not compete with its siblings.
|
15362
|
-
position: 'relative'
|
15363
|
-
}
|
15364
|
-
};
|
15365
|
-
/** @private */
|
15366
|
-
const drawerContainerStyles$1 = {
|
15367
|
-
root: {
|
15368
|
-
position: 'absolute',
|
15369
|
-
top: 0,
|
15370
|
-
left: 0,
|
15371
|
-
width: '100%',
|
15372
|
-
height: '100%',
|
15373
|
-
// Any zIndex > 0 will work because this is the only absolutely
|
15374
|
-
// positioned element in the container.
|
15375
|
-
zIndex: 1
|
15376
|
-
}
|
15377
|
-
};
|
15378
|
-
|
15379
15573
|
// Copyright (c) Microsoft Corporation.
|
15380
15574
|
/** @private */
|
15381
15575
|
const CallingDialpad = (props) => {
|
@@ -15397,7 +15591,7 @@ const CallingDialpad = (props) => {
|
|
15397
15591
|
onDismissTriggered();
|
15398
15592
|
}
|
15399
15593
|
};
|
15400
|
-
const
|
15594
|
+
const dialpadModalStyle = React.useMemo(() => themeddialpadModalStyle(theme), [theme]);
|
15401
15595
|
const dialpadStyle = React.useMemo(() => themedDialpadStyle(isMobile, theme), [theme, isMobile]);
|
15402
15596
|
const callButtonStyle = React.useMemo(() => themedCallButtonStyle(theme), [theme]);
|
15403
15597
|
const dialpadComponent = () => {
|
@@ -15408,12 +15602,12 @@ const CallingDialpad = (props) => {
|
|
15408
15602
|
if (isMobile) {
|
15409
15603
|
return (React__default['default'].createElement(react.Stack, { "data-ui-id": "call-with-chat-composite-dialpad" }, showDialpad && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
|
15410
15604
|
React__default['default'].createElement(_DrawerSurface, { onLightDismiss: onDismissTriggered },
|
15411
|
-
React__default['default'].createElement(react.Stack, { style: { padding: '
|
15605
|
+
React__default['default'].createElement(react.Stack, { style: { padding: '1rem' } }, dialpadComponent()))))));
|
15412
15606
|
}
|
15413
|
-
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Modal, { titleAriaId: strings.dialpadModalAriaLabel, isOpen: showDialpad, onDismiss: onDismissTriggered, isBlocking: true, styles:
|
15607
|
+
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Modal, { titleAriaId: strings.dialpadModalAriaLabel, isOpen: showDialpad, onDismiss: onDismissTriggered, isBlocking: true, styles: dialpadModalStyle, "data-ui-id": "call-with-chat-composite-dialpad" },
|
15414
15608
|
React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center" },
|
15415
15609
|
React__default['default'].createElement(react.Text, null, strings.dialpadModalTitle),
|
15416
|
-
React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color:
|
15610
|
+
React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color: theme.palette.black } })),
|
15417
15611
|
React__default['default'].createElement(react.Stack, null, dialpadComponent()))));
|
15418
15612
|
};
|
15419
15613
|
function DialpadStartCallIconTrampoline() {
|
@@ -15484,7 +15678,7 @@ const AddPeopleDropdown = (props) => {
|
|
15484
15678
|
itemProps: { styles: copyLinkButtonStylesThemed },
|
15485
15679
|
iconProps: { iconName: PeoplePaneOpenDialpadIconNameTrampoline(), style: iconStyles },
|
15486
15680
|
onClick: () => setShowDialpad(true),
|
15487
|
-
'data-ui-id': 'call-
|
15681
|
+
'data-ui-id': 'call-dial-phone-number-button'
|
15488
15682
|
});
|
15489
15683
|
}
|
15490
15684
|
return menuProps;
|
@@ -15509,15 +15703,15 @@ const AddPeopleDropdown = (props) => {
|
|
15509
15703
|
if (mobileView) {
|
15510
15704
|
return (React__default['default'].createElement(react.Stack, null,
|
15511
15705
|
React__default['default'].createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
|
15512
|
-
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-
|
15513
|
-
addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-
|
15706
|
+
React__default['default'].createElement(react.PrimaryButton, { onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" })),
|
15707
|
+
addPeopleDrawerMenuItems.length > 0 && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles, "data-ui-id": "call-add-people-dropdown" },
|
15514
15708
|
React__default['default'].createElement(_DrawerMenu, { onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
|
15515
15709
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: true, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId }))));
|
15516
15710
|
}
|
15517
15711
|
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Stack, null,
|
15518
15712
|
alternateCallerId && (React__default['default'].createElement(CallingDialpad, { isMobile: false, strings: strings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad, onAddParticipant: onAddParticipant, alternateCallerId: alternateCallerId })),
|
15519
15713
|
React__default['default'].createElement(react.Stack, { styles: copyLinkButtonStackStyles },
|
15520
|
-
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-
|
15714
|
+
React__default['default'].createElement(react.DefaultButton, { onRenderIcon: () => PeoplePaneAddPersonIconTrampoline(), text: strings.peoplePaneAddPeopleButtonLabel, menuProps: defaultMenuProps, styles: copyLinkButtonStylesThemed, "data-ui-id": "call-add-people-button" })))));
|
15521
15715
|
};
|
15522
15716
|
function PeoplePaneOpenDialpadIconNameTrampoline() {
|
15523
15717
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -15923,8 +16117,9 @@ const CallArrangement = (props) => {
|
|
15923
16117
|
};
|
15924
16118
|
/* @conditional-compile-remove(one-to-n-calling) */
|
15925
16119
|
const callPaneContent = () => {
|
16120
|
+
var _a;
|
15926
16121
|
if (adapter && callStatus === 'Connected') {
|
15927
|
-
return (React__default['default'].createElement(CallPane, { callAdapter: adapter, onClose: closePane, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onPeopleButtonClicked: showShowPeopleTabHeaderButton$1(props.callControlProps.options) ? selectPeople : undefined, modalLayerHostId: props.modalLayerHostId, activePane: activePane, mobileView: props.mobileView, inviteLink: props.callControlProps.callInvitationURL }));
|
16122
|
+
return (React__default['default'].createElement(CallPane, { callAdapter: adapter, onClose: closePane, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems, onPeopleButtonClicked: showShowPeopleTabHeaderButton$1(props.callControlProps.options) ? selectPeople : undefined, modalLayerHostId: props.modalLayerHostId, activePane: activePane, mobileView: props.mobileView, inviteLink: props.callControlProps.callInvitationURL }));
|
15928
16123
|
}
|
15929
16124
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
15930
16125
|
};
|
@@ -15971,6 +16166,61 @@ const localVideoCameraCycleButtonSelector = reselect.createSelector([getDeviceMa
|
|
15971
16166
|
};
|
15972
16167
|
});
|
15973
16168
|
|
16169
|
+
// Copyright (c) Microsoft Corporation.
|
16170
|
+
const videoBaseStyle = react.mergeStyles({
|
16171
|
+
border: 0
|
16172
|
+
});
|
16173
|
+
/**
|
16174
|
+
* @private
|
16175
|
+
*/
|
16176
|
+
react.mergeStyles(videoBaseStyle, {
|
16177
|
+
width: '100%',
|
16178
|
+
height: '100%'
|
16179
|
+
});
|
16180
|
+
/**
|
16181
|
+
* @private
|
16182
|
+
*/
|
16183
|
+
react.mergeStyles(videoBaseStyle, {
|
16184
|
+
width: '100%',
|
16185
|
+
height: 0,
|
16186
|
+
position: 'relative',
|
16187
|
+
paddingTop: '56.25%' /* default to 16:9 Aspect Ratio for now*/
|
16188
|
+
});
|
16189
|
+
/**
|
16190
|
+
* @private
|
16191
|
+
*/
|
16192
|
+
react.mergeStyles({
|
16193
|
+
position: 'absolute',
|
16194
|
+
top: 0,
|
16195
|
+
left: 0,
|
16196
|
+
width: '100%',
|
16197
|
+
height: '100%'
|
16198
|
+
});
|
16199
|
+
/**
|
16200
|
+
* @private
|
16201
|
+
*/
|
16202
|
+
react.mergeStyles({
|
16203
|
+
height: '100%',
|
16204
|
+
width: '15%'
|
16205
|
+
});
|
16206
|
+
/**
|
16207
|
+
* @private
|
16208
|
+
*/
|
16209
|
+
react.mergeStyles({
|
16210
|
+
height: '100%',
|
16211
|
+
width: '85%',
|
16212
|
+
position: 'relative'
|
16213
|
+
});
|
16214
|
+
/**
|
16215
|
+
* @private
|
16216
|
+
*/
|
16217
|
+
const participantStateStyle = {
|
16218
|
+
textAlign: 'center',
|
16219
|
+
paddingTop: '0.5rem',
|
16220
|
+
fontWeight: 400,
|
16221
|
+
fontSize: '0.75rem'
|
16222
|
+
};
|
16223
|
+
|
15974
16224
|
// Copyright (c) Microsoft Corporation.
|
15975
16225
|
const VideoGalleryStyles = {
|
15976
16226
|
root: {
|
@@ -15996,8 +16246,26 @@ const MediaGallery = (props) => {
|
|
15996
16246
|
const cameraSwitcherProps = React.useMemo(() => {
|
15997
16247
|
return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);
|
15998
16248
|
}, [cameraSwitcherCallback, cameraSwitcherCameras]);
|
15999
|
-
|
16000
|
-
|
16249
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
16250
|
+
const locale = useLocale().component;
|
16251
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
16252
|
+
const videoTileStrings = locale.strings.videoTile;
|
16253
|
+
const onRenderAvatar = React.useCallback((userId, options) => {
|
16254
|
+
return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
|
16255
|
+
React__default['default'].createElement(react.Stack, { styles: { root: { margin: 'auto', maxHeight: '100%' } } },
|
16256
|
+
React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })),
|
16257
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
16258
|
+
(options === null || options === void 0 ? void 0 : options.participantState) === 'Ringing' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateConnecting)),
|
16259
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
16260
|
+
(options === null || options === void 0 ? void 0 : options.participantState) === 'Connecting' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateRinging)),
|
16261
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
16262
|
+
(options === null || options === void 0 ? void 0 : options.participantState) === 'Hold' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateHold)))));
|
16263
|
+
}, [
|
16264
|
+
props.onFetchAvatarPersonaData,
|
16265
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateConnecting,
|
16266
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateRinging,
|
16267
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateHold
|
16268
|
+
]);
|
16001
16269
|
useLocalVideoStartTrigger(!!props.isVideoStreamOn);
|
16002
16270
|
const VideoGalleryMemoized = React.useMemo(() => {
|
16003
16271
|
return (React__default['default'].createElement(VideoGallery, Object.assign({}, videoGalleryProps, { localVideoViewOptions: localVideoViewOptions$2, remoteVideoViewOptions: remoteVideoViewOptions, styles: VideoGalleryStyles, layout: "floatingLocalVideo", showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar })));
|
@@ -16362,9 +16630,11 @@ const LocalDeviceSettings = (props) => {
|
|
16362
16630
|
let isSelectCamEnabled = props.cameraPermissionGranted;
|
16363
16631
|
let isSelectMicEnabled = props.microphonePermissionGranted;
|
16364
16632
|
/* @conditional-compile-remove(rooms) */
|
16365
|
-
|
16633
|
+
const permissions = _usePermissions();
|
16634
|
+
/* @conditional-compile-remove(rooms) */
|
16635
|
+
isSelectCamEnabled = isSelectCamEnabled && permissions.cameraButton;
|
16366
16636
|
/* @conditional-compile-remove(rooms) */
|
16367
|
-
isSelectMicEnabled = isSelectMicEnabled &&
|
16637
|
+
isSelectMicEnabled = isSelectMicEnabled && permissions.microphoneButton;
|
16368
16638
|
// TODO: speaker permission is tied to microphone permission (when you request 'audio' permission using the SDK) its
|
16369
16639
|
// actually granting access to query both microphone and speaker. However the browser popup asks you explicity for
|
16370
16640
|
// 'microphone'. This needs investigation on how we want to handle this and maybe needs follow up with SDK team.
|
@@ -16802,7 +17072,8 @@ const LobbyPage = (props) => {
|
|
16802
17072
|
modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React__default['default'].createElement(LobbyTile, Object.assign({}, lobbyProps, { overlayProps: overlayProps(strings, inLobby) })), dataUiId: 'lobby-page' }));
|
16803
17073
|
};
|
16804
17074
|
const disableLobbyPageControls = (callControlOptions) => {
|
16805
|
-
|
17075
|
+
// Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.
|
17076
|
+
let newOptions = callControlOptions instanceof Object ? Object.assign({}, callControlOptions) : callControlOptions;
|
16806
17077
|
if (newOptions !== false) {
|
16807
17078
|
if (newOptions === true || newOptions === undefined) {
|
16808
17079
|
newOptions = {
|
@@ -16833,6 +17104,154 @@ const overlayPropsWaitingToBeAdmitted = (strings) => ({
|
|
16833
17104
|
overlayIcon: React__default['default'].createElement(CallCompositeIcon, { iconName: "LobbyScreenWaitingToBeAdmitted" })
|
16834
17105
|
});
|
16835
17106
|
|
17107
|
+
// Copyright (c) Microsoft Corporation.
|
17108
|
+
/**
|
17109
|
+
* styles for hold pane resume button
|
17110
|
+
*
|
17111
|
+
* @private
|
17112
|
+
*/
|
17113
|
+
const resumeButtonStyles = {
|
17114
|
+
root: {
|
17115
|
+
borderRadius: _pxToRem(4),
|
17116
|
+
padding: `${_pxToRem(6)} ${_pxToRem(20)} `
|
17117
|
+
},
|
17118
|
+
label: {
|
17119
|
+
fontWeight: 400,
|
17120
|
+
display: 'flex',
|
17121
|
+
fontSize: _pxToRem(14)
|
17122
|
+
}
|
17123
|
+
};
|
17124
|
+
/**
|
17125
|
+
* styles for hold pane main text
|
17126
|
+
*
|
17127
|
+
* @private
|
17128
|
+
*/
|
17129
|
+
const holdPaneLabelStyles = {
|
17130
|
+
root: {
|
17131
|
+
color: '#FFFFFF',
|
17132
|
+
fontWeight: 600,
|
17133
|
+
fontHeight: _pxToRem(22),
|
17134
|
+
fontSize: _pxToRem(16),
|
17135
|
+
margin: '1rem auto 0.5rem'
|
17136
|
+
}
|
17137
|
+
};
|
17138
|
+
/**
|
17139
|
+
* styles for hold pane timer
|
17140
|
+
*
|
17141
|
+
* @private
|
17142
|
+
*/
|
17143
|
+
const holdPaneTimerStyles = {
|
17144
|
+
root: {
|
17145
|
+
color: '#FFFFFF',
|
17146
|
+
fontWeight: 600,
|
17147
|
+
fontSize: _pxToRem(20),
|
17148
|
+
lineHeight: _pxToRem(28),
|
17149
|
+
margin: 'auto'
|
17150
|
+
}
|
17151
|
+
};
|
17152
|
+
/**
|
17153
|
+
* styles for hold pane container
|
17154
|
+
*
|
17155
|
+
* @private
|
17156
|
+
*/
|
17157
|
+
const paneStyles = {
|
17158
|
+
root: {
|
17159
|
+
width: '100%',
|
17160
|
+
height: '100%',
|
17161
|
+
background: 'rgba(0, 0, 0, 0.5)'
|
17162
|
+
}
|
17163
|
+
};
|
17164
|
+
/**
|
17165
|
+
* styles for the hold pane content container
|
17166
|
+
*
|
17167
|
+
* @private
|
17168
|
+
*/
|
17169
|
+
const holdPaneContentStyles = {
|
17170
|
+
root: {
|
17171
|
+
display: 'flex',
|
17172
|
+
margin: 'auto',
|
17173
|
+
flexDirection: 'column',
|
17174
|
+
justifyContent: 'center'
|
17175
|
+
}
|
17176
|
+
};
|
17177
|
+
|
17178
|
+
// Copyright (c) Microsoft Corporation.
|
17179
|
+
/**
|
17180
|
+
* Hold pane to display when the user places themselves on hold
|
17181
|
+
*
|
17182
|
+
* @beta
|
17183
|
+
*/
|
17184
|
+
const HoldPane = () => {
|
17185
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
17186
|
+
const holdButtonProps = usePropsFor$1(HoldButton);
|
17187
|
+
const locale = useLocale();
|
17188
|
+
const strings = stringsTrampoline(locale);
|
17189
|
+
const [time, setTime] = React.useState(0);
|
17190
|
+
const elapsedTime = getReadableTime(time);
|
17191
|
+
const startTime = React.useRef(performance.now());
|
17192
|
+
React__default['default'].useEffect(() => {
|
17193
|
+
const interval = setInterval(() => {
|
17194
|
+
setTime(performance.now() - startTime.current);
|
17195
|
+
}, 10);
|
17196
|
+
return () => {
|
17197
|
+
clearInterval(interval);
|
17198
|
+
};
|
17199
|
+
}, [startTime]);
|
17200
|
+
return (React__default['default'].createElement(react.Stack, { styles: paneStyles },
|
17201
|
+
React__default['default'].createElement(react.Stack, { horizontal: true, styles: holdPaneContentStyles },
|
17202
|
+
React__default['default'].createElement(react.Text, { styles: holdPaneTimerStyles }, elapsedTime),
|
17203
|
+
React__default['default'].createElement(react.Text, { styles: holdPaneLabelStyles }, strings.holdScreenLabel),
|
17204
|
+
React__default['default'].createElement(react.PrimaryButton, { text: strings.resumeCallButtonLabel, ariaLabel: strings.resumeCallButtonAriaLabel, styles: resumeButtonStyles, onClick: () => {
|
17205
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
17206
|
+
holdButtonProps.onToggleHold();
|
17207
|
+
} }))));
|
17208
|
+
};
|
17209
|
+
const getMinutes = (time) => {
|
17210
|
+
return Math.floor(getSeconds(time) / 60);
|
17211
|
+
};
|
17212
|
+
const getSeconds = (time) => {
|
17213
|
+
return Math.floor(time / 1000);
|
17214
|
+
};
|
17215
|
+
const getHours = (time) => {
|
17216
|
+
return Math.floor(getMinutes(time) / 60);
|
17217
|
+
};
|
17218
|
+
/**
|
17219
|
+
* @internal
|
17220
|
+
*/
|
17221
|
+
const getReadableTime = (time) => {
|
17222
|
+
const hours = getHours(time);
|
17223
|
+
const readableMinutes = ('0' + (getMinutes(time) % 60)).slice(-2);
|
17224
|
+
const readableSeconds = ('0' + (getSeconds(time) % 60)).slice(-2);
|
17225
|
+
return `${hours > 0 ? hours + ':' : ''}${readableMinutes}:${readableSeconds}`;
|
17226
|
+
};
|
17227
|
+
const stringsTrampoline = (locale) => {
|
17228
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
17229
|
+
return {
|
17230
|
+
holdScreenLabel: locale.strings.call.holdScreenLabel,
|
17231
|
+
resumeCallButtonLabel: locale.strings.call.resumeCallButtonLabel,
|
17232
|
+
resumeCallButtonAriaLabel: locale.strings.call.resumeCallButtonAriaLabel
|
17233
|
+
};
|
17234
|
+
};
|
17235
|
+
|
17236
|
+
// Copyright (c) Microsoft Corporation.
|
17237
|
+
/**
|
17238
|
+
* @beta
|
17239
|
+
*/
|
17240
|
+
const HoldPage = (props) => {
|
17241
|
+
var _a, _b, _c;
|
17242
|
+
const errorBarProps = usePropsFor$1(ErrorBar);
|
17243
|
+
const strings = useLocale().strings.call;
|
17244
|
+
const callControlOptions = props.mobileView
|
17245
|
+
? reduceCallControlsForMobile((_a = props.options) === null || _a === void 0 ? void 0 : _a.callControls)
|
17246
|
+
: (_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls;
|
17247
|
+
return (React__default['default'].createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && Object.assign({}, errorBarProps), callControlProps: {
|
17248
|
+
options: callControlOptions,
|
17249
|
+
increaseFlyoutItemSize: props.mobileView
|
17250
|
+
}, mobileView: props.mobileView,
|
17251
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
17252
|
+
modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React__default['default'].createElement(HoldPane, null), dataUiId: 'hold-page' }));
|
17253
|
+
};
|
17254
|
+
|
16836
17255
|
// Copyright (c) Microsoft Corporation.
|
16837
17256
|
// Licensed under the MIT license.
|
16838
17257
|
var __awaiter$5 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
@@ -16878,6 +17297,11 @@ const MainScreen = (props) => {
|
|
16878
17297
|
/* @conditional-compile-remove(one-to-n-calling) */
|
16879
17298
|
modalLayerHostId: props.modalLayerHostId, options: props.options }));
|
16880
17299
|
break;
|
17300
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
17301
|
+
case holdPageTrampoline():
|
17302
|
+
pageElement = (React__default['default'].createElement(React__default['default'].Fragment, null,
|
17303
|
+
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ React__default['default'].createElement(HoldPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options })));
|
17304
|
+
break;
|
16881
17305
|
default:
|
16882
17306
|
throw new Error('Invalid call composite page');
|
16883
17307
|
}
|
@@ -16933,6 +17357,11 @@ const CallComposite = (props) => {
|
|
16933
17357
|
/* @conditional-compile-remove(one-to-n-calling) */
|
16934
17358
|
mobileView && React__default['default'].createElement(react.LayerHost, { id: modalLayerHostId, className: react.mergeStyles(modalLayerHostStyle) })))));
|
16935
17359
|
};
|
17360
|
+
const holdPageTrampoline = () => {
|
17361
|
+
/* @conditional-compile-remove(one-to-n-calling) */
|
17362
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
17363
|
+
return 'hold';
|
17364
|
+
};
|
16936
17365
|
|
16937
17366
|
/**
|
16938
17367
|
* @private
|
@@ -17167,6 +17596,8 @@ class AzureCommunicationCallAdapter {
|
|
17167
17596
|
this.holdCall.bind(this);
|
17168
17597
|
/* @conditional-compile-remove(PSTN-calls) */
|
17169
17598
|
this.resumeCall.bind(this);
|
17599
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
17600
|
+
this.sendDtmfTone.bind(this);
|
17170
17601
|
}
|
17171
17602
|
dispose() {
|
17172
17603
|
this.resetDiagnosticsForwarder();
|
@@ -17224,9 +17655,9 @@ class AzureCommunicationCallAdapter {
|
|
17224
17655
|
});
|
17225
17656
|
}
|
17226
17657
|
_joinCall(audioOptions, videoOptions) {
|
17227
|
-
const isTeamsMeeting =
|
17658
|
+
const isTeamsMeeting = 'teamsLink' in this.locator;
|
17228
17659
|
/* @conditional-compile-remove(rooms) */
|
17229
|
-
const isRoomsCall =
|
17660
|
+
const isRoomsCall = 'roomId' in this.locator;
|
17230
17661
|
if (isTeamsMeeting) {
|
17231
17662
|
return this.callAgent.join(this.locator, {
|
17232
17663
|
audioOptions,
|
@@ -17426,6 +17857,12 @@ class AzureCommunicationCallAdapter {
|
|
17426
17857
|
}
|
17427
17858
|
});
|
17428
17859
|
}
|
17860
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
17861
|
+
sendDtmfTone(dtmfTone) {
|
17862
|
+
return __awaiter$4(this, void 0, void 0, function* () {
|
17863
|
+
this.handlers.onSendDtmfTone(dtmfTone);
|
17864
|
+
});
|
17865
|
+
}
|
17429
17866
|
getState() {
|
17430
17867
|
return this.context.getState();
|
17431
17868
|
}
|
@@ -17666,7 +18103,7 @@ const isOutboundCall = (callLocator) => {
|
|
17666
18103
|
};
|
17667
18104
|
|
17668
18105
|
// Copyright (c) Microsoft Corporation.
|
17669
|
-
const icon
|
18106
|
+
const icon = () => React__default['default'].createElement(CallWithChatCompositeIcon, { iconName: 'ControlBarPeopleButton' });
|
17670
18107
|
/**
|
17671
18108
|
* @private
|
17672
18109
|
*/
|
@@ -17681,7 +18118,7 @@ const PeopleButton = (props) => {
|
|
17681
18118
|
}
|
17682
18119
|
}, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
|
17683
18120
|
}, [props.styles, theme.palette.neutralLight]);
|
17684
|
-
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon
|
18121
|
+
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon, onRenderOffIcon: onRenderOffIcon !== null && onRenderOffIcon !== void 0 ? onRenderOffIcon : icon, onClick: onClick, styles: styles })));
|
17685
18122
|
};
|
17686
18123
|
|
17687
18124
|
// Copyright (c) Microsoft Corporation.
|
@@ -17817,15 +18254,6 @@ const chatNotificationContainerStyles = {
|
|
17817
18254
|
}
|
17818
18255
|
};
|
17819
18256
|
|
17820
|
-
// Copyright (c) Microsoft Corporation.
|
17821
|
-
const icon = () => React__default['default'].createElement(reactIcons.MoreHorizontal20Filled, { key: 'chatOnIconKey', primaryFill: "currentColor" });
|
17822
|
-
/**
|
17823
|
-
* @private
|
17824
|
-
*/
|
17825
|
-
const MoreButton = (props) => {
|
17826
|
-
return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { labelKey: 'optionsButtonLabelKey', showLabel: false, onRenderOnIcon: icon, onRenderOffIcon: icon, onClick: props.onClick, "data-ui-id": 'call-with-chat-composite-more-button' })));
|
17827
|
-
};
|
17828
|
-
|
17829
18257
|
// Copyright (c) Microsoft Corporation.
|
17830
18258
|
/**
|
17831
18259
|
* Max number of Custom Buttons in primary and secondary ControlBar
|
@@ -17909,7 +18337,7 @@ const inferCallWithChatControlOptions$1 = (mobileView, callWithChatControls) =>
|
|
17909
18337
|
* @private
|
17910
18338
|
*/
|
17911
18339
|
const CallWithChatControlBar = (props) => {
|
17912
|
-
var _a, _b;
|
18340
|
+
var _a, _b, _c;
|
17913
18341
|
const theme = react.useTheme();
|
17914
18342
|
const callWithChatStrings = useCallWithChatCompositeStrings();
|
17915
18343
|
const options = inferCallWithChatControlOptions$1(props.mobileView, props.callControls);
|
@@ -17941,14 +18369,27 @@ const CallWithChatControlBar = (props) => {
|
|
17941
18369
|
const endCallButtonStyles = React.useMemo(() => (!props.mobileView ? getDesktopEndCallButtonStyles(theme) : undefined), [props.mobileView, theme]);
|
17942
18370
|
/* @conditional-compile-remove(control-bar-button-injection) */
|
17943
18371
|
const customButtons = React.useMemo(() => generateCustomCallWithChatControlBarButton(onFetchCustomButtonPropsTrampoline(options !== false ? options : undefined), options !== false ? options === null || options === void 0 ? void 0 : options.displayType : undefined), [options]);
|
18372
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18373
|
+
const dialpadStrings = React.useMemo(() => ({
|
18374
|
+
dialpadModalAriaLabel: callWithChatStrings.dialpadModalAriaLabel,
|
18375
|
+
dialpadCloseModalButtonAriaLabel: callWithChatStrings.dialpadCloseModalButtonAriaLabel
|
18376
|
+
}), [callWithChatStrings]);
|
18377
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18378
|
+
const [showDialpad, setShowDialpad] = React.useState(false);
|
17944
18379
|
// when options is false then we want to hide the whole control bar.
|
17945
18380
|
if (options === false) {
|
17946
18381
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
17947
18382
|
}
|
17948
18383
|
const chatButton = (React__default['default'].createElement(ChatButtonWithUnreadMessagesBadge, { chatAdapter: props.chatAdapter, checked: props.chatButtonChecked, showLabel: options.displayType !== 'compact', isChatPaneVisible: props.chatButtonChecked, onClick: props.onChatButtonClicked, disabled: props.disableButtonsForLobbyPage, strings: chatButtonStrings, styles: commonButtonStyles, newMessageLabel: callWithChatStrings.chatButtonNewMessageNotificationLabel }));
|
17949
|
-
|
18384
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18385
|
+
const onDismissDialpad = () => {
|
18386
|
+
setShowDialpad(false);
|
18387
|
+
};
|
18388
|
+
return (React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles) },
|
17950
18389
|
React__default['default'].createElement(react.Stack.Item, { grow: true },
|
17951
18390
|
React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
|
18391
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18392
|
+
React__default['default'].createElement(SendDtmfDialpad, { isMobile: (_a = props.mobileView) !== null && _a !== void 0 ? _a : false, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
|
17952
18393
|
React__default['default'].createElement(react.Stack, { horizontalAlign: "center" },
|
17953
18394
|
React__default['default'].createElement(react.Stack.Item, null,
|
17954
18395
|
React__default['default'].createElement(ControlBar, { layout: "horizontal", styles: centerContainerStyles },
|
@@ -17957,8 +18398,8 @@ const CallWithChatControlBar = (props) => {
|
|
17957
18398
|
props.mobileView && isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton,
|
17958
18399
|
isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles })),
|
17959
18400
|
/* @conditional-compile-remove(control-bar-button-injection) */
|
17960
|
-
(
|
17961
|
-
|
18401
|
+
(_b = customButtons['primary']) === null || _b === void 0 ? void 0 :
|
18402
|
+
_b.props.children.slice(0, props.mobileView
|
17962
18403
|
? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
|
17963
18404
|
: CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
|
17964
18405
|
return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.strings.label, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
|
@@ -17967,8 +18408,8 @@ const CallWithChatControlBar = (props) => {
|
|
17967
18408
|
React__default['default'].createElement(EndCall, { displayType: "compact", styles: endCallButtonStyles })))))),
|
17968
18409
|
!props.mobileView && (React__default['default'].createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
|
17969
18410
|
/* @conditional-compile-remove(control-bar-button-injection) */
|
17970
|
-
(
|
17971
|
-
|
18411
|
+
(_c = customButtons['secondary']) === null || _c === void 0 ? void 0 :
|
18412
|
+
_c.props.children.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
|
17972
18413
|
return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.key, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
|
17973
18414
|
}),
|
17974
18415
|
isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React__default['default'].createElement(PeopleButton, { checked: props.peopleButtonChecked, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-with-chat-composite-people-button", disabled: props.disableButtonsForLobbyPage, strings: peopleButtonStrings, styles: commonButtonStyles })),
|
@@ -18142,6 +18583,10 @@ class CallWithChatBackedCallAdapter {
|
|
18142
18583
|
this.addParticipant = (participant, options) => __awaiter$3(this, void 0, void 0, function* () {
|
18143
18584
|
yield this.callWithChatAdapter.addParticipant(participant, options);
|
18144
18585
|
});
|
18586
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
18587
|
+
this.sendDtmfTone = (dtmfTone) => __awaiter$3(this, void 0, void 0, function* () {
|
18588
|
+
yield this.callWithChatAdapter.sendDtmfTone(dtmfTone);
|
18589
|
+
});
|
18145
18590
|
this.callWithChatAdapter = callWithChatAdapter;
|
18146
18591
|
}
|
18147
18592
|
}
|
@@ -18585,7 +19030,7 @@ const CallWithChatScreen = (props) => {
|
|
18585
19030
|
/* @conditional-compile-remove(file-sharing) */
|
18586
19031
|
fileSharing: props.fileSharing, rtl: props.rtl }))),
|
18587
19032
|
showControlBar && !isMobileWithActivePane && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
|
18588
|
-
React__default['default'].createElement(react.Stack.Item, { styles: controlBarContainerStyles },
|
19033
|
+
React__default['default'].createElement(react.Stack.Item, { styles: controlBarContainerStyles$1 },
|
18589
19034
|
React__default['default'].createElement(CallWithChatControlBar, { callAdapter: callAdapter, chatAdapter: chatProps.adapter, chatButtonChecked: activePane === 'chat', onChatButtonClicked: toggleChat, peopleButtonChecked: activePane === 'people', onPeopleButtonClicked: togglePeople, onMoreButtonClicked: onMoreButtonClicked, mobileView: mobileView, disableButtonsForLobbyPage: isInLobbyOrConnecting, callControls: props.callControls, containerHeight: containerHeight, containerWidth: containerWidth })))),
|
18590
19035
|
showControlBar && showDrawer && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
|
18591
19036
|
React__default['default'].createElement(CallAdapterProvider, { adapter: callAdapter },
|
@@ -18831,6 +19276,8 @@ class AzureCommunicationCallWithChatAdapter {
|
|
18831
19276
|
this.resumeCall.bind(this);
|
18832
19277
|
/* @conditional-compile-remove(PSTN-calls) */
|
18833
19278
|
this.addParticipant.bind(this);
|
19279
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
19280
|
+
this.sendDtmfTone.bind(this);
|
18834
19281
|
}
|
18835
19282
|
/** Join existing Call. */
|
18836
19283
|
joinCall(microphoneOn) {
|
@@ -19027,6 +19474,12 @@ class AzureCommunicationCallWithChatAdapter {
|
|
19027
19474
|
return yield this.callAdapter.addParticipant(participant, options);
|
19028
19475
|
});
|
19029
19476
|
}
|
19477
|
+
/* @conditional-compile-remove(PSTN-calls) */
|
19478
|
+
sendDtmfTone(dtmfTone) {
|
19479
|
+
return __awaiter(this, void 0, void 0, function* () {
|
19480
|
+
return yield this.callAdapter.sendDtmfTone(dtmfTone);
|
19481
|
+
});
|
19482
|
+
}
|
19030
19483
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
19031
19484
|
on(event, listener) {
|
19032
19485
|
switch (event) {
|