@azure/communication-react 1.2.3-alpha-202206210013.0 → 1.2.3-alpha-202206250014.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/communication-react.d.ts +54 -15
  2. package/dist/dist-cjs/communication-react/index.js +554 -419
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  7. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.d.ts.map +1 -1
  8. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +30 -12
  9. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  10. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts +2 -2
  11. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts.map +1 -1
  12. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts +1 -1
  13. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts.map +1 -1
  14. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +1 -1
  16. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +16 -2
  19. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +16 -3
  21. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/ErrorBar.js +6 -0
  23. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/FileCard.d.ts +5 -0
  25. package/dist/dist-esm/react-components/src/components/FileCard.d.ts.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/FileCard.js +44 -14
  27. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  28. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +13 -0
  29. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts.map +1 -1
  30. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +18 -1
  31. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  32. package/dist/dist-esm/react-components/src/components/FileUploadCards.d.ts +17 -0
  33. package/dist/dist-esm/react-components/src/components/FileUploadCards.d.ts.map +1 -1
  34. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +19 -2
  35. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  36. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.d.ts.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js +8 -4
  38. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  39. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -1
  40. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/MessageThread.js +11 -9
  42. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts +3 -3
  44. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts.map +1 -1
  45. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +14 -6
  46. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +2 -2
  48. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +1 -1
  49. package/dist/dist-esm/react-components/src/components/SendBox.d.ts +12 -0
  50. package/dist/dist-esm/react-components/src/components/SendBox.d.ts.map +1 -1
  51. package/dist/dist-esm/react-components/src/components/SendBox.js +10 -5
  52. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts.map +1 -1
  54. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +8 -5
  55. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/components/VoiceOverButton.d.ts +7 -0
  57. package/dist/dist-esm/react-components/src/components/VoiceOverButton.d.ts.map +1 -0
  58. package/dist/dist-esm/react-components/src/components/VoiceOverButton.js +32 -0
  59. package/dist/dist-esm/react-components/src/components/VoiceOverButton.js.map +1 -0
  60. package/dist/dist-esm/react-components/src/components/index.d.ts +1 -0
  61. package/dist/dist-esm/react-components/src/components/index.d.ts.map +1 -1
  62. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  63. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.d.ts +9 -0
  64. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.d.ts.map +1 -0
  65. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js +26 -0
  66. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js.map +1 -0
  67. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +9 -2
  68. package/dist/dist-esm/react-components/src/theming/icons.d.ts +3 -0
  69. package/dist/dist-esm/react-components/src/theming/icons.d.ts.map +1 -1
  70. package/dist/dist-esm/react-components/src/theming/icons.js +4 -1
  71. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  72. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.d.ts.map +1 -1
  73. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +3 -3
  74. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  75. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts.map +1 -1
  76. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +2 -23
  77. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  78. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.d.ts.map +1 -1
  79. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +3 -3
  80. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  81. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts +2 -3
  82. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts.map +1 -1
  83. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js +2 -2
  84. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  85. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +1 -1
  86. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  87. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts.map +1 -1
  88. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +4 -4
  89. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  90. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/SidePaneHeader.js +1 -1
  91. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/SidePaneHeader.js.map +1 -1
  92. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +4 -4
  93. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts.map +1 -1
  94. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts +1 -1
  95. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts.map +1 -1
  96. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +1 -1
  97. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  98. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts +4 -0
  99. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts.map +1 -1
  100. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.d.ts.map +1 -1
  101. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +11 -1
  102. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  103. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.d.ts +5 -0
  104. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.d.ts.map +1 -1
  105. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +7 -1
  106. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  107. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts.map +1 -1
  108. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +28 -6
  109. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  110. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts.map +1 -1
  111. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +8 -4
  112. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  113. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +5 -0
  114. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts.map +1 -1
  115. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  116. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts +6 -2
  117. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts.map +1 -1
  118. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +20 -4
  119. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  120. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +3 -2
  121. package/package.json +7 -7
  122. package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.d.ts +0 -21
  123. package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.d.ts.map +0 -1
  124. package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.js +0 -59
  125. package/dist/dist-esm/react-composites/src/composites/common/CustomDataModelUtils.js.map +0 -1
@@ -191,7 +191,7 @@ const fromFlatCommunicationIdentifier = (id) => {
191
191
  // Copyright (c) Microsoft Corporation.
192
192
  // Licensed under the MIT license.
193
193
  // GENERATED FILE. DO NOT EDIT MANUALLY.
194
- var telemetryVersion = '1.2.3-alpha-202206210013.0';
194
+ var telemetryVersion = '1.2.3-alpha-202206250014.0';
195
195
 
196
196
  // Copyright (c) Microsoft Corporation.
197
197
  /**
@@ -462,7 +462,7 @@ const cameraButtonSelector = reselect__namespace.createSelector([getLocalVideoSt
462
462
  const localVideoFromCall = localVideoStreams === null || localVideoStreams === void 0 ? void 0 : localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');
463
463
  const permission = deviceManager.deviceAccess ? deviceManager.deviceAccess.video : true;
464
464
  return {
465
- disabled: !deviceManager.selectedCamera || !permission,
465
+ disabled: !deviceManager.selectedCamera || !permission || !deviceManager.cameras.length,
466
466
  checked: localVideoStreams !== undefined && localVideoStreams.length > 0 ? !!localVideoFromCall : previewOn,
467
467
  cameras: deviceManager.cameras,
468
468
  selectedCamera: deviceManager.selectedCamera
@@ -928,7 +928,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
928
928
  wordBreak: 'break-word'
929
929
  });
930
930
 
931
- var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad={placeholderText:"Enter a number"};var HoldButton$1={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad,HoldButton:HoldButton$1};
931
+ var participantItem$d={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed Participant"};var typingIndicator$d={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$d={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var messageStatusIndicator$d={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$d={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$d={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off"};var microphoneButton$d={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off"};var devicesButton$d={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose Audio Device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$d={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$d={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$d={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadFile:"Download file"};var errorBar$d={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link."};var videoGallery$d={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed Participant"};var dialpad={placeholderText:"Enter a number"};var HoldButton$1={onLabel:"Resume",offLabel:"Hold",toolTipOnContent:"Resume call",toolTipOffContent:"Hold call"};var en_US$1 = {participantItem:participantItem$d,typingIndicator:typingIndicator$d,sendBox:sendBox$d,messageStatusIndicator:messageStatusIndicator$d,endCallButton:endCallButton$d,cameraButton:cameraButton$d,microphoneButton:microphoneButton$d,devicesButton:devicesButton$d,participantsButton:participantsButton$d,screenShareButton:screenShareButton$d,messageThread:messageThread$d,errorBar:errorBar$d,videoGallery:videoGallery$d,dialpad:dialpad,HoldButton:HoldButton$1};
932
932
 
933
933
  var participantItem$c={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted"};var typingIndicator$c={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$c={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",fileUploadsPendingError:"Uploading... Please wait."};var messageStatusIndicator$c={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$c={label:"Leave",tooltipContent:"Leave Call"};var cameraButton$c={onLabel:"Turn off",offLabel:"Turn on",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera"};var microphoneButton$c={onLabel:"Mute",offLabel:"Unmute",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var devicesButton$c={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose Camera",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose Microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose Speaker"};var participantsButton$c={label:"People",tooltipContent:"Show Participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link"};var screenShareButton$c={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var messageThread$c={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",editedTag:"Edited",liveAuthorIntro:"{author} says",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Submit",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}"};var errorBar$c={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"Failed to start screen sharing",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneMutedBySystem:"You are muted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen."};var videoGallery$c={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Cycle camera"};var en_GB$1 = {participantItem:participantItem$c,typingIndicator:typingIndicator$c,sendBox:sendBox$c,messageStatusIndicator:messageStatusIndicator$c,endCallButton:endCallButton$c,cameraButton:cameraButton$c,microphoneButton:microphoneButton$c,devicesButton:devicesButton$c,participantsButton:participantsButton$c,screenShareButton:screenShareButton$c,messageThread:messageThread$c,errorBar:errorBar$c,videoGallery:videoGallery$c};
934
934
 
@@ -1371,10 +1371,13 @@ const messageBarType = (errorType) => {
1371
1371
  case 'callNoMicrophoneFound':
1372
1372
  case 'callMicrophoneAccessDenied':
1373
1373
  case 'callMicrophoneMutedBySystem':
1374
+ case 'callMicrophoneUnmutedBySystem':
1374
1375
  case 'callMacOsMicrophoneAccessDenied':
1375
1376
  case 'callLocalVideoFreeze':
1376
1377
  case 'callCameraAccessDenied':
1377
1378
  case 'callCameraAlreadyInUse':
1379
+ case 'callVideoStoppedBySystem':
1380
+ case 'callVideoRecoveredBySystem':
1378
1381
  case 'callMacOsCameraAccessDenied':
1379
1382
  case 'callMacOsScreenShareAccessDenied':
1380
1383
  return react.MessageBarType.warning;
@@ -1392,10 +1395,13 @@ const customIconName = {
1392
1395
  callNoMicrophoneFound: 'ErrorBarCallNoMicrophoneFound',
1393
1396
  callMicrophoneAccessDenied: 'ErrorBarCallMicrophoneAccessDenied',
1394
1397
  callMicrophoneMutedBySystem: 'ErrorBarCallMicrophoneMutedBySystem',
1398
+ callMicrophoneUnmutedBySystem: 'ErrorBarCallMicrophoneUnmutedBySystem',
1395
1399
  callMacOsMicrophoneAccessDenied: 'ErrorBarCallMacOsMicrophoneAccessDenied',
1396
1400
  callLocalVideoFreeze: 'ErrorBarCallLocalVideoFreeze',
1397
1401
  callCameraAccessDenied: 'ErrorBarCallCameraAccessDenied',
1398
1402
  callCameraAlreadyInUse: 'ErrorBarCallCameraAlreadyInUse',
1403
+ callVideoStoppedBySystem: 'ErrorBarCallVideoStoppedBySystem',
1404
+ callVideoRecoveredBySystem: 'ErrorBarCallVideoRecoveredBySystem',
1399
1405
  callMacOsCameraAccessDenied: 'ErrorBarCallMacOsCameraAccessDenied'
1400
1406
  };
1401
1407
 
@@ -1864,9 +1870,12 @@ const DEFAULT_COMPONENT_ICONS = {
1864
1870
  ErrorBarCallMacOsMicrophoneAccessDenied: React__default['default'].createElement(reactIcons.MicProhibited16Filled, null),
1865
1871
  ErrorBarCallMicrophoneAccessDenied: React__default['default'].createElement(reactIcons.MicProhibited16Filled, null),
1866
1872
  ErrorBarCallMicrophoneMutedBySystem: React__default['default'].createElement(reactIcons.MicOff16Filled, null),
1873
+ ErrorBarCallMicrophoneUnmutedBySystem: React__default['default'].createElement(reactIcons.MicOn16Filled, null),
1867
1874
  ErrorBarCallNetworkQualityLow: React__default['default'].createElement(WifiWarning16Filled, null),
1868
1875
  ErrorBarCallNoMicrophoneFound: React__default['default'].createElement(reactIcons.MicProhibited16Filled, null),
1869
1876
  ErrorBarCallNoSpeakerFound: React__default['default'].createElement(reactIcons.SpeakerMute16Filled, null),
1877
+ ErrorBarCallVideoRecoveredBySystem: React__default['default'].createElement(reactIcons.Video16Filled, null),
1878
+ ErrorBarCallVideoStoppedBySystem: React__default['default'].createElement(reactIcons.VideoProhibited16Filled, null),
1870
1879
  HorizontalGalleryLeftButton: React__default['default'].createElement(reactIcons.ChevronLeft20Regular, null),
1871
1880
  HorizontalGalleryRightButton: React__default['default'].createElement(reactIcons.ChevronRight20Regular, null),
1872
1881
  MessageDelivered: React__default['default'].createElement(reactIcons.CheckmarkCircle16Regular, null),
@@ -2078,6 +2087,81 @@ const InputBoxButton = (props) => {
2078
2087
  }, onRenderIcon: () => onRenderIcon(isHover) })));
2079
2088
  };
2080
2089
 
2090
+ // Copyright (c) Microsoft Corporation.
2091
+ /**
2092
+ * @private
2093
+ */
2094
+ const buttonStyle$1 = react.mergeStyles({
2095
+ color: 'grey',
2096
+ margin: '0',
2097
+ padding: '0',
2098
+ width: '1.0625rem',
2099
+ height: '1.0625rem',
2100
+ border: 'none',
2101
+ minWidth: '0',
2102
+ '&:hover': {
2103
+ backgroundColor: 'transparent'
2104
+ }
2105
+ });
2106
+ /**
2107
+ * @private
2108
+ */
2109
+ const iconWrapperStyle$1 = react.mergeStyles({
2110
+ position: 'absolute',
2111
+ pointerEvents: 'none'
2112
+ });
2113
+
2114
+ // Copyright (c) Microsoft Corporation.
2115
+ /**
2116
+ * @private
2117
+ */
2118
+ const VoiceOverButton = (props) => {
2119
+ const { onRenderIcon, onClick, ariaLabel, className, id, tooltipContent } = props;
2120
+ const [isHover, setIsHover] = React.useState(false);
2121
+ const mergedButtonStyle = react.mergeStyles(buttonStyle$1, className);
2122
+ const theme = useTheme();
2123
+ const calloutStyle = { root: { padding: 0 }, calloutMain: { padding: '0.5rem' } };
2124
+ // Place callout with no gap between it and the button.
2125
+ const calloutProps = {
2126
+ gapSpace: 0,
2127
+ styles: calloutStyle,
2128
+ backgroundColor: isDarkThemed(theme) ? theme.palette.neutralLighter : ''
2129
+ };
2130
+ return (React__default['default'].createElement(react.TooltipHost, { hostClassName: inputButtonTooltipStyle, content: tooltipContent, calloutProps: Object.assign({}, calloutProps) },
2131
+ React__default['default'].createElement(react.DefaultButton, { className: mergedButtonStyle, ariaLabel: ariaLabel, onClick: onClick, id: id, onMouseEnter: () => {
2132
+ setIsHover(true);
2133
+ }, onMouseLeave: () => {
2134
+ setIsHover(false);
2135
+ } }),
2136
+ React__default['default'].createElement("div", { className: iconWrapperStyle$1 }, onRenderIcon(isHover))));
2137
+ };
2138
+
2139
+ // Copyright (c) Microsoft Corporation.
2140
+ /**
2141
+ * @private
2142
+ * Announcer component to maker aria announcements on actions
2143
+ */
2144
+ const Announcer = (props) => {
2145
+ const { announcementString, ariaLive } = props;
2146
+ return React__default['default'].createElement(react.Stack, { "aria-label": announcementString, "aria-live": ariaLive, styles: announcerStyles });
2147
+ };
2148
+ /**
2149
+ * Styles to hide the announcer from view but still existing on the DOM tree it so that narration can happen.
2150
+ */
2151
+ const announcerStyles = {
2152
+ root: {
2153
+ position: 'absolute',
2154
+ width: '1px',
2155
+ height: '1px',
2156
+ padding: 0,
2157
+ margin: '-1px',
2158
+ overflow: 'hidden',
2159
+ clip: 'rect(0,0,0,0)',
2160
+ whiteSpace: 'nowrap',
2161
+ border: 0
2162
+ }
2163
+ };
2164
+
2081
2165
  // Copyright (c) Microsoft Corporation.
2082
2166
  /**
2083
2167
  * @private
@@ -2103,11 +2187,13 @@ const SendBoxErrorBar = (props) => {
2103
2187
  };
2104
2188
  }, [dismissAfterMs, onDismiss, error]);
2105
2189
  if (errorMessage) {
2106
- return (React__default['default'].createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning, styles: {
2107
- iconContainer: {
2108
- display: 'none'
2109
- }
2110
- } }, errorMessage));
2190
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
2191
+ React__default['default'].createElement(Announcer, { announcementString: errorMessage, ariaLive: 'polite' }),
2192
+ React__default['default'].createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning, styles: {
2193
+ iconContainer: {
2194
+ display: 'none'
2195
+ }
2196
+ } }, errorMessage)));
2111
2197
  }
2112
2198
  else {
2113
2199
  return React__default['default'].createElement(React__default['default'].Fragment, null);
@@ -2135,9 +2221,30 @@ const SendBoxErrors = (props) => {
2135
2221
  * A component for displaying a file card with file icon and progress bar.
2136
2222
  */
2137
2223
  const _FileCard = (props) => {
2224
+ var _a, _b, _c, _d;
2138
2225
  const { fileName, fileExtension, progress, actionIcon } = props;
2139
2226
  const theme = react.useTheme();
2227
+ /* @conditional-compile-remove(file-sharing) */
2228
+ const [announcerString, setAnnouncerString] = React.useState(undefined);
2229
+ /* @conditional-compile-remove(file-sharing) */
2230
+ const localeStrings = useLocale$1().strings.sendBox;
2231
+ /* @conditional-compile-remove(file-sharing) */
2232
+ const uploadStartedString = (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.uploading) !== null && _b !== void 0 ? _b : localeStrings.uploading;
2233
+ /* @conditional-compile-remove(file-sharing) */
2234
+ const uploadCompletedString = (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.uploadCompleted) !== null && _d !== void 0 ? _d : localeStrings.uploadCompleted;
2140
2235
  const showProgressIndicator = progress !== undefined && progress > 0 && progress < 1;
2236
+ /* @conditional-compile-remove(file-sharing) */
2237
+ React.useEffect(() => {
2238
+ if (showProgressIndicator) {
2239
+ setAnnouncerString(`${uploadStartedString} ${fileName}`);
2240
+ }
2241
+ else if (progress === 1) {
2242
+ setAnnouncerString(`${fileName} ${uploadCompletedString}`);
2243
+ }
2244
+ else {
2245
+ setAnnouncerString(undefined);
2246
+ }
2247
+ }, [progress, showProgressIndicator, fileName, uploadStartedString, uploadCompletedString]);
2141
2248
  const progressBarThicknessPx = 4;
2142
2249
  const containerClassName = react.mergeStyles({
2143
2250
  width: '12rem',
@@ -2176,20 +2283,23 @@ const _FileCard = (props) => {
2176
2283
  height: _pxToRem(progressBarThicknessPx)
2177
2284
  }
2178
2285
  };
2179
- return (React__default['default'].createElement(react.Stack, { className: containerClassName, onClick: () => {
2180
- props.actionHandler && props.actionHandler();
2181
- } },
2182
- React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: fileInfoWrapperClassName },
2183
- React__default['default'].createElement(react.Stack, null,
2184
- React__default['default'].createElement(react.Icon, Object.assign({}, reactFileTypeIcons.getFileTypeIconProps({
2185
- extension: fileExtension,
2186
- size: 24,
2187
- imageFileType: 'svg'
2188
- })))),
2189
- React__default['default'].createElement(react.Stack, { className: fileNameContainerClassName },
2190
- React__default['default'].createElement(react.Text, { className: fileNameTextClassName }, fileName)),
2191
- React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: actionIconClassName }, actionIcon && actionIcon)),
2192
- showProgressIndicator && React__default['default'].createElement(react.ProgressIndicator, { percentComplete: progress, styles: progressIndicatorStyles })));
2286
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
2287
+ /* @conditional-compile-remove(file-sharing) */
2288
+ React__default['default'].createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),
2289
+ React__default['default'].createElement(react.Stack, { className: containerClassName, onClick: () => {
2290
+ props.actionHandler && props.actionHandler();
2291
+ } },
2292
+ React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center", className: fileInfoWrapperClassName },
2293
+ React__default['default'].createElement(react.Stack, null,
2294
+ React__default['default'].createElement(react.Icon, Object.assign({}, reactFileTypeIcons.getFileTypeIconProps({
2295
+ extension: fileExtension,
2296
+ size: 24,
2297
+ imageFileType: 'svg'
2298
+ })))),
2299
+ React__default['default'].createElement(react.Stack, { className: fileNameContainerClassName },
2300
+ React__default['default'].createElement(react.Text, { className: fileNameTextClassName }, fileName)),
2301
+ React__default['default'].createElement(react.Stack, { verticalAlign: "center", className: actionIconClassName }, actionIcon && actionIcon)),
2302
+ showProgressIndicator && React__default['default'].createElement(react.ProgressIndicator, { percentComplete: progress, styles: progressIndicatorStyles }))));
2193
2303
  };
2194
2304
 
2195
2305
  // Copyright (c) Microsoft Corporation.
@@ -2253,17 +2363,29 @@ const actionIconStyle$1 = { height: '1rem' };
2253
2363
  * @internal
2254
2364
  */
2255
2365
  const _FileUploadCards = (props) => {
2366
+ var _a;
2256
2367
  const files = props.activeFileUploads;
2368
+ /* @conditional-compile-remove(file-sharing) */
2369
+ const localeStrings = useLocale$1().strings.sendBox;
2370
+ const removeFileButtonString = React.useMemo(() => () => {
2371
+ var _a, _b;
2372
+ /* @conditional-compile-remove(file-sharing) */
2373
+ return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.removeFile) !== null && _b !== void 0 ? _b : localeStrings.removeFile;
2374
+ }, [
2375
+ (_a = props.strings) === null || _a === void 0 ? void 0 : _a.removeFile,
2376
+ /* @conditional-compile-remove(file-sharing) */
2377
+ localeStrings.removeFile
2378
+ ]);
2257
2379
  if (!files || files.length === 0) {
2258
2380
  return React__default['default'].createElement(React__default['default'].Fragment, null);
2259
2381
  }
2260
2382
  return (React__default['default'].createElement(_FileCardGroup, null, files &&
2261
2383
  files
2262
2384
  .filter((file) => !file.error)
2263
- .map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.filename, progress: file.progress, key: file.id, fileExtension: extension(file.filename), actionIcon: React__default['default'].createElement(react.IconButton, { className: iconButtonClassName },
2385
+ .map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.filename, progress: file.progress, key: file.id, fileExtension: extension(file.filename), actionIcon: React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: removeFileButtonString() },
2264
2386
  React__default['default'].createElement(react.Icon, { iconName: "CancelFileUpload", style: actionIconStyle$1 })), actionHandler: () => {
2265
2387
  props.onCancelFileUpload && props.onCancelFileUpload(file.id);
2266
- } })))));
2388
+ }, strings: props.strings })))));
2267
2389
  };
