@azure/communication-react 1.18.0-alpha-202406210015 → 1.18.0-alpha-202406250013

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.
Files changed (54) hide show
  1. package/dist/communication-react.d.ts +20 -0
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-GKaobFzs.js → ChatMessageComponentAsRichTextEditBox-D8CIuj9U.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-GKaobFzs.js.map → ChatMessageComponentAsRichTextEditBox-D8CIuj9U.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CmZES75M.js → RichTextSendBoxWrapper-D0jx96DX.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CmZES75M.js.map → RichTextSendBoxWrapper-D0jx96DX.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DodrLCSW.js → index-D40Kfey5.js} +233 -64
  7. package/dist/dist-cjs/communication-react/index-D40Kfey5.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +3 -0
  12. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +6 -0
  13. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  14. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +19 -3
  15. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +21 -0
  17. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +12 -1
  18. package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
  19. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +8 -4
  20. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +11 -1
  21. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  22. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BadNetworkQualityNotificationBar.d.ts +22 -0
  23. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BadNetworkQualityNotificationBar.js +40 -0
  24. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BadNetworkQualityNotificationBar.js.map +1 -0
  25. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +2 -0
  26. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +34 -18
  27. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  28. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +58 -1
  29. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  30. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +1 -1
  31. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  32. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.d.ts +1 -0
  33. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +1 -1
  34. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  35. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +2 -0
  36. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +3 -1
  37. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  38. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/badNetworkQualitySelector.d.ts +19 -0
  39. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/badNetworkQualitySelector.js +26 -0
  40. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/badNetworkQualitySelector.js.map +1 -0
  41. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +2 -0
  42. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +11 -12
  43. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  44. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +6 -3
  45. package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
  46. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  47. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/common/styles/TeamsMeetingConferenceInfo.style.d.ts +4 -0
  49. package/dist/dist-esm/react-composites/src/composites/common/styles/TeamsMeetingConferenceInfo.style.js +15 -1
  50. package/dist/dist-esm/react-composites/src/composites/common/styles/TeamsMeetingConferenceInfo.style.js.map +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +4 -0
  52. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  53. package/package.json +1 -1
  54. package/dist/dist-cjs/communication-react/index-DodrLCSW.js.map +0 -1
@@ -175,7 +175,7 @@ function getDefaultExportFromCjs (x) {
175
175
  // Copyright (c) Microsoft Corporation.
176
176
  // Licensed under the MIT License.
177
177
  // GENERATED FILE. DO NOT EDIT MANUALLY.
178
- var telemetryVersion = '1.18.0-alpha-202406210015';
178
+ var telemetryVersion = '1.18.0-alpha-202406250013';
179
179
 
180
180
 
181
181
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -509,6 +509,12 @@ const getSupportedSpokenLanguages = (state, props) => {
509
509
  var _a;
510
510
  return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.captionsFeature.supportedSpokenLanguages;
511
511
  };
512
+ /* @conditional-compile-remove(teams-meeting-conference) */
513
+ /** @private */
514
+ const getTeamsMeetingConference = (state, props) => {
515
+ var _a;
516
+ return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.teamsMeetingConference;
517
+ };
512
518
 
513
519
  // Copyright (c) Microsoft Corporation.
514
520
  // Licensed under the MIT License.
@@ -5897,7 +5903,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
5897
5903
  wordBreak: 'break-word'
5898
5904
  });
5899
5905
 
