@azure/communication-react 1.21.0-alpha-202411050016 → 1.21.0-alpha-202411070016
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 +96 -31
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CjlQQrAc.js → ChatMessageComponentAsRichTextEditBox-DA7CJian.js} +3 -3
- package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CjlQQrAc.js.map → ChatMessageComponentAsRichTextEditBox-DA7CJian.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CEFO0M1q.js → RichTextSendBoxWrapper-B35hPtZ7.js} +2 -2
- package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CEFO0M1q.js.map → RichTextSendBoxWrapper-B35hPtZ7.js.map} +1 -1
- package/dist/dist-cjs/communication-react/{index-BkinusDu.js → index-DKFJEPz7.js} +655 -129
- package/dist/dist-cjs/communication-react/index-DKFJEPz7.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 +60 -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 +13 -2
- package/dist/dist-esm/calling-stateful-client/src/CallContext.js +106 -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.d.ts +1 -0
- package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +7 -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 +18 -2
- 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/MediaAccessSubscriber.d.ts +16 -0
- package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.js +26 -0
- package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.js.map +1 -0
- 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 +2 -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/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 +2 -2
- package/dist/dist-cjs/communication-react/index-BkinusDu.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-202411070016';
|
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
|
*/
|
@@ -2134,7 +2149,8 @@ function convertSdkParticipantToDeclarativeParticipant(participant) {
|
|
2134
2149
|
isSpeaking: participant.isSpeaking,
|
2135
2150
|
raisedHand: undefined,
|
2136
2151
|
role: participant.role,
|
2137
|
-
spotlight: undefined
|
2152
|
+
spotlight: undefined,
|
2153
|
+
/* @conditional-compile-remove(media-access) */ mediaAccess: undefined
|
2138
2154
|
};
|
2139
2155
|
}
|
2140
2156
|
/**
|
@@ -2186,7 +2202,7 @@ function convertSdkCallToDeclarativeCall(call) {
|
|
2186
2202
|
pptLive: { isActive: false },
|
2187
2203
|
raiseHand: { raisedHands: [] },
|
2188
2204
|
/* @conditional-compile-remove(together-mode) */
|
2189
|
-
togetherMode: {
|
2205
|
+
togetherMode: { isActive: false, streams: {}, seatingPositions: {} },
|
2190
2206
|
localParticipantReaction: undefined,
|
2191
2207
|
transcription: { isTranscriptionActive: false },
|
2192
2208
|
screenShareRemoteParticipant: undefined,
|
@@ -2391,7 +2407,7 @@ class CallIdHistory {
|
|
2391
2407
|
|
2392
2408
|
// Copyright (c) Microsoft Corporation.
|
2393
2409
|
// Licensed under the MIT License.
|
2394
|
-
var __awaiter$
|
2410
|
+
var __awaiter$Y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2395
2411
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
2396
2412
|
return new (P || (P = Promise))(function (resolve, reject) {
|
2397
2413
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -2750,11 +2766,67 @@ let CallContext$2 = class CallContext {
|
|
2750
2766
|
});
|
2751
2767
|
}
|
2752
2768
|
/* @conditional-compile-remove(together-mode) */
|
2753
|
-
|
2769
|
+
setTogetherModeVideoStreams(callId, addedStreams, removedStreams) {
|
2770
|
+
this.modifyState((draft) => {
|
2771
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2772
|
+
if (call) {
|
2773
|
+
for (const stream of removedStreams) {
|
2774
|
+
if (stream.mediaStreamType === 'Video') {
|
2775
|
+
call.togetherMode.streams.mainVideoStream = undefined;
|
2776
|
+
call.togetherMode.isActive = false;
|
2777
|
+
call.togetherMode.seatingPositions = {};
|
2778
|
+
}
|
2779
|
+
}
|
2780
|
+
for (const newStream of addedStreams) {
|
2781
|
+
// This should only be called by the subscriber and some properties are add by other components so if the
|
2782
|
+
// stream already exists, only update the values that subscriber knows about.
|
2783
|
+
const mainVideoStream = call.togetherMode.streams.mainVideoStream;
|
2784
|
+
if (mainVideoStream && mainVideoStream.id === newStream.id) {
|
2785
|
+
mainVideoStream.mediaStreamType = newStream.mediaStreamType;
|
2786
|
+
mainVideoStream.isAvailable = newStream.isAvailable;
|
2787
|
+
mainVideoStream.isReceiving = newStream.isReceiving;
|
2788
|
+
}
|
2789
|
+
else {
|
2790
|
+
call.togetherMode.streams.mainVideoStream = newStream;
|
2791
|
+
}
|
2792
|
+
call.togetherMode.isActive = true;
|
2793
|
+
}
|
2794
|
+
}
|
2795
|
+
});
|
2796
|
+
}
|
2797
|
+
/* @conditional-compile-remove(together-mode) */
|
2798
|
+
setTogetherModeVideoStreamIsAvailable(callId, streamId, isAvailable) {
|
2754
2799
|
this.modifyState((draft) => {
|
2755
2800
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2756
2801
|
if (call) {
|
2757
|
-
|
2802
|
+
const stream = call.togetherMode.streams.mainVideoStream;
|
2803
|
+
if (stream && (stream === null || stream === void 0 ? void 0 : stream.id) === streamId) {
|
2804
|
+
stream.isReceiving = isAvailable;
|
2805
|
+
}
|
2806
|
+
}
|
2807
|
+
});
|
2808
|
+
}
|
2809
|
+
/* @conditional-compile-remove(together-mode) */
|
2810
|
+
setTogetherModeVideoStreamIsReceiving(callId, streamId, isReceiving) {
|
2811
|
+
this.modifyState((draft) => {
|
2812
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2813
|
+
if (call) {
|
2814
|
+
const stream = call.togetherMode.streams.mainVideoStream;
|
2815
|
+
if (stream && (stream === null || stream === void 0 ? void 0 : stream.id) === streamId) {
|
2816
|
+
stream.isReceiving = isReceiving;
|
2817
|
+
}
|
2818
|
+
}
|
2819
|
+
});
|
2820
|
+
}
|
2821
|
+
/* @conditional-compile-remove(together-mode) */
|
2822
|
+
setTogetherModeVideoStreamSize(callId, streamId, size) {
|
2823
|
+
this.modifyState((draft) => {
|
2824
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2825
|
+
if (call) {
|
2826
|
+
const stream = call.togetherMode.streams.mainVideoStream;
|
2827
|
+
if (stream && (stream === null || stream === void 0 ? void 0 : stream.id) === streamId) {
|
2828
|
+
stream.streamSize = size;
|
2829
|
+
}
|
2758
2830
|
}
|
2759
2831
|
});
|
2760
2832
|
}
|
@@ -2764,14 +2836,27 @@ let CallContext$2 = class CallContext {
|
|
2764
2836
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2765
2837
|
if (call) {
|
2766
2838
|
for (const stream of removedStream) {
|
2767
|
-
if (stream.mediaStreamType
|
2768
|
-
|
2769
|
-
call.togetherMode.
|
2839
|
+
if (stream.mediaStreamType === 'Video') {
|
2840
|
+
call.togetherMode.streams.mainVideoStream = undefined;
|
2841
|
+
call.togetherMode.isActive = false;
|
2770
2842
|
}
|
2771
2843
|
}
|
2772
2844
|
}
|
2773
2845
|
});
|
2774
2846
|
}
|
2847
|
+
/* @conditional-compile-remove(together-mode) */
|
2848
|
+
setTogetherModeSeatingCoordinates(callId, seatingMap) {
|
2849
|
+
this.modifyState((draft) => {
|
2850
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
2851
|
+
if (call) {
|
2852
|
+
const seatingPositions = {};
|
2853
|
+
for (const [userId, seatingPosition] of seatingMap.entries()) {
|
2854
|
+
seatingPositions[userId] = seatingPosition;
|
2855
|
+
}
|
2856
|
+
call.togetherMode.seatingPositions = seatingPositions;
|
2857
|
+
}
|
2858
|
+
});
|
2859
|
+
}
|
2775
2860
|
setCallRaisedHands(callId, raisedHands) {
|
2776
2861
|
this.modifyState((draft) => {
|
2777
2862
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
@@ -2966,6 +3051,20 @@ let CallContext$2 = class CallContext {
|
|
2966
3051
|
}
|
2967
3052
|
});
|
2968
3053
|
}
|
3054
|
+
/* @conditional-compile-remove(together-mode) */
|
3055
|
+
setTogetherModeVideoStreamRendererView(callId, togetherModeStreamType, view) {
|
3056
|
+
this.modifyState((draft) => {
|
3057
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
3058
|
+
if (call) {
|
3059
|
+
if (togetherModeStreamType === 'Video') {
|
3060
|
+
const togetherModeStream = call.togetherMode.streams.mainVideoStream;
|
3061
|
+
if (togetherModeStream) {
|
3062
|
+
togetherModeStream.view = view;
|
3063
|
+
}
|
3064
|
+
}
|
3065
|
+
}
|
3066
|
+
});
|
3067
|
+
}
|
2969
3068
|
setParticipantState(callId, participantKey, state) {
|
2970
3069
|
this.modifyState((draft) => {
|
2971
3070
|
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
@@ -3397,7 +3496,7 @@ let CallContext$2 = class CallContext {
|
|
3397
3496
|
* @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
|
3398
3497
|
*/
|
3399
3498
|
withAsyncErrorTeedToState(action, target) {
|
3400
|
-
return (...args) => __awaiter$
|
3499
|
+
return (...args) => __awaiter$Y(this, void 0, void 0, function* () {
|
3401
3500
|
try {
|
3402
3501
|
return yield action(...args);
|
3403
3502
|
}
|
@@ -3456,6 +3555,24 @@ let CallContext$2 = class CallContext {
|
|
3456
3555
|
delete draft.latestNotifications[notificationTarget];
|
3457
3556
|
});
|
3458
3557
|
}
|
3558
|
+
/* @conditional-compile-remove(media-access) */
|
3559
|
+
setMediaAccesses(callId, mediaAccesses) {
|
3560
|
+
this.modifyState((draft) => {
|
3561
|
+
const call = draft.calls[this._callIdHistory.latestCallId(callId)];
|
3562
|
+
if (!call) {
|
3563
|
+
return;
|
3564
|
+
}
|
3565
|
+
mediaAccesses.forEach((participantMediaAccess) => {
|
3566
|
+
const participant = call.remoteParticipants[toFlatCommunicationIdentifier(participantMediaAccess.participant)];
|
3567
|
+
if (participant) {
|
3568
|
+
participant.mediaAccess = {
|
3569
|
+
isAudioPermitted: participantMediaAccess.isAudioPermitted,
|
3570
|
+
isVideoPermitted: participantMediaAccess.isVideoPermitted
|
3571
|
+
};
|
3572
|
+
}
|
3573
|
+
});
|
3574
|
+
});
|
3575
|
+
}
|
3459
3576
|
};
|
3460
3577
|
const toCallError = (target, error) => {
|
3461
3578
|
if (error instanceof Error) {
|
@@ -3938,7 +4055,7 @@ function _logStreamEvent(eventName, streamLogInfo, error) {
|
|
3938
4055
|
|
3939
4056
|
// Copyright (c) Microsoft Corporation.
|
3940
4057
|
// Licensed under the MIT License.
|
3941
|
-
var __awaiter$
|
4058
|
+
var __awaiter$X = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3942
4059
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3943
4060
|
return new (P || (P = Promise))(function (resolve, reject) {
|
3944
4061
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -3948,7 +4065,7 @@ var __awaiter$W = (window && window.__awaiter) || function (thisArg, _arguments,
|
|
3948
4065
|
});
|
3949
4066
|
};
|
3950
4067
|
function createViewVideo(context, internalContext, callId, stream, participantId, options) {
|
3951
|
-
return __awaiter$
|
4068
|
+
return __awaiter$X(this, void 0, void 0, function* () {
|
3952
4069
|
// we can only have 3 types of createView
|
3953
4070
|
let streamEventType;
|
3954
4071
|
// we will reuse these for local as well but we need to make sure the remote stream is passed in like before.
|
@@ -4077,7 +4194,7 @@ function createViewVideo(context, internalContext, callId, stream, participantId
|
|
4077
4194
|
});
|
4078
4195
|
}
|
4079
4196
|
function createViewUnparentedVideo(context, internalContext, stream, options) {
|
4080
|
-
return __awaiter$
|
4197
|
+
return __awaiter$X(this, void 0, void 0, function* () {
|
4081
4198
|
const renderInfo = internalContext.getUnparentedRenderInfo(stream);
|
4082
4199
|
if (renderInfo && renderInfo.status === 'Rendered') {
|
4083
4200
|
console.warn('Unparented LocalVideoStream is already rendered');
|
@@ -4237,7 +4354,7 @@ function disposeViewUnparentedVideo(context, internalContext, stream) {
|
|
4237
4354
|
/**
|
4238
4355
|
* @private
|
4239
4356
|
*/
|
4240
|
-
function createView(context, internalContext, callId, participantId, stream, options) {
|
4357
|
+
function createView$1(context, internalContext, callId, participantId, stream, options) {
|
4241
4358
|
const streamType = stream.mediaStreamType;
|
4242
4359
|
if (callId) {
|
4243
4360
|
return createViewVideo(context, internalContext, callId, stream, participantId, options);
|
@@ -4246,7 +4363,7 @@ function createView(context, internalContext, callId, participantId, stream, opt
|
|
4246
4363
|
// Render LocalVideoStream that is not part of a Call
|
4247
4364
|
// 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
4365
|
// We do not have a startLocalPreviewVideo function, so as a workaround we ensure any errors are propagated here.
|
4249
|
-
return context.withAsyncErrorTeedToState(() => __awaiter$
|
4366
|
+
return context.withAsyncErrorTeedToState(() => __awaiter$X(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
|
4250
4367
|
}
|
4251
4368
|
else {
|
4252
4369
|
_logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
|
@@ -4256,7 +4373,7 @@ function createView(context, internalContext, callId, participantId, stream, opt
|
|
4256
4373
|
/**
|
4257
4374
|
* @private
|
4258
4375
|
*/
|
4259
|
-
function disposeView(context, internalContext, callId, participantId, stream) {
|
4376
|
+
function disposeView$1(context, internalContext, callId, participantId, stream) {
|
4260
4377
|
const streamType = stream.mediaStreamType;
|
4261
4378
|
if (callId) {
|
4262
4379
|
disposeViewVideo(context, internalContext, callId, stream, participantId);
|
@@ -4283,7 +4400,7 @@ function disposeAllViewsFromCall(context, internalContext, callId) {
|
|
4283
4400
|
for (const [_, remoteStreamAndRenderer] of participantStreams.entries()) {
|
4284
4401
|
// We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to
|
4285
4402
|
// 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));
|
4403
|
+
disposeView$1(context, internalContext, callId, participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(remoteStreamAndRenderer.stream));
|
4287
4404
|
}
|
4288
4405
|
}
|
4289
4406
|
}
|
@@ -4293,7 +4410,17 @@ function disposeAllViewsFromCall(context, internalContext, callId) {
|
|
4293
4410
|
if (localStreamAndRenderer && localStreamAndRenderer.renderer) {
|
4294
4411
|
// We don't want to accept SDK stream as parameter but we also don't cache the declarative stream so we have to
|
4295
4412
|
// 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));
|
4413
|
+
disposeView$1(context, internalContext, callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localStreamAndRenderer.stream));
|
4414
|
+
}
|
4415
|
+
}
|
4416
|
+
}
|
4417
|
+
/* @conditional-compile-remove(together-mode) */
|
4418
|
+
const callFeatureStreams = internalContext.getCallFeatureRenderInfosForCall(callId);
|
4419
|
+
/* @conditional-compile-remove(together-mode) */
|
4420
|
+
if (callFeatureStreams) {
|
4421
|
+
for (const featureStreams of callFeatureStreams.values()) {
|
4422
|
+
for (const streamAndRenderer of featureStreams.values()) {
|
4423
|
+
disposeView$1(context, internalContext, callId, undefined, convertSdkRemoteStreamToDeclarativeRemoteStream(streamAndRenderer.stream));
|
4297
4424
|
}
|
4298
4425
|
}
|
4299
4426
|
}
|
@@ -4343,7 +4470,7 @@ let ParticipantSubscriber$1 = class ParticipantSubscriber {
|
|
4343
4470
|
// as it doesn't make sense to render for an ended participant.
|
4344
4471
|
if (this._participant.videoStreams.length > 0) {
|
4345
4472
|
for (const stream of this._participant.videoStreams) {
|
4346
|
-
disposeView(this._context, this._internalContext, this._callIdRef.callId, this._participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(stream));
|
4473
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, this._participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(stream));
|
4347
4474
|
this._internalContext.deleteRemoteRenderInfo(this._callIdRef.callId, this._participantKey, stream.id);
|
4348
4475
|
}
|
4349
4476
|
}
|
@@ -4372,7 +4499,7 @@ let ParticipantSubscriber$1 = class ParticipantSubscriber {
|
|
4372
4499
|
var _a;
|
4373
4500
|
for (const stream of event.removed) {
|
4374
4501
|
(_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));
|
4502
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, this._participantKey, convertSdkRemoteStreamToDeclarativeRemoteStream(stream));
|
4376
4503
|
this._internalContext.deleteRemoteRenderInfo(this._callIdRef.callId, this._participantKey, stream.id);
|
4377
4504
|
}
|
4378
4505
|
for (const stream of event.added) {
|
@@ -4432,7 +4559,7 @@ class RecordingSubscriber {
|
|
4432
4559
|
|
4433
4560
|
// Copyright (c) Microsoft Corporation.
|
4434
4561
|
// Licensed under the MIT License.
|
4435
|
-
var __awaiter$
|
4562
|
+
var __awaiter$W = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
4436
4563
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4437
4564
|
return new (P || (P = Promise))(function (resolve, reject) {
|
4438
4565
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
@@ -4456,7 +4583,7 @@ class PPTLiveSubscriber {
|
|
4456
4583
|
this._context.setCallPPTLiveActive(this._callIdRef.callId, this._pptLive.isActive);
|
4457
4584
|
this.checkAndUpdatePPTLiveParticipant();
|
4458
4585
|
};
|
4459
|
-
this.checkAndUpdatePPTLiveParticipant = () => __awaiter$
|
4586
|
+
this.checkAndUpdatePPTLiveParticipant = () => __awaiter$W(this, void 0, void 0, function* () {
|
4460
4587
|
if (!this._pptLive.activePresenterId) {
|
4461
4588
|
return;
|
4462
4589
|
}
|
@@ -4910,34 +5037,314 @@ class BreakoutRoomsSubscriber {
|
|
4910
5037
|
}
|
4911
5038
|
}
|
4912
5039
|
|
5040
|
+
var __awaiter$V = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
|
5041
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
5042
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5043
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5044
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
5045
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
5046
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
5047
|
+
});
|
5048
|
+
};
|
5049
|
+
/* @conditional-compile-remove(together-mode) */
|
5050
|
+
/**
|
5051
|
+
* @private
|
5052
|
+
*
|
5053
|
+
*/
|
5054
|
+
function createView(context, internalContext, callId, stream, options) {
|
5055
|
+
const streamType = stream.mediaStreamType;
|
5056
|
+
if (callId && isCallFeatureStream(stream)) {
|
5057
|
+
return createCallFeatureViewVideo(context, internalContext, callId, stream, options);
|
5058
|
+
}
|
5059
|
+
else {
|
5060
|
+
_logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
|
5061
|
+
return Promise.resolve(undefined);
|
5062
|
+
}
|
5063
|
+
}
|
5064
|
+
/* @conditional-compile-remove(together-mode) */
|
5065
|
+
// This function is used to create a view for a stream that is part of a call feature.
|
5066
|
+
function createCallFeatureViewVideo(context, internalContext, callId, stream, options) {
|
5067
|
+
return __awaiter$V(this, void 0, void 0, function* () {
|
5068
|
+
const streamEventType = 'createViewCallFeature';
|
5069
|
+
const streamType = stream === null || stream === void 0 ? void 0 : stream.mediaStreamType;
|
5070
|
+
const callFeatureStreamId = stream && stream.id;
|
5071
|
+
const streamLogInfo = {
|
5072
|
+
callId,
|
5073
|
+
undefined,
|
5074
|
+
streamId: callFeatureStreamId,
|
5075
|
+
streamType,
|
5076
|
+
streamEventType
|
5077
|
+
};
|
5078
|
+
// make different logging announcement based on whether or not we are starting a local or remote
|
5079
|
+
_logStreamEvent(EventNames.CREATING_VIEW, streamLogInfo);
|
5080
|
+
const featureName = getStreamFeatureName(stream);
|
5081
|
+
// if we have a participant Id and a stream get the remote info, else get the local render info from state.
|
5082
|
+
const renderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
|
5083
|
+
if (!renderInfo) {
|
5084
|
+
_logStreamEvent(EventNames.STREAM_NOT_FOUND, streamLogInfo);
|
5085
|
+
return;
|
5086
|
+
}
|
5087
|
+
if (renderInfo.status === 'Rendered') {
|
5088
|
+
_logStreamEvent(EventNames.STREAM_ALREADY_RENDERED, streamLogInfo);
|
5089
|
+
return;
|
5090
|
+
}
|
5091
|
+
if (renderInfo.status === 'Rendering') {
|
5092
|
+
// Do not log to console here as this is a very common situation due to UI rerenders while
|
5093
|
+
// the video rendering is in progress.
|
5094
|
+
_logStreamEvent(EventNames.STREAM_RENDERING, streamLogInfo);
|
5095
|
+
return;
|
5096
|
+
}
|
5097
|
+
// "Stopping" only happens if the stream was in "rendering" but `disposeView` was called.
|
5098
|
+
// Now that `createView` has been re-called, we can flip the state back to "rendering".
|
5099
|
+
if (renderInfo.status === 'Stopping') {
|
5100
|
+
_logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
|
5101
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'Rendering', renderInfo.renderer);
|
5102
|
+
return;
|
5103
|
+
}
|
5104
|
+
const renderer = new communicationCalling.VideoStreamRenderer(renderInfo.stream);
|
5105
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'Rendering', undefined);
|
5106
|
+
let view;
|
5107
|
+
try {
|
5108
|
+
view = yield renderer.createView(options);
|
5109
|
+
}
|
5110
|
+
catch (e) {
|
5111
|
+
_logStreamEvent(EventNames.CREATE_STREAM_FAIL, streamLogInfo, e);
|
5112
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, renderInfo.stream, 'NotRendered', undefined);
|
5113
|
+
throw e;
|
5114
|
+
}
|
5115
|
+
// Since render could take some time, we need to check if the stream is still valid and if we received a signal to
|
5116
|
+
// stop rendering.
|
5117
|
+
const refreshedRenderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
|
5118
|
+
if (!refreshedRenderInfo) {
|
5119
|
+
// RenderInfo was removed. This should not happen unless stream was removed from the call so dispose the renderer
|
5120
|
+
// and clean up the state.
|
5121
|
+
_logStreamEvent(EventNames.RENDER_INFO_NOT_FOUND, streamLogInfo);
|
5122
|
+
renderer.dispose();
|
5123
|
+
setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, undefined);
|
5124
|
+
return;
|
5125
|
+
}
|
5126
|
+
if (refreshedRenderInfo.status === 'Stopping') {
|
5127
|
+
// Stop render was called on this stream after we had started rendering. We will dispose this view and do not
|
5128
|
+
// put the view into the state.
|
5129
|
+
_logStreamEvent(EventNames.CREATED_STREAM_STOPPING, streamLogInfo);
|
5130
|
+
renderer.dispose();
|
5131
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, refreshedRenderInfo.stream, 'NotRendered', undefined);
|
5132
|
+
setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, undefined);
|
5133
|
+
return;
|
5134
|
+
}
|
5135
|
+
// Else the stream still exists and status is not telling us to stop rendering. Complete the render process by
|
5136
|
+
// updating the state.
|
5137
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType, refreshedRenderInfo.stream, 'Rendered', renderer);
|
5138
|
+
setCallFeatureVideoRendererView(callId, featureName, context, stream.mediaStreamType, convertFromSDKToDeclarativeVideoStreamRendererView(view));
|
5139
|
+
_logStreamEvent(EventNames.VIEW_RENDER_SUCCEED, streamLogInfo);
|
5140
|
+
return {
|
5141
|
+
renderer,
|
5142
|
+
view
|
5143
|
+
};
|
5144
|
+
});
|
5145
|
+
}
|
5146
|
+
/* @conditional-compile-remove(together-mode) */
|
5147
|
+
/**
|
5148
|
+
* @private
|
5149
|
+
*/
|
5150
|
+
function disposeView(context, internalContext, callId, stream) {
|
5151
|
+
const streamType = stream.mediaStreamType;
|
5152
|
+
if (callId && isCallFeatureStream(stream)) {
|
5153
|
+
return disposeCallFeatureViewVideo(context, internalContext, callId, stream);
|
5154
|
+
}
|
5155
|
+
else {
|
5156
|
+
_logStreamEvent(EventNames.DISPOSE_STREAM_INVALID_PARAMS, { streamType });
|
5157
|
+
return;
|
5158
|
+
}
|
5159
|
+
}
|
5160
|
+
/* @conditional-compile-remove(together-mode) */
|
5161
|
+
/**
|
5162
|
+
* @private
|
5163
|
+
*/
|
5164
|
+
function disposeCallFeatureViewVideo(context, internalContext, callId, stream) {
|
5165
|
+
const streamType = stream.mediaStreamType;
|
5166
|
+
const callFeatureStreamId = stream && stream.id;
|
5167
|
+
const streamLogInfo = { callId, undefined, streamId: callFeatureStreamId, streamType };
|
5168
|
+
_logStreamEvent(EventNames.START_DISPOSE_STREAM, streamLogInfo);
|
5169
|
+
const featureName = getStreamFeatureName(stream);
|
5170
|
+
{
|
5171
|
+
setCallFeatureVideoRendererView(callId, featureName, context, streamType, undefined);
|
5172
|
+
}
|
5173
|
+
const renderInfo = internalContext.getCallFeatureRenderInfo(callId, featureName, stream.mediaStreamType);
|
5174
|
+
if (!renderInfo) {
|
5175
|
+
_logStreamEvent(EventNames.DISPOSE_INFO_NOT_FOUND, streamLogInfo);
|
5176
|
+
return;
|
5177
|
+
}
|
5178
|
+
// Nothing to dispose of or clean up -- we can safely exit early here.
|
5179
|
+
if (renderInfo.status === 'NotRendered') {
|
5180
|
+
_logStreamEvent(EventNames.STREAM_ALREADY_DISPOSED, streamLogInfo);
|
5181
|
+
return;
|
5182
|
+
}
|
5183
|
+
// Status is already marked as "stopping" so we can exit early here. This is because stopping only occurs
|
5184
|
+
// when the stream is being created in createView but hasn't been completed being created yet. The createView
|
5185
|
+
// method will see the "stopping" status and perform the cleanup
|
5186
|
+
if (renderInfo.status === 'Stopping') {
|
5187
|
+
_logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
|
5188
|
+
return;
|
5189
|
+
}
|
5190
|
+
// If the stream is in the middle of being rendered (i.e. has state "Rendering"), we need the status as
|
5191
|
+
// "stopping" without performing any cleanup. This will tell the `createView` method that it should stop
|
5192
|
+
// rendering and clean up the state once the view has finished being created.
|
5193
|
+
if (renderInfo.status === 'Rendering') {
|
5194
|
+
_logStreamEvent(EventNames.STREAM_STOPPING, streamLogInfo);
|
5195
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, streamType, renderInfo.stream, 'Stopping', renderInfo.renderer);
|
5196
|
+
return;
|
5197
|
+
}
|
5198
|
+
if (renderInfo.renderer) {
|
5199
|
+
_logStreamEvent(EventNames.DISPOSING_RENDERER, streamLogInfo);
|
5200
|
+
renderInfo.renderer.dispose();
|
5201
|
+
// Else the state must be in the "Rendered" state, so we can dispose the renderer and clean up the state.
|
5202
|
+
internalContext.setCallFeatureRenderInfo(callId, featureName, streamType, renderInfo.stream, 'NotRendered', undefined);
|
5203
|
+
setCallFeatureVideoRendererView(callId, featureName, context, streamType, undefined);
|
5204
|
+
}
|
5205
|
+
else {
|
5206
|
+
_logStreamEvent(EventNames.RENDERER_NOT_FOUND, streamLogInfo);
|
5207
|
+
}
|
5208
|
+
}
|
5209
|
+
/* @conditional-compile-remove(together-mode) */
|
5210
|
+
/**
|
5211
|
+
* @private
|
5212
|
+
*/
|
5213
|
+
const setCallFeatureVideoRendererView = (callId, featureName, context, streamType, view) => {
|
5214
|
+
if (featureName === 'togetherMode') {
|
5215
|
+
context.setTogetherModeVideoStreamRendererView(callId, streamType, view);
|
5216
|
+
}
|
5217
|
+
};
|
5218
|
+
/* @conditional-compile-remove(together-mode) */
|
5219
|
+
/**
|
5220
|
+
* @private
|
5221
|
+
*/
|
5222
|
+
const getStreamFeatureName = (stream) => {
|
5223
|
+
if (stream.feature) {
|
5224
|
+
return stream.feature;
|
5225
|
+
}
|
5226
|
+
throw new Error('Feature name not found');
|
5227
|
+
};
|
5228
|
+
/* @conditional-compile-remove(together-mode) */
|
5229
|
+
/**
|
5230
|
+
* @private
|
5231
|
+
*/
|
5232
|
+
function isCallFeatureStream(stream) {
|
5233
|
+
return 'feature' in stream || false;
|
5234
|
+
}
|
5235
|
+
|
4913
5236
|
// Copyright (c) Microsoft Corporation.
|
4914
5237
|
// Licensed under the MIT License.
|
5238
|
+
/* @conditional-compile-remove(together-mode) */
|
4915
5239
|
/**
|
4916
5240
|
* @private
|
4917
5241
|
*/
|
5242
|
+
class TogetherModeVideoStreamSubscriber {
|
5243
|
+
constructor(callIdRef, stream, context) {
|
5244
|
+
this.subscribe = () => {
|
5245
|
+
this._togetherModeStream.on('isAvailableChanged', this.isAvailableChanged);
|
5246
|
+
this._togetherModeStream.on('isReceivingChanged', this.isReceivingChanged);
|
5247
|
+
this._togetherModeStream.on('sizeChanged', this.isSizeChanged);
|
5248
|
+
};
|
5249
|
+
this.unsubscribe = () => {
|
5250
|
+
this._togetherModeStream.off('isAvailableChanged', this.isAvailableChanged);
|
5251
|
+
this._togetherModeStream.off('isReceivingChanged', this.isReceivingChanged);
|
5252
|
+
this._togetherModeStream.off('sizeChanged', this.isSizeChanged);
|
5253
|
+
};
|
5254
|
+
this.isAvailableChanged = () => {
|
5255
|
+
this._context.setTogetherModeVideoStreamIsAvailable(this._callIdRef.callId, this._togetherModeStream.id, this._togetherModeStream.isAvailable);
|
5256
|
+
};
|
5257
|
+
this.isReceivingChanged = () => {
|
5258
|
+
this._context.setTogetherModeVideoStreamIsReceiving(this._callIdRef.callId, this._togetherModeStream.id, this._togetherModeStream.isReceiving);
|
5259
|
+
};
|
5260
|
+
this.isSizeChanged = () => {
|
5261
|
+
this._context.setTogetherModeVideoStreamSize(this._callIdRef.callId, this._togetherModeStream.id, this._togetherModeStream.size);
|
5262
|
+
};
|
5263
|
+
this._callIdRef = callIdRef;
|
5264
|
+
this._togetherModeStream = stream;
|
5265
|
+
this._context = context;
|
5266
|
+
this.subscribe();
|
5267
|
+
}
|
5268
|
+
}
|
5269
|
+
|
5270
|
+
// Copyright (c) Microsoft Corporation.
|
5271
|
+
// Licensed under the MIT License.
|
5272
|
+
/* @conditional-compile-remove(together-mode) */
|
4918
5273
|
/* @conditional-compile-remove(together-mode) */
|
4919
5274
|
/**
|
4920
5275
|
* TogetherModeSubscriber is responsible for subscribing to together mode events and updating the call context accordingly.
|
4921
5276
|
*/
|
4922
5277
|
class TogetherModeSubscriber {
|
4923
|
-
constructor(callIdRef, context, togetherMode) {
|
5278
|
+
constructor(callIdRef, context, internalContext, togetherMode) {
|
5279
|
+
this._featureName = 'togetherMode';
|
4924
5280
|
this.subscribe = () => {
|
4925
5281
|
this._togetherMode.on('togetherModeStreamsUpdated', this.onTogetherModeStreamUpdated);
|
5282
|
+
this._togetherMode.on('togetherModeSceneUpdated', this.onSceneUpdated);
|
5283
|
+
this._togetherMode.on('togetherModeSeatingUpdated', this.onSeatUpdated);
|
4926
5284
|
};
|
4927
5285
|
this.unsubscribe = () => {
|
4928
5286
|
this._togetherMode.off('togetherModeStreamsUpdated', this.onTogetherModeStreamUpdated);
|
5287
|
+
this._togetherMode.off('togetherModeSceneUpdated', this.onSceneUpdated);
|
5288
|
+
this._togetherMode.off('togetherModeSeatingUpdated', this.onSeatUpdated);
|
4929
5289
|
};
|
4930
|
-
this.
|
4931
|
-
|
4932
|
-
|
5290
|
+
this.onSceneUpdated = (args) => {
|
5291
|
+
this._context.setTogetherModeSeatingCoordinates(this._callIdRef.callId, args);
|
5292
|
+
};
|
5293
|
+
this.onSeatUpdated = (args) => {
|
5294
|
+
this._context.setTogetherModeSeatingCoordinates(this._callIdRef.callId, args);
|
5295
|
+
};
|
5296
|
+
this.addRemoteVideoStreamSubscriber = (togetherModeVideoStream) => {
|
5297
|
+
var _a;
|
5298
|
+
(_a = this._togetherModeVideoStreamSubscribers.get(togetherModeVideoStream.id)) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
5299
|
+
this._togetherModeVideoStreamSubscribers.set(togetherModeVideoStream.id, new TogetherModeVideoStreamSubscriber(this._callIdRef, togetherModeVideoStream, this._context));
|
5300
|
+
};
|
5301
|
+
this.updateTogetherModeStreams = (addedStreams, removedStreams) => {
|
5302
|
+
var _a;
|
5303
|
+
for (const stream of removedStreams) {
|
5304
|
+
(_a = this._togetherModeVideoStreamSubscribers.get(stream.id)) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
5305
|
+
disposeView(this._context, this._internalContext, this._callIdRef.callId, convertSdkCallFeatureStreamToDeclarativeCallFeatureStream(stream, this._featureName));
|
5306
|
+
this._internalContext.deleteCallFeatureRenderInfo(this._callIdRef.callId, this._featureName, stream.mediaStreamType);
|
4933
5307
|
}
|
4934
|
-
|
4935
|
-
this.
|
5308
|
+
for (const stream of addedStreams) {
|
5309
|
+
this._internalContext.setCallFeatureRenderInfo(this._callIdRef.callId, this._featureName, stream.mediaStreamType, stream, 'NotRendered', undefined);
|
5310
|
+
this.addRemoteVideoStreamSubscriber(stream);
|
4936
5311
|
}
|
5312
|
+
this._context.setTogetherModeVideoStreams(this._callIdRef.callId, addedStreams.map((stream) => convertSdkCallFeatureStreamToDeclarativeCallFeatureStream(stream, this._featureName)), removedStreams.map((stream) => convertSdkCallFeatureStreamToDeclarativeCallFeatureStream(stream, this._featureName)));
|
5313
|
+
};
|
5314
|
+
this.onTogetherModeStreamUpdated = (args) => {
|
5315
|
+
this.updateTogetherModeStreams(args.added, args.removed);
|
4937
5316
|
};
|
4938
5317
|
this._callIdRef = callIdRef;
|
4939
5318
|
this._context = context;
|
5319
|
+
this._internalContext = internalContext;
|
4940
5320
|
this._togetherMode = togetherMode;
|
5321
|
+
this._togetherModeVideoStreamSubscribers = new Map();
|
5322
|
+
this.subscribe();
|
5323
|
+
}
|
5324
|
+
}
|
5325
|
+
|
5326
|
+
// Copyright (c) Microsoft Corporation.
|
5327
|
+
// Licensed under the MIT License.
|
5328
|
+
/* @conditional-compile-remove(media-access) */
|
5329
|
+
/**
|
5330
|
+
* @private
|
5331
|
+
*/
|
5332
|
+
class MediaAccessSubscriber {
|
5333
|
+
constructor(callIdRef, context, mediaAccessCallFeature) {
|
5334
|
+
this.subscribe = () => {
|
5335
|
+
this._mediaAccessCallFeature.on('mediaAccessChanged', this.mediaAccessChanged);
|
5336
|
+
};
|
5337
|
+
this.unsubscribe = () => {
|
5338
|
+
this._mediaAccessCallFeature.off('mediaAccessChanged', this.mediaAccessChanged);
|
5339
|
+
};
|
5340
|
+
this.mediaAccessChanged = (data) => {
|
5341
|
+
this._context.setMediaAccesses(this._callIdRef.callId, data.mediaAccesses);
|
5342
|
+
};
|
5343
|
+
this._callIdRef = callIdRef;
|
5344
|
+
this._context = context;
|
5345
|
+
this._mediaAccessCallFeature = mediaAccessCallFeature;
|
5346
|
+
const mediaAccesses = this._mediaAccessCallFeature.getRemoteParticipantsMediaAccess();
|
5347
|
+
this._context.setMediaAccesses(this._callIdRef.callId, mediaAccesses);
|
4941
5348
|
this.subscribe();
|
4942
5349
|
}
|
4943
5350
|
}
|
@@ -5011,7 +5418,7 @@ class CallSubscriber {
|
|
5011
5418
|
// disposed) and we should not be updating it any more. So if video is rendering we stop rendering.
|
5012
5419
|
for (const localVideoStream of this._call.localVideoStreams) {
|
5013
5420
|
const mediaStreamType = localVideoStream.mediaStreamType;
|
5014
|
-
disposeView(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localVideoStream));
|
5421
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localVideoStream));
|
5015
5422
|
this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId, mediaStreamType);
|
5016
5423
|
}
|
5017
5424
|
this._diagnosticsSubscriber.unsubscribe();
|
@@ -5030,6 +5437,8 @@ class CallSubscriber {
|
|
5030
5437
|
this._breakoutRoomsSubscriber.unsubscribe();
|
5031
5438
|
/* @conditional-compile-remove(together-mode) */
|
5032
5439
|
this._togetherModeSubscriber.unsubscribe();
|
5440
|
+
/* @conditional-compile-remove(media-access) */
|
5441
|
+
this._mediaAccessSubscriber.unsubscribe();
|
5033
5442
|
};
|
5034
5443
|
this.stateChanged = () => {
|
5035
5444
|
this._context.setCallState(this._callIdRef.callId, this._call.state);
|
@@ -5119,7 +5528,7 @@ class CallSubscriber {
|
|
5119
5528
|
for (const localVideoStream of event.removed) {
|
5120
5529
|
const mediaStreamType = localVideoStream.mediaStreamType;
|
5121
5530
|
(_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));
|
5531
|
+
disposeView$1(this._context, this._internalContext, this._callIdRef.callId, undefined, convertSdkLocalStreamToDeclarativeLocalStream(localVideoStream));
|
5123
5532
|
this._internalContext.deleteLocalRenderInfo(this._callIdRef.callId, mediaStreamType);
|
5124
5533
|
}
|
5125
5534
|
this._context.setCallLocalVideoStream(this._callIdRef.callId, event.added.map(convertSdkLocalStreamToDeclarativeLocalStream), event.removed.map(convertSdkLocalStreamToDeclarativeLocalStream));
|
@@ -5150,7 +5559,9 @@ class CallSubscriber {
|
|
5150
5559
|
/* @conditional-compile-remove(breakout-rooms) */
|
5151
5560
|
this._breakoutRoomsSubscriber = new BreakoutRoomsSubscriber(this._callIdRef, this._context, this._call.feature(communicationCalling.Features.BreakoutRooms));
|
5152
5561
|
/* @conditional-compile-remove(together-mode) */
|
5153
|
-
this._togetherModeSubscriber = new TogetherModeSubscriber(this._callIdRef, this._context, this._call.feature(communicationCalling.Features.TogetherMode));
|
5562
|
+
this._togetherModeSubscriber = new TogetherModeSubscriber(this._callIdRef, this._context, this._internalContext, this._call.feature(communicationCalling.Features.TogetherMode));
|
5563
|
+
/* @conditional-compile-remove(media-access) */
|
5564
|
+
this._mediaAccessSubscriber = new MediaAccessSubscriber(this._callIdRef, this._context, this._call.feature(communicationCalling.Features.MediaAccess));
|
5154
5565
|
this.subscribe();
|
5155
5566
|
}
|
5156
5567
|
// This is a helper function to safely call subscriber functions. This is needed in order to prevent events
|
@@ -5912,6 +6323,9 @@ class InternalCallContext {
|
|
5912
6323
|
this._remoteRenderInfos = new Map();
|
5913
6324
|
// <CallId, <MediaStreamType, LocalRenderInfo>>.
|
5914
6325
|
this._localRenderInfos = new Map();
|
6326
|
+
/* @conditional-compile-remove(together-mode) */
|
6327
|
+
// <CallId, <featureName, <MediaStreamType, CallFeatureRenderInfo>>>.
|
6328
|
+
this._callFeatureRenderInfos = new Map();
|
5915
6329
|
// Used for keeping track of rendered LocalVideoStreams that are not part of a Call.
|
5916
6330
|
this._unparentedRenderInfos = new Map();
|
5917
6331
|
this._callIdHistory = new CallIdHistory();
|
@@ -5931,6 +6345,13 @@ class InternalCallContext {
|
|
5931
6345
|
this._localRenderInfos.delete(oldCallId);
|
5932
6346
|
this._localRenderInfos.set(newCallId, localRenderInfos);
|
5933
6347
|
}
|
6348
|
+
/* @conditional-compile-remove(together-mode) */
|
6349
|
+
const callFeatureRenderInfos = this._callFeatureRenderInfos.get(oldCallId);
|
6350
|
+
/* @conditional-compile-remove(together-mode) */
|
6351
|
+
if (callFeatureRenderInfos) {
|
6352
|
+
this._callFeatureRenderInfos.delete(oldCallId);
|
6353
|
+
this._callFeatureRenderInfos.set(newCallId, callFeatureRenderInfos);
|
6354
|
+
}
|
5934
6355
|
}
|
5935
6356
|
getCallIds() {
|
5936
6357
|
return this._remoteRenderInfos.keys();
|
@@ -6029,6 +6450,46 @@ class InternalCallContext {
|
|
6029
6450
|
clearCallRelatedState() {
|
6030
6451
|
this._remoteRenderInfos.clear();
|
6031
6452
|
this._localRenderInfos.clear();
|
6453
|
+
/* @conditional-compile-remove(together-mode) */
|
6454
|
+
this._callFeatureRenderInfos.clear();
|
6455
|
+
}
|
6456
|
+
/* @conditional-compile-remove(together-mode) */
|
6457
|
+
getCallFeatureRenderInfosForCall(callId) {
|
6458
|
+
return this._callFeatureRenderInfos.get(this._callIdHistory.latestCallId(callId));
|
6459
|
+
}
|
6460
|
+
/* @conditional-compile-remove(together-mode) */
|
6461
|
+
getCallFeatureRenderInfo(callId, featureNameKey, streamKey) {
|
6462
|
+
var _a, _b;
|
6463
|
+
const callFeatureRenderInfosForCall = (_b = (_a = this._callFeatureRenderInfos
|
6464
|
+
.get(this._callIdHistory.latestCallId(callId))) === null || _a === void 0 ? void 0 : _a.get(featureNameKey)) === null || _b === void 0 ? void 0 : _b.get(streamKey);
|
6465
|
+
if (!callFeatureRenderInfosForCall) {
|
6466
|
+
return undefined;
|
6467
|
+
}
|
6468
|
+
return callFeatureRenderInfosForCall;
|
6469
|
+
}
|
6470
|
+
/* @conditional-compile-remove(together-mode) */
|
6471
|
+
setCallFeatureRenderInfo(callId, featureNameKey, streamKey, stream, status, renderer) {
|
6472
|
+
let callRenderInfos = this._callFeatureRenderInfos.get(this._callIdHistory.latestCallId(callId));
|
6473
|
+
if (!callRenderInfos) {
|
6474
|
+
callRenderInfos = new Map();
|
6475
|
+
// If the callId is not found, create a new map for the callId.
|
6476
|
+
this._callFeatureRenderInfos.set(this._callIdHistory.latestCallId(callId), callRenderInfos);
|
6477
|
+
}
|
6478
|
+
let featureRenderInfos = callRenderInfos.get(featureNameKey);
|
6479
|
+
if (!featureRenderInfos) {
|
6480
|
+
featureRenderInfos = new Map();
|
6481
|
+
callRenderInfos.set(featureNameKey, featureRenderInfos);
|
6482
|
+
}
|
6483
|
+
featureRenderInfos.set(streamKey, { stream, status, renderer });
|
6484
|
+
}
|
6485
|
+
/* @conditional-compile-remove(together-mode) */
|
6486
|
+
deleteCallFeatureRenderInfo(callId, featureName, streamKey) {
|
6487
|
+
var _a;
|
6488
|
+
const callFeatureRenderInfoForCall = this._callFeatureRenderInfos.get(this._callIdHistory.latestCallId(callId));
|
6489
|
+
if (!callFeatureRenderInfoForCall || !callFeatureRenderInfoForCall.get(featureName)) {
|
6490
|
+
return;
|
6491
|
+
}
|
6492
|
+
(_a = callFeatureRenderInfoForCall.get(featureName)) === null || _a === void 0 ? void 0 : _a.delete(streamKey);
|
6032
6493
|
}
|
6033
6494
|
}
|
6034
6495
|
|
@@ -6337,7 +6798,7 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
|
|
6337
6798
|
configurable: false,
|
6338
6799
|
value: (callId, participantId, stream, options) => __awaiter$O(void 0, void 0, void 0, function* () {
|
6339
6800
|
const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
|
6340
|
-
const result = yield createView(context, internalContext, callId, participantIdKind, stream, options);
|
6801
|
+
const result = yield createView$1(context, internalContext, callId, participantIdKind, stream, options);
|
6341
6802
|
// 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
6803
|
if ('id' in stream && callId && participantId && result) {
|
6343
6804
|
const participantKey = toFlatCommunicationIdentifier(participantId);
|
@@ -6346,11 +6807,26 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
|
|
6346
6807
|
return result;
|
6347
6808
|
})
|
6348
6809
|
});
|
6810
|
+
/* @conditional-compile-remove(together-mode) */
|
6811
|
+
Object.defineProperty(callClient, 'createCallFeatureView', {
|
6812
|
+
configurable: false,
|
6813
|
+
value: (callId, stream, options) => __awaiter$O(void 0, void 0, void 0, function* () {
|
6814
|
+
const result = yield createView(context, internalContext, callId, stream, options);
|
6815
|
+
return result;
|
6816
|
+
})
|
6817
|
+
});
|
6349
6818
|
Object.defineProperty(callClient, 'disposeView', {
|
6350
6819
|
configurable: false,
|
6351
6820
|
value: (callId, participantId, stream) => {
|
6352
6821
|
const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
|
6353
|
-
disposeView(context, internalContext, callId, participantIdKind, stream);
|
6822
|
+
disposeView$1(context, internalContext, callId, participantIdKind, stream);
|
6823
|
+
}
|
6824
|
+
});
|
6825
|
+
/* @conditional-compile-remove(together-mode) */
|
6826
|
+
Object.defineProperty(callClient, 'disposeCallFeatureView', {
|
6827
|
+
configurable: false,
|
6828
|
+
value: (callId, stream) => {
|
6829
|
+
disposeView(context, internalContext, callId, stream);
|
6354
6830
|
}
|
6355
6831
|
});
|
6356
6832
|
const newStatefulCallClient = new Proxy(callClient, new ProxyCallClient(context, internalContext));
|
@@ -15318,7 +15794,7 @@ class _ErrorBoundary extends React.Component {
|
|
15318
15794
|
// Copyright (c) Microsoft Corporation.
|
15319
15795
|
// Licensed under the MIT License.
|
15320
15796
|
/* @conditional-compile-remove(rich-text-editor) */
|
15321
|
-
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
15797
|
+
const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DA7CJian.js'); }));
|
15322
15798
|
/**
|
15323
15799
|
* @private
|
15324
15800
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -15326,7 +15802,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
|
|
15326
15802
|
*
|
15327
15803
|
* @conditional-compile-remove(rich-text-editor)
|
15328
15804
|
*/
|
15329
|
-
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-
|
15805
|
+
const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DA7CJian.js'); });
|
15330
15806
|
/**
|
15331
15807
|
* @private
|
15332
15808
|
*/
|
@@ -17786,6 +18262,12 @@ const rootStyles = {
|
|
17786
18262
|
height: '100%',
|
17787
18263
|
width: '100%'
|
17788
18264
|
};
|
18265
|
+
/** @private */
|
18266
|
+
const videoTileHighContrastStyles = (theme) => ({
|
18267
|
+
'@media (forced-colors: active)': {
|
18268
|
+
border: `0.125rem solid ${theme.palette.black}`
|
18269
|
+
}
|
18270
|
+
});
|
17789
18271
|
/**
|
17790
18272
|
* @private
|
17791
18273
|
*/
|
@@ -18242,17 +18724,19 @@ const VideoTile = (props) => {
|
|
18242
18724
|
return (React.createElement(react.Stack, Object.assign({ "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
|
18243
18725
|
background: theme.palette.neutralLighter,
|
18244
18726
|
borderRadius: theme.effects.roundedCorner4
|
18245
|
-
},
|
18246
|
-
|
18247
|
-
|
18248
|
-
|
18249
|
-
|
18250
|
-
|
18251
|
-
|
18252
|
-
|
18253
|
-
|
18727
|
+
}, isSpeaking || raisedHand
|
18728
|
+
? {
|
18729
|
+
'&::after': {
|
18730
|
+
content: `''`,
|
18731
|
+
position: 'absolute',
|
18732
|
+
border: `0.25rem solid ${isSpeaking ? theme.palette.themePrimary : raisedHandBackgroundColor}`,
|
18733
|
+
borderRadius: theme.effects.roundedCorner4,
|
18734
|
+
width: '100%',
|
18735
|
+
height: '100%',
|
18736
|
+
pointerEvents: 'none'
|
18737
|
+
}
|
18254
18738
|
}
|
18255
|
-
|
18739
|
+
: {}, videoTileHighContrastStyles(theme), styles === null || styles === void 0 ? void 0 : styles.root) }, longPressHandlers),
|
18256
18740
|
React.createElement("div", Object.assign({ ref: videoTileRef, style: { width: '100%', height: '100%' } }, hoverHandlers, { "data-is-focusable": true }),
|
18257
18741
|
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
18742
|
opacity: participantStateString || props.participantState === 'Idle' ? 0.4 : 1
|
@@ -20978,7 +21462,7 @@ const FloatingLocalVideo = (props) => {
|
|
20978
21462
|
const modalStyles = React.useMemo(() => floatingLocalVideoModalStyle(theme, localVideoSizeRem), [theme, localVideoSizeRem]);
|
20979
21463
|
const layerProps = React.useMemo(() => ({ hostId: layerHostId }), [layerHostId]);
|
20980
21464
|
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)));
|
21465
|
+
React.createElement(react.Stack, { "aria-label": (_a = strings.localVideoMovementAriaLabel) !== null && _a !== void 0 ? _a : strings.localVideoMovementLabel, tabIndex: 0, role: 'dialog' }, localVideoComponent)));
|
20982
21466
|
};
|
20983
21467
|
|
20984
21468
|
// Copyright (c) Microsoft Corporation.
|
@@ -21403,7 +21887,7 @@ const VideoGallery = (props) => {
|
|
21403
21887
|
const showDisplayNameTrampoline = () => {
|
21404
21888
|
return layout === 'default' ? strings.localVideoLabel : isNarrow ? '' : strings.localVideoLabel;
|
21405
21889
|
};
|
21406
|
-
return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key"
|
21890
|
+
return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key" },
|
21407
21891
|
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
21892
|
}, [
|
21409
21893
|
isNarrow,
|
@@ -23883,6 +24367,26 @@ const messageBarStyle = (theme, errorType) => ({
|
|
23883
24367
|
}
|
23884
24368
|
});
|
23885
24369
|
|
24370
|
+
// Copyright (c) Microsoft Corporation.
|
24371
|
+
// Licensed under the MIT License.
|
24372
|
+
/**
|
24373
|
+
* Message Bar incorrectly applies dark theme and high contrast theme styles to links that have no hrefs.
|
24374
|
+
* This is a workaround to ensure that the link color is correct.
|
24375
|
+
*
|
24376
|
+
* More info: https://github.com/microsoft/fluentui/issues/14683
|
24377
|
+
*
|
24378
|
+
* @private
|
24379
|
+
*/
|
24380
|
+
const messageBarLinkStyles = (theme, underline) => react.mergeStyles({
|
24381
|
+
textDecoration: 'underline' ,
|
24382
|
+
color: theme.palette.themeDarkAlt,
|
24383
|
+
textDecorationColor: theme.palette.themeDarkAlt,
|
24384
|
+
'@media (forced-colors: active)': {
|
24385
|
+
color: 'LinkText',
|
24386
|
+
textDecorationColor: 'LinkText'
|
24387
|
+
}
|
24388
|
+
});
|
24389
|
+
|
23886
24390
|
// Copyright (c) Microsoft Corporation.
|
23887
24391
|
// Licensed under the MIT License.
|
23888
24392
|
/**
|
@@ -23910,13 +24414,13 @@ const _TroubleshootingGuideErrorBar = (props) => {
|
|
23910
24414
|
' ',
|
23911
24415
|
onPermissionsTroubleshootingClick && (React.createElement(react.Link, { onClick: () => {
|
23912
24416
|
onPermissionsTroubleshootingClick(permissionsState);
|
23913
|
-
}
|
23914
|
-
React.createElement("span", {
|
24417
|
+
} },
|
24418
|
+
React.createElement("span", { className: messageBarLinkStyles(theme) }, troubleshootingGuideStrings.devicePermissionLinkText)))));
|
23915
24419
|
const networkErrorBar = (React.createElement("div", null,
|
23916
24420
|
strings[error.type],
|
23917
24421
|
' ',
|
23918
24422
|
onNetworkingTroubleshootingClick && (React.createElement(react.Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
|
23919
|
-
React.createElement("span", {
|
24423
|
+
React.createElement("span", { className: messageBarLinkStyles(theme) }, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
|
23920
24424
|
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
24425
|
setDismissedErrors(dismissError(dismissedErrors, error));
|
23922
24426
|
}, ariaLabel: troubleshootingGuideStrings.dismissButtonText }), isMultiline: false }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
|
@@ -24170,19 +24674,26 @@ const captionsContainerClassName = react.mergeStyles({
|
|
24170
24674
|
const captionContainerClassName = react.mergeStyles({
|
24171
24675
|
marginTop: _pxToRem(6),
|
24172
24676
|
marginBottom: _pxToRem(6),
|
24677
|
+
textAlign: 'unset', // ensure RTL spoken language captions are appropriately aligned to the right
|
24173
24678
|
overflowAnchor: 'auto'
|
24174
24679
|
});
|
24680
|
+
/** Reset styling set by the `ul` element */
|
24681
|
+
const resetUlStyling = {
|
24682
|
+
listStyleType: 'none',
|
24683
|
+
padding: 0,
|
24684
|
+
margin: 0
|
24685
|
+
};
|
24175
24686
|
/**
|
24176
24687
|
* @private
|
24177
24688
|
*/
|
24178
24689
|
const captionsBannerClassName = (formFactor) => {
|
24179
|
-
return react.mergeStyles(Object.assign({ overflowX: 'hidden', height: formFactor === 'compact' ? '4.5rem' : '8.75rem', overflowY: 'auto' }, scrollbarStyles));
|
24690
|
+
return react.mergeStyles(Object.assign(Object.assign(Object.assign({}, resetUlStyling), { overflowX: 'hidden', height: formFactor === 'compact' ? '4.5rem' : '8.75rem', overflowY: 'auto' }), scrollbarStyles));
|
24180
24691
|
};
|
24181
24692
|
/**
|
24182
24693
|
* @private
|
24183
24694
|
*/
|
24184
24695
|
const captionsBannerFullHeightClassName = (theme) => {
|
24185
|
-
return react.mergeStyles(Object.assign({ overflowX: 'hidden', overflowY: 'auto', height: '100%', width: '100%', position: 'absolute', backgroundColor: theme.palette.white, left: 0 }, scrollbarStyles));
|
24696
|
+
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));
|
24186
24697
|
};
|
24187
24698
|
/**
|
24188
24699
|
* @private
|
@@ -24290,11 +24801,11 @@ const _CaptionsBanner = (props) => {
|
|
24290
24801
|
scrollToBottom();
|
24291
24802
|
}
|
24292
24803
|
}, [captions, isAtBottomOfScroll]);
|
24293
|
-
return (React.createElement(React.Fragment, null, startCaptionsInProgress && (React.createElement(react.FocusZone, {
|
24294
|
-
isCaptionsOn && (React.createElement("
|
24804
|
+
return (React.createElement(React.Fragment, null, startCaptionsInProgress && (React.createElement(react.FocusZone, { className: captionsContainerClassName, "data-ui-id": "captions-banner" },
|
24805
|
+
isCaptionsOn && (React.createElement("ul", { ref: captionsScrollDivRef, className: (captionsOptions === null || captionsOptions === void 0 ? void 0 : captionsOptions.height) === 'full'
|
24295
24806
|
? captionsBannerFullHeightClassName(theme)
|
24296
24807
|
: captionsBannerClassName(formFactor), "data-ui-id": "captions-banner-inner" }, captions.map((caption) => {
|
24297
|
-
return (React.createElement("
|
24808
|
+
return (React.createElement("li", { key: caption.id, className: captionContainerClassName, "data-is-focusable": true },
|
24298
24809
|
React.createElement(_Caption, Object.assign({}, caption, { onRenderAvatar: onRenderAvatar }))));
|
24299
24810
|
}))),
|
24300
24811
|
!isCaptionsOn && (React.createElement(react.Stack, { verticalAlign: "center", styles: (captionsOptions === null || captionsOptions === void 0 ? void 0 : captionsOptions.height) === 'full'
|
@@ -29967,7 +30478,7 @@ const AttachmentDownloadErrorBar = (props) => {
|
|
29967
30478
|
/**
|
29968
30479
|
* Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
|
29969
30480
|
*/
|
29970
|
-
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
30481
|
+
const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-B35hPtZ7.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
|
29971
30482
|
/**
|
29972
30483
|
* @private
|
29973
30484
|
* Use this function to load RoosterJS dependencies early in the lifecycle.
|
@@ -29975,7 +30486,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
|
|
29975
30486
|
*
|
29976
30487
|
/* @conditional-compile-remove(rich-text-editor-composite-support)
|
29977
30488
|
*/
|
29978
|
-
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-
|
30489
|
+
const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-B35hPtZ7.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
|
29979
30490
|
/**
|
29980
30491
|
* @private
|
29981
30492
|
*/
|
@@ -34805,6 +35316,14 @@ const availableSpaceStyles = { root: { width: '100%', height: '100%' } };
|
|
34805
35316
|
const sidePaneTokens = {
|
34806
35317
|
childrenGap: '0.5rem'
|
34807
35318
|
};
|
35319
|
+
/** @private */
|
35320
|
+
const paneHighContrastStyles = (theme) => react.mergeStyles({
|
35321
|
+
'@media (forced-colors: active)': {
|
35322
|
+
border: `0.125rem solid ${theme.palette.black}`,
|
35323
|
+
borderRadius: theme.effects.roundedCorner4,
|
35324
|
+
margin: '0.5rem 0.25rem 0.5rem 0rem'
|
35325
|
+
}
|
35326
|
+
});
|
34808
35327
|
|
34809
35328
|
// Copyright (c) Microsoft Corporation.
|
34810
35329
|
// Licensed under the MIT License.
|
@@ -34920,10 +35439,11 @@ const SidePane = (props) => {
|
|
34920
35439
|
const OverrideContentRenderer = (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) || (overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.persistRenderingWhenClosed)
|
34921
35440
|
? overrideSidePane.renderer.contentRenderer
|
34922
35441
|
: undefined;
|
35442
|
+
const theme = useTheme();
|
34923
35443
|
if (!ContentRenderer && !OverrideContentRenderer) {
|
34924
35444
|
return React.createElement(EmptyElement, null);
|
34925
35445
|
}
|
34926
|
-
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 },
|
35446
|
+
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) },
|
34927
35447
|
HeaderToRender,
|
34928
35448
|
React.createElement(react.Stack.Item, { verticalFill: true, grow: true, styles: paneBodyContainer },
|
34929
35449
|
React.createElement(react.Stack, { verticalFill: true, styles: scrollableContainer },
|
@@ -34950,12 +35470,16 @@ const SidePaneHeader = (props) => {
|
|
34950
35470
|
minWidth: '1.5rem',
|
34951
35471
|
padding: '0.5rem 0.25rem',
|
34952
35472
|
marginRight: '0.25rem',
|
34953
|
-
backgroundColor: theme.semanticColors.bodyBackground
|
35473
|
+
backgroundColor: theme.semanticColors.bodyBackground,
|
35474
|
+
'@media (forced-colors: active)': {
|
35475
|
+
border: `0.1rem solid ${theme.palette.neutralSecondary}`,
|
35476
|
+
borderRadius: theme.effects.roundedCorner4
|
35477
|
+
}
|
34954
35478
|
},
|
34955
35479
|
icon: { color: theme.palette.neutralSecondary },
|
34956
35480
|
iconHovered: { color: theme.palette.neutralSecondary },
|
34957
35481
|
iconPressed: { color: theme.palette.neutralSecondary }
|
34958
|
-
}), [theme.palette.neutralSecondary, theme.semanticColors.bodyBackground]);
|
35482
|
+
}), [theme.palette.neutralSecondary, theme.semanticColors.bodyBackground, theme.effects.roundedCorner4]);
|
34959
35483
|
if (props.mobileView) {
|
34960
35484
|
return React.createElement(SidePaneMobileHeader, Object.assign({}, props));
|
34961
35485
|
}
|
@@ -37761,6 +38285,10 @@ const configurationPageTextDecoration = (theme) => {
|
|
37761
38285
|
return {
|
37762
38286
|
textShadow: `0px 0px 8px ${theme.palette.whiteTranslucent40}`,
|
37763
38287
|
fill: theme.semanticColors.bodyText,
|
38288
|
+
svg: {
|
38289
|
+
// Fix SVGs not displaying the correct color in Desert high contrast mode
|
38290
|
+
fill: 'currentColor'
|
38291
|
+
},
|
37764
38292
|
stroke: theme.palette.whiteTranslucent40,
|
37765
38293
|
paintOrder: 'stroke fill',
|
37766
38294
|
strokeWidth: _pxToRem(1.5),
|
@@ -37768,8 +38296,6 @@ const configurationPageTextDecoration = (theme) => {
|
|
37768
38296
|
letterSpacing: '-0.02rem' // cope with extra width due to stroke width
|
37769
38297
|
},
|
37770
38298
|
'@media (forced-colors: active)': {
|
37771
|
-
forcedColorAdjust: 'auto',
|
37772
|
-
fill: theme.palette.neutralQuaternaryAlt,
|
37773
38299
|
textShadow: 'none',
|
37774
38300
|
stroke: 'none'
|
37775
38301
|
}
|
@@ -44462,4 +44988,4 @@ exports.useTeamsCall = useTeamsCall;
|
|
44462
44988
|
exports.useTeamsCallAdapter = useTeamsCallAdapter;
|
44463
44989
|
exports.useTeamsCallAgent = useTeamsCallAgent;
|
44464
44990
|
exports.useTheme = useTheme;
|
44465
|
-
//# sourceMappingURL=index-
|
44991
|
+
//# sourceMappingURL=index-DKFJEPz7.js.map
|