@azure/communication-react 1.3.3-alpha-202208190016.0 → 1.3.3-alpha-202208240015.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/communication-react.d.ts +13 -5
- package/dist/dist-cjs/communication-react/index.js +117 -58
- 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/react-components/src/components/Drawer/DrawerMenu.js +1 -1
- package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantList.js +13 -6
- package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +1 -6
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js +11 -5
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +0 -4
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +0 -13
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +9 -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 +1 -1
- 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.js +22 -6
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +16 -4
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +10 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +17 -5
- 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/CallControls.js +5 -5
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +12 -0
- package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js +4 -2
- package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
- 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/SendDtmfDialpad.js +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js +4 -2
- package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +2 -2
- package/package.json +8 -8
@@ -361,6 +361,16 @@ export declare interface BaseCustomStyles {
|
|
361
361
|
export declare interface CallAdapter extends AdapterState<CallAdapterState>, Disposable, CallAdapterCallManagement, CallAdapterDeviceManagement, CallAdapterSubscribers {
|
362
362
|
}
|
363
363
|
|
364
|
+
/**
|
365
|
+
* Payload for {@link CallEndedListener} containing details on the ended call.
|
366
|
+
*
|
367
|
+
* @public
|
368
|
+
*/
|
369
|
+
export declare type CallAdapterCallEndedEvent = {
|
370
|
+
callId?: string;
|
371
|
+
callEndReason?: CallEndReason;
|
372
|
+
};
|
373
|
+
|
364
374
|
/**
|
365
375
|
* Functionality for managing the current call.
|
366
376
|
*
|
@@ -1246,7 +1256,7 @@ export declare interface CallCompositeStrings {
|
|
1246
1256
|
/**
|
1247
1257
|
* Label for the button to open dtmf dialpad
|
1248
1258
|
*/
|
1249
|
-
|
1259
|
+
openDtmfDialpadLabel: string;
|
1250
1260
|
}
|
1251
1261
|
|
1252
1262
|
/**
|
@@ -1333,9 +1343,7 @@ export declare type CallControlOptions = {
|
|
1333
1343
|
*
|
1334
1344
|
* @public
|
1335
1345
|
*/
|
1336
|
-
export declare type CallEndedListener = (event:
|
1337
|
-
callId: string;
|
1338
|
-
}) => void;
|
1346
|
+
export declare type CallEndedListener = (event: CallAdapterCallEndedEvent) => void;
|
1339
1347
|
|
1340
1348
|
/**
|
1341
1349
|
* Error thrown from failed stateful API methods.
|
@@ -2245,7 +2253,7 @@ export declare interface CallWithChatCompositeStrings {
|
|
2245
2253
|
/**
|
2246
2254
|
* Label for the button to open dtmf dialpad
|
2247
2255
|
*/
|
2248
|
-
|
2256
|
+
openDtmfDialpadLabel: string;
|
2249
2257
|
}
|
2250
2258
|
|
2251
2259
|
/**
|
@@ -192,7 +192,7 @@ const fromFlatCommunicationIdentifier = (id) => {
|
|
192
192
|
// Copyright (c) Microsoft Corporation.
|
193
193
|
// Licensed under the MIT license.
|
194
194
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
195
|
-
var telemetryVersion = '1.3.3-alpha-
|
195
|
+
var telemetryVersion = '1.3.3-alpha-202208240015.0';
|
196
196
|
|
197
197
|
// Copyright (c) Microsoft Corporation.
|
198
198
|
/**
|
@@ -4589,14 +4589,14 @@ const getParticipantsForDefaultRender = (participants, excludeMe, myUserId) => {
|
|
4589
4589
|
* @public
|
4590
4590
|
*/
|
4591
4591
|
const ParticipantList = (props) => {
|
4592
|
-
var _a, _b;
|
4592
|
+
var _a, _b, _c, _d;
|
4593
4593
|
const { excludeMe = false, myUserId, participants, onRemoveParticipant, onRenderAvatar, onRenderParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
|
4594
4594
|
const ids = useIdentifiers();
|
4595
4595
|
const strings = useLocale$1().strings.participantItem;
|
4596
4596
|
const displayedParticipants = React.useMemo(() => {
|
4597
4597
|
return onRenderParticipant ? participants : getParticipantsForDefaultRender(participants, excludeMe, myUserId);
|
4598
4598
|
}, [participants, excludeMe, myUserId, onRenderParticipant]);
|
4599
|
-
const createParticipantMenuItems = (participant) => {
|
4599
|
+
const createParticipantMenuItems = React.useCallback((participant) => {
|
4600
4600
|
var _a, _b;
|
4601
4601
|
let menuItems = [];
|
4602
4602
|
let disabled = !participant.isRemovable;
|
@@ -4620,9 +4620,16 @@ const ParticipantList = (props) => {
|
|
4620
4620
|
menuItems = onFetchParticipantMenuItems(participant.userId, myUserId, menuItems);
|
4621
4621
|
}
|
4622
4622
|
return menuItems;
|
4623
|
-
}
|
4624
|
-
|
4625
|
-
|
4623
|
+
}, [
|
4624
|
+
ids.participantListRemoveParticipantButton,
|
4625
|
+
myUserId,
|
4626
|
+
onFetchParticipantMenuItems,
|
4627
|
+
onRemoveParticipant,
|
4628
|
+
(_b = (_a = props.styles) === null || _a === void 0 ? void 0 : _a.participantItemStyles) === null || _b === void 0 ? void 0 : _b.participantSubMenuItemsStyles,
|
4629
|
+
strings.removeButtonLabel
|
4630
|
+
]);
|
4631
|
+
const participantItemStyles = React.useMemo(() => { var _a; return react.merge(participantListItemStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.participantItemStyles); }, [(_c = props.styles) === null || _c === void 0 ? void 0 : _c.participantItemStyles]);
|
4632
|
+
return (React__default['default'].createElement(react.Stack, { "data-ui-id": ids.participantList, className: react.mergeStyles(participantListStyle$1, (_d = props.styles) === null || _d === void 0 ? void 0 : _d.root) }, displayedParticipants.map((participant) => onRenderParticipant
|
4626
4633
|
? onRenderParticipant(participant)
|
4627
4634
|
: onRenderParticipantDefault(participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, participantItemStyles, props.onParticipantClick, showParticipantOverflowTooltip))));
|
4628
4635
|
};
|
@@ -4849,19 +4856,6 @@ const iconContainerStyle = {
|
|
4849
4856
|
display: 'block'
|
4850
4857
|
}
|
4851
4858
|
};
|
4852
|
-
/**
|
4853
|
-
* @private
|
4854
|
-
*/
|
4855
|
-
const isSpeakingBorderDiv = {
|
4856
|
-
zIndex: 1,
|
4857
|
-
width: '100%',
|
4858
|
-
height: '100%',
|
4859
|
-
position: 'absolute',
|
4860
|
-
top: '0',
|
4861
|
-
left: '0',
|
4862
|
-
// Ensure the isSpeaking element does not steal any pointer events such as onClick events
|
4863
|
-
pointerEvents: 'none'
|
4864
|
-
};
|
4865
4859
|
/**
|
4866
4860
|
* @private
|
4867
4861
|
*/
|
@@ -4946,11 +4940,17 @@ const VideoTile = (props) => {
|
|
4946
4940
|
React__default['default'].createElement(react.Stack, { "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
|
4947
4941
|
background: theme.palette.neutralLighter,
|
4948
4942
|
borderRadius: theme.effects.roundedCorner4
|
4949
|
-
},
|
4950
|
-
|
4943
|
+
}, isSpeaking && {
|
4944
|
+
'&::before': {
|
4945
|
+
content: `''`,
|
4946
|
+
position: 'absolute',
|
4947
|
+
zIndex: 1,
|
4948
|
+
border: `0.25rem solid ${theme.palette.themePrimary}`,
|
4951
4949
|
borderRadius: theme.effects.roundedCorner4,
|
4952
|
-
|
4953
|
-
|
4950
|
+
width: '100%',
|
4951
|
+
height: '100%'
|
4952
|
+
}
|
4953
|
+
}, styles === null || styles === void 0 ? void 0 : styles.root) },
|
4954
4954
|
isVideoRendered ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, isMirrored && { transform: 'scaleX(-1)' }, styles === null || styles === void 0 ? void 0 : styles.videoContainer) }, renderElement)) : (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles) }, onRenderPlaceholder ? (onRenderPlaceholder(userId !== null && userId !== void 0 ? userId : '', placeholderOptions, DefaultPlaceholder)) : (React__default['default'].createElement(DefaultPlaceholder, Object.assign({}, placeholderOptions))))),
|
4955
4955
|
(canShowLabel || participantStateString) && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoContainerStyle, tokens: tileInfoContainerTokens },
|
4956
4956
|
canShowLabel && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoStyle },
|
@@ -6304,12 +6304,7 @@ const VideoGallery = (props) => {
|
|
6304
6304
|
maxDominantSpeakers: maxRemoteVideoStreams
|
6305
6305
|
}).slice(0, maxRemoteVideoStreams);
|
6306
6306
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
6307
|
-
visibleCallingParticipants.current =
|
6308
|
-
participants: (_b = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => p.state === ('Connecting' ))) !== null && _b !== void 0 ? _b : [],
|
6309
|
-
dominantSpeakers,
|
6310
|
-
lastVisibleParticipants: visibleCallingParticipants.current,
|
6311
|
-
maxDominantSpeakers: 0
|
6312
|
-
});
|
6307
|
+
visibleCallingParticipants.current = (_b = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => p.state === ('Connecting' ))) !== null && _b !== void 0 ? _b : [];
|
6313
6308
|
// This set will be used to filter out participants already in visibleVideoParticipants
|
6314
6309
|
const visibleVideoParticipantsSet = new Set(visibleVideoParticipants.current.map((p) => p.userId));
|
6315
6310
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
@@ -7444,7 +7439,7 @@ const _DrawerMenu = (props) => {
|
|
7444
7439
|
}
|
7445
7440
|
}), [firstItemStyle, borderRadius]);
|
7446
7441
|
return (React__default['default'].createElement(_DrawerSurface, { styles: (_b = props.styles) === null || _b === void 0 ? void 0 : _b.drawerSurfaceStyles, onLightDismiss: props.onLightDismiss },
|
7447
|
-
React__default['default'].createElement(react.Stack, { styles: props.styles, role: "menu" }, menuItemsToRender === null || menuItemsToRender === void 0 ? void 0 :
|
7442
|
+
React__default['default'].createElement(react.Stack, { styles: props.styles, role: "menu", "data-ui-id": "drawer-menu" }, menuItemsToRender === null || menuItemsToRender === void 0 ? void 0 :
|
7448
7443
|
menuItemsToRender.slice(0, 1).map((item) => (React__default['default'].createElement(DrawerMenuItem, Object.assign({}, item, { key: '0', styles: modifiedFirstItemStyle, onItemClick: (ev, itemKey) => {
|
7449
7444
|
onItemClick(item, ev, itemKey);
|
7450
7445
|
} })))), menuItemsToRender === null || menuItemsToRender === void 0 ? void 0 :
|
@@ -12711,7 +12706,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
|
|
12711
12706
|
*/
|
12712
12707
|
const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
|
12713
12708
|
|
12714
|
-
var call$d={cameraLabel:"Camera",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",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",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",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",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",resumeCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",
|
12709
|
+
var call$d={cameraLabel:"Camera",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",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",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",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",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",resumeCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show Dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",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$d,chat:chat$d,callWithChat:callWithChat$d};
|
12715
12710
|
|
12716
12711
|
var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButton:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
|
12717
12712
|
|
@@ -14359,6 +14354,19 @@ const adaptCompositeState = (compositeState) => {
|
|
14359
14354
|
compositeState.latestErrors, compositeState.displayName);
|
14360
14355
|
};
|
14361
14356
|
|
14357
|
+
// Copyright (c) Microsoft Corporation.
|
14358
|
+
// Licensed under the MIT license.
|
14359
|
+
/**
|
14360
|
+
* Subset of CallCompositePages that represent an end call state.
|
14361
|
+
* @private
|
14362
|
+
*/
|
14363
|
+
const END_CALL_PAGES = [
|
14364
|
+
'accessDeniedTeamsMeeting',
|
14365
|
+
'joinCallFailedDueToNoNetwork',
|
14366
|
+
'leftCall',
|
14367
|
+
'removedFromCall'
|
14368
|
+
];
|
14369
|
+
|
14362
14370
|
// Copyright (c) Microsoft Corporation.
|
14363
14371
|
const ACCESS_DENIED_TEAMS_MEETING_SUB_CODE = 5854;
|
14364
14372
|
const REMOVED_FROM_CALL_SUB_CODES = [5000, 5300];
|
@@ -14474,6 +14482,17 @@ const getCallCompositePage = (call, previousCall) => {
|
|
14474
14482
|
// No call state - show starting page (configuration)
|
14475
14483
|
return 'configuration';
|
14476
14484
|
};
|
14485
|
+
/** @private */
|
14486
|
+
const IsCallEndedPage = (
|
14487
|
+
/**
|
14488
|
+
* Explicitly listing the pages of this function intentionally.
|
14489
|
+
* This protects against adding a new composite page that should be marked as an callEndedPage.
|
14490
|
+
* EndCallPages are used to trigger onCallEnded events so this could easily be missed.
|
14491
|
+
* When you add a new composite page this will throw a compiler error. If this new page is an
|
14492
|
+
* EndCallPage ensure you update the END_CALL_PAGES. Afterwards update the `page` parameter
|
14493
|
+
* type below to allow your new page, i.e. add `| <your new page>
|
14494
|
+
*/
|
14495
|
+
page) => END_CALL_PAGES.includes(page);
|
14477
14496
|
/**
|
14478
14497
|
* Creates a new call control options object and sets the correct values for disabling
|
14479
14498
|
* the buttons provided in the `disabledControls` array.
|
@@ -14956,9 +14975,11 @@ const themedDialpadStyle$1 = (isMobile, theme) => ({
|
|
14956
14975
|
field: {
|
14957
14976
|
backgroundColor: theme.palette.white,
|
14958
14977
|
fontSize: theme.fonts.large.fontSize,
|
14959
|
-
padding: '
|
14978
|
+
padding: '0 0.5rem ',
|
14960
14979
|
textAlign: 'center',
|
14961
|
-
|
14980
|
+
':active': {
|
14981
|
+
padding: '0 0.5rem'
|
14982
|
+
}
|
14962
14983
|
}
|
14963
14984
|
},
|
14964
14985
|
primaryContent: {
|
@@ -15028,7 +15049,7 @@ const SendDtmfDialpad = (props) => {
|
|
15028
15049
|
return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Modal, { titleAriaId: strings.dialpadModalAriaLabel, isOpen: showDialpad, onDismiss: onDismissTriggered, isBlocking: true, styles: dialpadModalStyle },
|
15029
15050
|
React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "end", verticalAlign: "center" },
|
15030
15051
|
React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color: theme.palette.black } })),
|
15031
|
-
React__default['default'].createElement(react.Stack,
|
15052
|
+
React__default['default'].createElement(react.Stack, { style: { overflow: 'hidden' } },
|
15032
15053
|
React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: strings }))))));
|
15033
15054
|
};
|
15034
15055
|
|
@@ -15091,12 +15112,12 @@ const CallControls = (props) => {
|
|
15091
15112
|
styles: buttonFlyoutIncreasedSizeStyles
|
15092
15113
|
},
|
15093
15114
|
disabled: isDisabled(options === null || options === void 0 ? void 0 : options.holdButton),
|
15094
|
-
['data-ui-id']: '
|
15115
|
+
['data-ui-id']: 'hold-button'
|
15095
15116
|
});
|
15096
15117
|
/* @conditional-compile-remove(PSTN-calls) */
|
15097
15118
|
items.push({
|
15098
15119
|
key: 'showDialpadKey',
|
15099
|
-
text: localeStrings.strings.call.
|
15120
|
+
text: localeStrings.strings.call.openDtmfDialpadLabel,
|
15100
15121
|
onClick: () => {
|
15101
15122
|
setShowDialpad(true);
|
15102
15123
|
},
|
@@ -15129,12 +15150,12 @@ const CallControls = (props) => {
|
|
15129
15150
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.cameraButton) })),
|
15130
15151
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
|
15131
15152
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) &&
|
15132
|
-
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(
|
15153
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15133
15154
|
!props.isMobile && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
|
15134
|
-
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(
|
15155
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15135
15156
|
React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })),
|
15136
15157
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.devicesButton) })),
|
15137
|
-
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(
|
15158
|
+
/* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
|
15138
15159
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
|
15139
15160
|
customButtons['primary'],
|
15140
15161
|
isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
|
@@ -15628,9 +15649,11 @@ const themedDialpadStyle = (isMobile, theme) => ({
|
|
15628
15649
|
field: {
|
15629
15650
|
backgroundColor: theme.palette.white,
|
15630
15651
|
fontSize: theme.fonts.large.fontSize,
|
15631
|
-
padding: '
|
15652
|
+
padding: '0 0.5rem',
|
15632
15653
|
textAlign: isMobile ? 'center' : 'left',
|
15633
|
-
|
15654
|
+
':active': {
|
15655
|
+
padding: '0 0.5rem'
|
15656
|
+
}
|
15634
15657
|
}
|
15635
15658
|
},
|
15636
15659
|
primaryContent: {
|
@@ -15692,7 +15715,7 @@ const CallingDialpad = (props) => {
|
|
15692
15715
|
React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", verticalAlign: "center" },
|
15693
15716
|
React__default['default'].createElement(react.Text, null, strings.dialpadModalTitle),
|
15694
15717
|
React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color: theme.palette.black } })),
|
15695
|
-
React__default['default'].createElement(react.Stack,
|
15718
|
+
React__default['default'].createElement(react.Stack, { style: { overflow: 'hidden' } }, dialpadComponent()))));
|
15696
15719
|
};
|
15697
15720
|
function DialpadStartCallIconTrampoline() {
|
15698
15721
|
/* @conditional-compile-remove(PSTN-calls) */
|
@@ -15866,7 +15889,7 @@ const PeoplePaneContent = (props) => {
|
|
15866
15889
|
// We want the drawer menu items to appear when participants in ParticipantList are clicked
|
15867
15890
|
onParticipantClick: props.mobileView ? setDrawerMenuItemsForParticipant : undefined });
|
15868
15891
|
}, [participantListDefaultProps, props.mobileView, setDrawerMenuItemsForParticipant, onRemoveParticipant]);
|
15869
|
-
const participantList = (React__default['default'].createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, title: props.strings.peoplePaneSubTitle }));
|
15892
|
+
const participantList = (React__default['default'].createElement(ParticipantListWithHeading, { isMobile: props.mobileView, participantListProps: participantListProps, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.mobileView ? undefined : props.onFetchParticipantMenuItems, title: props.strings.peoplePaneSubTitle }));
|
15870
15893
|
if (props.mobileView) {
|
15871
15894
|
return (React__default['default'].createElement(react.Stack, { verticalFill: true, styles: peoplePaneContainerStyle, tokens: peoplePaneContainerTokens },
|
15872
15895
|
React__default['default'].createElement(react.Stack.Item, { grow: true, styles: participantListContainerStyles }, participantList),
|
@@ -16153,7 +16176,7 @@ const textStyle = (theme) => {
|
|
16153
16176
|
* @private
|
16154
16177
|
*/
|
16155
16178
|
const CallArrangement = (props) => {
|
16156
|
-
var _a;
|
16179
|
+
var _a, _b;
|
16157
16180
|
const containerClassName = React.useMemo(() => {
|
16158
16181
|
return props.mobileView ? containerStyleMobile : containerStyleDesktop;
|
16159
16182
|
}, [props.mobileView]);
|
@@ -16200,13 +16223,25 @@ const CallArrangement = (props) => {
|
|
16200
16223
|
return callCompositeContainerCSS;
|
16201
16224
|
};
|
16202
16225
|
/* @conditional-compile-remove(one-to-n-calling) */
|
16203
|
-
const callPaneContent = () => {
|
16226
|
+
const callPaneContent = React.useCallback(() => {
|
16204
16227
|
var _a;
|
16205
|
-
if (adapter && _isInCall(callStatus)) {
|
16228
|
+
if (adapter && _isInCall(callStatus) && activePane === 'people') {
|
16206
16229
|
return (React__default['default'].createElement(CallPane, { callAdapter: adapter, onClose: closePane, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems, onPeopleButtonClicked: showShowPeopleTabHeaderButton$1(props.callControlProps.options) ? selectPeople : undefined, modalLayerHostId: props.modalLayerHostId, activePane: activePane, mobileView: props.mobileView, inviteLink: props.callControlProps.callInvitationURL }));
|
16207
16230
|
}
|
16208
16231
|
return React__default['default'].createElement(React__default['default'].Fragment, null);
|
16209
|
-
}
|
16232
|
+
}, [
|
16233
|
+
activePane,
|
16234
|
+
adapter,
|
16235
|
+
callStatus,
|
16236
|
+
closePane,
|
16237
|
+
props.callControlProps.callInvitationURL,
|
16238
|
+
(_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems,
|
16239
|
+
props.callControlProps.options,
|
16240
|
+
props.mobileView,
|
16241
|
+
props.modalLayerHostId,
|
16242
|
+
props.onFetchAvatarPersonaData,
|
16243
|
+
selectPeople
|
16244
|
+
]);
|
16210
16245
|
return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles) },
|
16211
16246
|
React__default['default'].createElement(react.Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
|
16212
16247
|
React__default['default'].createElement(react.Stack, { horizontal: true, grow: true },
|
@@ -16219,7 +16254,7 @@ const CallArrangement = (props) => {
|
|
16219
16254
|
React__default['default'].createElement(react.Stack.Item, { grow: true, style: callCompositeContainerFlex() },
|
16220
16255
|
React__default['default'].createElement(react.Stack.Item, { styles: callGalleryStyles, grow: true }, props.onRenderGalleryContent && (React__default['default'].createElement(react.Stack, { verticalFill: true, styles: mediaGalleryContainerStyles }, props.onRenderGalleryContent())))),
|
16221
16256
|
callPaneContent()),
|
16222
|
-
((
|
16257
|
+
((_b = props.callControlProps) === null || _b === void 0 ? void 0 : _b.options) !== false &&
|
16223
16258
|
/* @conditional-compile-remove(one-to-n-calling) */ !isMobileWithActivePane && (React__default['default'].createElement(react.Stack.Item, { className: callControlsContainerStyles },
|
16224
16259
|
React__default['default'].createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView,
|
16225
16260
|
/* @conditional-compile-remove(one-to-n-calling) */
|
@@ -17197,7 +17232,7 @@ const HoldPane = () => {
|
|
17197
17232
|
React__default['default'].createElement(react.PrimaryButton, { text: strings.resumeCallButtonLabel, ariaLabel: strings.resumeCallButtonAriaLabel, styles: resumeButtonStyles, onClick: () => {
|
17198
17233
|
/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
|
17199
17234
|
holdButtonProps.onToggleHold();
|
17200
|
-
} }))));
|
17235
|
+
}, "data-ui-id": "hold-page-resume-call-button" }))));
|
17201
17236
|
};
|
17202
17237
|
const getMinutes = (time) => {
|
17203
17238
|
return Math.floor(getSeconds(time) / 60);
|
@@ -17330,12 +17365,20 @@ const CallComposite = (props) => {
|
|
17330
17365
|
role } = props;
|
17331
17366
|
React.useEffect(() => {
|
17332
17367
|
(() => __awaiter$5(void 0, void 0, void 0, function* () {
|
17368
|
+
/* @conditional-compile-remove(rooms) */
|
17369
|
+
if (role === 'Consumer') {
|
17370
|
+
// Need to ask for audio devices to get access to speakers. Speaker permission is tied to microphone permission (when you request 'audio' permission using the SDK) its
|
17371
|
+
// actually granting access to query both microphone and speaker. TODO: Need some investigation to see if we can get access to speakers without SDK.
|
17372
|
+
yield adapter.askDevicePermission({ video: false, audio: true });
|
17373
|
+
adapter.querySpeakers();
|
17374
|
+
return;
|
17375
|
+
}
|
17333
17376
|
yield adapter.askDevicePermission({ video: true, audio: true });
|
17334
17377
|
adapter.queryCameras();
|
17335
17378
|
adapter.queryMicrophones();
|
17336
17379
|
adapter.querySpeakers();
|
17337
17380
|
}))();
|
17338
|
-
}, [adapter]);
|
17381
|
+
}, [adapter, /* @conditional-compile-remove(rooms) */ role]);
|
17339
17382
|
const mobileView = formFactor === 'mobile';
|
17340
17383
|
/* @conditional-compile-remove(one-to-n-calling) */
|
17341
17384
|
const modalLayerHostId = reactHooks.useId('modalLayerhost');
|
@@ -17485,11 +17528,29 @@ class CallContext {
|
|
17485
17528
|
setCurrentCallId(callId) {
|
17486
17529
|
this.callId = callId;
|
17487
17530
|
}
|
17531
|
+
onCallEnded(handler) {
|
17532
|
+
this.emitter.on('callEnded', handler);
|
17533
|
+
}
|
17534
|
+
offCallEnded(handler) {
|
17535
|
+
this.emitter.off('callEnded', handler);
|
17536
|
+
}
|
17488
17537
|
updateClientState(clientState) {
|
17489
|
-
var _a;
|
17538
|
+
var _a, _b, _c;
|
17490
17539
|
const call = this.callId ? clientState.calls[this.callId] : undefined;
|
17491
17540
|
const latestEndedCall = findLatestEndedCall(clientState.callsEnded);
|
17492
|
-
|
17541
|
+
// As the state is transitioning to a new state, trigger appropriate callback events.
|
17542
|
+
const oldPage = this.state.page;
|
17543
|
+
const newPage = getCallCompositePage(call, latestEndedCall);
|
17544
|
+
if (!IsCallEndedPage(oldPage) && IsCallEndedPage(newPage)) {
|
17545
|
+
this.emitter.emit('callEnded', {
|
17546
|
+
callId: this.callId,
|
17547
|
+
callEndedCode: (_a = latestEndedCall === null || latestEndedCall === void 0 ? void 0 : latestEndedCall.callEndReason) === null || _a === void 0 ? void 0 : _a.code,
|
17548
|
+
callEndedSubCode: (_b = latestEndedCall === null || latestEndedCall === void 0 ? void 0 : latestEndedCall.callEndReason) === null || _b === void 0 ? void 0 : _b.subCode
|
17549
|
+
});
|
17550
|
+
}
|
17551
|
+
if (this.state.page) {
|
17552
|
+
this.setState(Object.assign(Object.assign({}, this.state), { userId: clientState.userId, displayName: (_c = clientState.callAgent) === null || _c === void 0 ? void 0 : _c.displayName, call, page: newPage, endedCall: latestEndedCall, devices: clientState.deviceManager, latestErrors: clientState.latestErrors }));
|
17553
|
+
}
|
17493
17554
|
}
|
17494
17555
|
}
|
17495
17556
|
const findLatestEndedCall = (calls) => {
|
@@ -17527,6 +17588,7 @@ class AzureCommunicationCallAdapter {
|
|
17527
17588
|
this.deviceManager = deviceManager;
|
17528
17589
|
const isTeamsMeeting = 'meetingLink' in this.locator;
|
17529
17590
|
this.context = new CallContext(callClient.getState(), isTeamsMeeting);
|
17591
|
+
this.context.onCallEnded((endCallData) => this.emitter.emit('callEnded', endCallData));
|
17530
17592
|
const onStateChange = (clientState) => {
|
17531
17593
|
var _a;
|
17532
17594
|
// unsubscribe when the instance gets disposed
|
@@ -17699,9 +17761,7 @@ class AzureCommunicationCallAdapter {
|
|
17699
17761
|
});
|
17700
17762
|
}
|
17701
17763
|
leaveCall() {
|
17702
|
-
var _a;
|
17703
17764
|
return __awaiter$4(this, void 0, void 0, function* () {
|
17704
|
-
const callId = (_a = this.call) === null || _a === void 0 ? void 0 : _a.id;
|
17705
17765
|
yield this.handlers.onHangUp();
|
17706
17766
|
this.unsubscribeCallEvents();
|
17707
17767
|
this.call = undefined;
|
@@ -17711,7 +17771,6 @@ class AzureCommunicationCallAdapter {
|
|
17711
17771
|
this.context.updateClientState(this.callClient.getState());
|
17712
17772
|
this.stopCamera();
|
17713
17773
|
this.mute();
|
17714
|
-
this.emitter.emit('callEnded', { callId });
|
17715
17774
|
});
|
17716
17775
|
}
|
17717
17776
|
setCamera(device, options) {
|
@@ -18352,7 +18411,7 @@ const DesktopMoreButton = (props) => {
|
|
18352
18411
|
if (props.onClickShowDialpad) {
|
18353
18412
|
items.push({
|
18354
18413
|
key: 'showDialpadKey',
|
18355
|
-
text: localeStrings.strings.callWithChat.
|
18414
|
+
text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,
|
18356
18415
|
onClick: () => {
|
18357
18416
|
props.onClickShowDialpad && props.onClickShowDialpad();
|
18358
18417
|
},
|
@@ -18881,7 +18940,7 @@ const MoreDrawer = (props) => {
|
|
18881
18940
|
drawerMenuItems.push({
|
18882
18941
|
itemKey: 'showDialpadKey',
|
18883
18942
|
disabled: props.disableButtonsForHoldScreen,
|
18884
|
-
text: localeStrings.strings.callWithChat.
|
18943
|
+
text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,
|
18885
18944
|
onItemClick: () => {
|
18886
18945
|
props.onClickShowDialpad && props.onClickShowDialpad();
|
18887
18946
|
},
|
@@ -19126,7 +19185,7 @@ const CallWithChatScreen = (props) => {
|
|
19126
19185
|
// Perf: Instead of removing the video gallery from DOM, we hide it to prevent re-renders.
|
19127
19186
|
style: callCompositeContainerCSS },
|
19128
19187
|
React__default['default'].createElement(CallComposite, Object.assign({}, props, { formFactor: formFactor, options: { callControls: false }, adapter: callAdapter, fluentTheme: fluentTheme }))),
|
19129
|
-
chatProps.adapter && callAdapter && hasJoinedCall && (React__default['default'].createElement(CallWithChatPane, { chatCompositeProps: chatProps, inviteLink: props.joinInvitationURL, onClose: closePane, chatAdapter: chatProps.adapter, callAdapter: callAdapter, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onChatButtonClicked: showShowChatTabHeaderButton(props.callControls) ? selectChat : undefined, onPeopleButtonClicked: showShowPeopleTabHeaderButton(props.callControls) ? selectPeople : undefined, modalLayerHostId: modalLayerHostId, mobileView: mobileView, activePane: activePane,
|
19188
|
+
chatProps.adapter && callAdapter && hasJoinedCall && (React__default['default'].createElement(CallWithChatPane, { chatCompositeProps: chatProps, inviteLink: props.joinInvitationURL, onClose: closePane, chatAdapter: chatProps.adapter, callAdapter: callAdapter, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, onChatButtonClicked: showShowChatTabHeaderButton(props.callControls) ? selectChat : undefined, onPeopleButtonClicked: showShowPeopleTabHeaderButton(props.callControls) ? selectPeople : undefined, modalLayerHostId: modalLayerHostId, mobileView: mobileView, activePane: activePane,
|
19130
19189
|
/* @conditional-compile-remove(file-sharing) */
|
19131
19190
|
fileSharing: props.fileSharing, rtl: props.rtl }))),
|
19132
19191
|
showControlBar && !isMobileWithActivePane && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
|