@azure/communication-react 1.14.1-alpha-202403270012 → 1.14.1-alpha-202403280012
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +69 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-Yty3fOoA.js → RichTextSendBoxWrapper-D3ER8Kz9.js} +5 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-Yty3fOoA.js.map → RichTextSendBoxWrapper-D3ER8Kz9.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-BEomNZbT.js → index-BI61bnOi.js} +732 -120
- package/dist/dist-cjs/communication-react/index-BI61bnOi.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +4 -1
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +5 -0
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +2 -0
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js +6 -2
- package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts +4 -0
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +2 -2
- package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageStatusIcon.js +1 -1
- package/dist/dist-esm/react-components/src/components/MessageStatusIcon.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/MessageThread.js +13 -12
- package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/RichTextRibbonButtons.d.ts +7 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/{RichTextRibbonButtons.js → Buttons/RichTextRibbonButtons.js} +16 -20
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/RichTextRibbonButtons.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTableButton.d.ts +7 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTableButton.js +56 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTableButton.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTablePane.d.ts +16 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTablePane.js +62 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTablePane.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextTableContextMenu.d.ts +8 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextTableContextMenu.js +57 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextTableContextMenu.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/insertTableAction.d.ts +9 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/insertTableAction.js +34 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/insertTableAction.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +23 -11
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +44 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +16 -6
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +2 -2
- package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js +5 -3
- package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.d.ts +25 -1
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +132 -2
- package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/utils/RichTextEditorStringsUtils.d.ts +15 -0
- package/dist/dist-esm/react-components/src/components/utils/RichTextEditorStringsUtils.js +39 -0
- package/dist/dist-esm/react-components/src/components/utils/RichTextEditorStringsUtils.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.d.ts +22 -0
- package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js +29 -0
- package/dist/dist-esm/react-components/src/components/utils/RichTextTableUtils.js.map +1 -0
- package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +12 -1
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +4 -0
- package/dist/dist-esm/react-components/src/theming/icons.js +10 -2
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +22 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +13 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +53 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +196 -57
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +2 -2
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +4 -5
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +6 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +22 -0
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +2 -1
- package/package.json +2 -1
- package/dist/dist-cjs/communication-react/index-BEomNZbT.js.map +0 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextRibbonButtons.d.ts +0 -12
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextRibbonButtons.js.map +0 -1
@@ -18,6 +18,9 @@ var react$1 = require('@griffel/react');
|
|
18
18
|
var roosterjsEditorPlugins = require('roosterjs-editor-plugins');
|
19
19
|
var roosterjsEditorCore = require('roosterjs-editor-core');
|
20
20
|
var roosterjsReact = require('roosterjs-react');
|
21
|
+
var roosterjsEditorDom = require('roosterjs-editor-dom');
|
22
|
+
var roosterjsEditorTypesCompatible = require('roosterjs-editor-types-compatible');
|
23
|
+
var roosterjsEditorApi = require('roosterjs-editor-api');
|
21
24
|
var reactChat = require('@fluentui-contrib/react-chat');
|
22
25
|
var uuid = require('uuid');
|
23
26
|
var parse = require('html-react-parser');
|
@@ -173,7 +176,7 @@ function getDefaultExportFromCjs (x) {
|
|
173
176
|
// Copyright (c) Microsoft Corporation.
|
174
177
|
// Licensed under the MIT License.
|
175
178
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
176
|
-
var telemetryVersion = '1.14.1-alpha-
|
179
|
+
var telemetryVersion = '1.14.1-alpha-202403280012';
|
177
180
|
|
178
181
|
|
179
182
|
var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
|
@@ -1841,7 +1844,9 @@ function convertSdkCallToDeclarativeCall(call) {
|
|
1841
1844
|
},
|
1842
1845
|
/* @conditional-compile-remove(hide-attendee-name) */
|
1843
1846
|
// TODO: Replace this once the SDK supports hide attendee name
|
1844
|
-
hideAttendeeNames: false
|
1847
|
+
hideAttendeeNames: false,
|
1848
|
+
/* @conditional-compile-remove(meeting-id) */
|
1849
|
+
info: _isACSCall(call) ? call.info : _isTeamsCall(call) ? call.info : undefined
|
1845
1850
|
};
|
1846
1851
|
}
|
1847
1852
|
/**
|
@@ -2024,6 +2029,8 @@ let CallContext$2 = class CallContext {
|
|
2024
2029
|
existingCall.captionsFeature.currentSpokenLanguage = call.captionsFeature.currentSpokenLanguage;
|
2025
2030
|
/* @conditional-compile-remove(close-captions) */
|
2026
2031
|
existingCall.captionsFeature.currentCaptionLanguage = call.captionsFeature.currentCaptionLanguage;
|
2032
|
+
/* @conditional-compile-remove(meeting-id) */
|
2033
|
+
existingCall.info = call.info;
|
2027
2034
|
}
|
2028
2035
|
else {
|
2029
2036
|
draft.calls[latestCallId] = call;
|
@@ -5624,7 +5631,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
|
|
5624
5631
|
wordBreak: 'break-word'
|
5625
5632
|
});
|
5626
5633
|
|
5627
|
-
var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",boldTooltip:"Bold",italicTooltip:"Italic",underlineTooltip:"Underline",bulletListTooltip:"Bulleted list",numberListTooltip:"Numbered list",increaseIndentTooltip:"Increase indent",decreaseIndentTooltip:"Decrease indent",richTextFormatButtonTooltip:"Format"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k};
|
5634
|
+
var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",boldTooltip:"Bold",italicTooltip:"Italic",underlineTooltip:"Underline",bulletListTooltip:"Bulleted list",numberListTooltip:"Numbered list",increaseIndentTooltip:"Increase indent",decreaseIndentTooltip:"Decrease indent",insertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",insertRowOrColumnMenu:"Insert",insertTableMenuTitle:"Insert {column} x {row} table",insertRowAboveMenu:"Insert above",insertRowBelowMenu:"Insert below",insertColumnLeftMenu:"Insert left",insertColumnRightMenu:"Insert right",deleteRowOrColumnMenu:"Delete",deleteColumnMenu:"Delete column",deleteRowMenu:"Delete row",deleteTableMenu:"Delete table"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k};
|
5628
5635
|
|
5629
5636
|
// Copyright (c) Microsoft Corporation.
|
5630
5637
|
// Licensed under the MIT License.
|
@@ -6820,7 +6827,15 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
6820
6827
|
/* @conditional-compile-remove(rich-text-editor) */
|
6821
6828
|
RichTextEditorButtonIcon: React.createElement(reactIcons.TextEditStyle20Regular, null),
|
6822
6829
|
/* @conditional-compile-remove(rich-text-editor) */
|
6823
|
-
RichTextEditorButtonIconFilled: React.createElement(reactIcons.TextEditStyle20Filled, null)
|
6830
|
+
RichTextEditorButtonIconFilled: React.createElement(reactIcons.TextEditStyle20Filled, null),
|
6831
|
+
/* @conditional-compile-remove(rich-text-editor) */
|
6832
|
+
RichTextInsertTableRegularIcon: React.createElement(reactIcons.Table20Regular, null),
|
6833
|
+
/* @conditional-compile-remove(rich-text-editor) */
|
6834
|
+
RichTextInsertTableFilledIcon: React.createElement(reactIcons.Table20Filled, null),
|
6835
|
+
/* @conditional-compile-remove(rich-text-editor) */
|
6836
|
+
RichTextTableInsertMenuIcon: React.createElement(reactIcons.TableAdd20Regular, null),
|
6837
|
+
/* @conditional-compile-remove(rich-text-editor) */
|
6838
|
+
RichTextTableDeleteMenuIcon: React.createElement(reactIcons.TableDismiss20Regular, null)
|
6824
6839
|
};
|
6825
6840
|
|
6826
6841
|
// Copyright (c) Microsoft Corporation.
|
@@ -9725,7 +9740,26 @@ const richTextEditorWrapperStyle = (theme, addTopOffset) => {
|
|
9725
9740
|
paddingInlineEnd: `0.75rem`,
|
9726
9741
|
lineHeight: '1.25rem',
|
9727
9742
|
maxWidth: '100%',
|
9728
|
-
color: theme.palette.neutralPrimary
|
9743
|
+
color: theme.palette.neutralPrimary,
|
9744
|
+
'& table': {
|
9745
|
+
background: 'transparent',
|
9746
|
+
borderCollapse: 'collapse',
|
9747
|
+
width: '100%',
|
9748
|
+
borderSpacing: '0',
|
9749
|
+
// don't shrink/expand cells during the input to the table
|
9750
|
+
tableLayout: 'fixed',
|
9751
|
+
'& tr': {
|
9752
|
+
background: 'transparent',
|
9753
|
+
border: `1px solid ${theme.palette.neutralLight}`,
|
9754
|
+
'& td': {
|
9755
|
+
background: 'transparent',
|
9756
|
+
border: `1px solid ${theme.palette.neutralLight}`,
|
9757
|
+
wordBreak: 'normal',
|
9758
|
+
padding: '0.125rem 0.25rem',
|
9759
|
+
verticalAlign: 'top'
|
9760
|
+
}
|
9761
|
+
}
|
9762
|
+
}
|
9729
9763
|
});
|
9730
9764
|
};
|
9731
9765
|
/**
|
@@ -9776,6 +9810,15 @@ const ribbonOverflowButtonRootStyles = (theme) => {
|
|
9776
9810
|
color: theme.palette.neutralPrimary
|
9777
9811
|
}
|
9778
9812
|
}
|
9813
|
+
},
|
9814
|
+
'.ribbon-table-button-regular-icon': {
|
9815
|
+
display: 'inline-block',
|
9816
|
+
margin: '-0.25rem 0.25rem 0 0.25rem',
|
9817
|
+
width: '1.25rem',
|
9818
|
+
height: '1.25rem'
|
9819
|
+
},
|
9820
|
+
'.ribbon-table-button-filled-icon': {
|
9821
|
+
display: 'none'
|
9779
9822
|
}
|
9780
9823
|
}
|
9781
9824
|
};
|
@@ -9811,13 +9854,67 @@ const ribbonButtonStyle = (theme) => {
|
|
9811
9854
|
rootExpandedHovered: ribbonButtonRootStyles(theme)
|
9812
9855
|
};
|
9813
9856
|
};
|
9857
|
+
const rootRibbonTableButtonStyle = (theme) => {
|
9858
|
+
// merge IStyles props
|
9859
|
+
return Object.assign({ minWidth: 'auto' }, ribbonTableButtonRootStyles(theme, false));
|
9860
|
+
};
|
9861
|
+
/**
|
9862
|
+
* @private
|
9863
|
+
*/
|
9864
|
+
const ribbonTableButtonStyle = (theme) => {
|
9865
|
+
return {
|
9866
|
+
icon: { height: 'auto' },
|
9867
|
+
menuIcon: { height: 'auto' },
|
9868
|
+
root: rootRibbonTableButtonStyle(theme),
|
9869
|
+
rootChecked: ribbonTableButtonRootStyles(theme, true),
|
9870
|
+
rootHovered: ribbonTableButtonRootStyles(theme, true),
|
9871
|
+
rootCheckedHovered: ribbonTableButtonRootStyles(theme, true),
|
9872
|
+
rootCheckedPressed: ribbonTableButtonRootStyles(theme, true),
|
9873
|
+
rootPressed: ribbonTableButtonRootStyles(theme, true),
|
9874
|
+
rootExpanded: ribbonTableButtonRootStyles(theme, true),
|
9875
|
+
rootExpandedHovered: ribbonTableButtonRootStyles(theme, true)
|
9876
|
+
};
|
9877
|
+
};
|
9878
|
+
const ribbonTableButtonRootStyles = (theme, isSelected) => {
|
9879
|
+
return {
|
9880
|
+
backgroundColor: 'transparent',
|
9881
|
+
selectors: {
|
9882
|
+
'.ribbon-table-button-regular-icon': {
|
9883
|
+
width: '1.25rem',
|
9884
|
+
height: '1.25rem',
|
9885
|
+
marginTop: '-0.25rem',
|
9886
|
+
color: theme.palette.neutralPrimary,
|
9887
|
+
display: isSelected ? 'none' : 'inline-block'
|
9888
|
+
},
|
9889
|
+
'.ribbon-table-button-filled-icon': {
|
9890
|
+
width: '1.25rem',
|
9891
|
+
height: '1.25rem',
|
9892
|
+
marginTop: '-0.25rem',
|
9893
|
+
color: theme.palette.themePrimary,
|
9894
|
+
display: isSelected ? 'inline-block' : 'none'
|
9895
|
+
}
|
9896
|
+
}
|
9897
|
+
};
|
9898
|
+
};
|
9814
9899
|
/**
|
9815
9900
|
* @private
|
9816
9901
|
*/
|
9817
9902
|
const ribbonDividerStyle = (theme) => {
|
9818
9903
|
return {
|
9819
9904
|
icon: { color: theme.palette.neutralQuaternaryAlt, margin: '0 -0.5rem', height: 'auto' },
|
9820
|
-
root: { margin: '0', padding: '0', minWidth: 'auto' }
|
9905
|
+
root: { margin: '0', padding: '0', minWidth: 'auto' },
|
9906
|
+
rootHovered: {
|
9907
|
+
backgroundColor: 'transparent',
|
9908
|
+
selectors: {
|
9909
|
+
// Icon's color doesn't work here because of the specificity
|
9910
|
+
'.ms-Button-icon': {
|
9911
|
+
color: theme.palette.neutralQuaternaryAlt
|
9912
|
+
},
|
9913
|
+
'.ms-Button-menuIcon': {
|
9914
|
+
color: theme.palette.neutralQuaternaryAlt
|
9915
|
+
}
|
9916
|
+
}
|
9917
|
+
}
|
9821
9918
|
};
|
9822
9919
|
};
|
9823
9920
|
/**
|
@@ -9844,18 +9941,241 @@ const sendBoxRichTextEditorStyle = (isExpanded) => {
|
|
9844
9941
|
maxHeight: '5rem'
|
9845
9942
|
};
|
9846
9943
|
};
|
9944
|
+
/**
|
9945
|
+
* @private
|
9946
|
+
*/
|
9947
|
+
const insertTableMenuCellButtonStyles = (theme) => {
|
9948
|
+
return {
|
9949
|
+
width: '1rem',
|
9950
|
+
height: '1rem',
|
9951
|
+
border: `solid 0.0625rem ${theme.palette.neutralTertiaryAlt}`,
|
9952
|
+
display: 'inline-block',
|
9953
|
+
cursor: 'pointer',
|
9954
|
+
background: 'transparent'
|
9955
|
+
};
|
9956
|
+
};
|
9957
|
+
/**
|
9958
|
+
* @private
|
9959
|
+
*/
|
9960
|
+
const insertTableMenuCellButtonSelectedStyles = (theme) => {
|
9961
|
+
return {
|
9962
|
+
background: theme.palette.themePrimary
|
9963
|
+
};
|
9964
|
+
};
|
9965
|
+
/**
|
9966
|
+
* @private
|
9967
|
+
*/
|
9968
|
+
const insertTableMenuTablePane = react.mergeStyles({
|
9969
|
+
padding: '0.5rem 0.625rem 0.75rem 0.625rem',
|
9970
|
+
boxSizing: 'content-box',
|
9971
|
+
minWidth: 'auto'
|
9972
|
+
});
|
9973
|
+
/**
|
9974
|
+
* @private
|
9975
|
+
*/
|
9976
|
+
const insertTableMenuFocusZone = (theme) => {
|
9977
|
+
return react.mergeStyles({
|
9978
|
+
lineHeight: '12px',
|
9979
|
+
width: '5rem',
|
9980
|
+
border: `solid 0.0625rem ${theme.palette.neutralTertiaryAlt}`
|
9981
|
+
});
|
9982
|
+
};
|
9983
|
+
/**
|
9984
|
+
* @private
|
9985
|
+
*/
|
9986
|
+
const insertTableMenuTitleStyles = react.mergeStyles({
|
9987
|
+
width: '100%',
|
9988
|
+
height: '1rem',
|
9989
|
+
fontSize: '0.75rem',
|
9990
|
+
marginBottom: '0.5rem'
|
9991
|
+
});
|
9992
|
+
|
9993
|
+
// Copyright (c) Microsoft Corporation.
|
9994
|
+
// Licensed under the MIT License.
|
9995
|
+
// This file uses RoosterJS React package implementation with updates to change table's size and remove styles
|
9996
|
+
/**
|
9997
|
+
* Insert table into editor at current selection
|
9998
|
+
* @param editor The editor instance
|
9999
|
+
* @param columns Number of columns in table
|
10000
|
+
* @param rows Number of rows in table
|
10001
|
+
*/
|
10002
|
+
const insertTable = (editor, columns, rows) => {
|
10003
|
+
const document = editor.getDocument();
|
10004
|
+
const table = document.createElement('table');
|
10005
|
+
for (let i = 0; i < rows; i++) {
|
10006
|
+
const tr = document.createElement('tr');
|
10007
|
+
table.appendChild(tr);
|
10008
|
+
for (let j = 0; j < columns; j++) {
|
10009
|
+
const td = document.createElement('td');
|
10010
|
+
tr.appendChild(td);
|
10011
|
+
td.appendChild(document.createElement('br'));
|
10012
|
+
}
|
10013
|
+
}
|
10014
|
+
editor.focus();
|
10015
|
+
editor.addUndoSnapshot(() => {
|
10016
|
+
const vTable = new roosterjsEditorDom.VTable(table);
|
10017
|
+
vTable.writeBack();
|
10018
|
+
editor.insertNode(table);
|
10019
|
+
editor.runAsync((editor) => editor.select(new roosterjsEditorDom.Position(table, roosterjsEditorTypesCompatible.CompatiblePositionType.Begin).normalize()));
|
10020
|
+
}, roosterjsEditorTypesCompatible.CompatibleChangeSource.Format, undefined /* canUndoByBackspace */, {
|
10021
|
+
formatApiName: 'insertTable'
|
10022
|
+
});
|
10023
|
+
};
|
10024
|
+
|
10025
|
+
// Copyright (c) Microsoft Corporation.
|
10026
|
+
// Licensed under the MIT License.
|
10027
|
+
/**
|
10028
|
+
* @private
|
10029
|
+
*
|
10030
|
+
* String to be replaces by actual values of row and column.
|
10031
|
+
*/
|
10032
|
+
const ColumnRowReplaceString = '{column} x {row}';
|
10033
|
+
/**
|
10034
|
+
* @private
|
10035
|
+
*
|
10036
|
+
* Function to create key pair for the selected table size.
|
10037
|
+
*/
|
10038
|
+
function createKey(row, column) {
|
10039
|
+
return `${row},${column}`;
|
10040
|
+
}
|
10041
|
+
/**
|
10042
|
+
* @private
|
10043
|
+
*
|
10044
|
+
* Function to parse key to the selected table size valules.
|
10045
|
+
*/
|
10046
|
+
function parseKey(key) {
|
10047
|
+
const [row, column] = key.split(',');
|
10048
|
+
return {
|
10049
|
+
row: parseInt(row),
|
10050
|
+
column: parseInt(column)
|
10051
|
+
};
|
10052
|
+
}
|
10053
|
+
|
10054
|
+
// Copyright (c) Microsoft Corporation.
|
10055
|
+
// Licensed under the MIT License.
|
10056
|
+
// This file uses RoosterJS React package implementation with updates to UI components and styles.
|
10057
|
+
const RowColumnInitialValue = 0;
|
10058
|
+
/**
|
10059
|
+
* @private
|
10060
|
+
* Component for the insert table pane
|
10061
|
+
*/
|
10062
|
+
const RichTextInsertTablePane = (props) => {
|
10063
|
+
const { item, onClick, theme, maxColumnsNumber, maxRowsNumber } = props;
|
10064
|
+
const [column, setColumn] = React.useState(RowColumnInitialValue);
|
10065
|
+
const [row, setRow] = React.useState(RowColumnInitialValue);
|
10066
|
+
const updateSize = React.useCallback((target) => {
|
10067
|
+
if (target !== undefined && target.dataset.column !== undefined && target.dataset.row !== undefined) {
|
10068
|
+
const column = parseInt(target.dataset.column);
|
10069
|
+
const row = parseInt(target.dataset.row);
|
10070
|
+
if (column >= RowColumnInitialValue &&
|
10071
|
+
column < maxColumnsNumber &&
|
10072
|
+
row >= RowColumnInitialValue &&
|
10073
|
+
row < maxRowsNumber) {
|
10074
|
+
setColumn(column);
|
10075
|
+
setRow(row);
|
10076
|
+
}
|
10077
|
+
}
|
10078
|
+
}, [maxColumnsNumber, maxRowsNumber]);
|
10079
|
+
const onMouseEnter = React.useCallback((e) => {
|
10080
|
+
updateSize(e.target);
|
10081
|
+
}, [updateSize]);
|
10082
|
+
const onClickButton = React.useCallback((e) => {
|
10083
|
+
onClick(e, Object.assign(Object.assign({}, item), { key: createKey(formatRowColumnText(row), formatRowColumnText(column)) }));
|
10084
|
+
}, [row, column, onClick, item]);
|
10085
|
+
const items = React.useMemo(() => {
|
10086
|
+
var _a;
|
10087
|
+
const items = [];
|
10088
|
+
for (let i = 0; i < maxRowsNumber; i++) {
|
10089
|
+
for (let j = 0; j < maxColumnsNumber; j++) {
|
10090
|
+
const key = `cell_${i}_${j}`;
|
10091
|
+
const isSelected = j <= column && i <= row;
|
10092
|
+
items.push(React.createElement("button", { className: react.mergeStyles(insertTableMenuCellButtonStyles(theme), isSelected ? insertTableMenuCellButtonSelectedStyles(theme) : undefined), onClick: onClickButton, key: key, id: key, "data-column": j, "data-row": i, "data-is-focusable": true, onMouseEnter: onMouseEnter, "aria-label": formatText((_a = item.text) !== null && _a !== void 0 ? _a : '', i, j) }));
|
10093
|
+
}
|
10094
|
+
}
|
10095
|
+
return items;
|
10096
|
+
}, [maxRowsNumber, maxColumnsNumber, column, row, theme, onClickButton, onMouseEnter, item.text]);
|
10097
|
+
const text = React.useMemo(() => {
|
10098
|
+
var _a;
|
10099
|
+
return formatText((_a = item.text) !== null && _a !== void 0 ? _a : '', formatRowColumnText(row), formatRowColumnText(column));
|
10100
|
+
}, [column, item.text, row]);
|
10101
|
+
return (React.createElement("div", null,
|
10102
|
+
React.createElement("div", { className: insertTableMenuTitleStyles }, text),
|
10103
|
+
React.createElement(react.FocusZone, { defaultTabbableElement: `cell_${RowColumnInitialValue}_${RowColumnInitialValue}`, direction: react.FocusZoneDirection.bidirectional, onActiveElementChanged: updateSize, className: insertTableMenuFocusZone(theme) }, items)));
|
10104
|
+
};
|
10105
|
+
const formatText = (text, row, column) => {
|
10106
|
+
return text.replace(`${ColumnRowReplaceString}`, `${column.toString()} x ${row.toString()}`);
|
10107
|
+
};
|
10108
|
+
const formatRowColumnText = (value) => {
|
10109
|
+
return value + 1;
|
10110
|
+
};
|
10111
|
+
|
10112
|
+
// Copyright (c) Microsoft Corporation.
|
10113
|
+
// Licensed under the MIT License.
|
10114
|
+
// This file uses RoosterJS React package implementation with updates to UI components and styles.
|
10115
|
+
/**
|
10116
|
+
* "Insert table" button for the RoosterJS ribbon
|
10117
|
+
*/
|
10118
|
+
const insertTableButton = (theme, maxRowsNumber, maxColumnsNumber) => {
|
10119
|
+
return {
|
10120
|
+
key: 'buttonNameInsertTable',
|
10121
|
+
unlocalizedText: 'Insert table',
|
10122
|
+
// Icon will be set in onRenderIcon callback
|
10123
|
+
iconName: '',
|
10124
|
+
onClick: (editor, key) => {
|
10125
|
+
const { row, column } = parseKey(key);
|
10126
|
+
insertTable(editor, column, row);
|
10127
|
+
},
|
10128
|
+
dropDownMenu: {
|
10129
|
+
items: {
|
10130
|
+
// the key of the item is also used as a key for localization
|
10131
|
+
insertTablePane: `Insert ${ColumnRowReplaceString} table`
|
10132
|
+
},
|
10133
|
+
itemRender: (item, onClick) => {
|
10134
|
+
return (React.createElement(RichTextInsertTablePane, { item: item, onClick: onClick, theme: theme, maxColumnsNumber: maxColumnsNumber, maxRowsNumber: maxRowsNumber }));
|
10135
|
+
},
|
10136
|
+
commandBarSubMenuProperties: {
|
10137
|
+
className: insertTableMenuTablePane
|
10138
|
+
}
|
10139
|
+
},
|
10140
|
+
commandBarProperties: {
|
10141
|
+
// hide the chevron icon
|
10142
|
+
menuIconProps: {
|
10143
|
+
hidden: true
|
10144
|
+
},
|
10145
|
+
onRenderIcon: (item) => {
|
10146
|
+
console.log('onRenderIcon', item);
|
10147
|
+
return React.createElement(TableIcon, null);
|
10148
|
+
},
|
10149
|
+
buttonStyles: ribbonTableButtonStyle(theme),
|
10150
|
+
canCheck: false
|
10151
|
+
}
|
10152
|
+
};
|
10153
|
+
};
|
10154
|
+
const TableIcon = () => {
|
10155
|
+
return (
|
10156
|
+
// update the visibility of the Table Icon with css classes that are triggered by command bar's state
|
10157
|
+
React.createElement(react.Stack, null,
|
10158
|
+
React.createElement(react.Icon, { iconName: "RichTextInsertTableFilledIcon", className: 'ribbon-table-button-filled-icon' }),
|
10159
|
+
React.createElement(react.Icon, { iconName: "RichTextInsertTableRegularIcon", className: 'ribbon-table-button-regular-icon' })));
|
10160
|
+
};
|
9847
10161
|
|
9848
10162
|
// Copyright (c) Microsoft Corporation.
|
9849
10163
|
// Licensed under the MIT License.
|
9850
|
-
const
|
10164
|
+
const MaxRowsNumber = 5;
|
10165
|
+
const MaxColumnsNumber = 5;
|
10166
|
+
const dividerRibbonButton = (theme, key) => {
|
9851
10167
|
return {
|
9852
|
-
key:
|
10168
|
+
key: key,
|
9853
10169
|
iconName: 'RichTextDividerIcon',
|
9854
10170
|
unlocalizedText: '',
|
9855
10171
|
onClick: () => { },
|
9856
10172
|
isDisabled: () => true,
|
9857
10173
|
commandBarProperties: {
|
9858
|
-
|
10174
|
+
// show the item correctly for the overflow menu
|
10175
|
+
itemType: react.ContextualMenuItemType.Divider,
|
10176
|
+
buttonStyles: ribbonDividerStyle(theme),
|
10177
|
+
// this is still needed to remove checkmark icon space even though it is a divider
|
10178
|
+
canCheck: false
|
9859
10179
|
}
|
9860
10180
|
};
|
9861
10181
|
};
|
@@ -9902,11 +10222,13 @@ const ribbonButtons = (theme) => {
|
|
9902
10222
|
boldButton(theme),
|
9903
10223
|
italicButton(theme),
|
9904
10224
|
underlineButton(theme),
|
9905
|
-
dividerRibbonButton(theme),
|
10225
|
+
dividerRibbonButton(theme, 'RichTextRibbonTextFormatDivider'),
|
9906
10226
|
bulletListButton(theme),
|
9907
10227
|
numberListButton(theme),
|
9908
10228
|
indentIncreaseButton(theme),
|
9909
|
-
indentDecreaseButton(theme)
|
10229
|
+
indentDecreaseButton(theme),
|
10230
|
+
dividerRibbonButton(theme, 'RichTextRibbonTableDivider'),
|
10231
|
+
insertTableButton(theme, MaxRowsNumber, MaxColumnsNumber)
|
9910
10232
|
].forEach((item) => {
|
9911
10233
|
if (item !== undefined) {
|
9912
10234
|
buttons.push(item);
|
@@ -9914,8 +10236,13 @@ const ribbonButtons = (theme) => {
|
|
9914
10236
|
});
|
9915
10237
|
return buttons;
|
9916
10238
|
};
|
10239
|
+
|
10240
|
+
// Copyright (c) Microsoft Corporation.
|
10241
|
+
// Licensed under the MIT License.
|
9917
10242
|
/**
|
9918
10243
|
* @private
|
10244
|
+
*
|
10245
|
+
* Strings for the ribbon buttons where key should match `key` prop if any or the name of the item.
|
9919
10246
|
*/
|
9920
10247
|
const ribbonButtonsStrings = (strings) => {
|
9921
10248
|
return {
|
@@ -9925,9 +10252,82 @@ const ribbonButtonsStrings = (strings) => {
|
|
9925
10252
|
buttonNameBulletedList: strings.bulletListTooltip,
|
9926
10253
|
buttonNameNumberedList: strings.numberListTooltip,
|
9927
10254
|
buttonNameIncreaseIndent: strings.increaseIndentTooltip,
|
9928
|
-
buttonNameDecreaseIndent: strings.decreaseIndentTooltip
|
10255
|
+
buttonNameDecreaseIndent: strings.decreaseIndentTooltip,
|
10256
|
+
buttonNameInsertTable: strings.insertTableTooltip,
|
10257
|
+
insertTablePane: strings.insertTableMenuTitle
|
9929
10258
|
};
|
9930
10259
|
};
|
10260
|
+
/**
|
10261
|
+
* @private
|
10262
|
+
*
|
10263
|
+
* Strings for the table context menu where key should match `key` prop if any or the name of the item.
|
10264
|
+
*/
|
10265
|
+
const tableContextMenuStrings = (strings) => {
|
10266
|
+
return {
|
10267
|
+
menuNameTableInsert: strings.insertRowOrColumnMenu,
|
10268
|
+
menuNameTableInsertAbove: strings.insertRowAboveMenu,
|
10269
|
+
menuNameTableInsertBelow: strings.insertRowBelowMenu,
|
10270
|
+
menuNameTableInsertLeft: strings.insertColumnLeftMenu,
|
10271
|
+
menuNameTableInsertRight: strings.insertColumnRightMenu,
|
10272
|
+
menuNameTableDelete: strings.deleteRowOrColumnMenu,
|
10273
|
+
menuNameTableDeleteColumn: strings.deleteColumnMenu,
|
10274
|
+
menuNameTableDeleteRow: strings.deleteRowMenu,
|
10275
|
+
menuNameTableDeleteTable: strings.deleteTableMenu
|
10276
|
+
};
|
10277
|
+
};
|
10278
|
+
|
10279
|
+
// Copyright (c) Microsoft Corporation.
|
10280
|
+
// Licensed under the MIT License.
|
10281
|
+
const onClick = (key, editor) => {
|
10282
|
+
editor.focus();
|
10283
|
+
const operation = TableEditOperationMap[key];
|
10284
|
+
if (typeof operation === 'number') {
|
10285
|
+
roosterjsEditorApi.editTable(editor, operation);
|
10286
|
+
}
|
10287
|
+
};
|
10288
|
+
const TableEditOperationMap = {
|
10289
|
+
menuNameTableInsertAbove: roosterjsEditorTypesCompatible.CompatibleTableOperation.InsertAbove,
|
10290
|
+
menuNameTableInsertBelow: roosterjsEditorTypesCompatible.CompatibleTableOperation.InsertBelow,
|
10291
|
+
menuNameTableInsertLeft: roosterjsEditorTypesCompatible.CompatibleTableOperation.InsertLeft,
|
10292
|
+
menuNameTableInsertRight: roosterjsEditorTypesCompatible.CompatibleTableOperation.InsertRight,
|
10293
|
+
menuNameTableDeleteTable: roosterjsEditorTypesCompatible.CompatibleTableOperation.DeleteTable,
|
10294
|
+
menuNameTableDeleteColumn: roosterjsEditorTypesCompatible.CompatibleTableOperation.DeleteColumn,
|
10295
|
+
menuNameTableDeleteRow: roosterjsEditorTypesCompatible.CompatibleTableOperation.DeleteRow
|
10296
|
+
};
|
10297
|
+
const tableEditInsertMenuItem = {
|
10298
|
+
key: 'menuNameTableInsert',
|
10299
|
+
unlocalizedText: 'Insert123',
|
10300
|
+
subItems: {
|
10301
|
+
menuNameTableInsertAbove: 'Insert above121312 ',
|
10302
|
+
menuNameTableInsertBelow: 'Insert below',
|
10303
|
+
menuNameTableInsertLeft: 'Insert left123 ',
|
10304
|
+
menuNameTableInsertRight: 'Insert right'
|
10305
|
+
},
|
10306
|
+
onClick
|
10307
|
+
};
|
10308
|
+
const tableEditDeleteMenuItem = {
|
10309
|
+
key: 'menuNameTableDelete',
|
10310
|
+
unlocalizedText: 'Delete',
|
10311
|
+
subItems: {
|
10312
|
+
menuNameTableDeleteColumn: 'Delete column',
|
10313
|
+
menuNameTableDeleteRow: 'Delete row',
|
10314
|
+
menuNameTableDeleteTable: 'Delete table'
|
10315
|
+
},
|
10316
|
+
onClick
|
10317
|
+
};
|
10318
|
+
const tableActions = [tableEditInsertMenuItem, tableEditDeleteMenuItem];
|
10319
|
+
/**
|
10320
|
+
* Create a new instance of ContextMenuProvider to support table editing functionalities in context menu
|
10321
|
+
* @returns A new ContextMenuProvider
|
10322
|
+
*/
|
10323
|
+
const createTableEditMenuProvider = (strings) => {
|
10324
|
+
return roosterjsReact.createContextMenuProvider('tableEdit', tableActions, tableContextMenuStrings(strings !== null && strings !== void 0 ? strings : {}), (editor, node) => !!getEditingTable(editor, node));
|
10325
|
+
};
|
10326
|
+
const getEditingTable = (editor, node) => {
|
10327
|
+
const td = editor.getElementAtCursor('TD,TH', node);
|
10328
|
+
const table = td && editor.getElementAtCursor('table', td);
|
10329
|
+
return (table === null || table === void 0 ? void 0 : table.isContentEditable) ? { table, td } : null;
|
10330
|
+
};
|
9931
10331
|
|
9932
10332
|
// Copyright (c) Microsoft Corporation.
|
9933
10333
|
// Licensed under the MIT License.
|
@@ -9959,13 +10359,12 @@ const RichTextEditor = React.forwardRef((props, ref) => {
|
|
9959
10359
|
}, []);
|
9960
10360
|
const editorCreator = React.useCallback((div, options) => {
|
9961
10361
|
editor.current = new roosterjsEditorCore.Editor(div, options);
|
9962
|
-
// Remove default values for background color and color
|
9963
|
-
// setBackgroundColor and setTextColor can't be used here as they cause the editor to be focused
|
9964
|
-
// color will be set in richTextEditorWrapperStyle instead of inline styles
|
9965
|
-
div.style.backgroundColor = '';
|
9966
|
-
div.style.color = '';
|
9967
10362
|
return editor.current;
|
9968
|
-
},
|
10363
|
+
},
|
10364
|
+
// trigger force editor reset when strings are changed to update context menu strings
|
10365
|
+
// see RosterJS documentation for 'editorCreator' for more details
|
10366
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
10367
|
+
[strings]);
|
9969
10368
|
const placeholderPlugin = React.useMemo(() => {
|
9970
10369
|
return new roosterjsEditorPlugins.Watermark('');
|
9971
10370
|
}, []);
|
@@ -9975,12 +10374,15 @@ const RichTextEditor = React.forwardRef((props, ref) => {
|
|
9975
10374
|
}
|
9976
10375
|
}, [placeholderPlugin, placeholderText]);
|
9977
10376
|
const plugins = React.useMemo(() => {
|
10377
|
+
// contextPlugin and tableEditMenuProvider allow to show insert/delete menu for the table
|
10378
|
+
const contextPlugin = roosterjsReact.createContextMenuPlugin();
|
10379
|
+
const tableEditMenuProvider = createTableEditMenuProvider(strings);
|
9978
10380
|
const contentEdit = new roosterjsEditorPlugins.ContentEdit();
|
9979
10381
|
const updateContentPlugin = roosterjsReact.createUpdateContentPlugin(roosterjsReact.UpdateMode.OnContentChangedEvent | roosterjsReact.UpdateMode.OnUserInput, (content) => {
|
9980
10382
|
onChange && onChange(content);
|
9981
10383
|
});
|
9982
|
-
return [contentEdit, placeholderPlugin, updateContentPlugin, ribbonPlugin];
|
9983
|
-
}, [onChange, placeholderPlugin, ribbonPlugin]);
|
10384
|
+
return [contentEdit, placeholderPlugin, updateContentPlugin, ribbonPlugin, contextPlugin, tableEditMenuProvider];
|
10385
|
+
}, [onChange, placeholderPlugin, ribbonPlugin, strings]);
|
9984
10386
|
const ribbon = React.useMemo(() => {
|
9985
10387
|
const buttons = ribbonButtons(theme);
|
9986
10388
|
return (React.createElement(roosterjsReact.Ribbon, { styles: ribbonStyle, buttons: buttons, plugin: ribbonPlugin, overflowButtonProps: {
|
@@ -9992,10 +10394,18 @@ const RichTextEditor = React.forwardRef((props, ref) => {
|
|
9992
10394
|
}
|
9993
10395
|
}, strings: ribbonButtonsStrings(strings), "data-testid": 'rich-text-editor-ribbon' }));
|
9994
10396
|
}, [strings, ribbonPlugin, theme]);
|
10397
|
+
const defaultFormat = React.useMemo(() => {
|
10398
|
+
// without setting any styles, text input is not handled properly for tables (when insert or paste one in the editor)
|
10399
|
+
// because of https://github.com/microsoft/roosterjs/blob/14dbb947e3ae94580109cbd05e48ceb05327c4dc/packages/roosterjs-editor-core/lib/corePlugins/TypeInContainerPlugin.ts#L75
|
10400
|
+
// this issue is fixed for content model package
|
10401
|
+
return {
|
10402
|
+
backgroundColor: 'transparent'
|
10403
|
+
};
|
10404
|
+
}, []);
|
9995
10405
|
return (React.createElement("div", { "data-testid": 'rich-text-editor-wrapper' },
|
9996
10406
|
showRichTextEditorFormatting && ribbon,
|
9997
10407
|
React.createElement("div", { className: richTextEditorWrapperStyle(theme, !showRichTextEditorFormatting) },
|
9998
|
-
React.createElement(roosterjsReact.Rooster, { initialContent: initialContent, inDarkMode: isDarkThemed(theme), plugins: plugins, className: richTextEditorStyle(props.styles), editorCreator: editorCreator,
|
10408
|
+
React.createElement(roosterjsReact.Rooster, { defaultFormat: defaultFormat, initialContent: initialContent, inDarkMode: isDarkThemed(theme), plugins: plugins, className: richTextEditorStyle(props.styles), editorCreator: editorCreator,
|
9999
10409
|
// TODO: confirm the color during inline images implementation
|
10000
10410
|
imageSelectionBorderColor: 'blue',
|
10001
10411
|
// doNotAdjustEditorColor is used to fix the default background color for Rooster component
|
@@ -10281,12 +10691,20 @@ const RichTextSendBox = (props) => {
|
|
10281
10691
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
10282
10692
|
const onRenderFileUploads = React.useCallback(() => {
|
10283
10693
|
return (React.createElement(react.Stack, { className: attachmentUploadCardsStyles },
|
10284
|
-
React.createElement(
|
10285
|
-
|
10286
|
-
|
10287
|
-
|
10288
|
-
|
10289
|
-
|
10694
|
+
React.createElement(FluentV9ThemeProvider, { v8Theme: theme },
|
10695
|
+
React.createElement(_AttachmentUploadCards, { activeFileUploads: activeFileUploads, onCancelFileUpload: onCancelFileUpload, strings: {
|
10696
|
+
removeAttachment: strings.removeAttachment,
|
10697
|
+
uploading: strings.uploading,
|
10698
|
+
uploadCompleted: strings.uploadCompleted
|
10699
|
+
} }))));
|
10700
|
+
}, [
|
10701
|
+
activeFileUploads,
|
10702
|
+
onCancelFileUpload,
|
10703
|
+
strings.removeAttachment,
|
10704
|
+
strings.uploadCompleted,
|
10705
|
+
strings.uploading,
|
10706
|
+
theme
|
10707
|
+
]);
|
10290
10708
|
const sendButton = React.useMemo(() => {
|
10291
10709
|
return (React.createElement(InputBoxButton, { onRenderIcon: onRenderSendIcon, onClick: (e) => {
|
10292
10710
|
sendMessageOnClick();
|
@@ -10872,7 +11290,7 @@ const LiveMessage = (props) => (React.createElement(AnnouncerContext.Consumer, n
|
|
10872
11290
|
const MessageStatusIcon = (props) => {
|
10873
11291
|
const { shouldAnnounce, iconName, iconClassName, ariaLabel } = props;
|
10874
11292
|
return (React.createElement(React.Fragment, null,
|
10875
|
-
ariaLabel && React.createElement(LiveMessage, { message: ariaLabel, ariaLive: "polite" }),
|
11293
|
+
ariaLabel && shouldAnnounce && React.createElement(LiveMessage, { message: ariaLabel, ariaLive: "polite" }),
|
10876
11294
|
React.createElement("div", {
|
10877
11295
|
// make icon accessible
|
10878
11296
|
tabIndex: 0 },
|
@@ -12948,22 +13366,23 @@ const MessageThreadWrapper = (props) => {
|
|
12948
13366
|
existsNewChatMessage && !disableJumpToNewMessageButton && (React.createElement("div", { className: react.mergeStyles(newMessageButtonContainerStyle, styles === null || styles === void 0 ? void 0 : styles.newMessageButtonContainer) }, onRenderJumpToNewMessageButton ? (onRenderJumpToNewMessageButton({ text: strings.newMessagesIndicator, onClick: scrollToBottom })) : (React.createElement(DefaultJumpToNewMessageButton, { text: strings.newMessagesIndicator, onClick: scrollToBottom })))),
|
12949
13367
|
React.createElement(LiveAnnouncer, null,
|
12950
13368
|
React.createElement(FluentV9ThemeProvider, { v8Theme: theme },
|
12951
|
-
latestDeletedMessageId && (React.createElement(Announcer$1, { key: latestDeletedMessageId, announcementString: deletedMessageAriaLabel, ariaLive: 'assertive' })),
|
12952
13369
|
React.createElement(reactChat.Chat
|
12953
13370
|
// styles?.chatContainer used in className and style prop as style prop can't handle CSS selectors
|
12954
13371
|
, {
|
12955
13372
|
// styles?.chatContainer used in className and style prop as style prop can't handle CSS selectors
|
12956
|
-
className: reactComponents.mergeClasses(classes.root, react.mergeStyles(styles === null || styles === void 0 ? void 0 : styles.chatContainer)), ref: chatScrollDivRef, style: Object.assign({}, createStyleFromV8Style(styles === null || styles === void 0 ? void 0 : styles.chatContainer)) },
|
12957
|
-
|
12958
|
-
|
12959
|
-
|
12960
|
-
|
12961
|
-
|
12962
|
-
|
12963
|
-
|
12964
|
-
|
12965
|
-
|
12966
|
-
|
13373
|
+
className: reactComponents.mergeClasses(classes.root, react.mergeStyles(styles === null || styles === void 0 ? void 0 : styles.chatContainer)), ref: chatScrollDivRef, style: Object.assign({}, createStyleFromV8Style(styles === null || styles === void 0 ? void 0 : styles.chatContainer)) },
|
13374
|
+
latestDeletedMessageId && (React.createElement(Announcer$1, { key: latestDeletedMessageId, announcementString: deletedMessageAriaLabel, ariaLive: 'polite' })),
|
13375
|
+
messagesToDisplay.map((message) => {
|
13376
|
+
return (React.createElement(MemoChatMessageComponentWrapper, Object.assign({}, message, { userId: userId, key: message.key, styles: styles, shouldOverlapAvatarAndMessage: isNarrow, strings: strings, onRenderAvatar: onRenderAvatar, onRenderMessage: onRenderMessage, onRenderMessageStatus: onRenderMessageStatus, defaultStatusRenderer: defaultStatusRenderer, onActionButtonClick: onActionButtonClickMemo, readCount: readCountForHoveredIndicator, participantCount: participantCount,
|
13377
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
13378
|
+
fileDownloadHandler: props.fileDownloadHandler, inlineImageOptions: inlineImageOptions,
|
13379
|
+
/* @conditional-compile-remove(date-time-customization) */
|
13380
|
+
onDisplayDateTimeString: onDisplayDateTimeString,
|
13381
|
+
/* @conditional-compile-remove(mention) */
|
13382
|
+
mentionOptions: mentionOptions,
|
13383
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
13384
|
+
onRenderFileDownloads: onRenderFileDownloads })));
|
13385
|
+
}))))));
|
12967
13386
|
};
|
12968
13387
|
const MemoChatMessageComponentWrapper = React.memo((obj) => {
|
12969
13388
|
return React.createElement(ChatMessageComponentWrapper, Object.assign({}, obj));
|
@@ -16779,7 +17198,7 @@ const OverflowGallery = (props) => {
|
|
16779
17198
|
*/
|
16780
17199
|
const DefaultLayout = (props) => {
|
16781
17200
|
const { remoteParticipants = [], localParticipant, dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth, parentHeight, pinnedParticipantUserIds = [], overflowGalleryPosition = 'horizontalBottom',
|
16782
|
-
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds } = props;
|
17201
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds = [] } = props;
|
16783
17202
|
const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
|
16784
17203
|
const isShort = parentHeight ? isShortHeight(parentHeight) : false;
|
16785
17204
|
// This is for tracking the number of children in the first page of overflow gallery.
|
@@ -16821,7 +17240,7 @@ const DefaultLayout = (props) => {
|
|
16821
17240
|
: (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
|
16822
17241
|
});
|
16823
17242
|
if (localVideoComponent) {
|
16824
|
-
if (screenShareComponent) {
|
17243
|
+
if (screenShareComponent || /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds.length > 0) {
|
16825
17244
|
overflowGalleryTiles = [localVideoComponent].concat(overflowGalleryTiles);
|
16826
17245
|
}
|
16827
17246
|
else {
|
@@ -17855,7 +18274,8 @@ const LARGE_GALLERY_PARTICIPANT_CAP = 48;
|
|
17855
18274
|
* @private
|
17856
18275
|
*/
|
17857
18276
|
const LargeGalleryLayout = (props) => {
|
17858
|
-
const { remoteParticipants = [], localParticipant, dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth, parentHeight, pinnedParticipantUserIds = [], overflowGalleryPosition = 'horizontalBottom'
|
18277
|
+
const { remoteParticipants = [], localParticipant, dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth, parentHeight, pinnedParticipantUserIds = [], overflowGalleryPosition = 'horizontalBottom',
|
18278
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds = [] } = props;
|
17859
18279
|
const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
|
17860
18280
|
const isShort = parentHeight ? isShortHeight(parentHeight) : false;
|
17861
18281
|
const maxStreamsTrampoline = () => {
|
@@ -17877,7 +18297,8 @@ const LargeGalleryLayout = (props) => {
|
|
17877
18297
|
? childrenPerPage.current - ((pinnedParticipantUserIds.length + 1) % childrenPerPage.current)
|
17878
18298
|
: childrenPerPage.current,
|
17879
18299
|
pinnedParticipantUserIds,
|
17880
|
-
/* @conditional-compile-remove(large-gallery) */ layout: 'largeGallery'
|
18300
|
+
/* @conditional-compile-remove(large-gallery) */ layout: 'largeGallery',
|
18301
|
+
/* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds
|
17881
18302
|
});
|
17882
18303
|
let activeVideoStreams = 0;
|
17883
18304
|
let gridTiles = gridParticipants.map((p) => {
|
@@ -17901,7 +18322,7 @@ const LargeGalleryLayout = (props) => {
|
|
17901
18322
|
: (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
|
17902
18323
|
});
|
17903
18324
|
if (localVideoComponent) {
|
17904
|
-
if (screenShareComponent) {
|
18325
|
+
if (screenShareComponent || /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds.length > 0) {
|
17905
18326
|
overflowGalleryTiles = [localVideoComponent].concat(overflowGalleryTiles);
|
17906
18327
|
}
|
17907
18328
|
else {
|
@@ -20157,8 +20578,8 @@ const DialpadButton = (props) => {
|
|
20157
20578
|
const DialpadContainer = (props) => {
|
20158
20579
|
var _a, _b;
|
20159
20580
|
const theme = react.useTheme();
|
20160
|
-
const { onSendDtmfTone, onClickDialpadButton, textFieldValue, onChange, showDeleteButton = true, longPressTrigger = 'mouseAndTouch', disableDtmfPlayback, dialpadMode = 'dialer' } = props;
|
20161
|
-
const dtmfToneAudioContext = React.useRef(new AudioContext());
|
20581
|
+
const { onSendDtmfTone, onClickDialpadButton, textFieldValue, onChange, showDeleteButton = true, longPressTrigger = 'mouseAndTouch', disableDtmfPlayback, dialpadMode = 'dialer', dtmfAudioContext } = props;
|
20582
|
+
const dtmfToneAudioContext = React.useRef(dtmfAudioContext ? dtmfAudioContext : new AudioContext());
|
20162
20583
|
const [plainTextValue, setPlainTextValue] = React.useState(textFieldValue !== null && textFieldValue !== void 0 ? textFieldValue : '');
|
20163
20584
|
const plainTextValuePreviousRenderValue = React.useRef(plainTextValue);
|
20164
20585
|
React.useEffect(() => {
|
@@ -24767,7 +25188,7 @@ const CallCompositeIcon = (props) => (React.createElement(react.FontIcon, Object
|
|
24767
25188
|
*/
|
24768
25189
|
const CallWithChatCompositeIcon = (props) => (React.createElement(react.FontIcon, Object.assign({}, props)));
|
24769
25190
|
|
24770
|
-
var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",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",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",surveyTextboxDefaultText:"Other, please specify",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},SurveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight"};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
|
25191
|
+
var call$k={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",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",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",surveyTextboxDefaultText:"Other, please specify",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},SurveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",invalidMeetingIdentifier:"Invalid meeting ID or passcode"};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$k={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
|
24771
25192
|
|
24772
25193
|
// Copyright (c) Microsoft Corporation.
|
24773
25194
|
// Licensed under the MIT License.
|
@@ -25444,6 +25865,28 @@ const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, display
|
|
25444
25865
|
const adapter = yield createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient);
|
25445
25866
|
return adapter;
|
25446
25867
|
});
|
25868
|
+
/**
|
25869
|
+
* This inner function to create ChatAdapterPromise in case when threadID is not avaialble.
|
25870
|
+
* ThreadId is a promise to allow for lazy initialization of the adapter.
|
25871
|
+
* @internal
|
25872
|
+
*/
|
25873
|
+
const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2) => __awaiter$n(void 0, [endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2], void 0, function* (endpoint, userId, displayName, credential, threadId, telemetryImplementationHint = 'Chat') {
|
25874
|
+
if (!_isValidIdentifier(userId)) {
|
25875
|
+
throw new Error('Provided userId is invalid. Please provide valid identifier object.');
|
25876
|
+
}
|
25877
|
+
const chatClient = _createStatefulChatClientInner({
|
25878
|
+
userId,
|
25879
|
+
displayName,
|
25880
|
+
endpoint,
|
25881
|
+
credential
|
25882
|
+
}, undefined, telemetryImplementationHint);
|
25883
|
+
return threadId.then((threadId) => __awaiter$n(void 0, void 0, void 0, function* () {
|
25884
|
+
const chatThreadClient = yield chatClient.getChatThreadClient(threadId);
|
25885
|
+
yield chatClient.startRealtimeNotifications();
|
25886
|
+
const adapter = yield createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient);
|
25887
|
+
return adapter;
|
25888
|
+
}));
|
25889
|
+
});
|
25447
25890
|
/**
|
25448
25891
|
* A custom React hook to simplify the creation of {@link ChatAdapter}.
|
25449
25892
|
*
|
@@ -26253,7 +26696,7 @@ const useSelector$2 = (selector, selectorProps) => {
|
|
26253
26696
|
// Copyright (c) Microsoft Corporation.
|
26254
26697
|
// Licensed under the MIT License.
|
26255
26698
|
/* @conditional-compile-remove(rich-text-editor) */
|
26256
|
-
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
26699
|
+
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D3ER8Kz9.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
|
26257
26700
|
/**
|
26258
26701
|
* @private
|
26259
26702
|
*/
|
@@ -26706,6 +27149,8 @@ const ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;
|
|
26706
27149
|
const REMOTE_PSTN_USER_HUNG_UP = 560000;
|
26707
27150
|
const REMOVED_FROM_CALL_SUB_CODES = [5000, 5300, REMOTE_PSTN_USER_HUNG_UP];
|
26708
27151
|
const CALL_REJECTED_CODE$1 = 603;
|
27152
|
+
/* @conditional-compile-remove(meeting-id) */
|
27153
|
+
const INVALID_MEETING_IDENTIFIER = 5751;
|
26709
27154
|
/** @private */
|
26710
27155
|
const ROOM_NOT_FOUND_SUB_CODE = 5732;
|
26711
27156
|
/** @private */
|
@@ -26797,7 +27242,7 @@ const getCallEndReason = (call) => {
|
|
26797
27242
|
* @private
|
26798
27243
|
*/
|
26799
27244
|
const getEndedCallPageProps = (locale, endedCall) => {
|
26800
|
-
var _a, _b, _c, _d, _e;
|
27245
|
+
var _a, _b, _c, _d, _e, _f;
|
26801
27246
|
let title = locale.strings.call.leftCallTitle;
|
26802
27247
|
let moreDetails = locale.strings.call.leftCallMoreDetails;
|
26803
27248
|
let disableStartCallButton = false;
|
@@ -26893,6 +27338,16 @@ const getEndedCallPageProps = (locale, endedCall) => {
|
|
26893
27338
|
}
|
26894
27339
|
break;
|
26895
27340
|
}
|
27341
|
+
/* @conditional-compile-remove(meeting-id) */
|
27342
|
+
switch ((_f = endedCall === null || endedCall === void 0 ? void 0 : endedCall.callEndReason) === null || _f === void 0 ? void 0 : _f.subCode) {
|
27343
|
+
case INVALID_MEETING_IDENTIFIER:
|
27344
|
+
if (locale.strings.call.callRejectedTitle) {
|
27345
|
+
title = locale.strings.call.callRejectedTitle;
|
27346
|
+
moreDetails = locale.strings.call.invalidMeetingIdentifier;
|
27347
|
+
disableStartCallButton = true;
|
27348
|
+
}
|
27349
|
+
break;
|
27350
|
+
}
|
26896
27351
|
return { title, moreDetails, disableStartCallButton, iconName };
|
26897
27352
|
};
|
26898
27353
|
/**
|
@@ -32249,7 +32704,7 @@ const DtmfDialpadPageContent = (props) => {
|
|
32249
32704
|
React.createElement(react.Text, { style: { margin: 'auto' } }, calleeName && calleeName !== 'Unnamed participant' ? calleeName === null || calleeName === void 0 ? void 0 : calleeName.toString() : ''),
|
32250
32705
|
React.createElement(Dialpad, { onSendDtmfTone: (tone) => __awaiter$c(void 0, void 0, void 0, function* () {
|
32251
32706
|
yield adapter.sendDtmfTone(tone);
|
32252
|
-
}), longPressTrigger: props.mobileView ? 'touch' : 'mouseAndTouch', dialpadMode: 'dtmf' }))));
|
32707
|
+
}), longPressTrigger: props.mobileView ? 'touch' : 'mouseAndTouch', dialpadMode: 'dtmf', dtmfAudioContext: props.compositeAudioContext }))));
|
32253
32708
|
};
|
32254
32709
|
const DtmfDialerContentTimer = () => {
|
32255
32710
|
const [time, setTime] = React.useState(0);
|
@@ -32274,7 +32729,7 @@ const DtmfDialerContentTimer = () => {
|
|
32274
32729
|
*/
|
32275
32730
|
const DtmfDialpadPage = (props) => {
|
32276
32731
|
const adapter = useAdapter();
|
32277
|
-
return React.createElement(DtmfDialpadPageContent, { adapter: adapter, mobileView: props.mobileView });
|
32732
|
+
return React.createElement(DtmfDialpadPageContent, Object.assign({ adapter: adapter }, props, { mobileView: props.mobileView }));
|
32278
32733
|
};
|
32279
32734
|
|
32280
32735
|
// Copyright (c) Microsoft Corporation.
|
@@ -32320,7 +32775,7 @@ const buttonTextStyles = { label: { fontSize: '0.875rem' } };
|
|
32320
32775
|
*/
|
32321
32776
|
const CallPage = (props) => {
|
32322
32777
|
var _a;
|
32323
|
-
const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants, setPinnedParticipants } = props;
|
32778
|
+
const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants, setPinnedParticipants, compositeAudioContext } = props;
|
32324
32779
|
// To use useProps to get these states, we need to create another file wrapping Call,
|
32325
32780
|
// It seems unnecessary in this case, so we get the updated states using this approach.
|
32326
32781
|
const { callStatus } = useSelector$1(callStatusSelector);
|
@@ -32347,7 +32802,7 @@ const CallPage = (props) => {
|
|
32347
32802
|
if (dtmfDialerPresent) {
|
32348
32803
|
return (React.createElement(DtmfDialpadPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError,
|
32349
32804
|
/* @conditional-compile-remove(capabilities) */
|
32350
|
-
capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent }));
|
32805
|
+
capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, compositeAudioContext: compositeAudioContext }));
|
32351
32806
|
}
|
32352
32807
|
else {
|
32353
32808
|
return (React.createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions, drawerMenuHostId: drawerMenuHostId, localVideoTileOptions: options === null || options === void 0 ? void 0 : options.localVideoTile, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, userSetGalleryLayout: galleryLayout, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants,
|
@@ -34676,6 +35131,7 @@ const MainScreen = (props) => {
|
|
34676
35131
|
adapter.off('callEnded', closeSidePane);
|
34677
35132
|
};
|
34678
35133
|
}, [adapter]);
|
35134
|
+
const compositeAudioContext = React.useRef(new AudioContext());
|
34679
35135
|
/* @conditional-compile-remove(capabilities) */
|
34680
35136
|
const capabilitiesChangedInfoAndRole = useSelector$1(capabilitiesChangedInfoAndRoleSelector);
|
34681
35137
|
/* @conditional-compile-remove(capabilities) */
|
@@ -34765,7 +35221,7 @@ const MainScreen = (props) => {
|
|
34765
35221
|
case 'call':
|
34766
35222
|
pageElement = (React.createElement(CallPage, { callInvitationURL: callInvitationUrl, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: props.onCloseChatPane, latestErrors: latestErrors, onDismissError: onDismissError, galleryLayout: userSetGalleryLayout, onUserSetGalleryLayoutChange: setUserSetGalleryLayout, onSetUserSetOverflowGalleryPosition: setUserSetOverflowGalleryPosition, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition,
|
34767
35223
|
/* @conditional-compile-remove(capabilities) */
|
34768
|
-
capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }));
|
35224
|
+
capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants, compositeAudioContext: compositeAudioContext.current }));
|
34769
35225
|
break;
|
34770
35226
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
34771
35227
|
case 'hold':
|
@@ -35261,7 +35717,9 @@ class AzureCommunicationCallAdapter {
|
|
35261
35717
|
? locatorOrTargetCalless
|
35262
35718
|
: undefined;
|
35263
35719
|
this.deviceManager = deviceManager;
|
35264
|
-
const isTeamsMeeting = this.locator
|
35720
|
+
const isTeamsMeeting = this.locator
|
35721
|
+
? 'meetingLink' in this.locator || /* @conditional-compile-remove(meeting-id) */ 'meetingId' in this.locator
|
35722
|
+
: false;
|
35265
35723
|
const isRoomsCall = this.locator ? 'roomId' in this.locator : false;
|
35266
35724
|
this.onResolveVideoBackgroundEffectsDependency = (_a = options === null || options === void 0 ? void 0 : options.videoBackgroundOptions) === null || _a === void 0 ? void 0 : _a.onResolveDependency;
|
35267
35725
|
this.context = new CallContext(callClient.getState(), isTeamsMeeting, isRoomsCall, options, this.targetCallees);
|
@@ -35492,18 +35950,34 @@ class AzureCommunicationCallAdapter {
|
|
35492
35950
|
}
|
35493
35951
|
_joinCall(audioOptions, videoOptions) {
|
35494
35952
|
const isTeamsMeeting = this.locator ? 'meetingLink' in this.locator : false;
|
35953
|
+
/* @conditional-compile-remove(meeting-id) */
|
35954
|
+
const isTeamsMeetingId = this.locator ? 'meetingId' in this.locator : false;
|
35495
35955
|
const isRoomsCall = this.locator ? 'roomId' in this.locator : false;
|
35496
35956
|
/* @conditional-compile-remove(teams-identity-support) */
|
35497
35957
|
if (_isTeamsCallAgent(this.callAgent)) {
|
35498
|
-
if (
|
35499
|
-
|
35958
|
+
if (isTeamsMeeting) {
|
35959
|
+
return this.callAgent.join(this.locator, {
|
35960
|
+
audioOptions,
|
35961
|
+
videoOptions
|
35962
|
+
});
|
35500
35963
|
}
|
35964
|
+
/* @conditional-compile-remove(meeting-id) */
|
35965
|
+
if (isTeamsMeetingId) {
|
35966
|
+
return this.callAgent.join(this.locator, {
|
35967
|
+
audioOptions,
|
35968
|
+
videoOptions
|
35969
|
+
});
|
35970
|
+
}
|
35971
|
+
throw new Error('Locator not supported by TeamsCallAgent');
|
35972
|
+
}
|
35973
|
+
if (isTeamsMeeting) {
|
35501
35974
|
return this.callAgent.join(this.locator, {
|
35502
35975
|
audioOptions,
|
35503
35976
|
videoOptions
|
35504
35977
|
});
|
35505
35978
|
}
|
35506
|
-
|
35979
|
+
/* @conditional-compile-remove(meeting-id) */
|
35980
|
+
if (isTeamsMeetingId) {
|
35507
35981
|
return this.callAgent.join(this.locator, {
|
35508
35982
|
audioOptions,
|
35509
35983
|
videoOptions
|
@@ -37200,12 +37674,11 @@ const isOnHoldTrampoline = (page) => {
|
|
37200
37674
|
/**
|
37201
37675
|
* @private
|
37202
37676
|
*/
|
37203
|
-
function callWithChatAdapterStateFromBackingStates(callAdapter
|
37677
|
+
function callWithChatAdapterStateFromBackingStates(callAdapter) {
|
37204
37678
|
const callAdapterState = callAdapter.getState();
|
37205
|
-
const chatAdapterState = chatAdapter.getState();
|
37206
37679
|
return {
|
37207
37680
|
call: callAdapterState.call,
|
37208
|
-
chat:
|
37681
|
+
chat: undefined,
|
37209
37682
|
userId: callAdapterState.userId,
|
37210
37683
|
page: callAdapterState.page,
|
37211
37684
|
displayName: callAdapterState.displayName,
|
@@ -37213,9 +37686,9 @@ function callWithChatAdapterStateFromBackingStates(callAdapter, chatAdapter) {
|
|
37213
37686
|
isLocalPreviewMicrophoneEnabled: callAdapterState.isLocalPreviewMicrophoneEnabled,
|
37214
37687
|
isTeamsCall: callAdapterState.isTeamsCall,
|
37215
37688
|
latestCallErrors: callAdapterState.latestErrors,
|
37216
|
-
latestChatErrors:
|
37689
|
+
latestChatErrors: {},
|
37217
37690
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37218
|
-
fileUploads:
|
37691
|
+
fileUploads: {},
|
37219
37692
|
/* @conditional-compile-remove(PSTN-calls) */
|
37220
37693
|
alternateCallerId: callAdapterState.alternateCallerId,
|
37221
37694
|
/* @conditional-compile-remove(unsupported-browser) */
|
@@ -37315,44 +37788,61 @@ class CallWithChatContext {
|
|
37315
37788
|
* Created for easy use with the {@link CallWithChatComposite}.
|
37316
37789
|
*/
|
37317
37790
|
class AzureCommunicationCallWithChatAdapter {
|
37318
|
-
constructor(callAdapter,
|
37791
|
+
constructor(callAdapter, chatAdapterPromise) {
|
37319
37792
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37320
37793
|
this.registerActiveFileUploads = (files) => {
|
37321
|
-
|
37794
|
+
var _a, _b;
|
37795
|
+
return (_b = (_a = this.chatAdapter) === null || _a === void 0 ? void 0 : _a.registerActiveFileUploads(files)) !== null && _b !== void 0 ? _b : [];
|
37322
37796
|
};
|
37323
37797
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37324
37798
|
this.registerCompletedFileUploads = (metadata) => {
|
37325
|
-
|
37799
|
+
var _a, _b;
|
37800
|
+
return (_b = (_a = this.chatAdapter) === null || _a === void 0 ? void 0 : _a.registerCompletedFileUploads(metadata)) !== null && _b !== void 0 ? _b : [];
|
37326
37801
|
};
|
37327
37802
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37328
37803
|
this.clearFileUploads = () => {
|
37329
|
-
this.
|
37804
|
+
this.chatAdapterPromise.then((adapter) => {
|
37805
|
+
adapter.clearFileUploads();
|
37806
|
+
});
|
37330
37807
|
};
|
37331
37808
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37332
37809
|
this.cancelFileUpload = (id) => {
|
37333
|
-
this.
|
37810
|
+
this.chatAdapterPromise.then((adapter) => {
|
37811
|
+
adapter.cancelFileUpload(id);
|
37812
|
+
});
|
37334
37813
|
};
|
37335
37814
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37336
37815
|
this.updateFileUploadProgress = (id, progress) => {
|
37337
|
-
this.
|
37816
|
+
this.chatAdapterPromise.then((adapter) => {
|
37817
|
+
adapter.updateFileUploadProgress(id, progress);
|
37818
|
+
});
|
37338
37819
|
};
|
37339
37820
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37340
37821
|
this.updateFileUploadErrorMessage = (id, errorMessage) => {
|
37341
|
-
this.
|
37822
|
+
this.chatAdapterPromise.then((adapter) => {
|
37823
|
+
adapter.updateFileUploadErrorMessage(id, errorMessage);
|
37824
|
+
});
|
37342
37825
|
};
|
37343
37826
|
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37344
37827
|
this.updateFileUploadMetadata = (id, metadata) => {
|
37345
|
-
this.
|
37828
|
+
this.chatAdapterPromise.then((adapter) => {
|
37829
|
+
adapter.updateFileUploadMetadata(id, metadata);
|
37830
|
+
});
|
37346
37831
|
};
|
37347
37832
|
this.bindPublicMethods();
|
37348
37833
|
this.callAdapter = callAdapter;
|
37349
|
-
this.
|
37350
|
-
this.context = new CallWithChatContext(callWithChatAdapterStateFromBackingStates(callAdapter, chatAdapter));
|
37834
|
+
this.context = new CallWithChatContext(callWithChatAdapterStateFromBackingStates(callAdapter));
|
37351
37835
|
const onChatStateChange = (newChatAdapterState) => {
|
37352
37836
|
this.context.updateClientStateWithChatState(newChatAdapterState);
|
37353
37837
|
};
|
37354
|
-
this.chatAdapter.onStateChange(onChatStateChange);
|
37355
37838
|
this.onChatStateChange = onChatStateChange;
|
37839
|
+
this.chatAdapterPromise = chatAdapterPromise;
|
37840
|
+
this.chatAdapterPromise.then((chatAdapter) => {
|
37841
|
+
chatAdapter.onStateChange(this.onChatStateChange);
|
37842
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
|
37843
|
+
this.chatAdapter = chatAdapter;
|
37844
|
+
this.context.updateClientStateWithChatState(chatAdapter.getState());
|
37845
|
+
});
|
37356
37846
|
const onCallStateChange = (newCallAdapterState) => {
|
37357
37847
|
this.context.updateClientStateWithCallState(newCallAdapterState);
|
37358
37848
|
};
|
@@ -37480,10 +37970,16 @@ class AzureCommunicationCallWithChatAdapter {
|
|
37480
37970
|
}
|
37481
37971
|
/** Dispose of the current CallWithChatAdapter. */
|
37482
37972
|
dispose() {
|
37483
|
-
this
|
37484
|
-
|
37485
|
-
|
37486
|
-
|
37973
|
+
return __awaiter$2(this, void 0, void 0, function* () {
|
37974
|
+
this.chatAdapterPromise.then((adapter) => {
|
37975
|
+
adapter.offStateChange(this.onChatStateChange);
|
37976
|
+
});
|
37977
|
+
this.callAdapter.offStateChange(this.onCallStateChange);
|
37978
|
+
yield this.chatAdapterPromise.then((adapter) => {
|
37979
|
+
adapter.dispose();
|
37980
|
+
});
|
37981
|
+
this.callAdapter.dispose();
|
37982
|
+
});
|
37487
37983
|
}
|
37488
37984
|
/** Remove a participant from the Call only. */
|
37489
37985
|
removeParticipant(userId) {
|
@@ -37621,53 +38117,71 @@ class AzureCommunicationCallWithChatAdapter {
|
|
37621
38117
|
/** Fetch initial Call and Chat data such as chat messages. */
|
37622
38118
|
fetchInitialData() {
|
37623
38119
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37624
|
-
yield this.
|
38120
|
+
return yield this.chatAdapterPromise.then((adapter) => {
|
38121
|
+
return adapter.fetchInitialData();
|
38122
|
+
});
|
37625
38123
|
});
|
37626
38124
|
}
|
37627
38125
|
/** Send a chat message. */
|
37628
38126
|
sendMessage(content) {
|
37629
38127
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37630
|
-
yield this.
|
38128
|
+
return yield this.chatAdapterPromise.then((adapter) => {
|
38129
|
+
return adapter.sendMessage(content);
|
38130
|
+
});
|
37631
38131
|
});
|
37632
38132
|
}
|
37633
38133
|
/** Send a chat read receipt. */
|
37634
38134
|
sendReadReceipt(chatMessageId) {
|
37635
38135
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37636
|
-
yield this.
|
38136
|
+
return yield this.chatAdapterPromise.then((adapter) => {
|
38137
|
+
return adapter.sendReadReceipt(chatMessageId);
|
38138
|
+
});
|
37637
38139
|
});
|
37638
38140
|
}
|
37639
38141
|
/** Send an isTyping indicator. */
|
37640
38142
|
sendTypingIndicator() {
|
37641
38143
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37642
|
-
yield this.
|
38144
|
+
return yield this.chatAdapterPromise.then((adapter) => {
|
38145
|
+
return adapter.sendTypingIndicator();
|
38146
|
+
});
|
37643
38147
|
});
|
37644
38148
|
}
|
37645
38149
|
/** Load previous Chat messages. */
|
37646
38150
|
loadPreviousChatMessages(messagesToLoad) {
|
37647
38151
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37648
|
-
return yield this.
|
38152
|
+
return yield this.chatAdapterPromise.then((adapter) => {
|
38153
|
+
return adapter.loadPreviousChatMessages(messagesToLoad);
|
38154
|
+
});
|
37649
38155
|
});
|
37650
38156
|
}
|
37651
38157
|
/** Update an existing message. */
|
37652
38158
|
updateMessage(messageId, content, metadata, options) {
|
37653
38159
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37654
|
-
return
|
37655
|
-
|
38160
|
+
return this.chatAdapterPromise.then((adapter) => {
|
38161
|
+
return adapter.updateMessage(messageId, content, metadata,
|
38162
|
+
/* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ options);
|
38163
|
+
});
|
37656
38164
|
});
|
37657
38165
|
}
|
37658
38166
|
/** Delete an existing message. */
|
37659
38167
|
deleteMessage(messageId) {
|
37660
38168
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37661
|
-
return yield this.
|
38169
|
+
return yield this.chatAdapterPromise.then((adapter) => {
|
38170
|
+
return adapter.deleteMessage(messageId);
|
38171
|
+
});
|
37662
38172
|
});
|
37663
38173
|
}
|
37664
38174
|
downloadResourceToCache(resourceDetails) {
|
37665
38175
|
return __awaiter$2(this, void 0, void 0, function* () {
|
37666
|
-
this.
|
38176
|
+
this.chatAdapterPromise.then((adapter) => {
|
38177
|
+
adapter.downloadResourceToCache(resourceDetails);
|
38178
|
+
});
|
37667
38179
|
});
|
37668
38180
|
}
|
37669
38181
|
removeResourceFromCache(resourceDetails) {
|
37670
|
-
this.
|
38182
|
+
this.chatAdapterPromise.then((adapter) => {
|
38183
|
+
adapter.removeResourceFromCache(resourceDetails);
|
38184
|
+
});
|
37671
38185
|
}
|
37672
38186
|
/* @conditional-compile-remove(PSTN-calls) */
|
37673
38187
|
holdCall() {
|
@@ -37815,31 +38329,47 @@ class AzureCommunicationCallWithChatAdapter {
|
|
37815
38329
|
this.callAdapter.on('isSpokenLanguageChanged', listener);
|
37816
38330
|
break;
|
37817
38331
|
case 'messageReceived':
|
37818
|
-
this.
|
38332
|
+
this.chatAdapterPromise.then((adapter) => {
|
38333
|
+
adapter.on('messageReceived', listener);
|
38334
|
+
});
|
37819
38335
|
break;
|
37820
38336
|
case 'messageEdited':
|
37821
|
-
this.
|
38337
|
+
this.chatAdapterPromise.then((adapter) => {
|
38338
|
+
adapter.on('messageEdited', listener);
|
38339
|
+
});
|
37822
38340
|
break;
|
37823
38341
|
case 'messageDeleted':
|
37824
|
-
this.
|
38342
|
+
this.chatAdapterPromise.then((adapter) => {
|
38343
|
+
adapter.on('messageDeleted', listener);
|
38344
|
+
});
|
37825
38345
|
break;
|
37826
38346
|
case 'messageSent':
|
37827
|
-
this.
|
38347
|
+
this.chatAdapterPromise.then((adapter) => {
|
38348
|
+
adapter.on('messageSent', listener);
|
38349
|
+
});
|
37828
38350
|
break;
|
37829
38351
|
case 'messageRead':
|
37830
|
-
this.
|
38352
|
+
this.chatAdapterPromise.then((adapter) => {
|
38353
|
+
adapter.on('messageRead', listener);
|
38354
|
+
});
|
37831
38355
|
break;
|
37832
38356
|
case 'chatParticipantsAdded':
|
37833
|
-
this.
|
38357
|
+
this.chatAdapterPromise.then((adapter) => {
|
38358
|
+
adapter.on('participantsAdded', listener);
|
38359
|
+
});
|
37834
38360
|
break;
|
37835
38361
|
case 'chatParticipantsRemoved':
|
37836
|
-
this.
|
38362
|
+
this.chatAdapterPromise.then((adapter) => {
|
38363
|
+
adapter.on('participantsRemoved', listener);
|
38364
|
+
});
|
37837
38365
|
break;
|
37838
38366
|
case 'callError':
|
37839
38367
|
this.callAdapter.on('error', listener);
|
37840
38368
|
break;
|
37841
38369
|
case 'chatError':
|
37842
|
-
this.
|
38370
|
+
this.chatAdapterPromise.then((adapter) => {
|
38371
|
+
adapter.on('error', listener);
|
38372
|
+
});
|
37843
38373
|
break;
|
37844
38374
|
default:
|
37845
38375
|
throw `Unknown AzureCommunicationCallWithChatAdapter Event: ${event}`;
|
@@ -37895,37 +38425,113 @@ class AzureCommunicationCallWithChatAdapter {
|
|
37895
38425
|
this.callAdapter.off('isSpokenLanguageChanged', listener);
|
37896
38426
|
break;
|
37897
38427
|
case 'messageReceived':
|
37898
|
-
this.
|
38428
|
+
this.chatAdapterPromise.then((adapter) => {
|
38429
|
+
adapter.off('messageReceived', listener);
|
38430
|
+
});
|
37899
38431
|
break;
|
37900
38432
|
case 'messageEdited':
|
37901
|
-
this.
|
38433
|
+
this.chatAdapterPromise.then((adapter) => {
|
38434
|
+
adapter.off('messageEdited', listener);
|
38435
|
+
});
|
37902
38436
|
break;
|
37903
38437
|
case 'messageDeleted':
|
37904
|
-
this.
|
38438
|
+
this.chatAdapterPromise.then((adapter) => {
|
38439
|
+
adapter.off('messageDeleted', listener);
|
38440
|
+
});
|
37905
38441
|
break;
|
37906
38442
|
case 'messageSent':
|
37907
|
-
this.
|
38443
|
+
this.chatAdapterPromise.then((adapter) => {
|
38444
|
+
adapter.off('messageSent', listener);
|
38445
|
+
});
|
37908
38446
|
break;
|
37909
38447
|
case 'messageRead':
|
37910
|
-
this.
|
38448
|
+
this.chatAdapterPromise.then((adapter) => {
|
38449
|
+
adapter.off('messageRead', listener);
|
38450
|
+
});
|
37911
38451
|
break;
|
37912
38452
|
case 'chatParticipantsAdded':
|
37913
|
-
this.
|
38453
|
+
this.chatAdapterPromise.then((adapter) => {
|
38454
|
+
adapter.off('participantsAdded', listener);
|
38455
|
+
});
|
37914
38456
|
break;
|
37915
38457
|
case 'chatParticipantsRemoved':
|
37916
|
-
this.
|
38458
|
+
this.chatAdapterPromise.then((adapter) => {
|
38459
|
+
adapter.off('participantsRemoved', listener);
|
38460
|
+
});
|
37917
38461
|
break;
|
37918
38462
|
case 'callError':
|
37919
38463
|
this.callAdapter.off('error', listener);
|
37920
38464
|
break;
|
37921
38465
|
case 'chatError':
|
37922
|
-
this.
|
38466
|
+
this.chatAdapterPromise.then((adapter) => {
|
38467
|
+
adapter.off('error', listener);
|
38468
|
+
});
|
37923
38469
|
break;
|
37924
38470
|
default:
|
37925
38471
|
throw `Unknown AzureCommunicationCallWithChatAdapter Event: ${event}`;
|
37926
38472
|
}
|
37927
38473
|
}
|
37928
38474
|
}
|
38475
|
+
/**
|
38476
|
+
* Arguments for use in {@link createAzureCommunicationCallWithChatAdapter} to join a Group Call with an associated Chat thread.
|
38477
|
+
* @public
|
38478
|
+
*/
|
38479
|
+
class CallAndChatProvider {
|
38480
|
+
constructor(locator) {
|
38481
|
+
this.locator = locator;
|
38482
|
+
}
|
38483
|
+
getChatThread() {
|
38484
|
+
return __awaiter$2(this, void 0, void 0, function* () {
|
38485
|
+
return this.locator.chatThreadId;
|
38486
|
+
});
|
38487
|
+
}
|
38488
|
+
}
|
38489
|
+
/**
|
38490
|
+
* Arguments for use in {@link createAzureCommunicationCallWithChatAdapter} to join a Teams meeting with an associated Chat thread.
|
38491
|
+
*
|
38492
|
+
* @public
|
38493
|
+
*/
|
38494
|
+
class TeamsMeetingLinkProvider {
|
38495
|
+
constructor(locator) {
|
38496
|
+
this.locator = locator;
|
38497
|
+
}
|
38498
|
+
getChatThread() {
|
38499
|
+
return __awaiter$2(this, void 0, void 0, function* () {
|
38500
|
+
return getChatThreadFromTeamsLink(this.locator.meetingLink);
|
38501
|
+
});
|
38502
|
+
}
|
38503
|
+
}
|
38504
|
+
/** @conditional-compile-remove(meeting-id) */
|
38505
|
+
/**
|
38506
|
+
* Arguments for use in {@link createAzureCommunicationCallWithChatAdapter} to join a Teams meeting using meeting id.
|
38507
|
+
*
|
38508
|
+
* @public
|
38509
|
+
*/
|
38510
|
+
class TeamsMeetingIdProvider {
|
38511
|
+
constructor(locator, callAdapter) {
|
38512
|
+
this.locator = locator;
|
38513
|
+
this.callAdapter = callAdapter;
|
38514
|
+
}
|
38515
|
+
/**
|
38516
|
+
* Wait call to be connected to get thread ID.
|
38517
|
+
* @returns the chat thread ID for the given meeting ID.
|
38518
|
+
*/
|
38519
|
+
getChatThread() {
|
38520
|
+
return __awaiter$2(this, void 0, void 0, function* () {
|
38521
|
+
return new Promise((resolve) => {
|
38522
|
+
const stateChangeListener = (state) => {
|
38523
|
+
var _a, _b, _c;
|
38524
|
+
if (((_a = state.call) === null || _a === void 0 ? void 0 : _a.state) === 'Connected' && ((_b = state.call.info) === null || _b === void 0 ? void 0 : _b.threadId)) {
|
38525
|
+
resolve((_c = state.call.info) === null || _c === void 0 ? void 0 : _c.threadId);
|
38526
|
+
}
|
38527
|
+
};
|
38528
|
+
this.callAdapter.then((adapter) => {
|
38529
|
+
adapter.onStateChange(stateChangeListener);
|
38530
|
+
});
|
38531
|
+
});
|
38532
|
+
});
|
38533
|
+
}
|
38534
|
+
}
|
37929
38535
|
/**
|
37930
38536
|
* Create a CallWithChatAdapter backed by Azure Communication services
|
37931
38537
|
* to plug into the {@link CallWithChatComposite}.
|
@@ -37934,8 +38540,8 @@ class AzureCommunicationCallWithChatAdapter {
|
|
37934
38540
|
*/
|
37935
38541
|
const createAzureCommunicationCallWithChatAdapter = (_a) => __awaiter$2(void 0, [_a], void 0, function* ({ userId, displayName, credential, endpoint, locator,
|
37936
38542
|
/* @conditional-compile-remove(PSTN-calls) */ alternateCallerId, callAdapterOptions }) {
|
37937
|
-
const callAdapterLocator =
|
37938
|
-
const
|
38543
|
+
const callAdapterLocator = isTeamsMeetingLocator(locator) ? locator : locator.callLocator;
|
38544
|
+
const callAdapter = _createAzureCommunicationCallAdapterInner({
|
37939
38545
|
userId,
|
37940
38546
|
displayName,
|
37941
38547
|
credential,
|
@@ -37944,12 +38550,9 @@ const createAzureCommunicationCallWithChatAdapter = (_a) => __awaiter$2(void 0,
|
|
37944
38550
|
options: callAdapterOptions,
|
37945
38551
|
telemetryImplementationHint: 'CallWithChat'
|
37946
38552
|
});
|
37947
|
-
const
|
37948
|
-
|
37949
|
-
|
37950
|
-
const createChatAdapterPromise = _createAzureCommunicationChatAdapterInner(endpoint, userId, displayName, credential, threadId, 'CallWithChat');
|
37951
|
-
const [callAdapter, chatAdapter] = yield Promise.all([createCallAdapterPromise, createChatAdapterPromise]);
|
37952
|
-
return new AzureCommunicationCallWithChatAdapter(callAdapter, chatAdapter);
|
38553
|
+
const chatThreadAdapter = _createChatThreadAdapterInner(locator, callAdapter);
|
38554
|
+
const chatAdapter = _createLazyAzureCommunicationChatAdapterInner(endpoint, userId, displayName, credential, chatThreadAdapter.getChatThread(), 'CallWithChat');
|
38555
|
+
return new AzureCommunicationCallWithChatAdapter(yield callAdapter, chatAdapter);
|
37953
38556
|
});
|
37954
38557
|
/**
|
37955
38558
|
* A custom React hook to simplify the creation of {@link CallWithChatAdapter}.
|
@@ -38077,13 +38680,22 @@ beforeDispose) => {
|
|
38077
38680
|
* @public
|
38078
38681
|
*/
|
38079
38682
|
const createAzureCommunicationCallWithChatAdapterFromClients = (_b) => __awaiter$2(void 0, [_b], void 0, function* ({ callClient, callAgent, callLocator, chatClient, chatThreadClient, callAdapterOptions }) {
|
38080
|
-
const
|
38081
|
-
const
|
38082
|
-
|
38083
|
-
return new AzureCommunicationCallWithChatAdapter(callAdapter, chatAdapter);
|
38683
|
+
const callAdapter = yield createAzureCommunicationCallAdapterFromClient(callClient, callAgent, callLocator, callAdapterOptions);
|
38684
|
+
const chatAdapterPromise = createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient);
|
38685
|
+
return new AzureCommunicationCallWithChatAdapter(callAdapter, chatAdapterPromise);
|
38084
38686
|
});
|
38085
|
-
const
|
38086
|
-
return 'meetingLink' in locator;
|
38687
|
+
const isTeamsMeetingLocator = (locator) => {
|
38688
|
+
return 'meetingLink' in locator || 'meetingId' in locator;
|
38689
|
+
};
|
38690
|
+
const _createChatThreadAdapterInner = (locator, adapter) => {
|
38691
|
+
if ('meetingLink' in locator) {
|
38692
|
+
return new TeamsMeetingLinkProvider(locator);
|
38693
|
+
}
|
38694
|
+
/** @conditional-compile-remove(meeting-id) */
|
38695
|
+
if ('meetingId' in locator) {
|
38696
|
+
return new TeamsMeetingIdProvider(locator, adapter);
|
38697
|
+
}
|
38698
|
+
return new CallAndChatProvider(locator);
|
38087
38699
|
};
|
38088
38700
|
|
38089
38701
|
var call$j={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",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",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",surveyTextboxDefaultText:"Other, please specify",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},SurveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight"};var chat$j={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$j={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number"};var en_GB = {call:call$j,chat:chat$j,callWithChat:callWithChat$j};
|
@@ -38639,4 +39251,4 @@ exports.useTeamsCall = useTeamsCall;
|
|
38639
39251
|
exports.useTeamsCallAdapter = useTeamsCallAdapter;
|
38640
39252
|
exports.useTeamsCallAgent = useTeamsCallAgent;
|
38641
39253
|
exports.useTheme = useTheme;
|
38642
|
-
//# sourceMappingURL=index-
|
39254
|
+
//# sourceMappingURL=index-BI61bnOi.js.map
|