@azure/communication-react 1.5.1-alpha-202301220014 → 1.5.1-alpha-202301260015
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +8 -0
- package/dist/dist-cjs/communication-react/index.js +149 -37
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +11 -3
- package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts +2 -0
- package/dist/dist-esm/calling-stateful-client/src/Logger.js +2 -0
- package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +54 -15
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -0
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +3 -2
- package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +5 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +34 -9
- package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +8 -0
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +26 -3
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js +21 -3
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +5 -1
- package/package.json +8 -8
@@ -8343,6 +8343,14 @@ export declare interface VideoGalleryStrings {
|
|
8343
8343
|
pinParticipantForMe: string;
|
8344
8344
|
/** Menu text shown in Video Tile contextual menu for setting a remote participant's video tile */
|
8345
8345
|
unpinParticipantForMe: string;
|
8346
|
+
/** Aria label for pin participant menu item of remote participant's video tile */
|
8347
|
+
pinParticipantMenuItemAriaLabel: string;
|
8348
|
+
/** Aria label for unpin participant menu item of remote participant's video tile */
|
8349
|
+
unpinParticipantMenuItemAriaLabel: string;
|
8350
|
+
/** Aria label to announce when remote participant's video tile is pinned */
|
8351
|
+
pinnedParticipantAnnouncementAriaLabel: string;
|
8352
|
+
/** Aria label to announce when remote participant's video tile is unpinned */
|
8353
|
+
unpinnedParticipantAnnouncementAriaLabel: string;
|
8346
8354
|
}
|
8347
8355
|
|
8348
8356
|
/**
|
@@ -159,7 +159,7 @@ const _toCommunicationIdentifier = (id) => {
|
|
159
159
|
// Copyright (c) Microsoft Corporation.
|
160
160
|
// Licensed under the MIT license.
|
161
161
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
162
|
-
var telemetryVersion = '1.5.1-alpha-
|
162
|
+
var telemetryVersion = '1.5.1-alpha-202301260015';
|
163
163
|
|
164
164
|
// Copyright (c) Microsoft Corporation.
|
165
165
|
/**
|
@@ -1120,7 +1120,9 @@ var EventNames;
|
|
1120
1120
|
EventNames["LOCAL_STREAM_RENDERING"] = "LOCAL_STREAM_RENDERING";
|
1121
1121
|
EventNames["REMOTE_STREAM_ALREADY_RENDERED"] = "REMOTE_STREAM_ALREADY_RENDERED";
|
1122
1122
|
EventNames["REMOTE_STREAM_RENDERING"] = "REMOTE_STREAM_RENDERING";
|
1123
|
+
EventNames["REMOTE_STREAM_ALREADY_DISPOSED"] = "REMOTE_STREAM_ALREADY_DISPOSED";
|
1123
1124
|
EventNames["REMOTE_STREAM_STOPPING"] = "REMOTE_STREAM_STOPPING";
|
1125
|
+
EventNames["REMOTE_CREATED_STREAM_STOPPING"] = "REMOTE_CREATED_STREAM_STOPPING";
|
1124
1126
|
// Error
|
1125
1127
|
EventNames["LOCAL_STREAM_NOT_FOUND"] = "LOCAL_STREAM_NOT_FOUND";
|
1126
1128
|
EventNames["LOCAL_RENDER_INFO_NOT_FOUND"] = "LOCAL_RENDER_INFO_NOT_FOUND";
|
@@ -2039,8 +2041,15 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
2039
2041
|
});
|
2040
2042
|
return;
|
2041
2043
|
}
|
2044
|
+
// "Stopping" only happens if the stream was in "rendering" but `disposeView` was called.
|
2045
|
+
// Now that `createView` has been re-called, we can flip the state back to "rendering".
|
2042
2046
|
if (renderInfo.status === 'Stopping') {
|
2043
|
-
|
2047
|
+
_logEvent(callingStatefulLogger, {
|
2048
|
+
name: EventNames.REMOTE_STREAM_STOPPING,
|
2049
|
+
level: 'warning',
|
2050
|
+
message: 'RemoteVideoStream was marked as stopping by dispose view. Resetting state to "Rendering".'
|
2051
|
+
});
|
2052
|
+
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'Rendering', renderInfo.renderer);
|
2044
2053
|
return;
|
2045
2054
|
}
|
2046
2055
|
const renderer = new communicationCalling.VideoStreamRenderer(renderInfo.stream);
|
@@ -2059,6 +2068,8 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
2059
2068
|
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);
|
2060
2069
|
throw e;
|
2061
2070
|
}
|
2071
|
+
// Since render could take some time, we need to check if the stream is still valid and if we received a signal to
|
2072
|
+
// stop rendering.
|
2062
2073
|
const refreshedRenderInfo = internalContext.getRemoteRenderInfoForParticipant(callId, participantKey, streamId);
|
2063
2074
|
if (!refreshedRenderInfo) {
|
2064
2075
|
// RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer
|
@@ -2066,7 +2077,7 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
2066
2077
|
_logEvent(callingStatefulLogger, {
|
2067
2078
|
name: EventNames.REMOTE_RENDER_INFO_NOT_FOUND,
|
2068
2079
|
level: 'error',
|
2069
|
-
message: '
|
2080
|
+
message: 'Cannot find remote render info after create the view.',
|
2070
2081
|
data: streamLogInfo
|
2071
2082
|
});
|
2072
2083
|
renderer.dispose();
|
@@ -2076,21 +2087,29 @@ function createViewRemoteVideo(context, internalContext, callId, participantId,
|
|
2076
2087
|
if (refreshedRenderInfo.status === 'Stopping') {
|
2077
2088
|
// Stop render was called on this stream after we had started rendering. We will dispose this view and do not
|
2078
2089
|
// put the view into the state.
|
2079
|
-
renderer.dispose();
|
2080
|
-
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, refreshedRenderInfo.stream, 'NotRendered', undefined);
|
2081
|
-
context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);
|
2082
2090
|
_logEvent(callingStatefulLogger, {
|
2083
|
-
name: EventNames.
|
2084
|
-
level: '
|
2085
|
-
message: '
|
2091
|
+
name: EventNames.REMOTE_CREATED_STREAM_STOPPING,
|
2092
|
+
level: 'warning',
|
2093
|
+
message: 'Render info status is stopping, dispose renderer.',
|
2086
2094
|
data: streamLogInfo
|
2087
2095
|
});
|
2096
|
+
renderer.dispose();
|
2097
|
+
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, refreshedRenderInfo.stream, 'NotRendered', undefined);
|
2098
|
+
context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, undefined);
|
2088
2099
|
return;
|
2089
2100
|
}
|
2090
2101
|
// Else the stream still exists and status is not telling us to stop rendering. Complete the render process by
|
2091
2102
|
// updating the state.
|
2092
2103
|
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, refreshedRenderInfo.stream, 'Rendered', renderer);
|
2093
2104
|
context.setRemoteVideoStreamRendererView(callId, participantKey, streamId, convertFromSDKToDeclarativeVideoStreamRendererView(view));
|
2105
|
+
_logEvent(callingStatefulLogger, {
|
2106
|
+
name: EventNames.REMOTE_VIEW_RENDER_SUCCEED,
|
2107
|
+
level: 'info',
|
2108
|
+
message: `Successfully render the remote view.`,
|
2109
|
+
data: {
|
2110
|
+
streamLogInfo
|
2111
|
+
}
|
2112
|
+
});
|
2094
2113
|
return {
|
2095
2114
|
renderer,
|
2096
2115
|
view
|
@@ -2187,7 +2206,7 @@ function createViewLocalVideo(context, internalContext, callId, options) {
|
|
2187
2206
|
_logEvent(callingStatefulLogger, {
|
2188
2207
|
name: EventNames.LOCAL_CREATED_STREAM_STOPPING,
|
2189
2208
|
level: 'warning',
|
2190
|
-
message: 'Render info status is stopping, dispose renderer.
|
2209
|
+
message: 'Render info status is stopping, dispose renderer.',
|
2191
2210
|
data: {
|
2192
2211
|
callId
|
2193
2212
|
}
|
@@ -2301,9 +2320,31 @@ function disposeViewRemoteVideo(context, internalContext, callId, participantId,
|
|
2301
2320
|
});
|
2302
2321
|
return;
|
2303
2322
|
}
|
2304
|
-
//
|
2305
|
-
|
2306
|
-
|
2323
|
+
// Nothing to dispose of or clean up -- we can safely exit early here.
|
2324
|
+
if (renderInfo.status === 'NotRendered') {
|
2325
|
+
_logEvent(callingStatefulLogger, {
|
2326
|
+
name: EventNames.REMOTE_STREAM_ALREADY_DISPOSED,
|
2327
|
+
level: 'info',
|
2328
|
+
message: 'RemoteVideoStream is already disposed.',
|
2329
|
+
data: streamLogInfo
|
2330
|
+
});
|
2331
|
+
return;
|
2332
|
+
}
|
2333
|
+
// Status is already marked as "stopping" so we can exit early here. This is because stopping only occurs
|
2334
|
+
// when the stream is being created in createView but hasn't been completed being created yet. The createView
|
2335
|
+
// method will see the "stopping" status and perform the cleanup
|
2336
|
+
if (renderInfo.status === 'Stopping') {
|
2337
|
+
_logEvent(callingStatefulLogger, {
|
2338
|
+
name: EventNames.REMOTE_STREAM_STOPPING,
|
2339
|
+
level: 'info',
|
2340
|
+
message: 'Remote stream is already stopping.',
|
2341
|
+
data: streamLogInfo
|
2342
|
+
});
|
2343
|
+
return;
|
2344
|
+
}
|
2345
|
+
// If the stream is in the middle of being rendered (i.e. has state "Rendering"), we need the status as
|
2346
|
+
// "stopping" without performing any cleanup. This will tell the `createView` method that it should stop
|
2347
|
+
// rendering and clean up the state once the view has finished being created.
|
2307
2348
|
if (renderInfo.status === 'Rendering') {
|
2308
2349
|
_logEvent(callingStatefulLogger, {
|
2309
2350
|
name: EventNames.REMOTE_STREAM_STOPPING,
|
@@ -2312,10 +2353,10 @@ function disposeViewRemoteVideo(context, internalContext, callId, participantId,
|
|
2312
2353
|
data: streamLogInfo
|
2313
2354
|
});
|
2314
2355
|
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'Stopping', undefined);
|
2356
|
+
return;
|
2315
2357
|
}
|
2316
|
-
|
2317
|
-
|
2318
|
-
}
|
2358
|
+
// Else the state must be in the "Rendered" state, so we can dispose the renderer and clean up the state.
|
2359
|
+
internalContext.setRemoteRenderInfo(callId, participantKey, streamId, renderInfo.stream, 'NotRendered', undefined);
|
2319
2360
|
if (renderInfo.renderer) {
|
2320
2361
|
_logEvent(callingStatefulLogger, {
|
2321
2362
|
name: EventNames.DISPOSING_REMOTE_RENDERER,
|
@@ -3980,7 +4021,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
3980
4021
|
wordBreak: 'break-word'
|
3981
4022
|
});
|
3982
4023
|
|
3983
|
-
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",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",copyInviteLinkActionedAriaLabel:"Invite link copied"};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.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",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.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",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",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin for me"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$d={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$d={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$e={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$1={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$1={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$d={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$d={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,holdButton:holdButton$d,videoTile:videoTile$d,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest,CameraSitePermissionsRequest:CameraSitePermissionsRequest,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck,CameraSitePermissionsCheck:CameraSitePermissionsCheck,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari,CameraSitePermissionsDenied:CameraSitePermissionsDenied,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari,UnsupportedBrowser:UnsupportedBrowser$e,UnsupportedBrowserVersion:UnsupportedBrowserVersion$1,UnsupportedOperatingSystem:UnsupportedOperatingSystem$1,BrowserPermissionDenied:BrowserPermissionDenied$d,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$d};
|
4024
|
+
var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",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",copyInviteLinkActionedAriaLabel:"Invite link copied"};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.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",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.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",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",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}"};var dialpad$d={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$d={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$d={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$e={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$1={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$1={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$d={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$d={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad$d,holdButton:holdButton$d,videoTile:videoTile$d,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest,CameraSitePermissionsRequest:CameraSitePermissionsRequest,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck,CameraSitePermissionsCheck:CameraSitePermissionsCheck,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari,CameraSitePermissionsDenied:CameraSitePermissionsDenied,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari,UnsupportedBrowser:UnsupportedBrowser$e,UnsupportedBrowserVersion:UnsupportedBrowserVersion$1,UnsupportedOperatingSystem:UnsupportedOperatingSystem$1,BrowserPermissionDenied:BrowserPermissionDenied$d,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$d};
|
3984
4025
|
|
3985
4026
|
var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};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.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};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",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$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.",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$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 phone number",deleteButtonAriaLabel:"Delete"};var holdButton$c={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$c={participantStateConnecting:"Calling...",participantStateRinging:"Calling...",participantStateHold:"On hold"};var SitePermissions$c={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Allow Access"};var UnsupportedBrowser$d={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLink:"More help"};var BrowserPermissionDenied$c={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$c={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var en_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$c,videoTile:videoTile$c,SitePermissions:SitePermissions$c,UnsupportedBrowser:UnsupportedBrowser$d,BrowserPermissionDenied:BrowserPermissionDenied$c,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$c};
|
3986
4027
|
|
@@ -8128,7 +8169,7 @@ const useRemoteVideoStreamLifecycleMaintainer = (props) => {
|
|
8128
8169
|
*/
|
8129
8170
|
const useVideoTileContextualMenuProps = (props) => {
|
8130
8171
|
var _a;
|
8131
|
-
const { view, strings, isPinned, onPinParticipant, onUnpinParticipant, disablePinMenuItem } = props;
|
8172
|
+
const { remoteParticipant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, disablePinMenuItem, toggleAnnouncerString } = props;
|
8132
8173
|
const scalingMode = React.useMemo(() => {
|
8133
8174
|
var _a;
|
8134
8175
|
/* @conditional-compile-remove(pinned-participants) */
|
@@ -8141,6 +8182,12 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
8141
8182
|
const items = [];
|
8142
8183
|
if (isPinned !== undefined) {
|
8143
8184
|
if (isPinned && onUnpinParticipant && (strings === null || strings === void 0 ? void 0 : strings.unpinParticipantForMe)) {
|
8185
|
+
let unpinActionString = undefined;
|
8186
|
+
if (toggleAnnouncerString && strings.unpinParticipantMenuItemAriaLabel && remoteParticipant.displayName) {
|
8187
|
+
unpinActionString = _formatString(strings === null || strings === void 0 ? void 0 : strings.unpinParticipantMenuItemAriaLabel, {
|
8188
|
+
participantName: remoteParticipant.displayName
|
8189
|
+
});
|
8190
|
+
}
|
8144
8191
|
items.push({
|
8145
8192
|
key: 'unpin',
|
8146
8193
|
text: strings.unpinParticipantForMe,
|
@@ -8148,11 +8195,21 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
8148
8195
|
iconName: 'UnpinParticipant',
|
8149
8196
|
styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
|
8150
8197
|
},
|
8151
|
-
onClick: () =>
|
8152
|
-
|
8198
|
+
onClick: () => {
|
8199
|
+
onUnpinParticipant(remoteParticipant.userId);
|
8200
|
+
unpinActionString && (toggleAnnouncerString === null || toggleAnnouncerString === void 0 ? void 0 : toggleAnnouncerString(unpinActionString));
|
8201
|
+
},
|
8202
|
+
'data-ui-id': 'video-tile-unpin-participant-button',
|
8203
|
+
ariaLabel: unpinActionString
|
8153
8204
|
});
|
8154
8205
|
}
|
8155
8206
|
if (!isPinned && onPinParticipant && (strings === null || strings === void 0 ? void 0 : strings.pinParticipantForMe)) {
|
8207
|
+
let pinActionString = undefined;
|
8208
|
+
if (toggleAnnouncerString && strings.pinnedParticipantAnnouncementAriaLabel && remoteParticipant.displayName) {
|
8209
|
+
pinActionString = _formatString(strings === null || strings === void 0 ? void 0 : strings.pinnedParticipantAnnouncementAriaLabel, {
|
8210
|
+
participantName: remoteParticipant.displayName
|
8211
|
+
});
|
8212
|
+
}
|
8156
8213
|
items.push({
|
8157
8214
|
key: 'pin',
|
8158
8215
|
text: disablePinMenuItem ? strings.pinParticipantForMeLimitReached : strings.pinParticipantForMe,
|
@@ -8160,9 +8217,13 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
8160
8217
|
iconName: 'PinParticipant',
|
8161
8218
|
styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
|
8162
8219
|
},
|
8163
|
-
onClick: () =>
|
8220
|
+
onClick: () => {
|
8221
|
+
onPinParticipant(remoteParticipant.userId);
|
8222
|
+
pinActionString && (toggleAnnouncerString === null || toggleAnnouncerString === void 0 ? void 0 : toggleAnnouncerString(pinActionString));
|
8223
|
+
},
|
8164
8224
|
'data-ui-id': 'video-tile-pin-participant-button',
|
8165
|
-
disabled: disablePinMenuItem
|
8225
|
+
disabled: disablePinMenuItem,
|
8226
|
+
ariaLabel: pinActionString
|
8166
8227
|
});
|
8167
8228
|
}
|
8168
8229
|
}
|
@@ -8178,7 +8239,8 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
8178
8239
|
onClick: () => {
|
8179
8240
|
view === null || view === void 0 ? void 0 : view.updateScalingMode('Fit');
|
8180
8241
|
},
|
8181
|
-
'data-ui-id': 'video-tile-fit-to-frame'
|
8242
|
+
'data-ui-id': 'video-tile-fit-to-frame',
|
8243
|
+
ariaLabel: strings.fitRemoteParticipantToFrame
|
8182
8244
|
});
|
8183
8245
|
}
|
8184
8246
|
else if (scalingMode === 'Fit' && (strings === null || strings === void 0 ? void 0 : strings.fillRemoteParticipantFrame)) {
|
@@ -8193,7 +8255,8 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
8193
8255
|
onClick: () => {
|
8194
8256
|
view === null || view === void 0 ? void 0 : view.updateScalingMode('Crop');
|
8195
8257
|
},
|
8196
|
-
'data-ui-id': 'video-tile-fill-frame'
|
8258
|
+
'data-ui-id': 'video-tile-fill-frame',
|
8259
|
+
ariaLabel: strings.fillRemoteParticipantFrame
|
8197
8260
|
});
|
8198
8261
|
}
|
8199
8262
|
}
|
@@ -8209,8 +8272,10 @@ const useVideoTileContextualMenuProps = (props) => {
|
|
8209
8272
|
isPinned,
|
8210
8273
|
onPinParticipant,
|
8211
8274
|
onUnpinParticipant,
|
8212
|
-
|
8213
|
-
|
8275
|
+
remoteParticipant.userId,
|
8276
|
+
remoteParticipant.displayName,
|
8277
|
+
disablePinMenuItem,
|
8278
|
+
toggleAnnouncerString
|
8214
8279
|
]);
|
8215
8280
|
return contextualMenuProps;
|
8216
8281
|
};
|
@@ -8488,6 +8553,10 @@ const VideoTile = (props) => {
|
|
8488
8553
|
isPinned, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX,
|
8489
8554
|
/* @conditional-compile-remove(pinned-participants) */
|
8490
8555
|
contextualMenu } = props;
|
8556
|
+
/* @conditional-compile-remove(pinned-participants) */
|
8557
|
+
const [isHovered, setIsHovered] = React.useState(false);
|
8558
|
+
/* @conditional-compile-remove(pinned-participants) */
|
8559
|
+
const [isFocused, setIsFocused] = React.useState(false);
|
8491
8560
|
const [personaSize, setPersonaSize] = React.useState(100);
|
8492
8561
|
const videoTileRef = React.useRef(null);
|
8493
8562
|
const locale = useLocale$1();
|
@@ -8525,6 +8594,15 @@ const VideoTile = (props) => {
|
|
8525
8594
|
/* @conditional-compile-remove(pinned-participants) */
|
8526
8595
|
longPressHandlers
|
8527
8596
|
]);
|
8597
|
+
const hoverHandlers = React.useMemo(() => {
|
8598
|
+
/* @conditional-compile-remove(pinned-participants) */
|
8599
|
+
return {
|
8600
|
+
onMouseEnter: () => setIsHovered(true),
|
8601
|
+
onMouseLeave: () => setIsHovered(false),
|
8602
|
+
onFocus: () => setIsFocused(true),
|
8603
|
+
onBlur: () => setIsFocused(false)
|
8604
|
+
};
|
8605
|
+
}, []);
|
8528
8606
|
const placeholderOptions = {
|
8529
8607
|
userId,
|
8530
8608
|
text: initialsName !== null && initialsName !== void 0 ? initialsName : displayName,
|
@@ -8538,9 +8616,13 @@ const VideoTile = (props) => {
|
|
8538
8616
|
const ids = useIdentifiers();
|
8539
8617
|
const canShowLabel = showLabel && (displayName || (showMuteIndicator && isMuted));
|
8540
8618
|
const participantStateString = participantStateStringTrampoline(props, locale);
|
8619
|
+
/* @conditional-compile-remove(pinned-participants) */
|
8620
|
+
const canShowContextMenuButton = isHovered || isFocused;
|
8541
8621
|
return (React__default['default'].createElement(react.Stack, Object.assign({ "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
|
8542
8622
|
background: theme.palette.neutralLighter,
|
8543
|
-
borderRadius: theme.effects.roundedCorner4
|
8623
|
+
borderRadius: theme.effects.roundedCorner4,
|
8624
|
+
// To ensure that the video tile is focusable when there is a floating video tile
|
8625
|
+
zIndex: 1
|
8544
8626
|
}, isSpeaking && {
|
8545
8627
|
'&::before': {
|
8546
8628
|
content: `''`,
|
@@ -8552,7 +8634,7 @@ const VideoTile = (props) => {
|
|
8552
8634
|
height: '100%'
|
8553
8635
|
}
|
8554
8636
|
}, styles === null || styles === void 0 ? void 0 : styles.root) }, longPressHandlersTrampoline),
|
8555
|
-
React__default['default'].createElement("div", { ref: videoTileRef, style: { width: '100%', height: '100%' } },
|
8637
|
+
React__default['default'].createElement("div", Object.assign({ ref: videoTileRef, style: { width: '100%', height: '100%' } }, hoverHandlers),
|
8556
8638
|
isVideoRendered ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, isMirrored && { transform: 'scaleX(-1)' }, styles === null || styles === void 0 ? void 0 : styles.videoContainer) }, renderElement)) : (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, {
|
8557
8639
|
opacity: participantStateString ||
|
8558
8640
|
/* @conditional-compile-remove(PSTN-calls) */ props.participantState === 'Idle'
|
@@ -8566,7 +8648,7 @@ const VideoTile = (props) => {
|
|
8566
8648
|
showMuteIndicator && isMuted && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
8567
8649
|
React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
|
8568
8650
|
/* @conditional-compile-remove(pinned-participants) */
|
8569
|
-
React__default['default'].createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu }),
|
8651
|
+
canShowContextMenuButton && React__default['default'].createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu }),
|
8570
8652
|
/* @conditional-compile-remove(pinned-participants) */
|
8571
8653
|
isPinned && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
|
8572
8654
|
React__default['default'].createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) })))))),
|
@@ -8603,7 +8685,7 @@ const bracketedParticipantString = (participantString, withBrackets) => {
|
|
8603
8685
|
*/
|
8604
8686
|
const _RemoteVideoTile = React__default['default'].memo((props) => {
|
8605
8687
|
const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
|
8606
|
-
isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind = 'contextual', isPinned, onPinParticipant, onUnpinParticipant, disablePinMenuItem } = props;
|
8688
|
+
isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind = 'contextual', isPinned, onPinParticipant, onUnpinParticipant, disablePinMenuItem, toggleAnnouncerString } = props;
|
8607
8689
|
const remoteVideoStreamProps = React.useMemo(() => ({
|
8608
8690
|
isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
|
8609
8691
|
isScreenSharingOn,
|
@@ -8635,7 +8717,8 @@ const _RemoteVideoTile = React__default['default'].memo((props) => {
|
|
8635
8717
|
isPinned,
|
8636
8718
|
onPinParticipant,
|
8637
8719
|
onUnpinParticipant,
|
8638
|
-
disablePinMenuItem
|
8720
|
+
disablePinMenuItem,
|
8721
|
+
toggleAnnouncerString
|
8639
8722
|
});
|
8640
8723
|
const videoTileContextualMenuProps = React.useMemo(() => {
|
8641
8724
|
if (menuKind !== 'contextual') {
|
@@ -10392,6 +10475,21 @@ const VideoGallery = (props) => {
|
|
10392
10475
|
setPinnedParticipantsState(pinnedParticipantsState.filter((p) => p !== userId));
|
10393
10476
|
onUnpinParticipantHandler === null || onUnpinParticipantHandler === void 0 ? void 0 : onUnpinParticipantHandler(userId);
|
10394
10477
|
}, [pinnedParticipantsState, setPinnedParticipantsState, onUnpinParticipantHandler]);
|
10478
|
+
/* @conditional-compile-remove(pinned-participants) */
|
10479
|
+
const [announcementString, setAnnouncementString] = React__default['default'].useState('');
|
10480
|
+
/* @conditional-compile-remove(pinned-participants) */
|
10481
|
+
/**
|
10482
|
+
* sets the announcement string for VideoGallery actions so that the screenreader will trigger
|
10483
|
+
*/
|
10484
|
+
const toggleAnnouncerString = React.useCallback((announcement) => {
|
10485
|
+
setAnnouncementString(announcement);
|
10486
|
+
/**
|
10487
|
+
* Clears the announcer string after VideoGallery action allowing it to be re-announced.
|
10488
|
+
*/
|
10489
|
+
setTimeout(() => {
|
10490
|
+
setAnnouncementString('');
|
10491
|
+
}, 3000);
|
10492
|
+
}, [setAnnouncementString]);
|
10395
10493
|
const defaultOnRenderVideoTile = React.useCallback((participant, isVideoParticipant) => {
|
10396
10494
|
const remoteVideoStream = participant.videoStream;
|
10397
10495
|
/* @conditional-compile-remove(pinned-participants) */
|
@@ -10414,7 +10512,9 @@ const VideoGallery = (props) => {
|
|
10414
10512
|
/* @conditional-compile-remove(pinned-participants) */
|
10415
10513
|
isPinned: isPinned,
|
10416
10514
|
/* @conditional-compile-remove(pinned-participants) */
|
10417
|
-
disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES
|
10515
|
+
disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES,
|
10516
|
+
/* @conditional-compile-remove(pinned-participants) */
|
10517
|
+
toggleAnnouncerString: toggleAnnouncerString }));
|
10418
10518
|
}, [
|
10419
10519
|
onCreateRemoteStreamView,
|
10420
10520
|
onDisposeRemoteStreamView,
|
@@ -10426,7 +10526,8 @@ const VideoGallery = (props) => {
|
|
10426
10526
|
/* @conditional-compile-remove(pinned-participants) */ remoteVideoTileMenuOptions,
|
10427
10527
|
/* @conditional-compile-remove(pinned-participants) */ pinnedParticipants,
|
10428
10528
|
/* @conditional-compile-remove(pinned-participants) */ onPinParticipant,
|
10429
|
-
/* @conditional-compile-remove(pinned-participants) */ onUnpinParticipant
|
10529
|
+
/* @conditional-compile-remove(pinned-participants) */ onUnpinParticipant,
|
10530
|
+
/* @conditional-compile-remove(pinned-participants) */ toggleAnnouncerString
|
10430
10531
|
]);
|
10431
10532
|
const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
|
10432
10533
|
const localScreenShareStreamComponent = React__default['default'].createElement(LocalScreenShare, { localParticipant: localParticipant });
|
@@ -10471,7 +10572,10 @@ const VideoGallery = (props) => {
|
|
10471
10572
|
return (React__default['default'].createElement("div", {
|
10472
10573
|
/* @conditional-compile-remove(pinned-participants) */
|
10473
10574
|
// We don't assign an drawer menu host id to the VideoGallery when a drawerMenuHostId is assigned from props
|
10474
|
-
id: drawerMenuHostIdFromProp ? undefined : drawerMenuHostId, "data-ui-id": ids.videoGallery, ref: containerRef, className: react.mergeStyles(videoGalleryOuterDivStyle, styles === null || styles === void 0 ? void 0 : styles.root) },
|
10575
|
+
id: drawerMenuHostIdFromProp ? undefined : drawerMenuHostId, "data-ui-id": ids.videoGallery, ref: containerRef, className: react.mergeStyles(videoGalleryOuterDivStyle, styles === null || styles === void 0 ? void 0 : styles.root) },
|
10576
|
+
videoGalleryLayout,
|
10577
|
+
/* @conditional-compile-remove(pinned-participants) */
|
10578
|
+
React__default['default'].createElement(Announcer, { announcementString: announcementString, ariaLive: "polite" })));
|
10475
10579
|
};
|
10476
10580
|
|
10477
10581
|
// Copyright (c) Microsoft Corporation.
|
@@ -12709,7 +12813,7 @@ const useSelector$4 = (selector, selectorProps) => {
|
|
12709
12813
|
* @public
|
12710
12814
|
*/
|
12711
12815
|
const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1, getEnvironmentInfo], (latestErrors, diagnostics, deviceManager, environmentInfo) => {
|
12712
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
12816
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
12713
12817
|
// The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
|
12714
12818
|
// There are several options for the ordering:
|
12715
12819
|
// - Sorted by when the errors happened (latest first / oldest first).
|
@@ -12785,9 +12889,17 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
|
|
12785
12889
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopVideo', 'stopVideoGeneric');
|
12786
12890
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.mute', 'muteGeneric');
|
12787
12891
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');
|
12788
|
-
|
12892
|
+
if (((_o = latestErrors['Call.startVideo']) === null || _o === void 0 ? void 0 : _o.message) === 'Call.startVideo: Video operation failure SourceUnavailableError') {
|
12893
|
+
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAlreadyInUse');
|
12894
|
+
}
|
12895
|
+
else if (((_p = latestErrors['Call.startVideo']) === null || _p === void 0 ? void 0 : _p.message) === 'Call.startVideo: Video operation failure permissionDeniedError') {
|
12896
|
+
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAccessDenied');
|
12897
|
+
}
|
12898
|
+
else {
|
12899
|
+
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');
|
12900
|
+
}
|
12789
12901
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');
|
12790
|
-
if (((
|
12902
|
+
if (((_q = latestErrors['CallAgent.join']) === null || _q === void 0 ? void 0 : _q.message) === 'CallAgent.join: Invalid meeting link') {
|
12791
12903
|
appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallInvalidMeetingLink');
|
12792
12904
|
}
|
12793
12905
|
else {
|