@azure/communication-react 1.18.0-alpha-202406080014 → 1.18.0-alpha-202406120015
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 +43 -17
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BDU0B4Mm.js → ChatMessageComponentAsRichTextEditBox-DseIP_bT.js} +2 -2
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BDU0B4Mm.js.map → ChatMessageComponentAsRichTextEditBox-DseIP_bT.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BNfBMq7A.js → RichTextSendBoxWrapper-C_4OMmY6.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BNfBMq7A.js.map → RichTextSendBoxWrapper-C_4OMmY6.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-BdQf83xQ.js → index-Dlqkspdp.js} +145 -50
- package/dist/dist-cjs/communication-react/index-Dlqkspdp.js.map +1 -0
- package/dist/dist-cjs/communication-react/index.js +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/chat-component-bindings/src/messageThreadSelector.js +5 -4
- package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
- package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts +1 -0
- package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
- package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +3 -1
- package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
- package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +1 -7
- package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
- package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts +0 -1
- package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/ParticipantList.js +5 -4
- package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +1 -0
- package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +2 -1
- package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
- package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
- package/dist/dist-esm/react-components/src/theming/icons.js +2 -1
- package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +23 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +7 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +28 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +4 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +52 -5
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +4 -3
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +4 -5
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +4 -3
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +26 -5
- package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +2 -2
- package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +1 -0
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +3 -3
- package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +8 -12
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +6 -1
- package/package.json +7 -7
- package/dist/dist-cjs/communication-react/index-BdQf83xQ.js.map +0 -1
@@ -175,7 +175,7 @@ function getDefaultExportFromCjs (x) {
|
|
175
175
|
// Copyright (c) Microsoft Corporation.
|
176
176
|
// Licensed under the MIT License.
|
177
177
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
178
|
-
var telemetryVersion = '1.18.0-alpha-
|
178
|
+
var telemetryVersion = '1.18.0-alpha-202406120015';
|
179
179
|
|
180
180
|
|
181
181
|
var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
|
@@ -6911,6 +6911,7 @@ const DEFAULT_COMPONENT_ICONS = {
|
|
6911
6911
|
/* @conditional-compile-remove(call-readiness) */
|
6912
6912
|
BrowserPermissionDeniedError: React.createElement(BrowserPermissionDenied20Filled, null),
|
6913
6913
|
VideoTilePinned: React.createElement(reactIcons.Pin16Filled, null),
|
6914
|
+
ParticipantItemPinned: React.createElement(reactIcons.Pin20Filled, null),
|
6914
6915
|
VideoTileMoreOptions: React.createElement(reactIcons.MoreHorizontal20Filled, null),
|
6915
6916
|
VideoTileScaleFit: React.createElement(reactIcons.ScaleFit20Regular, null),
|
6916
6917
|
VideoTileScaleFill: React.createElement(reactIcons.ScaleFill20Regular, null),
|
@@ -11131,6 +11132,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
|
|
11131
11132
|
},
|
11132
11133
|
setEmptyContent() {
|
11133
11134
|
if (editor.current) {
|
11135
|
+
editor.current.formatContentModel;
|
11134
11136
|
// remove all content from the editor and update the model
|
11135
11137
|
// ContentChanged event will be sent by RoosterJS automatically
|
11136
11138
|
editor.current.formatContentModel((model) => {
|
@@ -12151,7 +12153,8 @@ const chatMessageMenuStyle = react.mergeStyles({
|
|
12151
12153
|
minWidth: '8.5rem',
|
12152
12154
|
height: 'max-content',
|
12153
12155
|
cursor: 'pointer',
|
12154
|
-
overflow: 'hidden'
|
12156
|
+
overflow: 'hidden',
|
12157
|
+
'-webkit-tap-highlight-color': 'transparent' // Disable tap highlight on Android
|
12155
12158
|
});
|
12156
12159
|
/**
|
12157
12160
|
* @private
|
@@ -13659,7 +13662,7 @@ class _ErrorBoundary extends React.Component {
|
|
13659
13662
|
// Copyright (c) Microsoft Corporation.
|
13660
13663
|
// Licensed under the MIT License.
|
13661
13664
|
/* @conditional-compile-remove(rich-text-editor) */
|
13662
|
-
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
13665
|
+
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DseIP_bT.js'); }));
|
13663
13666
|
/**
|
13664
13667
|
* @private
|
13665
13668
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -13667,7 +13670,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
|
|
13667
13670
|
*
|
13668
13671
|
* @conditional-compile-remove(rich-text-editor)
|
13669
13672
|
*/
|
13670
|
-
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
13673
|
+
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DseIP_bT.js'); });
|
13671
13674
|
/**
|
13672
13675
|
* @private
|
13673
13676
|
*/
|
@@ -15185,7 +15188,7 @@ const iconStyles$2 = react.mergeStyles({
|
|
15185
15188
|
|
15186
15189
|
// Copyright (c) Microsoft Corporation.
|
15187
15190
|
// Licensed under the MIT License.
|
15188
|
-
const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, styles, onParticipantClick, showParticipantOverflowTooltip, participantAriaLabelledBy, theme) => {
|
15191
|
+
const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, styles, onParticipantClick, showParticipantOverflowTooltip, participantAriaLabelledBy, theme, pinnedParticipants) => {
|
15189
15192
|
const callingParticipant = participant;
|
15190
15193
|
let presence = undefined;
|
15191
15194
|
if (callingParticipant) {
|
@@ -15219,7 +15222,8 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
|
|
15219
15222
|
React.createElement(RaisedHandIcon, null)))),
|
15220
15223
|
callingParticipant.isScreenSharing && (React.createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$2, ariaLabel: strings.sharingIconLabel })),
|
15221
15224
|
callingParticipant.isMuted && (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })),
|
15222
|
-
callingParticipant.spotlight && React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 })
|
15225
|
+
callingParticipant.spotlight && React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 }),
|
15226
|
+
pinnedParticipants && (pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participant.userId)) && (React.createElement(react.Icon, { iconName: "ParticipantItemPinned", className: iconStyles$2 }))));
|
15223
15227
|
}
|
15224
15228
|
: () => null;
|
15225
15229
|
const onRenderAvatarWithRaiseHand = (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.raisedHand) && onRenderAvatar
|
@@ -15281,7 +15285,7 @@ const ParticipantList$k = (props) => {
|
|
15281
15285
|
/* @conditional-compile-remove(total-participant-count) */
|
15282
15286
|
totalParticipantCount,
|
15283
15287
|
/* @conditional-compile-remove(total-participant-count) */
|
15284
|
-
strings, participantAriaLabelledBy } = props;
|
15288
|
+
strings, participantAriaLabelledBy, pinnedParticipants } = props;
|
15285
15289
|
const theme = useTheme();
|
15286
15290
|
const ids = useIdentifiers();
|
15287
15291
|
const participantItemStrings = useLocale$1().strings.participantItem;
|
@@ -15328,7 +15332,7 @@ const ParticipantList$k = (props) => {
|
|
15328
15332
|
return (React.createElement(react.Stack, { "data-ui-id": ids.participantList, className: react.mergeStyles(participantListStyle$1, (_e = props.styles) === null || _e === void 0 ? void 0 : _e.root), role: 'menu' },
|
15329
15333
|
displayedParticipants.map((participant) => onRenderParticipant
|
15330
15334
|
? onRenderParticipant(participant)
|
15331
|
-
: onRenderParticipantDefault(participant, participantItemStrings, myUserId, onRenderAvatar, createParticipantMenuItems, participantItemStyles, props.onParticipantClick, showParticipantOverflowTooltip, participantAriaLabelledBy, theme)),
|
15335
|
+
: onRenderParticipantDefault(participant, participantItemStrings, myUserId, onRenderAvatar, createParticipantMenuItems, participantItemStyles, props.onParticipantClick, showParticipantOverflowTooltip, participantAriaLabelledBy, theme, pinnedParticipants)),
|
15332
15336
|
/* @conditional-compile-remove(total-participant-count) */ overflowParticipantCountString &&
|
15333
15337
|
totalParticipantCount &&
|
15334
15338
|
totalParticipantCount > displayedParticipants.length && (React.createElement(react.Text, { style: { fontWeight: 400, margin: '0.5rem' } }, _formatString(overflowParticipantCountString, {
|
@@ -19632,7 +19636,7 @@ const DEFAULT_REMOTE_VIDEO_TILE_MENU_OPTIONS = {
|
|
19632
19636
|
* @private
|
19633
19637
|
* Maximum number of remote video tiles that can be pinned
|
19634
19638
|
*/
|
19635
|
-
const MAX_PINNED_REMOTE_VIDEO_TILES = 4;
|
19639
|
+
const MAX_PINNED_REMOTE_VIDEO_TILES$1 = 4;
|
19636
19640
|
/**
|
19637
19641
|
* VideoGallery represents a layout of video tiles for a specific call.
|
19638
19642
|
* It displays a {@link VideoTile} for the local user as well as for each remote participant who has joined the call.
|
@@ -19727,7 +19731,7 @@ const VideoGallery = (props) => {
|
|
19727
19731
|
videoTilesOptions
|
19728
19732
|
]);
|
19729
19733
|
const onPinParticipant = React.useCallback((userId) => {
|
19730
|
-
if (pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES) {
|
19734
|
+
if (pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES$1) {
|
19731
19735
|
return;
|
19732
19736
|
}
|
19733
19737
|
if (!pinnedParticipantsState.includes(userId)) {
|
@@ -19779,7 +19783,7 @@ const VideoGallery = (props) => {
|
|
19779
19783
|
? remoteVideoTileMenu.kind === 'drawer'
|
19780
19784
|
? 'drawer'
|
19781
19785
|
: 'contextual'
|
19782
|
-
: undefined, drawerMenuHostId: drawerMenuHostId, onPinParticipant: onPinParticipant, onUnpinParticipant: onUnpinParticipant, onUpdateScalingMode: onUpdateScalingMode, isPinned: isPinned, disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES, toggleAnnouncerString: toggleAnnouncerString, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartRemoteSpotlight, onStopSpotlight: onStopRemoteSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources,
|
19786
|
+
: undefined, drawerMenuHostId: drawerMenuHostId, onPinParticipant: onPinParticipant, onUnpinParticipant: onUnpinParticipant, onUpdateScalingMode: onUpdateScalingMode, isPinned: isPinned, disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES$1, toggleAnnouncerString: toggleAnnouncerString, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartRemoteSpotlight, onStopSpotlight: onStopRemoteSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources,
|
19783
19787
|
/* @conditional-compile-remove(soft-mute) */
|
19784
19788
|
onMuteParticipant: onMuteParticipant }));
|
19785
19789
|
}, [
|
@@ -24742,9 +24746,10 @@ const updateMessagesWithAttached = (chatMessagesWithStatus) => {
|
|
24742
24746
|
// Copyright (c) Microsoft Corporation.
|
24743
24747
|
// Licensed under the MIT License.
|
24744
24748
|
const memoizedAllConvertChatMessage = memoizeFnAll((_key, chatMessage, userId, isSeen, isLargeGroup) => {
|
24749
|
+
var _a;
|
24745
24750
|
const messageType = chatMessage.type.toLowerCase();
|
24746
24751
|
/* @conditional-compile-remove(data-loss-prevention) */
|
24747
|
-
if (chatMessage.policyViolation) {
|
24752
|
+
if (((_a = chatMessage.policyViolation) === null || _a === void 0 ? void 0 : _a.result) === 'contentBlocked') {
|
24748
24753
|
return convertToUiBlockedMessage(chatMessage, userId, isSeen, isLargeGroup);
|
24749
24754
|
}
|
24750
24755
|
if (messageType === ACSKnownMessageType.text ||
|
@@ -24999,7 +25004,7 @@ const sanitizedMessageContentType = (type) => {
|
|
24999
25004
|
: 'unknown';
|
25000
25005
|
};
|
25001
25006
|
const isMessageValidToRender = (message) => {
|
25002
|
-
var _a, _b, _c, _d;
|
25007
|
+
var _a, _b, _c, _d, _e;
|
25003
25008
|
if (message.deletedOn) {
|
25004
25009
|
return false;
|
25005
25010
|
}
|
@@ -25007,10 +25012,10 @@ const isMessageValidToRender = (message) => {
|
|
25007
25012
|
return true;
|
25008
25013
|
}
|
25009
25014
|
/* @conditional-compile-remove(data-loss-prevention) */
|
25010
|
-
if (message.policyViolation) {
|
25015
|
+
if (((_d = message.policyViolation) === null || _d === void 0 ? void 0 : _d.result) === 'contentBlocked') {
|
25011
25016
|
return true;
|
25012
25017
|
}
|
25013
|
-
return !!(message.content && ((
|
25018
|
+
return !!(message.content && ((_e = message.content) === null || _e === void 0 ? void 0 : _e.message) !== '');
|
25014
25019
|
};
|
25015
25020
|
/**
|
25016
25021
|
* Selector for {@link MessageThread} component.
|
@@ -25934,13 +25939,7 @@ const toChatError = (target, error) => {
|
|
25934
25939
|
* @private
|
25935
25940
|
*/
|
25936
25941
|
const convertChatMessage = (message, status = 'delivered', clientMessageId) => {
|
25937
|
-
|
25938
|
-
return Object.assign(Object.assign({}, message), { clientMessageId: clientMessageId, status,
|
25939
|
-
/* @conditional-compile-remove(data-loss-prevention) */
|
25940
|
-
policyViolation: !!(((_a = message.sender) === null || _a === void 0 ? void 0 : _a.kind) === 'microsoftTeamsUser' &&
|
25941
|
-
!!message.editedOn &&
|
25942
|
-
((_b = message.content) === null || _b === void 0 ? void 0 : _b.message) === '' &&
|
25943
|
-
((_c = message.content.attachments) === null || _c === void 0 ? void 0 : _c.length) === 0) });
|
25942
|
+
return Object.assign(Object.assign({}, message), { clientMessageId: clientMessageId, status });
|
25944
25943
|
};
|
25945
25944
|
|
25946
25945
|
// Copyright (c) Microsoft Corporation.
|
@@ -25983,7 +25982,9 @@ class EventSubscriber {
|
|
25983
25982
|
sequenceId: '', // Note: there is a bug in chatMessageReceived event that it is missing sequenceId
|
25984
25983
|
createdOn: new Date(event.createdOn),
|
25985
25984
|
editedOn: 'editedOn' in event ? event.editedOn : undefined,
|
25986
|
-
metadata: event.metadata
|
25985
|
+
metadata: event.metadata,
|
25986
|
+
/* @conditional-compile-remove(data-loss-prevention) */
|
25987
|
+
policyViolation: 'policyViolation' in event ? event.policyViolation : undefined
|
25987
25988
|
});
|
25988
25989
|
};
|
25989
25990
|
// convert event type to chatMessage type, only possible type is 'html' and 'text' in chat event
|
@@ -27100,7 +27101,7 @@ const isChatError = (e) => {
|
|
27100
27101
|
return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;
|
27101
27102
|
};
|
27102
27103
|
|
27103
|
-
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",copyInviteLinkButtonActionedLabel:"Link copied",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",phoneCallMoreButtonLabel:"Phone Call",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."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},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",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",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment"};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",copyInviteLinkButtonActionedLabel:"Link copied",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",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, 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};
|
27104
|
+
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",copyInviteLinkButtonActionedLabel:"Link copied",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",phoneCallMoreButtonLabel:"Phone Call",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."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},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",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",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode",pinParticipantMenuLabel:"Pin for me",pinParticipantLimitReachedMenuLabel:"Pin (limit reached)",unpinParticipantMenuLabel:"Unpin",pinParticipantMenuItemAriaLabel:"Pin",unpinParticipantMenuItemAriaLabel:"Unpin"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment"};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",copyInviteLinkButtonActionedLabel:"Link copied",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",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, 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};
|
27104
27105
|
|
27105
27106
|
// Copyright (c) Microsoft Corporation.
|
27106
27107
|
// Licensed under the MIT License.
|
@@ -27969,7 +27970,7 @@ const ParticipantContainer = (props) => {
|
|
27969
27970
|
* @private
|
27970
27971
|
*/
|
27971
27972
|
const ParticipantListWithHeading = (props) => {
|
27972
|
-
const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps, headingMoreButtonAriaLabel, onClickHeadingMoreButton, headingMoreButtonMenuProps } = props;
|
27973
|
+
const { onFetchAvatarPersonaData, onFetchParticipantMenuItems, title, participantListProps, headingMoreButtonAriaLabel, onClickHeadingMoreButton, headingMoreButtonMenuProps, pinnedParticipants } = props;
|
27973
27974
|
const subheadingUniqueId = reactHooks.useId();
|
27974
27975
|
const theme = react.useTheme();
|
27975
27976
|
/* @conditional-compile-remove(total-participant-count) */
|
@@ -27989,7 +27990,7 @@ const ParticipantListWithHeading = (props) => {
|
|
27989
27990
|
((headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0)) && (React.createElement(react.Stack.Item, null,
|
27990
27991
|
React.createElement(react.DefaultButton, { ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: { iconName: 'PeoplePaneMoreButton' }, onClick: onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined, menuProps: props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps, onRenderMenuIcon: () => null })))),
|
27991
27992
|
React.createElement(react.FocusZone, { className: participantListContainerStyle, shouldFocusOnMount: true },
|
27992
|
-
React.createElement(ParticipantList$k, Object.assign({}, participantListProps, { styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React.createElement(React.Fragment, null,
|
27993
|
+
React.createElement(ParticipantList$k, Object.assign({}, participantListProps, { pinnedParticipants: pinnedParticipants, styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React.createElement(React.Fragment, null,
|
27993
27994
|
React.createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { hidePersonaDetails: !!(options === null || options === void 0 ? void 0 : options.text), dataProvider: onFetchAvatarPersonaData, allowActiveBorder: true })),
|
27994
27995
|
(options === null || options === void 0 ? void 0 : options.text) && (React.createElement(react.Text, { nowrap: true, styles: displayNameStyles$1 }, options === null || options === void 0 ? void 0 : options.text)))), onFetchParticipantMenuItems: onFetchParticipantMenuItems, showParticipantOverflowTooltip: !props.isMobile, participantAriaLabelledBy: subheadingUniqueId })))));
|
27995
27996
|
};
|
@@ -28038,7 +28039,7 @@ const AttachmentDownloadErrorBar = (props) => {
|
|
28038
28039
|
/**
|
28039
28040
|
* Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
|
28040
28041
|
*/
|
28041
|
-
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
28042
|
+
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-C_4OMmY6.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
|
28042
28043
|
/**
|
28043
28044
|
* @private
|
28044
28045
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -28046,21 +28047,21 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
|
|
28046
28047
|
*
|
28047
28048
|
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
28048
28049
|
*/
|
28049
|
-
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
28050
|
+
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-C_4OMmY6.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
|
28050
28051
|
/**
|
28051
28052
|
* @private
|
28052
28053
|
*/
|
28053
28054
|
const SendBoxPicker = (props) => {
|
28054
28055
|
const {
|
28055
|
-
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
28056
|
+
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
28056
28057
|
richTextEditorOptions } = props;
|
28057
28058
|
const sendBoxProps = usePropsFor$2(SendBox);
|
28058
|
-
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
28059
|
+
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
28059
28060
|
const isRichTextEditorEnabled = React.useMemo(() => {
|
28060
28061
|
return richTextEditorOptions !== undefined;
|
28061
28062
|
}, [richTextEditorOptions]);
|
28062
28063
|
const sendBox = React.useMemo(() => React.createElement(SendBox, Object.assign({}, sendBoxProps, props)), [props, sendBoxProps]);
|
28063
|
-
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
28064
|
+
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
28064
28065
|
if (isRichTextEditorEnabled) {
|
28065
28066
|
return (React.createElement(_ErrorBoundary, { fallback: sendBox },
|
28066
28067
|
React.createElement(React.Suspense, { fallback: sendBox },
|
@@ -28110,12 +28111,12 @@ const ChatScreen = (props) => {
|
|
28110
28111
|
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
28111
28112
|
React.useEffect(() => {
|
28112
28113
|
// if rich text editor is enabled, the rich text editor component should be loaded early for good UX
|
28113
|
-
if (
|
28114
|
+
if (options === null || options === void 0 ? void 0 : options.richTextEditor) {
|
28114
28115
|
// this line is needed to load the Rooster JS dependencies early in the lifecycle
|
28115
28116
|
// when the rich text editor is enabled
|
28116
28117
|
loadRichTextSendBox();
|
28117
28118
|
}
|
28118
|
-
}, [options === null || options === void 0 ? void 0 : options.
|
28119
|
+
}, [options === null || options === void 0 ? void 0 : options.richTextEditor]);
|
28119
28120
|
const messageThreadProps = usePropsFor$2(MessageThread);
|
28120
28121
|
const typingIndicatorProps = usePropsFor$2(TypingIndicator);
|
28121
28122
|
const headerProps = useAdaptedSelector$1(getHeaderProps);
|
@@ -28334,6 +28335,27 @@ const ChatScreen = (props) => {
|
|
28334
28335
|
handleUploadAction({ type: AttachmentUploadActionType.Remove, id });
|
28335
28336
|
(_b = (_a = attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions) === null || _a === void 0 ? void 0 : _a.handleAttachmentRemoval) === null || _b === void 0 ? void 0 : _b.call(_a, id);
|
28336
28337
|
}, [attachmentOptions === null || attachmentOptions === void 0 ? void 0 : attachmentOptions.uploadOptions]);
|
28338
|
+
/* @conditional-compile-remove(rich-text-editor-image-upload) */
|
28339
|
+
const removeImageTags = React.useCallback((event) => {
|
28340
|
+
event.content.querySelectorAll('img').forEach((image) => {
|
28341
|
+
// If the image is the only child of its parent, remove all the parents of this img element.
|
28342
|
+
let parentNode = image.parentElement;
|
28343
|
+
let currentNode = image;
|
28344
|
+
while ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.childNodes.length) === 1) {
|
28345
|
+
currentNode = parentNode;
|
28346
|
+
parentNode = parentNode.parentElement;
|
28347
|
+
}
|
28348
|
+
currentNode === null || currentNode === void 0 ? void 0 : currentNode.remove();
|
28349
|
+
});
|
28350
|
+
}, []);
|
28351
|
+
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
28352
|
+
const richTextEditorOptions = React.useMemo(() => {
|
28353
|
+
return (options === null || options === void 0 ? void 0 : options.richTextEditor)
|
28354
|
+
? {
|
28355
|
+
/* @conditional-compile-remove(rich-text-editor-image-upload) */ onPaste: removeImageTags
|
28356
|
+
}
|
28357
|
+
: undefined;
|
28358
|
+
}, [options === null || options === void 0 ? void 0 : options.richTextEditor, removeImageTags]);
|
28337
28359
|
return (React.createElement(react.Stack, { className: chatContainer, grow: true },
|
28338
28360
|
(options === null || options === void 0 ? void 0 : options.topic) !== false && React.createElement(ChatHeader, Object.assign({}, headerProps)),
|
28339
28361
|
React.createElement(react.Stack, { className: chatArea, tokens: participantListContainerPadding, horizontal: true, grow: true },
|
@@ -28346,8 +28368,8 @@ const ChatScreen = (props) => {
|
|
28346
28368
|
React.createElement(MessageThread, Object.assign({}, messageThreadProps, { onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
|
28347
28369
|
/* @conditional-compile-remove(file-sharing-acs) */
|
28348
28370
|
onRenderAttachmentDownloads: onRenderAttachmentDownloads, inlineImageOptions: inlineImageOptions, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles,
|
28349
|
-
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
28350
|
-
richTextEditorOptions:
|
28371
|
+
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
28372
|
+
richTextEditorOptions: richTextEditorOptions })),
|
28351
28373
|
React.createElement(react.Stack, { className: react.mergeStyles(sendboxContainerStyles) },
|
28352
28374
|
React.createElement("div", { className: react.mergeStyles(typingIndicatorContainerStyles) }, onRenderTypingIndicator ? (onRenderTypingIndicator(typingIndicatorProps.typingUsers)) : (React.createElement(TypingIndicator, Object.assign({}, typingIndicatorProps, { styles: typingIndicatorStyles })))),
|
28353
28375
|
React.createElement(react.Stack, { horizontal: formFactor === 'mobile' },
|
@@ -28358,7 +28380,7 @@ const ChatScreen = (props) => {
|
|
28358
28380
|
React.createElement(react.Stack, { grow: true },
|
28359
28381
|
React.createElement(SendBoxPicker, { styles: sendBoxStyles, autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus,
|
28360
28382
|
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
28361
|
-
richTextEditorOptions:
|
28383
|
+
richTextEditorOptions: richTextEditorOptions,
|
28362
28384
|
/* @conditional-compile-remove(file-sharing-acs) */
|
28363
28385
|
attachments: attachments,
|
28364
28386
|
/* @conditional-compile-remove(file-sharing-acs) */
|
@@ -32697,7 +32719,7 @@ const PeoplePaneContent = (props) => {
|
|
32697
32719
|
// We want the drawer menu items to appear when participants in ParticipantList are clicked
|
32698
32720
|
onParticipantClick: props.mobileView ? setDrawerMenuItemsForParticipant : undefined });
|
32699
32721
|
}, [participantListDefaultProps, props.mobileView, setDrawerMenuItemsForParticipant, removeParticipantFromCall]);
|
32700
|
-
const participantList = (React.createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.mobileView ? undefined : onFetchParticipantMenuItems, title: strings.peoplePaneSubTitle, headingMoreButtonAriaLabel: localeStrings.strings.call.peoplePaneMoreButtonAriaLabel, onClickHeadingMoreButton: props.mobileView ? setDrawerMenuItemsForParticipantListHeadingMoreButton : undefined, headingMoreButtonMenuProps: props.participantListHeadingMoreButtonProps }));
|
32722
|
+
const participantList = (React.createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.mobileView ? undefined : onFetchParticipantMenuItems, title: strings.peoplePaneSubTitle, headingMoreButtonAriaLabel: localeStrings.strings.call.peoplePaneMoreButtonAriaLabel, onClickHeadingMoreButton: props.mobileView ? setDrawerMenuItemsForParticipantListHeadingMoreButton : undefined, headingMoreButtonMenuProps: props.participantListHeadingMoreButtonProps, pinnedParticipants: props.pinnedParticipants }));
|
32701
32723
|
if (props.mobileView) {
|
32702
32724
|
return (React.createElement(react.Stack, { verticalFill: true, styles: peoplePaneContainerStyle, tokens: peoplePaneContainerTokens, "data-ui-id": "people-pane-content" },
|
32703
32725
|
React.createElement(react.Stack.Item, { grow: true, styles: participantListContainerStyles }, participantList),
|
@@ -32759,7 +32781,7 @@ const PEOPLE_SIDE_PANE_ID = 'people';
|
|
32759
32781
|
const usePeoplePane = (props) => {
|
32760
32782
|
const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned, spotlightedParticipantUserIds, onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onStopAllSpotlight, maxParticipantsToSpotlight,
|
32761
32783
|
/* @conditional-compile-remove(soft-mute) */
|
32762
|
-
onMuteParticipant } = props;
|
32784
|
+
onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem } = props;
|
32763
32785
|
const closePane = React.useCallback(() => {
|
32764
32786
|
var _a;
|
32765
32787
|
updateSidePaneRenderer(undefined);
|
@@ -32788,9 +32810,11 @@ const usePeoplePane = (props) => {
|
|
32788
32810
|
const onRenderHeader = React.useCallback(() => (React.createElement(SidePaneHeader, { onClose: closePane, headingText: localeStrings.peoplePaneTitle, dismissSidePaneButtonAriaLabel: localeStrings.dismissSidePaneButtonLabel, mobileView: mobileView !== null && mobileView !== void 0 ? mobileView : false })), [mobileView, closePane, localeStrings]);
|
32789
32811
|
const onFetchParticipantMenuItemsForCallComposite = React.useCallback((participantId, myUserId, defaultMenuItems) => {
|
32790
32812
|
var _a;
|
32813
|
+
let isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participantId);
|
32791
32814
|
const _defaultMenuItems = defaultMenuItems !== null && defaultMenuItems !== void 0 ? defaultMenuItems : [];
|
32792
|
-
const isSpotlighted = spotlightedParticipantUserIds === null || spotlightedParticipantUserIds === void 0 ? void 0 : spotlightedParticipantUserIds.
|
32815
|
+
const isSpotlighted = spotlightedParticipantUserIds === null || spotlightedParticipantUserIds === void 0 ? void 0 : spotlightedParticipantUserIds.includes(participantId);
|
32793
32816
|
const isMe = myUserId === participantId;
|
32817
|
+
isPinned = isSpotlighted ? false : isPinned;
|
32794
32818
|
if (isSpotlighted) {
|
32795
32819
|
const stopSpotlightMenuText = isMe
|
32796
32820
|
? localeStrings.stopSpotlightOnSelfMenuLabel
|
@@ -32864,6 +32888,41 @@ const usePeoplePane = (props) => {
|
|
32864
32888
|
disabled: isMuted
|
32865
32889
|
});
|
32866
32890
|
}
|
32891
|
+
if (!isMe && isPinned !== undefined) {
|
32892
|
+
if (isPinned && onUnpinParticipant && (localeStrings === null || localeStrings === void 0 ? void 0 : localeStrings.unpinParticipantMenuLabel)) {
|
32893
|
+
_defaultMenuItems.push({
|
32894
|
+
key: 'unpin',
|
32895
|
+
text: localeStrings === null || localeStrings === void 0 ? void 0 : localeStrings.unpinParticipantMenuLabel,
|
32896
|
+
iconProps: {
|
32897
|
+
iconName: 'UnpinParticipant',
|
32898
|
+
styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
|
32899
|
+
},
|
32900
|
+
onClick: () => {
|
32901
|
+
onUnpinParticipant === null || onUnpinParticipant === void 0 ? void 0 : onUnpinParticipant(participantId);
|
32902
|
+
},
|
32903
|
+
'data-ui-id': 'participant-item-unpin-participant-button',
|
32904
|
+
ariaLabel: localeStrings.unpinParticipantMenuItemAriaLabel
|
32905
|
+
});
|
32906
|
+
}
|
32907
|
+
if (!isPinned && onPinParticipant && (localeStrings === null || localeStrings === void 0 ? void 0 : localeStrings.pinParticipantMenuLabel)) {
|
32908
|
+
_defaultMenuItems.push({
|
32909
|
+
key: 'pin',
|
32910
|
+
text: disablePinMenuItem
|
32911
|
+
? localeStrings.pinParticipantLimitReachedMenuLabel
|
32912
|
+
: localeStrings.pinParticipantMenuLabel,
|
32913
|
+
iconProps: {
|
32914
|
+
iconName: 'PinParticipant',
|
32915
|
+
styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
|
32916
|
+
},
|
32917
|
+
onClick: () => {
|
32918
|
+
onPinParticipant(participantId);
|
32919
|
+
},
|
32920
|
+
'data-ui-id': 'participant-item-pin-participant-button',
|
32921
|
+
disabled: disablePinMenuItem || isSpotlighted,
|
32922
|
+
ariaLabel: localeStrings.pinParticipantMenuItemAriaLabel
|
32923
|
+
});
|
32924
|
+
}
|
32925
|
+
}
|
32867
32926
|
return onFetchParticipantMenuItems
|
32868
32927
|
? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)
|
32869
32928
|
: _defaultMenuItems;
|
@@ -32883,10 +32942,19 @@ const usePeoplePane = (props) => {
|
|
32883
32942
|
localeStrings.addSpotlightMenuLabel,
|
32884
32943
|
localeStrings.startSpotlightMenuLabel,
|
32885
32944
|
localeStrings.spotlightLimitReachedMenuTitle,
|
32886
|
-
maxParticipantsToSpotlight
|
32945
|
+
maxParticipantsToSpotlight,
|
32946
|
+
pinnedParticipants,
|
32947
|
+
onPinParticipant,
|
32948
|
+
onUnpinParticipant,
|
32949
|
+
disablePinMenuItem,
|
32950
|
+
localeStrings.pinParticipantMenuLabel,
|
32951
|
+
localeStrings.pinParticipantLimitReachedMenuLabel,
|
32952
|
+
localeStrings.unpinParticipantMenuLabel,
|
32953
|
+
localeStrings.unpinParticipantMenuItemAriaLabel,
|
32954
|
+
localeStrings.pinParticipantMenuItemAriaLabel
|
32887
32955
|
]);
|
32888
32956
|
const onRenderContent = React.useCallback(() => {
|
32889
|
-
return (React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps }));
|
32957
|
+
return (React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants }));
|
32890
32958
|
}, [
|
32891
32959
|
inviteLink,
|
32892
32960
|
mobileView,
|
@@ -32894,7 +32962,8 @@ const usePeoplePane = (props) => {
|
|
32894
32962
|
onFetchParticipantMenuItemsForCallComposite,
|
32895
32963
|
setDrawerMenuItems,
|
32896
32964
|
setParticipantActioned,
|
32897
|
-
sidePaneHeaderMenuProps
|
32965
|
+
sidePaneHeaderMenuProps,
|
32966
|
+
pinnedParticipants
|
32898
32967
|
]);
|
32899
32968
|
const sidePaneRenderer = React.useMemo(() => ({
|
32900
32969
|
headerRenderer: onRenderHeader,
|
@@ -33637,6 +33706,11 @@ const getStopAllSpotlightCallbackWithPromptCallback = (stopAllSpotlight, setIsPr
|
|
33637
33706
|
|
33638
33707
|
// Copyright (c) Microsoft Corporation.
|
33639
33708
|
// Licensed under the MIT License.
|
33709
|
+
/**
|
33710
|
+
* @private
|
33711
|
+
* Maximum number of remote video tiles that can be pinned
|
33712
|
+
*/
|
33713
|
+
const MAX_PINNED_REMOTE_VIDEO_TILES = 4;
|
33640
33714
|
/**
|
33641
33715
|
* @private
|
33642
33716
|
*/
|
@@ -33694,6 +33768,28 @@ const CallArrangement = (props) => {
|
|
33694
33768
|
const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight,
|
33695
33769
|
/* @conditional-compile-remove(soft-mute) */
|
33696
33770
|
onMuteParticipant, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant } = videoGalleryProps;
|
33771
|
+
const { pinnedParticipants, setPinnedParticipants } = props;
|
33772
|
+
const onPinParticipant = React.useCallback((userId) => {
|
33773
|
+
if (pinnedParticipants && pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES) {
|
33774
|
+
return;
|
33775
|
+
}
|
33776
|
+
if (pinnedParticipants && setPinnedParticipants && !pinnedParticipants.includes(userId)) {
|
33777
|
+
setPinnedParticipants(pinnedParticipants.concat(userId));
|
33778
|
+
}
|
33779
|
+
}, [pinnedParticipants, setPinnedParticipants]);
|
33780
|
+
const onUnpinParticipant = React.useCallback((userId) => {
|
33781
|
+
if (pinnedParticipants && setPinnedParticipants) {
|
33782
|
+
setPinnedParticipants(pinnedParticipants.filter((participantId) => participantId !== userId));
|
33783
|
+
}
|
33784
|
+
}, [setPinnedParticipants, pinnedParticipants]);
|
33785
|
+
const pinPeoplePaneProps = React.useMemo(() => {
|
33786
|
+
return {
|
33787
|
+
pinnedParticipants: pinnedParticipants,
|
33788
|
+
onPinParticipant: onPinParticipant,
|
33789
|
+
onUnpinParticipant: onUnpinParticipant,
|
33790
|
+
disablePinMenuItem: pinnedParticipants && pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES
|
33791
|
+
};
|
33792
|
+
}, [onPinParticipant, onUnpinParticipant, pinnedParticipants]);
|
33697
33793
|
const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(onStartLocalSpotlight, onStopLocalSpotlight, setIsPromptOpen, setPromptProps);
|
33698
33794
|
const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(onStartRemoteSpotlight, onStopRemoteSpotlight, setIsPromptOpen, setPromptProps);
|
33699
33795
|
const canRemoveSpotlight = (_d = (_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.capabilitiesFeature) === null || _d === void 0 ? void 0 : _d.capabilities.removeParticipantsSpotlight.isPresent;
|
@@ -33730,7 +33826,7 @@ const CallArrangement = (props) => {
|
|
33730
33826
|
stopAllSpotlightWithPrompt,
|
33731
33827
|
spotlightedParticipants
|
33732
33828
|
]);
|
33733
|
-
const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(Object.assign(Object.assign(Object.assign({}, peoplePaneProps), spotlightPeoplePaneProps), onMuteParticipantPeoplePaneProps));
|
33829
|
+
const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(Object.assign(Object.assign(Object.assign(Object.assign({}, peoplePaneProps), spotlightPeoplePaneProps), onMuteParticipantPeoplePaneProps), pinPeoplePaneProps));
|
33734
33830
|
const togglePeoplePane = React.useCallback(() => {
|
33735
33831
|
if (isPeoplePaneOpen) {
|
33736
33832
|
closePeoplePane();
|
@@ -34334,7 +34430,7 @@ const CallPage = (props) => {
|
|
34334
34430
|
onFetchParticipantMenuItems: onFetchParticipantMenuItems,
|
34335
34431
|
options: callControlOptions,
|
34336
34432
|
increaseFlyoutItemSize: mobileView
|
34337
|
-
}, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons }),
|
34433
|
+
}, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
|
34338
34434
|
React.createElement(Prompt, Object.assign({ isOpen: isPromptOpen, onDismiss: () => setIsPromptOpen(false) }, promptProps))));
|
34339
34435
|
};
|
34340
34436
|
/**
|
@@ -39051,14 +39147,13 @@ const CallWithChatScreen = (props) => {
|
|
39051
39147
|
participantPane: false,
|
39052
39148
|
/* @conditional-compile-remove(file-sharing-acs) */
|
39053
39149
|
attachmentOptions: props.attachmentOptions,
|
39054
|
-
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
39055
|
-
|
39150
|
+
/* @conditional-compile-remove(rich-text-editor-composite-support) */
|
39151
|
+
richTextEditor: props.richTextEditor
|
39056
39152
|
}, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })), [
|
39057
39153
|
chatAdapter,
|
39058
|
-
/* @conditional-compile-remove(file-sharing-acs) */
|
39059
|
-
props.attachmentOptions,
|
39154
|
+
/* @conditional-compile-remove(file-sharing-acs) */ props.attachmentOptions,
|
39060
39155
|
props.onFetchAvatarPersonaData,
|
39061
|
-
/* @conditional-compile-remove(rich-text-editor-composite-support) */ props.
|
39156
|
+
/* @conditional-compile-remove(rich-text-editor-composite-support) */ props.richTextEditor,
|
39062
39157
|
theme
|
39063
39158
|
]);
|
39064
39159
|
const sidePaneHeaderRenderer = React.useCallback(() => {
|
@@ -40728,4 +40823,4 @@ exports.useTeamsCall = useTeamsCall;
|
|
40728
40823
|
exports.useTeamsCallAdapter = useTeamsCallAdapter;
|
40729
40824
|
exports.useTeamsCallAgent = useTeamsCallAgent;
|
40730
40825
|
exports.useTheme = useTheme;
|
40731
|
-
//# sourceMappingURL=index-
|
40826
|
+
//# sourceMappingURL=index-Dlqkspdp.js.map
|