2268
2390
 
2269
2391
  // Copyright (c) Microsoft Corporation.
@@ -2350,13 +2472,17 @@ const SendBox = (props) => {
2350
2472
  }, [props.activeFileUploads, fileUploadsPendingError]);
2351
2473
  /* @conditional-compile-remove(file-sharing) */
2352
2474
  const onRenderFileUploads = React.useCallback(() => {
2353
- var _a;
2475
+ var _a, _b, _c, _d, _e, _f, _g;
2354
2476
  if (!((_a = props.activeFileUploads) === null || _a === void 0 ? void 0 : _a.filter((upload) => !upload.error).length)) {
2355
2477
  return null;
2356
2478
  }
2357
2479
  return props.onRenderFileUploads ? (props.onRenderFileUploads()) : (React__default['default'].createElement(react.Stack, { className: fileUploadCardsStyles },
2358
- React__default['default'].createElement(_FileUploadCards, { activeFileUploads: props.activeFileUploads, onCancelFileUpload: props.onCancelFileUpload })));
2359
- }, [props]);
2480
+ React__default['default'].createElement(_FileUploadCards, { activeFileUploads: props.activeFileUploads, onCancelFileUpload: props.onCancelFileUpload, strings: {
2481
+ removeFile: (_c = (_b = props.strings) === null || _b === void 0 ? void 0 : _b.removeFile) !== null && _c !== void 0 ? _c : localeStrings.removeFile,
2482
+ uploading: (_e = (_d = props.strings) === null || _d === void 0 ? void 0 : _d.uploading) !== null && _e !== void 0 ? _e : localeStrings.uploading,
2483
+ uploadCompleted: (_g = (_f = props.strings) === null || _f === void 0 ? void 0 : _f.uploadCompleted) !== null && _g !== void 0 ? _g : localeStrings.uploadCompleted
2484
+ } })));
2485
+ }, [props, localeStrings]);
2360
2486
  return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(sendBoxWrapperStyles) },
2361
2487
  /* @conditional-compile-remove(file-sharing) */
2362
2488
  React__default['default'].createElement(SendBoxErrors, Object.assign({}, sendBoxErrorsProps)),
@@ -2370,7 +2496,7 @@ const SendBox = (props) => {
2370
2496
  }, onEnterKeyDown: () => {
2371
2497
  sendMessageOnClick();
2372
2498
  }, styles: mergedStyles, supportNewline: supportNewline, maxLength: MAXIMUM_LENGTH_OF_MESSAGE$1 },
2373
- React__default['default'].createElement(InputBoxButton, { onRenderIcon: onRenderSendIcon, onClick: (e) => {
2499
+ React__default['default'].createElement(VoiceOverButton, { onRenderIcon: onRenderSendIcon, onClick: (e) => {
2374
2500
  if (!textValueOverflow) {
2375
2501
  sendMessageOnClick();
2376
2502
  }
@@ -2446,17 +2572,17 @@ const MessageStatusIndicator = (props) => {
2446
2572
  };
2447
2573
  switch (status) {
2448
2574
  case 'failed':
2449
- return (React__default['default'].createElement(react.TooltipHost, { content: strings.failedToSendTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps) },
2575
+ return (React__default['default'].createElement(react.TooltipHost, { content: strings.failedToSendTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps), styles: hostStyles$1 },
2450
2576
  strings.failedToSendAriaLabel && (
2451
2577
  // live message is used here and in the following tooltips so that aria labels are announced on mobile
2452
2578
  React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.failedToSendAriaLabel, "aria-live": "polite" })),
2453
2579
  React__default['default'].createElement(react.Icon, { role: "status", "data-ui-id": "chat-composite-message-status-icon", "aria-label": strings.failedToSendAriaLabel, iconName: "MessageFailed", className: react.mergeStyles(MessageStatusIndicatorErrorIconStyle, { color: theme.palette.redDark }, styles === null || styles === void 0 ? void 0 : styles.root) })));
2454
2580
  case 'sending':
2455
- return (React__default['default'].createElement(react.TooltipHost, { content: strings.sendingTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps) },
2581
+ return (React__default['default'].createElement(react.TooltipHost, { content: strings.sendingTooltipText, "data-ui-id": "chat-composite-message-tooltip", calloutProps: Object.assign({}, calloutProps), styles: hostStyles$1 },
2456
2582
  strings.sendingAriaLabel && React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.sendingAriaLabel, "aria-live": "polite" }),
2457
2583
  React__default['default'].createElement(react.Icon, { role: "status", "data-ui-id": "chat-composite-message-status-icon", "aria-label": strings.sendingAriaLabel, iconName: "MessageSending", className: react.mergeStyles(MessageStatusIndicatorIconStyle, { color: theme.palette.themePrimary }, styles === null || styles === void 0 ? void 0 : styles.root) })));
2458
2584
  case 'seen':
2459
- return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), "data-ui-id": "chat-composite-message-tooltip", content:
2585
+ return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), "data-ui-id": "chat-composite-message-tooltip", styles: hostStyles$1, content:
2460
2586
  // when it's just 1 to 1 texting, we don't need to know who has read the message, just show message as 'seen'
2461
2587
  // when readcount is 0, we have a bug, show 'seen' to cover up as a fall back
2462
2588
  // when participant count is 0, we have a bug, show 'seen' to cover up as a fall back
@@ -2478,13 +2604,17 @@ const MessageStatusIndicator = (props) => {
2478
2604
  strings.seenAriaLabel && React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.seenAriaLabel, "aria-live": "polite" }),
2479
2605
  React__default['default'].createElement(react.Icon, { "data-ui-id": "chat-composite-message-status-icon", role: "status", "aria-label": strings.seenAriaLabel, iconName: "MessageSeen", className: react.mergeStyles({ color: theme.palette.themePrimary }, styles === null || styles === void 0 ? void 0 : styles.root) })));
2480
2606
  case 'delivered':
2481
- return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), content: strings.deliveredTooltipText, "data-ui-id": "chat-composite-message-tooltip" },
2607
+ return (React__default['default'].createElement(react.TooltipHost, { calloutProps: Object.assign({}, calloutProps), content: strings.deliveredTooltipText, "data-ui-id": "chat-composite-message-tooltip", styles: hostStyles$1 },
2482
2608
  strings.deliveredAriaLabel && React__default['default'].createElement(reactAriaLive.LiveMessage, { message: strings.deliveredAriaLabel, "aria-live": "polite" }),
2483
2609
  React__default['default'].createElement(react.Icon, { role: "status", "data-ui-id": "chat-composite-message-status-icon", "aria-label": strings.deliveredAriaLabel, iconName: "MessageDelivered", className: react.mergeStyles(MessageStatusIndicatorIconStyle, { color: theme.palette.themePrimary }, styles === null || styles === void 0 ? void 0 : styles.root) })));
2484
2610
  default:
2485
2611
  return React__default['default'].createElement(React__default['default'].Fragment, null);
2486
2612
  }
2487
2613
  };
2614
+ // The TooltipHost root uses display: inline by default.
2615
+ // To prevent sizing issues or tooltip positioning issues, we override to inline-block.
2616
+ // For more details see "Icon Button with Tooltip" on https://developer.microsoft.com/en-us/fluentui#/controls/web/button
2617
+ const hostStyles$1 = { root: { display: 'inline-block' } };
2488
2618
 
2489
2619
  // Copyright (c) Microsoft Corporation.
2490
2620
  // Minimum chat bubble width. This matches the minimum chat bubble width from FluentUI
@@ -3227,8 +3357,20 @@ const actionIconStyle = { height: '1rem' };
3227
3357
  * @internal
3228
3358
  */
