@azure/communication-react 1.21.0-alpha-202411020018 → 1.21.0-alpha-202411060016
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 +77 -31
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BNPsH65w.js → ChatMessageComponentAsRichTextEditBox-gOhRkzVQ.js} +3 -3
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BNPsH65w.js.map → ChatMessageComponentAsRichTextEditBox-gOhRkzVQ.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CYii3cMB.js → RichTextSendBoxWrapper-W9emUhpu.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CYii3cMB.js.map → RichTextSendBoxWrapper-W9emUhpu.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-bz7CLz1d.js → index-B4neqg6y.js} +621 -129
- package/dist/dist-cjs/communication-react/index-B4neqg6y.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/calling-stateful-client/src/CallClientState.d.ts +42 -31
- package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +11 -2
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +88 -5
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.d.ts +14 -0
- package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.js +207 -0
- package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.js.map +1 -0
- package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +1 -1
- package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +6 -0
- package/dist/dist-esm/calling-stateful-client/src/Converter.js +16 -1
- package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts +9 -0
- package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +50 -0
- package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +33 -2
- package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +17 -0
- package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.d.ts +1 -2
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +10 -0
- package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.d.ts +9 -4
- package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.js +38 -9
- package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.js.map +1 -1
- package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.d.ts +18 -0
- package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.js +34 -0
- package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.js.map +1 -0
- package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -1
- package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +3 -3
- package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +1 -1
- package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +17 -2
- package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +4 -3
- package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoTile.js +13 -11
- package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +9 -2
- package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.d.ts +11 -0
- package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.js +21 -0
- package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.js.map +1 -0
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +2 -0
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +6 -0
- package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +4 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +4 -2
- package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +6 -2
- package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.d.ts +3 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +9 -1
- package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
- package/package.json +3 -2
- package/dist/dist-cjs/communication-react/index-bz7CLz1d.js.map +0 -1
@@ -188,7 +188,7 @@ function getDefaultExportFromCjs (x) {
|
|
188
188
|
// Copyright (c) Microsoft Corporation.
|
189
189
|
// Licensed under the MIT License.
|
190
190
|
// GENERATED FILE. DO NOT EDIT MANUALLY.
|
191
|
-
var telemetryVersion = '1.21.0-alpha-
|
191
|
+
var telemetryVersion = '1.21.0-alpha-202411060016';
|
192
192
|
|
193
193
|
|
194
194
|
var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
|
@@ -615,7 +615,7 @@ const getAssignedBreakoutRoom$1 = (state, props) => {
|
|
615
615
|
|
616
616
|
// Copyright (c) Microsoft Corporation.
|
617
617
|
// Licensed under the MIT License.
|
618
|
-
var __awaiter$
|
618
|
+
var __awaiter$11 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
619
619
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
620
620
|
return new (P || (P = Promise))(function (resolve, reject) {
|
621
621
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -655,7 +655,7 @@ const _isPreviewOn = (deviceManager) => {
|
|
655
655
|
*
|
656
656
|
* @private
|
657
657
|
*/
|
658
|
-
const disposeAllLocalPreviewViews = (callClient) => __awaiter$
|
658
|
+
const disposeAllLocalPreviewViews = (callClient) => __awaiter$11(void 0, void 0, void 0, function* () {
|
659
659
|
const unparentedViews = callClient.getState().deviceManager.unparentedViews;
|
660
660
|
for (const view of unparentedViews) {
|
661
661
|
yield callClient.disposeView(undefined, undefined, view);
|
@@ -731,7 +731,7 @@ const maskDisplayNameWithRole = (displayName, localUserRole, participantRole, is
|
|
731
731
|
* Helper to create a local video stream from the selected camera.
|
732
732
|
* @private
|
733
733
|
*/
|
734
|
-
const createLocalVideoStream = (callClient) => __awaiter$
|
734
|
+
const createLocalVideoStream = (callClient) => __awaiter$11(void 0, void 0, void 0, function* () {
|
735
735
|
const camera = yield (callClient === null || callClient === void 0 ? void 0 : callClient.getState().deviceManager.selectedCamera);
|
736
736
|
if (camera) {
|
737
737
|
return new communicationCalling.LocalVideoStream(camera);
|
@@ -866,7 +866,7 @@ const holdButtonSelector = reselect__namespace.createSelector([getCallState], (c
|
|
866
866
|
|
867
867
|
// Copyright (c) Microsoft Corporation.
|
868
868
|
// Licensed under the MIT License.
|
869
|
-
var __awaiter
|
869
|
+
var __awaiter$10 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
870
870
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
871
871
|
return new (P || (P = Promise))(function (resolve, reject) {
|
872
872
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -887,7 +887,7 @@ const areStreamsEqual = (prevStream, newStream) => {
|
|
887
887
|
* @private
|
888
888
|
*/
|
889
889
|
const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager, call, options) => {
|
890
|
-
const onStartLocalVideo = () => __awaiter
|
890
|
+
const onStartLocalVideo = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
891
891
|
// Before the call object creates a stream, dispose of any local preview streams.
|
892
892
|
// @TODO: is there any way to parent the unparented view to the call object instead
|
893
893
|
// of disposing and creating a new stream?
|
@@ -907,7 +907,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
907
907
|
yield call.startVideo(stream);
|
908
908
|
}
|
909
909
|
});
|
910
|
-
const onStopLocalVideo = (stream) => __awaiter
|
910
|
+
const onStopLocalVideo = (stream) => __awaiter$10(void 0, void 0, void 0, function* () {
|
911
911
|
const callId = call === null || call === void 0 ? void 0 : call.id;
|
912
912
|
if (!callId) {
|
913
913
|
return;
|
@@ -916,7 +916,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
916
916
|
yield call.stopVideo(stream);
|
917
917
|
}
|
918
918
|
});
|
919
|
-
const onToggleCamera = (options) => __awaiter
|
919
|
+
const onToggleCamera = (options) => __awaiter$10(void 0, void 0, void 0, function* () {
|
920
920
|
const previewOn = _isPreviewOn(callClient.getState().deviceManager);
|
921
921
|
// the disposal of the unparented views is to workaround: https://skype.visualstudio.com/SPOOL/_workitems/edit/3030558.
|
922
922
|
// The root cause of the issue is caused by never transitioning the unparented view to the
|
@@ -973,19 +973,19 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
973
973
|
}
|
974
974
|
}
|
975
975
|
});
|
976
|
-
const onSelectMicrophone = (device) => __awaiter
|
976
|
+
const onSelectMicrophone = (device) => __awaiter$10(void 0, void 0, void 0, function* () {
|
977
977
|
if (!deviceManager) {
|
978
978
|
return;
|
979
979
|
}
|
980
980
|
return deviceManager.selectMicrophone(device);
|
981
981
|
});
|
982
|
-
const onSelectSpeaker = (device) => __awaiter
|
982
|
+
const onSelectSpeaker = (device) => __awaiter$10(void 0, void 0, void 0, function* () {
|
983
983
|
if (!deviceManager) {
|
984
984
|
return;
|
985
985
|
}
|
986
986
|
return deviceManager.selectSpeaker(device);
|
987
987
|
});
|
988
|
-
const onSelectCamera = (device, options) => __awaiter
|
988
|
+
const onSelectCamera = (device, options) => __awaiter$10(void 0, void 0, void 0, function* () {
|
989
989
|
if (!deviceManager) {
|
990
990
|
return;
|
991
991
|
}
|
@@ -1015,9 +1015,9 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1015
1015
|
}, options);
|
1016
1016
|
}
|
1017
1017
|
});
|
1018
|
-
const onRaiseHand = () => __awaiter
|
1019
|
-
const onLowerHand = () => __awaiter
|
1020
|
-
const onToggleRaiseHand = () => __awaiter
|
1018
|
+
const onRaiseHand = () => __awaiter$10(void 0, void 0, void 0, function* () { var _a; return yield ((_a = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.RaiseHand)) === null || _a === void 0 ? void 0 : _a.raiseHand()); });
|
1019
|
+
const onLowerHand = () => __awaiter$10(void 0, void 0, void 0, function* () { var _b; return yield ((_b = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.RaiseHand)) === null || _b === void 0 ? void 0 : _b.lowerHand()); });
|
1020
|
+
const onToggleRaiseHand = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1021
1021
|
const raiseHandFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.RaiseHand);
|
1022
1022
|
const localUserId = callClient.getState().userId;
|
1023
1023
|
const isLocalRaisedHand = raiseHandFeature === null || raiseHandFeature === void 0 ? void 0 : raiseHandFeature.getRaisedHands().find((publishedState) => toFlatCommunicationIdentifier(publishedState.identifier) === toFlatCommunicationIdentifier(localUserId));
|
@@ -1028,7 +1028,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1028
1028
|
yield (raiseHandFeature === null || raiseHandFeature === void 0 ? void 0 : raiseHandFeature.raiseHand());
|
1029
1029
|
}
|
1030
1030
|
});
|
1031
|
-
const onReactionClick = (reaction) => __awaiter
|
1031
|
+
const onReactionClick = (reaction) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1032
1032
|
var _c;
|
1033
1033
|
if (reaction === 'like' ||
|
1034
1034
|
reaction === 'applause' ||
|
@@ -1042,18 +1042,18 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1042
1042
|
}
|
1043
1043
|
return;
|
1044
1044
|
});
|
1045
|
-
const onToggleMicrophone = () => __awaiter
|
1045
|
+
const onToggleMicrophone = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1046
1046
|
if (!call || !(_isInCall(call.state) || _isInLobbyOrConnecting(call.state))) {
|
1047
1047
|
throw new Error(`Please invoke onToggleMicrophone after call is started`);
|
1048
1048
|
}
|
1049
1049
|
return call.isMuted ? yield call.unmute() : yield call.mute();
|
1050
1050
|
});
|
1051
|
-
const onStartScreenShare = () => __awaiter
|
1052
|
-
const onStopScreenShare = () => __awaiter
|
1053
|
-
const onToggleScreenShare = () => __awaiter
|
1054
|
-
const onHangUp = (forEveryone) => __awaiter
|
1055
|
-
const onToggleHold = () => __awaiter
|
1056
|
-
const onCreateLocalStreamView = (...args_1) => __awaiter
|
1051
|
+
const onStartScreenShare = () => __awaiter$10(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
|
1052
|
+
const onStopScreenShare = () => __awaiter$10(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
|
1053
|
+
const onToggleScreenShare = () => __awaiter$10(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
|
1054
|
+
const onHangUp = (forEveryone) => __awaiter$10(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp({ forEveryone: forEveryone === true ? true : false })); });
|
1055
|
+
const onToggleHold = () => __awaiter$10(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.state) === 'LocalHold' ? yield (call === null || call === void 0 ? void 0 : call.resume()) : yield (call === null || call === void 0 ? void 0 : call.hold()); });
|
1056
|
+
const onCreateLocalStreamView = (...args_1) => __awaiter$10(void 0, [...args_1], void 0, function* (options = { scalingMode: 'Crop', isMirrored: true }) {
|
1057
1057
|
if (!call || call.localVideoStreams.length === 0) {
|
1058
1058
|
return;
|
1059
1059
|
}
|
@@ -1077,7 +1077,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1077
1077
|
}
|
1078
1078
|
return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
|
1079
1079
|
});
|
1080
|
-
const onCreateRemoteStreamView = (userId_1, ...args_2) => __awaiter
|
1080
|
+
const onCreateRemoteStreamView = (userId_1, ...args_2) => __awaiter$10(void 0, [userId_1, ...args_2], void 0, function* (userId, options = { scalingMode: 'Crop' }) {
|
1081
1081
|
if (!call) {
|
1082
1082
|
return;
|
1083
1083
|
}
|
@@ -1114,7 +1114,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1114
1114
|
}
|
1115
1115
|
return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
|
1116
1116
|
});
|
1117
|
-
const onDisposeRemoteStreamView = (userId) => __awaiter
|
1117
|
+
const onDisposeRemoteStreamView = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1118
1118
|
if (!call) {
|
1119
1119
|
return;
|
1120
1120
|
}
|
@@ -1135,7 +1135,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1135
1135
|
callClient.disposeView(call.id, participant.identifier, screenShareStream);
|
1136
1136
|
}
|
1137
1137
|
});
|
1138
|
-
const onDisposeRemoteVideoStreamView = (userId) => __awaiter
|
1138
|
+
const onDisposeRemoteVideoStreamView = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1139
1139
|
if (!call) {
|
1140
1140
|
return;
|
1141
1141
|
}
|
@@ -1154,7 +1154,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1154
1154
|
}
|
1155
1155
|
}
|
1156
1156
|
});
|
1157
|
-
const onDisposeRemoteScreenShareStreamView = (userId) => __awaiter
|
1157
|
+
const onDisposeRemoteScreenShareStreamView = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1158
1158
|
if (!call) {
|
1159
1159
|
return;
|
1160
1160
|
}
|
@@ -1173,7 +1173,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1173
1173
|
}
|
1174
1174
|
}
|
1175
1175
|
});
|
1176
|
-
const onDisposeLocalScreenShareStreamView = () => __awaiter
|
1176
|
+
const onDisposeLocalScreenShareStreamView = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1177
1177
|
if (!call) {
|
1178
1178
|
return;
|
1179
1179
|
}
|
@@ -1186,7 +1186,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1186
1186
|
callClient.disposeView(call.id, undefined, screenShareStream);
|
1187
1187
|
}
|
1188
1188
|
});
|
1189
|
-
const onDisposeLocalStreamView = () => __awaiter
|
1189
|
+
const onDisposeLocalStreamView = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1190
1190
|
// If the user is currently in a call, dispose of the local stream view attached to that call.
|
1191
1191
|
const callState = call && callClient.getState().calls[call.id];
|
1192
1192
|
const localStream = callState === null || callState === void 0 ? void 0 : callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');
|
@@ -1198,17 +1198,17 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1198
1198
|
// TODO: we need to remember which LocalVideoStream was used for LocalPreview and dispose that one.
|
1199
1199
|
yield disposeAllLocalPreviewViews(callClient);
|
1200
1200
|
});
|
1201
|
-
const onSendDtmfTone = (dtmfTone) => __awaiter
|
1201
|
+
const onSendDtmfTone = (dtmfTone) => __awaiter$10(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
|
1202
1202
|
const notImplemented = () => {
|
1203
1203
|
throw new Error('Not implemented, cannot call a method from an abstract object');
|
1204
1204
|
};
|
1205
1205
|
/* @conditional-compile-remove(call-readiness) */
|
1206
|
-
const askDevicePermission = (constrain) => __awaiter
|
1206
|
+
const askDevicePermission = (constrain) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1207
1207
|
if (deviceManager) {
|
1208
1208
|
yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
|
1209
1209
|
}
|
1210
1210
|
});
|
1211
|
-
const onRemoveVideoBackgroundEffects = () => __awaiter
|
1211
|
+
const onRemoveVideoBackgroundEffects = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1212
1212
|
const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
|
1213
1213
|
(deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
|
1214
1214
|
if (stream) {
|
@@ -1220,7 +1220,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1220
1220
|
}
|
1221
1221
|
}
|
1222
1222
|
});
|
1223
|
-
const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter
|
1223
|
+
const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1224
1224
|
var _d;
|
1225
1225
|
const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
|
1226
1226
|
(deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
|
@@ -1233,7 +1233,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1233
1233
|
return createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundBlurConfig));
|
1234
1234
|
}
|
1235
1235
|
});
|
1236
|
-
const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter
|
1236
|
+
const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1237
1237
|
var _e;
|
1238
1238
|
const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
|
1239
1239
|
(deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
|
@@ -1246,7 +1246,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1246
1246
|
return (createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundReplacementConfig)));
|
1247
1247
|
}
|
1248
1248
|
});
|
1249
|
-
const onStartNoiseSuppressionEffect = () => __awaiter
|
1249
|
+
const onStartNoiseSuppressionEffect = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1250
1250
|
var _f;
|
1251
1251
|
const audioEffects = (options === null || options === void 0 ? void 0 : options.onResolveDeepNoiseSuppressionDependency) &&
|
1252
1252
|
((_f = (yield options.onResolveDeepNoiseSuppressionDependency())) === null || _f === void 0 ? void 0 : _f.deepNoiseSuppressionEffect);
|
@@ -1262,7 +1262,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1262
1262
|
}
|
1263
1263
|
}
|
1264
1264
|
});
|
1265
|
-
const onStopNoiseSuppressionEffect = () => __awaiter
|
1265
|
+
const onStopNoiseSuppressionEffect = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1266
1266
|
const stream = call === null || call === void 0 ? void 0 : call.localAudioStreams.find((stream) => stream.mediaStreamType === 'Audio');
|
1267
1267
|
if (stream && (options === null || options === void 0 ? void 0 : options.onResolveDeepNoiseSuppressionDependency)) {
|
1268
1268
|
const audioEffects = {
|
@@ -1271,37 +1271,37 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1271
1271
|
return yield stream.feature(communicationCalling.Features.AudioEffects).stopEffects(audioEffects);
|
1272
1272
|
}
|
1273
1273
|
});
|
1274
|
-
const onStartCaptions = (options) => __awaiter
|
1274
|
+
const onStartCaptions = (options) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1275
1275
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1276
1276
|
yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.startCaptions(options));
|
1277
1277
|
});
|
1278
|
-
const onStopCaptions = () => __awaiter
|
1278
|
+
const onStopCaptions = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1279
1279
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1280
1280
|
yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.stopCaptions());
|
1281
1281
|
});
|
1282
|
-
const onSetSpokenLanguage = (language) => __awaiter
|
1282
|
+
const onSetSpokenLanguage = (language) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1283
1283
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1284
1284
|
yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.setSpokenLanguage(language));
|
1285
1285
|
});
|
1286
|
-
const onSetCaptionLanguage = (language) => __awaiter
|
1286
|
+
const onSetCaptionLanguage = (language) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1287
1287
|
const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
|
1288
1288
|
yield captionsFeature.setCaptionLanguage(language);
|
1289
1289
|
});
|
1290
|
-
const onSubmitSurvey = (survey) => __awaiter
|
1291
|
-
const onStartSpotlight = (userIds) => __awaiter
|
1290
|
+
const onSubmitSurvey = (survey) => __awaiter$10(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.CallSurvey).submitSurvey(survey)); });
|
1291
|
+
const onStartSpotlight = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1292
1292
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1293
1293
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight(participants));
|
1294
1294
|
});
|
1295
|
-
const onStopSpotlight = (userIds) => __awaiter
|
1295
|
+
const onStopSpotlight = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1296
1296
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1297
1297
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
|
1298
1298
|
});
|
1299
|
-
const onStopAllSpotlight = () => __awaiter
|
1299
|
+
const onStopAllSpotlight = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1300
1300
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopAllSpotlight());
|
1301
1301
|
});
|
1302
|
-
const onMuteParticipant = (userId) => __awaiter
|
1302
|
+
const onMuteParticipant = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1303
1303
|
if (call === null || call === void 0 ? void 0 : call.remoteParticipants) {
|
1304
|
-
call === null || call === void 0 ? void 0 : call.remoteParticipants.forEach((participant) => __awaiter
|
1304
|
+
call === null || call === void 0 ? void 0 : call.remoteParticipants.forEach((participant) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1305
1305
|
// Using toFlatCommunicationIdentifier to convert the CommunicationIdentifier to string
|
1306
1306
|
// as _toCommunicationIdentifier(userId) comparison to participant.identifier did not work for this case
|
1307
1307
|
if (toFlatCommunicationIdentifier(participant.identifier) === userId) {
|
@@ -1310,27 +1310,27 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1310
1310
|
}));
|
1311
1311
|
}
|
1312
1312
|
});
|
1313
|
-
const onMuteAllRemoteParticipants = () => __awaiter
|
1313
|
+
const onMuteAllRemoteParticipants = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1314
1314
|
call === null || call === void 0 ? void 0 : call.muteAllRemoteParticipants();
|
1315
1315
|
});
|
1316
1316
|
const canStartSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.spotlightParticipant.isPresent;
|
1317
1317
|
const canRemoveSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.removeParticipantsSpotlight.isPresent;
|
1318
1318
|
const onStartLocalSpotlight = canStartSpotlight
|
1319
|
-
? () => __awaiter
|
1319
|
+
? () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1320
1320
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight());
|
1321
1321
|
})
|
1322
1322
|
: undefined;
|
1323
|
-
const onStopLocalSpotlight = () => __awaiter
|
1323
|
+
const onStopLocalSpotlight = () => __awaiter$10(void 0, void 0, void 0, function* () {
|
1324
1324
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight());
|
1325
1325
|
});
|
1326
1326
|
const onStartRemoteSpotlight = canStartSpotlight
|
1327
|
-
? (userIds) => __awaiter
|
1327
|
+
? (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1328
1328
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1329
1329
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight(participants));
|
1330
1330
|
})
|
1331
1331
|
: undefined;
|
1332
1332
|
const onStopRemoteSpotlight = canRemoveSpotlight
|
1333
|
-
? (userIds) => __awaiter
|
1333
|
+
? (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
|
1334
1334
|
const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
|
1335
1335
|
yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
|
1336
1336
|
})
|
@@ -1390,7 +1390,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
|
|
1390
1390
|
|
1391
1391
|
// Copyright (c) Microsoft Corporation.
|
1392
1392
|
// Licensed under the MIT License.
|
1393
|
-
var __awaiter
|
1393
|
+
var __awaiter$$ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
1394
1394
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
1395
1395
|
return new (P || (P = Promise))(function (resolve, reject) {
|
1396
1396
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -1421,7 +1421,7 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
|
|
1421
1421
|
// FIXME: onStartCall API should use string, not the underlying SDK types.
|
1422
1422
|
onStartCall: (participants, options) => {
|
1423
1423
|
return callAgent === null || callAgent === void 0 ? void 0 : callAgent.startCall(participants, options);
|
1424
|
-
}, onAddParticipant: (userId, options) => __awaiter
|
1424
|
+
}, onAddParticipant: (userId, options) => __awaiter$$(void 0, void 0, void 0, function* () {
|
1425
1425
|
const participant = _toCommunicationIdentifier(userId);
|
1426
1426
|
if (communicationCommon.isPhoneNumberIdentifier(participant)) {
|
1427
1427
|
call === null || call === void 0 ? void 0 : call.addParticipant(participant, options);
|
@@ -1429,16 +1429,16 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
|
|
1429
1429
|
else if (communicationCommon.isCommunicationUserIdentifier(participant) || communicationCommon.isMicrosoftTeamsUserIdentifier(participant)) {
|
1430
1430
|
call === null || call === void 0 ? void 0 : call.addParticipant(participant);
|
1431
1431
|
}
|
1432
|
-
}), onRemoveParticipant: (userId) => __awaiter
|
1432
|
+
}), onRemoveParticipant: (userId) => __awaiter$$(void 0, void 0, void 0, function* () {
|
1433
1433
|
const participant = _toCommunicationIdentifier(userId);
|
1434
1434
|
yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
|
1435
|
-
}), onAcceptCall: (incomingCallId, useVideo) => __awaiter
|
1435
|
+
}), onAcceptCall: (incomingCallId, useVideo) => __awaiter$$(void 0, void 0, void 0, function* () {
|
1436
1436
|
const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
|
1437
1437
|
const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
|
1438
1438
|
if (incomingCall) {
|
1439
1439
|
yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
|
1440
1440
|
}
|
1441
|
-
}), onRejectCall: (incomingCallId) => __awaiter
|
1441
|
+
}), onRejectCall: (incomingCallId) => __awaiter$$(void 0, void 0, void 0, function* () {
|
1442
1442
|
const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
|
1443
1443
|
if (incomingCall) {
|
1444
1444
|
yield incomingCall.reject();
|
@@ -1446,13 +1446,13 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
|
|
1446
1446
|
}),
|
1447
1447
|
/* @conditional-compile-remove(breakout-rooms) */
|
1448
1448
|
onHangUp: breakoutRoomOriginCall
|
1449
|
-
? () => __awaiter
|
1449
|
+
? () => __awaiter$$(void 0, void 0, void 0, function* () { return breakoutRoomOriginCall.hangUp().then(() => commonCallingHandlers.onHangUp()); })
|
1450
1450
|
: commonCallingHandlers.onHangUp });
|
1451
1451
|
});
|
1452
1452
|
|
1453
1453
|
// Copyright (c) Microsoft Corporation.
|
1454
1454
|
// Licensed under the MIT License.
|
1455
|
-
var __awaiter$
|
1455
|
+
var __awaiter$_ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
1456
1456
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
1457
1457
|
return new (P || (P = Promise))(function (resolve, reject) {
|
1458
1458
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -1483,7 +1483,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
|
|
1483
1483
|
return undefined;
|
1484
1484
|
},
|
1485
1485
|
/* @conditional-compile-remove(teams-identity-support-beta) */
|
1486
|
-
onAddParticipant: (userId, options) => __awaiter$
|
1486
|
+
onAddParticipant: (userId, options) => __awaiter$_(void 0, void 0, void 0, function* () {
|
1487
1487
|
const participant = _toCommunicationIdentifier(userId);
|
1488
1488
|
const threadId = options === null || options === void 0 ? void 0 : options.threadId;
|
1489
1489
|
if (communicationCommon.isCommunicationUserIdentifier(participant)) {
|
@@ -1496,7 +1496,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
|
|
1496
1496
|
call === null || call === void 0 ? void 0 : call.addParticipant(participant, threadId ? { threadId } : undefined);
|
1497
1497
|
}
|
1498
1498
|
call === null || call === void 0 ? void 0 : call.addParticipant(participant);
|
1499
|
-
}), onRemoveParticipant: (userId) => __awaiter$
|
1499
|
+
}), onRemoveParticipant: (userId) => __awaiter$_(void 0, void 0, void 0, function* () {
|
1500
1500
|
const participant = _toCommunicationIdentifier(userId);
|
1501
1501
|
if (communicationCommon.isCommunicationUserIdentifier(participant)) {
|
1502
1502
|
throw new Error('CommunicationIdentifier in Teams call is not supported!');
|
@@ -1505,13 +1505,13 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
|
|
1505
1505
|
throw new Error('Removing Microsoft Teams app identifier is not supported!');
|
1506
1506
|
}
|
1507
1507
|
yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
|
1508
|
-
}), onAcceptCall: (incomingCallId, useVideo) => __awaiter$
|
1508
|
+
}), onAcceptCall: (incomingCallId, useVideo) => __awaiter$_(void 0, void 0, void 0, function* () {
|
1509
1509
|
const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
|
1510
1510
|
const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
|
1511
1511
|
if (incomingCall) {
|
1512
1512
|
yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
|
1513
1513
|
}
|
1514
|
-
}), onRejectCall: (incomingCallId) => __awaiter$
|
1514
|
+
}), onRejectCall: (incomingCallId) => __awaiter$_(void 0, void 0, void 0, function* () {
|
1515
1515
|
const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
|
1516
1516
|
if (incomingCall) {
|
1517
1517
|
yield incomingCall.reject();
|
@@ -1818,7 +1818,7 @@ const getCaptionsSpeakerIdentifier = (captions) => {
|
|
1818
1818
|
|
1819
1819
|
// Copyright (c) Microsoft Corporation.
|
1820
1820
|
// Licensed under the MIT License.
|
1821
|
-
var __awaiter$
|
1821
|
+
var __awaiter$Z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
1822
1822
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
1823
1823
|
return new (P || (P = Promise))(function (resolve, reject) {
|
1824
1824
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -1899,7 +1899,7 @@ class ProxyDeviceManager {
|
|
1899
1899
|
}
|
1900
1900
|
}
|
1901
1901
|
};
|
1902
|
-
this.permissionsApiStateChangeHandler = () => __awaiter$
|
1902
|
+
this.permissionsApiStateChangeHandler = () => __awaiter$Z(this, void 0, void 0, function* () {
|
1903
1903
|
yield this.updateDevicePermissionState();
|
1904
1904
|
});
|
1905
1905
|
/**
|
@@ -1910,13 +1910,13 @@ class ProxyDeviceManager {
|
|
1910
1910
|
this.selectCamera = (videoDeviceInfo) => {
|
1911
1911
|
this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
|
1912
1912
|
};
|
1913
|
-
this.videoDevicesUpdated = () => __awaiter$
|
1913
|
+
this.videoDevicesUpdated = () => __awaiter$Z(this, void 0, void 0, function* () {
|
1914
1914
|
// Device Manager always has a camera with '' name if there are no real camera devices available.
|
1915
1915
|
// We don't want to show that in the UI.
|
1916
1916
|
const realCameras = (yield this._deviceManager.getCameras()).filter((c) => !!c.name);
|
1917
1917
|
this._context.setDeviceManagerCameras(dedupeById(realCameras));
|
1918
1918
|
});
|
1919
|
-
this.audioDevicesUpdated = () => __awaiter$
|
1919
|
+
this.audioDevicesUpdated = () => __awaiter$Z(this, void 0, void 0, function* () {
|
1920
1920
|
this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
|
1921
1921
|
if (this._deviceManager.isSpeakerSelectionAvailable) {
|
1922
1922
|
this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
|
@@ -1928,7 +1928,7 @@ class ProxyDeviceManager {
|
|
1928
1928
|
this.selectedSpeakerChanged = () => {
|
1929
1929
|
this._context.setDeviceManagerSelectedSpeaker(this._deviceManager.selectedSpeaker);
|
1930
1930
|
};
|
1931
|
-
this.updateDevicePermissionState = (sdkDeviceAccessState) => __awaiter$
|
1931
|
+
this.updateDevicePermissionState = (sdkDeviceAccessState) => __awaiter$Z(this, void 0, void 0, function* () {
|
1932
1932
|
let hasCameraPermission = !!(sdkDeviceAccessState === null || sdkDeviceAccessState === void 0 ? void 0 : sdkDeviceAccessState.video);
|
1933
1933
|
let hasMicPermission = !!(sdkDeviceAccessState === null || sdkDeviceAccessState === void 0 ? void 0 : sdkDeviceAccessState.audio);
|
1934
1934
|
// Supplement the SDK values with values from the Permissions API to get a better understanding of the device
|
@@ -2006,7 +2006,7 @@ class ProxyDeviceManager {
|
|
2006
2006
|
}
|
2007
2007
|
case 'askDevicePermission': {
|
2008
2008
|
return this._context.withAsyncErrorTeedToState((...args) => {
|
2009
|
-
return target.askDevicePermission(...args).then((deviceAccess) => __awaiter$
|
2009
|
+
return target.askDevicePermission(...args).then((deviceAccess) => __awaiter$Z(this, void 0, void 0, function* () {
|
2010
2010
|
yield this.updateDevicePermissionState(deviceAccess);
|
2011
2011
|
return deviceAccess;
|
2012
2012
|
}));
|
@@ -2116,6 +2116,21 @@ function convertSdkRemoteStreamToDeclarativeRemoteStream(stream) {
|
|
2116
2116
|
streamSize: stream.size
|
2117
2117
|
};
|
2118
2118
|
}
|
2119
|
+
/* @conditional-compile-remove(together-mode) */
|
2120
|
+
/**
|
2121
|
+
* @private
|
2122
|
+
*/
|
2123
|
+
function convertSdkCallFeatureStreamToDeclarativeCallFeatureStream(stream, featureName) {
|
2124
|
+
return {
|
2125
|
+
feature: featureName,
|
2126
|
+
id: stream.id,
|
2127
|
+
mediaStreamType: stream.mediaStreamType,
|
2128
|
+
isAvailable: stream.isAvailable,
|
2129
|
+
isReceiving: stream.isReceiving,
|
2130
|
+
view: undefined,
|
2131
|
+
streamSize: stream.size
|
2132
|
+
};
|
2133
|
+
}
|
2119
2134
|
/**
|
2120
2135
|
* @private
|
2121
2136
|
*/
|
@@ -2186,7 +2201,7 @@ function convertSdkCallToDeclarativeCall(call) {
|
|
2186
2201
|
pptLive: { isActive: false },
|
2187
2202
|
raiseHand: { raisedHands: [] },
|
2188
2203
|
/* @conditional-compile-remove(together-mode) */
|
2189
|
-
togetherMode: {
|
2204
|
+
togetherMode: { isActive: false, streams: {}, seatingPositions: {} },
|
2190
2205
|
localParticipantReaction: undefined,
|
2191
2206
|
transcription: { isTranscriptionActive: false },
|
2192
2207
|
screenShareRemoteParticipant: undefined,
|
@@ -2391,7 +2406,7 @@ class CallIdHistory {
|
|
2391
2406
|
|
2392
2407
|
// Copyright (c) Microsoft Corporation.
|
2393
2408
|
// Licensed under the MIT License.
|
2394
|
-
var __awaiter$
|
2409
|
+
var __awaiter$Y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2395
2410
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
2396
2411
|
return new (P || (P = Promise))(function (resolve, reject) {
|
2397
2412
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -2750,11 +2765,67 @@ let CallContext$2 = class CallContext {
|
|
2750
2765
|
});
|
2751
2766
|
}
|
2752
2767
|
/* @conditional-compile-remove(together-mode) */
|
2753
|
-
|
2768
|
+
setTogetherModeVideoStreams(callId, addedStreams, removedStreams) {
|
2769
|
+
this.modifyState((draft) => {
|
2770
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2771
|
+
if (call) {
|
2772
|
+
for (const stream of removedStreams) {
|
2773
|
+
if (stream.mediaStreamType === 'Video') {
|
2774
|
+
call.togetherMode.streams.mainVideoStream = undefined;
|
2775
|
+
call.togetherMode.isActive = false;
|
2776
|
+
call.togetherMode.seatingPositions = {};
|
2777
|
+
}
|
2778
|
+
}
|
2779
|
+
for (const newStream of addedStreams) {
|
2780
|
+
// This should only be called by the subscriber and some properties are add by other components so if the
|
2781
|
+
// stream already exists, only update the values that subscriber knows about.
|
2782
|
+
const mainVideoStream = call.togetherMode.streams.mainVideoStream;
|
2783
|
+
if (mainVideoStream && mainVideoStream.id === newStream.id) {
|
2784
|
+
mainVideoStream.mediaStreamType = newStream.mediaStreamType;
|
2785
|
+
mainVideoStream.isAvailable = newStream.isAvailable;
|
2786
|
+
mainVideoStream.isReceiving = newStream.isReceiving;
|
2787
|
+
}
|
2788
|
+
else {
|
2789
|
+
call.togetherMode.streams.mainVideoStream = newStream;
|
2790
|
+
}
|
2791
|
+
call.togetherMode.isActive = true;
|
2792
|
+
}
|
2793
|
+
}
|
2794
|
+
});
|
2795
|
+
}
|
2796
|
+
/* @conditional-compile-remove(together-mode) */
|
2797
|
+
setTogetherModeVideoStreamIsAvailable(callId, streamId, isAvailable) {
|
2754
2798
|
this.modifyState((draft) => {
|
2755
2799
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2756
2800
|
if (call) {
|
2757
|
-
|
2801
|
+
const stream = call.togetherMode.streams.mainVideoStream;
|
2802
|
+
if (stream && (stream === null || stream === void 0 ? void 0 : stream.id) === streamId) {
|
2803
|
+
stream.isReceiving = isAvailable;
|
2804
|
+
}
|
2805
|
+
}
|
2806
|
+
});
|
2807
|
+
}
|
2808
|
+
/* @conditional-compile-remove(together-mode) */
|
2809
|
+
setTogetherModeVideoStreamIsReceiving(callId, streamId, isReceiving) {
|
2810
|
+
this.modifyState((draft) => {
|
2811
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2812
|
+
if (call) {
|
2813
|
+
const stream = call.togetherMode.streams.mainVideoStream;
|
2814
|
+
if (stream && (stream === null || stream === void 0 ? void 0 : stream.id) === streamId) {
|
2815
|
+
stream.isReceiving = isReceiving;
|
2816
|
+
}
|
2817
|
+
}
|
2818
|
+
});
|
2819
|
+
}
|
2820
|
+
/* @conditional-compile-remove(together-mode) */
|
2821
|
+
setTogetherModeVideoStreamSize(callId, streamId, size) {
|
2822
|
+
this.modifyState((draft) => {
|
2823
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2824
|
+
if (call) {
|
2825
|
+
const stream = call.togetherMode.streams.mainVideoStream;
|
2826
|
+
if (stream && (stream === null || stream === void 0 ? void 0 : stream.id) === streamId) {
|
2827
|
+
stream.streamSize = size;
|
2828
|
+
}
|
2758
2829
|
}
|
2759
2830
|
});
|
2760
2831
|
}
|
@@ -2764,14 +2835,27 @@ let CallContext$2 = class CallContext {
|
|
2764
2835
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2765
2836
|
if (call) {
|
2766
2837
|
for (const stream of removedStream) {
|
2767
|
-
if (stream.mediaStreamType
|
2768
|
-
|
2769
|
-
call.togetherMode.
|
2838
|
+
if (stream.mediaStreamType === 'Video') {
|
2839
|
+
call.togetherMode.streams.mainVideoStream = undefined;
|
2840
|
+
call.togetherMode.isActive = false;
|
2770
2841
|
}
|
2771
2842
|
}
|
2772
2843
|
}
|
2773
2844
|
});
|
2774
2845
|
}
|
2846
|
+
/* @conditional-compile-remove(together-mode) */
|
2847
|
+
setTogetherModeSeatingCoordinates(callId, seatingMap) {
|
2848
|
+
this.modifyState((draft) => {
|
2849
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2850
|
+
if (call) {
|
2851
|
+
const seatingPositions = {};
|
2852
|
+
for (const [userId, seatingPosition] of seatingMap.entries()) {
|
2853
|
+
seatingPositions[userId] = seatingPosition;
|
2854
|
+
}
|
2855
|
+
call.togetherMode.seatingPositions = seatingPositions;
|
2856
|
+
}
|
2857
|
+
});
|
2858
|
+
}
|
2775
2859
|
setCallRaisedHands(callId, raisedHands) {
|
2776
2860
|
this.modifyState((draft) => {
|
2777
2861
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
@@ -2966,6 +3050,20 @@ let CallContext$2 = class CallContext {
|
|
2966
3050
|
}
|
2967
3051
|
});
|
2968
3052
|
}
|
3053
|
+
/* @conditional-compile-remove(together-mode) */
|
3054
|
+
setTogetherModeVideoStreamRendererView(callId, togetherModeStreamType, view) {
|
3055
|
+
this.modifyState((draft) => {
|
3056
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
3057
|
+
if (call) {
|
3058
|
+
if (togetherModeStreamType === 'Video') {
|
3059
|
+
const togetherModeStream = call.togetherMode.streams.mainVideoStream;
|
3060
|
+
if (togetherModeStream) {
|
3061
|
+
togetherModeStream.view = view;
|
3062
|
+
}
|
3063
|
+
}
|
3064
|
+
}
|
3065
|
+
});
|
3066
|
+
}
|
2969
3067
|
setParticipantState(callId, participantKey, state) {
|
2970
3068
|
this.modifyState((draft) => {
|
2971
3069
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
@@ -3397,7 +3495,7 @@ let CallContext$2 = class CallContext {
|
|
3397
3495
|
* @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
|
3398
3496
|
*/
|
3399
3497
|
withAsyncErrorTeedToState(action, target) {
|
3400
|
-
return (...args) => __awaiter$
|
3498
|
+
return (...args) => __awaiter$Y(this, void 0, void 0, function* () {
|
3401
3499
|
try {
|
3402
3500
|
return yield action(...args);
|
3403
3501
|
}
|
@@ -3938,7 +4036,7 @@ function _logStreamEvent(eventName, streamLogInfo, error) {
|
|
3938
4036
|
|
3939
4037
|
// Copyright (c) Microsoft Corporation.
|
3940
4038
|
// Licensed under the MIT License.
|
3941
|
-
var __awaiter$
|
4039
|
+
var __awaiter$X = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3942
4040
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3943
4041
|
return new (P || (P = Promise))(function (resolve, reject) {
|
3944
4042
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -3948,7 +4046,7 @@ var __awaiter$W = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
3948
4046
|
});
|
3949
4047
|
};
|
3950
4048
|
function createViewVideo(context, internalContext, callId, stream, participantId, options) {
|
3951
|
-
return __awaiter$
|
4049
|
+
return __awaiter$X(this, void 0, void 0, function* () {
|
3952
4050
|
// we can only have 3 types of createView
|
3953
4051
|
let streamEventType;
|
3954
4052
|
// we will reuse these for local as well but we need to make sure the remote stream is passed in like before.
|
@@ -4077,7 +4175,7 @@ function createViewVideo(context, internalContext, callId, stream, participantId
|
|
4077
4175
|
});
|
4078
4176
|
}
|
4079
4177
|
function createViewUnparentedVideo(context, internalContext, stream, options) {
|
4080
|
-
return __awaiter$
|
4178
|
+
return __awaiter$X(this, void 0, void 0, function* () {
|
4081
4179
|
const renderInfo = internalContext.getUnparentedRenderInfo(stream);
|
4082
4180
|
if (renderInfo && renderInfo.status === 'Rendered') {
|
4083
4181
|
console.warn('Unparented LocalVideoStream is already rendered');
|
@@ -4237,7 +4335,7 @@ function disposeViewUnparentedVideo(context, internalContext, stream) {
|
|
4237
4335
|
/**
|
4238
4336
|
* @private
|
4239
4337
|
*/
|
4240
|
-
function createView(context, internalContext, callId, participantId, stream, options) {
|
4338
|
+
function createView$1(context, internalContext, callId, participantId, stream, options) {
|
4241
4339
|
const streamType = stream.mediaStreamType;
|
4242
4340
|
if (callId) {
|
4243
4341
|
return createViewVideo(context, internalContext, callId, stream, participantId, options);
|
@@ -4246,7 +4344,7 @@ function createView(context, internalContext, callId, participantId, stream, opt
|
|
4246
4344
|
// Render LocalVideoStream that is not part of a Call
|
4247
4345
|
// Because it is not part of the call we don't tee errors to state naturally (e.g. via a Call Client function such as startVideo).
|
4248
4346
|
// We do not have a startLocalPreviewVideo function, so as a workaround we ensure any errors are propagated here.
|
4249
|
-
return context.withAsyncErrorTeedToState(() => __awaiter$
|
4347
|
+
return context.withAsyncErrorTeedToState(() => __awaiter$X(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
|
4250
4348
|
}
|
4251
4349
|
else {
|
4252
4350
|
_logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
|
@@ -4256,7 +4354,7 @@ function createView(context, internalContext, callId, participantId, stream, opt
|
|
4256
4354
|
/**
|
4257
4355
|
* @private
|
4258
4356
|
*/
|
4259
|
-
function disposeView(context, internalContext, callId, participantId, stream) {
|
4357
|
+
function disposeView$1(context, internalContext, callId, participantId, stream) {
|
4260
4358
|
const streamType = stream.mediaStreamType;
|
4261
4359
|
if (callId) {
|
4262
4360
|
disposeViewVideo(context, internalContext, callId, stream, participantId);
|
@@ -4283,7 +4381,7 @@ function disposeAllViewsFromCall(context, internalContext, callId) {
|
|
4283
4381
|
for (const [_, remoteStreamAndRenderer] of participantStreams.entries()) {
|
4284
4382
|
// We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to
|
4285
4383
|
// convert the SDK stream to declarative stream which is not pretty so this could use some further refactoring.
|
4286
|
-
disposeView(context, internalContext, callId, participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(remoteStreamAndRenderer.stream));
|
4384
|
+
disposeView$1(context, internalContext, callId, participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(remoteStreamAndRenderer.stream));
|
4287
4385
|
}
|
4288
4386
|
}
|
4289
4387
|
}
|
@@ -4293,7 +4391,17 @@ function disposeAllViewsFromCall(context, internalContext, callId) {
|
|
4293
4391
|
if (localStreamAndRenderer && localStreamAndRenderer.renderer) {
|
4294
4392
|
// We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to
|
4295
4393
|
// convert the SDK stream to declarative stream which is not pretty so this could use some further refactoring.
|
4296
|
-
disposeView(context, internalContext, callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localStreamAndRenderer.stream));
|
4394
|
+
disposeView$1(context, internalContext, callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localStreamAndRenderer.stream));
|
4395
|
+
}
|
4396
|
+
}
|
4397
|
+
}
|
4398
|
+
/* @conditional-compile-remove(together-mode) */
|
4399
|
+
const callFeatureStreams = internalContext.getCallFeatureRenderInfosForCall(callId);
|
4400
|
+
/* @conditional-compile-remove(together-mode) */
|
4401
|
+
if (callFeatureStreams) {
|
4402
|
+
for (const featureStreams of callFeatureStreams.values()) {
|
4403
|
+
for (const streamAndRenderer of featureStreams.values()) {
|
4404
|
+
disposeView$1(context, internalContext, callId, undefined, convertSdkRemoteStreamToDeclarativeRemoteStream(streamAndRenderer.stream));
|
4297
4405
|
}
|
4298
4406
|
}
|
4299
4407
|
}
|
@@ -4343,7 +4451,7 @@ let ParticipantSubscriber$1 = class ParticipantSubscriber {
|
|
4343
4451
|
// as it doesn't make sense to render for an ended participant.
|
4344
4452
|
if (this._participant.videoStreams.length > 0) {
|
4345
4453
|
for (const stream of this._participant.videoStreams) {
|
4346
|
-
disposeView(this._context, this._internalContext, this._callIdRef.callId, this._participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(stream));
|
4454
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, this._participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(stream));
|
4347
4455
|
this._internalContext.deleteRemoteRenderInfo(this._callIdRef.callId, this._participantKey, stream.id);
|
4348
4456
|
}
|
4349
4457
|
}
|
@@ -4372,7 +4480,7 @@ let ParticipantSubscriber$1 = class ParticipantSubscriber {
|
|
4372
4480
|
var _a;
|
4373
4481
|
for (const stream of event.removed) {
|
4374
4482
|
(_a = this._remoteVideoStreamSubscribers.get(stream.id)) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
4375
|
-
disposeView(this._context, this._internalContext, this._callIdRef.callId, this._participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(stream));
|
4483
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, this._participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(stream));
|
4376
4484
|
this._internalContext.deleteRemoteRenderInfo(this._callIdRef.callId, this._participantKey, stream.id);
|
4377
4485
|
}
|
4378
4486
|
for (const stream of event.added) {
|
@@ -4432,7 +4540,7 @@ class RecordingSubscriber {
|
|
4432
4540
|
|
4433
4541
|
// Copyright (c) Microsoft Corporation.
|
4434
4542
|
// Licensed under the MIT License.
|
4435
|
-
var __awaiter$
|
4543
|
+
var __awaiter$W = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
4436
4544
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4437
4545
|
return new (P || (P = Promise))(function (resolve, reject) {
|
4438
4546
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -4456,7 +4564,7 @@ class PPTLiveSubscriber {
|
|
4456
4564
|
this._context.setCallPPTLiveActive(this._callIdRef.callId, this._pptLive.isActive);
|
4457
4565
|
this.checkAndUpdatePPTLiveParticipant();
|
4458
4566
|
};
|
4459
|
-
this.checkAndUpdatePPTLiveParticipant = () => __awaiter$
|
4567
|
+
this.checkAndUpdatePPTLiveParticipant = () => __awaiter$W(this, void 0, void 0, function* () {
|
4460
4568
|
if (!this._pptLive.activePresenterId) {
|
4461
4569
|
return;
|
4462
4570
|
}
|
@@ -4910,34 +5018,288 @@ class BreakoutRoomsSubscriber {
|
|
4910
5018
|
}
|
4911
5019
|
}
|
4912
5020
|
|
5021
|
+
var __awaiter$V = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
5022
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
5023
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5024
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5025
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
5026
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
5027
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
5028
|
+
});
|
5029
|
+
};
|
5030
|
+
/* @conditional-compile-remove(together-mode) */
|
5031
|
+
/**
|
5032
|
+
* @private
|
5033
|
+
*
|
5034
|
+
*/
|
5035
|
+
function createView(context, internalContext, callId, stream, options) {
|
5036
|
+
const streamType = stream.mediaStreamType;
|
5037
|
+
if (callId && isCallFeatureStream(stream)) {
|
5038
|
+
return createCallFeatureViewVideo(context, internalContext, callId, stream, options);
|
5039
|
+
}
|
5040
|
+
else {
|
5041
|
+
_logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
|
5042
|
+
return Promise.resolve(undefined);
|
5043
|
+
}
|
5044
|
+
}
|
5045
|
+
/* @conditional-compile-remove(together-mode) */
|
5046
|
+
// This function is used to create a view for a stream that is part of a call feature.
|
5047
|
+
function createCallFeatureViewVideo(context, internalContext, callId, stream, options) {
|
5048
|
+
return __awaiter$V(this, void 0, void 0, function* () {
|
5049
|
+
const streamEventType = 'createViewCallFeature';
|
5050
|
+
const streamType = stream === null || stream === void 0 ? void 0 : stream.mediaStreamType;
|
5051
|
+
const callFeatureStreamId = stream && stream.id;
|
5052
|
+
const streamLogInfo = {
|
5053
|
+
callId,
|
5054
|
+
undefined,
|
5055
|
+
streamId: callFeatureStreamId,
|
5056
|
+
streamType,
|
5057
|
+
streamEventType
|
5058
|
+
};
|
5059
|
+
// make different logging announcement based on whether or not we are starting a local or remote
|
5060
|
+
_logStreamEvent(EventNames.CREATING_VIEW, streamLogInfo);
|
5061
|
+
const featureName = getStreamFeatureName(stream);
|
5062
|
+
// if we have a participant Id and a stream get the remote info, else get the local render info from state.
|
5063
|
+
const renderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
|
5064
|
+
if (!renderInfo) {
|
5065
|
+
_logStreamEvent(EventNames.STREAM_NOT_FOUND, streamLogInfo);
|
5066
|
+
return;
|
5067
|
+
}
|
5068
|
+
if (renderInfo.status === 'Rendered') {
|
5069
|
+
_logStreamEvent(EventNames.STREAM_ALREADY_RENDERED, streamLogInfo);
|
5070
|
+
return;
|
5071
|
+
}
|
5072
|
+
if (renderInfo.status === 'Rendering') {
|
5073
|
+
// Do not log to console here as this is a very common situation due to UI rerenders while
|
5074
|
+
// the video rendering is in progress.
|
5075
|
+
_logStreamEvent(EventNames.STREAM_RENDERING, streamLogInfo);
|
5076
|
+
return;
|
5077
|
+
}
|
5078
|
+
// "Stopping" only happens if the stream was in "rendering" but `disposeView` was called.
|
5079
|
+
// Now that `createView` has been re-called, we can flip the state back to "rendering".
|
5080
|
+
if (renderInfo.status === 'Stopping') {
|
5081
|
+
_logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
|
5082
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'Rendering', renderInfo.renderer);
|
5083
|
+
return;
|
5084
|
+
}
|
5085
|
+
const renderer = new communicationCalling.VideoStreamRenderer(renderInfo.stream);
|
5086
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'Rendering', undefined);
|
5087
|
+
let view;
|
5088
|
+
try {
|
5089
|
+
view = yield renderer.createView(options);
|
5090
|
+
}
|
5091
|
+
catch (e) {
|
5092
|
+
_logStreamEvent(EventNames.CREATE_STREAM_FAIL, streamLogInfo, e);
|
5093
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'NotRendered', undefined);
|
5094
|
+
throw e;
|
5095
|
+
}
|
5096
|
+
// Since render could take some time, we need to check if the stream is still valid and if we received a signal to
|
5097
|
+
// stop rendering.
|
5098
|
+
const refreshedRenderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
|
5099
|
+
if (!refreshedRenderInfo) {
|
5100
|
+
// RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer
|
5101
|
+
// and clean up the state.
|
5102
|
+
_logStreamEvent(EventNames.RENDER_INFO_NOT_FOUND, streamLogInfo);
|
5103
|
+
renderer.dispose();
|
5104
|
+
setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, undefined);
|
5105
|
+
return;
|
5106
|
+
}
|
5107
|
+
if (refreshedRenderInfo.status === 'Stopping') {
|
5108
|
+
// Stop render was called on this stream after we had started rendering. We will dispose this view and do not
|
5109
|
+
// put the view into the state.
|
5110
|
+
_logStreamEvent(EventNames.CREATED_STREAM_STOPPING, streamLogInfo);
|
5111
|
+
renderer.dispose();
|
5112
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, refreshedRenderInfo.stream, 'NotRendered', undefined);
|
5113
|
+
setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, undefined);
|
5114
|
+
return;
|
5115
|
+
}
|
5116
|
+
// Else the stream still exists and status is not telling us to stop rendering. Complete the render process by
|
5117
|
+
// updating the state.
|
5118
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, refreshedRenderInfo.stream, 'Rendered', renderer);
|
5119
|
+
setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, convertFromSDKToDeclarativeVideoStreamRendererView(view));
|
5120
|
+
_logStreamEvent(EventNames.VIEW_RENDER_SUCCEED, streamLogInfo);
|
5121
|
+
return {
|
5122
|
+
renderer,
|
5123
|
+
view
|
5124
|
+
};
|
5125
|
+
});
|
5126
|
+
}
|
5127
|
+
/* @conditional-compile-remove(together-mode) */
|
5128
|
+
/**
|
5129
|
+
* @private
|
5130
|
+
*/
|
5131
|
+
function disposeView(context, internalContext, callId, stream) {
|
5132
|
+
const streamType = stream.mediaStreamType;
|
5133
|
+
if (callId && isCallFeatureStream(stream)) {
|
5134
|
+
return disposeCallFeatureViewVideo(context, internalContext, callId, stream);
|
5135
|
+
}
|
5136
|
+
else {
|
5137
|
+
_logStreamEvent(EventNames.DISPOSE_STREAM_INVALID_PARAMS, { streamType });
|
5138
|
+
return;
|
5139
|
+
}
|
5140
|
+
}
|
5141
|
+
/* @conditional-compile-remove(together-mode) */
|
5142
|
+
/**
|
5143
|
+
* @private
|
5144
|
+
*/
|
5145
|
+
function disposeCallFeatureViewVideo(context, internalContext, callId, stream) {
|
5146
|
+
const streamType = stream.mediaStreamType;
|
5147
|
+
const callFeatureStreamId = stream && stream.id;
|
5148
|
+
const streamLogInfo = { callId, undefined, streamId: callFeatureStreamId, streamType };
|
5149
|
+
_logStreamEvent(EventNames.START_DISPOSE_STREAM, streamLogInfo);
|
5150
|
+
const featureName = getStreamFeatureName(stream);
|
5151
|
+
{
|
5152
|
+
setCallFeatureVideoRendererView(callId, featureName, context, streamType, undefined);
|
5153
|
+
}
|
5154
|
+
const renderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
|
5155
|
+
if (!renderInfo) {
|
5156
|
+
_logStreamEvent(EventNames.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
|
5157
|
+
return;
|
5158
|
+
}
|
5159
|
+
// Nothing to dispose of or clean up -- we can safely exit early here.
|
5160
|
+
if (renderInfo.status === 'NotRendered') {
|
5161
|
+
_logStreamEvent(EventNames.STREAM_ALREADY_DISPOSED, streamLogInfo);
|
5162
|
+
return;
|
5163
|
+
}
|
5164
|
+
// Status is already marked as "stopping" so we can exit early here. This is because stopping only occurs
|
5165
|
+
// when the stream is being created in createView but hasn't been completed being created yet. The createView
|
5166
|
+
// method will see the "stopping" status and perform the cleanup
|
5167
|
+
if (renderInfo.status === 'Stopping') {
|
5168
|
+
_logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
|
5169
|
+
return;
|
5170
|
+
}
|
5171
|
+
// If the stream is in the middle of being rendered (i.e. has state "Rendering"), we need the status as
|
5172
|
+
// "stopping" without performing any cleanup. This will tell the `createView` method that it should stop
|
5173
|
+
// rendering and clean up the state once the view has finished being created.
|
5174
|
+
if (renderInfo.status === 'Rendering') {
|
5175
|
+
_logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
|
5176
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, streamType, renderInfo.stream, 'Stopping', renderInfo.renderer);
|
5177
|
+
return;
|
5178
|
+
}
|
5179
|
+
if (renderInfo.renderer) {
|
5180
|
+
_logStreamEvent(EventNames.DISPOSING_RENDERER, streamLogInfo);
|
5181
|
+
renderInfo.renderer.dispose();
|
5182
|
+
// Else the state must be in the "Rendered" state, so we can dispose the renderer and clean up the state.
|
5183
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, streamType, renderInfo.stream, 'NotRendered', undefined);
|
5184
|
+
setCallFeatureVideoRendererView(callId, featureName, context, streamType, undefined);
|
5185
|
+
}
|
5186
|
+
else {
|
5187
|
+
_logStreamEvent(EventNames.RENDERER_NOT_FOUND, streamLogInfo);
|
5188
|
+
}
|
5189
|
+
}
|
5190
|
+
/* @conditional-compile-remove(together-mode) */
|
5191
|
+
/**
|
5192
|
+
* @private
|
5193
|
+
*/
|
5194
|
+
const setCallFeatureVideoRendererView = (callId, featureName, context, streamType, view) => {
|
5195
|
+
if (featureName === 'togetherMode') {
|
5196
|
+
context.setTogetherModeVideoStreamRendererView(callId, streamType, view);
|
5197
|
+
}
|
5198
|
+
};
|
5199
|
+
/* @conditional-compile-remove(together-mode) */
|
5200
|
+
/**
|
5201
|
+
* @private
|
5202
|
+
*/
|
5203
|
+
const getStreamFeatureName = (stream) => {
|
5204
|
+
if (stream.feature) {
|
5205
|
+
return stream.feature;
|
5206
|
+
}
|
5207
|
+
throw new Error('Feature name not found');
|
5208
|
+
};
|
5209
|
+
/* @conditional-compile-remove(together-mode) */
|
5210
|
+
/**
|
5211
|
+
* @private
|
5212
|
+
*/
|
5213
|
+
function isCallFeatureStream(stream) {
|
5214
|
+
return 'feature' in stream || false;
|
5215
|
+
}
|
5216
|
+
|
4913
5217
|
// Copyright (c) Microsoft Corporation.
|
4914
5218
|
// Licensed under the MIT License.
|
5219
|
+
/* @conditional-compile-remove(together-mode) */
|
4915
5220
|
/**
|
4916
5221
|
* @private
|
4917
5222
|
*/
|
5223
|
+
class TogetherModeVideoStreamSubscriber {
|
5224
|
+
constructor(callIdRef, stream, context) {
|
5225
|
+
this.subscribe = () => {
|
5226
|
+
this._togetherModeStream.on('isAvailableChanged', this.isAvailableChanged);
|
5227
|
+
this._togetherModeStream.on('isReceivingChanged', this.isReceivingChanged);
|
5228
|
+
this._togetherModeStream.on('sizeChanged', this.isSizeChanged);
|
5229
|
+
};
|
5230
|
+
this.unsubscribe = () => {
|
5231
|
+
this._togetherModeStream.off('isAvailableChanged', this.isAvailableChanged);
|
5232
|
+
this._togetherModeStream.off('isReceivingChanged', this.isReceivingChanged);
|
5233
|
+
this._togetherModeStream.off('sizeChanged', this.isSizeChanged);
|
5234
|
+
};
|
5235
|
+
this.isAvailableChanged = () => {
|
5236
|
+
this._context.setTogetherModeVideoStreamIsAvailable(this._callIdRef.callId, this._togetherModeStream.id, this._togetherModeStream.isAvailable);
|
5237
|
+
};
|
5238
|
+
this.isReceivingChanged = () => {
|
5239
|
+
this._context.setTogetherModeVideoStreamIsReceiving(this._callIdRef.callId, this._togetherModeStream.id, this._togetherModeStream.isReceiving);
|
5240
|
+
};
|
5241
|
+
this.isSizeChanged = () => {
|
5242
|
+
this._context.setTogetherModeVideoStreamSize(this._callIdRef.callId, this._togetherModeStream.id, this._togetherModeStream.size);
|
5243
|
+
};
|
5244
|
+
this._callIdRef = callIdRef;
|
5245
|
+
this._togetherModeStream = stream;
|
5246
|
+
this._context = context;
|
5247
|
+
this.subscribe();
|
5248
|
+
}
|
5249
|
+
}
|
5250
|
+
|
5251
|
+
// Copyright (c) Microsoft Corporation.
|
5252
|
+
// Licensed under the MIT License.
|
5253
|
+
/* @conditional-compile-remove(together-mode) */
|
4918
5254
|
/* @conditional-compile-remove(together-mode) */
|
4919
5255
|
/**
|
4920
5256
|
* TogetherModeSubscriber is responsible for subscribing to together mode events and updating the call context accordingly.
|
4921
5257
|
*/
|
4922
5258
|
class TogetherModeSubscriber {
|
4923
|
-
constructor(callIdRef, context, togetherMode) {
|
5259
|
+
constructor(callIdRef, context, internalContext, togetherMode) {
|
5260
|
+
this._featureName = 'togetherMode';
|
4924
5261
|
this.subscribe = () => {
|
4925
5262
|
this._togetherMode.on('togetherModeStreamsUpdated', this.onTogetherModeStreamUpdated);
|
5263
|
+
this._togetherMode.on('togetherModeSceneUpdated', this.onSceneUpdated);
|
5264
|
+
this._togetherMode.on('togetherModeSeatingUpdated', this.onSeatUpdated);
|
4926
5265
|
};
|
4927
5266
|
this.unsubscribe = () => {
|
4928
5267
|
this._togetherMode.off('togetherModeStreamsUpdated', this.onTogetherModeStreamUpdated);
|
5268
|
+
this._togetherMode.off('togetherModeSceneUpdated', this.onSceneUpdated);
|
5269
|
+
this._togetherMode.off('togetherModeSeatingUpdated', this.onSeatUpdated);
|
4929
5270
|
};
|
4930
|
-
this.
|
4931
|
-
|
4932
|
-
|
5271
|
+
this.onSceneUpdated = (args) => {
|
5272
|
+
this._context.setTogetherModeSeatingCoordinates(this._callIdRef.callId, args);
|
5273
|
+
};
|
5274
|
+
this.onSeatUpdated = (args) => {
|
5275
|
+
this._context.setTogetherModeSeatingCoordinates(this._callIdRef.callId, args);
|
5276
|
+
};
|
5277
|
+
this.addRemoteVideoStreamSubscriber = (togetherModeVideoStream) => {
|
5278
|
+
var _a;
|
5279
|
+
(_a = this._togetherModeVideoStreamSubscribers.get(togetherModeVideoStream.id)) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
5280
|
+
this._togetherModeVideoStreamSubscribers.set(togetherModeVideoStream.id, new TogetherModeVideoStreamSubscriber(this._callIdRef, togetherModeVideoStream, this._context));
|
5281
|
+
};
|
5282
|
+
this.updateTogetherModeStreams = (addedStreams, removedStreams) => {
|
5283
|
+
var _a;
|
5284
|
+
for (const stream of removedStreams) {
|
5285
|
+
(_a = this._togetherModeVideoStreamSubscribers.get(stream.id)) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
5286
|
+
disposeView(this._context, this._internalContext, this._callIdRef.callId, convertSdkCallFeatureStreamToDeclarativeCallFeatureStream(stream, this._featureName));
|
5287
|
+
this._internalContext.deleteCallFeatureRenderInfo(this._callIdRef.callId, this._featureName, stream.mediaStreamType);
|
4933
5288
|
}
|
4934
|
-
|
4935
|
-
this.
|
5289
|
+
for (const stream of addedStreams) {
|
5290
|
+
this._internalContext.setCallFeatureRenderInfo(this._callIdRef.callId, this._featureName, stream.mediaStreamType, stream, 'NotRendered', undefined);
|
5291
|
+
this.addRemoteVideoStreamSubscriber(stream);
|
4936
5292
|
}
|
5293
|
+
this._context.setTogetherModeVideoStreams(this._callIdRef.callId, addedStreams.map((stream) => convertSdkCallFeatureStreamToDeclarativeCallFeatureStream(stream, this._featureName)), removedStreams.map((stream) => convertSdkCallFeatureStreamToDeclarativeCallFeatureStream(stream, this._featureName)));
|
5294
|
+
};
|
5295
|
+
this.onTogetherModeStreamUpdated = (args) => {
|
5296
|
+
this.updateTogetherModeStreams(args.added, args.removed);
|
4937
5297
|
};
|
4938
5298
|
this._callIdRef = callIdRef;
|
4939
5299
|
this._context = context;
|
5300
|
+
this._internalContext = internalContext;
|
4940
5301
|
this._togetherMode = togetherMode;
|
5302
|
+
this._togetherModeVideoStreamSubscribers = new Map();
|
4941
5303
|
this.subscribe();
|
4942
5304
|
}
|
4943
5305
|
}
|
@@ -5011,7 +5373,7 @@ class CallSubscriber {
|
|
5011
5373
|
// disposed) and we should not be updating it any more. So if video is rendering we stop rendering.
|
5012
5374
|
for (const localVideoStream of this._call.localVideoStreams) {
|
5013
5375
|
const mediaStreamType = localVideoStream.mediaStreamType;
|
5014
|
-
disposeView(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localVideoStream));
|
5376
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localVideoStream));
|
5015
5377
|
this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId, mediaStreamType);
|
5016
5378
|
}
|
5017
5379
|
this._diagnosticsSubscriber.unsubscribe();
|
@@ -5119,7 +5481,7 @@ class CallSubscriber {
|
|
5119
5481
|
for (const localVideoStream of event.removed) {
|
5120
5482
|
const mediaStreamType = localVideoStream.mediaStreamType;
|
5121
5483
|
(_b = this._localVideoStreamVideoEffectsSubscribers.get(mediaStreamType)) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
5122
|
-
disposeView(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localVideoStream));
|
5484
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localVideoStream));
|
5123
5485
|
this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId, mediaStreamType);
|
5124
5486
|
}
|
5125
5487
|
this._context.setCallLocalVideoStream(this._callIdRef.callId, event.added.map(convertSdkLocalStreamToDeclarativeLocalStream), event.removed.map(convertSdkLocalStreamToDeclarativeLocalStream));
|
@@ -5150,7 +5512,7 @@ class CallSubscriber {
|
|
5150
5512
|
/* @conditional-compile-remove(breakout-rooms) */
|
5151
5513
|
this._breakoutRoomsSubscriber = new BreakoutRoomsSubscriber(this._callIdRef, this._context, this._call.feature(communicationCalling.Features.BreakoutRooms));
|
5152
5514
|
/* @conditional-compile-remove(together-mode) */
|
5153
|
-
this._togetherModeSubscriber = new TogetherModeSubscriber(this._callIdRef, this._context, this._call.feature(communicationCalling.Features.TogetherMode));
|
5515
|
+
this._togetherModeSubscriber = new TogetherModeSubscriber(this._callIdRef, this._context, this._internalContext, this._call.feature(communicationCalling.Features.TogetherMode));
|
5154
5516
|
this.subscribe();
|
5155
5517
|
}
|
5156
5518
|
// This is a helper function to safely call subscriber functions. This is needed in order to prevent events
|
@@ -5912,6 +6274,9 @@ class InternalCallContext {
|
|
5912
6274
|
this._remoteRenderInfos = new Map();
|
5913
6275
|
// <CallId, <MediaStreamType, LocalRenderInfo>>.
|
5914
6276
|
this._localRenderInfos = new Map();
|
6277
|
+
/* @conditional-compile-remove(together-mode) */
|
6278
|
+
// <CallId, <featureName, <MediaStreamType, CallFeatureRenderInfo>>>.
|
6279
|
+
this._callFeatureRenderInfos = new Map();
|
5915
6280
|
// Used for keeping track of rendered LocalVideoStreams that are not part of a Call.
|
5916
6281
|
this._unparentedRenderInfos = new Map();
|
5917
6282
|
this._callIdHistory = new CallIdHistory();
|
@@ -5931,6 +6296,13 @@ class InternalCallContext {
|
|
5931
6296
|
this._localRenderInfos.delete(oldCallId);
|
5932
6297
|
this._localRenderInfos.set(newCallId, localRenderInfos);
|
5933
6298
|
}
|
6299
|
+
/* @conditional-compile-remove(together-mode) */
|
6300
|
+
const callFeatureRenderInfos = this._callFeatureRenderInfos.get(oldCallId);
|
6301
|
+
/* @conditional-compile-remove(together-mode) */
|
6302
|
+
if (callFeatureRenderInfos) {
|
6303
|
+
this._callFeatureRenderInfos.delete(oldCallId);
|
6304
|
+
this._callFeatureRenderInfos.set(newCallId, callFeatureRenderInfos);
|
6305
|
+
}
|
5934
6306
|
}
|
5935
6307
|
getCallIds() {
|
5936
6308
|
return this._remoteRenderInfos.keys();
|
@@ -6029,6 +6401,46 @@ class InternalCallContext {
|
|
6029
6401
|
clearCallRelatedState() {
|
6030
6402
|
this._remoteRenderInfos.clear();
|
6031
6403
|
this._localRenderInfos.clear();
|
6404
|
+
/* @conditional-compile-remove(together-mode) */
|
6405
|
+
this._callFeatureRenderInfos.clear();
|
6406
|
+
}
|
6407
|
+
/* @conditional-compile-remove(together-mode) */
|
6408
|
+
getCallFeatureRenderInfosForCall(callId) {
|
6409
|
+
return this._callFeatureRenderInfos.get(this._callIdHistory.latestCallId(callId));
|
6410
|
+
}
|
6411
|
+
/* @conditional-compile-remove(together-mode) */
|
6412
|
+
getCallFeatureRenderInfo(callId, featureNameKey, streamKey) {
|
6413
|
+
var _a, _b;
|
6414
|
+
const callFeatureRenderInfosForCall = (_b = (_a = this._callFeatureRenderInfos
|
6415
|
+
.get(this._callIdHistory.latestCallId(callId))) === null || _a === void 0 ? void 0 : _a.get(featureNameKey)) === null || _b === void 0 ? void 0 : _b.get(streamKey);
|
6416
|
+
if (!callFeatureRenderInfosForCall) {
|
6417
|
+
return undefined;
|
6418
|
+
}
|
6419
|
+
return callFeatureRenderInfosForCall;
|
6420
|
+
}
|
6421
|
+
/* @conditional-compile-remove(together-mode) */
|
6422
|
+
setCallFeatureRenderInfo(callId, featureNameKey, streamKey, stream, status, renderer) {
|
6423
|
+
let callRenderInfos = this._callFeatureRenderInfos.get(this._callIdHistory.latestCallId(callId));
|
6424
|
+
if (!callRenderInfos) {
|
6425
|
+
callRenderInfos = new Map();
|
6426
|
+
// If the callId is not found, create a new map for the callId.
|
6427
|
+
this._callFeatureRenderInfos.set(this._callIdHistory.latestCallId(callId), callRenderInfos);
|
6428
|
+
}
|
6429
|
+
let featureRenderInfos = callRenderInfos.get(featureNameKey);
|
6430
|
+
if (!featureRenderInfos) {
|
6431
|
+
featureRenderInfos = new Map();
|
6432
|
+
callRenderInfos.set(featureNameKey, featureRenderInfos);
|
6433
|
+
}
|
6434
|
+
featureRenderInfos.set(streamKey, { stream, status, renderer });
|
6435
|
+
}
|
6436
|
+
/* @conditional-compile-remove(together-mode) */
|
6437
|
+
deleteCallFeatureRenderInfo(callId, featureName, streamKey) {
|
6438
|
+
var _a;
|
6439
|
+
const callFeatureRenderInfoForCall = this._callFeatureRenderInfos.get(this._callIdHistory.latestCallId(callId));
|
6440
|
+
if (!callFeatureRenderInfoForCall || !callFeatureRenderInfoForCall.get(featureName)) {
|
6441
|
+
return;
|
6442
|
+
}
|
6443
|
+
(_a = callFeatureRenderInfoForCall.get(featureName)) === null || _a === void 0 ? void 0 : _a.delete(streamKey);
|
6032
6444
|
}
|
6033
6445
|
}
|
6034
6446
|
|
@@ -6337,7 +6749,7 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
|
|
6337
6749
|
configurable: false,
|
6338
6750
|
value: (callId, participantId, stream, options) => __awaiter$O(void 0, void 0, void 0, function* () {
|
6339
6751
|
const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
|
6340
|
-
const result = yield createView(context, internalContext, callId, participantIdKind, stream, options);
|
6752
|
+
const result = yield createView$1(context, internalContext, callId, participantIdKind, stream, options);
|
6341
6753
|
// We only need to declaratify the VideoStreamRendererView object for remote participants. Because the updateScalingMode only needs to be called on remote participant stream views.
|
6342
6754
|
if ('id' in stream && callId && participantId && result) {
|
6343
6755
|
const participantKey = toFlatCommunicationIdentifier(participantId);
|
@@ -6346,11 +6758,26 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
|
|
6346
6758
|
return result;
|
6347
6759
|
})
|
6348
6760
|
});
|
6761
|
+
/* @conditional-compile-remove(together-mode) */
|
6762
|
+
Object.defineProperty(callClient, 'createCallFeatureView', {
|
6763
|
+
configurable: false,
|
6764
|
+
value: (callId, stream, options) => __awaiter$O(void 0, void 0, void 0, function* () {
|
6765
|
+
const result = yield createView(context, internalContext, callId, stream, options);
|
6766
|
+
return result;
|
6767
|
+
})
|
6768
|
+
});
|
6349
6769
|
Object.defineProperty(callClient, 'disposeView', {
|
6350
6770
|
configurable: false,
|
6351
6771
|
value: (callId, participantId, stream) => {
|
6352
6772
|
const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
|
6353
|
-
disposeView(context, internalContext, callId, participantIdKind, stream);
|
6773
|
+
disposeView$1(context, internalContext, callId, participantIdKind, stream);
|
6774
|
+
}
|
6775
|
+
});
|
6776
|
+
/* @conditional-compile-remove(together-mode) */
|
6777
|
+
Object.defineProperty(callClient, 'disposeCallFeatureView', {
|
6778
|
+
configurable: false,
|
6779
|
+
value: (callId, stream) => {
|
6780
|
+
disposeView(context, internalContext, callId, stream);
|
6354
6781
|
}
|
6355
6782
|
});
|
6356
6783
|
const newStatefulCallClient = new Proxy(callClient, new ProxyCallClient(context, internalContext));
|
@@ -15318,7 +15745,7 @@ class _ErrorBoundary extends React.Component {
|
|
15318
15745
|
// Copyright (c) Microsoft Corporation.
|
15319
15746
|
// Licensed under the MIT License.
|
15320
15747
|
/* @conditional-compile-remove(rich-text-editor) */
|
15321
|
-
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
15748
|
+
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-gOhRkzVQ.js'); }));
|
15322
15749
|
/**
|
15323
15750
|
* @private
|
15324
15751
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -15326,7 +15753,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
|
|
15326
15753
|
*
|
15327
15754
|
* @conditional-compile-remove(rich-text-editor)
|
15328
15755
|
*/
|
15329
|
-
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
15756
|
+
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-gOhRkzVQ.js'); });
|
15330
15757
|
/**
|
15331
15758
|
* @private
|
15332
15759
|
*/
|
@@ -17786,6 +18213,12 @@ const rootStyles = {
|
|
17786
18213
|
height: '100%',
|
17787
18214
|
width: '100%'
|
17788
18215
|
};
|
18216
|
+
/** @private */
|
18217
|
+
const videoTileHighContrastStyles = (theme) => ({
|
18218
|
+
'@media (forced-colors: active)': {
|
18219
|
+
border: `0.125rem solid ${theme.palette.black}`
|
18220
|
+
}
|
18221
|
+
});
|
17789
18222
|
/**
|
17790
18223
|
* @private
|
17791
18224
|
*/
|
@@ -18242,17 +18675,19 @@ const VideoTile = (props) => {
|
|
18242
18675
|
return (React.createElement(react.Stack, Object.assign({ "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
|
18243
18676
|
background: theme.palette.neutralLighter,
|
18244
18677
|
borderRadius: theme.effects.roundedCorner4
|
18245
|
-
},
|
18246
|
-
|
18247
|
-
|
18248
|
-
|
18249
|
-
|
18250
|
-
|
18251
|
-
|
18252
|
-
|
18253
|
-
|
18678
|
+
}, isSpeaking || raisedHand
|
18679
|
+
? {
|
18680
|
+
'&::after': {
|
18681
|
+
content: `''`,
|
18682
|
+
position: 'absolute',
|
18683
|
+
border: `0.25rem solid ${isSpeaking ? theme.palette.themePrimary : raisedHandBackgroundColor}`,
|
18684
|
+
borderRadius: theme.effects.roundedCorner4,
|
18685
|
+
width: '100%',
|
18686
|
+
height: '100%',
|
18687
|
+
pointerEvents: 'none'
|
18688
|
+
}
|
18254
18689
|
}
|
18255
|
-
|
18690
|
+
: {}, videoTileHighContrastStyles(theme), styles === null || styles === void 0 ? void 0 : styles.root) }, longPressHandlers),
|
18256
18691
|
React.createElement("div", Object.assign({ ref: videoTileRef, style: { width: '100%', height: '100%' } }, hoverHandlers, { "data-is-focusable": true }),
|
18257
18692
|
isVideoRendered ? (React.createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, isMirrored && { transform: 'scaleX(-1)' }, styles === null || styles === void 0 ? void 0 : styles.videoContainer) }, renderElement)) : (React.createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, {
|
18258
18693
|
opacity: participantStateString || props.participantState === 'Idle' ? 0.4 : 1
|
@@ -20978,7 +21413,7 @@ const FloatingLocalVideo = (props) => {
|
|
20978
21413
|
const modalStyles = React.useMemo(() => floatingLocalVideoModalStyle(theme, localVideoSizeRem), [theme, localVideoSizeRem]);
|
20979
21414
|
const layerProps = React.useMemo(() => ({ hostId: layerHostId }), [layerHostId]);
|
20980
21415
|
return (React.createElement(_ModalClone, { isOpen: true, isModeless: true, dragOptions: DRAG_OPTIONS$1, styles: modalStyles, layerProps: layerProps, maxDragPosition: modalMaxDragPosition, minDragPosition: modalMinDragPosition, dataUiId: "floating-local-video-host" },
|
20981
|
-
React.createElement(react.Stack, { "aria-label": (_a = strings.localVideoMovementAriaLabel) !== null && _a !== void 0 ? _a : strings.localVideoMovementLabel, tabIndex: 0 }, localVideoComponent)));
|
21416
|
+
React.createElement(react.Stack, { "aria-label": (_a = strings.localVideoMovementAriaLabel) !== null && _a !== void 0 ? _a : strings.localVideoMovementLabel, tabIndex: 0, role: 'dialog' }, localVideoComponent)));
|
20982
21417
|
};
|
20983
21418
|
|
20984
21419
|
// Copyright (c) Microsoft Corporation.
|
@@ -21403,7 +21838,7 @@ const VideoGallery = (props) => {
|
|
21403
21838
|
const showDisplayNameTrampoline = () => {
|
21404
21839
|
return layout === 'default' ? strings.localVideoLabel : isNarrow ? '' : strings.localVideoLabel;
|
21405
21840
|
};
|
21406
|
-
return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key"
|
21841
|
+
return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key" },
|
21407
21842
|
React.createElement(_LocalVideoTile, { alwaysShowLabelBackground: videoTilesOptions === null || videoTilesOptions === void 0 ? void 0 : videoTilesOptions.alwaysShowLabelBackground, userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === void 0 ? void 0 : localParticipant.videoStream) === null || _b === void 0 ? void 0 : _b.renderElement, displayName: showDisplayNameTrampoline(), initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: showLocalVideoTileLabel, showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles, raisedHand: localParticipant.raisedHand, reaction: localParticipant.reaction, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartLocalSpotlight, onStopSpotlight: onStopLocalSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, menuKind: remoteVideoTileMenu ? (remoteVideoTileMenu.kind === 'drawer' ? 'drawer' : 'contextual') : undefined, drawerMenuHostId: drawerMenuHostId, strings: strings, reactionResources: reactionResources, participantsCount: remoteParticipants.length + 1, isScreenSharingOn: localParticipant.isScreenSharingOn })));
|
21408
21843
|
}, [
|
21409
21844
|
isNarrow,
|
@@ -23883,6 +24318,26 @@ const messageBarStyle = (theme, errorType) => ({
|
|
23883
24318
|
}
|
23884
24319
|
});
|
23885
24320
|
|
24321
|
+
// Copyright (c) Microsoft Corporation.
|
24322
|
+
// Licensed under the MIT License.
|
24323
|
+
/**
|
24324
|
+
* Message Bar incorrectly applies dark theme and high contrast theme styles to links that have no hrefs.
|
24325
|
+
* This is a workaround to ensure that the link color is correct.
|
24326
|
+
*
|
24327
|
+
* More info: https://github.com/microsoft/fluentui/issues/14683
|
24328
|
+
*
|
24329
|
+
* @private
|
24330
|
+
*/
|
24331
|
+
const messageBarLinkStyles = (theme, underline) => react.mergeStyles({
|
24332
|
+
textDecoration: 'underline' ,
|
24333
|
+
color: theme.palette.themeDarkAlt,
|
24334
|
+
textDecorationColor: theme.palette.themeDarkAlt,
|
24335
|
+
'@media (forced-colors: active)': {
|
24336
|
+
color: 'LinkText',
|
24337
|
+
textDecorationColor: 'LinkText'
|
24338
|
+
}
|
24339
|
+
});
|
24340
|
+
|
23886
24341
|
// Copyright (c) Microsoft Corporation.
|
23887
24342
|
// Licensed under the MIT License.
|
23888
24343
|
/**
|
@@ -23910,13 +24365,13 @@ const _TroubleshootingGuideErrorBar = (props) => {
|
|
23910
24365
|
' ',
|
23911
24366
|
onPermissionsTroubleshootingClick && (React.createElement(react.Link, { onClick: () => {
|
23912
24367
|
onPermissionsTroubleshootingClick(permissionsState);
|
23913
|
-
}
|
23914
|
-
React.createElement("span", {
|
24368
|
+
} },
|
24369
|
+
React.createElement("span", { className: messageBarLinkStyles(theme) }, troubleshootingGuideStrings.devicePermissionLinkText)))));
|
23915
24370
|
const networkErrorBar = (React.createElement("div", null,
|
23916
24371
|
strings[error.type],
|
23917
24372
|
' ',
|
23918
24373
|
onNetworkingTroubleshootingClick && (React.createElement(react.Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
|
23919
|
-
React.createElement("span", {
|
24374
|
+
React.createElement("span", { className: messageBarLinkStyles(theme) }, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
|
23920
24375
|
return (React.createElement(react.MessageBar, Object.assign({}, props, { styles: messageBarStyle(theme, messageBarType(error.type)), key: error.type, messageBarType: messageBarType(error.type), messageBarIconProps: messageBarIconProps(error.type), actions: React.createElement(react.MessageBarButton, { text: troubleshootingGuideStrings.dismissButtonText, styles: dismissButtonStyle$1(theme), onClick: () => {
|
23921
24376
|
setDismissedErrors(dismissError(dismissedErrors, error));
|
23922
24377
|
}, ariaLabel: troubleshootingGuideStrings.dismissButtonText }), isMultiline: false }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
|
@@ -23946,7 +24401,7 @@ const _DevicePermissionDropdown = (props) => {
|
|
23946
24401
|
React.createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.placeHolderText)));
|
23947
24402
|
};
|
23948
24403
|
const onRenderCaretDown = () => {
|
23949
|
-
return React.createElement(react.
|
24404
|
+
return React.createElement(react.DefaultButton, { styles: actionButtonStyles }, strings === null || strings === void 0 ? void 0 : strings.actionButtonContent);
|
23950
24405
|
};
|
23951
24406
|
return (React.createElement(react.Dropdown, { "data-ui-id": 'permission-dropdown', placeholder: strings === null || strings === void 0 ? void 0 : strings.placeHolderText, label: strings === null || strings === void 0 ? void 0 : strings.label, "aria-labelledby": props.ariaLabelledby, onRenderPlaceholder: onRenderPlaceholder, onRenderCaretDown: onRenderCaretDown, onClick: () => {
|
23952
24407
|
if (askDevicePermission) {
|
@@ -23955,6 +24410,21 @@ const _DevicePermissionDropdown = (props) => {
|
|
23955
24410
|
onClick === null || onClick === void 0 ? void 0 : onClick();
|
23956
24411
|
}, options: options !== null && options !== void 0 ? options : [], styles: styles }));
|
23957
24412
|
};
|
24413
|
+
const actionButtonStyles = {
|
24414
|
+
root: {
|
24415
|
+
border: 'none',
|
24416
|
+
height: '2rem',
|
24417
|
+
padding: '0 0',
|
24418
|
+
paddingTop: '0.1rem',
|
24419
|
+
position: 'absolute',
|
24420
|
+
right: '0',
|
24421
|
+
lineHeight: '2rem',
|
24422
|
+
minWidth: '3rem'
|
24423
|
+
},
|
24424
|
+
label: {
|
24425
|
+
fontWeight: 400
|
24426
|
+
}
|
24427
|
+
};
|
23958
24428
|
|
23959
24429
|
// Copyright (c) Microsoft Corporation.
|
23960
24430
|
// Licensed under the MIT License.
|
@@ -24155,19 +24625,26 @@ const captionsContainerClassName = react.mergeStyles({
|
|
24155
24625
|
const captionContainerClassName = react.mergeStyles({
|
24156
24626
|
marginTop: _pxToRem(6),
|
24157
24627
|
marginBottom: _pxToRem(6),
|
24628
|
+
textAlign: 'unset', // ensure RTL spoken language captions are appropriately aligned to the right
|
24158
24629
|
overflowAnchor: 'auto'
|
24159
24630
|
});
|
24631
|
+
/** Reset styling set by the `ul` element */
|
24632
|
+
const resetUlStyling = {
|
24633
|
+
listStyleType: 'none',
|
24634
|
+
padding: 0,
|
24635
|
+
margin: 0
|
24636
|
+
};
|
24160
24637
|
/**
|
24161
24638
|
* @private
|
24162
24639
|
*/
|
24163
24640
|
const captionsBannerClassName = (formFactor) => {
|
24164
|
-
return react.mergeStyles(Object.assign({ overflowX: 'hidden', height: formFactor === 'compact' ? '4.5rem' : '8.75rem', overflowY: 'auto' }, scrollbarStyles));
|
24641
|
+
return react.mergeStyles(Object.assign(Object.assign(Object.assign({}, resetUlStyling), { overflowX: 'hidden', height: formFactor === 'compact' ? '4.5rem' : '8.75rem', overflowY: 'auto' }), scrollbarStyles));
|
24165
24642
|
};
|
24166
24643
|
/**
|
24167
24644
|
* @private
|
24168
24645
|
*/
|
24169
24646
|
const captionsBannerFullHeightClassName = (theme) => {
|
24170
|
-
return react.mergeStyles(Object.assign({ overflowX: 'hidden', overflowY: 'auto', height: '100%', width: '100%', position: 'absolute', backgroundColor: theme.palette.white, left: 0 }, scrollbarStyles));
|
24647
|
+
return react.mergeStyles(Object.assign(Object.assign(Object.assign({}, resetUlStyling), { overflowX: 'hidden', overflowY: 'auto', height: '100%', width: '100%', position: 'absolute', backgroundColor: theme.palette.white, left: 0 }), scrollbarStyles));
|
24171
24648
|
};
|
24172
24649
|
/**
|
24173
24650
|
* @private
|
@@ -24275,11 +24752,11 @@ const _CaptionsBanner = (props) => {
|
|
24275
24752
|
scrollToBottom();
|
24276
24753
|
}
|
24277
24754
|
}, [captions, isAtBottomOfScroll]);
|
24278
|
-
return (React.createElement(React.Fragment, null, startCaptionsInProgress && (React.createElement(react.FocusZone, {
|
24279
|
-
isCaptionsOn && (React.createElement("
|
24755
|
+
return (React.createElement(React.Fragment, null, startCaptionsInProgress && (React.createElement(react.FocusZone, { className: captionsContainerClassName, "data-ui-id": "captions-banner" },
|
24756
|
+
isCaptionsOn && (React.createElement("ul", { ref: captionsScrollDivRef, className: (captionsOptions === null || captionsOptions === void 0 ? void 0 : captionsOptions.height) === 'full'
|
24280
24757
|
? captionsBannerFullHeightClassName(theme)
|
24281
24758
|
: captionsBannerClassName(formFactor), "data-ui-id": "captions-banner-inner" }, captions.map((caption) => {
|
24282
|
-
return (React.createElement("
|
24759
|
+
return (React.createElement("li", { key: caption.id, className: captionContainerClassName, "data-is-focusable": true },
|
24283
24760
|
React.createElement(_Caption, Object.assign({}, caption, { onRenderAvatar: onRenderAvatar }))));
|
24284
24761
|
}))),
|
24285
24762
|
!isCaptionsOn && (React.createElement(react.Stack, { verticalAlign: "center", styles: (captionsOptions === null || captionsOptions === void 0 ? void 0 : captionsOptions.height) === 'full'
|
@@ -29952,7 +30429,7 @@ const AttachmentDownloadErrorBar = (props) => {
|
|
29952
30429
|
/**
|
29953
30430
|
* Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
|
29954
30431
|
*/
|
29955
|
-
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
30432
|
+
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-W9emUhpu.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
|
29956
30433
|
/**
|
29957
30434
|
* @private
|
29958
30435
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -29960,7 +30437,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
|
|
29960
30437
|
*
|
29961
30438
|
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
29962
30439
|
*/
|
29963
|
-
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
30440
|
+
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-W9emUhpu.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
|
29964
30441
|
/**
|
29965
30442
|
* @private
|
29966
30443
|
*/
|
@@ -34790,6 +35267,14 @@ const availableSpaceStyles = { root: { width: '100%', height: '100%' } };
|
|
34790
35267
|
const sidePaneTokens = {
|
34791
35268
|
childrenGap: '0.5rem'
|
34792
35269
|
};
|
35270
|
+
/** @private */
|
35271
|
+
const paneHighContrastStyles = (theme) => react.mergeStyles({
|
35272
|
+
'@media (forced-colors: active)': {
|
35273
|
+
border: `0.125rem solid ${theme.palette.black}`,
|
35274
|
+
borderRadius: theme.effects.roundedCorner4,
|
35275
|
+
margin: '0.5rem 0.25rem 0.5rem 0rem'
|
35276
|
+
}
|
35277
|
+
});
|
34793
35278
|
|
34794
35279
|
// Copyright (c) Microsoft Corporation.
|
34795
35280
|
// Licensed under the MIT License.
|
@@ -34905,10 +35390,11 @@ const SidePane = (props) => {
|
|
34905
35390
|
const OverrideContentRenderer = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) || (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed)
|
34906
35391
|
? overrideSidePane.renderer.contentRenderer
|
34907
35392
|
: undefined;
|
35393
|
+
const theme = useTheme();
|
34908
35394
|
if (!ContentRenderer && !OverrideContentRenderer) {
|
34909
35395
|
return React.createElement(EmptyElement, null);
|
34910
35396
|
}
|
34911
|
-
return (React.createElement(react.Stack, { "aria-label": props.ariaLabel, "data-is-focusable": !!props.ariaLabel, role: props.ariaLabel ? 'navigation' : undefined, tabIndex: props.ariaLabel ? 0 : undefined, verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": "SidePane", tokens: props.mobileView || (!props.showAddPeopleButton && (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people') ? {} : sidePaneTokens },
|
35397
|
+
return (React.createElement(react.Stack, { "aria-label": props.ariaLabel, "data-is-focusable": !!props.ariaLabel, role: props.ariaLabel ? 'navigation' : undefined, tabIndex: props.ariaLabel ? 0 : undefined, verticalFill: true, grow: true, styles: paneStyles, "data-ui-id": "SidePane", tokens: props.mobileView || (!props.showAddPeopleButton && (sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id) === 'people') ? {} : sidePaneTokens, className: paneHighContrastStyles(theme) },
|
34912
35398
|
HeaderToRender,
|
34913
35399
|
React.createElement(react.Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
|
34914
35400
|
React.createElement(react.Stack, { verticalFill: true, styles: scrollableContainer },
|
@@ -34935,12 +35421,16 @@ const SidePaneHeader = (props) => {
|
|
34935
35421
|
minWidth: '1.5rem',
|
34936
35422
|
padding: '0.5rem 0.25rem',
|
34937
35423
|
marginRight: '0.25rem',
|
34938
|
-
backgroundColor: theme.semanticColors.bodyBackground
|
35424
|
+
backgroundColor: theme.semanticColors.bodyBackground,
|
35425
|
+
'@media (forced-colors: active)': {
|
35426
|
+
border: `0.1rem solid ${theme.palette.neutralSecondary}`,
|
35427
|
+
borderRadius: theme.effects.roundedCorner4
|
35428
|
+
}
|
34939
35429
|
},
|
34940
35430
|
icon: { color: theme.palette.neutralSecondary },
|
34941
35431
|
iconHovered: { color: theme.palette.neutralSecondary },
|
34942
35432
|
iconPressed: { color: theme.palette.neutralSecondary }
|
34943
|
-
}), [theme.palette.neutralSecondary, theme.semanticColors.bodyBackground]);
|
35433
|
+
}), [theme.palette.neutralSecondary, theme.semanticColors.bodyBackground, theme.effects.roundedCorner4]);
|
34944
35434
|
if (props.mobileView) {
|
34945
35435
|
return React.createElement(SidePaneMobileHeader, Object.assign({}, props));
|
34946
35436
|
}
|
@@ -37746,6 +38236,10 @@ const configurationPageTextDecoration = (theme) => {
|
|
37746
38236
|
return {
|
37747
38237
|
textShadow: `0px 0px 8px ${theme.palette.whiteTranslucent40}`,
|
37748
38238
|
fill: theme.semanticColors.bodyText,
|
38239
|
+
svg: {
|
38240
|
+
// Fix SVGs not displaying the correct color in Desert high contrast mode
|
38241
|
+
fill: 'currentColor'
|
38242
|
+
},
|
37749
38243
|
stroke: theme.palette.whiteTranslucent40,
|
37750
38244
|
paintOrder: 'stroke fill',
|
37751
38245
|
strokeWidth: _pxToRem(1.5),
|
@@ -37753,8 +38247,6 @@ const configurationPageTextDecoration = (theme) => {
|
|
37753
38247
|
letterSpacing: '-0.02rem' // cope with extra width due to stroke width
|
37754
38248
|
},
|
37755
38249
|
'@media (forced-colors: active)': {
|
37756
|
-
forcedColorAdjust: 'auto',
|
37757
|
-
fill: theme.palette.neutralQuaternaryAlt,
|
37758
38250
|
textShadow: 'none',
|
37759
38251
|
stroke: 'none'
|
37760
38252
|
}
|
@@ -44447,4 +44939,4 @@ exports.useTeamsCall = useTeamsCall;
|
|
44447
44939
|
exports.useTeamsCallAdapter = useTeamsCallAdapter;
|
44448
44940
|
exports.useTeamsCallAgent = useTeamsCallAgent;
|
44449
44941
|
exports.useTheme = useTheme;
|
44450
|
-
//# sourceMappingURL=index-
|
44942
|
+
//# sourceMappingURL=index-B4neqg6y.js.map
|