5900
- var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={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$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={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$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",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",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",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",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={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$k={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$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={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:"{status} {author} said {message}",messageContentMineAriaText:"{status} 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:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options"};var errorBar$k={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:"There was an issue starting screen share.",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.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var notifications$k={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"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}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={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$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={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$k={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 verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var MeetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollFree:"{phoneNumber} (Toll-free) {country}, {city}",meetingConferencePhoneInfoModalTollFreeWithoutGeoData:"{phoneNumber} (Toll-free)",meetingConferencePhoneInfoModalToll:"{phoneNumber} (Toll) {country}, {city}",meetingConferencePhoneInfoModalTollWithoutGeoData:"{phoneNumber} (Toll)"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notifications:notifications$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,MeetingConferencePhoneInfo:MeetingConferencePhoneInfo$k};
5906
+ var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={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$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={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$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",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",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",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",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={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$k={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$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={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:"{status} {author} said {message}",messageContentMineAriaText:"{status} 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:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options"};var errorBar$k={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:"There was an issue starting screen share.",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.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var notifications$k={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"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}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={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$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={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$k={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 verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var MeetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollFree:"(Toll-free) {country}, {city}",meetingConferencePhoneInfoModalTollFreeWithoutGeoData:"(Toll-free)",meetingConferencePhoneInfoModalToll:"(Toll) {country}, {city}",meetingConferencePhoneInfoModalTollWithoutGeoData:"(Toll)",badQualityBarTitle:"Poor Network Quality",badQualityBarClose:"Close",badQualityBarMessage:"Join this call from your phone for better sound. You can continue viewing the meeting on this device.",badQualityBarJoin:"Join by Phone"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notifications:notifications$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,MeetingConferencePhoneInfo:MeetingConferencePhoneInfo$k};
5901
5907
 
5902
5908
  // Copyright (c) Microsoft Corporation.
5903
5909
  // Licensed under the MIT License.
@@ -13933,7 +13939,7 @@ class _ErrorBoundary extends React.Component {
13933
13939
  // Copyright (c) Microsoft Corporation.
13934
13940
  // Licensed under the MIT License.
13935
13941
  /* @conditional-compile-remove(rich-text-editor) */
13936
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-GKaobFzs.js'); }));
13942
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-D8CIuj9U.js'); }));
13937
13943
  /**
13938
13944
  * @private
13939
13945
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -13941,7 +13947,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
13941
13947
  *
13942
13948
  * @conditional-compile-remove(rich-text-editor)
13943
13949
  */
13944
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-GKaobFzs.js'); });
13950
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-D8CIuj9U.js'); });
13945
13951
  /**
13946
13952
  * @private
13947
13953
  */
@@ -22232,7 +22238,7 @@ const ratingStyles = (theme) => {
22232
22238
  /**
22233
22239
  * @private
22234
22240
  */
22235
- const titleContainerClassName$2 = react.mergeStyles({
22241
+ const titleContainerClassName$3 = react.mergeStyles({
22236
22242
  paddingBottom: _pxToRem(6)
22237
22243
  });
22238
22244
 
@@ -22279,7 +22285,7 @@ const _StarSurvey = (props) => {
22279
22285
  onStarRatingSelected
22280
22286
  ]);
22281
22287
  return (React.createElement(react.Stack, { verticalAlign: "center" },
22282
- React.createElement(react.Stack, { className: titleContainerClassName$2 },
22288
+ React.createElement(react.Stack, { className: titleContainerClassName$3 },
22283
22289
  React.createElement(react.Text, { className: helperTextStyle$1(theme) }, strings === null || strings === void 0 ? void 0 : strings.starSurveyHelperText)),
22284
22290
  React.createElement(react.Rating, { max: 5, size: react.RatingSize.Large, defaultRating: 0, allowZeroStars: true, rating: rating, onChange: onRatingChange, styles: ratingStyles(theme), icon: selectedIcon !== null && selectedIcon !== void 0 ? selectedIcon : 'SurveyStarIconFilled', unselectedIcon: unselectedIcon !== null && unselectedIcon !== void 0 ? unselectedIcon : 'SurveyStarIcon', ariaLabelFormat: strings === null || strings === void 0 ? void 0 : strings.starRatingAriaLabel }),
22285
22291
  React.createElement(react.Text, { className: ratingHelperTextStyle(theme) }, ratingHelperText)));
@@ -23062,7 +23068,7 @@ const themedCaptionsSettingsModalStyle = (theme) => ({
23062
23068
  /**
23063
23069
  * @private
23064
23070
  */
23065
- const titleClassName$1 = react.mergeStyles({
23071
+ const titleClassName$2 = react.mergeStyles({
23066
23072
  fontWeight: 600,
23067
23073
  fontSize: _pxToRem(20),
23068
23074
  lineHeight: _pxToRem(28)
@@ -23070,7 +23076,7 @@ const titleClassName$1 = react.mergeStyles({
23070
23076
  /**
23071
23077
  * @private
23072
23078
  */
23073
- const titleContainerClassName$1 = react.mergeStyles({
23079
+ const titleContainerClassName$2 = react.mergeStyles({
23074
23080
  paddingBottom: _pxToRem(20)
23075
23081
  });
23076
23082
  /**
@@ -23305,8 +23311,8 @@ const _CaptionsSettingsModal = (props) => {
23305
23311
  ]);
23306
23312
  const CaptionsSettingsModalStyle = React.useMemo(() => themedCaptionsSettingsModalStyle(theme), [theme]);
23307
23313
  return (React.createElement(React.Fragment, null, React.createElement(react.Modal, { titleAriaId: strings === null || strings === void 0 ? void 0 : strings.captionsSettingsModalAriaLabel, isOpen: showModal, onDismiss: onDismiss, isBlocking: true, styles: CaptionsSettingsModalStyle },
23308
- React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: titleContainerClassName$1 },
23309
- React.createElement(react.Text, { className: titleClassName$1 }, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsModalTitle),
23314
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: titleContainerClassName$2 },
23315
+ React.createElement(react.Text, { className: titleClassName$2 }, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsModalTitle),
23310
23316
  React.createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings === null || strings === void 0 ? void 0 : strings.captionsSettingsCloseModalButtonAriaLabel, onClick: onDismiss, style: { color: theme.palette.black } })),
23311
23317
  React.createElement(react.Stack, { className: dropdownContainerClassName }, CaptionsSettingsComponent()),
23312
23318
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: buttonsContainerClassName },
@@ -23333,7 +23339,7 @@ const themedPhoneInfoModalStyle = (theme) => ({
23333
23339
  /**
23334
23340
  * @private
23335
23341
  */
23336
- const titleClassName = react.mergeStyles({
23342
+ const titleClassName$1 = react.mergeStyles({
23337
23343
  fontWeight: 600,
23338
23344
  fontSize: _pxToRem(20),
23339
23345
  lineHeight: _pxToRem(28)
@@ -23341,7 +23347,7 @@ const titleClassName = react.mergeStyles({
23341
23347
  /**
23342
23348
  * @private
23343
23349
  */
23344
- const titleContainerClassName = react.mergeStyles({
23350
+ const titleContainerClassName$1 = react.mergeStyles({
23345
23351
  paddingBottom: _pxToRem(30)
23346
23352
  });
23347
23353
  /**
@@ -23396,7 +23402,7 @@ const phoneInfoIconStyle$1 = (theme) => {
23396
23402
  /**
23397
23403
  * @private
23398
23404
  */
23399
- const infoConnectionLinkStyle = (theme) => {
23405
+ const infoConnectionLinkStyle$1 = (theme) => {
23400
23406
  return react.mergeStyles({
23401
23407
  background: `${theme.palette.themeLighter}`,
23402
23408
  width: _pxToRem(2),
@@ -23427,8 +23433,8 @@ const MeetingConferencePhoneInfoModal = (props) => {
23427
23433
  const PhoneInfoModalStyle = React.useMemo(() => themedPhoneInfoModalStyle(theme), [theme]);
23428
23434
  return (React.createElement(React.Fragment, null,
23429
23435
  React.createElement(react.Modal, { titleAriaId: strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTitle, isOpen: showModal, onDismiss: onDismiss, isBlocking: true, styles: PhoneInfoModalStyle },
23430
- React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: titleContainerClassName },
23431
- React.createElement(react.Text, { className: titleClassName }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTitle),
23436
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: titleContainerClassName$1 },
23437
+ React.createElement(react.Text, { className: titleClassName$1 }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTitle),
23432
23438
  React.createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalTitle, onClick: onDismiss, style: { color: theme.palette.black } })),
23433
23439
  conferencePhoneInfoList.length === 0 && (React.createElement(react.Stack, { horizontal: true },
23434
23440
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalNoPhoneAvailable))),
@@ -23436,18 +23442,21 @@ const MeetingConferencePhoneInfoModal = (props) => {
23436
23442
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", className: phoneInfoInctructionLine },
23437
23443
  React.createElement(react.Stack.Item, { style: { display: 'flex' } },
23438
23444
  React.createElement(react.Stack, { horizontal: true, className: phoneInfoStep$1 },
23439
- React.createElement(react.Stack, { className: infoConnectionLinkStyle(theme) }),
23445
+ React.createElement(react.Stack, { className: infoConnectionLinkStyle$1(theme) }),
23440
23446
  React.createElement(react.Stack.Item, { className: phoneInfoIcon$1(theme) },
23441
23447
  React.createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center" },
23442
23448
  React.createElement(react.Icon, { iconName: "PhoneNumberButton", className: phoneInfoIconStyle$1(theme) }))),
23443
23449
  React.createElement(react.Stack.Item, null,
23444
23450
  React.createElement(react.Text, { className: stepTextStyle }, strings === null || strings === void 0 ? void 0 : strings.meetingConferencePhoneInfoModalDialIn)))),
23445
23451
  React.createElement(react.Stack.Item, { className: phoneInfoStep$1 }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
23446
- React.createElement(react.Text, { className: phoneInfoTextStyle$1 }, formatPhoneNumberInfo(phoneNumber, strings))))))),
23452
+ React.createElement(react.Text, { className: phoneInfoTextStyle$1 }, formatPhoneNumber(phoneNumber.phoneNumber)),
23453
+ React.createElement(react.Text, { className: phoneInfoTextStyle$1 },
23454
+ " ",
23455
+ formatPhoneNumberInfo(phoneNumber, strings))))))),
23447
23456
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: phoneInfoInctructionLine },
23448
23457
  React.createElement(react.Stack.Item, { style: { display: 'flex' } },
23449
23458
  React.createElement(react.Stack, { horizontal: true },
23450
- React.createElement(react.Stack, { className: infoConnectionLinkStyle(theme) }),
23459
+ React.createElement(react.Stack, { className: infoConnectionLinkStyle$1(theme) }),
23451
23460
  React.createElement(react.Stack.Item, { className: phoneInfoIcon$1(theme) },
23452
23461
  React.createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center" },
23453
23462
  React.createElement(react.Icon, { iconName: "DtmfDialpadButton", className: phoneInfoIconStyle$1(theme) }))),
@@ -23481,6 +23490,14 @@ const formatPhoneNumber = (phoneNumber) => {
23481
23490
  return phoneNumber;
23482
23491
  };
23483
23492
  /* @conditional-compile-remove(teams-meeting-conference) */
23493
+ /**
23494
+ * @internal
23495
+ * format phone number link
23496
+ */
23497
+ const formatPhoneNumberLink = (phoneNumber) => {
23498
+ return `tel:+${phoneNumber.phoneNumber},,${phoneNumber.conferenceId}#`;
23499
+ };
23500
+ /* @conditional-compile-remove(teams-meeting-conference) */
23484
23501
  /**
23485
23502
  * @internal
23486
23503
  * format phone number
@@ -24419,7 +24436,15 @@ const useSelector$3 = (selector, selectorProps) => {
24419
24436
  *
24420
24437
  * @public
24421
24438
  */
24422
- const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1, getEnvironmentInfo], (latestErrors, diagnostics, deviceManager, environmentInfo) => {
24439
+ const errorBarSelector$1 = reselect.createSelector([
24440
+ getLatestErrors$1,
24441
+ getDiagnostics,
24442
+ getDeviceManager$1,
24443
+ getEnvironmentInfo,
24444
+ /* @conditional-compile-remove(teams-meeting-conference) */ getTeamsMeetingConference
24445
+ ], (latestErrors, diagnostics, deviceManager, environmentInfo,
24446
+ /* @conditional-compile-remove(teams-meeting-conference) */
24447
+ meetingConference) => {
24423
24448
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
24424
24449
  // The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
24425
24450
  // There are several options for the ordering:
@@ -24438,8 +24463,14 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
24438
24463
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.platform) === 'mac';
24439
24464
  };
24440
24465
  // Errors reported via diagnostics are more reliable than from API method failures, so process those first.
24441
- if (((_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _a === void 0 ? void 0 : _a.value) === communicationCalling.DiagnosticQuality.Bad ||
24442
- ((_b = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _b === void 0 ? void 0 : _b.value) === communicationCalling.DiagnosticQuality.Poor) {
24466
+ let isTeamsMeetingWithPhones = false;
24467
+ /* @conditional-compile-remove(teams-meeting-conference) */
24468
+ if (meetingConference && meetingConference.length > 0) {
24469
+ isTeamsMeetingWithPhones = true;
24470
+ }
24471
+ if (!isTeamsMeetingWithPhones && // Teams meeting with conference phones has separate notification
24472
+ (((_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _a === void 0 ? void 0 : _a.value) === communicationCalling.DiagnosticQuality.Bad ||
24473
+ ((_b = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _b === void 0 ? void 0 : _b.value) === communicationCalling.DiagnosticQuality.Poor)) {
24443
24474
  activeErrorMessages.push({ type: 'callNetworkQualityLow' });
24444
24475
  }
24445
24476
  if (((_c = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noSpeakerDevicesEnumerated) === null || _c === void 0 ? void 0 : _c.value) === true) {
@@ -28273,7 +28304,7 @@ const ParticipantListWithHeading = (props) => {
28273
28304
  /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount)),
28274
28305
  (onClickHeadingMoreButton ||
28275
28306
  ((headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0)) && (React.createElement(react.Stack.Item, null,
28276
- React.createElement(react.DefaultButton, { ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: { iconName: 'PeoplePaneMoreButton' }, onClick: onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined, menuProps: props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps, onRenderMenuIcon: () => null })))),
28307
+ React.createElement(react.DefaultButton, { "data-ui-id": "people-pane-header-more-button", ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: { iconName: 'PeoplePaneMoreButton' }, onClick: onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined, menuProps: props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps, onRenderMenuIcon: () => null })))),
28277
28308
  React.createElement(react.FocusZone, { className: participantListContainerStyle, shouldFocusOnMount: true },
28278
28309
  React.createElement(ParticipantList$k, Object.assign({}, participantListProps, { pinnedParticipants: pinnedParticipants, styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React.createElement(React.Fragment, null,
28279
28310
  React.createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { hidePersonaDetails: !!(options === null || options === void 0 ? void 0 : options.text), dataProvider: onFetchAvatarPersonaData, allowActiveBorder: true })),
@@ -28326,7 +28357,7 @@ const AttachmentDownloadErrorBar = (props) => {
28326
28357
  /**
28327
28358
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
28328
28359
  */
28329
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CmZES75M.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
28360
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D0jx96DX.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
28330
28361
  /**
28331
28362
  * @private
28332
28363
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -28334,7 +28365,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
28334
28365
  *
28335
28366
  /* @conditional-compile-remove(rich-text-editor-composite-support)
28336
28367
  */
28337
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CmZES75M.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
28368
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D0jx96DX.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
28338
28369
  /**
28339
28370
  * @private
28340
28371
  */
@@ -30004,7 +30035,7 @@ const EndCall = (props) => {
30004
30035
  React.createElement(Prompt, Object.assign({}, dialogLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, cancelButtonLabel: localeStrings.call.hangUpCancelButtonLabel, onConfirm: () => onHangUpConfirm(props.enableEndCallMenu), isOpen: showHangUpConfirm, onCancel: toggleConfirm })),
30005
30036
  React.createElement(EndCallButton, Object.assign({ "data-ui-id": "call-composite-hangup-button" }, hangUpButtonProps, {
30006
30037
  /* @conditional-compile-remove(end-call-options) */
30007
- onHangUp: hangUpOverride, styles: styles, showLabel: !compactMode,
30038
+ onHangUp: props.disableEndCallModal ? onHangUp : hangUpOverride, styles: styles, showLabel: !compactMode,
30008
30039
  /* @conditional-compile-remove(end-call-options) */
30009
30040
  enableEndCallMenu: (_a = props.enableEndCallMenu) !== null && _a !== void 0 ? _a : false }))));
30010
30041
  };
@@ -31449,7 +31480,7 @@ const inferCommonCallControlOptions = (mobileView, commonCallControlOptions) =>
31449
31480
  * @private
31450
31481
  */
31451
31482
  const CommonCallControlBar = (props) => {
31452
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
31483
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
31453
31484
  const theme = react.useTheme();
31454
31485
  const rtl = theme.rtl;
31455
31486
  const controlBarContainerRef = React.useRef(null);
@@ -31463,8 +31494,6 @@ const CommonCallControlBar = (props) => {
31463
31494
  const callWithChatStrings = useCallWithChatCompositeStrings();
31464
31495
  const options = inferCommonCallControlOptions(props.mobileView, props.callControls);
31465
31496
  const [showCaptionsSettingsModal, setShowCaptionsSettingsModal] = React.useState(false);
31466
- /* @conditional-compile-remove(teams-meeting-conference) */
31467
- const [showTeamsMeetingConferenceModal, setShowTeamsMeetingConferenceModal] = React.useState(false);
31468
31497
  /* @conditional-compile-remove(end-call-options) */
31469
31498
  // If the hangup capability is not present, we default to true
31470
31499
  const isHangUpForEveryoneAllowed = (_a = useSelector$1((state) => { var _a, _b; return (_b = (_a = state.call) === null || _a === void 0 ? void 0 : _a.capabilitiesFeature) === null || _b === void 0 ? void 0 : _b.capabilities.hangUpForEveryOne.isPresent; })) !== null && _a !== void 0 ? _a : true;
@@ -31502,10 +31531,6 @@ const CommonCallControlBar = (props) => {
31502
31531
  const onDismissCaptionsSettings = React.useCallback(() => {
31503
31532
  setShowCaptionsSettingsModal(false);
31504
31533
  }, []);
31505
- /* @conditional-compile-remove(teams-meeting-conference) */
31506
- const toggleTeamsMeetingConferenceModal = React.useCallback(() => {
31507
- setShowTeamsMeetingConferenceModal(!showTeamsMeetingConferenceModal);
31508
- }, [showTeamsMeetingConferenceModal]);
31509
31534
  const peopleButtonStrings = React.useMemo(() => ({
31510
31535
  label: callWithChatStrings.peopleButtonLabel,
31511
31536
  selectedLabel: callWithChatStrings.selectedPeopleButtonLabel,
@@ -31569,7 +31594,7 @@ const CommonCallControlBar = (props) => {
31569
31594
  return (React.createElement("div", { ref: controlBarSizeRef },
31570
31595
  React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
31571
31596
  showCaptionsSettingsModal && (React.createElement(CaptionsSettingsModal, { showCaptionsSettingsModal: showCaptionsSettingsModal, onDismissCaptionsSettings: onDismissCaptionsSettings, changeCaptionLanguage: props.isCaptionsOn && props.useTeamsCaptions })),
31572
- /* @conditional-compile-remove(teams-meeting-conference) */ showTeamsMeetingConferenceModal && (React.createElement(MeetingConferencePhoneInfoModal, { conferencePhoneInfoList: (_d = (_c = props.callAdapter.getState().call) === null || _c === void 0 ? void 0 : _c.teamsMeetingConference) !== null && _d !== void 0 ? _d : [], showModal: showTeamsMeetingConferenceModal, onDismissMeetingPhoneInfoSettings: toggleTeamsMeetingConferenceModal }))),
31597
+ /* @conditional-compile-remove(teams-meeting-conference) */ props.teamsMeetingConferenceModalPresent && (React.createElement(MeetingConferencePhoneInfoModal, { conferencePhoneInfoList: (_d = (_c = props.callAdapter.getState().call) === null || _c === void 0 ? void 0 : _c.teamsMeetingConference) !== null && _d !== void 0 ? _d : [], showModal: props.teamsMeetingConferenceModalPresent, onDismissMeetingPhoneInfoSettings: props.onToggleTeamsMeetingConferenceModal }))),
31573
31598
  React.createElement(react.Stack, { horizontal: true, reversed: !props.mobileView && !isOutOfSpace, horizontalAlign: "space-between", className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles, controlBarDesktopContainerStyles) },
31574
31599
  React.createElement(react.Stack.Item, { grow: true, className: react.mergeStyles(controlBarWrapperDesktopStyles) },
31575
31600
  React.createElement(CallAdapterProvider, { adapter: props.callAdapter },
@@ -31612,7 +31637,7 @@ const CommonCallControlBar = (props) => {
31612
31637
  /* @conditional-compile-remove(teams-meeting-conference) */
31613
31638
  teamsMeetingPhoneCallEnable: showTeamsMeetingPhoneCallButton,
31614
31639
  /* @conditional-compile-remove(teams-meeting-conference) */
31615
- onMeetingPhoneInfoClick: toggleTeamsMeetingConferenceModal })),
31640
+ onMeetingPhoneInfoClick: props.onToggleTeamsMeetingConferenceModal })),
31616
31641
  React.createElement(EndCall, { displayType: "compact", mobileView: props.mobileView, styles: endCallButtonStyles,
31617
31642
  /* @conditional-compile-remove(end-call-options) */
31618
31643
  enableEndCallMenu: !isBoolean(props.callControls) &&
@@ -31620,7 +31645,12 @@ const CommonCallControlBar = (props) => {
31620
31645
  !props.mobileView &&
31621
31646
  isHangUpForEveryoneAllowed &&
31622
31647
  !isTeams && // Temporary disable it for Teams call, since capability does not give the right value
31623
- ((_h = (_g = props.callControls) === null || _g === void 0 ? void 0 : _g.endCallButton) === null || _h === void 0 ? void 0 : _h.hangUpForEveryone) === 'endCallOptions' }))))))),
31648
+ ((_h = (_g = props.callControls) === null || _g === void 0 ? void 0 : _g.endCallButton) === null || _h === void 0 ? void 0 : _h.hangUpForEveryone) === 'endCallOptions' &&
31649
+ // Only show the end call menu when the call is connected, user should not be able to end the call for everyone
31650
+ // when they are not actively in the call to communicate they will.
31651
+ callState.callStatus === 'Connected', disableEndCallModal: !isBoolean(props.callControls) &&
31652
+ !isBoolean((_j = props.callControls) === null || _j === void 0 ? void 0 : _j.endCallButton) &&
31653
+ ((_l = (_k = props.callControls) === null || _k === void 0 ? void 0 : _k.endCallButton) === null || _l === void 0 ? void 0 : _l.disableEndCallModal) }))))))),
31624
31654
  !props.mobileView && sideButtonsPresent && (React.createElement(react.Stack.Item, null,
31625
31655
  React.createElement("div", { ref: sidepaneControlsRef },
31626
31656
  React.createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
@@ -31628,8 +31658,8 @@ const CommonCallControlBar = (props) => {
31628
31658
  ? peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.tooltipCloseAriaLabel
31629
31659
  : peopleButtonStrings === null || peopleButtonStrings === void 0 ? void 0 : peopleButtonStrings.tooltipOpenAriaLabel, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "common-call-composite-people-button", disabled: props.disableButtonsForLobbyPage ||
31630
31660
  props.disableButtonsForHoldScreen ||
31631
- isDisabled$4(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (_j = customButtons['secondary']) === null || _j === void 0 ? void 0 :
31632
- _j.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
31661
+ isDisabled$4(options.peopleButton), strings: peopleButtonStrings, styles: commonButtonStyles, componentRef: props.peopleButtonRef })), (_m = customButtons['secondary']) === null || _m === void 0 ? void 0 :
31662
+ _m.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((CustomButton, i) => {
31633
31663
  return (React.createElement(CustomButton, { key: `secondary-custom-button-${i}`, styles: commonButtonStyles, showLabel: options.displayType !== 'compact' }));
31634
31664
  }))))))));
31635
31665
  };
@@ -33171,6 +33201,7 @@ const usePeoplePane = (props) => {
33171
33201
  }
33172
33202
  }
33173
33203
  menuItems.push({
33204
+ ['data-ui-id']: 'people-pane-mute-all-remote-participants',
33174
33205
  key: 'muteAllRemoteParticipants',
33175
33206
  text: localeStrings.muteAllMenuLabel,
33176
33207
  iconProps: {
@@ -33180,7 +33211,6 @@ const usePeoplePane = (props) => {
33180
33211
  onClick: () => {
33181
33212
  setShowMuteAllPrompt(true);
33182
33213
  },
33183
- 'data-ui-id': 'participant-item-mute-all-remote-participants',
33184
33214
  ariaLabel: localeStrings.muteAllMenuLabel,
33185
33215
  disabled: isAllMuted
33186
33216
  });
@@ -33401,7 +33431,7 @@ const phoneInfoContainerStyle = {
33401
33431
  /**
33402
33432
  * @private
33403
33433
  */
33404
- react.mergeStyles({
33434
+ const titleClassName = react.mergeStyles({
33405
33435
  fontWeight: 600,
33406
33436
  fontSize: _pxToRem(20),
33407
33437
  lineHeight: _pxToRem(28)
@@ -33409,7 +33439,7 @@ react.mergeStyles({
33409
33439
  /**
33410
33440
  * @private
33411
33441
  */
33412
- react.mergeStyles({
33442
+ const titleContainerClassName = react.mergeStyles({
33413
33443
  paddingBottom: _pxToRem(20)
33414
33444
  });
33415
33445
  /**
@@ -33458,7 +33488,21 @@ const phoneInfoStep = react.mergeStyles({
33458
33488
  const phoneInfoIconStyle = (theme) => {
33459
33489
  return react.mergeStyles({
33460
33490
  padding: _pxToRem(8),
33461
- color: `${theme.palette.themePrimary}`
33491
+ color: `${theme.palette.themePrimary}`,
33492
+ zIndex: 2
33493
+ });
33494
+ };
33495
+ /**
33496
+ * @private
33497
+ */
33498
+ const infoConnectionLinkStyle = (theme) => {
33499
+ return react.mergeStyles({
33500
+ background: `${theme.palette.themeLighter}`,
33501
+ width: _pxToRem(2),
33502
+ position: 'relative',
33503
+ left: _pxToRem(19),
33504
+ top: _pxToRem(20),
33505
+ zIndex: 1
33462
33506
  });
33463
33507
  };
33464
33508
 
@@ -33488,7 +33532,10 @@ const MeetingPhoneInfoPaneContent = (props) => {
33488
33532
  React.createElement(react.Stack.Item, null,
33489
33533
  React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
33490
33534
  React.createElement(react.Stack.Item, { className: phoneInfoStep }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
33491
- React.createElement(react.Text, { className: phoneInfoTextStyle }, formatPhoneNumberInfo(phoneNumber, localeStrings))))))),
33535
+ React.createElement(react.Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, formatPhoneNumber(phoneNumber.phoneNumber)),
33536
+ React.createElement(react.Text, { className: phoneInfoTextStyle },
33537
+ " ",
33538
+ formatPhoneNumberInfo(phoneNumber, localeStrings))))))),
33492
33539
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: phoneInfoInstructionLine },
33493
33540
  React.createElement(react.Stack.Item, null,
33494
33541
  React.createElement(react.Stack, { horizontal: true },
@@ -33549,6 +33596,41 @@ const useMeetingPhoneInfoPane = (props) => {
33549
33596
  };
33550
33597
  };
33551
33598
 
33599
+ // Copyright (c) Microsoft Corporation.
33600
+ // Licensed under the MIT License.
33601
+ /* @conditional-compile-remove(teams-meeting-conference) */
33602
+ /* @conditional-compile-remove(teams-meeting-conference) */
33603
+ /**
33604
+ * Create a record for bad network when the notification recieved.
33605
+ *
33606
+ * @private
33607
+ */
33608
+ const useBadNetworkQualityNotifications = (connectionLostFlag) => {
33609
+ const [currentConnectionLost, setCurrentConnectionLost] = React.useState(false);
33610
+ React.useEffect(() => {
33611
+ setCurrentConnectionLost(connectionLostFlag);
33612
+ }, [connectionLostFlag]);
33613
+ const connectionLost = React.useMemo(() => currentConnectionLost, [currentConnectionLost]);
33614
+ return {
33615
+ isPoorNetworkQuality: connectionLost
33616
+ };
33617
+ };
33618
+ /* @conditional-compile-remove(teams-meeting-conference) */
33619
+ /**
33620
+ * Connection lost notification bar during teams meeting, which provides a message to use PSTN option.
33621
+ * @beta
33622
+ */
33623
+ const BadNetworkQualityNotificationBar = (props) => {
33624
+ const localeStrings = useLocale().component.strings.MeetingConferencePhoneInfo;
33625
+ const barStrings = {
33626
+ title: localeStrings.badQualityBarTitle ? localeStrings.badQualityBarTitle : '',
33627
+ closeButtonAriaLabel: localeStrings.badQualityBarClose ? localeStrings.badQualityBarClose : '',
33628
+ message: localeStrings.badQualityBarMessage ? localeStrings.badQualityBarMessage : '',
33629
+ primaryButtonLabel: localeStrings.badQualityBarJoin ? localeStrings.badQualityBarJoin : ''
33630
+ };
33631
+ return (React.createElement(NotificationBar, { notificationBarStrings: barStrings, notificationBarIconProps: { iconName: 'ErrorBarCallNetworkQualityLow' }, onClickPrimaryButton: () => props.onPrimaryButtonClick && props.onPrimaryButtonClick(), onDismiss: () => props.onDismissNotification && props.onDismissNotification() }));
33632
+ };
33633
+
33552
33634
  // Copyright (c) Microsoft Corporation.
33553
33635
  // Licensed under the MIT License.
33554
33636
  /**
@@ -34371,6 +34453,28 @@ const CallArrangement = (props) => {
34371
34453
  const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight,
34372
34454
  /* @conditional-compile-remove(soft-mute) */
34373
34455
  onMuteParticipant, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant } = videoGalleryProps;
34456
+ /* @conditional-compile-remove(teams-meeting-conference) */
34457
+ const [showTeamsMeetingConferenceModal, setShowTeamsMeetingConferenceModal] = React.useState(false);
34458
+ /* @conditional-compile-remove(teams-meeting-conference) */
34459
+ const toggleTeamsMeetingConferenceModal = React.useCallback(() => {
34460
+ setShowTeamsMeetingConferenceModal(!showTeamsMeetingConferenceModal);
34461
+ }, [showTeamsMeetingConferenceModal]);
34462
+ /* @conditional-compile-remove(teams-meeting-conference) */
34463
+ const { isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane, closeMeetingPhoneInfoPane } = useMeetingPhoneInfoPane(Object.assign({}, meetingPhoneInfoPaneProps));
34464
+ /* @conditional-compile-remove(teams-meeting-conference) */
34465
+ const toggleMeetingPhoneInfoPane = React.useCallback(() => {
34466
+ if (isMeetingPhoneInfoPaneOpen) {
34467
+ closeMeetingPhoneInfoPane();
34468
+ }
34469
+ else {
34470
+ openMeetingPhoneInfoPane();
34471
+ }
34472
+ }, [closeMeetingPhoneInfoPane, isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane]);
34473
+ /* @conditional-compile-remove(teams-meeting-conference) */
34474
+ const onMeetingPhoneInfoClicked = React.useCallback(() => {
34475
+ setShowDrawer(false);
34476
+ toggleMeetingPhoneInfoPane();
34477
+ }, [toggleMeetingPhoneInfoPane]);
34374
34478
  const { pinnedParticipants, setPinnedParticipants } = props;
34375
34479
  const onPinParticipant = React.useCallback((userId) => {
34376
34480
  if (pinnedParticipants && pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES) {
@@ -34442,17 +34546,6 @@ const CallArrangement = (props) => {
34442
34546
  openPeoplePane();
34443
34547
  }
34444
34548
  }, [closePeoplePane, isPeoplePaneOpen, openPeoplePane]);
34445
- /* @conditional-compile-remove(teams-meeting-conference) */
34446
- const { isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane, closeMeetingPhoneInfoPane } = useMeetingPhoneInfoPane(Object.assign({}, meetingPhoneInfoPaneProps));
34447
- /* @conditional-compile-remove(teams-meeting-conference) */
34448
- const toggleMeetingPhoneInfoPane = React.useCallback(() => {
34449
- if (isMeetingPhoneInfoPaneOpen) {
34450
- closeMeetingPhoneInfoPane();
34451
- }
34452
- else {
34453
- openMeetingPhoneInfoPane();
34454
- }
34455
- }, [closeMeetingPhoneInfoPane, isMeetingPhoneInfoPaneOpen, openMeetingPhoneInfoPane]);
34456
34549
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
34457
34550
  React.useEffect(() => {
34458
34551
  if (isInLocalHold) {
@@ -34494,11 +34587,6 @@ const CallArrangement = (props) => {
34494
34587
  setShowDrawer(false);
34495
34588
  togglePeoplePane();
34496
34589
  }, [togglePeoplePane]);
34497
- /* @conditional-compile-remove(teams-meeting-conference) */
34498
- const onMeetingPhoneInfoClicked = React.useCallback(() => {
34499
- setShowDrawer(false);
34500
- toggleMeetingPhoneInfoPane();
34501
- }, [toggleMeetingPhoneInfoPane]);
34502
34590
  const drawerContainerStylesValue = React.useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);
34503
34591
  const canUnmute = role !== 'Consumer' ? true : false;
34504
34592
  let filteredLatestErrors = props.errorBarProps !== false ? props.latestErrors : [];
@@ -34556,7 +34644,11 @@ const CallArrangement = (props) => {
34556
34644
  onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby,
34557
34645
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
34558
34646
  disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) ||
34559
- /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall, useTeamsCaptions: useTeamsCaptions, isCaptionsOn: isCaptionsOn, onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef, onStopLocalSpotlight: !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined }))))),
34647
+ /* @conditional-compile-remove(acs-close-captions) */ hasJoinedCall, useTeamsCaptions: useTeamsCaptions, isCaptionsOn: isCaptionsOn, onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef, onStopLocalSpotlight: !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined,
34648
+ /* @conditional-compile-remove(teams-meeting-conference) */
34649
+ onToggleTeamsMeetingConferenceModal: toggleTeamsMeetingConferenceModal,
34650
+ /* @conditional-compile-remove(teams-meeting-conference) */
34651
+ teamsMeetingConferenceModalPresent: showTeamsMeetingConferenceModal }))))),
34560
34652
  ((_j = props.callControlProps) === null || _j === void 0 ? void 0 : _j.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
34561
34653
  React.createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked,
34562
34654
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
@@ -34575,7 +34667,11 @@ const CallArrangement = (props) => {
34575
34667
  props.capabilitiesChangedNotificationBarProps &&
34576
34668
  props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && (React.createElement(react.Stack, { styles: bannerNotificationStyles },
34577
34669
  React.createElement(CapabilitiesChangedNotificationBar, Object.assign({}, props.capabilitiesChangedNotificationBarProps, { capabilitiesChangedNotifications: filteredCapabilitesChangedNotifications !== null && filteredCapabilitesChangedNotifications !== void 0 ? filteredCapabilitesChangedNotifications : [] })))),
34578
- canUnmute && !!props.mutedNotificationProps && (React.createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps)))),
34670
+ canUnmute && !!props.mutedNotificationProps && (React.createElement(MutedNotification, Object.assign({}, props.mutedNotificationProps))),
34671
+ /* @conditional-compile-remove(teams-meeting-conference) */ props.badNetworkQualityBannerProps &&
34672
+ props.badNetworkQualityBannerProps.isPoorNetworkQuality &&
34673
+ isTeamsCall && (React.createElement(react.Stack, { styles: bannerNotificationStyles },
34674
+ React.createElement(BadNetworkQualityNotificationBar, Object.assign({}, props.badNetworkQualityBannerProps, { onPrimaryButtonClick: toggleTeamsMeetingConferenceModal }))))),
34579
34675
  renderGallery && props.onRenderGalleryContent && props.onRenderGalleryContent(),
34580
34676
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (React.createElement(CaptionsBanner, { isMobile: props.mobileView, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, useTeamsCaptions: useTeamsCaptions }))))),
34581
34677
  React.createElement(SidePane, { mobileView: props.mobileView, maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, minWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
@@ -34862,12 +34958,56 @@ const NetworkReconnectTile = (props) => {
34862
34958
  const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;
34863
34959
  const palette = useTheme().palette;
34864
34960
  const strings = useLocale().strings.call;
34961
+ /* @conditional-compile-remove(teams-meeting-conference) */
34962
+ const localeStrings = useLocale().component.strings.MeetingConferencePhoneInfo;
34963
+ /* @conditional-compile-remove(teams-meeting-conference) */
34964
+ const theme = useTheme();
34865
34965
  const handlers = useHandlers();
34966
+ /* @conditional-compile-remove(teams-meeting-conference) */
34967
+ const isTeamsMeeting = useSelector$1(getIsTeamsMeeting);
34968
+ /* @conditional-compile-remove(teams-meeting-conference) */
34969
+ const meetingCoordinates = useSelector$1(getTeamsMeetingCoordinates);
34866
34970
  return (React.createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: React.createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(containerStyle$1), "aria-atomic": true },
34867
34971
  React.createElement(react.Stack, { horizontal: true, className: react.mergeStyles(titleContainerStyle) },
34868
34972
  React.createElement(CallCompositeIcon, { iconName: "NetworkReconnectIcon", className: react.mergeStyles(titleStyle$1(palette, isVideoReady)) }),
34869
34973
  React.createElement(react.Text, { className: react.mergeStyles(titleStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectTitle)),
34870
- React.createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectMoreDetails)) }, handlers)));
34974
+ React.createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectMoreDetails),
34975
+ /* @conditional-compile-remove(teams-meeting-conference) */ isTeamsMeeting &&
34976
+ meetingCoordinates &&
34977
+ meetingCoordinates.length > 0 && (React.createElement(react.Stack, null,
34978
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "center", verticalAlign: "center", className: titleContainerClassName },
34979
+ React.createElement(react.Text, { className: titleClassName }, localeStrings.meetingConferencePhoneInfoModalTitle)),
34980
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", className: phoneInfoInstructionLine },
34981
+ React.createElement(react.Stack.Item, null,
34982
+ React.createElement(react.Stack, { horizontal: true, className: phoneInfoStep },
34983
+ React.createElement(react.Stack, { className: infoConnectionLinkStyle(theme) }),
34984
+ React.createElement(react.Stack.Item, { className: phoneInfoIcon(theme) },
34985
+ React.createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center" },
34986
+ React.createElement(react.Icon, { iconName: "PhoneNumberButton", className: phoneInfoIconStyle(theme) }))),
34987
+ React.createElement(react.Stack.Item, null,
34988
+ React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
34989
+ React.createElement(react.Stack.Item, { className: phoneInfoStep }, meetingCoordinates.map((phoneNumber, index) => (React.createElement(react.Stack.Item, { key: index },
34990
+ React.createElement(react.Text, { className: phoneInfoTextStyle }, formatPhoneNumber(phoneNumber.phoneNumber)),
34991
+ React.createElement(react.Text, { className: phoneInfoTextStyle },
34992
+ ' ',
34993
+ formatPhoneNumberInfo(phoneNumber, localeStrings))))))),
34994
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: phoneInfoInstructionLine },
34995
+ React.createElement(react.Stack.Item, null,
34996
+ React.createElement(react.Stack, { horizontal: true },
34997
+ React.createElement(react.Stack, { className: infoConnectionLinkStyle(theme) }),
34998
+ React.createElement(react.Stack.Item, { className: phoneInfoIcon(theme) },
34999
+ React.createElement(react.Icon, { iconName: "DtmfDialpadButton", className: phoneInfoIconStyle(theme) })),
35000
+ React.createElement(react.Stack.Item, null,
35001
+ React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalMeetingId)))),
35002
+ React.createElement(react.Text, { className: phoneInfoTextStyle },
35003
+ meetingCoordinates[0].conferenceId,
35004
+ "#")),
35005
+ React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: phoneInfoInstructionLine },
35006
+ React.createElement(react.Stack, { horizontal: true },
35007
+ React.createElement(react.Stack.Item, { className: phoneInfoIcon(theme), style: { marginLeft: _pxToRem(2) } },
35008
+ React.createElement(react.Icon, { iconName: "PhoneInfoWait", className: phoneInfoIconStyle(theme) })),
35009
+ React.createElement(react.Stack.Item, null,
35010
+ React.createElement(react.Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalWait))))))) }, handlers)));
34871
35011
  };