3229
3359
  const _FileDownloadCards = (props) => {
3360
+ var _a;
3230
3361
  const { userId, fileMetadata } = props;
3231
3362
  const [showSpinner, setShowSpinner] = React.useState(false);
3363
+ /* @conditional-compile-remove(file-sharing) */
3364
+ const localeStrings = useLocale$1().strings.messageThread;
3365
+ const downloadFileButtonString = React.useMemo(() => () => {
3366
+ var _a, _b;
3367
+ /* @conditional-compile-remove(file-sharing) */
3368
+ return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile) !== null && _b !== void 0 ? _b : localeStrings.downloadFile;
3369
+ }, [
3370
+ (_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadFile,
3371
+ /* @conditional-compile-remove(file-sharing) */
3372
+ localeStrings.downloadFile
3373
+ ]);
3232
3374
  const fileDownloadHandler = React.useCallback((userId, file) => __awaiter$q(void 0, void 0, void 0, function* () {
3233
3375
  if (!props.downloadHandler) {
3234
3376
  window.open(file.url, '_blank', 'noopener,noreferrer');
@@ -3255,7 +3397,7 @@ const _FileDownloadCards = (props) => {
3255
3397
  }
3256
3398
  return (React__default['default'].createElement("div", { style: fileDownloadCardsStyle, "data-ui-id": "file-download-card-group" },
3257
3399
  React__default['default'].createElement(_FileCardGroup, null, fileMetadata &&
3258
- fileMetadata.map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.name, key: file.name, fileExtension: file.extension, actionIcon: showSpinner ? (React__default['default'].createElement(react.Spinner, { size: react.SpinnerSize.medium, "aria-live": 'polite', role: 'status' })) : (React__default['default'].createElement(react.IconButton, { className: iconButtonClassName },
3400
+ fileMetadata.map((file) => (React__default['default'].createElement(_FileCard, { fileName: file.name, key: file.name, fileExtension: file.extension, actionIcon: showSpinner ? (React__default['default'].createElement(react.Spinner, { size: react.SpinnerSize.medium, "aria-live": 'polite', role: 'status' })) : (React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: downloadFileButtonString() },
3259
3401
  React__default['default'].createElement(DownloadIconTrampoline, null))), actionHandler: () => fileDownloadHandler(userId, file) }))))));
3260
3402
  };
3261
3403
  /**
@@ -3284,6 +3426,7 @@ const generateCustomizedTimestamp = (props, createdOn, locale) => {
3284
3426
  };
3285
3427
  /** @private */
3286
3428
  const MessageBubble = (props) => {
3429
+ var _a;
3287
3430
  const ids = useIdentifiers();
3288
3431
  const theme = useTheme();
3289
3432
  const locale = useLocale$1();
@@ -3306,7 +3449,7 @@ const MessageBubble = (props) => {
3306
3449
  const actionMenuProps = wasInteractionByTouch
3307
3450
  ? undefined
3308
3451
  : chatMessageActionMenuProps({
3309
- ariaLabel: strings.actionMenuMoreOptions,
3452
+ ariaLabel: (_a = strings.actionMenuMoreOptions) !== null && _a !== void 0 ? _a : '',
3310
3453
  enabled: chatActionsEnabled,
3311
3454
  menuButtonRef: messageActionButtonRef,
3312
3455
  // Force show the action button while the flyout is open (otherwise this will dismiss when the pointer is hovered over the flyout)
@@ -3322,7 +3465,20 @@ const MessageBubble = (props) => {
3322
3465
  // or not we need to set the target to undefined here to actually hide the action flyout
3323
3466
  setChatMessageActionFlyoutTarget(undefined);
3324
3467
  }, [setChatMessageActionFlyoutTarget]);
3325
- const defaultOnRenderFileDownloads = React.useCallback(() => (React__default['default'].createElement(_FileDownloadCards, { userId: userId, fileMetadata: message['attachedFilesMetadata'] || [], downloadHandler: fileDownloadHandler })), [message, fileDownloadHandler, userId]);
3468
+ const defaultOnRenderFileDownloads = React.useCallback(() => {
3469
+ var _a;
3470
+ return (React__default['default'].createElement(_FileDownloadCards, { userId: userId, fileMetadata: message['attachedFilesMetadata'] || [], downloadHandler: fileDownloadHandler,
3471
+ /* @conditional-compile-remove(file-sharing) */
3472
+ strings: { downloadFile: (_a = props.strings.downloadFile) !== null && _a !== void 0 ? _a : locale.strings.messageThread.downloadFile } }));
3473
+ }, [
3474
+ userId,
3475
+ message,
3476
+ /* @conditional-compile-remove(file-sharing) */
3477
+ props,
3478
+ /* @conditional-compile-remove(file-sharing) */
3479
+ locale,
3480
+ fileDownloadHandler
3481
+ ]);
3326
3482
  const chatMessage = (React__default['default'].createElement(React__default['default'].Fragment, null,
3327
3483
  React__default['default'].createElement("div", { ref: messageRef },
3328
3484
  React__default['default'].createElement(reactNorthstar.Chat.Message, { "data-ui-id": "chat-composite-message", className: react.mergeStyles(messageContainerStyle), styles: messageContainerStyle, content: React__default['default'].createElement("div", null,
@@ -3395,7 +3551,7 @@ const ChatMessageComponent = (props) => {
3395
3551
  else {
3396
3552
  return (React__default['default'].createElement(ChatMessageComponentAsMessageBubble, Object.assign({}, props, { onRemoveClick: onRemoveClick, onEditClick: onEditClick, onResendClick: onResendClick, onRenderAvatar: props.onRenderAvatar,
3397
3553
  /* @conditional-compile-remove(date-time-customization) */
3398
- onDisplayDateTimeString: props.onDisplayDateTimeString })));
3554
+ onDisplayDateTimeString: props.onDisplayDateTimeString, strings: props.strings })));
3399
3555
  }
3400
3556
  };
3401
3557
 
@@ -3888,29 +4044,31 @@ const MessageThread = (props) => {
3888
4044
  setMessageReadBy(getParticipantsWhoHaveReadMessage(message, readReceiptsBySenderIdRef.current));
3889
4045
  }
3890
4046
  }, []);
4047
+ const localeStrings = useLocale$1().strings.messageThread;
4048
+ const strings = React.useMemo(() => (Object.assign(Object.assign({}, localeStrings), props.strings)), [localeStrings, props.strings]);
3891
4049
  // To rerender the defaultChatMessageRenderer if app running across days(every new day chat time stamp need to be regenerated)
3892
4050
  const defaultChatMessageRenderer = React.useCallback((messageProps) => {
3893
4051
  if (messageProps.message.messageType === 'chat') {
3894
- return (React__default['default'].createElement(ChatMessageComponent, Object.assign({}, messageProps, { onRenderFileDownloads: onRenderFileDownloads, message: messageProps.message, userId: props.userId, remoteParticipantsCount: participantCount ? participantCount - 1 : 0, inlineAcceptRejectEditButtons: !isNarrow, onRenderAvatar: onRenderAvatar, showMessageStatus: showMessageStatus, messageStatus: messageProps.message.status, onActionButtonClick: onActionButtonClickMemo,
4052
+ return (React__default['default'].createElement(ChatMessageComponent, Object.assign({}, messageProps, { onRenderFileDownloads: onRenderFileDownloads,
4053
+ /* @conditional-compile-remove(file-sharing) */
4054
+ strings: strings, message: messageProps.message, userId: props.userId, remoteParticipantsCount: participantCount ? participantCount - 1 : 0, inlineAcceptRejectEditButtons: !isNarrow, onRenderAvatar: onRenderAvatar, showMessageStatus: showMessageStatus, messageStatus: messageProps.message.status, onActionButtonClick: onActionButtonClickMemo,
3895
4055
  /* @conditional-compile-remove(date-time-customization) */
3896
4056
  onDisplayDateTimeString: onDisplayDateTimeString })));
3897
4057
  }
3898
4058
  return React__default['default'].createElement(React__default['default'].Fragment, null);
3899
4059
  }, [
3900
- // eslint-disable-next-line react-hooks/exhaustive-deps
3901
- new Date().toDateString(),
3902
- isNarrow,
3903
- participantCount,
3904
- onRenderAvatar,
3905
- onActionButtonClickMemo,
3906
4060
  onRenderFileDownloads,
4061
+ /* @conditional-compile-remove(file-sharing) */
4062
+ strings,
3907
4063
  props.userId,
4064
+ participantCount,
4065
+ isNarrow,
4066
+ onRenderAvatar,
3908
4067
  showMessageStatus,
4068
+ onActionButtonClickMemo,
3909
4069
  /* @conditional-compile-remove(date-time-customization) */
3910
4070
  onDisplayDateTimeString
3911
4071
  ]);
3912
- const localeStrings = useLocale$1().strings.messageThread;
3913
- const strings = React.useMemo(() => (Object.assign(Object.assign({}, localeStrings), props.strings)), [localeStrings, props.strings]);
3914
4072
  const defaultStatusRenderer = React.useCallback((message, status, participantCount, readCount) => {
3915
4073
  const onToggleToolTip = (isToggled) => {
3916
4074
  if (isToggled && readReceiptsBySenderIdRef.current) {
@@ -6399,32 +6557,6 @@ const DevicesButton = (props) => {
6399
6557
  return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { menuProps: devicesButtonMenu, menuIconProps: { hidden: true }, onRenderIcon: onRenderIcon !== null && onRenderIcon !== void 0 ? onRenderIcon : onRenderOptionsIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'devicesButtonLabel' })));
6400
6558
  };
6401
6559
 
6402
- // Copyright (c) Microsoft Corporation.
6403
- /**
6404
- * @private
6405
- * Announcer component to maker aria announcements on actions
6406
- */
6407
- const Announcer = (props) => {
6408
- const { announcementString, ariaLive } = props;
6409
- return React__default['default'].createElement(react.Stack, { "aria-label": announcementString, "aria-live": ariaLive, styles: announcerStyles });
6410
- };
6411
- /**
6412
- * Styles to hide the announcer from view but still existing on the DOM tree it so that narration can happen.
6413
- */
6414
- const announcerStyles = {
6415
- root: {
6416
- position: 'absolute',
6417
- width: '1px',
6418
- height: '1px',
6419
- padding: 0,
6420
- margin: '-1px',
6421
- overflow: 'hidden',
6422
- clip: 'rect(0,0,0,0)',
6423
- whiteSpace: 'nowrap',
6424
- border: 0
6425
- }
6426
- };
6427
-
6428
6560
  // Copyright (c) Microsoft Corporation.
6429
6561
  // Licensed under the MIT license.
6430
6562
  var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -6613,16 +6745,24 @@ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments,
6613
6745
  * @public
6614
6746
  */
6615
6747
  const MicrophoneButton = (props) => {
6616
- var _a, _b, _c, _d, _e, _f, _g;
6748
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
6617
6749
  const { onToggleMicrophone } = props;
6618
6750
  const localeStrings = useLocale$1().strings.microphoneButton;
6619
6751
  const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
6620
6752
  const [announcerString, setAnnouncerString] = React.useState(undefined);
6753
+ const isSplit = (_a = props.split) !== null && _a !== void 0 ? _a : props.enableDeviceSelectionMenu;
6754
+ // The button should be disabled when there are no mics. However if the button is a split button, if there are
6755
+ // no mics but there are speakers, then only the primary part of the button should be disabled to allow for
6756
+ // speaker change.
6757
+ const primaryDisabled = props.primaryDisabled || (isSplit && !((_b = props.microphones) === null || _b === void 0 ? void 0 : _b.length) ? true : undefined);
6758
+ const disabled = props.disabled ||
6759
+ (isSplit && !((_c = props.microphones) === null || _c === void 0 ? void 0 : _c.length) && !((_d = props.speakers) === null || _d === void 0 ? void 0 : _d.length)) ||
6760
+ (!isSplit && props.microphones && ((_e = props.microphones) === null || _e === void 0 ? void 0 : _e.length) === 0);
6621
6761
  const onRenderMicOnIcon = () => {
6622
- return React__default['default'].createElement(HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonMicOn" });
6762
+ return React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOn" });
6623
6763
  };
6624
6764
  const onRenderMicOffIcon = () => {
6625
- return React__default['default'].createElement(HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonMicOff" });
6765
+ return React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonMicOff" });
6626
6766
  };
6627
6767
  const isMicOn = props.checked;
6628
6768
  const splitButtonAriaString = isMicOn ? strings.onSplitButtonAriaLabel : strings.offSplitButtonAriaLabel;
@@ -6643,9 +6783,9 @@ const MicrophoneButton = (props) => {
6643
6783
  }), [isMicOn, onToggleMicrophone, toggleAnnouncerString]);
6644
6784
  return (React__default['default'].createElement(React__default['default'].Fragment, null,
6645
6785
  React__default['default'].createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),
6646
- React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { onClick: props.onToggleMicrophone ? onToggleClick : props.onClick, onRenderOnIcon: (_a = props.onRenderOnIcon) !== null && _a !== void 0 ? _a : onRenderMicOnIcon, onRenderOffIcon: (_b = props.onRenderOffIcon) !== null && _b !== void 0 ? _b : onRenderMicOffIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'microphoneButtonLabel', menuProps: (_d = props.menuProps) !== null && _d !== void 0 ? _d : (props.enableDeviceSelectionMenu
6647
- ? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { styles: (_e = props.styles) === null || _e === void 0 ? void 0 : _e.menuStyles }), strings)
6648
- : undefined), menuIconProps: ((_f = props.menuIconProps) !== null && _f !== void 0 ? _f : !props.enableDeviceSelectionMenu) ? { hidden: true } : undefined, split: (_g = props.split) !== null && _g !== void 0 ? _g : props.enableDeviceSelectionMenu, "aria-roledescription": props.enableDeviceSelectionMenu ? strings.microphoneButtonSplitRoleDescription : undefined, splitButtonAriaLabel: props.enableDeviceSelectionMenu ? splitButtonAriaString : undefined }))));
6786
+ React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { onClick: props.onToggleMicrophone ? onToggleClick : props.onClick, onRenderOnIcon: (_f = props.onRenderOnIcon) !== null && _f !== void 0 ? _f : onRenderMicOnIcon, onRenderOffIcon: (_g = props.onRenderOffIcon) !== null && _g !== void 0 ? _g : onRenderMicOffIcon, strings: strings, labelKey: (_h = props.labelKey) !== null && _h !== void 0 ? _h : 'microphoneButtonLabel', menuProps: (_j = props.menuProps) !== null && _j !== void 0 ? _j : (props.enableDeviceSelectionMenu
6787
+ ? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { styles: (_k = props.styles) === null || _k === void 0 ? void 0 : _k.menuStyles }), strings)
6788
+ : undefined), menuIconProps: ((_l = props.menuIconProps) !== null && _l !== void 0 ? _l : !props.enableDeviceSelectionMenu) ? { hidden: true } : undefined, split: (_m = props.split) !== null && _m !== void 0 ? _m : props.enableDeviceSelectionMenu, "aria-roledescription": props.enableDeviceSelectionMenu ? strings.microphoneButtonSplitRoleDescription : undefined, splitButtonAriaLabel: props.enableDeviceSelectionMenu ? splitButtonAriaString : undefined, disabled: disabled, primaryDisabled: primaryDisabled }))));
6649
6789
  };
6650
6790
 
6651
6791
  // Copyright (c) Microsoft Corporation.
@@ -7863,7 +8003,7 @@ const useSelector$4 = (selector, selectorProps) => {
7863
8003
  * @public
7864
8004
  */
7865
8005
  const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1], (latestErrors, diagnostics, deviceManager) => {
7866
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
8006
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
7867
8007
  // The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
7868
8008
  // There are several options for the ordering:
7869
8009
  // - Sorted by when the errors happened (latest first / oldest first).
@@ -7883,28 +8023,46 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
7883
8023
  if (((_d = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noMicrophoneDevicesEnumerated) === null || _d === void 0 ? void 0 : _d.value) === true) {
7884
8024
  activeErrorMessages.push({ type: 'callNoMicrophoneFound' });
7885
8025
  }
7886
- if (((_e = deviceManager.deviceAccess) === null || _e === void 0 ? void 0 : _e.audio) === false ||
7887
- ((_f = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneNotFunctioning) === null || _f === void 0 ? void 0 : _f.value) === true) {
8026
+ if (((_e = deviceManager.deviceAccess) === null || _e === void 0 ? void 0 : _e.audio) === false) {
7888
8027
  activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });
7889
8028
  }
7890
- if (((_g = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneMuteUnexpectedly) === null || _g === void 0 ? void 0 : _g.value) === true) {
7891
- activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });
7892
- }
7893
- if (((_h = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _h === void 0 ? void 0 : _h.value) === true) {
8029
+ if (((_f = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _f === void 0 ? void 0 : _f.value) === true) {
7894
8030
  activeErrorMessages.push({ type: 'callMacOsMicrophoneAccessDenied' });
7895
8031
  }
7896
- if (((_j = deviceManager.deviceAccess) === null || _j === void 0 ? void 0 : _j.video) === false) {
8032
+ const microphoneMuteUnexpectedlyDiagnostic = (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneMuteUnexpectedly) || (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneNotFunctioning);
8033
+ if (microphoneMuteUnexpectedlyDiagnostic) {
8034
+ if (microphoneMuteUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Bad) {
8035
+ // Inform the user that microphone stopped working and inform them to start microphone again
8036
+ activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });
8037
+ }
8038
+ else if (microphoneMuteUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Good) {
8039
+ // Inform the user that microphone recovered
8040
+ activeErrorMessages.push({ type: 'callMicrophoneUnmutedBySystem' });
8041
+ }
8042
+ }
8043
+ const cameraStoppedUnexpectedlyDiagnostic = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraStoppedUnexpectedly;
8044
+ if (cameraStoppedUnexpectedlyDiagnostic) {
8045
+ if (cameraStoppedUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Bad) {
8046
+ // Inform the user that camera stopped working and inform them to start video again
8047
+ activeErrorMessages.push({ type: 'callVideoStoppedBySystem' });
8048
+ }
8049
+ else if (cameraStoppedUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Good) {
8050
+ // Inform the user that camera recovered
8051
+ activeErrorMessages.push({ type: 'callVideoRecoveredBySystem' });
8052
+ }
8053
+ }
8054
+ if (((_g = deviceManager.deviceAccess) === null || _g === void 0 ? void 0 : _g.video) === false) {
7897
8055
  activeErrorMessages.push({ type: 'callCameraAccessDenied' });
7898
8056
  }
7899
8057
  else {
7900
- if (((_k = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) === null || _k === void 0 ? void 0 : _k.value) === true) {
8058
+ if (((_h = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) === null || _h === void 0 ? void 0 : _h.value) === true) {
7901
8059
  activeErrorMessages.push({ type: 'callCameraAlreadyInUse' });
7902
8060
  }
7903
8061
  }
7904
- if (((_l = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) === null || _l === void 0 ? void 0 : _l.value) === true) {
8062
+ if (((_j = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) === null || _j === void 0 ? void 0 : _j.value) === true) {
7905
8063
  activeErrorMessages.push({ type: 'callMacOsCameraAccessDenied' });
7906
8064
  }
7907
- if (((_m = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _m === void 0 ? void 0 : _m.value) === true) {
8065
+ if (((_k = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _k === void 0 ? void 0 : _k.value) === true) {
7908
8066
  activeErrorMessages.push({ type: 'callMacOsScreenShareAccessDenied' });
7909
8067
  }
7910
8068
  // Prefer to show errors with privacy implications.
@@ -7913,7 +8071,7 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
7913
8071
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');
7914
8072
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');
7915
8073
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');
7916
- if (((_o = latestErrors['CallAgent.join']) === null || _o === void 0 ? void 0 : _o.message) === 'CallAgent.join: Invalid meeting link') {
8074
+ if (((_l = latestErrors['CallAgent.join']) === null || _l === void 0 ? void 0 : _l.message) === 'CallAgent.join: Invalid meeting link') {
7917
8075
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallInvalidMeetingLink');
7918
8076
  }
7919
8077
  else {
@@ -12197,64 +12355,255 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
12197
12355
  */
12198
12356
  const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
12199
12357
 
12358
+ var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButtonLabel:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
12359
+
12360
+ var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipContentOpen:"Show Participants",peopleButtonTooltipContentClose:"Hide Participants",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Show Chat",chatButtonTooltipContentClose:"Hide Chat",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
12361
+
12362
+ var call$b={cameraLabel:"Kamera",cameraPermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihre Kamera.",cameraTurnedOff:"Ihre Kamera ist deaktiviert.",close:"Schließen",complianceBannerNowOnlyRecording:"Sie zeichnen nun nur diese Besprechung auf.",complianceBannerNowOnlyTranscription:"Sie transkribieren diese Besprechung jetzt nur noch.",complianceBannerRecordingAndTranscriptionSaved:"Aufzeichnung und Transkription werden gespeichert.",complianceBannerRecordingAndTranscriptionStarted:"Die Aufzeichnung und Transkription haben begonnen.",complianceBannerRecordingAndTranscriptionStopped:"Die Aufzeichnung und Transkription wurden beendet.",complianceBannerRecordingSaving:"Aufzeichnung wird gespeichert.",complianceBannerRecordingStarted:"Die Aufzeichnung wurde gestartet.",complianceBannerRecordingStopped:"Aufzeichnung wurde beendet.",complianceBannerTranscriptionStarted:"Die Transkription hat begonnen.",complianceBannerTranscriptionConsent:"Durch Ihre Teilnahme stimmen Sie zu, dass diese Besprechung transkribiert wird.",complianceBannerTranscriptionSaving:"Die Transkription wird gespeichert.",complianceBannerTranscriptionStopped:"Die Transkription wurde beendet.",configurationPageTitle:"Einen Anruf beginnen",defaultPlaceHolder:"Option auswählen",failedToJoinCallDueToNoNetworkMoreDetails:"Der Anruf wurde aufgrund eines Netzwerkproblems getrennt. Überprüfen Sie Ihre Verbindung, und treten Sie erneut bei.",failedToJoinCallDueToNoNetworkTitle:"Anruf unterbrochen",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Ihnen wurde keine Teilnahme am Anruf gewährt. Wenn dies ein Fehler war, treten Sie dem Anruf erneut bei.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Aus Wartebereich entlassen",learnMore:"Weitere Informationen",leftCallMoreDetails:"Wenn dies ein Fehler war, nehmen Sie erneut am Anruf teil.",leftCallTitle:"Sie haben den Anruf verlassen",lobbyScreenConnectingToCallTitle:"Teilnehmen am Anruf",lobbyScreenWaitingToBeAdmittedTitle:"Warten auf die Zulassung",microphonePermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihr Mikrofon.",mutedMessage:"Sie sind stummgeschaltet.",networkReconnectMoreDetails:"Offensichtlich ist etwas schief gegangen. Wir versuchen, Sie wieder mit dem Anruf zu verbinden.",networkReconnectTitle:"Einen Augenblick bitte",privacyPolicy:"Datenschutzrichtlinie",rejoinCallButtonLabel:"Am Anruf erneut teilnehmen",removedFromCallMoreDetails:"Ein anderer Teilnehmer hat Sie aus dem Anruf entfernt.",removedFromCallTitle:"Sie wurden entfernt",soundLabel:"Sound",startCallButtonLabel:"Anruf beginnen",microphoneToggleInLobbyNotAllowed:"Stummschalten oder Aufheben der Stummschaltung im Wartebereich nicht zulässig."};var chat$b={chatListHeader:"In diesem Chat"};var callWithChat$b={peopleButtonLabel:"Personen",peopleButtonTooltipContentOpen:"Teilnehmer anzeigen",peopleButtonTooltipContentClose:"Teilnehmer ausblenden",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Chat anzeigen",chatButtonTooltipContentClose:"Chat ausblenden",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Lautsprecher",moreDrawerButtonLabel:"Weitere Optionen",moreDrawerButtonTooltip:"Weitere Optionen",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In diesem Anruf",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Neue Nachricht",pictureInPictureTileAriaLabel:"Videofeeds. Klicken Sie hier, um zum Anrufbildschirm zurückzukehren.",removeMenuLabel:"Entfernen",copyInviteLinkButtonLabel:"Einladungslink kopieren"};var de_DE = {call:call$b,chat:chat$b,callWithChat:callWithChat$b};
12363
+
12364
+ var call$a={cameraLabel:"Cámara",cameraPermissionDenied:"El explorador está bloqueando el acceso a la cámara",cameraTurnedOff:"La cámara está apagada",close:"Cerrar",complianceBannerNowOnlyRecording:"Solo está grabando esta reunión.",complianceBannerNowOnlyTranscription:"Solo está transcribiendo esta reunión.",complianceBannerRecordingAndTranscriptionSaved:"Se están guardando la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStarted:"Se han iniciado la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStopped:"Se han detenido la grabación y la transcripción.",complianceBannerRecordingSaving:"La grabación se está guardando.",complianceBannerRecordingStarted:"Se ha iniciado la grabación.",complianceBannerRecordingStopped:"La grabación se ha detenido.",complianceBannerTranscriptionStarted:"La transcripción se ha iniciado.",complianceBannerTranscriptionConsent:"Al unirse, da su consentimiento para que se transcriba esta reunión.",complianceBannerTranscriptionSaving:"Se está guardando la transcripción.",complianceBannerTranscriptionStopped:"La transcripción se ha detenido.",configurationPageTitle:"Iniciar una llamada",defaultPlaceHolder:"Seleccionar una opción",failedToJoinCallDueToNoNetworkMoreDetails:"Se desconectó la llamada debido a un problema de red. Compruebe la conexión y únase de nuevo.",failedToJoinCallDueToNoNetworkTitle:"Llamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"No se te concedió la entrada a la llamada. Si se trata de un error, vuelve a unirte.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rechazado de la sala de espera",learnMore:"Más información",leftCallMoreDetails:"Si se trata de un error, vuelve a unirte a la llamada.",leftCallTitle:"Has abandonado la llamada",lobbyScreenConnectingToCallTitle:"Uniéndose a la llamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando a ser admitido",microphonePermissionDenied:"El explorador está bloqueando el acceso al micrófono",mutedMessage:"Estás silenciado",networkReconnectMoreDetails:"Parece que hubo un problema. Estamos intentando reconectar la llamada.",networkReconnectTitle:"Espere",privacyPolicy:"Directiva de privacidad",rejoinCallButtonLabel:"Volver a unirse a la llamada",removedFromCallMoreDetails:"Otro participante te ha eliminado de la llamada.",removedFromCallTitle:"Fuiste eliminado",soundLabel:"Sonido",startCallButtonLabel:"Iniciar llamada",microphoneToggleInLobbyNotAllowed:"No se puede silenciar ni reactivar el audio mientras se está en la sala de espera."};var chat$a={chatListHeader:"En este chat"};var callWithChat$a={peopleButtonLabel:"Contactos",peopleButtonTooltipContentOpen:"Mostrar participantes",peopleButtonTooltipContentClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostrar chat",chatButtonTooltipContentClose:"Ocultar chat",moreDrawerMicrophoneMenuTitle:"Micrófono",moreDrawerSpeakerMenuTitle:"Altavoz",moreDrawerButtonLabel:"Más opciones",moreDrawerButtonTooltip:"Más opciones",peoplePaneTitle:"Contactos",peoplePaneSubTitle:"En esta llamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuevo mensaje",pictureInPictureTileAriaLabel:"Fuentes de vídeo. Hacer clic para volver a la pantalla de la llamada.",removeMenuLabel:"Quitar",copyInviteLinkButtonLabel:"Copiar vínculo de invitación"};var es_ES = {call:call$a,chat:chat$a,callWithChat:callWithChat$a};
12365
+
12366
+ var call$9={cameraLabel:"Appareil photo",cameraPermissionDenied:"Votre navigateur bloque l’accès à votre caméra",cameraTurnedOff:"Votre caméra est désactivée",close:"Fermer",complianceBannerNowOnlyRecording:"Vous n’enregistrez désormais que cette réunion.",complianceBannerNowOnlyTranscription:"À présent, vous ne transcrivez que cette réunion.",complianceBannerRecordingAndTranscriptionSaved:"Sauvegarde en cours de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStarted:"Démarrage de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStopped:"L’enregistrement et la transcription ont pris fin.",complianceBannerRecordingSaving:"Sauvegarde en cours de l'enregistrement.",complianceBannerRecordingStarted:"L’enregistrement a démarré.",complianceBannerRecordingStopped:"L’enregistrement a pris fin.",complianceBannerTranscriptionStarted:"Démarrage de la transcription.",complianceBannerTranscriptionConsent:"En participant, vous autorisez la transcription de cette réunion.",complianceBannerTranscriptionSaving:"Sauvegarde en cours de la transcription.",complianceBannerTranscriptionStopped:"La transcription a pris fin.",configurationPageTitle:"Lancer un appel",defaultPlaceHolder:"Sélectionnez une option",failedToJoinCallDueToNoNetworkMoreDetails:"L’appel a été déconnecté en raison d’un problème réseau. Vérifiez votre connexion et rejoignez-la à nouveau.",failedToJoinCallDueToNoNetworkTitle:"Appel déconnecté",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Vous n’avez pas reçu d’entrée dans l’appel. S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rejeté de la salle d’attente",learnMore:"En savoir plus",leftCallMoreDetails:"S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",leftCallTitle:"Vous avez quitté l’appel.",lobbyScreenConnectingToCallTitle:"Connexion à l'appel",lobbyScreenWaitingToBeAdmittedTitle:"En attente d’admission",microphonePermissionDenied:"Votre navigateur bloque l’accès à votre micro",mutedMessage:"Le son de votre micro est désactivé.",networkReconnectMoreDetails:"On dirait qu'une erreur est survenue. Nous tentons de vous reconnecter à l’appel.",networkReconnectTitle:"Patience",privacyPolicy:"Politique de confidentialité",rejoinCallButtonLabel:"Rejoindre l’appel à nouveau.",removedFromCallMoreDetails:"Un autre participant vous a supprimé de l’appel.",removedFromCallTitle:"Vous avez été supprimé.",soundLabel:"Son",startCallButtonLabel:"Lancer l'appel",microphoneToggleInLobbyNotAllowed:"Impossible de désactiver ou d’activer le son dans la salle d’attente."};var chat$9={chatListHeader:"Dans cette conversation"};var callWithChat$9={peopleButtonLabel:"Personnes",peopleButtonTooltipContentOpen:"Afficher les participants",peopleButtonTooltipContentClose:"Masquer les participants",chatButtonLabel:"Clavardage",chatButtonTooltipContentOpen:"Afficher la conversation",chatButtonTooltipContentClose:"Masquer la conversation",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Haut-parleur",moreDrawerButtonLabel:"Autres options",moreDrawerButtonTooltip:"Autres options",peoplePaneTitle:"Personnes",peoplePaneSubTitle:"Pendant cet appel",chatPaneTitle:"Clavardage",chatButtonNewMessageNotificationLabel:"Nouveau message",pictureInPictureTileAriaLabel:"Flux vidéo. Cliquez pour revenir à l’écran d’appel.",removeMenuLabel:"Supprimer",copyInviteLinkButtonLabel:"Copier le lien d'invitation"};var fr_FR = {call:call$9,chat:chat$9,callWithChat:callWithChat$9};
12367
+
12368
+ var call$8={cameraLabel:"Fotocamera",cameraPermissionDenied:"Il browser blocca l'accesso alla fotocamera",cameraTurnedOff:"La videocamera è disabilitata",close:"Chiudi",complianceBannerNowOnlyRecording:"È in corso la registrazione solo di questa riunione.",complianceBannerNowOnlyTranscription:"È in corso la trascrizione solo di questa riunione.",complianceBannerRecordingAndTranscriptionSaved:"È in corso il salvataggio della registrazione e della trascrizione.",complianceBannerRecordingAndTranscriptionStarted:"Registrazione e trascrizione avviate.",complianceBannerRecordingAndTranscriptionStopped:"Registrazione e trascrizione interrotte.",complianceBannerRecordingSaving:"Salvataggio della registrazione in corso.",complianceBannerRecordingStarted:"Registrazione avviata.",complianceBannerRecordingStopped:"Registrazione arrestata.",complianceBannerTranscriptionStarted:"Trascrizione avviata.",complianceBannerTranscriptionConsent:"Partecipando, fornisci il consenso per la trascrizione di questa riunione.",complianceBannerTranscriptionSaving:"È in corso il salvataggio della trascrizione.",complianceBannerTranscriptionStopped:"Trascrizione interrotta.",configurationPageTitle:"Avvia una chiamata",defaultPlaceHolder:"Seleziona un'opzione",failedToJoinCallDueToNoNetworkMoreDetails:"La chiamata è stata disconnessa a causa di un problema di rete. Controlla la connessione e partecipa di nuovo.",failedToJoinCallDueToNoNetworkTitle:"Chiamata interrotta",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Non ti è stato concesso l’accesso alla chiamata. Se si è trattato di un errore, partecipa di nuovo alla chiamata.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorato dalla sala di attesa",learnMore:"Ulteriori informazioni",leftCallMoreDetails:"Se si è trattato di un errore, partecipa di nuovo alla chiamata.",leftCallTitle:"Hai abbandonato la chiamata",lobbyScreenConnectingToCallTitle:"Partecipazione alla chiamata",lobbyScreenWaitingToBeAdmittedTitle:"In attesa di essere ammessi",microphonePermissionDenied:"Il browser blocca l'accesso al microfono",mutedMessage:"L'audio è disattivato.",networkReconnectMoreDetails:"Sembra si sia verificato un errore. Stiamo cercando di ristabilire la connessione alla chiamata.",networkReconnectTitle:"Attendi",privacyPolicy:"Informativa sulla privacy",rejoinCallButtonLabel:"Partecipa alla chiamata",removedFromCallMoreDetails:"Un altro partecipante ti ha rimosso dalla chiamata.",removedFromCallTitle:"Sei stato rimosso",soundLabel:"Suono",startCallButtonLabel:"Avvia chiamata",microphoneToggleInLobbyNotAllowed:"Impossibile attivare o disattivare l'audio nella sala di attesa."};var chat$8={chatListHeader:"In questa chat"};var callWithChat$8={peopleButtonLabel:"Persone",peopleButtonTooltipContentOpen:"Mostra partecipanti",peopleButtonTooltipContentClose:"Nascondi partecipanti",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostra chat",chatButtonTooltipContentClose:"Nascondi chat",moreDrawerMicrophoneMenuTitle:"Microfono",moreDrawerSpeakerMenuTitle:"Altoparlante",moreDrawerButtonLabel:"Altre opzioni",moreDrawerButtonTooltip:"Altre opzioni",peoplePaneTitle:"Persone",peoplePaneSubTitle:"In questa chiamata",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuovo messaggio",pictureInPictureTileAriaLabel:"Feed video. Fare clic per tornare alla schermata della chiamata.",removeMenuLabel:"Rimuovi",copyInviteLinkButtonLabel:"Copia il collegamento dell’invito"};var it_IT = {call:call$8,chat:chat$8,callWithChat:callWithChat$8};
12369
+
12370
+ var call$7={cameraLabel:"カメラ",cameraPermissionDenied:"お使いのブラウザーがカメラへのアクセスをブロックしています",cameraTurnedOff:"カメラはオフになっています",close:"閉じる",complianceBannerNowOnlyRecording:"今はこの会議の録画のみを行っています。",complianceBannerNowOnlyTranscription:"この会議のトランスクリプトを作成しています。",complianceBannerRecordingAndTranscriptionSaved:"レコーディングとトランスクリプトを保存されました。",complianceBannerRecordingAndTranscriptionStarted:"レコーディングとトランスクリプトが開始されました。",complianceBannerRecordingAndTranscriptionStopped:"レコーディングとトランスクリプトを停止しました。",complianceBannerRecordingSaving:"レコーディングを保存しています。",complianceBannerRecordingStarted:"レコーディングを開始しました。",complianceBannerRecordingStopped:"レコーディングを停止しました。",complianceBannerTranscriptionStarted:"トランスクリプトが開始しました。",complianceBannerTranscriptionConsent:"参加すると、この会議のトランスクリプトの作成に同意したことになります。",complianceBannerTranscriptionSaving:"トランスクリプトを保存されました。",complianceBannerTranscriptionStopped:"トランスクリプトが停止しました。",configurationPageTitle:"通話を開始",defaultPlaceHolder:"オプションを選択する",failedToJoinCallDueToNoNetworkMoreDetails:"ネットワークの問題により、通話が切断されました。接続を確認して、もう一度参加してください。",failedToJoinCallDueToNoNetworkTitle:"通話が切断されました",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"通話のエントリが許可されませんでした。これが間違いだった場合は、通話に再参加してください。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"ロビーから消去しました",learnMore:"詳細情報",leftCallMoreDetails:"これが間違いだった場合は、通話に再度参加してください。",leftCallTitle:"通話を終了しました",lobbyScreenConnectingToCallTitle:"通話に参加中",lobbyScreenWaitingToBeAdmittedTitle:"承認待機中",microphonePermissionDenied:"お使いのブラウザーがマイクへのアクセスをブロックしています",mutedMessage:"ミュートになっています",networkReconnectMoreDetails:"問題が発生したようです。通話に戻ろうとしています。",networkReconnectTitle:"お待ちください",privacyPolicy:"プライバシー ポリシー",rejoinCallButtonLabel:"通話に再度参加",removedFromCallMoreDetails:"別の参加者があなたを通話から削除しました。",removedFromCallTitle:"削除されました",soundLabel:"音声",startCallButtonLabel:"通話を開始",microphoneToggleInLobbyNotAllowed:"ロビーにいる間はミュートまたはミュート解除できません。"};var chat$7={chatListHeader:"このチャット内"};var callWithChat$7={peopleButtonLabel:"ユーザー",peopleButtonTooltipContentOpen:"参加者を表示",peopleButtonTooltipContentClose:"参加者を非表示",chatButtonLabel:"チャット",chatButtonTooltipContentOpen:"チャットを表示",chatButtonTooltipContentClose:"チャットを非表示",moreDrawerMicrophoneMenuTitle:"マイク",moreDrawerSpeakerMenuTitle:"スピーカー",moreDrawerButtonLabel:"その他のオプション",moreDrawerButtonTooltip:"その他のオプション",peoplePaneTitle:"ユーザー",peoplePaneSubTitle:"この通話で",chatPaneTitle:"チャット",chatButtonNewMessageNotificationLabel:"新規メッセージ",pictureInPictureTileAriaLabel:"ビデオ フィード。 クリックすると通話画面に戻ります。",removeMenuLabel:"削除",copyInviteLinkButtonLabel:"招待用のリンクをコピー"};var ja_JP = {call:call$7,chat:chat$7,callWithChat:callWithChat$7};
12371
+
12372
+ var call$6={cameraLabel:"카메라",cameraPermissionDenied:"브라우저에서 카메라에 대한 액세스를 차단하고 있습니다.",cameraTurnedOff:"카메라가 꺼져 있음",close:"닫기",complianceBannerNowOnlyRecording:"이제 이 모임의 녹음/녹화만 진행합니다.",complianceBannerNowOnlyTranscription:"이제 이 모임의 전사만 진행합니다.",complianceBannerRecordingAndTranscriptionSaved:"녹음/녹화와 전사를 저장하는 중입니다.",complianceBannerRecordingAndTranscriptionStarted:"녹음/녹화와 전사를 시작했습니다.",complianceBannerRecordingAndTranscriptionStopped:"녹음/녹화와 전사를 중단했습니다.",complianceBannerRecordingSaving:"녹음/녹화를 저장하는 중입니다.",complianceBannerRecordingStarted:"녹음/녹화를 시작했습니다.",complianceBannerRecordingStopped:"녹음/녹화를 중단했습니다.",complianceBannerTranscriptionStarted:"전사를 시작했습니다.",complianceBannerTranscriptionConsent:"참가하면 이 모임이 전사되는 것에 동의하게 됩니다.",complianceBannerTranscriptionSaving:"전사를 저장하는 중입니다.",complianceBannerTranscriptionStopped:"전사를 중단했습니다.",configurationPageTitle:"통화 시작",defaultPlaceHolder:"옵션 선택",failedToJoinCallDueToNoNetworkMoreDetails:"네트워크 문제로 인해 통화 연결이 끊어졌습니다. 연결을 확인하고 다시 참가하세요.",failedToJoinCallDueToNoNetworkTitle:"통화 연결 끊김",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"통화에 참가할 수 있는 권한이 없습니다. 실수라면 통화에 다시 참가하세요.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"대기실에서 해제됐습니다.",learnMore:"자세한 정보",leftCallMoreDetails:"실수라면 통화에 다시 참가하세요.",leftCallTitle:"통화를 종료했습니다.",lobbyScreenConnectingToCallTitle:"통화에 참가",lobbyScreenWaitingToBeAdmittedTitle:"승인을 기다리는 중",microphonePermissionDenied:"브라우저에서 마이크에 대한 액세스를 차단하고 있습니다.",mutedMessage:"음소거 되었습니다.",networkReconnectMoreDetails:"문제가 발생한 것 같습니다. 통화에 다시 연결하려고 합니다.",networkReconnectTitle:"잠시만",privacyPolicy:"개인 정보 취급 방침",rejoinCallButtonLabel:"통화 다시 참가",removedFromCallMoreDetails:"다른 참가자가 귀하를 통화에서 제거했습니다.",removedFromCallTitle:"통화에서 제거됐습니다.",soundLabel:"소리",startCallButtonLabel:"통화 시작",microphoneToggleInLobbyNotAllowed:"대기실에 있는 동안에는 음소거하거나 음소거를 해제할 수 없습니다."};var chat$6={chatListHeader:"채팅 참가자"};var callWithChat$6={peopleButtonLabel:"사용자",peopleButtonTooltipContentOpen:"프레젠테이션 표시",peopleButtonTooltipContentClose:"참가자 숨기기",chatButtonLabel:"채팅",chatButtonTooltipContentOpen:"채팅 표시",chatButtonTooltipContentClose:"채팅 숨기기",moreDrawerMicrophoneMenuTitle:"마이크",moreDrawerSpeakerMenuTitle:"발화자",moreDrawerButtonLabel:"기타 옵션",moreDrawerButtonTooltip:"기타 옵션",peoplePaneTitle:"사용자",peoplePaneSubTitle:"이 통화에서",chatPaneTitle:"채팅",chatButtonNewMessageNotificationLabel:"새 메시지",pictureInPictureTileAriaLabel:"비디오 피드입니다. 클릭하면 통화 화면으로 돌아갑니다.",removeMenuLabel:"제거",copyInviteLinkButtonLabel:"초대 링크 복사"};var ko_KR = {call:call$6,chat:chat$6,callWithChat:callWithChat$6};
12373
+
12374
+ var call$5={cameraLabel:"Camera",cameraPermissionDenied:"Uw browser blokkeert de toegang tot uw camera",cameraTurnedOff:"Camera is uitgeschakeld",close:"Sluiten",complianceBannerNowOnlyRecording:"U bent nu alleen deze vergadering aan het opnemen.",complianceBannerNowOnlyTranscription:"U bent nu alleen deze vergadering aan het transcriberen.",complianceBannerRecordingAndTranscriptionSaved:"Opname en transcriptie worden opgeslagen.",complianceBannerRecordingAndTranscriptionStarted:"Opname en transcriptie zijn gestart.",complianceBannerRecordingAndTranscriptionStopped:"Opname en transcriptie zijn gestopt.",complianceBannerRecordingSaving:"De opname wordt opgeslagen.",complianceBannerRecordingStarted:"De opname is gestart.",complianceBannerRecordingStopped:"De opname is gestopt.",complianceBannerTranscriptionStarted:"Transcriptie is gestart.",complianceBannerTranscriptionConsent:"Door deel te nemen, geeft u toestemming voor het transcriberen van deze vergadering.",complianceBannerTranscriptionSaving:"Transcriptie wordt opgeslagen.",complianceBannerTranscriptionStopped:"Transcriptie is gestopt.",configurationPageTitle:"Een oproep starten",defaultPlaceHolder:"Een optie selecteren",failedToJoinCallDueToNoNetworkMoreDetails:"De verbinding is verbroken vanwege een netwerkprobleem. Controleer de verbinding en neem opnieuw deel.",failedToJoinCallDueToNoNetworkTitle:"Verbinding verbroken",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"U hebt geen toegang gekregen in het gesprek. Als dit een fout is, neemt u opnieuw deel aan het gesprek.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Verwijderd uit lobby",learnMore:"Meer informatie",leftCallMoreDetails:"Als dit een vergissing was, neemt u opnieuw deel aan het gesprek.",leftCallTitle:"U hebt het gesprek verlaten",lobbyScreenConnectingToCallTitle:"Deelnemen aan oproep",lobbyScreenWaitingToBeAdmittedTitle:"Wachten om te worden toegelaten",microphonePermissionDenied:"Uw browser blokkeert de toegang tot uw microfoon",mutedMessage:"Uw geluid is gedempt",networkReconnectMoreDetails:"Er is iets misgegaan. We proberen terug te gaan naar het gesprek.",networkReconnectTitle:"Wacht even",privacyPolicy:"Privacybeleid",rejoinCallButtonLabel:"Opnieuw deelnemen aan gesprek",removedFromCallMoreDetails:"Een andere deelnemer heeft u uit het gesprek verwijderd.",removedFromCallTitle:"U bent verwijderd",soundLabel:"Geluid",startCallButtonLabel:"Gesprek starten",microphoneToggleInLobbyNotAllowed:"Kan niet dempen of dempen opheffen in de lobby."};var chat$5={chatListHeader:"In deze chat"};var callWithChat$5={peopleButtonLabel:"Personen",peopleButtonTooltipContentOpen:"Deelnemers weergeven",peopleButtonTooltipContentClose:"Deelnemers verbergen",chatButtonLabel:"Chatten",chatButtonTooltipContentOpen:"Chat weergeven",chatButtonTooltipContentClose:"Chat verbergen",moreDrawerMicrophoneMenuTitle:"Microfoon",moreDrawerSpeakerMenuTitle:"Luidspreker",moreDrawerButtonLabel:"Meer opties",moreDrawerButtonTooltip:"Meer opties",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In dit gesprek",chatPaneTitle:"Chatten",chatButtonNewMessageNotificationLabel:"Nieuw bericht",pictureInPictureTileAriaLabel:"Videofeeds. Klik om terug te keren naar het oproepscherm.",removeMenuLabel:"Verwijderen",copyInviteLinkButtonLabel:"Uitnodigingskoppeling kopiëren"};var nl_NL = {call:call$5,chat:chat$5,callWithChat:callWithChat$5};
12375
+
12376
+ var call$4={cameraLabel:"Câmera",cameraPermissionDenied:"Seu navegador está bloqueando o acesso à câmera",cameraTurnedOff:"Sua câmera está desativada",close:"Fechar",complianceBannerNowOnlyRecording:"Você agora está apenas gravando esta reunião.",complianceBannerNowOnlyTranscription:"Você agora está apenas transcrevendo esta reunião.",complianceBannerRecordingAndTranscriptionSaved:"A gravação e a transcrição estão sendo salvas.",complianceBannerRecordingAndTranscriptionStarted:"A gravação e a transcrição foram iniciadas.",complianceBannerRecordingAndTranscriptionStopped:"A gravação e a transcrição foram interrompidas.",complianceBannerRecordingSaving:"A gravação está sendo salva.",complianceBannerRecordingStarted:"A gravação foi iniciada.",complianceBannerRecordingStopped:"A gravação foi interrompida.",complianceBannerTranscriptionStarted:"A transcrição foi iniciada.",complianceBannerTranscriptionConsent:"Ao ingressar, você está dando consentimento para que esta reunião seja transcrita.",complianceBannerTranscriptionSaving:"A transcrição está sendo salva.",complianceBannerTranscriptionStopped:"A transcrição foi interrompida.",configurationPageTitle:"Iniciar uma chamada",defaultPlaceHolder:"Selecionar uma opção",failedToJoinCallDueToNoNetworkMoreDetails:"A chamada foi desconectada devido a um problema de rede. Verifique sua conexão e ingresse novamente.",failedToJoinCallDueToNoNetworkTitle:"Chamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Você não recebeu entrada na chamada. Se isso foi um erro, ingresse novamente na chamada.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorado do lobby",learnMore:"Saber mais",leftCallMoreDetails:"Se isso foi um erro, ingresse novamente na chamada.",leftCallTitle:"Você saiu da chamada",lobbyScreenConnectingToCallTitle:"Ingressando na chamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando para ser admitido",microphonePermissionDenied:"Seu navegador está bloqueando o acesso ao microfone",mutedMessage:"Você está com o mudo ativado",networkReconnectMoreDetails:"Parece que algo deu errado. Estamos tentando retornar à chamada.",networkReconnectTitle:"Em espera",privacyPolicy:"Política de privacidade",rejoinCallButtonLabel:"Reingressar na chamada",removedFromCallMoreDetails:"Outro participante removeu você da chamada.",removedFromCallTitle:"Você foi removido",soundLabel:"Som",startCallButtonLabel:"Iniciar chamada",microphoneToggleInLobbyNotAllowed:"Não é possível ativar ou desativar mudo enquanto estiver no lobby."};var chat$4={chatListHeader:"Neste chat"};var callWithChat$4={peopleButtonLabel:"Pessoas",peopleButtonTooltipContentOpen:"Mostrar Participantes",peopleButtonTooltipContentClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostrar Chat",chatButtonTooltipContentClose:"Ocultar Chat",moreDrawerMicrophoneMenuTitle:"Microfone",moreDrawerSpeakerMenuTitle:"Alto-falante",moreDrawerButtonLabel:"Mais opções",moreDrawerButtonTooltip:"Mais opções",peoplePaneTitle:"Pessoas",peoplePaneSubTitle:"Nesta chamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nova mensagem",pictureInPictureTileAriaLabel:"Feeds de vídeo. Clique para retornar à tela de chamada.",removeMenuLabel:"Remover",copyInviteLinkButtonLabel:"Copiar o link de convite"};var pt_BR = {call:call$4,chat:chat$4,callWithChat:callWithChat$4};
12377
+
12378
+ var call$3={cameraLabel:"Камера",cameraPermissionDenied:"Браузер блокирует доступ к вашей камере",cameraTurnedOff:"Камера выключена",close:"Закрыть",complianceBannerNowOnlyRecording:"Сейчас для этого собрания ведется только запись.",complianceBannerNowOnlyTranscription:"Сейчас для этого собрания ведется только транскрибирование.",complianceBannerRecordingAndTranscriptionSaved:"Сохранение записи и транскрибирования.",complianceBannerRecordingAndTranscriptionStarted:"Начата запись и транскрибирование.",complianceBannerRecordingAndTranscriptionStopped:"Запись и транскрибирование остановлены.",complianceBannerRecordingSaving:"Сохранение записи.",complianceBannerRecordingStarted:"Запись начата.",complianceBannerRecordingStopped:"Запись остановлена.",complianceBannerTranscriptionStarted:"Транскрибирование запущено.",complianceBannerTranscriptionConsent:"Присоединяясь, вы даете согласие на транскрибирование этого собрания.",complianceBannerTranscriptionSaving:"Сохранение транскрибирования.",complianceBannerTranscriptionStopped:"Транскрибирование остановлено.",configurationPageTitle:"Позвонить",defaultPlaceHolder:"Выберите один из вариантов",failedToJoinCallDueToNoNetworkMoreDetails:"Звонок был отключен из-за проблемы с сетью. Проверьте подключение и присоединитесь еще раз.",failedToJoinCallDueToNoNetworkTitle:"Вызов прерван",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Вам не предоставили доступ к беседе. Если это произошло по ошибке, заново присоединитесь к беседе.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Вы были удалены из \"зала ожидания\"",learnMore:"Подробнее",leftCallMoreDetails:"Если это произошло по ошибке, заново присоединитесь к беседе.",leftCallTitle:"Вы покинули беседу",lobbyScreenConnectingToCallTitle:"Подключение к звонку",lobbyScreenWaitingToBeAdmittedTitle:"Ожидание допуска",microphonePermissionDenied:"Браузер блокирует доступ к вашему микрофону",mutedMessage:"Ваш звук отключен",networkReconnectMoreDetails:"Похоже, что-то пошло не так. Мы пытаемся вернуться к звонку.",networkReconnectTitle:"Подождите",privacyPolicy:"Политика конфиденциальности",rejoinCallButtonLabel:"Повторно присоединиться к звонку",removedFromCallMoreDetails:"Другой участник удалил вас из беседы.",removedFromCallTitle:"Вы были удалены",soundLabel:"Звук",startCallButtonLabel:"Начать звонок",microphoneToggleInLobbyNotAllowed:"Невозможно отключить или включить звук, находясь в \"зале ожидания\"."};var chat$3={chatListHeader:"В этом чате"};var callWithChat$3={peopleButtonLabel:"Люди",peopleButtonTooltipContentOpen:"Показать участников",peopleButtonTooltipContentClose:"Скрыть участников",chatButtonLabel:"Чат",chatButtonTooltipContentOpen:"Показать чат",chatButtonTooltipContentClose:"Скрыть чат",moreDrawerMicrophoneMenuTitle:"Микрофон",moreDrawerSpeakerMenuTitle:"Динамик",moreDrawerButtonLabel:"Дополнительные параметры",moreDrawerButtonTooltip:"Дополнительные параметры",peoplePaneTitle:"Люди",peoplePaneSubTitle:"В этом звонке",chatPaneTitle:"Чат",chatButtonNewMessageNotificationLabel:"Новое сообщение",pictureInPictureTileAriaLabel:"Ленты видео. Щелкните, чтобы вернуться на экран вызова.",removeMenuLabel:"Удалить",copyInviteLinkButtonLabel:"Копировать ссылку с приглашением"};var ru_RU = {call:call$3,chat:chat$3,callWithChat:callWithChat$3};
12379
+
12380
+ var call$2={cameraLabel:"Kamera",cameraPermissionDenied:"Tarayıcınız kameranıza erişimi engelliyor",cameraTurnedOff:"Kameranız kapatıldı",close:"Kapat",complianceBannerNowOnlyRecording:"Şu anda yalnızca bu toplantıyı kaydediyorsunuz.",complianceBannerNowOnlyTranscription:"Şu anda yalnızca bu toplantının dökümünü oluşturuyorsunuz.",complianceBannerRecordingAndTranscriptionSaved:"Kayıt ve döküm kaydediliyor.",complianceBannerRecordingAndTranscriptionStarted:"Kayıt ve döküm başlatıldı.",complianceBannerRecordingAndTranscriptionStopped:"Kayıt ve döküm durduruldu.",complianceBannerRecordingSaving:"Kayıt kaydediliyor.",complianceBannerRecordingStarted:"Kayıt başladı.",complianceBannerRecordingStopped:"Kayıt durduruldu.",complianceBannerTranscriptionStarted:"Döküm başlatıldı.",complianceBannerTranscriptionConsent:"Katılarak bu toplantının dökümünün çıkarılmasına onay verirsiniz.",complianceBannerTranscriptionSaving:"Döküm kaydediliyor.",complianceBannerTranscriptionStopped:"Döküm durduruldu.",configurationPageTitle:"Arama başlatın",defaultPlaceHolder:"Bir seçenek belirleyin",failedToJoinCallDueToNoNetworkMoreDetails:"Bir ağ sorunu nedeniyle arama bağlantısı kesildi. Bağlantınızı kontrol edin ve yeniden katılın.",failedToJoinCallDueToNoNetworkTitle:"Arama kesildi",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Aramaya katılmanıza izin verilmedi. Bu işlem yanlışlıkla yapıldıysa aramaya yeniden katılın.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Lobiden çıkarıldı",learnMore:"Daha fazla bilgi edinin",leftCallMoreDetails:"Bu bir hataysa aramaya yeniden katılın.",leftCallTitle:"Aramadan ayrıldınız",lobbyScreenConnectingToCallTitle:"Aramaya katılıyorsunuz",lobbyScreenWaitingToBeAdmittedTitle:"Kabul edilmeyi bekliyor",microphonePermissionDenied:"Tarayıcınız mikrofonunuza erişimi engelliyor",mutedMessage:"Sesiniz kapatıldı",networkReconnectMoreDetails:"Bir sorun oluştu gibi görünüyor. Çağrıya geri alınmaya çalışılıyor.",networkReconnectTitle:"Bekleyin",privacyPolicy:"Gizlilik ilkesi",rejoinCallButtonLabel:"Çağrıya yeniden katıl",removedFromCallMoreDetails:"Başka bir katılımcı sizi aramadan çıkardı.",removedFromCallTitle:"Çıkarıldınız",soundLabel:"Ses",startCallButtonLabel:"Arama başlat",microphoneToggleInLobbyNotAllowed:"Lobideyken sesi kapatılamaz veya açılamaz."};var chat$2={chatListHeader:"Bu sohbette"};var callWithChat$2={peopleButtonLabel:"Kişiler",peopleButtonTooltipContentOpen:"Katılımcıları Göster",peopleButtonTooltipContentClose:"Katılımcıları Gizle",chatButtonLabel:"Sohbet",chatButtonTooltipContentOpen:"Sohbeti Göster",chatButtonTooltipContentClose:"Sohbeti Gizle",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Hoparlör",moreDrawerButtonLabel:"Diğer seçenekler",moreDrawerButtonTooltip:"Diğer seçenekler",peoplePaneTitle:"Kişiler",peoplePaneSubTitle:"Bu aramada",chatPaneTitle:"Sohbet",chatButtonNewMessageNotificationLabel:"Yeni İleti",pictureInPictureTileAriaLabel:"Video Akışları. Çağrı ekranına dönmek için tıklayın.",removeMenuLabel:"Kaldır",copyInviteLinkButtonLabel:"Davet bağlantısını kopyala"};var tr_TR = {call:call$2,chat:chat$2,callWithChat:callWithChat$2};
12381
+
12382
+ var call$1={cameraLabel:"照相机",cameraPermissionDenied:"你的浏览器正在阻止对相机的访问",cameraTurnedOff:"你的相机已关闭",close:"关闭",complianceBannerNowOnlyRecording:"现在仅录制此会议。",complianceBannerNowOnlyTranscription:"现在仅听录此会议。",complianceBannerRecordingAndTranscriptionSaved:"正在保存录制和听录。",complianceBannerRecordingAndTranscriptionStarted:"录制和听录已开始。",complianceBannerRecordingAndTranscriptionStopped:"录制和听录已停止。",complianceBannerRecordingSaving:"正在保存录制。",complianceBannerRecordingStarted:"录制已开始。",complianceBannerRecordingStopped:"录制已停止。",complianceBannerTranscriptionStarted:"听录已开始。",complianceBannerTranscriptionConsent:"加入即表示你同意转录此会议。",complianceBannerTranscriptionSaving:"正在保存听录。",complianceBannerTranscriptionStopped:"听录已停止。",configurationPageTitle:"开始通话",defaultPlaceHolder:"选择一个选项",failedToJoinCallDueToNoNetworkMoreDetails:"由于网络问题,呼叫已断开连接。请检查你的连接,然后重新加入。",failedToJoinCallDueToNoNetworkTitle:"通话已断开",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"未在通话中向你授予条目。如果这是一个错误,请重新加入呼叫。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已从大厅中关闭",learnMore:"了解详细信息",leftCallMoreDetails:"如果这是一个错误,请重新加入呼叫。",leftCallTitle:"你已离开通话",lobbyScreenConnectingToCallTitle:"加入通话",lobbyScreenWaitingToBeAdmittedTitle:"正在等待被拒绝",microphonePermissionDenied:"你的浏览器正在阻止对麦克风的访问",mutedMessage:"你已静音",networkReconnectMoreDetails:"似乎出现了问题。我们正在努力恢复通话。",networkReconnectTitle:"稍等",privacyPolicy:"隐私策略",rejoinCallButtonLabel:"重新加入呼叫",removedFromCallMoreDetails:"另一名参与者已将你从通话中删除。",removedFromCallTitle:"你已被删除",soundLabel:"声音",startCallButtonLabel:"开始通话",microphoneToggleInLobbyNotAllowed:"在大厅中时无法静音或取消静音。"};var chat$1={chatListHeader:"在此聊天中"};var callWithChat$1={peopleButtonLabel:"人员",peopleButtonTooltipContentOpen:"显示参与者",peopleButtonTooltipContentClose:"隐藏参与者",chatButtonLabel:"聊天",chatButtonTooltipContentOpen:"显示聊天",chatButtonTooltipContentClose:"隐藏聊天",moreDrawerMicrophoneMenuTitle:"麦克风",moreDrawerSpeakerMenuTitle:"扬声器",moreDrawerButtonLabel:"更多选项",moreDrawerButtonTooltip:"更多选项",peoplePaneTitle:"人员",peoplePaneSubTitle:"在此通话中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新建消息",pictureInPictureTileAriaLabel:"视频源。单击以返回到通话屏幕。",removeMenuLabel:"删除",copyInviteLinkButtonLabel:"复制邀请链接"};var zh_CN = {call:call$1,chat:chat$1,callWithChat:callWithChat$1};
12383
+
12384
+ var call={cameraLabel:"相機",cameraPermissionDenied:"您的瀏覽器禁止存取您的相機",cameraTurnedOff:"您的相機已關閉",close:"關閉",complianceBannerNowOnlyRecording:"您現在只會錄製此會議。",complianceBannerNowOnlyTranscription:"您現在只會轉錄此會議。",complianceBannerRecordingAndTranscriptionSaved:"正在儲存錄製和轉錄。",complianceBannerRecordingAndTranscriptionStarted:"已開始錄製並進行轉錄。",complianceBannerRecordingAndTranscriptionStopped:"已停止錄製與轉錄。",complianceBannerRecordingSaving:"正在儲存錄製內容。",complianceBannerRecordingStarted:"已開始錄製。",complianceBannerRecordingStopped:"已停止錄製。",complianceBannerTranscriptionStarted:"已開始轉錄。",complianceBannerTranscriptionConsent:"一旦加入,即表示您同意轉譯此會議。",complianceBannerTranscriptionSaving:"正在儲存轉錄。",complianceBannerTranscriptionStopped:"已停止轉錄。",configurationPageTitle:"開始通話",defaultPlaceHolder:"選取選項",failedToJoinCallDueToNoNetworkMoreDetails:"由於網路問題,通話已中斷連線。檢查您的連線並再次加入。",failedToJoinCallDueToNoNetworkTitle:"通話已斷線",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"您未被授予加入通話的權限。如果有誤,請重新加入通話。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已從大廳關閉",learnMore:"深入了解",leftCallMoreDetails:"如果有誤,請重新加入通話。",leftCallTitle:"您已離開通話",lobbyScreenConnectingToCallTitle:"正在加入通話",lobbyScreenWaitingToBeAdmittedTitle:"正在等候認可",microphonePermissionDenied:"您的瀏覽器禁止存取您的麥克風",mutedMessage:"您已設為靜音",networkReconnectMoreDetails:"似乎發生錯誤。我們正在嘗試讓您返回通話。",networkReconnectTitle:"請稍候",privacyPolicy:"隱私權原則",rejoinCallButtonLabel:"重新加入通話",removedFromCallMoreDetails:"另一名參與者已將您自通話中移除。",removedFromCallTitle:"您已遭移除",soundLabel:"音效",startCallButtonLabel:"開始通話",microphoneToggleInLobbyNotAllowed:"無法在大廳中靜音或取消靜音。"};var chat={chatListHeader:"在此聊天中"};var callWithChat={peopleButtonLabel:"人員",peopleButtonTooltipContentOpen:"顯示參與者",peopleButtonTooltipContentClose:"隱藏參與者",chatButtonLabel:"聊天",chatButtonTooltipContentOpen:"顯示聊天",chatButtonTooltipContentClose:"隱藏聊天",moreDrawerMicrophoneMenuTitle:"麥克風",moreDrawerSpeakerMenuTitle:"揚聲器",moreDrawerButtonLabel:"更多選項",moreDrawerButtonTooltip:"更多選項",peoplePaneTitle:"人員",peoplePaneSubTitle:"在此通話中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新訊息",pictureInPictureTileAriaLabel:"影片摘要。按一下以返回通話畫面。",removeMenuLabel:"移除",copyInviteLinkButtonLabel:"複製邀請連結"};var zh_TW = {call:call,chat:chat,callWithChat:callWithChat};
12385
+
12200
12386
  // Copyright (c) Microsoft Corporation.
12201
- /**
12202
- * @internal
12203
- */
12204
- const FileUploadButton = (props) => {
12205
- const inputRef = React__default['default'].useRef(null);
12206
- const theme = react.useTheme();
12207
- const { accept, multiple = false, onChange } = props;
12208
- const fileUploadButtonClassName = react.mergeStyles({
12209
- width: '1.5rem',
12210
- height: '1.5rem',
12211
- cursor: 'pointer',
12212
- padding: '0.15rem',
12213
- ':hover': {
12214
- backgroundColor: theme.palette.neutralLighter
12215
- }
12216
- });
12217
- const iconButtonClassName = react.mergeStyles({
12218
- color: 'unset',
12219
- width: '1.5rem',
12220
- height: '1.5rem',
12221
- ':hover': {
12222
- color: 'unset',
12223
- background: 'transparent'
12224
- }
12387
+ const createCompositeStrings = (localizedStrings) => {
12388
+ const strings = Object.assign({}, en_US);
12389
+ Object.keys(localizedStrings).forEach((key) => {
12390
+ strings[key] = Object.assign(Object.assign({}, strings[key]), localizedStrings[key]);
12225
12391
  });
12226
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
12227
- React__default['default'].createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center", className: fileUploadButtonClassName, onClick: () => {
12228
- var _a;
12229
- (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
12230
- } },
12231
- React__default['default'].createElement(react.IconButton, { className: iconButtonClassName },
12232
- React__default['default'].createElement(SendBoxAttachFileIconTrampoline, null))),
12233
- React__default['default'].createElement("input", { ref: inputRef, hidden: true, multiple: multiple, accept: accept, type: "file", onClick: (e) => {
12234
- // To ensure that `onChange` is fired even if the same file is picked again.
12235
- e.currentTarget.value = '';
12236
- }, onChange: (e) => {
12237
- onChange && onChange(e.currentTarget.files);
12238
- } })));
12239
- };
12240
- const SendBoxAttachFileIconTrampoline = () => {
12241
- // @conditional-compile-remove(file-sharing)
12242
- return React__default['default'].createElement(ChatCompositeIcon, { iconName: "SendBoxAttachFile" });
12392
+ return strings;
12243
12393
  };
12244
12394
  /**
12245
- * A wrapper to return {@link FileUploadButton} component conditionally.
12246
- * It will return `<></>` for stable builds.
12247
- * @internal
12395
+ * Locale for English (US)
12396
+ *
12397
+ * @public
12248
12398
  */
12249
- const FileUploadButtonWrapper = (
12250
- // To make conditional compilation not throw errors.
12251
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
12252
- props) => {
12253
- return (React__default['default'].createElement(React__default['default'].Fragment, null,
12254
- /* @conditional-compile-remove(file-sharing) */
12255
- React__default['default'].createElement(FileUploadButton, Object.assign({}, props))));
12399
+ const COMPOSITE_LOCALE_EN_US = {
12400
+ component: COMPONENT_LOCALE_EN_US,
12401
+ strings: en_US
12256
12402
  };
12257
-
12403
+ /**
12404
+ * Locale for English (British)
12405
+ *
12406
+ * @public
12407
+ */
12408
+ const COMPOSITE_LOCALE_EN_GB = {
12409
+ component: COMPONENT_LOCALE_EN_GB,
12410
+ strings: createCompositeStrings(en_GB)
12411
+ };
12412
+ /**
12413
+ * Locale for German (Germany)
12414
+ *
12415
+ * @public
12416
+ */
12417
+ const COMPOSITE_LOCALE_DE_DE = {
12418
+ component: COMPONENT_LOCALE_DE_DE,
12419
+ strings: createCompositeStrings(de_DE)
12420
+ };
12421
+ /**
12422
+ * Locale for Spanish (Spain)
12423
+ *
12424
+ * @public
12425
+ */
12426
+ const COMPOSITE_LOCALE_ES_ES = {
12427
+ component: COMPONENT_LOCALE_ES_ES,
12428
+ strings: createCompositeStrings(es_ES)
12429
+ };
12430
+ /**
12431
+ * Locale for French (France)
12432
+ *
12433
+ * @public
12434
+ */
12435
+ const COMPOSITE_LOCALE_FR_FR = {
12436
+ component: COMPONENT_LOCALE_FR_FR,
12437
+ strings: createCompositeStrings(fr_FR)
12438
+ };
12439
+ /**
12440
+ * Locale for Italian (Italy)
12441
+ *
12442
+ * @public
12443
+ */
12444
+ const COMPOSITE_LOCALE_IT_IT = {
12445
+ component: COMPONENT_LOCALE_IT_IT,
12446
+ strings: createCompositeStrings(it_IT)
12447
+ };
12448
+ /**
12449
+ * Locale for Japanese (Japan)
12450
+ *
12451
+ * @public
12452
+ */
12453
+ const COMPOSITE_LOCALE_JA_JP = {
12454
+ component: COMPONENT_LOCALE_JA_JP,
12455
+ strings: createCompositeStrings(ja_JP)
12456
+ };
12457
+ /**
12458
+ * Locale for Korean (South Korea)
12459
+ *
12460
+ * @public
12461
+ */
12462
+ const COMPOSITE_LOCALE_KO_KR = {
12463
+ component: COMPONENT_LOCALE_KO_KR,
12464
+ strings: createCompositeStrings(ko_KR)
12465
+ };
12466
+ /**
12467
+ * Locale for Dutch (Netherlands)
12468
+ *
12469
+ * @public
12470
+ */
12471
+ const COMPOSITE_LOCALE_NL_NL = {
12472
+ component: COMPONENT_LOCALE_NL_NL,
12473
+ strings: createCompositeStrings(nl_NL)
12474
+ };
12475
+ /**
12476
+ * Locale for Portuguese (Brazil)
12477
+ *
12478
+ * @public
12479
+ */
12480
+ const COMPOSITE_LOCALE_PT_BR = {
12481
+ component: COMPONENT_LOCALE_PT_BR,
12482
+ strings: createCompositeStrings(pt_BR)
12483
+ };
12484
+ /**
12485
+ * Locale for Russian (Russia)
12486
+ *
12487
+ * @public
12488
+ */
12489
+ const COMPOSITE_LOCALE_RU_RU = {
12490
+ component: COMPONENT_LOCALE_RU_RU,
12491
+ strings: createCompositeStrings(ru_RU)
12492
+ };
12493
+ /**
12494
+ * Locale for Turkish (Turkey)
12495
+ *
12496
+ * @public
12497
+ */
12498
+ const COMPOSITE_LOCALE_TR_TR = {
12499
+ component: COMPONENT_LOCALE_TR_TR,
12500
+ strings: createCompositeStrings(tr_TR)
12501
+ };
12502
+ /**
12503
+ * Locale for Chinese (Mainland China)
12504
+ *
12505
+ * @public
12506
+ */
12507
+ const COMPOSITE_LOCALE_ZH_CN = {
12508
+ component: COMPONENT_LOCALE_ZH_CN,
12509
+ strings: createCompositeStrings(zh_CN)
12510
+ };
12511
+ /**
12512
+ * Locale for Chinese (Taiwan)
12513
+ *
12514
+ * @public
12515
+ */
12516
+ const COMPOSITE_LOCALE_ZH_TW = {
12517
+ component: COMPONENT_LOCALE_ZH_TW,
12518
+ strings: createCompositeStrings(zh_TW)
12519
+ };
12520
+
12521
+ // Copyright (c) Microsoft Corporation.
12522
+ /**
12523
+ * Context for providing localized strings to components
12524
+ *
12525
+ * @private
12526
+ */
12527
+ const LocaleContext = React.createContext(COMPOSITE_LOCALE_EN_US);
12528
+ /**
12529
+ * Provider to provide localized strings for this library's composites.
12530
+ *
12531
+ * @private
12532
+ */
12533
+ const LocalizationProvider = (props) => {
12534
+ const { locale, children } = props;
12535
+ return (React__default['default'].createElement(LocaleContext.Provider, { value: locale },
12536
+ React__default['default'].createElement(LocalizationProvider$1, { locale: locale.component }, children)));
12537
+ };
12538
+ /**
12539
+ * @private
12540
+ */
12541
+ const useLocale = () => React.useContext(LocaleContext);
12542
+
12543
+ // Copyright (c) Microsoft Corporation.
12544
+ /**
12545
+ * @internal
12546
+ */
12547
+ const FileUploadButton = (props) => {
12548
+ const inputRef = React__default['default'].useRef(null);
12549
+ const theme = react.useTheme();
12550
+ const { accept, multiple = false, onChange } = props;
12551
+ const fileUploadButtonClassName = react.mergeStyles({
12552
+ width: '1.5rem',
12553
+ height: '1.5rem',
12554
+ cursor: 'pointer',
12555
+ padding: '0.15rem',
12556
+ ':hover': {
12557
+ backgroundColor: theme.palette.neutralLighter
12558
+ }
12559
+ });
12560
+ const iconButtonClassName = react.mergeStyles({
12561
+ color: 'unset',
12562
+ width: '1.5rem',
12563
+ height: '1.5rem',
12564
+ ':hover': {
12565
+ color: 'unset',
12566
+ background: 'transparent'
12567
+ }
12568
+ });
12569
+ /* @conditional-compile-remove(file-sharing) */
12570
+ const uploadFileButtonString = useLocale().strings.chat.uploadFile;
12571
+ const uploadFileButtonStringTrampoline = () => {
12572
+ // @conditional-compile-remove(file-sharing)
12573
+ return uploadFileButtonString;
12574
+ };
12575
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
12576
+ React__default['default'].createElement(react.Stack, { verticalAlign: "center", horizontalAlign: "center", className: fileUploadButtonClassName, onClick: () => {
12577
+ var _a;
12578
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
12579
+ } },
12580
+ React__default['default'].createElement(react.IconButton, { className: iconButtonClassName, ariaLabel: uploadFileButtonStringTrampoline() },
12581
+ React__default['default'].createElement(SendBoxAttachFileIconTrampoline, null))),
12582
+ React__default['default'].createElement("input", { ref: inputRef, hidden: true, multiple: multiple, accept: accept, type: "file", onClick: (e) => {
12583
+ // To ensure that `onChange` is fired even if the same file is picked again.
12584
+ e.currentTarget.value = '';
12585
+ }, onChange: (e) => {
12586
+ onChange && onChange(e.currentTarget.files);
12587
+ } })));
12588
+ };
12589
+ const SendBoxAttachFileIconTrampoline = () => {
12590
+ // @conditional-compile-remove(file-sharing)
12591
+ return React__default['default'].createElement(ChatCompositeIcon, { iconName: "SendBoxAttachFile" });
12592
+ };
12593
+ /**
12594
+ * A wrapper to return {@link FileUploadButton} component conditionally.
12595
+ * It will return `<></>` for stable builds.
12596
+ * @internal
12597
+ */
12598
+ const FileUploadButtonWrapper = (
12599
+ // To make conditional compilation not throw errors.
12600
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
12601
+ props) => {
12602
+ return (React__default['default'].createElement(React__default['default'].Fragment, null,
12603
+ /* @conditional-compile-remove(file-sharing) */
12604
+ React__default['default'].createElement(FileUploadButton, Object.assign({}, props))));
12605
+ };
12606
+
12258
12607
  // Copyright (c) Microsoft Corporation.
12259
12608
  /* @conditional-compile-remove(file-sharing) */
12260
12609
  /**
@@ -12877,191 +13226,6 @@ const isChatError = (e) => {
12877
13226
  return e['target'] !== undefined && e['innerError'] !== undefined;
12878
13227
  };
12879
13228
 
12880
- var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$d={chatListHeader:"In this chat"};var callWithChat$d={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButton:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
12881
-
12882
- var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipContentOpen:"Show Participants",peopleButtonTooltipContentClose:"Hide Participants",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Show Chat",chatButtonTooltipContentClose:"Hide Chat",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
12883
-
12884
- var call$b={cameraLabel:"Kamera",cameraPermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihre Kamera.",cameraTurnedOff:"Ihre Kamera ist deaktiviert.",close:"Schließen",complianceBannerNowOnlyRecording:"Sie zeichnen nun nur diese Besprechung auf.",complianceBannerNowOnlyTranscription:"Sie transkribieren diese Besprechung jetzt nur noch.",complianceBannerRecordingAndTranscriptionSaved:"Aufzeichnung und Transkription werden gespeichert.",complianceBannerRecordingAndTranscriptionStarted:"Die Aufzeichnung und Transkription haben begonnen.",complianceBannerRecordingAndTranscriptionStopped:"Die Aufzeichnung und Transkription wurden beendet.",complianceBannerRecordingSaving:"Aufzeichnung wird gespeichert.",complianceBannerRecordingStarted:"Die Aufzeichnung wurde gestartet.",complianceBannerRecordingStopped:"Aufzeichnung wurde beendet.",complianceBannerTranscriptionStarted:"Die Transkription hat begonnen.",complianceBannerTranscriptionConsent:"Durch Ihre Teilnahme stimmen Sie zu, dass diese Besprechung transkribiert wird.",complianceBannerTranscriptionSaving:"Die Transkription wird gespeichert.",complianceBannerTranscriptionStopped:"Die Transkription wurde beendet.",configurationPageTitle:"Einen Anruf beginnen",defaultPlaceHolder:"Option auswählen",failedToJoinCallDueToNoNetworkMoreDetails:"Der Anruf wurde aufgrund eines Netzwerkproblems getrennt. Überprüfen Sie Ihre Verbindung, und treten Sie erneut bei.",failedToJoinCallDueToNoNetworkTitle:"Anruf unterbrochen",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Ihnen wurde keine Teilnahme am Anruf gewährt. Wenn dies ein Fehler war, treten Sie dem Anruf erneut bei.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Aus Wartebereich entlassen",learnMore:"Weitere Informationen",leftCallMoreDetails:"Wenn dies ein Fehler war, nehmen Sie erneut am Anruf teil.",leftCallTitle:"Sie haben den Anruf verlassen",lobbyScreenConnectingToCallTitle:"Teilnehmen am Anruf",lobbyScreenWaitingToBeAdmittedTitle:"Warten auf die Zulassung",microphonePermissionDenied:"Ihr Browser blockiert den Zugriff auf Ihr Mikrofon.",mutedMessage:"Sie sind stummgeschaltet.",networkReconnectMoreDetails:"Offensichtlich ist etwas schief gegangen. Wir versuchen, Sie wieder mit dem Anruf zu verbinden.",networkReconnectTitle:"Einen Augenblick bitte",privacyPolicy:"Datenschutzrichtlinie",rejoinCallButtonLabel:"Am Anruf erneut teilnehmen",removedFromCallMoreDetails:"Ein anderer Teilnehmer hat Sie aus dem Anruf entfernt.",removedFromCallTitle:"Sie wurden entfernt",soundLabel:"Sound",startCallButtonLabel:"Anruf beginnen",microphoneToggleInLobbyNotAllowed:"Stummschalten oder Aufheben der Stummschaltung im Wartebereich nicht zulässig."};var chat$b={chatListHeader:"In diesem Chat"};var callWithChat$b={peopleButtonLabel:"Personen",peopleButtonTooltipContentOpen:"Teilnehmer anzeigen",peopleButtonTooltipContentClose:"Teilnehmer ausblenden",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Chat anzeigen",chatButtonTooltipContentClose:"Chat ausblenden",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Lautsprecher",moreDrawerButtonLabel:"Weitere Optionen",moreDrawerButtonTooltip:"Weitere Optionen",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In diesem Anruf",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Neue Nachricht",pictureInPictureTileAriaLabel:"Videofeeds. Klicken Sie hier, um zum Anrufbildschirm zurückzukehren.",removeMenuLabel:"Entfernen",copyInviteLinkButtonLabel:"Einladungslink kopieren"};var de_DE = {call:call$b,chat:chat$b,callWithChat:callWithChat$b};
12885
-
12886
- var call$a={cameraLabel:"Cámara",cameraPermissionDenied:"El explorador está bloqueando el acceso a la cámara",cameraTurnedOff:"La cámara está apagada",close:"Cerrar",complianceBannerNowOnlyRecording:"Solo está grabando esta reunión.",complianceBannerNowOnlyTranscription:"Solo está transcribiendo esta reunión.",complianceBannerRecordingAndTranscriptionSaved:"Se están guardando la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStarted:"Se han iniciado la grabación y la transcripción.",complianceBannerRecordingAndTranscriptionStopped:"Se han detenido la grabación y la transcripción.",complianceBannerRecordingSaving:"La grabación se está guardando.",complianceBannerRecordingStarted:"Se ha iniciado la grabación.",complianceBannerRecordingStopped:"La grabación se ha detenido.",complianceBannerTranscriptionStarted:"La transcripción se ha iniciado.",complianceBannerTranscriptionConsent:"Al unirse, da su consentimiento para que se transcriba esta reunión.",complianceBannerTranscriptionSaving:"Se está guardando la transcripción.",complianceBannerTranscriptionStopped:"La transcripción se ha detenido.",configurationPageTitle:"Iniciar una llamada",defaultPlaceHolder:"Seleccionar una opción",failedToJoinCallDueToNoNetworkMoreDetails:"Se desconectó la llamada debido a un problema de red. Compruebe la conexión y únase de nuevo.",failedToJoinCallDueToNoNetworkTitle:"Llamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"No se te concedió la entrada a la llamada. Si se trata de un error, vuelve a unirte.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rechazado de la sala de espera",learnMore:"Más información",leftCallMoreDetails:"Si se trata de un error, vuelve a unirte a la llamada.",leftCallTitle:"Has abandonado la llamada",lobbyScreenConnectingToCallTitle:"Uniéndose a la llamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando a ser admitido",microphonePermissionDenied:"El explorador está bloqueando el acceso al micrófono",mutedMessage:"Estás silenciado",networkReconnectMoreDetails:"Parece que hubo un problema. Estamos intentando reconectar la llamada.",networkReconnectTitle:"Espere",privacyPolicy:"Directiva de privacidad",rejoinCallButtonLabel:"Volver a unirse a la llamada",removedFromCallMoreDetails:"Otro participante te ha eliminado de la llamada.",removedFromCallTitle:"Fuiste eliminado",soundLabel:"Sonido",startCallButtonLabel:"Iniciar llamada",microphoneToggleInLobbyNotAllowed:"No se puede silenciar ni reactivar el audio mientras se está en la sala de espera."};var chat$a={chatListHeader:"En este chat"};var callWithChat$a={peopleButtonLabel:"Contactos",peopleButtonTooltipContentOpen:"Mostrar participantes",peopleButtonTooltipContentClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostrar chat",chatButtonTooltipContentClose:"Ocultar chat",moreDrawerMicrophoneMenuTitle:"Micrófono",moreDrawerSpeakerMenuTitle:"Altavoz",moreDrawerButtonLabel:"Más opciones",moreDrawerButtonTooltip:"Más opciones",peoplePaneTitle:"Contactos",peoplePaneSubTitle:"En esta llamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuevo mensaje",pictureInPictureTileAriaLabel:"Fuentes de vídeo. Hacer clic para volver a la pantalla de la llamada.",removeMenuLabel:"Quitar",copyInviteLinkButtonLabel:"Copiar vínculo de invitación"};var es_ES = {call:call$a,chat:chat$a,callWithChat:callWithChat$a};
12887
-
12888
- var call$9={cameraLabel:"Appareil photo",cameraPermissionDenied:"Votre navigateur bloque l’accès à votre caméra",cameraTurnedOff:"Votre caméra est désactivée",close:"Fermer",complianceBannerNowOnlyRecording:"Vous n’enregistrez désormais que cette réunion.",complianceBannerNowOnlyTranscription:"À présent, vous ne transcrivez que cette réunion.",complianceBannerRecordingAndTranscriptionSaved:"Sauvegarde en cours de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStarted:"Démarrage de l’enregistrement et de la transcription.",complianceBannerRecordingAndTranscriptionStopped:"L’enregistrement et la transcription ont pris fin.",complianceBannerRecordingSaving:"Sauvegarde en cours de l'enregistrement.",complianceBannerRecordingStarted:"L’enregistrement a démarré.",complianceBannerRecordingStopped:"L’enregistrement a pris fin.",complianceBannerTranscriptionStarted:"Démarrage de la transcription.",complianceBannerTranscriptionConsent:"En participant, vous autorisez la transcription de cette réunion.",complianceBannerTranscriptionSaving:"Sauvegarde en cours de la transcription.",complianceBannerTranscriptionStopped:"La transcription a pris fin.",configurationPageTitle:"Lancer un appel",defaultPlaceHolder:"Sélectionnez une option",failedToJoinCallDueToNoNetworkMoreDetails:"L’appel a été déconnecté en raison d’un problème réseau. Vérifiez votre connexion et rejoignez-la à nouveau.",failedToJoinCallDueToNoNetworkTitle:"Appel déconnecté",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Vous n’avez pas reçu d’entrée dans l’appel. S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Rejeté de la salle d’attente",learnMore:"En savoir plus",leftCallMoreDetails:"S’il s’agissait d’une erreur, rejoignez à nouveau l’appel.",leftCallTitle:"Vous avez quitté l’appel.",lobbyScreenConnectingToCallTitle:"Connexion à l'appel",lobbyScreenWaitingToBeAdmittedTitle:"En attente d’admission",microphonePermissionDenied:"Votre navigateur bloque l’accès à votre micro",mutedMessage:"Le son de votre micro est désactivé.",networkReconnectMoreDetails:"On dirait qu'une erreur est survenue. Nous tentons de vous reconnecter à l’appel.",networkReconnectTitle:"Patience",privacyPolicy:"Politique de confidentialité",rejoinCallButtonLabel:"Rejoindre l’appel à nouveau.",removedFromCallMoreDetails:"Un autre participant vous a supprimé de l’appel.",removedFromCallTitle:"Vous avez été supprimé.",soundLabel:"Son",startCallButtonLabel:"Lancer l'appel",microphoneToggleInLobbyNotAllowed:"Impossible de désactiver ou d’activer le son dans la salle d’attente."};var chat$9={chatListHeader:"Dans cette conversation"};var callWithChat$9={peopleButtonLabel:"Personnes",peopleButtonTooltipContentOpen:"Afficher les participants",peopleButtonTooltipContentClose:"Masquer les participants",chatButtonLabel:"Clavardage",chatButtonTooltipContentOpen:"Afficher la conversation",chatButtonTooltipContentClose:"Masquer la conversation",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Haut-parleur",moreDrawerButtonLabel:"Autres options",moreDrawerButtonTooltip:"Autres options",peoplePaneTitle:"Personnes",peoplePaneSubTitle:"Pendant cet appel",chatPaneTitle:"Clavardage",chatButtonNewMessageNotificationLabel:"Nouveau message",pictureInPictureTileAriaLabel:"Flux vidéo. Cliquez pour revenir à l’écran d’appel.",removeMenuLabel:"Supprimer",copyInviteLinkButtonLabel:"Copier le lien d'invitation"};var fr_FR = {call:call$9,chat:chat$9,callWithChat:callWithChat$9};
12889
-
12890
- var call$8={cameraLabel:"Fotocamera",cameraPermissionDenied:"Il browser blocca l'accesso alla fotocamera",cameraTurnedOff:"La videocamera è disabilitata",close:"Chiudi",complianceBannerNowOnlyRecording:"È in corso la registrazione solo di questa riunione.",complianceBannerNowOnlyTranscription:"È in corso la trascrizione solo di questa riunione.",complianceBannerRecordingAndTranscriptionSaved:"È in corso il salvataggio della registrazione e della trascrizione.",complianceBannerRecordingAndTranscriptionStarted:"Registrazione e trascrizione avviate.",complianceBannerRecordingAndTranscriptionStopped:"Registrazione e trascrizione interrotte.",complianceBannerRecordingSaving:"Salvataggio della registrazione in corso.",complianceBannerRecordingStarted:"Registrazione avviata.",complianceBannerRecordingStopped:"Registrazione arrestata.",complianceBannerTranscriptionStarted:"Trascrizione avviata.",complianceBannerTranscriptionConsent:"Partecipando, fornisci il consenso per la trascrizione di questa riunione.",complianceBannerTranscriptionSaving:"È in corso il salvataggio della trascrizione.",complianceBannerTranscriptionStopped:"Trascrizione interrotta.",configurationPageTitle:"Avvia una chiamata",defaultPlaceHolder:"Seleziona un'opzione",failedToJoinCallDueToNoNetworkMoreDetails:"La chiamata è stata disconnessa a causa di un problema di rete. Controlla la connessione e partecipa di nuovo.",failedToJoinCallDueToNoNetworkTitle:"Chiamata interrotta",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Non ti è stato concesso l’accesso alla chiamata. Se si è trattato di un errore, partecipa di nuovo alla chiamata.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorato dalla sala di attesa",learnMore:"Ulteriori informazioni",leftCallMoreDetails:"Se si è trattato di un errore, partecipa di nuovo alla chiamata.",leftCallTitle:"Hai abbandonato la chiamata",lobbyScreenConnectingToCallTitle:"Partecipazione alla chiamata",lobbyScreenWaitingToBeAdmittedTitle:"In attesa di essere ammessi",microphonePermissionDenied:"Il browser blocca l'accesso al microfono",mutedMessage:"L'audio è disattivato.",networkReconnectMoreDetails:"Sembra si sia verificato un errore. Stiamo cercando di ristabilire la connessione alla chiamata.",networkReconnectTitle:"Attendi",privacyPolicy:"Informativa sulla privacy",rejoinCallButtonLabel:"Partecipa alla chiamata",removedFromCallMoreDetails:"Un altro partecipante ti ha rimosso dalla chiamata.",removedFromCallTitle:"Sei stato rimosso",soundLabel:"Suono",startCallButtonLabel:"Avvia chiamata",microphoneToggleInLobbyNotAllowed:"Impossibile attivare o disattivare l'audio nella sala di attesa."};var chat$8={chatListHeader:"In questa chat"};var callWithChat$8={peopleButtonLabel:"Persone",peopleButtonTooltipContentOpen:"Mostra partecipanti",peopleButtonTooltipContentClose:"Nascondi partecipanti",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostra chat",chatButtonTooltipContentClose:"Nascondi chat",moreDrawerMicrophoneMenuTitle:"Microfono",moreDrawerSpeakerMenuTitle:"Altoparlante",moreDrawerButtonLabel:"Altre opzioni",moreDrawerButtonTooltip:"Altre opzioni",peoplePaneTitle:"Persone",peoplePaneSubTitle:"In questa chiamata",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nuovo messaggio",pictureInPictureTileAriaLabel:"Feed video. Fare clic per tornare alla schermata della chiamata.",removeMenuLabel:"Rimuovi",copyInviteLinkButtonLabel:"Copia il collegamento dell’invito"};var it_IT = {call:call$8,chat:chat$8,callWithChat:callWithChat$8};
12891
-
12892
- var call$7={cameraLabel:"カメラ",cameraPermissionDenied:"お使いのブラウザーがカメラへのアクセスをブロックしています",cameraTurnedOff:"カメラはオフになっています",close:"閉じる",complianceBannerNowOnlyRecording:"今はこの会議の録画のみを行っています。",complianceBannerNowOnlyTranscription:"この会議のトランスクリプトを作成しています。",complianceBannerRecordingAndTranscriptionSaved:"レコーディングとトランスクリプトを保存されました。",complianceBannerRecordingAndTranscriptionStarted:"レコーディングとトランスクリプトが開始されました。",complianceBannerRecordingAndTranscriptionStopped:"レコーディングとトランスクリプトを停止しました。",complianceBannerRecordingSaving:"レコーディングを保存しています。",complianceBannerRecordingStarted:"レコーディングを開始しました。",complianceBannerRecordingStopped:"レコーディングを停止しました。",complianceBannerTranscriptionStarted:"トランスクリプトが開始しました。",complianceBannerTranscriptionConsent:"参加すると、この会議のトランスクリプトの作成に同意したことになります。",complianceBannerTranscriptionSaving:"トランスクリプトを保存されました。",complianceBannerTranscriptionStopped:"トランスクリプトが停止しました。",configurationPageTitle:"通話を開始",defaultPlaceHolder:"オプションを選択する",failedToJoinCallDueToNoNetworkMoreDetails:"ネットワークの問題により、通話が切断されました。接続を確認して、もう一度参加してください。",failedToJoinCallDueToNoNetworkTitle:"通話が切断されました",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"通話のエントリが許可されませんでした。これが間違いだった場合は、通話に再参加してください。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"ロビーから消去しました",learnMore:"詳細情報",leftCallMoreDetails:"これが間違いだった場合は、通話に再度参加してください。",leftCallTitle:"通話を終了しました",lobbyScreenConnectingToCallTitle:"通話に参加中",lobbyScreenWaitingToBeAdmittedTitle:"承認待機中",microphonePermissionDenied:"お使いのブラウザーがマイクへのアクセスをブロックしています",mutedMessage:"ミュートになっています",networkReconnectMoreDetails:"問題が発生したようです。通話に戻ろうとしています。",networkReconnectTitle:"お待ちください",privacyPolicy:"プライバシー ポリシー",rejoinCallButtonLabel:"通話に再度参加",removedFromCallMoreDetails:"別の参加者があなたを通話から削除しました。",removedFromCallTitle:"削除されました",soundLabel:"音声",startCallButtonLabel:"通話を開始",microphoneToggleInLobbyNotAllowed:"ロビーにいる間はミュートまたはミュート解除できません。"};var chat$7={chatListHeader:"このチャット内"};var callWithChat$7={peopleButtonLabel:"ユーザー",peopleButtonTooltipContentOpen:"参加者を表示",peopleButtonTooltipContentClose:"参加者を非表示",chatButtonLabel:"チャット",chatButtonTooltipContentOpen:"チャットを表示",chatButtonTooltipContentClose:"チャットを非表示",moreDrawerMicrophoneMenuTitle:"マイク",moreDrawerSpeakerMenuTitle:"スピーカー",moreDrawerButtonLabel:"その他のオプション",moreDrawerButtonTooltip:"その他のオプション",peoplePaneTitle:"ユーザー",peoplePaneSubTitle:"この通話で",chatPaneTitle:"チャット",chatButtonNewMessageNotificationLabel:"新規メッセージ",pictureInPictureTileAriaLabel:"ビデオ フィード。 クリックすると通話画面に戻ります。",removeMenuLabel:"削除",copyInviteLinkButtonLabel:"招待用のリンクをコピー"};var ja_JP = {call:call$7,chat:chat$7,callWithChat:callWithChat$7};
12893
-
12894
- var call$6={cameraLabel:"카메라",cameraPermissionDenied:"브라우저에서 카메라에 대한 액세스를 차단하고 있습니다.",cameraTurnedOff:"카메라가 꺼져 있음",close:"닫기",complianceBannerNowOnlyRecording:"이제 이 모임의 녹음/녹화만 진행합니다.",complianceBannerNowOnlyTranscription:"이제 이 모임의 전사만 진행합니다.",complianceBannerRecordingAndTranscriptionSaved:"녹음/녹화와 전사를 저장하는 중입니다.",complianceBannerRecordingAndTranscriptionStarted:"녹음/녹화와 전사를 시작했습니다.",complianceBannerRecordingAndTranscriptionStopped:"녹음/녹화와 전사를 중단했습니다.",complianceBannerRecordingSaving:"녹음/녹화를 저장하는 중입니다.",complianceBannerRecordingStarted:"녹음/녹화를 시작했습니다.",complianceBannerRecordingStopped:"녹음/녹화를 중단했습니다.",complianceBannerTranscriptionStarted:"전사를 시작했습니다.",complianceBannerTranscriptionConsent:"참가하면 이 모임이 전사되는 것에 동의하게 됩니다.",complianceBannerTranscriptionSaving:"전사를 저장하는 중입니다.",complianceBannerTranscriptionStopped:"전사를 중단했습니다.",configurationPageTitle:"통화 시작",defaultPlaceHolder:"옵션 선택",failedToJoinCallDueToNoNetworkMoreDetails:"네트워크 문제로 인해 통화 연결이 끊어졌습니다. 연결을 확인하고 다시 참가하세요.",failedToJoinCallDueToNoNetworkTitle:"통화 연결 끊김",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"통화에 참가할 수 있는 권한이 없습니다. 실수라면 통화에 다시 참가하세요.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"대기실에서 해제됐습니다.",learnMore:"자세한 정보",leftCallMoreDetails:"실수라면 통화에 다시 참가하세요.",leftCallTitle:"통화를 종료했습니다.",lobbyScreenConnectingToCallTitle:"통화에 참가",lobbyScreenWaitingToBeAdmittedTitle:"승인을 기다리는 중",microphonePermissionDenied:"브라우저에서 마이크에 대한 액세스를 차단하고 있습니다.",mutedMessage:"음소거 되었습니다.",networkReconnectMoreDetails:"문제가 발생한 것 같습니다. 통화에 다시 연결하려고 합니다.",networkReconnectTitle:"잠시만",privacyPolicy:"개인 정보 취급 방침",rejoinCallButtonLabel:"통화 다시 참가",removedFromCallMoreDetails:"다른 참가자가 귀하를 통화에서 제거했습니다.",removedFromCallTitle:"통화에서 제거됐습니다.",soundLabel:"소리",startCallButtonLabel:"통화 시작",microphoneToggleInLobbyNotAllowed:"대기실에 있는 동안에는 음소거하거나 음소거를 해제할 수 없습니다."};var chat$6={chatListHeader:"채팅 참가자"};var callWithChat$6={peopleButtonLabel:"사용자",peopleButtonTooltipContentOpen:"프레젠테이션 표시",peopleButtonTooltipContentClose:"참가자 숨기기",chatButtonLabel:"채팅",chatButtonTooltipContentOpen:"채팅 표시",chatButtonTooltipContentClose:"채팅 숨기기",moreDrawerMicrophoneMenuTitle:"마이크",moreDrawerSpeakerMenuTitle:"발화자",moreDrawerButtonLabel:"기타 옵션",moreDrawerButtonTooltip:"기타 옵션",peoplePaneTitle:"사용자",peoplePaneSubTitle:"이 통화에서",chatPaneTitle:"채팅",chatButtonNewMessageNotificationLabel:"새 메시지",pictureInPictureTileAriaLabel:"비디오 피드입니다. 클릭하면 통화 화면으로 돌아갑니다.",removeMenuLabel:"제거",copyInviteLinkButtonLabel:"초대 링크 복사"};var ko_KR = {call:call$6,chat:chat$6,callWithChat:callWithChat$6};
12895
-
12896
- var call$5={cameraLabel:"Camera",cameraPermissionDenied:"Uw browser blokkeert de toegang tot uw camera",cameraTurnedOff:"Camera is uitgeschakeld",close:"Sluiten",complianceBannerNowOnlyRecording:"U bent nu alleen deze vergadering aan het opnemen.",complianceBannerNowOnlyTranscription:"U bent nu alleen deze vergadering aan het transcriberen.",complianceBannerRecordingAndTranscriptionSaved:"Opname en transcriptie worden opgeslagen.",complianceBannerRecordingAndTranscriptionStarted:"Opname en transcriptie zijn gestart.",complianceBannerRecordingAndTranscriptionStopped:"Opname en transcriptie zijn gestopt.",complianceBannerRecordingSaving:"De opname wordt opgeslagen.",complianceBannerRecordingStarted:"De opname is gestart.",complianceBannerRecordingStopped:"De opname is gestopt.",complianceBannerTranscriptionStarted:"Transcriptie is gestart.",complianceBannerTranscriptionConsent:"Door deel te nemen, geeft u toestemming voor het transcriberen van deze vergadering.",complianceBannerTranscriptionSaving:"Transcriptie wordt opgeslagen.",complianceBannerTranscriptionStopped:"Transcriptie is gestopt.",configurationPageTitle:"Een oproep starten",defaultPlaceHolder:"Een optie selecteren",failedToJoinCallDueToNoNetworkMoreDetails:"De verbinding is verbroken vanwege een netwerkprobleem. Controleer de verbinding en neem opnieuw deel.",failedToJoinCallDueToNoNetworkTitle:"Verbinding verbroken",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"U hebt geen toegang gekregen in het gesprek. Als dit een fout is, neemt u opnieuw deel aan het gesprek.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Verwijderd uit lobby",learnMore:"Meer informatie",leftCallMoreDetails:"Als dit een vergissing was, neemt u opnieuw deel aan het gesprek.",leftCallTitle:"U hebt het gesprek verlaten",lobbyScreenConnectingToCallTitle:"Deelnemen aan oproep",lobbyScreenWaitingToBeAdmittedTitle:"Wachten om te worden toegelaten",microphonePermissionDenied:"Uw browser blokkeert de toegang tot uw microfoon",mutedMessage:"Uw geluid is gedempt",networkReconnectMoreDetails:"Er is iets misgegaan. We proberen terug te gaan naar het gesprek.",networkReconnectTitle:"Wacht even",privacyPolicy:"Privacybeleid",rejoinCallButtonLabel:"Opnieuw deelnemen aan gesprek",removedFromCallMoreDetails:"Een andere deelnemer heeft u uit het gesprek verwijderd.",removedFromCallTitle:"U bent verwijderd",soundLabel:"Geluid",startCallButtonLabel:"Gesprek starten",microphoneToggleInLobbyNotAllowed:"Kan niet dempen of dempen opheffen in de lobby."};var chat$5={chatListHeader:"In deze chat"};var callWithChat$5={peopleButtonLabel:"Personen",peopleButtonTooltipContentOpen:"Deelnemers weergeven",peopleButtonTooltipContentClose:"Deelnemers verbergen",chatButtonLabel:"Chatten",chatButtonTooltipContentOpen:"Chat weergeven",chatButtonTooltipContentClose:"Chat verbergen",moreDrawerMicrophoneMenuTitle:"Microfoon",moreDrawerSpeakerMenuTitle:"Luidspreker",moreDrawerButtonLabel:"Meer opties",moreDrawerButtonTooltip:"Meer opties",peoplePaneTitle:"Personen",peoplePaneSubTitle:"In dit gesprek",chatPaneTitle:"Chatten",chatButtonNewMessageNotificationLabel:"Nieuw bericht",pictureInPictureTileAriaLabel:"Videofeeds. Klik om terug te keren naar het oproepscherm.",removeMenuLabel:"Verwijderen",copyInviteLinkButtonLabel:"Uitnodigingskoppeling kopiëren"};var nl_NL = {call:call$5,chat:chat$5,callWithChat:callWithChat$5};
12897
-
12898
- var call$4={cameraLabel:"Câmera",cameraPermissionDenied:"Seu navegador está bloqueando o acesso à câmera",cameraTurnedOff:"Sua câmera está desativada",close:"Fechar",complianceBannerNowOnlyRecording:"Você agora está apenas gravando esta reunião.",complianceBannerNowOnlyTranscription:"Você agora está apenas transcrevendo esta reunião.",complianceBannerRecordingAndTranscriptionSaved:"A gravação e a transcrição estão sendo salvas.",complianceBannerRecordingAndTranscriptionStarted:"A gravação e a transcrição foram iniciadas.",complianceBannerRecordingAndTranscriptionStopped:"A gravação e a transcrição foram interrompidas.",complianceBannerRecordingSaving:"A gravação está sendo salva.",complianceBannerRecordingStarted:"A gravação foi iniciada.",complianceBannerRecordingStopped:"A gravação foi interrompida.",complianceBannerTranscriptionStarted:"A transcrição foi iniciada.",complianceBannerTranscriptionConsent:"Ao ingressar, você está dando consentimento para que esta reunião seja transcrita.",complianceBannerTranscriptionSaving:"A transcrição está sendo salva.",complianceBannerTranscriptionStopped:"A transcrição foi interrompida.",configurationPageTitle:"Iniciar uma chamada",defaultPlaceHolder:"Selecionar uma opção",failedToJoinCallDueToNoNetworkMoreDetails:"A chamada foi desconectada devido a um problema de rede. Verifique sua conexão e ingresse novamente.",failedToJoinCallDueToNoNetworkTitle:"Chamada desconectada",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Você não recebeu entrada na chamada. Se isso foi um erro, ingresse novamente na chamada.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Ignorado do lobby",learnMore:"Saber mais",leftCallMoreDetails:"Se isso foi um erro, ingresse novamente na chamada.",leftCallTitle:"Você saiu da chamada",lobbyScreenConnectingToCallTitle:"Ingressando na chamada",lobbyScreenWaitingToBeAdmittedTitle:"Esperando para ser admitido",microphonePermissionDenied:"Seu navegador está bloqueando o acesso ao microfone",mutedMessage:"Você está com o mudo ativado",networkReconnectMoreDetails:"Parece que algo deu errado. Estamos tentando retornar à chamada.",networkReconnectTitle:"Em espera",privacyPolicy:"Política de privacidade",rejoinCallButtonLabel:"Reingressar na chamada",removedFromCallMoreDetails:"Outro participante removeu você da chamada.",removedFromCallTitle:"Você foi removido",soundLabel:"Som",startCallButtonLabel:"Iniciar chamada",microphoneToggleInLobbyNotAllowed:"Não é possível ativar ou desativar mudo enquanto estiver no lobby."};var chat$4={chatListHeader:"Neste chat"};var callWithChat$4={peopleButtonLabel:"Pessoas",peopleButtonTooltipContentOpen:"Mostrar Participantes",peopleButtonTooltipContentClose:"Ocultar participantes",chatButtonLabel:"Chat",chatButtonTooltipContentOpen:"Mostrar Chat",chatButtonTooltipContentClose:"Ocultar Chat",moreDrawerMicrophoneMenuTitle:"Microfone",moreDrawerSpeakerMenuTitle:"Alto-falante",moreDrawerButtonLabel:"Mais opções",moreDrawerButtonTooltip:"Mais opções",peoplePaneTitle:"Pessoas",peoplePaneSubTitle:"Nesta chamada",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"Nova mensagem",pictureInPictureTileAriaLabel:"Feeds de vídeo. Clique para retornar à tela de chamada.",removeMenuLabel:"Remover",copyInviteLinkButtonLabel:"Copiar o link de convite"};var pt_BR = {call:call$4,chat:chat$4,callWithChat:callWithChat$4};
12899
-
12900
- var call$3={cameraLabel:"Камера",cameraPermissionDenied:"Браузер блокирует доступ к вашей камере",cameraTurnedOff:"Камера выключена",close:"Закрыть",complianceBannerNowOnlyRecording:"Сейчас для этого собрания ведется только запись.",complianceBannerNowOnlyTranscription:"Сейчас для этого собрания ведется только транскрибирование.",complianceBannerRecordingAndTranscriptionSaved:"Сохранение записи и транскрибирования.",complianceBannerRecordingAndTranscriptionStarted:"Начата запись и транскрибирование.",complianceBannerRecordingAndTranscriptionStopped:"Запись и транскрибирование остановлены.",complianceBannerRecordingSaving:"Сохранение записи.",complianceBannerRecordingStarted:"Запись начата.",complianceBannerRecordingStopped:"Запись остановлена.",complianceBannerTranscriptionStarted:"Транскрибирование запущено.",complianceBannerTranscriptionConsent:"Присоединяясь, вы даете согласие на транскрибирование этого собрания.",complianceBannerTranscriptionSaving:"Сохранение транскрибирования.",complianceBannerTranscriptionStopped:"Транскрибирование остановлено.",configurationPageTitle:"Позвонить",defaultPlaceHolder:"Выберите один из вариантов",failedToJoinCallDueToNoNetworkMoreDetails:"Звонок был отключен из-за проблемы с сетью. Проверьте подключение и присоединитесь еще раз.",failedToJoinCallDueToNoNetworkTitle:"Вызов прерван",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Вам не предоставили доступ к беседе. Если это произошло по ошибке, заново присоединитесь к беседе.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Вы были удалены из \"зала ожидания\"",learnMore:"Подробнее",leftCallMoreDetails:"Если это произошло по ошибке, заново присоединитесь к беседе.",leftCallTitle:"Вы покинули беседу",lobbyScreenConnectingToCallTitle:"Подключение к звонку",lobbyScreenWaitingToBeAdmittedTitle:"Ожидание допуска",microphonePermissionDenied:"Браузер блокирует доступ к вашему микрофону",mutedMessage:"Ваш звук отключен",networkReconnectMoreDetails:"Похоже, что-то пошло не так. Мы пытаемся вернуться к звонку.",networkReconnectTitle:"Подождите",privacyPolicy:"Политика конфиденциальности",rejoinCallButtonLabel:"Повторно присоединиться к звонку",removedFromCallMoreDetails:"Другой участник удалил вас из беседы.",removedFromCallTitle:"Вы были удалены",soundLabel:"Звук",startCallButtonLabel:"Начать звонок",microphoneToggleInLobbyNotAllowed:"Невозможно отключить или включить звук, находясь в \"зале ожидания\"."};var chat$3={chatListHeader:"В этом чате"};var callWithChat$3={peopleButtonLabel:"Люди",peopleButtonTooltipContentOpen:"Показать участников",peopleButtonTooltipContentClose:"Скрыть участников",chatButtonLabel:"Чат",chatButtonTooltipContentOpen:"Показать чат",chatButtonTooltipContentClose:"Скрыть чат",moreDrawerMicrophoneMenuTitle:"Микрофон",moreDrawerSpeakerMenuTitle:"Динамик",moreDrawerButtonLabel:"Дополнительные параметры",moreDrawerButtonTooltip:"Дополнительные параметры",peoplePaneTitle:"Люди",peoplePaneSubTitle:"В этом звонке",chatPaneTitle:"Чат",chatButtonNewMessageNotificationLabel:"Новое сообщение",pictureInPictureTileAriaLabel:"Ленты видео. Щелкните, чтобы вернуться на экран вызова.",removeMenuLabel:"Удалить",copyInviteLinkButtonLabel:"Копировать ссылку с приглашением"};var ru_RU = {call:call$3,chat:chat$3,callWithChat:callWithChat$3};
12901
-
12902
- var call$2={cameraLabel:"Kamera",cameraPermissionDenied:"Tarayıcınız kameranıza erişimi engelliyor",cameraTurnedOff:"Kameranız kapatıldı",close:"Kapat",complianceBannerNowOnlyRecording:"Şu anda yalnızca bu toplantıyı kaydediyorsunuz.",complianceBannerNowOnlyTranscription:"Şu anda yalnızca bu toplantının dökümünü oluşturuyorsunuz.",complianceBannerRecordingAndTranscriptionSaved:"Kayıt ve döküm kaydediliyor.",complianceBannerRecordingAndTranscriptionStarted:"Kayıt ve döküm başlatıldı.",complianceBannerRecordingAndTranscriptionStopped:"Kayıt ve döküm durduruldu.",complianceBannerRecordingSaving:"Kayıt kaydediliyor.",complianceBannerRecordingStarted:"Kayıt başladı.",complianceBannerRecordingStopped:"Kayıt durduruldu.",complianceBannerTranscriptionStarted:"Döküm başlatıldı.",complianceBannerTranscriptionConsent:"Katılarak bu toplantının dökümünün çıkarılmasına onay verirsiniz.",complianceBannerTranscriptionSaving:"Döküm kaydediliyor.",complianceBannerTranscriptionStopped:"Döküm durduruldu.",configurationPageTitle:"Arama başlatın",defaultPlaceHolder:"Bir seçenek belirleyin",failedToJoinCallDueToNoNetworkMoreDetails:"Bir ağ sorunu nedeniyle arama bağlantısı kesildi. Bağlantınızı kontrol edin ve yeniden katılın.",failedToJoinCallDueToNoNetworkTitle:"Arama kesildi",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"Aramaya katılmanıza izin verilmedi. Bu işlem yanlışlıkla yapıldıysa aramaya yeniden katılın.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Lobiden çıkarıldı",learnMore:"Daha fazla bilgi edinin",leftCallMoreDetails:"Bu bir hataysa aramaya yeniden katılın.",leftCallTitle:"Aramadan ayrıldınız",lobbyScreenConnectingToCallTitle:"Aramaya katılıyorsunuz",lobbyScreenWaitingToBeAdmittedTitle:"Kabul edilmeyi bekliyor",microphonePermissionDenied:"Tarayıcınız mikrofonunuza erişimi engelliyor",mutedMessage:"Sesiniz kapatıldı",networkReconnectMoreDetails:"Bir sorun oluştu gibi görünüyor. Çağrıya geri alınmaya çalışılıyor.",networkReconnectTitle:"Bekleyin",privacyPolicy:"Gizlilik ilkesi",rejoinCallButtonLabel:"Çağrıya yeniden katıl",removedFromCallMoreDetails:"Başka bir katılımcı sizi aramadan çıkardı.",removedFromCallTitle:"Çıkarıldınız",soundLabel:"Ses",startCallButtonLabel:"Arama başlat",microphoneToggleInLobbyNotAllowed:"Lobideyken sesi kapatılamaz veya açılamaz."};var chat$2={chatListHeader:"Bu sohbette"};var callWithChat$2={peopleButtonLabel:"Kişiler",peopleButtonTooltipContentOpen:"Katılımcıları Göster",peopleButtonTooltipContentClose:"Katılımcıları Gizle",chatButtonLabel:"Sohbet",chatButtonTooltipContentOpen:"Sohbeti Göster",chatButtonTooltipContentClose:"Sohbeti Gizle",moreDrawerMicrophoneMenuTitle:"Mikrofon",moreDrawerSpeakerMenuTitle:"Hoparlör",moreDrawerButtonLabel:"Diğer seçenekler",moreDrawerButtonTooltip:"Diğer seçenekler",peoplePaneTitle:"Kişiler",peoplePaneSubTitle:"Bu aramada",chatPaneTitle:"Sohbet",chatButtonNewMessageNotificationLabel:"Yeni İleti",pictureInPictureTileAriaLabel:"Video Akışları. Çağrı ekranına dönmek için tıklayın.",removeMenuLabel:"Kaldır",copyInviteLinkButtonLabel:"Davet bağlantısını kopyala"};var tr_TR = {call:call$2,chat:chat$2,callWithChat:callWithChat$2};
12903
-
12904
- var call$1={cameraLabel:"照相机",cameraPermissionDenied:"你的浏览器正在阻止对相机的访问",cameraTurnedOff:"你的相机已关闭",close:"关闭",complianceBannerNowOnlyRecording:"现在仅录制此会议。",complianceBannerNowOnlyTranscription:"现在仅听录此会议。",complianceBannerRecordingAndTranscriptionSaved:"正在保存录制和听录。",complianceBannerRecordingAndTranscriptionStarted:"录制和听录已开始。",complianceBannerRecordingAndTranscriptionStopped:"录制和听录已停止。",complianceBannerRecordingSaving:"正在保存录制。",complianceBannerRecordingStarted:"录制已开始。",complianceBannerRecordingStopped:"录制已停止。",complianceBannerTranscriptionStarted:"听录已开始。",complianceBannerTranscriptionConsent:"加入即表示你同意转录此会议。",complianceBannerTranscriptionSaving:"正在保存听录。",complianceBannerTranscriptionStopped:"听录已停止。",configurationPageTitle:"开始通话",defaultPlaceHolder:"选择一个选项",failedToJoinCallDueToNoNetworkMoreDetails:"由于网络问题,呼叫已断开连接。请检查你的连接,然后重新加入。",failedToJoinCallDueToNoNetworkTitle:"通话已断开",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"未在通话中向你授予条目。如果这是一个错误,请重新加入呼叫。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已从大厅中关闭",learnMore:"了解详细信息",leftCallMoreDetails:"如果这是一个错误,请重新加入呼叫。",leftCallTitle:"你已离开通话",lobbyScreenConnectingToCallTitle:"加入通话",lobbyScreenWaitingToBeAdmittedTitle:"正在等待被拒绝",microphonePermissionDenied:"你的浏览器正在阻止对麦克风的访问",mutedMessage:"你已静音",networkReconnectMoreDetails:"似乎出现了问题。我们正在努力恢复通话。",networkReconnectTitle:"稍等",privacyPolicy:"隐私策略",rejoinCallButtonLabel:"重新加入呼叫",removedFromCallMoreDetails:"另一名参与者已将你从通话中删除。",removedFromCallTitle:"你已被删除",soundLabel:"声音",startCallButtonLabel:"开始通话",microphoneToggleInLobbyNotAllowed:"在大厅中时无法静音或取消静音。"};var chat$1={chatListHeader:"在此聊天中"};var callWithChat$1={peopleButtonLabel:"人员",peopleButtonTooltipContentOpen:"显示参与者",peopleButtonTooltipContentClose:"隐藏参与者",chatButtonLabel:"聊天",chatButtonTooltipContentOpen:"显示聊天",chatButtonTooltipContentClose:"隐藏聊天",moreDrawerMicrophoneMenuTitle:"麦克风",moreDrawerSpeakerMenuTitle:"扬声器",moreDrawerButtonLabel:"更多选项",moreDrawerButtonTooltip:"更多选项",peoplePaneTitle:"人员",peoplePaneSubTitle:"在此通话中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新建消息",pictureInPictureTileAriaLabel:"视频源。单击以返回到通话屏幕。",removeMenuLabel:"删除",copyInviteLinkButtonLabel:"复制邀请链接"};var zh_CN = {call:call$1,chat:chat$1,callWithChat:callWithChat$1};
12905
-
12906
- var call={cameraLabel:"相機",cameraPermissionDenied:"您的瀏覽器禁止存取您的相機",cameraTurnedOff:"您的相機已關閉",close:"關閉",complianceBannerNowOnlyRecording:"您現在只會錄製此會議。",complianceBannerNowOnlyTranscription:"您現在只會轉錄此會議。",complianceBannerRecordingAndTranscriptionSaved:"正在儲存錄製和轉錄。",complianceBannerRecordingAndTranscriptionStarted:"已開始錄製並進行轉錄。",complianceBannerRecordingAndTranscriptionStopped:"已停止錄製與轉錄。",complianceBannerRecordingSaving:"正在儲存錄製內容。",complianceBannerRecordingStarted:"已開始錄製。",complianceBannerRecordingStopped:"已停止錄製。",complianceBannerTranscriptionStarted:"已開始轉錄。",complianceBannerTranscriptionConsent:"一旦加入,即表示您同意轉譯此會議。",complianceBannerTranscriptionSaving:"正在儲存轉錄。",complianceBannerTranscriptionStopped:"已停止轉錄。",configurationPageTitle:"開始通話",defaultPlaceHolder:"選取選項",failedToJoinCallDueToNoNetworkMoreDetails:"由於網路問題,通話已中斷連線。檢查您的連線並再次加入。",failedToJoinCallDueToNoNetworkTitle:"通話已斷線",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"您未被授予加入通話的權限。如果有誤,請重新加入通話。",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"已從大廳關閉",learnMore:"深入了解",leftCallMoreDetails:"如果有誤,請重新加入通話。",leftCallTitle:"您已離開通話",lobbyScreenConnectingToCallTitle:"正在加入通話",lobbyScreenWaitingToBeAdmittedTitle:"正在等候認可",microphonePermissionDenied:"您的瀏覽器禁止存取您的麥克風",mutedMessage:"您已設為靜音",networkReconnectMoreDetails:"似乎發生錯誤。我們正在嘗試讓您返回通話。",networkReconnectTitle:"請稍候",privacyPolicy:"隱私權原則",rejoinCallButtonLabel:"重新加入通話",removedFromCallMoreDetails:"另一名參與者已將您自通話中移除。",removedFromCallTitle:"您已遭移除",soundLabel:"音效",startCallButtonLabel:"開始通話",microphoneToggleInLobbyNotAllowed:"無法在大廳中靜音或取消靜音。"};var chat={chatListHeader:"在此聊天中"};var callWithChat={peopleButtonLabel:"人員",peopleButtonTooltipContentOpen:"顯示參與者",peopleButtonTooltipContentClose:"隱藏參與者",chatButtonLabel:"聊天",chatButtonTooltipContentOpen:"顯示聊天",chatButtonTooltipContentClose:"隱藏聊天",moreDrawerMicrophoneMenuTitle:"麥克風",moreDrawerSpeakerMenuTitle:"揚聲器",moreDrawerButtonLabel:"更多選項",moreDrawerButtonTooltip:"更多選項",peoplePaneTitle:"人員",peoplePaneSubTitle:"在此通話中",chatPaneTitle:"聊天",chatButtonNewMessageNotificationLabel:"新訊息",pictureInPictureTileAriaLabel:"影片摘要。按一下以返回通話畫面。",removeMenuLabel:"移除",copyInviteLinkButtonLabel:"複製邀請連結"};var zh_TW = {call:call,chat:chat,callWithChat:callWithChat};
12907
-
12908
- // Copyright (c) Microsoft Corporation.
12909
- const createCompositeStrings = (localizedStrings) => {
12910
- const strings = Object.assign({}, en_US);
12911
- Object.keys(localizedStrings).forEach((key) => {
12912
- strings[key] = Object.assign(Object.assign({}, strings[key]), localizedStrings[key]);
12913
- });
12914
- return strings;
12915
- };
12916
- /**
12917
- * Locale for English (US)
12918
- *
12919
- * @public
12920
- */
12921
- const COMPOSITE_LOCALE_EN_US = {
12922
- component: COMPONENT_LOCALE_EN_US,
12923
- strings: en_US
12924
- };
12925
- /**
12926
- * Locale for English (British)
12927
- *
12928
- * @public
12929
- */
12930
- const COMPOSITE_LOCALE_EN_GB = {
12931
- component: COMPONENT_LOCALE_EN_GB,
12932
- strings: createCompositeStrings(en_GB)
12933
- };
12934
- /**
12935
- * Locale for German (Germany)
12936
- *
12937
- * @public
12938
- */
12939
- const COMPOSITE_LOCALE_DE_DE = {
12940
- component: COMPONENT_LOCALE_DE_DE,
12941
- strings: createCompositeStrings(de_DE)
12942
- };
12943
- /**
12944
- * Locale for Spanish (Spain)
12945
- *
12946
- * @public
12947
- */
12948
- const COMPOSITE_LOCALE_ES_ES = {
12949
- component: COMPONENT_LOCALE_ES_ES,
12950
- strings: createCompositeStrings(es_ES)
12951
- };
12952
- /**
12953
- * Locale for French (France)
12954
- *
12955
- * @public
12956
- */
12957
- const COMPOSITE_LOCALE_FR_FR = {
12958
- component: COMPONENT_LOCALE_FR_FR,
12959
- strings: createCompositeStrings(fr_FR)
12960
- };
12961
- /**
12962
- * Locale for Italian (Italy)
12963
- *
12964
- * @public
12965
- */
12966
- const COMPOSITE_LOCALE_IT_IT = {
12967
- component: COMPONENT_LOCALE_IT_IT,
12968
- strings: createCompositeStrings(it_IT)
12969
- };
12970
- /**
12971
- * Locale for Japanese (Japan)
12972
- *
12973
- * @public
12974
- */
12975
- const COMPOSITE_LOCALE_JA_JP = {
12976
- component: COMPONENT_LOCALE_JA_JP,
12977
- strings: createCompositeStrings(ja_JP)
12978
- };
12979
- /**
12980
- * Locale for Korean (South Korea)
12981
- *
12982
- * @public
12983
- */
12984
- const COMPOSITE_LOCALE_KO_KR = {
12985
- component: COMPONENT_LOCALE_KO_KR,
12986
- strings: createCompositeStrings(ko_KR)
12987
- };
12988
- /**
12989
- * Locale for Dutch (Netherlands)
12990
- *
12991
- * @public
12992
- */
12993
- const COMPOSITE_LOCALE_NL_NL = {
12994
- component: COMPONENT_LOCALE_NL_NL,
12995
- strings: createCompositeStrings(nl_NL)
12996
- };
12997
- /**
12998
- * Locale for Portuguese (Brazil)
12999
- *
13000
- * @public
13001
- */
13002
- const COMPOSITE_LOCALE_PT_BR = {
13003
- component: COMPONENT_LOCALE_PT_BR,
13004
- strings: createCompositeStrings(pt_BR)
13005
- };
13006
- /**
13007
- * Locale for Russian (Russia)
13008
- *
13009
- * @public
13010
- */
13011
- const COMPOSITE_LOCALE_RU_RU = {
13012
- component: COMPONENT_LOCALE_RU_RU,
13013
- strings: createCompositeStrings(ru_RU)
13014
- };
13015
- /**
13016
- * Locale for Turkish (Turkey)
13017
- *
13018
- * @public
13019
- */
13020
- const COMPOSITE_LOCALE_TR_TR = {
13021
- component: COMPONENT_LOCALE_TR_TR,
13022
- strings: createCompositeStrings(tr_TR)
13023
- };
13024
- /**
13025
- * Locale for Chinese (Mainland China)
13026
- *
13027
- * @public
13028
- */
13029
- const COMPOSITE_LOCALE_ZH_CN = {
13030
- component: COMPONENT_LOCALE_ZH_CN,
13031
- strings: createCompositeStrings(zh_CN)
13032
- };
13033
- /**
13034
- * Locale for Chinese (Taiwan)
13035
- *
13036
- * @public
13037
- */
13038
- const COMPOSITE_LOCALE_ZH_TW = {
13039
- component: COMPONENT_LOCALE_ZH_TW,
13040
- strings: createCompositeStrings(zh_TW)
13041
- };
13042
-
13043
- // Copyright (c) Microsoft Corporation.
13044
- /**
13045
- * Context for providing localized strings to components
13046
- *
13047
- * @private
13048
- */
13049
- const LocaleContext = React.createContext(COMPOSITE_LOCALE_EN_US);
13050
- /**
13051
- * Provider to provide localized strings for this library's composites.
13052
- *
13053
- * @private
13054
- */
13055
- const LocalizationProvider = (props) => {
13056
- const { locale, children } = props;
13057
- return (React__default['default'].createElement(LocaleContext.Provider, { value: locale },
13058
- React__default['default'].createElement(LocalizationProvider$1, { locale: locale.component }, children)));
13059
- };
13060
- /**
13061
- * @private
13062
- */
13063
- const useLocale = () => React.useContext(LocaleContext);
13064
-
13065
13229
  // Copyright (c) Microsoft Corporation.
13066
13230
  // Licensed under the MIT license.
13067
13231
  /**
@@ -13139,6 +13303,11 @@ const useAdapter$1 = () => {
13139
13303
 
13140
13304
  // Copyright (c) Microsoft Corporation.
13141
13305
  const MESSAGE_THREAD_WIDTH = '41.25rem';
13306
+ /**
13307
+ * @private
13308
+ * z-index to ensure that chat container has lower z-index than participant pane
13309
+ */
13310
+ const CHAT_CONTAINER_ZINDEX = 1;
13142
13311
  /**
13143
13312
  * @private
13144
13313
  */
@@ -13182,7 +13351,8 @@ const chatArea = react.mergeStyles({
13182
13351
  const chatWrapper = react.mergeStyles({
13183
13352
  height: '100%',
13184
13353
  width: '100%',
13185
- overflow: 'hidden'
13354
+ overflow: 'hidden',
13355
+ zIndex: CHAT_CONTAINER_ZINDEX
13186
13356
  });
13187
13357
  /**
13188
13358
  * @private
@@ -13239,44 +13409,30 @@ var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments,
13239
13409
  });
13240
13410
  };
13241
13411
  /**
13242
- * Hook to override the avatar persona data of the users
13243
- * - Calls {@link AvatarPersonaDataCallback} on each render for provided `userIds`
13244
- * - Returns an array of the same length as `userIds`. Entries in the array may be undefined if there is no data to return.
13412
+ * An Avatar component made using the `Persona` component.
13413
+ * It allows you to specify a `userId` and a `dataProvider` to retrieve the `AvatarPersonaData`.
13414
+ * Read more about `Persona` component at https://developer.microsoft.com/fluentui#/controls/web/persona
13415
+ *
13245
13416
  * @private
13246
13417
  */
13247
- const useCustomAvatarPersonaData = (userIds, callback) => {
13248
- const [data, setData] = React__default['default'].useState(Array(userIds.length).fill(undefined));
13418
+ const AvatarPersona = (props) => {
13419
+ var _a, _b, _c, _d, _e, _f;
13420
+ const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
13421
+ const [data, setData] = React.useState();
13249
13422
  React.useEffect(() => {
13250
13423
  (() => __awaiter$8(void 0, void 0, void 0, function* () {
13251
- const newData = yield Promise.all(userIds.map((userId) => __awaiter$8(void 0, void 0, void 0, function* () {
13252
- if (!userId || !callback) {
13253
- return undefined;
13424
+ if (dataProvider && userId) {
13425
+ const newData = yield dataProvider(userId);
13426
+ if (avatarDeepDifferenceCheck(data, newData)) {
13427
+ setData(newData);
13254
13428
  }
13255
- return yield callback(userId);
13256
- })));
13257
- if (shouldUpdate(data, newData)) {
13258
- setData(newData);
13259
13429
  }
13260
13430
  }))();
13261
- });
13262
- return data;
13263
- };
13264
- /**
13265
- * Function to determine if there is new user avatar data in current render pass.
13266
- * @param currentData current set set of avatar persona data present from the custom settings from the previous render
13267
- * @param newData new set of avatar persona data after a run of {@link useCustomAvatarPersonData}
13268
- * @returns Boolean whether there is new avatar persona data present.
13269
- * @private
13270
- */
13271
- const shouldUpdate = (currentData, newData) => {
13272
- if (currentData.length !== newData.length) {
13273
- return true;
13274
- }
13275
- return currentData.some((data, i) => avatarDeepDifferenceCheck(data, newData[i]));
13431
+ }, [data, dataProvider, userId]);
13432
+ return (React__default['default'].createElement(react.Persona, Object.assign({}, props, { text: (_a = data === null || data === void 0 ? void 0 : data.text) !== null && _a !== void 0 ? _a : text, imageUrl: (_b = data === null || data === void 0 ? void 0 : data.imageUrl) !== null && _b !== void 0 ? _b : imageUrl, imageInitials: (_c = data === null || data === void 0 ? void 0 : data.imageInitials) !== null && _c !== void 0 ? _c : imageInitials, initialsColor: (_d = data === null || data === void 0 ? void 0 : data.initialsColor) !== null && _d !== void 0 ? _d : initialsColor, initialsTextColor: (_f = (_e = data === null || data === void 0 ? void 0 : data.initialsTextColor) !== null && _e !== void 0 ? _e : initialsTextColor) !== null && _f !== void 0 ? _f : 'white',
13433
+ // default disable tooltip unless specified
13434
+ showOverflowTooltip: showOverflowTooltip !== null && showOverflowTooltip !== void 0 ? showOverflowTooltip : false })));
13276
13435
  };
13277
- /**
13278
- * @private
13279
- */
13280
13436
  const avatarDeepDifferenceCheck = (currentData, newData) => {
13281
13437
  return ((currentData === null || currentData === void 0 ? void 0 : currentData.text) !== (newData === null || newData === void 0 ? void 0 : newData.text) ||
13282
13438
  (currentData === null || currentData === void 0 ? void 0 : currentData.imageUrl) !== (newData === null || newData === void 0 ? void 0 : newData.imageUrl) ||
@@ -13285,26 +13441,6 @@ const avatarDeepDifferenceCheck = (currentData, newData) => {
13285
13441
  (currentData === null || currentData === void 0 ? void 0 : currentData.initialsTextColor) !== (newData === null || newData === void 0 ? void 0 : newData.initialsTextColor));
13286
13442
  };
13287
13443
 
13288
- // Copyright (c) Microsoft Corporation.
13289
- /**
13290
- * An Avatar component made using the `Persona` component.
13291
- * It allows you to specify a `userId` and a `dataProvider` to retrieve the `AvatarPersonaData`.
13292
- * Read more about `Persona` component at https://developer.microsoft.com/fluentui#/controls/web/persona
13293
- *
13294
- * @private
13295
- */
13296
- const AvatarPersona = (props) => {
13297
- var _a, _b, _c, _d, _e, _f;
13298
- const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
13299
- const userIds = React.useMemo(() => {
13300
- return [userId];
13301
- }, [userId]);
13302
- const [data] = useCustomAvatarPersonaData(userIds, dataProvider);
13303
- return (React__default['default'].createElement(react.Persona, Object.assign({}, props, { text: (_a = data === null || data === void 0 ? void 0 : data.text) !== null && _a !== void 0 ? _a : text, imageUrl: (_b = data === null || data === void 0 ? void 0 : data.imageUrl) !== null && _b !== void 0 ? _b : imageUrl, imageInitials: (_c = data === null || data === void 0 ? void 0 : data.imageInitials) !== null && _c !== void 0 ? _c : imageInitials, initialsColor: (_d = data === null || data === void 0 ? void 0 : data.initialsColor) !== null && _d !== void 0 ? _d : initialsColor, initialsTextColor: (_f = (_e = data === null || data === void 0 ? void 0 : data.initialsTextColor) !== null && _e !== void 0 ? _e : initialsTextColor) !== null && _f !== void 0 ? _f : 'white',
13304
- // default disable tooltip unless specified
13305
- showOverflowTooltip: showOverflowTooltip !== null && showOverflowTooltip !== void 0 ? showOverflowTooltip : false })));
13306
- };
13307
-
13308
13444
  // Copyright (c) Microsoft Corporation.
13309
13445
  /**
13310
13446
  * @private
@@ -13492,11 +13628,16 @@ const peoplePaneContainerTokens = {
13492
13628
  /**
13493
13629
  * @private
13494
13630
  */
13495
- const participantListWrapper = react.mergeStyles({
13631
+ const participantListWrapper = (theme) => react.mergeStyles({
13496
13632
  width: '20rem',
13497
- // max width at 50% of view so the People Pane is not squeezing the Message Pane to almost nothing when on small screen or high zoom in
13498
- maxWidth: '50vw',
13499
- height: '100%'
13633
+ maxWidth: '50%',
13634
+ height: '100%',
13635
+ position: 'absolute',
13636
+ right: '0',
13637
+ boxShadow: theme.effects.elevation16,
13638
+ background: theme.semanticColors.bodyBackground,
13639
+ // zIndex to set the participant pane above the chat container
13640
+ zIndex: CHAT_CONTAINER_ZINDEX + 1
13500
13641
  });
13501
13642
  /**
13502
13643
  * @private
@@ -13538,13 +13679,25 @@ const participantListMobileStyle = {
13538
13679
  }
13539
13680
  }
13540
13681
  };
13682
+ /**
13683
+ * @private
13684
+ */
13685
+ const displayNameStyles = {
13686
+ root: {
13687
+ padding: '0.5rem',
13688
+ textOverflow: 'ellipsis',
13689
+ overflow: 'hidden'
13690
+ }
13691
+ };
13541
13692
 
13542
13693
  // Copyright (c) Microsoft Corporation.
13543
13694
  /**
13544
13695
  * @private
13545
13696
  */
13546
13697
  const ParticipantContainer = (props) => {
13547
- return (React__default['default'].createElement(react.Stack, { className: participantListWrapper },
13698
+ const theme = react.useTheme();
13699
+ const participantListWrapperClassName = React.useMemo(() => participantListWrapper(theme), [theme]);
13700
+ return (React__default['default'].createElement(react.Stack, { className: participantListWrapperClassName },
13548
13701
  React__default['default'].createElement(ParticipantListWithHeading, Object.assign({}, props))));
13549
13702
  };
13550
13703
  /**
@@ -13563,7 +13716,9 @@ const ParticipantListWithHeading = (props) => {
13563
13716
  return (React__default['default'].createElement(react.Stack, { className: participantListStack },
13564
13717
  React__default['default'].createElement(react.Stack.Item, { styles: subheadingStyleThemed }, title),
13565
13718
  React__default['default'].createElement(react.FocusZone, { className: participantListContainerStyle },
13566
- React__default['default'].createElement(ParticipantList, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React__default['default'].createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { dataProvider: onFetchAvatarPersonaData }))), onFetchParticipantMenuItems: onFetchParticipantMenuItems, showParticipantOverflowTooltip: !props.isMobile })))));
13719
+ React__default['default'].createElement(ParticipantList, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React__default['default'].createElement(React__default['default'].Fragment, null,
13720
+ React__default['default'].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 })),
13721
+ (options === null || options === void 0 ? void 0 : options.text) && (React__default['default'].createElement(react.Text, { nowrap: true, styles: displayNameStyles }, options === null || options === void 0 ? void 0 : options.text)))), onFetchParticipantMenuItems: onFetchParticipantMenuItems, showParticipantOverflowTooltip: !props.isMobile })))));
13567
13722
  };
13568
13723
 
13569
13724
  // Copyright (c) Microsoft Corporation.
@@ -14529,13 +14684,12 @@ const MediaGallery = (props) => {
14529
14684
  const cameraSwitcherProps = React.useMemo(() => {
14530
14685
  return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);
14531
14686
  }, [cameraSwitcherCallback, cameraSwitcherCameras]);
14532
- const remoteParticipants = useRemoteParticipantsWithCustomDisplayNames(videoGalleryProps.remoteParticipants, props.onFetchAvatarPersonaData);
14533
14687
  const onRenderAvatar = React.useCallback((userId, options) => (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
14534
14688
  React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })))), [props.onFetchAvatarPersonaData]);
14535
14689
  useLocalVideoStartTrigger(!!props.isVideoStreamOn);
14536
14690
  const VideoGalleryMemoized = React.useMemo(() => {
14537
- return (React__default['default'].createElement(VideoGallery, Object.assign({}, videoGalleryProps, { remoteParticipants: remoteParticipants, localVideoViewOptions: localVideoViewOptions$3, remoteVideoViewOptions: remoteVideoViewOptions$1, styles: VideoGalleryStyles, layout: "floatingLocalVideo", showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar })));
14538
- }, [videoGalleryProps, props.isMobile, onRenderAvatar, remoteParticipants, cameraSwitcherProps]);
14691
+ return (React__default['default'].createElement(VideoGallery, Object.assign({}, videoGalleryProps, { localVideoViewOptions: localVideoViewOptions$3, remoteVideoViewOptions: remoteVideoViewOptions$1, styles: VideoGalleryStyles, layout: "floatingLocalVideo", showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar })));
14692
+ }, [videoGalleryProps, props.isMobile, onRenderAvatar, cameraSwitcherProps]);
14539
14693
  return VideoGalleryMemoized;
14540
14694
  };
14541
14695
  /**
@@ -14564,25 +14718,6 @@ const useLocalVideoStartTrigger = (isLocalVideoAvailable, shouldTransition) => {
14564
14718
  }
14565
14719
  }, [shouldTransition, isButtonStatusSynced, isPreviewCameraOn, isLocalVideoAvailable, mediaGalleryHandlers]);
14566
14720
  };
14567
- /**
14568
- * Hook to fetch new participant avatar and video gallery displayName information if it is present.
14569
- * @param onFetchAvatarPersonaData
14570
- */
14571
- const useRemoteParticipantsWithCustomDisplayNames = (remoteParticipants, onFetchAvatarPersonaData) => {
14572
- const userIds = React.useMemo(() => {
14573
- return remoteParticipants.map((p) => p.userId);
14574
- }, [remoteParticipants]);
14575
- const avatarPersonaData = useCustomAvatarPersonaData(userIds, onFetchAvatarPersonaData);
14576
- const newParticipants = remoteParticipants.map((p, i) => {
14577
- var _a;
14578
- const newName = (_a = avatarPersonaData[i]) === null || _a === void 0 ? void 0 : _a.text;
14579
- if (!newName) {
14580
- return p;
14581
- }
14582
- return Object.assign(Object.assign({}, p), { displayName: newName });
14583
- });
14584
- return newParticipants;
14585
- };
14586
14721
 
14587
14722
  // Copyright (c) Microsoft Corporation.
14588
14723
  // Licensed under the MIT license.
@@ -14702,11 +14837,11 @@ const NetworkReconnectTile = (props) => {
14702
14837
  // This tile may be shown at the beginning of a call.
14703
14838
  // So we need to transition local video to the call.
14704
14839
  useLocalVideoStartTrigger(!!props.localParticipantVideoStream.isAvailable);
14705
- return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(containerStyle$1) },
14840
+ return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(containerStyle$1), "aria-atomic": true },
14706
14841
  React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(titleContainerStyle) },
14707
14842
  React__default['default'].createElement(CallCompositeIcon, { iconName: "NetworkReconnectIcon", className: react.mergeStyles(titleStyle$1) }),
14708
- React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle$1(palette, isVideoReady)), "aria-live": 'polite' }, strings.networkReconnectTitle)),
14709
- React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)), "aria-live": 'polite' }, strings.networkReconnectMoreDetails)) }, handlers)));
14843
+ React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectTitle)),
14844
+ React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectMoreDetails)) }, handlers)));
14710
14845
  };
