@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.
Files changed (75) hide show
  1. package/dist/communication-react.d.ts +96 -31
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CjlQQrAc.js → ChatMessageComponentAsRichTextEditBox-DA7CJian.js} +3 -3
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CjlQQrAc.js.map → ChatMessageComponentAsRichTextEditBox-DA7CJian.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CEFO0M1q.js → RichTextSendBoxWrapper-B35hPtZ7.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CEFO0M1q.js.map → RichTextSendBoxWrapper-B35hPtZ7.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-BkinusDu.js → index-DKFJEPz7.js} +655 -129
  7. package/dist/dist-cjs/communication-react/index-DKFJEPz7.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +60 -31
  12. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  13. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +13 -2
  14. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +106 -5
  15. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  16. package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.d.ts +14 -0
  17. package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.js +207 -0
  18. package/dist/dist-esm/calling-stateful-client/src/CallFeatureStreamUtils.js.map +1 -0
  19. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +1 -0
  20. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +7 -1
  21. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  22. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +6 -0
  23. package/dist/dist-esm/calling-stateful-client/src/Converter.js +18 -2
  24. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  25. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts +9 -0
  26. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +50 -0
  27. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  28. package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.d.ts +16 -0
  29. package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.js +26 -0
  30. package/dist/dist-esm/calling-stateful-client/src/MediaAccessSubscriber.js.map +1 -0
  31. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +33 -2
  32. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +17 -0
  33. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  34. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.d.ts +1 -2
  35. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +10 -0
  36. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  37. package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.d.ts +9 -4
  38. package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.js +38 -9
  39. package/dist/dist-esm/calling-stateful-client/src/TogetherModeSubscriber.js.map +1 -1
  40. package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.d.ts +18 -0
  41. package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.js +34 -0
  42. package/dist/dist-esm/calling-stateful-client/src/TogetherModeVideoStreamSubscriber.js.map +1 -0
  43. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +2 -1
  44. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  45. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +3 -3
  46. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +1 -1
  48. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  49. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +4 -3
  50. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  51. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +1 -1
  52. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/VideoGallery.js +1 -1
  54. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  55. package/dist/dist-esm/react-components/src/components/VideoTile.js +13 -11
  56. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  57. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js +9 -2
  58. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.d.ts +11 -0
  60. package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.js +21 -0
  61. package/dist/dist-esm/react-components/src/components/styles/MessageBarLink.styles.js.map +1 -0
  62. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +2 -0
  63. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +6 -0
  64. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +4 -2
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  67. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +4 -2
  68. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  69. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +6 -2
  70. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  71. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.d.ts +3 -1
  72. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +9 -1
  73. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  74. package/package.json +2 -2
  75. 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-202411050016';
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$10 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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$10(void 0, void 0, void 0, function* () {
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$10(void 0, void 0, void 0, function* () {
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$$ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(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$$(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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
1052
- const onStopScreenShare = () => __awaiter$$(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
1053
- const onToggleScreenShare = () => __awaiter$$(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$$(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$$(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$$(void 0, [...args_1], void 0, function* (options = { scalingMode: 'Crop', isMirrored: true }) {
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$$(void 0, [userId_1, ...args_2], void 0, function* (userId, options = { scalingMode: 'Crop' }) {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$$(void 0, void 0, void 0, function* () {
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$_ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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$_(void 0, void 0, void 0, function* () {
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$_(void 0, void 0, void 0, function* () {
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$_(void 0, void 0, void 0, function* () {
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$_(void 0, void 0, void 0, function* () {
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$_(void 0, void 0, void 0, function* () { return breakoutRoomOriginCall.hangUp().then(() => commonCallingHandlers.onHangUp()); })
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$Z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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$Z(void 0, void 0, void 0, function* () {
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$Z(void 0, void 0, void 0, function* () {
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$Z(void 0, void 0, void 0, function* () {
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$Z(void 0, void 0, void 0, function* () {
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$Y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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$Y(this, void 0, void 0, function* () {
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$Y(this, void 0, void 0, function* () {
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$Y(this, void 0, void 0, function* () {
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$Y(this, void 0, void 0, function* () {
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$Y(this, void 0, void 0, function* () {
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: { stream: [] },
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$X = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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
- setTogetherModeVideoStream(callId, addedStream) {
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
- call.togetherMode = { stream: addedStream };
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 in call.togetherMode.stream) {
2768
- // Temporary lint fix: Remove the stream from the list
2769
- call.togetherMode.stream = [];
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$X(this, void 0, void 0, function* () {
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$W = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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$W(this, void 0, void 0, function* () {
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$W(this, void 0, void 0, function* () {
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$W(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
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$V = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
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$V(this, void 0, void 0, function* () {
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.onTogetherModeStreamUpdated = (args) => {
4931
- if (args.added) {
4932
- this._context.setTogetherModeVideoStream(this._callIdRef.callId, args.added);
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
- if (args.removed) {
4935
- this._context.removeTogetherModeVideoStream(this._callIdRef.callId, args.removed);
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-CjlQQrAc.js'); }));
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-CjlQQrAc.js'); });
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
- }, (isSpeaking || raisedHand) && {
18246
- '&::after': {
18247
- content: `''`,
18248
- position: 'absolute',
18249
- border: `0.25rem solid ${isSpeaking ? theme.palette.themePrimary : raisedHandBackgroundColor}`,
18250
- borderRadius: theme.effects.roundedCorner4,
18251
- width: '100%',
18252
- height: '100%',
18253
- pointerEvents: 'none'
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
- }, styles === null || styles === void 0 ? void 0 : styles.root) }, longPressHandlers),
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", role: 'dialog' },
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
- }, underline: true },
23914
- React.createElement("span", { style: { color: theme.palette.themeDarkAlt } }, troubleshootingGuideStrings.devicePermissionLinkText)))));
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", { style: { color: theme.palette.themeDarkAlt } }, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
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, { as: "ul", className: captionsContainerClassName, "data-ui-id": "captions-banner" },
24294
- isCaptionsOn && (React.createElement("div", { ref: captionsScrollDivRef, className: (captionsOptions === null || captionsOptions === void 0 ? void 0 : captionsOptions.height) === 'full'
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("div", { key: caption.id, className: captionContainerClassName, "data-is-focusable": true },
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-CEFO0M1q.js'); }).then((module) => ({ default: module.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-CEFO0M1q.js'); }).then((module) => ({ default: module.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-BkinusDu.js.map
44991
+ //# sourceMappingURL=index-DKFJEPz7.js.map