34872
35012
 
34873
35013
  // Copyright (c) Microsoft Corporation.
@@ -35071,7 +35211,9 @@ const CallPage = (props) => {
35071
35211
  onFetchParticipantMenuItems: onFetchParticipantMenuItems,
35072
35212
  options: callControlOptions,
35073
35213
  increaseFlyoutItemSize: mobileView
35074
- }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
35214
+ }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants,
35215
+ /* @conditional-compile-remove(teams-meeting-conference) */
35216
+ badNetworkQualityBannerProps: props.badNetworkQualityBannerProps }),
35075
35217
  React.createElement(Prompt, Object.assign({ isOpen: isPromptOpen, onDismiss: () => setIsPromptOpen(false) }, promptProps))));
35076
35218
  };
35077
35219
  /**
@@ -37272,6 +37414,27 @@ function SurveyPage(props) {
37272
37414
  React.createElement(Survey, Object.assign({}, handlers, props, { onSurveySubmittedCustom: (_a = props.surveyOptions) === null || _a === void 0 ? void 0 : _a.onSurveySubmitted, onSurveyClosed: (_b = props.surveyOptions) === null || _b === void 0 ? void 0 : _b.onSurveyClosed, isMobile: props.mobileView })))));
37273
37415
  }
37274
37416
 
37417
+ // Copyright (c) Microsoft Corporation.
37418
+ // Licensed under the MIT License.
37419
+ /* @conditional-compile-remove(teams-meeting-conference) */
37420
+ /* @conditional-compile-remove(teams-meeting-conference) */
37421
+ /**
37422
+ * @private
37423
+ */
37424
+ const badNetworkQualityBannerSelector = reselect__namespace.createSelector([getUserFacingDiagnostics], (diagnostics) => {
37425
+ var _a;
37426
+ return {
37427
+ isPoorNetworkQuality: isNetworkQualityPoor((_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _a === void 0 ? void 0 : _a.value)
37428
+ };
37429
+ });
37430
+ /* @conditional-compile-remove(teams-meeting-conference) */
37431
+ /**
37432
+ * @prative
37433
+ */
37434
+ const isNetworkQualityPoor = (diagnostics) => {
37435
+ return diagnostics === communicationCalling.DiagnosticQuality.Poor || diagnostics === communicationCalling.DiagnosticQuality.Bad;
37436
+ };
37437
+
37275
37438
  // Copyright (c) Microsoft Corporation.
37276
37439
  // Licensed under the MIT License.
37277
37440
  var __awaiter$7 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -37344,6 +37507,10 @@ const MainScreen = (props) => {
37344
37507
  const compositeAudioContext = useAudio();
37345
37508
  const capabilitiesChangedInfoAndRole = useSelector$1(capabilitiesChangedInfoAndRoleSelector);
37346
37509
  const capabilitiesChangedNotificationBarProps = useTrackedCapabilityChangedNotifications(capabilitiesChangedInfoAndRole);
37510
+ /* @conditional-compile-remove(teams-meeting-conference) */
37511
+ const badNetworkQualityFlag = useSelector$1(badNetworkQualityBannerSelector);
37512
+ /* @conditional-compile-remove(teams-meeting-conference) */
37513
+ const badNetworkQualityBannerProps = useBadNetworkQualityNotifications(badNetworkQualityFlag.isPoorNetworkQuality);
37347
37514
  // Track the last dismissed errors of any error kind to prevent errors from re-appearing on subsequent page navigation
37348
37515
  // This works by tracking the most recent timestamp of any active error type.
37349
37516
  // And then tracking when that error type was last dismissed.
@@ -37434,7 +37601,9 @@ const MainScreen = (props) => {
37434
37601
  pageElement = (React.createElement(TransferPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onFetchAvatarPersonaData: onFetchAvatarPersonaData, latestErrors: getLatestErrorsTrampoline(), onDismissError: onDismissError, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
37435
37602
  break;
37436
37603
  case 'call':
37437
- pageElement = (React.createElement(CallPage, { callInvitationURL: callInvitationUrl, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: props.onCloseChatPane, latestErrors: getLatestErrorsTrampoline(), onDismissError: onDismissError, galleryLayout: userSetGalleryLayout, onUserSetGalleryLayoutChange: setUserSetGalleryLayout, onSetUserSetOverflowGalleryPosition: setUserSetOverflowGalleryPosition, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants, compositeAudioContext: compositeAudioContext, disableAutoShowDtmfDialer: (_q = props.options) === null || _q === void 0 ? void 0 : _q.disableAutoShowDtmfDialer }));
37604
+ pageElement = (React.createElement(CallPage, { callInvitationURL: callInvitationUrl, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: props.onCloseChatPane, latestErrors: getLatestErrorsTrampoline(), onDismissError: onDismissError, galleryLayout: userSetGalleryLayout, onUserSetGalleryLayoutChange: setUserSetGalleryLayout, onSetUserSetOverflowGalleryPosition: setUserSetOverflowGalleryPosition, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants, compositeAudioContext: compositeAudioContext, disableAutoShowDtmfDialer: (_q = props.options) === null || _q === void 0 ? void 0 : _q.disableAutoShowDtmfDialer,
37605
+ /* @conditional-compile-remove(teams-meeting-conference) */
37606
+ badNetworkQualityBannerProps: badNetworkQualityBannerProps }));
37438
37607
  break;
37439
37608
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
37440
37609
  case 'hold':
@@ -41504,4 +41673,4 @@ exports.useTeamsCall = useTeamsCall;
41504
41673
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
41505
41674
  exports.useTeamsCallAgent = useTeamsCallAgent;
41506
41675
  exports.useTheme = useTheme;
41507
- //# sourceMappingURL=index-DodrLCSW.js.map
41676
+ //# sourceMappingURL=index-D40Kfey5.js.map