14711
14846
 
14712
14847
  // Copyright (c) Microsoft Corporation.
@@ -15018,9 +15153,9 @@ const buttonWithIconStyles = {
15018
15153
  * @private
15019
15154
  */
15020
15155
  const StartCallButton = (props) => {
15021
- const { isDisabled, onClickHandler, rejoinCall } = props;
15156
+ const { rejoinCall } = props;
15022
15157
  const locale = useLocale();
15023
- return (React__default['default'].createElement(react.PrimaryButton, { "data-ui-id": "call-composite-start-call-button", disabled: isDisabled, className: react.mergeStyles(buttonStyle, props.className), styles: buttonWithIconStyles, text: rejoinCall ? locale.strings.call.rejoinCallButtonLabel : locale.strings.call.startCallButtonLabel, onClick: onClickHandler, onRenderIcon: () => React__default['default'].createElement(reactIcons.Video20Filled, { className: videoCameraIconStyle }) }));
15158
+ return (React__default['default'].createElement(react.PrimaryButton, Object.assign({}, props, { "data-ui-id": "call-composite-start-call-button", className: react.mergeStyles(buttonStyle, props.className), styles: buttonWithIconStyles, text: rejoinCall ? locale.strings.call.rejoinCallButtonLabel : locale.strings.call.startCallButtonLabel, onRenderIcon: () => React__default['default'].createElement(reactIcons.Video20Filled, { className: videoCameraIconStyle }) })));
15024
15159
  };
15025
15160
 
15026
15161
  // Copyright (c) Microsoft Corporation.
@@ -15250,7 +15385,7 @@ const ConfigurationPage = (props) => {
15250
15385
  callDescription),
15251
15386
  React__default['default'].createElement(LocalDeviceSettings, Object.assign({}, options, localDeviceSettingsHandlers, { cameraPermissionGranted: cameraPermissionGranted, microphonePermissionGranted: microphonePermissionGranted })))),
15252
15387
  React__default['default'].createElement(react.Stack, { styles: mobileView ? startCallButtonContainerStyleMobile : startCallButtonContainerStyleDesktop },
15253
- React__default['default'].createElement(StartCallButton, { className: mobileView ? startCallButtonStyleMobile : undefined, onClickHandler: startCallHandler, isDisabled: !microphonePermissionGranted }))))));
15388
+ React__default['default'].createElement(StartCallButton, { className: mobileView ? startCallButtonStyleMobile : undefined, onClick: startCallHandler, disabled: !microphonePermissionGranted }))))));
15254
15389
  };
15255
15390
 
15256
15391
  // Copyright (c) Microsoft Corporation.
@@ -15299,13 +15434,13 @@ const moreDetailsStyles = {
15299
15434
  */
15300
15435
  function NoticePage(props) {
15301
15436
  const adapter = useAdapter();
15302
- return (React__default['default'].createElement(react.Stack, { verticalFill: true, verticalAlign: "center", horizontalAlign: "center", "data-ui-id": props.dataUiId },
15437
+ return (React__default['default'].createElement(react.Stack, { verticalFill: true, verticalAlign: "center", horizontalAlign: "center", "data-ui-id": props.dataUiId, "aria-atomic": true },
15303
15438
  React__default['default'].createElement(react.Stack, { className: react.mergeStyles(containerStyle), tokens: containerItemGap },
15304
15439
  props.iconName && React__default['default'].createElement(CallCompositeIcon, { iconName: props.iconName }),
15305
- React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyles) }, props.title),
15306
- React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyles) }, props.moreDetails),
15440
+ React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyles), "aria-live": "assertive" }, props.title),
15441
+ React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyles), "aria-live": "assertive" }, props.moreDetails),
15307
15442
  React__default['default'].createElement(react.Stack, { styles: rejoinCallButtonContainerStyles },
15308
- React__default['default'].createElement(StartCallButton, { onClickHandler: () => adapter.joinCall(), isDisabled: false, rejoinCall: true })))));
15443
+ React__default['default'].createElement(StartCallButton, { onClick: () => adapter.joinCall(), disabled: false, rejoinCall: true, autoFocus: true })))));
15309
15444
  }
15310
15445
 
15311
15446
  // Copyright (c) Microsoft Corporation.
@@ -15346,10 +15481,10 @@ const LobbyTile = (props) => {
15346
15481
  const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;
15347
15482
  const palette = useTheme().palette;
15348
15483
  const handlers = useHandlers();
15349
- return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: props.overlayProps ? (React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(overlayContainerStyle) },
15484
+ return (React__default['default'].createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: props.overlayProps ? (React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(overlayContainerStyle), "aria-atomic": true },
15350
15485
  React__default['default'].createElement(react.Stack.Item, { className: react.mergeStyles(titleStyle(palette, isVideoReady)) }, props.overlayProps.overlayIcon),
15351
- React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle(palette, isVideoReady)), "aria-live": 'polite' }, props.overlayProps.title),
15352
- props.overlayProps.moreDetails && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle(palette, isVideoReady)) }, props.overlayProps.moreDetails)))) : undefined }, handlers)));
15486
+ React__default['default'].createElement(react.Text, { className: react.mergeStyles(titleStyle(palette, isVideoReady)), "aria-live": "assertive" }, props.overlayProps.title),
15487
+ props.overlayProps.moreDetails && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle(palette, isVideoReady)), "aria-live": "assertive" }, props.overlayProps.moreDetails)))) : undefined }, handlers)));
15353
15488
  };
15354
15489
 
15355
15490
  // Copyright (c) Microsoft Corporation.
@@ -16983,7 +17118,7 @@ const SidePaneHeader = (props) => {
16983
17118
  const callWithChatStrings = useCallWithChatCompositeStrings();
16984
17119
  return (React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", styles: sidePaneHeaderContainerStyles },
16985
17120
  React__default['default'].createElement(react.Stack.Item, { styles: sidePaneHeaderStyles }, props.headingText),
16986
- React__default['default'].createElement(react.CommandBarButton, { ariaLabel: callWithChatStrings.dismissSidePaneButton, styles: sidePaneCloseButtonStyles, iconProps: { iconName: 'cancel' }, onClick: props.onClose })));
17121
+ React__default['default'].createElement(react.CommandBarButton, { ariaLabel: callWithChatStrings.dismissSidePaneButtonLabel, styles: sidePaneCloseButtonStyles, iconProps: { iconName: 'cancel' }, onClick: props.onClose })));
16987
17122
  };
16988
17123
 
16989
17124
  // Copyright (c) Microsoft Corporation.